@progressio_resources/gravity-design-system 2.1.0 → 2.1.2
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/gravity-attach-file/gravity-attach-file.component.mjs +26 -7
- package/esm2022/lib/components/gravity-table/gravity-table.component.mjs +34 -8
- package/fesm2022/progressio_resources-gravity-design-system.mjs +58 -13
- package/fesm2022/progressio_resources-gravity-design-system.mjs.map +1 -1
- package/lib/components/gravity-attach-file/gravity-attach-file.component.d.ts +8 -4
- package/lib/components/gravity-table/gravity-table.component.d.ts +9 -6
- package/package.json +1 -1
- package/src/lib/styles/components/_tables.scss +2 -1
|
@@ -4,15 +4,30 @@ import * as i1 from "@angular/common";
|
|
|
4
4
|
import * as i2 from "../gravity-button/gravity-button.component";
|
|
5
5
|
export class GravityAttachFileComponent {
|
|
6
6
|
constructor() {
|
|
7
|
-
this.
|
|
7
|
+
this.fileValueAsBase64StringResponse = new EventEmitter();
|
|
8
8
|
this.currentLang = 'en';
|
|
9
|
+
this.inputId = '';
|
|
9
10
|
this.state = "enabled";
|
|
11
|
+
this.supportedTypes = '';
|
|
12
|
+
}
|
|
13
|
+
ngAfterViewInit() {
|
|
14
|
+
if (this.supportedDocumentTypes) {
|
|
15
|
+
this.supportedDocumentTypes.forEach((value, index) => {
|
|
16
|
+
this.supportedTypes += value;
|
|
17
|
+
if (index != this.supportedDocumentTypes.length - 1) {
|
|
18
|
+
this.supportedTypes += ',';
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
this.supportedTypes = "*";
|
|
24
|
+
}
|
|
10
25
|
}
|
|
11
26
|
handleFileInput($event) {
|
|
12
27
|
this.file = $event.target.files[0];
|
|
13
28
|
if (this.file) {
|
|
14
29
|
GravityAttachFileComponent.convertFileToBase64(this.file).then((base64String) => {
|
|
15
|
-
this.
|
|
30
|
+
this.fileValueAsBase64StringResponse.emit(base64String);
|
|
16
31
|
}).catch((error) => {
|
|
17
32
|
console.error('Error loading file:', error.message);
|
|
18
33
|
});
|
|
@@ -34,30 +49,34 @@ export class GravityAttachFileComponent {
|
|
|
34
49
|
}
|
|
35
50
|
removeFile() {
|
|
36
51
|
this.file = null;
|
|
37
|
-
this.
|
|
52
|
+
this.fileValueAsBase64StringResponse.emit('');
|
|
38
53
|
}
|
|
39
54
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityAttachFileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
40
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GravityAttachFileComponent, selector: "gravity-attach-file", inputs: { currentLang: "currentLang", cypressTag: "cypressTag", label: "label", required: "required", state: "state", supportTextContent: "supportTextContent", supportTextType: "supportTextType" }, outputs: {
|
|
55
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GravityAttachFileComponent, selector: "gravity-attach-file", inputs: { currentLang: "currentLang", cypressTag: "cypressTag", inputId: "inputId", label: "label", required: "required", state: "state", supportedDocumentTypes: "supportedDocumentTypes", supportTextContent: "supportTextContent", supportTextType: "supportTextType" }, outputs: { fileValueAsBase64StringResponse: "response" }, ngImport: i0, template: "<label class=\"hr-body-text sm-regular {{state}}\" [class.empty]=\"!file\" [class.full-input]=\"file\" *ngIf=\"label\">\n {{label}}\n <ng-container *ngIf=\"required\">\n <ng-container *ngIf=\"currentLang == 'es'\">- Requerido <span class=\"text-negative\">*</span></ng-container>\n <ng-container *ngIf=\"currentLang == 'en'\">- Required <span class=\"text-negative\">*</span></ng-container>\n </ng-container>\n <ng-container *ngIf=\"state == 'readonly'\">\n <ng-container *ngIf=\"currentLang == 'es'\">- S\u00F3lo lectura</ng-container>\n <ng-container *ngIf=\"currentLang == 'en'\">- Readonly</ng-container>\n </ng-container>\n <ng-container *ngIf=\"state == 'disabled'\">\n <ng-container *ngIf=\"currentLang == 'es'\">- Deshabilitado</ng-container>\n <ng-container *ngIf=\"currentLang == 'en'\">- Disabled</ng-container>\n </ng-container>\n</label>\n<div class=\"gravity-attach-file {{state}}\" [class.empty]=\"!file\" [class.full-input]=\"file\">\n <ng-container *ngIf=\"!file\">\n <input autocomplete=\"off\" class=\"hr-label md-regular\" hidden id=\"fileInput-{{inputId}}\" type=\"file\"\n [accept]=\"supportedTypes\"\n [attr.data-cy]=\"cypressTag\"\n [attr.disabled]=\"state == 'disabled' ? true : null\"\n [attr.readonly]=\"state == 'readonly' ? true : null\"\n\n (change)=\"handleFileInput($event)\">\n <label for=\"fileInput-{{inputId}}\">\n <gravity-button [iconName]=\"'clip'\" [type]=\"'tertiary'\" [size]=\"'md'\">\n {{label}}\n </gravity-button>\n </label>\n </ng-container>\n <ng-container *ngIf=\"file\">\n <label>\n <gravity-button (click)=\"removeFile()\" [iconName]=\"'clip'\" [type]=\"'tertiary'\" [size]=\"'md'\">\n {{currentLang == 'en' ? 'Remove file' : 'Remover archivo'}}\n </gravity-button>\n </label>\n <h3 class=\"hr-body-text sm-bold\">{{currentLang == 'en' ? 'File' : 'Archivo'}}: {{file.name}}</h3>\n </ng-container>\n</div>\n<p class=\"hr-body-text sm-regular support-text text-{{supportTextType}}\" *ngIf=\"supportTextContent\">\n {{supportTextContent}}\n</p>\n", styles: [".text-negative{color:var(--negative-primary)}.text-neutro{color:var(--text-primary)}.text-positive{color:var(--positive-primary)}.support-text{margin-left:0;margin-top:.3125rem;padding-inline:1rem}:host{display:block}label{color:var(--text-field-label-color);margin-inline:1rem}label.empty.enabled{--text-field-label-color: var(--label-text-empty-enabled-primary)}label.empty.disabled{--text-field-label-color: var(--label-text-empty-disabled-primary)}label.full-input.enabled{--text-field-label-color: var(--label-text-full-enabled-primary)}label.full-input.disabled{--text-field-label-color: var(--label-text-full-disabled-primary)}label.full-input.readonly{--text-field-label-color: var(--label-text-full-read-only-primary)}.gravity-attach-file{align-items:center;display:flex}.gravity-attach-file label{cursor:pointer}.gravity-attach-file label:hover gravity-button ::ng-deep button{--button-background-color: var(--bg-button-hover-tertiary);--button-border-color: var(--bg-button-hover-tertiary);--button-text-color: var(--on-bg-button-hover-tertiary)}gravity-button,gravity-button ::ng-deep button{pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.GravityButtonComponent, selector: "gravity-button", inputs: ["cypressTag", "disabled", "customState", "iconName", "isLoading", "showContent", "size", "type"] }] }); }
|
|
41
56
|
}
|
|
42
57
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityAttachFileComponent, decorators: [{
|
|
43
58
|
type: Component,
|
|
44
|
-
args: [{ selector: 'gravity-attach-file', template: "<label class=\"hr-body-text sm-regular {{state}}\" [class.empty]=\"!file\" [class.full-input]=\"file\" *ngIf=\"label\">\n {{label}}\n <ng-container *ngIf=\"required\">\n <ng-container *ngIf=\"currentLang == 'es'\">- Requerido <span class=\"text-negative\">*</span></ng-container>\n <ng-container *ngIf=\"currentLang == 'en'\">- Required <span class=\"text-negative\">*</span></ng-container>\n </ng-container>\n <ng-container *ngIf=\"state == 'readonly'\">\n <ng-container *ngIf=\"currentLang == 'es'\">- S\u00F3lo lectura</ng-container>\n <ng-container *ngIf=\"currentLang == 'en'\">- Readonly</ng-container>\n </ng-container>\n <ng-container *ngIf=\"state == 'disabled'\">\n <ng-container *ngIf=\"currentLang == 'es'\">- Deshabilitado</ng-container>\n <ng-container *ngIf=\"currentLang == 'en'\">- Disabled</ng-container>\n </ng-container>\n</label>\n<div class=\"gravity-attach-file {{state}}\" [class.empty]=\"!file\" [class.full-input]=\"file\">\n <ng-container *ngIf=\"!file\">\n <input autocomplete=\"off\" class=\"hr-label md-regular\" hidden id=\"fileInput\" type=\"file\"\n [attr.data-cy]=\"cypressTag\"\n [attr.disabled]=\"state == 'disabled' ? true : null\"\n [attr.readonly]=\"state == 'readonly' ? true : null\"\n\n (change)=\"handleFileInput($event)\">\n <label for=\"fileInput\">\n <gravity-button [iconName]=\"'clip'\" [type]=\"'tertiary'\" [size]=\"'md'\">\n {{label}}\n </gravity-button>\n </label>\n </ng-container>\n <ng-container *ngIf=\"file\">\n <label>\n <gravity-button (click)=\"removeFile()\" [iconName]=\"'clip'\" [type]=\"'tertiary'\" [size]=\"'md'\">\n {{currentLang == 'en' ? 'Remove file' : 'Remover archivo'}}\n </gravity-button>\n </label>\n <h3>{{currentLang == 'en' ? 'File' : 'Archivo'}}: {{file.name}}</h3>\n </ng-container>\n</div>\n<p class=\"hr-body-text sm-regular support-text text-{{supportTextType}}\" *ngIf=\"supportTextContent\">\n {{supportTextContent}}\n</p>\n", styles: [".text-negative{color:var(--negative-primary)}.text-neutro{color:var(--text-primary)}.text-positive{color:var(--positive-primary)}.support-text{margin-left:0;margin-top:.3125rem;padding-inline:1rem}:host{display:block}label{color:var(--text-field-label-color);margin-inline:1rem}label.empty.enabled{--text-field-label-color: var(--label-text-empty-enabled-primary)}label.empty.disabled{--text-field-label-color: var(--label-text-empty-disabled-primary)}label.full-input.enabled{--text-field-label-color: var(--label-text-full-enabled-primary)}label.full-input.disabled{--text-field-label-color: var(--label-text-full-disabled-primary)}label.full-input.readonly{--text-field-label-color: var(--label-text-full-read-only-primary)}.gravity-attach-file{align-items:center;display:flex}.gravity-attach-file label{cursor:pointer}.gravity-attach-file label:hover gravity-button ::ng-deep button{--button-background-color: var(--bg-button-hover-tertiary);--button-border-color: var(--bg-button-hover-tertiary);--button-text-color: var(--on-bg-button-hover-tertiary)}gravity-button,gravity-button ::ng-deep button{pointer-events:none}\n"] }]
|
|
45
|
-
}], propDecorators: {
|
|
59
|
+
args: [{ selector: 'gravity-attach-file', template: "<label class=\"hr-body-text sm-regular {{state}}\" [class.empty]=\"!file\" [class.full-input]=\"file\" *ngIf=\"label\">\n {{label}}\n <ng-container *ngIf=\"required\">\n <ng-container *ngIf=\"currentLang == 'es'\">- Requerido <span class=\"text-negative\">*</span></ng-container>\n <ng-container *ngIf=\"currentLang == 'en'\">- Required <span class=\"text-negative\">*</span></ng-container>\n </ng-container>\n <ng-container *ngIf=\"state == 'readonly'\">\n <ng-container *ngIf=\"currentLang == 'es'\">- S\u00F3lo lectura</ng-container>\n <ng-container *ngIf=\"currentLang == 'en'\">- Readonly</ng-container>\n </ng-container>\n <ng-container *ngIf=\"state == 'disabled'\">\n <ng-container *ngIf=\"currentLang == 'es'\">- Deshabilitado</ng-container>\n <ng-container *ngIf=\"currentLang == 'en'\">- Disabled</ng-container>\n </ng-container>\n</label>\n<div class=\"gravity-attach-file {{state}}\" [class.empty]=\"!file\" [class.full-input]=\"file\">\n <ng-container *ngIf=\"!file\">\n <input autocomplete=\"off\" class=\"hr-label md-regular\" hidden id=\"fileInput-{{inputId}}\" type=\"file\"\n [accept]=\"supportedTypes\"\n [attr.data-cy]=\"cypressTag\"\n [attr.disabled]=\"state == 'disabled' ? true : null\"\n [attr.readonly]=\"state == 'readonly' ? true : null\"\n\n (change)=\"handleFileInput($event)\">\n <label for=\"fileInput-{{inputId}}\">\n <gravity-button [iconName]=\"'clip'\" [type]=\"'tertiary'\" [size]=\"'md'\">\n {{label}}\n </gravity-button>\n </label>\n </ng-container>\n <ng-container *ngIf=\"file\">\n <label>\n <gravity-button (click)=\"removeFile()\" [iconName]=\"'clip'\" [type]=\"'tertiary'\" [size]=\"'md'\">\n {{currentLang == 'en' ? 'Remove file' : 'Remover archivo'}}\n </gravity-button>\n </label>\n <h3 class=\"hr-body-text sm-bold\">{{currentLang == 'en' ? 'File' : 'Archivo'}}: {{file.name}}</h3>\n </ng-container>\n</div>\n<p class=\"hr-body-text sm-regular support-text text-{{supportTextType}}\" *ngIf=\"supportTextContent\">\n {{supportTextContent}}\n</p>\n", styles: [".text-negative{color:var(--negative-primary)}.text-neutro{color:var(--text-primary)}.text-positive{color:var(--positive-primary)}.support-text{margin-left:0;margin-top:.3125rem;padding-inline:1rem}:host{display:block}label{color:var(--text-field-label-color);margin-inline:1rem}label.empty.enabled{--text-field-label-color: var(--label-text-empty-enabled-primary)}label.empty.disabled{--text-field-label-color: var(--label-text-empty-disabled-primary)}label.full-input.enabled{--text-field-label-color: var(--label-text-full-enabled-primary)}label.full-input.disabled{--text-field-label-color: var(--label-text-full-disabled-primary)}label.full-input.readonly{--text-field-label-color: var(--label-text-full-read-only-primary)}.gravity-attach-file{align-items:center;display:flex}.gravity-attach-file label{cursor:pointer}.gravity-attach-file label:hover gravity-button ::ng-deep button{--button-background-color: var(--bg-button-hover-tertiary);--button-border-color: var(--bg-button-hover-tertiary);--button-text-color: var(--on-bg-button-hover-tertiary)}gravity-button,gravity-button ::ng-deep button{pointer-events:none}\n"] }]
|
|
60
|
+
}], propDecorators: { fileValueAsBase64StringResponse: [{
|
|
46
61
|
type: Output,
|
|
47
62
|
args: ['response']
|
|
48
63
|
}], currentLang: [{
|
|
49
64
|
type: Input
|
|
50
65
|
}], cypressTag: [{
|
|
51
66
|
type: Input
|
|
67
|
+
}], inputId: [{
|
|
68
|
+
type: Input
|
|
52
69
|
}], label: [{
|
|
53
70
|
type: Input
|
|
54
71
|
}], required: [{
|
|
55
72
|
type: Input
|
|
56
73
|
}], state: [{
|
|
57
74
|
type: Input
|
|
75
|
+
}], supportedDocumentTypes: [{
|
|
76
|
+
type: Input
|
|
58
77
|
}], supportTextContent: [{
|
|
59
78
|
type: Input
|
|
60
79
|
}], supportTextType: [{
|
|
61
80
|
type: Input
|
|
62
81
|
}] } });
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS1hdHRhY2gtZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncmF2aXR5LWRlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2dyYXZpdHktYXR0YWNoLWZpbGUvZ3Jhdml0eS1hdHRhY2gtZmlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncmF2aXR5LWRlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2dyYXZpdHktYXR0YWNoLWZpbGUvZ3Jhdml0eS1hdHRhY2gtZmlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQzs7OztBQU9wRixNQUFNLE9BQU8sMEJBQTBCO0lBTHZDO1FBTTZCLG9DQUErQixHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXRGLGdCQUFXLEdBQVcsSUFBSSxDQUFDO1FBRTNCLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFHckIsVUFBSyxHQUF3QyxTQUFTLENBQUM7UUFNaEUsbUJBQWMsR0FBVyxFQUFFLENBQUM7S0FpRHBDO0lBL0NDLGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUMvQixJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBYSxFQUFFLEtBQWEsRUFBRSxFQUFFO2dCQUNuRSxJQUFJLENBQUMsY0FBYyxJQUFJLEtBQUssQ0FBQztnQkFFN0IsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQ25ELElBQUksQ0FBQyxjQUFjLElBQUksR0FBRyxDQUFDO2lCQUM1QjtZQUNILENBQUMsQ0FBQyxDQUFBO1NBQ0g7YUFBTTtZQUNMLElBQUksQ0FBQyxjQUFjLEdBQUcsR0FBRyxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVNLGVBQWUsQ0FBQyxNQUFXO1FBQ2hDLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2IsMEJBQTBCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQW9CLEVBQUUsRUFBRTtnQkFDdEYsSUFBSSxDQUFDLCtCQUErQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMxRCxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDakIsT0FBTyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEQsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFTSxNQUFNLENBQUMsbUJBQW1CLENBQUMsSUFBVTtRQUMxQyxPQUFPLElBQUksT0FBTyxDQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQzdDLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7WUFFaEMsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7Z0JBQ25CLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxNQUFnQixDQUFDO2dCQUM3QyxNQUFNLG1CQUFtQixHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZELE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQy9CLENBQUMsQ0FBQztZQUVGLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFO2dCQUNwQixNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDO1lBQ2hELENBQUMsQ0FBQztZQUVGLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEQsQ0FBQzsrR0E5RFUsMEJBQTBCO21HQUExQiwwQkFBMEIsaVlDUHZDLGdsRUEwQ0E7OzRGRG5DYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0UscUJBQXFCOzhCQUtKLCtCQUErQjtzQkFBekQsTUFBTTt1QkFBQyxVQUFVO2dCQUVGLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxLQUFLO3NCQUFwQixLQUFLO2dCQUNVLHNCQUFzQjtzQkFBckMsS0FBSztnQkFDVSxrQkFBa0I7c0JBQWpDLEtBQUs7Z0JBQ1UsZUFBZTtzQkFBOUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdncmF2aXR5LWF0dGFjaC1maWxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dyYXZpdHktYXR0YWNoLWZpbGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ncmF2aXR5LWF0dGFjaC1maWxlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgR3Jhdml0eUF0dGFjaEZpbGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQE91dHB1dCgncmVzcG9uc2UnKSBwdWJsaWMgZmlsZVZhbHVlQXNCYXNlNjRTdHJpbmdSZXNwb25zZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQElucHV0KCkgcHVibGljIGN1cnJlbnRMYW5nOiBzdHJpbmcgPSAnZW4nO1xuICBASW5wdXQoKSBwdWJsaWMgY3lwcmVzc1RhZzogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgaW5wdXRJZDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgcmVxdWlyZWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHB1YmxpYyBzdGF0ZTogJ3JlYWRvbmx5JyB8ICdkaXNhYmxlZCcgfCAnZW5hYmxlZCcgPSBcImVuYWJsZWRcIjtcbiAgQElucHV0KCkgcHVibGljIHN1cHBvcnRlZERvY3VtZW50VHlwZXM6ICgnKicgfCAnLnBkZicgfCAnLmRvYycgfCAnLmRvY3gnIHwgJy5qcGcnIHwgJy5wbmcnIHwgJy5qcGVnJyB8ICdhdWRpby8qJyB8ICd2aWRlby8qJyB8ICdpbWFnZS8qJylbXTtcbiAgQElucHV0KCkgcHVibGljIHN1cHBvcnRUZXh0Q29udGVudDogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgc3VwcG9ydFRleHRUeXBlOiAnbmV1dHJvJyB8ICduZWdhdGl2ZScgfCAncG9zaXRpdmUnO1xuXG4gIHB1YmxpYyBmaWxlOiBGaWxlO1xuICBwdWJsaWMgc3VwcG9ydGVkVHlwZXM6IHN0cmluZyA9ICcnO1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdXBwb3J0ZWREb2N1bWVudFR5cGVzKSB7XG4gICAgICB0aGlzLnN1cHBvcnRlZERvY3VtZW50VHlwZXMuZm9yRWFjaCgodmFsdWU6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICB0aGlzLnN1cHBvcnRlZFR5cGVzICs9IHZhbHVlO1xuXG4gICAgICAgIGlmIChpbmRleCAhPSB0aGlzLnN1cHBvcnRlZERvY3VtZW50VHlwZXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgIHRoaXMuc3VwcG9ydGVkVHlwZXMgKz0gJywnO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN1cHBvcnRlZFR5cGVzID0gXCIqXCI7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhhbmRsZUZpbGVJbnB1dCgkZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZmlsZSA9ICRldmVudC50YXJnZXQuZmlsZXNbMF07XG4gICAgaWYgKHRoaXMuZmlsZSkge1xuICAgICAgR3Jhdml0eUF0dGFjaEZpbGVDb21wb25lbnQuY29udmVydEZpbGVUb0Jhc2U2NCh0aGlzLmZpbGUpLnRoZW4oKGJhc2U2NFN0cmluZzogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuZmlsZVZhbHVlQXNCYXNlNjRTdHJpbmdSZXNwb25zZS5lbWl0KGJhc2U2NFN0cmluZyk7XG4gICAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgbG9hZGluZyBmaWxlOicsIGVycm9yLm1lc3NhZ2UpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0RmlsZVRvQmFzZTY0KGZpbGU6IEZpbGUpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG5cbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGJhc2U2NFN0cmluZyA9IHJlYWRlci5yZXN1bHQgYXMgc3RyaW5nO1xuICAgICAgICBjb25zdCBiYXNlNjRXaXRob3V0UHJlZml4ID0gYmFzZTY0U3RyaW5nLnNwbGl0KCcsJylbMV07XG4gICAgICAgIHJlc29sdmUoYmFzZTY0V2l0aG91dFByZWZpeCk7XG4gICAgICB9O1xuXG4gICAgICByZWFkZXIub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignRmFpbGVkIHRvIHJlYWQgdGhlIGZpbGUuJykpO1xuICAgICAgfTtcblxuICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlRmlsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbGUgPSBudWxsO1xuICAgIHRoaXMuZmlsZVZhbHVlQXNCYXNlNjRTdHJpbmdSZXNwb25zZS5lbWl0KCcnKTtcbiAgfVxufVxuIiwiPGxhYmVsIGNsYXNzPVwiaHItYm9keS10ZXh0IHNtLXJlZ3VsYXIge3tzdGF0ZX19XCIgW2NsYXNzLmVtcHR5XT1cIiFmaWxlXCIgW2NsYXNzLmZ1bGwtaW5wdXRdPVwiZmlsZVwiICpuZ0lmPVwibGFiZWxcIj5cbiAge3tsYWJlbH19XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZXF1aXJlZFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50TGFuZyA9PSAnZXMnXCI+LSBSZXF1ZXJpZG8gPHNwYW4gY2xhc3M9XCJ0ZXh0LW5lZ2F0aXZlXCI+Kjwvc3Bhbj48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudExhbmcgPT0gJ2VuJ1wiPi0gUmVxdWlyZWQgPHNwYW4gY2xhc3M9XCJ0ZXh0LW5lZ2F0aXZlXCI+Kjwvc3Bhbj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdGF0ZSA9PSAncmVhZG9ubHknXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRMYW5nID09ICdlcydcIj4tIFPDs2xvIGxlY3R1cmE8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudExhbmcgPT0gJ2VuJ1wiPi0gUmVhZG9ubHk8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdGF0ZSA9PSAnZGlzYWJsZWQnXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRMYW5nID09ICdlcydcIj4tIERlc2hhYmlsaXRhZG88L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudExhbmcgPT0gJ2VuJ1wiPi0gRGlzYWJsZWQ8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L2xhYmVsPlxuPGRpdiBjbGFzcz1cImdyYXZpdHktYXR0YWNoLWZpbGUge3tzdGF0ZX19XCIgW2NsYXNzLmVtcHR5XT1cIiFmaWxlXCIgW2NsYXNzLmZ1bGwtaW5wdXRdPVwiZmlsZVwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWZpbGVcIj5cbiAgICA8aW5wdXQgYXV0b2NvbXBsZXRlPVwib2ZmXCIgY2xhc3M9XCJoci1sYWJlbCBtZC1yZWd1bGFyXCIgaGlkZGVuIGlkPVwiZmlsZUlucHV0LXt7aW5wdXRJZH19XCIgdHlwZT1cImZpbGVcIlxuICAgICAgICAgICBbYWNjZXB0XT1cInN1cHBvcnRlZFR5cGVzXCJcbiAgICAgICAgICAgW2F0dHIuZGF0YS1jeV09XCJjeXByZXNzVGFnXCJcbiAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwic3RhdGUgPT0gJ2Rpc2FibGVkJyA/IHRydWUgOiBudWxsXCJcbiAgICAgICAgICAgW2F0dHIucmVhZG9ubHldPVwic3RhdGUgPT0gJ3JlYWRvbmx5JyA/IHRydWUgOiBudWxsXCJcblxuICAgICAgICAgICAoY2hhbmdlKT1cImhhbmRsZUZpbGVJbnB1dCgkZXZlbnQpXCI+XG4gICAgPGxhYmVsIGZvcj1cImZpbGVJbnB1dC17e2lucHV0SWR9fVwiPlxuICAgICAgPGdyYXZpdHktYnV0dG9uIFtpY29uTmFtZV09XCInY2xpcCdcIiBbdHlwZV09XCIndGVydGlhcnknXCIgW3NpemVdPVwiJ21kJ1wiPlxuICAgICAgICB7e2xhYmVsfX1cbiAgICAgIDwvZ3Jhdml0eS1idXR0b24+XG4gICAgPC9sYWJlbD5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWxlXCI+XG4gICAgPGxhYmVsPlxuICAgICAgPGdyYXZpdHktYnV0dG9uIChjbGljayk9XCJyZW1vdmVGaWxlKClcIiBbaWNvbk5hbWVdPVwiJ2NsaXAnXCIgW3R5cGVdPVwiJ3RlcnRpYXJ5J1wiIFtzaXplXT1cIidtZCdcIj5cbiAgICAgICAge3tjdXJyZW50TGFuZyA9PSAnZW4nID8gJ1JlbW92ZSBmaWxlJyA6ICdSZW1vdmVyIGFyY2hpdm8nfX1cbiAgICAgIDwvZ3Jhdml0eS1idXR0b24+XG4gICAgPC9sYWJlbD5cbiAgICA8aDMgY2xhc3M9XCJoci1ib2R5LXRleHQgc20tYm9sZFwiPnt7Y3VycmVudExhbmcgPT0gJ2VuJyA/ICdGaWxlJyA6ICdBcmNoaXZvJ319OiB7e2ZpbGUubmFtZX19PC9oMz5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbjxwIGNsYXNzPVwiaHItYm9keS10ZXh0IHNtLXJlZ3VsYXIgc3VwcG9ydC10ZXh0IHRleHQte3tzdXBwb3J0VGV4dFR5cGV9fVwiICpuZ0lmPVwic3VwcG9ydFRleHRDb250ZW50XCI+XG4gIHt7c3VwcG9ydFRleHRDb250ZW50fX1cbjwvcD5cbiJdfQ==
|
|
@@ -4,10 +4,11 @@ import * as i1 from "../gravity-button/gravity-button.component";
|
|
|
4
4
|
export class GravityTableComponent {
|
|
5
5
|
constructor(renderer) {
|
|
6
6
|
this.renderer = renderer;
|
|
7
|
-
this.
|
|
7
|
+
this.tableDensity = "standard";
|
|
8
|
+
this.tableSizeInput = "auto";
|
|
8
9
|
this.firstTime = true;
|
|
9
10
|
this.tableElement = null;
|
|
10
|
-
this.tableSize = '';
|
|
11
|
+
this.tableSize = 'xl';
|
|
11
12
|
let milliseconds = new Date().getTime();
|
|
12
13
|
let randomNumber = Math.random() * 10;
|
|
13
14
|
this.tableId = '' + (milliseconds * randomNumber / 2);
|
|
@@ -17,10 +18,30 @@ export class GravityTableComponent {
|
|
|
17
18
|
this.renderer.setAttribute(this.tableElement, 'table-id', this.tableId);
|
|
18
19
|
let tableHeaders = this.getTableHeaders();
|
|
19
20
|
this.initializeTable(tableHeaders);
|
|
20
|
-
this.
|
|
21
|
+
this.adjustTableDensity(this.tableDensity);
|
|
21
22
|
this.adjustButtonsSize();
|
|
22
23
|
this.onResize();
|
|
23
24
|
}
|
|
25
|
+
ngOnChanges(changes) {
|
|
26
|
+
if (this.tableElement) {
|
|
27
|
+
if (changes['tableDensity']) {
|
|
28
|
+
this.adjustTableDensity(changes['tableDensity'].currentValue);
|
|
29
|
+
}
|
|
30
|
+
if (changes['tableSizeInput']) {
|
|
31
|
+
this.tableSizeInput = changes['tableSizeInput'].currentValue;
|
|
32
|
+
this.onResize();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
ngAfterContentChecked() {
|
|
37
|
+
if (this.tableElement) {
|
|
38
|
+
let tableHeaders = this.getTableHeaders();
|
|
39
|
+
this.initializeTable(tableHeaders);
|
|
40
|
+
this.adjustTableDensity(this.tableDensity);
|
|
41
|
+
this.adjustButtonsSize();
|
|
42
|
+
this.onResize();
|
|
43
|
+
}
|
|
44
|
+
}
|
|
24
45
|
getTableHeaders() {
|
|
25
46
|
let tableHeaderItems = document.querySelectorAll('thead tr th');
|
|
26
47
|
let tableHeaders = [];
|
|
@@ -75,10 +96,10 @@ export class GravityTableComponent {
|
|
|
75
96
|
});
|
|
76
97
|
}
|
|
77
98
|
}
|
|
78
|
-
|
|
99
|
+
adjustTableDensity(densityValue) {
|
|
79
100
|
this.renderer.removeClass(this.tableElement, 'standard-table');
|
|
80
101
|
this.renderer.removeClass(this.tableElement, 'compressed-table');
|
|
81
|
-
this.renderer.addClass(this.tableElement,
|
|
102
|
+
this.renderer.addClass(this.tableElement, densityValue + '-table');
|
|
82
103
|
}
|
|
83
104
|
adjustButtonsSize() {
|
|
84
105
|
let actionsColumns = document.querySelectorAll('table[table-id="' + this.tableId + '"] .actions-column');
|
|
@@ -116,6 +137,9 @@ export class GravityTableComponent {
|
|
|
116
137
|
this.renderer.removeClass(this.tableElement, 'md-table');
|
|
117
138
|
this.renderer.removeClass(this.tableElement, 'lg-table');
|
|
118
139
|
this.renderer.removeClass(this.tableElement, 'xl-table');
|
|
140
|
+
if (this.tableSizeInput != 'auto') {
|
|
141
|
+
this.tableSize = this.tableSizeInput;
|
|
142
|
+
}
|
|
119
143
|
this.renderer.addClass(this.tableElement, this.tableSize + '-table');
|
|
120
144
|
this.adjustTable();
|
|
121
145
|
}
|
|
@@ -168,12 +192,14 @@ export class GravityTableComponent {
|
|
|
168
192
|
}
|
|
169
193
|
}
|
|
170
194
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityTableComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
171
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GravityTableComponent, selector: "gravity-table", inputs: {
|
|
195
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GravityTableComponent, selector: "gravity-table", inputs: { tableDensity: "tableDensity", tableSizeInput: "tableSizeInput" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "tableContainer", first: true, predicate: ["tableContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"table-container {{tableSize}}\" #tableContainer>\n <ng-content></ng-content>\n</div>\n\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n", styles: [".table-container{overflow-x:auto}\n"], dependencies: [{ kind: "component", type: i1.GravityButtonComponent, selector: "gravity-button", inputs: ["cypressTag", "disabled", "customState", "iconName", "isLoading", "showContent", "size", "type"] }] }); }
|
|
172
196
|
}
|
|
173
197
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityTableComponent, decorators: [{
|
|
174
198
|
type: Component,
|
|
175
199
|
args: [{ selector: 'gravity-table', template: "<div class=\"table-container {{tableSize}}\" #tableContainer>\n <ng-content></ng-content>\n</div>\n\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n", styles: [".table-container{overflow-x:auto}\n"] }]
|
|
176
|
-
}], ctorParameters: function () { return [{ type: i0.Renderer2 }]; }, propDecorators: {
|
|
200
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }]; }, propDecorators: { tableDensity: [{
|
|
201
|
+
type: Input
|
|
202
|
+
}], tableSizeInput: [{
|
|
177
203
|
type: Input
|
|
178
204
|
}], tableContainer: [{
|
|
179
205
|
type: ViewChild,
|
|
@@ -182,4 +208,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
182
208
|
type: HostListener,
|
|
183
209
|
args: ['window:resize', ['$event']]
|
|
184
210
|
}] } });
|
|
185
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncmF2aXR5LWRlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2dyYXZpdHktdGFibGUvZ3Jhdml0eS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncmF2aXR5LWRlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2dyYXZpdHktdGFibGUvZ3Jhdml0eS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFhLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7O0FBTzlHLE1BQU0sT0FBTyxxQkFBcUI7SUFTaEMsWUFBNkIsUUFBbUI7UUFBbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQVJoQyxTQUFJLEdBQThCLFVBQVUsQ0FBQztRQUdyRCxjQUFTLEdBQVksSUFBSSxDQUFDO1FBQzFCLGlCQUFZLEdBQWUsSUFBSSxDQUFDO1FBRWpDLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFHNUIsSUFBSSxZQUFZLEdBQVcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoRCxJQUFJLFlBQVksR0FBVyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBRTlDLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLENBQUMsWUFBWSxHQUFHLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUks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Y2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgUmVuZGVyZXIyLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdncmF2aXR5LXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dyYXZpdHktdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ncmF2aXR5LXRhYmxlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgR3Jhdml0eVRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyB0eXBlOiAnc3RhbmRhcmQnIHwgJ2NvbXByZXNzZWQnID0gXCJzdGFuZGFyZFwiO1xuICBAVmlld0NoaWxkKCd0YWJsZUNvbnRhaW5lcicpIHB1YmxpYyByZWFkb25seSB0YWJsZUNvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICBwcml2YXRlIGZpcnN0VGltZTogYm9vbGVhbiA9IHRydWU7XG4gIHByaXZhdGUgdGFibGVFbGVtZW50OiBFbGVtZW50UmVmID0gbnVsbDtcbiAgcHVibGljIHRhYmxlSWQ6IHN0cmluZztcbiAgcHVibGljIHRhYmxlU2l6ZTogc3RyaW5nID0gJyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyKSB7XG4gICAgbGV0IG1pbGxpc2Vjb25kczogbnVtYmVyID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgbGV0IHJhbmRvbU51bWJlcjogbnVtYmVyID0gTWF0aC5yYW5kb20oKSAqIDEwO1xuXG4gICAgdGhpcy50YWJsZUlkID0gJycgKyAobWlsbGlzZWNvbmRzICogcmFuZG9tTnVtYmVyIC8gMik7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy50YWJsZUVsZW1lbnQgPSB0aGlzLnRhYmxlQ29udGFpbmVyPy5uYXRpdmVFbGVtZW50Py5jaGlsZE5vZGVzWzBdO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMudGFibGVFbGVtZW50LCAndGFibGUtaWQnLCB0aGlzLnRhYmxlSWQpO1xuXG4gICAgbGV0IHRhYmxlSGVhZGVyczogc3RyaW5nW10gPSB0aGlzLmdldFRhYmxlSGVhZGVycygpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZVRhYmxlKHRhYmxlSGVhZGVycyk7XG4gICAgdGhpcy5hZGp1c3RUYWJsZVR5cGUoKTtcbiAgICB0aGlzLmFkanVzdEJ1dHRvbnNTaXplKCk7XG4gICAgdGhpcy5vblJlc2l6ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUYWJsZUhlYWRlcnMoKTogc3RyaW5nW10ge1xuICAgIGxldCB0YWJsZUhlYWRlckl0ZW1zOiBOb2RlTGlzdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RoZWFkIHRyIHRoJyk7XG4gICAgbGV0IHRhYmxlSGVhZGVyczogc3RyaW5nW10gPSBbXTtcblxuICAgIHRhYmxlSGVhZGVySXRlbXMuZm9yRWFjaCgodGFibGVIZWFkZXJJdGVtOiBOb2RlKSA9PiB7XG4gICAgICB0YWJsZUhlYWRlcnMucHVzaCh0YWJsZUhlYWRlckl0ZW0uY2hpbGROb2Rlc1swXS5ub2RlVmFsdWUpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRhYmxlSGVhZGVycztcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZVRhYmxlKHRhYmxlSGVhZGVyczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5maXJzdFRpbWUpIHtcbiAgICAgIHRoaXMuZmlyc3RUaW1lID0gZmFsc2U7XG5cbiAgICAgIC8vU2V0IGNvcnJlc3BvbmRpbmcgdGFibGVIZWFkZXIgYXMgYW4gYXR0cmlidXRlIG9mIGVhY2ggdGRcbiAgICAgIGxldCB0YWJsZUJvZHk6IE5vZGVMaXN0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgndGFibGVbdGFibGUtaWQ9XCInICsgdGhpcy50YWJsZUlkICsgJ1wiXSB0Ym9keSB0ciB0ZCcpO1xuICAgICAgdGFibGVCb2R5LmZvckVhY2goKHRhYmxlQm9keVJvdzogTm9kZSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0YWJsZUJvZHlSb3csICdoZWFkZXItbmFtZScsIHRhYmxlSGVhZGVyc1tpbmRleCAlIHRhYmxlSGVhZGVycy5sZW5ndGhdKTtcbiAgICAgIH0pO1xuXG4gICAgICAvL0NyZWF0ZXMgYSBjb3B5IG9mIG1vYmlsZS1tZW51LXRyaWdnZXIgZWxlbWVudCBmb3IgZWFjaCB0clxuICAgICAgbGV0IHRhYmxlQm9keVJvd3M6IE5vZGVMaXN0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgndGFibGVbdGFibGUtaWQ9XCInICsgdGhpcy50YWJsZUlkICsgJ1wiXSB0Ym9keSB0cicpO1xuICAgICAgbGV0IGNsb3NlQnV0dG9uczogTm9kZUxpc3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdncmF2aXR5LWJ1dHRvbltpZC1yZWZlcmVuY2U9XCJjbG9zZS1idXR0b25cIl0nKTtcblxuICAgICAgdGFibGVCb2R5Um93cy5mb3JFYWNoKCh0cjogTm9kZSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICBsZXQgbW9iaWxlTWVudVRyaWdnZXI6IEhUTUxEaXZFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MobW9iaWxlTWVudVRyaWdnZXIsICdtb2JpbGUtbWVudS10cmlnZ2VyJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKG1vYmlsZU1lbnVUcmlnZ2VyLCAnY2xvbmVkLW5vZGUnLCAndHJ1ZScpO1xuXG4gICAgICAgIGxldCBtZW51VG9nZ2xlOiBIVE1MRGl2RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKG1lbnVUb2dnbGUsICdtZW51LXRvZ2dsZScpO1xuICAgICAgICBtZW51VG9nZ2xlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSk7XG4gICAgICAgIG1lbnVUb2dnbGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpKTtcbiAgICAgICAgbWVudVRvZ2dsZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykpO1xuICAgICAgICBtZW51VG9nZ2xlLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgaWYgKG1lbnVUb2dnbGUuY2xhc3NMaXN0LmNvbnRhaW5zKCdvcGVuJykpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MobWVudVRvZ2dsZSwgJ29wZW4nKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MobWVudVRvZ2dsZS5wYXJlbnRFbGVtZW50Lmxhc3RFbGVtZW50Q2hpbGQsICdvcGVuJyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MobWVudVRvZ2dsZSwgJ29wZW4nKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MobWVudVRvZ2dsZS5wYXJlbnRFbGVtZW50Lmxhc3RFbGVtZW50Q2hpbGQsICdvcGVuJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgbW9iaWxlTWVudVRyaWdnZXIuYXBwZW5kQ2hpbGQobWVudVRvZ2dsZSk7XG5cbiAgICAgICAgbGV0IHBhbmVsOiBIVE1MRGl2RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHBhbmVsLCAncGFuZWwnKTtcblxuICAgICAgICBsZXQgY2xvc2VCdXR0b25Gcm9tTm9kZUxpc3Q6IE5vZGUgPSBjbG9zZUJ1dHRvbnMuaXRlbShpbmRleCk7XG4gICAgICAgIGxldCBjbG9zZUJ1dHRvblJlbW92ZWQ6IE5vZGUgPSBjbG9zZUJ1dHRvbkZyb21Ob2RlTGlzdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGNsb3NlQnV0dG9uRnJvbU5vZGVMaXN0KTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoY2xvc2VCdXR0b25SZW1vdmVkLCAnY2xvbmVkLWJ1dHRvbicsICd0cnVlJyk7XG4gICAgICAgIGNsb3NlQnV0dG9uUmVtb3ZlZC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MobWVudVRvZ2dsZSwgJ29wZW4nKTtcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKG1lbnVUb2dnbGUucGFyZW50RWxlbWVudC5sYXN0RWxlbWVudENoaWxkLCAnb3BlbicpO1xuICAgICAgICB9KTtcblxuICAgICAgICBwYW5lbC5hcHBlbmQoY2xvc2VCdXR0b25SZW1vdmVkKTtcblxuICAgICAgICBtb2JpbGVNZW51VHJpZ2dlci5hcHBlbmRDaGlsZChwYW5lbCk7XG5cbiAgICAgICAgdHIuaW5zZXJ0QmVmb3JlKG1vYmlsZU1lbnVUcmlnZ2VyLCB0ci5maXJzdENoaWxkKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWRqdXN0VGFibGVUeXBlKCk6IHZvaWQge1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy50YWJsZUVsZW1lbnQsICdzdGFuZGFyZC10YWJsZScpO1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy50YWJsZUVsZW1lbnQsICdjb21wcmVzc2VkLXRhYmxlJyk7XG5cbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMudGFibGVFbGVtZW50LCB0aGlzLnR5cGUgKyAnLXRhYmxlJyk7XG4gIH1cblxuICBwcml2YXRlIGFkanVzdEJ1dHRvbnNTaXplKCk6IHZvaWQge1xuICAgIGxldCBhY3Rpb25zQ29sdW1uczogTm9kZUxpc3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCd0YWJsZVt0YWJsZS1pZD1cIicgKyB0aGlzLnRhYmxlSWQgKyAnXCJdIC5hY3Rpb25zLWNvbHVtbicpO1xuICAgIGFjdGlvbnNDb2x1bW5zLmZvckVhY2goKGFjdGlvbnNDb2x1bW46IE5vZGUpID0+IHtcbiAgICAgIGFjdGlvbnNDb2x1bW4uY2hpbGROb2Rlcy5mb3JFYWNoKChncmF2aXR5QnV0dG9uOiBOb2RlKSA9PiB7XG4gICAgICAgIGxldCBidXR0b246IE5vZGUgPSBncmF2aXR5QnV0dG9uLmNoaWxkTm9kZXNbMF07XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhidXR0b24sICdncmF2aXR5LXNpemUtbGcnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhidXR0b24sICdncmF2aXR5LXNpemUtbWQnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhidXR0b24sICdncmF2aXR5LXNpemUtc20nKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhidXR0b24sICdsZy1ib2xkJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoYnV0dG9uLCAnbWQtYm9sZCcpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGJ1dHRvbiwgJ3NtLWJvbGQnKTtcblxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGJ1dHRvbiwgJ2dyYXZpdHktc2l6ZS1zbScpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGJ1dHRvbiwgJ3NtLWJvbGQnKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gIHByaXZhdGUgb25SZXNpemUoKTogdm9pZCB7XG4gICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDw9IDU3Nikge1xuICAgICAgdGhpcy50YWJsZVNpemUgPSAnc20nO1xuICAgIH0gZWxzZSBpZiAod2luZG93LmlubmVyV2lkdGggPD0gOTkyKSB7XG4gICAgICB0aGlzLnRhYmxlU2l6ZSA9ICdtZCc7XG4gICAgfSBlbHNlIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA8PSAxNDQwKSB7XG4gICAgICB0aGlzLnRhYmxlU2l6ZSA9ICdsZyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGFibGVTaXplID0gJ3hsJztcbiAgICB9XG5cbiAgICB0aGlzLmFkanVzdFRhYmxlU2l6ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGp1c3RUYWJsZVNpemUoKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnRhYmxlRWxlbWVudCwgJ3NtLXRhYmxlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnRhYmxlRWxlbWVudCwgJ21kLXRhYmxlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnRhYmxlRWxlbWVudCwgJ2xnLXRhYmxlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnRhYmxlRWxlbWVudCwgJ3hsLXRhYmxlJyk7XG5cbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMudGFibGVFbGVtZW50LCB0aGlzLnRhYmxlU2l6ZSArICctdGFibGUnKTtcblxuICAgIHRoaXMuYWRqdXN0VGFibGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRqdXN0VGFibGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudGFibGVTaXplID09ICdtZCcgfHwgdGhpcy50YWJsZVNpemUgPT0gJ3NtJykge1xuICAgICAgbGV0IHRhYmxlQm9keVJvd3M6IE5vZGVMaXN0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgndGFibGVbdGFibGUtaWQ9XCInICsgdGhpcy50YWJsZUlkICsgJ1wiXSB0Ym9keSB0cicpO1xuICAgICAgbGV0IHRhYmxlQm9keVJvd3NBY3Rpb25zOiBOb2RlTGlzdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RhYmxlW3RhYmxlLWlkPVwiJyArIHRoaXMudGFibGVJZCArICdcIl0gdGJvZHkgdHIgdGQuYWN0aW9ucy1jb2x1bW4nKTtcbiAgICAgIGxldCB0YWJsZUJvZHlSb3dzTWVudVRyaWdnZXI6IE5vZGVMaXN0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgndGFibGVbdGFibGUtaWQ9XCInICsgdGhpcy50YWJsZUlkICsgJ1wiXSB0Ym9keSB0ciAubW9iaWxlLW1lbnUtdHJpZ2dlcltjbG9uZWQtbm9kZT1cInRydWVcIl0nKTtcblxuICAgICAgdGFibGVCb2R5Um93cy5mb3JFYWNoKCh0cjogTm9kZSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICBsZXQgbW9iaWxlTWVudVRyaWdnZXI6IE5vZGUgPSB0YWJsZUJvZHlSb3dzTWVudVRyaWdnZXIuaXRlbShpbmRleCk7XG4gICAgICAgIGxldCBtb2JpbGVNZW51VHJpZ2dlclBhbmVsOiBOb2RlID0gbW9iaWxlTWVudVRyaWdnZXIubGFzdENoaWxkO1xuXG4gICAgICAgIGlmICh0YWJsZUJvZHlSb3dzQWN0aW9ucy5pdGVtKGluZGV4KSAmJiBtb2JpbGVNZW51VHJpZ2dlclBhbmVsKSB7XG4gICAgICAgICAgdGhpcy5hcHBlbmROb2Rlc0xpc3QobW9iaWxlTWVudVRyaWdnZXJQYW5lbCwgdGFibGVCb2R5Um93c0FjdGlvbnMuaXRlbShpbmRleCkuY2hpbGROb2Rlcyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnRhYmxlU2l6ZSA9PSAnbGcnIHx8IHRoaXMudGFibGVTaXplID09ICd4bCcpIHtcbiAgICAgIGxldCB0YWJsZUJvZHlSb3dzOiBOb2RlTGlzdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RhYmxlW3RhYmxlLWlkPVwiJyArIHRoaXMudGFibGVJZCArICdcIl0gdGJvZHkgdHInKTtcbiAgICAgIGxldCB0YWJsZUJvZHlSb3dzQWN0aW9uczogTm9kZUxpc3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCd0YWJsZVt0YWJsZS1pZD1cIicgKyB0aGlzLnRhYmxlSWQgKyAnXCJdIHRib2R5IHRyIHRkLmFjdGlvbnMtY29sdW1uJyk7XG4gICAgICBsZXQgdGFibGVCb2R5Um93c01lbnVUcmlnZ2VyOiBOb2RlTGlzdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RhYmxlW3RhYmxlLWlkPVwiJyArIHRoaXMudGFibGVJZCArICdcIl0gdGJvZHkgdHIgLm1vYmlsZS1tZW51LXRyaWdnZXJbY2xvbmVkLW5vZGU9XCJ0cnVlXCJdJyk7XG5cbiAgICAgIHRhYmxlQm9keVJvd3MuZm9yRWFjaCgodHI6IE5vZGUsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgaWYgKHRhYmxlQm9keVJvd3NBY3Rpb25zLml0ZW0oaW5kZXgpKSB7XG4gICAgICAgICAgdGhpcy5hcHBlbmROb2Rlc0xpc3QodGFibGVCb2R5Um93c0FjdGlvbnMuaXRlbShpbmRleCksIHRhYmxlQm9keVJvd3NNZW51VHJpZ2dlci5pdGVtKGluZGV4KS5sYXN0Q2hpbGQuY2hpbGROb2Rlcyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwZW5kTm9kZXNMaXN0KGVsZW1lbnRUb0FwcGVuZDogTm9kZSwgbm9kZXNMaXN0OiBOb2RlTGlzdE9mPENoaWxkTm9kZT4pOiBOb2RlIHtcbiAgICBpZiAodGhpcy50YWJsZVNpemUgPT0gJ21kJyB8fCB0aGlzLnRhYmxlU2l6ZSA9PSAnc20nKSB7XG4gICAgICBsZXQgbm9kZUxpc3RJbmRleDogbnVtYmVyID0gbm9kZXNMaXN0Lmxlbmd0aCAtIDE7XG5cbiAgICAgIHdoaWxlIChub2Rlc0xpc3QubGVuZ3RoICE9IDApIHtcbiAgICAgICAgbGV0IHJlbW92ZWROb2RlOiBOb2RlID0gbm9kZXNMaXN0Lml0ZW0obm9kZUxpc3RJbmRleCkucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChub2Rlc0xpc3QuaXRlbShub2RlTGlzdEluZGV4KSk7XG4gICAgICAgIGVsZW1lbnRUb0FwcGVuZC5pbnNlcnRCZWZvcmUocmVtb3ZlZE5vZGUsIGVsZW1lbnRUb0FwcGVuZC5maXJzdENoaWxkKTtcbiAgICAgICAgbm9kZUxpc3RJbmRleC0tO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZWxlbWVudFRvQXBwZW5kO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnRhYmxlU2l6ZSA9PSAnbGcnIHx8IHRoaXMudGFibGVTaXplID09ICd4bCcpIHtcbiAgICAgIGxldCBub2RlTGlzdEluZGV4OiBudW1iZXIgPSBub2Rlc0xpc3QubGVuZ3RoIC0gMTtcblxuICAgICAgd2hpbGUgKG5vZGVzTGlzdC5sZW5ndGggIT0gMSkge1xuICAgICAgICBsZXQgaXRlbTogTm9kZSA9IG5vZGVzTGlzdC5pdGVtKG5vZGVMaXN0SW5kZXgpO1xuICAgICAgICBsZXQgY2xvc2VCdXR0b25Ob2RlOiBOb2RlID0gaXRlbS5wYXJlbnROb2RlLnF1ZXJ5U2VsZWN0b3JBbGwoJ2dyYXZpdHktYnV0dG9uW2lkLXJlZmVyZW5jZT1cImNsb3NlLWJ1dHRvblwiXScpLml0ZW0oMCk7XG5cbiAgICAgICAgaWYgKGl0ZW0gIT0gY2xvc2VCdXR0b25Ob2RlKSB7XG4gICAgICAgICAgbGV0IHJlbW92ZWROb2RlOiBOb2RlID0gaXRlbS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGl0ZW0pO1xuICAgICAgICAgIGVsZW1lbnRUb0FwcGVuZC5pbnNlcnRCZWZvcmUocmVtb3ZlZE5vZGUsIGVsZW1lbnRUb0FwcGVuZC5maXJzdENoaWxkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIG5vZGVMaXN0SW5kZXgtLTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGVsZW1lbnRUb0FwcGVuZDtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0YWJsZS1jb250YWluZXIge3t0YWJsZVNpemV9fVwiICN0YWJsZUNvbnRhaW5lcj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG5cbjxncmF2aXR5LWJ1dHRvbiBpZC1yZWZlcmVuY2U9XCJjbG9zZS1idXR0b25cIiBbaWNvbk5hbWVdPVwiJ3Vuc3VjY2VzcydcIiBbdHlwZV09XCIndGVydGlhcnknXCIgW3NpemVdPVwiJ3NtJ1wiPkNsb3NlIG1lbnU8L2dyYXZpdHktYnV0dG9uPlxuPGdyYXZpdHktYnV0dG9uIGlkLXJlZmVyZW5jZT1cImNsb3NlLWJ1dHRvblwiIFtpY29uTmFtZV09XCIndW5zdWNjZXNzJ1wiIFt0eXBlXT1cIid0ZXJ0aWFyeSdcIiBbc2l6ZV09XCInc20nXCI+Q2xvc2UgbWVudTwvZ3Jhdml0eS1idXR0b24+XG48Z3Jhdml0eS1idXR0b24gaWQtcmVmZXJlbmNlPVwiY2xvc2UtYnV0dG9uXCIgW2ljb25OYW1lXT1cIid1bnN1Y2Nlc3MnXCIgW3R5cGVdPVwiJ3RlcnRpYXJ5J1wiIFtzaXplXT1cIidzbSdcIj5DbG9zZSBtZW51PC9ncmF2aXR5LWJ1dHRvbj5cbjxncmF2aXR5LWJ1dHRvbiBpZC1yZWZlcmVuY2U9XCJjbG9zZS1idXR0b25cIiBbaWNvbk5hbWVdPVwiJ3Vuc3VjY2VzcydcIiBbdHlwZV09XCIndGVydGlhcnknXCIgW3NpemVdPVwiJ3NtJ1wiPkNsb3NlIG1lbnU8L2dyYXZpdHktYnV0dG9uPlxuPGdyYXZpdHktYnV0dG9uIGlkLXJlZmVyZW5jZT1cImNsb3NlLWJ1dHRvblwiIFtpY29uTmFtZV09XCIndW5zdWNjZXNzJ1wiIFt0eXBlXT1cIid0ZXJ0aWFyeSdcIiBbc2l6ZV09XCInc20nXCI+Q2xvc2UgbWVudTwvZ3Jhdml0eS1idXR0b24+XG48Z3Jhdml0eS1idXR0b24gaWQtcmVmZXJlbmNlPVwiY2xvc2UtYnV0dG9uXCIgW2ljb25OYW1lXT1cIid1bnN1Y2Nlc3MnXCIgW3R5cGVdPVwiJ3RlcnRpYXJ5J1wiIFtzaXplXT1cIidzbSdcIj5DbG9zZSBtZW51PC9ncmF2aXR5LWJ1dHRvbj5cbjxncmF2aXR5LWJ1dHRvbiBpZC1yZWZlcmVuY2U9XCJjbG9zZS1idXR0b25cIiBbaWNvbk5hbWVdPVwiJ3Vuc3VjY2VzcydcIiBbdHlwZV09XCIndGVydGlhcnknXCIgW3NpemVdPVwiJ3NtJ1wiPkNsb3NlIG1lbnU8L2dyYXZpdHktYnV0dG9uPlxuPGdyYXZpdHktYnV0dG9uIGlkLXJlZmVyZW5jZT1cImNsb3NlLWJ1dHRvblwiIFtpY29uTmFtZV09XCIndW5zdWNjZXNzJ1wiIFt0eXBlXT1cIid0ZXJ0aWFyeSdcIiBbc2l6ZV09XCInc20nXCI+Q2xvc2UgbWVudTwvZ3Jhdml0eS1idXR0b24+XG48Z3Jhdml0eS1idXR0b24gaWQtcmVmZXJlbmNlPVwiY2xvc2UtYnV0dG9uXCIgW2ljb25OYW1lXT1cIid1bnN1Y2Nlc3MnXCIgW3R5cGVdPVwiJ3RlcnRpYXJ5J1wiIFtzaXplXT1cIidzbSdcIj5DbG9zZSBtZW51PC9ncmF2aXR5LWJ1dHRvbj5cbiJdfQ==
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncmF2aXR5LWRlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2dyYXZpdHktdGFibGUvZ3Jhdml0eS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncmF2aXR5LWRlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2dyYXZpdHktdGFibGUvZ3Jhdml0eS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBSUwsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDOzs7QUFPdkIsTUFBTSxPQUFPLHFCQUFxQjtJQVVoQyxZQUE2QixRQUFtQjtRQUFuQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBVGhDLGlCQUFZLEdBQThCLFVBQVUsQ0FBQztRQUNyRCxtQkFBYyxHQUF1QyxNQUFNLENBQUM7UUFHcEUsY0FBUyxHQUFZLElBQUksQ0FBQztRQUMxQixpQkFBWSxHQUFlLElBQUksQ0FBQztRQUVqQyxjQUFTLEdBQThCLElBQUksQ0FBQztRQUdqRCxJQUFJLFlBQVksR0FBVyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hELElBQUksWUFBWSxHQUFXLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFFOUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsQ0FBQyxZQUFZLEdBQUcsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEUsSUFBSSxD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U0FBUyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksRUFBRTtZQUNwRCxJQUFJLGFBQWEsR0FBVyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUVqRCxPQUFPLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO2dCQUM1QixJQUFJLElBQUksR0FBUyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUMvQyxJQUFJLGVBQWUsR0FBUyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLDZDQUE2QyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUVwSCxJQUFJLElBQUksSUFBSSxlQUFlLEVBQUU7b0JBQzNCLElBQUksV0FBVyxHQUFTLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMxRCxlQUFlLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQ3ZFO2dCQUVELGFBQWEsRUFBRSxDQUFDO2FBQ2pCO1lBRUQsT0FBTyxlQUFlLENBQUM7U0FDeEI7SUFDSCxDQUFDOytHQXZPVSxxQkFBcUI7bUdBQXJCLHFCQUFxQixzVUNsQmxDLG8xQ0FhQTs7NEZES2EscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGVBQWU7Z0dBS1QsWUFBWTtzQkFBM0IsS0FBSztnQkFDVSxjQUFjO3NCQUE3QixLQUFLO2dCQUN1QyxjQUFjO3NCQUExRCxTQUFTO3VCQUFDLGdCQUFnQjtnQkE2SW5CLFFBQVE7c0JBRGYsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRDaGVja2VkLFxuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgUmVuZGVyZXIyLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dyYXZpdHktdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3Jhdml0eS10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dyYXZpdHktdGFibGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBHcmF2aXR5VGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIEFmdGVyQ29udGVudENoZWNrZWQge1xuICBASW5wdXQoKSBwdWJsaWMgdGFibGVEZW5zaXR5OiAnc3RhbmRhcmQnIHwgJ2NvbXByZXNzZWQnID0gXCJzdGFuZGFyZFwiO1xuICBASW5wdXQoKSBwdWJsaWMgdGFibGVTaXplSW5wdXQ6ICd4bCcgfCAnbGcnIHwgJ21kJyB8ICdzbScgfCAnYXV0bycgPSBcImF1dG9cIjtcbiAgQFZpZXdDaGlsZCgndGFibGVDb250YWluZXInKSBwdWJsaWMgcmVhZG9ubHkgdGFibGVDb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgcHJpdmF0ZSBmaXJzdFRpbWU6IGJvb2xlYW4gPSB0cnVlO1xuICBwcml2YXRlIHRhYmxlRWxlbWVudDogRWxlbWVudFJlZiA9IG51bGw7XG4gIHB1YmxpYyB0YWJsZUlkOiBzdHJpbmc7XG4gIHB1YmxpYyB0YWJsZVNpemU6ICd4bCcgfCAnbGcnIHwgJ21kJyB8ICdzbScgPSAneGwnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xuICAgIGxldCBtaWxsaXNlY29uZHM6IG51bWJlciA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgIGxldCByYW5kb21OdW1iZXI6IG51bWJlciA9IE1hdGgucmFuZG9tKCkgKiAxMDtcblxuICAgIHRoaXMudGFibGVJZCA9ICcnICsgKG1pbGxpc2Vjb25kcyAqIHJhbmRvbU51bWJlciAvIDIpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMudGFibGVFbGVtZW50ID0gdGhpcy50YWJsZUNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudD8uY2hpbGROb2Rlc1swXTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLnRhYmxlRWxlbWVudCwgJ3RhYmxlLWlkJywgdGhpcy50YWJsZUlkKTtcblxuICAgIGxldCB0YWJsZUhlYWRlcnM6IHN0cmluZ1tdID0gdGhpcy5nZXRUYWJsZUhlYWRlcnMoKTtcbiAgICB0aGlzLmluaXRpYWxpemVUYWJsZSh0YWJsZUhlYWRlcnMpO1xuICAgIHRoaXMuYWRqdXN0VGFibGVEZW5zaXR5KHRoaXMudGFibGVEZW5zaXR5KTtcbiAgICB0aGlzLmFkanVzdEJ1dHRvbnNTaXplKCk7XG4gICAgdGhpcy5vblJlc2l6ZSgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmICh0aGlzLnRhYmxlRWxlbWVudCkge1xuICAgICAgaWYgKGNoYW5nZXNbJ3RhYmxlRGVuc2l0eSddKSB7XG4gICAgICAgIHRoaXMuYWRqdXN0VGFibGVEZW5zaXR5KGNoYW5nZXNbJ3RhYmxlRGVuc2l0eSddLmN1cnJlbnRWYWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChjaGFuZ2VzWyd0YWJsZVNpemVJbnB1dCddKSB7XG4gICAgICAgIHRoaXMudGFibGVTaXplSW5wdXQgPSBjaGFuZ2VzWyd0YWJsZVNpemVJbnB1dCddLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgdGhpcy5vblJlc2l6ZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpIHtcbiAgICBpZiAodGhpcy50YWJsZUVsZW1lbnQpIHtcbiAgICAgIGxldCB0YWJsZUhlYWRlcnM6IHN0cmluZ1tdID0gdGhpcy5nZXRUYWJsZUhlYWRlcnMoKTtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZVRhYmxlKHRhYmxlSGVhZGVycyk7XG4gICAgICB0aGlzLmFkanVzdFRhYmxlRGVuc2l0eSh0aGlzLnRhYmxlRGVuc2l0eSk7XG4gICAgICB0aGlzLmFkanVzdEJ1dHRvbnNTaXplKCk7XG4gICAgICB0aGlzLm9uUmVzaXplKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRUYWJsZUhlYWRlcnMoKTogc3RyaW5nW10ge1xuICAgIGxldCB0YWJsZUhlYWRlckl0ZW1zOiBOb2RlTGlzdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RoZWFkIHRyIHRoJyk7XG4gICAgbGV0IHRhYmxlSGVhZGVyczogc3RyaW5nW10gPSBbXTtcblxuICAgIHRhYmxlSGVhZGVySXRlbXMuZm9yRWFjaCgodGFibGVIZWFkZXJJdGVtOiBOb2RlKSA9PiB7XG4gICAgICB0YWJsZUhlYWRlcnMucHVzaCh0YWJsZUhlYWRlckl0ZW0uY2hpbGROb2Rlc1swXS5ub2RlVmFsdWUpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRhYmxlSGVhZGVycztcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZVRhYmxlKHRhYmxlSGVhZGVyczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5maXJzdFRpbWUpIHtcbiAgICAgIHRoaXMuZmlyc3RUaW1lID0gZmFsc2U7XG5cbiAgICAgIC8vU2V0IGNvcnJlc3BvbmRpbmcgdGFibGVIZWFkZXIgYXMgYW4gYXR0cmlidXRlIG9mIGVhY2ggdGRcbiAgICAgIGxldCB0YWJsZUJvZHk6IE5vZGVMaXN0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgndGFibGVbdGFibGUtaWQ9XCInICsgdGhpcy50YWJsZUlkICsgJ1wiXSB0Ym9keSB0ciB0ZCcpO1xuICAgICAgdGFibGVCb2R5LmZvckVhY2goKHRhYmxlQm9keVJvdzogTm9kZSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0YWJsZUJvZHlSb3csICdoZWFkZXItbmFtZScsIHRhYmxlSGVhZGVyc1tpbmRleCAlIHRhYmxlSGVhZGVycy5sZW5ndGhdKTtcbiAgICAgIH0pO1xuXG4gICAgICAvL0NyZWF0ZXMgYSBjb3B5IG9mIG1vYmlsZS1tZW51LXRyaWdnZXIgZWxlbWVudCBmb3IgZWFjaCB0clxuICAgICAgbGV0IHRhYmxlQm9keVJvd3M6IE5vZGVMaXN0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgndGFibGVbdGFibGUtaWQ9XCInICsgdGhpcy50YWJsZUlkICsgJ1wiXSB0Ym9keSB0cicpO1xuICAgICAgbGV0IGNsb3NlQnV0dG9uczogTm9kZUxpc3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdncmF2aXR5LWJ1dHRvbltpZC1yZWZlcmVuY2U9XCJjbG9zZS1idXR0b25cIl0nKTtcblxuICAgICAgdGFibGVCb2R5Um93cy5mb3JFYWNoKCh0cjogTm9kZSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICBsZXQgbW9iaWxlTWVudVRyaWdnZXI6IEhUTUxEaXZFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MobW9iaWxlTWVudVRyaWdnZXIsICdtb2JpbGUtbWVudS10cmlnZ2VyJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKG1vYmlsZU1lbnVUcmlnZ2VyLCAnY2xvbmVkLW5vZGUnLCAndHJ1ZScpO1xuXG4gICAgICAgIGxldCBtZW51VG9nZ2xlOiBIVE1MRGl2RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKG1lbnVUb2dnbGUsICdtZW51LXRvZ2dsZScpO1xuICAgICAgICBtZW51VG9nZ2xlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSk7XG4gICAgICAgIG1lbnVUb2dnbGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpKTtcbiAgICAgICAgbWVudVRvZ2dsZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykpO1xuICAgICAgICBtZW51VG9nZ2xlLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgaWYgKG1lbnVUb2dnbGUuY2xhc3NMaXN0LmNvbnRhaW5zKCdvcGVuJykpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MobWVudVRvZ2dsZSwgJ29wZW4nKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MobWVudVRvZ2dsZS5wYXJlbnRFbGVtZW50Lmxhc3RFbGVtZW50Q2hpbGQsICdvcGVuJyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MobWVudVRvZ2dsZSwgJ29wZW4nKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MobWVudVRvZ2dsZS5wYXJlbnRFbGVtZW50Lmxhc3RFbGVtZW50Q2hpbGQsICdvcGVuJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgbW9iaWxlTWVudVRyaWdnZXIuYXBwZW5kQ2hpbGQobWVudVRvZ2dsZSk7XG5cbiAgICAgICAgbGV0IHBhbmVsOiBIVE1MRGl2RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHBhbmVsLCAncGFuZWwnKTtcblxuICAgICAgICBsZXQgY2xvc2VCdXR0b25Gcm9tTm9kZUxpc3Q6IE5vZGUgPSBjbG9zZUJ1dHRvbnMuaXRlbShpbmRleCk7XG4gICAgICAgIGxldCBjbG9zZUJ1dHRvblJlbW92ZWQ6IE5vZGUgPSBjbG9zZUJ1dHRvbkZyb21Ob2RlTGlzdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGNsb3NlQnV0dG9uRnJvbU5vZGVMaXN0KTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoY2xvc2VCdXR0b25SZW1vdmVkLCAnY2xvbmVkLWJ1dHRvbicsICd0cnVlJyk7XG4gICAgICAgIGNsb3NlQnV0dG9uUmVtb3ZlZC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MobWVudVRvZ2dsZSwgJ29wZW4nKTtcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKG1lbnVUb2dnbGUucGFyZW50RWxlbWVudC5sYXN0RWxlbWVudENoaWxkLCAnb3BlbicpO1xuICAgICAgICB9KTtcblxuICAgICAgICBwYW5lbC5hcHBlbmQoY2xvc2VCdXR0b25SZW1vdmVkKTtcblxuICAgICAgICBtb2JpbGVNZW51VHJpZ2dlci5hcHBlbmRDaGlsZChwYW5lbCk7XG5cbiAgICAgICAgdHIuaW5zZXJ0QmVmb3JlKG1vYmlsZU1lbnVUcmlnZ2VyLCB0ci5maXJzdENoaWxkKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWRqdXN0VGFibGVEZW5zaXR5KGRlbnNpdHlWYWx1ZTogJ3N0YW5kYXJkJyB8ICdjb21wcmVzc2VkJyk6IHZvaWQge1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy50YWJsZUVsZW1lbnQsICdzdGFuZGFyZC10YWJsZScpO1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy50YWJsZUVsZW1lbnQsICdjb21wcmVzc2VkLXRhYmxlJyk7XG5cbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMudGFibGVFbGVtZW50LCBkZW5zaXR5VmFsdWUgKyAnLXRhYmxlJyk7XG4gIH1cblxuICBwcml2YXRlIGFkanVzdEJ1dHRvbnNTaXplKCk6IHZvaWQge1xuICAgIGxldCBhY3Rpb25zQ29sdW1uczogTm9kZUxpc3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCd0YWJsZVt0YWJsZS1pZD1cIicgKyB0aGlzLnRhYmxlSWQgKyAnXCJdIC5hY3Rpb25zLWNvbHVtbicpO1xuICAgIGFjdGlvbnNDb2x1bW5zLmZvckVhY2goKGFjdGlvbnNDb2x1bW46IE5vZGUpID0+IHtcbiAgICAgIGFjdGlvbnNDb2x1bW4uY2hpbGROb2Rlcy5mb3JFYWNoKChncmF2aXR5QnV0dG9uOiBOb2RlKSA9PiB7XG4gICAgICAgIGxldCBidXR0b246IE5vZGUgPSBncmF2aXR5QnV0dG9uLmNoaWxkTm9kZXNbMF07XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhidXR0b24sICdncmF2aXR5LXNpemUtbGcnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhidXR0b24sICdncmF2aXR5LXNpemUtbWQnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhidXR0b24sICdncmF2aXR5LXNpemUtc20nKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhidXR0b24sICdsZy1ib2xkJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoYnV0dG9uLCAnbWQtYm9sZCcpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGJ1dHRvbiwgJ3NtLWJvbGQnKTtcblxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGJ1dHRvbiwgJ2dyYXZpdHktc2l6ZS1zbScpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGJ1dHRvbiwgJ3NtLWJvbGQnKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gIHByaXZhdGUgb25SZXNpemUoKTogdm9pZCB7XG4gICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDw9IDU3Nikge1xuICAgICAgdGhpcy50YWJsZVNpemUgPSAnc20nO1xuICAgIH0gZWxzZSBpZiAod2luZG93LmlubmVyV2lkdGggPD0gOTkyKSB7XG4gICAgICB0aGlzLnRhYmxlU2l6ZSA9ICdtZCc7XG4gICAgfSBlbHNlIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA8PSAxNDQwKSB7XG4gICAgICB0aGlzLnRhYmxlU2l6ZSA9ICdsZyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGFibGVTaXplID0gJ3hsJztcbiAgICB9XG5cbiAgICB0aGlzLmFkanVzdFRhYmxlU2l6ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGp1c3RUYWJsZVNpemUoKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnRhYmxlRWxlbWVudCwgJ3NtLXRhYmxlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnRhYmxlRWxlbWVudCwgJ21kLXRhYmxlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnRhYmxlRWxlbWVudCwgJ2xnLXRhYmxlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnRhYmxlRWxlbWVudCwgJ3hsLXRhYmxlJyk7XG5cbiAgICBpZiAodGhpcy50YWJsZVNpemVJbnB1dCAhPSAnYXV0bycpIHtcbiAgICAgIHRoaXMudGFibGVTaXplID0gdGhpcy50YWJsZVNpemVJbnB1dDtcbiAgICB9XG5cbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMudGFibGVFbGVtZW50LCB0aGlzLnRhYmxlU2l6ZSArICctdGFibGUnKTtcbiAgICB0aGlzLmFkanVzdFRhYmxlKCk7XG4gIH1cblxuICBwcml2YXRlIGFkanVzdFRhYmxlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRhYmxlU2l6ZSA9PSAnbWQnIHx8IHRoaXMudGFibGVTaXplID09ICdzbScpIHtcbiAgICAgIGxldCB0YWJsZUJvZHlSb3dzOiBOb2RlTGlzdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RhYmxlW3RhYmxlLWlkPVwiJyArIHRoaXMudGFibGVJZCArICdcIl0gdGJvZHkgdHInKTtcbiAgICAgIGxldCB0YWJsZUJvZHlSb3dzQWN0aW9uczogTm9kZUxpc3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCd0YWJsZVt0YWJsZS1pZD1cIicgKyB0aGlzLnRhYmxlSWQgKyAnXCJdIHRib2R5IHRyIHRkLmFjdGlvbnMtY29sdW1uJyk7XG4gICAgICBsZXQgdGFibGVCb2R5Um93c01lbnVUcmlnZ2VyOiBOb2RlTGlzdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RhYmxlW3RhYmxlLWlkPVwiJyArIHRoaXMudGFibGVJZCArICdcIl0gdGJvZHkgdHIgLm1vYmlsZS1tZW51LXRyaWdnZXJbY2xvbmVkLW5vZGU9XCJ0cnVlXCJdJyk7XG5cbiAgICAgIHRhYmxlQm9keVJvd3MuZm9yRWFjaCgodHI6IE5vZGUsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgbGV0IG1vYmlsZU1lbnVUcmlnZ2VyOiBOb2RlID0gdGFibGVCb2R5Um93c01lbnVUcmlnZ2VyLml0ZW0oaW5kZXgpO1xuICAgICAgICBsZXQgbW9iaWxlTWVudVRyaWdnZXJQYW5lbDogTm9kZSA9IG1vYmlsZU1lbnVUcmlnZ2VyLmxhc3RDaGlsZDtcblxuICAgICAgICBpZiAodGFibGVCb2R5Um93c0FjdGlvbnMuaXRlbShpbmRleCkgJiYgbW9iaWxlTWVudVRyaWdnZXJQYW5lbCkge1xuICAgICAgICAgIHRoaXMuYXBwZW5kTm9kZXNMaXN0KG1vYmlsZU1lbnVUcmlnZ2VyUGFuZWwsIHRhYmxlQm9keVJvd3NBY3Rpb25zLml0ZW0oaW5kZXgpLmNoaWxkTm9kZXMpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50YWJsZVNpemUgPT0gJ2xnJyB8fCB0aGlzLnRhYmxlU2l6ZSA9PSAneGwnKSB7XG4gICAgICBsZXQgdGFibGVCb2R5Um93czogTm9kZUxpc3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCd0YWJsZVt0YWJsZS1pZD1cIicgKyB0aGlzLnRhYmxlSWQgKyAnXCJdIHRib2R5IHRyJyk7XG4gICAgICBsZXQgdGFibGVCb2R5Um93c0FjdGlvbnM6IE5vZGVMaXN0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgndGFibGVbdGFibGUtaWQ9XCInICsgdGhpcy50YWJsZUlkICsgJ1wiXSB0Ym9keSB0ciB0ZC5hY3Rpb25zLWNvbHVtbicpO1xuICAgICAgbGV0IHRhYmxlQm9keVJvd3NNZW51VHJpZ2dlcjogTm9kZUxpc3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCd0YWJsZVt0YWJsZS1pZD1cIicgKyB0aGlzLnRhYmxlSWQgKyAnXCJdIHRib2R5IHRyIC5tb2JpbGUtbWVudS10cmlnZ2VyW2Nsb25lZC1ub2RlPVwidHJ1ZVwiXScpO1xuXG4gICAgICB0YWJsZUJvZHlSb3dzLmZvckVhY2goKHRyOiBOb2RlLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGlmICh0YWJsZUJvZHlSb3dzQWN0aW9ucy5pdGVtKGluZGV4KSkge1xuICAgICAgICAgIHRoaXMuYXBwZW5kTm9kZXNMaXN0KHRhYmxlQm9keVJvd3NBY3Rpb25zLml0ZW0oaW5kZXgpLCB0YWJsZUJvZHlSb3dzTWVudVRyaWdnZXIuaXRlbShpbmRleCkubGFzdENoaWxkLmNoaWxkTm9kZXMpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGVuZE5vZGVzTGlzdChlbGVtZW50VG9BcHBlbmQ6IE5vZGUsIG5vZGVzTGlzdDogTm9kZUxpc3RPZjxDaGlsZE5vZGU+KTogTm9kZSB7XG4gICAgaWYgKHRoaXMudGFibGVTaXplID09ICdtZCcgfHwgdGhpcy50YWJsZVNpemUgPT0gJ3NtJykge1xuICAgICAgbGV0IG5vZGVMaXN0SW5kZXg6IG51bWJlciA9IG5vZGVzTGlzdC5sZW5ndGggLSAxO1xuXG4gICAgICB3aGlsZSAobm9kZXNMaXN0Lmxlbmd0aCAhPSAwKSB7XG4gICAgICAgIGxldCByZW1vdmVkTm9kZTogTm9kZSA9IG5vZGVzTGlzdC5pdGVtKG5vZGVMaXN0SW5kZXgpLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobm9kZXNMaXN0Lml0ZW0obm9kZUxpc3RJbmRleCkpO1xuICAgICAgICBlbGVtZW50VG9BcHBlbmQuaW5zZXJ0QmVmb3JlKHJlbW92ZWROb2RlLCBlbGVtZW50VG9BcHBlbmQuZmlyc3RDaGlsZCk7XG4gICAgICAgIG5vZGVMaXN0SW5kZXgtLTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGVsZW1lbnRUb0FwcGVuZDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50YWJsZVNpemUgPT0gJ2xnJyB8fCB0aGlzLnRhYmxlU2l6ZSA9PSAneGwnKSB7XG4gICAgICBsZXQgbm9kZUxpc3RJbmRleDogbnVtYmVyID0gbm9kZXNMaXN0Lmxlbmd0aCAtIDE7XG5cbiAgICAgIHdoaWxlIChub2Rlc0xpc3QubGVuZ3RoICE9IDEpIHtcbiAgICAgICAgbGV0IGl0ZW06IE5vZGUgPSBub2Rlc0xpc3QuaXRlbShub2RlTGlzdEluZGV4KTtcbiAgICAgICAgbGV0IGNsb3NlQnV0dG9uTm9kZTogTm9kZSA9IGl0ZW0ucGFyZW50Tm9kZS5xdWVyeVNlbGVjdG9yQWxsKCdncmF2aXR5LWJ1dHRvbltpZC1yZWZlcmVuY2U9XCJjbG9zZS1idXR0b25cIl0nKS5pdGVtKDApO1xuXG4gICAgICAgIGlmIChpdGVtICE9IGNsb3NlQnV0dG9uTm9kZSkge1xuICAgICAgICAgIGxldCByZW1vdmVkTm9kZTogTm9kZSA9IGl0ZW0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChpdGVtKTtcbiAgICAgICAgICBlbGVtZW50VG9BcHBlbmQuaW5zZXJ0QmVmb3JlKHJlbW92ZWROb2RlLCBlbGVtZW50VG9BcHBlbmQuZmlyc3RDaGlsZCk7XG4gICAgICAgIH1cblxuICAgICAgICBub2RlTGlzdEluZGV4LS07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBlbGVtZW50VG9BcHBlbmQ7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidGFibGUtY29udGFpbmVyIHt7dGFibGVTaXplfX1cIiAjdGFibGVDb250YWluZXI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuXG48Z3Jhdml0eS1idXR0b24gaWQtcmVmZXJlbmNlPVwiY2xvc2UtYnV0dG9uXCIgW2ljb25OYW1lXT1cIid1bnN1Y2Nlc3MnXCIgW3R5cGVdPVwiJ3RlcnRpYXJ5J1wiIFtzaXplXT1cIidzbSdcIj5DbG9zZSBtZW51PC9ncmF2aXR5LWJ1dHRvbj5cbjxncmF2aXR5LWJ1dHRvbiBpZC1yZWZlcmVuY2U9XCJjbG9zZS1idXR0b25cIiBbaWNvbk5hbWVdPVwiJ3Vuc3VjY2VzcydcIiBbdHlwZV09XCIndGVydGlhcnknXCIgW3NpemVdPVwiJ3NtJ1wiPkNsb3NlIG1lbnU8L2dyYXZpdHktYnV0dG9uPlxuPGdyYXZpdHktYnV0dG9uIGlkLXJlZmVyZW5jZT1cImNsb3NlLWJ1dHRvblwiIFtpY29uTmFtZV09XCIndW5zdWNjZXNzJ1wiIFt0eXBlXT1cIid0ZXJ0aWFyeSdcIiBbc2l6ZV09XCInc20nXCI+Q2xvc2UgbWVudTwvZ3Jhdml0eS1idXR0b24+XG48Z3Jhdml0eS1idXR0b24gaWQtcmVmZXJlbmNlPVwiY2xvc2UtYnV0dG9uXCIgW2ljb25OYW1lXT1cIid1bnN1Y2Nlc3MnXCIgW3R5cGVdPVwiJ3RlcnRpYXJ5J1wiIFtzaXplXT1cIidzbSdcIj5DbG9zZSBtZW51PC9ncmF2aXR5LWJ1dHRvbj5cbjxncmF2aXR5LWJ1dHRvbiBpZC1yZWZlcmVuY2U9XCJjbG9zZS1idXR0b25cIiBbaWNvbk5hbWVdPVwiJ3Vuc3VjY2VzcydcIiBbdHlwZV09XCIndGVydGlhcnknXCIgW3NpemVdPVwiJ3NtJ1wiPkNsb3NlIG1lbnU8L2dyYXZpdHktYnV0dG9uPlxuPGdyYXZpdHktYnV0dG9uIGlkLXJlZmVyZW5jZT1cImNsb3NlLWJ1dHRvblwiIFtpY29uTmFtZV09XCIndW5zdWNjZXNzJ1wiIFt0eXBlXT1cIid0ZXJ0aWFyeSdcIiBbc2l6ZV09XCInc20nXCI+Q2xvc2UgbWVudTwvZ3Jhdml0eS1idXR0b24+XG48Z3Jhdml0eS1idXR0b24gaWQtcmVmZXJlbmNlPVwiY2xvc2UtYnV0dG9uXCIgW2ljb25OYW1lXT1cIid1bnN1Y2Nlc3MnXCIgW3R5cGVdPVwiJ3RlcnRpYXJ5J1wiIFtzaXplXT1cIidzbSdcIj5DbG9zZSBtZW51PC9ncmF2aXR5LWJ1dHRvbj5cbjxncmF2aXR5LWJ1dHRvbiBpZC1yZWZlcmVuY2U9XCJjbG9zZS1idXR0b25cIiBbaWNvbk5hbWVdPVwiJ3Vuc3VjY2VzcydcIiBbdHlwZV09XCIndGVydGlhcnknXCIgW3NpemVdPVwiJ3NtJ1wiPkNsb3NlIG1lbnU8L2dyYXZpdHktYnV0dG9uPlxuPGdyYXZpdHktYnV0dG9uIGlkLXJlZmVyZW5jZT1cImNsb3NlLWJ1dHRvblwiIFtpY29uTmFtZV09XCIndW5zdWNjZXNzJ1wiIFt0eXBlXT1cIid0ZXJ0aWFyeSdcIiBbc2l6ZV09XCInc20nXCI+Q2xvc2UgbWVudTwvZ3Jhdml0eS1idXR0b24+XG4iXX0=
|
|
@@ -1442,15 +1442,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1442
1442
|
|
|
1443
1443
|
class GravityAttachFileComponent {
|
|
1444
1444
|
constructor() {
|
|
1445
|
-
this.
|
|
1445
|
+
this.fileValueAsBase64StringResponse = new EventEmitter();
|
|
1446
1446
|
this.currentLang = 'en';
|
|
1447
|
+
this.inputId = '';
|
|
1447
1448
|
this.state = "enabled";
|
|
1449
|
+
this.supportedTypes = '';
|
|
1450
|
+
}
|
|
1451
|
+
ngAfterViewInit() {
|
|
1452
|
+
if (this.supportedDocumentTypes) {
|
|
1453
|
+
this.supportedDocumentTypes.forEach((value, index) => {
|
|
1454
|
+
this.supportedTypes += value;
|
|
1455
|
+
if (index != this.supportedDocumentTypes.length - 1) {
|
|
1456
|
+
this.supportedTypes += ',';
|
|
1457
|
+
}
|
|
1458
|
+
});
|
|
1459
|
+
}
|
|
1460
|
+
else {
|
|
1461
|
+
this.supportedTypes = "*";
|
|
1462
|
+
}
|
|
1448
1463
|
}
|
|
1449
1464
|
handleFileInput($event) {
|
|
1450
1465
|
this.file = $event.target.files[0];
|
|
1451
1466
|
if (this.file) {
|
|
1452
1467
|
GravityAttachFileComponent.convertFileToBase64(this.file).then((base64String) => {
|
|
1453
|
-
this.
|
|
1468
|
+
this.fileValueAsBase64StringResponse.emit(base64String);
|
|
1454
1469
|
}).catch((error) => {
|
|
1455
1470
|
console.error('Error loading file:', error.message);
|
|
1456
1471
|
});
|
|
@@ -1472,27 +1487,31 @@ class GravityAttachFileComponent {
|
|
|
1472
1487
|
}
|
|
1473
1488
|
removeFile() {
|
|
1474
1489
|
this.file = null;
|
|
1475
|
-
this.
|
|
1490
|
+
this.fileValueAsBase64StringResponse.emit('');
|
|
1476
1491
|
}
|
|
1477
1492
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityAttachFileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1478
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GravityAttachFileComponent, selector: "gravity-attach-file", inputs: { currentLang: "currentLang", cypressTag: "cypressTag", label: "label", required: "required", state: "state", supportTextContent: "supportTextContent", supportTextType: "supportTextType" }, outputs: {
|
|
1493
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GravityAttachFileComponent, selector: "gravity-attach-file", inputs: { currentLang: "currentLang", cypressTag: "cypressTag", inputId: "inputId", label: "label", required: "required", state: "state", supportedDocumentTypes: "supportedDocumentTypes", supportTextContent: "supportTextContent", supportTextType: "supportTextType" }, outputs: { fileValueAsBase64StringResponse: "response" }, ngImport: i0, template: "<label class=\"hr-body-text sm-regular {{state}}\" [class.empty]=\"!file\" [class.full-input]=\"file\" *ngIf=\"label\">\n {{label}}\n <ng-container *ngIf=\"required\">\n <ng-container *ngIf=\"currentLang == 'es'\">- Requerido <span class=\"text-negative\">*</span></ng-container>\n <ng-container *ngIf=\"currentLang == 'en'\">- Required <span class=\"text-negative\">*</span></ng-container>\n </ng-container>\n <ng-container *ngIf=\"state == 'readonly'\">\n <ng-container *ngIf=\"currentLang == 'es'\">- S\u00F3lo lectura</ng-container>\n <ng-container *ngIf=\"currentLang == 'en'\">- Readonly</ng-container>\n </ng-container>\n <ng-container *ngIf=\"state == 'disabled'\">\n <ng-container *ngIf=\"currentLang == 'es'\">- Deshabilitado</ng-container>\n <ng-container *ngIf=\"currentLang == 'en'\">- Disabled</ng-container>\n </ng-container>\n</label>\n<div class=\"gravity-attach-file {{state}}\" [class.empty]=\"!file\" [class.full-input]=\"file\">\n <ng-container *ngIf=\"!file\">\n <input autocomplete=\"off\" class=\"hr-label md-regular\" hidden id=\"fileInput-{{inputId}}\" type=\"file\"\n [accept]=\"supportedTypes\"\n [attr.data-cy]=\"cypressTag\"\n [attr.disabled]=\"state == 'disabled' ? true : null\"\n [attr.readonly]=\"state == 'readonly' ? true : null\"\n\n (change)=\"handleFileInput($event)\">\n <label for=\"fileInput-{{inputId}}\">\n <gravity-button [iconName]=\"'clip'\" [type]=\"'tertiary'\" [size]=\"'md'\">\n {{label}}\n </gravity-button>\n </label>\n </ng-container>\n <ng-container *ngIf=\"file\">\n <label>\n <gravity-button (click)=\"removeFile()\" [iconName]=\"'clip'\" [type]=\"'tertiary'\" [size]=\"'md'\">\n {{currentLang == 'en' ? 'Remove file' : 'Remover archivo'}}\n </gravity-button>\n </label>\n <h3 class=\"hr-body-text sm-bold\">{{currentLang == 'en' ? 'File' : 'Archivo'}}: {{file.name}}</h3>\n </ng-container>\n</div>\n<p class=\"hr-body-text sm-regular support-text text-{{supportTextType}}\" *ngIf=\"supportTextContent\">\n {{supportTextContent}}\n</p>\n", styles: [".text-negative{color:var(--negative-primary)}.text-neutro{color:var(--text-primary)}.text-positive{color:var(--positive-primary)}.support-text{margin-left:0;margin-top:.3125rem;padding-inline:1rem}:host{display:block}label{color:var(--text-field-label-color);margin-inline:1rem}label.empty.enabled{--text-field-label-color: var(--label-text-empty-enabled-primary)}label.empty.disabled{--text-field-label-color: var(--label-text-empty-disabled-primary)}label.full-input.enabled{--text-field-label-color: var(--label-text-full-enabled-primary)}label.full-input.disabled{--text-field-label-color: var(--label-text-full-disabled-primary)}label.full-input.readonly{--text-field-label-color: var(--label-text-full-read-only-primary)}.gravity-attach-file{align-items:center;display:flex}.gravity-attach-file label{cursor:pointer}.gravity-attach-file label:hover gravity-button ::ng-deep button{--button-background-color: var(--bg-button-hover-tertiary);--button-border-color: var(--bg-button-hover-tertiary);--button-text-color: var(--on-bg-button-hover-tertiary)}gravity-button,gravity-button ::ng-deep button{pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: GravityButtonComponent, selector: "gravity-button", inputs: ["cypressTag", "disabled", "customState", "iconName", "isLoading", "showContent", "size", "type"] }] }); }
|
|
1479
1494
|
}
|
|
1480
1495
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityAttachFileComponent, decorators: [{
|
|
1481
1496
|
type: Component,
|
|
1482
|
-
args: [{ selector: 'gravity-attach-file', template: "<label class=\"hr-body-text sm-regular {{state}}\" [class.empty]=\"!file\" [class.full-input]=\"file\" *ngIf=\"label\">\n {{label}}\n <ng-container *ngIf=\"required\">\n <ng-container *ngIf=\"currentLang == 'es'\">- Requerido <span class=\"text-negative\">*</span></ng-container>\n <ng-container *ngIf=\"currentLang == 'en'\">- Required <span class=\"text-negative\">*</span></ng-container>\n </ng-container>\n <ng-container *ngIf=\"state == 'readonly'\">\n <ng-container *ngIf=\"currentLang == 'es'\">- S\u00F3lo lectura</ng-container>\n <ng-container *ngIf=\"currentLang == 'en'\">- Readonly</ng-container>\n </ng-container>\n <ng-container *ngIf=\"state == 'disabled'\">\n <ng-container *ngIf=\"currentLang == 'es'\">- Deshabilitado</ng-container>\n <ng-container *ngIf=\"currentLang == 'en'\">- Disabled</ng-container>\n </ng-container>\n</label>\n<div class=\"gravity-attach-file {{state}}\" [class.empty]=\"!file\" [class.full-input]=\"file\">\n <ng-container *ngIf=\"!file\">\n <input autocomplete=\"off\" class=\"hr-label md-regular\" hidden id=\"fileInput\" type=\"file\"\n [attr.data-cy]=\"cypressTag\"\n [attr.disabled]=\"state == 'disabled' ? true : null\"\n [attr.readonly]=\"state == 'readonly' ? true : null\"\n\n (change)=\"handleFileInput($event)\">\n <label for=\"fileInput\">\n <gravity-button [iconName]=\"'clip'\" [type]=\"'tertiary'\" [size]=\"'md'\">\n {{label}}\n </gravity-button>\n </label>\n </ng-container>\n <ng-container *ngIf=\"file\">\n <label>\n <gravity-button (click)=\"removeFile()\" [iconName]=\"'clip'\" [type]=\"'tertiary'\" [size]=\"'md'\">\n {{currentLang == 'en' ? 'Remove file' : 'Remover archivo'}}\n </gravity-button>\n </label>\n <h3>{{currentLang == 'en' ? 'File' : 'Archivo'}}: {{file.name}}</h3>\n </ng-container>\n</div>\n<p class=\"hr-body-text sm-regular support-text text-{{supportTextType}}\" *ngIf=\"supportTextContent\">\n {{supportTextContent}}\n</p>\n", styles: [".text-negative{color:var(--negative-primary)}.text-neutro{color:var(--text-primary)}.text-positive{color:var(--positive-primary)}.support-text{margin-left:0;margin-top:.3125rem;padding-inline:1rem}:host{display:block}label{color:var(--text-field-label-color);margin-inline:1rem}label.empty.enabled{--text-field-label-color: var(--label-text-empty-enabled-primary)}label.empty.disabled{--text-field-label-color: var(--label-text-empty-disabled-primary)}label.full-input.enabled{--text-field-label-color: var(--label-text-full-enabled-primary)}label.full-input.disabled{--text-field-label-color: var(--label-text-full-disabled-primary)}label.full-input.readonly{--text-field-label-color: var(--label-text-full-read-only-primary)}.gravity-attach-file{align-items:center;display:flex}.gravity-attach-file label{cursor:pointer}.gravity-attach-file label:hover gravity-button ::ng-deep button{--button-background-color: var(--bg-button-hover-tertiary);--button-border-color: var(--bg-button-hover-tertiary);--button-text-color: var(--on-bg-button-hover-tertiary)}gravity-button,gravity-button ::ng-deep button{pointer-events:none}\n"] }]
|
|
1483
|
-
}], propDecorators: {
|
|
1497
|
+
args: [{ selector: 'gravity-attach-file', template: "<label class=\"hr-body-text sm-regular {{state}}\" [class.empty]=\"!file\" [class.full-input]=\"file\" *ngIf=\"label\">\n {{label}}\n <ng-container *ngIf=\"required\">\n <ng-container *ngIf=\"currentLang == 'es'\">- Requerido <span class=\"text-negative\">*</span></ng-container>\n <ng-container *ngIf=\"currentLang == 'en'\">- Required <span class=\"text-negative\">*</span></ng-container>\n </ng-container>\n <ng-container *ngIf=\"state == 'readonly'\">\n <ng-container *ngIf=\"currentLang == 'es'\">- S\u00F3lo lectura</ng-container>\n <ng-container *ngIf=\"currentLang == 'en'\">- Readonly</ng-container>\n </ng-container>\n <ng-container *ngIf=\"state == 'disabled'\">\n <ng-container *ngIf=\"currentLang == 'es'\">- Deshabilitado</ng-container>\n <ng-container *ngIf=\"currentLang == 'en'\">- Disabled</ng-container>\n </ng-container>\n</label>\n<div class=\"gravity-attach-file {{state}}\" [class.empty]=\"!file\" [class.full-input]=\"file\">\n <ng-container *ngIf=\"!file\">\n <input autocomplete=\"off\" class=\"hr-label md-regular\" hidden id=\"fileInput-{{inputId}}\" type=\"file\"\n [accept]=\"supportedTypes\"\n [attr.data-cy]=\"cypressTag\"\n [attr.disabled]=\"state == 'disabled' ? true : null\"\n [attr.readonly]=\"state == 'readonly' ? true : null\"\n\n (change)=\"handleFileInput($event)\">\n <label for=\"fileInput-{{inputId}}\">\n <gravity-button [iconName]=\"'clip'\" [type]=\"'tertiary'\" [size]=\"'md'\">\n {{label}}\n </gravity-button>\n </label>\n </ng-container>\n <ng-container *ngIf=\"file\">\n <label>\n <gravity-button (click)=\"removeFile()\" [iconName]=\"'clip'\" [type]=\"'tertiary'\" [size]=\"'md'\">\n {{currentLang == 'en' ? 'Remove file' : 'Remover archivo'}}\n </gravity-button>\n </label>\n <h3 class=\"hr-body-text sm-bold\">{{currentLang == 'en' ? 'File' : 'Archivo'}}: {{file.name}}</h3>\n </ng-container>\n</div>\n<p class=\"hr-body-text sm-regular support-text text-{{supportTextType}}\" *ngIf=\"supportTextContent\">\n {{supportTextContent}}\n</p>\n", styles: [".text-negative{color:var(--negative-primary)}.text-neutro{color:var(--text-primary)}.text-positive{color:var(--positive-primary)}.support-text{margin-left:0;margin-top:.3125rem;padding-inline:1rem}:host{display:block}label{color:var(--text-field-label-color);margin-inline:1rem}label.empty.enabled{--text-field-label-color: var(--label-text-empty-enabled-primary)}label.empty.disabled{--text-field-label-color: var(--label-text-empty-disabled-primary)}label.full-input.enabled{--text-field-label-color: var(--label-text-full-enabled-primary)}label.full-input.disabled{--text-field-label-color: var(--label-text-full-disabled-primary)}label.full-input.readonly{--text-field-label-color: var(--label-text-full-read-only-primary)}.gravity-attach-file{align-items:center;display:flex}.gravity-attach-file label{cursor:pointer}.gravity-attach-file label:hover gravity-button ::ng-deep button{--button-background-color: var(--bg-button-hover-tertiary);--button-border-color: var(--bg-button-hover-tertiary);--button-text-color: var(--on-bg-button-hover-tertiary)}gravity-button,gravity-button ::ng-deep button{pointer-events:none}\n"] }]
|
|
1498
|
+
}], propDecorators: { fileValueAsBase64StringResponse: [{
|
|
1484
1499
|
type: Output,
|
|
1485
1500
|
args: ['response']
|
|
1486
1501
|
}], currentLang: [{
|
|
1487
1502
|
type: Input
|
|
1488
1503
|
}], cypressTag: [{
|
|
1489
1504
|
type: Input
|
|
1505
|
+
}], inputId: [{
|
|
1506
|
+
type: Input
|
|
1490
1507
|
}], label: [{
|
|
1491
1508
|
type: Input
|
|
1492
1509
|
}], required: [{
|
|
1493
1510
|
type: Input
|
|
1494
1511
|
}], state: [{
|
|
1495
1512
|
type: Input
|
|
1513
|
+
}], supportedDocumentTypes: [{
|
|
1514
|
+
type: Input
|
|
1496
1515
|
}], supportTextContent: [{
|
|
1497
1516
|
type: Input
|
|
1498
1517
|
}], supportTextType: [{
|
|
@@ -1502,10 +1521,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1502
1521
|
class GravityTableComponent {
|
|
1503
1522
|
constructor(renderer) {
|
|
1504
1523
|
this.renderer = renderer;
|
|
1505
|
-
this.
|
|
1524
|
+
this.tableDensity = "standard";
|
|
1525
|
+
this.tableSizeInput = "auto";
|
|
1506
1526
|
this.firstTime = true;
|
|
1507
1527
|
this.tableElement = null;
|
|
1508
|
-
this.tableSize = '';
|
|
1528
|
+
this.tableSize = 'xl';
|
|
1509
1529
|
let milliseconds = new Date().getTime();
|
|
1510
1530
|
let randomNumber = Math.random() * 10;
|
|
1511
1531
|
this.tableId = '' + (milliseconds * randomNumber / 2);
|
|
@@ -1515,10 +1535,30 @@ class GravityTableComponent {
|
|
|
1515
1535
|
this.renderer.setAttribute(this.tableElement, 'table-id', this.tableId);
|
|
1516
1536
|
let tableHeaders = this.getTableHeaders();
|
|
1517
1537
|
this.initializeTable(tableHeaders);
|
|
1518
|
-
this.
|
|
1538
|
+
this.adjustTableDensity(this.tableDensity);
|
|
1519
1539
|
this.adjustButtonsSize();
|
|
1520
1540
|
this.onResize();
|
|
1521
1541
|
}
|
|
1542
|
+
ngOnChanges(changes) {
|
|
1543
|
+
if (this.tableElement) {
|
|
1544
|
+
if (changes['tableDensity']) {
|
|
1545
|
+
this.adjustTableDensity(changes['tableDensity'].currentValue);
|
|
1546
|
+
}
|
|
1547
|
+
if (changes['tableSizeInput']) {
|
|
1548
|
+
this.tableSizeInput = changes['tableSizeInput'].currentValue;
|
|
1549
|
+
this.onResize();
|
|
1550
|
+
}
|
|
1551
|
+
}
|
|
1552
|
+
}
|
|
1553
|
+
ngAfterContentChecked() {
|
|
1554
|
+
if (this.tableElement) {
|
|
1555
|
+
let tableHeaders = this.getTableHeaders();
|
|
1556
|
+
this.initializeTable(tableHeaders);
|
|
1557
|
+
this.adjustTableDensity(this.tableDensity);
|
|
1558
|
+
this.adjustButtonsSize();
|
|
1559
|
+
this.onResize();
|
|
1560
|
+
}
|
|
1561
|
+
}
|
|
1522
1562
|
getTableHeaders() {
|
|
1523
1563
|
let tableHeaderItems = document.querySelectorAll('thead tr th');
|
|
1524
1564
|
let tableHeaders = [];
|
|
@@ -1573,10 +1613,10 @@ class GravityTableComponent {
|
|
|
1573
1613
|
});
|
|
1574
1614
|
}
|
|
1575
1615
|
}
|
|
1576
|
-
|
|
1616
|
+
adjustTableDensity(densityValue) {
|
|
1577
1617
|
this.renderer.removeClass(this.tableElement, 'standard-table');
|
|
1578
1618
|
this.renderer.removeClass(this.tableElement, 'compressed-table');
|
|
1579
|
-
this.renderer.addClass(this.tableElement,
|
|
1619
|
+
this.renderer.addClass(this.tableElement, densityValue + '-table');
|
|
1580
1620
|
}
|
|
1581
1621
|
adjustButtonsSize() {
|
|
1582
1622
|
let actionsColumns = document.querySelectorAll('table[table-id="' + this.tableId + '"] .actions-column');
|
|
@@ -1614,6 +1654,9 @@ class GravityTableComponent {
|
|
|
1614
1654
|
this.renderer.removeClass(this.tableElement, 'md-table');
|
|
1615
1655
|
this.renderer.removeClass(this.tableElement, 'lg-table');
|
|
1616
1656
|
this.renderer.removeClass(this.tableElement, 'xl-table');
|
|
1657
|
+
if (this.tableSizeInput != 'auto') {
|
|
1658
|
+
this.tableSize = this.tableSizeInput;
|
|
1659
|
+
}
|
|
1617
1660
|
this.renderer.addClass(this.tableElement, this.tableSize + '-table');
|
|
1618
1661
|
this.adjustTable();
|
|
1619
1662
|
}
|
|
@@ -1666,12 +1709,14 @@ class GravityTableComponent {
|
|
|
1666
1709
|
}
|
|
1667
1710
|
}
|
|
1668
1711
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityTableComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1669
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GravityTableComponent, selector: "gravity-table", inputs: {
|
|
1712
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GravityTableComponent, selector: "gravity-table", inputs: { tableDensity: "tableDensity", tableSizeInput: "tableSizeInput" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "tableContainer", first: true, predicate: ["tableContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"table-container {{tableSize}}\" #tableContainer>\n <ng-content></ng-content>\n</div>\n\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n", styles: [".table-container{overflow-x:auto}\n"], dependencies: [{ kind: "component", type: GravityButtonComponent, selector: "gravity-button", inputs: ["cypressTag", "disabled", "customState", "iconName", "isLoading", "showContent", "size", "type"] }] }); }
|
|
1670
1713
|
}
|
|
1671
1714
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityTableComponent, decorators: [{
|
|
1672
1715
|
type: Component,
|
|
1673
1716
|
args: [{ selector: 'gravity-table', template: "<div class=\"table-container {{tableSize}}\" #tableContainer>\n <ng-content></ng-content>\n</div>\n\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n", styles: [".table-container{overflow-x:auto}\n"] }]
|
|
1674
|
-
}], ctorParameters: function () { return [{ type: i0.Renderer2 }]; }, propDecorators: {
|
|
1717
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }]; }, propDecorators: { tableDensity: [{
|
|
1718
|
+
type: Input
|
|
1719
|
+
}], tableSizeInput: [{
|
|
1675
1720
|
type: Input
|
|
1676
1721
|
}], tableContainer: [{
|
|
1677
1722
|
type: ViewChild,
|