visorus-erp-core 17.3.0 → 17.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/app.module.mjs +33 -34
- package/esm2022/lib/components/acreedor/services/acreedor.service.mjs +9 -9
- package/esm2022/lib/components/acreedor/services/acreedorCuentaContable.mjs +9 -9
- package/esm2022/lib/components/agente/services/agente.service.mjs +9 -9
- package/esm2022/lib/components/almacen/services/almacen.service.mjs +9 -9
- package/esm2022/lib/components/banco/services/banco.service.mjs +9 -9
- package/esm2022/lib/components/caja/session-create/session-create.component.mjs +19 -102
- package/esm2022/lib/components/caja/sessionCaja.service.mjs +9 -9
- package/esm2022/lib/components/catalogoTipo/services/catalogoTipo.service.mjs +9 -9
- package/esm2022/lib/components/clasificadorTipo/services/clasificadorTipo.service.mjs +9 -9
- package/esm2022/lib/components/claveAumentoDisminucion/services/clave-aumento-disminucion.service.mjs +9 -9
- package/esm2022/lib/components/claveMovimiento/services/claveMovimiento.service.mjs +9 -9
- package/esm2022/lib/components/cliente/services/cliente.service.mjs +9 -9
- package/esm2022/lib/components/cliente/services/clienteCuentaBanco.service.mjs +9 -9
- package/esm2022/lib/components/cliente/services/clienteFlete.service.mjs +9 -9
- package/esm2022/lib/components/contacto/services/datoContacto.service.mjs +9 -9
- package/esm2022/lib/components/dato-direccion/services/datoDireccion.service.mjs +9 -9
- package/esm2022/lib/components/departamento/services/departamento.service.mjs +9 -9
- package/esm2022/lib/components/empresa/services/empresa.service.mjs +9 -9
- package/esm2022/lib/components/error404/error404.component.mjs +7 -15
- package/esm2022/lib/components/flete/services/flete.service.mjs +9 -9
- package/esm2022/lib/components/formaPago/services/FormaPago.service.mjs +9 -9
- package/esm2022/lib/components/loading/loading.component.mjs +9 -25
- package/esm2022/lib/components/loading/loading.service.mjs +11 -11
- package/esm2022/lib/components/loading-screen/loading-screen.component.mjs +9 -14
- package/esm2022/lib/components/loading-screen/loading-screen.service.mjs +9 -9
- package/esm2022/lib/components/login-modal/login-modal.component.mjs +7 -85
- package/esm2022/lib/components/login-modal/login-modal.service.mjs +11 -11
- package/esm2022/lib/components/moneda/services/moneda.service.mjs +9 -9
- package/esm2022/lib/components/pdfModal/pdf-modal.component.mjs +56 -46
- package/esm2022/lib/components/pdfModal/pdf-modal.service.mjs +13 -13
- package/esm2022/lib/components/persona-fisica/services/personaFisica.service.mjs +9 -9
- package/esm2022/lib/components/proveedor/services/proveedor.service.mjs +9 -9
- package/esm2022/lib/components/proveedor/services/proveedorCuentaBanco.service.mjs +9 -9
- package/esm2022/lib/components/proveedor/services/proveedorFlete.service.mjs +9 -9
- package/esm2022/lib/components/seleccion-articulo-informacion/seleccion-articulo-informacion.component.mjs +13 -102
- package/esm2022/lib/components/seleccion-articulo-informacion/services/articulo-informacion.service.mjs +9 -9
- package/esm2022/lib/components/selecciona-articulo/selecciona-articulo.component.mjs +85 -400
- package/esm2022/lib/components/selecciona-articulo/stock.service.mjs +9 -9
- package/esm2022/lib/components/serieDocumento/services/serieDocumento.service.mjs +9 -9
- package/esm2022/lib/components/tipo-contacto/services/tipoContacto.service.mjs +9 -9
- package/esm2022/lib/components/ubicacion/services/ubicacion.service.mjs +9 -9
- package/esm2022/lib/contabilidad/componentes/cclista/cclista.component.mjs +13 -93
- package/esm2022/lib/contabilidad/componentes/ccseleccion-dialog/ccseleccion-dialog.component.mjs +16 -40
- package/esm2022/lib/contabilidad/servicios/cuentacontable.service.mjs +9 -9
- package/esm2022/lib/httpInterceptor/httpInterceptor.mjs +6 -6
- package/esm2022/lib/services/auth.service.mjs +13 -13
- package/esm2022/lib/services/authenticated.service.mjs +9 -9
- package/esm2022/lib/services/canActivateGuard.service.ts.mjs +9 -9
- package/esm2022/lib/services/catalogo-adicional.service.mjs +9 -9
- package/esm2022/lib/services/controlAcceso.service.mjs +13 -13
- package/esm2022/lib/services/file.service.mjs +9 -9
- package/esm2022/lib/services/init.service.mjs +9 -9
- package/esm2022/lib/services/message.service.mjs +9 -9
- package/esm2022/lib/services/paginate.service.mjs +9 -9
- package/esm2022/lib/services/personaMoral.service.mjs +9 -9
- package/esm2022/lib/services/versionCheck.service.mjs +9 -9
- package/fesm2022/visorus-erp-core.mjs +653 -1341
- package/fesm2022/visorus-erp-core.mjs.map +1 -1
- package/lib/components/pdfModal/pdf-modal.component.d.ts +16 -3
- package/lib/components/selecciona-articulo/selecciona-articulo.component.d.ts +16 -10
- package/package.json +2 -5
|
@@ -1,333 +1,38 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
1
|
+
import { Component, ElementRef, EventEmitter, inject, Input, Output, ViewChild } from '@angular/core';
|
|
2
2
|
import { PaginateService } from '../../services/paginate.service';
|
|
3
3
|
import { AlmacenService } from '../almacen/services/almacen.service';
|
|
4
4
|
import { StockService } from './stock.service';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "
|
|
7
|
-
import * as i2 from "
|
|
8
|
-
import * as i3 from "
|
|
9
|
-
import * as i4 from "
|
|
10
|
-
import * as i5 from "primeng/
|
|
11
|
-
import * as i6 from "primeng/
|
|
12
|
-
import * as i7 from "
|
|
13
|
-
import * as i8 from "primeng/
|
|
14
|
-
import * as i9 from "
|
|
15
|
-
import * as i10 from "
|
|
16
|
-
import * as i11 from "
|
|
17
|
-
import * as i12 from "@ngx-translate/core";
|
|
18
|
-
import * as i13 from "../seleccion-articulo-informacion/seleccion-articulo-informacion.component";
|
|
19
|
-
const _c0 = a0 => ({ "width": a0, "min-width": "200px" });
|
|
20
|
-
const _c1 = () => [10, 25, 50, 100, 500];
|
|
21
|
-
function SeleccionaArticuloComponent_option_23_Template(rf, ctx) { if (rf & 1) {
|
|
22
|
-
i0.ɵɵelementStart(0, "option", 22);
|
|
23
|
-
i0.ɵɵtext(1);
|
|
24
|
-
i0.ɵɵelementEnd();
|
|
25
|
-
} if (rf & 2) {
|
|
26
|
-
const almacen_r2 = ctx.$implicit;
|
|
27
|
-
i0.ɵɵpropertyInterpolate("value", almacen_r2.id);
|
|
28
|
-
i0.ɵɵadvance();
|
|
29
|
-
i0.ɵɵtextInterpolate(almacen_r2.descripcion);
|
|
30
|
-
} }
|
|
31
|
-
function SeleccionaArticuloComponent_ng_template_26_th_7_Template(rf, ctx) { if (rf & 1) {
|
|
32
|
-
i0.ɵɵelementStart(0, "th", 31);
|
|
33
|
-
i0.ɵɵtext(1, "existenciaSecundaria");
|
|
34
|
-
i0.ɵɵelementEnd();
|
|
35
|
-
} }
|
|
36
|
-
function SeleccionaArticuloComponent_ng_template_26_th_8_Template(rf, ctx) { if (rf & 1) {
|
|
37
|
-
i0.ɵɵelementStart(0, "th", 25);
|
|
38
|
-
i0.ɵɵtext(1, "Unidad");
|
|
39
|
-
i0.ɵɵelementEnd();
|
|
40
|
-
} }
|
|
41
|
-
function SeleccionaArticuloComponent_ng_template_26_th_14_Template(rf, ctx) { if (rf & 1) {
|
|
42
|
-
i0.ɵɵelementStart(0, "th", 23);
|
|
43
|
-
i0.ɵɵtext(1, "Precio");
|
|
44
|
-
i0.ɵɵelementEnd();
|
|
45
|
-
} }
|
|
46
|
-
function SeleccionaArticuloComponent_ng_template_26_th_15_Template(rf, ctx) { if (rf & 1) {
|
|
47
|
-
i0.ɵɵelementStart(0, "th", 23);
|
|
48
|
-
i0.ɵɵtext(1, "Precio 2");
|
|
49
|
-
i0.ɵɵelementEnd();
|
|
50
|
-
} }
|
|
51
|
-
function SeleccionaArticuloComponent_ng_template_26_th_16_Template(rf, ctx) { if (rf & 1) {
|
|
52
|
-
i0.ɵɵelementStart(0, "th", 23);
|
|
53
|
-
i0.ɵɵtext(1, "Precio 3");
|
|
54
|
-
i0.ɵɵelementEnd();
|
|
55
|
-
} }
|
|
56
|
-
function SeleccionaArticuloComponent_ng_template_26_th_17_Template(rf, ctx) { if (rf & 1) {
|
|
57
|
-
i0.ɵɵelementStart(0, "th", 23);
|
|
58
|
-
i0.ɵɵtext(1, "Precio 4");
|
|
59
|
-
i0.ɵɵelementEnd();
|
|
60
|
-
} }
|
|
61
|
-
function SeleccionaArticuloComponent_ng_template_26_th_18_Template(rf, ctx) { if (rf & 1) {
|
|
62
|
-
i0.ɵɵelementStart(0, "th", 23);
|
|
63
|
-
i0.ɵɵtext(1, "Precio 5");
|
|
64
|
-
i0.ɵɵelementEnd();
|
|
65
|
-
} }
|
|
66
|
-
function SeleccionaArticuloComponent_ng_template_26_th_19_Template(rf, ctx) { if (rf & 1) {
|
|
67
|
-
i0.ɵɵelementStart(0, "th", 25);
|
|
68
|
-
i0.ɵɵtext(1, "Movimiento.costo");
|
|
69
|
-
i0.ɵɵelementEnd();
|
|
70
|
-
} }
|
|
71
|
-
function SeleccionaArticuloComponent_ng_template_26_th_22_Template(rf, ctx) { if (rf & 1) {
|
|
72
|
-
i0.ɵɵelementStart(0, "th", 23);
|
|
73
|
-
i0.ɵɵtext(1);
|
|
74
|
-
i0.ɵɵelementEnd();
|
|
75
|
-
} if (rf & 2) {
|
|
76
|
-
const item_r3 = ctx.$implicit;
|
|
77
|
-
i0.ɵɵadvance();
|
|
78
|
-
i0.ɵɵtextInterpolate(item_r3.descripcion);
|
|
79
|
-
} }
|
|
80
|
-
function SeleccionaArticuloComponent_ng_template_26_Template(rf, ctx) { if (rf & 1) {
|
|
81
|
-
i0.ɵɵelementStart(0, "tr")(1, "th", 23);
|
|
82
|
-
i0.ɵɵtext(2, "C\u00F3digo Ubicacion");
|
|
83
|
-
i0.ɵɵelementEnd();
|
|
84
|
-
i0.ɵɵelementStart(3, "th", 24);
|
|
85
|
-
i0.ɵɵtext(4, "Existencia");
|
|
86
|
-
i0.ɵɵelementEnd();
|
|
87
|
-
i0.ɵɵelementStart(5, "th", 25);
|
|
88
|
-
i0.ɵɵtext(6, "Unidad");
|
|
89
|
-
i0.ɵɵelementEnd();
|
|
90
|
-
i0.ɵɵtemplate(7, SeleccionaArticuloComponent_ng_template_26_th_7_Template, 2, 0, "th", 26)(8, SeleccionaArticuloComponent_ng_template_26_th_8_Template, 2, 0, "th", 27);
|
|
91
|
-
i0.ɵɵelementStart(9, "th", 23);
|
|
92
|
-
i0.ɵɵtext(10, "C\u00F3digo");
|
|
93
|
-
i0.ɵɵelementEnd();
|
|
94
|
-
i0.ɵɵelementStart(11, "th", 28);
|
|
95
|
-
i0.ɵɵtext(12, "Descripcion");
|
|
96
|
-
i0.ɵɵelementEnd();
|
|
97
|
-
i0.ɵɵelement(13, "th", 25);
|
|
98
|
-
i0.ɵɵtemplate(14, SeleccionaArticuloComponent_ng_template_26_th_14_Template, 2, 0, "th", 29)(15, SeleccionaArticuloComponent_ng_template_26_th_15_Template, 2, 0, "th", 29)(16, SeleccionaArticuloComponent_ng_template_26_th_16_Template, 2, 0, "th", 29)(17, SeleccionaArticuloComponent_ng_template_26_th_17_Template, 2, 0, "th", 29)(18, SeleccionaArticuloComponent_ng_template_26_th_18_Template, 2, 0, "th", 29)(19, SeleccionaArticuloComponent_ng_template_26_th_19_Template, 2, 0, "th", 27);
|
|
99
|
-
i0.ɵɵelementStart(20, "th", 25);
|
|
100
|
-
i0.ɵɵtext(21, "Existencia por Unidad");
|
|
101
|
-
i0.ɵɵelementEnd();
|
|
102
|
-
i0.ɵɵtemplate(22, SeleccionaArticuloComponent_ng_template_26_th_22_Template, 2, 1, "th", 30);
|
|
103
|
-
i0.ɵɵelementEnd();
|
|
104
|
-
} if (rf & 2) {
|
|
105
|
-
const ctx_r3 = i0.ɵɵnextContext();
|
|
106
|
-
i0.ɵɵadvance(7);
|
|
107
|
-
i0.ɵɵproperty("ngIf", ctx_r3.manejaUnidadSecundaria);
|
|
108
|
-
i0.ɵɵadvance();
|
|
109
|
-
i0.ɵɵproperty("ngIf", ctx_r3.manejaUnidadSecundaria);
|
|
110
|
-
i0.ɵɵadvance(6);
|
|
111
|
-
i0.ɵɵproperty("ngIf", ctx_r3.configuracion.tipoPrecio !== "costo");
|
|
112
|
-
i0.ɵɵadvance();
|
|
113
|
-
i0.ɵɵproperty("ngIf", ctx_r3.configuracion.tipoPrecio !== "costo");
|
|
114
|
-
i0.ɵɵadvance();
|
|
115
|
-
i0.ɵɵproperty("ngIf", ctx_r3.configuracion.tipoPrecio !== "costo");
|
|
116
|
-
i0.ɵɵadvance();
|
|
117
|
-
i0.ɵɵproperty("ngIf", ctx_r3.configuracion.tipoPrecio !== "costo");
|
|
118
|
-
i0.ɵɵadvance();
|
|
119
|
-
i0.ɵɵproperty("ngIf", ctx_r3.configuracion.tipoPrecio !== "costo");
|
|
120
|
-
i0.ɵɵadvance();
|
|
121
|
-
i0.ɵɵproperty("ngIf", ctx_r3.configuracion.tipoPrecio === "costo");
|
|
122
|
-
i0.ɵɵadvance(3);
|
|
123
|
-
i0.ɵɵproperty("ngForOf", ctx_r3.clasificadorList);
|
|
124
|
-
} }
|
|
125
|
-
function SeleccionaArticuloComponent_ng_template_27_td_1_Template(rf, ctx) { if (rf & 1) {
|
|
126
|
-
i0.ɵɵelementStart(0, "td", 23);
|
|
127
|
-
i0.ɵɵtext(1, "Movimiento.NoAsignado");
|
|
128
|
-
i0.ɵɵelementEnd();
|
|
129
|
-
} }
|
|
130
|
-
function SeleccionaArticuloComponent_ng_template_27_td_2_Template(rf, ctx) { if (rf & 1) {
|
|
131
|
-
i0.ɵɵelementStart(0, "td", 39);
|
|
132
|
-
i0.ɵɵtext(1);
|
|
133
|
-
i0.ɵɵelementEnd();
|
|
134
|
-
} if (rf & 2) {
|
|
135
|
-
const rowData_r6 = i0.ɵɵnextContext().$implicit;
|
|
136
|
-
i0.ɵɵadvance();
|
|
137
|
-
i0.ɵɵtextInterpolate(rowData_r6.ubicacionCodigo);
|
|
138
|
-
} }
|
|
139
|
-
function SeleccionaArticuloComponent_ng_template_27_td_7_Template(rf, ctx) { if (rf & 1) {
|
|
140
|
-
i0.ɵɵelementStart(0, "td", 44);
|
|
141
|
-
i0.ɵɵtext(1);
|
|
142
|
-
i0.ɵɵelementEnd();
|
|
143
|
-
} if (rf & 2) {
|
|
144
|
-
const rowData_r6 = i0.ɵɵnextContext().$implicit;
|
|
145
|
-
i0.ɵɵadvance();
|
|
146
|
-
i0.ɵɵtextInterpolate(rowData_r6.existenciaSecundaria);
|
|
147
|
-
} }
|
|
148
|
-
function SeleccionaArticuloComponent_ng_template_27_td_8_Template(rf, ctx) { if (rf & 1) {
|
|
149
|
-
i0.ɵɵelementStart(0, "td", 36);
|
|
150
|
-
i0.ɵɵtext(1);
|
|
151
|
-
i0.ɵɵelementEnd();
|
|
152
|
-
} if (rf & 2) {
|
|
153
|
-
const rowData_r6 = i0.ɵɵnextContext().$implicit;
|
|
154
|
-
i0.ɵɵadvance();
|
|
155
|
-
i0.ɵɵtextInterpolate(rowData_r6.unidadSecundariaCodigo);
|
|
156
|
-
} }
|
|
157
|
-
function SeleccionaArticuloComponent_ng_template_27_td_15_Template(rf, ctx) { if (rf & 1) {
|
|
158
|
-
i0.ɵɵelementStart(0, "td", 39);
|
|
159
|
-
i0.ɵɵtext(1);
|
|
160
|
-
i0.ɵɵpipe(2, "currency");
|
|
161
|
-
i0.ɵɵelementEnd();
|
|
162
|
-
} if (rf & 2) {
|
|
163
|
-
const rowData_r6 = i0.ɵɵnextContext().$implicit;
|
|
164
|
-
i0.ɵɵadvance();
|
|
165
|
-
i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(2, 1, rowData_r6.precioConImpuestos), " ");
|
|
166
|
-
} }
|
|
167
|
-
function SeleccionaArticuloComponent_ng_template_27_td_16_Template(rf, ctx) { if (rf & 1) {
|
|
168
|
-
i0.ɵɵelementStart(0, "td", 39);
|
|
169
|
-
i0.ɵɵtext(1);
|
|
170
|
-
i0.ɵɵpipe(2, "currency");
|
|
171
|
-
i0.ɵɵelementEnd();
|
|
172
|
-
} if (rf & 2) {
|
|
173
|
-
const rowData_r6 = i0.ɵɵnextContext().$implicit;
|
|
174
|
-
i0.ɵɵadvance();
|
|
175
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, rowData_r6.precio2ConImpuestos));
|
|
176
|
-
} }
|
|
177
|
-
function SeleccionaArticuloComponent_ng_template_27_td_17_Template(rf, ctx) { if (rf & 1) {
|
|
178
|
-
i0.ɵɵelementStart(0, "td", 39);
|
|
179
|
-
i0.ɵɵtext(1);
|
|
180
|
-
i0.ɵɵpipe(2, "currency");
|
|
181
|
-
i0.ɵɵelementEnd();
|
|
182
|
-
} if (rf & 2) {
|
|
183
|
-
const rowData_r6 = i0.ɵɵnextContext().$implicit;
|
|
184
|
-
i0.ɵɵadvance();
|
|
185
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, rowData_r6.precio3ConImpuestos));
|
|
186
|
-
} }
|
|
187
|
-
function SeleccionaArticuloComponent_ng_template_27_td_18_Template(rf, ctx) { if (rf & 1) {
|
|
188
|
-
i0.ɵɵelementStart(0, "td", 39);
|
|
189
|
-
i0.ɵɵtext(1);
|
|
190
|
-
i0.ɵɵpipe(2, "currency");
|
|
191
|
-
i0.ɵɵelementEnd();
|
|
192
|
-
} if (rf & 2) {
|
|
193
|
-
const rowData_r6 = i0.ɵɵnextContext().$implicit;
|
|
194
|
-
i0.ɵɵadvance();
|
|
195
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, rowData_r6.precio4ConImpuestos));
|
|
196
|
-
} }
|
|
197
|
-
function SeleccionaArticuloComponent_ng_template_27_td_19_Template(rf, ctx) { if (rf & 1) {
|
|
198
|
-
i0.ɵɵelementStart(0, "td", 39);
|
|
199
|
-
i0.ɵɵtext(1);
|
|
200
|
-
i0.ɵɵpipe(2, "currency");
|
|
201
|
-
i0.ɵɵelementEnd();
|
|
202
|
-
} if (rf & 2) {
|
|
203
|
-
const rowData_r6 = i0.ɵɵnextContext().$implicit;
|
|
204
|
-
i0.ɵɵadvance();
|
|
205
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, rowData_r6.precio5ConImpuestos));
|
|
206
|
-
} }
|
|
207
|
-
function SeleccionaArticuloComponent_ng_template_27_td_20_Template(rf, ctx) { if (rf & 1) {
|
|
208
|
-
i0.ɵɵelementStart(0, "td", 36);
|
|
209
|
-
i0.ɵɵtext(1);
|
|
210
|
-
i0.ɵɵpipe(2, "currency");
|
|
211
|
-
i0.ɵɵelementEnd();
|
|
212
|
-
} if (rf & 2) {
|
|
213
|
-
const rowData_r6 = i0.ɵɵnextContext().$implicit;
|
|
214
|
-
i0.ɵɵadvance();
|
|
215
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, rowData_r6.precio));
|
|
216
|
-
} }
|
|
217
|
-
function SeleccionaArticuloComponent_ng_template_27_div_22_Template(rf, ctx) { if (rf & 1) {
|
|
218
|
-
i0.ɵɵelementStart(0, "div", 45)(1, "div", 46)(2, "label", 47);
|
|
219
|
-
i0.ɵɵtext(3);
|
|
220
|
-
i0.ɵɵelementEnd()();
|
|
221
|
-
i0.ɵɵelementStart(4, "div", 46)(5, "label", 47);
|
|
222
|
-
i0.ɵɵtext(6);
|
|
223
|
-
i0.ɵɵpipe(7, "number");
|
|
224
|
-
i0.ɵɵelementEnd()()();
|
|
225
|
-
} if (rf & 2) {
|
|
226
|
-
const item_r7 = ctx.$implicit;
|
|
227
|
-
i0.ɵɵadvance(3);
|
|
228
|
-
i0.ɵɵtextInterpolate(item_r7.unidad_codigo);
|
|
229
|
-
i0.ɵɵadvance(3);
|
|
230
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(7, 2, item_r7.unidad_existencia, "1.2-2"));
|
|
231
|
-
} }
|
|
232
|
-
function SeleccionaArticuloComponent_ng_template_27_td_23_Template(rf, ctx) { if (rf & 1) {
|
|
233
|
-
i0.ɵɵelementStart(0, "td", 39);
|
|
234
|
-
i0.ɵɵtext(1);
|
|
235
|
-
i0.ɵɵelementEnd();
|
|
236
|
-
} if (rf & 2) {
|
|
237
|
-
const itemData_r8 = ctx.$implicit;
|
|
238
|
-
i0.ɵɵadvance();
|
|
239
|
-
i0.ɵɵtextInterpolate(itemData_r8.valor);
|
|
240
|
-
} }
|
|
241
|
-
function SeleccionaArticuloComponent_ng_template_27_Template(rf, ctx) { if (rf & 1) {
|
|
242
|
-
const _r5 = i0.ɵɵgetCurrentView();
|
|
243
|
-
i0.ɵɵelementStart(0, "tr", 32);
|
|
244
|
-
i0.ɵɵtemplate(1, SeleccionaArticuloComponent_ng_template_27_td_1_Template, 2, 0, "td", 33)(2, SeleccionaArticuloComponent_ng_template_27_td_2_Template, 2, 1, "td", 34);
|
|
245
|
-
i0.ɵɵelementStart(3, "td", 35);
|
|
246
|
-
i0.ɵɵtext(4);
|
|
247
|
-
i0.ɵɵelementEnd();
|
|
248
|
-
i0.ɵɵelementStart(5, "td", 36);
|
|
249
|
-
i0.ɵɵtext(6);
|
|
250
|
-
i0.ɵɵelementEnd();
|
|
251
|
-
i0.ɵɵtemplate(7, SeleccionaArticuloComponent_ng_template_27_td_7_Template, 2, 1, "td", 37)(8, SeleccionaArticuloComponent_ng_template_27_td_8_Template, 2, 1, "td", 38);
|
|
252
|
-
i0.ɵɵelementStart(9, "td", 39);
|
|
253
|
-
i0.ɵɵtext(10);
|
|
254
|
-
i0.ɵɵelementEnd();
|
|
255
|
-
i0.ɵɵelementStart(11, "td", 40);
|
|
256
|
-
i0.ɵɵtext(12);
|
|
257
|
-
i0.ɵɵelementEnd();
|
|
258
|
-
i0.ɵɵelementStart(13, "td", 36)(14, "button", 41);
|
|
259
|
-
i0.ɵɵlistener("click", function SeleccionaArticuloComponent_ng_template_27_Template_button_click_14_listener() { const rowData_r6 = i0.ɵɵrestoreView(_r5).$implicit; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onShowInformacion(rowData_r6)); });
|
|
260
|
-
i0.ɵɵelementEnd()();
|
|
261
|
-
i0.ɵɵtemplate(15, SeleccionaArticuloComponent_ng_template_27_td_15_Template, 3, 3, "td", 34)(16, SeleccionaArticuloComponent_ng_template_27_td_16_Template, 3, 3, "td", 34)(17, SeleccionaArticuloComponent_ng_template_27_td_17_Template, 3, 3, "td", 34)(18, SeleccionaArticuloComponent_ng_template_27_td_18_Template, 3, 3, "td", 34)(19, SeleccionaArticuloComponent_ng_template_27_td_19_Template, 3, 3, "td", 34)(20, SeleccionaArticuloComponent_ng_template_27_td_20_Template, 3, 3, "td", 38);
|
|
262
|
-
i0.ɵɵelementStart(21, "td", 36);
|
|
263
|
-
i0.ɵɵtemplate(22, SeleccionaArticuloComponent_ng_template_27_div_22_Template, 8, 5, "div", 42);
|
|
264
|
-
i0.ɵɵelementEnd();
|
|
265
|
-
i0.ɵɵtemplate(23, SeleccionaArticuloComponent_ng_template_27_td_23_Template, 2, 1, "td", 43);
|
|
266
|
-
i0.ɵɵelementEnd();
|
|
267
|
-
} if (rf & 2) {
|
|
268
|
-
const rowData_r6 = ctx.$implicit;
|
|
269
|
-
const ctx_r3 = i0.ɵɵnextContext();
|
|
270
|
-
i0.ɵɵproperty("pSelectableRow", rowData_r6);
|
|
271
|
-
i0.ɵɵadvance();
|
|
272
|
-
i0.ɵɵproperty("ngIf", !rowData_r6.ubicacionCodigo);
|
|
273
|
-
i0.ɵɵadvance();
|
|
274
|
-
i0.ɵɵproperty("ngIf", rowData_r6.ubicacionCodigo);
|
|
275
|
-
i0.ɵɵadvance(2);
|
|
276
|
-
i0.ɵɵtextInterpolate(rowData_r6.existencia);
|
|
277
|
-
i0.ɵɵadvance(2);
|
|
278
|
-
i0.ɵɵtextInterpolate(rowData_r6.unidadCodigo);
|
|
279
|
-
i0.ɵɵadvance();
|
|
280
|
-
i0.ɵɵproperty("ngIf", ctx_r3.manejaUnidadSecundaria);
|
|
281
|
-
i0.ɵɵadvance();
|
|
282
|
-
i0.ɵɵproperty("ngIf", ctx_r3.manejaUnidadSecundaria);
|
|
283
|
-
i0.ɵɵadvance(2);
|
|
284
|
-
i0.ɵɵtextInterpolate(rowData_r6.articulo.codigo);
|
|
285
|
-
i0.ɵɵadvance(2);
|
|
286
|
-
i0.ɵɵtextInterpolate(rowData_r6.articulo.descripcion);
|
|
287
|
-
i0.ɵɵadvance(3);
|
|
288
|
-
i0.ɵɵproperty("ngIf", ctx_r3.configuracion.tipoPrecio !== "costo");
|
|
289
|
-
i0.ɵɵadvance();
|
|
290
|
-
i0.ɵɵproperty("ngIf", ctx_r3.configuracion.tipoPrecio !== "costo");
|
|
291
|
-
i0.ɵɵadvance();
|
|
292
|
-
i0.ɵɵproperty("ngIf", ctx_r3.configuracion.tipoPrecio !== "costo");
|
|
293
|
-
i0.ɵɵadvance();
|
|
294
|
-
i0.ɵɵproperty("ngIf", ctx_r3.configuracion.tipoPrecio !== "costo");
|
|
295
|
-
i0.ɵɵadvance();
|
|
296
|
-
i0.ɵɵproperty("ngIf", ctx_r3.configuracion.tipoPrecio !== "costo");
|
|
297
|
-
i0.ɵɵadvance();
|
|
298
|
-
i0.ɵɵproperty("ngIf", ctx_r3.configuracion.tipoPrecio === "costo");
|
|
299
|
-
i0.ɵɵadvance(2);
|
|
300
|
-
i0.ɵɵproperty("ngForOf", rowData_r6.existenciaUnidades);
|
|
301
|
-
i0.ɵɵadvance();
|
|
302
|
-
i0.ɵɵproperty("ngForOf", rowData_r6.articuloClasificadorList);
|
|
303
|
-
} }
|
|
304
|
-
function SeleccionaArticuloComponent_lib_seleccion_articulo_informacion_29_Template(rf, ctx) { if (rf & 1) {
|
|
305
|
-
const _r9 = i0.ɵɵgetCurrentView();
|
|
306
|
-
i0.ɵɵelementStart(0, "lib-seleccion-articulo-informacion", 48);
|
|
307
|
-
i0.ɵɵlistener("eventSelection", function SeleccionaArticuloComponent_lib_seleccion_articulo_informacion_29_Template_lib_seleccion_articulo_informacion_eventSelection_0_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onEventInformacion($event)); });
|
|
308
|
-
i0.ɵɵelementEnd();
|
|
309
|
-
} if (rf & 2) {
|
|
310
|
-
const ctx_r3 = i0.ɵɵnextContext();
|
|
311
|
-
i0.ɵɵproperty("showModal", ctx_r3.showModalInformacion)("articulo", ctx_r3.articuloSelected);
|
|
312
|
-
} }
|
|
6
|
+
import * as i1 from "primeng/api";
|
|
7
|
+
import * as i2 from "primeng/tooltip";
|
|
8
|
+
import * as i3 from "primeng/table";
|
|
9
|
+
import * as i4 from "primeng/button";
|
|
10
|
+
import * as i5 from "primeng/inputtext";
|
|
11
|
+
import * as i6 from "primeng/paginator";
|
|
12
|
+
import * as i7 from "@angular/forms";
|
|
13
|
+
import * as i8 from "primeng/dialog";
|
|
14
|
+
import * as i9 from "@ngx-translate/core";
|
|
15
|
+
import * as i10 from "../seleccion-articulo-informacion/seleccion-articulo-informacion.component";
|
|
16
|
+
import * as i11 from "@angular/common";
|
|
313
17
|
export class SeleccionaArticuloComponent {
|
|
314
|
-
constructor(
|
|
315
|
-
this._stockService = _stockService;
|
|
316
|
-
this._paginateService = _paginateService;
|
|
317
|
-
this._almacenService = _almacenService;
|
|
18
|
+
constructor() {
|
|
318
19
|
this.manejaUnidadSecundaria = false;
|
|
319
20
|
this.emitFilaSeleccionada = new EventEmitter();
|
|
320
21
|
this.emitShowArticulos = new EventEmitter();
|
|
22
|
+
this._stockService = inject(StockService);
|
|
23
|
+
this._paginateService = inject(PaginateService);
|
|
24
|
+
this._almacenService = inject(AlmacenService);
|
|
321
25
|
this.articulosList = [];
|
|
322
26
|
this.ordenar = [];
|
|
323
27
|
this.busquedaArticulos = {
|
|
324
28
|
tipoBusqueda: ''
|
|
325
29
|
};
|
|
30
|
+
this.cargando = false;
|
|
326
31
|
this.showModal = false;
|
|
327
32
|
this.showModalInformacion = false;
|
|
328
33
|
this.showFirstTime = true;
|
|
329
34
|
this.clasificadorList = [];
|
|
330
|
-
this.
|
|
35
|
+
this.maximizado = false;
|
|
331
36
|
}
|
|
332
37
|
ngOnInit() {
|
|
333
38
|
this.page = this._paginateService.getPage();
|
|
@@ -337,9 +42,39 @@ export class SeleccionaArticuloComponent {
|
|
|
337
42
|
this.showFirstTime = true;
|
|
338
43
|
this._almacenService.getAll(this.configuracion.params).subscribe((data) => {
|
|
339
44
|
this.almacenList = data.data;
|
|
45
|
+
// El valor se reaplica cuando las opciones ya existen en el select
|
|
46
|
+
setTimeout(() => { this.almacenSeleccionado = this.almacenId; });
|
|
340
47
|
});
|
|
341
48
|
this.busquedaArticulos.tipoBusqueda = 'CD';
|
|
342
|
-
|
|
49
|
+
}
|
|
50
|
+
/** Id del almacén del movimiento; acepta tanto id numérico como objeto Almacen. */
|
|
51
|
+
get almacenId() {
|
|
52
|
+
const almacen = this.movimiento ? this.movimiento.almacen : null;
|
|
53
|
+
return (almacen && typeof almacen === 'object') ? almacen.id : almacen;
|
|
54
|
+
}
|
|
55
|
+
/** Número de columnas visibles de la tabla, para el colspan del estado vacío. */
|
|
56
|
+
get totalColumnas() {
|
|
57
|
+
let total = 6; // ubicación, existencia, unidad, código, descripción, detalle
|
|
58
|
+
if (this.manejaUnidadSecundaria) {
|
|
59
|
+
total += 2;
|
|
60
|
+
}
|
|
61
|
+
total += (this.configuracion && this.configuracion.tipoPrecio === 'costo') ? 1 : 5;
|
|
62
|
+
if (this.mostrarExistenciaPorUnidad) {
|
|
63
|
+
total += 1;
|
|
64
|
+
}
|
|
65
|
+
return total + (this.clasificadorList ? this.clasificadorList.length : 0);
|
|
66
|
+
}
|
|
67
|
+
/** La columna "Existencia por Unidad" solo se muestra si algún artículo trae datos. */
|
|
68
|
+
get mostrarExistenciaPorUnidad() {
|
|
69
|
+
return Array.isArray(this.articulosList) &&
|
|
70
|
+
this.articulosList.some((row) => row.existenciaUnidades && row.existenciaUnidades.length > 0);
|
|
71
|
+
}
|
|
72
|
+
/** Altura del cuerpo del diálogo: ocupa el viewport y crece al maximizar. */
|
|
73
|
+
get estiloContenido() {
|
|
74
|
+
const base = { display: 'flex', 'flex-direction': 'column', 'min-height': '0' };
|
|
75
|
+
return this.maximizado
|
|
76
|
+
? { ...base, flex: '1 1 auto' }
|
|
77
|
+
: { ...base, height: 'calc(90vh - 9.5rem)' };
|
|
343
78
|
}
|
|
344
79
|
pagina(e) {
|
|
345
80
|
this.page.rows = e.rows;
|
|
@@ -352,8 +87,19 @@ export class SeleccionaArticuloComponent {
|
|
|
352
87
|
this.obtenerExistenciaArticulos();
|
|
353
88
|
this.showFirstTime = false;
|
|
354
89
|
}
|
|
90
|
+
// El diálogo termina de montar su contenido después del evento onShow
|
|
91
|
+
setTimeout(() => {
|
|
92
|
+
if (this.campoBusqueda) {
|
|
93
|
+
this.campoBusqueda.nativeElement.focus();
|
|
94
|
+
}
|
|
95
|
+
});
|
|
355
96
|
}
|
|
356
97
|
obtenerExistenciaArticulos() {
|
|
98
|
+
if (this.busquedaArticulos.tipoBusqueda && !this.busquedaArticulos.key) {
|
|
99
|
+
// Sin término de búsqueda el backend no regresa resultados
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
this.cargando = true;
|
|
357
103
|
this.busquedaArticulos.params = this._paginateService.getParams(this.page);
|
|
358
104
|
const parametros = {
|
|
359
105
|
almacen: (this.configuracion.noOcupaAlamacen ? null : this.movimiento.almacen),
|
|
@@ -371,8 +117,11 @@ export class SeleccionaArticuloComponent {
|
|
|
371
117
|
if (!this.showModal) {
|
|
372
118
|
this.showModal = true;
|
|
373
119
|
}
|
|
120
|
+
this.cargando = false;
|
|
374
121
|
}).catch(e => {
|
|
375
122
|
this.articulosList = [];
|
|
123
|
+
this.page.total = 0;
|
|
124
|
+
this.cargando = false;
|
|
376
125
|
});
|
|
377
126
|
}
|
|
378
127
|
obtenerExistenciaArticulosVal() {
|
|
@@ -390,9 +139,6 @@ export class SeleccionaArticuloComponent {
|
|
|
390
139
|
emitirShowArticulos() {
|
|
391
140
|
this.emitShowArticulos.emit(0);
|
|
392
141
|
}
|
|
393
|
-
seriesArticulo(series) {
|
|
394
|
-
console.log(series);
|
|
395
|
-
}
|
|
396
142
|
onShowInformacion(eventArticulo) {
|
|
397
143
|
this.articuloSelected = eventArticulo;
|
|
398
144
|
this.showModalInformacion = true;
|
|
@@ -400,87 +146,26 @@ export class SeleccionaArticuloComponent {
|
|
|
400
146
|
onEventInformacion(event) {
|
|
401
147
|
this.showModalInformacion = event.status;
|
|
402
148
|
}
|
|
403
|
-
/** @nocollapse */ static { this.ɵfac =
|
|
404
|
-
/** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: SeleccionaArticuloComponent, selectors: [["app-selecciona-articulo"]], inputs: { configuracion: "configuracion", showArticulos: "showArticulos", movimiento: "movimiento", manejaUnidadSecundaria: "manejaUnidadSecundaria" }, outputs: { emitFilaSeleccionada: "emitFilaSeleccionada", emitShowArticulos: "emitShowArticulos" }, decls: 30, vars: 24, consts: [["dt", ""], [3, "visibleChange", "onShow", "onHide", "header", "visible", "maximizable", "baseZIndex", "blockScroll", "minY"], [1, "grid", "grid-fluid"], [1, "col-12", "md:col-6", "lg:col-6"], [2, "display", "flex"], [2, "width", "115px"], ["pInputText", "", 3, "ngModelChange", "change", "ngModel"], ["value", "C"], ["value", "D"], ["value", "CD"], ["value", "CI"], ["type", "text", "pInputText", "", "id", "key", 2, "width", "200px", 3, "ngModelChange", "keypress", "ngModel"], ["pButton", "", "type", "button", "icon", "pi pi-search", "styleClass", "p-button-secondary", 3, "click"], [2, "width", "100px"], ["for", "almacen"], ["pInputText", "", "disabled", "", "id", "almacen", 2, "width", "200px", 3, "ngModelChange", "change", "ngModel"], [3, "value", 4, "ngFor", "ngForOf"], ["scrollHeight", "400px", "responsiveLayout", "scroll", "selectionMode", "single", 3, "onRowSelect", "value", "scrollable"], ["pTemplate", "header"], ["pTemplate", "body"], [3, "onPageChange", "rows", "totalRecords", "pageLinkSize", "rowsPerPageOptions"], [3, "showModal", "articulo", "eventSelection", 4, "ngIf"], [3, "value"], ["translate", "", 2, "width", "80px"], ["translate", "", 2, "width", "70px"], ["translate", "", 2, "width", "40px"], ["style", "width: 50px", "translate", "", 4, "ngIf"], ["style", "width: 40px", "translate", "", 4, "ngIf"], ["translate", "", 2, "width", "120px"], ["style", "width: 80px", "translate", "", 4, "ngIf"], ["style", "width: 80px", "translate", "", 4, "ngFor", "ngForOf"], ["translate", "", 2, "width", "50px"], [3, "pSelectableRow"], ["style", "width: 80px;", "translate", "", 4, "ngIf"], ["style", "width: 80px;", 4, "ngIf"], [2, "width", "70px"], [2, "width", "40px"], ["style", "width: 50px;", 4, "ngIf"], ["style", "width: 40px;", 4, "ngIf"], [2, "width", "80px"], [2, "width", "120px"], ["pButton", "", "type", "button", "icon", "pi pi-eye", 1, "ui-button-raised", "ui-button-primary", 3, "click"], ["class", "row justify-content-between", 4, "ngFor", "ngForOf"], ["style", "width: 80px;", 4, "ngFor", "ngForOf"], [2, "width", "50px"], [1, "row", "justify-content-between"], [1, "col-lg-4"], ["for", ""], [3, "eventSelection", "showModal", "articulo"]], template: function SeleccionaArticuloComponent_Template(rf, ctx) { if (rf & 1) {
|
|
405
|
-
const _r1 = i0.ɵɵgetCurrentView();
|
|
406
|
-
i0.ɵɵelementStart(0, "p-dialog", 1);
|
|
407
|
-
i0.ɵɵpipe(1, "translate");
|
|
408
|
-
i0.ɵɵtwoWayListener("visibleChange", function SeleccionaArticuloComponent_Template_p_dialog_visibleChange_0_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.showArticulos, $event) || (ctx.showArticulos = $event); return i0.ɵɵresetView($event); });
|
|
409
|
-
i0.ɵɵlistener("onShow", function SeleccionaArticuloComponent_Template_p_dialog_onShow_0_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.obtenerExistenciaArticulosShow()); })("onHide", function SeleccionaArticuloComponent_Template_p_dialog_onHide_0_listener() { i0.ɵɵrestoreView(_r1); ctx.busquedaArticulos = { tipoBusqueda: "" }; return i0.ɵɵresetView(ctx.emitirShowArticulos()); });
|
|
410
|
-
i0.ɵɵelementStart(2, "div", 2)(3, "div", 3)(4, "div", 4)(5, "div", 5)(6, "select", 6);
|
|
411
|
-
i0.ɵɵtwoWayListener("ngModelChange", function SeleccionaArticuloComponent_Template_select_ngModelChange_6_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.busquedaArticulos.tipoBusqueda, $event) || (ctx.busquedaArticulos.tipoBusqueda = $event); return i0.ɵɵresetView($event); });
|
|
412
|
-
i0.ɵɵlistener("change", function SeleccionaArticuloComponent_Template_select_change_6_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.obtenerExistenciaArticulosVal()); });
|
|
413
|
-
i0.ɵɵelementStart(7, "option", 7);
|
|
414
|
-
i0.ɵɵtext(8, "Codigo");
|
|
415
|
-
i0.ɵɵelementEnd();
|
|
416
|
-
i0.ɵɵelementStart(9, "option", 8);
|
|
417
|
-
i0.ɵɵtext(10, "Descripcion");
|
|
418
|
-
i0.ɵɵelementEnd();
|
|
419
|
-
i0.ɵɵelementStart(11, "option", 9);
|
|
420
|
-
i0.ɵɵtext(12, "Coincidencia");
|
|
421
|
-
i0.ɵɵelementEnd();
|
|
422
|
-
i0.ɵɵelementStart(13, "option", 10);
|
|
423
|
-
i0.ɵɵtext(14, "Igual a");
|
|
424
|
-
i0.ɵɵelementEnd()()();
|
|
425
|
-
i0.ɵɵelementStart(15, "input", 11);
|
|
426
|
-
i0.ɵɵtwoWayListener("ngModelChange", function SeleccionaArticuloComponent_Template_input_ngModelChange_15_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.busquedaArticulos.key, $event) || (ctx.busquedaArticulos.key = $event); return i0.ɵɵresetView($event); });
|
|
427
|
-
i0.ɵɵlistener("keypress", function SeleccionaArticuloComponent_Template_input_keypress_15_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.obtenerExistenciaArticulosKey($event)); });
|
|
428
|
-
i0.ɵɵelementEnd();
|
|
429
|
-
i0.ɵɵelementStart(16, "button", 12);
|
|
430
|
-
i0.ɵɵlistener("click", function SeleccionaArticuloComponent_Template_button_click_16_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.obtenerExistenciaArticulos()); });
|
|
431
|
-
i0.ɵɵelementEnd()()();
|
|
432
|
-
i0.ɵɵelementStart(17, "div", 3)(18, "div", 4)(19, "div", 13)(20, "label", 14);
|
|
433
|
-
i0.ɵɵtext(21, "Almacen:");
|
|
434
|
-
i0.ɵɵelementEnd()();
|
|
435
|
-
i0.ɵɵelementStart(22, "select", 15);
|
|
436
|
-
i0.ɵɵtwoWayListener("ngModelChange", function SeleccionaArticuloComponent_Template_select_ngModelChange_22_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.movimiento.almacen, $event) || (ctx.movimiento.almacen = $event); return i0.ɵɵresetView($event); });
|
|
437
|
-
i0.ɵɵlistener("change", function SeleccionaArticuloComponent_Template_select_change_22_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.obtenerExistenciaArticulosVal()); });
|
|
438
|
-
i0.ɵɵtemplate(23, SeleccionaArticuloComponent_option_23_Template, 2, 2, "option", 16);
|
|
439
|
-
i0.ɵɵelementEnd()()()();
|
|
440
|
-
i0.ɵɵelementStart(24, "p-table", 17, 0);
|
|
441
|
-
i0.ɵɵlistener("onRowSelect", function SeleccionaArticuloComponent_Template_p_table_onRowSelect_24_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.filaSeleccionada($event)); });
|
|
442
|
-
i0.ɵɵtemplate(26, SeleccionaArticuloComponent_ng_template_26_Template, 23, 9, "ng-template", 18)(27, SeleccionaArticuloComponent_ng_template_27_Template, 24, 17, "ng-template", 19);
|
|
443
|
-
i0.ɵɵelementEnd();
|
|
444
|
-
i0.ɵɵelementStart(28, "p-paginator", 20);
|
|
445
|
-
i0.ɵɵlistener("onPageChange", function SeleccionaArticuloComponent_Template_p_paginator_onPageChange_28_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.pagina($event)); });
|
|
446
|
-
i0.ɵɵelementEnd()();
|
|
447
|
-
i0.ɵɵtemplate(29, SeleccionaArticuloComponent_lib_seleccion_articulo_informacion_29_Template, 1, 2, "lib-seleccion-articulo-informacion", 21);
|
|
448
|
-
} if (rf & 2) {
|
|
449
|
-
i0.ɵɵstyleMap(i0.ɵɵpureFunction1(21, _c0, ctx.size + "px"));
|
|
450
|
-
i0.ɵɵpropertyInterpolate("header", i0.ɵɵpipeBind1(1, 19, "Articulos"));
|
|
451
|
-
i0.ɵɵtwoWayProperty("visible", ctx.showArticulos);
|
|
452
|
-
i0.ɵɵproperty("maximizable", true)("baseZIndex", 10000)("blockScroll", true)("minY", 70);
|
|
453
|
-
i0.ɵɵadvance(6);
|
|
454
|
-
i0.ɵɵtwoWayProperty("ngModel", ctx.busquedaArticulos.tipoBusqueda);
|
|
455
|
-
i0.ɵɵadvance(9);
|
|
456
|
-
i0.ɵɵtwoWayProperty("ngModel", ctx.busquedaArticulos.key);
|
|
457
|
-
i0.ɵɵadvance(7);
|
|
458
|
-
i0.ɵɵtwoWayProperty("ngModel", ctx.movimiento.almacen);
|
|
459
|
-
i0.ɵɵadvance();
|
|
460
|
-
i0.ɵɵproperty("ngForOf", ctx.almacenList);
|
|
461
|
-
i0.ɵɵadvance();
|
|
462
|
-
i0.ɵɵproperty("value", ctx.articulosList)("scrollable", true);
|
|
463
|
-
i0.ɵɵadvance(4);
|
|
464
|
-
i0.ɵɵproperty("rows", ctx.page.rows)("totalRecords", ctx.page.total)("pageLinkSize", 5)("rowsPerPageOptions", i0.ɵɵpureFunction0(23, _c1));
|
|
465
|
-
i0.ɵɵadvance();
|
|
466
|
-
i0.ɵɵproperty("ngIf", ctx.showModalInformacion);
|
|
467
|
-
} }, dependencies: [i4.NgForOf, i4.NgIf, i5.PrimeTemplate, i6.Table, i6.SelectableRow, i7.ButtonDirective, i8.InputText, i9.Paginator, i10.NgSelectOption, i10.ɵNgSelectMultipleOption, i10.DefaultValueAccessor, i10.SelectControlValueAccessor, i10.NgControlStatus, i10.NgModel, i11.Dialog, i12.TranslateDirective, i13.SeleccionArticuloInformacionComponent, i4.DecimalPipe, i4.CurrencyPipe, i12.TranslatePipe], styles: ["tr[_ngcontent-%COMP%]:hover{background-color:#34a835!important;color:#fff!important}table[_ngcontent-%COMP%]{position:absolute}"] }); }
|
|
149
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SeleccionaArticuloComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
150
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SeleccionaArticuloComponent, selector: "app-selecciona-articulo", inputs: { configuracion: "configuracion", showArticulos: "showArticulos", movimiento: "movimiento", manejaUnidadSecundaria: "manejaUnidadSecundaria" }, outputs: { emitFilaSeleccionada: "emitFilaSeleccionada", emitShowArticulos: "emitShowArticulos" }, viewQueries: [{ propertyName: "campoBusqueda", first: true, predicate: ["campoBusqueda"], descendants: true }], ngImport: i0, template: "<!--inicia seleccion de articulos-->\n<p-dialog header=\"{{ 'Articulos' | translate }}\" [(visible)]=\"showArticulos\" [maximizable]=\"true\"\n (onShow)=\"obtenerExistenciaArticulosShow()\" (onHide)=\"busquedaArticulos = { tipoBusqueda : ''}; emitirShowArticulos()\"\n (onMaximize)=\"maximizado = $event.maximized\"\n [baseZIndex]=\"10000\" [blockScroll]=\"true\" [style]=\"{ width: '95vw' }\" [minY]=\"70\"\n [contentStyle]=\"estiloContenido\">\n\n <div class=\"sa-cuerpo\">\n\n <div class=\"grid sa-filtros\">\n <div class=\"col-12 md:col-6 xl:col-5\">\n <label class=\"sa-etiqueta\" for=\"sa-tipo-busqueda\">Buscar por</label>\n <div class=\"p-inputgroup\">\n <select pInputText class=\"sa-tipo-busqueda\" id=\"sa-tipo-busqueda\"\n [(ngModel)]=\"busquedaArticulos.tipoBusqueda\" (change)=\"obtenerExistenciaArticulosVal()\">\n <option value=\"C\">C\u00F3digo</option>\n <option value=\"D\">Descripci\u00F3n</option>\n <option value=\"CD\">Coincidencia</option>\n <option value=\"CI\">Igual a</option>\n </select>\n <input pInputText type=\"text\" class=\"sa-campo-busqueda\" id=\"sa-campo-busqueda\" #campoBusqueda\n placeholder=\"T\u00E9rmino de b\u00FAsqueda\" [(ngModel)]=\"busquedaArticulos.key\"\n (keydown.enter)=\"obtenerExistenciaArticulos()\">\n <button pButton type=\"button\" icon=\"pi pi-search\" aria-label=\"Buscar\"\n (click)=\"obtenerExistenciaArticulos()\"></button>\n </div>\n </div>\n <div class=\"col-12 md:col-6 xl:col-5\">\n <label class=\"sa-etiqueta\" for=\"sa-almacen\">Almac\u00E9n</label>\n <select pInputText class=\"sa-almacen\" id=\"sa-almacen\" disabled [ngModel]=\"almacenSeleccionado\"\n [ngModelOptions]=\"{ standalone: true }\">\n @for (almacen of almacenList; track almacen.id) {\n <option [ngValue]=\"almacen.id\">{{ almacen.descripcion }}</option>\n }\n </select>\n </div>\n </div>\n\n <p-table #dt [value]=\"articulosList\" [scrollable]=\"true\" scrollHeight=\"flex\" responsiveLayout=\"scroll\"\n selectionMode=\"single\" styleClass=\"p-datatable-sm\" [loading]=\"cargando\" class=\"sa-tabla\"\n (onRowSelect)=\"filaSeleccionada($event)\">\n\n <ng-template pTemplate=\"header\">\n <tr>\n <th class=\"sa-col-ubicacion\" translate>C\u00F3digo Ubicacion</th>\n <th class=\"sa-num\" translate>Existencia</th>\n <th class=\"sa-col-unidad\" translate>Unidad</th>\n @if (manejaUnidadSecundaria) {\n <th class=\"sa-num\" translate>existenciaSecundaria</th>\n <th class=\"sa-col-unidad\" translate>Unidad</th>\n }\n <th class=\"sa-col-codigo\" translate>C\u00F3digo</th>\n <th class=\"sa-col-descripcion\" translate>Descripcion</th>\n <th class=\"sa-col-accion\"><span class=\"sa-sr-only\">Detalle</span></th>\n @if (configuracion.tipoPrecio !== 'costo') {\n <th class=\"sa-num\" translate>Precio</th>\n <th class=\"sa-num\" translate>Precio 2</th>\n <th class=\"sa-num\" translate>Precio 3</th>\n <th class=\"sa-num\" translate>Precio 4</th>\n <th class=\"sa-num\" translate>Precio 5</th>\n } @else {\n <th class=\"sa-num\" translate>Movimiento.costo</th>\n }\n @if (mostrarExistenciaPorUnidad) {\n <th class=\"sa-col-unidades\" translate>Existencia por Unidad</th>\n }\n @for (item of clasificadorList; track $index) {\n <th class=\"sa-col-clasificador\" translate>{{ item.descripcion }}</th>\n }\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowData>\n <tr [pSelectableRow]=\"rowData\">\n <td class=\"sa-col-ubicacion\">\n @if (rowData.ubicacionCodigo) {\n {{ rowData.ubicacionCodigo }}\n } @else {\n <span class=\"sa-sr-only\" translate>Movimiento.NoAsignado</span>\n }\n </td>\n <td class=\"sa-num\">{{ rowData.existencia }}</td>\n <td class=\"sa-col-unidad\">{{ rowData.unidadCodigo }}</td>\n @if (manejaUnidadSecundaria) {\n <td class=\"sa-num\">{{ rowData.existenciaSecundaria }}</td>\n <td class=\"sa-col-unidad\">{{ rowData.unidadSecundariaCodigo }}</td>\n }\n <td class=\"sa-col-codigo\">{{ rowData.articulo.codigo }}</td>\n <td class=\"sa-col-descripcion\" [pTooltip]=\"rowData.articulo.descripcion\" tooltipPosition=\"top\"\n [showDelay]=\"400\">{{ rowData.articulo.descripcion }}</td>\n <td class=\"sa-col-accion\">\n <button pButton type=\"button\" icon=\"pi pi-eye\" class=\"p-button-text p-button-sm p-button-rounded\"\n [attr.aria-label]=\"'Ver informaci\u00F3n del art\u00EDculo ' + rowData.articulo.descripcion\"\n (click)=\"onShowInformacion(rowData)\"></button>\n </td>\n @if (configuracion.tipoPrecio !== 'costo') {\n <td class=\"sa-num\">{{ rowData.precioConImpuestos | currency }}</td>\n <td class=\"sa-num\">{{ rowData.precio2ConImpuestos | currency }}</td>\n <td class=\"sa-num\">{{ rowData.precio3ConImpuestos | currency }}</td>\n <td class=\"sa-num\">{{ rowData.precio4ConImpuestos | currency }}</td>\n <td class=\"sa-num\">{{ rowData.precio5ConImpuestos | currency }}</td>\n } @else {\n <td class=\"sa-num\">{{ rowData.precio | currency }}</td>\n }\n @if (mostrarExistenciaPorUnidad) {\n <td class=\"sa-col-unidades\">\n @for (item of rowData.existenciaUnidades; track $index) {\n <div class=\"sa-unidad-existencia\">\n <span>{{ item.unidad_codigo }}</span>\n <span class=\"sa-num\">{{ item.unidad_existencia | number : '1.2-2' }}</span>\n </div>\n }\n </td>\n }\n @for (itemData of rowData.articuloClasificadorList; track $index) {\n <td class=\"sa-col-clasificador\">{{ itemData.valor }}</td>\n }\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td [attr.colspan]=\"totalColumnas\">\n <div class=\"sa-vacio\">\n <i class=\"pi pi-search\" aria-hidden=\"true\"></i>\n @if (busquedaArticulos.key) {\n <p>Sin resultados para \u00AB{{ busquedaArticulos.key }}\u00BB. Prueba con otro t\u00E9rmino o tipo de b\u00FAsqueda.</p>\n } @else {\n <p>Escribe un t\u00E9rmino de b\u00FAsqueda y presiona <strong>Buscar</strong> para consultar la existencia de\n art\u00EDculos.</p>\n }\n </div>\n </td>\n </tr>\n </ng-template>\n\n </p-table>\n\n <p-paginator [rows]=\"page.rows\" [totalRecords]=\"page.total\" [pageLinkSize]=\"5\" (onPageChange)=\"pagina($event)\"\n [rowsPerPageOptions]=\"[10,25,50,100,500]\"></p-paginator>\n\n </div>\n</p-dialog>\n<!--termina seleccion de articulos-->\n<!--selecciona ubicacion -->\n@if (showModalInformacion) {\n <lib-seleccion-articulo-informacion [showModal]=\"showModalInformacion\" [articulo]=\"articuloSelected\"\n (eventSelection)=\"onEventInformacion($event)\">\n </lib-seleccion-articulo-informacion>\n}\n", styles: [".sa-cuerpo{display:flex;flex-direction:column;gap:.875rem;flex:1 1 auto;min-height:0}.sa-etiqueta{display:block;margin-bottom:.25rem;font-weight:600;color:#475569}.sa-tipo-busqueda{width:10.5rem;flex:0 0 auto}.sa-campo-busqueda{flex:1 1 auto;min-width:7rem}.sa-almacen{width:100%;max-width:22rem}p-table.sa-tabla{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.sa-col-ubicacion{width:7.5rem}.sa-col-codigo{width:6.5rem}.sa-col-unidad{width:4.5rem}.sa-col-accion{width:3.25rem;text-align:center}.sa-col-accion .p-button{width:1.85rem;height:1.85rem;padding:0}.sa-col-unidades{width:12rem}.sa-col-clasificador{width:6.5rem}.sa-col-descripcion{min-width:13rem;max-width:26rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sa-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.sa-unidad-existencia{display:flex;justify-content:space-between;gap:.5rem}p-table.sa-tabla tr.p-highlight{background:#e3f2fd;color:#1565c0;font-weight:600}.sa-vacio{display:flex;align-items:center;gap:.75rem;padding:1.25rem .5rem;color:#64748b}.sa-vacio i{font-size:1.5rem;color:#94a3b8}.sa-vacio p{margin:0}.sa-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}\n"], dependencies: [{ kind: "directive", type: i1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i2.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i3.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll", "virtualRowHeight"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i3.SelectableRow, selector: "[pSelectableRow]", inputs: ["pSelectableRow", "pSelectableRowIndex", "pSelectableRowDisabled"] }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "directive", type: i5.InputText, selector: "[pInputText]" }, { kind: "component", type: i6.Paginator, selector: "p-paginator", inputs: ["pageLinkSize", "style", "styleClass", "alwaysShow", "dropdownAppendTo", "templateLeft", "templateRight", "appendTo", "dropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showFirstLastIcon", "totalRecords", "rows", "rowsPerPageOptions", "showJumpToPageDropdown", "showJumpToPageInput", "showPageLinks", "locale", "dropdownItemTemplate", "first"], outputs: ["onPageChange"] }, { kind: "directive", type: i7.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i7.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "directive", type: i9.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i10.SeleccionArticuloInformacionComponent, selector: "lib-seleccion-articulo-informacion", inputs: ["showModal", "articulo"], outputs: ["eventSelection"] }, { kind: "pipe", type: i11.DecimalPipe, name: "number" }, { kind: "pipe", type: i11.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] }); }
|
|
468
151
|
}
|
|
469
|
-
(
|
|
470
|
-
|
|
471
|
-
args: [{ selector: 'app-selecciona-articulo', template: "<!--inicia seleccion de articulos-->\n<!-- (onShow)=\"obtenerExistenciaArticulosShow()\" -->\n<!--\n <div class=\"col-12 col-center\" >-->\n<p-dialog header=\"{{ 'Articulos' | translate }}\" [(visible)]=\"showArticulos\" [maximizable]=\"true\"\n (onShow)=\"obtenerExistenciaArticulosShow()\" (onHide)=\"busquedaArticulos = { tipoBusqueda : ''}; emitirShowArticulos()\"\n [baseZIndex]=\"10000\" [blockScroll]=\"true\" [style]=\"{'width': size+'px', 'min-width': '200px'}\" [minY]=\"70\">\n <div class=\"grid grid-fluid\">\n <div class=\"col-12 md:col-6 lg:col-6\">\n <div style=\"display: flex;\">\n <div style=\"width: 115px;\">\n <select pInputText [(ngModel)]=\"busquedaArticulos.tipoBusqueda\" (change)=\"obtenerExistenciaArticulosVal()\">\n <option value=\"C\">Codigo</option>\n <option value=\"D\">Descripcion</option>\n <option value=\"CD\">Coincidencia</option>\n <option value=\"CI\">Igual a</option>\n </select>\n </div>\n <input type=\"text\" style=\"width: 200px;\" pInputText [(ngModel)]=\"busquedaArticulos.key\"\n (keypress)=\"obtenerExistenciaArticulosKey( $event )\" id=\"key\">\n <button pButton type=\"button\" icon=\"pi pi-search\" styleClass=\"p-button-secondary\"\n (click)=\"obtenerExistenciaArticulos( )\"></button>\n </div>\n </div>\n <div class=\"col-12 md:col-6 lg:col-6\">\n <div style=\"display: flex;\">\n <div style=\"width: 100px;\">\n <label for=\"almacen\">Almacen:</label>\n </div>\n <select pInputText style=\"width: 200px;\" [(ngModel)]=\"movimiento.almacen\" disabled id=\"almacen\"\n (change)=\"obtenerExistenciaArticulosVal()\">\n <option *ngFor=\"let almacen of almacenList\" value=\"{{ almacen.id }}\">{{almacen.descripcion}}</option>\n </select>\n </div>\n\n </div>\n </div>\n\n <!--\n <div id=\"table-wrapper\">\n <div id=\"table-scroll\">-->\n <!-- new table\n <p-table #dt [columns]=\"colsDD\" [value]=\"listDD\" [scrollable]=\"true\" \n [style]=\"{width: '100%'} \" [scrollHeight]=\"maxH + 'px'\" \n [resizableColumns]=\"true\" [(selection)]=\"selectedXML\" (onRowSelect)=\"onRowSelect($event)\" dataKey=\"uuid\">\n\n \n -->\n\n <p-table [value]=\"articulosList\" [scrollable]=\"true\" #dt scrollHeight=\"400px\" responsiveLayout=\"scroll\" \n selectionMode=\"single\" (onRowSelect)=\"filaSeleccionada($event)\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th style=\"width: 80px\" translate>C\u00F3digo Ubicacion</th>\n <th style=\"width: 70px\" translate>Existencia</th>\n <th style=\"width: 40px\" translate>Unidad</th>\n <th style=\"width: 50px\" *ngIf=\"manejaUnidadSecundaria\" translate>existenciaSecundaria</th>\n <th style=\"width: 40px\" *ngIf=\"manejaUnidadSecundaria\" translate>Unidad</th>\n <th style=\"width: 80px\" translate>C\u00F3digo</th>\n <th style=\"width: 120px\" translate>Descripcion</th>\n <th style=\"width: 40px\" translate></th>\n <th style=\"width: 80px\" *ngIf=\"configuracion.tipoPrecio !== 'costo' \" translate>Precio</th>\n <th style=\"width: 80px\" *ngIf=\"configuracion.tipoPrecio !== 'costo' \" translate>Precio 2</th>\n <th style=\"width: 80px\" *ngIf=\"configuracion.tipoPrecio !== 'costo' \" translate>Precio 3</th>\n <th style=\"width: 80px\" *ngIf=\"configuracion.tipoPrecio !== 'costo' \" translate>Precio 4</th>\n <th style=\"width: 80px\" *ngIf=\"configuracion.tipoPrecio !== 'costo' \" translate>Precio 5</th>\n <th style=\"width: 40px\" *ngIf=\"configuracion.tipoPrecio === 'costo' \" translate>Movimiento.costo</th>\n <th style=\"width: 40px\" translate>Existencia por Unidad</th>\n <th *ngFor=\"let item of clasificadorList\" style=\"width: 80px\" translate>{{item.descripcion}}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-rowData let-rowIndex=\"rowIndex\">\n <tr [pSelectableRow]=\"rowData\">\n <td style=\"width: 80px;\" *ngIf=\"!rowData.ubicacionCodigo\" translate>Movimiento.NoAsignado</td>\n <td style=\"width: 80px;\" *ngIf=\"rowData.ubicacionCodigo\">{{rowData.ubicacionCodigo}}</td>\n <td style=\"width: 70px;\">{{rowData.existencia}}</td>\n <td style=\"width: 40px;\">{{rowData.unidadCodigo}}</td>\n\n <td style=\"width: 50px;\" *ngIf=\"manejaUnidadSecundaria\">{{rowData.existenciaSecundaria}}</td>\n <td style=\"width: 40px;\" *ngIf=\"manejaUnidadSecundaria\">{{rowData.unidadSecundariaCodigo}}</td>\n\n <td style=\"width: 80px;\">{{rowData.articulo.codigo}}</td>\n <td style=\"width: 120px;\">{{rowData.articulo.descripcion}}</td>\n <td style=\"width: 40px;\">\n <button pButton type=\"button\" icon=\"pi pi-eye\" class=\"ui-button-raised ui-button-primary\"\n (click)=\"onShowInformacion(rowData)\">\n </button>\n </td>\n <td style=\"width: 80px;\" *ngIf=\"configuracion.tipoPrecio !== 'costo'\">{{rowData.precioConImpuestos | currency }}\n </td>\n <td style=\"width: 80px;\" *ngIf=\"configuracion.tipoPrecio !== 'costo'\">{{rowData.precio2ConImpuestos | currency\n }}</td>\n <td style=\"width: 80px;\" *ngIf=\"configuracion.tipoPrecio !== 'costo'\">{{rowData.precio3ConImpuestos | currency\n }}</td>\n <td style=\"width: 80px;\" *ngIf=\"configuracion.tipoPrecio !== 'costo'\">{{rowData.precio4ConImpuestos | currency\n }}</td>\n <td style=\"width: 80px;\" *ngIf=\"configuracion.tipoPrecio !== 'costo'\">{{rowData.precio5ConImpuestos | currency\n }}</td>\n <td style=\"width: 40px;\" *ngIf=\"configuracion.tipoPrecio === 'costo' \">{{rowData.precio | currency }}</td>\n <td style=\"width: 40px;\">\n <div class=\"row justify-content-between\" *ngFor=\"let item of rowData.existenciaUnidades\">\n <div class=\"col-lg-4\"><label for=\"\">{{item.unidad_codigo}}</label></div>\n <div class=\"col-lg-4\"><label for=\"\">{{item.unidad_existencia | number : '1.2-2'}}</label>\n </div>\n </div>\n </td>\n <!-- <td style=\"width: 40px;\"></td> -->\n <td *ngFor=\"let itemData of rowData.articuloClasificadorList\" style=\"width: 80px;\">{{itemData.valor}}</td>\n </tr>\n </ng-template>\n </p-table>\n\n <!-- /new table-->\n <!-- \n <p-table [(value)]=\"articulosList\" responsive=\"true\" \n selectionMode=\"multiple\" (onRowSelect)=\"filaSeleccionada($event)\" [scrollable]=\"true\" scrollHeight=\"350px\" >\n\n <p-column header=\"{{ 'Codigo ubicacion'.toString() | translate}}\">\n <ng-template let-dato=\"rowData\" pTemplate=\"body\">\n <label for=\"\" *ngIf=\"!dato.ubicacionCodigo\" translate> Movimiento.NoAsignado </label>\n <label for=\"\" *ngIf=\"dato.ubicacionCodigo\" > {{ dato.ubicacionCodigo }}</label>\n </ng-template>\n </p-column>\n <p-column field=\"ubicacionCodigo\" header=\"{{ 'Descripcion ubicacion'.toString() | translate}}\">\n <ng-template let-dato=\"rowData\" pTemplate=\"body\">\n <label for=\"\" *ngIf=\"!dato.ubicacionCodigo\" translate> Movimiento.NoAsignado </label>\n <label for=\"\" *ngIf=\"dato.ubicacionCodigo\" > {{ dato.ubicacionCodigo }}</label>\n </ng-template>\n </p-column>\n\n <p-column field=\"existencia\" header=\"{{'Existencia' | translate}}\"></p-column>\n <p-column field=\"unidadCodigo\" header=\"{{'Unidad' | translate}}\"></p-column>\n <p-column field=\"unidadDescripcion\" header=\"{{'Descripcion unidad' | translate}}\"></p-column>\n\n <p-column field=\"existenciaSecundaria\" header=\"{{'existenciaSecundaria' | translate}}\" *ngIf=\"manejaUnidadSecundaria\"></p-column>\n <p-column field=\"unidadSecundariaCodigo\" header=\"{{'Unidad' | translate}}\" *ngIf=\"manejaUnidadSecundaria\"></p-column>\n \n\n <p-column *ngIf=\"configuracion.tipoPrecio !== 'costo' \" header=\"{{'Movimiento.movimientoDetalle.precio' | translate}}\">\n <ng-template let-dato=\"rowData\" pTemplate=\"body\">\n <label for=\"\">{{ dato.precioConImpuestos | currency }}</label>\n </ng-template>\n </p-column>\n <p-column *ngIf=\"configuracion.tipoPrecio === 'costo' \" header=\"{{'Movimiento.costo' | translate }}\">\n <ng-template let-dato=\"rowData\" pTemplate=\"body\">\n <label for=\"\">{{ dato.precio | currency }}</label>\n </ng-template>\n </p-column>\n\n\n <p-column field=\"articulo.codigo\" header=\"{{'Codigo articulo' | translate}}\"></p-column>\n <p-column field=\"articulo.descripcion\" header=\"{{'Descripcion' | translate}}\"></p-column>\n\n\n\n <p-column header=\"{{'ExistenciaPorUnidad' | translate }}\">\n <ng-template let-dato=\"rowData\" pTemplate=\"body\">\n <div class=\"row justify-content-between\" *ngFor=\"let item of dato.existenciaUnidades\" >\n <div class=\"col-lg-4\"><label for=\"\">{{item.unidad_codigo}}</label></div>\n <div class=\"col-lg-4\"><label for=\"\">{{item.unidad_existencia | number : '1.2-2'}}</label>\n </div> \n </div> \n </ng-template>\n </p-column>\n \n </p-table>\n -->\n <p-paginator [rows]=\"page.rows\" [totalRecords]=\"page.total\" [pageLinkSize]=\"5\" (onPageChange)=\"pagina($event)\"\n [rowsPerPageOptions]=\"[10,25,50,100,500]\"></p-paginator>\n <!-- \n </div>\n </div>\n -->\n</p-dialog>\n<!--\n </div> \n -->\n<!--termina seleccion de articulos-->\n<!--selecciona ubicacion -->\n<lib-seleccion-articulo-informacion [showModal]=\"showModalInformacion\" [articulo]=\"articuloSelected\"\n (eventSelection)=\"onEventInformacion($event)\" *ngIf=\"showModalInformacion\">\n</lib-seleccion-articulo-informacion>", styles: ["tr:hover{background-color:#34a835!important;color:#fff!important}table{position:absolute}\n"] }]
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWNjaW9uYS1hcnRpY3Vsby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcnAtY29yZS9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWNjaW9uYS1hcnRpY3Vsby9zZWxlY2Npb25hLWFydGljdWxvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VycC1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY2Npb25hLWFydGljdWxvL3NlbGVjY2lvbmEtYXJ0aWN1bG8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDMkJyQyxrQ0FBcUU7SUFBQSxZQUF1QjtJQUFBLGlCQUFTOzs7SUFBekQsZ0RBQXdCO0lBQUMsY0FBdUI7SUFBdkIsNENBQXVCOzs7SUF5QjlGLDhCQUFpRTtJQUFBLG9DQUFvQjtJQUFBLGlCQUFLOzs7SUFDMUYsOEJBQWlFO0lBQUEsc0JBQU07SUFBQSxpQkFBSzs7O0lBSTVFLDhCQUFnRjtJQUFBLHNCQUFNO0lBQUEsaUJBQUs7OztJQUMzRiw4QkFBZ0Y7SUFBQSx3QkFBUTtJQUFBLGlCQUFLOzs7SUFDN0YsOEJBQWdGO0lBQUEsd0JBQVE7SUFBQSxpQkFBSzs7O0lBQzdGLDhCQUFnRjtJQUFBLHdCQUFRO0lBQUEsaUJBQUs7OztJQUM3Riw4QkFBZ0Y7SUFBQSx3QkFBUTtJQUFBLGlCQUFLOzs7SUFDN0YsOEJBQWdGO0lBQUEs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LDZJQUM2RTs7WUE5S2pDLDJEQUFvRDtZQUZ0RixzRUFBc0M7WUFBQyxpREFBMkI7WUFFcUIsQUFBMUUsQUFBckIsQUFGMkUsa0NBQW9CLHFCQUUzRSxxQkFBcUIsWUFBaUU7WUFLL0UsZUFBNEM7WUFBNUMsa0VBQTRDO1lBT2IsZUFBbUM7WUFBbkMseURBQW1DO1lBVzlDLGVBQWdDO1lBQWhDLHNEQUFnQztZQUUzQyxjQUFjO1lBQWQseUNBQWM7WUFrQnpDLGNBQXVCO1lBQUMsQUFBeEIseUNBQXVCLG9CQUFvQjtZQXNIdkMsZUFBa0I7WUFDN0IsQUFEMEQsQUFBNUIsQUFBbkIsb0NBQWtCLGdDQUE0QixtQkFBbUIsbURBQ25DO1lBWUksY0FBMEI7WUFBMUIsK0NBQTBCOzs7aUZEeks5RCwyQkFBMkI7Y0FMdkMsU0FBUzsyQkFDRSx5QkFBeUI7d0dBTTFCLGFBQWE7a0JBQXJCLEtBQUs7WUFDRyxhQUFhO2tCQUFyQixLQUFLO1lBQ0csVUFBVTtrQkFBbEIsS0FBSztZQUVHLHNCQUFzQjtrQkFBOUIsS0FBSztZQUVJLG9CQUFvQjtrQkFBN0IsTUFBTTtZQUNHLGlCQUFpQjtrQkFBMUIsTUFBTTs7a0ZBVEksMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFsbWFjZW4gfSBmcm9tICcuLi9hbG1hY2VuL21vZGVscy9BbG1hY2VuJztcbmltcG9ydCB7IFBhZ2luYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BhZ2luYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWxtYWNlblNlcnZpY2UgfSBmcm9tICcuLi9hbG1hY2VuL3NlcnZpY2VzL2FsbWFjZW4uc2VydmljZSc7XG5pbXBvcnQgeyBTdG9ja1NlcnZpY2UgfSBmcm9tICcuL3N0b2NrLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtc2VsZWNjaW9uYS1hcnRpY3VsbycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY2Npb25hLWFydGljdWxvLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWNjaW9uYS1hcnRpY3Vsby5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VsZWNjaW9uYUFydGljdWxvQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBjb25maWd1cmFjaW9uIDogYW55O1xuICBASW5wdXQoKSBzaG93QXJ0aWN1bG9zIDogYm9vbGVhbjtcbiAgQElucHV0KCkgbW92aW1pZW50bzogYW55O1xuXG4gIEBJbnB1dCgpIG1hbmVqYVVuaWRhZFNlY3VuZGFyaWEgOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIGVtaXRGaWxhU2VsZWNjaW9uYWRhIDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBlbWl0U2hvd0FydGljdWxvcyA6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cblxuICBhbG1hY2VuTGlzdDogQWxtYWNlbltdO1xuICBhcnRpY3Vsb3NMaXN0OiBhbnkgPSBbXTtcbiAgcGFnZTogYW55O1xuICBvcmRlbmFyID0gW107XG4gIGJ1c3F1ZWRhQXJ0aWN1bG9zIDogYW55ID0ge1xuICAgIHRpcG9CdXNxdWVkYSA6ICcnXG4gIH07XG5cbiAgc2hvd01vZGFsOmJvb2xlYW49ZmFsc2U7XG4gIGFydGljdWxvU2VsZWN0ZWQ6YW55O1xuICBzaG93TW9kYWxJbmZvcm1hY2lvbjpib29sZWFuPWZhbHNlO1xuICBzaG93Rmlyc3RUaW1lOmJvb2xlYW49dHJ1ZTtcbiAgY2xhc2lmaWNhZG9yTGlzdDphbnk9W107XG4gIHNpemUgPSA2NDA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICAgICAgICAgIHByaXZhdGUgX3N0b2NrU2VydmljZSAgICA6IFN0b2NrU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfcGFnaW5hdGVTZXJ2aWNlIDogUGFnaW5hdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9hbG1hY2VuU2VydmljZSAgOiBBbG1hY2VuU2VydmljZSkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5wYWdlID0gdGhpcy5fcGFnaW5hdGVTZXJ2aWNlLmdldFBhZ2UoKTtcbiAgICB0aGlzLm9yZGVuYXIgPSB0aGlzLl9wYWdpbmF0ZVNlcnZpY2UuZ2V0T3JkZW4oXG4gICAgICBbXG4gICAgICAgIHtwYXJhbTogJ25vbWJyZScsIGxhYmVsOiAnZXN0YXR1cyd9XG4gICAgICBdLCAnZXMnKTtcblxuXG4gICAgdGhpcy5zaG93Rmlyc3RUaW1lPXRydWU7XG4gICAgdGhpcy5fYWxtYWNlblNlcnZpY2UuZ2V0QWxsKCB0aGlzLmNvbmZpZ3VyYWNpb24ucGFyYW1zICkuc3Vic2NyaWJlKFxuICAgICAgKGRhdGE6IGFueSApID0+IHtcbiAgICAgICAgdGhpcy5hbG1hY2VuTGlzdCA9IDxBbG1hY2VuW10+IGRhdGEuZGF0YTtcbiAgICAgIH1cbiAgICApO1xuICAgIFxuICAgIHRoaXMuYnVzcXVlZGFBcnRpY3Vsb3MudGlwb0J1c3F1ZWRhID0gJ0NEJztcbiAgICAvL3RlbXB0aGlzLm9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zU2hvdygpO1xuICB9XG5cbiAgcGFnaW5hKCBlICl7XG4gICAgdGhpcy5wYWdlLnJvd3MgPSBlLnJvd3M7XG4gICAgdGhpcy5wYWdlLm9mZnNldCA9IGUuZmlyc3Q7XG4gICAgdGhpcy5vYnRlbmVyRXhpc3RlbmNpYUFydGljdWxvcygpO1xuICB9XG4gIG9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zU2hvdygpe1xuICAgIHRoaXMuYnVzcXVlZGFBcnRpY3Vsb3MudGlwb0J1c3F1ZWRhID0gJ0NEJztcbiAgICBpZiAodGhpcy5zaG93Rmlyc3RUaW1lKXtcbiAgICAgIHRoaXMub2J0ZW5lckV4aXN0ZW5jaWFBcnRpY3Vsb3MoKTtcbiAgICAgIHRoaXMuc2hvd0ZpcnN0VGltZT1mYWxzZTtcbiAgICB9XG4gIH1cblxuICBvYnRlbmVyRXhpc3RlbmNpYUFydGljdWxvcyggKSB7XG4gICAgdGhpcy5idXNxdWVkYUFydGljdWxvcy5wYXJhbXMgPSB0aGlzLl9wYWdpbmF0ZVNlcnZpY2UuZ2V0UGFyYW1zKCB0aGlzLnBhZ2UgKTtcbiAgICBjb25zdCBwYXJhbWV0cm9zID0ge1xuICAgICAgYWxtYWNlbiAgICAgICAgICAgICA6ICggdGhpcy5jb25maWd1cmFjaW9uLm5vT2N1cGFBbGFtYWNlbiA/IG51bGwgOiB0aGlzLm1vdmltaWVudG8uYWxtYWNlbiApLFxuICAgICAgdGlwb1ByZWNpbyAgICAgICAgICA6IHRoaXMuY29uZmlndXJhY2lvbi50aXBvUHJlY2lvLFxuICAgICAgYnVzcXVlZGFBcnRpY3Vsb3MgICA6IHRoaXMuYnVzcXVlZGFBcnRpY3Vsb3MsXG4gICAgICB0aXBvQXJ0aWN1bG8gICAgICAgIDogdGhpcy5jb25maWd1cmFjaW9uLnRpcG9BcnRpY3VsbyA/IHRoaXMuY29uZmlndXJhY2lvbi50aXBvQXJ0aWN1bG8gOiBudWxsLFxuICAgICAgbnVtZXJvUHJlY2lvRGVmYXVsdCA6IHRoaXMuY29uZmlndXJhY2lvbi5udW1lcm9QcmVjaW9EZWZhdWx0XG4gICAgfTsgICAgICAgXG4gICAgdGhpcy5fc3RvY2tTZXJ2aWNlLm9idGVuZXJFeGlzdGVuY2lhc0FydGljdWxvc0Rlc2NyaXBjaW9uKCBwYXJhbWV0cm9zICwgdGhpcy5idXNxdWVkYUFydGljdWxvcy5wYXJhbXMgKS50aGVuKFxuICAgICAgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmFydGljdWxvc0xpc3QgPSBkYXRhLmFydGljdWxvc0Rlc2NyaXBjaW9uO1xuICAgICAgICB0aGlzLnBhZ2UudG90YWwgPSBkYXRhLnRvdGFsOyAgXG4gICAgICAgIGlmIChkYXRhLmNsYXNpZmljYWRvcmVzKXtcbiAgICAgICAgICB0aGlzLmNsYXNpZmljYWRvckxpc3QgPSBkYXRhLmNsYXNpZmljYWRvcmVzO1xuICAgICAgICB9ICAgICAgXG4gICAgICAgIGlmKCF0aGlzLnNob3dNb2RhbCl7XG4gICAgICAgICAgdGhpcy5zaG93TW9kYWwgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgKS5jYXRjaChlID0+e1xuICAgICAgdGhpcy5hcnRpY3Vsb3NMaXN0ID0gIFtdO1xuICAgIH0pO1xuICB9XG5cbiAgb2J0ZW5lckV4aXN0ZW5jaWFBcnRpY3Vsb3NWYWwoKXtcbiAgICBpZiAoIHRoaXMuYnVzcXVlZGFBcnRpY3Vsb3MudGlwb0J1c3F1ZWRhICE9ICcnICYmICF0aGlzLmJ1c3F1ZWRhQXJ0aWN1bG9zLmtleSApXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB0aGlzLm9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zKCk7IFxuICB9XG4gIG9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zS2V5KCAkZXZlbnQgKSB7XG4gICAgaWYoICRldmVudC5rZXkgPT09ICdFbnRlcicpXG4gICAgICB0aGlzLm9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zKCk7XG4gIH1cblxuICBmaWxhU2VsZWNjaW9uYWRhKCAkZXZlbnQgKSB7XG4gICAgdGhpcy5lbWl0RmlsYVNlbGVjY2lvbmFkYS5lbWl0KCRldmVudCk7XG4gIH1cblxuICBlbWl0aXJTaG93QXJ0aWN1bG9zKCkge1xuICAgIHRoaXMuZW1pdFNob3dBcnRpY3Vsb3MuZW1pdCggMCApO1xuICB9XG5cbiAgc2VyaWVzQXJ0aWN1bG8oc2VyaWVzKXtcbiAgICAgIGNvbnNvbGUubG9nKHNlcmllcyk7XG4gIH1cblxuICBvblNob3dJbmZvcm1hY2lvbihldmVudEFydGljdWxvKXtcbiAgICB0aGlzLmFydGljdWxvU2VsZWN0ZWQgPSBldmVudEFydGljdWxvO1xuICAgIHRoaXMuc2hvd01vZGFsSW5mb3JtYWNpb24gPSB0cnVlO1xuICB9XG5cbiAgb25FdmVudEluZm9ybWFjaW9uKGV2ZW50KSB7XG4gICAgdGhpcy5zaG93TW9kYWxJbmZvcm1hY2lvbiA9IGV2ZW50LnN0YXR1cztcdCAgICAgIFxuICB9XG59XG4iLCI8IS0taW5pY2lhIHNlbGVjY2lvbiBkZSBhcnRpY3Vsb3MtLT5cbjwhLS0gICAob25TaG93KT1cIm9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zU2hvdygpXCIgLS0+XG48IS0tXG4gIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLWNlbnRlclwiID4tLT5cbjxwLWRpYWxvZyBoZWFkZXI9XCJ7eyAnQXJ0aWN1bG9zJyB8IHRyYW5zbGF0ZSB9fVwiIFsodmlzaWJsZSldPVwic2hvd0FydGljdWxvc1wiIFttYXhpbWl6YWJsZV09XCJ0cnVlXCJcbiAgKG9uU2hvdyk9XCJvYnRlbmVyRXhpc3RlbmNpYUFydGljdWxvc1Nob3coKVwiIChvbkhpZGUpPVwiYnVzcXVlZGFBcnRpY3Vsb3MgPSB7IHRpcG9CdXNxdWVkYSA6ICcnfTsgZW1pdGlyU2hvd0FydGljdWxvcygpXCJcbiAgW2Jhc2VaSW5kZXhdPVwiMTAwMDBcIiBbYmxvY2tTY3JvbGxdPVwidHJ1ZVwiIFtzdHlsZV09XCJ7J3dpZHRoJzogc2l6ZSsncHgnLCAnbWluLXdpZHRoJzogJzIwMHB4J31cIiBbbWluWV09XCI3MFwiPlxuICA8ZGl2IGNsYXNzPVwiZ3JpZCBncmlkLWZsdWlkXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtZDpjb2wtNiBsZzpjb2wtNlwiPlxuICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XG4gICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogMTE1cHg7XCI+XG4gICAgICAgICAgPHNlbGVjdCBwSW5wdXRUZXh0IFsobmdNb2RlbCldPVwiYnVzcXVlZGFBcnRpY3Vsb3MudGlwb0J1c3F1ZWRhXCIgKGNoYW5nZSk9XCJvYnRlbmVyRXhpc3RlbmNpYUFydGljdWxvc1ZhbCgpXCI+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiQ1wiPkNvZGlnbzwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIkRcIj5EZXNjcmlwY2lvbjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIkNEXCI+Q29pbmNpZGVuY2lhPC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiQ0lcIj5JZ3VhbCBhPC9vcHRpb24+XG4gICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBzdHlsZT1cIndpZHRoOiAyMDBweDtcIiBwSW5wdXRUZXh0IFsobmdNb2RlbCldPVwiYnVzcXVlZGFBcnRpY3Vsb3Mua2V5XCJcbiAgICAgICAgICAoa2V5cHJlc3MpPVwib2J0ZW5lckV4aXN0ZW5jaWFBcnRpY3Vsb3NLZXkoICRldmVudCApXCIgaWQ9XCJrZXlcIj5cbiAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHR5cGU9XCJidXR0b25cIiBpY29uPVwicGkgcGktc2VhcmNoXCIgc3R5bGVDbGFzcz1cInAtYnV0dG9uLXNlY29uZGFyeVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zKCApXCI+PC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG1kOmNvbC02IGxnOmNvbC02XCI+XG4gICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cbiAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiAxMDBweDtcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwiYWxtYWNlblwiPkFsbWFjZW46PC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzZWxlY3QgcElucHV0VGV4dCBzdHlsZT1cIndpZHRoOiAyMDBweDtcIiBbKG5nTW9kZWwpXT1cIm1vdmltaWVudG8uYWxtYWNlblwiIGRpc2FibGVkIGlkPVwiYWxtYWNlblwiXG4gICAgICAgICAgKGNoYW5nZSk9XCJvYnRlbmVyRXhpc3RlbmNpYUFydGljdWxvc1ZhbCgpXCI+XG4gICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgYWxtYWNlbiBvZiBhbG1hY2VuTGlzdFwiIHZhbHVlPVwie3sgYWxtYWNlbi5pZCB9fVwiPnt7YWxtYWNlbi5kZXNjcmlwY2lvbn19PC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgICAgPC9kaXY+XG5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLVxuICAgICAgPGRpdiBpZD1cInRhYmxlLXdyYXBwZXJcIj5cbiAgICAgIDxkaXYgaWQ9XCJ0YWJsZS1zY3JvbGxcIj4tLT5cbiAgPCEtLSBuZXcgdGFibGVcbiAgICAgICA8cC10YWJsZSAjZHQgW2NvbHVtbnNdPVwiY29sc0REXCIgW3ZhbHVlXT1cImxpc3RERFwiIFtzY3JvbGxhYmxlXT1cInRydWVcIiBcbiAgICAgICBbc3R5bGVdPVwie3dpZHRoOiAnMTAwJSd9IFwiIFtzY3JvbGxIZWlnaHRdPVwibWF4SCArICdweCdcIiBcbiAgICAgICBbcmVzaXphYmxlQ29sdW1uc109XCJ0cnVlXCIgWyhzZWxlY3Rpb24pXT1cInNlbGVjdGVkWE1MXCIgKG9uUm93U2VsZWN0KT1cIm9uUm93U2VsZWN0KCRldmVudClcIiBkYXRhS2V5PVwidXVpZFwiPlxuXG4gICAgICAgXG4gICAgICAtLT5cblxuICA8cC10YWJsZSBbdmFsdWVdPVwiYXJ0aWN1bG9zTGlzdFwiIFtzY3JvbGxhYmxlXT1cInRydWVcIiAjZHQgc2Nyb2xsSGVpZ2h0PVwiNDAwcHhcIiByZXNwb25zaXZlTGF5b3V0PVwic2Nyb2xsXCIgXG4gICAgc2VsZWN0aW9uTW9kZT1cInNpbmdsZVwiIChvblJvd1NlbGVjdCk9XCJmaWxhU2VsZWNjaW9uYWRhKCRldmVudClcIj5cbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICA8dHI+XG4gICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiA4MHB4XCIgdHJhbnNsYXRlPkPDs2RpZ28gVWJpY2FjaW9uPC90aD5cbiAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDcwcHhcIiB0cmFuc2xhdGU+RXhpc3RlbmNpYTwvdGg+XG4gICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiA0MHB4XCIgdHJhbnNsYXRlPlVuaWRhZDwvdGg+XG4gICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiA1MHB4XCIgKm5nSWY9XCJtYW5lamFVbmlkYWRTZWN1bmRhcmlhXCIgdHJhbnNsYXRlPmV4aXN0ZW5jaWFTZWN1bmRhcmlhPC90aD5cbiAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDQwcHhcIiAqbmdJZj1cIm1hbmVqYVVuaWRhZFNlY3VuZGFyaWFcIiB0cmFuc2xhdGU+VW5pZGFkPC90aD5cbiAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDgwcHhcIiB0cmFuc2xhdGU+Q8OzZGlnbzwvdGg+XG4gICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiAxMjBweFwiIHRyYW5zbGF0ZT5EZXNjcmlwY2lvbjwvdGg+XG4gICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiA0MHB4XCIgdHJhbnNsYXRlPjwvdGg+XG4gICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiA4MHB4XCIgKm5nSWY9XCJjb25maWd1cmFjaW9uLnRpcG9QcmVjaW8gIT09ICdjb3N0bycgXCIgdHJhbnNsYXRlPlByZWNpbzwvdGg+XG4gICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiA4MHB4XCIgKm5nSWY9XCJjb25maWd1cmFjaW9uLnRpcG9QcmVjaW8gIT09ICdjb3N0bycgXCIgdHJhbnNsYXRlPlByZWNpbyAyPC90aD5cbiAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDgwcHhcIiAqbmdJZj1cImNvbmZpZ3VyYWNpb24udGlwb1ByZWNpbyAhPT0gJ2Nvc3RvJyBcIiB0cmFuc2xhdGU+UHJlY2lvIDM8L3RoPlxuICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogODBweFwiICpuZ0lmPVwiY29uZmlndXJhY2lvbi50aXBvUHJlY2lvICE9PSAnY29zdG8nIFwiIHRyYW5zbGF0ZT5QcmVjaW8gNDwvdGg+XG4gICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiA4MHB4XCIgKm5nSWY9XCJjb25maWd1cmFjaW9uLnRpcG9QcmVjaW8gIT09ICdjb3N0bycgXCIgdHJhbnNsYXRlPlByZWNpbyA1PC90aD5cbiAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDQwcHhcIiAqbmdJZj1cImNvbmZpZ3VyYWNpb24udGlwb1ByZWNpbyA9PT0gJ2Nvc3RvJyBcIiB0cmFuc2xhdGU+TW92aW1pZW50by5jb3N0bzwvdGg+XG4gICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiA0MHB4XCIgdHJhbnNsYXRlPkV4aXN0ZW5jaWEgcG9yIFVuaWRhZDwvdGg+XG4gICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjbGFzaWZpY2Fkb3JMaXN0XCIgc3R5bGU9XCJ3aWR0aDogODBweFwiIHRyYW5zbGF0ZT57e2l0ZW0uZGVzY3JpcGNpb259fTwvdGg+XG4gICAgICA8L3RyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImJvZHlcIiBsZXQtcm93RGF0YSBsZXQtcm93SW5kZXg9XCJyb3dJbmRleFwiPlxuICAgICAgPHRyIFtwU2VsZWN0YWJsZVJvd109XCJyb3dEYXRhXCI+XG4gICAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiA4MHB4O1wiICpuZ0lmPVwiIXJvd0RhdGEudWJpY2FjaW9uQ29kaWdvXCIgdHJhbnNsYXRlPk1vdmltaWVudG8uTm9Bc2lnbmFkbzwvdGQ+XG4gICAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiA4MHB4O1wiICpuZ0lmPVwicm93RGF0YS51YmljYWNpb25Db2RpZ29cIj57e3Jvd0RhdGEudWJpY2FjaW9uQ29kaWdvfX08L3RkPlxuICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDogNzBweDtcIj57e3Jvd0RhdGEuZXhpc3RlbmNpYX19PC90ZD5cbiAgICAgICAgPHRkIHN0eWxlPVwid2lkdGg6IDQwcHg7XCI+e3tyb3dEYXRhLnVuaWRhZENvZGlnb319PC90ZD5cblxuICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDogNTBweDtcIiAqbmdJZj1cIm1hbmVqYVVuaWRhZFNlY3VuZGFyaWFcIj57e3Jvd0RhdGEuZXhpc3RlbmNpYVNlY3VuZGFyaWF9fTwvdGQ+XG4gICAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiA0MHB4O1wiICpuZ0lmPVwibWFuZWphVW5pZGFkU2VjdW5kYXJpYVwiPnt7cm93RGF0YS51bmlkYWRTZWN1bmRhcmlhQ29kaWdvfX08L3RkPlxuXG4gICAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiA4MHB4O1wiPnt7cm93RGF0YS5hcnRpY3Vsby5jb2RpZ299fTwvdGQ+XG4gICAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiAxMjBweDtcIj57e3Jvd0RhdGEuYXJ0aWN1bG8uZGVzY3JpcGNpb259fTwvdGQ+XG4gICAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiA0MHB4O1wiPlxuICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgaWNvbj1cInBpIHBpLWV5ZVwiIGNsYXNzPVwidWktYnV0dG9uLXJhaXNlZCB1aS1idXR0b24tcHJpbWFyeVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25TaG93SW5mb3JtYWNpb24ocm93RGF0YSlcIj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIHN0eWxlPVwid2lkdGg6IDgwcHg7XCIgKm5nSWY9XCJjb25maWd1cmFjaW9uLnRpcG9QcmVjaW8gIT09ICdjb3N0bydcIj57e3Jvd0RhdGEucHJlY2lvQ29uSW1wdWVzdG9zIHwgY3VycmVuY3kgfX1cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIHN0eWxlPVwid2lkdGg6IDgwcHg7XCIgKm5nSWY9XCJjb25maWd1cmFjaW9uLnRpcG9QcmVjaW8gIT09ICdjb3N0bydcIj57e3Jvd0RhdGEucHJlY2lvMkNvbkltcHVlc3RvcyB8IGN1cnJlbmN5XG4gICAgICAgICAgfX08L3RkPlxuICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDogODBweDtcIiAqbmdJZj1cImNvbmZpZ3VyYWNpb24udGlwb1ByZWNpbyAhPT0gJ2Nvc3RvJ1wiPnt7cm93RGF0YS5wcmVjaW8zQ29uSW1wdWVzdG9zIHwgY3VycmVuY3lcbiAgICAgICAgICB9fTwvdGQ+XG4gICAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiA4MHB4O1wiICpuZ0lmPVwiY29uZmlndXJhY2lvbi50aXBvUHJlY2lvICE9PSAnY29zdG8nXCI+e3tyb3dEYXRhLnByZWNpbzRDb25JbXB1ZXN0b3MgfCBjdXJyZW5jeVxuICAgICAgICAgIH19PC90ZD5cbiAgICAgICAgPHRkIHN0eWxlPVwid2lkdGg6IDgwcHg7XCIgKm5nSWY9XCJjb25maWd1cmFjaW9uLnRpcG9QcmVjaW8gIT09ICdjb3N0bydcIj57e3Jvd0RhdGEucHJlY2lvNUNvbkltcHVlc3RvcyB8IGN1cnJlbmN5XG4gICAgICAgICAgfX08L3RkPlxuICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDogNDBweDtcIiAqbmdJZj1cImNvbmZpZ3VyYWNpb24udGlwb1ByZWNpbyA9PT0gJ2Nvc3RvJyBcIj57e3Jvd0RhdGEucHJlY2lvIHwgY3VycmVuY3kgfX08L3RkPlxuICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDogNDBweDtcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygcm93RGF0YS5leGlzdGVuY2lhVW5pZGFkZXNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNFwiPjxsYWJlbCBmb3I9XCJcIj57e2l0ZW0udW5pZGFkX2NvZGlnb319PC9sYWJlbD48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNFwiPjxsYWJlbCBmb3I9XCJcIj57e2l0ZW0udW5pZGFkX2V4aXN0ZW5jaWEgfCBudW1iZXIgOiAnMS4yLTInfX08L2xhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDwhLS0gPHRkIHN0eWxlPVwid2lkdGg6IDQwcHg7XCI+PC90ZD4gICAtLT5cbiAgICAgICAgPHRkICpuZ0Zvcj1cImxldCBpdGVtRGF0YSBvZiByb3dEYXRhLmFydGljdWxvQ2xhc2lmaWNhZG9yTGlzdFwiIHN0eWxlPVwid2lkdGg6IDgwcHg7XCI+e3tpdGVtRGF0YS52YWxvcn19PC90ZD5cbiAgICAgIDwvdHI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9wLXRhYmxlPlxuXG4gIDwhLS0gL25ldyB0YWJsZS0tPlxuICA8IS0tIFxuICAgICAgPHAtdGFibGUgWyh2YWx1ZSldPVwiYXJ0aWN1bG9zTGlzdFwiIHJlc3BvbnNpdmU9XCJ0cnVlXCIgXG4gICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uTW9kZT1cIm11bHRpcGxlXCIgKG9uUm93U2VsZWN0KT1cImZpbGFTZWxlY2Npb25hZGEoJGV2ZW50KVwiICBbc2Nyb2xsYWJsZV09XCJ0cnVlXCIgc2Nyb2xsSGVpZ2h0PVwiMzUwcHhcIiA+XG5cbiAgICAgICAgPHAtY29sdW1uICBoZWFkZXI9XCJ7eyAnQ29kaWdvIHViaWNhY2lvbicudG9TdHJpbmcoKSB8IHRyYW5zbGF0ZX19XCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1kYXRvPVwicm93RGF0YVwiIHBUZW1wbGF0ZT1cImJvZHlcIj5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJcIiAqbmdJZj1cIiFkYXRvLnViaWNhY2lvbkNvZGlnb1wiICB0cmFuc2xhdGU+IE1vdmltaWVudG8uTm9Bc2lnbmFkbyA8L2xhYmVsPlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlwiICpuZ0lmPVwiZGF0by51YmljYWNpb25Db2RpZ29cIiA+IHt7IGRhdG8udWJpY2FjaW9uQ29kaWdvIH19PC9sYWJlbD5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3AtY29sdW1uPlxuICAgICAgICA8cC1jb2x1bW4gZmllbGQ9XCJ1YmljYWNpb25Db2RpZ29cIiBoZWFkZXI9XCJ7eyAnRGVzY3JpcGNpb24gdWJpY2FjaW9uJy50b1N0cmluZygpIHwgdHJhbnNsYXRlfX1cIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWRhdG89XCJyb3dEYXRhXCIgcFRlbXBsYXRlPVwiYm9keVwiPlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlwiICpuZ0lmPVwiIWRhdG8udWJpY2FjaW9uQ29kaWdvXCIgIHRyYW5zbGF0ZT4gTW92aW1pZW50by5Ob0FzaWduYWRvIDwvbGFiZWw+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwiXCIgKm5nSWY9XCJkYXRvLnViaWNhY2lvbkNvZGlnb1wiID4ge3sgZGF0by51YmljYWNpb25Db2RpZ28gfX08L2xhYmVsPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvcC1jb2x1bW4+XG5cbiAgICAgICAgPHAtY29sdW1uIGZpZWxkPVwiZXhpc3RlbmNpYVwiIGhlYWRlcj1cInt7J0V4aXN0ZW5jaWEnIHwgdHJhbnNsYXRlfX1cIj48L3AtY29sdW1uPlxuICAgICAgICA8cC1jb2x1bW4gZmllbGQ9XCJ1bmlkYWRDb2RpZ29cIiBoZWFkZXI9XCJ7eydVbmlkYWQnIHwgdHJhbnNsYXRlfX1cIj48L3AtY29sdW1uPlxuICAgICAgICA8cC1jb2x1bW4gZmllbGQ9XCJ1bmlkYWREZXNjcmlwY2lvblwiIGhlYWRlcj1cInt7J0Rlc2NyaXBjaW9uIHVuaWRhZCcgfCB0cmFuc2xhdGV9fVwiPjwvcC1jb2x1bW4+XG5cbiAgICAgICAgPHAtY29sdW1uIGZpZWxkPVwiZXhpc3RlbmNpYVNlY3VuZGFyaWFcIiBoZWFkZXI9XCJ7eydleGlzdGVuY2lhU2VjdW5kYXJpYScgfCB0cmFuc2xhdGV9fVwiICpuZ0lmPVwibWFuZWphVW5pZGFkU2VjdW5kYXJpYVwiPjwvcC1jb2x1bW4+XG4gICAgICAgIDxwLWNvbHVtbiBmaWVsZD1cInVuaWRhZFNlY3VuZGFyaWFDb2RpZ29cIiBoZWFkZXI9XCJ7eydVbmlkYWQnIHwgdHJhbnNsYXRlfX1cIiAqbmdJZj1cIm1hbmVqYVVuaWRhZFNlY3VuZGFyaWFcIj48L3AtY29sdW1uPlxuICAgICAgICBcblxuICAgICAgICA8cC1jb2x1bW4gKm5nSWY9XCJjb25maWd1cmFjaW9uLnRpcG9QcmVjaW8gIT09ICdjb3N0bycgXCIgIGhlYWRlcj1cInt7J01vdmltaWVudG8ubW92aW1pZW50b0RldGFsbGUucHJlY2lvJyB8IHRyYW5zbGF0ZX19XCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1kYXRvPVwicm93RGF0YVwiIHBUZW1wbGF0ZT1cImJvZHlcIj5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJcIj57eyBkYXRvLnByZWNpb0NvbkltcHVlc3RvcyB8IGN1cnJlbmN5IH19PC9sYWJlbD5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3AtY29sdW1uPlxuICAgICAgICA8cC1jb2x1bW4gKm5nSWY9XCJjb25maWd1cmFjaW9uLnRpcG9QcmVjaW8gPT09ICdjb3N0bycgXCIgaGVhZGVyPVwie3snTW92aW1pZW50by5jb3N0bycgfCB0cmFuc2xhdGUgfX1cIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWRhdG89XCJyb3dEYXRhXCIgcFRlbXBsYXRlPVwiYm9keVwiPlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlwiPnt7IGRhdG8ucHJlY2lvIHwgY3VycmVuY3kgfX08L2xhYmVsPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvcC1jb2x1bW4+XG5cblxuICAgICAgICA8cC1jb2x1bW4gZmllbGQ9XCJhcnRpY3Vsby5jb2RpZ29cIiBoZWFkZXI9XCJ7eydDb2RpZ28gYXJ0aWN1bG8nIHwgdHJhbnNsYXRlfX1cIj48L3AtY29sdW1uPlxuICAgICAgICA8cC1jb2x1bW4gZmllbGQ9XCJhcnRpY3Vsby5kZXNjcmlwY2lvblwiIGhlYWRlcj1cInt7J0Rlc2NyaXBjaW9uJyB8IHRyYW5zbGF0ZX19XCI+PC9wLWNvbHVtbj5cblxuXG5cbiAgICAgICAgPHAtY29sdW1uICBoZWFkZXI9XCJ7eydFeGlzdGVuY2lhUG9yVW5pZGFkJyB8IHRyYW5zbGF0ZSB9fVwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtZGF0bz1cInJvd0RhdGFcIiBwVGVtcGxhdGU9XCJib2R5XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0by5leGlzdGVuY2lhVW5pZGFkZXNcIiA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNFwiPjxsYWJlbCBmb3I9XCJcIj57e2l0ZW0udW5pZGFkX2NvZGlnb319PC9sYWJlbD48L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy00XCI+PGxhYmVsIGZvcj1cIlwiPnt7aXRlbS51bmlkYWRfZXhpc3RlbmNpYSB8IG51bWJlciA6ICcxLjItMid9fTwvbGFiZWw+XG4gICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICBcbiAgICAgICAgICAgIDwvZGl2PiAgXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9wLWNvbHVtbj5cbiAgICAgICAgXG4gICAgICA8L3AtdGFibGU+XG4gICAgICAtLT5cbiAgPHAtcGFnaW5hdG9yIFtyb3dzXT1cInBhZ2Uucm93c1wiIFt0b3RhbFJlY29yZHNdPVwicGFnZS50b3RhbFwiIFtwYWdlTGlua1NpemVdPVwiNVwiIChvblBhZ2VDaGFuZ2UpPVwicGFnaW5hKCRldmVudClcIlxuICAgIFtyb3dzUGVyUGFnZU9wdGlvbnNdPVwiWzEwLDI1LDUwLDEwMCw1MDBdXCI+PC9wLXBhZ2luYXRvcj5cbiAgPCEtLSAgXG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgLS0+XG48L3AtZGlhbG9nPlxuPCEtLVxuICA8L2Rpdj4gXG4gICAgICAtLT5cbjwhLS10ZXJtaW5hIHNlbGVjY2lvbiBkZSBhcnRpY3Vsb3MtLT5cbjwhLS1zZWxlY2Npb25hIHViaWNhY2lvbiAtLT5cbjxsaWItc2VsZWNjaW9uLWFydGljdWxvLWluZm9ybWFjaW9uIFtzaG93TW9kYWxdPVwic2hvd01vZGFsSW5mb3JtYWNpb25cIiBbYXJ0aWN1bG9dPVwiYXJ0aWN1bG9TZWxlY3RlZFwiXG4gIChldmVudFNlbGVjdGlvbik9XCJvbkV2ZW50SW5mb3JtYWNpb24oJGV2ZW50KVwiICpuZ0lmPVwic2hvd01vZGFsSW5mb3JtYWNpb25cIj5cbjwvbGliLXNlbGVjY2lvbi1hcnRpY3Vsby1pbmZvcm1hY2lvbj4iXX0=
|
|
152
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SeleccionaArticuloComponent, decorators: [{
|
|
153
|
+
type: Component,
|
|
154
|
+
args: [{ selector: 'app-selecciona-articulo', template: "<!--inicia seleccion de articulos-->\n<p-dialog header=\"{{ 'Articulos' | translate }}\" [(visible)]=\"showArticulos\" [maximizable]=\"true\"\n (onShow)=\"obtenerExistenciaArticulosShow()\" (onHide)=\"busquedaArticulos = { tipoBusqueda : ''}; emitirShowArticulos()\"\n (onMaximize)=\"maximizado = $event.maximized\"\n [baseZIndex]=\"10000\" [blockScroll]=\"true\" [style]=\"{ width: '95vw' }\" [minY]=\"70\"\n [contentStyle]=\"estiloContenido\">\n\n <div class=\"sa-cuerpo\">\n\n <div class=\"grid sa-filtros\">\n <div class=\"col-12 md:col-6 xl:col-5\">\n <label class=\"sa-etiqueta\" for=\"sa-tipo-busqueda\">Buscar por</label>\n <div class=\"p-inputgroup\">\n <select pInputText class=\"sa-tipo-busqueda\" id=\"sa-tipo-busqueda\"\n [(ngModel)]=\"busquedaArticulos.tipoBusqueda\" (change)=\"obtenerExistenciaArticulosVal()\">\n <option value=\"C\">C\u00F3digo</option>\n <option value=\"D\">Descripci\u00F3n</option>\n <option value=\"CD\">Coincidencia</option>\n <option value=\"CI\">Igual a</option>\n </select>\n <input pInputText type=\"text\" class=\"sa-campo-busqueda\" id=\"sa-campo-busqueda\" #campoBusqueda\n placeholder=\"T\u00E9rmino de b\u00FAsqueda\" [(ngModel)]=\"busquedaArticulos.key\"\n (keydown.enter)=\"obtenerExistenciaArticulos()\">\n <button pButton type=\"button\" icon=\"pi pi-search\" aria-label=\"Buscar\"\n (click)=\"obtenerExistenciaArticulos()\"></button>\n </div>\n </div>\n <div class=\"col-12 md:col-6 xl:col-5\">\n <label class=\"sa-etiqueta\" for=\"sa-almacen\">Almac\u00E9n</label>\n <select pInputText class=\"sa-almacen\" id=\"sa-almacen\" disabled [ngModel]=\"almacenSeleccionado\"\n [ngModelOptions]=\"{ standalone: true }\">\n @for (almacen of almacenList; track almacen.id) {\n <option [ngValue]=\"almacen.id\">{{ almacen.descripcion }}</option>\n }\n </select>\n </div>\n </div>\n\n <p-table #dt [value]=\"articulosList\" [scrollable]=\"true\" scrollHeight=\"flex\" responsiveLayout=\"scroll\"\n selectionMode=\"single\" styleClass=\"p-datatable-sm\" [loading]=\"cargando\" class=\"sa-tabla\"\n (onRowSelect)=\"filaSeleccionada($event)\">\n\n <ng-template pTemplate=\"header\">\n <tr>\n <th class=\"sa-col-ubicacion\" translate>C\u00F3digo Ubicacion</th>\n <th class=\"sa-num\" translate>Existencia</th>\n <th class=\"sa-col-unidad\" translate>Unidad</th>\n @if (manejaUnidadSecundaria) {\n <th class=\"sa-num\" translate>existenciaSecundaria</th>\n <th class=\"sa-col-unidad\" translate>Unidad</th>\n }\n <th class=\"sa-col-codigo\" translate>C\u00F3digo</th>\n <th class=\"sa-col-descripcion\" translate>Descripcion</th>\n <th class=\"sa-col-accion\"><span class=\"sa-sr-only\">Detalle</span></th>\n @if (configuracion.tipoPrecio !== 'costo') {\n <th class=\"sa-num\" translate>Precio</th>\n <th class=\"sa-num\" translate>Precio 2</th>\n <th class=\"sa-num\" translate>Precio 3</th>\n <th class=\"sa-num\" translate>Precio 4</th>\n <th class=\"sa-num\" translate>Precio 5</th>\n } @else {\n <th class=\"sa-num\" translate>Movimiento.costo</th>\n }\n @if (mostrarExistenciaPorUnidad) {\n <th class=\"sa-col-unidades\" translate>Existencia por Unidad</th>\n }\n @for (item of clasificadorList; track $index) {\n <th class=\"sa-col-clasificador\" translate>{{ item.descripcion }}</th>\n }\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowData>\n <tr [pSelectableRow]=\"rowData\">\n <td class=\"sa-col-ubicacion\">\n @if (rowData.ubicacionCodigo) {\n {{ rowData.ubicacionCodigo }}\n } @else {\n <span class=\"sa-sr-only\" translate>Movimiento.NoAsignado</span>\n }\n </td>\n <td class=\"sa-num\">{{ rowData.existencia }}</td>\n <td class=\"sa-col-unidad\">{{ rowData.unidadCodigo }}</td>\n @if (manejaUnidadSecundaria) {\n <td class=\"sa-num\">{{ rowData.existenciaSecundaria }}</td>\n <td class=\"sa-col-unidad\">{{ rowData.unidadSecundariaCodigo }}</td>\n }\n <td class=\"sa-col-codigo\">{{ rowData.articulo.codigo }}</td>\n <td class=\"sa-col-descripcion\" [pTooltip]=\"rowData.articulo.descripcion\" tooltipPosition=\"top\"\n [showDelay]=\"400\">{{ rowData.articulo.descripcion }}</td>\n <td class=\"sa-col-accion\">\n <button pButton type=\"button\" icon=\"pi pi-eye\" class=\"p-button-text p-button-sm p-button-rounded\"\n [attr.aria-label]=\"'Ver informaci\u00F3n del art\u00EDculo ' + rowData.articulo.descripcion\"\n (click)=\"onShowInformacion(rowData)\"></button>\n </td>\n @if (configuracion.tipoPrecio !== 'costo') {\n <td class=\"sa-num\">{{ rowData.precioConImpuestos | currency }}</td>\n <td class=\"sa-num\">{{ rowData.precio2ConImpuestos | currency }}</td>\n <td class=\"sa-num\">{{ rowData.precio3ConImpuestos | currency }}</td>\n <td class=\"sa-num\">{{ rowData.precio4ConImpuestos | currency }}</td>\n <td class=\"sa-num\">{{ rowData.precio5ConImpuestos | currency }}</td>\n } @else {\n <td class=\"sa-num\">{{ rowData.precio | currency }}</td>\n }\n @if (mostrarExistenciaPorUnidad) {\n <td class=\"sa-col-unidades\">\n @for (item of rowData.existenciaUnidades; track $index) {\n <div class=\"sa-unidad-existencia\">\n <span>{{ item.unidad_codigo }}</span>\n <span class=\"sa-num\">{{ item.unidad_existencia | number : '1.2-2' }}</span>\n </div>\n }\n </td>\n }\n @for (itemData of rowData.articuloClasificadorList; track $index) {\n <td class=\"sa-col-clasificador\">{{ itemData.valor }}</td>\n }\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td [attr.colspan]=\"totalColumnas\">\n <div class=\"sa-vacio\">\n <i class=\"pi pi-search\" aria-hidden=\"true\"></i>\n @if (busquedaArticulos.key) {\n <p>Sin resultados para \u00AB{{ busquedaArticulos.key }}\u00BB. Prueba con otro t\u00E9rmino o tipo de b\u00FAsqueda.</p>\n } @else {\n <p>Escribe un t\u00E9rmino de b\u00FAsqueda y presiona <strong>Buscar</strong> para consultar la existencia de\n art\u00EDculos.</p>\n }\n </div>\n </td>\n </tr>\n </ng-template>\n\n </p-table>\n\n <p-paginator [rows]=\"page.rows\" [totalRecords]=\"page.total\" [pageLinkSize]=\"5\" (onPageChange)=\"pagina($event)\"\n [rowsPerPageOptions]=\"[10,25,50,100,500]\"></p-paginator>\n\n </div>\n</p-dialog>\n<!--termina seleccion de articulos-->\n<!--selecciona ubicacion -->\n@if (showModalInformacion) {\n <lib-seleccion-articulo-informacion [showModal]=\"showModalInformacion\" [articulo]=\"articuloSelected\"\n (eventSelection)=\"onEventInformacion($event)\">\n </lib-seleccion-articulo-informacion>\n}\n", styles: [".sa-cuerpo{display:flex;flex-direction:column;gap:.875rem;flex:1 1 auto;min-height:0}.sa-etiqueta{display:block;margin-bottom:.25rem;font-weight:600;color:#475569}.sa-tipo-busqueda{width:10.5rem;flex:0 0 auto}.sa-campo-busqueda{flex:1 1 auto;min-width:7rem}.sa-almacen{width:100%;max-width:22rem}p-table.sa-tabla{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.sa-col-ubicacion{width:7.5rem}.sa-col-codigo{width:6.5rem}.sa-col-unidad{width:4.5rem}.sa-col-accion{width:3.25rem;text-align:center}.sa-col-accion .p-button{width:1.85rem;height:1.85rem;padding:0}.sa-col-unidades{width:12rem}.sa-col-clasificador{width:6.5rem}.sa-col-descripcion{min-width:13rem;max-width:26rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sa-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.sa-unidad-existencia{display:flex;justify-content:space-between;gap:.5rem}p-table.sa-tabla tr.p-highlight{background:#e3f2fd;color:#1565c0;font-weight:600}.sa-vacio{display:flex;align-items:center;gap:.75rem;padding:1.25rem .5rem;color:#64748b}.sa-vacio i{font-size:1.5rem;color:#94a3b8}.sa-vacio p{margin:0}.sa-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}\n"] }]
|
|
155
|
+
}], propDecorators: { configuracion: [{
|
|
156
|
+
type: Input
|
|
157
|
+
}], showArticulos: [{
|
|
158
|
+
type: Input
|
|
159
|
+
}], movimiento: [{
|
|
160
|
+
type: Input
|
|
161
|
+
}], manejaUnidadSecundaria: [{
|
|
162
|
+
type: Input
|
|
163
|
+
}], emitFilaSeleccionada: [{
|
|
164
|
+
type: Output
|
|
165
|
+
}], emitShowArticulos: [{
|
|
166
|
+
type: Output
|
|
167
|
+
}], campoBusqueda: [{
|
|
168
|
+
type: ViewChild,
|
|
169
|
+
args: ['campoBusqueda']
|
|
170
|
+
}] } });
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWNjaW9uYS1hcnRpY3Vsby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcnAtY29yZS9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWNjaW9uYS1hcnRpY3Vsby9zZWxlY2Npb25hLWFydGljdWxvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VycC1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY2Npb25hLWFydGljdWxvL3NlbGVjY2lvbmEtYXJ0aWN1bG8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU1RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU8vQyxNQUFNLE9BQU8sMkJBQTJCO0lBTHhDO1FBV1csMkJBQXNCLEdBQWEsS0FBSyxDQUFDO1FBRXhDLHlCQUFvQixHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzlELHNCQUFpQixHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBSTdELGtCQUFhLEdBQU0sTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hDLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMzQyxvQkFBZSxHQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUdsRCxrQkFBYSxHQUFRLEVBQUUsQ0FBQztRQUV4QixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2Isc0JBQWlCLEdBQVM7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S0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFFSSxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUVxQixhQUFhO3NCQUF4QyxTQUFTO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFsbWFjZW4gfSBmcm9tICcuLi9hbG1hY2VuL21vZGVscy9BbG1hY2VuJztcbmltcG9ydCB7IFBhZ2luYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BhZ2luYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWxtYWNlblNlcnZpY2UgfSBmcm9tICcuLi9hbG1hY2VuL3NlcnZpY2VzL2FsbWFjZW4uc2VydmljZSc7XG5pbXBvcnQgeyBTdG9ja1NlcnZpY2UgfSBmcm9tICcuL3N0b2NrLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtc2VsZWNjaW9uYS1hcnRpY3VsbycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY2Npb25hLWFydGljdWxvLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWNjaW9uYS1hcnRpY3Vsby5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VsZWNjaW9uYUFydGljdWxvQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBjb25maWd1cmFjaW9uIDogYW55O1xuICBASW5wdXQoKSBzaG93QXJ0aWN1bG9zIDogYm9vbGVhbjtcbiAgQElucHV0KCkgbW92aW1pZW50bzogYW55O1xuXG4gIEBJbnB1dCgpIG1hbmVqYVVuaWRhZFNlY3VuZGFyaWEgOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIGVtaXRGaWxhU2VsZWNjaW9uYWRhIDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBlbWl0U2hvd0FydGljdWxvcyA6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2NhbXBvQnVzcXVlZGEnKSBjYW1wb0J1c3F1ZWRhIDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICBwcml2YXRlIF9zdG9ja1NlcnZpY2UgICAgPSBpbmplY3QoU3RvY2tTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBfcGFnaW5hdGVTZXJ2aWNlID0gaW5qZWN0KFBhZ2luYXRlU2VydmljZSk7XG4gIHByaXZhdGUgX2FsbWFjZW5TZXJ2aWNlICA9IGluamVjdChBbG1hY2VuU2VydmljZSk7XG5cbiAgYWxtYWNlbkxpc3Q6IEFsbWFjZW5bXTtcbiAgYXJ0aWN1bG9zTGlzdDogYW55ID0gW107XG4gIHBhZ2U6IGFueTtcbiAgb3JkZW5hciA9IFtdO1xuICBidXNxdWVkYUFydGljdWxvcyA6IGFueSA9IHtcbiAgICB0aXBvQnVzcXVlZGEgOiAnJ1xuICB9O1xuICBhbG1hY2VuU2VsZWNjaW9uYWRvOiBhbnk7XG4gIGNhcmdhbmRvID0gZmFsc2U7XG5cbiAgc2hvd01vZGFsOmJvb2xlYW49ZmFsc2U7XG4gIGFydGljdWxvU2VsZWN0ZWQ6YW55O1xuICBzaG93TW9kYWxJbmZvcm1hY2lvbjpib29sZWFuPWZhbHNlO1xuICBzaG93Rmlyc3RUaW1lOmJvb2xlYW49dHJ1ZTtcbiAgY2xhc2lmaWNhZG9yTGlzdDphbnk9W107XG4gIG1heGltaXphZG86Ym9vbGVhbj1mYWxzZTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnBhZ2UgPSB0aGlzLl9wYWdpbmF0ZVNlcnZpY2UuZ2V0UGFnZSgpO1xuICAgIHRoaXMub3JkZW5hciA9IHRoaXMuX3BhZ2luYXRlU2VydmljZS5nZXRPcmRlbihcbiAgICAgIFtcbiAgICAgICAge3BhcmFtOiAnbm9tYnJlJywgbGFiZWw6ICdlc3RhdHVzJ31cbiAgICAgIF0sICdlcycpO1xuXG5cbiAgICB0aGlzLnNob3dGaXJzdFRpbWU9dHJ1ZTtcbiAgICB0aGlzLl9hbG1hY2VuU2VydmljZS5nZXRBbGwoIHRoaXMuY29uZmlndXJhY2lvbi5wYXJhbXMgKS5zdWJzY3JpYmUoXG4gICAgICAoZGF0YTogYW55ICkgPT4ge1xuICAgICAgICB0aGlzLmFsbWFjZW5MaXN0ID0gPEFsbWFjZW5bXT4gZGF0YS5kYXRhO1xuICAgICAgICAvLyBFbCB2YWxvciBzZSByZWFwbGljYSBjdWFuZG8gbGFzIG9wY2lvbmVzIHlhIGV4aXN0ZW4gZW4gZWwgc2VsZWN0XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyB0aGlzLmFsbWFjZW5TZWxlY2Npb25hZG8gPSB0aGlzLmFsbWFjZW5JZDsgfSk7XG4gICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMuYnVzcXVlZGFBcnRpY3Vsb3MudGlwb0J1c3F1ZWRhID0gJ0NEJztcbiAgfVxuXG4gIC8qKiBJZCBkZWwgYWxtYWPDqW4gZGVsIG1vdmltaWVudG87IGFjZXB0YSB0YW50byBpZCBudW3DqXJpY28gY29tbyBvYmpldG8gQWxtYWNlbi4gKi9cbiAgZ2V0IGFsbWFjZW5JZCgpOiBhbnkge1xuICAgIGNvbnN0IGFsbWFjZW4gPSB0aGlzLm1vdmltaWVudG8gPyB0aGlzLm1vdmltaWVudG8uYWxtYWNlbiA6IG51bGw7XG4gICAgcmV0dXJuIChhbG1hY2VuICYmIHR5cGVvZiBhbG1hY2VuID09PSAnb2JqZWN0JykgPyBhbG1hY2VuLmlkIDogYWxtYWNlbjtcbiAgfVxuXG4gIC8qKiBOw7ptZXJvIGRlIGNvbHVtbmFzIHZpc2libGVzIGRlIGxhIHRhYmxhLCBwYXJhIGVsIGNvbHNwYW4gZGVsIGVzdGFkbyB2YWPDrW8uICovXG4gIGdldCB0b3RhbENvbHVtbmFzKCk6IG51bWJlciB7XG4gICAgbGV0IHRvdGFsID0gNjsgLy8gdWJpY2FjacOzbiwgZXhpc3RlbmNpYSwgdW5pZGFkLCBjw7NkaWdvLCBkZXNjcmlwY2nDs24sIGRldGFsbGVcbiAgICBpZiAodGhpcy5tYW5lamFVbmlkYWRTZWN1bmRhcmlhKSB7XG4gICAgICB0b3RhbCArPSAyO1xuICAgIH1cbiAgICB0b3RhbCArPSAodGhpcy5jb25maWd1cmFjaW9uICYmIHRoaXMuY29uZmlndXJhY2lvbi50aXBvUHJlY2lvID09PSAnY29zdG8nKSA/IDEgOiA1O1xuICAgIGlmICh0aGlzLm1vc3RyYXJFeGlzdGVuY2lhUG9yVW5pZGFkKSB7XG4gICAgICB0b3RhbCArPSAxO1xuICAgIH1cbiAgICByZXR1cm4gdG90YWwgKyAodGhpcy5jbGFzaWZpY2Fkb3JMaXN0ID8gdGhpcy5jbGFzaWZpY2Fkb3JMaXN0Lmxlbmd0aCA6IDApO1xuICB9XG5cbiAgLyoqIExhIGNvbHVtbmEgXCJFeGlzdGVuY2lhIHBvciBVbmlkYWRcIiBzb2xvIHNlIG11ZXN0cmEgc2kgYWxnw7puIGFydMOtY3VsbyB0cmFlIGRhdG9zLiAqL1xuICBnZXQgbW9zdHJhckV4aXN0ZW5jaWFQb3JVbmlkYWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodGhpcy5hcnRpY3Vsb3NMaXN0KSAmJlxuICAgICAgdGhpcy5hcnRpY3Vsb3NMaXN0LnNvbWUoKHJvdzogYW55KSA9PiByb3cuZXhpc3RlbmNpYVVuaWRhZGVzICYmIHJvdy5leGlzdGVuY2lhVW5pZGFkZXMubGVuZ3RoID4gMCk7XG4gIH1cblxuICAvKiogQWx0dXJhIGRlbCBjdWVycG8gZGVsIGRpw6Fsb2dvOiBvY3VwYSBlbCB2aWV3cG9ydCB5IGNyZWNlIGFsIG1heGltaXphci4gKi9cbiAgZ2V0IGVzdGlsb0NvbnRlbmlkbygpOiBhbnkge1xuICAgIGNvbnN0IGJhc2UgPSB7IGRpc3BsYXk6ICdmbGV4JywgJ2ZsZXgtZGlyZWN0aW9uJzogJ2NvbHVtbicsICdtaW4taGVpZ2h0JzogJzAnIH07XG4gICAgcmV0dXJuIHRoaXMubWF4aW1pemFkb1xuICAgICAgPyB7IC4uLmJhc2UsIGZsZXg6ICcxIDEgYXV0bycgfVxuICAgICAgOiB7IC4uLmJhc2UsIGhlaWdodDogJ2NhbGMoOTB2aCAtIDkuNXJlbSknIH07XG4gIH1cblxuICBwYWdpbmEoIGUgKXtcbiAgICB0aGlzLnBhZ2Uucm93cyA9IGUucm93cztcbiAgICB0aGlzLnBhZ2Uub2Zmc2V0ID0gZS5maXJzdDtcbiAgICB0aGlzLm9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zKCk7XG4gIH1cbiAgb2J0ZW5lckV4aXN0ZW5jaWFBcnRpY3Vsb3NTaG93KCl7XG4gICAgdGhpcy5idXNxdWVkYUFydGljdWxvcy50aXBvQnVzcXVlZGEgPSAnQ0QnO1xuICAgIGlmICh0aGlzLnNob3dGaXJzdFRpbWUpe1xuICAgICAgdGhpcy5vYnRlbmVyRXhpc3RlbmNpYUFydGljdWxvcygpO1xuICAgICAgdGhpcy5zaG93Rmlyc3RUaW1lPWZhbHNlO1xuICAgIH1cbiAgICAvLyBFbCBkacOhbG9nbyB0ZXJtaW5hIGRlIG1vbnRhciBzdSBjb250ZW5pZG8gZGVzcHXDqXMgZGVsIGV2ZW50byBvblNob3dcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmNhbXBvQnVzcXVlZGEpIHtcbiAgICAgICAgdGhpcy5jYW1wb0J1c3F1ZWRhLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zKCApIHtcbiAgICBpZiAodGhpcy5idXNxdWVkYUFydGljdWxvcy50aXBvQnVzcXVlZGEgJiYgIXRoaXMuYnVzcXVlZGFBcnRpY3Vsb3Mua2V5KSB7XG4gICAgICAvLyBTaW4gdMOpcm1pbm8gZGUgYsO6c3F1ZWRhIGVsIGJhY2tlbmQgbm8gcmVncmVzYSByZXN1bHRhZG9zXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2FyZ2FuZG8gPSB0cnVlO1xuICAgIHRoaXMuYnVzcXVlZGFBcnRpY3Vsb3MucGFyYW1zID0gdGhpcy5fcGFnaW5hdGVTZXJ2aWNlLmdldFBhcmFtcyggdGhpcy5wYWdlICk7XG4gICAgY29uc3QgcGFyYW1ldHJvcyA9IHtcbiAgICAgIGFsbWFjZW4gICAgICAgICAgICAgOiAoIHRoaXMuY29uZmlndXJhY2lvbi5ub09jdXBhQWxhbWFjZW4gPyBudWxsIDogdGhpcy5tb3ZpbWllbnRvLmFsbWFjZW4gKSxcbiAgICAgIHRpcG9QcmVjaW8gICAgICAgICAgOiB0aGlzLmNvbmZpZ3VyYWNpb24udGlwb1ByZWNpbyxcbiAgICAgIGJ1c3F1ZWRhQXJ0aWN1bG9zICAgOiB0aGlzLmJ1c3F1ZWRhQXJ0aWN1bG9zLFxuICAgICAgdGlwb0FydGljdWxvICAgICAgICA6IHRoaXMuY29uZmlndXJhY2lvbi50aXBvQXJ0aWN1bG8gPyB0aGlzLmNvbmZpZ3VyYWNpb24udGlwb0FydGljdWxvIDogbnVsbCxcbiAgICAgIG51bWVyb1ByZWNpb0RlZmF1bHQgOiB0aGlzLmNvbmZpZ3VyYWNpb24ubnVtZXJvUHJlY2lvRGVmYXVsdFxuICAgIH07XG4gICAgdGhpcy5fc3RvY2tTZXJ2aWNlLm9idGVuZXJFeGlzdGVuY2lhc0FydGljdWxvc0Rlc2NyaXBjaW9uKCBwYXJhbWV0cm9zICwgdGhpcy5idXNxdWVkYUFydGljdWxvcy5wYXJhbXMgKS50aGVuKFxuICAgICAgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmFydGljdWxvc0xpc3QgPSBkYXRhLmFydGljdWxvc0Rlc2NyaXBjaW9uO1xuICAgICAgICB0aGlzLnBhZ2UudG90YWwgPSBkYXRhLnRvdGFsO1xuICAgICAgICBpZiAoZGF0YS5jbGFzaWZpY2Fkb3Jlcyl7XG4gICAgICAgICAgdGhpcy5jbGFzaWZpY2Fkb3JMaXN0ID0gZGF0YS5jbGFzaWZpY2Fkb3JlcztcbiAgICAgICAgfVxuICAgICAgICBpZighdGhpcy5zaG93TW9kYWwpe1xuICAgICAgICAgIHRoaXMuc2hvd01vZGFsID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNhcmdhbmRvID0gZmFsc2U7XG4gICAgICB9XG4gICAgKS5jYXRjaChlID0+e1xuICAgICAgdGhpcy5hcnRpY3Vsb3NMaXN0ID0gIFtdO1xuICAgICAgdGhpcy5wYWdlLnRvdGFsID0gMDtcbiAgICAgIHRoaXMuY2FyZ2FuZG8gPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuICBvYnRlbmVyRXhpc3RlbmNpYUFydGljdWxvc1ZhbCgpe1xuICAgIGlmICggdGhpcy5idXNxdWVkYUFydGljdWxvcy50aXBvQnVzcXVlZGEgIT0gJycgJiYgIXRoaXMuYnVzcXVlZGFBcnRpY3Vsb3Mua2V5IClcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIHRoaXMub2J0ZW5lckV4aXN0ZW5jaWFBcnRpY3Vsb3MoKTtcbiAgfVxuICBvYnRlbmVyRXhpc3RlbmNpYUFydGljdWxvc0tleSggJGV2ZW50ICkge1xuICAgIGlmKCAkZXZlbnQua2V5ID09PSAnRW50ZXInKVxuICAgICAgdGhpcy5vYnRlbmVyRXhpc3RlbmNpYUFydGljdWxvcygpO1xuICB9XG5cbiAgZmlsYVNlbGVjY2lvbmFkYSggJGV2ZW50ICkge1xuICAgIHRoaXMuZW1pdEZpbGFTZWxlY2Npb25hZGEuZW1pdCgkZXZlbnQpO1xuICB9XG5cbiAgZW1pdGlyU2hvd0FydGljdWxvcygpIHtcbiAgICB0aGlzLmVtaXRTaG93QXJ0aWN1bG9zLmVtaXQoIDAgKTtcbiAgfVxuXG4gIG9uU2hvd0luZm9ybWFjaW9uKGV2ZW50QXJ0aWN1bG8pe1xuICAgIHRoaXMuYXJ0aWN1bG9TZWxlY3RlZCA9IGV2ZW50QXJ0aWN1bG87XG4gICAgdGhpcy5zaG93TW9kYWxJbmZvcm1hY2lvbiA9IHRydWU7XG4gIH1cblxuICBvbkV2ZW50SW5mb3JtYWNpb24oZXZlbnQpIHtcbiAgICB0aGlzLnNob3dNb2RhbEluZm9ybWFjaW9uID0gZXZlbnQuc3RhdHVzO1xuICB9XG59XG4iLCI8IS0taW5pY2lhIHNlbGVjY2lvbiBkZSBhcnRpY3Vsb3MtLT5cbjxwLWRpYWxvZyBoZWFkZXI9XCJ7eyAnQXJ0aWN1bG9zJyB8IHRyYW5zbGF0ZSB9fVwiIFsodmlzaWJsZSldPVwic2hvd0FydGljdWxvc1wiIFttYXhpbWl6YWJsZV09XCJ0cnVlXCJcbiAgKG9uU2hvdyk9XCJvYnRlbmVyRXhpc3RlbmNpYUFydGljdWxvc1Nob3coKVwiIChvbkhpZGUpPVwiYnVzcXVlZGFBcnRpY3Vsb3MgPSB7IHRpcG9CdXNxdWVkYSA6ICcnfTsgZW1pdGlyU2hvd0FydGljdWxvcygpXCJcbiAgKG9uTWF4aW1pemUpPVwibWF4aW1pemFkbyA9ICRldmVudC5tYXhpbWl6ZWRcIlxuICBbYmFzZVpJbmRleF09XCIxMDAwMFwiIFtibG9ja1Njcm9sbF09XCJ0cnVlXCIgW3N0eWxlXT1cInsgd2lkdGg6ICc5NXZ3JyB9XCIgW21pblldPVwiNzBcIlxuICBbY29udGVudFN0eWxlXT1cImVzdGlsb0NvbnRlbmlkb1wiPlxuXG4gIDxkaXYgY2xhc3M9XCJzYS1jdWVycG9cIj5cblxuICAgIDxkaXYgY2xhc3M9XCJncmlkIHNhLWZpbHRyb3NcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgbWQ6Y29sLTYgeGw6Y29sLTVcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwic2EtZXRpcXVldGFcIiBmb3I9XCJzYS10aXBvLWJ1c3F1ZWRhXCI+QnVzY2FyIHBvcjwvbGFiZWw+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwLWlucHV0Z3JvdXBcIj5cbiAgICAgICAgICA8c2VsZWN0IHBJbnB1dFRleHQgY2xhc3M9XCJzYS10aXBvLWJ1c3F1ZWRhXCIgaWQ9XCJzYS10aXBvLWJ1c3F1ZWRhXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiYnVzcXVlZGFBcnRpY3Vsb3MudGlwb0J1c3F1ZWRhXCIgKGNoYW5nZSk9XCJvYnRlbmVyRXhpc3RlbmNpYUFydGljdWxvc1ZhbCgpXCI+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiQ1wiPkPDs2RpZ288L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJEXCI+RGVzY3JpcGNpw7NuPC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiQ0RcIj5Db2luY2lkZW5jaWE8L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJDSVwiPklndWFsIGE8L29wdGlvbj5cbiAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICA8aW5wdXQgcElucHV0VGV4dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwic2EtY2FtcG8tYnVzcXVlZGFcIiBpZD1cInNhLWNhbXBvLWJ1c3F1ZWRhXCIgI2NhbXBvQnVzcXVlZGFcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiVMOpcm1pbm8gZGUgYsO6c3F1ZWRhXCIgWyhuZ01vZGVsKV09XCJidXNxdWVkYUFydGljdWxvcy5rZXlcIlxuICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib2J0ZW5lckV4aXN0ZW5jaWFBcnRpY3Vsb3MoKVwiPlxuICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgaWNvbj1cInBpIHBpLXNlYXJjaFwiIGFyaWEtbGFiZWw9XCJCdXNjYXJcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zKClcIj48L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgbWQ6Y29sLTYgeGw6Y29sLTVcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwic2EtZXRpcXVldGFcIiBmb3I9XCJzYS1hbG1hY2VuXCI+QWxtYWPDqW48L2xhYmVsPlxuICAgICAgICA8c2VsZWN0IHBJbnB1dFRleHQgY2xhc3M9XCJzYS1hbG1hY2VuXCIgaWQ9XCJzYS1hbG1hY2VuXCIgZGlzYWJsZWQgW25nTW9kZWxdPVwiYWxtYWNlblNlbGVjY2lvbmFkb1wiXG4gICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCI+XG4gICAgICAgICAgQGZvciAoYWxtYWNlbiBvZiBhbG1hY2VuTGlzdDsgdHJhY2sgYWxtYWNlbi5pZCkge1xuICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJhbG1hY2VuLmlkXCI+e3sgYWxtYWNlbi5kZXNjcmlwY2lvbiB9fTwvb3B0aW9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxwLXRhYmxlICNkdCBbdmFsdWVdPVwiYXJ0aWN1bG9zTGlzdFwiIFtzY3JvbGxhYmxlXT1cInRydWVcIiBzY3JvbGxIZWlnaHQ9XCJmbGV4XCIgcmVzcG9uc2l2ZUxheW91dD1cInNjcm9sbFwiXG4gICAgICBzZWxlY3Rpb25Nb2RlPVwic2luZ2xlXCIgc3R5bGVDbGFzcz1cInAtZGF0YXRhYmxlLXNtXCIgW2xvYWRpbmddPVwiY2FyZ2FuZG9cIiBjbGFzcz1cInNhLXRhYmxhXCJcbiAgICAgIChvblJvd1NlbGVjdCk9XCJmaWxhU2VsZWNjaW9uYWRhKCRldmVudClcIj5cblxuICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRoIGNsYXNzPVwic2EtY29sLXViaWNhY2lvblwiIHRyYW5zbGF0ZT5Dw7NkaWdvIFViaWNhY2lvbjwvdGg+XG4gICAgICAgICAgPHRoIGNsYXNzPVwic2EtbnVtXCIgdHJhbnNsYXRlPkV4aXN0ZW5jaWE8L3RoPlxuICAgICAgICAgIDx0aCBjbGFzcz1cInNhLWNvbC11bmlkYWRcIiB0cmFuc2xhdGU+VW5pZGFkPC90aD5cbiAgICAgICAgICBAaWYgKG1hbmVqYVVuaWRhZFNlY3VuZGFyaWEpIHtcbiAgICAgICAgICAgIDx0aCBjbGFzcz1cInNhLW51bVwiIHRyYW5zbGF0ZT5leGlzdGVuY2lhU2VjdW5kYXJpYTwvdGg+XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJzYS1jb2wtdW5pZGFkXCIgdHJhbnNsYXRlPlVuaWRhZDwvdGg+XG4gICAgICAgICAgfVxuICAgICAgICAgIDx0aCBjbGFzcz1cInNhLWNvbC1jb2RpZ29cIiB0cmFuc2xhdGU+Q8OzZGlnbzwvdGg+XG4gICAgICAgICAgPHRoIGNsYXNzPVwic2EtY29sLWRlc2NyaXBjaW9uXCIgdHJhbnNsYXRlPkRlc2NyaXBjaW9uPC90aD5cbiAgICAgICAgICA8dGggY2xhc3M9XCJzYS1jb2wtYWNjaW9uXCI+PHNwYW4gY2xhc3M9XCJzYS1zci1vbmx5XCI+RGV0YWxsZTwvc3Bhbj48L3RoPlxuICAgICAgICAgIEBpZiAoY29uZmlndXJhY2lvbi50aXBvUHJlY2lvICE9PSAnY29zdG8nKSB7XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJzYS1udW1cIiB0cmFuc2xhdGU+UHJlY2lvPC90aD5cbiAgICAgICAgICAgIDx0aCBjbGFzcz1cInNhLW51bVwiIHRyYW5zbGF0ZT5QcmVjaW8gMjwvdGg+XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJzYS1udW1cIiB0cmFuc2xhdGU+UHJlY2lvIDM8L3RoPlxuICAgICAgICAgICAgPHRoIGNsYXNzPVwic2EtbnVtXCIgdHJhbnNsYXRlPlByZWNpbyA0PC90aD5cbiAgICAgICAgICAgIDx0aCBjbGFzcz1cInNhLW51bVwiIHRyYW5zbGF0ZT5QcmVjaW8gNTwvdGg+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJzYS1udW1cIiB0cmFuc2xhdGU+TW92aW1pZW50by5jb3N0bzwvdGg+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAobW9zdHJhckV4aXN0ZW5jaWFQb3JVbmlkYWQpIHtcbiAgICAgICAgICAgIDx0aCBjbGFzcz1cInNhLWNvbC11bmlkYWRlc1wiIHRyYW5zbGF0ZT5FeGlzdGVuY2lhIHBvciBVbmlkYWQ8L3RoPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAZm9yIChpdGVtIG9mIGNsYXNpZmljYWRvckxpc3Q7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPHRoIGNsYXNzPVwic2EtY29sLWNsYXNpZmljYWRvclwiIHRyYW5zbGF0ZT57eyBpdGVtLmRlc2NyaXBjaW9uIH19PC90aD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvdHI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1yb3dEYXRhPlxuICAgICAgICA8dHIgW3BTZWxlY3RhYmxlUm93XT1cInJvd0RhdGFcIj5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJzYS1jb2wtdWJpY2FjaW9uXCI+XG4gICAgICAgICAgICBAaWYgKHJvd0RhdGEudWJpY2FjaW9uQ29kaWdvKSB7XG4gICAgICAgICAgICAgIHt7IHJvd0RhdGEudWJpY2FjaW9uQ29kaWdvIH19XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYS1zci1vbmx5XCIgdHJhbnNsYXRlPk1vdmltaWVudG8uTm9Bc2lnbmFkbzwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cInNhLW51bVwiPnt7IHJvd0RhdGEuZXhpc3RlbmNpYSB9fTwvdGQ+XG4gICAgICAgICAgPHRkIGNsYXNzPVwic2EtY29sLXVuaWRhZFwiPnt7IHJvd0RhdGEudW5pZGFkQ29kaWdvIH19PC90ZD5cbiAgICAgICAgICBAaWYgKG1hbmVqYVVuaWRhZFNlY3VuZGFyaWEpIHtcbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInNhLW51bVwiPnt7IHJvd0RhdGEuZXhpc3RlbmNpYVNlY3VuZGFyaWEgfX08L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwic2EtY29sLXVuaWRhZFwiPnt7IHJvd0RhdGEudW5pZGFkU2VjdW5kYXJpYUNvZGlnbyB9fTwvdGQ+XG4gICAgICAgICAgfVxuICAgICAgICAgIDx0ZCBjbGFzcz1cInNhLWNvbC1jb2RpZ29cIj57eyByb3dEYXRhLmFydGljdWxvLmNvZGlnbyB9fTwvdGQ+XG4gICAgICAgICAgPHRkIGNsYXNzPVwic2EtY29sLWRlc2NyaXBjaW9uXCIgW3BUb29sdGlwXT1cInJvd0RhdGEuYXJ0aWN1bG8uZGVzY3JpcGNpb25cIiB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgICAgW3Nob3dEZWxheV09XCI0MDBcIj57eyByb3dEYXRhLmFydGljdWxvLmRlc2NyaXBjaW9uIH19PC90ZD5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJzYS1jb2wtYWNjaW9uXCI+XG4gICAgICAgICAgICA8YnV0dG9uIHBCdXR0b24gdHlwZT1cImJ1dHRvblwiIGljb249XCJwaSBwaS1leWVcIiBjbGFzcz1cInAtYnV0dG9uLXRleHQgcC1idXR0b24tc20gcC1idXR0b24tcm91bmRlZFwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1ZlciBpbmZvcm1hY2nDs24gZGVsIGFydMOtY3VsbyAnICsgcm93RGF0YS5hcnRpY3Vsby5kZXNjcmlwY2lvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvblNob3dJbmZvcm1hY2lvbihyb3dEYXRhKVwiPjwvYnV0dG9uPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgQGlmIChjb25maWd1cmFjaW9uLnRpcG9QcmVjaW8gIT09ICdjb3N0bycpIHtcbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInNhLW51bVwiPnt7IHJvd0RhdGEucHJlY2lvQ29uSW1wdWVzdG9zIHwgY3VycmVuY3kgfX08L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwic2EtbnVtXCI+e3sgcm93RGF0YS5wcmVjaW8yQ29uSW1wdWVzdG9zIHwgY3VycmVuY3kgfX08L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwic2EtbnVtXCI+e3sgcm93RGF0YS5wcmVjaW8zQ29uSW1wdWVzdG9zIHwgY3VycmVuY3kgfX08L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwic2EtbnVtXCI+e3sgcm93RGF0YS5wcmVjaW80Q29uSW1wdWVzdG9zIHwgY3VycmVuY3kgfX08L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwic2EtbnVtXCI+e3sgcm93RGF0YS5wcmVjaW81Q29uSW1wdWVzdG9zIHwgY3VycmVuY3kgfX08L3RkPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPHRkIGNsYXNzPVwic2EtbnVtXCI+e3sgcm93RGF0YS5wcmVjaW8gfCBjdXJyZW5jeSB9fTwvdGQ+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAobW9zdHJhckV4aXN0ZW5jaWFQb3JVbmlkYWQpIHtcbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInNhLWNvbC11bmlkYWRlc1wiPlxuICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIHJvd0RhdGEuZXhpc3RlbmNpYVVuaWRhZGVzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2EtdW5pZGFkLWV4aXN0ZW5jaWFcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGl0ZW0udW5pZGFkX2NvZGlnbyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2EtbnVtXCI+e3sgaXRlbS51bmlkYWRfZXhpc3RlbmNpYSB8IG51bWJlciA6ICcxLjItMicgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBmb3IgKGl0ZW1EYXRhIG9mIHJvd0RhdGEuYXJ0aWN1bG9DbGFzaWZpY2Fkb3JMaXN0OyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInNhLWNvbC1jbGFzaWZpY2Fkb3JcIj57eyBpdGVtRGF0YS52YWxvciB9fTwvdGQ+XG4gICAgICAgICAgfVxuICAgICAgICA8L3RyPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImVtcHR5bWVzc2FnZVwiPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkIFthdHRyLmNvbHNwYW5dPVwidG90YWxDb2x1bW5hc1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNhLXZhY2lvXCI+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktc2VhcmNoXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICBAaWYgKGJ1c3F1ZWRhQXJ0aWN1bG9zLmtleSkge1xuICAgICAgICAgICAgICAgIDxwPlNpbiByZXN1bHRhZG9zIHBhcmEgwqt7eyBidXNxdWVkYUFydGljdWxvcy5rZXkgfX3Cuy4gUHJ1ZWJhIGNvbiBvdHJvIHTDqXJtaW5vIG8gdGlwbyBkZSBiw7pzcXVlZGEuPC9wPlxuICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8cD5Fc2NyaWJlIHVuIHTDqXJtaW5vIGRlIGLDunNxdWVkYSB5IHByZXNpb25hIDxzdHJvbmc+QnVzY2FyPC9zdHJvbmc+IHBhcmEgY29uc3VsdGFyIGxhIGV4aXN0ZW5jaWEgZGVcbiAgICAgICAgICAgICAgICAgIGFydMOtY3Vsb3MuPC9wPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDwvcC10YWJsZT5cblxuICAgIDxwLXBhZ2luYXRvciBbcm93c109XCJwYWdlLnJvd3NcIiBbdG90YWxSZWNvcmRzXT1cInBhZ2UudG90YWxcIiBbcGFnZUxpbmtTaXplXT1cIjVcIiAob25QYWdlQ2hhbmdlKT1cInBhZ2luYSgkZXZlbnQpXCJcbiAgICAgIFtyb3dzUGVyUGFnZU9wdGlvbnNdPVwiWzEwLDI1LDUwLDEwMCw1MDBdXCI+PC9wLXBhZ2luYXRvcj5cblxuICA8L2Rpdj5cbjwvcC1kaWFsb2c+XG48IS0tdGVybWluYSBzZWxlY2Npb24gZGUgYXJ0aWN1bG9zLS0+XG48IS0tc2VsZWNjaW9uYSB1YmljYWNpb24gLS0+XG5AaWYgKHNob3dNb2RhbEluZm9ybWFjaW9uKSB7XG4gIDxsaWItc2VsZWNjaW9uLWFydGljdWxvLWluZm9ybWFjaW9uIFtzaG93TW9kYWxdPVwic2hvd01vZGFsSW5mb3JtYWNpb25cIiBbYXJ0aWN1bG9dPVwiYXJ0aWN1bG9TZWxlY3RlZFwiXG4gICAgKGV2ZW50U2VsZWN0aW9uKT1cIm9uRXZlbnRJbmZvcm1hY2lvbigkZXZlbnQpXCI+XG4gIDwvbGliLXNlbGVjY2lvbi1hcnRpY3Vsby1pbmZvcm1hY2lvbj5cbn1cbiJdfQ==
|