iptdevs-design-system 3.1.648 → 3.1.650

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.
@@ -50,6 +50,9 @@ export class CodSelfFormStepFourComponent extends CodSelfManagedSteps {
50
50
  if (!this.isSelectionOptionPayments) {
51
51
  this.isSelectionOptionPayments = true;
52
52
  }
53
+ else if (!this.isSelectionOptionPayments && this.selectedOptionPayments?.code == 1) {
54
+ this.isEditBillingData = true;
55
+ }
53
56
  else {
54
57
  this.completed.emit(2);
55
58
  }
@@ -62,8 +65,9 @@ export class CodSelfFormStepFourComponent extends CodSelfManagedSteps {
62
65
  sendForm() {
63
66
  // this.codSelfFormStepTwo.markAllAsTouched();
64
67
  // if (this.codSelfFormStepTwo.invalid) return;
68
+ console.log('Ejecuta endpoint');
65
69
  // Movernos al paso 3
66
- this.completed.emit(4);
70
+ // this.completed.emit(4);
67
71
  }
68
72
  onReject() {
69
73
  this.messageService.clear('confirm');
@@ -78,8 +82,6 @@ export class CodSelfFormStepFourComponent extends CodSelfManagedSteps {
78
82
  selectOpcionsPayments(eve) {
79
83
  this.selectedOptionPayments = eve;
80
84
  this.isSelectionOptionPayments = false;
81
- console.log(this.selectedOptionPayments);
82
- console.log(this.selectedOptionPayments.code);
83
85
  if (this.selectedOptionPayments !== null) {
84
86
  this.codSelfFormStepFour.controls['optionsPayments'].setValue(this.selectedOptionPayments.code);
85
87
  }
@@ -88,10 +90,12 @@ export class CodSelfFormStepFourComponent extends CodSelfManagedSteps {
88
90
  }
89
91
  }
90
92
  next() {
91
- console.log('isSelectionOptionPayments', this.isSelectionOptionPayments);
92
93
  if (this.isSelectionOptionPayments) {
93
94
  this.isSelectionOptionPayments = false;
94
95
  }
96
+ else if (this.isSelectionOptionPayments && this.selectedOptionPayments?.code == 1) {
97
+ this.isEditBillingData = false;
98
+ }
95
99
  else {
96
100
  // this.completed.emit(2);
97
101
  console.log('se deberia mover');
@@ -101,6 +105,9 @@ export class CodSelfFormStepFourComponent extends CodSelfManagedSteps {
101
105
  editBillingData() {
102
106
  this.isEditBillingData = false;
103
107
  }
108
+ updateDatosBillingData() {
109
+ this.isEditBillingData = true;
110
+ }
104
111
  selectIdType(idType) {
105
112
  if (idType !== 'Tipo de documento') {
106
113
  this.codSelfFormStepFour.controls['invoicing_idType'].setValue(idType);
@@ -111,11 +118,11 @@ export class CodSelfFormStepFourComponent extends CodSelfManagedSteps {
111
118
  }
112
119
  }
113
120
  CodSelfFormStepFourComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodSelfFormStepFourComponent, deps: [{ token: i1.FormBuilder }, { token: i2.MessageService }, { token: i3.ParameterService }], target: i0.ɵɵFactoryTarget.Component });
114
- CodSelfFormStepFourComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CodSelfFormStepFourComponent, selector: "app-cod-self-form-step-four", outputs: { completed: "completed" }, usesInheritance: true, ngImport: i0, template: "<div class=\"container-main\">\n <div class=\"container-form\">\n <h2>Datos de Facturacion</h2>\n <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n <ng-template let-message pTemplate=\"message\">\n <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n <div class=\"flex align-items-center gap-2\">\n <img src=\"https://qa.iptdev.com.co/assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n <span class=\"font-bold text-900\">Jacob</span>\n </div>\n <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n </div>\n </ng-template>\n </p-toast>\n <i class=\"pi pi-exclamation-circle cursor-pointer w-auto mb-4\" (click)=\"showConfirm()\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n <form autocomplete=\"off\" [formGroup]=\"codSelfFormStepFour\" class=\"grid mt-2 flex flex-column align-items-center\">\n <div class=\"container__body__select flex justify-content-center flex-wrap\">\n <div class=\"container__type__payments\" *ngIf=\"isSelectionOptionPayments\">\n <div class=\"flex flex-column gap-3\">\n <h3>\u00BFcomo quieres pagar?</h3>\n <div *ngFor=\"let category of OptionPayments; index as ind\" class=\"field-checkbox\">\n <p-radioButton\n [inputId]=\"category.key\"\n name=\"category\"\n [value]=\"category\"\n [(ngModel)]=\"selectedOptionPayments\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"selectOpcionsPayments($event)\"\n ></p-radioButton>\n <label [for]=\"category.key\" class=\"ml-2\">\n {{ category.name }}\n </label>\n </div>\n\n </div>\n </div>\n\n <div class=\"container__opstion__instalations\" *ngIf=\"selectedOptionPayments?.code === 1 && !isSelectionOptionPayments\">\n <div class=\"container__info flex flex-column align-items-center justify-content-center\" *ngIf=\"isEditBillingData\">\n <button\n pButton\n type=\"button\"\n label=\"\"\n class=\"p-button-outlined p-button-rounded w-2\"\n icon=\"pi pi-receipt\"\n [disabled]=\"true\">\n </button>\n <strong>name</strong>\n <span>cc document</span>\n <button\n pButton\n label=\"Modificar Datos\"\n type=\"submit\"\n (click)=\"editBillingData()\"\n ></button>\n </div>\n <div *ngIf=\"!isEditBillingData\">\n <h3>Completa los nuevos datos para la emision de tu factura</h3>\n <div class=\"flex gap-1 md:gap-4 xl:gap-8 m-1 p-2 border-round bg-blue-500 text-white\">\n <div class=\"container_icon flex mr-4 justify-content-center align-items-start mt-1\">\n <i class=\"pi pi-info-circle cursor-pointer w-auto mb-4\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n </div>\n <div class=\"flex flex-column container_info_span flex align-items-center justify-content-center\">\n <span>Si proporcionas datos de un tercero, confirmas que los datos son correctos y que tienes su consentimiento para el uso de la informacion. Estos datos se trataran de acuerdo a nuestra <a href=\"\">Declaracion de Privacidad</a></span>\n </div>\n </div>\n <div>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codSelfFormStepFour.controls['invoicing_name']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codSelfFormStepFour.controls['invoicing_Apellido']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codSelfFormStepFour.controls['invoicing_document']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codSelfFormStepFour.controls['invoicing_idType'].value\"\n [control]=\"codSelfFormStepFour.controls['invoicing_idType']\"\n [selectCode]=\"codSelfFormStepFour.controls['invoicing_idType'].value === null ? 'Tipo de documento' : codSelfFormStepFour.controls['invoicing_idType'].value\"\n [isRequired]=\"true\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdType($event)\"\n [defaultText]=\"'Tipo de documento'\"\n ></ipt-select>\n </div>\n </div>\n\n </div>\n <div class=\"container__opstion__instalations\" *ngIf=\"selectedOptionPayments?.code === 2 && !isSelectionOptionPayments\">\n <span>llegue aqui 2</span>\n </div>\n <div class=\"container__opstion__instalations\" *ngIf=\"selectedOptionPayments?.code === 3 && !isSelectionOptionPayments\">\n <span>llegue aqui 3</span>\n </div>\n </div>\n </form>\n\n <!-- <span *ngIf=\"codSelfFormStepOne.invalid && codSelfFormStepOne.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span> -->\n\n <div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n <button\n pButton\n icon=\"pi pi-arrow-left\"\n type=\"submit\"\n (click)=\"back()\"\n ></button>\n\n\n <button\n pButton\n icon=\"pi pi-arrow-right\"\n type=\"submit\"\n (click)=\"next()\"\n ></button>\n <!-- <button\n pButton\n icon=\"pi pi-arrow-right\"\n (click)=\"sendForm()\"\n ></button> -->\n </div>\n </div>\n</div>\n\n<div>\n <pre>{{ codSelfFormStepFour.value | json }}</pre>\n <div>\n <pre>{{ codSelfFormStepFour.valid | json }}</pre>\n </div>\n</div>\n", styles: [".container-form{margin:5%;border-radius:6px;border:1px solid #2563eb;box-shadow:#3c40434d 0 1px 2px,#3c404326 0 2px 6px 2px;padding:1rem}.error-message{font-size:x-small;color:red}:host ::ng-deep .p-toast{width:20rem!important}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.InputComponent, selector: "ipt-input", inputs: ["inputType", "placeHolder", "validateText", "withPipe", "list", "iconUrl", "control", "prefix", "thousands", "decimal", "disabledSel"], outputs: ["dateSelected"] }, { kind: "component", type: i6.SelectComponent, selector: "ipt-select", inputs: ["isRequired", "data", "defaultText", "selectCode", "disabledSel", "initialValue", "control"], outputs: ["eventSelect"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i7.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "fitContent", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i8.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i9.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i10.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "pipe", type: i4.JsonPipe, name: "json" }] });
121
+ CodSelfFormStepFourComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CodSelfFormStepFourComponent, selector: "app-cod-self-form-step-four", outputs: { completed: "completed" }, usesInheritance: true, ngImport: i0, template: "<div class=\"container-main\">\n <div class=\"container-form\">\n <h2>Datos de Facturacion</h2>\n <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n <ng-template let-message pTemplate=\"message\">\n <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n <div class=\"flex align-items-center gap-2\">\n <img src=\"https://qa.iptdev.com.co/assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n <span class=\"font-bold text-900\">Jacob</span>\n </div>\n <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n </div>\n </ng-template>\n </p-toast>\n <i class=\"pi pi-exclamation-circle cursor-pointer w-auto mb-4\" (click)=\"showConfirm()\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n <form autocomplete=\"off\" [formGroup]=\"codSelfFormStepFour\" class=\"grid mt-2 flex flex-column align-items-center\">\n <div class=\"container__body__select flex justify-content-center flex-wrap\">\n <div class=\"container__type__payments\" *ngIf=\"isSelectionOptionPayments\">\n <div class=\"flex flex-column gap-3\">\n <h3>\u00BFcomo quieres pagar?</h3>\n <div *ngFor=\"let category of OptionPayments; index as ind\" class=\"field-checkbox\">\n <p-radioButton\n [inputId]=\"category.key\"\n name=\"category\"\n [value]=\"category\"\n [(ngModel)]=\"selectedOptionPayments\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"selectOpcionsPayments($event)\"\n ></p-radioButton>\n <label [for]=\"category.key\" class=\"ml-2\">\n {{ category.name }}\n </label>\n </div>\n\n </div>\n </div>\n\n <div class=\"container__opstion__instalations\" *ngIf=\"selectedOptionPayments?.code === 1 && !isSelectionOptionPayments\">\n <div class=\"container__info flex flex-column align-items-center justify-content-center\" *ngIf=\"isEditBillingData\">\n <button\n pButton\n type=\"button\"\n label=\"\"\n class=\"p-button-outlined p-button-rounded w-2\"\n icon=\"pi pi-receipt\"\n [disabled]=\"true\">\n </button>\n <strong>name</strong>\n <span>cc document</span>\n <button\n pButton\n label=\"Modificar Datos\"\n type=\"submit\"\n (click)=\"editBillingData()\"\n ></button>\n </div>\n <div *ngIf=\"!isEditBillingData\">\n <h3>Completa los nuevos datos para la emision de tu factura</h3>\n <div class=\"flex gap-1 md:gap-4 xl:gap-8 m-1 p-2 border-round bg-blue-500 text-white\">\n <div class=\"container_icon flex mr-4 justify-content-center align-items-start mt-1\">\n <i class=\"pi pi-info-circle cursor-pointer w-auto mb-4\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n </div>\n <div class=\"flex flex-column container_info_span flex align-items-center justify-content-center\">\n <span>Si proporcionas datos de un tercero, confirmas que los datos son correctos y que tienes su consentimiento para el uso de la informacion. Estos datos se trataran de acuerdo a nuestra <a href=\"\">Declaracion de Privacidad</a></span>\n </div>\n </div>\n <div>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codSelfFormStepFour.controls['invoicing_name']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Apellido'\"\n [control]=\"codSelfFormStepFour.controls['invoicing_Apellido']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codSelfFormStepFour.controls['invoicing_idType'].value\"\n [control]=\"codSelfFormStepFour.controls['invoicing_idType']\"\n [selectCode]=\"codSelfFormStepFour.controls['invoicing_idType'].value === null ? 'Tipo de documento' : codSelfFormStepFour.controls['invoicing_idType'].value\"\n [isRequired]=\"true\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdType($event)\"\n [defaultText]=\"'Tipo de documento'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Documento'\"\n [control]=\"codSelfFormStepFour.controls['invoicing_document']\"\n ></ipt-input>\n\n </div>\n </div>\n\n </div>\n <div class=\"container__opstion__instalations\" *ngIf=\"selectedOptionPayments?.code === 2 && !isSelectionOptionPayments\">\n <span>llegue aqui 2</span>\n </div>\n <div class=\"container__opstion__instalations\" *ngIf=\"selectedOptionPayments?.code === 3 && !isSelectionOptionPayments\">\n <span>llegue aqui 3</span>\n </div>\n </div>\n </form>\n\n <!-- <span *ngIf=\"codSelfFormStepOne.invalid && codSelfFormStepOne.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span> -->\n\n <div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n <button\n pButton\n icon=\"pi pi-arrow-left\"\n type=\"submit\"\n (click)=\"back()\"\n ></button>\n\n\n <button *ngIf=\"!codSelfFormStepFour.valid && isEditBillingData\"\n pButton\n icon=\"pi pi-arrow-right\"\n type=\"submit\"\n (click)=\"next()\"\n ></button>\n <button *ngIf=\"!isEditBillingData\"\n pButton\n label=\"Continuar\"\n icon=\"pi pi-arrow-right\"\n type=\"submit\"\n (click)=\"next()\">\n </button>\n\n <button *ngIf=\"codSelfFormStepFour.valid\"\n pButton\n label=\"Guardar\"\n type=\"submit\"\n (click)=\"sendForm()\"\n ></button>\n\n <!-- <button\n pButton\n icon=\"pi pi-arrow-right\"\n (click)=\"sendForm()\"\n ></button> -->\n </div>\n </div>\n</div>\n\n<div>\n <pre>{{ codSelfFormStepFour.value | json }}</pre>\n <div>\n <pre>{{ codSelfFormStepFour.valid | json }}</pre>\n </div>\n</div>\n", styles: [".container-form{margin:5%;border-radius:6px;border:1px solid #2563eb;box-shadow:#3c40434d 0 1px 2px,#3c404326 0 2px 6px 2px;padding:1rem}.error-message{font-size:x-small;color:red}:host ::ng-deep .p-toast{width:20rem!important}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.InputComponent, selector: "ipt-input", inputs: ["inputType", "placeHolder", "validateText", "withPipe", "list", "iconUrl", "control", "prefix", "thousands", "decimal", "disabledSel"], outputs: ["dateSelected"] }, { kind: "component", type: i6.SelectComponent, selector: "ipt-select", inputs: ["isRequired", "data", "defaultText", "selectCode", "disabledSel", "initialValue", "control"], outputs: ["eventSelect"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i7.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "fitContent", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i8.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i9.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i10.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "pipe", type: i4.JsonPipe, name: "json" }] });
115
122
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodSelfFormStepFourComponent, decorators: [{
116
123
  type: Component,
117
- args: [{ selector: 'app-cod-self-form-step-four', template: "<div class=\"container-main\">\n <div class=\"container-form\">\n <h2>Datos de Facturacion</h2>\n <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n <ng-template let-message pTemplate=\"message\">\n <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n <div class=\"flex align-items-center gap-2\">\n <img src=\"https://qa.iptdev.com.co/assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n <span class=\"font-bold text-900\">Jacob</span>\n </div>\n <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n </div>\n </ng-template>\n </p-toast>\n <i class=\"pi pi-exclamation-circle cursor-pointer w-auto mb-4\" (click)=\"showConfirm()\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n <form autocomplete=\"off\" [formGroup]=\"codSelfFormStepFour\" class=\"grid mt-2 flex flex-column align-items-center\">\n <div class=\"container__body__select flex justify-content-center flex-wrap\">\n <div class=\"container__type__payments\" *ngIf=\"isSelectionOptionPayments\">\n <div class=\"flex flex-column gap-3\">\n <h3>\u00BFcomo quieres pagar?</h3>\n <div *ngFor=\"let category of OptionPayments; index as ind\" class=\"field-checkbox\">\n <p-radioButton\n [inputId]=\"category.key\"\n name=\"category\"\n [value]=\"category\"\n [(ngModel)]=\"selectedOptionPayments\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"selectOpcionsPayments($event)\"\n ></p-radioButton>\n <label [for]=\"category.key\" class=\"ml-2\">\n {{ category.name }}\n </label>\n </div>\n\n </div>\n </div>\n\n <div class=\"container__opstion__instalations\" *ngIf=\"selectedOptionPayments?.code === 1 && !isSelectionOptionPayments\">\n <div class=\"container__info flex flex-column align-items-center justify-content-center\" *ngIf=\"isEditBillingData\">\n <button\n pButton\n type=\"button\"\n label=\"\"\n class=\"p-button-outlined p-button-rounded w-2\"\n icon=\"pi pi-receipt\"\n [disabled]=\"true\">\n </button>\n <strong>name</strong>\n <span>cc document</span>\n <button\n pButton\n label=\"Modificar Datos\"\n type=\"submit\"\n (click)=\"editBillingData()\"\n ></button>\n </div>\n <div *ngIf=\"!isEditBillingData\">\n <h3>Completa los nuevos datos para la emision de tu factura</h3>\n <div class=\"flex gap-1 md:gap-4 xl:gap-8 m-1 p-2 border-round bg-blue-500 text-white\">\n <div class=\"container_icon flex mr-4 justify-content-center align-items-start mt-1\">\n <i class=\"pi pi-info-circle cursor-pointer w-auto mb-4\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n </div>\n <div class=\"flex flex-column container_info_span flex align-items-center justify-content-center\">\n <span>Si proporcionas datos de un tercero, confirmas que los datos son correctos y que tienes su consentimiento para el uso de la informacion. Estos datos se trataran de acuerdo a nuestra <a href=\"\">Declaracion de Privacidad</a></span>\n </div>\n </div>\n <div>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codSelfFormStepFour.controls['invoicing_name']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codSelfFormStepFour.controls['invoicing_Apellido']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codSelfFormStepFour.controls['invoicing_document']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codSelfFormStepFour.controls['invoicing_idType'].value\"\n [control]=\"codSelfFormStepFour.controls['invoicing_idType']\"\n [selectCode]=\"codSelfFormStepFour.controls['invoicing_idType'].value === null ? 'Tipo de documento' : codSelfFormStepFour.controls['invoicing_idType'].value\"\n [isRequired]=\"true\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdType($event)\"\n [defaultText]=\"'Tipo de documento'\"\n ></ipt-select>\n </div>\n </div>\n\n </div>\n <div class=\"container__opstion__instalations\" *ngIf=\"selectedOptionPayments?.code === 2 && !isSelectionOptionPayments\">\n <span>llegue aqui 2</span>\n </div>\n <div class=\"container__opstion__instalations\" *ngIf=\"selectedOptionPayments?.code === 3 && !isSelectionOptionPayments\">\n <span>llegue aqui 3</span>\n </div>\n </div>\n </form>\n\n <!-- <span *ngIf=\"codSelfFormStepOne.invalid && codSelfFormStepOne.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span> -->\n\n <div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n <button\n pButton\n icon=\"pi pi-arrow-left\"\n type=\"submit\"\n (click)=\"back()\"\n ></button>\n\n\n <button\n pButton\n icon=\"pi pi-arrow-right\"\n type=\"submit\"\n (click)=\"next()\"\n ></button>\n <!-- <button\n pButton\n icon=\"pi pi-arrow-right\"\n (click)=\"sendForm()\"\n ></button> -->\n </div>\n </div>\n</div>\n\n<div>\n <pre>{{ codSelfFormStepFour.value | json }}</pre>\n <div>\n <pre>{{ codSelfFormStepFour.valid | json }}</pre>\n </div>\n</div>\n", styles: [".container-form{margin:5%;border-radius:6px;border:1px solid #2563eb;box-shadow:#3c40434d 0 1px 2px,#3c404326 0 2px 6px 2px;padding:1rem}.error-message{font-size:x-small;color:red}:host ::ng-deep .p-toast{width:20rem!important}\n"] }]
124
+ args: [{ selector: 'app-cod-self-form-step-four', template: "<div class=\"container-main\">\n <div class=\"container-form\">\n <h2>Datos de Facturacion</h2>\n <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n <ng-template let-message pTemplate=\"message\">\n <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n <div class=\"flex align-items-center gap-2\">\n <img src=\"https://qa.iptdev.com.co/assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n <span class=\"font-bold text-900\">Jacob</span>\n </div>\n <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n </div>\n </ng-template>\n </p-toast>\n <i class=\"pi pi-exclamation-circle cursor-pointer w-auto mb-4\" (click)=\"showConfirm()\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n <form autocomplete=\"off\" [formGroup]=\"codSelfFormStepFour\" class=\"grid mt-2 flex flex-column align-items-center\">\n <div class=\"container__body__select flex justify-content-center flex-wrap\">\n <div class=\"container__type__payments\" *ngIf=\"isSelectionOptionPayments\">\n <div class=\"flex flex-column gap-3\">\n <h3>\u00BFcomo quieres pagar?</h3>\n <div *ngFor=\"let category of OptionPayments; index as ind\" class=\"field-checkbox\">\n <p-radioButton\n [inputId]=\"category.key\"\n name=\"category\"\n [value]=\"category\"\n [(ngModel)]=\"selectedOptionPayments\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"selectOpcionsPayments($event)\"\n ></p-radioButton>\n <label [for]=\"category.key\" class=\"ml-2\">\n {{ category.name }}\n </label>\n </div>\n\n </div>\n </div>\n\n <div class=\"container__opstion__instalations\" *ngIf=\"selectedOptionPayments?.code === 1 && !isSelectionOptionPayments\">\n <div class=\"container__info flex flex-column align-items-center justify-content-center\" *ngIf=\"isEditBillingData\">\n <button\n pButton\n type=\"button\"\n label=\"\"\n class=\"p-button-outlined p-button-rounded w-2\"\n icon=\"pi pi-receipt\"\n [disabled]=\"true\">\n </button>\n <strong>name</strong>\n <span>cc document</span>\n <button\n pButton\n label=\"Modificar Datos\"\n type=\"submit\"\n (click)=\"editBillingData()\"\n ></button>\n </div>\n <div *ngIf=\"!isEditBillingData\">\n <h3>Completa los nuevos datos para la emision de tu factura</h3>\n <div class=\"flex gap-1 md:gap-4 xl:gap-8 m-1 p-2 border-round bg-blue-500 text-white\">\n <div class=\"container_icon flex mr-4 justify-content-center align-items-start mt-1\">\n <i class=\"pi pi-info-circle cursor-pointer w-auto mb-4\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n </div>\n <div class=\"flex flex-column container_info_span flex align-items-center justify-content-center\">\n <span>Si proporcionas datos de un tercero, confirmas que los datos son correctos y que tienes su consentimiento para el uso de la informacion. Estos datos se trataran de acuerdo a nuestra <a href=\"\">Declaracion de Privacidad</a></span>\n </div>\n </div>\n <div>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codSelfFormStepFour.controls['invoicing_name']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Apellido'\"\n [control]=\"codSelfFormStepFour.controls['invoicing_Apellido']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codSelfFormStepFour.controls['invoicing_idType'].value\"\n [control]=\"codSelfFormStepFour.controls['invoicing_idType']\"\n [selectCode]=\"codSelfFormStepFour.controls['invoicing_idType'].value === null ? 'Tipo de documento' : codSelfFormStepFour.controls['invoicing_idType'].value\"\n [isRequired]=\"true\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdType($event)\"\n [defaultText]=\"'Tipo de documento'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Documento'\"\n [control]=\"codSelfFormStepFour.controls['invoicing_document']\"\n ></ipt-input>\n\n </div>\n </div>\n\n </div>\n <div class=\"container__opstion__instalations\" *ngIf=\"selectedOptionPayments?.code === 2 && !isSelectionOptionPayments\">\n <span>llegue aqui 2</span>\n </div>\n <div class=\"container__opstion__instalations\" *ngIf=\"selectedOptionPayments?.code === 3 && !isSelectionOptionPayments\">\n <span>llegue aqui 3</span>\n </div>\n </div>\n </form>\n\n <!-- <span *ngIf=\"codSelfFormStepOne.invalid && codSelfFormStepOne.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span> -->\n\n <div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n <button\n pButton\n icon=\"pi pi-arrow-left\"\n type=\"submit\"\n (click)=\"back()\"\n ></button>\n\n\n <button *ngIf=\"!codSelfFormStepFour.valid && isEditBillingData\"\n pButton\n icon=\"pi pi-arrow-right\"\n type=\"submit\"\n (click)=\"next()\"\n ></button>\n <button *ngIf=\"!isEditBillingData\"\n pButton\n label=\"Continuar\"\n icon=\"pi pi-arrow-right\"\n type=\"submit\"\n (click)=\"next()\">\n </button>\n\n <button *ngIf=\"codSelfFormStepFour.valid\"\n pButton\n label=\"Guardar\"\n type=\"submit\"\n (click)=\"sendForm()\"\n ></button>\n\n <!-- <button\n pButton\n icon=\"pi pi-arrow-right\"\n (click)=\"sendForm()\"\n ></button> -->\n </div>\n </div>\n</div>\n\n<div>\n <pre>{{ codSelfFormStepFour.value | json }}</pre>\n <div>\n <pre>{{ codSelfFormStepFour.valid | json }}</pre>\n </div>\n</div>\n", styles: [".container-form{margin:5%;border-radius:6px;border:1px solid #2563eb;box-shadow:#3c40434d 0 1px 2px,#3c404326 0 2px 6px 2px;padding:1rem}.error-message{font-size:x-small;color:red}:host ::ng-deep .p-toast{width:20rem!important}\n"] }]
118
125
  }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.MessageService }, { type: i3.ParameterService }]; }, propDecorators: { completed: [{
119
126
  type: Output
120
127
  }] } });
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLXNlbGYtZm9ybS1zdGVwLWZvdXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvZC1zZWxmLW1hbmFnZWQvc3RlcHMvY29kLWZvcm0tc3RlcC1mb3VyL2NvZC1zZWxmLWZvcm0tc3RlcC1mb3VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb2Qtc2VsZi1tYW5hZ2VkL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtZm91ci9jb2Qtc2VsZi1mb3JtLXN0ZXAtZm91ci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU9wRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7Ozs7O0FBT3pFLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxtQkFBbUI7SUFxQm5FLFlBQ1UsRUFBZSxFQUNmLGNBQThCLEVBQzlCLGdCQUFrQztRQUcxQyxLQUFLLEVBQUUsQ0FBQztRQUxBLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXRCbEMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFakQsZ0JBQVcsR0FBVSwrQ0FBK0MsQ0FBQztRQUNyRSxZQUFPLEdBQVksS0FBSyxDQUFDO1FBR3pCLDhCQUF5QixHQUFHLEtBQUssQ0FBQztRQUVsQyxtQkFBYyxHQUFRO1lBQ3BCLEVBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFHLElBQUksRUFBRSxl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QUMsQ0FBQztTQUNqRzthQUFNO1lBQ0wsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNyRTtJQUNILENBQUM7SUFFRCxJQUFJO1FBQ0YsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsRUFBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUN4RSxJQUFJLElBQUksQ0FBQyx5QkFBeUIsRUFBRTtZQUNsQyxJQUFJLENBQUMseUJBQXlCLEdBQUcsS0FBSyxDQUFDO1NBQ3hDO2FBQUk7WUFDSCwwQkFBMEI7WUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1NBQ2pDO1FBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUUzQyxDQUFDO0lBQ0QsZUFBZTtRQUNiLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7SUFDakMsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFXO1FBQ3RCLElBQUksTUFBTSxLQUFLLG1CQUFtQixFQUFFO1lBQ2xDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDeEU7YUFBTTtZQUNMLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdEU7SUFDSCxDQUFDOzt5SEFqSFUsNEJBQTRCOzZHQUE1Qiw0QkFBNEIsK0hDaEJ6QyxrcE1BeUlBOzJGRHpIYSw0QkFBNEI7a0JBTHhDLFNBQVM7K0JBQ0UsNkJBQTZCOzhKQU03QixTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFyYW1ldGVyU2VydmljZSB9IGZyb20gJy4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9wYXJhbWV0ZXJzLXNlcnZpY2UvcGFyYW1ldGVycy5zZXJ2aWNlJztcbmltcG9ydCB7IENvbXBvbmVudCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuLy9pbXBvcnQgUHJpbWVuZ1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5cbi8vIGltcG9ydCBNb2RlbHNcbmltcG9ydCB7IEl3ZWVrRGF5c1JxIH0gZnJvbSAnLi8uLi8uLi8uLi9jb3JlL21vZGVscy9hY2FkZW1pYy9hY2FkZW1pYy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29kU2VsZk1hbmFnZWRTdGVwcyB9IGZyb20gJy4uLy4uL2xvZ2ljL2NvZC1zZWxmLW1hbmFnZWQtc3RlcHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY29kLXNlbGYtZm9ybS1zdGVwLWZvdXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY29kLXNlbGYtZm9ybS1zdGVwLWZvdXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb2Qtc2VsZi1mb3JtLXN0ZXAtZm91ci5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENvZFNlbGZGb3JtU3RlcEZvdXJDb21wb25lbnQgZXh0ZW5kcyBDb2RTZWxmTWFuYWdlZFN0ZXBzIGltcGxlbWVudHMgT25Jbml0IHtcblxuICBAT3V0cHV0KCkgY29tcGxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgbWVzc2FnZUluZm86c3RyaW5nID0gXCJEYXRvcyBkZSBmYWN0dXJhY2lvbiBkZSBhY3VlcmRvIGEgdHUgZWxlY2Npb25cIjtcbiAgdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBjb2RTZWxmRm9ybVN0ZXBGb3VyITpGb3JtR3JvdXA7XG4gIHNlbGVjdGVkT3B0aW9uUGF5bWVudHM/OiBJd2Vla0RheXNScTtcbiAgbWVzc2FnZUFsZXJ0UGxhY2VtZW50VGVzdCA9IGZhbHNlO1xuXG4gIE9wdGlvblBheW1lbnRzOiBhbnlbXT1bXG4gICAge2NvZGU6IDEsIGtleTogJ3NpJywgIG5hbWU6ICdJbnN0YWxhY2lvbmVzJ30sXG4gICAgLy8ge2NvZGU6IDIsIGtleTogJ3BhJywgIG5hbWU6ICdQYWdvIGVuIExpbmVhJ30sXG4gICAgLy8ge2NvZGU6IDMsIGtleTogJ3BzJywgIG5hbWU6ICdUcmFuc2ZlcmVuY2lhJ30sXG4gICAgLy8ge2NvZGU6IDQsIGtleTogJ2VmJywgIG5hbWU6ICdFZmVjdHknfSxcbiAgXTtcbiAgZGlzYWJsZXdlZWtkYXlzOiBib29sZWFuW10gPSBbXTtcbiAgaXNTZWxlY3Rpb25PcHRpb25QYXltZW50cz0gdHJ1ZTtcbiAgaXNFZGl0QmlsbGluZ0RhdGEgPSB0cnVlO1xuICBpZFR5cGVzOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwYXJhbWV0ZXJTZXJ2aWNlOiBQYXJhbWV0ZXJTZXJ2aWNlLFxuICAgIClcbiAge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5pbml0Rm9ybSgpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5nZXRQYXJhbWVudGVycygpO1xuICB9XG4gIGluaXRGb3JtKCl7XG4gICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBGb3VyID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBvcHRpb25zUGF5bWVudHM6WycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgaW52b2ljaW5nX25hbWU6WycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgaW52b2ljaW5nX0FwZWxsaWRvOlsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGludm9pY2luZ19kb2N1bWVudDpbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBpbnZvaWNpbmdfaWRUeXBlOlsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICB9KVxuICB9XG4gIGJhY2soKSB7XG4gICAgLy8gTW92ZXJub3MgYWwgcGFzbyBhbnRlcmlvclxuICAgIGlmICghdGhpcy5pc1NlbGVjdGlvbk9wdGlvblBheW1lbnRzKSB7XG4gICAgICB0aGlzLmlzU2VsZWN0aW9uT3B0aW9uUGF5bWVudHMgPSB0cnVlO1xuICAgIH1lbHNle1xuICAgICAgdGhpcy5jb21wbGV0ZWQuZW1pdCgyKTtcbiAgICB9XG5cbiAgfVxuXG4gIGdldFBhcmFtZW50ZXJzKCl7XG4gICAgdGhpcy5wYXJhbWV0ZXJTZXJ2aWNlLmdldENhcmRUeXBlcygnY29sJykuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgdGhpcy5pZFR5cGVzID0gcmVzcG9uc2UuZGF0YTtcbiAgICB9KTtcbiAgfVxuXG4gIHNlbmRGb3JtKCkge1xuICAgIC8vIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICAvLyBpZiAodGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uaW52YWxpZCkgcmV0dXJuO1xuXG4gICAgLy8gTW92ZXJub3MgYWwgcGFzbyAzXG4gICAgdGhpcy5jb21wbGV0ZWQuZW1pdCg0KTtcbiAgfVxuXG4gIG9uUmVqZWN0KCkge1xuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuY2xlYXIoJ2NvbmZpcm0nKTtcbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgfVxuXG4gIHNob3dDb25maXJtKCkge1xuICAgIGlmICghdGhpcy52aXNpYmxlKSB7XG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsga2V5OiAnY29uZmlybScsIHN0aWNreTogdHJ1ZSwgc2V2ZXJpdHk6ICdzdWNjZXNzJywgc3VtbWFyeTogJ0NhbiB5b3Ugc2VuZCBtZSB0aGUgcmVwb3J0PycsIGxpZmU6IDEwMDAwIH0pO1xuICAgICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdE9wY2lvbnNQYXltZW50cyhldmU6IEl3ZWVrRGF5c1JxKXtcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uUGF5bWVudHMgPSBldmVcbiAgICB0aGlzLmlzU2VsZWN0aW9uT3B0aW9uUGF5bWVudHMgPSBmYWxzZTtcbiAgICBjb25zb2xlLmxvZyh0aGlzLnNlbGVjdGVkT3B0aW9uUGF5bWVudHMpO1xuICAgIGNvbnNvbGUubG9nKHRoaXMuc2VsZWN0ZWRPcHRpb25QYXltZW50cy5jb2RlKTtcblxuICAgIGlmICh0aGlzLnNlbGVjdGVkT3B0aW9uUGF5bWVudHMgIT09IG51bGwpIHtcbiAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwRm91ci5jb250cm9sc1snb3B0aW9uc1BheW1lbnRzJ10uc2V0VmFsdWUodGhpcy5zZWxlY3RlZE9wdGlvblBheW1lbnRzLmNvZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcEZvdXIuY29udHJvbHNbJ29wdGlvbnNQYXltZW50cyddLnNldFZhbHVlKG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIG5leHQoKXtcbiAgICBjb25zb2xlLmxvZygnaXNTZWxlY3Rpb25PcHRpb25QYXltZW50cycsdGhpcy5pc1NlbGVjdGlvbk9wdGlvblBheW1lbnRzKTtcbiAgICBpZiAodGhpcy5pc1NlbGVjdGlvbk9wdGlvblBheW1lbnRzKSB7XG4gICAgICB0aGlzLmlzU2VsZWN0aW9uT3B0aW9uUGF5bWVudHMgPSBmYWxzZTtcbiAgICB9ZWxzZXtcbiAgICAgIC8vIHRoaXMuY29tcGxldGVkLmVtaXQoMik7XG4gICAgICBjb25zb2xlLmxvZygnc2UgZGViZXJpYSBtb3ZlcicpO1xuICAgIH1cbiAgICBjb25zb2xlLmxvZyh0aGlzLnNlbGVjdGVkT3B0aW9uUGF5bWVudHMpO1xuXG4gIH1cbiAgZWRpdEJpbGxpbmdEYXRhKCl7XG4gICAgdGhpcy5pc0VkaXRCaWxsaW5nRGF0YSA9IGZhbHNlO1xuICB9XG5cbiAgc2VsZWN0SWRUeXBlKGlkVHlwZTogYW55KSB7XG4gICAgaWYgKGlkVHlwZSAhPT0gJ1RpcG8gZGUgZG9jdW1lbnRvJykge1xuICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydpbnZvaWNpbmdfaWRUeXBlJ10uc2V0VmFsdWUoaWRUeXBlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydpbnZvaWNpbmdfaWRUeXBlJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICB9XG59XG5cbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXItbWFpblwiPlxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZvcm1cIj5cbiAgICA8aDI+RGF0b3MgZGUgRmFjdHVyYWNpb248L2gyPlxuICAgIDxwLXRvYXN0IHBvc2l0aW9uPVwidG9wLWNlbnRlclwiIGtleT1cImNvbmZpcm1cIiAob25DbG9zZSk9XCJvblJlamVjdCgpXCIgW2Jhc2VaSW5kZXhdPVwiMTBcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtbWVzc2FnZSBwVGVtcGxhdGU9XCJtZXNzYWdlXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtc3RhcnRcIiBzdHlsZT1cImZsZXg6IDFcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vcWEuaXB0ZGV2LmNvbS5jby9hc3NldHMvbG9nb3MvcmVhZGluZy5wbmdcIiBzdHlsZT1cIndpZHRoOiA2NXB4O1wiIHNoYXBlPVwiY2lyY2xlXCIgLz5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1ib2xkIHRleHQtOTAwXCI+SmFjb2I8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC1tZWRpdW0gdGV4dC1sZyBteS0zIHRleHQtOTAwXCI+e3sgbWVzc2FnZUluZm8gfX08L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9wLXRvYXN0PlxuICAgIDxpIGNsYXNzPVwicGkgcGktZXhjbGFtYXRpb24tY2lyY2xlIGN1cnNvci1wb2ludGVyIHctYXV0byBtYi00XCIgKGNsaWNrKT1cInNob3dDb25maXJtKClcIiBwVG9vbHRpcD1cIk1hcyBpbmZvLlwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiPjwvaT5cbiAgICA8Zm9ybSBhdXRvY29tcGxldGU9XCJvZmZcIiBbZm9ybUdyb3VwXT1cImNvZFNlbGZGb3JtU3RlcEZvdXJcIiBjbGFzcz1cImdyaWQgbXQtMiBmbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lcl9fYm9keV9fc2VsZWN0IGZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBmbGV4LXdyYXBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lcl9fdHlwZV9fcGF5bWVudHNcIiAqbmdJZj1cImlzU2VsZWN0aW9uT3B0aW9uUGF5bWVudHNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBnYXAtM1wiPlxuICAgICAgICAgICAgPGgzPsK/Y29tbyBxdWllcmVzIHBhZ2FyPzwvaDM+XG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjYXRlZ29yeSBvZiBPcHRpb25QYXltZW50czsgaW5kZXggYXMgaW5kXCIgY2xhc3M9XCJmaWVsZC1jaGVja2JveFwiPlxuICAgICAgICAgICAgICA8cC1yYWRpb0J1dHRvblxuICAgICAgICAgICAgICAgICAgW2lucHV0SWRdPVwiY2F0ZWdvcnkua2V5XCJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJjYXRlZ29yeVwiXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiY2F0ZWdvcnlcIlxuICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZE9wdGlvblBheW1lbnRzXCJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxld2Vla2RheXNbaW5kXVwiXG4gICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0T3BjaW9uc1BheW1lbnRzKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgPjwvcC1yYWRpb0J1dHRvbj5cbiAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiY2F0ZWdvcnkua2V5XCIgY2xhc3M9XCJtbC0yXCI+XG4gICAgICAgICAgICAgICAgICB7eyBjYXRlZ29yeS5uYW1lIH19XG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyX19vcHN0aW9uX19pbnN0YWxhdGlvbnNcIiAqbmdJZj1cInNlbGVjdGVkT3B0aW9uUGF5bWVudHM/LmNvZGUgPT09IDEgJiYgIWlzU2VsZWN0aW9uT3B0aW9uUGF5bWVudHNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyX19pbmZvIGZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIiAqbmdJZj1cImlzRWRpdEJpbGxpbmdEYXRhXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHBCdXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGxhYmVsPVwiXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1vdXRsaW5lZCBwLWJ1dHRvbi1yb3VuZGVkIHctMlwiXG4gICAgICAgICAgICAgIGljb249XCJwaSBwaS1yZWNlaXB0XCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPHN0cm9uZz5uYW1lPC9zdHJvbmc+XG4gICAgICAgICAgICA8c3Bhbj5jYyBkb2N1bWVudDwvc3Bhbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgcEJ1dHRvblxuICAgICAgICAgICAgICBsYWJlbD1cIk1vZGlmaWNhciBEYXRvc1wiXG4gICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiZWRpdEJpbGxpbmdEYXRhKClcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCIhaXNFZGl0QmlsbGluZ0RhdGFcIj5cbiAgICAgICAgICAgIDxoMz5Db21wbGV0YSBsb3MgbnVldm9zIGRhdG9zIHBhcmEgbGEgZW1pc2lvbiBkZSB0dSBmYWN0dXJhPC9oMz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0xIG1kOmdhcC00IHhsOmdhcC04IG0tMSBwLTIgYm9yZGVyLXJvdW5kIGJnLWJsdWUtNTAwIHRleHQtd2hpdGVcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lcl9pY29uIGZsZXggbXItNCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLXN0YXJ0IG10LTFcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWluZm8tY2lyY2xlIGN1cnNvci1wb2ludGVyIHctYXV0byBtYi00XCIgcFRvb2x0aXA9XCJNYXMgaW5mby5cIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIj48L2k+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBjb250YWluZXJfaW5mb19zcGFuIGZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8c3Bhbj5TaSBwcm9wb3JjaW9uYXMgZGF0b3MgZGUgdW4gdGVyY2VybywgY29uZmlybWFzIHF1ZSBsb3MgZGF0b3Mgc29uIGNvcnJlY3RvcyB5IHF1ZSB0aWVuZXMgc3UgY29uc2VudGltaWVudG8gcGFyYSBlbCB1c28gZGUgbGEgaW5mb3JtYWNpb24uIEVzdG9zIGRhdG9zIHNlIHRyYXRhcmFuIGRlIGFjdWVyZG8gYSBudWVzdHJhIDxhIGhyZWY9XCJcIj5EZWNsYXJhY2lvbiBkZSBQcml2YWNpZGFkPC9hPjwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxpcHQtaW5wdXRcbiAgICAgICAgICAgICAgICBbaW5wdXRUeXBlXT1cIid0ZXh0J1wiXG4gICAgICAgICAgICAgICAgW3BsYWNlSG9sZGVyXT1cIidOb21icmVzJ1wiXG4gICAgICAgICAgICAgICAgW2NvbnRyb2xdPVwiY29kU2VsZkZvcm1TdGVwRm91ci5jb250cm9sc1snaW52b2ljaW5nX25hbWUnXVwiXG4gICAgICAgICAgICAgID48L2lwdC1pbnB1dD5cbiAgICAgICAgICAgICAgPGlwdC1pbnB1dFxuICAgICAgICAgICAgICAgIFtpbnB1dFR5cGVdPVwiJ3RleHQnXCJcbiAgICAgICAgICAgICAgICBbcGxhY2VIb2xkZXJdPVwiJ05vbWJyZXMnXCJcbiAgICAgICAgICAgICAgICBbY29udHJvbF09XCJjb2RTZWxmRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydpbnZvaWNpbmdfQXBlbGxpZG8nXVwiXG4gICAgICAgICAgICAgID48L2lwdC1pbnB1dD5cbiAgICAgICAgICAgICAgPGlwdC1pbnB1dFxuICAgICAgICAgICAgICAgIFtpbnB1dFR5cGVdPVwiJ3RleHQnXCJcbiAgICAgICAgICAgICAgICBbcGxhY2VIb2xkZXJdPVwiJ05vbWJyZXMnXCJcbiAgICAgICAgICAgICAgICBbY29udHJvbF09XCJjb2RTZWxmRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydpbnZvaWNpbmdfZG9jdW1lbnQnXVwiXG4gICAgICAgICAgICAgID48L2lwdC1pbnB1dD5cbiAgICAgICAgICAgICAgPGlwdC1zZWxlY3RcbiAgICAgICAgICAgICAgICBbaW5pdGlhbFZhbHVlXT1cImNvZFNlbGZGb3JtU3RlcEZvdXIuY29udHJvbHNbJ2ludm9pY2luZ19pZFR5cGUnXS52YWx1ZVwiXG4gICAgICAgICAgICAgICAgW2NvbnRyb2xdPVwiY29kU2VsZkZvcm1TdGVwRm91ci5jb250cm9sc1snaW52b2ljaW5nX2lkVHlwZSddXCJcbiAgICAgICAgICAgICAgICBbc2VsZWN0Q29kZV09XCJjb2RTZWxmRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydpbnZvaWNpbmdfaWRUeXBlJ10udmFsdWUgPT09IG51bGwgPyAnVGlwbyBkZSBkb2N1bWVudG8nIDogY29kU2VsZkZvcm1TdGVwRm91ci5jb250cm9sc1snaW52b2ljaW5nX2lkVHlwZSddLnZhbHVlXCJcbiAgICAgICAgICAgICAgICBbaXNSZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbZGF0YV09XCJpZFR5cGVzXCJcbiAgICAgICAgICAgICAgICAoZXZlbnRTZWxlY3QpPVwic2VsZWN0SWRUeXBlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFtkZWZhdWx0VGV4dF09XCInVGlwbyBkZSBkb2N1bWVudG8nXCJcbiAgICAgICAgICAgICAgPjwvaXB0LXNlbGVjdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyX19vcHN0aW9uX19pbnN0YWxhdGlvbnNcIiAqbmdJZj1cInNlbGVjdGVkT3B0aW9uUGF5bWVudHM/LmNvZGUgPT09IDIgJiYgIWlzU2VsZWN0aW9uT3B0aW9uUGF5bWVudHNcIj5cbiAgICAgICAgICA8c3Bhbj5sbGVndWUgYXF1aSAyPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lcl9fb3BzdGlvbl9faW5zdGFsYXRpb25zXCIgKm5nSWY9XCJzZWxlY3RlZE9wdGlvblBheW1lbnRzPy5jb2RlID09PSAzICYmICFpc1NlbGVjdGlvbk9wdGlvblBheW1lbnRzXCI+XG4gICAgICAgICAgPHNwYW4+bGxlZ3VlIGFxdWkgMzwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0+XG5cbiAgICAgIDwhLS0gPHNwYW4gKm5nSWY9XCJjb2RTZWxmRm9ybVN0ZXBPbmUuaW52YWxpZCAmJiBjb2RTZWxmRm9ybVN0ZXBPbmUudG91Y2hlZFwiIGNsYXNzPVwidGV4dC1yZWQtNTAwIGZvbnQtYm9sZCB0ZXh0LWNlbnRlciBtdC0xIHB5LTIgYmctcmVkLTEwMCB3LWZ1bGwgYm9yZGVyLXJvdW5kLXhsXCI+e3sgZXJyb3JNZXNzYWdlIH19PC9zcGFuPiAtLT5cblxuICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXQtMyBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTNcIj5cbiAgICAgIDxidXR0b25cbiAgICAgIHBCdXR0b25cbiAgICAgIGljb249XCJwaSBwaS1hcnJvdy1sZWZ0XCJcbiAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgKGNsaWNrKT1cImJhY2soKVwiXG4gICAgICA+PC9idXR0b24+XG5cblxuICAgICAgPGJ1dHRvblxuICAgICAgcEJ1dHRvblxuICAgICAgaWNvbj1cInBpIHBpLWFycm93LXJpZ2h0XCJcbiAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgKGNsaWNrKT1cIm5leHQoKVwiXG4gICAgICA+PC9idXR0b24+XG4gICAgICA8IS0tIDxidXR0b25cbiAgICAgIHBCdXR0b25cbiAgICAgIGljb249XCJwaSBwaS1hcnJvdy1yaWdodFwiXG4gICAgICAoY2xpY2spPVwic2VuZEZvcm0oKVwiXG4gICAgICA+PC9idXR0b24+IC0tPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2PlxuICA8cHJlPnt7IGNvZFNlbGZGb3JtU3RlcEZvdXIudmFsdWUgfCBqc29uIH19PC9wcmU+XG4gIDxkaXY+XG4gICAgPHByZT57eyBjb2RTZWxmRm9ybVN0ZXBGb3VyLnZhbGlkIHwganNvbiB9fTwvcHJlPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLXNlbGYtZm9ybS1zdGVwLWZvdXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvZC1zZWxmLW1hbmFnZWQvc3RlcHMvY29kLWZvcm0tc3RlcC1mb3VyL2NvZC1zZWxmLWZvcm0tc3RlcC1mb3VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb2Qtc2VsZi1tYW5hZ2VkL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtZm91ci9jb2Qtc2VsZi1mb3JtLXN0ZXAtZm91ci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU9wRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7Ozs7O0FBT3pFLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxtQkFBbUI7SUFxQm5FLFlBQ1UsRUFBZSxFQUNmLGNBQThCLEVBQzlCLGdCQUFrQztRQUcxQyxLQUFLLEVBQUUsQ0FBQztRQUxBLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXRCbEMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFakQsZ0JBQVcsR0FBVSwrQ0FBK0MsQ0FBQztRQUNyRSxZQUFPLEdBQVksS0FBSyxDQUFDO1FBR3pCLDhCQUF5QixHQUFHLEtBQUssQ0FBQztRQUVsQyxtQkFBYyxHQUFRO1lBQ3BCLEVBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFHLElBQUksRUFBRSxl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OzhKQU03QixTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFyYW1ldGVyU2VydmljZSB9IGZyb20gJy4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9wYXJhbWV0ZXJzLXNlcnZpY2UvcGFyYW1ldGVycy5zZXJ2aWNlJztcbmltcG9ydCB7IENvbXBvbmVudCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuLy9pbXBvcnQgUHJpbWVuZ1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5cbi8vIGltcG9ydCBNb2RlbHNcbmltcG9ydCB7IEl3ZWVrRGF5c1JxIH0gZnJvbSAnLi8uLi8uLi8uLi9jb3JlL21vZGVscy9hY2FkZW1pYy9hY2FkZW1pYy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29kU2VsZk1hbmFnZWRTdGVwcyB9IGZyb20gJy4uLy4uL2xvZ2ljL2NvZC1zZWxmLW1hbmFnZWQtc3RlcHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY29kLXNlbGYtZm9ybS1zdGVwLWZvdXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY29kLXNlbGYtZm9ybS1zdGVwLWZvdXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb2Qtc2VsZi1mb3JtLXN0ZXAtZm91ci5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENvZFNlbGZGb3JtU3RlcEZvdXJDb21wb25lbnQgZXh0ZW5kcyBDb2RTZWxmTWFuYWdlZFN0ZXBzIGltcGxlbWVudHMgT25Jbml0IHtcblxuICBAT3V0cHV0KCkgY29tcGxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgbWVzc2FnZUluZm86c3RyaW5nID0gXCJEYXRvcyBkZSBmYWN0dXJhY2lvbiBkZSBhY3VlcmRvIGEgdHUgZWxlY2Npb25cIjtcbiAgdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBjb2RTZWxmRm9ybVN0ZXBGb3VyITpGb3JtR3JvdXA7XG4gIHNlbGVjdGVkT3B0aW9uUGF5bWVudHM/OiBJd2Vla0RheXNScTtcbiAgbWVzc2FnZUFsZXJ0UGxhY2VtZW50VGVzdCA9IGZhbHNlO1xuXG4gIE9wdGlvblBheW1lbnRzOiBhbnlbXT1bXG4gICAge2NvZGU6IDEsIGtleTogJ3NpJywgIG5hbWU6ICdJbnN0YWxhY2lvbmVzJ30sXG4gICAgLy8ge2NvZGU6IDIsIGtleTogJ3BhJywgIG5hbWU6ICdQYWdvIGVuIExpbmVhJ30sXG4gICAgLy8ge2NvZGU6IDMsIGtleTogJ3BzJywgIG5hbWU6ICdUcmFuc2ZlcmVuY2lhJ30sXG4gICAgLy8ge2NvZGU6IDQsIGtleTogJ2VmJywgIG5hbWU6ICdFZmVjdHknfSxcbiAgXTtcbiAgZGlzYWJsZXdlZWtkYXlzOiBib29sZWFuW10gPSBbXTtcbiAgaXNTZWxlY3Rpb25PcHRpb25QYXltZW50cz0gdHJ1ZTtcbiAgaXNFZGl0QmlsbGluZ0RhdGEgPSB0cnVlO1xuICBpZFR5cGVzOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwYXJhbWV0ZXJTZXJ2aWNlOiBQYXJhbWV0ZXJTZXJ2aWNlLFxuICAgIClcbiAge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5pbml0Rm9ybSgpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5nZXRQYXJhbWVudGVycygpO1xuICB9XG4gIGluaXRGb3JtKCl7XG4gICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBGb3VyID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBvcHRpb25zUGF5bWVudHM6WycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgaW52b2ljaW5nX25hbWU6WycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgaW52b2ljaW5nX0FwZWxsaWRvOlsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGludm9pY2luZ19kb2N1bWVudDpbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBpbnZvaWNpbmdfaWRUeXBlOlsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICB9KVxuICB9XG4gIGJhY2soKSB7XG4gICAgLy8gTW92ZXJub3MgYWwgcGFzbyBhbnRlcmlvclxuICAgIGlmICghdGhpcy5pc1NlbGVjdGlvbk9wdGlvblBheW1lbnRzKSB7XG4gICAgICB0aGlzLmlzU2VsZWN0aW9uT3B0aW9uUGF5bWVudHMgPSB0cnVlO1xuICAgIH1lbHNlIGlmKCF0aGlzLmlzU2VsZWN0aW9uT3B0aW9uUGF5bWVudHMgJiYgdGhpcy5zZWxlY3RlZE9wdGlvblBheW1lbnRzPy5jb2RlID09IDEpe1xuICAgICAgdGhpcy5pc0VkaXRCaWxsaW5nRGF0YSA9IHRydWU7XG4gICAgfWVsc2V7XG4gICAgICB0aGlzLmNvbXBsZXRlZC5lbWl0KDIpO1xuICAgIH1cblxuICB9XG5cbiAgZ2V0UGFyYW1lbnRlcnMoKXtcbiAgICB0aGlzLnBhcmFtZXRlclNlcnZpY2UuZ2V0Q2FyZFR5cGVzKCdjb2wnKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICB0aGlzLmlkVHlwZXMgPSByZXNwb25zZS5kYXRhO1xuICAgIH0pO1xuICB9XG5cbiAgc2VuZEZvcm0oKSB7XG4gICAgLy8gdGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgIC8vIGlmICh0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5pbnZhbGlkKSByZXR1cm47XG5cbiAgICBjb25zb2xlLmxvZygnRWplY3V0YSBlbmRwb2ludCcpO1xuICAgIC8vIE1vdmVybm9zIGFsIHBhc28gM1xuICAgIC8vIHRoaXMuY29tcGxldGVkLmVtaXQoNCk7XG4gIH1cblxuICBvblJlamVjdCgpIHtcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmNsZWFyKCdjb25maXJtJyk7XG4gICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gIH1cblxuICBzaG93Q29uZmlybSgpIHtcbiAgICBpZiAoIXRoaXMudmlzaWJsZSkge1xuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IGtleTogJ2NvbmZpcm0nLCBzdGlja3k6IHRydWUsIHNldmVyaXR5OiAnc3VjY2VzcycsIHN1bW1hcnk6ICdDYW4geW91IHNlbmQgbWUgdGhlIHJlcG9ydD8nLCBsaWZlOiAxMDAwMCB9KTtcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RPcGNpb25zUGF5bWVudHMoZXZlOiBJd2Vla0RheXNScSl7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvblBheW1lbnRzID0gZXZlXG4gICAgdGhpcy5pc1NlbGVjdGlvbk9wdGlvblBheW1lbnRzID0gZmFsc2U7XG5cbiAgICBpZiAodGhpcy5zZWxlY3RlZE9wdGlvblBheW1lbnRzICE9PSBudWxsKSB7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcEZvdXIuY29udHJvbHNbJ29wdGlvbnNQYXltZW50cyddLnNldFZhbHVlKHRoaXMuc2VsZWN0ZWRPcHRpb25QYXltZW50cy5jb2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydvcHRpb25zUGF5bWVudHMnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBuZXh0KCl7XG4gICAgaWYgKHRoaXMuaXNTZWxlY3Rpb25PcHRpb25QYXltZW50cykge1xuICAgICAgdGhpcy5pc1NlbGVjdGlvbk9wdGlvblBheW1lbnRzID0gZmFsc2U7XG4gICAgfWVsc2UgaWYodGhpcy5pc1NlbGVjdGlvbk9wdGlvblBheW1lbnRzICYmIHRoaXMuc2VsZWN0ZWRPcHRpb25QYXltZW50cz8uY29kZSA9PSAxKXtcbiAgICAgIHRoaXMuaXNFZGl0QmlsbGluZ0RhdGEgPSBmYWxzZTtcbiAgICB9ZWxzZXtcbiAgICAgIC8vIHRoaXMuY29tcGxldGVkLmVtaXQoMik7XG4gICAgICBjb25zb2xlLmxvZygnc2UgZGViZXJpYSBtb3ZlcicpO1xuICAgIH1cbiAgICBjb25zb2xlLmxvZyh0aGlzLnNlbGVjdGVkT3B0aW9uUGF5bWVudHMpO1xuXG4gIH1cbiAgZWRpdEJpbGxpbmdEYXRhKCl7XG4gICAgdGhpcy5pc0VkaXRCaWxsaW5nRGF0YSA9IGZhbHNlO1xuICB9XG5cbiAgdXBkYXRlRGF0b3NCaWxsaW5nRGF0YSgpe1xuICAgIHRoaXMuaXNFZGl0QmlsbGluZ0RhdGEgPSB0cnVlXG4gIH1cbiAgc2VsZWN0SWRUeXBlKGlkVHlwZTogYW55KSB7XG4gICAgaWYgKGlkVHlwZSAhPT0gJ1RpcG8gZGUgZG9jdW1lbnRvJykge1xuICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydpbnZvaWNpbmdfaWRUeXBlJ10uc2V0VmFsdWUoaWRUeXBlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydpbnZvaWNpbmdfaWRUeXBlJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICB9XG59XG5cbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXItbWFpblwiPlxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZvcm1cIj5cbiAgICA8aDI+RGF0b3MgZGUgRmFjdHVyYWNpb248L2gyPlxuICAgIDxwLXRvYXN0IHBvc2l0aW9uPVwidG9wLWNlbnRlclwiIGtleT1cImNvbmZpcm1cIiAob25DbG9zZSk9XCJvblJlamVjdCgpXCIgW2Jhc2VaSW5kZXhdPVwiMTBcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtbWVzc2FnZSBwVGVtcGxhdGU9XCJtZXNzYWdlXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtc3RhcnRcIiBzdHlsZT1cImZsZXg6IDFcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vcWEuaXB0ZGV2LmNvbS5jby9hc3NldHMvbG9nb3MvcmVhZGluZy5wbmdcIiBzdHlsZT1cIndpZHRoOiA2NXB4O1wiIHNoYXBlPVwiY2lyY2xlXCIgLz5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1ib2xkIHRleHQtOTAwXCI+SmFjb2I8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC1tZWRpdW0gdGV4dC1sZyBteS0zIHRleHQtOTAwXCI+e3sgbWVzc2FnZUluZm8gfX08L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9wLXRvYXN0PlxuICAgIDxpIGNsYXNzPVwicGkgcGktZXhjbGFtYXRpb24tY2lyY2xlIGN1cnNvci1wb2ludGVyIHctYXV0byBtYi00XCIgKGNsaWNrKT1cInNob3dDb25maXJtKClcIiBwVG9vbHRpcD1cIk1hcyBpbmZvLlwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiPjwvaT5cbiAgICA8Zm9ybSBhdXRvY29tcGxldGU9XCJvZmZcIiBbZm9ybUdyb3VwXT1cImNvZFNlbGZGb3JtU3RlcEZvdXJcIiBjbGFzcz1cImdyaWQgbXQtMiBmbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lcl9fYm9keV9fc2VsZWN0IGZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBmbGV4LXdyYXBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lcl9fdHlwZV9fcGF5bWVudHNcIiAqbmdJZj1cImlzU2VsZWN0aW9uT3B0aW9uUGF5bWVudHNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBnYXAtM1wiPlxuICAgICAgICAgICAgPGgzPsK/Y29tbyBxdWllcmVzIHBhZ2FyPzwvaDM+XG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjYXRlZ29yeSBvZiBPcHRpb25QYXltZW50czsgaW5kZXggYXMgaW5kXCIgY2xhc3M9XCJmaWVsZC1jaGVja2JveFwiPlxuICAgICAgICAgICAgICA8cC1yYWRpb0J1dHRvblxuICAgICAgICAgICAgICAgICAgW2lucHV0SWRdPVwiY2F0ZWdvcnkua2V5XCJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJjYXRlZ29yeVwiXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiY2F0ZWdvcnlcIlxuICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZE9wdGlvblBheW1lbnRzXCJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxld2Vla2RheXNbaW5kXVwiXG4gICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0T3BjaW9uc1BheW1lbnRzKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgPjwvcC1yYWRpb0J1dHRvbj5cbiAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiY2F0ZWdvcnkua2V5XCIgY2xhc3M9XCJtbC0yXCI+XG4gICAgICAgICAgICAgICAgICB7eyBjYXRlZ29yeS5uYW1lIH19XG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyX19vcHN0aW9uX19pbnN0YWxhdGlvbnNcIiAqbmdJZj1cInNlbGVjdGVkT3B0aW9uUGF5bWVudHM/LmNvZGUgPT09IDEgJiYgIWlzU2VsZWN0aW9uT3B0aW9uUGF5bWVudHNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyX19pbmZvIGZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIiAqbmdJZj1cImlzRWRpdEJpbGxpbmdEYXRhXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHBCdXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGxhYmVsPVwiXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1vdXRsaW5lZCBwLWJ1dHRvbi1yb3VuZGVkIHctMlwiXG4gICAgICAgICAgICAgIGljb249XCJwaSBwaS1yZWNlaXB0XCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPHN0cm9uZz5uYW1lPC9zdHJvbmc+XG4gICAgICAgICAgICA8c3Bhbj5jYyBkb2N1bWVudDwvc3Bhbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgcEJ1dHRvblxuICAgICAgICAgICAgICBsYWJlbD1cIk1vZGlmaWNhciBEYXRvc1wiXG4gICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiZWRpdEJpbGxpbmdEYXRhKClcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCIhaXNFZGl0QmlsbGluZ0RhdGFcIj5cbiAgICAgICAgICAgIDxoMz5Db21wbGV0YSBsb3MgbnVldm9zIGRhdG9zIHBhcmEgbGEgZW1pc2lvbiBkZSB0dSBmYWN0dXJhPC9oMz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0xIG1kOmdhcC00IHhsOmdhcC04IG0tMSBwLTIgYm9yZGVyLXJvdW5kIGJnLWJsdWUtNTAwIHRleHQtd2hpdGVcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lcl9pY29uIGZsZXggbXItNCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLXN0YXJ0IG10LTFcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWluZm8tY2lyY2xlIGN1cnNvci1wb2ludGVyIHctYXV0byBtYi00XCIgcFRvb2x0aXA9XCJNYXMgaW5mby5cIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIj48L2k+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBjb250YWluZXJfaW5mb19zcGFuIGZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8c3Bhbj5TaSBwcm9wb3JjaW9uYXMgZGF0b3MgZGUgdW4gdGVyY2VybywgY29uZmlybWFzIHF1ZSBsb3MgZGF0b3Mgc29uIGNvcnJlY3RvcyB5IHF1ZSB0aWVuZXMgc3UgY29uc2VudGltaWVudG8gcGFyYSBlbCB1c28gZGUgbGEgaW5mb3JtYWNpb24uIEVzdG9zIGRhdG9zIHNlIHRyYXRhcmFuIGRlIGFjdWVyZG8gYSBudWVzdHJhIDxhIGhyZWY9XCJcIj5EZWNsYXJhY2lvbiBkZSBQcml2YWNpZGFkPC9hPjwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxpcHQtaW5wdXRcbiAgICAgICAgICAgICAgICBbaW5wdXRUeXBlXT1cIid0ZXh0J1wiXG4gICAgICAgICAgICAgICAgW3BsYWNlSG9sZGVyXT1cIidOb21icmVzJ1wiXG4gICAgICAgICAgICAgICAgW2NvbnRyb2xdPVwiY29kU2VsZkZvcm1TdGVwRm91ci5jb250cm9sc1snaW52b2ljaW5nX25hbWUnXVwiXG4gICAgICAgICAgICAgID48L2lwdC1pbnB1dD5cbiAgICAgICAgICAgICAgPGlwdC1pbnB1dFxuICAgICAgICAgICAgICAgIFtpbnB1dFR5cGVdPVwiJ3RleHQnXCJcbiAgICAgICAgICAgICAgICBbcGxhY2VIb2xkZXJdPVwiJ0FwZWxsaWRvJ1wiXG4gICAgICAgICAgICAgICAgW2NvbnRyb2xdPVwiY29kU2VsZkZvcm1TdGVwRm91ci5jb250cm9sc1snaW52b2ljaW5nX0FwZWxsaWRvJ11cIlxuICAgICAgICAgICAgICA+PC9pcHQtaW5wdXQ+XG4gICAgICAgICAgICAgIDxpcHQtc2VsZWN0XG4gICAgICAgICAgICAgIFtpbml0aWFsVmFsdWVdPVwiY29kU2VsZkZvcm1TdGVwRm91ci5jb250cm9sc1snaW52b2ljaW5nX2lkVHlwZSddLnZhbHVlXCJcbiAgICAgICAgICAgICAgW2NvbnRyb2xdPVwiY29kU2VsZkZvcm1TdGVwRm91ci5jb250cm9sc1snaW52b2ljaW5nX2lkVHlwZSddXCJcbiAgICAgICAgICAgICAgW3NlbGVjdENvZGVdPVwiY29kU2VsZkZvcm1TdGVwRm91ci5jb250cm9sc1snaW52b2ljaW5nX2lkVHlwZSddLnZhbHVlID09PSBudWxsID8gJ1RpcG8gZGUgZG9jdW1lbnRvJyA6IGNvZFNlbGZGb3JtU3RlcEZvdXIuY29udHJvbHNbJ2ludm9pY2luZ19pZFR5cGUnXS52YWx1ZVwiXG4gICAgICAgICAgICAgIFtpc1JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICAgICAgICBbZGF0YV09XCJpZFR5cGVzXCJcbiAgICAgICAgICAgICAgKGV2ZW50U2VsZWN0KT1cInNlbGVjdElkVHlwZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgW2RlZmF1bHRUZXh0XT1cIidUaXBvIGRlIGRvY3VtZW50bydcIlxuICAgICAgICAgICAgPjwvaXB0LXNlbGVjdD5cbiAgICAgICAgICAgICAgPGlwdC1pbnB1dFxuICAgICAgICAgICAgICAgIFtpbnB1dFR5cGVdPVwiJ3RleHQnXCJcbiAgICAgICAgICAgICAgICBbcGxhY2VIb2xkZXJdPVwiJ0RvY3VtZW50bydcIlxuICAgICAgICAgICAgICAgIFtjb250cm9sXT1cImNvZFNlbGZGb3JtU3RlcEZvdXIuY29udHJvbHNbJ2ludm9pY2luZ19kb2N1bWVudCddXCJcbiAgICAgICAgICAgICAgPjwvaXB0LWlucHV0PlxuXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lcl9fb3BzdGlvbl9faW5zdGFsYXRpb25zXCIgKm5nSWY9XCJzZWxlY3RlZE9wdGlvblBheW1lbnRzPy5jb2RlID09PSAyICYmICFpc1NlbGVjdGlvbk9wdGlvblBheW1lbnRzXCI+XG4gICAgICAgICAgPHNwYW4+bGxlZ3VlIGFxdWkgMjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJfX29wc3Rpb25fX2luc3RhbGF0aW9uc1wiICpuZ0lmPVwic2VsZWN0ZWRPcHRpb25QYXltZW50cz8uY29kZSA9PT0gMyAmJiAhaXNTZWxlY3Rpb25PcHRpb25QYXltZW50c1wiPlxuICAgICAgICAgIDxzcGFuPmxsZWd1ZSBhcXVpIDM8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuXG4gICAgICA8IS0tIDxzcGFuICpuZ0lmPVwiY29kU2VsZkZvcm1TdGVwT25lLmludmFsaWQgJiYgY29kU2VsZkZvcm1TdGVwT25lLnRvdWNoZWRcIiBjbGFzcz1cInRleHQtcmVkLTUwMCBmb250LWJvbGQgdGV4dC1jZW50ZXIgbXQtMSBweS0yIGJnLXJlZC0xMDAgdy1mdWxsIGJvcmRlci1yb3VuZC14bFwiPnt7IGVycm9yTWVzc2FnZSB9fTwvc3Bhbj4gLS0+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG10LTMgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICBwQnV0dG9uXG4gICAgICBpY29uPVwicGkgcGktYXJyb3ctbGVmdFwiXG4gICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgIChjbGljayk9XCJiYWNrKClcIlxuICAgICAgPjwvYnV0dG9uPlxuXG5cbiAgICAgIDxidXR0b24gKm5nSWY9XCIhY29kU2VsZkZvcm1TdGVwRm91ci52YWxpZCAmJiBpc0VkaXRCaWxsaW5nRGF0YVwiXG4gICAgICAgIHBCdXR0b25cbiAgICAgICAgaWNvbj1cInBpIHBpLWFycm93LXJpZ2h0XCJcbiAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgIChjbGljayk9XCJuZXh0KClcIlxuICAgICAgPjwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFpc0VkaXRCaWxsaW5nRGF0YVwiXG4gICAgICAgIHBCdXR0b25cbiAgICAgICAgbGFiZWw9XCJDb250aW51YXJcIlxuICAgICAgICBpY29uPVwicGkgcGktYXJyb3ctcmlnaHRcIlxuICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgKGNsaWNrKT1cIm5leHQoKVwiPlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxidXR0b24gKm5nSWY9XCJjb2RTZWxmRm9ybVN0ZXBGb3VyLnZhbGlkXCJcbiAgICAgICAgcEJ1dHRvblxuICAgICAgICBsYWJlbD1cIkd1YXJkYXJcIlxuICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgKGNsaWNrKT1cInNlbmRGb3JtKClcIlxuICAgICAgPjwvYnV0dG9uPlxuXG4gICAgICA8IS0tIDxidXR0b25cbiAgICAgIHBCdXR0b25cbiAgICAgIGljb249XCJwaSBwaS1hcnJvdy1yaWdodFwiXG4gICAgICAoY2xpY2spPVwic2VuZEZvcm0oKVwiXG4gICAgICA+PC9idXR0b24+IC0tPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2PlxuICA8cHJlPnt7IGNvZFNlbGZGb3JtU3RlcEZvdXIudmFsdWUgfCBqc29uIH19PC9wcmU+XG4gIDxkaXY+XG4gICAgPHByZT57eyBjb2RTZWxmRm9ybVN0ZXBGb3VyLnZhbGlkIHwganNvbiB9fTwvcHJlPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -7499,10 +7499,14 @@ class CodSelfFormStepFourComponent extends CodSelfManagedSteps {
7499
7499
  });
7500
7500
  }
7501
7501
  back() {
7502
+ var _a;
7502
7503
  // Movernos al paso anterior
7503
7504
  if (!this.isSelectionOptionPayments) {
7504
7505
  this.isSelectionOptionPayments = true;
7505
7506
  }
7507
+ else if (!this.isSelectionOptionPayments && ((_a = this.selectedOptionPayments) === null || _a === void 0 ? void 0 : _a.code) == 1) {
7508
+ this.isEditBillingData = true;
7509
+ }
7506
7510
  else {
7507
7511
  this.completed.emit(2);
7508
7512
  }
@@ -7515,8 +7519,9 @@ class CodSelfFormStepFourComponent extends CodSelfManagedSteps {
7515
7519
  sendForm() {
7516
7520
  // this.codSelfFormStepTwo.markAllAsTouched();
7517
7521
  // if (this.codSelfFormStepTwo.invalid) return;
7522
+ console.log('Ejecuta endpoint');
7518
7523
  // Movernos al paso 3
7519
- this.completed.emit(4);
7524
+ // this.completed.emit(4);
7520
7525
  }
7521
7526
  onReject() {
7522
7527
  this.messageService.clear('confirm');
@@ -7531,8 +7536,6 @@ class CodSelfFormStepFourComponent extends CodSelfManagedSteps {
7531
7536
  selectOpcionsPayments(eve) {
7532
7537
  this.selectedOptionPayments = eve;
7533
7538
  this.isSelectionOptionPayments = false;
7534
- console.log(this.selectedOptionPayments);
7535
- console.log(this.selectedOptionPayments.code);
7536
7539
  if (this.selectedOptionPayments !== null) {
7537
7540
  this.codSelfFormStepFour.controls['optionsPayments'].setValue(this.selectedOptionPayments.code);
7538
7541
  }
@@ -7541,10 +7544,13 @@ class CodSelfFormStepFourComponent extends CodSelfManagedSteps {
7541
7544
  }
7542
7545
  }
7543
7546
  next() {
7544
- console.log('isSelectionOptionPayments', this.isSelectionOptionPayments);
7547
+ var _a;
7545
7548
  if (this.isSelectionOptionPayments) {
7546
7549
  this.isSelectionOptionPayments = false;
7547
7550
  }
7551
+ else if (this.isSelectionOptionPayments && ((_a = this.selectedOptionPayments) === null || _a === void 0 ? void 0 : _a.code) == 1) {
7552
+ this.isEditBillingData = false;
7553
+ }
7548
7554
  else {
7549
7555
  // this.completed.emit(2);
7550
7556
  console.log('se deberia mover');
@@ -7554,6 +7560,9 @@ class CodSelfFormStepFourComponent extends CodSelfManagedSteps {
7554
7560
  editBillingData() {
7555
7561
  this.isEditBillingData = false;
7556
7562
  }
7563
+ updateDatosBillingData() {
7564
+ this.isEditBillingData = true;
7565
+ }
7557
7566
  selectIdType(idType) {
7558
7567
  if (idType !== 'Tipo de documento') {
7559
7568
  this.codSelfFormStepFour.controls['invoicing_idType'].setValue(idType);
@@ -7564,10 +7573,10 @@ class CodSelfFormStepFourComponent extends CodSelfManagedSteps {
7564
7573
  }
7565
7574
  }
7566
7575
  CodSelfFormStepFourComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodSelfFormStepFourComponent, deps: [{ token: i1$1.FormBuilder }, { token: i2$1.MessageService }, { token: ParameterService }], target: i0.ɵɵFactoryTarget.Component });
7567
- CodSelfFormStepFourComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CodSelfFormStepFourComponent, selector: "app-cod-self-form-step-four", outputs: { completed: "completed" }, usesInheritance: true, ngImport: i0, template: "<div class=\"container-main\">\n <div class=\"container-form\">\n <h2>Datos de Facturacion</h2>\n <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n <ng-template let-message pTemplate=\"message\">\n <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n <div class=\"flex align-items-center gap-2\">\n <img src=\"https://qa.iptdev.com.co/assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n <span class=\"font-bold text-900\">Jacob</span>\n </div>\n <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n </div>\n </ng-template>\n </p-toast>\n <i class=\"pi pi-exclamation-circle cursor-pointer w-auto mb-4\" (click)=\"showConfirm()\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n <form autocomplete=\"off\" [formGroup]=\"codSelfFormStepFour\" class=\"grid mt-2 flex flex-column align-items-center\">\n <div class=\"container__body__select flex justify-content-center flex-wrap\">\n <div class=\"container__type__payments\" *ngIf=\"isSelectionOptionPayments\">\n <div class=\"flex flex-column gap-3\">\n <h3>\u00BFcomo quieres pagar?</h3>\n <div *ngFor=\"let category of OptionPayments; index as ind\" class=\"field-checkbox\">\n <p-radioButton\n [inputId]=\"category.key\"\n name=\"category\"\n [value]=\"category\"\n [(ngModel)]=\"selectedOptionPayments\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"selectOpcionsPayments($event)\"\n ></p-radioButton>\n <label [for]=\"category.key\" class=\"ml-2\">\n {{ category.name }}\n </label>\n </div>\n\n </div>\n </div>\n\n <div class=\"container__opstion__instalations\" *ngIf=\"selectedOptionPayments?.code === 1 && !isSelectionOptionPayments\">\n <div class=\"container__info flex flex-column align-items-center justify-content-center\" *ngIf=\"isEditBillingData\">\n <button\n pButton\n type=\"button\"\n label=\"\"\n class=\"p-button-outlined p-button-rounded w-2\"\n icon=\"pi pi-receipt\"\n [disabled]=\"true\">\n </button>\n <strong>name</strong>\n <span>cc document</span>\n <button\n pButton\n label=\"Modificar Datos\"\n type=\"submit\"\n (click)=\"editBillingData()\"\n ></button>\n </div>\n <div *ngIf=\"!isEditBillingData\">\n <h3>Completa los nuevos datos para la emision de tu factura</h3>\n <div class=\"flex gap-1 md:gap-4 xl:gap-8 m-1 p-2 border-round bg-blue-500 text-white\">\n <div class=\"container_icon flex mr-4 justify-content-center align-items-start mt-1\">\n <i class=\"pi pi-info-circle cursor-pointer w-auto mb-4\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n </div>\n <div class=\"flex flex-column container_info_span flex align-items-center justify-content-center\">\n <span>Si proporcionas datos de un tercero, confirmas que los datos son correctos y que tienes su consentimiento para el uso de la informacion. Estos datos se trataran de acuerdo a nuestra <a href=\"\">Declaracion de Privacidad</a></span>\n </div>\n </div>\n <div>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codSelfFormStepFour.controls['invoicing_name']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codSelfFormStepFour.controls['invoicing_Apellido']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codSelfFormStepFour.controls['invoicing_document']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codSelfFormStepFour.controls['invoicing_idType'].value\"\n [control]=\"codSelfFormStepFour.controls['invoicing_idType']\"\n [selectCode]=\"codSelfFormStepFour.controls['invoicing_idType'].value === null ? 'Tipo de documento' : codSelfFormStepFour.controls['invoicing_idType'].value\"\n [isRequired]=\"true\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdType($event)\"\n [defaultText]=\"'Tipo de documento'\"\n ></ipt-select>\n </div>\n </div>\n\n </div>\n <div class=\"container__opstion__instalations\" *ngIf=\"selectedOptionPayments?.code === 2 && !isSelectionOptionPayments\">\n <span>llegue aqui 2</span>\n </div>\n <div class=\"container__opstion__instalations\" *ngIf=\"selectedOptionPayments?.code === 3 && !isSelectionOptionPayments\">\n <span>llegue aqui 3</span>\n </div>\n </div>\n </form>\n\n <!-- <span *ngIf=\"codSelfFormStepOne.invalid && codSelfFormStepOne.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span> -->\n\n <div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n <button\n pButton\n icon=\"pi pi-arrow-left\"\n type=\"submit\"\n (click)=\"back()\"\n ></button>\n\n\n <button\n pButton\n icon=\"pi pi-arrow-right\"\n type=\"submit\"\n (click)=\"next()\"\n ></button>\n <!-- <button\n pButton\n icon=\"pi pi-arrow-right\"\n (click)=\"sendForm()\"\n ></button> -->\n </div>\n </div>\n</div>\n\n<div>\n <pre>{{ codSelfFormStepFour.value | json }}</pre>\n <div>\n <pre>{{ codSelfFormStepFour.valid | json }}</pre>\n </div>\n</div>\n", styles: [".container-form{margin:5%;border-radius:6px;border:1px solid #2563eb;box-shadow:#3c40434d 0 1px 2px,#3c404326 0 2px 6px 2px;padding:1rem}.error-message{font-size:x-small;color:red}:host ::ng-deep .p-toast{width:20rem!important}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: InputComponent, selector: "ipt-input", inputs: ["inputType", "placeHolder", "validateText", "withPipe", "list", "iconUrl", "control", "prefix", "thousands", "decimal", "disabledSel"], outputs: ["dateSelected"] }, { kind: "component", type: SelectComponent, selector: "ipt-select", inputs: ["isRequired", "data", "defaultText", "selectCode", "disabledSel", "initialValue", "control"], outputs: ["eventSelect"] }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i7$2.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "fitContent", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7$1.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i9.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "directive", type: i2$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i14.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "pipe", type: i1.JsonPipe, name: "json" }] });
7576
+ CodSelfFormStepFourComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CodSelfFormStepFourComponent, selector: "app-cod-self-form-step-four", outputs: { completed: "completed" }, usesInheritance: true, ngImport: i0, template: "<div class=\"container-main\">\n <div class=\"container-form\">\n <h2>Datos de Facturacion</h2>\n <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n <ng-template let-message pTemplate=\"message\">\n <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n <div class=\"flex align-items-center gap-2\">\n <img src=\"https://qa.iptdev.com.co/assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n <span class=\"font-bold text-900\">Jacob</span>\n </div>\n <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n </div>\n </ng-template>\n </p-toast>\n <i class=\"pi pi-exclamation-circle cursor-pointer w-auto mb-4\" (click)=\"showConfirm()\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n <form autocomplete=\"off\" [formGroup]=\"codSelfFormStepFour\" class=\"grid mt-2 flex flex-column align-items-center\">\n <div class=\"container__body__select flex justify-content-center flex-wrap\">\n <div class=\"container__type__payments\" *ngIf=\"isSelectionOptionPayments\">\n <div class=\"flex flex-column gap-3\">\n <h3>\u00BFcomo quieres pagar?</h3>\n <div *ngFor=\"let category of OptionPayments; index as ind\" class=\"field-checkbox\">\n <p-radioButton\n [inputId]=\"category.key\"\n name=\"category\"\n [value]=\"category\"\n [(ngModel)]=\"selectedOptionPayments\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"selectOpcionsPayments($event)\"\n ></p-radioButton>\n <label [for]=\"category.key\" class=\"ml-2\">\n {{ category.name }}\n </label>\n </div>\n\n </div>\n </div>\n\n <div class=\"container__opstion__instalations\" *ngIf=\"selectedOptionPayments?.code === 1 && !isSelectionOptionPayments\">\n <div class=\"container__info flex flex-column align-items-center justify-content-center\" *ngIf=\"isEditBillingData\">\n <button\n pButton\n type=\"button\"\n label=\"\"\n class=\"p-button-outlined p-button-rounded w-2\"\n icon=\"pi pi-receipt\"\n [disabled]=\"true\">\n </button>\n <strong>name</strong>\n <span>cc document</span>\n <button\n pButton\n label=\"Modificar Datos\"\n type=\"submit\"\n (click)=\"editBillingData()\"\n ></button>\n </div>\n <div *ngIf=\"!isEditBillingData\">\n <h3>Completa los nuevos datos para la emision de tu factura</h3>\n <div class=\"flex gap-1 md:gap-4 xl:gap-8 m-1 p-2 border-round bg-blue-500 text-white\">\n <div class=\"container_icon flex mr-4 justify-content-center align-items-start mt-1\">\n <i class=\"pi pi-info-circle cursor-pointer w-auto mb-4\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n </div>\n <div class=\"flex flex-column container_info_span flex align-items-center justify-content-center\">\n <span>Si proporcionas datos de un tercero, confirmas que los datos son correctos y que tienes su consentimiento para el uso de la informacion. Estos datos se trataran de acuerdo a nuestra <a href=\"\">Declaracion de Privacidad</a></span>\n </div>\n </div>\n <div>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codSelfFormStepFour.controls['invoicing_name']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Apellido'\"\n [control]=\"codSelfFormStepFour.controls['invoicing_Apellido']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codSelfFormStepFour.controls['invoicing_idType'].value\"\n [control]=\"codSelfFormStepFour.controls['invoicing_idType']\"\n [selectCode]=\"codSelfFormStepFour.controls['invoicing_idType'].value === null ? 'Tipo de documento' : codSelfFormStepFour.controls['invoicing_idType'].value\"\n [isRequired]=\"true\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdType($event)\"\n [defaultText]=\"'Tipo de documento'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Documento'\"\n [control]=\"codSelfFormStepFour.controls['invoicing_document']\"\n ></ipt-input>\n\n </div>\n </div>\n\n </div>\n <div class=\"container__opstion__instalations\" *ngIf=\"selectedOptionPayments?.code === 2 && !isSelectionOptionPayments\">\n <span>llegue aqui 2</span>\n </div>\n <div class=\"container__opstion__instalations\" *ngIf=\"selectedOptionPayments?.code === 3 && !isSelectionOptionPayments\">\n <span>llegue aqui 3</span>\n </div>\n </div>\n </form>\n\n <!-- <span *ngIf=\"codSelfFormStepOne.invalid && codSelfFormStepOne.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span> -->\n\n <div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n <button\n pButton\n icon=\"pi pi-arrow-left\"\n type=\"submit\"\n (click)=\"back()\"\n ></button>\n\n\n <button *ngIf=\"!codSelfFormStepFour.valid && isEditBillingData\"\n pButton\n icon=\"pi pi-arrow-right\"\n type=\"submit\"\n (click)=\"next()\"\n ></button>\n <button *ngIf=\"!isEditBillingData\"\n pButton\n label=\"Continuar\"\n icon=\"pi pi-arrow-right\"\n type=\"submit\"\n (click)=\"next()\">\n </button>\n\n <button *ngIf=\"codSelfFormStepFour.valid\"\n pButton\n label=\"Guardar\"\n type=\"submit\"\n (click)=\"sendForm()\"\n ></button>\n\n <!-- <button\n pButton\n icon=\"pi pi-arrow-right\"\n (click)=\"sendForm()\"\n ></button> -->\n </div>\n </div>\n</div>\n\n<div>\n <pre>{{ codSelfFormStepFour.value | json }}</pre>\n <div>\n <pre>{{ codSelfFormStepFour.valid | json }}</pre>\n </div>\n</div>\n", styles: [".container-form{margin:5%;border-radius:6px;border:1px solid #2563eb;box-shadow:#3c40434d 0 1px 2px,#3c404326 0 2px 6px 2px;padding:1rem}.error-message{font-size:x-small;color:red}:host ::ng-deep .p-toast{width:20rem!important}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: InputComponent, selector: "ipt-input", inputs: ["inputType", "placeHolder", "validateText", "withPipe", "list", "iconUrl", "control", "prefix", "thousands", "decimal", "disabledSel"], outputs: ["dateSelected"] }, { kind: "component", type: SelectComponent, selector: "ipt-select", inputs: ["isRequired", "data", "defaultText", "selectCode", "disabledSel", "initialValue", "control"], outputs: ["eventSelect"] }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i7$2.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "fitContent", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7$1.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i9.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "directive", type: i2$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i14.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "pipe", type: i1.JsonPipe, name: "json" }] });
7568
7577
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodSelfFormStepFourComponent, decorators: [{
7569
7578
  type: Component,
7570
- args: [{ selector: 'app-cod-self-form-step-four', template: "<div class=\"container-main\">\n <div class=\"container-form\">\n <h2>Datos de Facturacion</h2>\n <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n <ng-template let-message pTemplate=\"message\">\n <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n <div class=\"flex align-items-center gap-2\">\n <img src=\"https://qa.iptdev.com.co/assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n <span class=\"font-bold text-900\">Jacob</span>\n </div>\n <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n </div>\n </ng-template>\n </p-toast>\n <i class=\"pi pi-exclamation-circle cursor-pointer w-auto mb-4\" (click)=\"showConfirm()\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n <form autocomplete=\"off\" [formGroup]=\"codSelfFormStepFour\" class=\"grid mt-2 flex flex-column align-items-center\">\n <div class=\"container__body__select flex justify-content-center flex-wrap\">\n <div class=\"container__type__payments\" *ngIf=\"isSelectionOptionPayments\">\n <div class=\"flex flex-column gap-3\">\n <h3>\u00BFcomo quieres pagar?</h3>\n <div *ngFor=\"let category of OptionPayments; index as ind\" class=\"field-checkbox\">\n <p-radioButton\n [inputId]=\"category.key\"\n name=\"category\"\n [value]=\"category\"\n [(ngModel)]=\"selectedOptionPayments\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"selectOpcionsPayments($event)\"\n ></p-radioButton>\n <label [for]=\"category.key\" class=\"ml-2\">\n {{ category.name }}\n </label>\n </div>\n\n </div>\n </div>\n\n <div class=\"container__opstion__instalations\" *ngIf=\"selectedOptionPayments?.code === 1 && !isSelectionOptionPayments\">\n <div class=\"container__info flex flex-column align-items-center justify-content-center\" *ngIf=\"isEditBillingData\">\n <button\n pButton\n type=\"button\"\n label=\"\"\n class=\"p-button-outlined p-button-rounded w-2\"\n icon=\"pi pi-receipt\"\n [disabled]=\"true\">\n </button>\n <strong>name</strong>\n <span>cc document</span>\n <button\n pButton\n label=\"Modificar Datos\"\n type=\"submit\"\n (click)=\"editBillingData()\"\n ></button>\n </div>\n <div *ngIf=\"!isEditBillingData\">\n <h3>Completa los nuevos datos para la emision de tu factura</h3>\n <div class=\"flex gap-1 md:gap-4 xl:gap-8 m-1 p-2 border-round bg-blue-500 text-white\">\n <div class=\"container_icon flex mr-4 justify-content-center align-items-start mt-1\">\n <i class=\"pi pi-info-circle cursor-pointer w-auto mb-4\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n </div>\n <div class=\"flex flex-column container_info_span flex align-items-center justify-content-center\">\n <span>Si proporcionas datos de un tercero, confirmas que los datos son correctos y que tienes su consentimiento para el uso de la informacion. Estos datos se trataran de acuerdo a nuestra <a href=\"\">Declaracion de Privacidad</a></span>\n </div>\n </div>\n <div>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codSelfFormStepFour.controls['invoicing_name']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codSelfFormStepFour.controls['invoicing_Apellido']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codSelfFormStepFour.controls['invoicing_document']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codSelfFormStepFour.controls['invoicing_idType'].value\"\n [control]=\"codSelfFormStepFour.controls['invoicing_idType']\"\n [selectCode]=\"codSelfFormStepFour.controls['invoicing_idType'].value === null ? 'Tipo de documento' : codSelfFormStepFour.controls['invoicing_idType'].value\"\n [isRequired]=\"true\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdType($event)\"\n [defaultText]=\"'Tipo de documento'\"\n ></ipt-select>\n </div>\n </div>\n\n </div>\n <div class=\"container__opstion__instalations\" *ngIf=\"selectedOptionPayments?.code === 2 && !isSelectionOptionPayments\">\n <span>llegue aqui 2</span>\n </div>\n <div class=\"container__opstion__instalations\" *ngIf=\"selectedOptionPayments?.code === 3 && !isSelectionOptionPayments\">\n <span>llegue aqui 3</span>\n </div>\n </div>\n </form>\n\n <!-- <span *ngIf=\"codSelfFormStepOne.invalid && codSelfFormStepOne.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span> -->\n\n <div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n <button\n pButton\n icon=\"pi pi-arrow-left\"\n type=\"submit\"\n (click)=\"back()\"\n ></button>\n\n\n <button\n pButton\n icon=\"pi pi-arrow-right\"\n type=\"submit\"\n (click)=\"next()\"\n ></button>\n <!-- <button\n pButton\n icon=\"pi pi-arrow-right\"\n (click)=\"sendForm()\"\n ></button> -->\n </div>\n </div>\n</div>\n\n<div>\n <pre>{{ codSelfFormStepFour.value | json }}</pre>\n <div>\n <pre>{{ codSelfFormStepFour.valid | json }}</pre>\n </div>\n</div>\n", styles: [".container-form{margin:5%;border-radius:6px;border:1px solid #2563eb;box-shadow:#3c40434d 0 1px 2px,#3c404326 0 2px 6px 2px;padding:1rem}.error-message{font-size:x-small;color:red}:host ::ng-deep .p-toast{width:20rem!important}\n"] }]
7579
+ args: [{ selector: 'app-cod-self-form-step-four', template: "<div class=\"container-main\">\n <div class=\"container-form\">\n <h2>Datos de Facturacion</h2>\n <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n <ng-template let-message pTemplate=\"message\">\n <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n <div class=\"flex align-items-center gap-2\">\n <img src=\"https://qa.iptdev.com.co/assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n <span class=\"font-bold text-900\">Jacob</span>\n </div>\n <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n </div>\n </ng-template>\n </p-toast>\n <i class=\"pi pi-exclamation-circle cursor-pointer w-auto mb-4\" (click)=\"showConfirm()\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n <form autocomplete=\"off\" [formGroup]=\"codSelfFormStepFour\" class=\"grid mt-2 flex flex-column align-items-center\">\n <div class=\"container__body__select flex justify-content-center flex-wrap\">\n <div class=\"container__type__payments\" *ngIf=\"isSelectionOptionPayments\">\n <div class=\"flex flex-column gap-3\">\n <h3>\u00BFcomo quieres pagar?</h3>\n <div *ngFor=\"let category of OptionPayments; index as ind\" class=\"field-checkbox\">\n <p-radioButton\n [inputId]=\"category.key\"\n name=\"category\"\n [value]=\"category\"\n [(ngModel)]=\"selectedOptionPayments\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"selectOpcionsPayments($event)\"\n ></p-radioButton>\n <label [for]=\"category.key\" class=\"ml-2\">\n {{ category.name }}\n </label>\n </div>\n\n </div>\n </div>\n\n <div class=\"container__opstion__instalations\" *ngIf=\"selectedOptionPayments?.code === 1 && !isSelectionOptionPayments\">\n <div class=\"container__info flex flex-column align-items-center justify-content-center\" *ngIf=\"isEditBillingData\">\n <button\n pButton\n type=\"button\"\n label=\"\"\n class=\"p-button-outlined p-button-rounded w-2\"\n icon=\"pi pi-receipt\"\n [disabled]=\"true\">\n </button>\n <strong>name</strong>\n <span>cc document</span>\n <button\n pButton\n label=\"Modificar Datos\"\n type=\"submit\"\n (click)=\"editBillingData()\"\n ></button>\n </div>\n <div *ngIf=\"!isEditBillingData\">\n <h3>Completa los nuevos datos para la emision de tu factura</h3>\n <div class=\"flex gap-1 md:gap-4 xl:gap-8 m-1 p-2 border-round bg-blue-500 text-white\">\n <div class=\"container_icon flex mr-4 justify-content-center align-items-start mt-1\">\n <i class=\"pi pi-info-circle cursor-pointer w-auto mb-4\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n </div>\n <div class=\"flex flex-column container_info_span flex align-items-center justify-content-center\">\n <span>Si proporcionas datos de un tercero, confirmas que los datos son correctos y que tienes su consentimiento para el uso de la informacion. Estos datos se trataran de acuerdo a nuestra <a href=\"\">Declaracion de Privacidad</a></span>\n </div>\n </div>\n <div>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codSelfFormStepFour.controls['invoicing_name']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Apellido'\"\n [control]=\"codSelfFormStepFour.controls['invoicing_Apellido']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codSelfFormStepFour.controls['invoicing_idType'].value\"\n [control]=\"codSelfFormStepFour.controls['invoicing_idType']\"\n [selectCode]=\"codSelfFormStepFour.controls['invoicing_idType'].value === null ? 'Tipo de documento' : codSelfFormStepFour.controls['invoicing_idType'].value\"\n [isRequired]=\"true\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdType($event)\"\n [defaultText]=\"'Tipo de documento'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Documento'\"\n [control]=\"codSelfFormStepFour.controls['invoicing_document']\"\n ></ipt-input>\n\n </div>\n </div>\n\n </div>\n <div class=\"container__opstion__instalations\" *ngIf=\"selectedOptionPayments?.code === 2 && !isSelectionOptionPayments\">\n <span>llegue aqui 2</span>\n </div>\n <div class=\"container__opstion__instalations\" *ngIf=\"selectedOptionPayments?.code === 3 && !isSelectionOptionPayments\">\n <span>llegue aqui 3</span>\n </div>\n </div>\n </form>\n\n <!-- <span *ngIf=\"codSelfFormStepOne.invalid && codSelfFormStepOne.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span> -->\n\n <div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n <button\n pButton\n icon=\"pi pi-arrow-left\"\n type=\"submit\"\n (click)=\"back()\"\n ></button>\n\n\n <button *ngIf=\"!codSelfFormStepFour.valid && isEditBillingData\"\n pButton\n icon=\"pi pi-arrow-right\"\n type=\"submit\"\n (click)=\"next()\"\n ></button>\n <button *ngIf=\"!isEditBillingData\"\n pButton\n label=\"Continuar\"\n icon=\"pi pi-arrow-right\"\n type=\"submit\"\n (click)=\"next()\">\n </button>\n\n <button *ngIf=\"codSelfFormStepFour.valid\"\n pButton\n label=\"Guardar\"\n type=\"submit\"\n (click)=\"sendForm()\"\n ></button>\n\n <!-- <button\n pButton\n icon=\"pi pi-arrow-right\"\n (click)=\"sendForm()\"\n ></button> -->\n </div>\n </div>\n</div>\n\n<div>\n <pre>{{ codSelfFormStepFour.value | json }}</pre>\n <div>\n <pre>{{ codSelfFormStepFour.valid | json }}</pre>\n </div>\n</div>\n", styles: [".container-form{margin:5%;border-radius:6px;border:1px solid #2563eb;box-shadow:#3c40434d 0 1px 2px,#3c404326 0 2px 6px 2px;padding:1rem}.error-message{font-size:x-small;color:red}:host ::ng-deep .p-toast{width:20rem!important}\n"] }]
7571
7580
  }], ctorParameters: function () { return [{ type: i1$1.FormBuilder }, { type: i2$1.MessageService }, { type: ParameterService }]; }, propDecorators: { completed: [{
7572
7581
  type: Output
7573
7582
  }] } });