wumbox-landing
Version:
91 lines • 19.1 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component } from '@angular/core';
import { FormBuilder, Validators } from '@angular/forms';
import { ContactFormService } from '../../services/contact-form.service';
import { Angulartics2GoogleTagManager } from 'angulartics2/gtm';
export class ContactComponent {
/**
* @param {?} fb
* @param {?} contactService
* @param {?} angulartics2GoogleTagManager
*/
constructor(fb, contactService, angulartics2GoogleTagManager) {
this.fb = fb;
this.contactService = contactService;
this.angulartics2GoogleTagManager = angulartics2GoogleTagManager;
this.attemptToSubmit = false;
this.createForm();
}
/**
* @return {?}
*/
createForm() {
this.contactForm = this.fb.group({
name: ['', Validators.required],
email: ['', [Validators.required, Validators.email]],
profession: ['', Validators.required],
reference: [''],
reason: ['', Validators.required],
message: ['', Validators.required]
});
}
/**
* @return {?}
*/
onClickSend() {
this.attemptToSubmit = true;
if (this.contactForm.valid && this.contactService.status !== 'sending') {
this.angulartics2GoogleTagManager.eventTrack('Clicked', { category: 'Contact Buttons', label: 'Enviar (Enviado)' });
this.contactService.sendContactEmail.emit(this.contactForm.value);
}
}
/*onSubmit() {
if (this.contactForm.invalid) {
} else {
// SUBMIT
}
}*/
/**
* @return {?}
*/
sendAnotherMessage() {
this.attemptToSubmit = false;
this.contactService.status = undefined;
this.createForm();
}
}
ContactComponent.decorators = [
{ type: Component, args: [{
selector: 'app-contact',
template: "<article id=\"contact\" class=\"contact\" ngsRevealSet [ngsSelector]=\"'.rv'\">\n <h2 class=\"rv\">Escribinos</h2>\n <h4 class=\"rv\">Para conocer m\u00E1s sobre Wumbox, obtener una soluci\u00F3n personalizada o aclarar tus dudas.</h4>\n <form [formGroup]=\"contactForm\" (ngSubmit)=\"onClickSend()\" *ngIf=\"contactService.status !== 'sent'\" novalidate>\n <div fxLayout=\"row\" fxLayout.lt-md=\"column\">\n <div [ngClass]=\"(contactForm.controls['name'].errors && attemptToSubmit) ? 'field field-error' : 'field'\" fxFlex=\"50\">\n <mat-icon aria-hidden=\"false\">person</mat-icon>\n <input type=\"text\" name=\"name\" class=\"input\" placeholder=\"Nombre\" formControlName=\"name\">\n <div *ngIf=\"contactForm.controls['name'].invalid && attemptToSubmit\" class=\"alert\">\n <div *ngIf=\"contactForm.controls['name'].errors && attemptToSubmit\">\n Por favor, escribe tu nombre\n </div>\n </div>\n </div>\n <div [ngClass]=\"(contactForm.controls['email'].errors && attemptToSubmit) ? 'field field-error' : 'field'\" fxFlex=\"50\">\n <mat-icon aria-hidden=\"false\">mail</mat-icon>\n <input type=\"email\" name=\"email\" class=\"input\" placeholder=\"Correo electr\u00F3nico\" formControlName=\"email\">\n <div *ngIf=\"contactForm.controls['email'].invalid && attemptToSubmit\" class=\"alert\">\n <div *ngIf=\"contactForm.controls['email'].errors && attemptToSubmit\">\n Por favor, escribe un correo elcetr\u00F3nico v\u00E1lido\n </div>\n </div>\n </div>\n </div>\n <div fxLayout=\"row\" fxLayout.lt-md=\"column\">\n <div [ngClass]=\"(contactForm.controls['profession'].errors && attemptToSubmit) ? 'field field-error' : 'field'\" fxFlex=\"50\">\n <mat-icon aria-hidden=\"false\">work</mat-icon>\n <input type=\"text\" name=\"profession\" class=\"input\" placeholder=\"Profesi\u00F3n o rol\" formControlName=\"profession\">\n <div *ngIf=\"contactForm.controls['profession'].invalid && attemptToSubmit\" class=\"alert\">\n <div *ngIf=\"contactForm.controls['profession'].errors && attemptToSubmit\">\n Por favor, escribe tu profesi\u00F3n\n </div>\n </div>\n </div>\n <div [ngClass]=\"(contactForm.controls['reference'].errors && attemptToSubmit) ? 'field field-error' : 'field'\" fxFlex=\"50\">\n <mat-icon aria-hidden=\"false\">account_balance</mat-icon>\n <input type=\"text\" name=\"reference\" class=\"input\" placeholder=\"Referencia (Opcional)\" formControlName=\"reference\">\n <div *ngIf=\"contactForm.controls['reference'].invalid && attemptToSubmit\" class=\"alert\">\n <div *ngIf=\"contactForm.controls['reference'].errors && attemptToSubmit\">\n Por favor, escribe una referencia\n </div>\n </div>\n </div>\n </div>\n <div [ngClass]=\"(contactForm.controls['reason'].errors && attemptToSubmit) ? 'field field-error' : 'field'\">\n <mat-icon aria-hidden=\"false\">menu</mat-icon>\n <select name=\"reason\" formControlName=\"reason\">\n <option value=\"\" selected disabled hidden>Motivo</option>\n <option value=\"more-users\">Quiero m\u00E1s informaci\u00F3n</option>\n <option value=\"free-trial\">Quiero un usuario de prueba</option>\n <option value=\"more-users\">Quiero contratar m\u00E1s de un usuario</option>\n <option value=\"school\">Instituci\u00F3n educativa</option>\n <option value=\"no-login\">No puedo ingresar a mi cuenta</option>\n <option value=\"other\">Otro</option>\n </select>\n <mat-icon class=\"expand\" aria-hidden=\"false\">expand_more</mat-icon>\n <div *ngIf=\"contactForm.controls['reason'].invalid && attemptToSubmit\" class=\"alert\">\n <div *ngIf=\"contactForm.controls['reason'].errors && attemptToSubmit\">\n Por favor, selecciona un motivo\n </div>\n </div>\n </div>\n <div [ngClass]=\"(contactForm.controls['message'].errors && attemptToSubmit) ? 'field field-error' : 'field'\">\n <textarea class=\"textarea\" name=\"message\" placeholder=\"Mensaje\" maxlength=\"2000\" formControlName=\"message\"></textarea>\n <div *ngIf=\"contactForm.controls['message'].invalid && attemptToSubmit\" class=\"alert\">\n <div *ngIf=\"contactForm.controls['message'].errors && attemptToSubmit\">\n Por favor, escribe tu mensaje\n </div>\n </div>\n <p>{{ contactForm.value?.message?.length || 0 }}/2000</p>\n </div>\n <div class=\"field submit-field\">\n <!-- <a type=\"submit\" class=\"push-btn\" (click)=\"onClickSend()\"\n angulartics2On=\"click\"\n angularticsCategory=\"Contact Buttons\"\n angularticsAction=\"Clicked\"\n angularticsLabel=\"Intento enviar\"\n >{{contactService.status !== 'sending' ? 'Enviar' : 'Enviando...'}}</a>-->\n <button\n angulartics2On=\"click\"\n angularticsCategory=\"Contact Buttons\"\n angularticsAction=\"Clicked\"\n angularticsLabel=\"Intento enviar\"\n type=\"submit\" class=\"push-btn\">{{contactService.status !== 'sending' ? 'Enviar' : 'Enviando...'}}</button>\n </div>\n </form>\n <div *ngIf=\"contactService.status === 'sent'\" fxLayout=\"column\" fxLayoutAlign=\"start center\" fxLayoutGap=\"5%\" style=\"padding: 2%\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"1%\" class=\"full-width\">\n <h4 class=\"rv\">\u00A1Tu mensaje fue enviado con \u00E9xito! Te responderemos a la brevedad.</h4>\n </div>\n <div class=\"field submit-field\">\n <a class=\"push-btn\" (click)=\"sendAnotherMessage()\">Enviar otro mensaje</a>\n </div>\n </div>\n</article>\n",
styles: ["html{touch-action:none;scroll-behavior:smooth}body{font-family:Roboto,sans-serif;font-weight:400;line-height:1.6;-webkit-overflow-scrolling:touch;background:#181818;min-height:100vh}img{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}a{cursor:pointer}[type=button],[type=reset],[type=submit],button{-webkit-appearance:none}.push-btn{position:relative;top:0;text-align:center;display:inline;background-color:#ff3f84;color:#fff;padding:.75em 1.5em;text-decoration:none;border-radius:.5em;border-bottom:.25em solid #8c2c4e;transition:.1s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.push-btn:first-child{margin-right:10px}.push-btn:active,.push-btn:hover{background-color:#ff659d;opacity:1}.push-btn:active{top:.2em;border-bottom-width:0}.bg-s{position:absolute;height:100%;width:100vw;background-position:center;background-size:contain;background-repeat:no-repeat;left:-5vw;display:none}@-webkit-keyframes floating{from,to{transform:translate(0,0)}65%{transform:translate(0,20px)}}@keyframes floating{from,to{transform:translate(0,0)}65%{transform:translate(0,20px)}}@-webkit-keyframes floating2{from,to{transform:translate(0,0)}65%{transform:translate(0,10px)}}@keyframes floating2{from,to{transform:translate(0,0)}65%{transform:translate(0,10px)}}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInLeft{from{margin-left:-60px;opacity:0}to{margin-left:0;opacity:1}}@keyframes fadeInLeft{from{margin-left:-60px;opacity:0}to{margin-left:0;opacity:1}}@-webkit-keyframes fadeInRight{from{margin-right:-60px;opacity:0}to{margin-right:0;opacity:1}}@keyframes fadeInRight{from{margin-right:-60px;opacity:0}to{margin-right:0;opacity:1}}*{outline:0}.contact{position:relative;padding:2em 0;z-index:6;text-align:center}.contact h2{text-transform:uppercase;margin-top:4em}.contact form{padding:4em 0 6em}.contact form .field-error input,.contact form .field-error select,.contact form .field-error textarea{border:2px solid red!important;color:red!important}.contact form .field-error input::-webkit-input-placeholder,.contact form .field-error select::-webkit-input-placeholder,.contact form .field-error textarea::-webkit-input-placeholder{color:red!important}.contact form .field-error input::-moz-placeholder,.contact form .field-error select::-moz-placeholder,.contact form .field-error textarea::-moz-placeholder{color:red!important}.contact form .field-error input::-ms-input-placeholder,.contact form .field-error select::-ms-input-placeholder,.contact form .field-error textarea::-ms-input-placeholder{color:red!important}.contact form .field-error input::placeholder,.contact form .field-error select::placeholder,.contact form .field-error textarea::placeholder{color:red!important}.contact form .field-error .mat-icon{color:red!important}.contact form .field{position:relative;margin-bottom:2em;width:100%}.contact form .field .alert{position:absolute;color:red;white-space:nowrap;left:50%;transform:translateX(-50%);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.contact form .field .mat-icon{position:absolute;top:50%;transform:translateY(-55%);left:1.5em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.contact form .field .expand{z-index:1;left:inherit!important;right:0;color:#0087e4;transform:translate(-3vw,-50%) scale(1.5)}.contact form .field input,.contact form .field select,.contact form .field textarea{background:0 0;border:2px solid #0087e4;border-radius:10px;padding:1.25em 2em 1.25em 5em;width:100%;color:#fff;box-sizing:border-box}.contact form .field input::-webkit-input-placeholder,.contact form .field select::-webkit-input-placeholder,.contact form .field textarea::-webkit-input-placeholder{color:#0087e4;font-weight:700}.contact form .field input::-moz-placeholder,.contact form .field select::-moz-placeholder,.contact form .field textarea::-moz-placeholder{color:#0087e4;font-weight:700}.contact form .field input::-ms-input-placeholder,.contact form .field select::-ms-input-placeholder,.contact form .field textarea::-ms-input-placeholder{color:#0087e4;font-weight:700}.contact form .field input::placeholder,.contact form .field select::placeholder,.contact form .field textarea::placeholder{color:#0087e4;font-weight:700}.contact form .field select{position:relative;z-index:2;color:#0087e4;font-weight:700;padding-left:5em;-webkit-appearance:none;cursor:pointer}.contact form .field textarea{padding:1.25em 2em;resize:none;height:10em}.contact form .field textarea::-webkit-input-placeholder{padding-left:0}.contact form .field textarea::-moz-placeholder{padding-left:0}.contact form .field textarea::-ms-input-placeholder{padding-left:0}.contact form .field textarea::placeholder{padding-left:0}.contact form .field p{text-align:right;color:#0087e4;font-weight:700}.contact form .submit-field{height:6em}.contact form .submit-field .push-btn{border-bottom:.25em solid #004b9d;background-color:#0087e4;padding:1em 2em;border-top:none;border-left:none;border-right:none;cursor:pointer}.contact form .submit-field .push-btn:active,.contact form .submit-field .push-btn:hover{background-color:#339fe9}.contact form .submit-field .push-btn:active{border-bottom-width:0}@media all and (min-width:960px){.bg-s{left:-10vw;display:inherit}.contact form .field .mat-icon{left:2.5em}.contact form .field input{width:90%}.contact form .field select,.contact form .field textarea{width:95%}.contact form .field p{margin-right:2.5%}.contact form .field .alert{z-index:10;color:#fff;background:red;left:2.5em;top:3.5em;padding:.5em 1.25em;transform:none;border-radius:10px}.contact form .field .alert::before{content:\"\";position:absolute;top:-7.5px;background:red;display:block;left:50px;transform:rotate(135deg);-webkit-clip-path:polygon(0 0,100% 100%,0 100%);clip-path:polygon(0 0,100% 100%,0 100%);height:16px;width:16px}.contact h2{font-size:2.5rem}.contact h4{font-size:1.25rem;font-weight:400;width:60%;margin:0 auto}}@media all and (min-width:1600px){.bg-s{left:-15vw}.contact form .field .mat-icon{left:3em}}"]
}] }
];
/** @nocollapse */
ContactComponent.ctorParameters = () => [
{ type: FormBuilder },
{ type: ContactFormService },
{ type: Angulartics2GoogleTagManager }
];
if (false) {
/** @type {?} */
ContactComponent.prototype.contactForm;
/** @type {?} */
ContactComponent.prototype.attemptToSubmit;
/**
* @type {?}
* @private
*/
ContactComponent.prototype.fb;
/** @type {?} */
ContactComponent.prototype.contactService;
/**
* @type {?}
* @private
*/
ContactComponent.prototype.angulartics2GoogleTagManager;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly93dW1ib3gtbGFuZGluZy8iLCJzb3VyY2VzIjpbImxpYi9tYWluL2NvbnRhY3QvY29udGFjdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFhLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN2RSxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQU85RCxNQUFNLE9BQU8sZ0JBQWdCOzs7Ozs7SUFJM0IsWUFBb0IsRUFBZSxFQUFTLGNBQWtDLEVBQzFELDRCQUEwRDtRQUQxRCxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQVMsbUJBQWMsR0FBZCxjQUFjLENBQW9CO1FBQzFELGlDQUE0QixHQUE1Qiw0QkFBNEIsQ0FBOEI7UUFIOUUsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFJdEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7Ozs7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUMvQixJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUMvQixLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBRTtZQUNyRCxVQUFVLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUNyQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDZixNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUNqQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztTQUNuQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7O0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUM1QixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN0RSxJQUFJLENBQUMsNEJBQTRCLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxFQUFDLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUMsQ0FBQyxDQUFDO1lBQ2xILElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDbkU7SUFDSCxDQUFDOzs7Ozs7Ozs7O0lBU0Qsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztRQUN2QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7O1lBNUNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsYUFBYTtnQkFDdkIseXJMQUF1Qzs7YUFFeEM7Ozs7WUFSbUIsV0FBVztZQUN2QixrQkFBa0I7WUFDbEIsNEJBQTRCOzs7O0lBUWxDLHVDQUF1Qjs7SUFDdkIsMkNBQXdCOzs7OztJQUVaLDhCQUF1Qjs7SUFBRSwwQ0FBeUM7Ozs7O0lBQ2xFLHdEQUFrRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0NvbnRhY3RGb3JtU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29udGFjdC1mb3JtLnNlcnZpY2UnO1xuaW1wb3J0IHtBbmd1bGFydGljczJHb29nbGVUYWdNYW5hZ2VyfSBmcm9tICdhbmd1bGFydGljczIvZ3RtJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNvbnRhY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29udGFjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbnRhY3QuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDb250YWN0Q29tcG9uZW50IHtcbiAgY29udGFjdEZvcm06IEZvcm1Hcm91cDtcbiAgYXR0ZW1wdFRvU3VibWl0ID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsIHB1YmxpYyBjb250YWN0U2VydmljZTogQ29udGFjdEZvcm1TZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGFuZ3VsYXJ0aWNzMkdvb2dsZVRhZ01hbmFnZXI6IEFuZ3VsYXJ0aWNzMkdvb2dsZVRhZ01hbmFnZXIpIHtcbiAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcbiAgfVxuXG4gIGNyZWF0ZUZvcm0oKSB7XG4gICAgdGhpcy5jb250YWN0Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgbmFtZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIGVtYWlsOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLmVtYWlsXSBdLFxuICAgICAgcHJvZmVzc2lvbjogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIHJlZmVyZW5jZTogWycnXSxcbiAgICAgIHJlYXNvbjogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIG1lc3NhZ2U6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNsaWNrU2VuZCgpIHtcbiAgICB0aGlzLmF0dGVtcHRUb1N1Ym1pdCA9IHRydWU7XG4gICAgaWYgKHRoaXMuY29udGFjdEZvcm0udmFsaWQgJiYgdGhpcy5jb250YWN0U2VydmljZS5zdGF0dXMgIT09ICdzZW5kaW5nJykge1xuICAgICAgdGhpcy5hbmd1bGFydGljczJHb29nbGVUYWdNYW5hZ2VyLmV2ZW50VHJhY2soJ0NsaWNrZWQnLCB7Y2F0ZWdvcnk6ICdDb250YWN0IEJ1dHRvbnMnLCBsYWJlbDogJ0VudmlhciAoRW52aWFkbyknfSk7XG4gICAgICB0aGlzLmNvbnRhY3RTZXJ2aWNlLnNlbmRDb250YWN0RW1haWwuZW1pdCh0aGlzLmNvbnRhY3RGb3JtLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKm9uU3VibWl0KCkge1xuICAgIGlmICh0aGlzLmNvbnRhY3RGb3JtLmludmFsaWQpIHtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gU1VCTUlUXG4gICAgfVxuICB9Ki9cblxuICBzZW5kQW5vdGhlck1lc3NhZ2UoKSB7XG4gICAgdGhpcy5hdHRlbXB0VG9TdWJtaXQgPSBmYWxzZTtcbiAgICB0aGlzLmNvbnRhY3RTZXJ2aWNlLnN0YXR1cyA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcbiAgfVxuXG5cbn1cbiJdfQ==