UNPKG

iptdevs-design-system

Version:

Library common elements into IPT Plattform.

110 lines 27.5 kB
import { Component } from '@angular/core'; import { Validators } from '@angular/forms'; import Swal from 'sweetalert2'; import * as i0 from "@angular/core"; import * as i1 from "@angular/forms"; import * as i2 from "../../core/services/media-service/media.service"; import * as i3 from "../../core/services/user-service/user-service"; import * as i4 from "../../core/utils/base-service/base.service"; import * as i5 from "@angular/common"; import * as i6 from "../../components/atoms/input/input.component"; import * as i7 from "primeng/button"; export class CodDocumentsSectionComponent { constructor(fb, mediaService, userService, baseService) { this.fb = fb; this.mediaService = mediaService; this.userService = userService; this.baseService = baseService; this.docStudent = false; this.docAgreement = false; this.docParent = false; this.docConfanorte = false; this.idPdf = []; this.numDoc = -1; this.value = false; this.nameUserRole = ''; this.documentsForm = this.fb.group({ doc_student: ['', [Validators.required], []], doc_agreement: [''], doc_parent: [''], doc_confanorte: [''], }); } ngOnInit() { } showIdDocument() { console.log('abrir modal de cargar pdf'); } catchDocument(event, visible) { this.numDoc++; this.validateVisibility(visible, true); const fileCatched = event.target.files[0]; let reader = new FileReader(); reader.onload = (e) => { this.idPdf.push(e.target.result); this.pdfSrc = this.idPdf[this.numDoc]; }; this.code = 0; reader.readAsArrayBuffer(fileCatched); } filesUploaded() { Swal.fire({ title: '<p style="font-family: Poppins">Perfect</p>', html: '<p style="font-family: Poppins">Archivos subidos correctamente.</p>', icon: 'success', }); this.documentsForm.controls['doc_student'].setValue(null); this.documentsForm.controls['doc_agreement'].setValue(null); this.documentsForm.controls['doc_parent'].setValue(null); this.documentsForm.controls['doc_confanorte'].setValue(null); this.docStudent = false; this.docAgreement = false; this.docParent = false; this.docConfanorte = false; } clearDocStudent(typeDoc) { this.documentsForm.controls[typeDoc].setValue(null); this.validateVisibility(typeDoc, false); } validateVisibility(compVisivility, value) { switch (compVisivility) { case 'doc_student': this.docStudent = value; break; case 'doc_agreement': this.docAgreement = value; break; case 'doc_parent': this.docParent = value; break; case 'doc_confanorte': this.docConfanorte = value; break; default: break; } } getAllMedia() { this.mediaService.getAllDataMedia().subscribe((response) => { console.log(response.data); }); } getUserRole() { this.userService.getUserRoleByCode(1).subscribe((response) => { this.nameUserRole = response.data[0]; }); } saveDocuments() { let request = { name: 'jhhgh', link: 'khkhk', user_autor: 2, }; } } CodDocumentsSectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodDocumentsSectionComponent, deps: [{ token: i1.FormBuilder }, { token: i2.MediaService }, { token: i3.UserService }, { token: i4.BaseService }], target: i0.ɵɵFactoryTarget.Component }); CodDocumentsSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CodDocumentsSectionComponent, selector: "ipt-cod-documents-section", ngImport: i0, template: "<div class=\"container flex flex-column bg-white border-round-2xl p-3 container animate__animated animate__fadeInUp\">\n\n <span class=\"bg-primary p-2 border-round mb-2 w-auto text-lg font-semibold\">Documentos del COD</span>\n\n <div class=\"document_item flex flex-column align-items-center p-2 border-round\">\n <div class=\"ml-auto\">\n <div class=\"inp w-10\">\n <ipt-input\n [inputType]=\"'file'\"\n [placeHolder]=\"'Doc. Estudiante'\"\n [control]=\"documentsForm.controls['doc_student']\"\n (change)=\"catchDocument($event, 'doc_student')\"\n ></ipt-input>\n </div>\n <div class=\"btn flex justify-content-center flex-wrap w-8 p-2\" *ngIf=\"docStudent\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-eye\" class=\"p-button-rounded p-button-sm ml-auto mr-1\" (click)=\"showIdDocument()\"></button>\n <button pButton pRipple type=\"button\" icon=\"pi pi-trash\" class=\"p-button-rounded p-button-sm p-button-danger ml-auto\" (click)=\"clearDocStudent('doc_student')\"></button>\n </div>\n </div>\n </div>\n\n <div class=\"document_item flex flex-column align-items-center p-2 border-round\">\n <div class=\"ml-auto\">\n <div class=\"inp w-10\">\n <ipt-input\n [inputType]=\"'file'\"\n [placeHolder]=\"'Doc. Convenio'\"\n [control]=\"documentsForm.controls['doc_agreement']\"\n (change)=\"catchDocument($event, 'doc_agreement')\"\n ></ipt-input>\n </div>\n <div class=\"btn flex justify-content-center flex-wrap w-8 p-2\" *ngIf=\"docAgreement\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-eye\" class=\"p-button-rounded p-button-sm ml-auto mr-1\" (click)=\"showIdDocument()\"></button>\n <button pButton pRipple type=\"button\" icon=\"pi pi-trash\" class=\"p-button-rounded p-button-sm p-button-danger ml-auto\" (click)=\"clearDocStudent('doc_agreement')\"></button>\n </div>\n </div>\n </div>\n\n <div class=\"document_item flex flex-column align-items-center p-2 border-round\">\n <div class=\"ml-auto\">\n <div class=\"inp w-10\">\n <ipt-input\n [inputType]=\"'file'\"\n [placeHolder]=\"'Doc. Acudiente'\"\n [control]=\"documentsForm.controls['doc_parent']\"\n (change)=\"catchDocument($event, 'doc_parent')\"\n ></ipt-input>\n </div>\n <div class=\"btn flex justify-content-center flex-wrap w-8 p-2\" *ngIf=\"docParent\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-eye\" class=\"p-button-rounded p-button-sm ml-auto mr-1\" (click)=\"showIdDocument()\"></button>\n <button pButton pRipple type=\"button\" icon=\"pi pi-trash\" class=\"p-button-rounded p-button-sm p-button-danger ml-auto\" (click)=\"clearDocStudent('doc_parent')\"></button>\n </div>\n </div>\n </div>\n\n <div class=\"document_item flex flex-column align-items-center p-2 border-round\">\n <div class=\"ml-auto\">\n <div class=\"inp w-10\">\n <ipt-input\n [inputType]=\"'file'\"\n [placeHolder]=\"'Doc. Confanorte'\"\n [control]=\"documentsForm.controls['doc_confanorte']\"\n (change)=\"catchDocument($event, 'doc_confanorte')\"\n ></ipt-input>\n </div>\n <div class=\"btn flex justify-content-center flex-wrap w-8 p-2\" *ngIf=\"docConfanorte\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-eye\" class=\"p-button-rounded p-button-sm ml-auto mr-1\" (click)=\"showIdDocument()\"></button>\n <button pButton pRipple type=\"button\" icon=\"pi pi-trash\" class=\"p-button-rounded p-button-sm p-button-danger ml-auto\" (click)=\"clearDocStudent('doc_confanorte')\"></button>\n </div>\n </div>\n </div>\n\n <hr>\n <button pButton pRipple type=\"button\" icon=\"pi pi-plus\" label=\"Agregar\" class=\"p-button-rounded p-button-sm ml-auto mt-2\" (click)=\"filesUploaded()\"></button>\n\n</div>\n", styles: [".document_item{transition:.15s;gap:1rem;max-height:150px}.document_item:hover{cursor:pointer;box-shadow:#64646f33 0 7px 29px}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.InputComponent, selector: "ipt-input", inputs: ["inputType", "placeHolder", "validateText", "withPipe", "list", "iconUrl", "control", "prefix", "thousands", "decimal", "disabledSel"], outputs: ["dateSelected"] }, { kind: "directive", type: i7.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodDocumentsSectionComponent, decorators: [{ type: Component, args: [{ selector: 'ipt-cod-documents-section', template: "<div class=\"container flex flex-column bg-white border-round-2xl p-3 container animate__animated animate__fadeInUp\">\n\n <span class=\"bg-primary p-2 border-round mb-2 w-auto text-lg font-semibold\">Documentos del COD</span>\n\n <div class=\"document_item flex flex-column align-items-center p-2 border-round\">\n <div class=\"ml-auto\">\n <div class=\"inp w-10\">\n <ipt-input\n [inputType]=\"'file'\"\n [placeHolder]=\"'Doc. Estudiante'\"\n [control]=\"documentsForm.controls['doc_student']\"\n (change)=\"catchDocument($event, 'doc_student')\"\n ></ipt-input>\n </div>\n <div class=\"btn flex justify-content-center flex-wrap w-8 p-2\" *ngIf=\"docStudent\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-eye\" class=\"p-button-rounded p-button-sm ml-auto mr-1\" (click)=\"showIdDocument()\"></button>\n <button pButton pRipple type=\"button\" icon=\"pi pi-trash\" class=\"p-button-rounded p-button-sm p-button-danger ml-auto\" (click)=\"clearDocStudent('doc_student')\"></button>\n </div>\n </div>\n </div>\n\n <div class=\"document_item flex flex-column align-items-center p-2 border-round\">\n <div class=\"ml-auto\">\n <div class=\"inp w-10\">\n <ipt-input\n [inputType]=\"'file'\"\n [placeHolder]=\"'Doc. Convenio'\"\n [control]=\"documentsForm.controls['doc_agreement']\"\n (change)=\"catchDocument($event, 'doc_agreement')\"\n ></ipt-input>\n </div>\n <div class=\"btn flex justify-content-center flex-wrap w-8 p-2\" *ngIf=\"docAgreement\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-eye\" class=\"p-button-rounded p-button-sm ml-auto mr-1\" (click)=\"showIdDocument()\"></button>\n <button pButton pRipple type=\"button\" icon=\"pi pi-trash\" class=\"p-button-rounded p-button-sm p-button-danger ml-auto\" (click)=\"clearDocStudent('doc_agreement')\"></button>\n </div>\n </div>\n </div>\n\n <div class=\"document_item flex flex-column align-items-center p-2 border-round\">\n <div class=\"ml-auto\">\n <div class=\"inp w-10\">\n <ipt-input\n [inputType]=\"'file'\"\n [placeHolder]=\"'Doc. Acudiente'\"\n [control]=\"documentsForm.controls['doc_parent']\"\n (change)=\"catchDocument($event, 'doc_parent')\"\n ></ipt-input>\n </div>\n <div class=\"btn flex justify-content-center flex-wrap w-8 p-2\" *ngIf=\"docParent\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-eye\" class=\"p-button-rounded p-button-sm ml-auto mr-1\" (click)=\"showIdDocument()\"></button>\n <button pButton pRipple type=\"button\" icon=\"pi pi-trash\" class=\"p-button-rounded p-button-sm p-button-danger ml-auto\" (click)=\"clearDocStudent('doc_parent')\"></button>\n </div>\n </div>\n </div>\n\n <div class=\"document_item flex flex-column align-items-center p-2 border-round\">\n <div class=\"ml-auto\">\n <div class=\"inp w-10\">\n <ipt-input\n [inputType]=\"'file'\"\n [placeHolder]=\"'Doc. Confanorte'\"\n [control]=\"documentsForm.controls['doc_confanorte']\"\n (change)=\"catchDocument($event, 'doc_confanorte')\"\n ></ipt-input>\n </div>\n <div class=\"btn flex justify-content-center flex-wrap w-8 p-2\" *ngIf=\"docConfanorte\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-eye\" class=\"p-button-rounded p-button-sm ml-auto mr-1\" (click)=\"showIdDocument()\"></button>\n <button pButton pRipple type=\"button\" icon=\"pi pi-trash\" class=\"p-button-rounded p-button-sm p-button-danger ml-auto\" (click)=\"clearDocStudent('doc_confanorte')\"></button>\n </div>\n </div>\n </div>\n\n <hr>\n <button pButton pRipple type=\"button\" icon=\"pi pi-plus\" label=\"Agregar\" class=\"p-button-rounded p-button-sm ml-auto mt-2\" (click)=\"filesUploaded()\"></button>\n\n</div>\n", styles: [".document_item{transition:.15s;gap:1rem;max-height:150px}.document_item:hover{cursor:pointer;box-shadow:#64646f33 0 7px 29px}\n"] }] }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.MediaService }, { type: i3.UserService }, { type: i4.BaseService }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLWRvY3VtZW50cy1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb2QvY29kLWRvY3VtZW50cy1zZWN0aW9uL2NvZC1kb2N1bWVudHMtc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kL2NvZC1kb2N1bWVudHMtc2VjdGlvbi9jb2QtZG9jdW1lbnRzLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQzs7Ozs7Ozs7O0FBVS9CLE1BQU0sT0FBTyw0QkFBNEI7SUFhdkMsWUFDVSxFQUFlLEVBQ2YsWUFBMEIsRUFDMUIsV0FBd0IsRUFDeEIsV0FBd0I7UUFIeEIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBZmxDLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUMvQixVQUFLLEdBQVUsRUFBRSxDQUFDO1FBR2xCLFdBQU0sR0FBVyxDQUFDLENBQUMsQ0FBQztRQUNwQixVQUFLLEdBQVksS0FBSyxDQUFBO1FBQ3RCLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBUXhCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDakMsV0FB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LEtBQUssQ0FBQztnQkFDaEQsTUFBTTtZQUNSO2dCQUNFLE1BQU07U0FDVDtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUN6RCxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUMzRCxJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksT0FBTyxHQUFXO1lBQ3BCLElBQUksRUFBUSxPQUFPO1lBQ25CLElBQUksRUFBUyxPQUFPO1lBQ3BCLFVBQVUsRUFBRyxDQUFDO1NBQ2YsQ0FBQTtJQUNILENBQUM7O3lIQXJHVSw0QkFBNEI7NkdBQTVCLDRCQUE0QixpRUNaekMsMjJIQTRFQTsyRkRoRWEsNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNFLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IFN3YWwgZnJvbSAnc3dlZXRhbGVydDInO1xuaW1wb3J0IHsgTWVkaWFScSB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzL21lZGlhL21lZGlhLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgTWVkaWFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9tZWRpYS1zZXJ2aWNlL21lZGlhLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL3VzZXItc2VydmljZS91c2VyLXNlcnZpY2UnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2Jhc2Utc2VydmljZS9iYXNlLnNlcnZpY2UnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXB0LWNvZC1kb2N1bWVudHMtc2VjdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2QtZG9jdW1lbnRzLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb2QtZG9jdW1lbnRzLXNlY3Rpb24uY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDb2REb2N1bWVudHNTZWN0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgZG9jdW1lbnRzRm9ybSE6IEZvcm1Hcm91cDtcbiAgZG9jU3R1ZGVudDogYm9vbGVhbiA9IGZhbHNlO1xuICBkb2NBZ3JlZW1lbnQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZG9jUGFyZW50OiBib29sZWFuID0gZmFsc2U7XG4gIGRvY0NvbmZhbm9ydGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaWRQZGY6IGFueVtdID0gW107XG4gIGNvZGUhOiBudW1iZXI7XG4gIHBkZlNyYzogYW55O1xuICBudW1Eb2M6IG51bWJlciA9IC0xO1xuICB2YWx1ZTogYm9vbGVhbiA9IGZhbHNlXG4gIG5hbWVVc2VyUm9sZTogc3RyaW5nID0gJyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBtZWRpYVNlcnZpY2U6IE1lZGlhU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwcml2YXRlIGJhc2VTZXJ2aWNlOiBCYXNlU2VydmljZSxcbiAgICApIHtcbiAgICB0aGlzLmRvY3VtZW50c0Zvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGRvY19zdHVkZW50OiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSwgW11dLFxuICAgICAgZG9jX2FncmVlbWVudDogWycnXSxcbiAgICAgIGRvY19wYXJlbnQ6IFsnJ10sXG4gICAgICBkb2NfY29uZmFub3J0ZTogWycnXSxcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cblxuICBzaG93SWREb2N1bWVudCgpIHtcbiAgICBjb25zb2xlLmxvZygnYWJyaXIgbW9kYWwgZGUgY2FyZ2FyIHBkZicpO1xuICB9XG5cbiAgY2F0Y2hEb2N1bWVudChldmVudDogYW55LCB2aXNpYmxlOiBzdHJpbmcpIHtcbiAgICB0aGlzLm51bURvYysrO1xuICAgIHRoaXMudmFsaWRhdGVWaXNpYmlsaXR5KHZpc2libGUsIHRydWUpO1xuXG4gICAgY29uc3QgZmlsZUNhdGNoZWQgPSBldmVudC50YXJnZXQuZmlsZXNbMF07XG4gICAgbGV0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgcmVhZGVyLm9ubG9hZCA9IChlOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuaWRQZGYucHVzaChlLnRhcmdldC5yZXN1bHQpO1xuICAgICAgdGhpcy5wZGZTcmMgPSB0aGlzLmlkUGRmW3RoaXMubnVtRG9jXTtcbiAgICB9O1xuICAgIHRoaXMuY29kZSA9IDA7XG4gICAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGZpbGVDYXRjaGVkKTtcbiAgfVxuXG4gIGZpbGVzVXBsb2FkZWQoKSB7XG4gICAgU3dhbC5maXJlKHtcbiAgICAgIHRpdGxlOiAnPHAgc3R5bGU9XCJmb250LWZhbWlseTogUG9wcGluc1wiPlBlcmZlY3Q8L3A+JyxcbiAgICAgIGh0bWw6ICc8cCBzdHlsZT1cImZvbnQtZmFtaWx5OiBQb3BwaW5zXCI+QXJjaGl2b3Mgc3ViaWRvcyBjb3JyZWN0YW1lbnRlLjwvcD4nLFxuICAgICAgaWNvbjogJ3N1Y2Nlc3MnLFxuICAgIH0pO1xuICAgIHRoaXMuZG9jdW1lbnRzRm9ybS5jb250cm9sc1snZG9jX3N0dWRlbnQnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLmRvY3VtZW50c0Zvcm0uY29udHJvbHNbJ2RvY19hZ3JlZW1lbnQnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLmRvY3VtZW50c0Zvcm0uY29udHJvbHNbJ2RvY19wYXJlbnQnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLmRvY3VtZW50c0Zvcm0uY29udHJvbHNbJ2RvY19jb25mYW5vcnRlJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy5kb2NTdHVkZW50ID0gZmFsc2U7XG4gICAgdGhpcy5kb2NBZ3JlZW1lbnQgPSBmYWxzZTtcbiAgICB0aGlzLmRvY1BhcmVudCA9IGZhbHNlO1xuICAgIHRoaXMuZG9jQ29uZmFub3J0ZSA9IGZhbHNlO1xuICB9XG5cbiAgY2xlYXJEb2NTdHVkZW50KHR5cGVEb2M6IGFueSkge1xuICAgIHRoaXMuZG9jdW1lbnRzRm9ybS5jb250cm9sc1t0eXBlRG9jXS5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnZhbGlkYXRlVmlzaWJpbGl0eSh0eXBlRG9jLCBmYWxzZSk7XG4gIH1cblxuICB2YWxpZGF0ZVZpc2liaWxpdHkoY29tcFZpc2l2aWxpdHk6IHN0cmluZywgdmFsdWU6IGJvb2xlYW4pe1xuICAgIHN3aXRjaCAoY29tcFZpc2l2aWxpdHkpIHtcbiAgICAgIGNhc2UgJ2RvY19zdHVkZW50JzogdGhpcy5kb2NTdHVkZW50ID0gdmFsdWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZG9jX2FncmVlbWVudCc6IHRoaXMuZG9jQWdyZWVtZW50ID0gdmFsdWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZG9jX3BhcmVudCc6IHRoaXMuZG9jUGFyZW50ID0gdmFsdWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZG9jX2NvbmZhbm9ydGUnOiB0aGlzLmRvY0NvbmZhbm9ydGUgPSB2YWx1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBnZXRBbGxNZWRpYSgpe1xuICAgIHRoaXMubWVkaWFTZXJ2aWNlLmdldEFsbERhdGFNZWRpYSgpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlLmRhdGEpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0VXNlclJvbGUoKXtcbiAgICB0aGlzLnVzZXJTZXJ2aWNlLmdldFVzZXJSb2xlQnlDb2RlKDEpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgIHRoaXMubmFtZVVzZXJSb2xlID0gcmVzcG9uc2UuZGF0YVswXTtcbiAgICB9KVxuICB9XG5cbiAgc2F2ZURvY3VtZW50cygpe1xuICAgIGxldCByZXF1ZXN0OiBNZWRpYVJxID17XG4gICAgICBuYW1lIDogICAgICAnamhoZ2gnLFxuICAgICAgbGluayA6ICAgICAgICdraGtoaycsXG4gICAgICB1c2VyX2F1dG9yIDogMixcbiAgICB9XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lciBmbGV4IGZsZXgtY29sdW1uIGJnLXdoaXRlIGJvcmRlci1yb3VuZC0yeGwgcC0zIGNvbnRhaW5lciBhbmltYXRlX19hbmltYXRlZCBhbmltYXRlX19mYWRlSW5VcFwiPlxuXG4gIDxzcGFuIGNsYXNzPVwiYmctcHJpbWFyeSBwLTIgYm9yZGVyLXJvdW5kIG1iLTIgdy1hdXRvIHRleHQtbGcgZm9udC1zZW1pYm9sZFwiPkRvY3VtZW50b3MgZGVsIENPRDwvc3Bhbj5cblxuICA8ZGl2IGNsYXNzPVwiZG9jdW1lbnRfaXRlbSBmbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBwLTIgYm9yZGVyLXJvdW5kXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1sLWF1dG9cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbnAgdy0xMFwiPlxuICAgICAgICA8aXB0LWlucHV0XG4gICAgICAgIFtpbnB1dFR5cGVdPVwiJ2ZpbGUnXCJcbiAgICAgICAgW3BsYWNlSG9sZGVyXT1cIidEb2MuIEVzdHVkaWFudGUnXCJcbiAgICAgICAgW2NvbnRyb2xdPVwiZG9jdW1lbnRzRm9ybS5jb250cm9sc1snZG9jX3N0dWRlbnQnXVwiXG4gICAgICAgIChjaGFuZ2UpPVwiY2F0Y2hEb2N1bWVudCgkZXZlbnQsICdkb2Nfc3R1ZGVudCcpXCJcbiAgICAgICAgPjwvaXB0LWlucHV0PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiYnRuIGZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBmbGV4LXdyYXAgdy04IHAtMlwiICpuZ0lmPVwiZG9jU3R1ZGVudFwiPlxuICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSB0eXBlPVwiYnV0dG9uXCIgaWNvbj1cInBpIHBpLWV5ZVwiIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1zbSBtbC1hdXRvIG1yLTFcIiAoY2xpY2spPVwic2hvd0lkRG9jdW1lbnQoKVwiPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSB0eXBlPVwiYnV0dG9uXCIgaWNvbj1cInBpIHBpLXRyYXNoXCIgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLXNtIHAtYnV0dG9uLWRhbmdlciBtbC1hdXRvXCIgKGNsaWNrKT1cImNsZWFyRG9jU3R1ZGVudCgnZG9jX3N0dWRlbnQnKVwiPjwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJkb2N1bWVudF9pdGVtIGZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIHAtMiBib3JkZXItcm91bmRcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWwtYXV0b1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImlucCB3LTEwXCI+XG4gICAgICAgIDxpcHQtaW5wdXRcbiAgICAgICAgW2lucHV0VHlwZV09XCInZmlsZSdcIlxuICAgICAgICBbcGxhY2VIb2xkZXJdPVwiJ0RvYy4gQ29udmVuaW8nXCJcbiAgICAgICAgW2NvbnRyb2xdPVwiZG9jdW1lbnRzRm9ybS5jb250cm9sc1snZG9jX2FncmVlbWVudCddXCJcbiAgICAgICAgKGNoYW5nZSk9XCJjYXRjaERvY3VtZW50KCRldmVudCwgJ2RvY19hZ3JlZW1lbnQnKVwiXG4gICAgICAgID48L2lwdC1pbnB1dD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImJ0biBmbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgZmxleC13cmFwIHctOCBwLTJcIiAqbmdJZj1cImRvY0FncmVlbWVudFwiPlxuICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSB0eXBlPVwiYnV0dG9uXCIgaWNvbj1cInBpIHBpLWV5ZVwiIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1zbSBtbC1hdXRvIG1yLTFcIiAoY2xpY2spPVwic2hvd0lkRG9jdW1lbnQoKVwiPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSB0eXBlPVwiYnV0dG9uXCIgaWNvbj1cInBpIHBpLXRyYXNoXCIgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLXNtIHAtYnV0dG9uLWRhbmdlciBtbC1hdXRvXCIgKGNsaWNrKT1cImNsZWFyRG9jU3R1ZGVudCgnZG9jX2FncmVlbWVudCcpXCI+PC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImRvY3VtZW50X2l0ZW0gZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIgcC0yIGJvcmRlci1yb3VuZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJtbC1hdXRvXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wIHctMTBcIj5cbiAgICAgICAgPGlwdC1pbnB1dFxuICAgICAgICBbaW5wdXRUeXBlXT1cIidmaWxlJ1wiXG4gICAgICAgIFtwbGFjZUhvbGRlcl09XCInRG9jLiBBY3VkaWVudGUnXCJcbiAgICAgICAgW2NvbnRyb2xdPVwiZG9jdW1lbnRzRm9ybS5jb250cm9sc1snZG9jX3BhcmVudCddXCJcbiAgICAgICAgKGNoYW5nZSk9XCJjYXRjaERvY3VtZW50KCRldmVudCwgJ2RvY19wYXJlbnQnKVwiXG4gICAgICAgID48L2lwdC1pbnB1dD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImJ0biBmbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgZmxleC13cmFwIHctOCBwLTJcIiAqbmdJZj1cImRvY1BhcmVudFwiPlxuICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSB0eXBlPVwiYnV0dG9uXCIgaWNvbj1cInBpIHBpLWV5ZVwiIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1zbSBtbC1hdXRvIG1yLTFcIiAoY2xpY2spPVwic2hvd0lkRG9jdW1lbnQoKVwiPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSB0eXBlPVwiYnV0dG9uXCIgaWNvbj1cInBpIHBpLXRyYXNoXCIgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLXNtIHAtYnV0dG9uLWRhbmdlciBtbC1hdXRvXCIgKGNsaWNrKT1cImNsZWFyRG9jU3R1ZGVudCgnZG9jX3BhcmVudCcpXCI+PC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImRvY3VtZW50X2l0ZW0gZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIgcC0yIGJvcmRlci1yb3VuZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJtbC1hdXRvXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wIHctMTBcIj5cbiAgICAgICAgPGlwdC1pbnB1dFxuICAgICAgICBbaW5wdXRUeXBlXT1cIidmaWxlJ1wiXG4gICAgICAgIFtwbGFjZUhvbGRlcl09XCInRG9jLiBDb25mYW5vcnRlJ1wiXG4gICAgICAgIFtjb250cm9sXT1cImRvY3VtZW50c0Zvcm0uY29udHJvbHNbJ2RvY19jb25mYW5vcnRlJ11cIlxuICAgICAgICAoY2hhbmdlKT1cImNhdGNoRG9jdW1lbnQoJGV2ZW50LCAnZG9jX2NvbmZhbm9ydGUnKVwiXG4gICAgICAgID48L2lwdC1pbnB1dD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImJ0biBmbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgZmxleC13cmFwIHctOCBwLTJcIiAqbmdJZj1cImRvY0NvbmZhbm9ydGVcIj5cbiAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgdHlwZT1cImJ1dHRvblwiIGljb249XCJwaSBwaS1leWVcIiBjbGFzcz1cInAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tc20gbWwtYXV0byBtci0xXCIgKGNsaWNrKT1cInNob3dJZERvY3VtZW50KClcIj48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgdHlwZT1cImJ1dHRvblwiIGljb249XCJwaSBwaS10cmFzaFwiIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1zbSBwLWJ1dHRvbi1kYW5nZXIgbWwtYXV0b1wiIChjbGljayk9XCJjbGVhckRvY1N0dWRlbnQoJ2RvY19jb25mYW5vcnRlJylcIj48L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8aHI+XG4gIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIHR5cGU9XCJidXR0b25cIiBpY29uPVwicGkgcGktcGx1c1wiIGxhYmVsPVwiQWdyZWdhclwiIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1zbSBtbC1hdXRvIG10LTJcIiAoY2xpY2spPVwiZmlsZXNVcGxvYWRlZCgpXCI+PC9idXR0b24+XG5cbjwvZGl2PlxuIl19