dmencu 3.2.21 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -42
- package/ayuda/asignacion.md +16 -0
- package/ayuda/circuito-encuesta.md +27 -0
- package/ayuda/control.md +13 -0
- package/ayuda/dm-cambiar-modo.md +16 -0
- package/ayuda/dm-relevamiento.md +20 -0
- package/ayuda/dm-sincronizar.md +18 -0
- package/ayuda/fin-de-campo.md +14 -0
- package/ayuda/metadatos.md +14 -0
- package/ayuda/procesar.md +13 -0
- package/ayuda/recepcion.md +20 -0
- package/ayuda/supervision.md +9 -0
- package/ayuda/usuarios.md +12 -0
- package/ayuda/varios.md +23 -0
- package/dist/client/client/client.js +101 -4
- package/dist/client/client/css/menu.styl +29 -0
- package/dist/client/unlogged/abrir-formulario.js +1 -1
- package/dist/client/unlogged/bypass-formulario.d.ts +6 -42
- package/dist/client/unlogged/bypass-formulario.js +84 -219
- package/dist/client/unlogged/calculos-encuesta.js +112 -38
- package/dist/client/unlogged/css/formulario-react.styl +9 -0
- package/dist/client/unlogged/helpers-casilleros.d.ts +1 -1
- package/dist/client/unlogged/helpers-casilleros.js +12 -18
- package/dist/client/unlogged/helpers-formulario.d.ts +16 -0
- package/dist/client/unlogged/helpers-formulario.js +88 -0
- package/dist/client/unlogged/redux-formulario.d.ts +1 -2
- package/dist/client/unlogged/redux-formulario.js +21 -31
- package/dist/client/unlogged/render-config.d.ts +5 -1
- package/dist/client/unlogged/render-config.js +14 -1
- package/dist/client/unlogged/render-formulario.d.ts +3 -6
- package/dist/client/unlogged/render-formulario.js +71 -69
- package/dist/client/unlogged/render-formulario.tsx +100 -57
- package/dist/client/unlogged/render-general.d.ts +2 -0
- package/dist/client/unlogged/render-general.js +2 -1
- package/dist/client/unlogged/render-general.tsx +2 -1
- package/dist/client/unlogged/render-init.d.ts +1 -0
- package/dist/client/unlogged/render-init.js +9 -2
- package/dist/client/unlogged/tipos.d.ts +93 -41
- package/dist/client/unlogged/tipos.js +1 -1
- package/dist/server/app-dmencu.d.ts +1435 -0
- package/dist/server/app-dmencu.js +1091 -0
- package/dist/server/ayuda.d.ts +19 -0
- package/dist/server/ayuda.js +224 -0
- package/dist/server/def-config.d.ts +1 -0
- package/dist/server/def-config.js +123 -0
- package/dist/server/procedures-dmencu.d.ts +43 -0
- package/dist/server/procedures-dmencu.js +2313 -0
- package/dist/server/server/app-dmencu.d.ts +49 -91
- package/dist/server/server/app-dmencu.js +151 -52
- package/dist/server/server/ayuda.d.ts +19 -0
- package/dist/server/server/ayuda.js +224 -0
- package/dist/server/server/procedures-dmencu.d.ts +34 -2
- package/dist/server/server/procedures-dmencu.js +93 -51
- package/dist/server/server/setters-rea-no-rea.d.ts +13 -0
- package/dist/server/server/setters-rea-no-rea.js +35 -0
- package/dist/server/server/table-areas.js +4 -4
- package/dist/server/server/table-areas_asignacion_general.js +2 -1
- package/dist/server/server/table-control_campo.js +4 -4
- package/dist/server/server/table-no_rea.js +4 -2
- package/dist/server/server/table-no_rea_sup.js +7 -3
- package/dist/server/server/table-personal.js +1 -1
- package/dist/server/server/table-tareas_tem.js +2 -2
- package/dist/server/server/table-tem.js +2 -2
- package/dist/server/server/types-dmencu.d.ts +53 -2
- package/dist/server/server/types-dmencu.js +2 -1
- package/dist/server/setters-rea-no-rea.d.ts +13 -0
- package/dist/server/setters-rea-no-rea.js +35 -0
- package/dist/server/table-acciones.d.ts +2 -0
- package/dist/server/table-acciones.js +45 -0
- package/dist/server/table-area_enc_proximas.d.ts +2 -0
- package/dist/server/table-area_enc_proximas.js +30 -0
- package/dist/server/table-areas.d.ts +4 -0
- package/dist/server/table-areas.js +112 -0
- package/dist/server/table-areas_asignacion_general.d.ts +2 -0
- package/dist/server/table-areas_asignacion_general.js +86 -0
- package/dist/server/table-barrios.d.ts +2 -0
- package/dist/server/table-barrios.js +35 -0
- package/dist/server/table-comunas.d.ts +2 -0
- package/dist/server/table-comunas.js +33 -0
- package/dist/server/table-control_campo.d.ts +12 -0
- package/dist/server/table-control_campo.js +119 -0
- package/dist/server/table-control_dias_carga.d.ts +2 -0
- package/dist/server/table-control_dias_carga.js +63 -0
- package/dist/server/table-control_resumen.d.ts +2 -0
- package/dist/server/table-control_resumen.js +19 -0
- package/dist/server/table-diccionario.d.ts +2 -0
- package/dist/server/table-diccionario.js +32 -0
- package/dist/server/table-dictra.d.ts +2 -0
- package/dist/server/table-dictra.js +46 -0
- package/dist/server/table-dicvar.d.ts +2 -0
- package/dist/server/table-dicvar.js +32 -0
- package/dist/server/table-encuestadores.d.ts +13 -0
- package/dist/server/table-encuestadores.js +75 -0
- package/dist/server/table-estados.d.ts +2 -0
- package/dist/server/table-estados.js +47 -0
- package/dist/server/table-estados_acciones.d.ts +2 -0
- package/dist/server/table-estados_acciones.js +40 -0
- package/dist/server/table-fracciones.d.ts +2 -0
- package/dist/server/table-fracciones.js +37 -0
- package/dist/server/table-grilla_hoja_ruta.d.ts +2 -0
- package/dist/server/table-grilla_hoja_ruta.js +93 -0
- package/dist/server/table-historial_tem.d.ts +2 -0
- package/dist/server/table-historial_tem.js +57 -0
- package/dist/server/table-hogares.d.ts +2 -0
- package/dist/server/table-hogares.js +156 -0
- package/dist/server/table-hogares_sup.d.ts +2 -0
- package/dist/server/table-hogares_sup.js +191 -0
- package/dist/server/table-inconsistencias_cumplen_condicion.d.ts +2 -0
- package/dist/server/table-inconsistencias_cumplen_condicion.js +33 -0
- package/dist/server/table-manzanas.d.ts +2 -0
- package/dist/server/table-manzanas.js +36 -0
- package/dist/server/table-mis_encuestadores.d.ts +2 -0
- package/dist/server/table-mis_encuestadores.js +77 -0
- package/dist/server/table-mis_tareas.d.ts +2 -0
- package/dist/server/table-mis_tareas.js +18 -0
- package/dist/server/table-mis_tareas_areas.d.ts +2 -0
- package/dist/server/table-mis_tareas_areas.js +20 -0
- package/dist/server/table-modos_dm.d.ts +2 -0
- package/dist/server/table-modos_dm.js +28 -0
- package/dist/server/table-no_rea.js +38 -0
- package/dist/server/table-no_rea_sup.js +36 -0
- package/dist/server/table-operaciones.d.ts +2 -0
- package/dist/server/table-operaciones.js +30 -0
- package/dist/server/table-parametros.d.ts +2 -0
- package/dist/server/table-parametros.js +40 -0
- package/dist/server/table-permisos.d.ts +2 -0
- package/dist/server/table-permisos.js +31 -0
- package/dist/server/table-personal.d.ts +5 -0
- package/dist/server/table-personal.js +62 -0
- package/dist/server/table-personal_rol.d.ts +2 -0
- package/dist/server/table-personal_rol.js +42 -0
- package/dist/server/table-personas.d.ts +2 -0
- package/dist/server/table-personas.js +448 -0
- package/dist/server/table-personas_sup.d.ts +2 -0
- package/dist/server/table-personas_sup.js +93 -0
- package/dist/server/table-radios.d.ts +2 -0
- package/dist/server/table-radios.js +37 -0
- package/dist/server/table-rea.d.ts +2 -0
- package/dist/server/table-rea.js +38 -0
- package/dist/server/table-rea_sup.d.ts +2 -0
- package/dist/server/table-rea_sup.js +38 -0
- package/dist/server/table-recepcionistas.d.ts +2 -0
- package/dist/server/table-recepcionistas.js +18 -0
- package/dist/server/table-recuperadores.d.ts +2 -0
- package/dist/server/table-recuperadores.js +18 -0
- package/dist/server/table-roles.d.ts +2 -0
- package/dist/server/table-roles.js +33 -0
- package/dist/server/table-roles_permisos.d.ts +2 -0
- package/dist/server/table-roles_permisos.js +36 -0
- package/dist/server/table-roles_subordinados.d.ts +2 -0
- package/dist/server/table-roles_subordinados.js +31 -0
- package/dist/server/table-semanas.d.ts +2 -0
- package/dist/server/table-semanas.js +42 -0
- package/dist/server/table-sincronizaciones.d.ts +2 -0
- package/dist/server/table-sincronizaciones.js +30 -0
- package/dist/server/table-supervisores.d.ts +2 -0
- package/dist/server/table-supervisores.js +18 -0
- package/dist/server/table-tareas.d.ts +2 -0
- package/dist/server/table-tareas.js +48 -0
- package/dist/server/table-tareas_areas.d.ts +7 -0
- package/dist/server/table-tareas_areas.js +112 -0
- package/dist/server/table-tareas_proximas.d.ts +2 -0
- package/dist/server/table-tareas_proximas.js +48 -0
- package/dist/server/table-tareas_tem.d.ts +14 -0
- package/dist/server/table-tareas_tem.js +206 -0
- package/dist/server/table-tareas_tem_analisis_campo.d.ts +2 -0
- package/dist/server/table-tareas_tem_analisis_campo.js +31 -0
- package/dist/server/table-tareas_tem_fin_campo.d.ts +3 -0
- package/dist/server/table-tareas_tem_fin_campo.js +56 -0
- package/dist/server/table-tareas_tem_ingreso.d.ts +2 -0
- package/dist/server/table-tareas_tem_ingreso.js +31 -0
- package/dist/server/table-tareas_tem_procesamiento.d.ts +2 -0
- package/dist/server/table-tareas_tem_procesamiento.js +34 -0
- package/dist/server/table-tareas_tem_recepcion.d.ts +6 -0
- package/dist/server/table-tareas_tem_recepcion.js +59 -0
- package/dist/server/table-tem.d.ts +3 -0
- package/dist/server/table-tem.js +247 -0
- package/dist/server/table-tem_asignacion.d.ts +2 -0
- package/dist/server/table-tem_asignacion.js +50 -0
- package/dist/server/table-tem_borradas.d.ts +2 -0
- package/dist/server/table-tem_borradas.js +35 -0
- package/dist/server/table-usuarios.d.ts +2 -0
- package/dist/server/table-usuarios.js +63 -0
- package/dist/server/table-visitas.d.ts +2 -0
- package/dist/server/table-visitas.js +91 -0
- package/dist/server/table-visitas_sup.d.ts +2 -0
- package/dist/server/table-visitas_sup.js +91 -0
- package/dist/server/table-viviendas.d.ts +2 -0
- package/dist/server/table-viviendas.js +299 -0
- package/dist/server/types-dmencu.d.ts +114 -0
- package/dist/server/types-dmencu.js +34 -0
- package/dist/server/unlogged/tipos.d.ts +93 -41
- package/dist/server/unlogged/tipos.js +1 -1
- package/dist/test/app-para-tests.d.ts +1117 -0
- package/dist/test/app-para-tests.js +95 -0
- package/dist/test/test-ayuda.d.ts +1 -0
- package/dist/test/test-ayuda.js +183 -0
- package/dist/test/test-caches-rea.d.ts +1 -0
- package/dist/test/test-caches-rea.js +243 -0
- package/dist/test/test-helpers-casilleros.d.ts +1 -0
- package/dist/test/test-helpers-casilleros.js +154 -0
- package/dist/test/test-helpers-formulario.d.ts +1 -0
- package/dist/test/test-helpers-formulario.js +95 -0
- package/dist/test/test-impacto-rea-no-rea-en-bd.d.ts +1 -0
- package/dist/test/test-impacto-rea-no-rea-en-bd.js +243 -0
- package/dist/test/test-menu-segun-rol.d.ts +1 -0
- package/dist/test/test-menu-segun-rol.js +170 -0
- package/dist/test/test-setters-rea-no-rea.d.ts +1 -0
- package/dist/test/test-setters-rea-no-rea.js +95 -0
- package/dist/test/test.d.ts +7 -0
- package/dist/test/test.js +9 -2
- package/dist/unlogged/helpers-casilleros.d.ts +1 -1
- package/dist/unlogged/helpers-casilleros.js +12 -18
- package/dist/unlogged/helpers-formulario.d.ts +16 -0
- package/dist/unlogged/helpers-formulario.js +88 -0
- package/dist/unlogged/tipos.d.ts +20 -2
- package/dist/unlogged/tipos.js +1 -1
- package/dist/unlogged/unlogged/abrir-formulario.js +1 -1
- package/dist/unlogged/unlogged/bypass-formulario.d.ts +6 -42
- package/dist/unlogged/unlogged/bypass-formulario.js +84 -219
- package/dist/unlogged/unlogged/css/formulario-react.styl +9 -0
- package/dist/unlogged/unlogged/helpers-casilleros.js +7 -14
- package/dist/unlogged/unlogged/helpers-formulario.d.ts +16 -0
- package/dist/unlogged/unlogged/helpers-formulario.js +88 -0
- package/dist/unlogged/unlogged/redux-formulario.d.ts +1 -2
- package/dist/unlogged/unlogged/redux-formulario.js +21 -31
- package/dist/unlogged/unlogged/render-config.d.ts +5 -1
- package/dist/unlogged/unlogged/render-config.js +14 -1
- package/dist/unlogged/unlogged/render-formulario.d.ts +3 -6
- package/dist/unlogged/unlogged/render-formulario.js +71 -69
- package/dist/unlogged/unlogged/render-formulario.tsx +100 -57
- package/dist/unlogged/unlogged/render-general.d.ts +2 -0
- package/dist/unlogged/unlogged/render-general.js +2 -1
- package/dist/unlogged/unlogged/render-general.tsx +2 -1
- package/dist/unlogged/unlogged/render-init.d.ts +1 -0
- package/dist/unlogged/unlogged/render-init.js +9 -2
- package/dist/unlogged/unlogged/tipos.d.ts +93 -41
- package/dist/unlogged/unlogged/tipos.js +1 -1
- package/dist/unlogged/unlogged/unlogged.js +15 -2
- package/install/accion_cumple_condicion.sql +1 -1
- package/install/generador_accion_cumple_condicion.sql +2 -2
- package/install/tarea_cumple_condicion.sql +1 -1
- package/install/xcalcular_resultado_trg.sql +1 -1
- package/package.json +24 -18
- package/dist/server/server/table-no_rea copy.js +0 -38
- package/dist/server/server/table-no_rea_sup copy.js +0 -36
- package/dist/unlogged/bypass-formulario.d.ts +0 -198
- package/dist/unlogged/bypass-formulario.js +0 -1226
- package/dist/unlogged/redux-formulario.d.ts +0 -440
- package/dist/unlogged/redux-formulario.js +0 -324
- package/dist/unlogged/render-config.d.ts +0 -52
- package/dist/unlogged/render-config.js +0 -161
- package/dist/unlogged/unlogged/bypass-formulario copy.d.ts +0 -198
- package/dist/unlogged/unlogged/bypass-formulario copy.js +0 -1226
- package/dist/unlogged/unlogged/helpers.d.ts +0 -14
- package/dist/unlogged/unlogged/helpers.js +0 -129
- /package/dist/server/{server/table-no_rea copy.d.ts → table-no_rea.d.ts} +0 -0
- /package/dist/server/{server/table-no_rea_sup copy.d.ts → table-no_rea_sup.d.ts} +0 -0
|
@@ -0,0 +1,170 @@
|
|
|
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", "mocha", "node:assert", "../server/app-dmencu", "./app-para-tests"], factory);
|
|
8
|
+
}
|
|
9
|
+
})(function (require, exports) {
|
|
10
|
+
"use strict";
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const mocha_1 = require("mocha");
|
|
13
|
+
const assert = require("node:assert");
|
|
14
|
+
const app_dmencu_1 = require("../server/app-dmencu");
|
|
15
|
+
const app_para_tests_1 = require("./app-para-tests");
|
|
16
|
+
const GABINETE = '';
|
|
17
|
+
const RELEVAMIENTO = 'web';
|
|
18
|
+
function nombres(menu) {
|
|
19
|
+
return menu.map(item => item.name);
|
|
20
|
+
}
|
|
21
|
+
function submenu(menu, nombre) {
|
|
22
|
+
var item = menu.find(item => item.name == nombre);
|
|
23
|
+
assert.ok(item, `falta el menú ${nombre}`);
|
|
24
|
+
return item.menuContent;
|
|
25
|
+
}
|
|
26
|
+
function menuDelRol(policy, rol, idper) {
|
|
27
|
+
var be = (0, app_para_tests_1.crearAppParaTests)(policy);
|
|
28
|
+
return be.getMenu((0, app_para_tests_1.contextoDelRol)(be, rol, idper)).menu;
|
|
29
|
+
}
|
|
30
|
+
(0, mocha_1.describe)('dmencu - menú según rol y policy', () => {
|
|
31
|
+
(0, mocha_1.describe)('getModoByPolicy', () => {
|
|
32
|
+
(0, mocha_1.it)('policy web es RELEVAMIENTO (dispositivos)', () => {
|
|
33
|
+
assert.strictEqual((0, app_dmencu_1.getModoByPolicy)((0, app_para_tests_1.crearAppParaTests)(RELEVAMIENTO)), 'RELEVAMIENTO');
|
|
34
|
+
});
|
|
35
|
+
(0, mocha_1.it)('cualquier otra policy es GABINETE', () => {
|
|
36
|
+
assert.strictEqual((0, app_dmencu_1.getModoByPolicy)((0, app_para_tests_1.crearAppParaTests)('')), 'GABINETE');
|
|
37
|
+
assert.strictEqual((0, app_dmencu_1.getModoByPolicy)((0, app_para_tests_1.crearAppParaTests)('otra')), 'GABINETE');
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
(0, mocha_1.describe)('permisosSegunUsuario (lo que getContext agrega al contexto)', () => {
|
|
41
|
+
const permisos = (0, app_para_tests_1.permisosDeInstalacion)();
|
|
42
|
+
const caches = Object.assign(Object.assign({}, permisos), { permisosRolSoloTrue: permisos.permisosRol });
|
|
43
|
+
(0, mocha_1.it)('sin usuario logueado no puede nada', () => {
|
|
44
|
+
assert.deepStrictEqual((0, app_dmencu_1.permisosSegunUsuario)(caches, undefined), { puede: permisos.permisosParaNadie });
|
|
45
|
+
});
|
|
46
|
+
(0, mocha_1.it)('un rol superuser (admin) es superuser y puede todo', () => {
|
|
47
|
+
assert.deepStrictEqual((0, app_dmencu_1.permisosSegunUsuario)(caches, { rol: 'admin' }), { superuser: true, puede: permisos.permisosSuperuser });
|
|
48
|
+
});
|
|
49
|
+
(0, mocha_1.it)('un rol común tiene los permisos de su rol y no es superuser', () => {
|
|
50
|
+
var _a, _b, _c, _d;
|
|
51
|
+
var resultado = (0, app_dmencu_1.permisosSegunUsuario)(caches, { rol: 'encuestador' });
|
|
52
|
+
assert.strictEqual(resultado.superuser, undefined);
|
|
53
|
+
assert.strictEqual((_b = (_a = resultado.puede) === null || _a === void 0 ? void 0 : _a.encuestas) === null || _b === void 0 ? void 0 : _b.relevar, true);
|
|
54
|
+
assert.strictEqual((_d = (_c = resultado.puede) === null || _c === void 0 ? void 0 : _c.campo) === null || _d === void 0 ? void 0 : _d.editar, false);
|
|
55
|
+
});
|
|
56
|
+
(0, mocha_1.it)('un rol que no existe no tiene permisos', () => {
|
|
57
|
+
assert.deepStrictEqual((0, app_dmencu_1.permisosSegunUsuario)(caches, { rol: 'inexistente' }), { puede: undefined });
|
|
58
|
+
});
|
|
59
|
+
(0, mocha_1.it)('los permisos para nadie tienen todas las acciones en false', () => {
|
|
60
|
+
var _a, _b, _c;
|
|
61
|
+
assert.strictEqual((_a = permisos.permisosParaNadie.encuestas) === null || _a === void 0 ? void 0 : _a.relevar, false);
|
|
62
|
+
assert.strictEqual((_b = permisos.permisosParaNadie.campo) === null || _b === void 0 ? void 0 : _b.administrar, false);
|
|
63
|
+
assert.strictEqual((_c = permisos.permisosParaNadie.casilleros_texto) === null || _c === void 0 ? void 0 : _c.editar, false);
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
(0, mocha_1.describe)('en RELEVAMIENTO (policy web)', () => {
|
|
67
|
+
(0, mocha_1.it)('quien releva (encuestador) ve hoja de ruta, sincronizar y cambiar modo', () => {
|
|
68
|
+
assert.deepStrictEqual(menuDelRol(RELEVAMIENTO, 'encuestador'), [
|
|
69
|
+
{ menuType: 'path', name: 'relevamiento', path: '/campo' },
|
|
70
|
+
{ menuType: 'sincronizar_dm', name: 'sincronizar' },
|
|
71
|
+
{ menuType: 'cambiar_modo_dm', name: 'cambiar_modo' },
|
|
72
|
+
]);
|
|
73
|
+
});
|
|
74
|
+
(0, mocha_1.it)('recuperador y supervisor también relevan', () => {
|
|
75
|
+
assert.deepStrictEqual(nombres(menuDelRol(RELEVAMIENTO, 'recuperador')), ['relevamiento', 'sincronizar', 'cambiar_modo']);
|
|
76
|
+
assert.deepStrictEqual(nombres(menuDelRol(RELEVAMIENTO, 'supervisor')), ['relevamiento', 'sincronizar', 'cambiar_modo']);
|
|
77
|
+
});
|
|
78
|
+
(0, mocha_1.it)('quien no releva no ve nada aunque tenga permisos de gabinete', () => {
|
|
79
|
+
assert.deepStrictEqual(menuDelRol(RELEVAMIENTO, 'recepcionista'), []);
|
|
80
|
+
assert.deepStrictEqual(menuDelRol(RELEVAMIENTO, 'coor_campo'), []);
|
|
81
|
+
assert.deepStrictEqual(menuDelRol(RELEVAMIENTO, 'dis_conceptual'), []);
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
(0, mocha_1.describe)('en GABINETE', () => {
|
|
85
|
+
(0, mocha_1.it)('el encuestador no ve nada (releva sólo en el dispositivo)', () => {
|
|
86
|
+
assert.deepStrictEqual(menuDelRol(GABINETE, 'encuestador'), []);
|
|
87
|
+
});
|
|
88
|
+
(0, mocha_1.it)('un rol sin permisos (auxiliar) no ve nada', () => {
|
|
89
|
+
assert.deepStrictEqual(menuDelRol(GABINETE, 'auxiliar'), []);
|
|
90
|
+
});
|
|
91
|
+
(0, mocha_1.it)('admin (superuser) ve todos los menús', () => {
|
|
92
|
+
var menu = menuDelRol(GABINETE, 'admin');
|
|
93
|
+
assert.deepStrictEqual(nombres(menu), [
|
|
94
|
+
'asignacion', 'recepcion', 'tareas_tem_fin_campo', 'tareas_tem_analisis_campo', 'supervision',
|
|
95
|
+
'varios', 'control', 'procesar', 'configurar', 'carto'
|
|
96
|
+
]);
|
|
97
|
+
assert.deepStrictEqual(nombres(submenu(menu, 'configurar')), [
|
|
98
|
+
'muestra', 'metadatos', 'estados_acciones_tareas', 'momentos_consistencia', 'parametros', 'modos_dm', 'usuarios'
|
|
99
|
+
]);
|
|
100
|
+
});
|
|
101
|
+
(0, mocha_1.it)('el coordinador de campo administra campo y procesa, pero no edita metadatos ni ve lo de superuser', () => {
|
|
102
|
+
var menu = menuDelRol(GABINETE, 'coor_campo');
|
|
103
|
+
assert.deepStrictEqual(nombres(menu), [
|
|
104
|
+
'asignacion', 'recepcion', 'tareas_tem_fin_campo', 'tareas_tem_analisis_campo', 'supervision',
|
|
105
|
+
'varios', 'control', 'procesar', 'configurar', 'carto'
|
|
106
|
+
]);
|
|
107
|
+
assert.deepStrictEqual(nombres(submenu(menu, 'configurar')), ['muestra', 'usuarios']);
|
|
108
|
+
assert.deepStrictEqual(nombres(submenu(menu, 'asignacion')), ['general', 'encuestador', 'ingresador', 'recuperador', 'supervisor']);
|
|
109
|
+
assert.deepStrictEqual(nombres(submenu(menu, 'recepcion')), ['encuestador', 'recuperador', 'ingresador', 'supervisor', 'mis_supervisores']);
|
|
110
|
+
assert.ok(nombres(submenu(menu, 'varios')).includes('operativo_migrar'));
|
|
111
|
+
assert.ok(nombres(submenu(menu, 'varios')).includes('intercambiar_encuestas'));
|
|
112
|
+
});
|
|
113
|
+
(0, mocha_1.it)('el subcoordinador administra campo pero no procesa', () => {
|
|
114
|
+
var menu = menuDelRol(GABINETE, 'subcoor_campo');
|
|
115
|
+
assert.deepStrictEqual(nombres(menu), [
|
|
116
|
+
'asignacion', 'recepcion', 'tareas_tem_fin_campo', 'tareas_tem_analisis_campo', 'supervision',
|
|
117
|
+
'varios', 'control', 'configurar', 'carto'
|
|
118
|
+
]);
|
|
119
|
+
assert.ok(!nombres(submenu(menu, 'varios')).includes('intercambiar_encuestas'));
|
|
120
|
+
});
|
|
121
|
+
(0, mocha_1.it)('procesamiento procesa pero no edita campo', () => {
|
|
122
|
+
var menu = menuDelRol(GABINETE, 'procesamiento');
|
|
123
|
+
assert.deepStrictEqual(nombres(menu), ['varios', 'control', 'procesar', 'configurar']);
|
|
124
|
+
assert.deepStrictEqual(nombres(submenu(menu, 'varios')), ['abrir_encuesta', 'intercambiar_encuestas']);
|
|
125
|
+
});
|
|
126
|
+
(0, mocha_1.it)('el ingresador edita campo sin administrar: asignación y recepción reducidas, sin control ni configuración', () => {
|
|
127
|
+
var menu = menuDelRol(GABINETE, 'ingresador');
|
|
128
|
+
assert.deepStrictEqual(nombres(menu), ['asignacion', 'recepcion', 'supervision', 'varios']);
|
|
129
|
+
assert.deepStrictEqual(nombres(submenu(menu, 'asignacion')), ['encuestador', 'ingresador', 'recuperador']);
|
|
130
|
+
assert.deepStrictEqual(nombres(submenu(menu, 'recepcion')), ['encuestador', 'recuperador', 'ingresador']);
|
|
131
|
+
assert.deepStrictEqual(nombres(submenu(menu, 'varios')), ['abrir_encuesta', 'hoja_ruta']);
|
|
132
|
+
});
|
|
133
|
+
(0, mocha_1.it)('diseño conceptual sólo edita metadatos (incluidas las tablas de rea/no rea)', () => {
|
|
134
|
+
var menu = menuDelRol(GABINETE, 'dis_conceptual');
|
|
135
|
+
assert.deepStrictEqual(nombres(menu), ['configurar']);
|
|
136
|
+
var metadatos = submenu(submenu(menu, 'configurar'), 'metadatos');
|
|
137
|
+
assert.deepStrictEqual(nombres(submenu(metadatos, 'rea/norea')), ['rea', 'no_rea', 'rea_sup', 'no_rea_sup']);
|
|
138
|
+
});
|
|
139
|
+
(0, mocha_1.it)('al recepcionista la asignación le filtra sus propias áreas', () => {
|
|
140
|
+
var asignacion = submenu(menuDelRol(GABINETE, 'recepcionista', 'REC7'), 'asignacion');
|
|
141
|
+
assert.deepStrictEqual(asignacion.map(item => item.ff), [
|
|
142
|
+
{ tarea: 'encu', recepcionista: 'REC7' },
|
|
143
|
+
{ tarea: 'ingr', recepcionista: 'REC7' },
|
|
144
|
+
{ tarea_actual: 'recu', tarea: 'recu', recepcionista: 'REC7' },
|
|
145
|
+
]);
|
|
146
|
+
});
|
|
147
|
+
(0, mocha_1.it)('a los demás roles la asignación no les filtra por recepcionista', () => {
|
|
148
|
+
var asignacion = submenu(menuDelRol(GABINETE, 'ingresador'), 'asignacion');
|
|
149
|
+
assert.deepStrictEqual(asignacion.map(item => item.ff), [
|
|
150
|
+
{ tarea: 'encu' },
|
|
151
|
+
{ tarea: 'ingr' },
|
|
152
|
+
{ tarea_actual: 'recu', tarea: 'recu' },
|
|
153
|
+
]);
|
|
154
|
+
});
|
|
155
|
+
(0, mocha_1.it)('la supervisión muestra las encuestas asignadas al usuario', () => {
|
|
156
|
+
var supervision = submenu(menuDelRol(GABINETE, 'ingresador', 'ING3'), 'supervision');
|
|
157
|
+
assert.deepStrictEqual(supervision, [
|
|
158
|
+
{ menuType: 'table', name: 'supervisar', table: 'tareas_tem_ingreso', ff: { tarea: 'supe', asignado: 'ING3' } }
|
|
159
|
+
]);
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
(0, mocha_1.describe)('getMenu sin context', () => {
|
|
163
|
+
(0, mocha_1.it)('lanza un error claro', () => {
|
|
164
|
+
var be = (0, app_para_tests_1.crearAppParaTests)(GABINETE);
|
|
165
|
+
assert.throws(() => be.getMenu(), /requiere el context/);
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1tZW51LXNlZ3VuLXJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L3Rlc3QtbWVudS1zZWd1bi1yb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFBQSxpQ0FBcUM7SUFFckMsc0NBQXVDO0lBRXZDLHFEQUE2RTtJQUU3RSxxREFBNEY7SUFFNUYsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3BCLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQztJQUUzQixTQUFTLE9BQU8sQ0FBQyxJQUFvQjtRQUNqQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFNBQVMsT0FBTyxDQUFDLElBQW9CLEVBQUUsTUFBYztRQUNqRCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsQ0FBQztRQUNsRCxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxpQkFBaUIsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUMzQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVELFNBQVMsVUFBVSxDQUFDLE1BQWMsRUFBRSxHQUFXLEVBQUUsS0FBYztRQUMzRCxJQUFJLEVBQUUsR0FBRyxJQUFBLGtDQUFpQixFQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFBLCtCQUFjLEVBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMzRCxDQUFDO0lBRUQsSUFBQSxnQkFBUSxFQUFDLGtDQUFrQyxFQUFFLEdBQUcsRUFBRTtRQUU5QyxJQUFBLGdCQUFRLEVBQUMsaUJBQWlCLEVBQUUsR0FBRyxF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QUFHLEVBQUU7Z0JBQ2pFLElBQUksV0FBVyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztnQkFDckYsTUFBTSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUU7b0JBQ2hDLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRTtpQkFDbEgsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUEsZ0JBQVEsRUFBQyxxQkFBcUIsRUFBRSxHQUFHLEVBQUU7WUFDakMsSUFBQSxVQUFFLEVBQUMsc0JBQXNCLEVBQUUsR0FBRyxFQUFFO2dCQUM1QixJQUFJLEVBQUUsR0FBRyxJQUFBLGtDQUFpQixFQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNyQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1lBQzdELENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlc2NyaWJlLCBpdCB9IGZyb20gJ21vY2hhJztcblxuaW1wb3J0IGFzc2VydCA9IHJlcXVpcmUoJ25vZGU6YXNzZXJ0Jyk7XG5cbmltcG9ydCB7IGdldE1vZG9CeVBvbGljeSwgcGVybWlzb3NTZWd1blVzdWFyaW8gfSBmcm9tICcuLi9zZXJ2ZXIvYXBwLWRtZW5jdSc7XG5pbXBvcnQgdHlwZSB7IE1lbnVJbmZvQmFzZSB9IGZyb20gJy4uL3NlcnZlci90eXBlcy1kbWVuY3UnO1xuaW1wb3J0IHsgY29udGV4dG9EZWxSb2wsIGNyZWFyQXBwUGFyYVRlc3RzLCBwZXJtaXNvc0RlSW5zdGFsYWNpb24gfSBmcm9tICcuL2FwcC1wYXJhLXRlc3RzJztcblxuY29uc3QgR0FCSU5FVEUgPSAnJztcbmNvbnN0IFJFTEVWQU1JRU5UTyA9ICd3ZWInO1xuXG5mdW5jdGlvbiBub21icmVzKG1lbnU6IE1lbnVJbmZvQmFzZVtdKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBtZW51Lm1hcChpdGVtID0+IGl0ZW0ubmFtZSk7XG59XG5cbmZ1bmN0aW9uIHN1Ym1lbnUobWVudTogTWVudUluZm9CYXNlW10sIG5vbWJyZTogc3RyaW5nKTogTWVudUluZm9CYXNlW10ge1xuICAgIHZhciBpdGVtID0gbWVudS5maW5kKGl0ZW0gPT4gaXRlbS5uYW1lID09IG5vbWJyZSk7XG4gICAgYXNzZXJ0Lm9rKGl0ZW0sIGBmYWx0YSBlbCBtZW7DuiAke25vbWJyZX1gKTtcbiAgICByZXR1cm4gaXRlbS5tZW51Q29udGVudDtcbn1cblxuZnVuY3Rpb24gbWVudURlbFJvbChwb2xpY3k6IHN0cmluZywgcm9sOiBzdHJpbmcsIGlkcGVyPzogc3RyaW5nKTogTWVudUluZm9CYXNlW10ge1xuICAgIHZhciBiZSA9IGNyZWFyQXBwUGFyYVRlc3RzKHBvbGljeSk7XG4gICAgcmV0dXJuIGJlLmdldE1lbnUoY29udGV4dG9EZWxSb2woYmUsIHJvbCwgaWRwZXIpKS5tZW51O1xufVxuXG5kZXNjcmliZSgnZG1lbmN1IC0gbWVuw7ogc2Vnw7puIHJvbCB5IHBvbGljeScsICgpID0+IHtcblxuICAgIGRlc2NyaWJlKCdnZXRNb2RvQnlQb2xpY3knLCAoKSA9PiB7XG4gICAgICAgIGl0KCdwb2xpY3kgd2ViIGVzIFJFTEVWQU1JRU5UTyAoZGlzcG9zaXRpdm9zKScsICgpID0+IHtcbiAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChnZXRNb2RvQnlQb2xpY3koY3JlYXJBcHBQYXJhVGVzdHMoUkVMRVZBTUlFTlRPKSksICdSRUxFVkFNSUVOVE8nKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KCdjdWFscXVpZXIgb3RyYSBwb2xpY3kgZXMgR0FCSU5FVEUnLCAoKSA9PiB7XG4gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ2V0TW9kb0J5UG9saWN5KGNyZWFyQXBwUGFyYVRlc3RzKCcnKSksICdHQUJJTkVURScpO1xuICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdldE1vZG9CeVBvbGljeShjcmVhckFwcFBhcmFUZXN0cygnb3RyYScpKSwgJ0dBQklORVRFJyk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ3Blcm1pc29zU2VndW5Vc3VhcmlvIChsbyBxdWUgZ2V0Q29udGV4dCBhZ3JlZ2EgYWwgY29udGV4dG8pJywgKCkgPT4ge1xuICAgICAgICBjb25zdCBwZXJtaXNvcyA9IHBlcm1pc29zRGVJbnN0YWxhY2lvbigpO1xuICAgICAgICBjb25zdCBjYWNoZXMgPSB7IC4uLnBlcm1pc29zLCBwZXJtaXNvc1JvbFNvbG9UcnVlOiBwZXJtaXNvcy5wZXJtaXNvc1JvbCB9O1xuICAgICAgICBpdCgnc2luIHVzdWFyaW8gbG9ndWVhZG8gbm8gcHVlZGUgbmFkYScsICgpID0+IHtcbiAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGVybWlzb3NTZWd1blVzdWFyaW8oY2FjaGVzLCB1bmRlZmluZWQpLCB7IHB1ZWRlOiBwZXJtaXNvcy5wZXJtaXNvc1BhcmFOYWRpZSB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KCd1biByb2wgc3VwZXJ1c2VyIChhZG1pbikgZXMgc3VwZXJ1c2VyIHkgcHVlZGUgdG9kbycsICgpID0+IHtcbiAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGVybWlzb3NTZWd1blVzdWFyaW8oY2FjaGVzLCB7IHJvbDogJ2FkbWluJyB9KSwgeyBzdXBlcnVzZXI6IHRydWUsIHB1ZWRlOiBwZXJtaXNvcy5wZXJtaXNvc1N1cGVydXNlciB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KCd1biByb2wgY29tw7puIHRpZW5lIGxvcyBwZXJtaXNvcyBkZSBzdSByb2wgeSBubyBlcyBzdXBlcnVzZXInLCAoKSA9PiB7XG4gICAgICAgICAgICB2YXIgcmVzdWx0YWRvID0gcGVybWlzb3NTZWd1blVzdWFyaW8oY2FjaGVzLCB7IHJvbDogJ2VuY3Vlc3RhZG9yJyB9KTtcbiAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRhZG8uc3VwZXJ1c2VyLCB1bmRlZmluZWQpO1xuICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdGFkby5wdWVkZT8uZW5jdWVzdGFzPy5yZWxldmFyLCB0cnVlKTtcbiAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRhZG8ucHVlZGU/LmNhbXBvPy5lZGl0YXIsIGZhbHNlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KCd1biByb2wgcXVlIG5vIGV4aXN0ZSBubyB0aWVuZSBwZXJtaXNvcycsICgpID0+IHtcbiAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGVybWlzb3NTZWd1blVzdWFyaW8oY2FjaGVzLCB7IHJvbDogJ2luZXhpc3RlbnRlJyB9KSwgeyBwdWVkZTogdW5kZWZpbmVkIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoJ2xvcyBwZXJtaXNvcyBwYXJhIG5hZGllIHRpZW5lbiB0b2RhcyBsYXMgYWNjaW9uZXMgZW4gZmFsc2UnLCAoKSA9PiB7XG4gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGVybWlzb3MucGVybWlzb3NQYXJhTmFkaWUuZW5jdWVzdGFzPy5yZWxldmFyLCBmYWxzZSk7XG4gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGVybWlzb3MucGVybWlzb3NQYXJhTmFkaWUuY2FtcG8/LmFkbWluaXN0cmFyLCBmYWxzZSk7XG4gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGVybWlzb3MucGVybWlzb3NQYXJhTmFkaWUuY2FzaWxsZXJvc190ZXh0bz8uZWRpdGFyLCBmYWxzZSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ2VuIFJFTEVWQU1JRU5UTyAocG9saWN5IHdlYiknLCAoKSA9PiB7XG4gICAgICAgIGl0KCdxdWllbiByZWxldmEgKGVuY3Vlc3RhZG9yKSB2ZSBob2phIGRlIHJ1dGEsIHNpbmNyb25pemFyIHkgY2FtYmlhciBtb2RvJywgKCkgPT4ge1xuICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChtZW51RGVsUm9sKFJFTEVWQU1JRU5UTywgJ2VuY3Vlc3RhZG9yJyksIFtcbiAgICAgICAgICAgICAgICB7IG1lbnVUeXBlOiAncGF0aCcsIG5hbWU6ICdyZWxldmFtaWVudG8nLCBwYXRoOiAnL2NhbXBvJyB9LFxuICAgICAgICAgICAgICAgIHsgbWVudVR5cGU6ICdzaW5jcm9uaXphcl9kbScsIG5hbWU6ICdzaW5jcm9uaXphcicgfSxcbiAgICAgICAgICAgICAgICB7IG1lbnVUeXBlOiAnY2FtYmlhcl9tb2RvX2RtJywgbmFtZTogJ2NhbWJpYXJfbW9kbycgfSxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoJ3JlY3VwZXJhZG9yIHkgc3VwZXJ2aXNvciB0YW1iacOpbiByZWxldmFuJywgKCkgPT4ge1xuICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChub21icmVzKG1lbnVEZWxSb2woUkVMRVZBTUlFTlRPLCAncmVjdXBlcmFkb3InKSksIFsncmVsZXZhbWllbnRvJywgJ3NpbmNyb25pemFyJywgJ2NhbWJpYXJfbW9kbyddKTtcbiAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwobm9tYnJlcyhtZW51RGVsUm9sKFJFTEVWQU1JRU5UTywgJ3N1cGVydmlzb3InKSksIFsncmVsZXZhbWllbnRvJywgJ3NpbmNyb25pemFyJywgJ2NhbWJpYXJfbW9kbyddKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KCdxdWllbiBubyByZWxldmEgbm8gdmUgbmFkYSBhdW5xdWUgdGVuZ2EgcGVybWlzb3MgZGUgZ2FiaW5ldGUnLCAoKSA9PiB7XG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG1lbnVEZWxSb2woUkVMRVZBTUlFTlRPLCAncmVjZXBjaW9uaXN0YScpLCBbXSk7XG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG1lbnVEZWxSb2woUkVMRVZBTUlFTlRPLCAnY29vcl9jYW1wbycpLCBbXSk7XG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG1lbnVEZWxSb2woUkVMRVZBTUlFTlRPLCAnZGlzX2NvbmNlcHR1YWwnKSwgW10pO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdlbiBHQUJJTkVURScsICgpID0+IHtcbiAgICAgICAgaXQoJ2VsIGVuY3Vlc3RhZG9yIG5vIHZlIG5hZGEgKHJlbGV2YSBzw7NsbyBlbiBlbCBkaXNwb3NpdGl2byknLCAoKSA9PiB7XG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG1lbnVEZWxSb2woR0FCSU5FVEUsICdlbmN1ZXN0YWRvcicpLCBbXSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdCgndW4gcm9sIHNpbiBwZXJtaXNvcyAoYXV4aWxpYXIpIG5vIHZlIG5hZGEnLCAoKSA9PiB7XG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG1lbnVEZWxSb2woR0FCSU5FVEUsICdhdXhpbGlhcicpLCBbXSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdCgnYWRtaW4gKHN1cGVydXNlcikgdmUgdG9kb3MgbG9zIG1lbsO6cycsICgpID0+IHtcbiAgICAgICAgICAgIHZhciBtZW51ID0gbWVudURlbFJvbChHQUJJTkVURSwgJ2FkbWluJyk7XG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG5vbWJyZXMobWVudSksIFtcbiAgICAgICAgICAgICAgICAnYXNpZ25hY2lvbicsICdyZWNlcGNpb24nLCAndGFyZWFzX3RlbV9maW5fY2FtcG8nLCAndGFyZWFzX3RlbV9hbmFsaXNpc19jYW1wbycsICdzdXBlcnZpc2lvbicsXG4gICAgICAgICAgICAgICAgJ3ZhcmlvcycsICdjb250cm9sJywgJ3Byb2Nlc2FyJywgJ2NvbmZpZ3VyYXInLCAnY2FydG8nXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwobm9tYnJlcyhzdWJtZW51KG1lbnUsICdjb25maWd1cmFyJykpLCBbXG4gICAgICAgICAgICAgICAgJ211ZXN0cmEnLCAnbWV0YWRhdG9zJywgJ2VzdGFkb3NfYWNjaW9uZXNfdGFyZWFzJywgJ21vbWVudG9zX2NvbnNpc3RlbmNpYScsICdwYXJhbWV0cm9zJywgJ21vZG9zX2RtJywgJ3VzdWFyaW9zJ1xuICAgICAgICAgICAgXSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdCgnZWwgY29vcmRpbmFkb3IgZGUgY2FtcG8gYWRtaW5pc3RyYSBjYW1wbyB5IHByb2Nlc2EsIHBlcm8gbm8gZWRpdGEgbWV0YWRhdG9zIG5pIHZlIGxvIGRlIHN1cGVydXNlcicsICgpID0+IHtcbiAgICAgICAgICAgIHZhciBtZW51ID0gbWVudURlbFJvbChHQUJJTkVURSwgJ2Nvb3JfY2FtcG8nKTtcbiAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwobm9tYnJlcyhtZW51KSwgW1xuICAgICAgICAgICAgICAgICdhc2lnbmFjaW9uJywgJ3JlY2VwY2lvbicsICd0YXJlYXNfdGVtX2Zpbl9jYW1wbycsICd0YXJlYXNfdGVtX2FuYWxpc2lzX2NhbXBvJywgJ3N1cGVydmlzaW9uJyxcbiAgICAgICAgICAgICAgICAndmFyaW9zJywgJ2NvbnRyb2wnLCAncHJvY2VzYXInLCAnY29uZmlndXJhcicsICdjYXJ0bydcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChub21icmVzKHN1Ym1lbnUobWVudSwgJ2NvbmZpZ3VyYXInKSksIFsnbXVlc3RyYScsICd1c3VhcmlvcyddKTtcbiAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwobm9tYnJlcyhzdWJtZW51KG1lbnUsICdhc2lnbmFjaW9uJykpLCBbJ2dlbmVyYWwnLCAnZW5jdWVzdGFkb3InLCAnaW5ncmVzYWRvcicsICdyZWN1cGVyYWRvcicsICdzdXBlcnZpc29yJ10pO1xuICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChub21icmVzKHN1Ym1lbnUobWVudSwgJ3JlY2VwY2lvbicpKSwgWydlbmN1ZXN0YWRvcicsICdyZWN1cGVyYWRvcicsICdpbmdyZXNhZG9yJywgJ3N1cGVydmlzb3InLCAnbWlzX3N1cGVydmlzb3JlcyddKTtcbiAgICAgICAgICAgIGFzc2VydC5vayhub21icmVzKHN1Ym1lbnUobWVudSwgJ3ZhcmlvcycpKS5pbmNsdWRlcygnb3BlcmF0aXZvX21pZ3JhcicpKTtcbiAgICAgICAgICAgIGFzc2VydC5vayhub21icmVzKHN1Ym1lbnUobWVudSwgJ3ZhcmlvcycpKS5pbmNsdWRlcygnaW50ZXJjYW1iaWFyX2VuY3Vlc3RhcycpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KCdlbCBzdWJjb29yZGluYWRvciBhZG1pbmlzdHJhIGNhbXBvIHBlcm8gbm8gcHJvY2VzYScsICgpID0+IHtcbiAgICAgICAgICAgIHZhciBtZW51ID0gbWVudURlbFJvbChHQUJJTkVURSwgJ3N1YmNvb3JfY2FtcG8nKTtcbiAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwobm9tYnJlcyhtZW51KSwgW1xuICAgICAgICAgICAgICAgICdhc2lnbmFjaW9uJywgJ3JlY2VwY2lvbicsICd0YXJlYXNfdGVtX2Zpbl9jYW1wbycsICd0YXJlYXNfdGVtX2FuYWxpc2lzX2NhbXBvJywgJ3N1cGVydmlzaW9uJyxcbiAgICAgICAgICAgICAgICAndmFyaW9zJywgJ2NvbnRyb2wnLCAnY29uZmlndXJhcicsICdjYXJ0bydcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgYXNzZXJ0Lm9rKCFub21icmVzKHN1Ym1lbnUobWVudSwgJ3ZhcmlvcycpKS5pbmNsdWRlcygnaW50ZXJjYW1iaWFyX2VuY3Vlc3RhcycpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KCdwcm9jZXNhbWllbnRvIHByb2Nlc2EgcGVybyBubyBlZGl0YSBjYW1wbycsICgpID0+IHtcbiAgICAgICAgICAgIHZhciBtZW51ID0gbWVudURlbFJvbChHQUJJTkVURSwgJ3Byb2Nlc2FtaWVudG8nKTtcbiAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwobm9tYnJlcyhtZW51KSwgWyd2YXJpb3MnLCAnY29udHJvbCcsICdwcm9jZXNhcicsICdjb25maWd1cmFyJ10pO1xuICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChub21icmVzKHN1Ym1lbnUobWVudSwgJ3ZhcmlvcycpKSwgWydhYnJpcl9lbmN1ZXN0YScsICdpbnRlcmNhbWJpYXJfZW5jdWVzdGFzJ10pO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoJ2VsIGluZ3Jlc2Fkb3IgZWRpdGEgY2FtcG8gc2luIGFkbWluaXN0cmFyOiBhc2lnbmFjacOzbiB5IHJlY2VwY2nDs24gcmVkdWNpZGFzLCBzaW4gY29udHJvbCBuaSBjb25maWd1cmFjacOzbicsICgpID0+IHtcbiAgICAgICAgICAgIHZhciBtZW51ID0gbWVudURlbFJvbChHQUJJTkVURSwgJ2luZ3Jlc2Fkb3InKTtcbiAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwobm9tYnJlcyhtZW51KSwgWydhc2lnbmFjaW9uJywgJ3JlY2VwY2lvbicsICdzdXBlcnZpc2lvbicsICd2YXJpb3MnXSk7XG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG5vbWJyZXMoc3VibWVudShtZW51LCAnYXNpZ25hY2lvbicpKSwgWydlbmN1ZXN0YWRvcicsICdpbmdyZXNhZG9yJywgJ3JlY3VwZXJhZG9yJ10pO1xuICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChub21icmVzKHN1Ym1lbnUobWVudSwgJ3JlY2VwY2lvbicpKSwgWydlbmN1ZXN0YWRvcicsICdyZWN1cGVyYWRvcicsICdpbmdyZXNhZG9yJ10pO1xuICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChub21icmVzKHN1Ym1lbnUobWVudSwgJ3ZhcmlvcycpKSwgWydhYnJpcl9lbmN1ZXN0YScsICdob2phX3J1dGEnXSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdCgnZGlzZcOxbyBjb25jZXB0dWFsIHPDs2xvIGVkaXRhIG1ldGFkYXRvcyAoaW5jbHVpZGFzIGxhcyB0YWJsYXMgZGUgcmVhL25vIHJlYSknLCAoKSA9PiB7XG4gICAgICAgICAgICB2YXIgbWVudSA9IG1lbnVEZWxSb2woR0FCSU5FVEUsICdkaXNfY29uY2VwdHVhbCcpO1xuICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChub21icmVzKG1lbnUpLCBbJ2NvbmZpZ3VyYXInXSk7XG4gICAgICAgICAgICB2YXIgbWV0YWRhdG9zID0gc3VibWVudShzdWJtZW51KG1lbnUsICdjb25maWd1cmFyJyksICdtZXRhZGF0b3MnKTtcbiAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwobm9tYnJlcyhzdWJtZW51KG1ldGFkYXRvcywgJ3JlYS9ub3JlYScpKSwgWydyZWEnLCAnbm9fcmVhJywgJ3JlYV9zdXAnLCAnbm9fcmVhX3N1cCddKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KCdhbCByZWNlcGNpb25pc3RhIGxhIGFzaWduYWNpw7NuIGxlIGZpbHRyYSBzdXMgcHJvcGlhcyDDoXJlYXMnLCAoKSA9PiB7XG4gICAgICAgICAgICB2YXIgYXNpZ25hY2lvbiA9IHN1Ym1lbnUobWVudURlbFJvbChHQUJJTkVURSwgJ3JlY2VwY2lvbmlzdGEnLCAnUkVDNycpLCAnYXNpZ25hY2lvbicpO1xuICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChhc2lnbmFjaW9uLm1hcChpdGVtID0+IGl0ZW0uZmYpLCBbXG4gICAgICAgICAgICAgICAgeyB0YXJlYTogJ2VuY3UnLCByZWNlcGNpb25pc3RhOiAnUkVDNycgfSxcbiAgICAgICAgICAgICAgICB7IHRhcmVhOiAnaW5ncicsIHJlY2VwY2lvbmlzdGE6ICdSRUM3JyB9LFxuICAgICAgICAgICAgICAgIHsgdGFyZWFfYWN0dWFsOiAncmVjdScsIHRhcmVhOiAncmVjdScsIHJlY2VwY2lvbmlzdGE6ICdSRUM3JyB9LFxuICAgICAgICAgICAgXSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdCgnYSBsb3MgZGVtw6FzIHJvbGVzIGxhIGFzaWduYWNpw7NuIG5vIGxlcyBmaWx0cmEgcG9yIHJlY2VwY2lvbmlzdGEnLCAoKSA9PiB7XG4gICAgICAgICAgICB2YXIgYXNpZ25hY2lvbiA9IHN1Ym1lbnUobWVudURlbFJvbChHQUJJTkVURSwgJ2luZ3Jlc2Fkb3InKSwgJ2FzaWduYWNpb24nKTtcbiAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYXNpZ25hY2lvbi5tYXAoaXRlbSA9PiBpdGVtLmZmKSwgW1xuICAgICAgICAgICAgICAgIHsgdGFyZWE6ICdlbmN1JyB9LFxuICAgICAgICAgICAgICAgIHsgdGFyZWE6ICdpbmdyJyB9LFxuICAgICAgICAgICAgICAgIHsgdGFyZWFfYWN0dWFsOiAncmVjdScsIHRhcmVhOiAncmVjdScgfSxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoJ2xhIHN1cGVydmlzacOzbiBtdWVzdHJhIGxhcyBlbmN1ZXN0YXMgYXNpZ25hZGFzIGFsIHVzdWFyaW8nLCAoKSA9PiB7XG4gICAgICAgICAgICB2YXIgc3VwZXJ2aXNpb24gPSBzdWJtZW51KG1lbnVEZWxSb2woR0FCSU5FVEUsICdpbmdyZXNhZG9yJywgJ0lORzMnKSwgJ3N1cGVydmlzaW9uJyk7XG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHN1cGVydmlzaW9uLCBbXG4gICAgICAgICAgICAgICAgeyBtZW51VHlwZTogJ3RhYmxlJywgbmFtZTogJ3N1cGVydmlzYXInLCB0YWJsZTogJ3RhcmVhc190ZW1faW5ncmVzbycsIGZmOiB7IHRhcmVhOiAnc3VwZScsIGFzaWduYWRvOiAnSU5HMycgfSB9XG4gICAgICAgICAgICBdKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnZ2V0TWVudSBzaW4gY29udGV4dCcsICgpID0+IHtcbiAgICAgICAgaXQoJ2xhbnphIHVuIGVycm9yIGNsYXJvJywgKCkgPT4ge1xuICAgICAgICAgICAgdmFyIGJlID0gY3JlYXJBcHBQYXJhVGVzdHMoR0FCSU5FVEUpO1xuICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiBiZS5nZXRNZW51KCksIC9yZXF1aWVyZSBlbCBjb250ZXh0Lyk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xufSk7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,95 @@
|
|
|
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", "mocha", "node:assert", "../server/setters-rea-no-rea"], factory);
|
|
8
|
+
}
|
|
9
|
+
})(function (require, exports) {
|
|
10
|
+
"use strict";
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const mocha_1 = require("mocha");
|
|
13
|
+
const assert = require("node:assert");
|
|
14
|
+
const setters_rea_no_rea_1 = require("../server/setters-rea-no-rea");
|
|
15
|
+
const respuestas = {
|
|
16
|
+
resumenEstado: 'ok',
|
|
17
|
+
codNoRea: null,
|
|
18
|
+
codRea: 1,
|
|
19
|
+
resumenEstadoSup: 'no rea',
|
|
20
|
+
codNoReaSup: 71,
|
|
21
|
+
codReaSup: null,
|
|
22
|
+
};
|
|
23
|
+
(0, mocha_1.describe)('dmencu - getSettersAndParametersForReaNoReaResumenEstado', () => {
|
|
24
|
+
(0, mocha_1.it)('para tareas_tem usa prefijo dm_ y numera los parámetros a continuación de los recibidos', () => {
|
|
25
|
+
const { setters, params } = (0, setters_rea_no_rea_1.getSettersAndParametersForReaNoReaResumenEstado)({
|
|
26
|
+
tarea: 'encu',
|
|
27
|
+
respuestasUAPrincipal: respuestas,
|
|
28
|
+
setters: [`estado = 'D'`, `cargado_dm=null`],
|
|
29
|
+
params: ['op1', 1001, 'encu', 'token-x'],
|
|
30
|
+
destino: 'tareas_tem'
|
|
31
|
+
});
|
|
32
|
+
assert.deepStrictEqual(setters, [
|
|
33
|
+
`estado = 'D'`,
|
|
34
|
+
`cargado_dm=null`,
|
|
35
|
+
'dm_resumen_estado=$5',
|
|
36
|
+
'dm_norea=$6',
|
|
37
|
+
'dm_rea=$7',
|
|
38
|
+
]);
|
|
39
|
+
assert.deepStrictEqual(params, ['op1', 1001, 'encu', 'token-x', 'ok', null, 1]);
|
|
40
|
+
});
|
|
41
|
+
(0, mocha_1.it)('para tem no usa prefijo', () => {
|
|
42
|
+
const { setters } = (0, setters_rea_no_rea_1.getSettersAndParametersForReaNoReaResumenEstado)({
|
|
43
|
+
tarea: 'encu',
|
|
44
|
+
respuestasUAPrincipal: respuestas,
|
|
45
|
+
setters: [],
|
|
46
|
+
params: ['op1', 1001],
|
|
47
|
+
destino: 'tem'
|
|
48
|
+
});
|
|
49
|
+
assert.deepStrictEqual(setters, ['resumen_estado=$3', 'norea=$4', 'rea=$5']);
|
|
50
|
+
});
|
|
51
|
+
(0, mocha_1.it)('para la tarea supe usa las columnas y los valores _sup', () => {
|
|
52
|
+
const { setters, params } = (0, setters_rea_no_rea_1.getSettersAndParametersForReaNoReaResumenEstado)({
|
|
53
|
+
tarea: 'supe',
|
|
54
|
+
respuestasUAPrincipal: respuestas,
|
|
55
|
+
setters: ['json_encuesta = $3'],
|
|
56
|
+
params: ['op1', 1001, '{}'],
|
|
57
|
+
destino: 'tareas_tem'
|
|
58
|
+
});
|
|
59
|
+
assert.deepStrictEqual(setters, [
|
|
60
|
+
'json_encuesta = $3',
|
|
61
|
+
'dm_resumen_estado_sup=$4',
|
|
62
|
+
'dm_norea_sup=$5',
|
|
63
|
+
'dm_rea_sup=$6',
|
|
64
|
+
]);
|
|
65
|
+
assert.deepStrictEqual(params, ['op1', 1001, '{}', 'no rea', 71, null]);
|
|
66
|
+
});
|
|
67
|
+
(0, mocha_1.it)('cada $n de los setters apunta al valor correcto en params', () => {
|
|
68
|
+
const { setters, params } = (0, setters_rea_no_rea_1.getSettersAndParametersForReaNoReaResumenEstado)({
|
|
69
|
+
tarea: 'encu',
|
|
70
|
+
respuestasUAPrincipal: respuestas,
|
|
71
|
+
setters: [],
|
|
72
|
+
params: ['a', 'b', 'c'],
|
|
73
|
+
destino: 'tareas_tem'
|
|
74
|
+
});
|
|
75
|
+
const valorDe = (setter) => params[Number(setter.split('=$')[1]) - 1];
|
|
76
|
+
assert.strictEqual(valorDe(setters[0]), 'ok');
|
|
77
|
+
assert.strictEqual(valorDe(setters[1]), null);
|
|
78
|
+
assert.strictEqual(valorDe(setters[2]), 1);
|
|
79
|
+
});
|
|
80
|
+
(0, mocha_1.it)('no modifica los arrays recibidos', () => {
|
|
81
|
+
const settersEntrada = ['x = $1'];
|
|
82
|
+
const paramsEntrada = ['v'];
|
|
83
|
+
(0, setters_rea_no_rea_1.getSettersAndParametersForReaNoReaResumenEstado)({
|
|
84
|
+
tarea: 'encu',
|
|
85
|
+
respuestasUAPrincipal: respuestas,
|
|
86
|
+
setters: settersEntrada,
|
|
87
|
+
params: paramsEntrada,
|
|
88
|
+
destino: 'tem'
|
|
89
|
+
});
|
|
90
|
+
assert.deepStrictEqual(settersEntrada, ['x = $1']);
|
|
91
|
+
assert.deepStrictEqual(paramsEntrada, ['v']);
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1zZXR0ZXJzLXJlYS1uby1yZWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC90ZXN0LXNldHRlcnMtcmVhLW5vLXJlYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQUFBLGlDQUFxQztJQUVyQyxzQ0FBdUM7SUFFdkMscUVBQStGO0lBRy9GLE1BQU0sVUFBVSxHQUFxQjtRQUNqQyxhQUFhLEVBQUUsSUFBSTtRQUNuQixRQUFRLEVBQUUsSUFBSTtRQUNkLE1BQU0sRUFBRSxDQUFDO1FBQ1QsZ0JBQWdCLEVBQUUsUUFBUTtRQUMxQixXQUFXLEVBQUUsRUFBRTtRQUNmLFNBQVMsRUFBRSxJQUFJO0tBQ2xCLENBQUM7SUFFRixJQUFBLGdCQUFRLEVBQUMsMERBQTBELEVBQUUsR0FBRyxFQUFFO1FBRXRFLElBQUEsVUFBRSxFQUFDLHlGQUF5RixFQUFFLEdBQUcsRUFBRTtZQUMvRixNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUEsb0VBQStDLEVBQUM7Z0JBQ3hFLEtBQUssRUFBRSxNQUFNO2dCQUNiLHFCQUFxQixFQUFFLFVBQVU7Z0JBQ2pDLE9BQU8sRUFBRSxDQUFDLGNBQWMsRUFBRSxpQkFBaUIsQ0FBQztnQkFDNUMsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDO2dCQUN4QyxPQUFPLEVBQUUsWUFBWTthQUN4QixDQUFDLENBQUM7WUFDSCxNQUFNLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRTtnQkFDNUIsY0FBYztnQkFDZCxpQkFBaUI7Z0JBQ2pCLHNCQUFzQjtnQkFDdEIsYUFBYTtnQkFDYixXQUFXO2FBQ2QsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFD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Q0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLGVBQWUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ25ELE1BQU0sQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVzY3JpYmUsIGl0IH0gZnJvbSAnbW9jaGEnO1xuXG5pbXBvcnQgYXNzZXJ0ID0gcmVxdWlyZSgnbm9kZTphc3NlcnQnKTtcblxuaW1wb3J0IHsgZ2V0U2V0dGVyc0FuZFBhcmFtZXRlcnNGb3JSZWFOb1JlYVJlc3VtZW5Fc3RhZG8gfSBmcm9tICcuLi9zZXJ2ZXIvc2V0dGVycy1yZWEtbm8tcmVhJztcbmltcG9ydCB0eXBlIHsgUmVzdWx0YWRvUmVzdW1lbiB9IGZyb20gJy4uL3VubG9nZ2VkL3RpcG9zJztcblxuY29uc3QgcmVzcHVlc3RhczogUmVzdWx0YWRvUmVzdW1lbiA9IHtcbiAgICByZXN1bWVuRXN0YWRvOiAnb2snLFxuICAgIGNvZE5vUmVhOiBudWxsLFxuICAgIGNvZFJlYTogMSxcbiAgICByZXN1bWVuRXN0YWRvU3VwOiAnbm8gcmVhJyxcbiAgICBjb2ROb1JlYVN1cDogNzEsXG4gICAgY29kUmVhU3VwOiBudWxsLFxufTtcblxuZGVzY3JpYmUoJ2RtZW5jdSAtIGdldFNldHRlcnNBbmRQYXJhbWV0ZXJzRm9yUmVhTm9SZWFSZXN1bWVuRXN0YWRvJywgKCkgPT4ge1xuXG4gICAgaXQoJ3BhcmEgdGFyZWFzX3RlbSB1c2EgcHJlZmlqbyBkbV8geSBudW1lcmEgbG9zIHBhcsOhbWV0cm9zIGEgY29udGludWFjacOzbiBkZSBsb3MgcmVjaWJpZG9zJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB7IHNldHRlcnMsIHBhcmFtcyB9ID0gZ2V0U2V0dGVyc0FuZFBhcmFtZXRlcnNGb3JSZWFOb1JlYVJlc3VtZW5Fc3RhZG8oe1xuICAgICAgICAgICAgdGFyZWE6ICdlbmN1JyxcbiAgICAgICAgICAgIHJlc3B1ZXN0YXNVQVByaW5jaXBhbDogcmVzcHVlc3RhcyxcbiAgICAgICAgICAgIHNldHRlcnM6IFtgZXN0YWRvID0gJ0QnYCwgYGNhcmdhZG9fZG09bnVsbGBdLFxuICAgICAgICAgICAgcGFyYW1zOiBbJ29wMScsIDEwMDEsICdlbmN1JywgJ3Rva2VuLXgnXSxcbiAgICAgICAgICAgIGRlc3Rpbm86ICd0YXJlYXNfdGVtJ1xuICAgICAgICB9KTtcbiAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXR0ZXJzLCBbXG4gICAgICAgICAgICBgZXN0YWRvID0gJ0QnYCxcbiAgICAgICAgICAgIGBjYXJnYWRvX2RtPW51bGxgLFxuICAgICAgICAgICAgJ2RtX3Jlc3VtZW5fZXN0YWRvPSQ1JyxcbiAgICAgICAgICAgICdkbV9ub3JlYT0kNicsXG4gICAgICAgICAgICAnZG1fcmVhPSQ3JyxcbiAgICAgICAgXSk7XG4gICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyYW1zLCBbJ29wMScsIDEwMDEsICdlbmN1JywgJ3Rva2VuLXgnLCAnb2snLCBudWxsLCAxXSk7XG4gICAgfSk7XG5cbiAgICBpdCgncGFyYSB0ZW0gbm8gdXNhIHByZWZpam8nLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgc2V0dGVycyB9ID0gZ2V0U2V0dGVyc0FuZFBhcmFtZXRlcnNGb3JSZWFOb1JlYVJlc3VtZW5Fc3RhZG8oe1xuICAgICAgICAgICAgdGFyZWE6ICdlbmN1JyxcbiAgICAgICAgICAgIHJlc3B1ZXN0YXNVQVByaW5jaXBhbDogcmVzcHVlc3RhcyxcbiAgICAgICAgICAgIHNldHRlcnM6IFtdLFxuICAgICAgICAgICAgcGFyYW1zOiBbJ29wMScsIDEwMDFdLFxuICAgICAgICAgICAgZGVzdGlubzogJ3RlbSdcbiAgICAgICAgfSk7XG4gICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0dGVycywgWydyZXN1bWVuX2VzdGFkbz0kMycsICdub3JlYT0kNCcsICdyZWE9JDUnXSk7XG4gICAgfSk7XG5cbiAgICBpdCgncGFyYSBsYSB0YXJlYSBzdXBlIHVzYSBsYXMgY29sdW1uYXMgeSBsb3MgdmFsb3JlcyBfc3VwJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB7IHNldHRlcnMsIHBhcmFtcyB9ID0gZ2V0U2V0dGVyc0FuZFBhcmFtZXRlcnNGb3JSZWFOb1JlYVJlc3VtZW5Fc3RhZG8oe1xuICAgICAgICAgICAgdGFyZWE6ICdzdXBlJyxcbiAgICAgICAgICAgIHJlc3B1ZXN0YXNVQVByaW5jaXBhbDogcmVzcHVlc3RhcyxcbiAgICAgICAgICAgIHNldHRlcnM6IFsnanNvbl9lbmN1ZXN0YSA9ICQzJ10sXG4gICAgICAgICAgICBwYXJhbXM6IFsnb3AxJywgMTAwMSwgJ3t9J10sXG4gICAgICAgICAgICBkZXN0aW5vOiAndGFyZWFzX3RlbSdcbiAgICAgICAgfSk7XG4gICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0dGVycywgW1xuICAgICAgICAgICAgJ2pzb25fZW5jdWVzdGEgPSAkMycsXG4gICAgICAgICAgICAnZG1fcmVzdW1lbl9lc3RhZG9fc3VwPSQ0JyxcbiAgICAgICAgICAgICdkbV9ub3JlYV9zdXA9JDUnLFxuICAgICAgICAgICAgJ2RtX3JlYV9zdXA9JDYnLFxuICAgICAgICBdKTtcbiAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJhbXMsIFsnb3AxJywgMTAwMSwgJ3t9JywgJ25vIHJlYScsIDcxLCBudWxsXSk7XG4gICAgfSk7XG5cbiAgICBpdCgnY2FkYSAkbiBkZSBsb3Mgc2V0dGVycyBhcHVudGEgYWwgdmFsb3IgY29ycmVjdG8gZW4gcGFyYW1zJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB7IHNldHRlcnMsIHBhcmFtcyB9ID0gZ2V0U2V0dGVyc0FuZFBhcmFtZXRlcnNGb3JSZWFOb1JlYVJlc3VtZW5Fc3RhZG8oe1xuICAgICAgICAgICAgdGFyZWE6ICdlbmN1JyxcbiAgICAgICAgICAgIHJlc3B1ZXN0YXNVQVByaW5jaXBhbDogcmVzcHVlc3RhcyxcbiAgICAgICAgICAgIHNldHRlcnM6IFtdLFxuICAgICAgICAgICAgcGFyYW1zOiBbJ2EnLCAnYicsICdjJ10sXG4gICAgICAgICAgICBkZXN0aW5vOiAndGFyZWFzX3RlbSdcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHZhbG9yRGUgPSAoc2V0dGVyOiBzdHJpbmcpID0+IHBhcmFtc1tOdW1iZXIoc2V0dGVyLnNwbGl0KCc9JCcpWzFdKSAtIDFdO1xuICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodmFsb3JEZShzZXR0ZXJzWzBdKSwgJ29rJyk7XG4gICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh2YWxvckRlKHNldHRlcnNbMV0pLCBudWxsKTtcbiAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHZhbG9yRGUoc2V0dGVyc1syXSksIDEpO1xuICAgIH0pO1xuXG4gICAgaXQoJ25vIG1vZGlmaWNhIGxvcyBhcnJheXMgcmVjaWJpZG9zJywgKCkgPT4ge1xuICAgICAgICBjb25zdCBzZXR0ZXJzRW50cmFkYSA9IFsneCA9ICQxJ107XG4gICAgICAgIGNvbnN0IHBhcmFtc0VudHJhZGEgPSBbJ3YnXTtcbiAgICAgICAgZ2V0U2V0dGVyc0FuZFBhcmFtZXRlcnNGb3JSZWFOb1JlYVJlc3VtZW5Fc3RhZG8oe1xuICAgICAgICAgICAgdGFyZWE6ICdlbmN1JyxcbiAgICAgICAgICAgIHJlc3B1ZXN0YXNVQVByaW5jaXBhbDogcmVzcHVlc3RhcyxcbiAgICAgICAgICAgIHNldHRlcnM6IHNldHRlcnNFbnRyYWRhLFxuICAgICAgICAgICAgcGFyYW1zOiBwYXJhbXNFbnRyYWRhLFxuICAgICAgICAgICAgZGVzdGlubzogJ3RlbSdcbiAgICAgICAgfSk7XG4gICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0dGVyc0VudHJhZGEsIFsneCA9ICQxJ10pO1xuICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcmFtc0VudHJhZGEsIFsndiddKTtcbiAgICB9KTtcbn0pO1xuIl19
|
package/dist/test/test.d.ts
CHANGED
|
@@ -1,2 +1,9 @@
|
|
|
1
1
|
import './test-rea-no-rea';
|
|
2
|
+
import './test-helpers-casilleros';
|
|
3
|
+
import './test-helpers-formulario';
|
|
4
|
+
import './test-setters-rea-no-rea';
|
|
5
|
+
import './test-menu-segun-rol';
|
|
6
|
+
import './test-caches-rea';
|
|
7
|
+
import './test-impacto-rea-no-rea-en-bd';
|
|
2
8
|
import './test-ejemplo';
|
|
9
|
+
import './test-ayuda';
|
package/dist/test/test.js
CHANGED
|
@@ -4,12 +4,19 @@
|
|
|
4
4
|
if (v !== undefined) module.exports = v;
|
|
5
5
|
}
|
|
6
6
|
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define(["require", "exports", "./test-rea-no-rea", "./test-ejemplo"], factory);
|
|
7
|
+
define(["require", "exports", "./test-rea-no-rea", "./test-helpers-casilleros", "./test-helpers-formulario", "./test-setters-rea-no-rea", "./test-menu-segun-rol", "./test-caches-rea", "./test-impacto-rea-no-rea-en-bd", "./test-ejemplo", "./test-ayuda"], factory);
|
|
8
8
|
}
|
|
9
9
|
})(function (require, exports) {
|
|
10
10
|
"use strict";
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
require("./test-rea-no-rea");
|
|
13
|
+
require("./test-helpers-casilleros");
|
|
14
|
+
require("./test-helpers-formulario");
|
|
15
|
+
require("./test-setters-rea-no-rea");
|
|
16
|
+
require("./test-menu-segun-rol");
|
|
17
|
+
require("./test-caches-rea");
|
|
18
|
+
require("./test-impacto-rea-no-rea-en-bd");
|
|
13
19
|
require("./test-ejemplo");
|
|
20
|
+
require("./test-ayuda");
|
|
14
21
|
});
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0lBQUEsWUFBWSxDQUFDOztJQUViLDZCQUEyQjtJQUMzQixxQ0FBbUM7SUFDbkMscUNBQW1DO0lBQ25DLHFDQUFtQztJQUNuQyxpQ0FBK0I7SUFDL0IsNkJBQTJCO0lBQzNCLDJDQUF5QztJQUN6QywwQkFBd0I7SUFDeEIsd0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCAnLi90ZXN0LXJlYS1uby1yZWEnO1xuaW1wb3J0ICcuL3Rlc3QtaGVscGVycy1jYXNpbGxlcm9zJztcbmltcG9ydCAnLi90ZXN0LWhlbHBlcnMtZm9ybXVsYXJpbyc7XG5pbXBvcnQgJy4vdGVzdC1zZXR0ZXJzLXJlYS1uby1yZWEnO1xuaW1wb3J0ICcuL3Rlc3QtbWVudS1zZWd1bi1yb2wnO1xuaW1wb3J0ICcuL3Rlc3QtY2FjaGVzLXJlYSc7XG5pbXBvcnQgJy4vdGVzdC1pbXBhY3RvLXJlYS1uby1yZWEtZW4tYmQnO1xuaW1wb3J0ICcuL3Rlc3QtZWplbXBsbyc7XG5pbXBvcnQgJy4vdGVzdC1heXVkYSc7Il19
|
|
@@ -3,7 +3,7 @@ export declare const helpersCasilleros: {
|
|
|
3
3
|
div0err(numerador: number, denominador: number, pk: string): number;
|
|
4
4
|
funs: {
|
|
5
5
|
blanco(x: any): boolean;
|
|
6
|
-
hoy():
|
|
6
|
+
hoy(): string;
|
|
7
7
|
fecha_valida(x: string): boolean;
|
|
8
8
|
mesanio_valido(x: string): boolean;
|
|
9
9
|
informado(x: any): boolean;
|
|
@@ -4,12 +4,13 @@
|
|
|
4
4
|
if (v !== undefined) module.exports = v;
|
|
5
5
|
}
|
|
6
6
|
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define(["require", "exports"], factory);
|
|
7
|
+
define(["require", "exports", "best-globals"], factory);
|
|
8
8
|
}
|
|
9
9
|
})(function (require, exports) {
|
|
10
10
|
"use strict";
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.helpersCasilleros = void 0;
|
|
13
|
+
const best_globals_1 = require("best-globals");
|
|
13
14
|
exports.helpersCasilleros = {
|
|
14
15
|
null2zero(posibleNull) {
|
|
15
16
|
if (posibleNull == null) {
|
|
@@ -28,25 +29,18 @@
|
|
|
28
29
|
return x !== 0 && !x;
|
|
29
30
|
},
|
|
30
31
|
hoy() {
|
|
31
|
-
return date.today().toDmy();
|
|
32
|
+
return best_globals_1.date.today().toDmy();
|
|
32
33
|
},
|
|
33
34
|
fecha_valida(x) {
|
|
34
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);
|
|
35
|
-
|
|
36
|
-
|
|
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
|
-
}
|
|
36
|
+
if (!formato_valido) {
|
|
37
|
+
return false;
|
|
46
38
|
}
|
|
47
|
-
;
|
|
39
|
+
const [d, m, y] = x.split('/').map(Number);
|
|
40
|
+
// new Date no falla con fechas inexistentes (31/02 pasa a 03/03), hay que verificar que no se corra
|
|
41
|
+
var xDate = new Date(y, m - 1, d);
|
|
48
42
|
//faltaria validar que no sea una fecha futura y que sea una fecha en el rango del operativo
|
|
49
|
-
return
|
|
43
|
+
return xDate.getFullYear() == y && xDate.getMonth() == m - 1 && xDate.getDate() == d;
|
|
50
44
|
},
|
|
51
45
|
mesanio_valido(x) {
|
|
52
46
|
var formato_valido = /^([1-9]|0[1-9]|1[012])\/(19|20)\d\d$/.test(x);
|
|
@@ -72,10 +66,10 @@
|
|
|
72
66
|
};
|
|
73
67
|
var partesRealizacion = fechaRealizacionDDMMYYYY.split("/");
|
|
74
68
|
//@ts-ignore las partes corresponden a una fecha válida
|
|
75
|
-
var today = date.ymd(Number(partesRealizacion[2]), Number(partesRealizacion[1]), Number(partesRealizacion[0]));
|
|
69
|
+
var today = best_globals_1.date.ymd(Number(partesRealizacion[2]), Number(partesRealizacion[1]), Number(partesRealizacion[0]));
|
|
76
70
|
var partesMesAnnio = mesAnnio.split('/');
|
|
77
71
|
//@ts-ignore las partes corresponden a una fecha válida
|
|
78
|
-
var nacimiento = date.ymd(Number(partesMesAnnio[1]), Number(partesMesAnnio[0]), 1);
|
|
72
|
+
var nacimiento = best_globals_1.date.ymd(Number(partesMesAnnio[1]), Number(partesMesAnnio[0]), 1);
|
|
79
73
|
//@ts-ignore RealDate es Date y se puede restar
|
|
80
74
|
var diferenciaMeses = mesesDiferencia(nacimiento, today);
|
|
81
75
|
var edadDecimales = diferenciaMeses / 12; //ej 36.5
|
|
@@ -126,4 +120,4 @@
|
|
|
126
120
|
}
|
|
127
121
|
};
|
|
128
122
|
});
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1jYXNpbGxlcm9zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3VubG9nZ2VkL2hlbHBlcnMtY2FzaWxsZXJvcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFDYSxRQUFBLGlCQUFpQixHQUFHO1FBQzdCLFNBQVMsQ0FBQyxXQUFnQjtZQUN0QixJQUFJLFdBQVcsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDdEIsT0FBTyxDQUFDLENBQUM7WUFDYixDQUFDO1lBQ0QsT0FBTyxXQUFXLENBQUM7UUFDdkIsQ0FBQztRQUNELE9BQU8sQ0FBQyxTQUFpQixFQUFFLFdBQW1CLEVBQUUsRUFBVTtZQUN0RCxJQUFJLFdBQVcsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxXQUFXLEdBQUcsRUFBRSxHQUFHLHdCQUF3QixHQUFHLFNBQVMsQ0FBQyxDQUFDO1lBQzdFLENBQUM7WUFDRCxPQUFPLFNBQVMsR0FBRyxXQUFXLENBQUM7UUFDbkMsQ0FBQztRQUNELElBQUksRUFBRTtZQUNGLE1BQU0sQ0FBQyxDQUFNO2dCQUNULE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtZQUN4QixDQUFDO1lBQ0QsR0FBRztnQkFDQyxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtZQUMvQixDQUFDO1lBQ0QsWUFBWSxDQUFDLENBQVM7Z0JBQ2xCLElBQUksY0FBYyxHQUFHLDhEQUE4RCxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtnQkFDM0YsSUFBSSxLQUFXLENBQUM7Z0JBQ2hCLElBQUksWUFBcUIsQ0FBQztnQkFDMUIsWUFBWSxHQUFHLElBQUksQ0FBQztnQkFDcEIsSUFBSSxjQUFjLEVBQUUsQ0FBQztvQkFDakIsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFD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LFlBQVk7b0JBQ2pELGFBQWEsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDLG1CQUFtQjtpQkFDaEQsQ0FBQTtZQUNMLENBQUM7WUFDRCxxSUFBcUk7WUFDckksMklBQTJJO1lBQzNJLCtGQUErRjtZQUMvRixHQUFHO1lBQ0g7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2dCQW1DSTtTQUNQO0tBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5leHBvcnQgY29uc3QgaGVscGVyc0Nhc2lsbGVyb3MgPSB7XHJcbiAgICBudWxsMnplcm8ocG9zaWJsZU51bGw6IGFueSkge1xyXG4gICAgICAgIGlmIChwb3NpYmxlTnVsbCA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaWJsZU51bGw7XHJcbiAgICB9LFxyXG4gICAgZGl2MGVycihudW1lcmFkb3I6IG51bWJlciwgZGVub21pbmFkb3I6IG51bWJlciwgcGs6IHN0cmluZykge1xyXG4gICAgICAgIGlmIChkZW5vbWluYWRvciA9PSAwKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkVycm9yIGVuIFwiICsgcGsgKyBcIiBkaXZpc2lvbiBwb3IgY2VybyBkZSBcIiArIG51bWVyYWRvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudW1lcmFkb3IgLyBkZW5vbWluYWRvcjtcclxuICAgIH0sXHJcbiAgICBmdW5zOiB7XHJcbiAgICAgICAgYmxhbmNvKHg6IGFueSkge1xyXG4gICAgICAgICAgICByZXR1cm4geCAhPT0gMCAmJiAheFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgaG95KCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZGF0ZS50b2RheSgpLnRvRG15KClcclxuICAgICAgICB9LFxyXG4gICAgICAgIGZlY2hhX3ZhbGlkYSh4OiBzdHJpbmcpIHtcclxuICAgICAgICAgICAgdmFyIGZvcm1hdG9fdmFsaWRvID0gL14oWzEtOV18MFsxLTldfFsxMl1cXGR8M1swMV0pXFwvKFsxLTldfDBbMS05XXwxWzAxMl0pXFwvMjBcXGRcXGQkLy50ZXN0KHgpXHJcbiAgICAgICAgICAgIHZhciB4RGF0ZTogRGF0ZTtcclxuICAgICAgICAgICAgdmFyIGNvbnZlcnNpb25PazogYm9vbGVhbjtcclxuICAgICAgICAgICAgY29udmVyc2lvbk9rID0gdHJ1ZTtcclxuICAgICAgICAgICAgaWYgKGZvcm1hdG9fdmFsaWRvKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBbZCwgbSwgeV0gPSB4LnNwbGl0KCcvJyk7XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIHhEYXRlID0gbmV3IERhdGUoYCR7eX0vJHttfS8ke2R9YCk7XHJcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb252ZXJzaW9uT2sgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgLy9mYWx0YXJpYSB2YWxpZGFyIHF1ZSBubyBzZWEgdW5hIGZlY2hhIGZ1dHVyYSB5IHF1ZSBzZWEgdW5hIGZlY2hhIGVuIGVsIHJhbmdvIGRlbCBvcGVyYXRpdm9cclxuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdG9fdmFsaWRvICYmIGNvbnZlcnNpb25Pa1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbWVzYW5pb192YWxpZG8oeDogc3RyaW5nKSB7XHJcbiAgICAgICAgICAgIHZhciBmb3JtYXRvX3ZhbGlkbyA9IC9eKFsxLTldfDBbMS05XXwxWzAxMl0pXFwvKDE5fDIwKVxcZFxcZCQvLnRlc3QoeClcclxuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdG9fdmFsaWRvXHJcbiAgICAgICAgfSxcclxuICAgICAgICBpbmZvcm1hZG8oeDogYW55KSB7XHJcbiAgICAgICAgICAgIHJldHVybiB4ICE9PSB1bmRlZmluZWQgJiYgeCAhPT0gbnVsbCAmJiAoISh4IGluc3RhbmNlb2YgQXJyYXkpIHx8IHgubGVuZ3RoICE9PSAwKVxyXG4gICAgICAgICAgICAgICAgJiYgKCEoeCBpbnN0YW5jZW9mIE9iamVjdCkgfHwgT2JqZWN0LmtleXMoeCkubGVuZ3RoICE9PSAwKVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbnNuYyh4OiBhbnkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHggPT0gLTlcclxuICAgICAgICB9LFxyXG4gICAgICAgIHBhcih4OiBudW1iZXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHggJSAyID09IDBcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVkYWRfbWVzX2FubmlvX3ZhbGlkbyhlZGFkOiBudW1iZXIsIG1lc0FubmlvOiBzdHJpbmcsIGZlY2hhUmVhbGl6YWNpb25ERE1NWVlZWTogc3RyaW5nKSB7XHJcbiAgICAgICAgICAgIHZhciBtZXNlc0RpZmVyZW5jaWEgPSAoZDE6IERhdGUsIGQyOiBEYXRlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB2YXIgbW9udGhzO1xyXG4gICAgICAgICAgICAgICAgbW9udGhzID0gKGQyLmdldEZ1bGxZZWFyKCkgLSBkMS5nZXRGdWxsWWVhcigpKSAqIDEyO1xyXG4gICAgICAgICAgICAgICAgbW9udGhzIC09IGQxLmdldE1vbnRoKCk7XHJcbiAgICAgICAgICAgICAgICBtb250aHMgKz0gZDIuZ2V0TW9udGgoKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHMgPD0gMCA/IDAgOiBtb250aHM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdmFyIHBhcnRlc1JlYWxpemFjaW9uID0gZmVjaGFSZWFsaXphY2lvbkRETU1ZWVlZLnNwbGl0KFwiL1wiKTtcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlIGxhcyBwYXJ0ZXMgY29ycmVzcG9uZGVuIGEgdW5hIGZlY2hhIHbDoWxpZGFcclxuICAgICAgICAgICAgdmFyIHRvZGF5ID0gZGF0ZS55bWQoTnVtYmVyKHBhcnRlc1JlYWxpemFjaW9uWzJdKSwgTnVtYmVyKHBhcnRlc1JlYWxpemFjaW9uWzFdKSwgTnVtYmVyKHBhcnRlc1JlYWxpemFjaW9uWzBdKSlcclxuICAgICAgICAgICAgdmFyIHBhcnRlc01lc0FubmlvID0gbWVzQW5uaW8uc3BsaXQoJy8nKTtcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlIGxhcyBwYXJ0ZXMgY29ycmVzcG9uZGVuIGEgdW5hIGZlY2hhIHbDoWxpZGFcclxuICAgICAgICAgICAgdmFyIG5hY2ltaWVudG8gPSBkYXRlLnltZChOdW1iZXIocGFydGVzTWVzQW5uaW9bMV0pLCBOdW1iZXIocGFydGVzTWVzQW5uaW9bMF0pLCAxKVxyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmUgUmVhbERhdGUgZXMgRGF0ZSB5IHNlIHB1ZWRlIHJlc3RhclxyXG4gICAgICAgICAgICB2YXIgZGlmZXJlbmNpYU1lc2VzID0gbWVzZXNEaWZlcmVuY2lhKG5hY2ltaWVudG8sIHRvZGF5KTtcclxuICAgICAgICAgICAgdmFyIGVkYWREZWNpbWFsZXMgPSBkaWZlcmVuY2lhTWVzZXMgLyAxMjsgLy9laiAzNi41XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICBNYXRoLmZsb29yKGVkYWREZWNpbWFsZXMpID09IGVkYWQgfHwgLy9taXNtYSBlZGFkXHJcbiAgICAgICAgICAgICAgICBlZGFkRGVjaW1hbGVzID09IGVkYWQgKyAxIC8vbWVzIGRlIHRvbGVyYW5jaWFcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy9jb3BpYXJfY2FtcG9fdWFfcmFtYShyZXNwdWVzdGFzT3JpZ2VuOlJlc3B1ZXN0YXNbXSwgcG9zaWNpb246bnVtYmVyLCB2YXJpYWJsZU9yaWdlbjogSWRWYXJpYWJsZSwgY2FtaW5vOnN0cmluZywgY29uZGljaW9uOmJvb2xlYW4pe1xyXG4gICAgICAgIC8vICAgIHJldHVybiBjb25kaWNpb24/KHJlc3B1ZXN0YXNPcmlnZW4gJiYgcmVzcHVlc3Rhc09yaWdlbltwb3NpY2lvbi0xXSAmJiByZXNwdWVzdGFzT3JpZ2VuW3Bvc2ljaW9uLTFdW2Ake2NhbWlub31gXVt2YXJpYWJsZU9yaWdlbl0pOm51bGxcclxuICAgICAgICAvLyAgICByZXR1cm4gY29uZGljaW9uP2V2YWwoYHJlc3B1ZXN0YXNPcmlnZW5bJHtwb3NpY2lvbi0xfV0uYCtjYW1pbm8rJy4nK3ZhcmlhYmxlT3JpZ2VuKTpudWxsO1xyXG4gICAgICAgIC8vfVxyXG4gICAgICAgIC8qXHJcbiAgICAgICAgZGJvOntcclxuICAgICAgICAgICAgZGF0b0ZhbWlsaWFyKGVuY3U6c3RyaW5nLGhvZzpudW1iZXIscGVyOm51bWJlciwgZGF0bzpzdHJpbmcpe1xyXG4gICAgICAgICAgICAgICAgdmFyIHhwZXJzb25hcz1wZXJzb25hcztcclxuICAgICAgICAgICAgICAgIHJldHVybiBlbmN1PT1lbmMgJiYgaG9nPT1ob2dhciAmJiBpbmZvcm1hZG8oeHBlcnNvbmFzKSAmJiBwZXI8PSB4cGVyc29uYXMubGVuZ3RoICYmIHBlcj49MSAmJiAhIXhwZXJzb25hc1twZXItMV1bZGF0b10/IHhwZXJzb25hc1twZXItMV1bZGF0b106bnVsbFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBlZGFkZmFtaWxpYXIoZW5jdTpzdHJpbmcsaG9nOm51bWJlcixwZXI6bnVtYmVyKXtcclxuICAgICAgICAgICAgICAgIHZhciB4cGVyc29uYXM9cGVyc29uYXM7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0b0ZhbWlsaWFyKGVuY3U6c3RyaW5nLGhvZzpudW1iZXIscGVyOm51bWJlciwnZWRhZCcpXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGV4aXN0ZWluZGl2aWR1YWwoZW5jdTpzdHJpbmcsaG9nOm51bWJlcixwZXI6bnVtYmVyKXtcclxuICAgICAgICAgICAgICAgIHZhciB4cGVyc29uYXM9cGVyc29uYXM7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZW5jdT09ZW5jICYmIGhvZz09aG9nYXIgJiYgISFwZXJzb25hcyAmJiBwZXI8PSBwZXJzb25hcy5sZW5ndGggJiYgcGVyPj0xICYmICEhcGVyc29uYXNbcGVyLTFdWydlbnRyZWFpbmQnXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBleGlzdGVtaWVtYnJvKGVuY3U6c3RyaW5nLGhvZzpudW1iZXIscGVyOm51bWJlcil7XHJcbiAgICAgICAgICAgICAgICB2YXIgeHBlcnNvbmFzPXBlcnNvbmFzO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGVuY3U9PWVuYyAmJiBob2c9PWhvZ2FyICYmICEhcGVyc29uYXMgJiYgcGVyPD0gcGVyc29uYXMubGVuZ3RoICYmIHBlcj49MVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBucm9jb255dWdlcyhlbmN1OnN0cmluZyxob2c6bnVtYmVyKXtcclxuICAgICAgICAgICAgICAgIHZhciB4cGVyc29uYXM9cGVyc29uYXNcclxuICAgICAgICAgICAgICAgIHJldHVybiB4cGVyc29uYXMuZmlsdGVyKCBwZXItPnBlci5wND09MikubGVuZ3RoXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIG5yb2plZmVzKGVuY3U6c3RyaW5nLGhvZzpudW1iZXIscGVyOm51bWJlcil7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcGVyc29uYXMuZmlsdGVyKCBwZXItPnBlci5wND09MSkubGVuZ3RoXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHBhcmVudGVzY29mYW1pbGlhcihlbmN1OnN0cmluZyxob2c6bnVtYmVyLHBlcjpudW1iZXIpe1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdG9GYW1pbGlhcihlbmN1OnN0cmluZyxob2c6bnVtYmVyLHBlcjpudW1iZXIsJ3A0JylcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc2V4b2ZhbWlsaWFyKGVuY3U6c3RyaW5nLGhvZzpudW1iZXIscGVyOm51bWJlcil7XHJcbiAgICAgICAgICAgICAgICB2YXIgeHBlcnNvbmFzPXBlcnNvbmFzO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGVuY3U9PWVuYyAmJiBob2c9PWhvZ2FyICYmICEheHBlcnNvbmFzICYmIHBlcjw9IHhwZXJzb25hcy5sZW5ndGggJiYgcGVyPj0xICYmICEheHBlcnNvbmFzW3Blci0xXS5zZXhvPyB4cGVyc29uYXNbcGVyLTFdWydzZXhvJ106bnVsbFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzaXRjb255amVmZShlbmN1OnN0cmluZyxob2c6bnVtYmVyKXtcclxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRvRmFtaWxpYXIoZW5jdTpzdHJpbmcsaG9nOm51bWJlciwxLCdwNScpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9ICovXHJcbiAgICB9XHJcbn07Il19
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1jYXNpbGxlcm9zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3VubG9nZ2VkL2hlbHBlcnMtY2FzaWxsZXJvcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFDQSwrQ0FBb0M7SUFFdkIsUUFBQSxpQkFBaUIsR0FBRztRQUM3QixTQUFTLENBQUMsV0FBZ0I7WUFDdEIsSUFBSSxXQUFXLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ3RCLE9BQU8sQ0FBQyxDQUFDO1lBQ2IsQ0FBQztZQUNELE9BQU8sV0FBVyxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxPQUFPLENBQUMsU0FBaUIsRUFBRSxXQUFtQixFQUFFLEVBQVU7WUFDdEQsSUFBSSxXQUFXLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsV0FBVyxHQUFHLEVBQUUsR0FBRyx3QkFBd0IsR0FBRyxTQUFTLENBQUMsQ0FBQztZQUM3RSxDQUFDO1lBQ0QsT0FBTyxTQUFTLEdBQUcsV0FBVyxDQUFDO1FBQ25DLENBQUM7UUFDRCxJQUFJLEVBQUU7WUFDRixNQUFNLENBQUMsQ0FBTTtnQkFDVCxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7WUFDeEIsQ0FBQztZQUNELEdBQUc7Z0JBQ0MsT0FBTyxtQkFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFBO1lBQy9CLENBQUM7WUFDRCxZQUFZLENBQUMsQ0FBUztnQkFDbEIsSUFBSSxjQUFjLEdBQUcsOERBQThELENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO2dCQUMzRixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQ2xCLE9BQU8sS0FBSyxDQUFDO2dCQUNqQixDQUFDO2dCQUNELE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFD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QUFJLElBQUksWUFBWTtvQkFDakQsYUFBYSxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsbUJBQW1CO2lCQUNoRCxDQUFBO1lBQ0wsQ0FBQztZQUNELHFJQUFxSTtZQUNySSwySUFBMkk7WUFDM0ksK0ZBQStGO1lBQy9GLEdBQUc7WUFDSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Z0JBbUNJO1NBQ1A7S0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBkYXRlIH0gZnJvbSBcImJlc3QtZ2xvYmFsc1wiO1xuXG5leHBvcnQgY29uc3QgaGVscGVyc0Nhc2lsbGVyb3MgPSB7XG4gICAgbnVsbDJ6ZXJvKHBvc2libGVOdWxsOiBhbnkpIHtcbiAgICAgICAgaWYgKHBvc2libGVOdWxsID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwb3NpYmxlTnVsbDtcbiAgICB9LFxuICAgIGRpdjBlcnIobnVtZXJhZG9yOiBudW1iZXIsIGRlbm9taW5hZG9yOiBudW1iZXIsIHBrOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKGRlbm9taW5hZG9yID09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkVycm9yIGVuIFwiICsgcGsgKyBcIiBkaXZpc2lvbiBwb3IgY2VybyBkZSBcIiArIG51bWVyYWRvcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bWVyYWRvciAvIGRlbm9taW5hZG9yO1xuICAgIH0sXG4gICAgZnVuczoge1xuICAgICAgICBibGFuY28oeDogYW55KSB7XG4gICAgICAgICAgICByZXR1cm4geCAhPT0gMCAmJiAheFxuICAgICAgICB9LFxuICAgICAgICBob3koKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0ZS50b2RheSgpLnRvRG15KClcbiAgICAgICAgfSxcbiAgICAgICAgZmVjaGFfdmFsaWRhKHg6IHN0cmluZykge1xuICAgICAgICAgICAgdmFyIGZvcm1hdG9fdmFsaWRvID0gL14oWzEtOV18MFsxLTldfFsxMl1cXGR8M1swMV0pXFwvKFsxLTldfDBbMS05XXwxWzAxMl0pXFwvMjBcXGRcXGQkLy50ZXN0KHgpXG4gICAgICAgICAgICBpZiAoIWZvcm1hdG9fdmFsaWRvKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgW2QsIG0sIHldID0geC5zcGxpdCgnLycpLm1hcChOdW1iZXIpO1xuICAgICAgICAgICAgLy8gbmV3IERhdGUgbm8gZmFsbGEgY29uIGZlY2hhcyBpbmV4aXN0ZW50ZXMgKDMxLzAyIHBhc2EgYSAwMy8wMyksIGhheSBxdWUgdmVyaWZpY2FyIHF1ZSBubyBzZSBjb3JyYVxuICAgICAgICAgICAgdmFyIHhEYXRlID0gbmV3IERhdGUoeSwgbSAtIDEsIGQpO1xuICAgICAgICAgICAgLy9mYWx0YXJpYSB2YWxpZGFyIHF1ZSBubyBzZWEgdW5hIGZlY2hhIGZ1dHVyYSB5IHF1ZSBzZWEgdW5hIGZlY2hhIGVuIGVsIHJhbmdvIGRlbCBvcGVyYXRpdm9cbiAgICAgICAgICAgIHJldHVybiB4RGF0ZS5nZXRGdWxsWWVhcigpID09IHkgJiYgeERhdGUuZ2V0TW9udGgoKSA9PSBtIC0gMSAmJiB4RGF0ZS5nZXREYXRlKCkgPT0gZFxuICAgICAgICB9LFxuICAgICAgICBtZXNhbmlvX3ZhbGlkbyh4OiBzdHJpbmcpIHtcbiAgICAgICAgICAgIHZhciBmb3JtYXRvX3ZhbGlkbyA9IC9eKFsxLTldfDBbMS05XXwxWzAxMl0pXFwvKDE5fDIwKVxcZFxcZCQvLnRlc3QoeClcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXRvX3ZhbGlkb1xuICAgICAgICB9LFxuICAgICAgICBpbmZvcm1hZG8oeDogYW55KSB7XG4gICAgICAgICAgICByZXR1cm4geCAhPT0gdW5kZWZpbmVkICYmIHggIT09IG51bGwgJiYgKCEoeCBpbnN0YW5jZW9mIEFycmF5KSB8fCB4Lmxlbmd0aCAhPT0gMClcbiAgICAgICAgICAgICAgICAmJiAoISh4IGluc3RhbmNlb2YgT2JqZWN0KSB8fCBPYmplY3Qua2V5cyh4KS5sZW5ndGggIT09IDApXG4gICAgICAgIH0sXG4gICAgICAgIG5zbmMoeDogYW55KSB7XG4gICAgICAgICAgICByZXR1cm4geCA9PSAtOVxuICAgICAgICB9LFxuICAgICAgICBwYXIoeDogbnVtYmVyKSB7XG4gICAgICAgICAgICByZXR1cm4geCAlIDIgPT0gMFxuICAgICAgICB9LFxuICAgICAgICBlZGFkX21lc19hbm5pb192YWxpZG8oZWRhZDogbnVtYmVyLCBtZXNBbm5pbzogc3RyaW5nLCBmZWNoYVJlYWxpemFjaW9uRERNTVlZWVk6IHN0cmluZykge1xuICAgICAgICAgICAgdmFyIG1lc2VzRGlmZXJlbmNpYSA9IChkMTogRGF0ZSwgZDI6IERhdGUpID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgbW9udGhzO1xuICAgICAgICAgICAgICAgIG1vbnRocyA9IChkMi5nZXRGdWxsWWVhcigpIC0gZDEuZ2V0RnVsbFllYXIoKSkgKiAxMjtcbiAgICAgICAgICAgICAgICBtb250aHMgLT0gZDEuZ2V0TW9udGgoKTtcbiAgICAgICAgICAgICAgICBtb250aHMgKz0gZDIuZ2V0TW9udGgoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzIDw9IDAgPyAwIDogbW9udGhzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIHBhcnRlc1JlYWxpemFjaW9uID0gZmVjaGFSZWFsaXphY2lvbkRETU1ZWVlZLnNwbGl0KFwiL1wiKTtcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZSBsYXMgcGFydGVzIGNvcnJlc3BvbmRlbiBhIHVuYSBmZWNoYSB2w6FsaWRhXG4gICAgICAgICAgICB2YXIgdG9kYXkgPSBkYXRlLnltZChOdW1iZXIocGFydGVzUmVhbGl6YWNpb25bMl0pLCBOdW1iZXIocGFydGVzUmVhbGl6YWNpb25bMV0pLCBOdW1iZXIocGFydGVzUmVhbGl6YWNpb25bMF0pKVxuICAgICAgICAgICAgdmFyIHBhcnRlc01lc0FubmlvID0gbWVzQW5uaW8uc3BsaXQoJy8nKTtcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZSBsYXMgcGFydGVzIGNvcnJlc3BvbmRlbiBhIHVuYSBmZWNoYSB2w6FsaWRhXG4gICAgICAgICAgICB2YXIgbmFjaW1pZW50byA9IGRhdGUueW1kKE51bWJlcihwYXJ0ZXNNZXNBbm5pb1sxXSksIE51bWJlcihwYXJ0ZXNNZXNBbm5pb1swXSksIDEpXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmUgUmVhbERhdGUgZXMgRGF0ZSB5IHNlIHB1ZWRlIHJlc3RhclxuICAgICAgICAgICAgdmFyIGRpZmVyZW5jaWFNZXNlcyA9IG1lc2VzRGlmZXJlbmNpYShuYWNpbWllbnRvLCB0b2RheSk7XG4gICAgICAgICAgICB2YXIgZWRhZERlY2ltYWxlcyA9IGRpZmVyZW5jaWFNZXNlcyAvIDEyOyAvL2VqIDM2LjVcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgTWF0aC5mbG9vcihlZGFkRGVjaW1hbGVzKSA9PSBlZGFkIHx8IC8vbWlzbWEgZWRhZFxuICAgICAgICAgICAgICAgIGVkYWREZWNpbWFsZXMgPT0gZWRhZCArIDEgLy9tZXMgZGUgdG9sZXJhbmNpYVxuICAgICAgICAgICAgKVxuICAgICAgICB9LFxuICAgICAgICAvL2NvcGlhcl9jYW1wb191YV9yYW1hKHJlc3B1ZXN0YXNPcmlnZW46UmVzcHVlc3Rhc1tdLCBwb3NpY2lvbjpudW1iZXIsIHZhcmlhYmxlT3JpZ2VuOiBJZFZhcmlhYmxlLCBjYW1pbm86c3RyaW5nLCBjb25kaWNpb246Ym9vbGVhbil7XG4gICAgICAgIC8vICAgIHJldHVybiBjb25kaWNpb24/KHJlc3B1ZXN0YXNPcmlnZW4gJiYgcmVzcHVlc3Rhc09yaWdlbltwb3NpY2lvbi0xXSAmJiByZXNwdWVzdGFzT3JpZ2VuW3Bvc2ljaW9uLTFdW2Ake2NhbWlub31gXVt2YXJpYWJsZU9yaWdlbl0pOm51bGxcbiAgICAgICAgLy8gICAgcmV0dXJuIGNvbmRpY2lvbj9ldmFsKGByZXNwdWVzdGFzT3JpZ2VuWyR7cG9zaWNpb24tMX1dLmArY2FtaW5vKycuJyt2YXJpYWJsZU9yaWdlbik6bnVsbDtcbiAgICAgICAgLy99XG4gICAgICAgIC8qXG4gICAgICAgIGRibzp7XG4gICAgICAgICAgICBkYXRvRmFtaWxpYXIoZW5jdTpzdHJpbmcsaG9nOm51bWJlcixwZXI6bnVtYmVyLCBkYXRvOnN0cmluZyl7XG4gICAgICAgICAgICAgICAgdmFyIHhwZXJzb25hcz1wZXJzb25hcztcbiAgICAgICAgICAgICAgICByZXR1cm4gZW5jdT09ZW5jICYmIGhvZz09aG9nYXIgJiYgaW5mb3JtYWRvKHhwZXJzb25hcykgJiYgcGVyPD0geHBlcnNvbmFzLmxlbmd0aCAmJiBwZXI+PTEgJiYgISF4cGVyc29uYXNbcGVyLTFdW2RhdG9dPyB4cGVyc29uYXNbcGVyLTFdW2RhdG9dOm51bGxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlZGFkZmFtaWxpYXIoZW5jdTpzdHJpbmcsaG9nOm51bWJlcixwZXI6bnVtYmVyKXtcbiAgICAgICAgICAgICAgICB2YXIgeHBlcnNvbmFzPXBlcnNvbmFzO1xuICAgICAgICAgICAgICAgIHJldHVybiBkYXRvRmFtaWxpYXIoZW5jdTpzdHJpbmcsaG9nOm51bWJlcixwZXI6bnVtYmVyLCdlZGFkJylcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBleGlzdGVpbmRpdmlkdWFsKGVuY3U6c3RyaW5nLGhvZzpudW1iZXIscGVyOm51bWJlcil7XG4gICAgICAgICAgICAgICAgdmFyIHhwZXJzb25hcz1wZXJzb25hcztcbiAgICAgICAgICAgICAgICByZXR1cm4gZW5jdT09ZW5jICYmIGhvZz09aG9nYXIgJiYgISFwZXJzb25hcyAmJiBwZXI8PSBwZXJzb25hcy5sZW5ndGggJiYgcGVyPj0xICYmICEhcGVyc29uYXNbcGVyLTFdWydlbnRyZWFpbmQnXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGV4aXN0ZW1pZW1icm8oZW5jdTpzdHJpbmcsaG9nOm51bWJlcixwZXI6bnVtYmVyKXtcbiAgICAgICAgICAgICAgICB2YXIgeHBlcnNvbmFzPXBlcnNvbmFzO1xuICAgICAgICAgICAgICAgIHJldHVybiBlbmN1PT1lbmMgJiYgaG9nPT1ob2dhciAmJiAhIXBlcnNvbmFzICYmIHBlcjw9IHBlcnNvbmFzLmxlbmd0aCAmJiBwZXI+PTFcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBucm9jb255dWdlcyhlbmN1OnN0cmluZyxob2c6bnVtYmVyKXtcbiAgICAgICAgICAgICAgICB2YXIgeHBlcnNvbmFzPXBlcnNvbmFzXG4gICAgICAgICAgICAgICAgcmV0dXJuIHhwZXJzb25hcy5maWx0ZXIoIHBlci0+cGVyLnA0PT0yKS5sZW5ndGhcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBucm9qZWZlcyhlbmN1OnN0cmluZyxob2c6bnVtYmVyLHBlcjpudW1iZXIpe1xuICAgICAgICAgICAgICAgIHJldHVybiBwZXJzb25hcy5maWx0ZXIoIHBlci0+cGVyLnA0PT0xKS5sZW5ndGhcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwYXJlbnRlc2NvZmFtaWxpYXIoZW5jdTpzdHJpbmcsaG9nOm51bWJlcixwZXI6bnVtYmVyKXtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0b0ZhbWlsaWFyKGVuY3U6c3RyaW5nLGhvZzpudW1iZXIscGVyOm51bWJlciwncDQnKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNleG9mYW1pbGlhcihlbmN1OnN0cmluZyxob2c6bnVtYmVyLHBlcjpudW1iZXIpe1xuICAgICAgICAgICAgICAgIHZhciB4cGVyc29uYXM9cGVyc29uYXM7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVuY3U9PWVuYyAmJiBob2c9PWhvZ2FyICYmICEheHBlcnNvbmFzICYmIHBlcjw9IHhwZXJzb25hcy5sZW5ndGggJiYgcGVyPj0xICYmICEheHBlcnNvbmFzW3Blci0xXS5zZXhvPyB4cGVyc29uYXNbcGVyLTFdWydzZXhvJ106bnVsbFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNpdGNvbnlqZWZlKGVuY3U6c3RyaW5nLGhvZzpudW1iZXIpe1xuICAgICAgICAgICAgICAgIHJldHVybiBkYXRvRmFtaWxpYXIoZW5jdTpzdHJpbmcsaG9nOm51bWJlciwxLCdwNScpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0gKi9cbiAgICB9XG59OyJdfQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { IdComodin, IdFormulario, IdVariable } from "./tipos";
|
|
2
|
+
export declare const REGEX_SPLIT_COMODINES: RegExp;
|
|
3
|
+
export declare const IS_TEM_PATTERN: RegExp;
|
|
4
|
+
export declare const IS_VARIABLE_HASH_PATTERN: RegExp;
|
|
5
|
+
export declare const IS_COMODIN_REDUX_PATTERN: RegExp;
|
|
6
|
+
/** Extrae nombres de comodines estándar (@comodin@) */
|
|
7
|
+
export declare function extraerComodinesRedux(text: string): IdComodin[];
|
|
8
|
+
/** Extrae nombres de variables dinámicas (@#variable@) */
|
|
9
|
+
export declare function extraerVariablesInteres(text: string): string[];
|
|
10
|
+
export declare function getBFVarNames(salto: string | null): {
|
|
11
|
+
listo: IdVariable;
|
|
12
|
+
agregar: IdVariable;
|
|
13
|
+
idFormulario: IdFormulario;
|
|
14
|
+
};
|
|
15
|
+
export declare function replaceSpecialWords(text: string, nombre: string, apellido: string, resultado: string): string;
|
|
16
|
+
export declare function numberOrStringIncIfArray(numberOrString: number | string, object: object | any[]): (number | string);
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
// Funciones puras del formulario, sin dependencias de React, Redux ni del navegador
|
|
2
|
+
// (para poder testearlas en node)
|
|
3
|
+
(function (factory) {
|
|
4
|
+
if (typeof module === "object" && typeof module.exports === "object") {
|
|
5
|
+
var v = factory(require, exports);
|
|
6
|
+
if (v !== undefined) module.exports = v;
|
|
7
|
+
}
|
|
8
|
+
else if (typeof define === "function" && define.amd) {
|
|
9
|
+
define(["require", "exports"], factory);
|
|
10
|
+
}
|
|
11
|
+
})(function (require, exports) {
|
|
12
|
+
"use strict";
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.IS_COMODIN_REDUX_PATTERN = exports.IS_VARIABLE_HASH_PATTERN = exports.IS_TEM_PATTERN = exports.REGEX_SPLIT_COMODINES = void 0;
|
|
15
|
+
exports.extraerComodinesRedux = extraerComodinesRedux;
|
|
16
|
+
exports.extraerVariablesInteres = extraerVariablesInteres;
|
|
17
|
+
exports.getBFVarNames = getBFVarNames;
|
|
18
|
+
exports.replaceSpecialWords = replaceSpecialWords;
|
|
19
|
+
exports.numberOrStringIncIfArray = numberOrStringIncIfArray;
|
|
20
|
+
// RegEx principal para dividir el texto conservando los tokens delimitados por @...@
|
|
21
|
+
exports.REGEX_SPLIT_COMODINES = /(@(?:#?[\w-]+|\$[tT][eE][mM][^@]*)@)/g;
|
|
22
|
+
// Sub-RegExs para identificar el tipo de comodín
|
|
23
|
+
exports.IS_TEM_PATTERN = /^@\$(tem[^@]*)@$/i;
|
|
24
|
+
exports.IS_VARIABLE_HASH_PATTERN = /^@#([\w-]+)@$/;
|
|
25
|
+
exports.IS_COMODIN_REDUX_PATTERN = /^@([\w-]+)@$/;
|
|
26
|
+
/** Extrae nombres de comodines estándar (@comodin@) */
|
|
27
|
+
function extraerComodinesRedux(text) {
|
|
28
|
+
if (!text || !text.includes('@'))
|
|
29
|
+
return [];
|
|
30
|
+
const matches = text.match(/@([a-zA-Z0-9_-]+)@/g);
|
|
31
|
+
if (!matches)
|
|
32
|
+
return [];
|
|
33
|
+
const ids = [];
|
|
34
|
+
for (const m of matches) {
|
|
35
|
+
if (!m.startsWith('@#') && !m.startsWith('@$')) {
|
|
36
|
+
const id = m.slice(1, -1);
|
|
37
|
+
if (!ids.includes(id))
|
|
38
|
+
ids.push(id);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return ids;
|
|
42
|
+
}
|
|
43
|
+
/** Extrae nombres de variables dinámicas (@#variable@) */
|
|
44
|
+
function extraerVariablesInteres(text) {
|
|
45
|
+
if (!text)
|
|
46
|
+
return [];
|
|
47
|
+
const matches = text.match(/@#([\w-]+)@/g);
|
|
48
|
+
if (!matches)
|
|
49
|
+
return [];
|
|
50
|
+
const vars = [];
|
|
51
|
+
for (const m of matches) {
|
|
52
|
+
const varName = m.slice(2, -1); // Remueve '@#' y '@'
|
|
53
|
+
if (!vars.includes(varName))
|
|
54
|
+
vars.push(varName);
|
|
55
|
+
}
|
|
56
|
+
return vars;
|
|
57
|
+
}
|
|
58
|
+
function getBFVarNames(salto) {
|
|
59
|
+
const armoNomSalto = (salto === null || salto === void 0 ? void 0 : salto.substring(0, 2)) == 'F:' ? salto.slice(2) : salto;
|
|
60
|
+
return {
|
|
61
|
+
listo: '$B.F:' + armoNomSalto,
|
|
62
|
+
agregar: '$B.F:' + armoNomSalto + '_agregar',
|
|
63
|
+
idFormulario: 'F:' + armoNomSalto
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
function replaceSpecialWords(text, nombre, apellido, resultado) {
|
|
67
|
+
function capitalizeFirstLetter(text) {
|
|
68
|
+
return text.charAt(0).toUpperCase() + text.slice(1);
|
|
69
|
+
}
|
|
70
|
+
var simplificatedChars = {
|
|
71
|
+
"#nombre": capitalizeFirstLetter(nombre),
|
|
72
|
+
"#apellido": capitalizeFirstLetter(apellido),
|
|
73
|
+
"#resultado": resultado,
|
|
74
|
+
};
|
|
75
|
+
var re = new RegExp(Object.keys(simplificatedChars).join("|"), "gi");
|
|
76
|
+
return text.replace(re, function (matched) {
|
|
77
|
+
return simplificatedChars[matched.toLowerCase()];
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
function numberOrStringIncIfArray(numberOrString, object) {
|
|
81
|
+
// @ts-expect-error estoy usando isNaN para ver si es o no un número sumable
|
|
82
|
+
if (isNaN(numberOrString)) {
|
|
83
|
+
return numberOrString;
|
|
84
|
+
}
|
|
85
|
+
return Number(numberOrString) + (object instanceof Array ? 1 : 0);
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1mb3JtdWxhcmlvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3VubG9nZ2VkL2hlbHBlcnMtZm9ybXVsYXJpby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRkFBb0Y7QUFDcEYsa0NBQWtDOzs7Ozs7Ozs7Ozs7O0lBYWxDLHNEQWFDO0lBR0QsMERBV0M7SUFFRCxzQ0FPQztJQUVELGtEQWNDO0lBRUQsNERBTUM7SUFyRUQscUZBQXFGO0lBQ3hFLFFBQUEscUJBQXFCLEdBQUcsdUNBQXVDLENBQUM7SUFFN0UsaURBQWlEO0lBQ3BDLFFBQUEsY0FBYyxHQUFHLG1CQUFtQixDQUFDO0lBQ3JDLFFBQUEsd0JBQXdCLEdBQUcsZUFBZSxDQUFDO0lBQzNDLFFBQUEsd0JBQXdCLEdBQUcsY0FBYyxDQUFDO0lBRXZELHVEQUF1RDtJQUN2RCxTQUFnQixxQkFBcUIsQ0FBQyxJQUFZO1FBQzlDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzVDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBRXhCLE1BQU0sR0FBRyxHQUFnQixFQUFFLENBQUM7UUFDNUIsS0FBSyxNQUFNLENBQUMsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDN0MsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQWMsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO29CQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDeEMsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFRCwwREFBMEQ7SUFDMUQsU0FBZ0IsdUJBQXVCLENBQUMsSUFBWTtRQUNoRCxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3JCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUV4QixNQUFNLElBQUksR0FBYSxFQUFFLENBQUM7UUFDMUIsS0FBSyxNQUFNLENBQUMsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUN0QixNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCO1lBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztnQkFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsU0FBZ0IsYUFBYSxDQUFDLEtBQW9CO1FBQzlDLE1BQU0sWUFBWSxHQUFHLENBQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDN0UsT0FBTztZQUNILEtBQUssRUFBRSxPQUFPLEdBQUcsWUFBMEI7WUFDM0MsT0FBTyxFQUFFLE9BQU8sR0FBRyxZQUFZLEdBQUcsVUFBd0I7WUFDMUQsWUFBWSxFQUFFLElBQUksR0FBRyxZQUE0QjtTQUNwRCxDQUFDO0lBQ04sQ0FBQztJQUVELFNBQWdCLG1CQUFtQixDQUFDLElBQVksRUFBRSxNQUFjLEVBQUUsUUFBZ0IsRUFBRSxTQUFpQjtRQUNqRyxTQUFTLHFCQUFxQixDQUFDLElBQVk7WUFDdkMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEQsQ0FBQztRQUNELElBQUksa0JBQWtCLEdBQTRCO1lBQzlDLFNBQVMsRUFBRSxxQkFBcUIsQ0FBQyxNQUFNLENBQUM7WUFDeEMsV0FBVyxFQUFFLHFCQUFxQixDQUFDLFFBQVEsQ0FBQztZQUM1QyxZQUFZLEVBQUUsU0FBUztTQUMxQixDQUFDO1FBQ0YsSUFBSSxFQUFFLEdBQUcsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVyRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLFVBQVUsT0FBTztZQUNyQyxPQUFPLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFNBQWdCLHdCQUF3QixDQUFDLGNBQStCLEVBQUUsTUFBc0I7UUFDNUYsNEVBQTRFO1FBQzVFLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDeEIsT0FBTyxjQUFjLENBQUM7UUFDMUIsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsTUFBTSxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gRnVuY2lvbmVzIHB1cmFzIGRlbCBmb3JtdWxhcmlvLCBzaW4gZGVwZW5kZW5jaWFzIGRlIFJlYWN0LCBSZWR1eCBuaSBkZWwgbmF2ZWdhZG9yXG4vLyAocGFyYSBwb2RlciB0ZXN0ZWFybGFzIGVuIG5vZGUpXG5cbmltcG9ydCB0eXBlIHsgSWRDb21vZGluLCBJZEZvcm11bGFyaW8sIElkVmFyaWFibGUgfSBmcm9tIFwiLi90aXBvc1wiO1xuXG4vLyBSZWdFeCBwcmluY2lwYWwgcGFyYSBkaXZpZGlyIGVsIHRleHRvIGNvbnNlcnZhbmRvIGxvcyB0b2tlbnMgZGVsaW1pdGFkb3MgcG9yIEAuLi5AXG5leHBvcnQgY29uc3QgUkVHRVhfU1BMSVRfQ09NT0RJTkVTID0gLyhAKD86Iz9bXFx3LV0rfFxcJFt0VF1bZUVdW21NXVteQF0qKUApL2c7XG5cbi8vIFN1Yi1SZWdFeHMgcGFyYSBpZGVudGlmaWNhciBlbCB0aXBvIGRlIGNvbW9kw61uXG5leHBvcnQgY29uc3QgSVNfVEVNX1BBVFRFUk4gPSAvXkBcXCQodGVtW15AXSopQCQvaTtcbmV4cG9ydCBjb25zdCBJU19WQVJJQUJMRV9IQVNIX1BBVFRFUk4gPSAvXkAjKFtcXHctXSspQCQvO1xuZXhwb3J0IGNvbnN0IElTX0NPTU9ESU5fUkVEVVhfUEFUVEVSTiA9IC9eQChbXFx3LV0rKUAkLztcblxuLyoqIEV4dHJhZSBub21icmVzIGRlIGNvbW9kaW5lcyBlc3TDoW5kYXIgKEBjb21vZGluQCkgKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWVyQ29tb2RpbmVzUmVkdXgodGV4dDogc3RyaW5nKTogSWRDb21vZGluW10ge1xuICAgIGlmICghdGV4dCB8fCAhdGV4dC5pbmNsdWRlcygnQCcpKSByZXR1cm4gW107XG4gICAgY29uc3QgbWF0Y2hlcyA9IHRleHQubWF0Y2goL0AoW2EtekEtWjAtOV8tXSspQC9nKTtcbiAgICBpZiAoIW1hdGNoZXMpIHJldHVybiBbXTtcblxuICAgIGNvbnN0IGlkczogSWRDb21vZGluW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IG0gb2YgbWF0Y2hlcykge1xuICAgICAgICBpZiAoIW0uc3RhcnRzV2l0aCgnQCMnKSAmJiAhbS5zdGFydHNXaXRoKCdAJCcpKSB7XG4gICAgICAgICAgICBjb25zdCBpZCA9IG0uc2xpY2UoMSwgLTEpIGFzIElkQ29tb2RpbjtcbiAgICAgICAgICAgIGlmICghaWRzLmluY2x1ZGVzKGlkKSkgaWRzLnB1c2goaWQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpZHM7XG59XG5cbi8qKiBFeHRyYWUgbm9tYnJlcyBkZSB2YXJpYWJsZXMgZGluw6FtaWNhcyAoQCN2YXJpYWJsZUApICovXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFlclZhcmlhYmxlc0ludGVyZXModGV4dDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGlmICghdGV4dCkgcmV0dXJuIFtdO1xuICAgIGNvbnN0IG1hdGNoZXMgPSB0ZXh0Lm1hdGNoKC9AIyhbXFx3LV0rKUAvZyk7XG4gICAgaWYgKCFtYXRjaGVzKSByZXR1cm4gW107XG5cbiAgICBjb25zdCB2YXJzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgbSBvZiBtYXRjaGVzKSB7XG4gICAgICAgIGNvbnN0IHZhck5hbWUgPSBtLnNsaWNlKDIsIC0xKTsgLy8gUmVtdWV2ZSAnQCMnIHkgJ0AnXG4gICAgICAgIGlmICghdmFycy5pbmNsdWRlcyh2YXJOYW1lKSkgdmFycy5wdXNoKHZhck5hbWUpO1xuICAgIH1cbiAgICByZXR1cm4gdmFycztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJGVmFyTmFtZXMoc2FsdG86IHN0cmluZyB8IG51bGwpIHtcbiAgICBjb25zdCBhcm1vTm9tU2FsdG8gPSBzYWx0bz8uc3Vic3RyaW5nKDAsIDIpID09ICdGOicgPyBzYWx0by5zbGljZSgyKSA6IHNhbHRvO1xuICAgIHJldHVybiB7XG4gICAgICAgIGxpc3RvOiAnJEIuRjonICsgYXJtb05vbVNhbHRvIGFzIElkVmFyaWFibGUsXG4gICAgICAgIGFncmVnYXI6ICckQi5GOicgKyBhcm1vTm9tU2FsdG8gKyAnX2FncmVnYXInIGFzIElkVmFyaWFibGUsXG4gICAgICAgIGlkRm9ybXVsYXJpbzogJ0Y6JyArIGFybW9Ob21TYWx0byBhcyBJZEZvcm11bGFyaW9cbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVwbGFjZVNwZWNpYWxXb3Jkcyh0ZXh0OiBzdHJpbmcsIG5vbWJyZTogc3RyaW5nLCBhcGVsbGlkbzogc3RyaW5nLCByZXN1bHRhZG86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgZnVuY3Rpb24gY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHRleHQ6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gdGV4dC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHRleHQuc2xpY2UoMSk7XG4gICAgfVxuICAgIHZhciBzaW1wbGlmaWNhdGVkQ2hhcnM6IHsgW2s6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICAgICAgICBcIiNub21icmVcIjogY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKG5vbWJyZSksXG4gICAgICAgIFwiI2FwZWxsaWRvXCI6IGNhcGl0YWxpemVGaXJzdExldHRlcihhcGVsbGlkbyksXG4gICAgICAgIFwiI3Jlc3VsdGFkb1wiOiByZXN1bHRhZG8sXG4gICAgfTtcbiAgICB2YXIgcmUgPSBuZXcgUmVnRXhwKE9iamVjdC5rZXlzKHNpbXBsaWZpY2F0ZWRDaGFycykuam9pbihcInxcIiksIFwiZ2lcIik7XG5cbiAgICByZXR1cm4gdGV4dC5yZXBsYWNlKHJlLCBmdW5jdGlvbiAobWF0Y2hlZCkge1xuICAgICAgICByZXR1cm4gc2ltcGxpZmljYXRlZENoYXJzW21hdGNoZWQudG9Mb3dlckNhc2UoKV07XG4gICAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBudW1iZXJPclN0cmluZ0luY0lmQXJyYXkobnVtYmVyT3JTdHJpbmc6IG51bWJlciB8IHN0cmluZywgb2JqZWN0OiBvYmplY3QgfCBhbnlbXSk6IChudW1iZXIgfCBzdHJpbmcpIHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIGVzdG95IHVzYW5kbyBpc05hTiBwYXJhIHZlciBzaSBlcyBvIG5vIHVuIG7Dum1lcm8gc3VtYWJsZVxuICAgIGlmIChpc05hTihudW1iZXJPclN0cmluZykpIHtcbiAgICAgICAgcmV0dXJuIG51bWJlck9yU3RyaW5nO1xuICAgIH1cbiAgICByZXR1cm4gTnVtYmVyKG51bWJlck9yU3RyaW5nKSArIChvYmplY3QgaW5zdGFuY2VvZiBBcnJheSA/IDEgOiAwKTtcbn1cbiJdfQ==
|