sf-crud 12.0.1-beta3 → 12.0.1-beta30

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 (29) hide show
  1. package/bundles/sf-crud.umd.js +625 -87
  2. package/bundles/sf-crud.umd.js.map +1 -1
  3. package/esm2015/lib/components/control/control.component.js +74 -9
  4. package/esm2015/lib/components/registro/registro.component.js +179 -25
  5. package/esm2015/lib/components/registro-child/registro-child.component.js +196 -0
  6. package/esm2015/lib/components/tablero/tablero.component.js +60 -18
  7. package/esm2015/lib/sf-crud.module.js +32 -12
  8. package/esm2015/lib/sf-crud.service.js +16 -2
  9. package/esm2015/lib/shared/models/crud-config.model.js +43 -0
  10. package/esm2015/lib/shared/models/data-temp-crud.model.js +6 -0
  11. package/esm2015/lib/shared/models/shema.model.js +7 -0
  12. package/esm2015/lib/shared/services/general.service.js +1 -1
  13. package/esm2015/public-api.js +2 -1
  14. package/fesm2015/sf-crud.js +534 -62
  15. package/fesm2015/sf-crud.js.map +1 -1
  16. package/lib/components/control/control.component.d.ts +11 -2
  17. package/lib/components/registro/registro.component.d.ts +30 -9
  18. package/lib/components/registro-child/registro-child.component.d.ts +35 -0
  19. package/lib/components/tablero/tablero.component.d.ts +15 -4
  20. package/lib/sf-crud.module.d.ts +77 -73
  21. package/lib/sf-crud.service.d.ts +4 -0
  22. package/lib/shared/{services/models → models}/crud-config.model.d.ts +7 -1
  23. package/lib/shared/models/data-temp-crud.model.d.ts +4 -0
  24. package/lib/shared/{services/models → models}/shema.model.d.ts +1 -0
  25. package/lib/shared/services/general.service.d.ts +1 -1
  26. package/package.json +1 -1
  27. package/public-api.d.ts +1 -0
  28. package/esm2015/lib/shared/services/models/crud-config.model.js +0 -43
  29. package/esm2015/lib/shared/services/models/shema.model.js +0 -7
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common/http'), require('@angular/router'), require('primeng/blockui'), require('primeng/toolbar'), require('primeng/table'), require('@angular/common'), require('primeng/api'), require('primeng/button'), require('primeng/ripple'), require('primeng/inputtext'), require('primeng/tooltip'), require('jsonpath'), require('primeng/toast'), require('primeng/dropdown'), require('primeng/calendar'), require('primeng/inputnumber'), require('@angular/forms'), require('primeng/accordion'), require('primeng/avatar'), require('primeng/avatargroup'), require('primeng/badge'), require('primeng/breadcrumb'), require('primeng/card'), require('primeng/carousel'), require('primeng/cascadeselect'), require('primeng/checkbox'), require('primeng/chip'), require('primeng/chips'), require('primeng/codehighlighter'), require('primeng/confirmdialog'), require('primeng/confirmpopup'), require('primeng/colorpicker'), require('primeng/contextmenu'), require('primeng/dialog'), require('primeng/divider'), require('primeng/fieldset'), require('primeng/fileupload'), require('primeng/galleria'), require('primeng/inplace'), require('primeng/inputmask'), require('primeng/inputswitch'), require('primeng/inputtextarea'), require('primeng/knob'), require('primeng/lightbox'), require('primeng/listbox'), require('primeng/megamenu'), require('primeng/menu'), require('primeng/menubar'), require('primeng/messages'), require('primeng/message'), require('primeng/multiselect'), require('primeng/organizationchart'), require('primeng/overlaypanel'), require('primeng/panel'), require('primeng/panelmenu'), require('primeng/password'), require('primeng/progressbar'), require('primeng/radiobutton'), require('primeng/rating'), require('primeng/scrollpanel'), require('primeng/scrolltop'), require('primeng/selectbutton'), require('primeng/sidebar'), require('primeng/skeleton'), require('primeng/slidemenu'), require('primeng/slider'), require('primeng/splitter'), require('primeng/steps'), require('primeng/tabmenu'), require('primeng/tabview'), require('primeng/tag'), require('primeng/terminal'), require('primeng/tieredmenu'), require('primeng/timeline'), require('primeng/togglebutton'), require('primeng/tree')) :
3
- typeof define === 'function' && define.amd ? define('sf-crud', ['exports', '@angular/core', '@angular/common/http', '@angular/router', 'primeng/blockui', 'primeng/toolbar', 'primeng/table', '@angular/common', 'primeng/api', 'primeng/button', 'primeng/ripple', 'primeng/inputtext', 'primeng/tooltip', 'jsonpath', 'primeng/toast', 'primeng/dropdown', 'primeng/calendar', 'primeng/inputnumber', '@angular/forms', 'primeng/accordion', 'primeng/avatar', 'primeng/avatargroup', 'primeng/badge', 'primeng/breadcrumb', 'primeng/card', 'primeng/carousel', 'primeng/cascadeselect', 'primeng/checkbox', 'primeng/chip', 'primeng/chips', 'primeng/codehighlighter', 'primeng/confirmdialog', 'primeng/confirmpopup', 'primeng/colorpicker', 'primeng/contextmenu', 'primeng/dialog', 'primeng/divider', 'primeng/fieldset', 'primeng/fileupload', 'primeng/galleria', 'primeng/inplace', 'primeng/inputmask', 'primeng/inputswitch', 'primeng/inputtextarea', 'primeng/knob', 'primeng/lightbox', 'primeng/listbox', 'primeng/megamenu', 'primeng/menu', 'primeng/menubar', 'primeng/messages', 'primeng/message', 'primeng/multiselect', 'primeng/organizationchart', 'primeng/overlaypanel', 'primeng/panel', 'primeng/panelmenu', 'primeng/password', 'primeng/progressbar', 'primeng/radiobutton', 'primeng/rating', 'primeng/scrollpanel', 'primeng/scrolltop', 'primeng/selectbutton', 'primeng/sidebar', 'primeng/skeleton', 'primeng/slidemenu', 'primeng/slider', 'primeng/splitter', 'primeng/steps', 'primeng/tabmenu', 'primeng/tabview', 'primeng/tag', 'primeng/terminal', 'primeng/tieredmenu', 'primeng/timeline', 'primeng/togglebutton', 'primeng/tree'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["sf-crud"] = {}, global.ng.core, global.ng.common.http, global.ng.router, global.i3, global.i4, global.i5, global.ng.common, global.i3$1, global.i8, global.i9, global.i10, global.i11, global.jsonpath, global.i5$1, global.i2$1, global.i3$2, global.i4$1, global.ng.forms, global.accordion, global.avatar, global.avatargroup, global.badge, global.breadcrumb, global.card, global.carousel, global.cascadeselect, global.checkbox, global.chip, global.chips, global.codehighlighter, global.confirmdialog, global.confirmpopup, global.colorpicker, global.contextmenu, global.dialog, global.divider, global.fieldset, global.fileupload, global.galleria, global.inplace, global.inputmask, global.inputswitch, global.inputtextarea, global.knob, global.lightbox, global.listbox, global.megamenu, global.menu, global.menubar, global.messages, global.message, global.multiselect, global.organizationchart, global.overlaypanel, global.panel, global.panelmenu, global.password, global.progressbar, global.radiobutton, global.rating, global.scrollpanel, global.scrolltop, global.selectbutton, global.sidebar, global.skeleton, global.slidemenu, global.slider, global.splitter, global.steps, global.tabmenu, global.tabview, global.tag, global.terminal, global.tieredmenu, global.timeline, global.togglebutton, global.tree));
5
- })(this, (function (exports, i0, i1, i2, i3, i4, i5, i7, i3$1, i8, i9, i10, i11, jsonpath, i5$1, i2$1, i3$2, i4$1, i6, accordion, avatar, avatargroup, badge, breadcrumb, card, carousel, cascadeselect, checkbox, chip, chips, codehighlighter, confirmdialog, confirmpopup, colorpicker, contextmenu, dialog, divider, fieldset, fileupload, galleria, inplace, inputmask, inputswitch, inputtextarea, knob, lightbox, listbox, megamenu, menu, menubar, messages, message, multiselect, organizationchart, overlaypanel, panel, panelmenu, password, progressbar, radiobutton, rating, scrollpanel, scrolltop, selectbutton, sidebar, skeleton, slidemenu, slider, splitter, steps, tabmenu, tabview, tag, terminal, tieredmenu, timeline, togglebutton, tree) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('lodash'), require('jsonpath'), require('@angular/common/http'), require('@angular/router'), require('primeng/blockui'), require('primeng/toolbar'), require('primeng/table'), require('primeng/splitbutton'), require('@angular/common'), require('primeng/api'), require('primeng/button'), require('primeng/ripple'), require('primeng/inputtext'), require('primeng/dynamicdialog'), require('primeng/toast'), require('primeng/inputmask'), require('primeng/dropdown'), require('primeng/autocomplete'), require('primeng/calendar'), require('primeng/inputnumber'), require('primeng/fileupload'), require('@angular/forms'), require('primeng/accordion'), require('primeng/avatargroup'), require('primeng/avatar'), require('primeng/badge'), require('primeng/breadcrumb'), require('primeng/card'), require('primeng/carousel'), require('primeng/cascadeselect'), require('primeng/checkbox'), require('primeng/chip'), require('primeng/chips'), require('primeng/codehighlighter'), require('primeng/colorpicker'), require('primeng/confirmdialog'), require('primeng/confirmpopup'), require('primeng/contextmenu'), require('primeng/dialog'), require('primeng/divider'), require('primeng/fieldset'), require('primeng/galleria'), require('primeng/inplace'), require('primeng/inputswitch'), require('primeng/inputtextarea'), require('primeng/knob'), require('primeng/lightbox'), require('primeng/listbox'), require('primeng/megamenu'), require('primeng/menubar'), require('primeng/menu'), require('primeng/message'), require('primeng/messages'), require('primeng/multiselect'), require('primeng/organizationchart'), require('primeng/overlaypanel'), require('primeng/panelmenu'), require('primeng/panel'), require('primeng/password'), require('primeng/progressbar'), require('primeng/radiobutton'), require('primeng/rating'), require('primeng/scrollpanel'), require('primeng/scrolltop'), require('primeng/selectbutton'), require('primeng/sidebar'), require('primeng/skeleton'), require('primeng/slidemenu'), require('primeng/slider'), require('primeng/splitter'), require('primeng/steps'), require('primeng/tabmenu'), require('primeng/tabview'), require('primeng/tag'), require('primeng/terminal'), require('primeng/tieredmenu'), require('primeng/timeline'), require('primeng/togglebutton'), require('primeng/tooltip'), require('primeng/tree')) :
3
+ typeof define === 'function' && define.amd ? define('sf-crud', ['exports', '@angular/core', 'lodash', 'jsonpath', '@angular/common/http', '@angular/router', 'primeng/blockui', 'primeng/toolbar', 'primeng/table', 'primeng/splitbutton', '@angular/common', 'primeng/api', 'primeng/button', 'primeng/ripple', 'primeng/inputtext', 'primeng/dynamicdialog', 'primeng/toast', 'primeng/inputmask', 'primeng/dropdown', 'primeng/autocomplete', 'primeng/calendar', 'primeng/inputnumber', 'primeng/fileupload', '@angular/forms', 'primeng/accordion', 'primeng/avatargroup', 'primeng/avatar', 'primeng/badge', 'primeng/breadcrumb', 'primeng/card', 'primeng/carousel', 'primeng/cascadeselect', 'primeng/checkbox', 'primeng/chip', 'primeng/chips', 'primeng/codehighlighter', 'primeng/colorpicker', 'primeng/confirmdialog', 'primeng/confirmpopup', 'primeng/contextmenu', 'primeng/dialog', 'primeng/divider', 'primeng/fieldset', 'primeng/galleria', 'primeng/inplace', 'primeng/inputswitch', 'primeng/inputtextarea', 'primeng/knob', 'primeng/lightbox', 'primeng/listbox', 'primeng/megamenu', 'primeng/menubar', 'primeng/menu', 'primeng/message', 'primeng/messages', 'primeng/multiselect', 'primeng/organizationchart', 'primeng/overlaypanel', 'primeng/panelmenu', 'primeng/panel', 'primeng/password', 'primeng/progressbar', 'primeng/radiobutton', 'primeng/rating', 'primeng/scrollpanel', 'primeng/scrolltop', 'primeng/selectbutton', 'primeng/sidebar', 'primeng/skeleton', 'primeng/slidemenu', 'primeng/slider', 'primeng/splitter', 'primeng/steps', 'primeng/tabmenu', 'primeng/tabview', 'primeng/tag', 'primeng/terminal', 'primeng/tieredmenu', 'primeng/timeline', 'primeng/togglebutton', 'primeng/tooltip', 'primeng/tree'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["sf-crud"] = {}, global.ng.core, global._, global.jsonpath, global.ng.common.http, global.ng.router, global.i3, global.i4, global.i5, global.i6, global.ng.common, global.i3$1, global.i9, global.i10, global.i11, global.i1$1, global.i3$3, global.i2$1, global.i3$2, global.i4$1, global.i5$1, global.i6$1, global.i7$1, global.ng.forms, global.accordion, global.avatargroup, global.avatar, global.badge, global.breadcrumb, global.card, global.carousel, global.cascadeselect, global.checkbox, global.chip, global.chips, global.codehighlighter, global.colorpicker, global.confirmdialog, global.confirmpopup, global.contextmenu, global.dialog, global.divider, global.fieldset, global.galleria, global.inplace, global.inputswitch, global.inputtextarea, global.knob, global.lightbox, global.listbox, global.megamenu, global.menubar, global.menu, global.message, global.messages, global.multiselect, global.organizationchart, global.overlaypanel, global.panelmenu, global.panel, global.password, global.progressbar, global.radiobutton, global.rating, global.scrollpanel, global.scrolltop, global.selectbutton, global.sidebar, global.skeleton, global.slidemenu, global.slider, global.splitter, global.steps, global.tabmenu, global.tabview, global.tag, global.terminal, global.tieredmenu, global.timeline, global.togglebutton, global.tooltip, global.tree));
5
+ })(this, (function (exports, i0, _, jsonpath, i1, i2, i3, i4, i5, i6, i7, i3$1, i9, i10, i11, i1$1, i3$3, i2$1, i3$2, i4$1, i5$1, i6$1, i7$1, i9$1, accordion, avatargroup, avatar, badge, breadcrumb, card, carousel, cascadeselect, checkbox, chip, chips, codehighlighter, colorpicker, confirmdialog, confirmpopup, contextmenu, dialog, divider, fieldset, galleria, inplace, inputswitch, inputtextarea, knob, lightbox, listbox, megamenu, menubar, menu, message, messages, multiselect, organizationchart, overlaypanel, panelmenu, panel, password, progressbar, radiobutton, rating, scrollpanel, scrolltop, selectbutton, sidebar, skeleton, slidemenu, slider, splitter, steps, tabmenu, tabview, tag, terminal, tieredmenu, timeline, togglebutton, tooltip, tree) { 'use strict';
6
6
 
7
7
  function _interopNamespace(e) {
8
8
  if (e && e.__esModule) return e;
@@ -23,23 +23,28 @@
23
23
  }
24
24
 
25
25
  var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
26
+ var ___namespace = /*#__PURE__*/_interopNamespace(_);
27
+ var jsonpath__namespace = /*#__PURE__*/_interopNamespace(jsonpath);
26
28
  var i1__namespace = /*#__PURE__*/_interopNamespace(i1);
27
29
  var i2__namespace = /*#__PURE__*/_interopNamespace(i2);
28
30
  var i3__namespace = /*#__PURE__*/_interopNamespace(i3);
29
31
  var i4__namespace = /*#__PURE__*/_interopNamespace(i4);
30
32
  var i5__namespace = /*#__PURE__*/_interopNamespace(i5);
33
+ var i6__namespace = /*#__PURE__*/_interopNamespace(i6);
31
34
  var i7__namespace = /*#__PURE__*/_interopNamespace(i7);
32
35
  var i3__namespace$1 = /*#__PURE__*/_interopNamespace(i3$1);
33
- var i8__namespace = /*#__PURE__*/_interopNamespace(i8);
34
36
  var i9__namespace = /*#__PURE__*/_interopNamespace(i9);
35
37
  var i10__namespace = /*#__PURE__*/_interopNamespace(i10);
36
38
  var i11__namespace = /*#__PURE__*/_interopNamespace(i11);
37
- var jsonpath__namespace = /*#__PURE__*/_interopNamespace(jsonpath);
38
- var i5__namespace$1 = /*#__PURE__*/_interopNamespace(i5$1);
39
+ var i1__namespace$1 = /*#__PURE__*/_interopNamespace(i1$1);
40
+ var i3__namespace$3 = /*#__PURE__*/_interopNamespace(i3$3);
39
41
  var i2__namespace$1 = /*#__PURE__*/_interopNamespace(i2$1);
40
42
  var i3__namespace$2 = /*#__PURE__*/_interopNamespace(i3$2);
41
43
  var i4__namespace$1 = /*#__PURE__*/_interopNamespace(i4$1);
42
- var i6__namespace = /*#__PURE__*/_interopNamespace(i6);
44
+ var i5__namespace$1 = /*#__PURE__*/_interopNamespace(i5$1);
45
+ var i6__namespace$1 = /*#__PURE__*/_interopNamespace(i6$1);
46
+ var i7__namespace$1 = /*#__PURE__*/_interopNamespace(i7$1);
47
+ var i9__namespace$1 = /*#__PURE__*/_interopNamespace(i9$1);
43
48
 
44
49
  var Shema = /** @class */ (function () {
45
50
  function Shema() {
@@ -64,8 +69,8 @@
64
69
  this.endpoint = '';
65
70
  this.method = '';
66
71
  this.server = '';
67
- this.key = '';
68
72
  this.filters = [];
73
+ this.keys = [];
69
74
  }
70
75
  return ConfigTablero;
71
76
  }());
@@ -163,6 +168,64 @@
163
168
  function __param(paramIndex, decorator) {
164
169
  return function (target, key) { decorator(target, key, paramIndex); };
165
170
  }
171
+ function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
172
+ function accept(f) { if (f !== void 0 && typeof f !== "function")
173
+ throw new TypeError("Function expected"); return f; }
174
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
175
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
176
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
177
+ var _, done = false;
178
+ for (var i = decorators.length - 1; i >= 0; i--) {
179
+ var context = {};
180
+ for (var p in contextIn)
181
+ context[p] = p === "access" ? {} : contextIn[p];
182
+ for (var p in contextIn.access)
183
+ context.access[p] = contextIn.access[p];
184
+ context.addInitializer = function (f) { if (done)
185
+ throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
186
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
187
+ if (kind === "accessor") {
188
+ if (result === void 0)
189
+ continue;
190
+ if (result === null || typeof result !== "object")
191
+ throw new TypeError("Object expected");
192
+ if (_ = accept(result.get))
193
+ descriptor.get = _;
194
+ if (_ = accept(result.set))
195
+ descriptor.set = _;
196
+ if (_ = accept(result.init))
197
+ initializers.push(_);
198
+ }
199
+ else if (_ = accept(result)) {
200
+ if (kind === "field")
201
+ initializers.push(_);
202
+ else
203
+ descriptor[key] = _;
204
+ }
205
+ }
206
+ if (target)
207
+ Object.defineProperty(target, contextIn.name, descriptor);
208
+ done = true;
209
+ }
210
+ ;
211
+ function __runInitializers(thisArg, initializers, value) {
212
+ var useValue = arguments.length > 2;
213
+ for (var i = 0; i < initializers.length; i++) {
214
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
215
+ }
216
+ return useValue ? value : void 0;
217
+ }
218
+ ;
219
+ function __propKey(x) {
220
+ return typeof x === "symbol" ? x : "".concat(x);
221
+ }
222
+ ;
223
+ function __setFunctionName(f, name, prefix) {
224
+ if (typeof name === "symbol")
225
+ name = name.description ? "[".concat(name.description, "]") : "";
226
+ return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
227
+ }
228
+ ;
166
229
  function __metadata(metadataKey, metadataValue) {
167
230
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
168
231
  return Reflect.metadata(metadataKey, metadataValue);
@@ -194,7 +257,7 @@
194
257
  function step(op) {
195
258
  if (f)
196
259
  throw new TypeError("Generator is already executing.");
197
- while (_)
260
+ while (g && (g = 0, op[0] && (_ = 0)), _)
198
261
  try {
199
262
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
200
263
  return t;
@@ -362,7 +425,7 @@
362
425
  function __asyncDelegator(o) {
363
426
  var i, p;
364
427
  return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
365
- function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
428
+ function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }
366
429
  }
367
430
  function __asyncValues(o) {
368
431
  if (!Symbol.asyncIterator)
@@ -482,6 +545,8 @@
482
545
  this.opciones = [];
483
546
  this.idEntidad = '';
484
547
  this.idKatios = '';
548
+ this.onSelectAction = new i0.EventEmitter();
549
+ this.items = [];
485
550
  this.crudConfig = new CrudConfig();
486
551
  this.enProceso = false;
487
552
  this.data = [];
@@ -497,7 +562,6 @@
497
562
  .then(function (res) {
498
563
  _this.crudConfig = res;
499
564
  _this.getInfoTablero(_this.crudConfig.tablero);
500
- _this.loadOptions();
501
565
  })
502
566
  .catch(function (err) {
503
567
  console.log(err);
@@ -506,9 +570,10 @@
506
570
  };
507
571
  TableroComponent.prototype.getInfoTablero = function (configTablero) {
508
572
  var _this = this;
509
- this.generalService.genericRequest(configTablero.method, configTablero.server, configTablero.endpoint)
573
+ this.generalService.genericRequest(configTablero.method, configTablero.server, this.aplyKeys(configTablero.keys, configTablero.endpoint, this.dataExt))
510
574
  .then(function (res) {
511
575
  _this.data = res.data;
576
+ _this.loadOptions();
512
577
  _this.enProceso = false;
513
578
  })
514
579
  .catch(function (err) {
@@ -517,10 +582,12 @@
517
582
  });
518
583
  };
519
584
  TableroComponent.prototype.loadOptions = function () {
585
+ var _this = this;
586
+ this.items = [];
520
587
  this.btn.create = this.opciones.find(function (x) { return x.label == 'Crear'; });
521
- this.btn.read = this.opciones.find(function (x) { return x.label == 'Visualizar'; });
522
- this.btn.update = this.opciones.find(function (x) { return x.label == 'Editar'; });
523
- this.btn.delete = this.opciones.find(function (x) { return x.label == 'Eliminar'; });
588
+ this.opciones.filter(function (opc) { return opc.valor.action; }).forEach(function (opc) {
589
+ _this.items.push({ label: opc.label, icon: opc.icon, command: function () { return _this.execAction(opc.valor); } });
590
+ });
524
591
  };
525
592
  TableroComponent.prototype.redirect = function (accion, data) {
526
593
  var _a, _b;
@@ -529,22 +596,54 @@
529
596
  this.router.navigateByUrl(((_b = (_a = this.btn.create) === null || _a === void 0 ? void 0 : _a.valor) === null || _b === void 0 ? void 0 : _b.redirect) || '');
530
597
  break;
531
598
  case 'read':
532
- this.router.navigateByUrl(this.btn.read.valor.redirect.replace('$id', data[this.crudConfig.tablero.key]));
599
+ this.router.navigateByUrl(this.aplyKeys(this.crudConfig.tablero.keys, this.btn.read.valor.redirect, data));
533
600
  break;
534
601
  case 'update':
535
- this.router.navigateByUrl(this.btn.update.valor.redirect.replace('$id', data[this.crudConfig.tablero.key]));
602
+ this.router.navigateByUrl(this.aplyKeys(this.crudConfig.tablero.keys, this.btn.update.valor.redirect, data));
536
603
  break;
537
604
  case 'delete':
538
- this.router.navigateByUrl(this.btn.delete.valor.redirect.replace('$id', data[this.crudConfig.tablero.key]));
605
+ this.router.navigateByUrl(this.aplyKeys(this.crudConfig.tablero.keys, this.btn.delete.valor.redirect, data));
606
+ break;
607
+ default:
608
+ break;
609
+ }
610
+ };
611
+ TableroComponent.prototype.aplyKeys = function (keys, endpoint, data) {
612
+ var _this = this;
613
+ keys.forEach(function (key) {
614
+ var _a, _b, _c, _d;
615
+ switch (key.key) {
616
+ case '@ndoc':
617
+ endpoint = endpoint.replace(key.key, ((_b = (_a = _this.user) === null || _a === void 0 ? void 0 : _a.UsuarioSistema) === null || _b === void 0 ? void 0 : _b.NDOC) || '');
618
+ break;
619
+ case '@tdoc':
620
+ endpoint = endpoint.replace(key.key, ((_d = (_c = _this.user) === null || _c === void 0 ? void 0 : _c.UsuarioSistema) === null || _d === void 0 ? void 0 : _d.TDOC) || '');
621
+ break;
622
+ case '@idKatios':
623
+ endpoint = endpoint.replace(key.key, _this.idKatios);
624
+ break;
625
+ default:
626
+ if (endpoint.includes(key.key) && data)
627
+ endpoint = endpoint.replace(key.key, jsonpath__namespace.query(data, (key === null || key === void 0 ? void 0 : key.scope) || '')[0]);
628
+ break;
629
+ }
630
+ });
631
+ return endpoint;
632
+ };
633
+ TableroComponent.prototype.execAction = function (params) {
634
+ switch (params.action) {
635
+ case 'redirect':
636
+ this.router.navigateByUrl(this.aplyKeys(this.crudConfig.tablero.keys, params.link, this.itemSelected));
539
637
  break;
540
638
  default:
639
+ this.onSelectAction.emit({ data: ___namespace.cloneDeep(this.itemSelected), params: params });
541
640
  break;
542
641
  }
543
642
  };
544
643
  return TableroComponent;
545
644
  }());
546
645
  TableroComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TableroComponent, deps: [{ token: GeneralService }, { token: i2__namespace.Router }], target: i0__namespace.ɵɵFactoryTarget.Component });
547
- TableroComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TableroComponent, selector: "sf-crudtablero", inputs: { opciones: "opciones", idEntidad: "idEntidad", idKatios: "idKatios" }, ngImport: i0__namespace, template: "<p-blockUI [blocked]=\"enProceso\">\r\n <i class=\"pi pi-cog pi-spin\" style=\"font-size: 50px\"></i>\r\n</p-blockUI>\r\n\r\n<div class=\"card\" *ngIf=\"!enProceso\">\r\n <p-toolbar styleClass=\"mb-4 gap-2\">\r\n <ng-template pTemplate=\"left\">\r\n <button *ngIf=\"btn.create\" pButton pRipple [label]=\"btn.create.label\" [icon]=\"btn.create.icon\"\r\n class=\"p-button-success mr-2\" (click)=\"redirect('create')\"></button>\r\n </ng-template>\r\n </p-toolbar>\r\n <p-table #dt [columns]=\"crudConfig.tablero.columns\" [value]=\"data\" [rowHover]=\"true\" [rows]=\"10\" [paginator]=\"true\"\r\n [globalFilterFields]=\"crudConfig.tablero?.filters || []\" [tableStyle]=\"{'min-width': '75rem'}\"\r\n currentPageReportTemplate=\"Registro {first} al {last} de {totalRecords} {{idEntidad}}\"\r\n [showCurrentPageReport]=\"true\">\r\n <ng-template pTemplate=\"caption\">\r\n <div class=\"flex align-items-center justify-content-between\">\r\n <h5 class=\"m-0\">{{idEntidad}}</h5>\r\n <span class=\"p-input-icon-left\">\r\n <i class=\"pi pi-search\"></i>\r\n <input pInputText type=\"text\" (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\r\n placeholder=\"Buscar...\" />\r\n </span>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngFor=\"let col of columns\">\r\n {{col.label}}\r\n </th>\r\n <th>Acci\u00F3n</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\">\r\n <tr>\r\n <td *ngFor=\"let col of columns\">\r\n {{rowData[col.col]}}\r\n </td>\r\n <th>\r\n <button *ngIf=\"btn.read\" pButton pRipple [pTooltip]=\"btn.read.label\" [icon]=\"btn.read.icon\"\r\n class=\"p-button-rounded p-button-info mr-2\" (click)=\"redirect('read', rowData)\"></button>\r\n <button *ngIf=\"btn.update\" pButton pRipple [pTooltip]=\"btn.update.label\" [icon]=\"btn.update.icon\"\r\n class=\"p-button-rounded p-button-warning mr-2\" (click)=\"redirect('update', rowData)\"></button>\r\n <button *ngIf=\"btn.delete\" pButton pRipple [pTooltip]=\"btn.delete.label\" [icon]=\"btn.delete.icon\"\r\n class=\"p-button-rounded p-button-danger mr-2\" (click)=\"redirect('delete', rowData)\"></button>\r\n </th>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n</div>", components: [{ type: i3__namespace.BlockUI, selector: "p-blockUI", inputs: ["autoZIndex", "baseZIndex", "blocked", "target", "styleClass"] }, { type: i4__namespace.Toolbar, selector: "p-toolbar", inputs: ["style", "styleClass"] }, { type: i5__namespace.Table, selector: "p-table", inputs: ["pageLinks", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "contextMenuSelectionMode", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "filterDelay", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "virtualScrollDelay", "virtualRowHeight", "columnResizeMode", "loadingIcon", "showLoader", "showInitialSortBadge", "stateStorage", "editMode", "totalRecords", "value", "columns", "first", "rows", "sortField", "sortOrder", "multiSortMeta", "selection", "contextMenuSelection", "frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "rowsPerPageOptions", "paginatorDropdownAppendTo", "showCurrentPageReport", "showJumpToPageDropdown", "selectionMode", "dataKey", "metaKeySelection", "globalFilterFields", "filterLocale", "scrollable", "scrollHeight", "virtualScroll", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "reorderableColumns", "loading", "rowHover", "customSort", "autoLayout", "exportFunction", "stateKey", "minBufferPx", "maxBufferPx"], outputs: ["selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }], directives: [{ type: i7__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i8__namespace.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { type: i9__namespace.Ripple, selector: "[pRipple]" }, { type: i10__namespace.InputText, selector: "[pInputText]" }, { type: i7__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11__namespace.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "tooltipZIndex", "escape", "tooltipDisabled", "pTooltip", "positionStyle", "tooltipStyleClass", "showDelay", "hideDelay", "life"] }] });
646
+ TableroComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TableroComponent, selector: "sf-crudtablero", inputs: { opciones: "opciones", idEntidad: "idEntidad", idKatios: "idKatios", user: "user", dataExt: "dataExt" }, outputs: { onSelectAction: "onSelectAction" }, ngImport: i0__namespace, template: "<p-blockUI [blocked]=\"enProceso\">\r\n <i class=\"pi pi-cog pi-spin\" style=\"font-size: 50px\"></i>\r\n</p-blockUI>\r\n\r\n<div class=\"card\" *ngIf=\"!enProceso\">\r\n <p-toolbar styleClass=\"mb-4 gap-2\">\r\n <ng-template pTemplate=\"left\">\r\n <button *ngIf=\"btn.create\" pButton pRipple [label]=\"btn.create.label\" [icon]=\"btn.create.icon\"\r\n class=\"p-button-success mr-2\" (click)=\"redirect('create')\"></button>\r\n </ng-template>\r\n </p-toolbar>\r\n <p-table #dt [columns]=\"crudConfig.tablero.columns\" [value]=\"data\" [rowHover]=\"true\" [rows]=\"10\" [paginator]=\"true\"\r\n [globalFilterFields]=\"crudConfig.tablero?.filters || []\" [tableStyle]=\"{'min-width': '75rem'}\"\r\n currentPageReportTemplate=\"Registro {first} al {last} de {totalRecords}\" [showCurrentPageReport]=\"true\">\r\n <ng-template pTemplate=\"caption\">\r\n <div class=\"flex align-items-center justify-content-between\">\r\n <h5 class=\"m-0\">{{crudConfig.tablero?.label || idEntidad}}</h5>\r\n <span class=\"p-input-icon-left\">\r\n <i class=\"pi pi-search\"></i>\r\n <input pInputText type=\"text\" (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\r\n placeholder=\"Buscar...\" />\r\n </span>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngFor=\"let col of columns\">\r\n {{col.label}}\r\n </th>\r\n <th>Acci\u00F3n</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\">\r\n <tr>\r\n <ng-container *ngFor=\"let col of columns\" [ngSwitch]=\"col.type\">\r\n <td *ngSwitchCase=\"'text'\">{{rowData[col.col]}}</td>\r\n <td *ngSwitchCase=\"'date:yyyy-mm-dd'\">{{rowData[col.col] | date: 'yyyy-MM-dd'}}</td>\r\n <td *ngSwitchCase=\"'currency:USD'\">{{rowData[col.col] | currency: 'USD'}}</td>\r\n </ng-container>\r\n <td>\r\n <p-splitButton icon=\"pi pi-align-justify\" [model]=\"items\" appendTo=\"body\"\r\n (onDropdownClick)=\"itemSelected = rowData\"></p-splitButton>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n</div>", components: [{ type: i3__namespace.BlockUI, selector: "p-blockUI", inputs: ["target", "autoZIndex", "baseZIndex", "styleClass", "blocked"] }, { type: i4__namespace.Toolbar, selector: "p-toolbar", inputs: ["style", "styleClass"] }, { type: i5__namespace.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollDelay", "virtualRowHeight", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "stateKey", "stateStorage", "editMode", "groupRowsBy", "minBufferPx", "maxBufferPx", "responsiveLayout", "breakpoint", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection"], outputs: ["selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { type: i6__namespace.SplitButton, selector: "p-splitButton", inputs: ["model", "icon", "iconPos", "label", "style", "styleClass", "menuStyle", "menuStyleClass", "disabled", "tabindex", "appendTo", "dir", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onClick", "onDropdownClick"] }], directives: [{ type: i7__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i9__namespace.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { type: i10__namespace.Ripple, selector: "[pRipple]" }, { type: i11__namespace.InputText, selector: "[pInputText]" }, { type: i7__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7__namespace.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i7__namespace.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "date": i7__namespace.DatePipe, "currency": i7__namespace.CurrencyPipe } });
548
647
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TableroComponent, decorators: [{
549
648
  type: i0.Component,
550
649
  args: [{
@@ -557,6 +656,12 @@
557
656
  type: i0.Input
558
657
  }], idKatios: [{
559
658
  type: i0.Input
659
+ }], user: [{
660
+ type: i0.Input
661
+ }], dataExt: [{
662
+ type: i0.Input
663
+ }], onSelectAction: [{
664
+ type: i0.Output
560
665
  }] } });
561
666
 
562
667
  var ControlComponent = /** @class */ (function () {
@@ -565,8 +670,11 @@
565
670
  this.control = new Shema();
566
671
  this.label = '';
567
672
  this.setValue = new i0.EventEmitter();
673
+ this.sendNotification = new i0.EventEmitter();
568
674
  this.isLoading = false;
569
675
  this.dataFromService = [];
676
+ this.uploadedFiles = [];
677
+ this.displayAdd = false;
570
678
  }
571
679
  ControlComponent.prototype.ngOnInit = function () {
572
680
  var _a;
@@ -576,9 +684,37 @@
576
684
  ControlComponent.prototype.sendValue = function () {
577
685
  this.setValue.emit(this.value);
578
686
  };
687
+ ControlComponent.prototype.sendValueFromObject = function (event) {
688
+ switch (typeof (this.control.config.optionValue)) {
689
+ case 'object':
690
+ this.control.config.optionValue.forEach(function (op) { return op['value'] = event[op.key]; });
691
+ this.setValue.emit(this.control.config.optionValue);
692
+ break;
693
+ default:
694
+ this.setValue.emit(event[this.control.config.optionValue]);
695
+ break;
696
+ }
697
+ };
698
+ ControlComponent.prototype.validateValue = function (type) {
699
+ switch (type) {
700
+ case 'email':
701
+ var regex = new RegExp(/([\w\.\-_]+)?\w+@[\w-_]+(\.\w+){1,}/igm);
702
+ if (regex.test(this.value))
703
+ this.sendValue();
704
+ else {
705
+ this.value = null;
706
+ this.sendValue();
707
+ this.sendNotification.emit({ severity: 'warn', detail: 'El correo no es válido' });
708
+ }
709
+ break;
710
+ default:
711
+ break;
712
+ }
713
+ };
579
714
  ControlComponent.prototype.loadDataFromService = function () {
580
715
  var _this = this;
581
716
  this.isLoading = true;
717
+ this.dataFromService = [];
582
718
  this.generalService.genericRequest(this.control.config.method, this.control.config.server, this.control.config.endpoint)
583
719
  .then(function (res) {
584
720
  _this.dataFromService = res.data;
@@ -594,10 +730,37 @@
594
730
  _this.isLoading = false;
595
731
  });
596
732
  };
733
+ ControlComponent.prototype.onUpload = function (event) {
734
+ var _this = this;
735
+ var file = event.files[0];
736
+ var formData = new FormData();
737
+ var path = 'Imagenes/CRUD/temp';
738
+ formData.append('uploadFile', file);
739
+ formData.append('Ruta', "/" + path);
740
+ this.isLoading = true;
741
+ this.generalService.genericRequest(this.control.config.method, this.control.config.server, this.control.config.endpoint, formData)
742
+ .then(function () {
743
+ _this.sendNotification.emit({ severity: 'info', detail: "Archivo cargado correctamente!" });
744
+ _this.uploadedFiles.push(file);
745
+ _this.isLoading = false;
746
+ _this.value = "" + _this.generalService.jsonConfig.Server + path + "/" + file.name;
747
+ _this.sendValue();
748
+ })
749
+ .catch(function (err) {
750
+ console.log(err);
751
+ _this.isLoading = false;
752
+ _this.sendNotification.emit({ severity: 'error', detail: "Error al cargar el archivo!" });
753
+ });
754
+ };
755
+ ControlComponent.prototype.refresData = function () {
756
+ var _a, _b;
757
+ if ((_b = (_a = this.control) === null || _a === void 0 ? void 0 : _a.config) === null || _b === void 0 ? void 0 : _b.endpointtemp)
758
+ this.loadDataFromService();
759
+ };
597
760
  return ControlComponent;
598
761
  }());
599
762
  ControlComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ControlComponent, deps: [{ token: GeneralService }], target: i0__namespace.ɵɵFactoryTarget.Component });
600
- ControlComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ControlComponent, selector: "sf-control", inputs: { control: "control", label: "label", value: "value" }, outputs: { setValue: "setValue" }, ngImport: i0__namespace, template: "<ng-container [ngSwitch]=\"control.type\">\r\n <label>{{label}}</label>\r\n <ng-container *ngSwitchCase=\"'string'\">\r\n <ng-container [ngSwitch]=\"control.subtype\">\r\n <ng-container *ngSwitchCase=\"'input'\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"value\" (focusout)=\"sendValue()\">\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'password'\">\r\n <input pInputText type=\"password\" [(ngModel)]=\"value\" (focusout)=\"sendValue()\">\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'email'\">\r\n <input pInputText type=\"email\" [(ngModel)]=\"value\" (focusout)=\"sendValue()\">\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'phone'\">\r\n <input pInputText type=\"tel\" [(ngModel)]=\"value\" (focusout)=\"sendValue()\">\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'enum'\">\r\n <p-dropdown [options]=\"control.enum\" [(ngModel)]=\"value\" (onChange)=\"sendValue()\"\r\n placeholder=\"Seleccione una opci\u00F3n\"></p-dropdown>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'dropdown'\">\r\n <p-dropdown [lazy]=\"isLoading\" [options]=\"dataFromService\" [(ngModel)]=\"value\" (onChange)=\"sendValue()\"\r\n [optionLabel]=\"control.config.optionLabel\" [optionValue]=\"control.config.optionValue\"\r\n placeholder=\"Seleccione una opci\u00F3n\"></p-dropdown>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'autocomplete'\">\r\n <p-autoComplete [(ngModel)]=\"value\" [suggestions]=\"dataFromService\" [minlength]=\"3\"\r\n (completeMethod)=\"loadDataFromControlBusquedaService($event)\" [forceSelection]=\"true\" (onSelect)=\"sendValue()\"\r\n [field]=\"control.field\"></p-autoComplete>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <ng-container [ngSwitch]=\"control.subtype\">\r\n <ng-container *ngSwitchCase=\"'calendar'\">\r\n <p-calendar [(ngModel)]=\"value\" (onSelect)=\"sendValue()\" [format]=\"control?.format || 'yy-mm-dd'\"></p-calendar>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'numeric'\">\r\n <ng-container [ngSwitch]=\"control.subtype\">\r\n <ng-container *ngSwitchCase=\"'currency'\">\r\n <p-inputNumber [(ngModel)]=\"value\" mode=\"currency\"\r\n [currency]=\"control?.currency || 'USD'\"></p-inputNumber>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'decimal'\">\r\n <p-inputNumber [(ngModel)]=\"value\" mode=\"decimal\"\r\n [minFractionDigits]=\"control?.minFractionDigits || 0\"></p-inputNumber>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'percentage'\">\r\n <p-inputNumber [(ngModel)]=\"value\" suffix=\" %\"\r\n [minFractionDigits]=\"control?.minFractionDigits || 2\"></p-inputNumber>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-container>", components: [{ type: i2__namespace$1.Dropdown, selector: "p-dropdown", inputs: ["scrollHeight", "resetFilterOnHide", "dropdownIcon", "optionGroupChildren", "autoDisplayFirst", "emptyFilterMessage", "emptyMessage", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "autofocusFilter", "disabled", "options", "filterValue", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "group", "showClear", "virtualScroll", "itemSize", "ariaFilterLabel", "ariaLabelledBy", "maxlength", "tooltipStyleClass"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide"] }, { type: i3__namespace$2.Calendar, selector: "p-calendar", inputs: ["dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "icon", "shortYearCutoff", "hourFormat", "stepHour", "stepMinute", "stepSecond", "showSeconds", "showOnFocus", "showWeek", "dataType", "selectionMode", "todayButtonStyleClass", "clearButtonStyleClass", "autoZIndex", "baseZIndex", "keepInvalid", "hideOnDateTimeSelect", "numberOfMonths", "view", "timeSeparator", "focusTrap", "firstDayOfWeek", "showTransitionOptions", "hideTransitionOptions", "defaultDate", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "locale", "disabled", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "selectOtherMonths", "showIcon", "appendTo", "readonlyInput", "monthNavigator", "yearNavigator", "timeOnly", "required", "maxDateCount", "showButtonBar", "panelStyleClass", "panelStyle", "touchUI", "tabindex"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { type: i4__namespace$1.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "incrementButtonIcon", "decrementButtonIcon", "step", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "disabled", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "inputStyle", "inputStyleClass"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown"] }], directives: [{ type: i7__namespace.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i7__namespace.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i6__namespace.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i10__namespace.InputText, selector: "[pInputText]" }, { type: i6__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i6__namespace.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }] });
763
+ ControlComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ControlComponent, selector: "sf-control", inputs: { control: "control", label: "label", value: "value", appendTo: "appendTo" }, outputs: { setValue: "setValue", sendNotification: "sendNotification" }, ngImport: i0__namespace, template: "<ng-container [ngSwitch]=\"control.type\" #cc>\r\n <label>{{label}}</label>\r\n <ng-container *ngSwitchCase=\"'string'\">\r\n <ng-container [ngSwitch]=\"control.subtype\">\r\n <ng-container *ngSwitchCase=\"'input'\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"value\" (focusout)=\"sendValue()\"\r\n [disabled]=\"control?.disabled || false\">\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'password'\">\r\n <input pInputText type=\"password\" [(ngModel)]=\"value\" (focusout)=\"sendValue()\"\r\n [disabled]=\"control?.disabled || false\">\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'email'\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"value\" placeholder=\"email@example.com\"\r\n (focusout)=\"validateValue('email')\" [disabled]=\"control?.disabled || false\">\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'phone'\">\r\n <p-inputMask mask=\"(999) 999-9999\" [(ngModel)]=\"value\" placeholder=\"(999) 999-9999\"\r\n (focusout)=\"sendValue()\" [disabled]=\"control?.disabled || false\"></p-inputMask>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'enum'\">\r\n <p-dropdown [options]=\"control.enum\" [(ngModel)]=\"value\" (onChange)=\"sendValue()\" appendTo=\"body\"\r\n placeholder=\"Seleccione una opci\u00F3n\" [disabled]=\"control?.disabled || false\"></p-dropdown>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'dropdown'\">\r\n <p-dropdown [lazy]=\"isLoading\" [options]=\"dataFromService\" [(ngModel)]=\"value\" (onChange)=\"sendValue()\"\r\n [optionLabel]=\"control.config.optionLabel\" [optionValue]=\"control?.field || control.config.optionValue\" (onClick)=\"refresData()\"\r\n appendTo=\"body\" placeholder=\"Seleccione una opci\u00F3n\"\r\n [disabled]=\"control?.disabled || false\"></p-dropdown>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'dropdown:replace'\">\r\n <p-dropdown [lazy]=\"isLoading\" [options]=\"dataFromService\" (onChange)=\"sendValueFromObject($event.value)\"\r\n [optionLabel]=\"control.config.optionLabel\" (onClick)=\"refresData()\"\r\n appendTo=\"body\" placeholder=\"Seleccione una opci\u00F3n\"\r\n [disabled]=\"control?.disabled || false\"></p-dropdown>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'autocomplete'\">\r\n <p-autoComplete [showEmptyMessage]=\"true\" [suggestions]=\"dataFromService\" appendTo=\"body\"\r\n (completeMethod)=\"loadDataFromControlBusquedaService($event)\" [field]=\"control.field\"\r\n [minLength]=\"1\" (onSelect)=\"sendValueFromObject($event)\"\r\n [disabled]=\"control?.disabled || false\"></p-autoComplete>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <ng-container [ngSwitch]=\"control.subtype\">\r\n <ng-container *ngSwitchCase=\"'calendar'\">\r\n <p-calendar [(ngModel)]=\"value\" (onSelect)=\"sendValue()\" [monthNavigator]=\"true\" [yearNavigator]=\"true\"\r\n yearRange=\"1900:2035\" [dateFormat]=\"control?.format || 'yy-mm-dd'\" appendTo=\"body\"\r\n [disabled]=\"control?.disabled || false\"></p-calendar>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'numeric'\">\r\n <ng-container [ngSwitch]=\"control.subtype\">\r\n <ng-container *ngSwitchCase=\"'currency'\">\r\n <p-inputNumber [(ngModel)]=\"value\" mode=\"currency\" [minFractionDigits]=\"control?.minFractionDigits || 0\"\r\n [min]=\"control?.min || null\" [max]=\"control?.max || null\" (focusout)=\"sendValue()\"\r\n [currency]=\"control?.currency || 'USD'\" [disabled]=\"control?.disabled || false\"></p-inputNumber>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'decimal'\">\r\n <p-inputNumber [(ngModel)]=\"value\" mode=\"decimal\" (focusout)=\"sendValue()\" [min]=\"control?.min || null\"\r\n [max]=\"control?.max || null\" [minFractionDigits]=\"control?.minFractionDigits || 0\"\r\n [disabled]=\"control?.disabled || false\"></p-inputNumber>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'percentage'\">\r\n <p-inputNumber [(ngModel)]=\"value\" suffix=\" %\" (focusout)=\"sendValue()\" [min]=\"control?.min || null\"\r\n [max]=\"control?.max || null\" [minFractionDigits]=\"control?.minFractionDigits || 2\"\r\n [disabled]=\"control?.disabled || false\"></p-inputNumber>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'file'\">\r\n <ng-container [ngSwitch]=\"control.subtype\">\r\n <ng-container *ngSwitchCase=\"'filetmp'\">\r\n <p-fileUpload [accept]=\"control.config.accept\" [customUpload]=\"true\" (uploadHandler)=\"onUpload($event)\"\r\n [maxFileSize]=\"control.config?.maxFileSize || null\" fileLimit=\"1\">\r\n <ng-template pTemplate=\"content\">\r\n <ul *ngIf=\"uploadedFiles.length\">\r\n <li *ngFor=\"let file of uploadedFiles\">{{file.name}} - {{file.size}} bytes</li>\r\n </ul>\r\n </ng-template>\r\n </p-fileUpload>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-container>", components: [{ type: i2__namespace$1.InputMask, selector: "p-inputMask", inputs: ["type", "slotChar", "autoClear", "style", "inputId", "styleClass", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "disabled", "readonly", "unmask", "name", "required", "characterPattern", "autoFocus", "autocomplete", "mask"], outputs: ["onComplete", "onFocus", "onBlur", "onInput", "onKeydown"] }, { type: i3__namespace$2.Dropdown, selector: "p-dropdown", inputs: ["scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "virtualScroll", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaFilterLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "disabled", "options", "filterValue"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide"] }, { type: i4__namespace$1.AutoComplete, selector: "p-autoComplete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "virtualScroll", "itemSize", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "field", "scrollHeight", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "suggestions"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide"] }, { type: i5__namespace$1.Calendar, selector: "p-calendar", inputs: ["style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "numberOfMonths", "view", "touchUI", "timeSeparator", "focusTrap", "firstDayOfWeek", "showTransitionOptions", "hideTransitionOptions", "tabindex", "defaultDate", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "locale"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { type: i6__namespace$1.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "step", "inputStyle", "inputStyleClass", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown"] }, { type: i7__namespace$1.FileUpload, selector: "p-fileUpload", inputs: ["name", "url", "method", "multiple", "accept", "disabled", "auto", "withCredentials", "maxFileSize", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageDetail", "invalidFileLimitMessageSummary", "style", "styleClass", "previewWidth", "chooseLabel", "uploadLabel", "cancelLabel", "chooseIcon", "uploadIcon", "cancelIcon", "showUploadButton", "showCancelButton", "mode", "headers", "customUpload", "fileLimit", "files"], outputs: ["onBeforeUpload", "onSend", "onUpload", "onError", "onClear", "onRemove", "onSelect", "onProgress", "uploadHandler"] }], directives: [{ type: i7__namespace.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i7__namespace.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i9__namespace$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i11__namespace.InputText, selector: "[pInputText]" }, { type: i9__namespace$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i9__namespace$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3__namespace$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i7__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
601
764
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ControlComponent, decorators: [{
602
765
  type: i0.Component,
603
766
  args: [{
@@ -610,22 +773,247 @@
610
773
  type: i0.Input
611
774
  }], value: [{
612
775
  type: i0.Input
776
+ }], appendTo: [{
777
+ type: i0.Input
613
778
  }], setValue: [{
614
779
  type: i0.Output
780
+ }], sendNotification: [{
781
+ type: i0.Output
615
782
  }] } });
616
783
 
784
+ var RegistroChildComponent = /** @class */ (function () {
785
+ function RegistroChildComponent(ref, config, messageService) {
786
+ this.ref = ref;
787
+ this.config = config;
788
+ this.messageService = messageService;
789
+ this.esquema = new Shema();
790
+ }
791
+ RegistroChildComponent.prototype.ngOnInit = function () {
792
+ var _a;
793
+ this.uiEsquema = this.config.data.uiEsquema[0];
794
+ this.esquema = this.config.data.esquema;
795
+ this.data = (_a = this.config.data) === null || _a === void 0 ? void 0 : _a.data;
796
+ if (!this.data) {
797
+ this.data = this.createObject(this.esquema);
798
+ jsonpath__namespace.value(this.data, '$..id', this.config.data.id);
799
+ }
800
+ };
801
+ RegistroChildComponent.prototype.getControl = function (scope) {
802
+ return jsonpath__namespace.query(this.esquema, scope)[0];
803
+ };
804
+ RegistroChildComponent.prototype.getValue = function (scope) {
805
+ return jsonpath__namespace.query(this.data, scope.replace('.properties', ''))[0];
806
+ };
807
+ RegistroChildComponent.prototype.setValue = function (value, scope) {
808
+ var _this = this;
809
+ switch (typeof (value)) {
810
+ case 'object':
811
+ if (Array.isArray(value))
812
+ value.forEach(function (val) { return jsonpath__namespace.value(_this.data, val.scope.replace('.properties', ''), val.value); });
813
+ else
814
+ jsonpath__namespace.value(this.data, scope.replace('.properties', ''), value);
815
+ break;
816
+ default:
817
+ jsonpath__namespace.value(this.data, scope.replace('.properties', ''), value);
818
+ break;
819
+ }
820
+ this.applyValuesOnEvent('onChange', this.esquema, scope.replace('$..properties.', ''));
821
+ };
822
+ RegistroChildComponent.prototype.createObject = function (esquema) {
823
+ var object = {};
824
+ switch (esquema.type) {
825
+ case 'numeric':
826
+ return (esquema === null || esquema === void 0 ? void 0 : esquema.default) || 0;
827
+ case 'string':
828
+ case 'date':
829
+ return (esquema === null || esquema === void 0 ? void 0 : esquema.default) ? this.setDefaultValue(esquema.default) : null;
830
+ case 'boolean':
831
+ return (esquema === null || esquema === void 0 ? void 0 : esquema.default) || false;
832
+ case 'file':
833
+ return null;
834
+ case 'array':
835
+ case 'object':
836
+ for (var key in esquema === null || esquema === void 0 ? void 0 : esquema.properties) {
837
+ Object.defineProperty(object, key, { value: this.createObject(esquema === null || esquema === void 0 ? void 0 : esquema.properties[key]), writable: true, enumerable: true, configurable: true });
838
+ }
839
+ break;
840
+ default:
841
+ break;
842
+ }
843
+ return object;
844
+ };
845
+ RegistroChildComponent.prototype.setDefaultValue = function (value) {
846
+ var data = null;
847
+ var uactivo;
848
+ switch (value) {
849
+ case '@uactivo':
850
+ uactivo = JSON.parse(localStorage.getItem('oSessionTFM') || '{}');
851
+ if (!uactivo)
852
+ console.log('Validar configuracion de sesion');
853
+ else
854
+ data = uactivo.UsuarioSistema.TDOC + "-" + uactivo.UsuarioSistema.NDOC;
855
+ break;
856
+ case '@tdocactivo':
857
+ uactivo = JSON.parse(sessionStorage.getItem('usrSesion') || '{}');
858
+ if (!uactivo)
859
+ console.log('Validar configuracion de sesion');
860
+ else
861
+ data = uactivo.UsuarioSistema.TDOC;
862
+ break;
863
+ case '@ndocactivo':
864
+ uactivo = JSON.parse(sessionStorage.getItem('usrSesion') || '{}');
865
+ if (!uactivo)
866
+ console.log('Validar configuracion de sesion');
867
+ else
868
+ data = uactivo.UsuarioSistema.NDOC;
869
+ break;
870
+ case '@hoy':
871
+ data = new Date();
872
+ break;
873
+ default:
874
+ data = value;
875
+ break;
876
+ }
877
+ return data;
878
+ };
879
+ RegistroChildComponent.prototype.submit = function () {
880
+ this.applyValuesOnEvent('onSubmit', this.esquema);
881
+ if (!this.validateData())
882
+ return;
883
+ this.ref.close(this.data);
884
+ };
885
+ RegistroChildComponent.prototype.cancel = function () {
886
+ this.applyValuesOnEvent('onCancel', this.esquema);
887
+ this.ref.close();
888
+ };
889
+ RegistroChildComponent.prototype.validateData = function () {
890
+ if (this.esquema.validations.type == 'local')
891
+ return this.validateDataLocal();
892
+ return true;
893
+ };
894
+ RegistroChildComponent.prototype.validateDataLocal = function () {
895
+ var _this = this;
896
+ var err = [];
897
+ this.esquema.validations.required.forEach(function (x) {
898
+ if (!jsonpath__namespace.query(_this.data, x.field)[0])
899
+ err.push(x.message);
900
+ });
901
+ if (err.length != 0)
902
+ this.messageService.add({ severity: 'warn', detail: err.join('. ') });
903
+ return err.length == 0;
904
+ };
905
+ RegistroChildComponent.prototype.applyValuesOnEvent = function (event, esquema, scope) {
906
+ var _this = this;
907
+ if (scope) {
908
+ if (esquema.properties[scope][event]) {
909
+ esquema.properties[scope][event].forEach(function (value) {
910
+ _this.setValueEvent(_this.data, value);
911
+ });
912
+ }
913
+ }
914
+ else {
915
+ for (var key in esquema.properties) {
916
+ if (esquema.properties[key][event]) {
917
+ esquema.properties[key][event].forEach(function (value) {
918
+ _this.setValueEvent(_this.data, value);
919
+ });
920
+ }
921
+ }
922
+ }
923
+ };
924
+ RegistroChildComponent.prototype.setValueEvent = function (data, params) {
925
+ var _a;
926
+ var value;
927
+ switch (params.op) {
928
+ case 'sum':
929
+ value = jsonpath__namespace.query(data, params === null || params === void 0 ? void 0 : params.scope[0]).reduce(function (acc, cur) { return acc += (params === null || params === void 0 ? void 0 : params.key) ? cur[params.key] : cur; }, 0);
930
+ break;
931
+ case 'concat':
932
+ var array_1 = [];
933
+ (_a = params === null || params === void 0 ? void 0 : params.key) === null || _a === void 0 ? void 0 : _a.reduce(function (acc, cur) {
934
+ array_1.push(jsonpath__namespace.query(data, cur)[0]);
935
+ }, []);
936
+ if (params === null || params === void 0 ? void 0 : params.separator)
937
+ jsonpath__namespace.value(data, params.scope[0], array_1.join((params === null || params === void 0 ? void 0 : params.separator) || ' '));
938
+ break;
939
+ case 'enable':
940
+ jsonpath__namespace.value(this.esquema, params.scope[0], false);
941
+ break;
942
+ case 'disabled':
943
+ jsonpath__namespace.value(this.esquema, params.scope[0], true);
944
+ break;
945
+ case 'replace:endpoint':
946
+ jsonpath__namespace.value(this.esquema, params.scope[0], jsonpath__namespace.query(this.esquema, params.scope[1])[0].replace(params.scope[2], jsonpath__namespace.query(data, "$.." + params.key)));
947
+ break;
948
+ case 'setNull':
949
+ jsonpath__namespace.value(this.data, "$." + params.key, null);
950
+ break;
951
+ default:
952
+ break;
953
+ }
954
+ return value;
955
+ };
956
+ RegistroChildComponent.prototype.sendNotification = function (message) {
957
+ this.messageService.add(message);
958
+ };
959
+ return RegistroChildComponent;
960
+ }());
961
+ RegistroChildComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: RegistroChildComponent, deps: [{ token: i1__namespace$1.DynamicDialogRef }, { token: i1__namespace$1.DynamicDialogConfig }, { token: i3__namespace$1.MessageService }], target: i0__namespace.ɵɵFactoryTarget.Component });
962
+ RegistroChildComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: RegistroChildComponent, selector: "lib-registro-child", providers: [i3$1.MessageService], ngImport: i0__namespace, template: "<p-toast></p-toast>\n<div *ngFor=\"let element of uiEsquema.elements\" [class]=\"element?.class\" #a>\n <ng-container [ngSwitch]=\"element.type\">\n <div *ngSwitchCase=\"'Label'\" [style]=\"element?.style\">\n {{element?.label}}\n </div>\n <ng-container *ngSwitchCase=\"'HorizontalLayout'\">\n <div *ngFor=\"let el of element.elements\" [class]=\"el?.class\">\n <ng-container [ngSwitch]=\"el.type\">\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"getControl(el.scope)\" [label]=\"el.label\"\n [value]=\"getValue(el.scope)\" (setValue)=\"setValue($event, el.scope)\"\n (sendNotification)=\"sendNotification($event)\"></sf-control>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'VerticalLayout'\">\n <div *ngFor=\"let el of element.elements\" [class]=\"el?.class\">\n <ng-container [ngSwitch]=\"el.type\">\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"getControl(el.scope)\" [label]=\"el.label\"\n [value]=\"getValue(el.scope)\" (setValue)=\"setValue($event, el.scope)\"\n (sendNotification)=\"sendNotification($event)\"></sf-control>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Control'\">\n <sf-control [control]=\"getControl(element.scope)\" [label]=\"element.label\"></sf-control>\n </ng-container>\n </ng-container>\n</div>\n<div class=\"card-footer mt-2\">\n <button pButton pRipple type=\"button\" label=\"Guardar\" (click)=\"submit()\" class=\"mr-2\"></button>\n <button pButton pRipple type=\"button\" label=\"Cancelar\" (click)=\"cancel()\" class=\"p-button-danger\"></button>\n</div>", components: [{ type: i3__namespace$3.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { type: ControlComponent, selector: "sf-control", inputs: ["control", "label", "value", "appendTo"], outputs: ["setValue", "sendNotification"] }], directives: [{ type: i7__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7__namespace.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i7__namespace.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i9__namespace.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { type: i10__namespace.Ripple, selector: "[pRipple]" }] });
963
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: RegistroChildComponent, decorators: [{
964
+ type: i0.Component,
965
+ args: [{
966
+ selector: 'lib-registro-child',
967
+ templateUrl: './registro-child.component.html',
968
+ providers: [i3$1.MessageService]
969
+ }]
970
+ }], ctorParameters: function () { return [{ type: i1__namespace$1.DynamicDialogRef }, { type: i1__namespace$1.DynamicDialogConfig }, { type: i3__namespace$1.MessageService }]; } });
971
+
972
+ var SfCrudService = /** @class */ (function () {
973
+ function SfCrudService() {
974
+ this._dataTemp = [];
975
+ }
976
+ SfCrudService.prototype.saveDataTemp = function (scope, value) {
977
+ this._dataTemp.push({ scope: scope, value: value });
978
+ sessionStorage.setItem('dataTemp', JSON.stringify(this._dataTemp));
979
+ };
980
+ SfCrudService.prototype.getDataTemp = function () {
981
+ var dataTemp = sessionStorage.getItem('dataTemp');
982
+ sessionStorage.removeItem('dataTemp');
983
+ return dataTemp ? JSON.parse(dataTemp) : [];
984
+ };
985
+ SfCrudService.prototype.cleanDataTemp = function () {
986
+ sessionStorage.removeItem('dataTemp');
987
+ };
988
+ return SfCrudService;
989
+ }());
990
+ SfCrudService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: SfCrudService, deps: [], target: i0__namespace.ɵɵFactoryTarget.Injectable });
991
+ SfCrudService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: SfCrudService, providedIn: 'root' });
992
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: SfCrudService, decorators: [{
993
+ type: i0.Injectable,
994
+ args: [{
995
+ providedIn: 'root'
996
+ }]
997
+ }], ctorParameters: function () { return []; } });
998
+
617
999
  var RegistroComponent = /** @class */ (function () {
618
- function RegistroComponent(generalService, router, messageSerice) {
1000
+ function RegistroComponent(generalService, router, messageSerice, dialogService, sfCrudService) {
619
1001
  this.generalService = generalService;
620
1002
  this.router = router;
621
1003
  this.messageSerice = messageSerice;
1004
+ this.dialogService = dialogService;
1005
+ this.sfCrudService = sfCrudService;
622
1006
  this.idKatios = '';
623
1007
  this.idEntidad = '';
624
1008
  this.trx = '';
625
1009
  this.id = '';
626
- this.enProceso = false;
1010
+ this.sendData = new i0.EventEmitter();
1011
+ this.dataTemp = [];
627
1012
  this.crudConfig = new CrudConfig();
1013
+ this.enProceso = false;
628
1014
  this.configOperation = new Operations();
1015
+ this.isLocal = false;
1016
+ this.dataTemp = this.sfCrudService.getDataTemp();
629
1017
  }
630
1018
  RegistroComponent.prototype.ngOnInit = function () {
631
1019
  this.loadConfigCrud();
@@ -636,7 +1024,9 @@
636
1024
  this.enProceso = true;
637
1025
  this.generalService.getCrudByEntidad(this.idKatios, this.idEntidad)
638
1026
  .then(function (res) {
1027
+ _this.setDataTemp(res.esquema, _this.dataTemp);
639
1028
  _this.crudConfig = res;
1029
+ console.log(_this.crudConfig);
640
1030
  if (_this.trx != 'c')
641
1031
  _this.getInfoRegistro(_this.crudConfig.registro);
642
1032
  else {
@@ -686,19 +1076,34 @@
686
1076
  return jsonpath__namespace.query(this.data, scope.replace('.properties', ''))[0];
687
1077
  };
688
1078
  RegistroComponent.prototype.setValue = function (value, scope) {
689
- jsonpath__namespace.value(this.data, scope.replace('.properties', ''), value);
1079
+ var _this = this;
1080
+ switch (typeof (value)) {
1081
+ case 'object':
1082
+ if (Array.isArray(value))
1083
+ value.forEach(function (val) { return jsonpath__namespace.value(_this.data, val.scope.replace('.properties', ''), val.value); });
1084
+ else
1085
+ jsonpath__namespace.value(this.data, scope.replace('.properties', ''), value);
1086
+ break;
1087
+ default:
1088
+ jsonpath__namespace.value(this.data, scope.replace('.properties', ''), value);
1089
+ break;
1090
+ }
1091
+ this.applyValuesOnEvent('onChange', this.crudConfig.esquema);
690
1092
  };
691
1093
  RegistroComponent.prototype.createObject = function (esquema) {
692
1094
  var object = {};
693
1095
  switch (esquema.type) {
1096
+ case 'numeric':
1097
+ return (esquema === null || esquema === void 0 ? void 0 : esquema.default) || 0;
694
1098
  case 'string':
695
- case 'number':
696
1099
  case 'date':
697
1100
  return (esquema === null || esquema === void 0 ? void 0 : esquema.default) ? this.setDefaultValue(esquema.default) : null;
698
1101
  case 'boolean':
699
1102
  return (esquema === null || esquema === void 0 ? void 0 : esquema.default) || false;
700
1103
  case 'array':
701
1104
  return [];
1105
+ case 'file':
1106
+ return null;
702
1107
  case 'object':
703
1108
  for (var key in esquema === null || esquema === void 0 ? void 0 : esquema.properties) {
704
1109
  Object.defineProperty(object, key, { value: this.createObject(esquema === null || esquema === void 0 ? void 0 : esquema.properties[key]), writable: true, enumerable: true, configurable: true });
@@ -711,8 +1116,10 @@
711
1116
  };
712
1117
  RegistroComponent.prototype.submit = function () {
713
1118
  var _this = this;
1119
+ console.log(this.data);
714
1120
  if (!this.validateData())
715
1121
  return;
1122
+ this.applyValuesOnEvent('onSubmit', this.crudConfig.esquema);
716
1123
  this.enProceso = true;
717
1124
  var endpoint = this.configOperation.endpoint;
718
1125
  endpoint = endpoint.replace('@idKatios', this.idKatios);
@@ -721,8 +1128,12 @@
721
1128
  .then(function () {
722
1129
  _this.messageSerice.add({ severity: 'success', detail: "Proceso exitoso!" });
723
1130
  setTimeout(function () {
1131
+ var _a, _b;
724
1132
  _this.enProceso = false;
725
- _this.back();
1133
+ if ((_a = _this.configOperation) === null || _a === void 0 ? void 0 : _a.redirect)
1134
+ _this.router.navigate([(_b = _this.configOperation) === null || _b === void 0 ? void 0 : _b.redirect]);
1135
+ else
1136
+ _this.back();
726
1137
  }, 2000);
727
1138
  })
728
1139
  .catch(function (err) {
@@ -738,11 +1149,24 @@
738
1149
  };
739
1150
  RegistroComponent.prototype.validateDataLocal = function () {
740
1151
  var _this = this;
1152
+ var _a, _b, _c, _d;
741
1153
  var err = [];
742
- this.configOperation.validations.required.forEach(function (x) {
1154
+ (_b = (_a = this.configOperation.validations) === null || _a === void 0 ? void 0 : _a.required) === null || _b === void 0 ? void 0 : _b.forEach(function (x) {
743
1155
  if (!jsonpath__namespace.query(_this.data, x.field)[0])
744
1156
  err.push(x.message);
745
1157
  });
1158
+ (_d = (_c = this.configOperation.validations) === null || _c === void 0 ? void 0 : _c.operations) === null || _d === void 0 ? void 0 : _d.forEach(function (op) {
1159
+ switch (op.action) {
1160
+ case 'sumArray':
1161
+ var var1 = jsonpath__namespace.query(_this.data, op.scope[0]).reduce(function (acc, cur) { return acc += cur[op.key]; }, 0);
1162
+ var var2 = jsonpath__namespace.query(_this.data, op.scope[1]).reduce(function (acc, cur) { return acc += cur[op.key]; }, 0);
1163
+ if (var1 != var2)
1164
+ err.push(op.message);
1165
+ break;
1166
+ default:
1167
+ break;
1168
+ }
1169
+ });
746
1170
  if (err.length != 0)
747
1171
  this.messageSerice.add({ severity: 'warn', detail: err.join('. ') });
748
1172
  return err.length == 0;
@@ -751,11 +1175,13 @@
751
1175
  var data = null;
752
1176
  switch (value) {
753
1177
  case '@uactivo':
754
- var uactivo = JSON.parse(sessionStorage.getItem('oSessionTFM') || '{}');
755
- if (!uactivo)
756
- console.log('Validar configuracion de sesion');
757
- else
758
- data = uactivo.UsuarioSistema.TDOC + "-" + uactivo.UsuarioSistema.NDOC;
1178
+ data = this.user.UsuarioSistema.TDOC + "-" + this.user.UsuarioSistema.NDOC;
1179
+ break;
1180
+ case '@tdocactivo':
1181
+ data = this.user.UsuarioSistema.TDOC;
1182
+ break;
1183
+ case '@ndocactivo':
1184
+ data = this.user.UsuarioSistema.NDOC;
759
1185
  break;
760
1186
  case '@hoy':
761
1187
  data = new Date();
@@ -766,18 +1192,123 @@
766
1192
  }
767
1193
  return data;
768
1194
  };
1195
+ RegistroComponent.prototype.sendNotification = function (message) {
1196
+ this.messageSerice.add(message);
1197
+ };
1198
+ RegistroComponent.prototype.addObjectArray = function (element) {
1199
+ var _this = this;
1200
+ this.dialogRef = this.dialogService.open(RegistroChildComponent, {
1201
+ header: "Detalle",
1202
+ width: '70%',
1203
+ modal: true,
1204
+ closable: false,
1205
+ data: {
1206
+ uiEsquema: Object.assign({}, element.elements),
1207
+ esquema: this.getControl(element.scope),
1208
+ id: this.getValue(element.scope).length + 1
1209
+ }
1210
+ });
1211
+ this.dialogRef.onClose.subscribe(function (data) {
1212
+ if (data)
1213
+ _this.data[element.scope.replace('$..properties.', '')].push(data);
1214
+ _this.applyValuesOnEvent('onChange', _this.crudConfig.esquema, element.scope.replace('$..properties.', ''));
1215
+ });
1216
+ };
1217
+ RegistroComponent.prototype.editRow = function (element, data) {
1218
+ var _this = this;
1219
+ this.dialogRef = this.dialogService.open(RegistroChildComponent, {
1220
+ header: "Detalle",
1221
+ width: '70%',
1222
+ modal: true,
1223
+ closable: false,
1224
+ data: {
1225
+ uiEsquema: Object.assign({}, element.elements),
1226
+ esquema: this.getControl(element.scope),
1227
+ data: Object.assign({}, data)
1228
+ }
1229
+ });
1230
+ this.dialogRef.onClose.subscribe(function (data) {
1231
+ if (data)
1232
+ _this.data[element.scope.replace('$..properties.', '')][data.id - 1] = data;
1233
+ _this.applyValuesOnEvent('onChange', _this.crudConfig.esquema, element.scope.replace('$..properties.', ''));
1234
+ });
1235
+ };
1236
+ RegistroComponent.prototype.deleteRow = function (element, index) {
1237
+ this.data[element.scope.replace('$..properties.', '')].splice(index - 1, 1);
1238
+ index = 1;
1239
+ this.data[element.scope.replace('$..properties.', '')].forEach(function (el) {
1240
+ el.id = index;
1241
+ index++;
1242
+ });
1243
+ this.applyValuesOnEvent('onChange', this.crudConfig.esquema, element.scope.replace('$..properties.', ''));
1244
+ };
1245
+ RegistroComponent.prototype.applyValuesOnEvent = function (event, esquema, key) {
1246
+ var _this = this;
1247
+ if (key) {
1248
+ if (esquema.properties[key][event]) {
1249
+ esquema.properties[key][event].forEach(function (value) {
1250
+ _this.setValueEvent(_this.data, value);
1251
+ });
1252
+ }
1253
+ }
1254
+ else {
1255
+ for (var key_1 in esquema.properties) {
1256
+ if (esquema.properties[key_1][event]) {
1257
+ esquema.properties[key_1][event].forEach(function (value) {
1258
+ _this.setValueEvent(_this.data, value);
1259
+ });
1260
+ }
1261
+ }
1262
+ }
1263
+ };
1264
+ RegistroComponent.prototype.setValueEvent = function (data, params) {
1265
+ var _a;
1266
+ switch (params.op) {
1267
+ case 'sum':
1268
+ jsonpath__namespace.value(data, params.scope[1], jsonpath__namespace.query(data, params.scope[0]).reduce(function (acc, cur) { return acc += (params === null || params === void 0 ? void 0 : params.key) ? cur[params.key] : cur; }, 0));
1269
+ break;
1270
+ case 'concat':
1271
+ var array_1 = [];
1272
+ (_a = params === null || params === void 0 ? void 0 : params.key) === null || _a === void 0 ? void 0 : _a.reduce(function (acc, cur) {
1273
+ array_1.push(jsonpath__namespace.query(data, cur)[0]);
1274
+ }, []);
1275
+ if (params === null || params === void 0 ? void 0 : params.separator)
1276
+ jsonpath__namespace.value(data, params.scope[0], array_1.join((params === null || params === void 0 ? void 0 : params.separator) || ' '));
1277
+ break;
1278
+ case 'enable':
1279
+ jsonpath__namespace.value(this.crudConfig.esquema, params.scope[0], false);
1280
+ break;
1281
+ case 'disabled':
1282
+ jsonpath__namespace.value(this.crudConfig.esquema, params.scope[0], true);
1283
+ break;
1284
+ case 'replace:endpoint':
1285
+ jsonpath__namespace.value(this.crudConfig.esquema, params.scope[0], this.crudConfig.esquema.config.endpointtemp.replace(params.scope[1], jsonpath__namespace.query(data, "$.." + params.key)));
1286
+ break;
1287
+ case 'setNull':
1288
+ jsonpath__namespace.value(this.data, "$." + params.key, null);
1289
+ break;
1290
+ default:
1291
+ break;
1292
+ }
1293
+ };
1294
+ RegistroComponent.prototype.setDataTemp = function (esquema, dataTemp) {
1295
+ dataTemp.forEach(function (data) {
1296
+ jsonpath__namespace.value(esquema, data.scope, data.value);
1297
+ });
1298
+ };
769
1299
  return RegistroComponent;
770
1300
  }());
771
- RegistroComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: RegistroComponent, deps: [{ token: GeneralService }, { token: i2__namespace.Router }, { token: i3__namespace$1.MessageService }], target: i0__namespace.ɵɵFactoryTarget.Component });
772
- RegistroComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: RegistroComponent, selector: "sf-registro", inputs: { idKatios: "idKatios", idEntidad: "idEntidad", trx: "trx", id: "id" }, providers: [i3$1.MessageService], ngImport: i0__namespace, template: "<p-blockUI [blocked]=\"enProceso\">\r\n <i class=\"pi pi-cog pi-spin\" style=\"font-size: 50px\"></i>\r\n</p-blockUI>\r\n\r\n<p-toast></p-toast>\r\n\r\n<div class=\"card\" *ngIf=\"!enProceso\">\r\n <h5 class=\"card-header mb-2\" style=\"display: flex; justify-content: space-between;align-items: center;\">\r\n <span>{{idEntidad}} {{id != '' ? '-' + id : ''}}</span>\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-arrow-left\" (click)=\"back()\"></button>\r\n </h5>\r\n <div *ngFor=\"let element of crudConfig.uiEsquema.elements\" [class]=\"element?.class\">\r\n <ng-container [ngSwitch]=\"element.type\">\r\n <div *ngSwitchCase=\"'Label'\" [style]=\"element?.style\">\r\n {{element?.label}}\r\n </div>\r\n <ng-container *ngSwitchCase=\"'HorizontalLayout'\">\r\n <div *ngFor=\"let el of element.elements\" [class]=\"el?.class\">\r\n <ng-container [ngSwitch]=\"el.type\" >\r\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"getControl(el.scope)\" [label]=\"el.label\" [value]=\"getValue(el.scope)\" (setValue)=\"setValue($event, el.scope)\"></sf-control>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <div *ngSwitchCase=\"'Control'\">\r\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"getControl(element.scope)\" [label]=\"element.label\"></sf-control>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"card-footer\" *ngIf=\"btnSubmit\">\r\n <button pButton pRipple type=\"button\" [icon]=\"btnSubmit.icon\" [label]=\"btnSubmit.label\" (click)=\"submit()\"></button>\r\n </div>\r\n</div>", components: [{ type: i3__namespace.BlockUI, selector: "p-blockUI", inputs: ["autoZIndex", "baseZIndex", "blocked", "target", "styleClass"] }, { type: i5__namespace$1.Toast, selector: "p-toast", inputs: ["autoZIndex", "baseZIndex", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "key", "style", "styleClass", "breakpoints"], outputs: ["onClose"] }, { type: ControlComponent, selector: "sf-control", inputs: ["control", "label", "value"], outputs: ["setValue"] }], directives: [{ type: i7__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8__namespace.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { type: i9__namespace.Ripple, selector: "[pRipple]" }, { type: i7__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7__namespace.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i7__namespace.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }] });
1301
+ RegistroComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: RegistroComponent, deps: [{ token: GeneralService }, { token: i2__namespace.Router }, { token: i3__namespace$1.MessageService }, { token: i1__namespace$1.DialogService }, { token: SfCrudService }], target: i0__namespace.ɵɵFactoryTarget.Component });
1302
+ RegistroComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: RegistroComponent, selector: "sf-registro", inputs: { idKatios: "idKatios", idEntidad: "idEntidad", trx: "trx", id: "id", user: "user" }, outputs: { sendData: "sendData" }, providers: [i3$1.MessageService, i1$1.DialogService, i1$1.DynamicDialogConfig, i1$1.DynamicDialogRef], ngImport: i0__namespace, template: "<p-blockUI [blocked]=\"enProceso\">\r\n <i class=\"pi pi-cog pi-spin\" style=\"font-size: 50px\"></i>\r\n</p-blockUI>\r\n\r\n<p-toast></p-toast>\r\n\r\n<div class=\"card\" *ngIf=\"!enProceso\">\r\n <h5 class=\"card-header mb-2\" style=\"display: flex; justify-content: space-between;align-items: center;\">\r\n <span>{{crudConfig.registro?.label || idEntidad}} {{id != '' ? '-' + id : ''}}</span>\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-arrow-left\" (click)=\"back()\"></button>\r\n </h5>\r\n <div *ngFor=\"let element of crudConfig.uiEsquema.elements\" [class]=\"element?.class\">\r\n <ng-container [ngSwitch]=\"element.type\">\r\n <div *ngSwitchCase=\"'Label'\" [style]=\"element?.style\">\r\n {{element?.label}}\r\n </div>\r\n <ng-container *ngSwitchCase=\"'HorizontalLayout'\">\r\n <div *ngFor=\"let el of element.elements\" [class]=\"el?.class\">\r\n <ng-container [ngSwitch]=\"el.type\">\r\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"getControl(el.scope)\" [label]=\"el.label\"\r\n [value]=\"getValue(el.scope)\" (setValue)=\"setValue($event, el.scope)\"\r\n (sendNotification)=\"sendNotification($event)\"></sf-control>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'VerticalLayout'\">\r\n <div *ngFor=\"let el of element.elements\" [class]=\"el?.class\">\r\n <ng-container [ngSwitch]=\"el.type\">\r\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"getControl(el.scope)\" [label]=\"el.label\"\r\n [value]=\"getValue(el.scope)\" (setValue)=\"setValue($event, el.scope)\"\r\n (sendNotification)=\"sendNotification($event)\"></sf-control>\r\n <ng-container *ngSwitchCase=\"'Table'\">\r\n <p-table [value]=\"getValue(el.scope)\" [columns]=\"getControl(el.scope).config.columns\">\r\n <ng-template pTemplate=\"caption\">\r\n <div class=\"flex align-items-center justify-content-between\">\r\n <button pButton pRipple icon=\"pi pi-plus\" (click)=\"addObjectArray(el)\"\r\n class=\"p-button-success\"></button>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngFor=\"let col of columns\">\r\n {{col.label}}\r\n </th>\r\n <ng-container *ngIf=\"trx == 'c' || trx == 'u'\">\r\n <th></th>\r\n </ng-container>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\" let-rowIndex=\"rowIndex\">\r\n <tr>\r\n <ng-container *ngFor=\"let col of columns\" [ngSwitch]=\"col.type\">\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <td>{{rowData[col.col]}}</td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'currency:USD'\">\r\n <td>{{rowData[col.col] | currency: 'USD'}}</td>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"trx == 'c' || trx == 'u'\">\r\n <td>\r\n <!-- <button pButton pRipple type=\"button\" (click)=\"editRow(el, rowData)\" icon=\"pi pi-pencil\" class=\"p-button-rounded p-button-info mr-1\"></button> -->\r\n <button pButton pRipple type=\"button\" (click)=\"deleteRow(el, rowIndex)\" icon=\"pi pi-trash\" class=\"p-button-rounded p-button-danger\"></button>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'Control'\">\r\n <sf-control [control]=\"getControl(element.scope)\" [label]=\"element.label\"></sf-control>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <div class=\"card-footer mt-2\" *ngIf=\"btnSubmit\">\r\n <button pButton pRipple type=\"button\" [icon]=\"btnSubmit.icon\" [label]=\"btnSubmit.label\"\r\n (click)=\"submit()\"></button>\r\n </div>\r\n</div>\r\n", components: [{ type: i3__namespace.BlockUI, selector: "p-blockUI", inputs: ["target", "autoZIndex", "baseZIndex", "styleClass", "blocked"] }, { type: i3__namespace$3.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { type: ControlComponent, selector: "sf-control", inputs: ["control", "label", "value", "appendTo"], outputs: ["setValue", "sendNotification"] }, { type: i5__namespace.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollDelay", "virtualRowHeight", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "stateKey", "stateStorage", "editMode", "groupRowsBy", "minBufferPx", "maxBufferPx", "responsiveLayout", "breakpoint", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection"], outputs: ["selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }], directives: [{ type: i7__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9__namespace.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { type: i10__namespace.Ripple, selector: "[pRipple]" }, { type: i7__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7__namespace.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i7__namespace.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i3__namespace$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }], pipes: { "currency": i7__namespace.CurrencyPipe } });
773
1303
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: RegistroComponent, decorators: [{
774
1304
  type: i0.Component,
775
1305
  args: [{
776
1306
  selector: 'sf-registro',
777
1307
  templateUrl: './registro.component.html',
778
- providers: [i3$1.MessageService]
1308
+ providers: [i3$1.MessageService, i1$1.DialogService, i1$1.DynamicDialogConfig, i1$1.DynamicDialogRef],
1309
+ entryComponents: [RegistroComponent]
779
1310
  }]
780
- }], ctorParameters: function () { return [{ type: GeneralService }, { type: i2__namespace.Router }, { type: i3__namespace$1.MessageService }]; }, propDecorators: { idKatios: [{
1311
+ }], ctorParameters: function () { return [{ type: GeneralService }, { type: i2__namespace.Router }, { type: i3__namespace$1.MessageService }, { type: i1__namespace$1.DialogService }, { type: SfCrudService }]; }, propDecorators: { idKatios: [{
781
1312
  type: i0.Input
782
1313
  }], idEntidad: [{
783
1314
  type: i0.Input
@@ -785,6 +1316,10 @@
785
1316
  type: i0.Input
786
1317
  }], id: [{
787
1318
  type: i0.Input
1319
+ }], user: [{
1320
+ type: i0.Input
1321
+ }], sendData: [{
1322
+ type: i0.Output
788
1323
  }] } });
789
1324
 
790
1325
  var SfCrudComponent = /** @class */ (function () {
@@ -814,14 +1349,16 @@
814
1349
  SfCrudModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: SfCrudModule, declarations: [SfCrudComponent,
815
1350
  TableroComponent,
816
1351
  RegistroComponent,
817
- ControlComponent], imports: [accordion.AccordionModule,
1352
+ ControlComponent,
1353
+ RegistroChildComponent], imports: [accordion.AccordionModule,
1354
+ i4$1.AutoCompleteModule,
818
1355
  avatargroup.AvatarGroupModule,
819
1356
  avatar.AvatarModule,
820
1357
  badge.BadgeModule,
821
1358
  i3.BlockUIModule,
822
1359
  breadcrumb.BreadcrumbModule,
823
- i8.ButtonModule,
824
- i3$2.CalendarModule,
1360
+ i9.ButtonModule,
1361
+ i5$1.CalendarModule,
825
1362
  card.CardModule,
826
1363
  carousel.CarouselModule,
827
1364
  cascadeselect.CascadeSelectModule,
@@ -835,18 +1372,19 @@
835
1372
  contextmenu.ContextMenuModule,
836
1373
  dialog.DialogModule,
837
1374
  divider.DividerModule,
838
- i2$1.DropdownModule,
1375
+ i3$2.DropdownModule,
1376
+ i1$1.DynamicDialogModule,
839
1377
  fieldset.FieldsetModule,
840
- fileupload.FileUploadModule,
841
- i6.FormsModule,
1378
+ i7$1.FileUploadModule,
1379
+ i9$1.FormsModule,
842
1380
  galleria.GalleriaModule,
843
1381
  i1.HttpClientModule,
844
1382
  inplace.InplaceModule,
845
- inputmask.InputMaskModule,
846
- i4$1.InputNumberModule,
1383
+ i2$1.InputMaskModule,
1384
+ i6$1.InputNumberModule,
847
1385
  inputswitch.InputSwitchModule,
848
1386
  inputtextarea.InputTextareaModule,
849
- i10.InputTextModule,
1387
+ i11.InputTextModule,
850
1388
  knob.KnobModule,
851
1389
  lightbox.LightboxModule,
852
1390
  listbox.ListboxModule,
@@ -864,7 +1402,7 @@
864
1402
  progressbar.ProgressBarModule,
865
1403
  radiobutton.RadioButtonModule,
866
1404
  rating.RatingModule,
867
- i9.RippleModule,
1405
+ i10.RippleModule,
868
1406
  scrollpanel.ScrollPanelModule,
869
1407
  scrolltop.ScrollTopModule,
870
1408
  selectbutton.SelectButtonModule,
@@ -872,6 +1410,7 @@
872
1410
  skeleton.SkeletonModule,
873
1411
  slidemenu.SlideMenuModule,
874
1412
  slider.SliderModule,
1413
+ i6.SplitButtonModule,
875
1414
  splitter.SplitterModule,
876
1415
  steps.StepsModule,
877
1416
  i5.TableModule,
@@ -881,22 +1420,24 @@
881
1420
  terminal.TerminalModule,
882
1421
  tieredmenu.TieredMenuModule,
883
1422
  timeline.TimelineModule,
884
- i5$1.ToastModule,
1423
+ i3$3.ToastModule,
885
1424
  togglebutton.ToggleButtonModule,
886
1425
  i4.ToolbarModule,
887
- i11.TooltipModule,
1426
+ tooltip.TooltipModule,
888
1427
  tree.TreeModule], exports: [SfCrudComponent,
889
1428
  TableroComponent,
890
- RegistroComponent] });
1429
+ RegistroComponent,
1430
+ ControlComponent] });
891
1431
  SfCrudModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: SfCrudModule, imports: [[
892
1432
  accordion.AccordionModule,
1433
+ i4$1.AutoCompleteModule,
893
1434
  avatargroup.AvatarGroupModule,
894
1435
  avatar.AvatarModule,
895
1436
  badge.BadgeModule,
896
1437
  i3.BlockUIModule,
897
1438
  breadcrumb.BreadcrumbModule,
898
- i8.ButtonModule,
899
- i3$2.CalendarModule,
1439
+ i9.ButtonModule,
1440
+ i5$1.CalendarModule,
900
1441
  card.CardModule,
901
1442
  carousel.CarouselModule,
902
1443
  cascadeselect.CascadeSelectModule,
@@ -910,18 +1451,19 @@
910
1451
  contextmenu.ContextMenuModule,
911
1452
  dialog.DialogModule,
912
1453
  divider.DividerModule,
913
- i2$1.DropdownModule,
1454
+ i3$2.DropdownModule,
1455
+ i1$1.DynamicDialogModule,
914
1456
  fieldset.FieldsetModule,
915
- fileupload.FileUploadModule,
916
- i6.FormsModule,
1457
+ i7$1.FileUploadModule,
1458
+ i9$1.FormsModule,
917
1459
  galleria.GalleriaModule,
918
1460
  i1.HttpClientModule,
919
1461
  inplace.InplaceModule,
920
- inputmask.InputMaskModule,
921
- i4$1.InputNumberModule,
1462
+ i2$1.InputMaskModule,
1463
+ i6$1.InputNumberModule,
922
1464
  inputswitch.InputSwitchModule,
923
1465
  inputtextarea.InputTextareaModule,
924
- i10.InputTextModule,
1466
+ i11.InputTextModule,
925
1467
  knob.KnobModule,
926
1468
  lightbox.LightboxModule,
927
1469
  listbox.ListboxModule,
@@ -939,7 +1481,7 @@
939
1481
  progressbar.ProgressBarModule,
940
1482
  radiobutton.RadioButtonModule,
941
1483
  rating.RatingModule,
942
- i9.RippleModule,
1484
+ i10.RippleModule,
943
1485
  scrollpanel.ScrollPanelModule,
944
1486
  scrolltop.ScrollTopModule,
945
1487
  selectbutton.SelectButtonModule,
@@ -947,6 +1489,7 @@
947
1489
  skeleton.SkeletonModule,
948
1490
  slidemenu.SlideMenuModule,
949
1491
  slider.SliderModule,
1492
+ i6.SplitButtonModule,
950
1493
  splitter.SplitterModule,
951
1494
  steps.StepsModule,
952
1495
  i5.TableModule,
@@ -956,10 +1499,10 @@
956
1499
  terminal.TerminalModule,
957
1500
  tieredmenu.TieredMenuModule,
958
1501
  timeline.TimelineModule,
959
- i5$1.ToastModule,
1502
+ i3$3.ToastModule,
960
1503
  togglebutton.ToggleButtonModule,
961
1504
  i4.ToolbarModule,
962
- i11.TooltipModule,
1505
+ tooltip.TooltipModule,
963
1506
  tree.TreeModule,
964
1507
  ]] });
965
1508
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: SfCrudModule, decorators: [{
@@ -969,17 +1512,19 @@
969
1512
  SfCrudComponent,
970
1513
  TableroComponent,
971
1514
  RegistroComponent,
972
- ControlComponent
1515
+ ControlComponent,
1516
+ RegistroChildComponent
973
1517
  ],
974
1518
  imports: [
975
1519
  accordion.AccordionModule,
1520
+ i4$1.AutoCompleteModule,
976
1521
  avatargroup.AvatarGroupModule,
977
1522
  avatar.AvatarModule,
978
1523
  badge.BadgeModule,
979
1524
  i3.BlockUIModule,
980
1525
  breadcrumb.BreadcrumbModule,
981
- i8.ButtonModule,
982
- i3$2.CalendarModule,
1526
+ i9.ButtonModule,
1527
+ i5$1.CalendarModule,
983
1528
  card.CardModule,
984
1529
  carousel.CarouselModule,
985
1530
  cascadeselect.CascadeSelectModule,
@@ -993,18 +1538,19 @@
993
1538
  contextmenu.ContextMenuModule,
994
1539
  dialog.DialogModule,
995
1540
  divider.DividerModule,
996
- i2$1.DropdownModule,
1541
+ i3$2.DropdownModule,
1542
+ i1$1.DynamicDialogModule,
997
1543
  fieldset.FieldsetModule,
998
- fileupload.FileUploadModule,
999
- i6.FormsModule,
1544
+ i7$1.FileUploadModule,
1545
+ i9$1.FormsModule,
1000
1546
  galleria.GalleriaModule,
1001
1547
  i1.HttpClientModule,
1002
1548
  inplace.InplaceModule,
1003
- inputmask.InputMaskModule,
1004
- i4$1.InputNumberModule,
1549
+ i2$1.InputMaskModule,
1550
+ i6$1.InputNumberModule,
1005
1551
  inputswitch.InputSwitchModule,
1006
1552
  inputtextarea.InputTextareaModule,
1007
- i10.InputTextModule,
1553
+ i11.InputTextModule,
1008
1554
  knob.KnobModule,
1009
1555
  lightbox.LightboxModule,
1010
1556
  listbox.ListboxModule,
@@ -1022,7 +1568,7 @@
1022
1568
  progressbar.ProgressBarModule,
1023
1569
  radiobutton.RadioButtonModule,
1024
1570
  rating.RatingModule,
1025
- i9.RippleModule,
1571
+ i10.RippleModule,
1026
1572
  scrollpanel.ScrollPanelModule,
1027
1573
  scrolltop.ScrollTopModule,
1028
1574
  selectbutton.SelectButtonModule,
@@ -1030,6 +1576,7 @@
1030
1576
  skeleton.SkeletonModule,
1031
1577
  slidemenu.SlideMenuModule,
1032
1578
  slider.SliderModule,
1579
+ i6.SplitButtonModule,
1033
1580
  splitter.SplitterModule,
1034
1581
  steps.StepsModule,
1035
1582
  i5.TableModule,
@@ -1039,34 +1586,24 @@
1039
1586
  terminal.TerminalModule,
1040
1587
  tieredmenu.TieredMenuModule,
1041
1588
  timeline.TimelineModule,
1042
- i5$1.ToastModule,
1589
+ i3$3.ToastModule,
1043
1590
  togglebutton.ToggleButtonModule,
1044
1591
  i4.ToolbarModule,
1045
- i11.TooltipModule,
1592
+ tooltip.TooltipModule,
1046
1593
  tree.TreeModule,
1047
1594
  ],
1048
1595
  exports: [
1049
1596
  SfCrudComponent,
1050
1597
  TableroComponent,
1051
- RegistroComponent
1598
+ RegistroComponent,
1599
+ ControlComponent
1600
+ ],
1601
+ entryComponents: [
1602
+ RegistroChildComponent
1052
1603
  ]
1053
1604
  }]
1054
1605
  }] });
1055
1606
 
1056
- var SfCrudService = /** @class */ (function () {
1057
- function SfCrudService() {
1058
- }
1059
- return SfCrudService;
1060
- }());
1061
- SfCrudService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: SfCrudService, deps: [], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1062
- SfCrudService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: SfCrudService, providedIn: 'root' });
1063
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: SfCrudService, decorators: [{
1064
- type: i0.Injectable,
1065
- args: [{
1066
- providedIn: 'root'
1067
- }]
1068
- }], ctorParameters: function () { return []; } });
1069
-
1070
1607
  /*
1071
1608
  * Public API Surface of sf-crud
1072
1609
  */
@@ -1075,6 +1612,7 @@
1075
1612
  * Generated bundle index. Do not edit.
1076
1613
  */
1077
1614
 
1615
+ exports.ControlComponent = ControlComponent;
1078
1616
  exports.RegistroComponent = RegistroComponent;
1079
1617
  exports.SfCrudComponent = SfCrudComponent;
1080
1618
  exports.SfCrudModule = SfCrudModule;