dmencu 3.2.20 → 3.2.21

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 (34) hide show
  1. package/dist/client/unlogged/calculos-encuesta.d.ts +7 -0
  2. package/dist/client/unlogged/calculos-encuesta.js +139 -0
  3. package/dist/client/unlogged/helpers-casilleros.d.ts +14 -0
  4. package/dist/client/unlogged/helpers-casilleros.js +129 -0
  5. package/dist/server/server/procedures-dmencu.js +141 -28
  6. package/dist/server/server/table-rea.js +9 -5
  7. package/dist/server/server/table-rea_sup.js +8 -4
  8. package/dist/test/test-ejemplo.d.ts +1 -0
  9. package/dist/test/test-ejemplo.js +29 -0
  10. package/dist/test/test-rea-no-rea.d.ts +1 -0
  11. package/dist/test/test-rea-no-rea.js +589 -0
  12. package/dist/test/test.d.ts +2 -0
  13. package/dist/test/test.js +15 -0
  14. package/dist/unlogged/bypass-formulario.d.ts +198 -0
  15. package/dist/unlogged/bypass-formulario.js +1226 -0
  16. package/dist/unlogged/calculos-encuesta.d.ts +7 -0
  17. package/dist/unlogged/calculos-encuesta.js +213 -0
  18. package/dist/unlogged/helpers-casilleros.d.ts +14 -0
  19. package/dist/unlogged/helpers-casilleros.js +129 -0
  20. package/dist/unlogged/redux-formulario.d.ts +440 -0
  21. package/dist/unlogged/redux-formulario.js +324 -0
  22. package/dist/unlogged/render-config.d.ts +52 -0
  23. package/dist/unlogged/render-config.js +161 -0
  24. package/dist/unlogged/tipos.d.ts +575 -0
  25. package/dist/unlogged/tipos.js +21 -0
  26. package/dist/unlogged/unlogged/bypass-formulario copy.d.ts +198 -0
  27. package/dist/unlogged/unlogged/bypass-formulario copy.js +1226 -0
  28. package/dist/unlogged/unlogged/calculos-encuesta.d.ts +7 -0
  29. package/dist/unlogged/unlogged/calculos-encuesta.js +213 -0
  30. package/dist/unlogged/unlogged/helpers-casilleros.d.ts +14 -0
  31. package/dist/unlogged/unlogged/helpers-casilleros.js +130 -0
  32. package/dist/unlogged/unlogged/helpers.d.ts +14 -0
  33. package/dist/unlogged/unlogged/helpers.js +129 -0
  34. package/package.json +1 -1
@@ -0,0 +1,7 @@
1
+ import { MapeoTipoItem, Respuestas, TipoCondicion, UnidadAnalisis } from "./tipos";
2
+ export type EvaluadorExpresion = (condicionJs: string, respuestas: Respuestas) => boolean;
3
+ export type ResultadoBusqueda = {
4
+ codigo: number | null;
5
+ resultado: boolean;
6
+ };
7
+ export declare function buscarReaNoReaEnRespuestas<T extends TipoCondicion>(unidadAnalisis: UnidadAnalisis, respuestas: Respuestas, lista: MapeoTipoItem[T][], tipo: T, tarea: string, evaluarExpresion?: EvaluadorExpresion): ResultadoBusqueda;
@@ -0,0 +1,213 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.buscarReaNoReaEnRespuestas = buscarReaNoReaEnRespuestas;
13
+ const estrategiasCondicion = {
14
+ 'rea': {
15
+ getCondicion: (item) => item.condicion_js,
16
+ getVariable: () => null,
17
+ getValor: () => null,
18
+ getCodigo: (item) => item.rea,
19
+ getResultado: (item) => item.es_positiva,
20
+ getTarea: (item) => { var _a; return (_a = item.tarea) !== null && _a !== void 0 ? _a : null; },
21
+ },
22
+ 'no_rea': {
23
+ getCondicion: () => null,
24
+ getVariable: (item) => item.variable,
25
+ getValor: (item) => item.valor,
26
+ getCodigo: (item) => item.no_rea,
27
+ getResultado: () => true,
28
+ getTarea: (_item) => null,
29
+ },
30
+ 'rea_sup': {
31
+ getCondicion: (item) => item.condicion_js,
32
+ getVariable: () => null,
33
+ getValor: () => null,
34
+ getCodigo: (item) => item.rea_sup,
35
+ getResultado: (item) => item.es_positiva,
36
+ getTarea: (item) => { var _a; return (_a = item.tarea) !== null && _a !== void 0 ? _a : null; },
37
+ },
38
+ 'no_rea_sup': {
39
+ getCondicion: () => null,
40
+ getVariable: (item) => item.variable_sup,
41
+ getValor: (item) => item.valor_sup,
42
+ getCodigo: (item) => item.no_rea_sup,
43
+ getResultado: () => true,
44
+ getTarea: (_item) => null,
45
+ }
46
+ };
47
+ // Caché en memoria para no volver a analizar la estructura teórica en cada cambio de input
48
+ const cacheDiccionarioRutas = new WeakMap();
49
+ /**
50
+ * Mapea toda la estructura de UAs produciendo un diccionario O(1):
51
+ * { "viviendas" -> Set("viviendas", "hogares", "personas", "visitas"), "hogares" -> Set("hogares", "personas") }
52
+ */
53
+ function obtenerDiccionarioRutas(uaRaiz) {
54
+ let mapa = cacheDiccionarioRutas.get(uaRaiz);
55
+ if (mapa)
56
+ return mapa;
57
+ mapa = new Map();
58
+ function mapearNodo(nodo) {
59
+ const descendientes = new Set();
60
+ if (nodo === null || nodo === void 0 ? void 0 : nodo.unidad_analisis) {
61
+ descendientes.add(nodo.unidad_analisis);
62
+ }
63
+ const hijas = nodo === null || nodo === void 0 ? void 0 : nodo.hijas;
64
+ if (hijas) {
65
+ for (const key in hijas) {
66
+ const descHija = mapearNodo(hijas[key]);
67
+ descHija.forEach((d) => descendientes.add(d));
68
+ }
69
+ }
70
+ if (nodo === null || nodo === void 0 ? void 0 : nodo.unidad_analisis) {
71
+ mapa.set(nodo.unidad_analisis, descendientes);
72
+ }
73
+ return descendientes;
74
+ }
75
+ mapearNodo(uaRaiz);
76
+ cacheDiccionarioRutas.set(uaRaiz, mapa);
77
+ return mapa;
78
+ }
79
+ function itemCumpleCondicion(item, respuestas, estrategia, evaluarExpresion) {
80
+ const condicion = estrategia.getCondicion(item);
81
+ if (condicion !== null) {
82
+ if (!evaluarExpresion) {
83
+ throw new Error('Se requiere evaluarExpresion para evaluar una condicion JS');
84
+ }
85
+ return evaluarExpresion(condicion, respuestas);
86
+ }
87
+ const variable = estrategia.getVariable(item);
88
+ const valor = estrategia.getValor(item);
89
+ return !!variable && variable in respuestas && respuestas[variable] == valor;
90
+ }
91
+ function fusionarRespuestasPlanas(contextoAcumulado, respuestas) {
92
+ const res = Object.assign({}, contextoAcumulado);
93
+ for (const key in respuestas) {
94
+ const val = respuestas[key];
95
+ if (!Array.isArray(val)) {
96
+ res[key] = val;
97
+ }
98
+ }
99
+ return res;
100
+ }
101
+ /**
102
+ * Recolecta el contexto completo de TODAS las instancias de targetUaNombre en la encuesta.
103
+ * Usa el diccionario precalculado para filtrar ramas en O(1) sin hacer recursión innecesaria.
104
+ */
105
+ function obtenerTodasLasInstanciasDeUa(unidadAnalisis, respuestas, targetUaNombre, diccionarioRutas, contextoAcumulado = {}) {
106
+ const contextoActual = fusionarRespuestasPlanas(contextoAcumulado, respuestas);
107
+ if ((unidadAnalisis === null || unidadAnalisis === void 0 ? void 0 : unidadAnalisis.unidad_analisis) === targetUaNombre) {
108
+ return { completa: true, instancias: [contextoActual] };
109
+ }
110
+ const hijas = unidadAnalisis === null || unidadAnalisis === void 0 ? void 0 : unidadAnalisis.hijas;
111
+ if (!hijas) {
112
+ return { completa: false, instancias: [] };
113
+ }
114
+ const instanciasResultantes = [];
115
+ for (const key in hijas) {
116
+ const uaHija = hijas[key];
117
+ const nombreUaHija = uaHija === null || uaHija === void 0 ? void 0 : uaHija.unidad_analisis;
118
+ if (!nombreUaHija)
119
+ continue;
120
+ // CONSULTA DICCIONARIO O(1): ¿Esta rama contiene a la UA que buscamos?
121
+ const descendientesDeHija = diccionarioRutas.get(nombreUaHija);
122
+ if (!descendientesDeHija || !descendientesDeHija.has(targetUaNombre)) {
123
+ continue; // Ignora ramas como 'visitas' instantáneamente
124
+ }
125
+ const arregloHijas = respuestas[nombreUaHija];
126
+ // Integridad estructural: rama válida pero sin array o vacío
127
+ if (!Array.isArray(arregloHijas) || arregloHijas.length === 0) {
128
+ return { completa: false, instancias: [] };
129
+ }
130
+ for (let i = 0; i < arregloHijas.length; i++) {
131
+ const respuestasHija = arregloHijas[i];
132
+ const res = obtenerTodasLasInstanciasDeUa(uaHija, respuestasHija, targetUaNombre, diccionarioRutas, contextoActual);
133
+ if (!res.completa) {
134
+ return { completa: false, instancias: [] };
135
+ }
136
+ for (let j = 0; j < res.instancias.length; j++) {
137
+ instanciasResultantes.push(res.instancias[j]);
138
+ }
139
+ }
140
+ }
141
+ return {
142
+ completa: instanciasResultantes.length > 0,
143
+ instancias: instanciasResultantes,
144
+ };
145
+ }
146
+ function buscarRecursivo(uaRaiz, respuestasRaiz, unidadAnalisisActual, respuestasActuales, listaOrdenada, tipo, tarea, evaluarExpresion, diccionarioRutas) {
147
+ const estrategia = estrategiasCondicion[tipo];
148
+ for (let i = 0; i < listaOrdenada.length; i++) {
149
+ const item = listaOrdenada[i];
150
+ const itemTarea = estrategia.getTarea(item);
151
+ if (itemTarea && itemTarea !== tarea) {
152
+ continue;
153
+ }
154
+ if (itemCumpleCondicion(item, respuestasActuales, estrategia, evaluarExpresion)) {
155
+ const resultado = estrategia.getResultado(item);
156
+ const esReaPositiva = (tipo === 'rea' || tipo === 'rea_sup') && resultado === true;
157
+ if (esReaPositiva) {
158
+ const nombreUaActual = unidadAnalisisActual === null || unidadAnalisisActual === void 0 ? void 0 : unidadAnalisisActual.unidad_analisis;
159
+ if (nombreUaActual) {
160
+ const resInstancias = obtenerTodasLasInstanciasDeUa(uaRaiz, respuestasRaiz, nombreUaActual, diccionarioRutas);
161
+ if (!resInstancias.completa) {
162
+ continue;
163
+ }
164
+ if (resInstancias.instancias.length > 1) {
165
+ let todasCumplen = true;
166
+ for (let k = 0; k < resInstancias.instancias.length; k++) {
167
+ if (!itemCumpleCondicion(item, resInstancias.instancias[k], estrategia, evaluarExpresion)) {
168
+ todasCumplen = false;
169
+ break;
170
+ }
171
+ }
172
+ if (!todasCumplen) {
173
+ continue;
174
+ }
175
+ }
176
+ }
177
+ }
178
+ return {
179
+ codigo: estrategia.getCodigo(item),
180
+ resultado,
181
+ };
182
+ }
183
+ }
184
+ const hijas = unidadAnalisisActual === null || unidadAnalisisActual === void 0 ? void 0 : unidadAnalisisActual.hijas;
185
+ if (hijas) {
186
+ for (const key in hijas) {
187
+ const uaHija = hijas[key];
188
+ const nombreUaHija = uaHija === null || uaHija === void 0 ? void 0 : uaHija.unidad_analisis;
189
+ if (nombreUaHija && Array.isArray(respuestasActuales[nombreUaHija])) {
190
+ const arregloHijas = respuestasActuales[nombreUaHija];
191
+ for (let i = 0; i < arregloHijas.length; i++) {
192
+ const respuestasHija = arregloHijas[i];
193
+ const res = buscarRecursivo(uaRaiz, respuestasRaiz, uaHija, Object.assign({}, respuestasActuales, respuestasHija), listaOrdenada, tipo, tarea, evaluarExpresion, diccionarioRutas);
194
+ if (res.codigo !== null) {
195
+ return res;
196
+ }
197
+ }
198
+ }
199
+ }
200
+ }
201
+ return { codigo: null, resultado: false };
202
+ }
203
+ function buscarReaNoReaEnRespuestas(unidadAnalisis, respuestas, lista, tipo, tarea, evaluarExpresion) {
204
+ if (!estrategiasCondicion[tipo]) {
205
+ throw new Error(`Tipo de condición desconocido: ${tipo}`);
206
+ }
207
+ // Obtiene o crea el diccionario de rutas para la estructura recibida
208
+ const diccionarioRutas = obtenerDiccionarioRutas(unidadAnalisis);
209
+ const listaOrdenada = [...lista].sort((a, b) => { var _a, _b; return ((_a = a.orden) !== null && _a !== void 0 ? _a : 0) - ((_b = b.orden) !== null && _b !== void 0 ? _b : 0); });
210
+ return buscarRecursivo(unidadAnalisis, respuestas, unidadAnalisis, respuestas, listaOrdenada, tipo, tarea, evaluarExpresion, diccionarioRutas);
211
+ }
212
+ });
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3Vsb3MtZW5jdWVzdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdW5sb2dnZWQvY2FsY3Vsb3MtZW5jdWVzdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUEwUkEsZ0VBNEJDO0lBbFRELE1BQU0sb0JBQW9CLEdBU3RCO1FBQ0EsS0FBSyxFQUFFO1lBQ0gsWUFBWSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBRSxJQUFZLENBQUMsWUFBWTtZQUNsRCxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSTtZQUN2QixRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSTtZQUNwQixTQUFTLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFFLElBQVksQ0FBQyxHQUFHO1lBQ3RDLFlBQVksRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUUsSUFBWSxDQUFDLFdBQVc7WUFDakQsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsV0FBQyxPQUFBLE1BQUMsSUFBWSxDQUFDLEtBQUssbUNBQUksSUFBSSxDQUFBLEVBQUE7U0FDbEQ7UUFDRCxRQUFRLEVBQUU7WUFDTixZQUFZLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSTtZQUN4QixXQUFXLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFFLElBQWMsQ0FBQyxRQUFRO1lBQy9DLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUUsSUFBYyxDQUFDLEtBQUs7WUFDekMsU0FBUyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBRSxJQUFjLENBQUMsTUFBTTtZQUMzQyxZQUFZLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSTtZQUN4QixRQUFRLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUk7U0FDNUI7UUFDRCxTQUFTLEVBQUU7WUFDUCxZQUFZLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFFLElBQWUs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ZW0sIE5vUmVhLCBOb1JlYVN1cCwgUmVhLCBSZWFTdXAsIFJlc3B1ZXN0YXMsIFRpcG9Db25kaWNpb24sIFVuaWRhZEFuYWxpc2lzLCBWYWxvciB9IGZyb20gXCIuL3RpcG9zXCI7XG5cbmV4cG9ydCB0eXBlIEV2YWx1YWRvckV4cHJlc2lvbiA9IChjb25kaWNpb25Kczogc3RyaW5nLCByZXNwdWVzdGFzOiBSZXNwdWVzdGFzKSA9PiBib29sZWFuO1xuXG5jb25zdCBlc3RyYXRlZ2lhc0NvbmRpY2lvbjoge1xuICAgIFtLIGluIFRpcG9Db25kaWNpb25dOiB7XG4gICAgICAgIGdldENvbmRpY2lvbjogKGl0ZW06IE1hcGVvVGlwb0l0ZW1bS10pID0+IHN0cmluZyB8IG51bGw7XG4gICAgICAgIGdldFZhcmlhYmxlOiAoaXRlbTogTWFwZW9UaXBvSXRlbVtLXSkgPT4gc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgZ2V0VmFsb3I6IChpdGVtOiBNYXBlb1RpcG9JdGVtW0tdKSA9PiBzdHJpbmcgfCBudWxsO1xuICAgICAgICBnZXRDb2RpZ286IChpdGVtOiBNYXBlb1RpcG9JdGVtW0tdKSA9PiBudW1iZXI7XG4gICAgICAgIGdldFJlc3VsdGFkbzogKGl0ZW06IE1hcGVvVGlwb0l0ZW1bS10pID0+IGJvb2xlYW47XG4gICAgICAgIGdldFRhcmVhOiAoaXRlbTogTWFwZW9UaXBvSXRlbVtLXSkgPT4gc3RyaW5nIHwgbnVsbDtcbiAgICB9XG59ID0ge1xuICAgICdyZWEnOiB7XG4gICAgICAgIGdldENvbmRpY2lvbjogKGl0ZW0pID0+IChpdGVtIGFzIFJlYSkuY29uZGljaW9uX2pzLFxuICAgICAgICBnZXRWYXJpYWJsZTogKCkgPT4gbnVsbCxcbiAgICAgICAgZ2V0VmFsb3I6ICgpID0+IG51bGwsXG4gICAgICAgIGdldENvZGlnbzogKGl0ZW0pID0+IChpdGVtIGFzIFJlYSkucmVhLFxuICAgICAgICBnZXRSZXN1bHRhZG86IChpdGVtKSA9PiAoaXRlbSBhcyBSZWEpLmVzX3Bvc2l0aXZhLFxuICAgICAgICBnZXRUYXJlYTogKGl0ZW0pID0+IChpdGVtIGFzIFJlYSkudGFyZWEgPz8gbnVsbCxcbiAgICB9LFxuICAgICdub19yZWEnOiB7XG4gICAgICAgIGdldENvbmRpY2lvbjogKCkgPT4gbnVsbCxcbiAgICAgICAgZ2V0VmFyaWFibGU6IChpdGVtKSA9PiAoaXRlbSBhcyBOb1JlYSkudmFyaWFibGUsXG4gICAgICAgIGdldFZhbG9yOiAoaXRlbSkgPT4gKGl0ZW0gYXMgTm9SZWEpLnZhbG9yLFxuICAgICAgICBnZXRDb2RpZ286IChpdGVtKSA9PiAoaXRlbSBhcyBOb1JlYSkubm9fcmVhLFxuICAgICAgICBnZXRSZXN1bHRhZG86ICgpID0+IHRydWUsXG4gICAgICAgIGdldFRhcmVhOiAoX2l0ZW0pID0+IG51bGwsXG4gICAgfSxcbiAgICAncmVhX3N1cCc6IHtcbiAgICAgICAgZ2V0Q29uZGljaW9uOiAoaXRlbSkgPT4gKGl0ZW0gYXMgUmVhU3VwKS5jb25kaWNpb25fanMsXG4gICAgICAgIGdldFZhcmlhYmxlOiAoKSA9PiBudWxsLFxuICAgICAgICBnZXRWYWxvcjogKCkgPT4gbnVsbCxcbiAgICAgICAgZ2V0Q29kaWdvOiAoaXRlbSkgPT4gKGl0ZW0gYXMgUmVhU3VwKS5yZWFfc3VwLFxuICAgICAgICBnZXRSZXN1bHRhZG86IChpdGVtKSA9PiAoaXRlbSBhcyBSZWFTdXApLmVzX3Bvc2l0aXZhLFxuICAgICAgICBnZXRUYXJlYTogKGl0ZW0pID0+IChpdGVtIGFzIFJlYVN1cCkudGFyZWEgPz8gbnVsbCxcbiAgICB9LFxuICAgICdub19yZWFfc3VwJzoge1xuICAgICAgICBnZXRDb25kaWNpb246ICgpID0+IG51bGwsXG4gICAgICAgIGdldFZhcmlhYmxlOiAoaXRlbSkgPT4gKGl0ZW0gYXMgTm9SZWFTdXApLnZhcmlhYmxlX3N1cCxcbiAgICAgICAgZ2V0VmFsb3I6IChpdGVtKSA9PiAoaXRlbSBhcyBOb1JlYVN1cCkudmFsb3Jfc3VwLFxuICAgICAgICBnZXRDb2RpZ286IChpdGVtKSA9PiAoaXRlbSBhcyBOb1JlYVN1cCkubm9fcmVhX3N1cCxcbiAgICAgICAgZ2V0UmVzdWx0YWRvOiAoKSA9PiB0cnVlLFxuICAgICAgICBnZXRUYXJlYTogKF9pdGVtKSA9PiBudWxsLFxuICAgIH1cbn07XG5cbmV4cG9ydCB0eXBlIFJlc3VsdGFkb0J1c3F1ZWRhID0ge1xuICAgIGNvZGlnbzogbnVtYmVyIHwgbnVsbDtcbiAgICByZXN1bHRhZG86IGJvb2xlYW47XG59O1xuXG4vLyBDYWNow6kgZW4gbWVtb3JpYSBwYXJhIG5vIHZvbHZlciBhIGFuYWxpemFyIGxhIGVzdHJ1Y3R1cmEgdGXDs3JpY2EgZW4gY2FkYSBjYW1iaW8gZGUgaW5wdXRcbmNvbnN0IGNhY2hlRGljY2lvbmFyaW9SdXRhcyA9IG5ldyBXZWFrTWFwPFVuaWRhZEFuYWxpc2lzLCBNYXA8c3RyaW5nLCBTZXQ8c3RyaW5nPj4+KCk7XG5cbi8qKlxuICogTWFwZWEgdG9kYSBsYSBlc3RydWN0dXJhIGRlIFVBcyBwcm9kdWNpZW5kbyB1biBkaWNjaW9uYXJpbyBPKDEpOlxuICogeyBcInZpdmllbmRhc1wiIC0+IFNldChcInZpdmllbmRhc1wiLCBcImhvZ2FyZXNcIiwgXCJwZXJzb25hc1wiLCBcInZpc2l0YXNcIiksIFwiaG9nYXJlc1wiIC0+IFNldChcImhvZ2FyZXNcIiwgXCJwZXJzb25hc1wiKSB9XG4gKi9cbmZ1bmN0aW9uIG9idGVuZXJEaWNjaW9uYXJpb1J1dGFzKHVhUmFpejogVW5pZGFkQW5hbGlzaXMpOiBNYXA8c3RyaW5nLCBTZXQ8c3RyaW5nPj4ge1xuICAgIGxldCBtYXBhID0gY2FjaGVEaWNjaW9uYXJpb1J1dGFzLmdldCh1YVJhaXopO1xuICAgIGlmIChtYXBhKSByZXR1cm4gbWFwYTtcblxuICAgIG1hcGEgPSBuZXcgTWFwPHN0cmluZywgU2V0PHN0cmluZz4+KCk7XG5cbiAgICBmdW5jdGlvbiBtYXBlYXJOb2RvKG5vZG86IFVuaWRhZEFuYWxpc2lzKTogU2V0PHN0cmluZz4ge1xuICAgICAgICBjb25zdCBkZXNjZW5kaWVudGVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgICAgIGlmIChub2RvPy51bmlkYWRfYW5hbGlzaXMpIHtcbiAgICAgICAgICAgIGRlc2NlbmRpZW50ZXMuYWRkKG5vZG8udW5pZGFkX2FuYWxpc2lzKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBoaWphcyA9IG5vZG8/LmhpamFzO1xuICAgICAgICBpZiAoaGlqYXMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIGhpamFzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVzY0hpamEgPSBtYXBlYXJOb2RvKGhpamFzW2tleSBhcyBJZFVuaWRhZEFuYWxpc2lzXSEpO1xuICAgICAgICAgICAgICAgIGRlc2NIaWphLmZvckVhY2goKGQpID0+IGRlc2NlbmRpZW50ZXMuYWRkKGQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobm9kbz8udW5pZGFkX2FuYWxpc2lzKSB7XG4gICAgICAgICAgICBtYXBhIS5zZXQobm9kby51bmlkYWRfYW5hbGlzaXMsIGRlc2NlbmRpZW50ZXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkZXNjZW5kaWVudGVzO1xuICAgIH1cblxuICAgIG1hcGVhck5vZG8odWFSYWl6KTtcbiAgICBjYWNoZURpY2Npb25hcmlvUnV0YXMuc2V0KHVhUmFpeiwgbWFwYSk7XG4gICAgcmV0dXJuIG1hcGE7XG59XG5cbmZ1bmN0aW9uIGl0ZW1DdW1wbGVDb25kaWNpb248VCBleHRlbmRzIFRpcG9Db25kaWNpb24+KFxuICAgIGl0ZW06IE1hcGVvVGlwb0l0ZW1bVF0sXG4gICAgcmVzcHVlc3RhczogUmVzcHVlc3RhcyxcbiAgICBlc3RyYXRlZ2lhOiB0eXBlb2YgZXN0cmF0ZWdpYXNDb25kaWNpb25bVF0sXG4gICAgZXZhbHVhckV4cHJlc2lvbjogRXZhbHVhZG9yRXhwcmVzaW9uIHwgdW5kZWZpbmVkXG4pOiBib29sZWFuIHtcbiAgICBjb25zdCBjb25kaWNpb24gPSBlc3RyYXRlZ2lhLmdldENvbmRpY2lvbihpdGVtKTtcbiAgICBpZiAoY29uZGljaW9uICE9PSBudWxsKSB7XG4gICAgICAgIGlmICghZXZhbHVhckV4cHJlc2lvbikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTZSByZXF1aWVyZSBldmFsdWFyRXhwcmVzaW9uIHBhcmEgZXZhbHVhciB1bmEgY29uZGljaW9uIEpTJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGV2YWx1YXJFeHByZXNpb24oY29uZGljaW9uLCByZXNwdWVzdGFzKTtcbiAgICB9XG4gICAgY29uc3QgdmFyaWFibGUgPSBlc3RyYXRlZ2lhLmdldFZhcmlhYmxlKGl0ZW0pO1xuICAgIGNvbnN0IHZhbG9yID0gZXN0cmF0ZWdpYS5nZXRWYWxvcihpdGVtKTtcbiAgICByZXR1cm4gISF2YXJpYWJsZSAmJiB2YXJpYWJsZSBpbiByZXNwdWVzdGFzICYmIHJlc3B1ZXN0YXNbdmFyaWFibGUgYXMgSWRWYXJpYWJsZV0gPT0gdmFsb3I7XG59XG5cbmZ1bmN0aW9uIGZ1c2lvbmFyUmVzcHVlc3Rhc1BsYW5hcyhjb250ZXh0b0FjdW11bGFkbzogUmVzcHVlc3RhcywgcmVzcHVlc3RhczogUmVzcHVlc3Rhcyk6IFJlc3B1ZXN0YXMge1xuICAgIGNvbnN0IHJlczogUmVzcHVlc3RhcyA9IE9iamVjdC5hc3NpZ24oe30sIGNvbnRleHRvQWN1bXVsYWRvKTtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiByZXNwdWVzdGFzKSB7XG4gICAgICAgIGNvbnN0IHZhbCA9IHJlc3B1ZXN0YXNba2V5IGFzIElkVmFyaWFibGVdO1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsKSkge1xuICAgICAgICAgICAgcmVzW2tleSBhcyBJZFZhcmlhYmxlXSA9IHZhbCBhcyBWYWxvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzO1xufVxuXG50eXBlIFJlc3VsdGFkb0luc3RhbmNpYXMgPSB7XG4gICAgY29tcGxldGE6IGJvb2xlYW47XG4gICAgaW5zdGFuY2lhczogUmVzcHVlc3Rhc1tdO1xufTtcblxuLyoqXG4gKiBSZWNvbGVjdGEgZWwgY29udGV4dG8gY29tcGxldG8gZGUgVE9EQVMgbGFzIGluc3RhbmNpYXMgZGUgdGFyZ2V0VWFOb21icmUgZW4gbGEgZW5jdWVzdGEuXG4gKiBVc2EgZWwgZGljY2lvbmFyaW8gcHJlY2FsY3VsYWRvIHBhcmEgZmlsdHJhciByYW1hcyBlbiBPKDEpIHNpbiBoYWNlciByZWN1cnNpw7NuIGlubmVjZXNhcmlhLlxuICovXG5mdW5jdGlvbiBvYnRlbmVyVG9kYXNMYXNJbnN0YW5jaWFzRGVVYShcbiAgICB1bmlkYWRBbmFsaXNpczogVW5pZGFkQW5hbGlzaXMsXG4gICAgcmVzcHVlc3RhczogUmVzcHVlc3RhcyxcbiAgICB0YXJnZXRVYU5vbWJyZTogc3RyaW5nLFxuICAgIGRpY2Npb25hcmlvUnV0YXM6IE1hcDxzdHJpbmcsIFNldDxzdHJpbmc+PixcbiAgICBjb250ZXh0b0FjdW11bGFkbyA9IHt9IGFzIFJlc3B1ZXN0YXNcbik6IFJlc3VsdGFkb0luc3RhbmNpYXMge1xuICAgIGNvbnN0IGNvbnRleHRvQWN0dWFsID0gZnVzaW9uYXJSZXNwdWVzdGFzUGxhbmFzKGNvbnRleHRvQWN1bXVsYWRvLCByZXNwdWVzdGFzKTtcblxuICAgIGlmICh1bmlkYWRBbmFsaXNpcz8udW5pZGFkX2FuYWxpc2lzID09PSB0YXJnZXRVYU5vbWJyZSkge1xuICAgICAgICByZXR1cm4geyBjb21wbGV0YTogdHJ1ZSwgaW5zdGFuY2lhczogW2NvbnRleHRvQWN0dWFsXSB9O1xuICAgIH1cblxuICAgIGNvbnN0IGhpamFzID0gdW5pZGFkQW5hbGlzaXM/LmhpamFzO1xuICAgIGlmICghaGlqYXMpIHtcbiAgICAgICAgcmV0dXJuIHsgY29tcGxldGE6IGZhbHNlLCBpbnN0YW5jaWFzOiBbXSB9O1xuICAgIH1cblxuICAgIGNvbnN0IGluc3RhbmNpYXNSZXN1bHRhbnRlczogUmVzcHVlc3Rhc1tdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGtleSBpbiBoaWphcykge1xuICAgICAgICBjb25zdCB1YUhpamEgPSBoaWphc1trZXkgYXMgSWRVbmlkYWRBbmFsaXNpc107XG4gICAgICAgIGNvbnN0IG5vbWJyZVVhSGlqYSA9IHVhSGlqYT8udW5pZGFkX2FuYWxpc2lzO1xuICAgICAgICBpZiAoIW5vbWJyZVVhSGlqYSkgY29udGludWU7XG5cbiAgICAgICAgLy8gQ09OU1VMVEEgRElDQ0lPTkFSSU8gTygxKTogwr9Fc3RhIHJhbWEgY29udGllbmUgYSBsYSBVQSBxdWUgYnVzY2Ftb3M/XG4gICAgICAgIGNvbnN0IGRlc2NlbmRpZW50ZXNEZUhpamEgPSBkaWNjaW9uYXJpb1J1dGFzLmdldChub21icmVVYUhpamEpO1xuICAgICAgICBpZiAoIWRlc2NlbmRpZW50ZXNEZUhpamEgfHwgIWRlc2NlbmRpZW50ZXNEZUhpamEuaGFzKHRhcmdldFVhTm9tYnJlKSkge1xuICAgICAgICAgICAgY29udGludWU7IC8vIElnbm9yYSByYW1hcyBjb21vICd2aXNpdGFzJyBpbnN0YW50w6FuZWFtZW50ZVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYXJyZWdsb0hpamFzID0gcmVzcHVlc3Rhc1tub21icmVVYUhpamEgYXMgSWRWYXJpYWJsZV07XG5cbiAgICAgICAgLy8gSW50ZWdyaWRhZCBlc3RydWN0dXJhbDogcmFtYSB2w6FsaWRhIHBlcm8gc2luIGFycmF5IG8gdmFjw61vXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShhcnJlZ2xvSGlqYXMpIHx8IGFycmVnbG9IaWphcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiB7IGNvbXBsZXRhOiBmYWxzZSwgaW5zdGFuY2lhczogW10gfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyZWdsb0hpamFzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCByZXNwdWVzdGFzSGlqYSA9IGFycmVnbG9IaWphc1tpXSBhcyBSZXNwdWVzdGFzO1xuICAgICAgICAgICAgY29uc3QgcmVzID0gb2J0ZW5lclRvZGFzTGFzSW5zdGFuY2lhc0RlVWEoXG4gICAgICAgICAgICAgICAgdWFIaWphLFxuICAgICAgICAgICAgICAgIHJlc3B1ZXN0YXNIaWphLFxuICAgICAgICAgICAgICAgIHRhcmdldFVhTm9tYnJlLFxuICAgICAgICAgICAgICAgIGRpY2Npb25hcmlvUnV0YXMsXG4gICAgICAgICAgICAgICAgY29udGV4dG9BY3R1YWxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoIXJlcy5jb21wbGV0YSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGNvbXBsZXRhOiBmYWxzZSwgaW5zdGFuY2lhczogW10gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcmVzLmluc3RhbmNpYXMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICBpbnN0YW5jaWFzUmVzdWx0YW50ZXMucHVzaChyZXMuaW5zdGFuY2lhc1tqXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBjb21wbGV0YTogaW5zdGFuY2lhc1Jlc3VsdGFudGVzLmxlbmd0aCA+IDAsXG4gICAgICAgIGluc3RhbmNpYXM6IGluc3RhbmNpYXNSZXN1bHRhbnRlcyxcbiAgICB9O1xufVxuXG5mdW5jdGlvbiBidXNjYXJSZWN1cnNpdm88VCBleHRlbmRzIFRpcG9Db25kaWNpb24+KFxuICAgIHVhUmFpejogVW5pZGFkQW5hbGlzaXMsXG4gICAgcmVzcHVlc3Rhc1JhaXo6IFJlc3B1ZXN0YXMsXG4gICAgdW5pZGFkQW5hbGlzaXNBY3R1YWw6IFVuaWRhZEFuYWxpc2lzLFxuICAgIHJlc3B1ZXN0YXNBY3R1YWxlczogUmVzcHVlc3RhcyxcbiAgICBsaXN0YU9yZGVuYWRhOiBNYXBlb1RpcG9JdGVtW1RdW10sXG4gICAgdGlwbzogVCxcbiAgICB0YXJlYTogc3RyaW5nLFxuICAgIGV2YWx1YXJFeHByZXNpb246IEV2YWx1YWRvckV4cHJlc2lvbiB8IHVuZGVmaW5lZCxcbiAgICBkaWNjaW9uYXJpb1J1dGFzOiBNYXA8c3RyaW5nLCBTZXQ8c3RyaW5nPj5cbik6IFJlc3VsdGFkb0J1c3F1ZWRhIHtcblxuICAgIGNvbnN0IGVzdHJhdGVnaWEgPSBlc3RyYXRlZ2lhc0NvbmRpY2lvblt0aXBvXTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdGFPcmRlbmFkYS5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBpdGVtID0gbGlzdGFPcmRlbmFkYVtpXTtcbiAgICAgICAgY29uc3QgaXRlbVRhcmVhID0gZXN0cmF0ZWdpYS5nZXRUYXJlYShpdGVtKTtcbiAgICAgICAgaWYgKGl0ZW1UYXJlYSAmJiBpdGVtVGFyZWEgIT09IHRhcmVhKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpdGVtQ3VtcGxlQ29uZGljaW9uKGl0ZW0sIHJlc3B1ZXN0YXNBY3R1YWxlcywgZXN0cmF0ZWdpYSwgZXZhbHVhckV4cHJlc2lvbikpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdGFkbyA9IGVzdHJhdGVnaWEuZ2V0UmVzdWx0YWRvKGl0ZW0pO1xuICAgICAgICAgICAgY29uc3QgZXNSZWFQb3NpdGl2YSA9ICh0aXBvID09PSAncmVhJyB8fCB0aXBvID09PSAncmVhX3N1cCcpICYmIHJlc3VsdGFkbyA9PT0gdHJ1ZTtcblxuICAgICAgICAgICAgaWYgKGVzUmVhUG9zaXRpdmEpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBub21icmVVYUFjdHVhbCA9IHVuaWRhZEFuYWxpc2lzQWN0dWFsPy51bmlkYWRfYW5hbGlzaXM7XG4gICAgICAgICAgICAgICAgaWYgKG5vbWJyZVVhQWN0dWFsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc0luc3RhbmNpYXMgPSBvYnRlbmVyVG9kYXNMYXNJbnN0YW5jaWFzRGVVYShcbiAgICAgICAgICAgICAgICAgICAgICAgIHVhUmFpeixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3B1ZXN0YXNSYWl6LFxuICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlVWFBY3R1YWwsXG4gICAgICAgICAgICAgICAgICAgICAgICBkaWNjaW9uYXJpb1J1dGFzXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNJbnN0YW5jaWFzLmNvbXBsZXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNJbnN0YW5jaWFzLmluc3RhbmNpYXMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRvZGFzQ3VtcGxlbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBrID0gMDsgayA8IHJlc0luc3RhbmNpYXMuaW5zdGFuY2lhcy5sZW5ndGg7IGsrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXRlbUN1bXBsZUNvbmRpY2lvbihpdGVtLCByZXNJbnN0YW5jaWFzLmluc3RhbmNpYXNba10sIGVzdHJhdGVnaWEsIGV2YWx1YXJFeHByZXNpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZGFzQ3VtcGxlbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdG9kYXNDdW1wbGVuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgY29kaWdvOiBlc3RyYXRlZ2lhLmdldENvZGlnbyhpdGVtKSxcbiAgICAgICAgICAgICAgICByZXN1bHRhZG8sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaGlqYXMgPSB1bmlkYWRBbmFsaXNpc0FjdHVhbD8uaGlqYXM7XG4gICAgaWYgKGhpamFzKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGhpamFzKSB7XG4gICAgICAgICAgICBjb25zdCB1YUhpamEgPSBoaWphc1trZXkgYXMgSWRVbmlkYWRBbmFsaXNpc107XG4gICAgICAgICAgICBjb25zdCBub21icmVVYUhpamEgPSB1YUhpamE/LnVuaWRhZF9hbmFsaXNpcztcbiAgICAgICAgICAgIGlmIChub21icmVVYUhpamEgJiYgQXJyYXkuaXNBcnJheShyZXNwdWVzdGFzQWN0dWFsZXNbbm9tYnJlVWFIaWphIGFzIElkVmFyaWFibGVdKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFycmVnbG9IaWphcyA9IHJlc3B1ZXN0YXNBY3R1YWxlc1tub21icmVVYUhpamEgYXMgSWRWYXJpYWJsZV0gYXMgdW5rbm93biBhcyBSZXNwdWVzdGFzW107XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnJlZ2xvSGlqYXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzcHVlc3Rhc0hpamEgPSBhcnJlZ2xvSGlqYXNbaV07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IGJ1c2NhclJlY3Vyc2l2byhcbiAgICAgICAgICAgICAgICAgICAgICAgIHVhUmFpeixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3B1ZXN0YXNSYWl6LFxuICAgICAgICAgICAgICAgICAgICAgICAgdWFIaWphLFxuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih7fSwgcmVzcHVlc3Rhc0FjdHVhbGVzLCByZXNwdWVzdGFzSGlqYSksXG4gICAgICAgICAgICAgICAgICAgICAgICBsaXN0YU9yZGVuYWRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGlwbyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmVhLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXZhbHVhckV4cHJlc2lvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpY2Npb25hcmlvUnV0YXNcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5jb2RpZ28gIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4geyBjb2RpZ286IG51bGwsIHJlc3VsdGFkbzogZmFsc2UgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1c2NhclJlYU5vUmVhRW5SZXNwdWVzdGFzPFQgZXh0ZW5kcyBUaXBvQ29uZGljaW9uPihcbiAgICB1bmlkYWRBbmFsaXNpczogVW5pZGFkQW5hbGlzaXMsXG4gICAgcmVzcHVlc3RhczogUmVzcHVlc3RhcyxcbiAgICBsaXN0YTogTWFwZW9UaXBvSXRlbVtUXVtdLFxuICAgIHRpcG86IFQsXG4gICAgdGFyZWE6IHN0cmluZyxcbiAgICBldmFsdWFyRXhwcmVzaW9uPzogRXZhbHVhZG9yRXhwcmVzaW9uXG4pOiBSZXN1bHRhZG9CdXNxdWVkYSB7XG5cbiAgICBpZiAoIWVzdHJhdGVnaWFzQ29uZGljaW9uW3RpcG9dKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVGlwbyBkZSBjb25kaWNpw7NuIGRlc2Nvbm9jaWRvOiAke3RpcG99YCk7XG4gICAgfVxuXG4gICAgLy8gT2J0aWVuZSBvIGNyZWEgZWwgZGljY2lvbmFyaW8gZGUgcnV0YXMgcGFyYSBsYSBlc3RydWN0dXJhIHJlY2liaWRhXG4gICAgY29uc3QgZGljY2lvbmFyaW9SdXRhcyA9IG9idGVuZXJEaWNjaW9uYXJpb1J1dGFzKHVuaWRhZEFuYWxpc2lzKTtcblxuICAgIGNvbnN0IGxpc3RhT3JkZW5hZGEgPSBbLi4ubGlzdGFdLnNvcnQoKGEsIGIpID0+IChhLm9yZGVuID8/IDApIC0gKGIub3JkZW4gPz8gMCkpO1xuICAgIHJldHVybiBidXNjYXJSZWN1cnNpdm8oXG4gICAgICAgIHVuaWRhZEFuYWxpc2lzLFxuICAgICAgICByZXNwdWVzdGFzLFxuICAgICAgICB1bmlkYWRBbmFsaXNpcyxcbiAgICAgICAgcmVzcHVlc3RhcyxcbiAgICAgICAgbGlzdGFPcmRlbmFkYSxcbiAgICAgICAgdGlwbyxcbiAgICAgICAgdGFyZWEsXG4gICAgICAgIGV2YWx1YXJFeHByZXNpb24sXG4gICAgICAgIGRpY2Npb25hcmlvUnV0YXNcbiAgICApO1xufSJdfQ==
@@ -0,0 +1,14 @@
1
+ export declare const helpersCasilleros: {
2
+ null2zero(posibleNull: any): any;
3
+ div0err(numerador: number, denominador: number, pk: string): number;
4
+ funs: {
5
+ blanco(x: any): boolean;
6
+ hoy(): string;
7
+ fecha_valida(x: string): boolean;
8
+ mesanio_valido(x: string): boolean;
9
+ informado(x: any): boolean;
10
+ nsnc(x: any): boolean;
11
+ par(x: number): boolean;
12
+ edad_mes_annio_valido(edad: number, mesAnnio: string, fechaRealizacionDDMMYYYY: string): boolean;
13
+ };
14
+ };
@@ -0,0 +1,130 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports", "best-globals"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.helpersCasilleros = void 0;
13
+ const best_globals_1 = require("best-globals");
14
+ exports.helpersCasilleros = {
15
+ null2zero(posibleNull) {
16
+ if (posibleNull == null) {
17
+ return 0;
18
+ }
19
+ return posibleNull;
20
+ },
21
+ div0err(numerador, denominador, pk) {
22
+ if (denominador == 0) {
23
+ throw new Error("Error en " + pk + " division por cero de " + numerador);
24
+ }
25
+ return numerador / denominador;
26
+ },
27
+ funs: {
28
+ blanco(x) {
29
+ return x !== 0 && !x;
30
+ },
31
+ hoy() {
32
+ return best_globals_1.date.today().toDmy();
33
+ },
34
+ fecha_valida(x) {
35
+ var formato_valido = /^([1-9]|0[1-9]|[12]\d|3[01])\/([1-9]|0[1-9]|1[012])\/20\d\d$/.test(x);
36
+ var xDate;
37
+ var conversionOk;
38
+ conversionOk = true;
39
+ if (formato_valido) {
40
+ const [d, m, y] = x.split('/');
41
+ try {
42
+ xDate = new Date(`${y}/${m}/${d}`);
43
+ }
44
+ catch (err) {
45
+ conversionOk = false;
46
+ }
47
+ }
48
+ ;
49
+ //faltaria validar que no sea una fecha futura y que sea una fecha en el rango del operativo
50
+ return formato_valido && conversionOk;
51
+ },
52
+ mesanio_valido(x) {
53
+ var formato_valido = /^([1-9]|0[1-9]|1[012])\/(19|20)\d\d$/.test(x);
54
+ return formato_valido;
55
+ },
56
+ informado(x) {
57
+ return x !== undefined && x !== null && (!(x instanceof Array) || x.length !== 0)
58
+ && (!(x instanceof Object) || Object.keys(x).length !== 0);
59
+ },
60
+ nsnc(x) {
61
+ return x == -9;
62
+ },
63
+ par(x) {
64
+ return x % 2 == 0;
65
+ },
66
+ edad_mes_annio_valido(edad, mesAnnio, fechaRealizacionDDMMYYYY) {
67
+ var mesesDiferencia = (d1, d2) => {
68
+ var months;
69
+ months = (d2.getFullYear() - d1.getFullYear()) * 12;
70
+ months -= d1.getMonth();
71
+ months += d2.getMonth();
72
+ return months <= 0 ? 0 : months;
73
+ };
74
+ var partesRealizacion = fechaRealizacionDDMMYYYY.split("/");
75
+ //@ts-ignore las partes corresponden a una fecha válida
76
+ var today = best_globals_1.date.ymd(Number(partesRealizacion[2]), Number(partesRealizacion[1]), Number(partesRealizacion[0]));
77
+ var partesMesAnnio = mesAnnio.split('/');
78
+ //@ts-ignore las partes corresponden a una fecha válida
79
+ var nacimiento = best_globals_1.date.ymd(Number(partesMesAnnio[1]), Number(partesMesAnnio[0]), 1);
80
+ //@ts-ignore RealDate es Date y se puede restar
81
+ var diferenciaMeses = mesesDiferencia(nacimiento, today);
82
+ var edadDecimales = diferenciaMeses / 12; //ej 36.5
83
+ return (Math.floor(edadDecimales) == edad || //misma edad
84
+ edadDecimales == edad + 1 //mes de tolerancia
85
+ );
86
+ },
87
+ //copiar_campo_ua_rama(respuestasOrigen:Respuestas[], posicion:number, variableOrigen: IdVariable, camino:string, condicion:boolean){
88
+ // return condicion?(respuestasOrigen && respuestasOrigen[posicion-1] && respuestasOrigen[posicion-1][`${camino}`][variableOrigen]):null
89
+ // return condicion?eval(`respuestasOrigen[${posicion-1}].`+camino+'.'+variableOrigen):null;
90
+ //}
91
+ /*
92
+ dbo:{
93
+ datoFamiliar(encu:string,hog:number,per:number, dato:string){
94
+ var xpersonas=personas;
95
+ return encu==enc && hog==hogar && informado(xpersonas) && per<= xpersonas.length && per>=1 && !!xpersonas[per-1][dato]? xpersonas[per-1][dato]:null
96
+ },
97
+ edadfamiliar(encu:string,hog:number,per:number){
98
+ var xpersonas=personas;
99
+ return datoFamiliar(encu:string,hog:number,per:number,'edad')
100
+ },
101
+ existeindividual(encu:string,hog:number,per:number){
102
+ var xpersonas=personas;
103
+ return encu==enc && hog==hogar && !!personas && per<= personas.length && per>=1 && !!personas[per-1]['entreaind']
104
+ },
105
+ existemiembro(encu:string,hog:number,per:number){
106
+ var xpersonas=personas;
107
+ return encu==enc && hog==hogar && !!personas && per<= personas.length && per>=1
108
+ },
109
+ nroconyuges(encu:string,hog:number){
110
+ var xpersonas=personas
111
+ return xpersonas.filter( per->per.p4==2).length
112
+ },
113
+ nrojefes(encu:string,hog:number,per:number){
114
+ return personas.filter( per->per.p4==1).length
115
+ },
116
+ parentescofamiliar(encu:string,hog:number,per:number){
117
+ return datoFamiliar(encu:string,hog:number,per:number,'p4')
118
+ },
119
+ sexofamiliar(encu:string,hog:number,per:number){
120
+ var xpersonas=personas;
121
+ return encu==enc && hog==hogar && !!xpersonas && per<= xpersonas.length && per>=1 && !!xpersonas[per-1].sexo? xpersonas[per-1]['sexo']:null
122
+ },
123
+ sitconyjefe(encu:string,hog:number){
124
+ return datoFamiliar(encu:string,hog:number,1,'p5')
125
+ }
126
+ } */
127
+ }
128
+ };
129
+ });
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1jYXNpbGxlcm9zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3VubG9nZ2VkL2hlbHBlcnMtY2FzaWxsZXJvcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFDQSwrQ0FBb0M7SUFFdkIsUUFBQSxpQkFBaUIsR0FBRztRQUM3QixTQUFTLENBQUMsV0FBZ0I7WUFDdEIsSUFBSSxXQUFXLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ3RCLE9BQU8sQ0FBQyxDQUFDO1lBQ2IsQ0FBQztZQUNELE9BQU8sV0FBVyxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxPQUFPLENBQUMsU0FBaUIsRUFBRSxXQUFtQixFQUFFLEVBQVU7WUFDdEQsSUFBSSxXQUFXLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsV0FBVyxHQUFHLEVBQUUsR0FBRyx3QkFBd0IsR0FBRyxTQUFTLENBQUMsQ0FBQztZQUM3RSxDQUFDO1lBQ0QsT0FBTyxTQUFTLEdBQUcsV0FBVyxDQUFDO1FBQ25DLENBQUM7UUFDRCxJQUFJLEVBQUU7WUFDRixNQUFNLENBQUMsQ0FBTTtnQkFDVCxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7WUFDeEIsQ0FBQztZQUNELEdBQUc7Z0JBQ0MsT0FBTyxtQkFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFBO1lBQy9CLENBQUM7WUFDRCxZQUFZLENBQUMsQ0FBUztnQkFDbEIsSUFBSSxjQUFjLEdBQUcsOERBQThELENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO2dCQUMzRixJQUFJLEtBQVcsQ0FBQztnQkFDaEIsSUFBSSxZQUFxQixDQUFDO2dCQUMxQixZQUFZLEdBQUcsSUFBSSxDQUFDO2dCQUNwQixJQUFJLGNBQWMsRUFBRSxDQUFDO29CQUNqQixNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENB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Q0FBQyxJQUFJLElBQUksSUFBSSxZQUFZO29CQUNqRCxhQUFhLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxtQkFBbUI7aUJBQ2hELENBQUE7WUFDTCxDQUFDO1lBQ0QscUlBQXFJO1lBQ3JJLDJJQUEySTtZQUMzSSwrRkFBK0Y7WUFDL0YsR0FBRztZQUNIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztnQkFtQ0k7U0FDUDtLQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IHsgZGF0ZSB9IGZyb20gXCJiZXN0LWdsb2JhbHNcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBoZWxwZXJzQ2FzaWxsZXJvcyA9IHtcclxuICAgIG51bGwyemVybyhwb3NpYmxlTnVsbDogYW55KSB7XHJcbiAgICAgICAgaWYgKHBvc2libGVOdWxsID09IG51bGwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBwb3NpYmxlTnVsbDtcclxuICAgIH0sXHJcbiAgICBkaXYwZXJyKG51bWVyYWRvcjogbnVtYmVyLCBkZW5vbWluYWRvcjogbnVtYmVyLCBwazogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKGRlbm9taW5hZG9yID09IDApIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXJyb3IgZW4gXCIgKyBwayArIFwiIGRpdmlzaW9uIHBvciBjZXJvIGRlIFwiICsgbnVtZXJhZG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bWVyYWRvciAvIGRlbm9taW5hZG9yO1xyXG4gICAgfSxcclxuICAgIGZ1bnM6IHtcclxuICAgICAgICBibGFuY28oeDogYW55KSB7XHJcbiAgICAgICAgICAgIHJldHVybiB4ICE9PSAwICYmICF4XHJcbiAgICAgICAgfSxcclxuICAgICAgICBob3koKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBkYXRlLnRvZGF5KCkudG9EbXkoKVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZmVjaGFfdmFsaWRhKHg6IHN0cmluZykge1xyXG4gICAgICAgICAgICB2YXIgZm9ybWF0b192YWxpZG8gPSAvXihbMS05XXwwWzEtOV18WzEyXVxcZHwzWzAxXSlcXC8oWzEtOV18MFsxLTldfDFbMDEyXSlcXC8yMFxcZFxcZCQvLnRlc3QoeClcclxuICAgICAgICAgICAgdmFyIHhEYXRlOiBEYXRlO1xyXG4gICAgICAgICAgICB2YXIgY29udmVyc2lvbk9rOiBib29sZWFuO1xyXG4gICAgICAgICAgICBjb252ZXJzaW9uT2sgPSB0cnVlO1xyXG4gICAgICAgICAgICBpZiAoZm9ybWF0b192YWxpZG8pIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IFtkLCBtLCB5XSA9IHguc3BsaXQoJy8nKTtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgeERhdGUgPSBuZXcgRGF0ZShgJHt5fS8ke219LyR7ZH1gKTtcclxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnZlcnNpb25PayA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAvL2ZhbHRhcmlhIHZhbGlkYXIgcXVlIG5vIHNlYSB1bmEgZmVjaGEgZnV0dXJhIHkgcXVlIHNlYSB1bmEgZmVjaGEgZW4gZWwgcmFuZ28gZGVsIG9wZXJhdGl2b1xyXG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0b192YWxpZG8gJiYgY29udmVyc2lvbk9rXHJcbiAgICAgICAgfSxcclxuICAgICAgICBtZXNhbmlvX3ZhbGlkbyh4OiBzdHJpbmcpIHtcclxuICAgICAgICAgICAgdmFyIGZvcm1hdG9fdmFsaWRvID0gL14oWzEtOV18MFsxLTldfDFbMDEyXSlcXC8oMTl8MjApXFxkXFxkJC8udGVzdCh4KVxyXG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0b192YWxpZG9cclxuICAgICAgICB9LFxyXG4gICAgICAgIGluZm9ybWFkbyh4OiBhbnkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHggIT09IHVuZGVmaW5lZCAmJiB4ICE9PSBudWxsICYmICghKHggaW5zdGFuY2VvZiBBcnJheSkgfHwgeC5sZW5ndGggIT09IDApXHJcbiAgICAgICAgICAgICAgICAmJiAoISh4IGluc3RhbmNlb2YgT2JqZWN0KSB8fCBPYmplY3Qua2V5cyh4KS5sZW5ndGggIT09IDApXHJcbiAgICAgICAgfSxcclxuICAgICAgICBuc25jKHg6IGFueSkge1xyXG4gICAgICAgICAgICByZXR1cm4geCA9PSAtOVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcGFyKHg6IG51bWJlcikge1xyXG4gICAgICAgICAgICByZXR1cm4geCAlIDIgPT0gMFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZWRhZF9tZXNfYW5uaW9fdmFsaWRvKGVkYWQ6IG51bWJlciwgbWVzQW5uaW86IHN0cmluZywgZmVjaGFSZWFsaXphY2lvbkRETU1ZWVlZOiBzdHJpbmcpIHtcclxuICAgICAgICAgICAgdmFyIG1lc2VzRGlmZXJlbmNpYSA9IChkMTogRGF0ZSwgZDI6IERhdGUpID0+IHtcclxuICAgICAgICAgICAgICAgIHZhciBtb250aHM7XHJcbiAgICAgICAgICAgICAgICBtb250aHMgPSAoZDIuZ2V0RnVsbFllYXIoKSAtIGQxLmdldEZ1bGxZZWFyKCkpICogMTI7XHJcbiAgICAgICAgICAgICAgICBtb250aHMgLT0gZDEuZ2V0TW9udGgoKTtcclxuICAgICAgICAgICAgICAgIG1vbnRocyArPSBkMi5nZXRNb250aCgpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRocyA8PSAwID8gMCA6IG1vbnRocztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXIgcGFydGVzUmVhbGl6YWNpb24gPSBmZWNoYVJlYWxpemFjaW9uRERNTVlZWVkuc3BsaXQoXCIvXCIpO1xyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmUgbGFzIHBhcnRlcyBjb3JyZXNwb25kZW4gYSB1bmEgZmVjaGEgdsOhbGlkYVxyXG4gICAgICAgICAgICB2YXIgdG9kYXkgPSBkYXRlLnltZChOdW1iZXIocGFydGVzUmVhbGl6YWNpb25bMl0pLCBOdW1iZXIocGFydGVzUmVhbGl6YWNpb25bMV0pLCBOdW1iZXIocGFydGVzUmVhbGl6YWNpb25bMF0pKVxyXG4gICAgICAgICAgICB2YXIgcGFydGVzTWVzQW5uaW8gPSBtZXNBbm5pby5zcGxpdCgnLycpO1xyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmUgbGFzIHBhcnRlcyBjb3JyZXNwb25kZW4gYSB1bmEgZmVjaGEgdsOhbGlkYVxyXG4gICAgICAgICAgICB2YXIgbmFjaW1pZW50byA9IGRhdGUueW1kKE51bWJlcihwYXJ0ZXNNZXNBbm5pb1sxXSksIE51bWJlcihwYXJ0ZXNNZXNBbm5pb1swXSksIDEpXHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZSBSZWFsRGF0ZSBlcyBEYXRlIHkgc2UgcHVlZGUgcmVzdGFyXHJcbiAgICAgICAgICAgIHZhciBkaWZlcmVuY2lhTWVzZXMgPSBtZXNlc0RpZmVyZW5jaWEobmFjaW1pZW50bywgdG9kYXkpO1xyXG4gICAgICAgICAgICB2YXIgZWRhZERlY2ltYWxlcyA9IGRpZmVyZW5jaWFNZXNlcyAvIDEyOyAvL2VqIDM2LjVcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgIE1hdGguZmxvb3IoZWRhZERlY2ltYWxlcykgPT0gZWRhZCB8fCAvL21pc21hIGVkYWRcclxuICAgICAgICAgICAgICAgIGVkYWREZWNpbWFsZXMgPT0gZWRhZCArIDEgLy9tZXMgZGUgdG9sZXJhbmNpYVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvL2NvcGlhcl9jYW1wb191YV9yYW1hKHJlc3B1ZXN0YXNPcmlnZW46UmVzcHVlc3Rhc1tdLCBwb3NpY2lvbjpudW1iZXIsIHZhcmlhYmxlT3JpZ2VuOiBJZFZhcmlhYmxlLCBjYW1pbm86c3RyaW5nLCBjb25kaWNpb246Ym9vbGVhbil7XHJcbiAgICAgICAgLy8gICAgcmV0dXJuIGNvbmRpY2lvbj8ocmVzcHVlc3Rhc09yaWdlbiAmJiByZXNwdWVzdGFzT3JpZ2VuW3Bvc2ljaW9uLTFdICYmIHJlc3B1ZXN0YXNPcmlnZW5bcG9zaWNpb24tMV1bYCR7Y2FtaW5vfWBdW3ZhcmlhYmxlT3JpZ2VuXSk6bnVsbFxyXG4gICAgICAgIC8vICAgIHJldHVybiBjb25kaWNpb24/ZXZhbChgcmVzcHVlc3Rhc09yaWdlblske3Bvc2ljaW9uLTF9XS5gK2NhbWlubysnLicrdmFyaWFibGVPcmlnZW4pOm51bGw7XHJcbiAgICAgICAgLy99XHJcbiAgICAgICAgLypcclxuICAgICAgICBkYm86e1xyXG4gICAgICAgICAgICBkYXRvRmFtaWxpYXIoZW5jdTpzdHJpbmcsaG9nOm51bWJlcixwZXI6bnVtYmVyLCBkYXRvOnN0cmluZyl7XHJcbiAgICAgICAgICAgICAgICB2YXIgeHBlcnNvbmFzPXBlcnNvbmFzO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGVuY3U9PWVuYyAmJiBob2c9PWhvZ2FyICYmIGluZm9ybWFkbyh4cGVyc29uYXMpICYmIHBlcjw9IHhwZXJzb25hcy5sZW5ndGggJiYgcGVyPj0xICYmICEheHBlcnNvbmFzW3Blci0xXVtkYXRvXT8geHBlcnNvbmFzW3Blci0xXVtkYXRvXTpudWxsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVkYWRmYW1pbGlhcihlbmN1OnN0cmluZyxob2c6bnVtYmVyLHBlcjpudW1iZXIpe1xyXG4gICAgICAgICAgICAgICAgdmFyIHhwZXJzb25hcz1wZXJzb25hcztcclxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRvRmFtaWxpYXIoZW5jdTpzdHJpbmcsaG9nOm51bWJlcixwZXI6bnVtYmVyLCdlZGFkJylcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXhpc3RlaW5kaXZpZHVhbChlbmN1OnN0cmluZyxob2c6bnVtYmVyLHBlcjpudW1iZXIpe1xyXG4gICAgICAgICAgICAgICAgdmFyIHhwZXJzb25hcz1wZXJzb25hcztcclxuICAgICAgICAgICAgICAgIHJldHVybiBlbmN1PT1lbmMgJiYgaG9nPT1ob2dhciAmJiAhIXBlcnNvbmFzICYmIHBlcjw9IHBlcnNvbmFzLmxlbmd0aCAmJiBwZXI+PTEgJiYgISFwZXJzb25hc1twZXItMV1bJ2VudHJlYWluZCddXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGV4aXN0ZW1pZW1icm8oZW5jdTpzdHJpbmcsaG9nOm51bWJlcixwZXI6bnVtYmVyKXtcclxuICAgICAgICAgICAgICAgIHZhciB4cGVyc29uYXM9cGVyc29uYXM7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZW5jdT09ZW5jICYmIGhvZz09aG9nYXIgJiYgISFwZXJzb25hcyAmJiBwZXI8PSBwZXJzb25hcy5sZW5ndGggJiYgcGVyPj0xXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIG5yb2Nvbnl1Z2VzKGVuY3U6c3RyaW5nLGhvZzpudW1iZXIpe1xyXG4gICAgICAgICAgICAgICAgdmFyIHhwZXJzb25hcz1wZXJzb25hc1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHhwZXJzb25hcy5maWx0ZXIoIHBlci0+cGVyLnA0PT0yKS5sZW5ndGhcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgbnJvamVmZXMoZW5jdTpzdHJpbmcsaG9nOm51bWJlcixwZXI6bnVtYmVyKXtcclxuICAgICAgICAgICAgICAgIHJldHVybiBwZXJzb25hcy5maWx0ZXIoIHBlci0+cGVyLnA0PT0xKS5sZW5ndGhcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgcGFyZW50ZXNjb2ZhbWlsaWFyKGVuY3U6c3RyaW5nLGhvZzpudW1iZXIscGVyOm51bWJlcil7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0b0ZhbWlsaWFyKGVuY3U6c3RyaW5nLGhvZzpudW1iZXIscGVyOm51bWJlciwncDQnKVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzZXhvZmFtaWxpYXIoZW5jdTpzdHJpbmcsaG9nOm51bWJlcixwZXI6bnVtYmVyKXtcclxuICAgICAgICAgICAgICAgIHZhciB4cGVyc29uYXM9cGVyc29uYXM7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZW5jdT09ZW5jICYmIGhvZz09aG9nYXIgJiYgISF4cGVyc29uYXMgJiYgcGVyPD0geHBlcnNvbmFzLmxlbmd0aCAmJiBwZXI+PTEgJiYgISF4cGVyc29uYXNbcGVyLTFdLnNleG8/IHhwZXJzb25hc1twZXItMV1bJ3NleG8nXTpudWxsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHNpdGNvbnlqZWZlKGVuY3U6c3RyaW5nLGhvZzpudW1iZXIpe1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdG9GYW1pbGlhcihlbmN1OnN0cmluZyxob2c6bnVtYmVyLDEsJ3A1JylcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gKi9cclxuICAgIH1cclxufTsiXX0=
@@ -0,0 +1,14 @@
1
+ export declare const helpersCasilleros: {
2
+ null2zero(posibleNull: any): any;
3
+ div0err(numerador: number, denominador: number, pk: string): number;
4
+ funs: {
5
+ blanco(x: any): boolean;
6
+ hoy(): any;
7
+ fecha_valida(x: string): boolean;
8
+ mesanio_valido(x: string): boolean;
9
+ informado(x: any): boolean;
10
+ nsnc(x: any): boolean;
11
+ par(x: number): boolean;
12
+ edad_mes_annio_valido(edad: number, mesAnnio: string, fechaRealizacionDDMMYYYY: string): boolean;
13
+ };
14
+ };
@@ -0,0 +1,129 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.helpersCasilleros = void 0;
13
+ exports.helpersCasilleros = {
14
+ null2zero(posibleNull) {
15
+ if (posibleNull == null) {
16
+ return 0;
17
+ }
18
+ return posibleNull;
19
+ },
20
+ div0err(numerador, denominador, pk) {
21
+ if (denominador == 0) {
22
+ throw new Error("Error en " + pk + " division por cero de " + numerador);
23
+ }
24
+ return numerador / denominador;
25
+ },
26
+ funs: {
27
+ blanco(x) {
28
+ return x !== 0 && !x;
29
+ },
30
+ hoy() {
31
+ return date.today().toDmy();
32
+ },
33
+ fecha_valida(x) {
34
+ var formato_valido = /^([1-9]|0[1-9]|[12]\d|3[01])\/([1-9]|0[1-9]|1[012])\/20\d\d$/.test(x);
35
+ var xDate;
36
+ var conversionOk;
37
+ conversionOk = true;
38
+ if (formato_valido) {
39
+ const [d, m, y] = x.split('/');
40
+ try {
41
+ xDate = new Date(`${y}/${m}/${d}`);
42
+ }
43
+ catch (err) {
44
+ conversionOk = false;
45
+ }
46
+ }
47
+ ;
48
+ //faltaria validar que no sea una fecha futura y que sea una fecha en el rango del operativo
49
+ return formato_valido && conversionOk;
50
+ },
51
+ mesanio_valido(x) {
52
+ var formato_valido = /^([1-9]|0[1-9]|1[012])\/(19|20)\d\d$/.test(x);
53
+ return formato_valido;
54
+ },
55
+ informado(x) {
56
+ return x !== undefined && x !== null && (!(x instanceof Array) || x.length !== 0)
57
+ && (!(x instanceof Object) || Object.keys(x).length !== 0);
58
+ },
59
+ nsnc(x) {
60
+ return x == -9;
61
+ },
62
+ par(x) {
63
+ return x % 2 == 0;
64
+ },
65
+ edad_mes_annio_valido(edad, mesAnnio, fechaRealizacionDDMMYYYY) {
66
+ var mesesDiferencia = (d1, d2) => {
67
+ var months;
68
+ months = (d2.getFullYear() - d1.getFullYear()) * 12;
69
+ months -= d1.getMonth();
70
+ months += d2.getMonth();
71
+ return months <= 0 ? 0 : months;
72
+ };
73
+ var partesRealizacion = fechaRealizacionDDMMYYYY.split("/");
74
+ //@ts-ignore las partes corresponden a una fecha válida
75
+ var today = date.ymd(Number(partesRealizacion[2]), Number(partesRealizacion[1]), Number(partesRealizacion[0]));
76
+ var partesMesAnnio = mesAnnio.split('/');
77
+ //@ts-ignore las partes corresponden a una fecha válida
78
+ var nacimiento = date.ymd(Number(partesMesAnnio[1]), Number(partesMesAnnio[0]), 1);
79
+ //@ts-ignore RealDate es Date y se puede restar
80
+ var diferenciaMeses = mesesDiferencia(nacimiento, today);
81
+ var edadDecimales = diferenciaMeses / 12; //ej 36.5
82
+ return (Math.floor(edadDecimales) == edad || //misma edad
83
+ edadDecimales == edad + 1 //mes de tolerancia
84
+ );
85
+ },
86
+ //copiar_campo_ua_rama(respuestasOrigen:Respuestas[], posicion:number, variableOrigen: IdVariable, camino:string, condicion:boolean){
87
+ // return condicion?(respuestasOrigen && respuestasOrigen[posicion-1] && respuestasOrigen[posicion-1][`${camino}`][variableOrigen]):null
88
+ // return condicion?eval(`respuestasOrigen[${posicion-1}].`+camino+'.'+variableOrigen):null;
89
+ //}
90
+ /*
91
+ dbo:{
92
+ datoFamiliar(encu:string,hog:number,per:number, dato:string){
93
+ var xpersonas=personas;
94
+ return encu==enc && hog==hogar && informado(xpersonas) && per<= xpersonas.length && per>=1 && !!xpersonas[per-1][dato]? xpersonas[per-1][dato]:null
95
+ },
96
+ edadfamiliar(encu:string,hog:number,per:number){
97
+ var xpersonas=personas;
98
+ return datoFamiliar(encu:string,hog:number,per:number,'edad')
99
+ },
100
+ existeindividual(encu:string,hog:number,per:number){
101
+ var xpersonas=personas;
102
+ return encu==enc && hog==hogar && !!personas && per<= personas.length && per>=1 && !!personas[per-1]['entreaind']
103
+ },
104
+ existemiembro(encu:string,hog:number,per:number){
105
+ var xpersonas=personas;
106
+ return encu==enc && hog==hogar && !!personas && per<= personas.length && per>=1
107
+ },
108
+ nroconyuges(encu:string,hog:number){
109
+ var xpersonas=personas
110
+ return xpersonas.filter( per->per.p4==2).length
111
+ },
112
+ nrojefes(encu:string,hog:number,per:number){
113
+ return personas.filter( per->per.p4==1).length
114
+ },
115
+ parentescofamiliar(encu:string,hog:number,per:number){
116
+ return datoFamiliar(encu:string,hog:number,per:number,'p4')
117
+ },
118
+ sexofamiliar(encu:string,hog:number,per:number){
119
+ var xpersonas=personas;
120
+ return encu==enc && hog==hogar && !!xpersonas && per<= xpersonas.length && per>=1 && !!xpersonas[per-1].sexo? xpersonas[per-1]['sexo']:null
121
+ },
122
+ sitconyjefe(encu:string,hog:number){
123
+ return datoFamiliar(encu:string,hog:number,1,'p5')
124
+ }
125
+ } */
126
+ }
127
+ };
128
+ });
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91bmxvZ2dlZC9oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUNhLFFBQUEsaUJBQWlCLEdBQUc7UUFDN0IsU0FBUyxDQUFDLFdBQWdCO1lBQ3RCLElBQUksV0FBVyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUN0QixPQUFPLENBQUMsQ0FBQztZQUNiLENBQUM7WUFDRCxPQUFPLFdBQVcsQ0FBQztRQUN2QixDQUFDO1FBQ0QsT0FBTyxDQUFDLFNBQWlCLEVBQUUsV0FBbUIsRUFBRSxFQUFVO1lBQ3RELElBQUksV0FBVyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLFdBQVcsR0FBRyxFQUFFLEdBQUcsd0JBQXdCLEdBQUcsU0FBUyxDQUFDLENBQUM7WUFDN0UsQ0FBQztZQUNELE9BQU8sU0FBUyxHQUFHLFdBQVcsQ0FBQztRQUNuQyxDQUFDO1FBQ0QsSUFBSSxFQUFFO1lBQ0YsTUFBTSxDQUFDLENBQU07Z0JBQ1QsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1lBQ3hCLENBQUM7WUFDRCxHQUFHO2dCQUNDLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFBO1lBQy9CLENBQUM7WUFDRCxZQUFZLENBQUMsQ0FBUztnQkFDbEIsSUFBSSxjQUFjLEdBQUcsOERBQThELENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO2dCQUMzRixJQUFJLEtBQVcsQ0FBQztnQkFDaEIsSUFBSSxZQUFxQixDQUFDO2dCQUMxQixZQUFZLEdBQUcsSUFBSSxDQUFDO2dCQUNwQixJQUFJLGNBQWMsRUFBRSxDQUFDO29CQUNqQixNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FB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QUFJLElBQUksR0FBRyxDQUFDLENBQUMsbUJBQW1CO2lCQUNoRCxDQUFBO1lBQ0wsQ0FBQztZQUNELHFJQUFxSTtZQUNySSwySUFBMkk7WUFDM0ksK0ZBQStGO1lBQy9GLEdBQUc7WUFDSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Z0JBbUNJO1NBQ1A7S0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmV4cG9ydCBjb25zdCBoZWxwZXJzQ2FzaWxsZXJvcyA9IHtcclxuICAgIG51bGwyemVybyhwb3NpYmxlTnVsbDogYW55KSB7XHJcbiAgICAgICAgaWYgKHBvc2libGVOdWxsID09IG51bGwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBwb3NpYmxlTnVsbDtcclxuICAgIH0sXHJcbiAgICBkaXYwZXJyKG51bWVyYWRvcjogbnVtYmVyLCBkZW5vbWluYWRvcjogbnVtYmVyLCBwazogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKGRlbm9taW5hZG9yID09IDApIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXJyb3IgZW4gXCIgKyBwayArIFwiIGRpdmlzaW9uIHBvciBjZXJvIGRlIFwiICsgbnVtZXJhZG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bWVyYWRvciAvIGRlbm9taW5hZG9yO1xyXG4gICAgfSxcclxuICAgIGZ1bnM6IHtcclxuICAgICAgICBibGFuY28oeDogYW55KSB7XHJcbiAgICAgICAgICAgIHJldHVybiB4ICE9PSAwICYmICF4XHJcbiAgICAgICAgfSxcclxuICAgICAgICBob3koKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBkYXRlLnRvZGF5KCkudG9EbXkoKVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZmVjaGFfdmFsaWRhKHg6IHN0cmluZykge1xyXG4gICAgICAgICAgICB2YXIgZm9ybWF0b192YWxpZG8gPSAvXihbMS05XXwwWzEtOV18WzEyXVxcZHwzWzAxXSlcXC8oWzEtOV18MFsxLTldfDFbMDEyXSlcXC8yMFxcZFxcZCQvLnRlc3QoeClcclxuICAgICAgICAgICAgdmFyIHhEYXRlOiBEYXRlO1xyXG4gICAgICAgICAgICB2YXIgY29udmVyc2lvbk9rOiBib29sZWFuO1xyXG4gICAgICAgICAgICBjb252ZXJzaW9uT2sgPSB0cnVlO1xyXG4gICAgICAgICAgICBpZiAoZm9ybWF0b192YWxpZG8pIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IFtkLCBtLCB5XSA9IHguc3BsaXQoJy8nKTtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgeERhdGUgPSBuZXcgRGF0ZShgJHt5fS8ke219LyR7ZH1gKTtcclxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnZlcnNpb25PayA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAvL2ZhbHRhcmlhIHZhbGlkYXIgcXVlIG5vIHNlYSB1bmEgZmVjaGEgZnV0dXJhIHkgcXVlIHNlYSB1bmEgZmVjaGEgZW4gZWwgcmFuZ28gZGVsIG9wZXJhdGl2b1xyXG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0b192YWxpZG8gJiYgY29udmVyc2lvbk9rXHJcbiAgICAgICAgfSxcclxuICAgICAgICBtZXNhbmlvX3ZhbGlkbyh4OiBzdHJpbmcpIHtcclxuICAgICAgICAgICAgdmFyIGZvcm1hdG9fdmFsaWRvID0gL14oWzEtOV18MFsxLTldfDFbMDEyXSlcXC8oMTl8MjApXFxkXFxkJC8udGVzdCh4KVxyXG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0b192YWxpZG9cclxuICAgICAgICB9LFxyXG4gICAgICAgIGluZm9ybWFkbyh4OiBhbnkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHggIT09IHVuZGVmaW5lZCAmJiB4ICE9PSBudWxsICYmICghKHggaW5zdGFuY2VvZiBBcnJheSkgfHwgeC5sZW5ndGggIT09IDApXHJcbiAgICAgICAgICAgICAgICAmJiAoISh4IGluc3RhbmNlb2YgT2JqZWN0KSB8fCBPYmplY3Qua2V5cyh4KS5sZW5ndGggIT09IDApXHJcbiAgICAgICAgfSxcclxuICAgICAgICBuc25jKHg6IGFueSkge1xyXG4gICAgICAgICAgICByZXR1cm4geCA9PSAtOVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcGFyKHg6IG51bWJlcikge1xyXG4gICAgICAgICAgICByZXR1cm4geCAlIDIgPT0gMFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZWRhZF9tZXNfYW5uaW9fdmFsaWRvKGVkYWQ6IG51bWJlciwgbWVzQW5uaW86IHN0cmluZywgZmVjaGFSZWFsaXphY2lvbkRETU1ZWVlZOiBzdHJpbmcpIHtcclxuICAgICAgICAgICAgdmFyIG1lc2VzRGlmZXJlbmNpYSA9IChkMTogRGF0ZSwgZDI6IERhdGUpID0+IHtcclxuICAgICAgICAgICAgICAgIHZhciBtb250aHM7XHJcbiAgICAgICAgICAgICAgICBtb250aHMgPSAoZDIuZ2V0RnVsbFllYXIoKSAtIGQxLmdldEZ1bGxZZWFyKCkpICogMTI7XHJcbiAgICAgICAgICAgICAgICBtb250aHMgLT0gZDEuZ2V0TW9udGgoKTtcclxuICAgICAgICAgICAgICAgIG1vbnRocyArPSBkMi5nZXRNb250aCgpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRocyA8PSAwID8gMCA6IG1vbnRocztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXIgcGFydGVzUmVhbGl6YWNpb24gPSBmZWNoYVJlYWxpemFjaW9uRERNTVlZWVkuc3BsaXQoXCIvXCIpO1xyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmUgbGFzIHBhcnRlcyBjb3JyZXNwb25kZW4gYSB1bmEgZmVjaGEgdsOhbGlkYVxyXG4gICAgICAgICAgICB2YXIgdG9kYXkgPSBkYXRlLnltZChOdW1iZXIocGFydGVzUmVhbGl6YWNpb25bMl0pLCBOdW1iZXIocGFydGVzUmVhbGl6YWNpb25bMV0pLCBOdW1iZXIocGFydGVzUmVhbGl6YWNpb25bMF0pKVxyXG4gICAgICAgICAgICB2YXIgcGFydGVzTWVzQW5uaW8gPSBtZXNBbm5pby5zcGxpdCgnLycpO1xyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmUgbGFzIHBhcnRlcyBjb3JyZXNwb25kZW4gYSB1bmEgZmVjaGEgdsOhbGlkYVxyXG4gICAgICAgICAgICB2YXIgbmFjaW1pZW50byA9IGRhdGUueW1kKE51bWJlcihwYXJ0ZXNNZXNBbm5pb1sxXSksIE51bWJlcihwYXJ0ZXNNZXNBbm5pb1swXSksIDEpXHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZSBSZWFsRGF0ZSBlcyBEYXRlIHkgc2UgcHVlZGUgcmVzdGFyXHJcbiAgICAgICAgICAgIHZhciBkaWZlcmVuY2lhTWVzZXMgPSBtZXNlc0RpZmVyZW5jaWEobmFjaW1pZW50bywgdG9kYXkpO1xyXG4gICAgICAgICAgICB2YXIgZWRhZERlY2ltYWxlcyA9IGRpZmVyZW5jaWFNZXNlcyAvIDEyOyAvL2VqIDM2LjVcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgIE1hdGguZmxvb3IoZWRhZERlY2ltYWxlcykgPT0gZWRhZCB8fCAvL21pc21hIGVkYWRcclxuICAgICAgICAgICAgICAgIGVkYWREZWNpbWFsZXMgPT0gZWRhZCArIDEgLy9tZXMgZGUgdG9sZXJhbmNpYVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvL2NvcGlhcl9jYW1wb191YV9yYW1hKHJlc3B1ZXN0YXNPcmlnZW46UmVzcHVlc3Rhc1tdLCBwb3NpY2lvbjpudW1iZXIsIHZhcmlhYmxlT3JpZ2VuOiBJZFZhcmlhYmxlLCBjYW1pbm86c3RyaW5nLCBjb25kaWNpb246Ym9vbGVhbil7XHJcbiAgICAgICAgLy8gICAgcmV0dXJuIGNvbmRpY2lvbj8ocmVzcHVlc3Rhc09yaWdlbiAmJiByZXNwdWVzdGFzT3JpZ2VuW3Bvc2ljaW9uLTFdICYmIHJlc3B1ZXN0YXNPcmlnZW5bcG9zaWNpb24tMV1bYCR7Y2FtaW5vfWBdW3ZhcmlhYmxlT3JpZ2VuXSk6bnVsbFxyXG4gICAgICAgIC8vICAgIHJldHVybiBjb25kaWNpb24/ZXZhbChgcmVzcHVlc3Rhc09yaWdlblske3Bvc2ljaW9uLTF9XS5gK2NhbWlubysnLicrdmFyaWFibGVPcmlnZW4pOm51bGw7XHJcbiAgICAgICAgLy99XHJcbiAgICAgICAgLypcclxuICAgICAgICBkYm86e1xyXG4gICAgICAgICAgICBkYXRvRmFtaWxpYXIoZW5jdTpzdHJpbmcsaG9nOm51bWJlcixwZXI6bnVtYmVyLCBkYXRvOnN0cmluZyl7XHJcbiAgICAgICAgICAgICAgICB2YXIgeHBlcnNvbmFzPXBlcnNvbmFzO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGVuY3U9PWVuYyAmJiBob2c9PWhvZ2FyICYmIGluZm9ybWFkbyh4cGVyc29uYXMpICYmIHBlcjw9IHhwZXJzb25hcy5sZW5ndGggJiYgcGVyPj0xICYmICEheHBlcnNvbmFzW3Blci0xXVtkYXRvXT8geHBlcnNvbmFzW3Blci0xXVtkYXRvXTpudWxsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVkYWRmYW1pbGlhcihlbmN1OnN0cmluZyxob2c6bnVtYmVyLHBlcjpudW1iZXIpe1xyXG4gICAgICAgICAgICAgICAgdmFyIHhwZXJzb25hcz1wZXJzb25hcztcclxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRvRmFtaWxpYXIoZW5jdTpzdHJpbmcsaG9nOm51bWJlcixwZXI6bnVtYmVyLCdlZGFkJylcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXhpc3RlaW5kaXZpZHVhbChlbmN1OnN0cmluZyxob2c6bnVtYmVyLHBlcjpudW1iZXIpe1xyXG4gICAgICAgICAgICAgICAgdmFyIHhwZXJzb25hcz1wZXJzb25hcztcclxuICAgICAgICAgICAgICAgIHJldHVybiBlbmN1PT1lbmMgJiYgaG9nPT1ob2dhciAmJiAhIXBlcnNvbmFzICYmIHBlcjw9IHBlcnNvbmFzLmxlbmd0aCAmJiBwZXI+PTEgJiYgISFwZXJzb25hc1twZXItMV1bJ2VudHJlYWluZCddXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGV4aXN0ZW1pZW1icm8oZW5jdTpzdHJpbmcsaG9nOm51bWJlcixwZXI6bnVtYmVyKXtcclxuICAgICAgICAgICAgICAgIHZhciB4cGVyc29uYXM9cGVyc29uYXM7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZW5jdT09ZW5jICYmIGhvZz09aG9nYXIgJiYgISFwZXJzb25hcyAmJiBwZXI8PSBwZXJzb25hcy5sZW5ndGggJiYgcGVyPj0xXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIG5yb2Nvbnl1Z2VzKGVuY3U6c3RyaW5nLGhvZzpudW1iZXIpe1xyXG4gICAgICAgICAgICAgICAgdmFyIHhwZXJzb25hcz1wZXJzb25hc1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHhwZXJzb25hcy5maWx0ZXIoIHBlci0+cGVyLnA0PT0yKS5sZW5ndGhcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgbnJvamVmZXMoZW5jdTpzdHJpbmcsaG9nOm51bWJlcixwZXI6bnVtYmVyKXtcclxuICAgICAgICAgICAgICAgIHJldHVybiBwZXJzb25hcy5maWx0ZXIoIHBlci0+cGVyLnA0PT0xKS5sZW5ndGhcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgcGFyZW50ZXNjb2ZhbWlsaWFyKGVuY3U6c3RyaW5nLGhvZzpudW1iZXIscGVyOm51bWJlcil7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0b0ZhbWlsaWFyKGVuY3U6c3RyaW5nLGhvZzpudW1iZXIscGVyOm51bWJlciwncDQnKVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzZXhvZmFtaWxpYXIoZW5jdTpzdHJpbmcsaG9nOm51bWJlcixwZXI6bnVtYmVyKXtcclxuICAgICAgICAgICAgICAgIHZhciB4cGVyc29uYXM9cGVyc29uYXM7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZW5jdT09ZW5jICYmIGhvZz09aG9nYXIgJiYgISF4cGVyc29uYXMgJiYgcGVyPD0geHBlcnNvbmFzLmxlbmd0aCAmJiBwZXI+PTEgJiYgISF4cGVyc29uYXNbcGVyLTFdLnNleG8/IHhwZXJzb25hc1twZXItMV1bJ3NleG8nXTpudWxsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHNpdGNvbnlqZWZlKGVuY3U6c3RyaW5nLGhvZzpudW1iZXIpe1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdG9GYW1pbGlhcihlbmN1OnN0cmluZyxob2c6bnVtYmVyLDEsJ3A1JylcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gKi9cclxuICAgIH1cclxufTsiXX0=
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "dmencu",
3
3
  "description": "DM Encu - Encuestas en dispositivo móvil",
4
- "version": "3.2.20",
4
+ "version": "3.2.21",
5
5
  "author": "Codenautas <codenautas@googlegroups.com>",
6
6
  "license": "MIT",
7
7
  "repository": "codenautas/dmencu",