@seniorsistemas/data-seniorx-core 1.8.0 → 1.9.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/select-button.type.d.ts +5 -0
- package/esm2022/core/types/select-button.type.mjs +2 -0
- package/esm2022/features/button/button.component.mjs +3 -3
- package/esm2022/features/card-list/card/card.component.mjs +3 -3
- package/esm2022/features/code-editor/code-editor.component.mjs +216 -0
- package/esm2022/features/paginator/paginator.component.mjs +2 -2
- package/esm2022/features/select-button/select-button.component.mjs +118 -0
- package/esm2022/features/tab/tab-item.component.mjs +1 -1
- package/esm2022/features/tab/tab.component.mjs +28 -11
- package/esm2022/providers/services.provider.mjs +3 -3
- package/esm2022/providers/translate.provider.mjs +48 -26
- package/esm2022/public-api.mjs +4 -2
- package/features/code-editor/code-editor.component.d.ts +57 -0
- package/features/paginator/paginator.component.d.ts +1 -1
- package/features/select-button/select-button.component.d.ts +30 -0
- package/features/tab/tab.component.d.ts +3 -0
- package/fesm2022/seniorsistemas-data-seniorx-core.mjs +424 -183
- package/fesm2022/seniorsistemas-data-seniorx-core.mjs.map +1 -1
- package/package.json +3 -3
- package/providers/services.provider.d.ts +2 -2
- package/providers/translate.provider.d.ts +2 -7
- package/public-api.d.ts +3 -1
- package/styles.css +0 -4
- package/styles.scss +0 -1
- package/esm2022/features/sql-editor/sql-editor.component.mjs +0 -125
- package/features/sql-editor/sql-editor.component.d.ts +0 -27
- package/styles/sql-editor.scss +0 -3
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWJ1dHRvbi50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9jb3JlL3R5cGVzL3NlbGVjdC1idXR0b24udHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTZWxlY3RCdXR0b25JdGVtIHtcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIHZhbHVlOiBhbnk7XG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xufSJdfQ==
|
|
@@ -14,11 +14,11 @@ export class ButtonComponent {
|
|
|
14
14
|
type = 'button';
|
|
15
15
|
onClick = new EventEmitter();
|
|
16
16
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ButtonComponent, isStandalone: true, selector: "sdc-button", inputs: { disabled: "disabled", width: "width", icon: "icon", id: "id", label: "label", priority: "priority", size: "size", type: "type" }, outputs: { onClick: "onClick" }, ngImport: i0, template: "<div [style.width]=\"width\">\n <s-button\n class=\"sdc-button-el\"\n (clicked)=\"onClick.emit($event)\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [size]=\"size\"\n [type]=\"type\"\n [priority]=\"priority\"\n [iconClass]=\"icon\"\n [label]=\"label\">\n </s-button>\n</div>\n", styles: ["::ng-deep .s-button-priority-primary .s-button-icon{color:#fff!important}::ng-deep s-button button:disabled{pointer-events:none;cursor:not-allowed}
|
|
17
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ButtonComponent, isStandalone: true, selector: "sdc-button", inputs: { disabled: "disabled", width: "width", icon: "icon", id: "id", label: "label", priority: "priority", size: "size", type: "type" }, outputs: { onClick: "onClick" }, ngImport: i0, template: "<div [style.width]=\"width\">\n <s-button\n class=\"sdc-button-el\"\n (clicked)=\"onClick.emit($event)\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [size]=\"size\"\n [type]=\"type\"\n [priority]=\"priority\"\n [iconClass]=\"icon\"\n [label]=\"label\">\n </s-button>\n</div>\n", styles: ["::ng-deep .s-button-priority-primary .s-button-icon{color:#fff!important}::ng-deep s-button button:disabled{pointer-events:none;cursor:not-allowed}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1.ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
18
18
|
}
|
|
19
19
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ButtonComponent, decorators: [{
|
|
20
20
|
type: Component,
|
|
21
|
-
args: [{ imports: [CommonModule, ButtonModule], standalone: true, selector: 'sdc-button', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div [style.width]=\"width\">\n <s-button\n class=\"sdc-button-el\"\n (clicked)=\"onClick.emit($event)\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [size]=\"size\"\n [type]=\"type\"\n [priority]=\"priority\"\n [iconClass]=\"icon\"\n [label]=\"label\">\n </s-button>\n</div>\n", styles: ["::ng-deep .s-button-priority-primary .s-button-icon{color:#fff!important}::ng-deep s-button button:disabled{pointer-events:none;cursor:not-allowed}
|
|
21
|
+
args: [{ imports: [CommonModule, ButtonModule], standalone: true, selector: 'sdc-button', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div [style.width]=\"width\">\n <s-button\n class=\"sdc-button-el\"\n (clicked)=\"onClick.emit($event)\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [size]=\"size\"\n [type]=\"type\"\n [priority]=\"priority\"\n [iconClass]=\"icon\"\n [label]=\"label\">\n </s-button>\n</div>\n", styles: ["::ng-deep .s-button-priority-primary .s-button-icon{color:#fff!important}::ng-deep s-button button:disabled{pointer-events:none;cursor:not-allowed}\n"] }]
|
|
22
22
|
}], propDecorators: { disabled: [{
|
|
23
23
|
type: Input
|
|
24
24
|
}], width: [{
|
|
@@ -38,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
38
38
|
}], onClick: [{
|
|
39
39
|
type: Output
|
|
40
40
|
}] } });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2J1dHRvbi9idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFFLFlBQVksRUFBa0IsTUFBTSwyQ0FBMkMsQ0FBQzs7O0FBYXpGLE1BQU0sT0FBTyxlQUFlO0lBQ2pCLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFDMUIsS0FBSyxHQUFjLE9BQU8sQ0FBQztJQUMzQixJQUFJLENBQXFCO0lBQ3pCLEVBQUUsR0FBVyxXQUFXLENBQUM7SUFDekIsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUNuQixRQUFRLEdBQW1CLFNBQVMsQ0FBQztJQUNyQyxJQUFJLEdBQWUsU0FBUyxDQUFDO0lBQzdCLElBQUksR0FBVyxRQUFRLENBQUM7SUFFdkIsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7d0dBVm5DLGVBQWU7NEZBQWYsZUFBZSxtUENmNUIsaVRBYUEsOE1ETlksWUFBWSw4QkFBRSxZQUFZOzs0RkFRekIsZUFBZTtrQkFUM0IsU0FBUzs4QkFDQyxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsY0FDekIsSUFBSSxZQUNOLFlBQVksbUJBR0wsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsUUFBUTs4QkFHaEMsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUVJLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlLCBCdXR0b25Qcmlvcml0eSB9IGZyb20gXCJAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2J1dHRvblwiO1xuaW1wb3J0IHsgQnV0dG9uLCBEaW1lbnNpb24gfSBmcm9tICcuLi8uLi9wdWJsaWMtYXBpJztcbmltcG9ydCB7IEJ1dHRvblNpemUgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL2J1dHRvbi50eXBlJztcblxuQENvbXBvbmVudCh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEJ1dHRvbk1vZHVsZV0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnc2RjLWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkLFxufSlcbmV4cG9ydCBjbGFzcyBCdXR0b25Db21wb25lbnQge1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSB3aWR0aDogRGltZW5zaW9uID0gJzEwcmVtJztcbiAgQElucHV0KCkgaWNvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBpZDogc3RyaW5nID0gJ2J1dHRvbi1pZCc7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcHJpb3JpdHk6IEJ1dHRvblByaW9yaXR5ID0gJ3ByaW1hcnknO1xuICBASW5wdXQoKSBzaXplOiBCdXR0b25TaXplID0gJ2RlZmF1bHQnO1xuICBASW5wdXQoKSB0eXBlOiBCdXR0b24gPSAnYnV0dG9uJztcblxuICBAT3V0cHV0KCkgb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG59XG4iLCI8ZGl2IFtzdHlsZS53aWR0aF09XCJ3aWR0aFwiPlxuICA8cy1idXR0b25cbiAgICBjbGFzcz1cInNkYy1idXR0b24tZWxcIlxuICAgIChjbGlja2VkKT1cIm9uQ2xpY2suZW1pdCgkZXZlbnQpXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtpZF09XCJpZFwiXG4gICAgW3NpemVdPVwic2l6ZVwiXG4gICAgW3R5cGVdPVwidHlwZVwiXG4gICAgW3ByaW9yaXR5XT1cInByaW9yaXR5XCJcbiAgICBbaWNvbkNsYXNzXT1cImljb25cIlxuICAgIFtsYWJlbF09XCJsYWJlbFwiPlxuICA8L3MtYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|
|
@@ -19,11 +19,11 @@ export class CardComponent {
|
|
|
19
19
|
return text.length > this.options.descriptionMaxLength ? text.slice(0, this.options.descriptionMaxLength).trimEnd() + '...' : text;
|
|
20
20
|
}
|
|
21
21
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
22
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: CardComponent, isStandalone: true, selector: "sdc-card", inputs: { data: "data", options: "options" }, outputs: { cardAction: "cardAction" }, ngImport: i0, template: "<div class=\"sdc-card dp-card\">\n <div class=\"sdc-card__header\">\n <div class=\"sdc-card__icon\" [style.background]=\"options?.backgroundIcon\" [style.color]=\"options?.iconColor\">\n <i [class]=\"options?.icon\"></i>\n </div>\n <div class=\"flex flex-column ml-3\">\n <div class=\"sdc-card__title\">\n {{ data.name }}\n </div>\n\n <div class=\"sdc-card__subtitle\">\n <span>{{ data.category }}</span>\n </div>\n </div>\n </div>\n\n <div class=\"sdc-card__body\">\n <div class=\"sdc-card__content\">\n <p class=\"sdc-card__description\">\n {{ getShortDescription(data.description) }}\n </p>\n </div>\n </div>\n\n <div class=\"sdc-card__footer flex justify-content-center\">\n <sdc-button\n width=\"100%\"\n (onClick)=\"cardAction.emit(data)\"\n [priority]=\"options?.buttonPriority!\"\n [label]=\"options?.buttonLabel! | translate\"\n >\n </sdc-button>\n </div>\n</div>\n", styles: [":host{display:block}.sdc-card{width:100%;border-radius:var(--sdc-formfield-border-radius);overflow:hidden;display:flex;padding:8px;flex-direction:column;
|
|
22
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: CardComponent, isStandalone: true, selector: "sdc-card", inputs: { data: "data", options: "options" }, outputs: { cardAction: "cardAction" }, ngImport: i0, template: "<div class=\"sdc-card dp-card\">\n <div class=\"sdc-card__header\">\n <div class=\"sdc-card__icon\" [style.background]=\"options?.backgroundIcon\" [style.color]=\"options?.iconColor\">\n <i [class]=\"options?.icon\"></i>\n </div>\n <div class=\"flex flex-column ml-3\">\n <div class=\"sdc-card__title\">\n {{ data.name }}\n </div>\n\n <div class=\"sdc-card__subtitle\">\n <span>{{ data.category }}</span>\n </div>\n </div>\n </div>\n\n <div class=\"sdc-card__body\">\n <div class=\"sdc-card__content\">\n <p class=\"sdc-card__description\">\n {{ getShortDescription(data.description) }}\n </p>\n </div>\n </div>\n\n <div class=\"sdc-card__footer flex justify-content-center\">\n <sdc-button\n width=\"100%\"\n (onClick)=\"cardAction.emit(data)\"\n [priority]=\"options?.buttonPriority!\"\n [label]=\"options?.buttonLabel! | translate\"\n >\n </sdc-button>\n </div>\n</div>\n", styles: [":host{display:block}.sdc-card{width:100%;border-radius:var(--sdc-formfield-border-radius);overflow:hidden;display:flex;padding:8px;flex-direction:column;min-height:19rem}.sdc-card__header{display:flex;align-items:center;justify-content:start;gap:.75rem;padding:.75rem 1rem}.sdc-card__icon{min-width:2.9rem;min-height:2.9rem;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}.sdc-card__body{padding:8px}.sdc-card__title{font-size:1.4rem;font-weight:600;width:100%;white-space:wrap;overflow:hidden;text-overflow:ellipsis}.sdc-card__subtitle{margin-top:.25rem;font-weight:700;font-size:.775rem;color:var(--sdc-muted, #475569);display:flex;justify-content:space-between}.sdc-card__content{margin-top:.5rem}.sdc-card__description{text-align:justify;overflow:hidden}.sdc-card__tags{margin-top:.5rem;display:flex;gap:.5rem;flex-wrap:wrap}.sdc-card__footer{margin-top:auto;padding:.75rem 1rem;display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:3rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: CheckboxModule }, { kind: "ngmodule", type: AvatarGroupModule }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["disabled", "width", "icon", "id", "label", "priority", "size", "type"], outputs: ["onClick"] }, { kind: "ngmodule", type: CardModule }, { kind: "ngmodule", type: TagModule }, { kind: "ngmodule", type: AvatarModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
23
23
|
}
|
|
24
24
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CardComponent, decorators: [{
|
|
25
25
|
type: Component,
|
|
26
|
-
args: [{ selector: 'sdc-card', imports: [CommonModule, CheckboxModule, AvatarGroupModule, ButtonComponent, CardModule, TagModule, AvatarModule, TranslateModule], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"sdc-card dp-card\">\n <div class=\"sdc-card__header\">\n <div class=\"sdc-card__icon\" [style.background]=\"options?.backgroundIcon\" [style.color]=\"options?.iconColor\">\n <i [class]=\"options?.icon\"></i>\n </div>\n <div class=\"flex flex-column ml-3\">\n <div class=\"sdc-card__title\">\n {{ data.name }}\n </div>\n\n <div class=\"sdc-card__subtitle\">\n <span>{{ data.category }}</span>\n </div>\n </div>\n </div>\n\n <div class=\"sdc-card__body\">\n <div class=\"sdc-card__content\">\n <p class=\"sdc-card__description\">\n {{ getShortDescription(data.description) }}\n </p>\n </div>\n </div>\n\n <div class=\"sdc-card__footer flex justify-content-center\">\n <sdc-button\n width=\"100%\"\n (onClick)=\"cardAction.emit(data)\"\n [priority]=\"options?.buttonPriority!\"\n [label]=\"options?.buttonLabel! | translate\"\n >\n </sdc-button>\n </div>\n</div>\n", styles: [":host{display:block}.sdc-card{width:100%;border-radius:var(--sdc-formfield-border-radius);overflow:hidden;display:flex;padding:8px;flex-direction:column;
|
|
26
|
+
args: [{ selector: 'sdc-card', imports: [CommonModule, CheckboxModule, AvatarGroupModule, ButtonComponent, CardModule, TagModule, AvatarModule, TranslateModule], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"sdc-card dp-card\">\n <div class=\"sdc-card__header\">\n <div class=\"sdc-card__icon\" [style.background]=\"options?.backgroundIcon\" [style.color]=\"options?.iconColor\">\n <i [class]=\"options?.icon\"></i>\n </div>\n <div class=\"flex flex-column ml-3\">\n <div class=\"sdc-card__title\">\n {{ data.name }}\n </div>\n\n <div class=\"sdc-card__subtitle\">\n <span>{{ data.category }}</span>\n </div>\n </div>\n </div>\n\n <div class=\"sdc-card__body\">\n <div class=\"sdc-card__content\">\n <p class=\"sdc-card__description\">\n {{ getShortDescription(data.description) }}\n </p>\n </div>\n </div>\n\n <div class=\"sdc-card__footer flex justify-content-center\">\n <sdc-button\n width=\"100%\"\n (onClick)=\"cardAction.emit(data)\"\n [priority]=\"options?.buttonPriority!\"\n [label]=\"options?.buttonLabel! | translate\"\n >\n </sdc-button>\n </div>\n</div>\n", styles: [":host{display:block}.sdc-card{width:100%;border-radius:var(--sdc-formfield-border-radius);overflow:hidden;display:flex;padding:8px;flex-direction:column;min-height:19rem}.sdc-card__header{display:flex;align-items:center;justify-content:start;gap:.75rem;padding:.75rem 1rem}.sdc-card__icon{min-width:2.9rem;min-height:2.9rem;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}.sdc-card__body{padding:8px}.sdc-card__title{font-size:1.4rem;font-weight:600;width:100%;white-space:wrap;overflow:hidden;text-overflow:ellipsis}.sdc-card__subtitle{margin-top:.25rem;font-weight:700;font-size:.775rem;color:var(--sdc-muted, #475569);display:flex;justify-content:space-between}.sdc-card__content{margin-top:.5rem}.sdc-card__description{text-align:justify;overflow:hidden}.sdc-card__tags{margin-top:.5rem;display:flex;gap:.5rem;flex-wrap:wrap}.sdc-card__footer{margin-top:auto;padding:.75rem 1rem;display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:3rem}\n"] }]
|
|
27
27
|
}], propDecorators: { data: [{
|
|
28
28
|
type: Input
|
|
29
29
|
}], options: [{
|
|
@@ -31,4 +31,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
31
31
|
}], cardAction: [{
|
|
32
32
|
type: Output
|
|
33
33
|
}] } });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2NhcmQtbGlzdC9jYXJkL2NhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9jYXJkLWxpc3QvY2FyZC9jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWxELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQVd0RCxNQUFNLE9BQU8sYUFBYTtJQUNmLElBQUksQ0FBUTtJQUNaLE9BQU8sQ0FBZTtJQUNyQixVQUFVLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztJQUU1QyxtQkFBbUIsQ0FBQyxJQUFZO1FBQ3hDLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDckIsT0FBTyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFRLENBQUMsb0JBQXFCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFRLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN4SSxDQUFDO3dHQVJVLGFBQWE7NEZBQWIsYUFBYSx5SkNwQjFCLHk5QkFrQ0EsK2hDRHJCWSxZQUFZLDhCQUFFLGNBQWMsOEJBQUUsaUJBQWlCLCtCQUFFLGVBQWUsOEpBQUUsVUFBVSw4QkFBRSxTQUFTLDhCQUFFLFlBQVksOEJBQUUsZUFBZTs7NEZBT3JILGFBQWE7a0JBVHpCLFNBQVM7K0JBQ0UsVUFBVSxXQUNYLENBQUMsWUFBWSxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsZUFBZSxDQUFDLGNBRXJILElBQUksbUJBRUMsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsUUFBUTs4QkFHaEMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDSSxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhcmRNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NhcmQnO1xuaW1wb3J0IHsgVGFnTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90YWcnO1xuaW1wb3J0IHsgQXZhdGFyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9hdmF0YXInO1xuaW1wb3J0IHsgQXZhdGFyR3JvdXBNb2R1bGUgfSBmcm9tICdwcmltZW5nL2F2YXRhcmdyb3VwJztcbmltcG9ydCB7IENoZWNrYm94TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9jaGVja2JveCc7XG5pbXBvcnQgeyBDYXJkLCBPcHRpb25zQ2FyZCB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdHlwZXMvY2FyZC50eXBlJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZGMtY2FyZCcsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIENoZWNrYm94TW9kdWxlLCBBdmF0YXJHcm91cE1vZHVsZSwgQnV0dG9uQ29tcG9uZW50LCBDYXJkTW9kdWxlLCBUYWdNb2R1bGUsIEF2YXRhck1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzdHlsZVVybDogJy4vY2FyZC5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZCxcbn0pXG5leHBvcnQgY2xhc3MgQ2FyZENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGRhdGEhOiBDYXJkO1xuICBASW5wdXQoKSBvcHRpb25zPzogT3B0aW9uc0NhcmQ7XG4gIEBPdXRwdXQoKSBjYXJkQWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkIHwgYW55PigpO1xuXG4gIHByb3RlY3RlZCBnZXRTaG9ydERlc2NyaXB0aW9uKHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCF0ZXh0KSByZXR1cm4gJyc7XG4gICAgcmV0dXJuIHRleHQubGVuZ3RoID4gdGhpcy5vcHRpb25zIS5kZXNjcmlwdGlvbk1heExlbmd0aCEgPyB0ZXh0LnNsaWNlKDAsIHRoaXMub3B0aW9ucyEuZGVzY3JpcHRpb25NYXhMZW5ndGgpLnRyaW1FbmQoKSArICcuLi4nIDogdGV4dDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNkYy1jYXJkIGRwLWNhcmRcIj5cbiAgPGRpdiBjbGFzcz1cInNkYy1jYXJkX19oZWFkZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwic2RjLWNhcmRfX2ljb25cIiBbc3R5bGUuYmFja2dyb3VuZF09XCJvcHRpb25zPy5iYWNrZ3JvdW5kSWNvblwiIFtzdHlsZS5jb2xvcl09XCJvcHRpb25zPy5pY29uQ29sb3JcIj5cbiAgICAgIDxpIFtjbGFzc109XCJvcHRpb25zPy5pY29uXCI+PC9pPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIG1sLTNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZGMtY2FyZF9fdGl0bGVcIj5cbiAgICAgICAge3sgZGF0YS5uYW1lIH19XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInNkYy1jYXJkX19zdWJ0aXRsZVwiPlxuICAgICAgICA8c3Bhbj57eyBkYXRhLmNhdGVnb3J5IH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJzZGMtY2FyZF9fYm9keVwiPlxuICAgIDxkaXYgY2xhc3M9XCJzZGMtY2FyZF9fY29udGVudFwiPlxuICAgICAgPHAgY2xhc3M9XCJzZGMtY2FyZF9fZGVzY3JpcHRpb25cIj5cbiAgICAgICAge3sgZ2V0U2hvcnREZXNjcmlwdGlvbihkYXRhLmRlc2NyaXB0aW9uKSB9fVxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwic2RjLWNhcmRfX2Zvb3RlciBmbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICA8c2RjLWJ1dHRvblxuICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgIChvbkNsaWNrKT1cImNhcmRBY3Rpb24uZW1pdChkYXRhKVwiXG4gICAgICBbcHJpb3JpdHldPVwib3B0aW9ucz8uYnV0dG9uUHJpb3JpdHkhXCJcbiAgICAgIFtsYWJlbF09XCJvcHRpb25zPy5idXR0b25MYWJlbCEgfCB0cmFuc2xhdGVcIlxuICAgID5cbiAgICA8L3NkYy1idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
+
import { basicSetup } from 'codemirror';
|
|
4
|
+
import { EditorView } from '@codemirror/view';
|
|
5
|
+
import { StateEffect } from '@codemirror/state';
|
|
6
|
+
import { autocompletion } from '@codemirror/autocomplete';
|
|
7
|
+
import { ayuLight } from 'thememirror';
|
|
8
|
+
import { sql, PostgreSQL } from '@codemirror/lang-sql';
|
|
9
|
+
import { javascript } from '@codemirror/lang-javascript';
|
|
10
|
+
import { json as jsonLang } from '@codemirror/lang-json';
|
|
11
|
+
import { html as htmlLang } from '@codemirror/lang-html';
|
|
12
|
+
import { createSqlAutoCompletionHadler } from '../../core/handlers/sqlAutoComplete';
|
|
13
|
+
import { sqlDomainFilterDecorator } from '../../core/decorators/sqlDomainFilter';
|
|
14
|
+
import { sqlFormatterHandler } from '../../core/handlers/sqlFormatter';
|
|
15
|
+
import { sqlUppercaseHandler } from '../../core/handlers/sqlUppercase';
|
|
16
|
+
import { Component, EventEmitter, forwardRef, Input, Output, ViewChild, ChangeDetectionStrategy, ViewEncapsulation, } from '@angular/core';
|
|
17
|
+
import * as i0 from "@angular/core";
|
|
18
|
+
import * as i1 from "../toast/toast.service";
|
|
19
|
+
import * as i2 from "@angular/common";
|
|
20
|
+
export class CodeEditorComponent {
|
|
21
|
+
toast;
|
|
22
|
+
constructor(toast) {
|
|
23
|
+
this.toast = toast;
|
|
24
|
+
}
|
|
25
|
+
sql = '';
|
|
26
|
+
height = null;
|
|
27
|
+
width = null;
|
|
28
|
+
showCopy = false;
|
|
29
|
+
customHeaderItems = [];
|
|
30
|
+
activeHeaderKey;
|
|
31
|
+
headerSelect = new EventEmitter();
|
|
32
|
+
copied = new EventEmitter();
|
|
33
|
+
_readOnly = false;
|
|
34
|
+
set readOnly(v) { this._readOnly = !!v; this.updateEditorExtensions(); }
|
|
35
|
+
get readOnly() { return this._readOnly; }
|
|
36
|
+
languageChange = new EventEmitter();
|
|
37
|
+
set language(value) {
|
|
38
|
+
const lang = (value || 'sql');
|
|
39
|
+
if (lang !== this.$language) {
|
|
40
|
+
this.$language = lang;
|
|
41
|
+
this.updateEditorExtensions();
|
|
42
|
+
this.languageChange.emit(this.$language);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
get language() { return this.$language; }
|
|
46
|
+
set schema(value) {
|
|
47
|
+
this.$schema = value;
|
|
48
|
+
if (this.$language === 'sql')
|
|
49
|
+
this.updateEditorExtensions();
|
|
50
|
+
}
|
|
51
|
+
onDomainFilter = new EventEmitter();
|
|
52
|
+
editorContainer;
|
|
53
|
+
$editor;
|
|
54
|
+
$onChange = () => { };
|
|
55
|
+
$onTouched = () => { };
|
|
56
|
+
$schema = {};
|
|
57
|
+
$language = 'sql';
|
|
58
|
+
$disabled = false;
|
|
59
|
+
ngOnInit() {
|
|
60
|
+
this.$editor = new EditorView({
|
|
61
|
+
doc: this.sql,
|
|
62
|
+
parent: this.editorContainer.nativeElement,
|
|
63
|
+
extensions: this.buildExtensions(),
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
ngOnChanges(changes) {
|
|
67
|
+
if (changes['sql'] && !changes['sql'].firstChange && this.$editor) {
|
|
68
|
+
const next = (changes['sql'].currentValue ?? '');
|
|
69
|
+
if (next !== this.$editor.state.doc.toString()) {
|
|
70
|
+
this.$editor.dispatch({ changes: { from: 0, to: this.$editor.state.doc.length, insert: next } });
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
ngOnDestroy() { this.$editor?.destroy(); }
|
|
75
|
+
writeValue(value) {
|
|
76
|
+
if (this.$editor && value !== this.$editor.state.doc.toString()) {
|
|
77
|
+
this.$editor.dispatch({ changes: { from: 0, to: this.$editor.state.doc.length, insert: value ?? '' } });
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
registerOnChange(fn) { this.$onChange = fn; }
|
|
81
|
+
registerOnTouched(fn) { this.$onTouched = fn; }
|
|
82
|
+
setDisabledState(isDisabled) {
|
|
83
|
+
this.$disabled = isDisabled;
|
|
84
|
+
if (!this.$editor)
|
|
85
|
+
return;
|
|
86
|
+
const editable = !(isDisabled || this._readOnly);
|
|
87
|
+
this.$editor.contentDOM.setAttribute('contenteditable', String(editable));
|
|
88
|
+
this.updateEditorExtensions();
|
|
89
|
+
}
|
|
90
|
+
getStyleMap() {
|
|
91
|
+
const s = {};
|
|
92
|
+
if (this.width != null)
|
|
93
|
+
s.width = typeof this.width === 'number' ? `${this.width}px` : this.width;
|
|
94
|
+
if (this.height != null)
|
|
95
|
+
s.height = typeof this.height === 'number' ? `${this.height}px` : this.height;
|
|
96
|
+
return s;
|
|
97
|
+
}
|
|
98
|
+
pickHeader(item) {
|
|
99
|
+
this.activeHeaderKey = item.key;
|
|
100
|
+
if (item.value !== this.$language)
|
|
101
|
+
this.language = item.value;
|
|
102
|
+
this.headerSelect.emit({ key: item.key, lang: item.value });
|
|
103
|
+
}
|
|
104
|
+
async copy() {
|
|
105
|
+
const text = this.$editor ? this.$editor.state.doc.toString() : this.sql || '';
|
|
106
|
+
let ok = false;
|
|
107
|
+
try {
|
|
108
|
+
await navigator.clipboard.writeText(text);
|
|
109
|
+
ok = true;
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
try {
|
|
113
|
+
const ta = document.createElement('textarea');
|
|
114
|
+
ta.value = text;
|
|
115
|
+
document.body.appendChild(ta);
|
|
116
|
+
ta.select();
|
|
117
|
+
document.execCommand('copy');
|
|
118
|
+
document.body.removeChild(ta);
|
|
119
|
+
ok = true;
|
|
120
|
+
}
|
|
121
|
+
catch {
|
|
122
|
+
ok = false;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
this.toast.show({
|
|
126
|
+
title: ok ? 'Copiado' : 'Falha ao copiar',
|
|
127
|
+
text: ok ? 'Conteúdo copiado para a área de transferência.' : 'Não foi possível copiar.',
|
|
128
|
+
severity: ok ? 'success' : 'error',
|
|
129
|
+
duration: 2000,
|
|
130
|
+
closable: true
|
|
131
|
+
});
|
|
132
|
+
this.copied.emit(ok);
|
|
133
|
+
}
|
|
134
|
+
buildExtensions() {
|
|
135
|
+
const editable = !(this._readOnly || this.$disabled);
|
|
136
|
+
const guards = editable ? [] : [
|
|
137
|
+
EditorView.domEventHandlers({
|
|
138
|
+
beforeinput: e => e.preventDefault(),
|
|
139
|
+
drop: e => e.preventDefault(),
|
|
140
|
+
paste: e => e.preventDefault(),
|
|
141
|
+
cut: e => e.preventDefault(),
|
|
142
|
+
}),
|
|
143
|
+
];
|
|
144
|
+
const base = [
|
|
145
|
+
basicSetup,
|
|
146
|
+
ayuLight,
|
|
147
|
+
EditorView.editable.of(editable),
|
|
148
|
+
EditorView.updateListener.of((update) => {
|
|
149
|
+
if (update.docChanged)
|
|
150
|
+
this.$onChange(update.state.doc.toString());
|
|
151
|
+
}),
|
|
152
|
+
...guards,
|
|
153
|
+
];
|
|
154
|
+
return [...base, ...this.getLanguageExtensions()];
|
|
155
|
+
}
|
|
156
|
+
getLanguageExtensions() {
|
|
157
|
+
switch (this.$language) {
|
|
158
|
+
case 'sql':
|
|
159
|
+
return [
|
|
160
|
+
sqlUppercaseHandler(),
|
|
161
|
+
sqlFormatterHandler(),
|
|
162
|
+
sql({ dialect: PostgreSQL }),
|
|
163
|
+
sqlDomainFilterDecorator((token) => this.onDomainFilter.emit(token)),
|
|
164
|
+
autocompletion({ override: [createSqlAutoCompletionHadler(this.$schema)] }),
|
|
165
|
+
];
|
|
166
|
+
case 'typescript': return [javascript({ typescript: true, jsx: true }), autocompletion()];
|
|
167
|
+
case 'javascript': return [javascript({ typescript: false, jsx: true }), autocompletion()];
|
|
168
|
+
case 'json': return [jsonLang(), autocompletion()];
|
|
169
|
+
case 'html': return [htmlLang(), autocompletion()];
|
|
170
|
+
case 'plaintext':
|
|
171
|
+
default: return [autocompletion()];
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
updateEditorExtensions() {
|
|
175
|
+
if (!this.$editor)
|
|
176
|
+
return;
|
|
177
|
+
this.$editor.dispatch({ effects: StateEffect.reconfigure.of(this.buildExtensions()) });
|
|
178
|
+
}
|
|
179
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CodeEditorComponent, deps: [{ token: i1.ToastService }], target: i0.ɵɵFactoryTarget.Component });
|
|
180
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: CodeEditorComponent, isStandalone: true, selector: "sdc-code-editor", inputs: { sql: "sql", height: "height", width: "width", showCopy: "showCopy", customHeaderItems: "customHeaderItems", activeHeaderKey: "activeHeaderKey", readOnly: "readOnly", language: "language", schema: "schema" }, outputs: { headerSelect: "headerSelect", copied: "onCopy", languageChange: "languageChange", onDomainFilter: "onDomainFilter" }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => CodeEditorComponent), multi: true }], viewQueries: [{ propertyName: "editorContainer", first: true, predicate: ["editorContainer"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"sdc-code-editor\">\n <div #editorContainer class=\"sdc-code-editor\" [ngStyle]=\"getStyleMap()\"></div>\n\n <div class=\"sdc-code-editor-header\" *ngIf=\"showCopy || customHeaderItems.length > 1\">\n <div class=\"header-left\" *ngIf=\"customHeaderItems.length > 1\">\n <div class=\"segmented\">\n <button\n *ngFor=\"let it of customHeaderItems\"\n type=\"button\"\n class=\"segmented-item\"\n [class.active]=\"it.key ? it.key === activeHeaderKey : it.value === language\"\n (click)=\"pickHeader(it)\"\n >\n {{ it.label }}\n </button>\n </div>\n </div>\n\n <div class=\"header-right\">\n <button type=\"button\" class=\"icon-btn\" *ngIf=\"showCopy\" (click)=\"copy()\" title=\"Copiar\">\n <i class=\"fas fa-copy\" aria-hidden=\"true\"></i>\n <span class=\"sr-only\">Copiar</span>\n </button>\n </div>\n </div>\n</div>\n", styles: [":host{display:block;min-width:0;min-height:0}.sdc-code-editor{border:var(--sql-editor-border);position:relative;isolation:isolate}.sdc-code-editor:hover .sdc-code-editor-header,.sdc-code-editor:focus-within .sdc-code-editor-header{opacity:1;transform:translateY(0);pointer-events:auto}.sdc-code-editor{display:block;width:100%}.sdc-code-editor,.sdc-code-editor .cm-editor,.sdc-code-editor .cm-scroller{position:relative;z-index:0;height:100%}.sdc-code-editor .cm-scroller{overflow:auto}.sdc-code-editor-header{position:absolute;top:8px;right:8px;left:auto;display:flex;align-items:center;gap:8px;z-index:10;opacity:0;transform:translateY(-4px);transition:opacity .18s ease,transform .18s ease;pointer-events:none}.sdc-code-editor-header .header-left,.sdc-code-editor-header .header-right{display:flex;align-items:center;gap:8px}.sdc-code-editor-header .segmented{display:flex;gap:2px;padding:2px;border-radius:999px;background:#ffffffeb;border:1px solid rgba(0,0,0,.08);box-shadow:0 2px 8px #00000014;backdrop-filter:saturate(180%) blur(6px);pointer-events:auto}.sdc-code-editor-header .segmented-item{appearance:none;border:0;background:transparent;padding:6px 10px;border-radius:999px;font:500 12px/1 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;text-transform:uppercase;letter-spacing:.02em;cursor:pointer;-webkit-user-select:none;user-select:none;color:#111}.sdc-code-editor-header .segmented-item:hover{background:#1118270f}.sdc-code-editor-header .segmented-item.active{background:#eef2ff;box-shadow:inset 0 0 0 1px #c7d2fe}.sdc-code-editor-header .segmented-item:focus-visible{outline:none;box-shadow:inset 0 0 0 2px #6366f1}.sdc-code-editor-header .icon-btn{appearance:none;border:1px solid rgba(0,0,0,.08);width:32px;height:32px;border-radius:999px;display:grid;place-items:center;background:#ffffffeb;box-shadow:0 2px 8px #00000014;cursor:pointer;pointer-events:auto}.sdc-code-editor-header .icon-btn:hover{filter:brightness(.98)}.sdc-code-editor-header .icon-btn:active{transform:translateY(1px)}.sdc-code-editor-header .icon-btn:focus-visible{outline:none;box-shadow:0 0 0 2px #6366f1 inset}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
181
|
+
}
|
|
182
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CodeEditorComponent, decorators: [{
|
|
183
|
+
type: Component,
|
|
184
|
+
args: [{ selector: 'sdc-code-editor', standalone: true, imports: [CommonModule], providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => CodeEditorComponent), multi: true }], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"sdc-code-editor\">\n <div #editorContainer class=\"sdc-code-editor\" [ngStyle]=\"getStyleMap()\"></div>\n\n <div class=\"sdc-code-editor-header\" *ngIf=\"showCopy || customHeaderItems.length > 1\">\n <div class=\"header-left\" *ngIf=\"customHeaderItems.length > 1\">\n <div class=\"segmented\">\n <button\n *ngFor=\"let it of customHeaderItems\"\n type=\"button\"\n class=\"segmented-item\"\n [class.active]=\"it.key ? it.key === activeHeaderKey : it.value === language\"\n (click)=\"pickHeader(it)\"\n >\n {{ it.label }}\n </button>\n </div>\n </div>\n\n <div class=\"header-right\">\n <button type=\"button\" class=\"icon-btn\" *ngIf=\"showCopy\" (click)=\"copy()\" title=\"Copiar\">\n <i class=\"fas fa-copy\" aria-hidden=\"true\"></i>\n <span class=\"sr-only\">Copiar</span>\n </button>\n </div>\n </div>\n</div>\n", styles: [":host{display:block;min-width:0;min-height:0}.sdc-code-editor{border:var(--sql-editor-border);position:relative;isolation:isolate}.sdc-code-editor:hover .sdc-code-editor-header,.sdc-code-editor:focus-within .sdc-code-editor-header{opacity:1;transform:translateY(0);pointer-events:auto}.sdc-code-editor{display:block;width:100%}.sdc-code-editor,.sdc-code-editor .cm-editor,.sdc-code-editor .cm-scroller{position:relative;z-index:0;height:100%}.sdc-code-editor .cm-scroller{overflow:auto}.sdc-code-editor-header{position:absolute;top:8px;right:8px;left:auto;display:flex;align-items:center;gap:8px;z-index:10;opacity:0;transform:translateY(-4px);transition:opacity .18s ease,transform .18s ease;pointer-events:none}.sdc-code-editor-header .header-left,.sdc-code-editor-header .header-right{display:flex;align-items:center;gap:8px}.sdc-code-editor-header .segmented{display:flex;gap:2px;padding:2px;border-radius:999px;background:#ffffffeb;border:1px solid rgba(0,0,0,.08);box-shadow:0 2px 8px #00000014;backdrop-filter:saturate(180%) blur(6px);pointer-events:auto}.sdc-code-editor-header .segmented-item{appearance:none;border:0;background:transparent;padding:6px 10px;border-radius:999px;font:500 12px/1 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;text-transform:uppercase;letter-spacing:.02em;cursor:pointer;-webkit-user-select:none;user-select:none;color:#111}.sdc-code-editor-header .segmented-item:hover{background:#1118270f}.sdc-code-editor-header .segmented-item.active{background:#eef2ff;box-shadow:inset 0 0 0 1px #c7d2fe}.sdc-code-editor-header .segmented-item:focus-visible{outline:none;box-shadow:inset 0 0 0 2px #6366f1}.sdc-code-editor-header .icon-btn{appearance:none;border:1px solid rgba(0,0,0,.08);width:32px;height:32px;border-radius:999px;display:grid;place-items:center;background:#ffffffeb;box-shadow:0 2px 8px #00000014;cursor:pointer;pointer-events:auto}.sdc-code-editor-header .icon-btn:hover{filter:brightness(.98)}.sdc-code-editor-header .icon-btn:active{transform:translateY(1px)}.sdc-code-editor-header .icon-btn:focus-visible{outline:none;box-shadow:0 0 0 2px #6366f1 inset}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n"] }]
|
|
185
|
+
}], ctorParameters: () => [{ type: i1.ToastService }], propDecorators: { sql: [{
|
|
186
|
+
type: Input
|
|
187
|
+
}], height: [{
|
|
188
|
+
type: Input
|
|
189
|
+
}], width: [{
|
|
190
|
+
type: Input
|
|
191
|
+
}], showCopy: [{
|
|
192
|
+
type: Input
|
|
193
|
+
}], customHeaderItems: [{
|
|
194
|
+
type: Input
|
|
195
|
+
}], activeHeaderKey: [{
|
|
196
|
+
type: Input
|
|
197
|
+
}], headerSelect: [{
|
|
198
|
+
type: Output
|
|
199
|
+
}], copied: [{
|
|
200
|
+
type: Output,
|
|
201
|
+
args: ['onCopy']
|
|
202
|
+
}], readOnly: [{
|
|
203
|
+
type: Input
|
|
204
|
+
}], languageChange: [{
|
|
205
|
+
type: Output
|
|
206
|
+
}], language: [{
|
|
207
|
+
type: Input
|
|
208
|
+
}], schema: [{
|
|
209
|
+
type: Input
|
|
210
|
+
}], onDomainFilter: [{
|
|
211
|
+
type: Output
|
|
212
|
+
}], editorContainer: [{
|
|
213
|
+
type: ViewChild,
|
|
214
|
+
args: ['editorContainer', { static: true }]
|
|
215
|
+
}] } });
|
|
216
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9jb2RlLWVkaXRvci9jb2RlLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2NvZGUtZWRpdG9yL2NvZGUtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN4QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBYSxNQUFNLG1CQUFtQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxJQUFJLElBQUksUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLElBQUksSUFBSSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsNkJBQTZCLEVBQVUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbUJBQW1C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bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgYmFzaWNTZXR1cCB9IGZyb20gJ2NvZGVtaXJyb3InO1xuaW1wb3J0IHsgRWRpdG9yVmlldyB9IGZyb20gJ0Bjb2RlbWlycm9yL3ZpZXcnO1xuaW1wb3J0IHsgU3RhdGVFZmZlY3QsIEV4dGVuc2lvbiB9IGZyb20gJ0Bjb2RlbWlycm9yL3N0YXRlJztcbmltcG9ydCB7IGF1dG9jb21wbGV0aW9uIH0gZnJvbSAnQGNvZGVtaXJyb3IvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IGF5dUxpZ2h0IH0gZnJvbSAndGhlbWVtaXJyb3InO1xuaW1wb3J0IHsgc3FsLCBQb3N0Z3JlU1FMIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZy1zcWwnO1xuaW1wb3J0IHsgamF2YXNjcmlwdCB9IGZyb20gJ0Bjb2RlbWlycm9yL2xhbmctamF2YXNjcmlwdCc7XG5pbXBvcnQgeyBqc29uIGFzIGpzb25MYW5nIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZy1qc29uJztcbmltcG9ydCB7IGh0bWwgYXMgaHRtbExhbmcgfSBmcm9tICdAY29kZW1pcnJvci9sYW5nLWh0bWwnO1xuaW1wb3J0IHsgY3JlYXRlU3FsQXV0b0NvbXBsZXRpb25IYWRsZXIsIFNjaGVtYSB9IGZyb20gJy4uLy4uL2NvcmUvaGFuZGxlcnMvc3FsQXV0b0NvbXBsZXRlJztcbmltcG9ydCB7IHNxbERvbWFpbkZpbHRlckRlY29yYXRvciB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy9zcWxEb21haW5GaWx0ZXInO1xuaW1wb3J0IHsgc3FsRm9ybWF0dGVySGFuZGxlciB9IGZyb20gJy4uLy4uL2NvcmUvaGFuZGxlcnMvc3FsRm9ybWF0dGVyJztcbmltcG9ydCB7IHNxbFVwcGVyY2FzZUhhbmRsZXIgfSBmcm9tICcuLi8uLi9jb3JlL2hhbmRsZXJzL3NxbFVwcGVyY2FzZSc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vdG9hc3QvdG9hc3Quc2VydmljZSc7XG5cbnR5cGUgRWRpdG9yTGFuZ3VhZ2UgPSAnc3FsJyB8ICdqYXZhc2NyaXB0JyB8ICd0eXBlc2NyaXB0JyB8ICdqc29uJyB8ICdodG1sJyB8ICdwbGFpbnRleHQnO1xudHlwZSBIZWFkZXJJdGVtID0geyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogRWRpdG9yTGFuZ3VhZ2U7IGtleT86IHN0cmluZyB9O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZGMtY29kZS1lZGl0b3InLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvZGUtZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29kZS1lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ29kZUVkaXRvckNvbXBvbmVudCksIG11bHRpOiB0cnVlIH1dLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQ29kZUVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0b2FzdDogVG9hc3RTZXJ2aWNlKSB7IH1cblxuICBASW5wdXQoKSBzcWwgPSAnJztcbiAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgd2lkdGg6IHN0cmluZyB8IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBzaG93Q29weSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIGN1c3RvbUhlYWRlckl0ZW1zOiBIZWFkZXJJdGVtW10gPSBbXTtcbiAgQElucHV0KCkgYWN0aXZlSGVhZGVyS2V5Pzogc3RyaW5nO1xuICBAT3V0cHV0KCkgaGVhZGVyU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjx7IGtleT86IHN0cmluZzsgbGFuZzogRWRpdG9yTGFuZ3VhZ2UgfT4oKTtcbiAgQE91dHB1dCgnb25Db3B5JykgY29waWVkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHByaXZhdGUgX3JlYWRPbmx5ID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNldCByZWFkT25seSh2OiBib29sZWFuKSB7IHRoaXMuX3JlYWRPbmx5ID0gISF2OyB0aGlzLnVwZGF0ZUVkaXRvckV4dGVuc2lvbnMoKTsgfVxuICBnZXQgcmVhZE9ubHkoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9yZWFkT25seTsgfVxuXG4gIEBPdXRwdXQoKSBsYW5ndWFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RWRpdG9yTGFuZ3VhZ2U+KCk7XG5cbiAgQElucHV0KCkgc2V0IGxhbmd1YWdlKHZhbHVlOiBFZGl0b3JMYW5ndWFnZSkge1xuICAgIGNvbnN0IGxhbmcgPSAodmFsdWUgfHwgJ3NxbCcpIGFzIEVkaXRvckxhbmd1YWdlO1xuICAgIGlmIChsYW5nICE9PSB0aGlzLiRsYW5ndWFnZSkge1xuICAgICAgdGhpcy4kbGFuZ3VhZ2UgPSBsYW5nO1xuICAgICAgdGhpcy51cGRhdGVFZGl0b3JFeHRlbnNpb25zKCk7XG4gICAgICB0aGlzLmxhbmd1YWdlQ2hhbmdlLmVtaXQodGhpcy4kbGFuZ3VhZ2UpO1xuICAgIH1cbiAgfVxuICBnZXQgbGFuZ3VhZ2UoKTogRWRpdG9yTGFuZ3VhZ2UgeyByZXR1cm4gdGhpcy4kbGFuZ3VhZ2U7IH1cblxuICBASW5wdXQoKSBzZXQgc2NoZW1hKHZhbHVlOiBTY2hlbWEpIHtcbiAgICB0aGlzLiRzY2hlbWEgPSB2YWx1ZTtcbiAgICBpZiAodGhpcy4kbGFuZ3VhZ2UgPT09ICdzcWwnKSB0aGlzLnVwZGF0ZUVkaXRvckV4dGVuc2lvbnMoKTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBvbkRvbWFpbkZpbHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAVmlld0NoaWxkKCdlZGl0b3JDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBlZGl0b3JDb250YWluZXIhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBwcml2YXRlICRlZGl0b3IhOiBFZGl0b3JWaWV3O1xuICBwcml2YXRlICRvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQgPSAoKSA9PiB7IH07XG4gIHByaXZhdGUgJG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHsgfTtcbiAgcHJpdmF0ZSAkc2NoZW1hOiBTY2hlbWEgPSB7fTtcbiAgcHJpdmF0ZSAkbGFuZ3VhZ2U6IEVkaXRvckxhbmd1YWdlID0gJ3NxbCc7XG4gIHByaXZhdGUgJGRpc2FibGVkID0gZmFsc2U7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy4kZWRpdG9yID0gbmV3IEVkaXRvclZpZXcoe1xuICAgICAgZG9jOiB0aGlzLnNxbCxcbiAgICAgIHBhcmVudDogdGhpcy5lZGl0b3JDb250YWluZXIubmF0aXZlRWxlbWVudCxcbiAgICAgIGV4dGVuc2lvbnM6IHRoaXMuYnVpbGRFeHRlbnNpb25zKCksXG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ3NxbCddICYmICFjaGFuZ2VzWydzcWwnXS5maXJzdENoYW5nZSAmJiB0aGlzLiRlZGl0b3IpIHtcbiAgICAgIGNvbnN0IG5leHQgPSAoY2hhbmdlc1snc3FsJ10uY3VycmVudFZhbHVlID8/ICcnKSBhcyBzdHJpbmc7XG4gICAgICBpZiAobmV4dCAhPT0gdGhpcy4kZWRpdG9yLnN0YXRlLmRvYy50b1N0cmluZygpKSB7XG4gICAgICAgIHRoaXMuJGVkaXRvci5kaXNwYXRjaCh7IGNoYW5nZXM6IHsgZnJvbTogMCwgdG86IHRoaXMuJGVkaXRvci5zdGF0ZS5kb2MubGVuZ3RoLCBpbnNlcnQ6IG5leHQgfSB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHsgdGhpcy4kZWRpdG9yPy5kZXN0cm95KCk7IH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy4kZWRpdG9yICYmIHZhbHVlICE9PSB0aGlzLiRlZGl0b3Iuc3RhdGUuZG9jLnRvU3RyaW5nKCkpIHtcbiAgICAgIHRoaXMuJGVkaXRvci5kaXNwYXRjaCh7IGNoYW5nZXM6IHsgZnJvbTogMCwgdG86IHRoaXMuJGVkaXRvci5zdGF0ZS5kb2MubGVuZ3RoLCBpbnNlcnQ6IHZhbHVlID8/ICcnIH0gfSk7XG4gICAgfVxuICB9XG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWw6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQgeyB0aGlzLiRvbkNoYW5nZSA9IGZuOyB9XG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7IHRoaXMuJG9uVG91Y2hlZCA9IGZuOyB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy4kZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIGlmICghdGhpcy4kZWRpdG9yKSByZXR1cm47XG4gICAgY29uc3QgZWRpdGFibGUgPSAhKGlzRGlzYWJsZWQgfHwgdGhpcy5fcmVhZE9ubHkpO1xuICAgIHRoaXMuJGVkaXRvci5jb250ZW50RE9NLnNldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJywgU3RyaW5nKGVkaXRhYmxlKSk7XG4gICAgdGhpcy51cGRhdGVFZGl0b3JFeHRlbnNpb25zKCk7XG4gIH1cblxuICBnZXRTdHlsZU1hcCgpOiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+IHtcbiAgICBjb25zdCBzOiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+ID0ge307XG4gICAgaWYgKHRoaXMud2lkdGggIT0gbnVsbCkgcy53aWR0aCA9IHR5cGVvZiB0aGlzLndpZHRoID09PSAnbnVtYmVyJyA/IGAke3RoaXMud2lkdGh9cHhgIDogdGhpcy53aWR0aDtcbiAgICBpZiAodGhpcy5oZWlnaHQgIT0gbnVsbCkgcy5oZWlnaHQgPSB0eXBlb2YgdGhpcy5oZWlnaHQgPT09ICdudW1iZXInID8gYCR7dGhpcy5oZWlnaHR9cHhgIDogdGhpcy5oZWlnaHQ7XG4gICAgcmV0dXJuIHM7XG4gIH1cblxuICBwaWNrSGVhZGVyKGl0ZW06IEhlYWRlckl0ZW0pOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2ZUhlYWRlcktleSA9IGl0ZW0ua2V5O1xuICAgIGlmIChpdGVtLnZhbHVlICE9PSB0aGlzLiRsYW5ndWFnZSkgdGhpcy5sYW5ndWFnZSA9IGl0ZW0udmFsdWU7XG4gICAgdGhpcy5oZWFkZXJTZWxlY3QuZW1pdCh7IGtleTogaXRlbS5rZXksIGxhbmc6IGl0ZW0udmFsdWUgfSk7XG4gIH1cblxuICBhc3luYyBjb3B5KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHRleHQgPSB0aGlzLiRlZGl0b3IgPyB0aGlzLiRlZGl0b3Iuc3RhdGUuZG9jLnRvU3RyaW5nKCkgOiB0aGlzLnNxbCB8fCAnJztcbiAgICBsZXQgb2sgPSBmYWxzZTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGV4dCk7XG4gICAgICBvayA9IHRydWU7XG4gICAgfSBjYXRjaCB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB0YSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RleHRhcmVhJyk7XG4gICAgICAgIHRhLnZhbHVlID0gdGV4dDtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0YSk7XG4gICAgICAgIHRhLnNlbGVjdCgpO1xuICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnY29weScpO1xuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRhKTtcbiAgICAgICAgb2sgPSB0cnVlO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIG9rID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMudG9hc3Quc2hvdyh7XG4gICAgICB0aXRsZTogb2sgPyAnQ29waWFkbycgOiAnRmFsaGEgYW8gY29waWFyJyxcbiAgICAgIHRleHQ6IG9rID8gJ0NvbnRlw7pkbyBjb3BpYWRvIHBhcmEgYSDDoXJlYSBkZSB0cmFuc2ZlcsOqbmNpYS4nIDogJ07Do28gZm9pIHBvc3PDrXZlbCBjb3BpYXIuJyxcbiAgICAgIHNldmVyaXR5OiBvayA/ICdzdWNjZXNzJyA6ICdlcnJvcicsXG4gICAgICBkdXJhdGlvbjogMjAwMCxcbiAgICAgIGNsb3NhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgdGhpcy5jb3BpZWQuZW1pdChvayk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRXh0ZW5zaW9ucygpOiBFeHRlbnNpb25bXSB7XG4gICAgY29uc3QgZWRpdGFibGUgPSAhKHRoaXMuX3JlYWRPbmx5IHx8IHRoaXMuJGRpc2FibGVkKTtcbiAgICBjb25zdCBndWFyZHMgPSBlZGl0YWJsZSA/IFtdIDogW1xuICAgICAgRWRpdG9yVmlldy5kb21FdmVudEhhbmRsZXJzKHtcbiAgICAgICAgYmVmb3JlaW5wdXQ6IGUgPT4gZS5wcmV2ZW50RGVmYXVsdCgpLFxuICAgICAgICBkcm9wOiBlID0+IGUucHJldmVudERlZmF1bHQoKSxcbiAgICAgICAgcGFzdGU6IGUgPT4gZS5wcmV2ZW50RGVmYXVsdCgpLFxuICAgICAgICBjdXQ6IGUgPT4gZS5wcmV2ZW50RGVmYXVsdCgpLFxuICAgICAgfSksXG4gICAgXTtcbiAgICBjb25zdCBiYXNlOiBFeHRlbnNpb25bXSA9IFtcbiAgICAgIGJhc2ljU2V0dXAsXG4gICAgICBheXVMaWdodCxcbiAgICAgIEVkaXRvclZpZXcuZWRpdGFibGUub2YoZWRpdGFibGUpLFxuICAgICAgRWRpdG9yVmlldy51cGRhdGVMaXN0ZW5lci5vZigodXBkYXRlKSA9PiB7XG4gICAgICAgIGlmICh1cGRhdGUuZG9jQ2hhbmdlZCkgdGhpcy4kb25DaGFuZ2UodXBkYXRlLnN0YXRlLmRvYy50b1N0cmluZygpKTtcbiAgICAgIH0pLFxuICAgICAgLi4uZ3VhcmRzLFxuICAgIF07XG4gICAgcmV0dXJuIFsuLi5iYXNlLCAuLi50aGlzLmdldExhbmd1YWdlRXh0ZW5zaW9ucygpXTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TGFuZ3VhZ2VFeHRlbnNpb25zKCk6IEV4dGVuc2lvbltdIHtcbiAgICBzd2l0Y2ggKHRoaXMuJGxhbmd1YWdlKSB7XG4gICAgICBjYXNlICdzcWwnOlxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIHNxbFVwcGVyY2FzZUhhbmRsZXIoKSxcbiAgICAgICAgICBzcWxGb3JtYXR0ZXJIYW5kbGVyKCksXG4gICAgICAgICAgc3FsKHsgZGlhbGVjdDogUG9zdGdyZVNRTCB9KSxcbiAgICAgICAgICBzcWxEb21haW5GaWx0ZXJEZWNvcmF0b3IoKHRva2VuKSA9PiB0aGlzLm9uRG9tYWluRmlsdGVyLmVtaXQodG9rZW4pKSxcbiAgICAgICAgICBhdXRvY29tcGxldGlvbih7IG92ZXJyaWRlOiBbY3JlYXRlU3FsQXV0b0NvbXBsZXRpb25IYWRsZXIodGhpcy4kc2NoZW1hKV0gfSksXG4gICAgICAgIF07XG4gICAgICBjYXNlICd0eXBlc2NyaXB0JzogcmV0dXJuIFtqYXZhc2NyaXB0KHsgdHlwZXNjcmlwdDogdHJ1ZSwganN4OiB0cnVlIH0pLCBhdXRvY29tcGxldGlvbigpXTtcbiAgICAgIGNhc2UgJ2phdmFzY3JpcHQnOiByZXR1cm4gW2phdmFzY3JpcHQoeyB0eXBlc2NyaXB0OiBmYWxzZSwganN4OiB0cnVlIH0pLCBhdXRvY29tcGxldGlvbigpXTtcbiAgICAgIGNhc2UgJ2pzb24nOiByZXR1cm4gW2pzb25MYW5nKCksIGF1dG9jb21wbGV0aW9uKCldO1xuICAgICAgY2FzZSAnaHRtbCc6IHJldHVybiBbaHRtbExhbmcoKSwgYXV0b2NvbXBsZXRpb24oKV07XG4gICAgICBjYXNlICdwbGFpbnRleHQnOlxuICAgICAgZGVmYXVsdDogcmV0dXJuIFthdXRvY29tcGxldGlvbigpXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUVkaXRvckV4dGVuc2lvbnMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLiRlZGl0b3IpIHJldHVybjtcbiAgICB0aGlzLiRlZGl0b3IuZGlzcGF0Y2goeyBlZmZlY3RzOiBTdGF0ZUVmZmVjdC5yZWNvbmZpZ3VyZS5vZih0aGlzLmJ1aWxkRXh0ZW5zaW9ucygpKSB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNkYy1jb2RlLWVkaXRvclwiPlxuICA8ZGl2ICNlZGl0b3JDb250YWluZXIgY2xhc3M9XCJzZGMtY29kZS1lZGl0b3JcIiBbbmdTdHlsZV09XCJnZXRTdHlsZU1hcCgpXCI+PC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInNkYy1jb2RlLWVkaXRvci1oZWFkZXJcIiAqbmdJZj1cInNob3dDb3B5IHx8IGN1c3RvbUhlYWRlckl0ZW1zLmxlbmd0aCA+IDFcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWxlZnRcIiAqbmdJZj1cImN1c3RvbUhlYWRlckl0ZW1zLmxlbmd0aCA+IDFcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZWdtZW50ZWRcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICpuZ0Zvcj1cImxldCBpdCBvZiBjdXN0b21IZWFkZXJJdGVtc1wiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJzZWdtZW50ZWQtaXRlbVwiXG4gICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJpdC5rZXkgPyBpdC5rZXkgPT09IGFjdGl2ZUhlYWRlcktleSA6IGl0LnZhbHVlID09PSBsYW5ndWFnZVwiXG4gICAgICAgICAgKGNsaWNrKT1cInBpY2tIZWFkZXIoaXQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGl0LmxhYmVsIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXJpZ2h0XCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImljb24tYnRuXCIgKm5nSWY9XCJzaG93Q29weVwiIChjbGljayk9XCJjb3B5KClcIiB0aXRsZT1cIkNvcGlhclwiPlxuICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jb3B5XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5Db3BpYXI8L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, EventEmitter, Output, computed, effect, input, signal } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { FormsModule } from '@angular/forms';
|
|
4
|
-
import { ComboboxComponent } from '
|
|
4
|
+
import { ComboboxComponent } from '../combobox/combobox.component';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@angular/common";
|
|
7
7
|
import * as i2 from "@angular/forms";
|
|
@@ -88,4 +88,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
88
88
|
}], ctorParameters: () => [], propDecorators: { pageChange: [{
|
|
89
89
|
type: Output
|
|
90
90
|
}] } });
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvcGFnaW5hdG9yL3BhZ2luYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3BhZ2luYXRvci9wYWdpbmF0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7O0FBaUJyRCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7SUFDakMsSUFBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztJQUNoQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO0lBQ3hDLGtCQUFrQixHQUFHLEtBQUssQ0FBdUIsU0FBUyxDQUFDLENBQUM7SUFDNUQsUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixpQkFBaUIsR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7SUFFNUIsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFrQixDQUFDO0lBRTFELFlBQVksR0FBRyxNQUFNLENBQWMsR0FBRyxDQUFDLENBQUM7SUFFeEM7UUFDRSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsTUFB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QUMsTUFBTTt3REFVckMsVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBjb21wdXRlZCwgZWZmZWN0LCBpbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgdHlwZSB7IE9wdGlvbkl0ZW0sIE9wdGlvblZhbHVlIH0gZnJvbSAnbGliL3NyYy9jb3JlL3R5cGVzL3NlbWFudGljcy50eXBlJztcbmltcG9ydCB7IENvbWJvYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB0eXBlIFBhZ2luYXRvclN0YXRlID0ge1xuICBmaXJzdDogbnVtYmVyO1xuICByb3dzOiBudW1iZXI7XG4gIHBhZ2U6IG51bWJlcjtcbiAgcGFnZUNvdW50OiBudW1iZXI7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZGMtcGFnaW5hdG9yJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIENvbWJvYm94Q29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhZ2luYXRvci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQYWdpbmF0b3JDb21wb25lbnQge1xuICBmaXJzdCA9IGlucHV0LnJlcXVpcmVkPG51bWJlcj4oKTtcbiAgcm93cyA9IGlucHV0LnJlcXVpcmVkPG51bWJlcj4oKTtcbiAgdG90YWxSZWNvcmRzID0gaW5wdXQucmVxdWlyZWQ8bnVtYmVyPigpO1xuICByb3dzUGVyUGFnZU9wdGlvbnMgPSBpbnB1dDxudW1iZXJbXSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgaXNNb2JpbGUgPSBpbnB1dChmYWxzZSk7XG4gIHRvdGFsUmVjb3Jkc0xhYmVsID0gaW5wdXQ8c3RyaW5nPignJyk7XG5cbiAgQE91dHB1dCgpIHBhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFBhZ2luYXRvclN0YXRlPigpO1xuXG4gIHNlbGVjdGVkUm93cyA9IHNpZ25hbDxPcHRpb25WYWx1ZT4oJzAnKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5zZWxlY3RlZFJvd3Muc2V0KFN0cmluZyh0aGlzLnJvd3MoKSkgYXMgT3B0aW9uVmFsdWUpO1xuICAgIH0pO1xuICB9XG5cbiAgcmVhZG9ubHkgcm93T3B0aW9ucyA9IGNvbXB1dGVkPE9wdGlvbkl0ZW1bXT4oKCkgPT4ge1xuICAgIGNvbnN0IG9wdHMgPSAodGhpcy5yb3dzUGVyUGFnZU9wdGlvbnMoKSA/PyBbXSkubWFwKHYgPT4gKHtcbiAgICAgIHRleHQ6IFN0cmluZyh2KSxcbiAgICAgIHZhbHVlOiBTdHJpbmcodikgYXMgT3B0aW9uVmFsdWVcbiAgICB9KSk7XG4gICAgY29uc3QgY3VyID0gU3RyaW5nKHRoaXMucm93cygpKTtcbiAgICBpZiAoIW9wdHMuc29tZShvID0+IG8udmFsdWUgPT09IGN1cikpIHtcbiAgICAgIG9wdHMudW5zaGlmdCh7IHRleHQ6IGN1ciwgdmFsdWU6IGN1ciBhcyBPcHRpb25WYWx1ZSB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG9wdHM7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHBhZ2VDb3VudCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCByID0gdGhpcy5yb3dzKCk7XG4gICAgY29uc3QgdCA9IHRoaXMudG90YWxSZWNvcmRzKCk7XG4gICAgcmV0dXJuIHIgPiAwID8gTWF0aC5tYXgoMSwgTWF0aC5jZWlsKHQgLyByKSkgOiAxO1xuICB9KTtcblxuICByZWFkb25seSBjdXJyZW50UGFnZSA9IGNvbXB1dGVkKCgpID0+IE1hdGguZmxvb3IodGhpcy5maXJzdCgpIC8gTWF0aC5tYXgoMSwgdGhpcy5yb3dzKCkpKSk7XG5cbiAgcmVhZG9ubHkgcGFnZXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY291bnQgPSB0aGlzLnBhZ2VDb3VudCgpO1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmN1cnJlbnRQYWdlKCk7XG4gICAgY29uc3Qgd2luID0gdGhpcy5pc01vYmlsZSgpID8gMyA6IDc7XG4gICAgaWYgKGNvdW50IDw9IHdpbikgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IGNvdW50IH0sIChfLCBpKSA9PiBpKTtcbiAgICBjb25zdCBuZWFyID0gTWF0aC5mbG9vcigod2luIC0gMykgLyAyKTtcbiAgICBjb25zdCBzdGFydCA9IE1hdGgubWF4KDEsIGN1cnJlbnQgLSBuZWFyKTtcbiAgICBjb25zdCBlbmQgPSBNYXRoLm1pbihjb3VudCAtIDIsIGN1cnJlbnQgKyBuZWFyKTtcbiAgICBjb25zdCBsaXN0OiBBcnJheTxudW1iZXIgfCAn4oCmJz4gPSBbMF07XG4gICAgaWYgKHN0YXJ0ID4gMSkgbGlzdC5wdXNoKCfigKYnKTtcbiAgICBmb3IgKGxldCBwID0gc3RhcnQ7IHAgPD0gZW5kOyBwKyspIGxpc3QucHVzaChwKTtcbiAgICBpZiAoZW5kIDwgY291bnQgLSAyKSBsaXN0LnB1c2goJ+KApicpO1xuICAgIGxpc3QucHVzaChjb3VudCAtIDEpO1xuICAgIHJldHVybiBsaXN0O1xuICB9KTtcblxuICBwcml2YXRlIGVtaXRDaGFuZ2UoZmlyc3Q6IG51bWJlciwgcm93cyA9IHRoaXMucm93cygpKSB7XG4gICAgY29uc3QgcGFnZSA9IE1hdGguZmxvb3IoZmlyc3QgLyBNYXRoLm1heCgxLCByb3dzKSk7XG4gICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoeyBmaXJzdCwgcm93cywgcGFnZSwgcGFnZUNvdW50OiB0aGlzLnBhZ2VDb3VudCgpIH0pO1xuICB9XG5cbiAgZ290b1BhZ2UoaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IHNhZmUgPSBNYXRoLm1pbihNYXRoLm1heChpbmRleCwgMCksIHRoaXMucGFnZUNvdW50KCkgLSAxKTtcbiAgICB0aGlzLmVtaXRDaGFuZ2Uoc2FmZSAqIHRoaXMucm93cygpKTtcbiAgfVxuXG4gIGZpcnN0UGFnZSgpIHsgdGhpcy5nb3RvUGFnZSgwKTsgfVxuICBwcmV2UGFnZSgpIHsgdGhpcy5nb3RvUGFnZSh0aGlzLmN1cnJlbnRQYWdlKCkgLSAxKTsgfVxuICBuZXh0UGFnZSgpIHsgdGhpcy5nb3RvUGFnZSh0aGlzLmN1cnJlbnRQYWdlKCkgKyAxKTsgfVxuICBsYXN0UGFnZSgpIHsgdGhpcy5nb3RvUGFnZSh0aGlzLnBhZ2VDb3VudCgpIC0gMSk7IH1cblxuICBvblJvd3NDaGFuZ2Uocm93czogbnVtYmVyKSB7XG4gICAgdGhpcy5zZWxlY3RlZFJvd3Muc2V0KFN0cmluZyhyb3dzKSBhcyBPcHRpb25WYWx1ZSk7XG4gICAgdGhpcy5lbWl0Q2hhbmdlKDAsIHJvd3MpO1xuICB9XG5cbiAgb25Sb3dzQ29tYm9Nb2RlbCh2YWw6IE9wdGlvblZhbHVlIHwgT3B0aW9uVmFsdWVbXSB8IG51bGwpIHtcbiAgICBjb25zdCByYXcgPSBBcnJheS5pc0FycmF5KHZhbCkgPyB2YWxbMF0gOiB2YWw7XG4gICAgY29uc3QgbiA9IE51bWJlcihyYXcpO1xuICAgIGlmICghTnVtYmVyLmlzTmFOKG4pKSB0aGlzLm9uUm93c0NoYW5nZShuKTtcbiAgfVxuXG4gIGlzQ3VycmVudChwOiBudW1iZXIpIHsgcmV0dXJuIHAgPT09IHRoaXMuY3VycmVudFBhZ2UoKTsgfVxuICBhc051bWJlcihwOiBudW1iZXIgfCAn4oCmJyk6IHAgaXMgbnVtYmVyIHsgcmV0dXJuIHR5cGVvZiBwID09PSAnbnVtYmVyJzsgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNkYy1wYWdpbmF0b3JcIiByb2xlPVwibmF2aWdhdGlvblwiIGFyaWEtbGFiZWw9XCJQYWdpbmF0aW9uXCI+XG4gIDxkaXYgY2xhc3M9XCJzZGMtcGFnaW5hdG9yLWxlZnRcIj5cbiAgICA8IS0tIGJvdMO1ZXMgZSBww6FnaW5hcyAoaW5hbHRlcmFkbykgLS0+XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cInNkYy1wYWdlIHNkYy1lZGdlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSgpID09PSAwXCJcbiAgICAgIChjbGljayk9XCJmaXJzdFBhZ2UoKVwiXG4gICAgICBhcmlhLWxhYmVsPVwiUHJpbWVpcmEgcMOhZ2luYVwiXG4gICAgPlxuICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtc3RlcC1mb3J3YXJkIGZhLXJvdGF0ZS0xODBcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cInNkYy1wYWdlIHNkYy1lZGdlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSgpID09PSAwXCJcbiAgICAgIChjbGljayk9XCJwcmV2UGFnZSgpXCJcbiAgICAgIGFyaWEtbGFiZWw9XCJQw6FnaW5hIGFudGVyaW9yXCJcbiAgICA+XG4gICAgICA8aSBjbGFzcz1cImZhcyBmYS1jYXJldC1sZWZ0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcCBvZiBwYWdlcygpXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwiYXNOdW1iZXIocClcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJzZGMtcGFnZVwiXG4gICAgICAgIFtjbGFzcy5pcy1hY3RpdmVdPVwiaXNDdXJyZW50KHApXCJcbiAgICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cImlzQ3VycmVudChwKSA/ICdwYWdlJyA6IG51bGxcIlxuICAgICAgICAoY2xpY2spPVwiZ290b1BhZ2UocClcIlxuICAgICAgPlxuICAgICAgICB7eyBwICsgMSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8c3BhbiAqbmdJZj1cIiFhc051bWJlcihwKVwiIGNsYXNzPVwic2RjLWVsbGlwc2lzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+4oCmPC9zcGFuPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cInNkYy1wYWdlIHNkYy1lZGdlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSgpID49IHBhZ2VDb3VudCgpIC0gMVwiXG4gICAgICAoY2xpY2spPVwibmV4dFBhZ2UoKVwiXG4gICAgICBhcmlhLWxhYmVsPVwiUHLDs3hpbWEgcMOhZ2luYVwiXG4gICAgPlxuICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2FyZXQtcmlnaHRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cInNkYy1wYWdlIHNkYy1lZGdlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSgpID49IHBhZ2VDb3VudCgpIC0gMVwiXG4gICAgICAoY2xpY2spPVwibGFzdFBhZ2UoKVwiXG4gICAgICBhcmlhLWxhYmVsPVwiw5psdGltYSBww6FnaW5hXCJcbiAgICA+XG4gICAgICA8aSBjbGFzcz1cImZhcyBmYS1zdGVwLWZvcndhcmRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgPC9idXR0b24+XG4gICAgPHNkYy1jb21ib2JveFxuICAgICAgY2xhc3M9XCJzZGMtcm93cy1jb21ib2JveFwiXG4gICAgICBbbXVsdGlwbGVdPVwiZmFsc2VcIlxuICAgICAgW29wdGlvbnNdPVwicm93T3B0aW9ucygpXCJcbiAgICAgIFthcHBlbmRUb109XCInYm9keSdcIlxuICAgICAgW3Nob3dDbGVhcl09XCJmYWxzZVwiXG4gICAgICBbbmdNb2RlbF09XCJzZWxlY3RlZFJvd3MoKVwiXG4gICAgICAob25TZWxlY3RlZEl0ZW0pPVwib25Sb3dzQ29tYm9Nb2RlbCgkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9zZGMtY29tYm9ib3g+XG4gIDwvZGl2PlxuICA8c3BhbiBjbGFzcz1cInNkYy10b3RhbFwiICpuZ0lmPVwidG90YWxSZWNvcmRzTGFiZWwoKVwiPiB7eyB0b3RhbFJlY29yZHNMYWJlbCgpIH19OiB7eyB0b3RhbFJlY29yZHMoKSB9fSA8L3NwYW4+XG48L2Rpdj5cbiJdfQ==
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvcGFnaW5hdG9yL3BhZ2luYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3BhZ2luYXRvci9wYWdpbmF0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7O0FBaUJuRSxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7SUFDakMsSUFBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztJQUNoQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO0lBQ3hDLGtCQUFrQixHQUFHLEtBQUssQ0FBdUIsU0FBUyxDQUFDLENBQUM7SUFDNUQsUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixpQkFBaUIsR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7SUFFNUIsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFrQixDQUFDO0lBRTFELFlBQVksR0FBRyxNQUFNLENBQWMsR0FBRyxDQUFDLENBQUM7SUFFeEM7UUFDRSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsTUFB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QUMsTUFBTTt3REFVckMsVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBjb21wdXRlZCwgZWZmZWN0LCBpbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgdHlwZSB7IE9wdGlvbkl0ZW0sIE9wdGlvblZhbHVlIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9zZW1hbnRpY3MudHlwZSc7XG5pbXBvcnQgeyBDb21ib2JveENvbXBvbmVudCB9IGZyb20gJy4uL2NvbWJvYm94L2NvbWJvYm94LmNvbXBvbmVudCc7XG5cbmV4cG9ydCB0eXBlIFBhZ2luYXRvclN0YXRlID0ge1xuICBmaXJzdDogbnVtYmVyO1xuICByb3dzOiBudW1iZXI7XG4gIHBhZ2U6IG51bWJlcjtcbiAgcGFnZUNvdW50OiBudW1iZXI7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZGMtcGFnaW5hdG9yJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIENvbWJvYm94Q29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhZ2luYXRvci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQYWdpbmF0b3JDb21wb25lbnQge1xuICBmaXJzdCA9IGlucHV0LnJlcXVpcmVkPG51bWJlcj4oKTtcbiAgcm93cyA9IGlucHV0LnJlcXVpcmVkPG51bWJlcj4oKTtcbiAgdG90YWxSZWNvcmRzID0gaW5wdXQucmVxdWlyZWQ8bnVtYmVyPigpO1xuICByb3dzUGVyUGFnZU9wdGlvbnMgPSBpbnB1dDxudW1iZXJbXSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgaXNNb2JpbGUgPSBpbnB1dChmYWxzZSk7XG4gIHRvdGFsUmVjb3Jkc0xhYmVsID0gaW5wdXQ8c3RyaW5nPignJyk7XG5cbiAgQE91dHB1dCgpIHBhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFBhZ2luYXRvclN0YXRlPigpO1xuXG4gIHNlbGVjdGVkUm93cyA9IHNpZ25hbDxPcHRpb25WYWx1ZT4oJzAnKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5zZWxlY3RlZFJvd3Muc2V0KFN0cmluZyh0aGlzLnJvd3MoKSkgYXMgT3B0aW9uVmFsdWUpO1xuICAgIH0pO1xuICB9XG5cbiAgcmVhZG9ubHkgcm93T3B0aW9ucyA9IGNvbXB1dGVkPE9wdGlvbkl0ZW1bXT4oKCkgPT4ge1xuICAgIGNvbnN0IG9wdHMgPSAodGhpcy5yb3dzUGVyUGFnZU9wdGlvbnMoKSA/PyBbXSkubWFwKHYgPT4gKHtcbiAgICAgIHRleHQ6IFN0cmluZyh2KSxcbiAgICAgIHZhbHVlOiBTdHJpbmcodikgYXMgT3B0aW9uVmFsdWVcbiAgICB9KSk7XG4gICAgY29uc3QgY3VyID0gU3RyaW5nKHRoaXMucm93cygpKTtcbiAgICBpZiAoIW9wdHMuc29tZShvID0+IG8udmFsdWUgPT09IGN1cikpIHtcbiAgICAgIG9wdHMudW5zaGlmdCh7IHRleHQ6IGN1ciwgdmFsdWU6IGN1ciBhcyBPcHRpb25WYWx1ZSB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG9wdHM7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHBhZ2VDb3VudCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCByID0gdGhpcy5yb3dzKCk7XG4gICAgY29uc3QgdCA9IHRoaXMudG90YWxSZWNvcmRzKCk7XG4gICAgcmV0dXJuIHIgPiAwID8gTWF0aC5tYXgoMSwgTWF0aC5jZWlsKHQgLyByKSkgOiAxO1xuICB9KTtcblxuICByZWFkb25seSBjdXJyZW50UGFnZSA9IGNvbXB1dGVkKCgpID0+IE1hdGguZmxvb3IodGhpcy5maXJzdCgpIC8gTWF0aC5tYXgoMSwgdGhpcy5yb3dzKCkpKSk7XG5cbiAgcmVhZG9ubHkgcGFnZXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY291bnQgPSB0aGlzLnBhZ2VDb3VudCgpO1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmN1cnJlbnRQYWdlKCk7XG4gICAgY29uc3Qgd2luID0gdGhpcy5pc01vYmlsZSgpID8gMyA6IDc7XG4gICAgaWYgKGNvdW50IDw9IHdpbikgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IGNvdW50IH0sIChfLCBpKSA9PiBpKTtcbiAgICBjb25zdCBuZWFyID0gTWF0aC5mbG9vcigod2luIC0gMykgLyAyKTtcbiAgICBjb25zdCBzdGFydCA9IE1hdGgubWF4KDEsIGN1cnJlbnQgLSBuZWFyKTtcbiAgICBjb25zdCBlbmQgPSBNYXRoLm1pbihjb3VudCAtIDIsIGN1cnJlbnQgKyBuZWFyKTtcbiAgICBjb25zdCBsaXN0OiBBcnJheTxudW1iZXIgfCAn4oCmJz4gPSBbMF07XG4gICAgaWYgKHN0YXJ0ID4gMSkgbGlzdC5wdXNoKCfigKYnKTtcbiAgICBmb3IgKGxldCBwID0gc3RhcnQ7IHAgPD0gZW5kOyBwKyspIGxpc3QucHVzaChwKTtcbiAgICBpZiAoZW5kIDwgY291bnQgLSAyKSBsaXN0LnB1c2goJ+KApicpO1xuICAgIGxpc3QucHVzaChjb3VudCAtIDEpO1xuICAgIHJldHVybiBsaXN0O1xuICB9KTtcblxuICBwcml2YXRlIGVtaXRDaGFuZ2UoZmlyc3Q6IG51bWJlciwgcm93cyA9IHRoaXMucm93cygpKSB7XG4gICAgY29uc3QgcGFnZSA9IE1hdGguZmxvb3IoZmlyc3QgLyBNYXRoLm1heCgxLCByb3dzKSk7XG4gICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoeyBmaXJzdCwgcm93cywgcGFnZSwgcGFnZUNvdW50OiB0aGlzLnBhZ2VDb3VudCgpIH0pO1xuICB9XG5cbiAgZ290b1BhZ2UoaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IHNhZmUgPSBNYXRoLm1pbihNYXRoLm1heChpbmRleCwgMCksIHRoaXMucGFnZUNvdW50KCkgLSAxKTtcbiAgICB0aGlzLmVtaXRDaGFuZ2Uoc2FmZSAqIHRoaXMucm93cygpKTtcbiAgfVxuXG4gIGZpcnN0UGFnZSgpIHsgdGhpcy5nb3RvUGFnZSgwKTsgfVxuICBwcmV2UGFnZSgpIHsgdGhpcy5nb3RvUGFnZSh0aGlzLmN1cnJlbnRQYWdlKCkgLSAxKTsgfVxuICBuZXh0UGFnZSgpIHsgdGhpcy5nb3RvUGFnZSh0aGlzLmN1cnJlbnRQYWdlKCkgKyAxKTsgfVxuICBsYXN0UGFnZSgpIHsgdGhpcy5nb3RvUGFnZSh0aGlzLnBhZ2VDb3VudCgpIC0gMSk7IH1cblxuICBvblJvd3NDaGFuZ2Uocm93czogbnVtYmVyKSB7XG4gICAgdGhpcy5zZWxlY3RlZFJvd3Muc2V0KFN0cmluZyhyb3dzKSBhcyBPcHRpb25WYWx1ZSk7XG4gICAgdGhpcy5lbWl0Q2hhbmdlKDAsIHJvd3MpO1xuICB9XG5cbiAgb25Sb3dzQ29tYm9Nb2RlbCh2YWw6IE9wdGlvblZhbHVlIHwgT3B0aW9uVmFsdWVbXSB8IG51bGwpIHtcbiAgICBjb25zdCByYXcgPSBBcnJheS5pc0FycmF5KHZhbCkgPyB2YWxbMF0gOiB2YWw7XG4gICAgY29uc3QgbiA9IE51bWJlcihyYXcpO1xuICAgIGlmICghTnVtYmVyLmlzTmFOKG4pKSB0aGlzLm9uUm93c0NoYW5nZShuKTtcbiAgfVxuXG4gIGlzQ3VycmVudChwOiBudW1iZXIpIHsgcmV0dXJuIHAgPT09IHRoaXMuY3VycmVudFBhZ2UoKTsgfVxuICBhc051bWJlcihwOiBudW1iZXIgfCAn4oCmJyk6IHAgaXMgbnVtYmVyIHsgcmV0dXJuIHR5cGVvZiBwID09PSAnbnVtYmVyJzsgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNkYy1wYWdpbmF0b3JcIiByb2xlPVwibmF2aWdhdGlvblwiIGFyaWEtbGFiZWw9XCJQYWdpbmF0aW9uXCI+XG4gIDxkaXYgY2xhc3M9XCJzZGMtcGFnaW5hdG9yLWxlZnRcIj5cbiAgICA8IS0tIGJvdMO1ZXMgZSBww6FnaW5hcyAoaW5hbHRlcmFkbykgLS0+XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cInNkYy1wYWdlIHNkYy1lZGdlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSgpID09PSAwXCJcbiAgICAgIChjbGljayk9XCJmaXJzdFBhZ2UoKVwiXG4gICAgICBhcmlhLWxhYmVsPVwiUHJpbWVpcmEgcMOhZ2luYVwiXG4gICAgPlxuICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtc3RlcC1mb3J3YXJkIGZhLXJvdGF0ZS0xODBcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cInNkYy1wYWdlIHNkYy1lZGdlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSgpID09PSAwXCJcbiAgICAgIChjbGljayk9XCJwcmV2UGFnZSgpXCJcbiAgICAgIGFyaWEtbGFiZWw9XCJQw6FnaW5hIGFudGVyaW9yXCJcbiAgICA+XG4gICAgICA8aSBjbGFzcz1cImZhcyBmYS1jYXJldC1sZWZ0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcCBvZiBwYWdlcygpXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwiYXNOdW1iZXIocClcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJzZGMtcGFnZVwiXG4gICAgICAgIFtjbGFzcy5pcy1hY3RpdmVdPVwiaXNDdXJyZW50KHApXCJcbiAgICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cImlzQ3VycmVudChwKSA/ICdwYWdlJyA6IG51bGxcIlxuICAgICAgICAoY2xpY2spPVwiZ290b1BhZ2UocClcIlxuICAgICAgPlxuICAgICAgICB7eyBwICsgMSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8c3BhbiAqbmdJZj1cIiFhc051bWJlcihwKVwiIGNsYXNzPVwic2RjLWVsbGlwc2lzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+4oCmPC9zcGFuPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cInNkYy1wYWdlIHNkYy1lZGdlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSgpID49IHBhZ2VDb3VudCgpIC0gMVwiXG4gICAgICAoY2xpY2spPVwibmV4dFBhZ2UoKVwiXG4gICAgICBhcmlhLWxhYmVsPVwiUHLDs3hpbWEgcMOhZ2luYVwiXG4gICAgPlxuICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2FyZXQtcmlnaHRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cInNkYy1wYWdlIHNkYy1lZGdlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSgpID49IHBhZ2VDb3VudCgpIC0gMVwiXG4gICAgICAoY2xpY2spPVwibGFzdFBhZ2UoKVwiXG4gICAgICBhcmlhLWxhYmVsPVwiw5psdGltYSBww6FnaW5hXCJcbiAgICA+XG4gICAgICA8aSBjbGFzcz1cImZhcyBmYS1zdGVwLWZvcndhcmRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgPC9idXR0b24+XG4gICAgPHNkYy1jb21ib2JveFxuICAgICAgY2xhc3M9XCJzZGMtcm93cy1jb21ib2JveFwiXG4gICAgICBbbXVsdGlwbGVdPVwiZmFsc2VcIlxuICAgICAgW29wdGlvbnNdPVwicm93T3B0aW9ucygpXCJcbiAgICAgIFthcHBlbmRUb109XCInYm9keSdcIlxuICAgICAgW3Nob3dDbGVhcl09XCJmYWxzZVwiXG4gICAgICBbbmdNb2RlbF09XCJzZWxlY3RlZFJvd3MoKVwiXG4gICAgICAob25TZWxlY3RlZEl0ZW0pPVwib25Sb3dzQ29tYm9Nb2RlbCgkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9zZGMtY29tYm9ib3g+XG4gIDwvZGl2PlxuICA8c3BhbiBjbGFzcz1cInNkYy10b3RhbFwiICpuZ0lmPVwidG90YWxSZWNvcmRzTGFiZWwoKVwiPiB7eyB0b3RhbFJlY29yZHNMYWJlbCgpIH19OiB7eyB0b3RhbFJlY29yZHMoKSB9fSA8L3NwYW4+XG48L2Rpdj5cbiJdfQ==
|