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.
Files changed (62) hide show
  1. package/esm2022/lib/app.module.mjs +33 -34
  2. package/esm2022/lib/components/acreedor/services/acreedor.service.mjs +9 -9
  3. package/esm2022/lib/components/acreedor/services/acreedorCuentaContable.mjs +9 -9
  4. package/esm2022/lib/components/agente/services/agente.service.mjs +9 -9
  5. package/esm2022/lib/components/almacen/services/almacen.service.mjs +9 -9
  6. package/esm2022/lib/components/banco/services/banco.service.mjs +9 -9
  7. package/esm2022/lib/components/caja/session-create/session-create.component.mjs +19 -102
  8. package/esm2022/lib/components/caja/sessionCaja.service.mjs +9 -9
  9. package/esm2022/lib/components/catalogoTipo/services/catalogoTipo.service.mjs +9 -9
  10. package/esm2022/lib/components/clasificadorTipo/services/clasificadorTipo.service.mjs +9 -9
  11. package/esm2022/lib/components/claveAumentoDisminucion/services/clave-aumento-disminucion.service.mjs +9 -9
  12. package/esm2022/lib/components/claveMovimiento/services/claveMovimiento.service.mjs +9 -9
  13. package/esm2022/lib/components/cliente/services/cliente.service.mjs +9 -9
  14. package/esm2022/lib/components/cliente/services/clienteCuentaBanco.service.mjs +9 -9
  15. package/esm2022/lib/components/cliente/services/clienteFlete.service.mjs +9 -9
  16. package/esm2022/lib/components/contacto/services/datoContacto.service.mjs +9 -9
  17. package/esm2022/lib/components/dato-direccion/services/datoDireccion.service.mjs +9 -9
  18. package/esm2022/lib/components/departamento/services/departamento.service.mjs +9 -9
  19. package/esm2022/lib/components/empresa/services/empresa.service.mjs +9 -9
  20. package/esm2022/lib/components/error404/error404.component.mjs +7 -15
  21. package/esm2022/lib/components/flete/services/flete.service.mjs +9 -9
  22. package/esm2022/lib/components/formaPago/services/FormaPago.service.mjs +9 -9
  23. package/esm2022/lib/components/loading/loading.component.mjs +9 -25
  24. package/esm2022/lib/components/loading/loading.service.mjs +11 -11
  25. package/esm2022/lib/components/loading-screen/loading-screen.component.mjs +9 -14
  26. package/esm2022/lib/components/loading-screen/loading-screen.service.mjs +9 -9
  27. package/esm2022/lib/components/login-modal/login-modal.component.mjs +7 -85
  28. package/esm2022/lib/components/login-modal/login-modal.service.mjs +11 -11
  29. package/esm2022/lib/components/moneda/services/moneda.service.mjs +9 -9
  30. package/esm2022/lib/components/pdfModal/pdf-modal.component.mjs +56 -46
  31. package/esm2022/lib/components/pdfModal/pdf-modal.service.mjs +13 -13
  32. package/esm2022/lib/components/persona-fisica/services/personaFisica.service.mjs +9 -9
  33. package/esm2022/lib/components/proveedor/services/proveedor.service.mjs +9 -9
  34. package/esm2022/lib/components/proveedor/services/proveedorCuentaBanco.service.mjs +9 -9
  35. package/esm2022/lib/components/proveedor/services/proveedorFlete.service.mjs +9 -9
  36. package/esm2022/lib/components/seleccion-articulo-informacion/seleccion-articulo-informacion.component.mjs +13 -102
  37. package/esm2022/lib/components/seleccion-articulo-informacion/services/articulo-informacion.service.mjs +9 -9
  38. package/esm2022/lib/components/selecciona-articulo/selecciona-articulo.component.mjs +85 -400
  39. package/esm2022/lib/components/selecciona-articulo/stock.service.mjs +9 -9
  40. package/esm2022/lib/components/serieDocumento/services/serieDocumento.service.mjs +9 -9
  41. package/esm2022/lib/components/tipo-contacto/services/tipoContacto.service.mjs +9 -9
  42. package/esm2022/lib/components/ubicacion/services/ubicacion.service.mjs +9 -9
  43. package/esm2022/lib/contabilidad/componentes/cclista/cclista.component.mjs +13 -93
  44. package/esm2022/lib/contabilidad/componentes/ccseleccion-dialog/ccseleccion-dialog.component.mjs +16 -40
  45. package/esm2022/lib/contabilidad/servicios/cuentacontable.service.mjs +9 -9
  46. package/esm2022/lib/httpInterceptor/httpInterceptor.mjs +6 -6
  47. package/esm2022/lib/services/auth.service.mjs +13 -13
  48. package/esm2022/lib/services/authenticated.service.mjs +9 -9
  49. package/esm2022/lib/services/canActivateGuard.service.ts.mjs +9 -9
  50. package/esm2022/lib/services/catalogo-adicional.service.mjs +9 -9
  51. package/esm2022/lib/services/controlAcceso.service.mjs +13 -13
  52. package/esm2022/lib/services/file.service.mjs +9 -9
  53. package/esm2022/lib/services/init.service.mjs +9 -9
  54. package/esm2022/lib/services/message.service.mjs +9 -9
  55. package/esm2022/lib/services/paginate.service.mjs +9 -9
  56. package/esm2022/lib/services/personaMoral.service.mjs +9 -9
  57. package/esm2022/lib/services/versionCheck.service.mjs +9 -9
  58. package/fesm2022/visorus-erp-core.mjs +653 -1341
  59. package/fesm2022/visorus-erp-core.mjs.map +1 -1
  60. package/lib/components/pdfModal/pdf-modal.component.d.ts +16 -3
  61. package/lib/components/selecciona-articulo/selecciona-articulo.component.d.ts +16 -10
  62. 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 "./stock.service";
7
- import * as i2 from "../../services/paginate.service";
8
- import * as i3 from "../almacen/services/almacen.service";
9
- import * as i4 from "@angular/common";
10
- import * as i5 from "primeng/api";
11
- import * as i6 from "primeng/table";
12
- import * as i7 from "primeng/button";
13
- import * as i8 from "primeng/inputtext";
14
- import * as i9 from "primeng/paginator";
15
- import * as i10 from "@angular/forms";
16
- import * as i11 from "primeng/dialog";
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(_stockService, _paginateService, _almacenService) {
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.size = 640;
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
- //tempthis.obtenerExistenciaArticulosShow();
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 = function SeleccionaArticuloComponent_Factory(t) { return new (t || SeleccionaArticuloComponent)(i0.ɵɵdirectiveInject(i1.StockService), i0.ɵɵdirectiveInject(i2.PaginateService), i0.ɵɵdirectiveInject(i3.AlmacenService)); }; }
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
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SeleccionaArticuloComponent, [{
470
- type: Component,
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
- }], () => [{ type: i1.StockService }, { type: i2.PaginateService }, { type: i3.AlmacenService }], { configuracion: [{
473
- type: Input
474
- }], showArticulos: [{
475
- type: Input
476
- }], movimiento: [{
477
- type: Input
478
- }], manejaUnidadSecundaria: [{
479
- type: Input
480
- }], emitFilaSeleccionada: [{
481
- type: Output
482
- }], emitShowArticulos: [{
483
- type: Output
484
- }] }); })();
485
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SeleccionaArticuloComponent, { className: "SeleccionaArticuloComponent" }); })();
486
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWNjaW9uYS1hcnRpY3Vsby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcnAtY29yZS9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWNjaW9uYS1hcnRpY3Vsby9zZWxlY2Npb25hLWFydGljdWxvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VycC1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY2Npb25hLWFydGljdWxvL3NlbGVjY2lvbmEtYXJ0aWN1bG8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDMkJyQyxrQ0FBcUU7SUFBQSxZQUF1QjtJQUFBLGlCQUFTOzs7SUFBekQsZ0RBQXdCO0lBQUMsY0FBdUI7SUFBdkIsNENBQXVCOzs7SUF5QjlGLDhCQUFpRTtJQUFBLG9DQUFvQjtJQUFBLGlCQUFLOzs7SUFDMUYsOEJBQWlFO0lBQUEsc0JBQU07SUFBQSxpQkFBSzs7O0lBSTVFLDhCQUFnRjtJQUFBLHNCQUFNO0lBQUEsaUJBQUs7OztJQUMzRiw4QkFBZ0Y7SUFBQSx3QkFBUTtJQUFBLGlCQUFLOzs7SUFDN0YsOEJBQWdGO0lBQUEsd0JBQVE7SUFBQSxpQkFBSzs7O0lBQzdGLDhCQUFnRjtJQUFBLHdCQUFRO0lBQUEsaUJBQUs7OztJQUM3Riw4QkFBZ0Y7SUFBQSx3QkFBUTtJQUFBLGlCQUFLOzs7SUFDN0YsOEJBQWdGO0lBQUEsZ0NBQWdCO0lBQUEsaUJBQUs7OztJQUVyRyw4QkFBd0U7SUFBQSxZQUFvQjtJQUFBLGlCQUFLOzs7SUFBekIsY0FBb0I7SUFBcEIseUNBQW9COzs7SUFmNUYsQUFERiwwQkFBSSxhQUNnQztJQUFBLHFDQUFnQjtJQUFBLGlCQUFLO0lBQ3ZELDhCQUFrQztJQUFBLDBCQUFVO0lBQUEsaUJBQUs7SUFDakQsOEJBQWtDO0lBQUEsc0JBQU07SUFBQSxpQkFBSztJQUU3QyxBQURBLDBGQUFpRSw2RUFDQTtJQUNqRSw4QkFBa0M7SUFBQSw0QkFBTTtJQUFBLGlCQUFLO0lBQzdDLCtCQUFtQztJQUFBLDRCQUFXO0lBQUEsaUJBQUs7SUFDbkQsMEJBQXVDO0lBTXZDLEFBREEsQUFEQSxBQURBLEFBREEsQUFEQSw0RkFBZ0YsK0VBQ0EsK0VBQ0EsK0VBQ0EsK0VBQ0EsK0VBQ0E7SUFDaEYsK0JBQWtDO0lBQUEsc0NBQXFCO0lBQUEsaUJBQUs7SUFDNUQsNEZBQXdFO0lBQzFFLGlCQUFLOzs7SUFic0IsZUFBNEI7SUFBNUIsb0RBQTRCO0lBQzVCLGNBQTRCO0lBQTVCLG9EQUE0QjtJQUk1QixlQUEwQztJQUExQyxrRUFBMEM7SUFDMUMsY0FBMEM7SUFBMUMsa0VBQTBDO0lBQzFDLGNBQTBDO0lBQTFDLGtFQUEwQztJQUMxQyxjQUEwQztJQUExQyxrRUFBMEM7SUFDMUMsY0FBMEM7SUFBMUMsa0VBQTBDO0lBQzFDLGNBQTBDO0lBQTFDLGtFQUEwQztJQUU5QyxlQUFtQjtJQUFuQixpREFBbUI7OztJQUt4Qyw4QkFBb0U7SUFBQSxxQ0FBcUI7SUFBQSxpQkFBSzs7O0lBQzlGLDhCQUF5RDtJQUFBLFlBQTJCO0lBQUEsaUJBQUs7OztJQUFoQyxjQUEyQjtJQUEzQixnREFBMkI7OztJQUlwRiw4QkFBd0Q7SUFBQSxZQUFnQztJQUFBLGlCQUFLOzs7SUFBckMsY0FBZ0M7SUFBaEMscURBQWdDOzs7SUFDeEYsOEJBQXdEO0lBQUEsWUFBa0M7SUFBQSxpQkFBSzs7O0lBQXZDLGNBQWtDO0lBQWxDLHVEQUFrQzs7O0lBUzFGLDhCQUFzRTtJQUFBLFlBQ3RFOztJQUFBLGlCQUFLOzs7SUFEaUUsY0FDdEU7SUFEc0UsbUZBQ3RFOzs7SUFDQSw4QkFBc0U7SUFBQSxZQUNsRTs7SUFBQSxpQkFBSzs7O0lBRDZELGNBQ2xFO0lBRGtFLDBFQUNsRTs7O0lBQ0osOEJBQXNFO0lBQUEsWUFDbEU7O0lBQUEsaUJBQUs7OztJQUQ2RCxjQUNsRTtJQURrRSwwRUFDbEU7OztJQUNKLDhCQUFzRTtJQUFBLFlBQ2xFOztJQUFBLGlCQUFLOzs7SUFENkQsY0FDbEU7SUFEa0UsMEVBQ2xFOzs7SUFDSiw4QkFBc0U7SUFBQSxZQUNsRTs7SUFBQSxpQkFBSzs7O0lBRDZELGNBQ2xFO0lBRGtFLDBFQUNsRTs7O0lBQ0osOEJBQXVFO0lBQUEsWUFBOEI7O0lBQUEsaUJBQUs7OztJQUFuQyxjQUE4QjtJQUE5Qiw2REFBOEI7OztJQUczRSxBQUF0QixBQURGLCtCQUF5RixjQUNqRSxnQkFBYztJQUFBLFlBQXNCO0lBQVEsQUFBUixpQkFBUSxFQUFNO0lBQ2xELEFBQXRCLCtCQUFzQixnQkFBYztJQUFBLFlBQTZDOztJQUVuRixBQURFLEFBRGlGLGlCQUFRLEVBQ25GLEVBQ0Y7OztJQUhnQyxlQUFzQjtJQUF0QiwyQ0FBc0I7SUFDdEIsZUFBNkM7SUFBN0MsOEVBQTZDOzs7SUFLckYsOEJBQW1GO0lBQUEsWUFBa0I7SUFBQSxpQkFBSzs7O0lBQXZCLGNBQWtCO0lBQWxCLHVDQUFrQjs7OztJQW5DdkcsOEJBQStCO0lBRTdCLEFBREEsMEZBQW9FLDZFQUNYO0lBQ3pELDhCQUF5QjtJQUFBLFlBQXNCO0lBQUEsaUJBQUs7SUFDcEQsOEJBQXlCO0lBQUEsWUFBd0I7SUFBQSxpQkFBSztJQUd0RCxBQURBLDBGQUF3RCw2RUFDQTtJQUV4RCw4QkFBeUI7SUFBQSxhQUEyQjtJQUFBLGlCQUFLO0lBQ3pELCtCQUEwQjtJQUFBLGFBQWdDO0lBQUEsaUJBQUs7SUFFN0QsQUFERiwrQkFBeUIsa0JBRWdCO0lBQXJDLDhOQUFTLG9DQUEwQixLQUFDO0lBRXhDLEFBREUsaUJBQVMsRUFDTjtJQVdMLEFBRkEsQUFGQSxBQUZBLEFBRkEsQUFGQSw0RkFBc0UsK0VBRUEsK0VBRUEsK0VBRUEsK0VBRUEsK0VBRUM7SUFDdkUsK0JBQXlCO0lBQ3ZCLDhGQUF5RjtJQUszRixpQkFBSztJQUVMLDRGQUFtRjtJQUNyRixpQkFBSzs7OztJQXBDRCwyQ0FBMEI7SUFDRixjQUE4QjtJQUE5QixrREFBOEI7SUFDOUIsY0FBNkI7SUFBN0IsaURBQTZCO0lBQzlCLGVBQXNCO0lBQXRCLDJDQUFzQjtJQUN0QixlQUF3QjtJQUF4Qiw2Q0FBd0I7SUFFdkIsY0FBNEI7SUFBNUIsb0RBQTRCO0lBQzVCLGNBQTRCO0lBQTVCLG9EQUE0QjtJQUU3QixlQUEyQjtJQUEzQixnREFBMkI7SUFDMUIsZUFBZ0M7SUFBaEMscURBQWdDO0lBTWhDLGVBQTBDO0lBQTFDLGtFQUEwQztJQUUxQyxjQUEwQztJQUExQyxrRUFBMEM7SUFFMUMsY0FBMEM7SUFBMUMsa0VBQTBDO0lBRTFDLGNBQTBDO0lBQTFDLGtFQUEwQztJQUUxQyxjQUEwQztJQUExQyxrRUFBMEM7SUFFMUMsY0FBMEM7SUFBMUMsa0VBQTBDO0lBRVIsZUFBNkI7SUFBN0IsdURBQTZCO0lBT2hFLGNBQW1DO0lBQW5DLDZEQUFtQzs7OztJQXdFcEUsOERBQzZFO0lBQTNFLDJRQUFrQixpQ0FBMEIsS0FBQztJQUMvQyxpQkFBcUM7OztJQUZrQyxBQUFuQyx1REFBa0MscUNBQThCOztBRHhLcEcsTUFBTSxPQUFPLDJCQUEyQjtJQTRCdEMsWUFDb0IsYUFBK0IsRUFDL0IsZ0JBQWtDLEVBQ2xDLGVBQWlDO1FBRmpDLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUMvQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLG9CQUFlLEdBQWYsZUFBZSxDQUFrQjtRQXpCNUMsMkJBQXNCLEdBQWEsS0FBSyxDQUFDO1FBRXhDLHlCQUFvQixHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzlELHNCQUFpQixHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBS3JFLGtCQUFhLEdBQVEsRUFBRSxDQUFDO1FBRXhCLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFDYixzQkFBaUIsR0FBUztZQUN4QixZQUFZLEVBQUcsRUFBRTtTQUNsQixDQUFDO1FBRUYsY0FBUyxHQUFTLEtBQUssQ0FBQztRQUV4Qix5QkFBb0IsR0FBUyxLQUFLLENBQUM7UUFDbkMsa0JBQWEsR0FBUyxJQUFJLENBQUM7UUFDM0IscUJBQWdCLEdBQUssRUFBRSxDQUFDO1FBQ3hCLFNBQUksR0FBRyxHQUFHLENBQUM7SUFLOEMsQ0FBQztJQUUxRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDNUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUMzQztZQUNFLEVBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFDO1NBQ3BDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFHWCxJQUFJLENBQUMsYUFBYSxHQUFDLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBRSxDQUFDLFNBQVMsQ0FDaEUsQ0FBQyxJQUFTLEVBQUcsRUFBRTtZQUNiLElBQUksQ0FBQyxXQUFXLEdBQWUsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMzQyxDQUFDLENBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQzNDLDRDQUE0QztJQUM5QyxDQUFDO0lBRUQsTUFBTSxDQUFFLENBQUM7UUFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUNELDhCQUE4QjtRQUM1QixJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUMzQyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUMsQ0FBQztZQUN0QixJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsYUFBYSxHQUFDLEtBQUssQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUVELDBCQUEwQjtRQUN4QixJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUUsSUFBSSxDQUFDLElBQUksQ0FBRSxDQUFDO1FBQzdFLE1BQU0sVUFBVSxHQUFHO1lBQ2pCLE9BQU8sRUFBZSxDQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFFO1lBQzdGLFVBQVUsRUFBWSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVU7WUFDbkQsaUJBQWlCLEVBQUssSUFBSSxDQUFDLGlCQUFpQjtZQUM1QyxZQUFZLEVBQVUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQzlGLG1CQUFtQixFQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CO1NBQzdELENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxDQUFDLHNDQUFzQyxDQUFFLFVBQVUsRUFBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFFLENBQUMsSUFBSSxDQUMxRyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ1osSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUM7WUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUM3QixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUMsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7WUFDOUMsQ0FBQztZQUNELElBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFDLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3hCLENBQUM7UUFDSCxDQUFDLENBQ0YsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDVixJQUFJLENBQUMsYUFBYSxHQUFJLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCw2QkFBNkI7UUFDM0IsSUFBSyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHO1lBQzNFLE9BQU8sS0FBSyxDQUFDO1FBQ2IsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUNELDZCQUE2QixDQUFFLE1BQU07UUFDbkMsSUFBSSxNQUFNLENBQUMsR0FBRyxLQUFLLE9BQU87WUFDeEIsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELGdCQUFnQixDQUFFLE1BQU07UUFDdEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUUsQ0FBQyxDQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFNO1FBQ2pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELGlCQUFpQixDQUFDLGFBQWE7UUFDN0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGFBQWEsQ0FBQztRQUN0QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO0lBQ25DLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFLO1FBQ3RCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQzNDLENBQUM7K0dBdkhVLDJCQUEyQjttR0FBM0IsMkJBQTJCOztZQ1B4QyxtQ0FFNkc7O1lBRjVELHlRQUEyQjtZQUM5QixBQUE1QyxrSkFBVSxvQ0FBZ0MsS0FBQyx1SUFBK0IsZ0JBQWlCLEVBQUUsRUFBQyx3QkFBRSx5QkFBcUIsS0FBQztZQU05RyxBQURGLEFBREYsQUFERixBQURGLDhCQUE2QixhQUNXLGFBQ1IsYUFDQyxnQkFDa0Y7WUFBeEYseVNBQTRDO1lBQUMsZ0pBQVUsbUNBQStCLEtBQUM7WUFDeEcsaUNBQWtCO1lBQUEsc0JBQU07WUFBQSxpQkFBUztZQUNqQyxpQ0FBa0I7WUFBQSw0QkFBVztZQUFBLGlCQUFTO1lBQ3RDLGtDQUFtQjtZQUFBLDZCQUFZO1lBQUEsaUJBQVM7WUFDeEMsbUNBQW1CO1lBQUEsd0JBQU87WUFFOUIsQUFERSxBQUQ0QixpQkFBUyxFQUM1QixFQUNMO1lBQ04sa0NBQ2dFO1lBRFosdVJBQW1DO1lBQ3JGLDBKQUFZLHlDQUF1QyxLQUFDO1lBRHRELGlCQUNnRTtZQUNoRSxtQ0FDMEM7WUFBeEMsK0lBQVMsZ0NBQTZCLEtBQUM7WUFFN0MsQUFERSxBQUQ0QyxpQkFBUyxFQUMvQyxFQUNGO1lBSUEsQUFERixBQURGLEFBREYsK0JBQXNDLGNBQ1IsZUFDQyxpQkFDSjtZQUFBLHlCQUFRO1lBQy9CLEFBRCtCLGlCQUFRLEVBQ2pDO1lBQ04sbUNBQzZDO1lBREosa1JBQWdDO1lBQ3ZFLGlKQUFVLG1DQUErQixLQUFDO1lBQzFDLHFGQUFxRTtZQUs3RSxBQURFLEFBRkUsQUFERSxpQkFBUyxFQUNMLEVBRUYsRUFDRjtZQWFOLHVDQUNrRTtZQUF6QyxrS0FBZSw0QkFBd0IsS0FBQztZQXFCL0QsQUFwQkEsZ0dBQWdDLG9GQW9Ca0M7WUF1Q3BFLGlCQUFVO1lBeURWLHdDQUM0QztZQURtQyx3S0FBZ0Isa0JBQWMsS0FBQztZQU1oSCxBQUw4QyxpQkFBYyxFQUtqRDtZQU1YLDZJQUM2RTs7WUE5S2pDLDJEQUFvRDtZQUZ0RixzRUFBc0M7WUFBQyxpREFBMkI7WUFFcUIsQUFBMUUsQUFBckIsQUFGMkUsa0NBQW9CLHFCQUUzRSxxQkFBcUIsWUFBaUU7WUFLL0UsZUFBNEM7WUFBNUMsa0VBQTRDO1lBT2IsZUFBbUM7WUFBbkMseURBQW1DO1lBVzlDLGVBQWdDO1lBQWhDLHNEQUFnQztZQUUzQyxjQUFjO1lBQWQseUNBQWM7WUFrQnpDLGNBQXVCO1lBQUMsQUFBeEIseUNBQXVCLG9CQUFvQjtZQXNIdkMsZUFBa0I7WUFDN0IsQUFEMEQsQUFBNUIsQUFBbkIsb0NBQWtCLGdDQUE0QixtQkFBbUIsbURBQ25DO1lBWUksY0FBMEI7WUFBMUIsK0NBQTBCOzs7aUZEeks5RCwyQkFBMkI7Y0FMdkMsU0FBUzsyQkFDRSx5QkFBeUI7d0dBTTFCLGFBQWE7a0JBQXJCLEtBQUs7WUFDRyxhQUFhO2tCQUFyQixLQUFLO1lBQ0csVUFBVTtrQkFBbEIsS0FBSztZQUVHLHNCQUFzQjtrQkFBOUIsS0FBSztZQUVJLG9CQUFvQjtrQkFBN0IsTUFBTTtZQUNHLGlCQUFpQjtrQkFBMUIsTUFBTTs7a0ZBVEksMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFsbWFjZW4gfSBmcm9tICcuLi9hbG1hY2VuL21vZGVscy9BbG1hY2VuJztcbmltcG9ydCB7IFBhZ2luYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BhZ2luYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWxtYWNlblNlcnZpY2UgfSBmcm9tICcuLi9hbG1hY2VuL3NlcnZpY2VzL2FsbWFjZW4uc2VydmljZSc7XG5pbXBvcnQgeyBTdG9ja1NlcnZpY2UgfSBmcm9tICcuL3N0b2NrLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtc2VsZWNjaW9uYS1hcnRpY3VsbycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY2Npb25hLWFydGljdWxvLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWNjaW9uYS1hcnRpY3Vsby5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VsZWNjaW9uYUFydGljdWxvQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBjb25maWd1cmFjaW9uIDogYW55O1xuICBASW5wdXQoKSBzaG93QXJ0aWN1bG9zIDogYm9vbGVhbjtcbiAgQElucHV0KCkgbW92aW1pZW50bzogYW55O1xuXG4gIEBJbnB1dCgpIG1hbmVqYVVuaWRhZFNlY3VuZGFyaWEgOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIGVtaXRGaWxhU2VsZWNjaW9uYWRhIDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBlbWl0U2hvd0FydGljdWxvcyA6IEV2ZW50RW1pdHRlcjxhbnk+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==