@litigiovirtual/ius-design-components 1.0.228 → 1.0.229
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/avatar-v2/avatar-v2.component.mjs +74 -0
- package/esm2022/lib/avatar-v2/index.mjs +2 -0
- package/esm2022/lib/support-panel/support-panel.component.mjs +3 -3
- package/esm2022/public-api.mjs +2 -2
- package/fesm2022/litigiovirtual-ius-design-components.mjs +52 -76
- package/fesm2022/litigiovirtual-ius-design-components.mjs.map +1 -1
- package/lib/avatar-v2/avatar-v2.component.d.ts +23 -0
- package/lib/avatar-v2/index.d.ts +1 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -1
- package/esm2022/lib/create-ticket/create-ticket.component.mjs +0 -99
- package/esm2022/lib/create-ticket/index.mjs +0 -2
- package/lib/create-ticket/create-ticket.component.d.ts +0 -57
- package/lib/create-ticket/index.d.ts +0 -1
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export type AvatarV2Size = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';
|
|
4
|
+
export type AvatarV2Shape = 'circle' | 'square';
|
|
5
|
+
export declare class AvatarV2Component implements OnChanges {
|
|
6
|
+
imageUrl?: string;
|
|
7
|
+
name?: string;
|
|
8
|
+
size: AvatarV2Size;
|
|
9
|
+
shape: AvatarV2Shape;
|
|
10
|
+
showEditButton: boolean;
|
|
11
|
+
backgroundColor?: string;
|
|
12
|
+
fallbackIconName: string;
|
|
13
|
+
editClicked: EventEmitter<void>;
|
|
14
|
+
initials: string;
|
|
15
|
+
get containerStyle(): {
|
|
16
|
+
[key: string]: string;
|
|
17
|
+
};
|
|
18
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
19
|
+
onEditClick(event: MouseEvent): void;
|
|
20
|
+
private extractInitials;
|
|
21
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AvatarV2Component, never>;
|
|
22
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AvatarV2Component, "ius-avatar-v2", never, { "imageUrl": { "alias": "imageUrl"; "required": false; }; "name": { "alias": "name"; "required": false; }; "size": { "alias": "size"; "required": false; }; "shape": { "alias": "shape"; "required": false; }; "showEditButton": { "alias": "showEditButton"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; "fallbackIconName": { "alias": "fallbackIconName"; "required": false; }; }, { "editClicked": "editClicked"; }, never, never, true, never>;
|
|
23
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './avatar-v2.component';
|
package/package.json
CHANGED
package/public-api.d.ts
CHANGED
|
@@ -95,6 +95,6 @@ export * from './lib/support-panel';
|
|
|
95
95
|
export * from './lib/loading-component-dynamic';
|
|
96
96
|
export * from './lib/page-not-found';
|
|
97
97
|
export * from './lib/empty-list';
|
|
98
|
-
export * from './lib/
|
|
98
|
+
export * from './lib/avatar-v2';
|
|
99
99
|
export * from './lib/directives/popover.directive';
|
|
100
100
|
export * from './lib/directives/infinite-scroll.directive';
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { ButtonDynamicComponent } from '../button-dynamic/button-dynamic.component';
|
|
4
|
-
import { ButtonStandardSecondaryComponent } from '../button-standard-secondary/button-standard-secondary.component';
|
|
5
|
-
import { DrawerContainerRightComponent } from '../drawer-container-right/drawer-container-right.component';
|
|
6
|
-
import { SectionCollapseDrawerParentComponent } from '../section-collapse-drawer-parent/section-collapse-drawer-parent.component';
|
|
7
|
-
import { InputSelectComponent } from '../input-select/input-select.component';
|
|
8
|
-
import { InputTextfieldComponent } from '../input-textfield/input-textfield.component';
|
|
9
|
-
import { OptionComponent } from '../option/option.component';
|
|
10
|
-
import { InputLargeComponent } from '../input-large/input-large.component';
|
|
11
|
-
import * as i0 from "@angular/core";
|
|
12
|
-
/**
|
|
13
|
-
* Dumb component. Solo UI del drawer "Crear Ticket".
|
|
14
|
-
*
|
|
15
|
-
* App padre provee tipos/razones (que vienen de su API), recibe el evento
|
|
16
|
-
* submitTicket con el payload, y maneja el loading + resultado.
|
|
17
|
-
*
|
|
18
|
-
* Uso:
|
|
19
|
-
* <ius-create-ticket
|
|
20
|
-
* [tipos]="ticketTypes"
|
|
21
|
-
* [razones]="ticketReasons"
|
|
22
|
-
* [loading]="creatingTicket"
|
|
23
|
-
* [lastResult]="ticketResult"
|
|
24
|
-
* (submitTicket)="handleCreateTicket($event)"
|
|
25
|
-
* (closeForm)="addTicket = false">
|
|
26
|
-
* </ius-create-ticket>
|
|
27
|
-
*/
|
|
28
|
-
export class CreateTicketComponent {
|
|
29
|
-
constructor() {
|
|
30
|
-
this.tipos = [];
|
|
31
|
-
this.razones = [];
|
|
32
|
-
this.loading = false;
|
|
33
|
-
this.lastResult = 'success';
|
|
34
|
-
this.submitTicket = new EventEmitter();
|
|
35
|
-
this.closeForm = new EventEmitter();
|
|
36
|
-
this.tituloTicket = '';
|
|
37
|
-
this.descripcionTicket = '';
|
|
38
|
-
this.percentProgressBar = 100;
|
|
39
|
-
this.isExpandGeneralInformation = true;
|
|
40
|
-
}
|
|
41
|
-
onClose() {
|
|
42
|
-
this.closeForm.emit();
|
|
43
|
-
}
|
|
44
|
-
onExpandGeneralInformation() {
|
|
45
|
-
this.isExpandGeneralInformation = true;
|
|
46
|
-
}
|
|
47
|
-
onSetValueType(event) {
|
|
48
|
-
this.typeSelected = event;
|
|
49
|
-
}
|
|
50
|
-
onSetValueReason(event) {
|
|
51
|
-
this.reasonSelected = event;
|
|
52
|
-
}
|
|
53
|
-
onSetValueTituloTicket(event) {
|
|
54
|
-
this.tituloTicket = event;
|
|
55
|
-
}
|
|
56
|
-
onSetValueDescripcionTicket(event) {
|
|
57
|
-
this.descripcionTicket = event;
|
|
58
|
-
}
|
|
59
|
-
createTicket() {
|
|
60
|
-
if (this.loading) {
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
this.submitTicket.emit({
|
|
64
|
-
titulo: this.tituloTicket,
|
|
65
|
-
descripcion: this.descripcionTicket,
|
|
66
|
-
tipoTicketID: this.typeSelected?.id,
|
|
67
|
-
razonTicketID: this.reasonSelected?.id,
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CreateTicketComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
71
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: CreateTicketComponent, isStandalone: true, selector: "ius-create-ticket", inputs: { tipos: "tipos", razones: "razones", loading: "loading", lastResult: "lastResult" }, outputs: { submitTicket: "submitTicket", closeForm: "closeForm" }, ngImport: i0, template: "<ius-drawer-container-right [titleDrawer]=\"'Crear Ticket'\" (onDrawerClosed)=\"onClose()\"\n [percentProgressBar]=\"percentProgressBar\">\n <div class=\"form between-xs\">\n <div class=\"content\">\n <ius-section-collapse-drawer-parent textTitle=\"Informaci\u00F3n general\" [disabled]=\"false\"\n [isActive]=\"isExpandGeneralInformation\" (buttonClicked)=\"onExpandGeneralInformation()\">\n <div class=\"section\">\n <div class=\"select\">\n <ius-input-select componentId=\"ticketType\" [required]=\"true\" [showHelpText]=\"true\" labelSuperior=\"Tipo de ticket\"\n labelInput=\"Selecciona una opci\u00F3n\" [textInput]=\"typeSelected?.tipo\">\n @for (type of tipos; track type) {\n <ius-option (optionClick)=\"onSetValueType(type)\">\n {{ type.tipo }}\n </ius-option>\n }\n </ius-input-select>\n </div>\n <div class=\"select\">\n <ius-input-select componentId=\"ticketReason\" [required]=\"true\" [showHelpText]=\"true\" labelSuperior=\"Raz\u00F3n del ticket\"\n labelInput=\"Selecciona una opci\u00F3n\" [textInput]=\"reasonSelected?.razon\">\n @for (reason of razones; track reason) {\n <ius-option (optionClick)=\"onSetValueReason(reason)\">\n {{ reason.razon }}\n </ius-option>\n }\n </ius-input-select>\n </div>\n <div class=\"select\">\n <ius-input-textfield componentId=\"tituloTicket\" [initialText]=\"tituloTicket\" [required]=\"true\" [showHelpText]=\"true\"\n labelSuperior=\"Titulo o asunto para el ticket\" labelInput=\"Defina brevemente un asunto o titulo\"\n (onChangesValueEvent)=\"onSetValueTituloTicket($event)\">\n </ius-input-textfield>\n </div>\n <div class=\"select\">\n <ius-input-large componentId=\"descripcionTicket\" [initialText]=\"descripcionTicket\" [required]=\"true\" [showHelpText]=\"true\"\n labelSuperior=\"Descripcion del ticket\" labelInput=\"Describe tu idea o petici\u00F3n para el ticket\"\n (onChangesValueEvent)=\"onSetValueDescripcionTicket($event)\">\n </ius-input-large>\n </div>\n </div>\n </ius-section-collapse-drawer-parent>\n </div>\n\n <div class=\"footer\">\n <div class=\"toolbar\">\n <div class=\"toolbar-btn\">\n <ius-button-dynamic [labelDefault]=\"'Crear ticket'\" [labelSuccess]=\"'Agregando'\" [labelError]=\"'Error'\"\n [loading]=\"loading\" [result]=\"lastResult\" (buttonClicked)=\"createTicket()\">\n </ius-button-dynamic>\n </div>\n <div class=\"toolbar-btn\">\n <ius-button-standard-secondary (buttonClicked)=\"onClose()\">Cancelar</ius-button-standard-secondary>\n </div>\n </div>\n </div>\n </div>\n</ius-drawer-container-right>\n", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-base-1,.body-base-1-1{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}.form{display:flex;height:100%;flex-direction:column}.section{display:flex;padding:0 8px;flex-direction:column}.content{display:flex;flex-direction:column}.select{display:flex;padding:8px 16px;flex-direction:column;justify-content:center;gap:8px;align-self:stretch}.footer{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:10px;flex:1 0 0;align-self:stretch}.toolbar{display:flex;padding:12px 16px;flex-direction:column;justify-content:flex-end;align-items:center;gap:8px;align-self:stretch}.toolbar-btn{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: ButtonDynamicComponent, selector: "ius-button-dynamic", inputs: ["labelDefault", "labelSuccess", "labelError", "disabled", "loading", "result", "autoReset", "autoResetDelay"], outputs: ["buttonClicked"] }, { kind: "component", type: ButtonStandardSecondaryComponent, selector: "ius-button-standard-secondary", inputs: ["disabled"], outputs: ["buttonClicked"] }, { kind: "component", type: DrawerContainerRightComponent, selector: "ius-drawer-container-right", inputs: ["titleDrawer", "percentProgressBar"], outputs: ["onPressedBackEvent", "onDrawerClosed"] }, { kind: "component", type: SectionCollapseDrawerParentComponent, selector: "ius-section-collapse-drawer-parent", inputs: ["isActive", "disabled", "textTitle", "iconName"], outputs: ["buttonClicked"] }, { kind: "component", type: InputSelectComponent, selector: "ius-input-select", inputs: ["componentId", "required", "disabled", "showHelpText", "error", "labelSuperior", "labelInferior", "errorText", "labelInput", "iconInput", "textInput", "maxlenght", "inputType"], outputs: ["onChangesValueEvent", "onEnterKey", "onBlurEvent"] }, { kind: "component", type: InputTextfieldComponent, selector: "ius-input-textfield", inputs: ["textInput", "required", "disabled", "isEnableClearText", "showHelpText", "error", "labelSuperior", "labelInferior", "errorText", "labelInput", "iconInput", "inputType", "maxlenght", "initialText"], outputs: ["onChangesValueEvent", "onEnterKey", "onBlurEvent"] }, { kind: "component", type: OptionComponent, selector: "ius-option", inputs: ["disabled", "checked"], outputs: ["optionClick"] }, { kind: "component", type: InputLargeComponent, selector: "ius-input-large", inputs: ["textInput", "required", "disabled", "showHelpText", "rows", "labelSuperior", "labelInferior", "labelInput", "maxlenght", "initialText"], outputs: ["onChangesValueEvent", "onEnterKey"] }] }); }
|
|
72
|
-
}
|
|
73
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CreateTicketComponent, decorators: [{
|
|
74
|
-
type: Component,
|
|
75
|
-
args: [{ selector: 'ius-create-ticket', standalone: true, imports: [
|
|
76
|
-
CommonModule,
|
|
77
|
-
ButtonDynamicComponent,
|
|
78
|
-
ButtonStandardSecondaryComponent,
|
|
79
|
-
DrawerContainerRightComponent,
|
|
80
|
-
SectionCollapseDrawerParentComponent,
|
|
81
|
-
InputSelectComponent,
|
|
82
|
-
InputTextfieldComponent,
|
|
83
|
-
OptionComponent,
|
|
84
|
-
InputLargeComponent,
|
|
85
|
-
], template: "<ius-drawer-container-right [titleDrawer]=\"'Crear Ticket'\" (onDrawerClosed)=\"onClose()\"\n [percentProgressBar]=\"percentProgressBar\">\n <div class=\"form between-xs\">\n <div class=\"content\">\n <ius-section-collapse-drawer-parent textTitle=\"Informaci\u00F3n general\" [disabled]=\"false\"\n [isActive]=\"isExpandGeneralInformation\" (buttonClicked)=\"onExpandGeneralInformation()\">\n <div class=\"section\">\n <div class=\"select\">\n <ius-input-select componentId=\"ticketType\" [required]=\"true\" [showHelpText]=\"true\" labelSuperior=\"Tipo de ticket\"\n labelInput=\"Selecciona una opci\u00F3n\" [textInput]=\"typeSelected?.tipo\">\n @for (type of tipos; track type) {\n <ius-option (optionClick)=\"onSetValueType(type)\">\n {{ type.tipo }}\n </ius-option>\n }\n </ius-input-select>\n </div>\n <div class=\"select\">\n <ius-input-select componentId=\"ticketReason\" [required]=\"true\" [showHelpText]=\"true\" labelSuperior=\"Raz\u00F3n del ticket\"\n labelInput=\"Selecciona una opci\u00F3n\" [textInput]=\"reasonSelected?.razon\">\n @for (reason of razones; track reason) {\n <ius-option (optionClick)=\"onSetValueReason(reason)\">\n {{ reason.razon }}\n </ius-option>\n }\n </ius-input-select>\n </div>\n <div class=\"select\">\n <ius-input-textfield componentId=\"tituloTicket\" [initialText]=\"tituloTicket\" [required]=\"true\" [showHelpText]=\"true\"\n labelSuperior=\"Titulo o asunto para el ticket\" labelInput=\"Defina brevemente un asunto o titulo\"\n (onChangesValueEvent)=\"onSetValueTituloTicket($event)\">\n </ius-input-textfield>\n </div>\n <div class=\"select\">\n <ius-input-large componentId=\"descripcionTicket\" [initialText]=\"descripcionTicket\" [required]=\"true\" [showHelpText]=\"true\"\n labelSuperior=\"Descripcion del ticket\" labelInput=\"Describe tu idea o petici\u00F3n para el ticket\"\n (onChangesValueEvent)=\"onSetValueDescripcionTicket($event)\">\n </ius-input-large>\n </div>\n </div>\n </ius-section-collapse-drawer-parent>\n </div>\n\n <div class=\"footer\">\n <div class=\"toolbar\">\n <div class=\"toolbar-btn\">\n <ius-button-dynamic [labelDefault]=\"'Crear ticket'\" [labelSuccess]=\"'Agregando'\" [labelError]=\"'Error'\"\n [loading]=\"loading\" [result]=\"lastResult\" (buttonClicked)=\"createTicket()\">\n </ius-button-dynamic>\n </div>\n <div class=\"toolbar-btn\">\n <ius-button-standard-secondary (buttonClicked)=\"onClose()\">Cancelar</ius-button-standard-secondary>\n </div>\n </div>\n </div>\n </div>\n</ius-drawer-container-right>\n", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-base-1,.body-base-1-1{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}.form{display:flex;height:100%;flex-direction:column}.section{display:flex;padding:0 8px;flex-direction:column}.content{display:flex;flex-direction:column}.select{display:flex;padding:8px 16px;flex-direction:column;justify-content:center;gap:8px;align-self:stretch}.footer{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:10px;flex:1 0 0;align-self:stretch}.toolbar{display:flex;padding:12px 16px;flex-direction:column;justify-content:flex-end;align-items:center;gap:8px;align-self:stretch}.toolbar-btn{width:100%}\n"] }]
|
|
86
|
-
}], propDecorators: { tipos: [{
|
|
87
|
-
type: Input
|
|
88
|
-
}], razones: [{
|
|
89
|
-
type: Input
|
|
90
|
-
}], loading: [{
|
|
91
|
-
type: Input
|
|
92
|
-
}], lastResult: [{
|
|
93
|
-
type: Input
|
|
94
|
-
}], submitTicket: [{
|
|
95
|
-
type: Output
|
|
96
|
-
}], closeForm: [{
|
|
97
|
-
type: Output
|
|
98
|
-
}] } });
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXRpY2tldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pdXMtZGVzaWduLWNvbXBvbmVudHMvc3JjL2xpYi9jcmVhdGUtdGlja2V0L2NyZWF0ZS10aWNrZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvY3JlYXRlLXRpY2tldC9jcmVhdGUtdGlja2V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBZ0IsTUFBTSw0Q0FBNEMsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUNwSCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUMzRyxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSw0RUFBNEUsQ0FBQztBQUNsSSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7O0FBb0IzRTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFrQkgsTUFBTSxPQUFPLHFCQUFxQjtJQWpCbEM7UUFtQlcsVUFBSyxHQUFpQixFQUFFLENBQUM7UUFDekIsWUFBTyxHQUFrQixFQUFFLENBQUM7UUFDNUIsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixlQUFVLEdBQWlCLFNBQVMsQ0FBQztRQUVwQyxpQkFBWSxHQUE0QyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzNFLGNBQVMsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUU3RCxpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUMxQixzQkFBaUIsR0FBVyxFQUFFLENBQUM7UUFJL0IsdUJBQWtCLEdBQUcsR0FBRyxDQUFDO1FBQ3pCLCtCQUEwQixHQUFHLElBQUksQ0FBQztLQXNDbkM7SUFwQ0MsT0FBTztRQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELDBCQUEwQjtRQUN4QixJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBaUI7UUFDOUIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQWtCO1FBQ2pDLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxLQUFVO1FBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFRCwyQkFBMkIsQ0FBQyxLQUFVO1FBQ3BDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7SUFDakMsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO1lBQ3JCLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWTtZQUN6QixXQUFXLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtZQUNuQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFO1lBQ25DLGFBQWEsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUU7U0FDdkMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0FyRFUscUJBQXFCO21HQUFyQixxQkFBcUIsOE9DOURsQyxvN0ZBeURBLG1qRURSSSxZQUFZLCtCQUNaLHNCQUFzQixtTkFDdEIsZ0NBQWdDLDRIQUNoQyw2QkFBNkIseUtBQzdCLG9DQUFvQyxzS0FDcEMsb0JBQW9CLHVUQUNwQix1QkFBdUIsK1VBQ3ZCLGVBQWUsa0hBQ2YsbUJBQW1COzs0RkFLVixxQkFBcUI7a0JBakJqQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixzQkFBc0I7d0JBQ3RCLGdDQUFnQzt3QkFDaEMsNkJBQTZCO3dCQUM3QixvQ0FBb0M7d0JBQ3BDLG9CQUFvQjt3QkFDcEIsdUJBQXVCO3dCQUN2QixlQUFlO3dCQUNmLG1CQUFtQjtxQkFDcEI7OEJBTVEsS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFFSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJ1dHRvbkR5bmFtaWNDb21wb25lbnQsIEJ1dHRvblJlc3VsdCB9IGZyb20gJy4uL2J1dHRvbi1keW5hbWljL2J1dHRvbi1keW5hbWljLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25TdGFuZGFyZFNlY29uZGFyeUNvbXBvbmVudCB9IGZyb20gJy4uL2J1dHRvbi1zdGFuZGFyZC1zZWNvbmRhcnkvYnV0dG9uLXN0YW5kYXJkLXNlY29uZGFyeS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHJhd2VyQ29udGFpbmVyUmlnaHRDb21wb25lbnQgfSBmcm9tICcuLi9kcmF3ZXItY29udGFpbmVyLXJpZ2h0L2RyYXdlci1jb250YWluZXItcmlnaHQuY29tcG9uZW50JztcbmltcG9ydCB7IFNlY3Rpb25Db2xsYXBzZURyYXdlclBhcmVudENvbXBvbmVudCB9IGZyb20gJy4uL3NlY3Rpb24tY29sbGFwc2UtZHJhd2VyLXBhcmVudC9zZWN0aW9uLWNvbGxhcHNlLWRyYXdlci1wYXJlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IElucHV0U2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vaW5wdXQtc2VsZWN0L2lucHV0LXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRUZXh0ZmllbGRDb21wb25lbnQgfSBmcm9tICcuLi9pbnB1dC10ZXh0ZmllbGQvaW5wdXQtdGV4dGZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPcHRpb25Db21wb25lbnQgfSBmcm9tICcuLi9vcHRpb24vb3B0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnB1dExhcmdlQ29tcG9uZW50IH0gZnJvbSAnLi4vaW5wdXQtbGFyZ2UvaW5wdXQtbGFyZ2UuY29tcG9uZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBUaXBvVGlja2V0IHtcbiAgaWQ/OiBudW1iZXI7XG4gIHRpcG8/OiBzdHJpbmc7XG4gIGNudFRpcG9UaWNrZXQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmF6b25UaWNrZXQge1xuICBpZD86IG51bWJlcjtcbiAgcmF6b24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlVGlja2V0U3VibWl0UGF5bG9hZCB7XG4gIHRpdHVsbzogc3RyaW5nO1xuICBkZXNjcmlwY2lvbjogc3RyaW5nO1xuICB0aXBvVGlja2V0SUQ/OiBudW1iZXI7XG4gIHJhem9uVGlja2V0SUQ/OiBudW1iZXI7XG59XG5cbi8qKlxuICogRHVtYiBjb21wb25lbnQuIFNvbG8gVUkgZGVsIGRyYXdlciBcIkNyZWFyIFRpY2tldFwiLlxuICpcbiAqIEFwcCBwYWRyZSBwcm92ZWUgdGlwb3MvcmF6b25lcyAocXVlIHZpZW5lbiBkZSBzdSBBUEkpLCByZWNpYmUgZWwgZXZlbnRvXG4gKiBzdWJtaXRUaWNrZXQgY29uIGVsIHBheWxvYWQsIHkgbWFuZWphIGVsIGxvYWRpbmcgKyByZXN1bHRhZG8uXG4gKlxuICogVXNvOlxuICogICA8aXVzLWNyZWF0ZS10aWNrZXRcbiAqICAgICBbdGlwb3NdPVwidGlja2V0VHlwZXNcIlxuICogICAgIFtyYXpvbmVzXT1cInRpY2tldFJlYXNvbnNcIlxuICogICAgIFtsb2FkaW5nXT1cImNyZWF0aW5nVGlja2V0XCJcbiAqICAgICBbbGFzdFJlc3VsdF09XCJ0aWNrZXRSZXN1bHRcIlxuICogICAgIChzdWJtaXRUaWNrZXQpPVwiaGFuZGxlQ3JlYXRlVGlja2V0KCRldmVudClcIlxuICogICAgIChjbG9zZUZvcm0pPVwiYWRkVGlja2V0ID0gZmFsc2VcIj5cbiAqICAgPC9pdXMtY3JlYXRlLXRpY2tldD5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXVzLWNyZWF0ZS10aWNrZXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEJ1dHRvbkR5bmFtaWNDb21wb25lbnQsXG4gICAgQnV0dG9uU3RhbmRhcmRTZWNvbmRhcnlDb21wb25lbnQsXG4gICAgRHJhd2VyQ29udGFpbmVyUmlnaHRDb21wb25lbnQsXG4gICAgU2VjdGlvbkNvbGxhcHNlRHJhd2VyUGFyZW50Q29tcG9uZW50LFxuICAgIElucHV0U2VsZWN0Q29tcG9uZW50LFxuICAgIElucHV0VGV4dGZpZWxkQ29tcG9uZW50LFxuICAgIE9wdGlvbkNvbXBvbmVudCxcbiAgICBJbnB1dExhcmdlQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vY3JlYXRlLXRpY2tldC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9jcmVhdGUtdGlja2V0LmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBDcmVhdGVUaWNrZXRDb21wb25lbnQge1xuXG4gIEBJbnB1dCgpIHRpcG9zOiBUaXBvVGlja2V0W10gPSBbXTtcbiAgQElucHV0KCkgcmF6b25lczogUmF6b25UaWNrZXRbXSA9IFtdO1xuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGxhc3RSZXN1bHQ6IEJ1dHRvblJlc3VsdCA9ICdzdWNjZXNzJztcblxuICBAT3V0cHV0KCkgc3VibWl0VGlja2V0OiBFdmVudEVtaXR0ZXI8Q3JlYXRlVGlja2V0U3VibWl0UGF5bG9hZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBjbG9zZUZvcm06IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICB0aXR1bG9UaWNrZXQ6IHN0cmluZyA9ICcnO1xuICBkZXNjcmlwY2lvblRpY2tldDogc3RyaW5nID0gJyc7XG4gIHR5cGVTZWxlY3RlZD86IFRpcG9UaWNrZXQ7XG4gIHJlYXNvblNlbGVjdGVkPzogUmF6b25UaWNrZXQ7XG5cbiAgcGVyY2VudFByb2dyZXNzQmFyID0gMTAwO1xuICBpc0V4cGFuZEdlbmVyYWxJbmZvcm1hdGlvbiA9IHRydWU7XG5cbiAgb25DbG9zZSgpIHtcbiAgICB0aGlzLmNsb3NlRm9ybS5lbWl0KCk7XG4gIH1cblxuICBvbkV4cGFuZEdlbmVyYWxJbmZvcm1hdGlvbigpIHtcbiAgICB0aGlzLmlzRXhwYW5kR2VuZXJhbEluZm9ybWF0aW9uID0gdHJ1ZTtcbiAgfVxuXG4gIG9uU2V0VmFsdWVUeXBlKGV2ZW50OiBUaXBvVGlja2V0KSB7XG4gICAgdGhpcy50eXBlU2VsZWN0ZWQgPSBldmVudDtcbiAgfVxuXG4gIG9uU2V0VmFsdWVSZWFzb24oZXZlbnQ6IFJhem9uVGlja2V0KSB7XG4gICAgdGhpcy5yZWFzb25TZWxlY3RlZCA9IGV2ZW50O1xuICB9XG5cbiAgb25TZXRWYWx1ZVRpdHVsb1RpY2tldChldmVudDogYW55KSB7XG4gICAgdGhpcy50aXR1bG9UaWNrZXQgPSBldmVudDtcbiAgfVxuXG4gIG9uU2V0VmFsdWVEZXNjcmlwY2lvblRpY2tldChldmVudDogYW55KSB7XG4gICAgdGhpcy5kZXNjcmlwY2lvblRpY2tldCA9IGV2ZW50O1xuICB9XG5cbiAgY3JlYXRlVGlja2V0KCkge1xuICAgIGlmICh0aGlzLmxvYWRpbmcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN1Ym1pdFRpY2tldC5lbWl0KHtcbiAgICAgIHRpdHVsbzogdGhpcy50aXR1bG9UaWNrZXQsXG4gICAgICBkZXNjcmlwY2lvbjogdGhpcy5kZXNjcmlwY2lvblRpY2tldCxcbiAgICAgIHRpcG9UaWNrZXRJRDogdGhpcy50eXBlU2VsZWN0ZWQ/LmlkLFxuICAgICAgcmF6b25UaWNrZXRJRDogdGhpcy5yZWFzb25TZWxlY3RlZD8uaWQsXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxpdXMtZHJhd2VyLWNvbnRhaW5lci1yaWdodCBbdGl0bGVEcmF3ZXJdPVwiJ0NyZWFyIFRpY2tldCdcIiAob25EcmF3ZXJDbG9zZWQpPVwib25DbG9zZSgpXCJcbiAgW3BlcmNlbnRQcm9ncmVzc0Jhcl09XCJwZXJjZW50UHJvZ3Jlc3NCYXJcIj5cbiAgPGRpdiBjbGFzcz1cImZvcm0gYmV0d2Vlbi14c1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgICA8aXVzLXNlY3Rpb24tY29sbGFwc2UtZHJhd2VyLXBhcmVudCB0ZXh0VGl0bGU9XCJJbmZvcm1hY2nDs24gZ2VuZXJhbFwiIFtkaXNhYmxlZF09XCJmYWxzZVwiXG4gICAgICAgIFtpc0FjdGl2ZV09XCJpc0V4cGFuZEdlbmVyYWxJbmZvcm1hdGlvblwiIChidXR0b25DbGlja2VkKT1cIm9uRXhwYW5kR2VuZXJhbEluZm9ybWF0aW9uKClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb25cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0XCI+XG4gICAgICAgICAgICA8aXVzLWlucHV0LXNlbGVjdCBjb21wb25lbnRJZD1cInRpY2tldFR5cGVcIiBbcmVxdWlyZWRdPVwidHJ1ZVwiIFtzaG93SGVscFRleHRdPVwidHJ1ZVwiIGxhYmVsU3VwZXJpb3I9XCJUaXBvIGRlIHRpY2tldFwiXG4gICAgICAgICAgICAgIGxhYmVsSW5wdXQ9XCJTZWxlY2Npb25hIHVuYSBvcGNpw7NuXCIgW3RleHRJbnB1dF09XCJ0eXBlU2VsZWN0ZWQ/LnRpcG9cIj5cbiAgICAgICAgICAgICAgQGZvciAodHlwZSBvZiB0aXBvczsgdHJhY2sgdHlwZSkge1xuICAgICAgICAgICAgICA8aXVzLW9wdGlvbiAob3B0aW9uQ2xpY2spPVwib25TZXRWYWx1ZVR5cGUodHlwZSlcIj5cbiAgICAgICAgICAgICAgICB7eyB0eXBlLnRpcG8gfX1cbiAgICAgICAgICAgICAgPC9pdXMtb3B0aW9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2l1cy1pbnB1dC1zZWxlY3Q+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdFwiPlxuICAgICAgICAgICAgPGl1cy1pbnB1dC1zZWxlY3QgY29tcG9uZW50SWQ9XCJ0aWNrZXRSZWFzb25cIiBbcmVxdWlyZWRdPVwidHJ1ZVwiIFtzaG93SGVscFRleHRdPVwidHJ1ZVwiIGxhYmVsU3VwZXJpb3I9XCJSYXrDs24gZGVsIHRpY2tldFwiXG4gICAgICAgICAgICAgIGxhYmVsSW5wdXQ9XCJTZWxlY2Npb25hIHVuYSBvcGNpw7NuXCIgW3RleHRJbnB1dF09XCJyZWFzb25TZWxlY3RlZD8ucmF6b25cIj5cbiAgICAgICAgICAgICAgQGZvciAocmVhc29uIG9mIHJhem9uZXM7IHRyYWNrIHJlYXNvbikge1xuICAgICAgICAgICAgICA8aXVzLW9wdGlvbiAob3B0aW9uQ2xpY2spPVwib25TZXRWYWx1ZVJlYXNvbihyZWFzb24pXCI+XG4gICAgICAgICAgICAgICAge3sgcmVhc29uLnJhem9uIH19XG4gICAgICAgICAgICAgIDwvaXVzLW9wdGlvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9pdXMtaW5wdXQtc2VsZWN0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RcIj5cbiAgICAgICAgICAgIDxpdXMtaW5wdXQtdGV4dGZpZWxkIGNvbXBvbmVudElkPVwidGl0dWxvVGlja2V0XCIgW2luaXRpYWxUZXh0XT1cInRpdHVsb1RpY2tldFwiIFtyZXF1aXJlZF09XCJ0cnVlXCIgW3Nob3dIZWxwVGV4dF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgbGFiZWxTdXBlcmlvcj1cIlRpdHVsbyBvIGFzdW50byBwYXJhIGVsIHRpY2tldFwiIGxhYmVsSW5wdXQ9XCJEZWZpbmEgYnJldmVtZW50ZSB1biBhc3VudG8gbyB0aXR1bG9cIlxuICAgICAgICAgICAgICAob25DaGFuZ2VzVmFsdWVFdmVudCk9XCJvblNldFZhbHVlVGl0dWxvVGlja2V0KCRldmVudClcIj5cbiAgICAgICAgICAgIDwvaXVzLWlucHV0LXRleHRmaWVsZD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0XCI+XG4gICAgICAgICAgICA8aXVzLWlucHV0LWxhcmdlIGNvbXBvbmVudElkPVwiZGVzY3JpcGNpb25UaWNrZXRcIiBbaW5pdGlhbFRleHRdPVwiZGVzY3JpcGNpb25UaWNrZXRcIiBbcmVxdWlyZWRdPVwidHJ1ZVwiIFtzaG93SGVscFRleHRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIGxhYmVsU3VwZXJpb3I9XCJEZXNjcmlwY2lvbiBkZWwgdGlja2V0XCIgbGFiZWxJbnB1dD1cIkRlc2NyaWJlIHR1IGlkZWEgbyBwZXRpY2nDs24gcGFyYSBlbCB0aWNrZXRcIlxuICAgICAgICAgICAgICAob25DaGFuZ2VzVmFsdWVFdmVudCk9XCJvblNldFZhbHVlRGVzY3JpcGNpb25UaWNrZXQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgPC9pdXMtaW5wdXQtbGFyZ2U+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9pdXMtc2VjdGlvbi1jb2xsYXBzZS1kcmF3ZXItcGFyZW50PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZvb3RlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cInRvb2xiYXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRvb2xiYXItYnRuXCI+XG4gICAgICAgICAgPGl1cy1idXR0b24tZHluYW1pYyBbbGFiZWxEZWZhdWx0XT1cIidDcmVhciB0aWNrZXQnXCIgW2xhYmVsU3VjY2Vzc109XCInQWdyZWdhbmRvJ1wiIFtsYWJlbEVycm9yXT1cIidFcnJvcidcIlxuICAgICAgICAgICAgW2xvYWRpbmddPVwibG9hZGluZ1wiIFtyZXN1bHRdPVwibGFzdFJlc3VsdFwiIChidXR0b25DbGlja2VkKT1cImNyZWF0ZVRpY2tldCgpXCI+XG4gICAgICAgICAgPC9pdXMtYnV0dG9uLWR5bmFtaWM+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbGJhci1idG5cIj5cbiAgICAgICAgICA8aXVzLWJ1dHRvbi1zdGFuZGFyZC1zZWNvbmRhcnkgKGJ1dHRvbkNsaWNrZWQpPVwib25DbG9zZSgpXCI+Q2FuY2VsYXI8L2l1cy1idXR0b24tc3RhbmRhcmQtc2Vjb25kYXJ5PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvaXVzLWRyYXdlci1jb250YWluZXItcmlnaHQ+XG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './create-ticket.component';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pdXMtZGVzaWduLWNvbXBvbmVudHMvc3JjL2xpYi9jcmVhdGUtdGlja2V0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NyZWF0ZS10aWNrZXQuY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
2
|
-
import { ButtonResult } from '../button-dynamic/button-dynamic.component';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export interface TipoTicket {
|
|
5
|
-
id?: number;
|
|
6
|
-
tipo?: string;
|
|
7
|
-
cntTipoTicket?: number;
|
|
8
|
-
}
|
|
9
|
-
export interface RazonTicket {
|
|
10
|
-
id?: number;
|
|
11
|
-
razon?: string;
|
|
12
|
-
}
|
|
13
|
-
export interface CreateTicketSubmitPayload {
|
|
14
|
-
titulo: string;
|
|
15
|
-
descripcion: string;
|
|
16
|
-
tipoTicketID?: number;
|
|
17
|
-
razonTicketID?: number;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Dumb component. Solo UI del drawer "Crear Ticket".
|
|
21
|
-
*
|
|
22
|
-
* App padre provee tipos/razones (que vienen de su API), recibe el evento
|
|
23
|
-
* submitTicket con el payload, y maneja el loading + resultado.
|
|
24
|
-
*
|
|
25
|
-
* Uso:
|
|
26
|
-
* <ius-create-ticket
|
|
27
|
-
* [tipos]="ticketTypes"
|
|
28
|
-
* [razones]="ticketReasons"
|
|
29
|
-
* [loading]="creatingTicket"
|
|
30
|
-
* [lastResult]="ticketResult"
|
|
31
|
-
* (submitTicket)="handleCreateTicket($event)"
|
|
32
|
-
* (closeForm)="addTicket = false">
|
|
33
|
-
* </ius-create-ticket>
|
|
34
|
-
*/
|
|
35
|
-
export declare class CreateTicketComponent {
|
|
36
|
-
tipos: TipoTicket[];
|
|
37
|
-
razones: RazonTicket[];
|
|
38
|
-
loading: boolean;
|
|
39
|
-
lastResult: ButtonResult;
|
|
40
|
-
submitTicket: EventEmitter<CreateTicketSubmitPayload>;
|
|
41
|
-
closeForm: EventEmitter<void>;
|
|
42
|
-
tituloTicket: string;
|
|
43
|
-
descripcionTicket: string;
|
|
44
|
-
typeSelected?: TipoTicket;
|
|
45
|
-
reasonSelected?: RazonTicket;
|
|
46
|
-
percentProgressBar: number;
|
|
47
|
-
isExpandGeneralInformation: boolean;
|
|
48
|
-
onClose(): void;
|
|
49
|
-
onExpandGeneralInformation(): void;
|
|
50
|
-
onSetValueType(event: TipoTicket): void;
|
|
51
|
-
onSetValueReason(event: RazonTicket): void;
|
|
52
|
-
onSetValueTituloTicket(event: any): void;
|
|
53
|
-
onSetValueDescripcionTicket(event: any): void;
|
|
54
|
-
createTicket(): void;
|
|
55
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CreateTicketComponent, never>;
|
|
56
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CreateTicketComponent, "ius-create-ticket", never, { "tipos": { "alias": "tipos"; "required": false; }; "razones": { "alias": "razones"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "lastResult": { "alias": "lastResult"; "required": false; }; }, { "submitTicket": "submitTicket"; "closeForm": "closeForm"; }, never, never, true, never>;
|
|
57
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './create-ticket.component';
|