dmencu 2.0.2-alpha → 2.0.4

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 (41) hide show
  1. package/dist/client/client/client.js +18 -10
  2. package/dist/client/server/types-dmencu.d.ts +0 -1
  3. package/dist/client/server/types-dmencu.js +1 -1
  4. package/dist/client/unlogged/abrir-formulario.d.ts +0 -1
  5. package/dist/client/unlogged/abrir-formulario.js +5 -5
  6. package/dist/client/unlogged/bypass-formulario.d.ts +1 -0
  7. package/dist/client/unlogged/bypass-formulario.js +3 -2
  8. package/dist/client/unlogged/render-formulario.tsx +13 -6
  9. package/dist/client/unlogged/tipos.d.ts +1 -0
  10. package/dist/client/unlogged/tipos.js +1 -1
  11. package/dist/server/server/app-dmencu.js +14 -7
  12. package/dist/server/server/procedures-dmencu.js +11 -1
  13. package/dist/server/server/table-comunas copy.d.ts +2 -0
  14. package/dist/server/server/table-comunas copy.js +28 -0
  15. package/dist/server/server/table-modos_dm.d.ts +2 -0
  16. package/dist/server/server/table-modos_dm.js +28 -0
  17. package/dist/server/server/types-dmencu.d.ts +0 -1
  18. package/dist/server/server/types-dmencu.js +1 -1
  19. package/dist/server/unlogged/tipos.d.ts +1 -0
  20. package/dist/server/unlogged/tipos.js +1 -1
  21. package/dist/unlogged/unlogged/abrir-formulario.d.ts +12 -0
  22. package/dist/unlogged/unlogged/abrir-formulario.js +109 -0
  23. package/dist/unlogged/unlogged/adapt.d.ts +0 -0
  24. package/dist/unlogged/unlogged/adapt.js +8 -0
  25. package/dist/unlogged/unlogged/bypass-formulario.d.ts +203 -0
  26. package/dist/unlogged/unlogged/bypass-formulario.js +1101 -0
  27. package/dist/unlogged/unlogged/redux-formulario.d.ts +349 -0
  28. package/dist/unlogged/unlogged/redux-formulario.js +318 -0
  29. package/dist/unlogged/unlogged/render-formulario.d.ts +86 -0
  30. package/dist/unlogged/unlogged/render-formulario.js +1701 -0
  31. package/dist/unlogged/unlogged/render-formulario.tsx +13 -6
  32. package/dist/unlogged/unlogged/render-general.d.ts +127 -0
  33. package/dist/unlogged/unlogged/render-general.js +176 -0
  34. package/dist/unlogged/unlogged/server/types-dmencu.d.ts +0 -1
  35. package/dist/unlogged/unlogged/server/types-dmencu.js +1 -1
  36. package/dist/unlogged/unlogged/tipos.d.ts +487 -0
  37. package/dist/unlogged/unlogged/tipos.js +22 -0
  38. package/dist/unlogged/unlogged/unlogged.d.ts +1 -0
  39. package/dist/unlogged/unlogged/unlogged.js +188 -0
  40. package/install/modos_dm.tab +3 -0
  41. package/package.json +1 -1
@@ -0,0 +1,188 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ (function (factory) {
11
+ if (typeof module === "object" && typeof module.exports === "object") {
12
+ var v = factory(require, exports);
13
+ if (v !== undefined) module.exports = v;
14
+ }
15
+ else if (typeof define === "function" && define.amd) {
16
+ define(["require", "exports", "js-to-html", "./render-formulario", "./abrir-formulario", "./bypass-formulario"], factory);
17
+ }
18
+ })(function (require, exports) {
19
+ "use strict";
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.awaitForCacheLayout = void 0;
22
+ const js_to_html_1 = require("js-to-html");
23
+ const render_formulario_1 = require("./render-formulario");
24
+ const abrir_formulario_1 = require("./abrir-formulario");
25
+ const bypass_formulario_1 = require("./bypass-formulario");
26
+ const ServiceWorkerAdmin = require("service-worker-admin");
27
+ function siExisteId(id, hacer) {
28
+ var elemento = document.getElementById(id);
29
+ if (elemento != null) {
30
+ hacer(elemento);
31
+ }
32
+ }
33
+ function mostrarElementoId(id, mostrar) {
34
+ siExisteId(id, e => e.style.display = mostrar ? 'block' : 'none');
35
+ }
36
+ const URL_DM = 'campo';
37
+ var reloadWithoutHash = () => {
38
+ history.replaceState(null, '', `${location.origin + location.pathname}/../${URL_DM}`);
39
+ location.reload();
40
+ };
41
+ window.addEventListener('load', function () {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ var layout = document.getElementById('total-layout');
44
+ if (!layout) {
45
+ console.log('no encuentro el DIV.total-layout');
46
+ yield myOwn.ready;
47
+ layout = document.getElementById('total-layout');
48
+ }
49
+ yield myOwn.ready;
50
+ if (location.pathname.endsWith('/salvar')) {
51
+ try {
52
+ for (let x in localStorage) {
53
+ console.log(localStorage[x]);
54
+ yield myOwn.ajax.dm_rescatar({ localStorageItem: localStorage[x], localStorageItemKey: x });
55
+ layout.append(js_to_html_1.html.p(`item "${x}" de localStogage guardado.`).create());
56
+ }
57
+ layout.append(js_to_html_1.html.p(`todos los items fueron salvados.`).create());
58
+ }
59
+ catch (err) {
60
+ layout.append(js_to_html_1.html.p(`se produjo un error al salvar los datos del dm.`).create());
61
+ }
62
+ try {
63
+ var registrations = yield navigator.serviceWorker.getRegistrations();
64
+ for (let registration of registrations) {
65
+ yield registration.unregister();
66
+ }
67
+ layout.append(js_to_html_1.html.p(`todos los sw fueron desinstalados.`).create());
68
+ }
69
+ catch (err) {
70
+ layout.append(js_to_html_1.html.p(`se produjo un error al desinstalar los sw.`).create());
71
+ }
72
+ }
73
+ else {
74
+ layout.innerHTML = `
75
+ <span id="mini-console"></span>
76
+ <div id=nueva-version-instalada style="position:fixed; top:5px; z-index:9500; display:none">
77
+ <span>Hay una nueva versión instalada </span><button id=refrescar><span class=rotar>↻</span> refrescar</button>
78
+ </div>
79
+ <div id=instalado style="display:none">
80
+ <div id=main_layout></div>
81
+ </div>
82
+ <div id=instalando style="display:none; margin-top:30px">
83
+ <div id=volver-de-instalacion style="position:fixed; top:5px; z-index:9500;">
84
+ <span id=volver-de-instalacion-por-que></span>
85
+ <button id=volver-de-instalacion-como>volver</button>
86
+ </div>
87
+ <div id=archivos>
88
+ <h2>progreso instalacion</h2>
89
+ </div>
90
+ </div>
91
+ `;
92
+ if (location.pathname.endsWith(`/${URL_DM}`)) {
93
+ var startApp = () => __awaiter(this, void 0, void 0, function* () { });
94
+ var datosByPass = my.getLocalVar(abrir_formulario_1.GLOVAR_DATOSBYPASS);
95
+ if (datosByPass) {
96
+ startApp = () => __awaiter(this, void 0, void 0, function* () {
97
+ var version = yield swa.getSW('version');
98
+ myOwn.setLocalVar('app-cache-version', version);
99
+ //@ts-ignore existe
100
+ (0, abrir_formulario_1.cargarEstructura)(my.getLocalVar(abrir_formulario_1.GLOVAR_ESTRUCTURA));
101
+ (0, abrir_formulario_1.cargarHojaDeRuta)(Object.assign(Object.assign({}, datosByPass), { modoAlmacenamiento: 'local' }));
102
+ (0, render_formulario_1.desplegarFormularioActual)({ modoDemo: false });
103
+ my.menuName = URL_DM;
104
+ });
105
+ }
106
+ else {
107
+ startApp = () => __awaiter(this, void 0, void 0, function* () {
108
+ try {
109
+ const modoDmDefecto = yield my.ajax.modo_dm_defecto_obtener({});
110
+ my.setLocalVar(bypass_formulario_1.MODO_DM_LOCALSTORAGE_KEY, my.getLocalVar(bypass_formulario_1.MODO_DM_LOCALSTORAGE_KEY) || modoDmDefecto);
111
+ }
112
+ catch (err) {
113
+ console.log('no se pudo traer el modo por defecto');
114
+ }
115
+ //@ts-ignore existe
116
+ (0, render_formulario_1.dmPantallaInicialSinCarga)();
117
+ });
118
+ }
119
+ var refrescarStatus = function (showScreen, newVersionAvaiable, installing) {
120
+ return __awaiter(this, void 0, void 0, function* () {
121
+ var buscandoActualizacion = location.href.endsWith('#inst=1');
122
+ document.getElementById('nueva-version-instalada').style.display = newVersionAvaiable == 'yes' ? '' : 'none';
123
+ document.getElementById('volver-de-instalacion').style.display = newVersionAvaiable == 'yes' ? 'none' : '';
124
+ if (showScreen == 'app' && !buscandoActualizacion) {
125
+ document.getElementById('instalado').style.display = '';
126
+ document.getElementById('instalando').style.display = 'none';
127
+ }
128
+ else {
129
+ document.getElementById('instalado').style.display = 'none';
130
+ document.getElementById('instalando').style.display = '';
131
+ }
132
+ });
133
+ };
134
+ var swa = new ServiceWorkerAdmin();
135
+ swa.installOrActivate({
136
+ onEachFile: (url, error) => __awaiter(this, void 0, void 0, function* () {
137
+ console.log('file: ', url);
138
+ document.getElementById('archivos').append(js_to_html_1.html.div(url).create());
139
+ }),
140
+ onInfoMessage: (m) => console.log('message: ', m),
141
+ onError: (err, context) => __awaiter(this, void 0, void 0, function* () {
142
+ console.log('error: ' + (context ? ` en (${context})` : ''), err);
143
+ console.log(context, err, 'error-console');
144
+ console.log('error al descargar cache', err.message);
145
+ if (context != 'initializing service-worker') {
146
+ var layout = yield exports.awaitForCacheLayout;
147
+ var cacheStatusElement = document.getElementById('cache-status');
148
+ if (!cacheStatusElement) {
149
+ cacheStatusElement = js_to_html_1.html.p({ id: 'cache-status' }).create();
150
+ layout.insertBefore(cacheStatusElement, layout.firstChild);
151
+ }
152
+ cacheStatusElement.classList.remove('warning');
153
+ cacheStatusElement.classList.remove('all-ok');
154
+ cacheStatusElement.classList.add('danger');
155
+ cacheStatusElement.textContent = 'error al descargar la aplicación. ' + err.message;
156
+ }
157
+ }),
158
+ onReadyToStart: startApp,
159
+ onStateChange: refrescarStatus
160
+ });
161
+ }
162
+ document.getElementById('refrescar').addEventListener('click', () => {
163
+ reloadWithoutHash();
164
+ });
165
+ document.getElementById('volver-de-instalacion-como').addEventListener('click', () => {
166
+ reloadWithoutHash();
167
+ });
168
+ }
169
+ });
170
+ });
171
+ exports.awaitForCacheLayout = function prepareLayoutForCache() {
172
+ return __awaiter(this, void 0, void 0, function* () {
173
+ yield new Promise(function (resolve, _reject) {
174
+ window.addEventListener('load', resolve);
175
+ });
176
+ var layout = (document.getElementById('cache-layout') || document.createElement('div'));
177
+ if (!layout.id) {
178
+ layout.id = 'cache-layout';
179
+ layout.appendChild(js_to_html_1.html.div({ id: 'app-versions' }).create());
180
+ layout.appendChild(js_to_html_1.html.div({ id: 'app-status' }).create());
181
+ document.body.appendChild(layout.appendChild(js_to_html_1.html.div({ id: 'cache-log' }).create()));
182
+ document.body.insertBefore(layout, document.body.firstChild);
183
+ }
184
+ return layout;
185
+ });
186
+ }();
187
+ });
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5sb2dnZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdW5sb2dnZWQvdW5sb2dnZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBQUEsWUFBWSxDQUFDOzs7SUFDYiwyQ0FBaUM7SUFDakMsMkRBQTJGO0lBQzNGLHlEQUErRztJQUMvRywyREFBK0Q7SUFFL0QsTUFBTSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUUzRCxTQUFTLFVBQVUsQ0FBQyxFQUFVLEVBQUUsS0FBa0M7UUFDOUQsSUFBSSxRQUFRLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzQyxJQUFHLFFBQVEsSUFBRSxJQUFJLEVBQUMsQ0FBQztZQUNmLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwQixDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVMsaUJBQWlCLENBQUMsRUFBUyxFQUFFLE9BQWU7UUFDakQsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUEsRUFBRSxDQUFBLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFDLE9BQU8sQ0FBQSxDQUFDLENBQUEsT0FBTyxDQUFBLENBQUMsQ0FBQSxNQUFNLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBQ0QsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDO0lBRXZCLElBQUksaUJBQWlCLEdBQUcsR0FBRSxFQUFFO1FBQ3hCLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxNQUFNLEdBQUMsUUFBUSxDQUFDLFFBQVEsT0FBTyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3BGLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtJQUNyQixDQUFDLENBQUE7SUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFOztZQUM1QixJQUFJLE1BQU0sR0FBRyxRQUFR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QUMsWUFBWSxDQUFDLE1BQU0sRUFBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1lBQy9ELENBQUM7WUFDRCxPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDO0tBQUEsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcbmltcG9ydCB7aHRtbH0gIGZyb20gJ2pzLXRvLWh0bWwnO1xyXG5pbXBvcnQgeyBkZXNwbGVnYXJGb3JtdWxhcmlvQWN0dWFsLCBkbVBhbnRhbGxhSW5pY2lhbFNpbkNhcmdhIH0gZnJvbSAnLi9yZW5kZXItZm9ybXVsYXJpbyc7XHJcbmltcG9ydCB7IGNhcmdhckVzdHJ1Y3R1cmEsIGNhcmdhckhvamFEZVJ1dGEsIEdMT1ZBUl9FU1RSVUNUVVJBLCBHTE9WQVJfREFUT1NCWVBBU1MgfSBmcm9tICcuL2FicmlyLWZvcm11bGFyaW8nO1xyXG5pbXBvcnQgeyBNT0RPX0RNX0xPQ0FMU1RPUkFHRV9LRVkgfSBmcm9tICcuL2J5cGFzcy1mb3JtdWxhcmlvJztcclxuaW1wb3J0IHsgTW9kb0RNIH0gZnJvbSAnLi90aXBvcyc7XHJcbmNvbnN0IFNlcnZpY2VXb3JrZXJBZG1pbiA9IHJlcXVpcmUoXCJzZXJ2aWNlLXdvcmtlci1hZG1pblwiKTtcclxuXHJcbmZ1bmN0aW9uIHNpRXhpc3RlSWQoaWQ6IHN0cmluZywgaGFjZXI6IChhcmcwOiBIVE1MRWxlbWVudCkgPT4gdm9pZCl7XHJcbiAgICB2YXIgZWxlbWVudG8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7XHJcbiAgICBpZihlbGVtZW50byE9bnVsbCl7XHJcbiAgICAgICAgaGFjZXIoZWxlbWVudG8pO1xyXG4gICAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBtb3N0cmFyRWxlbWVudG9JZChpZDpzdHJpbmcsIG1vc3RyYXI6Ym9vbGVhbil7XHJcbiAgICBzaUV4aXN0ZUlkKGlkLCBlPT5lLnN0eWxlLmRpc3BsYXk9bW9zdHJhcj8nYmxvY2snOidub25lJyk7XHJcbn1cclxuY29uc3QgVVJMX0RNID0gJ2NhbXBvJztcclxuXHJcbnZhciByZWxvYWRXaXRob3V0SGFzaCA9ICgpPT57XHJcbiAgICBoaXN0b3J5LnJlcGxhY2VTdGF0ZShudWxsLCAnJywgYCR7bG9jYXRpb24ub3JpZ2luK2xvY2F0aW9uLnBhdGhuYW1lfS8uLi8ke1VSTF9ETX1gKTtcclxuICAgIGxvY2F0aW9uLnJlbG9hZCgpXHJcbn1cclxuXHJcbndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMgZnVuY3Rpb24oKXtcclxuICAgIHZhciBsYXlvdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG90YWwtbGF5b3V0JykhO1xyXG4gICAgaWYoIWxheW91dCl7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ25vIGVuY3VlbnRybyBlbCBESVYudG90YWwtbGF5b3V0JylcclxuICAgICAgICBhd2FpdCBteU93bi5yZWFkeTtcclxuICAgICAgICBsYXlvdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG90YWwtbGF5b3V0JykhO1xyXG4gICAgfVxyXG4gICAgYXdhaXQgbXlPd24ucmVhZHk7XHJcbiAgICBpZihsb2NhdGlvbi5wYXRobmFtZS5lbmRzV2l0aCgnL3NhbHZhcicpKXtcclxuICAgICAgICB0cnl7XHJcbiAgICAgICAgICAgIGZvciAobGV0IHggaW4gbG9jYWxTdG9yYWdlKXtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGxvY2FsU3RvcmFnZVt4XSk7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCBteU93bi5hamF4LmRtX3Jlc2NhdGFyKHtsb2NhbFN0b3JhZ2VJdGVtOmxvY2FsU3RvcmFnZVt4XSwgbG9jYWxTdG9yYWdlSXRlbUtleTp4fSlcclxuICAgICAgICAgICAgICAgIGxheW91dC5hcHBlbmQoXHJcbiAgICAgICAgICAgICAgICAgICAgaHRtbC5wKGBpdGVtIFwiJHt4fVwiIGRlIGxvY2FsU3RvZ2FnZSBndWFyZGFkby5gKS5jcmVhdGUoKVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxheW91dC5hcHBlbmQoXHJcbiAgICAgICAgICAgICAgICBodG1sLnAoYHRvZG9zIGxvcyBpdGVtcyBmdWVyb24gc2FsdmFkb3MuYCkuY3JlYXRlKClcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgIH1jYXRjaChlcnIpe1xyXG4gICAgICAgICAgICBsYXlvdXQuYXBwZW5kKFxyXG4gICAgICAgICAgICAgICAgaHRtbC5wKGBzZSBwcm9kdWpvIHVuIGVycm9yIGFsIHNhbHZhciBsb3MgZGF0b3MgZGVsIGRtLmApLmNyZWF0ZSgpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICB9XHJcbiAgICAgICAgdHJ5e1xyXG4gICAgICAgICAgICB2YXIgcmVnaXN0cmF0aW9ucyA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlvbnMoKTtcclxuICAgICAgICAgICAgZm9yKGxldCByZWdpc3RyYXRpb24gb2YgcmVnaXN0cmF0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxheW91dC5hcHBlbmQoXHJcbiAgICAgICAgICAgICAgICBodG1sLnAoYHRvZG9zIGxvcyBzdyBmdWVyb24gZGVzaW5zdGFsYWRvcy5gKS5jcmVhdGUoKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgfWNhdGNoKGVycil7XHJcbiAgICAgICAgICAgIGxheW91dC5hcHBlbmQoXHJcbiAgICAgICAgICAgICAgICBodG1sLnAoYHNlIHByb2R1am8gdW4gZXJyb3IgYWwgZGVzaW5zdGFsYXIgbG9zIHN3LmApLmNyZWF0ZSgpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICB9XHJcbiAgICB9ZWxzZXtcclxuICAgICAgICBsYXlvdXQuaW5uZXJIVE1MPWBcclxuICAgICAgICAgICAgPHNwYW4gaWQ9XCJtaW5pLWNvbnNvbGVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDxkaXYgaWQ9bnVldmEtdmVyc2lvbi1pbnN0YWxhZGEgc3R5bGU9XCJwb3NpdGlvbjpmaXhlZDsgdG9wOjVweDsgei1pbmRleDo5NTAwOyBkaXNwbGF5Om5vbmVcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkhheSB1bmEgbnVldmEgdmVyc2nDs24gaW5zdGFsYWRhIDwvc3Bhbj48YnV0dG9uIGlkPXJlZnJlc2Nhcj48c3BhbiBjbGFzcz1yb3Rhcj7ihrs8L3NwYW4+IHJlZnJlc2NhcjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBpZD1pbnN0YWxhZG8gc3R5bGU9XCJkaXNwbGF5Om5vbmVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9bWFpbl9sYXlvdXQ+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGlkPWluc3RhbGFuZG8gc3R5bGU9XCJkaXNwbGF5Om5vbmU7IG1hcmdpbi10b3A6MzBweFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD12b2x2ZXItZGUtaW5zdGFsYWNpb24gc3R5bGU9XCJwb3NpdGlvbjpmaXhlZDsgdG9wOjVweDsgei1pbmRleDo5NTAwO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGlkPXZvbHZlci1kZS1pbnN0YWxhY2lvbi1wb3ItcXVlPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPXZvbHZlci1kZS1pbnN0YWxhY2lvbi1jb21vPnZvbHZlcjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPWFyY2hpdm9zPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoMj5wcm9ncmVzbyBpbnN0YWxhY2lvbjwvaDI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgYDtcclxuICAgICAgICBpZihsb2NhdGlvbi5wYXRobmFtZS5lbmRzV2l0aChgLyR7VVJMX0RNfWApKXtcclxuICAgICAgICAgICAgdmFyIHN0YXJ0QXBwOigpPT5Qcm9taXNlPHZvaWQ+ID0gYXN5bmMgKCk9Pnt9O1xyXG4gICAgICAgICAgICB2YXIgZGF0b3NCeVBhc3MgPSBteS5nZXRMb2NhbFZhcihHTE9WQVJfREFUT1NCWVBBU1MpO1xyXG4gICAgICAgICAgICBpZihkYXRvc0J5UGFzcyl7XHJcbiAgICAgICAgICAgICAgICBzdGFydEFwcCA9IGFzeW5jICgpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHZlcnNpb24gPSBhd2FpdCBzd2EuZ2V0U1coJ3ZlcnNpb24nKTtcclxuICAgICAgICAgICAgICAgICAgICBteU93bi5zZXRMb2NhbFZhcignYXBwLWNhY2hlLXZlcnNpb24nLCB2ZXJzaW9uKTtcclxuICAgICAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmUgZXhpc3RlIFxyXG4gICAgICAgICAgICAgICAgICAgIGNhcmdhckVzdHJ1Y3R1cmEobXkuZ2V0TG9jYWxWYXIoR0xPVkFSX0VTVFJVQ1RVUkEpKTtcclxuICAgICAgICAgICAgICAgICAgICBjYXJnYXJIb2phRGVSdXRhKHsgLi4uZGF0b3NCeVBhc3MsIG1vZG9BbG1hY2VuYW1pZW50bzogJ2xvY2FsJyB9KTtcclxuICAgICAgICAgICAgICAgICAgICBkZXNwbGVnYXJGb3JtdWxhcmlvQWN0dWFsKHttb2RvRGVtbzogZmFsc2V9KTtcclxuICAgICAgICAgICAgICAgICAgICBteS5tZW51TmFtZSA9IFVSTF9ETTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICBzdGFydEFwcCA9IGFzeW5jICgpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgdHJ5e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtb2RvRG1EZWZlY3RvID0gYXdhaXQgbXkuYWpheC5tb2RvX2RtX2RlZmVjdG9fb2J0ZW5lcih7fSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG15LnNldExvY2FsVmFyKE1PRE9fRE1fTE9DQUxTVE9SQUdFX0tFWSwgbXkuZ2V0TG9jYWxWYXIoTU9ET19ETV9MT0NBTFNUT1JBR0VfS0VZKSB8fCBtb2RvRG1EZWZlY3RvKTtcclxuICAgICAgICAgICAgICAgICAgICB9Y2F0Y2goZXJyKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ25vIHNlIHB1ZG8gdHJhZXIgZWwgbW9kbyBwb3IgZGVmZWN0bycpXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZSBleGlzdGUgXHJcbiAgICAgICAgICAgICAgICAgICAgZG1QYW50YWxsYUluaWNpYWxTaW5DYXJnYSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHZhciByZWZyZXNjYXJTdGF0dXM9YXN5bmMgZnVuY3Rpb24oc2hvd1NjcmVlbiwgbmV3VmVyc2lvbkF2YWlhYmxlLCBpbnN0YWxsaW5nKXtcclxuICAgICAgICAgICAgICAgIHZhciBidXNjYW5kb0FjdHVhbGl6YWNpb24gPSBsb2NhdGlvbi5ocmVmLmVuZHNXaXRoKCcjaW5zdD0xJyk7XHJcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbnVldmEtdmVyc2lvbi1pbnN0YWxhZGEnKSEuc3R5bGUuZGlzcGxheT1uZXdWZXJzaW9uQXZhaWFibGU9PSd5ZXMnPycnOidub25lJztcclxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd2b2x2ZXItZGUtaW5zdGFsYWNpb24nKSEuc3R5bGUuZGlzcGxheT1uZXdWZXJzaW9uQXZhaWFibGU9PSd5ZXMnPydub25lJzonJztcclxuICAgICAgICAgICAgICAgIGlmKHNob3dTY3JlZW49PSdhcHAnICYmICFidXNjYW5kb0FjdHVhbGl6YWNpb24pe1xyXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnN0YWxhZG8nKSEuc3R5bGUuZGlzcGxheT0nJztcclxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5zdGFsYW5kbycpIS5zdHlsZS5kaXNwbGF5PSdub25lJztcclxuICAgICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnN0YWxhZG8nKSEuc3R5bGUuZGlzcGxheT0nbm9uZSc7XHJcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2luc3RhbGFuZG8nKSEuc3R5bGUuZGlzcGxheT0nJztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgdmFyIHN3YSA9IG5ldyBTZXJ2aWNlV29ya2VyQWRtaW4oKTtcclxuICAgICAgICAgICAgc3dhLmluc3RhbGxPckFjdGl2YXRlKHtcclxuICAgICAgICAgICAgICAgIG9uRWFjaEZpbGU6IGFzeW5jICh1cmwsIGVycm9yKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdmaWxlOiAnLHVybCk7XHJcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FyY2hpdm9zJykhLmFwcGVuZChcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHRtbC5kaXYodXJsKS5jcmVhdGUoKVxyXG4gICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBvbkluZm9NZXNzYWdlOiAobSk9PmNvbnNvbGUubG9nKCdtZXNzYWdlOiAnLCBtKSxcclxuICAgICAgICAgICAgICAgIG9uRXJyb3I6IGFzeW5jIChlcnIsIGNvbnRleHQpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2Vycm9yOiAnKyhjb250ZXh0P2AgZW4gKCR7Y29udGV4dH0pYDonJyksIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coY29udGV4dCwgZXJyLCAnZXJyb3ItY29uc29sZScpXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2Vycm9yIGFsIGRlc2NhcmdhciBjYWNoZScsIGVyci5tZXNzYWdlKVxyXG4gICAgICAgICAgICAgICAgICAgIGlmKGNvbnRleHQhPSdpbml0aWFsaXppbmcgc2VydmljZS13b3JrZXInKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGxheW91dCA9IGF3YWl0IGF3YWl0Rm9yQ2FjaGVMYXlvdXQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjYWNoZVN0YXR1c0VsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FjaGUtc3RhdHVzJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFjYWNoZVN0YXR1c0VsZW1lbnQpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVTdGF0dXNFbGVtZW50ID0gaHRtbC5wKHtpZDonY2FjaGUtc3RhdHVzJ30pLmNyZWF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0Lmluc2VydEJlZm9yZShjYWNoZVN0YXR1c0VsZW1lbnQsIGxheW91dC5maXJzdENoaWxkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVN0YXR1c0VsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnd2FybmluZycpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlU3RhdHVzRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdhbGwtb2snKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVN0YXR1c0VsZW1lbnQuY2xhc3NMaXN0LmFkZCgnZGFuZ2VyJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVTdGF0dXNFbGVtZW50LnRleHRDb250ZW50PSdlcnJvciBhbCBkZXNjYXJnYXIgbGEgYXBsaWNhY2nDs24uICcgKyBlcnIubWVzc2FnZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgb25SZWFkeVRvU3RhcnQ6c3RhcnRBcHAsXHJcbiAgICAgICAgICAgICAgICBvblN0YXRlQ2hhbmdlOnJlZnJlc2NhclN0YXR1c1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlZnJlc2NhcicpIS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsKCk9PntcclxuICAgICAgICAgICAgcmVsb2FkV2l0aG91dEhhc2goKVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd2b2x2ZXItZGUtaW5zdGFsYWNpb24tY29tbycpIS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsKCk9PntcclxuICAgICAgICAgICAgcmVsb2FkV2l0aG91dEhhc2goKVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59KVxyXG5cclxuZXhwb3J0IHZhciBhd2FpdEZvckNhY2hlTGF5b3V0ID0gYXN5bmMgZnVuY3Rpb24gcHJlcGFyZUxheW91dEZvckNhY2hlKCl7XHJcbiAgICBhd2FpdCBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCBfcmVqZWN0KXtcclxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcscmVzb2x2ZSk7XHJcbiAgICB9KTtcclxuICAgIHZhciBsYXlvdXQ9KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYWNoZS1sYXlvdXQnKXx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpO1xyXG4gICAgaWYoIWxheW91dC5pZCl7XHJcbiAgICAgICAgbGF5b3V0LmlkPSdjYWNoZS1sYXlvdXQnO1xyXG4gICAgICAgIGxheW91dC5hcHBlbmRDaGlsZChodG1sLmRpdih7aWQ6J2FwcC12ZXJzaW9ucyd9KS5jcmVhdGUoKSk7XHJcbiAgICAgICAgbGF5b3V0LmFwcGVuZENoaWxkKGh0bWwuZGl2KHtpZDonYXBwLXN0YXR1cyd9KS5jcmVhdGUoKSk7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsYXlvdXQuYXBwZW5kQ2hpbGQoaHRtbC5kaXYoe2lkOidjYWNoZS1sb2cnfSkuY3JlYXRlKCkpKTtcclxuICAgICAgICBkb2N1bWVudC5ib2R5Lmluc2VydEJlZm9yZShsYXlvdXQsZG9jdW1lbnQuYm9keS5maXJzdENoaWxkKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGxheW91dDtcclxufSgpOyJdfQ==
@@ -0,0 +1,3 @@
1
+ modo_dm|descripcion
2
+ produc|producción
3
+ capa|capacitación
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": "2.0.2-alpha",
4
+ "version": "2.0.4",
5
5
  "author": "Codenautas <codenautas@googlegroups.com>",
6
6
  "license": "MIT",
7
7
  "main": "dist/server/server/app-dmencu.js",