sf-crud 12.0.5 → 12.1.1

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 (47) hide show
  1. package/bundles/sf-crud.umd.js +2566 -1306
  2. package/bundles/sf-crud.umd.js.map +1 -1
  3. package/esm2015/lib/components/control/control.component.js +285 -73
  4. package/esm2015/lib/components/file-upload/file-upload.component.js +143 -0
  5. package/esm2015/lib/components/form/form.component.js +267 -0
  6. package/esm2015/lib/components/registro/registro.component.js +507 -407
  7. package/esm2015/lib/components/step/step.component.js +79 -0
  8. package/esm2015/lib/components/tablero/tablero.component.js +91 -28
  9. package/esm2015/lib/sf-crud.module.js +27 -15
  10. package/esm2015/lib/sf-crud.routing.module.js +23 -0
  11. package/esm2015/lib/sf-crud.service.js +486 -12
  12. package/esm2015/lib/shared/models/Conditions.model.js +81 -0
  13. package/esm2015/lib/shared/models/Empresa.model.js +2 -0
  14. package/esm2015/lib/shared/models/Reason.model.js +7 -0
  15. package/esm2015/lib/shared/models/crud-config.model.js +36 -13
  16. package/esm2015/lib/shared/models/shema.model.js +5 -1
  17. package/esm2015/lib/shared/services/general.service.js +41 -17
  18. package/esm2015/lib/shared/services/notification.service.js +83 -0
  19. package/esm2015/lib/shared/services/step.service.js +65 -0
  20. package/esm2015/public-api.js +7 -1
  21. package/fesm2015/sf-crud.js +2197 -1151
  22. package/fesm2015/sf-crud.js.map +1 -1
  23. package/lib/components/control/control.component.d.ts +39 -10
  24. package/lib/components/file-upload/file-upload.component.d.ts +34 -0
  25. package/lib/components/form/form.component.d.ts +58 -0
  26. package/lib/components/registro/registro.component.d.ts +81 -54
  27. package/lib/components/step/step.component.d.ts +27 -0
  28. package/lib/components/tablero/tablero.component.d.ts +15 -5
  29. package/lib/sf-crud.module.d.ts +80 -76
  30. package/lib/sf-crud.routing.module.d.ts +7 -0
  31. package/lib/sf-crud.service.d.ts +115 -5
  32. package/lib/shared/models/Conditions.model.d.ts +32 -0
  33. package/lib/shared/models/Empresa.model.d.ts +11 -0
  34. package/lib/shared/models/Reason.model.d.ts +5 -0
  35. package/lib/shared/models/crud-config.model.d.ts +76 -24
  36. package/lib/shared/models/shema.model.d.ts +27 -0
  37. package/lib/shared/services/general.service.d.ts +8 -1
  38. package/lib/shared/services/notification.service.d.ts +27 -0
  39. package/lib/shared/services/step.service.d.ts +27 -0
  40. package/package.json +9 -2
  41. package/public-api.d.ts +6 -0
  42. package/esm2015/lib/components/registro-child/registro-child.component.js +0 -348
  43. package/esm2015/lib/components/registro-detalle/registro-detalle.component.js +0 -232
  44. package/esm2015/lib/shared/models/data-temp-crud.model.js +0 -6
  45. package/lib/components/registro-child/registro-child.component.d.ts +0 -48
  46. package/lib/components/registro-detalle/registro-detalle.component.d.ts +0 -36
  47. package/lib/shared/models/data-temp-crud.model.d.ts +0 -4
@@ -1 +1 @@
1
- {"version":3,"file":"sf-crud.umd.js","sources":["../../../projects/sf-crud/src/lib/shared/models/shema.model.ts","../../../projects/sf-crud/src/lib/shared/models/crud-config.model.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/sf-crud/src/lib/shared/services/general.service.ts","../../../projects/sf-crud/src/lib/components/tablero/tablero.component.ts","../../../projects/sf-crud/src/lib/components/tablero/tablero.component.html","../../../projects/sf-crud/src/lib/components/control/control.component.ts","../../../projects/sf-crud/src/lib/components/control/control.component.html","../../../projects/sf-crud/src/lib/components/registro-detalle/registro-detalle.component.ts","../../../projects/sf-crud/src/lib/components/registro-detalle/registro-detalle.component.html","../../../projects/sf-crud/src/lib/components/registro-child/registro-child.component.ts","../../../projects/sf-crud/src/lib/components/registro-child/registro-child.component.html","../../../projects/sf-crud/src/lib/sf-crud.service.ts","../../../projects/sf-crud/src/lib/components/registro/registro.component.ts","../../../projects/sf-crud/src/lib/components/registro/registro.component.html","../../../projects/sf-crud/src/lib/sf-crud.component.ts","../../../projects/sf-crud/src/lib/sf-crud.module.ts","../../../projects/sf-crud/src/public-api.ts","../../../projects/sf-crud/src/sf-crud.ts"],"sourcesContent":["export class Shema {\r\n type: string = '';\r\n subtype: string = '';\r\n config?: any;\r\n properties?: any;\r\n enum?: any[];\r\n default?:any;\r\n validations?: any\r\n}\r\n\r\n","import { Message } from \"primeng/api\";\r\nimport { Shema } from \"./shema.model\";\r\n\r\nexport class CrudConfig {\r\n idEntidad: string = '';\r\n tablero: ConfigTablero = new ConfigTablero();\r\n uiEsquema: any;\r\n esquema: Shema = new Shema();\r\n registro: ConfigRegistro = new ConfigRegistro();\r\n}\r\n\r\n\r\nexport class ConfigTablero {\r\n columns: any[] = [];\r\n endpoint: string = '';\r\n method: string = '';\r\n server: string = '';\r\n filters: string[] = [];\r\n keys: { key: string, scope?: string }[] = [];\r\n}\r\n\r\nexport class ConfigRegistro {\r\n operations: Operations[] = [];\r\n btnBack: string = '';\r\n label?: string;\r\n}\r\n\r\nexport class Operations {\r\n type: string = '';\r\n server: string = '';\r\n endpoint: string = ''\r\n method: string = '';\r\n validations: Validations = new Validations();\r\n redirect?: string;\r\n errorChecking?: RequestChecking;\r\n answerChecking?: RequestChecking;\r\n keys?: Key[]\r\n}\r\n\r\nexport class Key{\r\n key!: string;\r\n scope!: string;\r\n data?: string;\r\n}\r\n\r\nexport class Validations {\r\n type: string = '';\r\n required: { field: string, message: string }[] = [];\r\n server: string = '';\r\n endpoint: string = '';\r\n operations: any;\r\n}\r\n\r\nexport class RequestChecking {\r\n constructor(\r\n public dynamics: Message,\r\n public statics: Message,\r\n public swal: boolean,\r\n public redirect: string\r\n ){}\r\n}\r\n\r\n\r\n\r\n\r\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n 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) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n 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; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport default {\r\n __extends,\r\n __assign,\r\n __rest,\r\n __decorate,\r\n __param,\r\n __metadata,\r\n __awaiter,\r\n __generator,\r\n __createBinding,\r\n __exportStar,\r\n __values,\r\n __read,\r\n __spread,\r\n __spreadArrays,\r\n __spreadArray,\r\n __await,\r\n __asyncGenerator,\r\n __asyncDelegator,\r\n __asyncValues,\r\n __makeTemplateObject,\r\n __importStar,\r\n __importDefault,\r\n __classPrivateFieldGet,\r\n __classPrivateFieldSet,\r\n __classPrivateFieldIn,\r\n};\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { CrudConfig } from '../models/crud-config.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GeneralService {\r\n\r\n public generales: string = '';\r\n public jsonConfig: any;\r\n\r\n constructor(\r\n private http: HttpClient\r\n ) {\r\n this.jsonConfig = JSON.parse(sessionStorage.getItem('ConfigJSON') || '{}');\r\n this.generales = this.jsonConfig?.ServidorGenerales;\r\n }\r\n\r\n async getCrudByEntidad(idKatios: string, idEntidad: string) {\r\n return this.http.get(`${this.generales}crud/${idKatios}/${idEntidad}`)\r\n .toPromise()\r\n .then((res: any) => <CrudConfig>res.data)\r\n .then(data => { return data })\r\n }\r\n\r\n async genericRequest(method: string, servidor: string, endpoint: string, data?: any) {\r\n switch (method) {\r\n case 'GET':\r\n return this.http.get(`${this.jsonConfig[servidor]}${endpoint}`)\r\n .toPromise();\r\n case 'POST':\r\n return this.http.post(`${this.jsonConfig[servidor]}${endpoint}`, data)\r\n .toPromise();\r\n case 'PUT':\r\n return this.http.put(`${this.jsonConfig[servidor]}${endpoint}`, data)\r\n .toPromise();\r\n case 'DELETE':\r\n return this.http.delete(`${this.jsonConfig[servidor]}${endpoint}`, data)\r\n .toPromise();\r\n default:\r\n return\r\n }\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ConfigTablero, CrudConfig } from '../../shared/models/crud-config.model';\r\nimport { GeneralService } from '../../shared/services/general.service';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { Router } from '@angular/router';\r\nimport * as _ from \"lodash\";\r\nimport * as jsonpath from 'jsonpath';\r\n\r\n@Component({\r\n selector: 'sf-crudtablero',\r\n templateUrl: './tablero.component.html'\r\n})\r\nexport class TableroComponent implements OnInit {\r\n\r\n @Input() opciones: any[] = [];\r\n @Input() idEntidad: string = '';\r\n @Input() idKatios: string = '';\r\n @Input() user: any;\r\n @Input() dataExt: any;\r\n @Output() onSelectAction: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n public items: MenuItem[] = [];\r\n public crudConfig: CrudConfig = new CrudConfig();\r\n public enProceso: boolean = false;\r\n public data: any[] = [];\r\n public btn: { create: any, read: any, update: any, delete: any } = { create: undefined, read: undefined, update: undefined, delete: undefined }\r\n public itemSelected: any;\r\n\r\n constructor(\r\n private generalService: GeneralService,\r\n private router: Router\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadConfigCrud()\r\n }\r\n\r\n loadConfigCrud() {\r\n this.enProceso = true;\r\n this.generalService.getCrudByEntidad(this.idKatios, this.idEntidad)\r\n .then(res => {\r\n this.crudConfig = res;\r\n this.getInfoTablero(this.crudConfig.tablero);\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.enProceso = false;\r\n })\r\n }\r\n\r\n getInfoTablero(configTablero: ConfigTablero) {\r\n this.generalService.genericRequest(configTablero.method, configTablero.server, this.aplyKeys(configTablero.keys, configTablero.endpoint, this.dataExt))\r\n .then((res: any) => {\r\n let aux;\r\n if (!Array.isArray(res)) aux = res.data; else aux = res;\r\n this.generateData(aux);\r\n this.loadOptions();\r\n this.enProceso = false;\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.enProceso = false;\r\n })\r\n }\r\n\r\n generateData(data: any[]) {\r\n data.forEach((item: any) => {\r\n let newItem: any = {};\r\n this.crudConfig.tablero.columns.forEach(col => {\r\n newItem[col.col] = this.getValue(col.col, item)\r\n })\r\n this.data.push(newItem)\r\n })\r\n console.log(this.data)\r\n }\r\n getValue(path: string, item: any): any {\r\n if (path.includes(\".\")) return jsonpath.query(item, path)[0]\r\n return item[path]\r\n }\r\n\r\n loadOptions() {\r\n this.items = [];\r\n this.btn.create = this.opciones.find(x => x.label == 'Crear');\r\n this.opciones.filter((opc: any) => opc.valor.action).forEach(opc => {\r\n this.items.push({ label: opc.label, icon: opc.icon, command: () => this.execAction(opc.valor) })\r\n })\r\n }\r\n\r\n redirect(accion: string, data?: any) {\r\n switch (accion) {\r\n case 'create':\r\n this.router.navigateByUrl(this.btn.create?.valor?.redirect || '');\r\n break;\r\n case 'read':\r\n this.router.navigateByUrl(this.aplyKeys(this.crudConfig.tablero.keys, this.btn.read.valor.redirect, data));\r\n break\r\n case 'update':\r\n this.router.navigateByUrl(this.aplyKeys(this.crudConfig.tablero.keys, this.btn.update.valor.redirect, data));\r\n break\r\n case 'delete':\r\n this.router.navigateByUrl(this.aplyKeys(this.crudConfig.tablero.keys, this.btn.delete.valor.redirect, data));\r\n break\r\n default:\r\n break\r\n }\r\n }\r\n\r\n aplyKeys(keys: { key: string, scope?: string }[], endpoint: string, data?: any) {\r\n keys.forEach(key => {\r\n switch (key.key) {\r\n case '@ndoc':\r\n endpoint = endpoint.replace(key.key, this.user?.UsuarioSistema?.NDOC || '')\r\n break;\r\n case '@tdoc':\r\n endpoint = endpoint.replace(key.key, this.user?.UsuarioSistema?.TDOC || '')\r\n break;\r\n case '@idKatios':\r\n endpoint = endpoint.replace(key.key, this.idKatios)\r\n break;\r\n default:\r\n if (endpoint.includes(key.key) && data) endpoint = endpoint.replace(key.key, jsonpath.query(data, key?.scope || '')[0]);\r\n break;\r\n }\r\n });\r\n return endpoint;\r\n }\r\n\r\n execAction(params: any) {\r\n switch (params.action) {\r\n case 'redirect':\r\n this.router.navigateByUrl(this.aplyKeys(this.crudConfig.tablero.keys, params.link, this.itemSelected));\r\n break;\r\n default:\r\n this.onSelectAction.emit({ data: _.cloneDeep(this.itemSelected), params })\r\n break;\r\n }\r\n }\r\n}\r\n","<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ón</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>","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { GeneralService } from '../../shared/services/general.service';\r\nimport { Message } from 'primeng/api';\r\nimport { Shema } from '../../shared/models/shema.model';\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'sf-control',\r\n templateUrl: './control.component.html'\r\n})\r\nexport class ControlComponent implements OnInit {\r\n\r\n @Input() control: Shema = new Shema();\r\n @Input() label: string = '';\r\n @Input() value: any;\r\n @Input() appendTo: any;\r\n @Output() setValue: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() sendNotification: EventEmitter<Message> = new EventEmitter<Message>();\r\n @Output() sendObject: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n public isLoading: boolean = false;\r\n public dataFromService: any[] = [];\r\n public uploadedFiles: any[] = [];\r\n public displayAdd: boolean = false;\r\n public tempValue: any = {}\r\n\r\n constructor(\r\n private generalService: GeneralService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n if (this.control?.config && this.control.subtype == 'dropdown') this.loadDataFromService();\r\n if (this.value && this.control.subtype == 'autocomplete') this.setDefaultValue();\r\n if (this.value && this.control.type == 'date') this.setDate();\r\n }\r\n\r\n sendValue() {\r\n this.setValue.emit(this.value);\r\n }\r\n\r\n sendValueFromObject(event: any) {\r\n switch (typeof (this.control.config.optionValue)) {\r\n case 'object':\r\n this.control.config.optionValue.forEach((op: any) => op['value'] = event[op.key])\r\n this.setValue.emit(this.control.config.optionValue);\r\n break;\r\n default:\r\n this.setValue.emit(event[this.control.config.optionValue]);\r\n break;\r\n }\r\n }\r\n\r\n validateValue(type: string) {\r\n switch (type) {\r\n case 'email':\r\n let regex: RegExp = new RegExp(/([\\w\\.\\-_]+)?\\w+@[\\w-_]+(\\.\\w+){1,}/igm);\r\n if (regex.test(this.value)) this.sendValue();\r\n else {\r\n this.value = null;\r\n this.sendValue()\r\n this.sendNotification.emit({ severity: 'warn', detail: 'El correo no es válido' })\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n loadDataFromService() {\r\n this.isLoading = true;\r\n this.dataFromService = [];\r\n this.generalService.genericRequest(this.control.config.method, this.control.config.server, this.control.config.endpoint)\r\n .then((res: any) => {\r\n this.dataFromService = res.data;\r\n this.isLoading = false;\r\n })\r\n }\r\n\r\n loadDataFromControlBusquedaService(event: any) {\r\n this.isLoading = true;\r\n this.generalService.genericRequest(this.control.config.method, this.control.config.server, this.control.config.endpoint.replace('@query', event?.query || ''))\r\n .then((res: any) => {\r\n this.dataFromService = res.data;\r\n this.isLoading = false;\r\n })\r\n }\r\n\r\n onUpload(event: any) {\r\n let file = event.files[0];\r\n let formData = new FormData();\r\n let path = 'Imagenes/CRUD/temp';\r\n formData.append('uploadFile', file);\r\n formData.append('Ruta', `/${path}`);\r\n this.isLoading = true;\r\n this.generalService.genericRequest(this.control.config.method, this.control.config.server, this.control.config.endpoint, formData)\r\n .then(() => {\r\n this.sendNotification.emit({ severity: 'info', detail: `Archivo cargado correctamente!` })\r\n this.uploadedFiles.push(file);\r\n this.isLoading = false;\r\n this.value = `${this.generalService.jsonConfig.Server}${path}/${file.name}`\r\n this.sendValue()\r\n })\r\n .catch(err => {\r\n console.log(err)\r\n this.isLoading = false\r\n this.sendNotification.emit({ severity: 'error', detail: `Error al cargar el archivo!` })\r\n })\r\n }\r\n\r\n refresData() {\r\n if (this.control?.config?.endpointtemp) this.loadDataFromService();\r\n }\r\n\r\n setDefaultValue(){\r\n Object.defineProperty(this.tempValue, this.control.config?.optionLabel, { value: this.value, writable: true, enumerable: true, configurable: true })\r\n }\r\n\r\n searchValue(value: string){\r\n let endpoint = this.control.config.endpoint.replace('@id', value)\r\n this.generalService.genericRequest(this.control.config.method, this.control.config.server, endpoint)\r\n .then((res: any) => {\r\n if (res?.data?.length > 0){\r\n this.sendObject.emit({ data: res.data[0], optionValue: this.control.config.optionValue } )\r\n }else{\r\n this.sendNotification.emit({severity: 'warn', detail:`Valor no encontrado.`})\r\n this.sendObject.emit({ data: null, optionValue: this.control.config.optionValue } )\r\n }\r\n })\r\n .catch(err=> {\r\n console.log(err)\r\n this.sendNotification.emit({severity: 'error', detail:`Error al consumir el servicio.`})\r\n })\r\n }\r\n\r\n setDate(){\r\n let format = (this.control as any).formatMoment\r\n \r\n if(format && this.value && !(this.value instanceof Date)){\r\n this.value = moment(this.value, format).toDate();\r\n this.sendValue()\r\n\r\n } \r\n }\r\n}\r\n","<ng-container [ngSwitch]=\"control.type\" #cc>\r\n <label [for]=\"label\" style=\"width: -webkit-fill-available;\">{{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=\"'textarea'\">\r\n <textarea [rows]=\"control?.rows ? control.rows : 4\" \r\n [(ngModel)]=\"value\" (focusout)=\"sendValue()\" pInputTextarea \r\n [disabled]=\"control?.disabled || false\" [autoResize]=\"control?.autoresize || false\"></textarea>\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\" [unmask]=\"control.unmask || 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ón\" [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\"\r\n [optionValue]=\"control?.field || control.config.optionValue\" (onClick)=\"refresData()\"\r\n appendTo=\"body\" placeholder=\"Seleccione una opción\"\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\"\r\n (onChange)=\"sendValueFromObject($event)\" [optionLabel]=\"control.config.optionLabel\"\r\n (onClick)=\"refresData()\" appendTo=\"body\" placeholder=\"Seleccione una opción\"\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)\" [(ngModel)]=\"tempValue\"\r\n [disabled]=\"control?.disabled || false\"></p-autoComplete>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'input:search'\">\r\n <div class=\"p-inputgroup\">\r\n <input type=\"text\" pInputText [(ngModel)]=\"value\" (focusout)=\"sendValue()\" />\r\n <button type=\"button\" pButton icon=\"pi pi-search\" (click)=\"searchValue(value)\"></button>\r\n </div>\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()\" (onBlur)=\"sendValue()\" [monthNavigator]=\"true\"\r\n [yearNavigator]=\"true\" yearRange=\"1900:2035\" [dateFormat]=\"control?.format || 'yy-mm-dd'\"\r\n appendTo=\"body\" [disabled]=\"control?.disabled || false\" [showOnFocus]=\"!control?.hide\"\r\n [placeholder]=\"control?.placeholder || 'aaaa-mm-dd'\" [touchUI]=\"control?.touchUI || false\"\r\n [showIcon]=\"control?.showIcon || 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()\" [locale]=\"control?.locale || undefined\"\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\" [locale]=\"control?.locale || undefined\"\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\" [locale]=\"control?.locale || undefined\"\r\n [disabled]=\"control?.disabled || false\"></p-inputNumber>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'decimal:search'\">\r\n <div class=\"p-inputgroup\">\r\n <input type=\"number\" pInputText [(ngModel)]=\"value\" (focusout)=\"sendValue()\" />\r\n <button type=\"button\" pButton icon=\"pi pi-search\" (click)=\"searchValue(value)\"></button>\r\n </div>\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 *ngSwitchCase=\"'boolean'\">\r\n <ng-container [ngSwitch]=\"control.subtype\">\r\n <ng-container *ngSwitchCase=\"'switch'\">\r\n <p-inputSwitch [(ngModel)]=\"value\" (onChange)=\"sendValue()\" [id]=\"label\"></p-inputSwitch>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-container>","import { Component, OnInit } from '@angular/core';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { Shema } from '../../shared/models/shema.model';\r\nimport * as jsonpath from 'jsonpath';\r\nimport { Message, MessageService } from 'primeng/api';\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'lib-registro-detalle',\r\n templateUrl: './registro-detalle.component.html',\r\n styleUrls: ['./registro-detalle.component.css']\r\n})\r\nexport class RegistroDetalleComponent implements OnInit {\r\n\r\n public uiEsquema: any;\r\n public esquema: Shema = new Shema();\r\n public data: any;\r\n\r\n constructor(\r\n public ref: DynamicDialogRef,\r\n public config: DynamicDialogConfig,\r\n private messageService: MessageService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.uiEsquema = this.config.data.uiEsquema[0];\r\n this.esquema = this.config.data.esquema;\r\n this.data = this.config.data?.data;\r\n if (!this.data) {\r\n this.data = this.createObject(this.esquema);\r\n jsonpath.value(this.data, '$..id', this.config.data.id);\r\n }\r\n }\r\n\r\n getControl(scope: string) {\r\n return jsonpath.query(this.esquema, scope)[0];\r\n }\r\n\r\n getValue(scope: string) {\r\n return jsonpath.query(this.data, scope.replace('.properties', ''))[0];\r\n }\r\n\r\n setValue(value: any, scope: string) {\r\n switch (typeof (value)) {\r\n case 'object':\r\n if (Array.isArray(value)) value.forEach((val: any) => jsonpath.value(this.data, val.scope.replace('.properties', ''), val.value))\r\n else jsonpath.value(this.data, scope.replace('.properties', ''), value);\r\n break;\r\n default:\r\n jsonpath.value(this.data, scope.replace('.properties', ''), value);\r\n break;\r\n }\r\n this.applyValuesOnEvent('onChange', this.esquema, scope.replace('$..properties.', ''));\r\n }\r\n\r\n createObject(esquema: Shema) {\r\n let object = {};\r\n const resultArray: any[] = [];\r\n switch (esquema.type) {\r\n case 'numeric':\r\n return esquema?.default || 0;\r\n case 'string':\r\n case 'date':\r\n return esquema?.default ? this.setDefaultValue(esquema.default) : null;\r\n case 'boolean':\r\n return esquema?.default || false;\r\n case 'file':\r\n return null;\r\n case 'array':\r\n case 'object':\r\n for (const key in esquema?.properties) {\r\n Object.defineProperty(object, key, { value: this.createObject(esquema?.properties[key]), writable: true, enumerable: true, configurable: true })\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n return object;\r\n }\r\n\r\n setDefaultValue(value: string) {\r\n let data = null;\r\n let uactivo;\r\n switch (value) {\r\n case '@uactivo':\r\n uactivo = JSON.parse(localStorage.getItem('oSessionTFM') || '{}')\r\n if (!uactivo) console.log('Validar configuracion de sesion')\r\n else data = `${uactivo.UsuarioSistema.TDOC}-${uactivo.UsuarioSistema.NDOC}`\r\n break;\r\n case '@tdocactivo':\r\n uactivo = JSON.parse(sessionStorage.getItem('usrSesion') || '{}')\r\n if (!uactivo) console.log('Validar configuracion de sesion')\r\n else data = uactivo.UsuarioSistema.TDOC\r\n break;\r\n case '@ndocactivo':\r\n uactivo = JSON.parse(sessionStorage.getItem('usrSesion') || '{}')\r\n if (!uactivo) console.log('Validar configuracion de sesion')\r\n else data = uactivo.UsuarioSistema.NDOC\r\n break;\r\n case '@hoy':\r\n data = new Date();\r\n break;\r\n default:\r\n data = value;\r\n break;\r\n }\r\n return data\r\n }\r\n\r\n submit() {\r\n this.applyValuesOnEvent('onSubmit', this.esquema);\r\n if (!this.validateData()) return;\r\n this.ref.close(this.data);\r\n }\r\n\r\n cancel() {\r\n this.applyValuesOnEvent('onCancel', this.esquema);\r\n this.ref.close();\r\n }\r\n\r\n validateData() {\r\n if (this.esquema.validations.type == 'local') return this.validateDataLocal();\r\n return true;\r\n }\r\n\r\n validateDataLocal() {\r\n let err: string[] = []\r\n this.esquema.validations.required.forEach((x: any) => {\r\n if (!jsonpath.query(this.data, x.field)[0]) err.push(x.message);\r\n })\r\n if (err.length != 0) this.messageService.add({ severity: 'warn', detail: err.join('. ') })\r\n return err.length == 0;\r\n }\r\n\r\n applyValuesOnEvent(event: string, esquema: Shema, scope?: string) {\r\n if (scope) {\r\n if (esquema.properties[scope][event]) {\r\n esquema.properties[scope][event].forEach((value: any) => {\r\n this.setValueEvent(this.data, value)\r\n })\r\n }\r\n } else {\r\n for (const key in esquema.properties) {\r\n if (esquema.properties[key][event]) {\r\n esquema.properties[key][event].forEach((value: any) => {\r\n this.setValueEvent(this.data, value)\r\n })\r\n }\r\n }\r\n }\r\n }\r\n\r\n setValueEvent(data: any, params: { op: string, scope: string[], key: any, separator: string }) {\r\n let value;\r\n let date = moment(new Date());\r\n switch (params.op) {\r\n case 'sum':\r\n value = jsonpath.query(data, params?.scope[0]).reduce((acc, cur) => acc += params?.key ? cur[params.key] : cur, 0)\r\n break;\r\n case 'concat':\r\n let array: string[] = []\r\n params?.key?.reduce((acc: any[], cur: string) => {\r\n array.push(jsonpath.query(data, cur)[0])\r\n }, [])\r\n if (params?.separator) jsonpath.value(data, params.scope[0], array.join(params?.separator || ' '))\r\n break;\r\n case 'enable':\r\n jsonpath.value(this.esquema, params.scope[0], false)\r\n break;\r\n case 'disabled':\r\n jsonpath.value(this.esquema, params.scope[0], true)\r\n break;\r\n case 'replace:endpoint':\r\n jsonpath.value(this.esquema, params.scope[0], jsonpath.query(this.esquema, params.scope[1])[0].replace(params.scope[2], jsonpath.query(data, `$..${params.key}`)))\r\n break;\r\n case 'setNull':\r\n jsonpath.value(this.data, `$.${params.key}`, null);\r\n break;\r\n case 'datediff:years':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'years'))\r\n break;\r\n case 'datediff:months':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'months'))\r\n break;\r\n case 'datediff:weeks':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'weeks'))\r\n break;\r\n case 'datediff:days':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'days'))\r\n break;\r\n default:\r\n break;\r\n }\r\n return value;\r\n }\r\n\r\n sendNotification(message: Message) {\r\n this.messageService.add(message)\r\n }\r\n\r\n applyValuesFromObject(event: any) {\r\n if (event.data) event.optionValue.forEach((value: any) => jsonpath.value(this.data, value.scope.replace('.properties',''), this.aplyFormatValue(value.scope, event.data[value.key])));\r\n else event.optionValue.forEach((value: any) => jsonpath.value(this.data, value.scope.replace('.properties',''), null));\r\n }\r\n aplyFormatValue(scope: string, value: any) {\r\n let control = jsonpath.query(this.esquema, scope)[0]\r\n let resp;\r\n switch (control.type) {\r\n case 'date':\r\n resp = new Date(`${value}`)\r\n break;\r\n case 'numeric':\r\n resp = +value\r\n break;\r\n default:\r\n resp = value\r\n break;\r\n }\r\n return resp\r\n }\r\n}","<p-toast></p-toast>\r\n<div *ngFor=\"let element of uiEsquema.elements\" [class]=\"element?.class\" #a>\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)\" (sendObject)=\"applyValuesFromObject($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)\" (sendObject)=\"applyValuesFromObject($event)\"></sf-control>\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\">\r\n <button pButton pRipple type=\"button\" label=\"Guardar\" (click)=\"submit()\" class=\"mr-2\"></button>\r\n <button pButton pRipple type=\"button\" label=\"Cancelar\" (click)=\"cancel()\" class=\"p-button-danger\"></button>\r\n</div>","import { Component, OnInit } from '@angular/core';\r\nimport { DialogService,DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { Shema } from '../../shared/models/shema.model';\r\nimport * as jsonpath from 'jsonpath';\r\nimport { Message, MessageService } from 'primeng/api';\r\nimport * as moment from 'moment';\r\nimport { RegistroDetalleComponent } from '../registro-detalle/registro-detalle.component';\r\n\r\n@Component({\r\n selector: 'lib-registro-child',\r\n templateUrl: './registro-child.component.html',\r\n providers: [MessageService,DialogService]\r\n})\r\nexport class RegistroChildComponent implements OnInit {\r\n\r\n public uiEsquema: any;\r\n public esquema: Shema = new Shema();\r\n public data: any;\r\n public dialogRef?: DynamicDialogRef;\r\n public trx: string = 'c';\r\n values!: any[][];\r\n controls!: any[][];\r\n controlsLoaded = false;\r\n\r\n constructor(\r\n public ref: DynamicDialogRef,\r\n public config: DynamicDialogConfig,\r\n private messageService: MessageService,\r\n private dialogService: DialogService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.uiEsquema = this.config.data.uiEsquema[0];\r\n this.esquema = this.config.data.esquema;\r\n this.data = this.config.data?.data;\r\n if (!this.data) {\r\n this.data = this.createObject(this.esquema);\r\n jsonpath.value(this.data, '$..id', this.config.data.id);\r\n }\r\n this.buildControls()\r\n }\r\n\r\n buildControls(){\r\n this.controlsLoaded = false;\r\n this.controls = []\r\n this.values = []\r\n this.uiEsquema.elements.forEach((layout: any, i: number) => {\r\n this.controls.push([])\r\n this.values.push([])\r\n\r\n layout.elements?.forEach((element: any, j: number) => {\r\n if (!element.scope) console.log(\"CONFIGURAR BIEN \" + element)\r\n this.controls[i].push(this.getControl(element.scope))\r\n this.controls[i][j].scope = element.scope\r\n this.values[i].push(this.getValue(element.scope))\r\n });\r\n });\r\n this.controlsLoaded = true;\r\n }\r\n\r\n getControl(scope: string) {\r\n return jsonpath.query(this.esquema, scope)[0];\r\n }\r\n\r\n getValue(scope: string) {\r\n return jsonpath.query(this.data, scope.replace('.properties', ''))[0];\r\n }\r\n\r\n setValue(value: any, scope: string, i: number, j: number) {\r\n switch (typeof (value)) {\r\n case 'object':\r\n if (Array.isArray(value)) value.forEach((val: any) => {\r\n this.setValueByScope(val.scope, val.value)\r\n jsonpath.value(this.data, val.scope.replace('.properties', ''), val.value)\r\n })\r\n else {\r\n this.values[i][j] = value;\r\n jsonpath.value(this.data, scope.replace('.properties', ''), value);\r\n }\r\n break;\r\n default:\r\n this.values[i][j] = value;\r\n jsonpath.value(this.data, scope.replace('.properties', ''), value);\r\n break;\r\n }\r\n this.applyValuesOnEvent('onChange', this.esquema, scope.replace('$..properties.', ''));\r\n }\r\n\r\n createObject(esquema: Shema) {\r\n let object = {};\r\n const resultArray: any[] = [];\r\n switch (esquema.type) {\r\n case 'numeric':\r\n return esquema?.default || 0;\r\n case 'string':\r\n case 'date':\r\n return esquema?.default ? this.setDefaultValue(esquema.default) : null;\r\n case 'boolean':\r\n return esquema?.default || false;\r\n case 'file':\r\n return null;\r\n case 'array':\r\n case 'object':\r\n for (const key in esquema?.properties) {\r\n Object.defineProperty(object, key, { value: this.createObjectChild(esquema?.properties[key]), writable: true, enumerable: true, configurable: true })\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n return object;\r\n }\r\n\r\n createObjectChild(esquema: Shema) {\r\n let object = {};\r\n const resultArray: any[] = [];\r\n switch (esquema.type) {\r\n case 'numeric':\r\n return esquema?.default || 0;\r\n case 'string':\r\n case 'date':\r\n return esquema?.default ? this.setDefaultValue(esquema.default) : null;\r\n case 'boolean':\r\n return esquema?.default || false;\r\n case 'file':\r\n return null;\r\n case 'array':\r\n return [];\r\n case 'object':\r\n for (const key in esquema?.properties) {\r\n Object.defineProperty(object, key, { value: this.createObject(esquema?.properties[key]), writable: true, enumerable: true, configurable: true })\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n return object;\r\n }\r\n\r\n setDefaultValue(value: string) {\r\n let data = null;\r\n let uactivo;\r\n switch (value) {\r\n case '@uactivo':\r\n uactivo = JSON.parse(localStorage.getItem('oSessionTFM') || '{}')\r\n if (!uactivo) console.log('Validar configuracion de sesion')\r\n else data = `${uactivo.UsuarioSistema.TDOC}-${uactivo.UsuarioSistema.NDOC}`\r\n break;\r\n case '@tdocactivo':\r\n uactivo = JSON.parse(sessionStorage.getItem('usrSesion') || '{}')\r\n if (!uactivo) console.log('Validar configuracion de sesion')\r\n else data = uactivo.UsuarioSistema.TDOC\r\n break;\r\n case '@ndocactivo':\r\n uactivo = JSON.parse(sessionStorage.getItem('usrSesion') || '{}')\r\n if (!uactivo) console.log('Validar configuracion de sesion')\r\n else data = uactivo.UsuarioSistema.NDOC\r\n break;\r\n case '@hoy':\r\n data = new Date();\r\n break;\r\n default:\r\n data = value;\r\n break;\r\n }\r\n return data\r\n }\r\n\r\n submit() {\r\n this.applyValuesOnEvent('onSubmit', this.esquema);\r\n if (!this.validateData()) return;\r\n this.ref.close(this.data);\r\n }\r\n\r\n cancel() {\r\n this.applyValuesOnEvent('onCancel', this.esquema);\r\n this.ref.close();\r\n }\r\n\r\n validateData() {\r\n if (this.esquema.validations.type == 'local') return this.validateDataLocal();\r\n return true;\r\n }\r\n\r\n validateDataLocal() {\r\n let err: string[] = []\r\n this.esquema.validations.required.forEach((x: any) => {\r\n if (!jsonpath.query(this.data, x.field)[0]) err.push(x.message);\r\n })\r\n if (err.length != 0) this.messageService.add({ severity: 'warn', detail: err.join('. ') })\r\n return err.length == 0;\r\n }\r\n\r\n applyValuesOnEvent(event: string, esquema: Shema, scope?: string) {\r\n if (scope) {\r\n if (esquema.properties[scope][event]) {\r\n esquema.properties[scope][event].forEach((value: any) => {\r\n this.setValueEvent(this.data, value)\r\n })\r\n }\r\n } else {\r\n for (const key in esquema.properties) {\r\n if (esquema.properties[key][event]) {\r\n esquema.properties[key][event].forEach((value: any) => {\r\n this.setValueEvent(this.data, value)\r\n })\r\n }\r\n }\r\n }\r\n }\r\n\r\n setValueEvent(data: any, params: { op: string, scope: string[], key: any, separator: string }) {\r\n let value;\r\n let date = moment(new Date());\r\n switch (params.op) {\r\n case 'sum':\r\n value = jsonpath.query(data, params?.scope[0]).reduce((acc, cur) => acc += params?.key ? cur[params.key] : cur, 0)\r\n break;\r\n case 'concat':\r\n let array: string[] = []\r\n params?.key?.reduce((acc: any[], cur: string) => {\r\n array.push(jsonpath.query(data, cur)[0])\r\n }, [])\r\n if (params?.separator) jsonpath.value(data, params.scope[0], array.join(params?.separator || ' '))\r\n break;\r\n case 'enable':\r\n jsonpath.value(this.esquema, params.scope[0], false)\r\n break;\r\n case 'disabled':\r\n jsonpath.value(this.esquema, params.scope[0], true)\r\n break;\r\n case 'replace:endpoint':\r\n jsonpath.value(this.esquema, params.scope[0], jsonpath.query(this.esquema, params.scope[1])[0].replace(params.scope[2], jsonpath.query(data, `$..${params.key}`)))\r\n break;\r\n case 'setNull':\r\n jsonpath.value(this.data, `$.${params.key}`, null);\r\n break;\r\n case 'datediff:years':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'years'))\r\n break;\r\n case 'datediff:months':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'months'))\r\n break;\r\n case 'datediff:weeks':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'weeks'))\r\n break;\r\n case 'datediff:days':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'days'))\r\n break;\r\n default:\r\n break;\r\n }\r\n return value;\r\n }\r\n\r\n sendNotification(message: Message) {\r\n this.messageService.add(message)\r\n }\r\n\r\n addObjectArray(element: any) {\r\n this.dialogRef = this.dialogService.open(RegistroDetalleComponent, {\r\n header: element.label ? element.label : 'Detalle',\r\n width: '70%',\r\n modal: true,\r\n closable: false,\r\n data: {\r\n uiEsquema: { ...element.elements },\r\n esquema: this.getControl(element.scope),\r\n id: this.getValue(element.scope).length + 1\r\n }\r\n })\r\n this.dialogRef.onClose.subscribe((data: any) => {\r\n if (data) this.data[element.scope.replace('$..properties.', '')].push(data);\r\n this.applyValuesOnEvent('onChange', this.esquema, element.scope.replace('$..properties.', ''))\r\n })\r\n }\r\n\r\n editRow(element: any, data: any, index: number) {\r\n this.dialogRef = this.dialogService.open(RegistroDetalleComponent, {\r\n header: element.label ? element.label : 'Detalle',\r\n width: '70%',\r\n modal: true,\r\n closable: false,\r\n data: {\r\n uiEsquema: { ...element.elements },\r\n esquema: this.getControl(element.scope),\r\n data: { ...data }\r\n }\r\n })\r\n this.dialogRef.onClose.subscribe((data: any) => {\r\n if (data) this.data[element.scope.replace('$..properties.', '')][index] = data;\r\n this.applyValuesOnEvent('onChange', this.esquema, element.scope.replace('$..properties.', ''))\r\n })\r\n }\r\n\r\n deleteRow(element: any, index: number) {\r\n this.data[element.scope.replace('$..properties.', '')].splice(index, 1);\r\n index = 1;\r\n this.data[element.scope.replace('$..properties.', '')].forEach((el: any) => {\r\n el.id = index;\r\n index++;\r\n })\r\n this.applyValuesOnEvent('onChange', this.esquema, element.scope.replace('$..properties.', ''))\r\n }\r\n\r\n setValueByScope(scope: string, newVal: any){\r\n for (let i = 0; i < this.controls.length; i++) {\r\n const row = this.controls[i];\r\n row.forEach((el, j) => {\r\n if (el.scope && el.scope.replace('.properties','')== scope.replace('.properties','')){\r\n this.values[i][j] = newVal\r\n }\r\n })\r\n }\r\n }\r\n\r\n applyValuesFromObject(event: any) {\r\n if (event.optionValue){\r\n for (let i = 0; i < event.optionValue.length; i++) {\r\n const optionVal = event.optionValue[i];\r\n const newVal = event.data ? this.aplyFormatValue(optionVal.scope, event.data[optionVal.key]): null;\r\n jsonpath.value(this.data, optionVal.scope.replace('.properties',''), this.aplyFormatValue(optionVal.scope, event.data[optionVal.key]))\r\n this.setValueByScope(optionVal.scope, newVal)\r\n }\r\n }\r\n }\r\n aplyFormatValue(scope: string, value: any) {\r\n let control = jsonpath.query(this.esquema, scope)[0]\r\n let resp;\r\n switch (control.type) {\r\n case 'date':\r\n resp = new Date(`${value}`)\r\n break;\r\n case 'numeric':\r\n resp = +value\r\n break;\r\n default:\r\n resp = value\r\n break;\r\n }\r\n return resp\r\n }\r\n}\r\n","<p-toast></p-toast>\r\n<div *ngIf=\"controlsLoaded\">\r\n<div *ngFor=\"let element of uiEsquema.elements; let i = index\" [class]=\"element?.class\" #a>\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; let j =index\" [class]=\"el?.class\">\r\n <ng-container [ngSwitch]=\"el.type\">\r\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"controls[i][j]\" [label]=\"el.label\" [value]=\"values[i][j]\"\r\n (setValue)=\"setValue($event, el.scope, i, j)\" (sendNotification)=\"sendNotification($event)\"\r\n (sendObject)=\"applyValuesFromObject($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; let k =index\" [class]=\"el?.class\">\r\n <ng-container [ngSwitch]=\"el.type\">\r\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"controls[i][k]\" [label]=\"el.label\"\r\n [value]=\"values[i][k]\" (setValue)=\"setValue($event, el.scope, i, k)\"\r\n (sendNotification)=\"sendNotification($event)\"\r\n (sendObject)=\"applyValuesFromObject($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 *ngSwitchCase=\"'date:yyyy-mm-dd'\">\r\n <td>{{rowData[col.col] | date: 'yyyy-mm-dd'}}</td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date:dd/mm/yyyy'\">\r\n <td>{{rowData[col.col] | date: 'dd/MM/yyyy'}}</td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'boolean'\">\r\n <td>\r\n <i *ngIf=\"rowData[col.col]\" class=\"pi pi-check\"></i>\r\n <i *ngIf=\"!rowData[col.col]\" class=\"pi pi-times\"></i>\r\n </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\"\r\n (click)=\"editRow(el, rowData, rowIndex)\" icon=\"pi pi-pencil\"\r\n class=\"p-button-rounded p-button-info mr-1\"></button>\r\n <button pButton pRipple type=\"button\" (click)=\"deleteRow(el, rowIndex)\"\r\n 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\">\r\n <button pButton pRipple type=\"button\" label=\"Guardar\" (click)=\"submit()\" class=\"mr-2\"></button>\r\n <button pButton pRipple type=\"button\" label=\"Cancelar\" (click)=\"cancel()\" class=\"p-button-danger\"></button>\r\n</div>\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\nimport { DataTempCrud } from './shared/models/data-temp-crud.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SfCrudService {\r\n\r\n private _dataTemp: DataTempCrud[] = [];\r\n\r\n constructor() { }\r\n\r\n saveDataTemp(scope: string, value: any) {\r\n this._dataTemp.push({ scope, value })\r\n sessionStorage.setItem('dataTemp', JSON.stringify(this._dataTemp))\r\n }\r\n\r\n getDataTemp() {\r\n let dataTemp = sessionStorage.getItem('dataTemp')\r\n sessionStorage.removeItem('dataTemp')\r\n return dataTemp ? JSON.parse(dataTemp) : []\r\n }\r\n\r\n cleanDataTemp(){\r\n sessionStorage.removeItem('dataTemp')\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ConfigRegistro, CrudConfig, Key, Operations, RequestChecking } from '../../shared/models/crud-config.model';\r\nimport { DialogService, DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { GeneralService } from '../../shared/services/general.service';\r\nimport { Message, MessageService } from 'primeng/api';\r\nimport { RegistroChildComponent } from '../registro-child/registro-child.component';\r\nimport { Router } from '@angular/router';\r\nimport { Shema } from '../../shared/models/shema.model';\r\nimport * as jsonpath from 'jsonpath';\r\nimport { DataTempCrud } from '../../shared/models/data-temp-crud.model';\r\nimport { SfCrudService } from '../../sf-crud.service';\r\nimport * as moment from 'moment';\r\nimport Swal from 'sweetalert2';\r\n\r\n@Component({\r\n selector: 'sf-registro',\r\n templateUrl: './registro.component.html',\r\n providers: [MessageService, DialogService, DynamicDialogConfig, DynamicDialogRef],\r\n entryComponents: [RegistroComponent]\r\n})\r\nexport class RegistroComponent implements OnInit {\r\n\r\n @Input() idKatios: string = '';\r\n @Input() idEntidad: string = '';\r\n @Input() trx: string = '';\r\n @Input() id: string = '';\r\n @Input() user: any;\r\n @Input() dataExt: any;\r\n @Output() sendData: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() onSubmit: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n private dataTemp: DataTempCrud[] = [];\r\n public crudConfig: CrudConfig = new CrudConfig();\r\n public enProceso: boolean = false;\r\n public btnSubmit: any;\r\n public data: any;\r\n public configOperation: Operations = new Operations();\r\n public isLocal: boolean = false;\r\n values!: any[][];\r\n controls!: any[][];\r\n controlsLoaded = false;\r\n public dialogRef?: DynamicDialogRef\r\n\r\n constructor(\r\n private generalService: GeneralService,\r\n private router: Router,\r\n private messageSerice: MessageService,\r\n private dialogService: DialogService,\r\n private sfCrudService: SfCrudService\r\n ) {\r\n this.dataTemp = this.sfCrudService.getDataTemp();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.loadConfigCrud();\r\n }\r\n\r\n loadConfigCrud() {\r\n this.enProceso = true;\r\n this.generalService.getCrudByEntidad(this.idKatios, this.idEntidad)\r\n .then(res => {\r\n this.setDataTemp(res.esquema, this.dataTemp);\r\n this.crudConfig = res;\r\n \r\n if (this.trx == 'c') {\r\n this.configOperation = this.crudConfig.registro.operations.find(x => x.type.startsWith(this.trx)) || new Operations();\r\n this.data = this.createObject(this.crudConfig.esquema);\r\n console.log(this.data)\r\n this.setLabelSumbit();\r\n this.enProceso = false;\r\n this.buildControls()\r\n } else this.getInfoRegistro(this.crudConfig.registro);\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.enProceso = false;\r\n })\r\n }\r\n\r\n buildControls(){\r\n this.controlsLoaded = false;\r\n this.controls = []\r\n this.values = []\r\n this.crudConfig.uiEsquema.elements.forEach((layout: any, i: number) => {\r\n this.controls.push([])\r\n this.values.push([])\r\n layout.elements?.forEach((element: any, j:number) => {\r\n this.controls[i].push(this.getControl(element.scope))\r\n this.controls[i][j].scope = element.scope\r\n this.values[i].push(this.getValue(element.scope))\r\n\r\n });\r\n });\r\n this.controlsLoaded = true;\r\n }\r\n\r\n setLabelSumbit() {\r\n if (this.trx == 'c') this.btnSubmit = { label: 'Guardar', icon: 'pi pi-save' }\r\n else if (this.trx == 'r') this.btnSubmit = undefined;\r\n else if (this.trx == 'u') this.btnSubmit = { label: 'Actualizar', icon: 'pi pi-sync' }\r\n else if (this.trx == 'd') this.btnSubmit = { label: 'Eliminar', icon: 'pi pi-trash' }\r\n }\r\n\r\n getInfoRegistro(configRegistro: ConfigRegistro) {\r\n let op = configRegistro.operations.find(x => x.type == 'read');\r\n let endpoint = op?.endpoint || '';\r\n endpoint = endpoint.replace('@idKatios', this.idKatios);\r\n endpoint = endpoint.replace('@ndocactivo', this.user.UsuarioSistema.NDOC);\r\n endpoint = endpoint.replace('@id', this.id);\r\n this.generalService.genericRequest(op?.method || '', op?.server || '', endpoint)\r\n .then((res: any) => {\r\n if (res?.data){\r\n if(Array.isArray(res.data)) this.data = res.data[0]\r\n else this.data = res.data;\r\n this.trx = 'u';\r\n } \r\n else {\r\n this.trx = 'c';\r\n this.data = this.createObject(this.crudConfig.esquema);\r\n }\r\n this.buildControls()\r\n this.enProceso = false;\r\n this.configOperation = this.crudConfig.registro.operations.find(x => x.type.startsWith(this.trx)) || new Operations();\r\n this.setLabelSumbit();\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.enProceso = false;\r\n })\r\n }\r\n\r\n back() {\r\n this.router.navigateByUrl(this.crudConfig.registro.btnBack);\r\n }\r\n\r\n getControl(scope: string) {\r\n return jsonpath.query(this.crudConfig.esquema, scope)[0];\r\n }\r\n\r\n getValue(scope: string) {\r\n return jsonpath.query(this.data, scope.replace('.properties', ''))[0];\r\n }\r\n\r\n setValue(value: any, scope: string, i: number, j: number) {\r\n switch (typeof (value)) {\r\n case 'object':\r\n if (Array.isArray(value)) value.forEach((val: any) => {\r\n this.setValueByScope(val.scope, val.value)\r\n jsonpath.value(this.data, val.scope.replace('.properties', ''), val.value)\r\n })\r\n else {\r\n this.values[i][j] = value;\r\n jsonpath.value(this.data, scope.replace('.properties', ''), value);\r\n }\r\n break;\r\n default:\r\n this.values[i][j] = value;\r\n jsonpath.value(this.data, scope.replace('.properties', ''), value);\r\n break;\r\n }\r\n this.applyValuesOnEvent('onChange', this.crudConfig.esquema);\r\n }\r\n\r\n createObject(esquema: Shema) {\r\n const object: any = {};\r\n switch (esquema.type) {\r\n case 'numeric':\r\n return esquema?.default || 0;\r\n case 'string':\r\n case 'date':\r\n return esquema?.default ? this.setDefaultValue(esquema.default) : null;\r\n case 'boolean':\r\n return esquema?.default || false;\r\n case 'array':\r\n return [];\r\n case 'file':\r\n return null;\r\n case 'object':\r\n Object.getOwnPropertyNames(esquema?.properties).forEach(key => {\r\n let aux = esquema?.properties[key]\r\n if (aux) object[key] = this.createObject(aux)\r\n });\r\n return object;\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n submit() {\r\n console.log(this.data)\r\n if (!this.validateData()) return;\r\n this.applyValuesOnEvent('onSubmit', this.crudConfig.esquema)\r\n this.enProceso = true;\r\n let endpoint = this.configOperation.endpoint;\r\n endpoint = endpoint.replace('@idKatios', this.idKatios)\r\n endpoint = endpoint.replace('@id', this.id)\r\n this.generalService.genericRequest(this.configOperation.method, this.configOperation.server, endpoint, this.data)\r\n .then((res) => {\r\n this.generateMessage({ severity: 'success', detail: `Proceso exitoso!` }, res, this.configOperation.answerChecking)\r\n this.enProceso = false;\r\n setTimeout(() => {\r\n if (this.configOperation?.redirect) this.router.navigate([this.configOperation?.redirect])\r\n else this.onSubmit.emit(this.data)\r\n }, 2000);\r\n })\r\n .catch(err => {\r\n const operation = this.crudConfig.registro.operations.find(op => op.type.startsWith(this.trx))!\r\n this.generateMessage({severity: \"error\", detail: \"Por favor comunicarse con el admin\", summary: \"Error no controlado\"}, err.error, operation.errorChecking)\r\n this.enProceso = false;\r\n })\r\n }\r\n\r\n /**\r\n * Generates message using answerchecking\r\n * @param currentMsg Default message: Message\r\n * @param rta Resquest's response\r\n * @param answerChecking \r\n */\r\n generateMessage(currentMsg: Message | any, rta: any, requestChecking?: RequestChecking){\r\n if (requestChecking){\r\n if (requestChecking.statics) Object.assign(currentMsg, requestChecking.statics)\r\n //mapear los dinamicos\r\n if (requestChecking.dynamics){\r\n const dynamics: any = requestChecking.dynamics\r\n try{\r\n if (dynamics && typeof(rta) == \"string\") rta = JSON.parse(rta)\r\n if (dynamics) {\r\n for (const property in dynamics) {\r\n currentMsg[property] = jsonpath.query(rta, dynamics[property])[0];\r\n }\r\n }\r\n }catch(error){//es una respuesta sin JSON\r\n if (dynamics) currentMsg.detail = rta\r\n }\r\n }\r\n }\r\n\r\n if (requestChecking?.redirect || requestChecking?.swal) Swal.fire(currentMsg.summary, currentMsg.detail, currentMsg.severity).then((res) => {\r\n if (res.isConfirmed && requestChecking.redirect) window.location.href = requestChecking.redirect\r\n })\r\n else this.messageSerice.add(currentMsg)\r\n }\r\n\r\n validateData() {\r\n if (this.configOperation.validations.type == 'local') return this.validateDataLocal();\r\n return true;\r\n }\r\n\r\n validateDataLocal() {\r\n let err: string[] = []\r\n this.configOperation.validations?.required?.forEach(x => {\r\n if (!jsonpath.query(this.data, x.field)[0]) err.push(x.message);\r\n })\r\n this.configOperation.validations?.operations?.forEach((op: any) => {\r\n switch (op.action) {\r\n case 'sumArray':\r\n let var1 = jsonpath.query(this.data, op.scope[0]).reduce((acc, cur) => acc += cur[op.key], 0);\r\n let var2 = jsonpath.query(this.data, op.scope[1]).reduce((acc, cur) => acc += cur[op.key], 0);\r\n if (var1 != var2) err.push(op.message)\r\n break;\r\n default:\r\n break;\r\n }\r\n })\r\n if (err.length != 0) this.messageSerice.add({ severity: 'warn', detail: err.join('. ') })\r\n return err.length == 0;\r\n }\r\n\r\n setDefaultValue(value: any) {\r\n let data = null;\r\n if (value.key && this.configOperation.keys){\r\n data = this.getValueKey(this.configOperation.keys.find(k => k.key == value.key)!)\r\n value = data\r\n }\r\n switch (value) {\r\n case '@uactivo':\r\n data = `${this.user.UsuarioSistema.TDOC}-${this.user.UsuarioSistema.NDOC}`\r\n break;\r\n case '@tdocactivo':\r\n data = this.user.UsuarioSistema.TDOC\r\n break;\r\n case '@ndocactivo':\r\n data = this.user.UsuarioSistema.NDOC\r\n break;\r\n case '@hoy':\r\n data = new Date();\r\n break;\r\n default:\r\n data = value;\r\n break;\r\n }\r\n return data\r\n }\r\n\r\n getValueKey(key: Key): any {\r\n let data;\r\n switch (key.data || 'externa') {\r\n case \"user\":\r\n data = this.user\r\n break;\r\n default:\r\n data = this.dataExt\r\n break;\r\n }\r\n if (data){\r\n const aux = jsonpath.query(data, key.scope)\r\n if (aux.length == 0) return undefined\r\n if (aux.length == 1) return aux[0]\r\n else return aux\r\n }\r\n return undefined\r\n }\r\n\r\n sendNotification(message: Message) {\r\n this.messageSerice.add(message)\r\n }\r\n\r\n addObjectArray(element: any) {\r\n this.dialogRef = this.dialogService.open(RegistroChildComponent, {\r\n header: element.label ? element.label : 'Detalle',\r\n width: '70%',\r\n modal: true,\r\n closable: true,\r\n data: {\r\n uiEsquema: { ...element.elements },\r\n esquema: this.getControl(element.scope),\r\n id: this.getValue(element.scope).length + 1\r\n }\r\n })\r\n this.dialogRef.onClose.subscribe((data: any) => {\r\n if (data) this.data[element.scope.replace('$..properties.', '')].push(data);\r\n this.applyValuesOnEvent('onChange', this.crudConfig.esquema, element.scope.replace('$..properties.', ''))\r\n })\r\n }\r\n\r\n editRow(element: any, data: any, index: number) {\r\n this.dialogRef = this.dialogService.open(RegistroChildComponent, {\r\n header: element.label ? element.label : 'Detalle',\r\n width: '70%',\r\n modal: true,\r\n closable: true,\r\n data: {\r\n uiEsquema: { ...element.elements },\r\n esquema: this.getControl(element.scope),\r\n data: { ...data }\r\n }\r\n })\r\n this.dialogRef.onClose.subscribe((data: any) => {\r\n if (data) this.data[element.scope.replace('$..properties.', '')][index] = data;\r\n this.applyValuesOnEvent('onChange', this.crudConfig.esquema, element.scope.replace('$..properties.', ''))\r\n })\r\n }\r\n\r\n deleteRow(element: any, index: number) {\r\n this.data[element.scope.replace('$..properties.', '')].splice(index, 1);\r\n index = 1;\r\n this.data[element.scope.replace('$..properties.', '')].forEach((el: any) => {\r\n el.id = index;\r\n index++;\r\n })\r\n this.applyValuesOnEvent('onChange', this.crudConfig.esquema, element.scope.replace('$..properties.', ''))\r\n }\r\n\r\n applyValuesOnEvent(event: string, esquema: Shema, key?: string) {\r\n if (key) {\r\n if (esquema.properties[key][event]) {\r\n esquema.properties[key][event].forEach((value: { scope: string[], op: string, key?: string }) => {\r\n this.setValueEvent(this.data, value);\r\n })\r\n }\r\n } else {\r\n for (const key in esquema.properties) {\r\n if (esquema.properties[key][event]) {\r\n esquema.properties[key][event].forEach((value: any) => {\r\n this.setValueEvent(this.data, value);\r\n })\r\n }\r\n }\r\n }\r\n }\r\n\r\n setValueEvent(data: any, params: { scope: string[], op: string, key?: any, separator?: string }) {\r\n let date = moment(new Date());\r\n switch (params.op) {\r\n case 'sum':\r\n jsonpath.value(data, params.scope[1], jsonpath.query(data, params.scope[0]).reduce((acc, cur) => acc += params?.key ? cur[params.key] : cur, 0))\r\n break;\r\n case 'concat':\r\n let array: string[] = []\r\n params?.key?.reduce((acc: any[], cur: string) => {\r\n array.push(jsonpath.query(data, cur)[0])\r\n }, [])\r\n if (params?.separator) jsonpath.value(data, params.scope[0], array.join(params?.separator || ' '))\r\n break;\r\n case 'enable':\r\n jsonpath.value(this.crudConfig.esquema, params.scope[0], false)\r\n break;\r\n case 'disabled':\r\n jsonpath.value(this.crudConfig.esquema, params.scope[0], true)\r\n break;\r\n case 'replace:endpoint':\r\n jsonpath.value(this.crudConfig.esquema, params.scope[0], this.crudConfig.esquema.config.endpointtemp.replace(params.scope[1], jsonpath.query(data, `$..${params.key}`)))\r\n break;\r\n case 'setNull':\r\n jsonpath.value(this.data, `$.${params.key}`, null);\r\n break;\r\n case 'datediff:years':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'years'))\r\n break;\r\n case 'datediff:months':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'months'))\r\n break;\r\n case 'datediff:weeks':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'weeks'))\r\n break;\r\n case 'datediff:days':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'days'))\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n setDataTemp(esquema: Shema, dataTemp: any[]) {\r\n dataTemp.forEach(data => {\r\n jsonpath.value(esquema, data.scope, data.value)\r\n });\r\n }\r\n\r\n applyValuesFromObject(event: any) {\r\n if (event.optionValue){\r\n for (let i = 0; i < event.optionValue.length; i++) {\r\n const optionVal = event.optionValue[i];\r\n const newVal = event.data ? this.aplyFormatValue(optionVal.scope, event.data[optionVal.key]): null;\r\n jsonpath.value(this.data, optionVal.scope.replace('.properties',''), this.aplyFormatValue(optionVal.scope, event.data[optionVal.key]))\r\n this.setValueByScope(optionVal.scope, newVal)\r\n }\r\n }\r\n }\r\n\r\n \r\n setValueByScope(scope: string, newVal: any){\r\n for (let i = 0; i < this.controls.length; i++) {\r\n const row = this.controls[i];\r\n row.forEach((el, j) => {\r\n if (el.scope && el.scope.replace('.properties','')== scope.replace('.properties','')){\r\n this.values[i][j] = newVal\r\n }\r\n })\r\n }\r\n }\r\n\r\n aplyFormatValue(scope: string, value: any) {\r\n let control = jsonpath.query(this.crudConfig.esquema, scope)[0]\r\n let resp;\r\n switch (control.type) {\r\n case 'date':\r\n resp = new Date(`${value}`)\r\n break;\r\n case 'numeric':\r\n resp = +value\r\n break;\r\n default:\r\n resp = value\r\n break;\r\n }\r\n return resp\r\n }\r\n}\r\n","<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 && controlsLoaded\">\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 *ngIf=\"crudConfig.registro?.canBack\" 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; let i = index\" [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;let j = index\" [class]=\"el?.class\">\r\n <ng-container [ngSwitch]=\"el.type\">\r\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"controls[i][j]\" [label]=\"el.label\"\r\n [value]=\"values[i][j]\" (setValue)=\"setValue($event, el.scope, i, j)\"\r\n (sendNotification)=\"sendNotification($event)\" (sendObject)=\"applyValuesFromObject($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;let j = index\" [class]=\"el?.class\">\r\n <ng-container [ngSwitch]=\"el.type\">\r\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"controls[i][j]\" [label]=\"el.label\"\r\n [value]=\"values[i][j]\" (setValue)=\"setValue($event, el.scope, i, j)\"\r\n (sendNotification)=\"sendNotification($event)\" (sendObject)=\"applyValuesFromObject($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 *ngSwitchCase=\"'date:yyyy-mm-dd'\">\r\n <td>{{rowData[col.col] | date: 'yyyy-mm-dd'}}</td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date:dd/mm/yyyy'\">\r\n <td>{{rowData[col.col] | date: 'dd/MM/yyyy'}}</td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'boolean'\">\r\n <td>\r\n <i *ngIf=\"rowData[col.col]\" class=\"pi pi-check\"></i>\r\n <i *ngIf=\"!rowData[col.col]\" class=\"pi pi-times\"></i>\r\n </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, rowIndex)\" 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","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-sf-crud',\r\n template: `\r\n <p>\r\n sf-crud works!\r\n </p>\r\n `,\r\n styles: [\r\n ]\r\n})\r\nexport class SfCrudComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { FormsModule } from '@angular/forms';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\n//=========================================================\r\n// PrimeNG Modules\r\n//=========================================================\r\nimport { AccordionModule } from 'primeng/accordion';\r\nimport { AutoCompleteModule } from 'primeng/autocomplete';\r\nimport { AvatarGroupModule } from 'primeng/avatargroup';\r\nimport { AvatarModule } from 'primeng/avatar';\r\nimport { BadgeModule } from 'primeng/badge';\r\nimport { BlockUIModule } from 'primeng/blockui';\r\nimport { BreadcrumbModule } from 'primeng/breadcrumb';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { CalendarModule } from 'primeng/calendar';\r\nimport { CardModule } from 'primeng/card';\r\nimport { CarouselModule } from 'primeng/carousel';\r\nimport { CascadeSelectModule } from 'primeng/cascadeselect';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { ChipModule } from 'primeng/chip';\r\nimport { ChipsModule } from 'primeng/chips';\r\nimport { ColorPickerModule } from 'primeng/colorpicker';\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\r\nimport { ContextMenuModule } from 'primeng/contextmenu';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { DividerModule } from 'primeng/divider';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { DynamicDialogModule } from 'primeng/dynamicdialog';\r\nimport { FieldsetModule } from 'primeng/fieldset';\r\nimport { FileUploadModule } from 'primeng/fileupload';\r\nimport { GalleriaModule } from 'primeng/galleria';\r\nimport { InplaceModule } from 'primeng/inplace';\r\nimport { InputMaskModule } from 'primeng/inputmask';\r\nimport { InputNumberModule } from 'primeng/inputnumber';\r\nimport { InputSwitchModule } from 'primeng/inputswitch';\r\nimport { InputTextareaModule } from 'primeng/inputtextarea';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { KnobModule } from 'primeng/knob';\r\nimport { ListboxModule } from 'primeng/listbox';\r\nimport { MegaMenuModule } from 'primeng/megamenu';\r\nimport { MenubarModule } from 'primeng/menubar';\r\nimport { MenuModule } from 'primeng/menu';\r\nimport { MessageModule } from 'primeng/message';\r\nimport { MessagesModule } from 'primeng/messages';\r\nimport { MultiSelectModule } from 'primeng/multiselect';\r\nimport { OrganizationChartModule } from 'primeng/organizationchart';\r\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\r\nimport { PanelMenuModule } from 'primeng/panelmenu';\r\nimport { PanelModule } from 'primeng/panel';\r\nimport { PasswordModule } from 'primeng/password';\r\nimport { ProgressBarModule } from 'primeng/progressbar';\r\nimport { RadioButtonModule } from 'primeng/radiobutton';\r\nimport { RatingModule } from 'primeng/rating';\r\nimport { RippleModule } from 'primeng/ripple';\r\nimport { ScrollPanelModule } from 'primeng/scrollpanel';\r\nimport { ScrollTopModule } from 'primeng/scrolltop';\r\nimport { SelectButtonModule } from 'primeng/selectbutton';\r\nimport { SidebarModule } from 'primeng/sidebar';\r\nimport { SkeletonModule } from 'primeng/skeleton';\r\nimport { SlideMenuModule } from 'primeng/slidemenu';\r\nimport { SliderModule } from 'primeng/slider';\r\nimport { SplitButtonModule } from 'primeng/splitbutton';\r\nimport { SplitterModule } from 'primeng/splitter';\r\nimport { StepsModule } from 'primeng/steps';\r\nimport { TableModule } from 'primeng/table';\r\nimport { TabMenuModule } from 'primeng/tabmenu';\r\nimport { TabViewModule } from 'primeng/tabview';\r\nimport { TagModule } from 'primeng/tag';\r\nimport { TerminalModule } from 'primeng/terminal';\r\nimport { TieredMenuModule } from 'primeng/tieredmenu';\r\nimport { TimelineModule } from 'primeng/timeline';\r\nimport { ToastModule } from 'primeng/toast';\r\nimport { ToggleButtonModule } from 'primeng/togglebutton';\r\nimport { ToolbarModule } from 'primeng/toolbar';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\nimport { TreeModule } from 'primeng/tree';\r\n\r\n//=========================================================\r\n// Componets\r\n//=========================================================\r\nimport { SfCrudComponent } from './sf-crud.component';\r\nimport { TableroComponent } from './components/tablero/tablero.component';\r\nimport { RegistroComponent } from './components/registro/registro.component';\r\nimport { ControlComponent } from './components/control/control.component';\r\nimport { RegistroChildComponent } from './components/registro-child/registro-child.component';\r\nimport { RegistroDetalleComponent } from './components/registro-detalle/registro-detalle.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n SfCrudComponent,\r\n TableroComponent,\r\n RegistroComponent,\r\n ControlComponent,\r\n RegistroChildComponent,\r\n RegistroDetalleComponent\r\n ],\r\n imports: [\r\n AccordionModule,\r\n AutoCompleteModule,\r\n AvatarGroupModule,\r\n AvatarModule,\r\n BadgeModule,\r\n BlockUIModule,\r\n BreadcrumbModule,\r\n ButtonModule,\r\n CalendarModule,\r\n CardModule,\r\n CarouselModule,\r\n CascadeSelectModule,\r\n CheckboxModule,\r\n ChipModule,\r\n ChipsModule,\r\n ColorPickerModule,\r\n ConfirmDialogModule,\r\n ConfirmPopupModule,\r\n ContextMenuModule,\r\n DialogModule,\r\n DividerModule,\r\n DropdownModule,\r\n DynamicDialogModule,\r\n FieldsetModule,\r\n FileUploadModule,\r\n FormsModule,\r\n GalleriaModule,\r\n HttpClientModule,\r\n InplaceModule,\r\n InputMaskModule,\r\n InputNumberModule,\r\n InputSwitchModule,\r\n InputTextareaModule,\r\n InputTextModule,\r\n KnobModule,\r\n ListboxModule,\r\n MegaMenuModule,\r\n MenubarModule,\r\n MenuModule,\r\n MessageModule,\r\n MessagesModule,\r\n MultiSelectModule,\r\n OrganizationChartModule,\r\n OverlayPanelModule,\r\n PanelMenuModule,\r\n PanelModule,\r\n PasswordModule,\r\n ProgressBarModule,\r\n RadioButtonModule,\r\n RatingModule,\r\n RippleModule,\r\n ScrollPanelModule,\r\n ScrollTopModule,\r\n SelectButtonModule,\r\n SidebarModule,\r\n SkeletonModule,\r\n SlideMenuModule,\r\n SliderModule,\r\n SplitButtonModule,\r\n SplitterModule,\r\n StepsModule,\r\n TableModule,\r\n TabMenuModule,\r\n TabViewModule,\r\n TagModule,\r\n TerminalModule,\r\n TieredMenuModule,\r\n TimelineModule,\r\n ToastModule,\r\n ToggleButtonModule,\r\n ToolbarModule,\r\n TooltipModule,\r\n TreeModule,\r\n ],\r\n exports: [\r\n SfCrudComponent,\r\n TableroComponent,\r\n RegistroComponent,\r\n ControlComponent\r\n ],\r\n entryComponents: [\r\n RegistroChildComponent\r\n ]\r\n})\r\nexport class SfCrudModule { }\r\n","/*\r\n * Public API Surface of sf-crud\r\n */\r\n\r\nexport * from './lib/components/tablero/tablero.component';\r\nexport * from './lib/components/registro/registro.component';\r\nexport * from './lib/components/control/control.component';\r\nexport * from './lib/sf-crud.component';\r\nexport * from './lib/sf-crud.module';\r\nexport * from './lib/sf-crud.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i0","Injectable","EventEmitter","jsonpath","_","i1.GeneralService","i2","i3","i4","i5","i6","i7","i8","i9","i10","i11","Component","Input","Output","moment","i12","i13","i14","i4.ControlComponent","MessageService","DialogService","Swal","i5.SfCrudService","DynamicDialogConfig","DynamicDialogRef","i8.ControlComponent","AccordionModule","AutoCompleteModule","AvatarGroupModule","AvatarModule","BadgeModule","BlockUIModule","BreadcrumbModule","ButtonModule","CalendarModule","CardModule","CarouselModule","CascadeSelectModule","CheckboxModule","ChipModule","ChipsModule","ColorPickerModule","ConfirmDialogModule","ConfirmPopupModule","ContextMenuModule","DialogModule","DividerModule","DropdownModule","DynamicDialogModule","FieldsetModule","FileUploadModule","FormsModule","GalleriaModule","HttpClientModule","InplaceModule","InputMaskModule","InputNumberModule","InputSwitchModule","InputTextareaModule","InputTextModule","KnobModule","ListboxModule","MegaMenuModule","MenubarModule","MenuModule","MessageModule","MessagesModule","MultiSelectModule","OrganizationChartModule","OverlayPanelModule","PanelMenuModule","PanelModule","PasswordModule","ProgressBarModule","RadioButtonModule","RatingModule","RippleModule","ScrollPanelModule","ScrollTopModule","SelectButtonModule","SidebarModule","SkeletonModule","SlideMenuModule","SliderModule","SplitButtonModule","SplitterModule","StepsModule","TableModule","TabMenuModule","TabViewModule","TagModule","TerminalModule","TieredMenuModule","TimelineModule","ToastModule","ToggleButtonModule","ToolbarModule","TooltipModule","TreeModule","NgModule"],"mappings":"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"}
1
+ {"version":3,"file":"sf-crud.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/sf-crud/src/lib/shared/models/crud-config.model.ts","../../../projects/sf-crud/src/lib/shared/services/general.service.ts","../../../projects/sf-crud/src/lib/shared/models/Conditions.model.ts","../../../projects/sf-crud/src/lib/sf-crud.service.ts","../../../projects/sf-crud/src/lib/shared/services/step.service.ts","../../../projects/sf-crud/src/lib/components/tablero/tablero.component.ts","../../../projects/sf-crud/src/lib/components/tablero/tablero.component.html","../../../projects/sf-crud/src/lib/shared/services/notification.service.ts","../../../projects/sf-crud/src/lib/components/step/step.component.ts","../../../projects/sf-crud/src/lib/components/step/step.component.html","../../../projects/sf-crud/src/lib/shared/models/shema.model.ts","../../../projects/sf-crud/src/lib/components/file-upload/file-upload.component.ts","../../../projects/sf-crud/src/lib/components/file-upload/file-upload.component.html","../../../projects/sf-crud/src/lib/components/control/control.component.ts","../../../projects/sf-crud/src/lib/components/control/control.component.html","../../../projects/sf-crud/src/lib/components/form/form.component.ts","../../../projects/sf-crud/src/lib/components/form/form.component.html","../../../projects/sf-crud/src/lib/components/registro/registro.component.ts","../../../projects/sf-crud/src/lib/components/registro/registro.component.html","../../../projects/sf-crud/src/lib/sf-crud.component.ts","../../../projects/sf-crud/src/lib/sf-crud.routing.module.ts","../../../projects/sf-crud/src/lib/sf-crud.module.ts","../../../projects/sf-crud/src/public-api.ts","../../../projects/sf-crud/src/sf-crud.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n 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) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n 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; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport default {\r\n __extends,\r\n __assign,\r\n __rest,\r\n __decorate,\r\n __param,\r\n __metadata,\r\n __awaiter,\r\n __generator,\r\n __createBinding,\r\n __exportStar,\r\n __values,\r\n __read,\r\n __spread,\r\n __spreadArrays,\r\n __spreadArray,\r\n __await,\r\n __asyncGenerator,\r\n __asyncDelegator,\r\n __asyncValues,\r\n __makeTemplateObject,\r\n __importStar,\r\n __importDefault,\r\n __classPrivateFieldGet,\r\n __classPrivateFieldSet,\r\n __classPrivateFieldIn,\r\n};\r\n","import { Message } from \"primeng/api\";\r\nimport { Shema } from \"./shema.model\";\r\nimport { Condition } from \"./Conditions.model\";\r\n\r\nexport class CrudConfig {\r\n idEntidad: string = '';\r\n uiEsquemas: any[] = [];\r\n esquemas: Shema[] = [];\r\n registros: ConfigRegistro[] = [];\r\n tablero: ConfigTablero | undefined;\r\n}\r\n\r\n\r\nexport class ConfigTablero {\r\n columns: any[] = [];\r\n endpoint: string = '';\r\n method: string = '';\r\n server: string = '';\r\n filters: string[] = [];\r\n keys: { key: string, scope?: string }[] = [];\r\n}\r\n\r\nexport class ConfigRegistro {\r\n operations: Operation[] = [];\r\n btnBack: string = '';\r\n label?: string;\r\n canBack: boolean = false;\r\n constructionId?: ConstructionId;\r\n keys?: Key[];\r\n conditions?: Condition[]= [];\r\n}\r\n\r\nexport class Operation {\r\n type!: \"update\" | \"create\" | \"read\" | \"ado\";\r\n server?: string;\r\n endpoint?: string;\r\n method: string = '';\r\n validations?: Validations;\r\n url?: string;\r\n changeTrx: {index: number, trx: string}[] = [];\r\n errorChecking?: RequestChecking;\r\n answerChecking?: RequestChecking;\r\n keysEsquema?: keyEsquema[];\r\n keys?: Key[]\r\n}\r\n\r\nexport class ConstructionId {\r\n indexStep!: number;\r\n path!: string;\r\n keys?: Key[]\r\n}\r\n\r\nexport class Validations {\r\n type: string = '';\r\n required?: ValidationRequired[] = [];\r\n equals?: ValidationEqual[] = [];\r\n different?: ValidationDifferent[] = [];\r\n server: string = '';\r\n endpoint: string = '';\r\n operations: any;\r\n}\r\n\r\nclass ValidationRequired{\r\n field!: string;\r\n message!: string;\r\n conditions?: number[];\r\n}\r\nclass ValidationEqual extends ValidationRequired{\r\n constructor(\r\n public value: any\r\n ){\r\n super()\r\n }\r\n}\r\n\r\nclass ValidationDifferent extends ValidationRequired{\r\n constructor(\r\n public value: any\r\n ){\r\n super()\r\n }\r\n}\r\n\r\nexport class RequestChecking {\r\n constructor(\r\n public dynamics: Message | undefined,\r\n public statics: Message | undefined,\r\n public useSwal: boolean,\r\n public redirect: string | undefined,\r\n public cancelRedirect: string | undefined,\r\n public allowContinue: boolean,\r\n public parse: string | undefined\r\n ){}\r\n}\r\n\r\n\r\nexport class Key{\r\n key!: string;\r\n scope!: string;\r\n indexAnswer?: number;\r\n indexData?: number;\r\n indexId?: number;\r\n data?: string;\r\n overrideControl?: OverrideConfig;\r\n}\r\n\r\nexport class OverrideConfig {\r\n property!: string;\r\n value: any;\r\n elseValue?: any;\r\n conditions?: number[];\r\n newPropertyValue?: any;\r\n elseNewPropertyValue?: any;\r\n}\r\n\r\nexport class keyEsquema{\r\n key?: string;\r\n scope!: string;\r\n indexData?: number;\r\n indexId?: number;\r\n isArray?: boolean;\r\n indexKey?: number;\r\n canBeValueUndefined?: boolean;\r\n}\r\n\r\n\r\n\r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { CrudConfig } from '../models/crud-config.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GeneralService {\r\n public generales: string = '';\r\n public jsonConfig: any;\r\n private _idKatios!: string;\r\n\r\n constructor(\r\n private http: HttpClient\r\n ) {\r\n }\r\n\r\n set environment(val){\r\n this.jsonConfig = val \r\n this.generales = this.jsonConfig?.ServidorGenerales;\r\n }\r\n\r\n get environment(){\r\n if (!this.jsonConfig) this.environment = JSON.parse(sessionStorage.getItem('ConfigJSON') || '{}');\r\n return this.jsonConfig\r\n }\r\n\r\n \r\n get idKatios(){\r\n return this._idKatios\r\n }\r\n\r\n set idKatios(value: string){\r\n this._idKatios = value\r\n }\r\n\r\n\r\n async getCrudByEntidad(idKatios: string, idEntidad: string){\r\n return this.http.get(`${this.generales}crud/forms/${idKatios}/${idEntidad}`).toPromise()\r\n .then((res: any) => <CrudConfig>res)\r\n }\r\n\r\n async getFiles(urls: string[], names: string[]): Promise<File[]> {\r\n\treturn Promise.all(\r\n\t\turls.map(async (url, i) => {\r\n\t\t\tconst response = await this.http.get(url, { responseType: 'blob' }).toPromise();\r\n\t\t\tconst arrayBuffer = await response!.arrayBuffer();\r\n\r\n\t\t\tconst tipo = names[i].includes(\".pdf\") ? 'application/pdf' : \"image/\" + this.getExt(names[i]);\r\n\t\t\treturn new File([new Uint8Array(arrayBuffer)], names[i], { type: tipo });\r\n\t\t})\r\n\t);\r\n\t}\r\n\r\n getExt(name: string) {\r\n let ext = undefined\r\n let aux = name.split('.')\r\n if (aux.length > 0) ext = aux[aux.length - 1]\r\n return ext\r\n }\r\n\r\n async genericRequest(method: string, url: string, data?: any) {\r\n switch (method) {\r\n case 'GET':\r\n return this.http.get(url).toPromise()\r\n case 'POST':\r\n return this.http.post(url, data).toPromise()\r\n case 'PUT':\r\n return this.http.put(url, data).toPromise()\r\n case 'DELETE':\r\n return this.http.delete(url, data).toPromise()\r\n default:\r\n throw new Error(\"Invalid method\")\r\n }\r\n }\r\n}\r\n","import * as jsonpath from \"jsonpath\";\r\n\r\nexport abstract class Condition {\r\n\r\n constructor(\r\n public type: \"equal\" | \"different\" | \"or\" | \"and\",\r\n public attrs: any,\r\n public indexData: number | undefined\r\n ){\r\n }\r\n\r\n\r\n static instanceContidion(index: number, allConditions: Condition[]): Condition{\r\n let c: Condition;\r\n switch (allConditions[index].type) {\r\n case \"different\":\r\n c = new ConditionDifferent(allConditions[index].attrs.field, allConditions[index].attrs.value, allConditions[index].attrs.grado || 2, allConditions[index].indexData)\r\n break;\r\n case \"or\":\r\n const subconditions = (allConditions[index].attrs.conditions as number[]).map(i => this.instanceContidion(i, allConditions))\r\n c = new ConditionOr(subconditions, allConditions[index].indexData)\r\n break;\r\n case \"and\":\r\n const subconditions2 = (allConditions[index].attrs.conditions as number[]).map(i => this.instanceContidion(i, allConditions))\r\n c = new ConditionAnd(subconditions2, allConditions[index].indexData)\r\n break;\r\n case \"equal\":\r\n c = new ConditionEqual(allConditions[index].attrs.field, allConditions[index].attrs.value, allConditions[index].attrs.grado || 2, allConditions[index].indexData)\r\n break;\r\n }\r\n return c;\r\n }\r\n\r\n abstract isValid(data: any): boolean;\r\n}\r\n\r\nexport class ConditionEqual extends Condition{\r\n constructor(\r\n public field: string,\r\n public value: any,\r\n public grado: number,\r\n indexData: number | undefined){\r\n super(\"equal\", {}, indexData)\r\n }\r\n\r\n override isValid(data: any): boolean {\r\n let cumple = true\r\n const res = jsonpath.query(data, this.field)\r\n if (res.length > 0 && this.grado == 2) cumple = this.value == res[0]\r\n else if (res.length > 0 && this.grado == 3) cumple = this.value === res[0]\r\n return cumple;\r\n }\r\n\r\n}\r\n\r\nexport class ConditionDifferent extends Condition{\r\n constructor(\r\n public field: string,\r\n public value: any,\r\n public grado: number,\r\n indexData: number | undefined\r\n ){\r\n super(\"different\", {}, indexData)\r\n }\r\n\r\n override isValid(data: any): boolean {\r\n let cumple = true\r\n const res = jsonpath.query(data, this.field)\r\n if (res.length > 0 && this.grado == 2) cumple = this.value != res[0]\r\n else if (res.length > 0 && this.grado == 3) cumple = this.value !== res[0]\r\n return cumple;\r\n }\r\n}\r\n\r\nexport class ConditionOr extends Condition{\r\n constructor(\r\n public conditions: Condition[],\r\n indexData: number | undefined\r\n ){\r\n super(\"or\", {}, indexData)\r\n }\r\n\r\n override isValid(data: any): boolean {\r\n return this.conditions.some(c => c.isValid(data));\r\n }\r\n}\r\n\r\nexport class ConditionAnd extends Condition{\r\n constructor(\r\n public conditions: Condition[],\r\n indexData: number | undefined){\r\n super(\"and\", {}, indexData)\r\n }\r\n\r\n override isValid(data: any): boolean {\r\n return this.conditions.every(c => c.isValid(data));\r\n }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport * as jsonpath from 'jsonpath';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { Shema } from './shared/models/shema.model';\r\nimport { ConfigRegistro, Key, Operation, keyEsquema } from './shared/models/crud-config.model';\r\nimport { Empresa } from './shared/models/Empresa.model';\r\nimport { Condition } from './shared/models/Conditions.model';\r\nimport { Reason } from './shared/models/Reason.model';\r\nimport * as moment from 'moment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SfCrudService {\r\n private _esquemas: Shema[] = [];\r\n private _uiEsquemas: any[] = []\r\n private _registros: ConfigRegistro[] = [];\r\n private _answers: any[] = [];\r\n private _dataSet :any[] = [];\r\n private _ids :string[] = [];\r\n private __index: number = 0;\r\n private _idKatios!: string;\r\n private _configEmpresa: Empresa | undefined = undefined;\r\n private _trx: string[] = [];\r\n private jsonConfig: any;\r\n private _changeData = new BehaviorSubject<ChangeData | undefined>(undefined);\r\n private __formLoading = new BehaviorSubject<Loading>({inProgress: false, target: undefined});\r\n private _dataExt: any;\r\n private _tfmUser: any;\r\n private _crudLoaded = new BehaviorSubject(false);\r\n\r\n get user(){\r\n if (!this._tfmUser) this._tfmUser = JSON.parse(localStorage.getItem(\"oSessionTFM\")!)\r\n return this._tfmUser\r\n }\r\n\r\n get currentOperation(){\r\n return this.registros[this.index].operations.find(x => x.type.startsWith(this._trx[this.index]))\r\n }\r\n\r\n set environment(val: any){\r\n this.jsonConfig = val\r\n }\r\n\r\n get environment(){\r\n return this.jsonConfig\r\n }\r\n\r\n get onCrudLoaded$(){\r\n return this._crudLoaded.asObservable()\r\n }\r\n\r\n set crudLoaded(value: boolean){\r\n this._crudLoaded.next(value)\r\n }\r\n\r\n get dataExt(){\r\n return this._dataExt\r\n }\r\n\r\n set dataExt(val){\r\n this._dataExt = val\r\n }\r\n\r\n get index(){\r\n return this.__index\r\n }\r\n\r\n set index(value: number){\r\n this.__index = value\r\n }\r\n\r\n get idKatios(){\r\n return this._idKatios\r\n }\r\n\r\n set idKatios(value: string){\r\n this._idKatios = value?.trim()?.toUpperCase()\r\n }\r\n\r\n get configEmpresa(): Empresa | undefined{\r\n return this._configEmpresa\r\n }\r\n\r\n set configEmpresa(value: Empresa | undefined){\r\n this._configEmpresa = value\r\n }\r\n\r\n getURL(operation: Operation, index: number | undefined = undefined, id: any=undefined){\r\n\r\n let url = operation.url || `${this.jsonConfig[operation.server!]}${operation.endpoint}`\r\n url = url.replace('@idKatios', this.idKatios)\r\n if (id) url = url.replace('@id', id)\r\n\r\n url = this.applyStringKeys(url, index)\r\n return url\r\n }\r\n\r\n getRegistro(index: number){\r\n return this._registros[index];\r\n }\r\n\r\n getId(index: number): string {\r\n return this._ids.length == 1 ? this._ids[0] : this._ids[index];\r\n }\r\n\r\n get dataset(){\r\n return this._dataSet\r\n }\r\n getData(index: number){\r\n return this._dataSet.length == 1 ? this._dataSet[0] : this._dataSet[index];\r\n }\r\n\r\n getTrx(index: number): string {\r\n return this._trx[index]\r\n }\r\n\r\n get totalData(){\r\n return this._dataSet.length\r\n }\r\n\r\n get totalRegistros(){\r\n return this._registros.length\r\n }\r\n\r\n get uiEsquemas(){\r\n return this._uiEsquemas\r\n }\r\n\r\n getEsquema(index: number){\r\n return this._esquemas.length == 1 ? this._esquemas[0] : this._esquemas[index];\r\n }\r\n\r\n reset(){\r\n this._ids = []\r\n this._dataSet = []\r\n }\r\n\r\n getURLRedirect(initialURL: string){\r\n let finalUrl = this.applyStringKeys(initialURL, undefined)\r\n finalUrl = finalUrl.replace(\"@URLBASE\", window.location.href.split('?')[0])\r\n return finalUrl\r\n }\r\n\r\n getUIEsquema(index: number){\r\n return this._uiEsquemas[index];\r\n }\r\n\r\n\r\n /**\r\n * using data, apply each keyEsquema over each dataset indicated on indexData of each key\r\n * @param data\r\n * @param content\r\n * @returns\r\n */\r\n applyObjectKeys(data: any, keysEsquema: keyEsquema[], registro: ConfigRegistro): any{\r\n for (let i = 0; i < keysEsquema.length; i++) {\r\n const opt = keysEsquema[i];\r\n let value = undefined;\r\n if (opt.indexKey){\r\n let keyFound = (registro.keys ?? [undefined])[opt.indexKey]\r\n this.applyKey(keyFound, registro, data)\r\n\r\n }\r\n else if (opt.indexData !== undefined) {\r\n if (opt.isArray){\r\n value = jsonpath.query(data, opt.scope)\r\n }else{\r\n value = jsonpath.query(data, opt.scope)[0]\r\n }\r\n }\r\n if (opt.key == \"$\") Object.assign(this._dataSet[opt.indexData!], value)\r\n else if (opt.key && ((value !== undefined && value !== null) || (opt.canBeValueUndefined === undefined || opt.canBeValueUndefined === true))) jsonpath.value(this._dataSet[opt.indexData!], opt.key, value)\r\n }\r\n return data\r\n }\r\n\r\n\r\n applyKey(key: Key | undefined, registro: ConfigRegistro, data: any){\r\n if (key?.overrideControl){\r\n let newVal = undefined;\r\n let esquemaToSet = this.getControl(key.scope, this.esquemas[key.indexData ?? this.index])\r\n if (!esquemaToSet) {\r\n console.error({message: \"la key esta mal configurada\", data: key})\r\n return;\r\n }\r\n let completed = this.isConditionsCompleted(key.overrideControl.conditions ?? [], registro.conditions || [], data)\r\n if (key.overrideControl?.property) jsonpath.value(esquemaToSet, key.overrideControl.property, completed ? key.overrideControl.value : key.overrideControl.elseValue)\r\n\r\n if (completed && key.overrideControl.newPropertyValue !== undefined){\r\n if (key.overrideControl.newPropertyValue == 'RESETOBJECT') newVal = this.createObject(esquemaToSet, this.currentOperation)\r\n else newVal = key.overrideControl.newPropertyValue\r\n }else if (!completed && key.overrideControl.elseNewPropertyValue !== undefined){\r\n if (key.overrideControl.elseNewPropertyValue == 'RESETOBJECT') newVal = this.createObject(esquemaToSet, this.currentOperation)\r\n else newVal = key.overrideControl.elseNewPropertyValue\r\n }\r\n if (newVal !== undefined) jsonpath.value(this._dataSet[key.indexData ?? this.index], key.scope.replaceAll('..properties', ''), newVal)\r\n\r\n }\r\n }\r\n\r\n /**\r\n * Validate conditions on datas\r\n * @param conditions\r\n * @param index\r\n */\r\n isConditionsCompleted(iConditions: number[], conditions: Condition[], data: any): boolean {\r\n let cumple = true\r\n iConditions.forEach( iCond => {\r\n const c = Condition.instanceContidion(iCond, conditions)\r\n let dataToEvaluate = c.indexData !== undefined ? this._dataSet[c.indexData] : data\r\n if (!c.isValid(dataToEvaluate)) cumple = false\r\n })\r\n return cumple\r\n }\r\n /**\r\n * Apply each key from register over string content\r\n * @param indexRegistro\r\n * @param content\r\n * @returns\r\n */\r\n applyStringKeys(content: string, index: number | undefined = undefined): string{\r\n let indexRegistro = index || this.__index\r\n this._registros[indexRegistro].keys?.forEach((opt) => {\r\n let value;\r\n if (opt.indexId !== undefined && opt.indexId < this._ids.length) value = this._ids[opt.indexId]\r\n else if (opt.indexAnswer !== undefined && opt.indexAnswer < this._answers.length) value = jsonpath.query(this._answers[opt.indexAnswer], opt.scope)[0]\r\n else if (opt.indexData !== undefined) value = jsonpath.query(this._dataSet[opt.indexData], opt.scope)[0]\r\n if (value === null) value = ''\r\n content = content.replace(opt.key, value)\r\n })\r\n return content\r\n }\r\n\r\n validateDataLocal(operation: Operation, data: any, conditions: Condition[]) {\r\n const err: string[] = []\r\n //Solo si se cumple la condicion, se valida\r\n operation.validations?.required?.forEach(x => {\r\n const cumpleCond = x.conditions ? this.isConditionsCompleted(x.conditions, conditions, data): true;\r\n if (cumpleCond && (!jsonpath.query(data, x.field)[0] ||\r\n (Array.isArray(jsonpath.query(data, x.field)[0]) && jsonpath.query(data, x.field)[0].length == 0))) err.push(x.message);\r\n })\r\n\r\n operation.validations?.different?.forEach(x =>{\r\n const cumpleCond = x.conditions ? this.isConditionsCompleted(x.conditions, conditions, data): true;\r\n if (cumpleCond && jsonpath.query(data, x.field)[0] === x.value) err.push(x.message);\r\n })\r\n\r\n operation.validations?.equals?.forEach(x =>{\r\n const cumpleCond = x.conditions ? this.isConditionsCompleted(x.conditions, conditions, data): true;\r\n if (cumpleCond && jsonpath.query(data, x.field)[0] != x.value) err.push(x.message);\r\n })\r\n operation.validations?.operations?.forEach((op: any) => {\r\n switch (op.action) {\r\n case 'sumArray':\r\n const var1 = jsonpath.query(data, op.scope[0]).reduce((acc, cur) => acc += cur[op.key], 0);\r\n const var2 = jsonpath.query(data, op.scope[1]).reduce((acc, cur) => acc += cur[op.key], 0);\r\n if (var1 != var2) err.push(op.message)\r\n break;\r\n default:\r\n break;\r\n }\r\n })\r\n return err;\r\n }\r\n\r\n set esquemas(esquemas: Shema[]){\r\n this._esquemas = esquemas\r\n }\r\n\r\n get esquemas(){\r\n return this._esquemas\r\n }\r\n\r\n set ids(ids: string[]){\r\n this._ids = ids\r\n }\r\n\r\n set uiEsquemas(uiEsquemas: any[]){\r\n this._uiEsquemas = uiEsquemas\r\n }\r\n\r\n get registros(){\r\n return this._registros\r\n }\r\n\r\n set registros(registros: ConfigRegistro[]){\r\n this._registros = registros\r\n }\r\n\r\n setDataSet(data: any, index: number | undefined = undefined){\r\n index = index ? index : this.__index\r\n if (index >= this.totalData) {\r\n this._dataSet.push(data)\r\n }\r\n }\r\n\r\n setTrx(trx: any, index: number){\r\n if (Array.isArray(trx)) this._trx = trx;\r\n else if (index >= this._trx.length) this._trx.push(trx)\r\n else this._trx[index] = trx\r\n }\r\n\r\n setAnswers(answer: any, index: number){\r\n if (Array.isArray(answer)) this._answers = answer;\r\n else {\r\n if (index >= this._answers.length) this._answers.push(answer);\r\n else this._answers[index] = answer;\r\n }\r\n }\r\n\r\n getControl(scope: string, esquema: Shema) {\r\n return jsonpath.query(esquema, scope)[0];\r\n }\r\n\r\n\r\n getValue(scope: any, data: any) {\r\n return jsonpath.query(data, scope.replaceAll('.properties', ''))[0];\r\n }\r\n\r\n createObject(esquema: Shema, operation: Operation | undefined) {\r\n const object: any = {};\r\n switch (esquema.type) {\r\n case 'numeric':\r\n case 'string':\r\n case 'date':\r\n if (esquema.default && operation){\r\n return this.setDefaultValue(esquema.default, operation)\r\n }\r\n else return esquema.default ?? null;\r\n case 'boolean':\r\n return esquema?.default || false;\r\n case 'array':\r\n return [];\r\n case 'file':\r\n return null;\r\n case 'object':\r\n Object.getOwnPropertyNames(esquema?.properties).forEach(key => {\r\n let aux = esquema?.properties[key]\r\n if (aux) object[key] = this.createObject(aux, operation)\r\n });\r\n return object;\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n\r\n getValueKey(key: Key | undefined): any {\r\n let data;\r\n switch (key?.data || 'externa') {\r\n case \"user\":\r\n data = this.user\r\n break;\r\n default:\r\n data = this.dataExt\r\n break;\r\n }\r\n if (data && key){\r\n const aux = jsonpath.query(data, key.scope)\r\n if (aux.length == 0) return undefined\r\n if (aux.length == 1) return aux[0]\r\n else return aux\r\n }\r\n return undefined\r\n }\r\n\r\n\r\n setDefaultValue(value: any, operation: Operation) {\r\n let data = null;\r\n if (value.key && operation.keys){\r\n data = this.getValueKey(operation.keys.find(k => k.key == value.key)!)\r\n value = data\r\n }\r\n switch (value) {\r\n case '@uactivo':\r\n data = `${this.user.UsuarioSistema.TDOC}-${this.user.UsuarioSistema.NDOC}`\r\n break;\r\n case '@tdocactivo':\r\n data = this.user.UsuarioSistema.TDOC\r\n break;\r\n case '@ndocactivo':\r\n data = this.user.UsuarioSistema.NDOC\r\n break;\r\n case '@hoy':\r\n data = new Date();\r\n break;\r\n default:\r\n data = value;\r\n break;\r\n }\r\n return data\r\n }\r\n\r\n /**\r\n * Validate if schema has pdfsign and it's signed, else return false\r\n * @param index\r\n * @returns\r\n */\r\n isSignedPDF(index: number){\r\n return this._dataSet[index].signed\r\n }\r\n\r\n get changeData$(){\r\n return this._changeData.asObservable()\r\n }\r\n\r\n set changeData(value: ChangeData){\r\n this._changeData.next(value)\r\n }\r\n\r\n get formLoading$(){\r\n return this.__formLoading.asObservable()\r\n }\r\n\r\n set formLoading(value: Loading){\r\n this.__formLoading.next(value)\r\n }\r\n\r\n loadSession() {\r\n const existSession = localStorage.getItem(\"esquemas\") !== null\r\n if (existSession){\r\n this._esquemas = JSON.parse(localStorage.getItem(\"esquemas\")!)\r\n this._uiEsquemas = JSON.parse(localStorage.getItem(\"uiEsquemas\")!)\r\n this._registros = JSON.parse(localStorage.getItem(\"registros\")!)\r\n this._dataSet = JSON.parse(localStorage.getItem(\"dataSet\")!)\r\n this._answers = JSON.parse(localStorage.getItem(\"answers\")!)\r\n this._trx = JSON.parse(localStorage.getItem(\"trx\")!)\r\n this.__index = +localStorage.getItem(\"index\")!\r\n localStorage.clear()\r\n }\r\n return existSession\r\n }\r\n\r\n get reasons(): Reason[]{\r\n const reasonsStorage =localStorage.getItem(\"reasons\")\r\n if (reasonsStorage) return <Reason[]>JSON.parse(reasonsStorage)\r\n return []\r\n }\r\n\r\n saveProgress(reasons: Reason[]){\r\n localStorage.setItem(\"reasons\", JSON.stringify(reasons))\r\n localStorage.setItem(\"esquemas\", JSON.stringify(this._esquemas))\r\n localStorage.setItem(\"trx\", JSON.stringify(this._trx))\r\n localStorage.setItem(\"uiEsquemas\", JSON.stringify(this._uiEsquemas))\r\n localStorage.setItem(\"registros\", JSON.stringify(this._registros))\r\n localStorage.setItem(\"dataSet\", JSON.stringify(this._dataSet))\r\n localStorage.setItem(\"answers\", JSON.stringify(this._answers))\r\n localStorage.setItem(\"index\", this.__index.toString())\r\n }\r\n\r\n public redirectToInicio(){\r\n window.location.href = window.location.href.split('?')[0]\r\n window.location.reload()\r\n }\r\n\r\n\r\napplyValuesOnEvent(event: string, esquema: Shema, key: string | undefined, data: any) {\r\n if (key) { \r\n if (esquema.properties[key][event]) {\r\n esquema.properties[key][event].forEach((value: { scope: string[], op: string, key?: string }) => {\r\n this.setValueEvent(data, value, esquema);\r\n })\r\n }\r\n } else {\r\n for (const key in esquema.properties) {\r\n if (esquema.properties[key][event]) {\r\n esquema.properties[key][event].forEach((value: any) => {\r\n this.setValueEvent(data, value, esquema);\r\n })\r\n }\r\n }\r\n }\r\n }\r\n\r\n setValueEvent(data: any, params: { scope: string[], op: string, key?: any, separator?: string }, esquema: Shema) {\r\n let date = moment(new Date());\r\n switch (params.op) {\r\n case 'sum':\r\n jsonpath.value(data, params.scope[1], jsonpath.query(data, params.scope[0]).reduce((acc, cur) => acc += params?.key ? cur[params.key] : cur, 0))\r\n break;\r\n case 'concat':\r\n let array: string[] = []\r\n params?.key?.reduce((acc: any[], cur: string) => {\r\n array.push(jsonpath.query(data, cur)[0])\r\n }, [])\r\n if (params?.separator) jsonpath.value(data, params.scope[0], array.join(params?.separator || ' '))\r\n break;\r\n case 'enable':\r\n jsonpath.value(esquema, params.scope[0], false)\r\n break;\r\n case 'disabled':\r\n jsonpath.value(esquema, params.scope[0], true)\r\n break;\r\n case 'replace:endpoint':\r\n jsonpath.value(esquema, params.scope[0], esquema.config.endpointtemp.replace(params.scope[1], jsonpath.query(data, `$..${params.key}`)))\r\n break;\r\n case 'setNull':\r\n jsonpath.value(data, `$.${params.key}`, null);\r\n break;\r\n case 'datediff:years':\r\n jsonpath.value(data, params.scope[0], date.diff(moment(jsonpath.query(data, params.scope[1])[0]), 'years'))\r\n break;\r\n case 'datediff:months':\r\n jsonpath.value(data, params.scope[0], date.diff(moment(jsonpath.query(data, params.scope[1])[0]), 'months'))\r\n break;\r\n case 'datediff:weeks':\r\n jsonpath.value(data, params.scope[0], date.diff(moment(jsonpath.query(data, params.scope[1])[0]), 'weeks'))\r\n break;\r\n case 'datediff:days':\r\n jsonpath.value(data, params.scope[0], date.diff(moment(jsonpath.query(data, params.scope[1])[0]), 'days'))\r\n break;\r\n default:\r\n break;\r\n }\r\n console.log('setValueEvent sale:')\r\n console.log(data)\r\n console.log(esquema)\r\n console.log(params)\r\n\r\n }\r\n\r\n\r\n}\r\n\r\n export class ChangeData {\r\n constructor(\r\n public value: string,\r\n public scope: string,\r\n public index: number\r\n ){}\r\n }\r\n\r\n\r\n export interface Loading {\r\n target: HTMLElement | undefined,\r\n inProgress: boolean\r\n }\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StepService {\r\n\r\n\r\n private _requestApproval: Subject<{current: number, desired: any}> = new Subject();\r\n private _desiredIndex: number | undefined;\r\n private _customChildrenEvents: Subject<any> = new Subject();\r\n private _currentPosition = new BehaviorSubject(0);\r\n private _requestApproved = new BehaviorSubject(true);\r\n\r\n get currentIndex(){\r\n return this._currentPosition.getValue()\r\n }\r\n\r\n set currentIndex(value: number){\r\n this._currentPosition.next(value)\r\n }\r\n\r\n get currentIndex$(){\r\n return this._currentPosition.asObservable()\r\n }\r\n\r\n /*\r\n Envia una peticion para que se envie el formulario\r\n */\r\n set requestApproval(newPos: number){\r\n this._desiredIndex = newPos\r\n this._requestApproval.next({current: this.currentIndex, desired: newPos})\r\n }\r\n\r\n get requestApproval$(){\r\n return this._requestApproval.asObservable()\r\n }\r\n\r\n get requestApproved$(){\r\n return this._requestApproved.asObservable()\r\n }\r\n\r\n /**\r\n * Useful to deny or approve request made by requestAprroval\r\n */\r\n set requestApproved(approved: boolean){\r\n if (this._desiredIndex === undefined) throw new Error('desiredIndex is not defined')\r\n if (approved) this._currentPosition.next(this._desiredIndex)\r\n this._requestApproved.next(approved)\r\n }\r\n\r\n set desiredIndex(index:number | undefined){\r\n this._desiredIndex = index\r\n }\r\n\r\n addCustomChildrenEvent(name: string, data: any){\r\n this._customChildrenEvents.next({name, data})\r\n }\r\n\r\n reset(){\r\n //this._requestApproval = new BehaviorSubject({current:0, desired: undefined});\r\n //this._customChildrenEvents = new BehaviorSubject(undefined);\r\n }\r\n\r\n get customChildrenEvents$(){\r\n return this._customChildrenEvents.asObservable()\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, HostBinding, Input, OnInit, Output } from '@angular/core';\r\nimport { ConfigTablero, CrudConfig } from '../../shared/models/crud-config.model';\r\nimport { GeneralService } from '../../shared/services/general.service';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { Router } from '@angular/router';\r\nimport * as _ from \"lodash\";\r\nimport * as jsonpath from 'jsonpath';\r\nimport { Loading, SfCrudService } from '../../sf-crud.service';\r\nimport { StepService } from '../../shared/services/step.service';\r\n\r\n\r\n@Component({\r\n selector: 'sf-crudtablero',\r\n templateUrl: './tablero.component.html',\r\n styleUrls: ['./tablero.component.css']\r\n})\r\nexport class TableroComponent implements OnInit {\r\n\r\n @Input() opciones: any[] = [];\r\n @Input() idEntidad: string = '';\r\n @Input() idKatios: string = '';\r\n @Input() environment: any;\r\n @Input() user: any;\r\n @Input() dataExt: any;\r\n @Output() onSelectAction: EventEmitter<any> = new EventEmitter<any>();\r\n @HostBinding(\"style.--secondary-color\") color2!: string;\r\n @HostBinding(\"style.--button-color\") colorButtons!: string;\r\n\r\n public items: MenuItem[] = [];\r\n public crudConfig: CrudConfig = new CrudConfig();\r\n public data: any[] = [];\r\n public initialData: any[] = [];\r\n public btn: { create: any, read: any, update: any, delete: any } = { create: undefined, read: undefined, update: undefined, delete: undefined }\r\n public itemSelected: any;\r\n private loading!:Loading;\r\n\r\n constructor(\r\n private generalService: GeneralService,\r\n private router: Router,\r\n private sfCrudService: SfCrudService,\r\n private stepService: StepService\r\n ) {\r\n this.loading = {inProgress: false, target: undefined};\r\n }\r\n\r\n ngOnInit(): void {\r\n this.generalService.environment = this.environment\r\n this.loadConfigCrud()\r\n }\r\n\r\n loadConfigCrud() {\r\n this.loading.inProgress = true;\r\n this.sfCrudService.formLoading = this.loading;\r\n this.generalService.getCrudByEntidad(this.idKatios, this.idEntidad)\r\n .then((res: CrudConfig)=> {\r\n this.crudConfig = res;\r\n this.getInfoTablero();\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.loading.inProgress = false;\r\n this.sfCrudService.formLoading = this.loading;\r\n })\r\n }\r\n\r\n customizeCompany(uiEsquemas: any[]) {\r\n this.sfCrudService.configEmpresa = uiEsquemas.find(ui => ui.general)?.general\r\n if(this.sfCrudService.configEmpresa){\r\n if (this.sfCrudService.configEmpresa.colors?.secondary) this.color2 = this.sfCrudService.configEmpresa.colors.secondary\r\n if (this.sfCrudService.configEmpresa.colors?.button) this.colorButtons = this.sfCrudService.configEmpresa.colors.secondary\r\n }\r\n\r\n if (!this.color2) this.color2 = this.colorButtons = \"blue\";\r\n }\r\n// submit(index: number) {\r\n// let registro = this.sfCrudService.getRegistro(index)\r\n// let operation = registro.operations.find(op => op.type.startsWith(this.sfCrudService.getTrx(0)))!\r\n// console.log(operation)\r\n// let url = this.sfCrudService.getURL(operation, index)\r\n// return this.generalService.genericRequest(operation.method, url, this.sfCrudService.getData(index))\r\n// .then((res) => {\r\n// if (res === null) res = {}\r\n// res = this.sfCrudService.applyObjectKeys(res, operation.keysEsquema || [], registro)\r\n// console.log(res)\r\n// this.sfCrudService.setAnswers(res, 0)\r\n\r\n// if (operation.changeTrx) operation.changeTrx.forEach(x => this.sfCrudService.setTrx(x.trx, x.index))\r\n// // this.notificationService.generateMessage(this.notificationService.genDefaultMessage(\"success\", undefined, \"Información subida correctamente\", operation.answerChecking), res, operation.answerChecking)\r\n// // return res;\r\n// })\r\n// .catch(err => {\r\n// // const operation = this.sfCrudService.getRegistro(this.indexCrud).operations.find(op => op.type.startsWith(this.sfCrudService.getTrx(index)))!\r\n// // this.notificationService.generateMessage(this.notificationService.genDefaultMessage(\"error\", \"Error no controlado\", \"Por favor comunicarse con el admin\",operation.errorChecking), err.error, operation.errorChecking)\r\n// // throw new Error(err)\r\n// })\r\n// }\r\n\r\n getInfoTablero() {\r\n //this.submit(0)\r\n this.data = []\r\n this.initialData = []\r\n this.loading.inProgress = true;\r\n this.sfCrudService.formLoading = this.loading;\r\n let url = this.aplyKeys(this.crudConfig.tablero!.keys, `${this.generalService.jsonConfig[this.crudConfig.tablero!.server]}${this.crudConfig.tablero!.endpoint}`, this.dataExt)\r\n this.generalService.genericRequest(this.crudConfig.tablero!.method, url, this.dataExt)\r\n .then((res: any) => {\r\n let aux;\r\n if (!Array.isArray(res)) aux = res.data; else aux = res;\r\n this.initialData = _.cloneDeep(aux);\r\n this.generateData(aux);\r\n this.loadOptions();\r\n })\r\n .finally(() => {\r\n this.loading.inProgress = false;\r\n this.sfCrudService.formLoading = this.loading;\r\n })\r\n }\r\n\r\n generateData(data: any[]) {\r\n data.forEach((item: any) => {\r\n let newItem: any = {};\r\n this.crudConfig.tablero!.columns.forEach(col => {\r\n newItem[col.col] = this.getValue(col.col, item)\r\n })\r\n this.data.push(newItem)\r\n })\r\n console.log(this.data)\r\n }\r\n getValue(path: string, item: any): any {\r\n if (path.includes(\".\")) return jsonpath.query(item, path)[0]\r\n return item[path]\r\n }\r\n\r\n externalLinkAction(){\r\n this.opciones.filter((opc: any) => opc.valor.action).forEach(opc => this.execAction(opc.valor))\r\n }\r\n\r\n loadOptions() {\r\n this.items = [];\r\n this.btn.create = this.opciones.find(x => x.label == 'Crear');\r\n this.opciones.filter((opc: any) => opc.valor.action).forEach(opc => {\r\n this.items.push({ label: opc.label, icon: opc.icon, command: () => this.execAction(opc.valor) })\r\n })\r\n }\r\n\r\n redirect(accion: string, data?: any) {\r\n this.stepService.reset();\r\n this.sfCrudService.reset();\r\n switch (accion) {\r\n case 'create':\r\n this.router.navigateByUrl(this.btn.create?.valor?.redirect || '');\r\n break;\r\n case 'read':\r\n this.router.navigateByUrl(this.aplyKeys(this.crudConfig.tablero!.keys, this.btn.read.valor.redirect, data));\r\n break\r\n case 'update':\r\n this.router.navigateByUrl(this.aplyKeys(this.crudConfig.tablero!.keys, this.btn.update.valor.redirect, data));\r\n break\r\n case 'delete':\r\n this.router.navigateByUrl(this.aplyKeys(this.crudConfig.tablero!.keys, this.btn.delete.valor.redirect, data));\r\n break\r\n default:\r\n break\r\n }\r\n }\r\n\r\n aplyKeys(keys: { key: string, scope?: string }[], endpoint: string, data?: any) {\r\n keys.forEach(key => {\r\n switch (key.key) {\r\n case '@ndoc':\r\n endpoint = endpoint.replace(key.key, this.user?.UsuarioSistema?.NDOC || '')\r\n break;\r\n case '@tdoc':\r\n endpoint = endpoint.replace(key.key, this.user?.UsuarioSistema?.TDOC || '')\r\n break;\r\n case '@idKatios':\r\n endpoint = endpoint.replace(key.key, this.idKatios)\r\n break;\r\n default:\r\n if (endpoint.includes(key.key) && data) endpoint = endpoint.replace(key.key, jsonpath.query(data, key?.scope || '')[0]);\r\n break;\r\n }\r\n });\r\n return endpoint;\r\n }\r\n\r\n execAction(params: any) {\r\n switch (params.action) {\r\n case 'redirect':\r\n this.router.navigateByUrl(this.aplyKeys(this.crudConfig.tablero!.keys, params.link, this.itemSelected)).then(()=>{\r\n if (params.reload)\r\n window.location.reload()}\r\n )\r\n break;\r\n default:\r\n this.onSelectAction.emit({ data: _.cloneDeep(this.itemSelected), params })\r\n break;\r\n }\r\n }\r\n}\r\n","<div class=\"card\">\r\n <p-toolbar styleClass=\"mb-4 gap-2\" *ngIf=\"btn.create\">\r\n <ng-template pTemplate=\"left\">\r\n <button 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 *ngIf=\"crudConfig?.tablero?.columns\" #dt [columns]=\"crudConfig.tablero.columns\" [value]=\"data\" [rowHover]=\"true\" [rows]=\"10\" [paginator]=\"true\"\r\n [totalRecords]=\"data.length\" [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ón</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\" let-index=\"rowIndex\">\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 *ngIf=\"items.length > 1\" icon=\"pi pi-align-justify\" [model]=\"items\" appendTo=\"body\"\r\n (onDropdownClick)=\"itemSelected = rowData\"></p-splitButton>\r\n <div *ngIf=\"items.length <= 1\">\r\n <button *ngFor=\"let item of items\" pButton pRipple [icon]=\"item.icon\" class=\"mr-2\"\r\n (click)=\"itemSelected = initialData[index]; item.command()\"></button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n</div>\r\n","import { Injectable, OnDestroy} from '@angular/core';\r\nimport { Message } from 'primeng/api';\r\nimport { BehaviorSubject, Subject} from 'rxjs';\r\nimport { SweetAlertOptions } from 'sweetalert2';\r\nimport * as jsonpath from 'jsonpath';\r\nimport { RequestChecking } from '../models/crud-config.model';\r\nimport { SfCrudService } from '../../sf-crud.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NotificationService{\r\n\r\n private _notificationAdded = new BehaviorSubject<Notification | undefined>(undefined);\r\n\r\n constructor(private sfCrudService: SfCrudService) {}\r\n\r\n addNotification(msg: Message | SweetAlertOptions, requestChecking?: RequestChecking){\r\n this._notificationAdded.next({msg, requestChecking})\r\n }\r\n\r\n notificationAdded$(){\r\n return this._notificationAdded.asObservable()\r\n }\r\n\r\n /**\r\n * Generates message using answerchecking\r\n * @param currentMsg Default message: Message | SweetAlertOptions\r\n * @param rta Resquest's response\r\n * @param answerChecking\r\n */\r\n generateMessage(currentMsg: Message | SweetAlertOptions | any, rta: any, requestChecking?: RequestChecking){\r\n if (requestChecking){\r\n if (requestChecking.statics) Object.assign(currentMsg, requestChecking.statics)\r\n //mapear los dinamicos\r\n if (requestChecking.dynamics){\r\n const dynamics: any = requestChecking.dynamics\r\n try{\r\n if (dynamics && typeof(rta) == \"string\") rta = JSON.parse(rta)\r\n if (requestChecking.parse) {\r\n let valueParsed = JSON.parse(jsonpath.query(rta, requestChecking.parse)[0])\r\n jsonpath.value(rta, requestChecking.parse, valueParsed)\r\n }\r\n if (dynamics) {\r\n for (const property in dynamics) {\r\n currentMsg[property] = jsonpath.query(rta, dynamics[property])[0];\r\n }\r\n }\r\n }catch(error){//es una respuesta sin JSON\r\n if (dynamics) currentMsg.detail = rta\r\n }\r\n }\r\n }\r\n\r\n return currentMsg;\r\n }\r\n\r\n genDefaultMessage(severity: \"success\" | \"error\", title: string | undefined, detail: string, requestChecking: RequestChecking | undefined): Message | SweetAlertOptions{\r\n let obj: Message | SweetAlertOptions = {title, text: detail, icon: severity,\r\n confirmButtonColor: this.sfCrudService.configEmpresa?.colors ? this.sfCrudService.configEmpresa?.colors?.button : \"#3085d6\",\r\n cancelButtonColor: this.sfCrudService.configEmpresa?.colors ? this.sfCrudService.configEmpresa?.colors?.button : \"#d33\"}\r\n\r\n if (requestChecking && requestChecking.useSwal && severity == \"error\")\r\n {\r\n obj.showCancelButton = true\r\n obj.confirmButtonText ='<i class=\"pi pi-check\"></i> Continuar'\r\n obj.cancelButtonText = '<i class=\"pi pi-times\"></i> Terminar'\r\n }\r\n\r\n if (!requestChecking || !requestChecking.useSwal){\r\n (obj as Message).severity = severity;\r\n (obj as Message).summary = title;\r\n (obj as Message).detail = detail;\r\n }\r\n return obj;\r\n }\r\n}\r\n\r\nexport class Notification{\r\n constructor(\r\n public msg: Message | SweetAlertOptions,\r\n public requestChecking: RequestChecking| undefined\r\n ){}\r\n}\r\n","import { AfterViewInit, Component, Input, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { StepService } from '../../shared/services/step.service';\r\n\r\n@Component({\r\n selector: 'app-step',\r\n templateUrl: './step.component.html',\r\n styleUrls: ['./step.component.css']\r\n})\r\nexport class StepComponent implements OnInit, AfterViewInit {\r\n\r\n\r\n @Input() items!: MenuItem[];\r\n activeIndex = 0;\r\n loading = false;\r\n nextMovement = 0;\r\n\r\n constructor(\r\n private router: Router,\r\n private stepService: StepService,\r\n private activatedRoute: ActivatedRoute,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.stepService.currentIndex$.subscribe((result) => {\r\n this.nextMovement = result\r\n this.router.navigate([this.items[result].routerLink], { relativeTo: this.activatedRoute, queryParamsHandling: \"preserve\" });\r\n this.moveScroll(this.nextMovement)\r\n this.activeIndex = result\r\n })\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.stepService.requestApproved$.subscribe((result) => {\r\n if (result){\r\n this.navigate()\r\n }\r\n this.loading = false;\r\n })\r\n this.moveScroll(this.nextMovement)\r\n }\r\n\r\n onactiveIndexChange($event: number){\r\n this.requestNaviagtion($event-this.activeIndex);\r\n }\r\n\r\n /**\r\n * Button solicitates permissions to change tab.\r\n * @param add steps to advance. If negative will go back\r\n */\r\n requestNaviagtion(add: number){\r\n this.loading = true;\r\n this.nextMovement = this.activeIndex + add;\r\n this.stepService.requestApproval = this.nextMovement;\r\n }\r\n\r\n private navigate(){\r\n if (this.nextMovement < this.items.length){\r\n this.activeIndex = this.nextMovement;\r\n this.router.navigate([this.items[this.nextMovement].routerLink], { relativeTo: this.activatedRoute, queryParamsHandling: \"preserve\" });\r\n }\r\n }\r\n\r\n\r\n moveScroll(nextIndex: number){\r\n let miDiv = document.getElementById(\"step-container\")!\r\n const steps = document.querySelector(\".p-steps ul[role='tablist']\");\r\n\r\n if (steps !== null){\r\n let i = 0\r\n let value = 0\r\n while (i < nextIndex) {\r\n const child = steps.children[i]\r\n value += child.clientWidth\r\n i++\r\n }\r\n miDiv.scrollLeft = value\r\n }\r\n }\r\n}\r\n","<div>\r\n <div id=\"step-container\">\r\n <p-steps #stepsComponent [model]=\"items\" [readonly]=\"false\" [activeIndex]=\"activeIndex\" (activeIndexChange)=\"onactiveIndexChange($event)\"></p-steps>\r\n </div>\r\n\r\n <div class=\"content\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n <div class=\"buttons-step\">\r\n <div >\r\n <button pButton *ngIf=\"activeIndex != 0\" icon=\"pi pi-arrow-left\" [disabled]=\"loading\"\r\n (click)=\"requestNaviagtion(-1)\"></button>\r\n </div>\r\n <span >\r\n <button pButton *ngIf=\"!(activeIndex + 1 >= items.length)\" icon=\"pi pi-arrow-right\" [disabled]=\"loading\"\r\n (click)=\"requestNaviagtion(1)\"></button>\r\n </span>\r\n <button pButton *ngIf=\"activeIndex >= items.length - 1\" label=\"Finalizar\" [disabled]=\"loading\" (click)=\"requestNaviagtion(0)\"\r\n [style]=\"{'margin-left': '10px'}\"></button>\r\n </div>\r\n</div>\r\n","import { Calendar } from \"primeng/calendar\";\r\n\r\nexport class Shema {\r\n type: string = '';\r\n subtype: string = '';\r\n config?: any;\r\n tooltip?: string;\r\n tooltipPosition?: string;\r\n properties?: any;\r\n enum?: any[];\r\n default?:any;\r\n validations?: any\r\n disabled?: boolean\r\n field?: any\r\n placeholder?: any\r\n unmask?: boolean\r\n autocomplete?: string\r\n showIcon?: boolean\r\n hide?: any\r\n locale?: string\r\n configuration = new ShemaConfig()\r\n touchUI: any\r\n format: any\r\n formatMoment?: string\r\n useGrouping?: boolean\r\n max: any\r\n min: any \r\n currency: any\r\n minFractionDigits: any\r\n trueValue: any\r\n falseValue: any\r\n allowCustomOption: boolean = false;\r\n}\r\n\r\n\r\nclass ShemaConfig {\r\n calendar?: Calendar\r\n}\r\n\r\n","import { Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { MessageService } from 'primeng/api';\r\n\r\n@Component({\r\n selector: 'sf-file-upload',\r\n templateUrl: './file-upload.component.html',\r\n styleUrls: ['./file-upload.component.css']\r\n})\r\nexport class FileUploadComponent implements OnInit, OnChanges {\r\n\r\n\r\n @Input() limit!: number;\r\n @Input() files: Archivo[] = [];\r\n @Input() loading = false;\r\n @Input() configName: string | undefined;\r\n @Input() accept: string = \"image/*,application/pdf\";\r\n @Output() onUpload = new EventEmitter<File[]>();\r\n @Output() onDeleteFile = new EventEmitter<number>();\r\n @ViewChild('fileUpload') fileUploader!: ElementRef;\r\n\r\n newFiles: File[] = [];\r\n private animationInterval: any;\r\n\r\n constructor(\r\n private messageSerice: MessageService) {\r\n window.addEventListener(\"paste\", (e: any) =>{\r\n if (e.clipboardData?.files && e.clipboardData.files.length > 0){\r\n this.appendFile(e.clipboardData.files[0]);\r\n }\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n appendFile(file: File){\r\n const allowedTypes = this.accept.split(\",\");\r\n const allowedFile = allowedTypes.some(pattern => {\r\n const regexObj = new RegExp(pattern);\r\n const match = regexObj.exec(file.type);\r\n return match ? match?.length > 0: false\r\n })\r\n\r\n if (allowedFile){\r\n const newFile = new File([file], this.getName(file), {type: file.type})\r\n if (this.limit == 1){\r\n this.newFiles = [newFile]\r\n }else this.newFiles.push(newFile)\r\n this.files.push({name: newFile.name, url: window.URL.createObjectURL(newFile)})\r\n }else{\r\n this.messageSerice.add({severity: \"warn\", detail: \"Tipo de archivo no válido\"})\r\n }\r\n\r\n }\r\n\r\n emitFiles(){\r\n this.loading = true;\r\n this.onUpload.emit(this.newFiles)\r\n }\r\n\r\n getName(file: File){\r\n let sName = \"\"\r\n\r\n let date: Date = new Date();\r\n if(this.configName !== undefined){\r\n let name = this.configName.split('|');\r\n name.forEach(item => {\r\n if (item.indexOf(\"DATE@\") != -1)\r\n sName += (moment(date)).format(item.split('@')[1]);\r\n else if(item.indexOf(\"@\") == -1)\r\n sName += item\r\n })\r\n let ext = this.getExt(file)\r\n sName += ext ? \".\" + ext: \"\"\r\n }\r\n else sName = file.name;\r\n return sName\r\n }\r\n getExt(file: File) {\r\n let ext = undefined\r\n let aux = file.name.split('.')\r\n if (aux.length > 0) ext = aux[aux.length - 1]\r\n return ext\r\n }\r\n\r\n appendFiles($event: any){\r\n if($event.target.files.length > 0){\r\n this.appendFile($event.target.files[0]);\r\n }\r\n if (this.limit == this.files.length) {\r\n this.stopAnimation()\r\n this.emitFiles()\r\n }\r\n else this.startAnimation()\r\n this.fileUploader.nativeElement.value = \"\";\r\n }\r\n\r\n dropFile(archivo: Archivo){\r\n this.files.forEach((f, index) => {\r\n if(f == archivo){\r\n this.files.splice(index, 1);\r\n this.onDeleteFile.emit(index)\r\n }\r\n });\r\n }\r\n\r\n\r\n openFile(archivo: Archivo) {\r\n window.open(archivo.url, '_blank');\r\n window.addEventListener('focus', () => URL.revokeObjectURL(archivo.url));\r\n }\r\n\r\n startAnimation() {\r\n const button = document.querySelector('.button-upload');\r\n if (button) {\r\n button.classList.add('animate-pulse');\r\n }\r\n }\r\n\r\n stopAnimation() {\r\n const button = document.querySelector('.button-upload');\r\n if (button) {\r\n button.classList.remove('animate-pulse');\r\n }\r\n }\r\n}\r\n\r\nexport class Archivo {\r\n public url! : string\r\n public name! : string\r\n}\r\n","<div id=\"screen\" #screen>\r\n <div class=\"fileUp\">\r\n <div class=\"botones\">\r\n <input type=\"file\" (change)=\"appendFiles($event)\" class=\"file-input\" #fileUpload multiple>\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-plus\" class=\"p-button-info\" (click)=\"fileUpload.click()\"\r\n [disabled]=\"limit == files.length\" [loading]=\"loading\"></button>\r\n <button *ngIf=\"limit != 1\" pButton pRipple type=\"button\" icon=\"pi pi-upload\" class=\"button-upload p-button-info\"\r\n (click)=\"emitFiles()\" [disabled]=\"files.length == 0 || loading\" [loading]=\"loading\"></button>\r\n </div>\r\n\r\n <hr>\r\n <div class=\"imgs\">\r\n <ul>\r\n <li *ngFor=\"let file of files; let i = index\" [ngSwitch]=\"file.type\">\r\n <p>{{i+1}}. {{files[i].name}}</p>\r\n <div>\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-external-link\" class=\"p-button-rounded\"\r\n (click)=\"openFile(file)\"></button>\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-times\" class=\"p-button-rounded p-button-danger\"\r\n (click)=\"dropFile(file)\"></button>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef, ViewChildren, QueryList, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { GeneralService } from '../../shared/services/general.service';\r\nimport { Shema } from '../../shared/models/shema.model';\r\nimport { Operation, OverrideConfig, RequestChecking } from '../../shared/models/crud-config.model';\r\nimport { SfCrudService } from '../../sf-crud.service';\r\nimport { Tooltip } from 'primeng/tooltip';\r\nimport * as moment from 'moment';\r\nimport { Archivo } from '../file-upload/file-upload.component';\r\nimport { NotificationService } from '../../shared/services/notification.service';\r\nimport * as jsonpath from 'jsonpath';\r\n\r\n@Component({\r\n selector: 'sf-control',\r\n templateUrl: './control.component.html',\r\n styleUrls: ['./control.component.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ControlComponent implements OnInit, OnChanges {\r\n\r\n @Input() showTempValue:Boolean = false;\r\n @Input() control: Shema = new Shema();\r\n @Input() label: string = '';\r\n @Input() value: any;\r\n @Input() appendTo: any;\r\n @Output() setValue: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() sendObject: EventEmitter<any> = new EventEmitter<any>();\r\n @ViewChildren(Tooltip) tooltips!: QueryList <Tooltip>;\r\n\r\n private lenghtWord!: number;\r\n public isLoading: boolean = false;\r\n public dataFromService: any[] = [];\r\n public uploadedFiles: Archivo[] = [];\r\n public displayAdd: boolean = false;\r\n public tempValue: any;\r\n\r\n public uploadingFiles = false;\r\n\r\n\r\n constructor(\r\n private generalService: GeneralService,\r\n private crudService: SfCrudService,\r\n private cdr: ChangeDetectorRef,\r\n private notificationService: NotificationService\r\n ) { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.loadDefaultValues()\r\n if (this.control?.config?.depends){\r\n this.crudService.changeData$.subscribe(res => {\r\n if (res){\r\n let registro = this.crudService.getRegistro(this.crudService.index)\r\n let keyFound = registro.keys?.find(k => k.scope === res.scope\r\n && (this.control.config.depends as string[]).includes(k.key) &&\r\n (res.index === k.indexData || res.index === k.indexAnswer))\r\n if (keyFound?.overrideControl){\r\n let override = keyFound.overrideControl\r\n let completed = this.crudService.isConditionsCompleted(override.conditions ?? [], registro.conditions || [], this.crudService.getData(this.crudService.index))\r\n jsonpath.value(this.control, override.property, completed ? override.value : override.elseValue)\r\n this.value = this.getNewValue(override, completed);\r\n this.tempValue = null\r\n this.sendValue()\r\n if (this.control.subtype == 'dropdown' || this.control.subtype == 'multiselect') this.loadDataFromService()\r\n //this.cdr.detectChanges()\r\n }\r\n else if (keyFound) {\r\n this.value = null\r\n this.sendValue()\r\n this.loadDefaultValues()\r\n //this.cdr.detectChanges()\r\n }\r\n\r\n }\r\n })\r\n }\r\n }\r\n\r\n private getNewValue(override: OverrideConfig, completed: boolean): any {\r\n const newValue = completed ? override.newPropertyValue: override.elseNewPropertyValue;\r\n if (newValue && typeof(newValue) == \"string\"){\r\n if (!newValue.startsWith('$') && !newValue.startsWith('@')){\r\n return newValue;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n loadDefaultValues(){\r\n if (this.control?.config && this.control.subtype == 'dropdown' || this.control.subtype == 'multiselect') this.loadDataFromService();\r\n if (this.control?.subtype == 'autocomplete') this.extracValueFromControlBusqueda();\r\n if (this.value && this.control.type == 'date') this.instanceDate();\r\n if (this.control?.subtype == \"file\") {\r\n this.loadFiles();\r\n }\r\n if (this.control?.type == 'string') this.lenghtWord = this.value ? this.value.length : 0\r\n if (this.control?.subtype == 'switch') this.instanceBoolField()\r\n }\r\n instanceBoolField() {\r\n this.tempValue = this.value\r\n if (this.value == true && this.control.trueValue !== undefined) {\r\n this.value = this.control.trueValue\r\n this.sendValue()\r\n }\r\n else if (this.value == false && this.control.falseValue !== undefined) {\r\n this.value = this.control.falseValue\r\n this.sendValue()\r\n }\r\n }\r\n\r\n onChangeSwitch(){\r\n this.value = this.tempValue\r\n this.sendValue()\r\n }\r\n\r\n loadFiles(){\r\n this.isLoading = true\r\n this.uploadedFiles = []\r\n if (!this.value) {\r\n this.isLoading = false\r\n this.cdr.detectChanges()\r\n }\r\n else if (this.control.config.namePattern && this.control.type == \"string\") {\r\n let urls: string[] = this.control.config.separator ? this.value.split(\",\") : [this.value]\r\n urls.forEach(url => this.uploadedFiles.push({url:url, name:this.getNameFile(this.control.config.namePattern, url)}))\r\n this.isLoading = false\r\n this.cdr.detectChanges()\r\n }\r\n else if (this.control.config.namePattern && this.control.type == \"array\") {\r\n this.value.forEach((url:string) => this.uploadedFiles.push({url:url, name:this.getNameFile(this.control.config.namePattern, url)}))\r\n this.isLoading = false\r\n this.cdr.detectChanges()\r\n }\r\n }\r\n\r\n onDeleteFile(index: number){\r\n if ((!this.control.config?.limit || this.control.config?.limit == 1) && this.control.type == \"string\") this.value = null\r\n else if (this.control.type == \"array\") this.value.splice(index, 1)\r\n }\r\n\r\n getNameFile(namePattern: string, url: string): string {\r\n const regexObj = new RegExp(namePattern);\r\n const match = regexObj.exec(url);\r\n if (!match) throw new Error(\"El pattern no coincide con la url. \" + url);\r\n return match[0];\r\n }\r\n\r\n sendValue() {\r\n if (this.control.type == \"string\" && this.value == \"\" && this.control.config?.allowEmpty == false) this.value = null\r\n this.setValue.emit(this.value);\r\n }\r\n\r\n sendNumberValue($event: any){\r\n this.value = $event.value\r\n this.sendValue()\r\n }\r\n\r\n onInputEmail(force:boolean){\r\n const aux = Math.abs(this.lenghtWord - this.value.length)\r\n this.lenghtWord = this.value.length\r\n if (aux > 1 || force){\r\n const regex: RegExp = new RegExp(/([\\w\\.\\-_]+)?\\w+@[\\w-_]+(\\.\\w+){1,}/igm);\r\n if (regex.test(this.value)) this.sendValue();\r\n else {\r\n this.value = null;\r\n this.sendValue()\r\n this.notificationService.addNotification({ severity: 'warn', detail: 'El correo no es válido' }, this.primeChecking());\r\n }\r\n }\r\n }\r\n\r\n sendValueFromObject(event: any) {\r\n switch (typeof (this.control.config.optionValue)) {\r\n case 'object':\r\n this.control.config.optionValue.forEach((op: any) => op['value'] = event[op.key])\r\n this.setValue.emit(this.control.config.optionValue);\r\n break;\r\n default:\r\n this.setValue.emit(event[this.control.config.optionValue]);\r\n break;\r\n }\r\n }\r\n\r\n loadDataFromService() {\r\n this.isLoading = true;\r\n this.dataFromService = [];\r\n const op: Operation = this.control.config\r\n const url = this.crudService.getURL(op, undefined, undefined)\r\n this.generalService.genericRequest(this.control.config.method, url)\r\n .then((res: any) => {\r\n this.dataFromService = res.data;\r\n }).finally(() => {\r\n this.isLoading = false\r\n this.cdr.detectChanges()\r\n })\r\n }\r\n\r\n loadDataFromControlBusquedaService(event: any) {\r\n this.isLoading = true;\r\n const op: Operation = this.control.config\r\n let url = this.crudService.getURL(op)\r\n url = url.replace('@query', event?.query || '')\r\n this.generalService.genericRequest(this.control.config.method, url)\r\n .then((res: any) => {\r\n this.dataFromService = res.data;\r\n if (this.dataFromService?.length == 0 && this.control.allowCustomOption) {\r\n //agregar un campo que el usuario haya digitado\r\n let newItem: any = {}\r\n newItem[this.control.field] = this.tempValue\r\n newItem[this.control.config.optionValue] = this.tempValue\r\n this.dataFromService.push(newItem)\r\n }\r\n }).finally(() => {\r\n this.isLoading = false\r\n this.cdr.detectChanges()\r\n })\r\n }\r\n\r\n extracValueFromControlBusqueda(){\r\n const op: Operation = this.control.config\r\n let url = this.crudService.getURL(op)\r\n url = url.replace('@query', this.value)\r\n this.generalService.genericRequest(this.control.config.method, url)\r\n .then((res: any) => {\r\n if (res.data?.length == 1 && res.data[0][this.control.field]){\r\n this.tempValue = res.data[0]\r\n this.value = res.data[0][this.control.field]\r\n }\r\n else this.setDefaultValue()\r\n }).finally(() => {\r\n this.cdr.detectChanges()\r\n }).catch(() => {\r\n this.setDefaultValue()\r\n })\r\n }\r\n\r\n\r\n onUpload(event: File[]) {\r\n this.uploadingFiles = true\r\n const formData = new FormData();\r\n const path = this.control.config.path || 'Imagenes/CRUD/temp';\r\n formData.append('Ruta', `/${path}`);\r\n\r\n for (let i = 0; i < event.length; i++) formData.append(`uploadFile_${i}`, event[i]);\r\n const op: Operation = this.control.config\r\n const url = this.crudService.getURL(op)\r\n this.generalService.genericRequest(this.control.config.method, url, formData)\r\n .then(() => {\r\n let separator = this.control.config?.separator || \",\"\r\n //se asume que viene namePattern\r\n if (this.control.type == \"string\") this.value = event.map(f => `${this.generalService.jsonConfig.Server}${path}/${f.name}`).join(separator)\r\n else if (this.control.type == \"array\") this.value = event.map(f => `${this.generalService.jsonConfig.Server}${path}/${f.name}`)\r\n // SI NO TRAE namePattern, debe retornar un objeto con el nombre y href\r\n //else if (this.control.config.namePattern && this.control.type == \"array\") this.value = event.map(x => x.name)\r\n //else if (!this.control.config.namePattern && this.control.type == \"array\") this.value = event.map(f => `${this.generalService.jsonConfig.Server}${path}/${f.name}`)\r\n this.sendValue()\r\n let msg = !this.control.config.limit || this.control.config.limit == 1 ? \"Archivo cargado correctamente!\": \"Archivos cargados correctamente!\"\r\n this.notificationService.addNotification({ severity: 'info', detail: msg }, this.primeChecking())\r\n })\r\n .catch(() => this.notificationService.addNotification({ severity: 'error', detail: `Error al cargar el archivo!` }, this.primeChecking()))\r\n .finally(() => this.uploadingFiles = false)\r\n\r\n }\r\n\r\n refresData() {\r\n if (this.control?.config?.endpointtemp) this.loadDataFromService();\r\n }\r\n setDefaultValue(){\r\n this.tempValue = {}\r\n if (!this.control.config.optionLabel) console.error(\"No esta bien configurado el control \", this.control)\r\n else this.tempValue[this.control.config.optionLabel] = this.value ? this.value: \"\"\r\n\r\n }\r\n\r\n searchValue(value: string){\r\n const op: Operation = this.control.config\r\n let url = this.crudService.getURL(op, undefined, undefined)\r\n url = url.replace('@id', value)\r\n\r\n\r\n this.generalService.genericRequest(this.control.config.method, url)\r\n .then((res: any) => {\r\n if (res?.data?.length > 0){\r\n this.sendObject.emit({ data: res.data[0], optionValue: this.control.config.optionValue } )\r\n }else{\r\n this.notificationService.addNotification({severity: 'warn', detail:`Valor no encontrado.`}, this.primeChecking())\r\n this.sendObject.emit({ data: null, optionValue: this.control.config.optionValue } )\r\n }\r\n })\r\n .catch(err=> {\r\n this.notificationService.addNotification({severity: 'error', detail:`Error al consumir el servicio.`},this.primeChecking())\r\n })\r\n }\r\n\r\n primeChecking(){\r\n return new RequestChecking(undefined, undefined, false, undefined, undefined, false, undefined)\r\n }\r\n\r\n instanceDate(){\r\n const format = (this.control as any).formatMoment\r\n\r\n if (this.value){\r\n if (typeof(this.value) == \"string\" && (this.value as string).includes(\"T\")) this.value = new Date(this.value)\r\n else if (typeof(this.value) == \"string\") this.value = moment(this.value, format).toDate();\r\n this.tempValue = moment(this.value).format(\"DD/MM/YYYY\")\r\n }else {\r\n this.tempValue = null\r\n this.value = null\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Cast tempValue to date\r\n */\r\n onChangeSDate(){\r\n const aux = moment(this.tempValue, \"DD/MM/YYYY\")\r\n if (aux.isValid()){\r\n this.value = aux.toDate();\r\n this.sendValue()\r\n }\r\n else {\r\n this.tempValue = null;\r\n this.notificationService.addNotification({ severity: 'warn', detail: 'La fecha no es válida' }, this.primeChecking())\r\n }\r\n }\r\n\r\n\r\n onChangeDate(){\r\n this.tempValue = moment(this.value).format(\"DD/MM/YYYY\")\r\n this.sendValue()\r\n }\r\n\r\n onTouchDescription() {\r\n try{\r\n this.tooltips.get(0)?.activate()\r\n }catch(ex){}\r\n\r\n }\r\n\r\n onUnTouchDescription() {\r\n try{\r\n this.tooltips.get(0)?.deactivate()\r\n }catch(ex){}\r\n}\r\n\r\n doFocusOut(){\r\n if (document.activeElement) {\r\n (document.activeElement as HTMLElement).blur();\r\n }\r\n this.cdr.detectChanges()\r\n }\r\n\r\n}\r\n","<p *ngIf=\"showTempValue && tempValue\">{{tempValue[control.field]}}</p>\r\n\r\n<div *ngIf=\"!showTempValue\" [ngSwitch]=\"control.type\" #cc class=\"control-container\">\r\n <div class=\"label-container\">\r\n <label [for]=\"label\">{{label}}</label>\r\n <i #tooltip *ngIf=\"control.tooltip\" class=\"pi pi-question-circle\"\r\n [tooltipPosition]=\"control.tooltipPosition || 'top'\" [pTooltip]=\"control.tooltip\"\r\n (touchstart)=\"onTouchDescription()\" (touchend)=\"onUnTouchDescription()\"></i>\r\n </div>\r\n\r\n <ng-container *ngSwitchCase=\"'string'\" >\r\n <ng-container [ngSwitch]=\"control.subtype\">\r\n <ng-container *ngSwitchCase=\"'input'\">\r\n <input pInputText [name]=\"label\" type=\"text\" [(ngModel)]=\"value\" (input)=\"sendValue()\"\r\n [disabled]=\"control.disabled || false\" [autocomplete]=\"control.autocomplete || 'off'\">\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'textarea'\">\r\n <textarea [rows]=\"control.config?.rows ? control.config.rows : 4\" [(ngModel)]=\"value\"\r\n (input)=\"sendValue()\" pInputTextarea [disabled]=\"control.config?.disabled || false\"\r\n [autoResize]=\"control.config?.autoresize || false\"></textarea>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'password'\">\r\n <input pInputText type=\"password\" [(ngModel)]=\"value\" (input)=\"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 [disabled]=\"control.disabled || false\" autocomplete=\"email\" (input)=\"onInputEmail(false)\"\r\n (focusout)=\"onInputEmail(true)\" (keyup.enter)=\"doFocusOut()\">\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 [disabled]=\"control.disabled || false\" autocomplete=\"tel-national\"\r\n [unmask]=\"control.unmask || false\" (onComplete)=\"sendValue()\"></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ón\" [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\"\r\n [optionValue]=\"control.field || control.config.optionValue\" appendTo=\"body\"\r\n placeholder=\"Seleccione una opció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\"\r\n (onChange)=\"sendValueFromObject($event)\" [optionLabel]=\"control.config.optionLabel\"\r\n appendTo=\"body\" placeholder=\"Seleccione una opción\"\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)\" [(ngModel)]=\"tempValue\"\r\n [disabled]=\"control.disabled || false\"></p-autoComplete>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'input:search'\">\r\n <div class=\"p-inputgroup\">\r\n <input type=\"text\" pInputText [(ngModel)]=\"value\" (focusout)=\"sendValue()\"\r\n (keyup.enter)=\"doFocusOut()\" />\r\n <button type=\"button\" pButton icon=\"pi pi-search\" (click)=\"searchValue(value)\"></button>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'file'\">\r\n <sf-file-upload *ngIf=\"!isLoading\" [accept]=\"control.config?.accept || 'image/*,application/pdf'\"\r\n [loading]=\"uploadingFiles\" [files]=\"uploadedFiles\" [configName]=\"control.config?.configName\"\r\n [limit]=\"control.config?.limit || 1\" (onUpload)=\"onUpload($event)\"\r\n (onDeleteFile)=\"onDeleteFile($event)\"></sf-file-upload>\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 <div class=\"p-col-12\">\r\n <div class=\"p-inputgroup\">\r\n <p-inputMask [(ngModel)]=\"tempValue\" mask=\"99/99/9999\" [placeholder]=\"control.placeholder\"\r\n (onComplete)=\"onChangeSDate()\" [disabled]=\"control.disabled || false\"></p-inputMask>\r\n <p-calendar [(ngModel)]=\"value\" class=\"only-icon\" [monthNavigator]=\"true\" [yearNavigator]=\"true\" yearRange=\"1900:2035\"\r\n [dateFormat]=\"control.format || 'yy-mm-dd'\" appendTo=\"body\" [disabled]=\"control.disabled || false\"\r\n [showOnFocus]=\"!control.hide\" [placeholder]=\"control.placeholder || 'aaaa-mm-dd'\"\r\n [touchUI]=\"control.touchUI || false\" [showIcon]=\"control.showIcon || false\" (onSelect)=\"onChangeDate()\"\r\n (onBlur)=\"onChangeDate()\"></p-calendar>\r\n </div>\r\n </div>\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\" (ngModelChange)=\"value = $event; sendValue()\" mode=\"decimal\" [minFractionDigits]=\"control.minFractionDigits || 0\"\r\n [min]=\"control.min || null\" [max]=\"control.max || null\" (onInput)=\"sendNumberValue($event)\"\r\n [prefix]=\"control.currency || '$ '\" [disabled]=\"control.disabled || false\"></p-inputNumber>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'decimal'\">\r\n <p-inputNumber [ngModel]=\"value\" mode=\"decimal\" (ngModelChange)=\"value = $event; sendValue()\" [min]=\"control.min || null\"\r\n [max]=\"control.max || null\" [minFractionDigits]=\"control.minFractionDigits || 0\"\r\n [locale]=\"control.locale || undefined\" [useGrouping]=\"control.useGrouping || false\"\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=\" %\" (ngModelChange)=\"value = $event; sendValue()\" (onInput)=\"sendValue()\" [min]=\"control.min || null\"\r\n [max]=\"control.max || null\" [minFractionDigits]=\"control.minFractionDigits || 2\"\r\n [locale]=\"control.locale || undefined\" [disabled]=\"control.disabled || false\"></p-inputNumber>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'decimal:search'\">\r\n <div class=\"p-inputgroup\">\r\n <input type=\"number\" pInputText [(ngModel)]=\"value\" (focusout)=\"sendValue()\"\r\n (keyup.enter)=\"doFocusOut()\" />\r\n <button type=\"button\" pButton icon=\"pi pi-search\" (click)=\"searchValue(value)\"></button>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'array'\">\r\n <ng-container [ngSwitch]=\"control.subtype\">\r\n <ng-container *ngSwitchCase=\"'file'\">\r\n <sf-file-upload *ngIf=\"!isLoading\" [loading]=\"uploadingFiles\" [files]=\"uploadedFiles\"\r\n [configName]=\"control.config?.configName\" [limit]=\"control.config?.limit || 1\"\r\n [accept]=\"control.config?.accept || 'image/*,application/pdf'\" (onUpload)=\"onUpload($event)\"\r\n (onDeleteFile)=\"onDeleteFile($event)\"></sf-file-upload>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'multiselect'\">\r\n <p-multiSelect [options]=\"dataFromService\" [(ngModel)]=\"value\" (onChange)=\"sendValue()\"\r\n [optionLabel]=\"control.config?.optionLabel\" [optionValue]=\"control.config?.optionValue\"\r\n [placeholder]=\"control.config?.placeholder\"\r\n [display]=\"control.config?.display || 'chip'\"></p-multiSelect>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'boolean'\">\r\n <ng-container [ngSwitch]=\"control.subtype\">\r\n <ng-container *ngSwitchCase=\"'switch'\">\r\n <p-inputSwitch [(ngModel)]=\"tempValue\" (onChange)=\"onChangeSwitch()\" [id]=\"label\"\r\n [trueValue]=\"control?.trueValue !== undefined ? control?.trueValue: null\"\r\n [falseValue]=\"control?.falseValue !== undefined ? control?.falseValue: null\"></p-inputSwitch>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</div>\r\n","import { Component, Input, OnChanges, OnInit, QueryList, SimpleChanges, ViewChildren } from '@angular/core';\r\n\r\nimport { Message, MessageService } from 'primeng/api';\r\nimport * as jsonpath from 'jsonpath';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { Shema } from '../../shared/models/shema.model';\r\nimport { ChangeData, Loading, SfCrudService } from '../../sf-crud.service';\r\nimport { ConfigRegistro } from '../../shared/models/crud-config.model';\r\nimport { StepService } from '../../shared/services/step.service';\r\nimport { Simulador } from 'sf-simulador';\r\nimport * as _ from \"lodash\";\r\nimport { AdoService, JWTService, ProcesoADO } from 'sf-ado';\r\nimport { Tooltip } from 'primeng/tooltip';\r\n\r\n@Component({\r\n selector: 'app-form',\r\n templateUrl: './form.component.html',\r\n styleUrls: ['./form.component.css']\r\n})\r\nexport class FormComponent implements OnChanges, OnInit{\r\n @Input() uiEsquema: any;\r\n @Input() esquema!: Shema;\r\n @Input() data: any;\r\n @Input() isDialog= false;\r\n registro!: ConfigRegistro;\r\n values!: any[][];\r\n controls!: any[][];\r\n controlsLoaded = false;\r\n idKatios!: string;\r\n visible!: boolean[][];\r\n isMobile = false;\r\n urlADO?: string;\r\n proceso: ProcesoADO | undefined;\r\n private loading!:Loading;\r\n\r\n @ViewChildren(Tooltip) tooltips!: QueryList <Tooltip>;\r\n\r\n\r\n constructor(\r\n private messageService: MessageService,\r\n private crudService: SfCrudService,\r\n private domSanitizer: DomSanitizer,\r\n private stepService: StepService,\r\n private adoService: AdoService,\r\n private jwtService: JWTService\r\n ) {\r\n this.loading = {inProgress: true, target: undefined};\r\n if (window.innerWidth <= 768) this.isMobile = true\r\n window.addEventListener('resize', () => {\r\n if (window.innerWidth <= 768) this.isMobile = true\r\n });\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.buildControls()\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n try {\r\n this.jwtService.idKatios = this.crudService.idKatios\r\n this.jwtService.servidorIntegraciones = this.crudService.environment.ServidorIntegraciones\r\n this.adoService.servidorIntegraciones = this.crudService.environment.ServidorIntegraciones\r\n this.idKatios = this.crudService.idKatios\r\n this.stepService.requestApproved$.subscribe((approved) => {\r\n if (!this.isDialog && approved){\r\n this.uiEsquema = this.crudService.getUIEsquema(this.stepService.currentIndex)\r\n this.esquema = this.crudService.getEsquema(this.stepService.currentIndex)\r\n this.data = this.crudService.getData(this.stepService.currentIndex);\r\n this.registro = this.crudService.getRegistro(this.stepService.currentIndex)\r\n this.buildControls();\r\n }\r\n })\r\n } catch (error) {\r\n console.error(error)\r\n }\r\n }\r\n\r\n emitLoadingForm($event: boolean){\r\n this.loading.inProgress = $event\r\n Promise.resolve().then(() => this.crudService.formLoading = this.loading)//si no se usa asi el enproceso totea con el simulador\r\n }\r\n\r\n\r\n\r\n buildControls(){\r\n this.visible = []\r\n this.controlsLoaded = false;\r\n this.controls = []\r\n this.values = []\r\n this.uiEsquema.elements.forEach((layout: any, i: number) => {\r\n let isVisible = layout.conditions ? this.crudService.isConditionsCompleted(layout.conditions, this.registro.conditions || [], this.data): true\r\n this.visible.push(layout.elements? layout.elements.map(() => isVisible): [isVisible])\r\n this.controls.push([])\r\n this.values.push([])\r\n\r\n layout.elements?.forEach((element: any, j: number) => {\r\n if (element.conditions) this.visible[i][j] = this.crudService.isConditionsCompleted(element.conditions, this.registro.conditions || [], this.data)\r\n\r\n if (element.ngStyle && typeof(element.ngStyle) == \"string\") element.ngStyle = JSON.parse(element.ngStyle)\r\n if (element.url){\r\n this.controls[i].push(undefined)\r\n let url = this.crudService.applyStringKeys(element.url)\r\n this.values[i].push(this.domSanitizer.bypassSecurityTrustResourceUrl(url))\r\n }\r\n else if (!element.scope){\r\n this.controls[i].push(undefined)\r\n this.values[i].push(undefined)\r\n }else{\r\n this.controls[i].push(this.crudService.getControl(element.scope, this.esquema))\r\n this.controls[i][j].scope = element.scope\r\n this.values[i].push(this.crudService.getValue(element.scope, this.data))\r\n }\r\n\r\n });\r\n });\r\n this.controlsLoaded = true;\r\n let idProceso = this.data.ADO?.dataProceso?.idProceso\r\n if (idProceso && this.proceso?.id != idProceso) this.refreshIntegracion(idProceso)\r\n }\r\n\r\n refreshIntegracion(idProceso: number){\r\n this.emitLoadingForm(true)\r\n return Promise.all([\r\n this.adoService.getProceso(idProceso).then((proceso) => {\r\n this.proceso = proceso\r\n this.data.ADO.proceso = this.proceso\r\n })\r\n ])\r\n .finally(() => this.emitLoadingForm(false))\r\n }\r\n\r\n extracControlFromTableElements(i:any, j:any, col:any){\r\n const property = this.controls[i][j].properties[col.col];\r\n return property\r\n }\r\n\r\n extracValueFromTableElements(i:any, j:any, k:any, col:any){\r\n const value = this.values[i][j][k][col.col];\r\n return value\r\n }\r\n\r\n setValue(value: any, scope: any, i: number, j: number) {\r\n scope = scope.replaceAll('..properties', '')\r\n if (scope) {\r\n let control = this.controls[i][j]\r\n this.values[i][j] = value;\r\n jsonpath.value(this.data, scope, value);\r\n this.crudService.changeData = new ChangeData(value, scope, this.crudService.index)\r\n this.uiEsquema.elements.forEach((layout: any, iLayout: number) => {\r\n if (layout.conditions){\r\n let isVisible = this.crudService.isConditionsCompleted(layout.conditions, this.crudService.getRegistro(this.crudService.index).conditions || [], this.data)\r\n if(layout.elements) this.visible[iLayout] = layout.elements.map(() => isVisible)\r\n else this.visible[iLayout][0] = isVisible\r\n }\r\n\r\n layout.elements?.forEach((element: any, indexEl: number) => {\r\n if (element.conditions){\r\n this.visible[iLayout][indexEl] = this.crudService.isConditionsCompleted(element.conditions, this.registro.conditions || [], this.data)\r\n }\r\n })\r\n })\r\n control.applyKeys?.forEach((i: number) => {\r\n let key = this.registro.keys ? this.registro.keys[i] : undefined\r\n if (key) this.crudService.applyKey(key, this.registro, key.indexData ? this.crudService.getData(key.indexData) : this.data)\r\n });\r\n this.buildControls()\r\n }\r\n this.crudService.applyValuesOnEvent('onChange', this.esquema, undefined, this.data);\r\n }\r\n\r\n\r\n sendNotification(message: Message) {\r\n this.messageService.add(message)\r\n }\r\n\r\n applyValuesFromObject(event: any) {\r\n if (event.optionValue){\r\n for (let i = 0; i < event.optionValue.length; i++) {\r\n const optionVal = event.optionValue[i];\r\n const newVal = event.data ? this.aplyFormatValue(optionVal.scope, event.data[optionVal.key]): null;\r\n jsonpath.value(this.data, optionVal.scope.replace('.properties',''), this.aplyFormatValue(optionVal.scope, event.data[optionVal.key]))\r\n this.setValueByScope(optionVal.scope, newVal)\r\n }\r\n }\r\n }\r\n\r\n setValueByScope(scope: string, newVal: any){\r\n for (let i = 0; i < this.controls.length; i++) {\r\n const row = this.controls[i];\r\n row.forEach((el, j) => {\r\n if (el.scope && el.scope.replace('.properties','')== scope.replace('.properties','')){\r\n this.values[i][j] = newVal\r\n }\r\n })\r\n }\r\n }\r\n\r\n aplyFormatValue(scope: string, value: any) {\r\n const control = jsonpath.query(this.esquema, scope)[0]\r\n let resp;\r\n switch (control.type) {\r\n case 'date':\r\n resp = new Date(`${value}`)\r\n break;\r\n case 'numeric':\r\n resp = +value\r\n break;\r\n default:\r\n resp = value\r\n break;\r\n }\r\n return resp\r\n }\r\n\r\n editRow(element: any, data: any, index: number) {\r\n this.stepService.addCustomChildrenEvent(\"onClickedEditButton\", {element, data, index})\r\n }\r\n\r\n deleteRow(element: any, index: number) {\r\n this.stepService.addCustomChildrenEvent(\"onClickedDeleteButton\", {element, index})\r\n }\r\n\r\n addObjectArray(element: any) {\r\n this.stepService.addCustomChildrenEvent(\"onClickedAddButton\", {element})\r\n }\r\n\r\n onStateDocument(state: string){\r\n this.data.pdf.signed = state.toUpperCase() == \"FIRMADO\"\r\n }\r\n\r\n onSimuladorChange($event: Simulador) {\r\n Promise.resolve().then(() => Object.assign(this.data, $event))\r\n }\r\n\r\n goToADO(){\r\n let url = window.location.href;\r\n let callback = url.split('?')[0] + `?id=${this.data.idForm}`;\r\n let idProceso = this.data.ADO.dataProceso?.idProceso\r\n let dataProceso = this.data.ADO.dataProceso\r\n dataProceso.ctivo = this.data.idForm\r\n //this.data.ADO.idTransaction = null\r\n //this.data.ADO.idProceso = null\r\n if (idProceso){\r\n window.location.href = `${this.crudService.environment.WebUtilities}GWV/ADO/${this.crudService.idKatios}?id=${idProceso}`\r\n window.location.reload();\r\n }\r\n else if (dataProceso){\r\n window.location.href = `${this.crudService.environment.WebUtilities}GWV/ADO/${this.crudService.idKatios}?dataProceso=${btoa(JSON.stringify(dataProceso))}&callback=${encodeURIComponent(callback)}`\r\n window.location.reload();\r\n }\r\n }\r\n onTouchDescription(id: string, alignRight=true) {\r\n const foundTooltip = this.tooltips.find(tooltip => tooltip.el.nativeElement.id === id)!;\r\n try{\r\n foundTooltip.activate();\r\n alignRight ? foundTooltip.alignRight(): foundTooltip.alignTop();\r\n }catch(ex){}\r\n }\r\n\r\n onUnTouchDescription(descripcion: string) {\r\n const foundTooltip = this.tooltips.find(tooltip => tooltip.el.nativeElement.id === descripcion)!;\r\n try{\r\n foundTooltip.deactivate();\r\n }catch(ex){}\r\n }\r\n\r\n copyToClipboard(idProceso: string){\r\n let url = `${this.crudService.environment.WebUtilities}GWV/ADO/${this.crudService.idKatios}?id=${idProceso}`\r\n navigator.clipboard.writeText(url)\r\n }\r\n}\r\n","<div *ngIf=\"controlsLoaded\" class=\"frm-container\">\r\n <div *ngFor=\"let element of uiEsquema.elements; let i = index\" [class]=\"element?.class\" #a>\r\n <ng-container [ngSwitch]=\"element.type\" *ngIf=\"visible[i][0]\">\r\n <div class=\"label\" *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; let j =index\" [class]=\"el?.class\">\r\n <ng-container [ngSwitch]=\"el.type\" *ngIf=\"visible[i][j]\">\r\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"controls[i][j]\" [label]=\"el.label\"\r\n [value]=\"values[i][j]\" (setValue)=\"setValue($event, el.scope, i, j)\"\r\n (sendNotification)=\"sendNotification($event)\"\r\n (sendObject)=\"applyValuesFromObject($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; let j =index\" [class]=\"el?.class\">\r\n <ng-container [ngSwitch]=\"el.type\" *ngIf=\"visible[i][j]\">\r\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"controls[i][j]\" [label]=\"el.label\"\r\n [value]=\"values[i][j]\" (setValue)=\"setValue($event, el.scope, i, j)\"\r\n (sendNotification)=\"sendNotification($event)\"\r\n (sendObject)=\"applyValuesFromObject($event)\"></sf-control>\r\n <div *ngSwitchCase=\"'PDF'\" class=\"pdf\">\r\n <iframe [src]=\"values[i][j]\" frameborder=\"0\" allow=\"geolocation *; camera *;\"></iframe>\r\n </div>\r\n <div *ngSwitchCase=\"'PDF-SIGN'\">\r\n <sf-sign [allowDownload]=\"true\" [idkatios]=\"idKatios\" [tdoc]=\"data.pdf.tdoc\" [ndoc]=\"data.pdf.ndoc\"\r\n [idDocument]=\"data.pdf.id\" [typeDocument]=\"data.pdf.idDoc\"\r\n (stateDocument)=\"onStateDocument($event)\"></sf-sign>\r\n </div>\r\n <ng-container *ngSwitchCase=\"'SIMULADOR'\">\r\n <sf-simulador [simulador]=\"data\" [otherToolTips]=\"data.otherTooltips\"\r\n (simuladorChange)=\"onSimuladorChange($event)\" (enProceso)=\"emitLoadingForm($event)\"></sf-simulador>\r\n </ng-container>\r\n\r\n <div *ngSwitchCase=\"'ADO'\" class=\"buttons\">\r\n <p-button *ngIf=\"!data?.ADO?.dataProceso?.idProceso\" [ngStyle]=\"el?.ngStyle\" (click)=\"goToADO()\" label=\"Validar identidad\"></p-button>\r\n </div>\r\n <div *ngSwitchCase=\"'ADO'\">\r\n <div *ngIf=\"data?.ADO?.dataProceso?.idProceso\">\r\n <div class=\"data-ado-container\">\r\n <ng-container *ngIf=\"proceso\">\r\n <i *ngIf=\"proceso?.respuestaProceso?.EsExitoso === true\" pTooltip=\"Validado\" tooltipPosition=\"top\" id=\"Validado\" class=\"pi pi-user\" style=\"color: green\"\r\n (touchstart)=\"onTouchDescription('Validado', false)\" (touchend)=\"onUnTouchDescription('Validado')\"></i>\r\n <i *ngIf=\"proceso?.respuestaProceso?.EsExitoso === false\" pTooltip=\"No validado\" tooltipPosition=\"top\" id=\"No-Validado\" class=\"pi pi-user\" style=\"color: red\"\r\n (touchstart)=\"onTouchDescription('No-Validado', false)\" (touchend)=\"onUnTouchDescription('No-Validado')\"></i>\r\n <i *ngIf=\"!proceso?.respuestaProceso\" pTooltip=\"Sin validar\" tooltipPosition=\"top\" class=\"pi pi-user\" id=\"Sin-Validar\" style=\"color: gray\"\r\n (touchstart)=\"onTouchDescription('Sin-Validar', false)\" (touchend)=\"onUnTouchDescription('Sin-Validar')\"></i>\r\n </ng-container>\r\n <div class=\"buttons\">\r\n <button pButton icon=\"pi pi-external-link\" (click)=\"goToADO()\" pTooltip=\"Abrir\" [disabled]=\"!proceso\"></button>\r\n <button pButton icon=\"pi pi-copy\" (click)=\"copyToClipboard(proceso.id)\" pTooltip=\"Copiar\" [disabled]=\"!proceso\"></button>\r\n <button pButton icon=\"pi pi-refresh\" (click)=\"refreshIntegracion(proceso.id)\" pTooltip=\"Refrescar\" [disabled]=\"!proceso\"></button>\r\n </div>\r\n </div>\r\n <p class=\"result-ado\" *ngIf=\"proceso && !proceso.respuestaProceso && proceso.estado == 'PROCESANDO'\">Procesando</p>\r\n <p class=\"result-ado\" *ngIf=\"proceso && proceso.respuestaProceso && proceso.estado == 'TERMINADO'\">{{proceso.respuestaProceso.Detalle ?? proceso.respuestaProceso.Mensaje}}</p>\r\n </div>\r\n </div>\r\n <ng-container *ngSwitchCase=\"'Table'\">\r\n <p-table [value]=\"values[i][j]\" [columns]=\"controls[i][j].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\" [disabled]=\"controls[i][j].disabled === true\"></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>\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=\"'control'\">\r\n <sf-control [control]=\"extracControlFromTableElements(i, j, col)\" [label]=\"\"\r\n [value]=\"extracValueFromTableElements(i, j, rowIndex, col)\"\r\n (sendNotification)=\"sendNotification($event)\"\r\n (sendObject)=\"applyValuesFromObject($event)\"\r\n (setValue)=\"setValue($event, extracValueFromTableElements(i, j, rowIndex, col).scope, i, j)\"\r\n [showTempValue]=\"true\"\r\n >\r\n </sf-control>\r\n </ng-container>\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 *ngSwitchCase=\"'date:yyyy-mm-dd'\">\r\n <td>{{rowData[col.col] | date: 'yyyy-mm-dd'}}</td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date:dd/mm/yyyy'\">\r\n <td>{{rowData[col.col] | date: 'dd/MM/yyyy'}}</td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'boolean'\">\r\n <td>\r\n <i *ngIf=\"rowData[col.col]\" class=\"pi pi-check\"></i>\r\n <i *ngIf=\"!rowData[col.col]\" class=\"pi pi-times\"></i>\r\n </td>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container>\r\n <td>\r\n <button pButton pRipple type=\"button\"\r\n (click)=\"editRow(el, rowData, rowIndex)\" icon=\"pi pi-pencil\"\r\n class=\"p-button-rounded p-button-info mr-1\"></button>\r\n <button pButton pRipple type=\"button\" (click)=\"deleteRow(el, rowIndex)\" [disabled]=\"controls[i][j].disabled === true\"\r\n 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>\r\n </div>\r\n</div>\r\n\r\n<p-toast *ngIf=\"isDialog\"></p-toast>","import { Component, HostBinding, Input, OnChanges, OnDestroy, OnInit, SimpleChanges, TemplateRef, Output, EventEmitter } from '@angular/core';\r\n//import { ConfigRegistro, Operation, RequestChecking } from '../../shared/models/crud-config.model';\r\n//import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ConfigRegistro, CrudConfig, Key, Operation, RequestChecking } from '../../shared/models/crud-config.model';\r\n//import { DialogService, DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { GeneralService } from '../../shared/services/general.service';\r\nimport { MenuItem, MessageService } from 'primeng/api';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Shema } from '../../shared/models/shema.model';\r\nimport * as jsonpath from 'jsonpath';\r\nimport { Loading, SfCrudService } from '../../sf-crud.service';\r\nimport { SfPdfsignService } from 'sf-pdfsign';\r\nimport { SfSimuladorService } from 'sf-simulador';\r\nimport { Condition } from '../../shared/models/Conditions.model';\r\nimport { StepService } from '../../shared/services/step.service';\r\nimport * as _ from \"lodash\";\r\nimport Swal, { SweetAlertOptions } from 'sweetalert2';\r\nimport { NotificationService } from '../../shared/services/notification.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'sf-registro',\r\n templateUrl: './registro.component.html',\r\n providers: [MessageService],\r\n entryComponents: [RegistroComponent],\r\n styleUrls: ['./registro.component.css']\r\n})\r\nexport class RegistroComponent implements OnChanges, OnInit, OnDestroy{\r\n\r\n @HostBinding(\"style.--primary-color\") color!: string;\r\n @HostBinding(\"style.--secondary-color\") color2!: string;\r\n @HostBinding(\"style.--button-color\") colorButton!: string;\r\n @Input() idKatios: string = '';\r\n @Input() trx: string = '';\r\n @Input() id: string = '';\r\n @Input() user: any;\r\n @Input() dataExt: any;\r\n @Input() ids: string[] = [];\r\n @Input() environment: any;\r\n @Input() buttonsFooterTemplate!: TemplateRef<any>;\r\n @Output() sendData: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() onSubmit: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n\r\n public btnSubmit: any;\r\n notificationSubscription: any;\r\n subsToKillOnDestroy: Subscription[] = [];\r\n\r\n @Input() set idEntidad(value: string) {\r\n this.idForm = value\r\n }\r\n\r\n public idForm!: string;\r\n public isLocal: boolean = false;\r\n public displays: boolean[]=[];\r\n public firstLoad = true;\r\n public logo: string | undefined;\r\n public dialogElements: {data: any, uiEsquema: any, esquema: Shema, scope: string, index: number}[]=[];\r\n private dialogOperation!: \"c\" | \"u\";\r\n private loading!:Loading;\r\n items: MenuItem[] = [];\r\n\r\n constructor(\r\n private generalService: GeneralService,\r\n private activeRoute: ActivatedRoute,\r\n private messageService: MessageService,\r\n public sfCrudService: SfCrudService,\r\n private stepService: StepService,\r\n private sfPdfSignService: SfPdfsignService,\r\n private sfSimuladorService: SfSimuladorService,\r\n private notificationService: NotificationService,\r\n private router: Router\r\n ) {\r\n this.loading = {inProgress: true, target: undefined};\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n\r\n if (this.idKatios && this.idForm && this.environment && (changes[\"idKatios\"] || changes[\"idEntidad\"])){\r\n this.sfCrudService.ids = this.ids\r\n this.sfCrudService.idKatios = this.idKatios\r\n this.sfCrudService.environment = this.environment\r\n this.generalService.idKatios = this.idKatios\r\n this.generalService.environment = this.environment\r\n this.sfPdfSignService.setEnviroments(this.environment)\r\n this.sfSimuladorService.environments = this.environment\r\n this.sfSimuladorService.idKatios = this.idKatios\r\n\r\n this.loadConfigCrud();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.instanceSubsStepService();\r\n this.notificationSubscription = this.notificationService.notificationAdded$().subscribe(notification => {\r\n if(notification?.requestChecking?.useSwal){\r\n Swal.fire(notification.msg as SweetAlertOptions).then((res) => {\r\n if ((notification.msg as SweetAlertOptions).showCancelButton && res.isDismissed && notification.requestChecking?.cancelRedirect) {\r\n if (notification.requestChecking.cancelRedirect.toUpperCase() == \"INICIO\") this.sfCrudService.redirectToInicio()\r\n else window.location.href = notification.requestChecking.cancelRedirect\r\n } else if (res.isConfirmed && notification.requestChecking?.redirect) {\r\n if (notification.requestChecking.redirect.toUpperCase() == \"INICIO\") this.sfCrudService.redirectToInicio()\r\n else window.location.href = notification.requestChecking.redirect\r\n }\r\n })\r\n }\r\n else if (notification?.msg && notification.requestChecking?.redirect){\r\n this.messageService.add(notification.msg);\r\n if (notification.requestChecking.redirect.toUpperCase() == \"INICIO\") this.sfCrudService.redirectToInicio()\r\n else {\r\n let newURL = this.sfCrudService.getURLRedirect(notification.requestChecking.redirect)\r\n window.location.href = newURL\r\n window.location.reload()\r\n }\r\n }\r\n else if (notification?.msg){\r\n this.messageService.add(notification.msg);\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.notificationSubscription) {\r\n this.notificationSubscription.unsubscribe();\r\n }\r\n this.subsToKillOnDestroy.forEach(sub => sub.unsubscribe())\r\n this.stepService.reset()\r\n this.sfCrudService.reset()\r\n console.log(\"destroy\")\r\n }\r\n\r\n instanceSubsStepService(){\r\n this.subsToKillOnDestroy.push(this.stepService.customChildrenEvents$.subscribe((event: {name: string, data: any}) => {\r\n if (!event) return;\r\n switch (event.name.toUpperCase()) {\r\n case \"ONCLICKEDEDITBUTTON\":\r\n this.onClickedEditButton(event.data.element, event.data.data, event.data.index)\r\n break;\r\n case \"ONCLICKEDDELETEBUTTON\":\r\n this.deleteRow(event.data.element, event.data.index)\r\n break;\r\n case \"ONCLICKEDADDBUTTON\":\r\n this.onClickedAddButton(event.data.element)\r\n break;\r\n }\r\n }))\r\n\r\n this.subsToKillOnDestroy.push(this.stepService.requestApproval$.subscribe((value) =>{\r\n console.log(value)\r\n if (value?.desired != undefined) {\r\n if (value.desired < value.current) {\r\n this.stepService.requestApproved = true;\r\n this.sfCrudService.index = this.stepService.currentIndex\r\n this.scrollTop()\r\n }\r\n else{\r\n const operation =this.sfCrudService.getRegistro(this.indexCrud).operations.find(op => op.type.startsWith(this.sfCrudService.getTrx(this.indexCrud)))!\r\n if (!this.validateData(operation, this.sfCrudService.getData(this.indexCrud), this.sfCrudService.getRegistro(this.indexCrud).conditions || [])) this.stepService.requestApproved = false;\r\n else if(operation.method != null) this.uploadInfoStep(value)\r\n else if (operation.answerChecking){ //no tiene request, solo un mensaje\r\n this.stepService.requestApproved = true\r\n this.loading.inProgress = false;\r\n this.sfCrudService.formLoading = this.loading;\r\n this.notificationService.addNotification(this.notificationService.generateMessage(\r\n this.notificationService.genDefaultMessage(\"success\", undefined, \"Información subida correctamente\", operation.answerChecking), {}, operation.answerChecking),\r\n operation.answerChecking\r\n );\r\n this.sfCrudService.index = this.stepService.currentIndex\r\n this.scrollTop()\r\n }else{//no tiene nada configurado\r\n this.stepService.requestApproved = true\r\n this.sfCrudService.index = this.stepService.currentIndex\r\n this.scrollTop()\r\n }\r\n }\r\n }\r\n }))\r\n console.log(\"subs step service terminadas\")\r\n }\r\n\r\n uploadInfoStep(position: {current: number, desired: number}){\r\n this.loading.inProgress = true\r\n this.sfCrudService.formLoading = this.loading\r\n this.submit(position.current).then(() => {\r\n let tieneRedirect = this.sfCrudService.currentOperation?.answerChecking !== undefined && this.sfCrudService.currentOperation?.answerChecking?.redirect !== undefined\r\n console.log(this.items.length)\r\n if (this.items.length == 1) {\r\n this.stepService.requestApproved = false\r\n //this.stepService.desiredIndex = undefined\r\n this.sfCrudService.index = this.stepService.currentIndex\r\n }\r\n else if (!tieneRedirect){\r\n this.advance(position.current, position.desired, false)\r\n }\r\n this.scrollTop()\r\n })\r\n .catch(() => {\r\n this.stepService.requestApproved = false\r\n\r\n }).finally(() => {\r\n this.loading.inProgress = false\r\n this.sfCrudService.formLoading = this.loading})\r\n }\r\n\r\n onClickBtnSubmit() {\r\n this.stepService.requestApproval = this.indexCrud\r\n }\r\n\r\n loadConfigCrud() {\r\n this.loading.inProgress = true\r\n this.sfCrudService.formLoading = this.loading;\r\n this.sfCrudService.dataExt = this.dataExt\r\n this.sfCrudService.crudLoaded = false;\r\n if (this.loadSession()) {\r\n this.sfCrudService.crudLoaded = true;\r\n return;\r\n }\r\n\r\n this.generalService.getCrudByEntidad(this.idKatios, this.idForm)\r\n .then((res: any) => {\r\n console.log(\"crud cargado\")\r\n this.sfCrudService.uiEsquemas = res.uiEsquemas\r\n this.sfCrudService.esquemas = res.esquemas\r\n this.sfCrudService.registros = res.registros\r\n this.customizeCompany(res.uiEsquemas)\r\n this.sfCrudService.registros.forEach((_, i) => this.sfCrudService.setTrx(\"c\", i))\r\n this.loadData()\r\n .then(() => {\r\n this.setLabelSumbit()\r\n this.sfCrudService.dataset.forEach((data, i) => {\r\n if (this.activeRoute.snapshot.queryParams[\"_idGWVADO\"] && data.ADO?.dataProceso){\r\n data.ADO.dataProceso.idProceso = this.activeRoute.snapshot.queryParams[\"_idGWVADO\"]\r\n }\r\n if (this.activeRoute.snapshot.queryParams[\"_idADO\"] && data.ADO){\r\n data.ADO.idTransaction = this.activeRoute.snapshot.queryParams[\"_idADO\"]\r\n }\r\n this.sfCrudService.setDataSet(data, i)\r\n })\r\n })\r\n .finally(() => {\r\n let willExecuteRequest = this.advance(0, this.sfCrudService.uiEsquemas.length - 1, true)\r\n this.createSteps(res.uiEsquemas)\r\n this.sfCrudService.crudLoaded = true\r\n if (!willExecuteRequest){\r\n this.loading.inProgress = false;\r\n this.sfCrudService.formLoading = this.loading;\r\n }\r\n })\r\n }).catch((ex) => {\r\n console.error(ex)\r\n this.loading.inProgress = false;\r\n this.sfCrudService.formLoading = this.loading\r\n })\r\n\r\n }\r\n\r\n /**\r\n * Step will advance until esquema is not completed\r\n */\r\n advance(start: number, limit: number, executeRequest: boolean) {\r\n console.log(\"advance desde \", start, \" hasta \", limit)\r\n let i = start\r\n let op;\r\n let willExecuteRequest = false;\r\n let registro;\r\n while (i < limit){\r\n registro =this.sfCrudService.getRegistro(i)\r\n op = registro.operations.find(op => op.type.startsWith(this.sfCrudService.getTrx(i)))!\r\n if (!this.validateData(op, this.sfCrudService.getData(i), registro.conditions || [], false)) break;\r\n i++;\r\n }\r\n\r\n this.sfCrudService.index = i\r\n this.stepService.currentIndex = i\r\n this.stepService.desiredIndex = i\r\n console.log(\"advance\", i)\r\n this.stepService.requestApproved = true\r\n registro =this.sfCrudService.getRegistro(i)\r\n let dataCurrentStep = this.sfCrudService.getData(i)\r\n op = this.sfCrudService.getRegistro(i).operations.find(op => op.type.startsWith(this.sfCrudService.getTrx(i)))!\r\n if (executeRequest && (this.activeRoute.snapshot.queryParams[\"_idGWVADO\"] || this.activeRoute.snapshot.queryParams[\"_idADO\"]) //Viene de ADO\r\n && dataCurrentStep.ADO && this.validateData(op, dataCurrentStep, registro.conditions ?? [], false) //El step esta completo\r\n ) {\r\n console.log(\"advance with approval\", i)\r\n this.stepService.requestApproval = i\r\n willExecuteRequest = true\r\n }\r\n return willExecuteRequest;\r\n }\r\n loadSession() {\r\n const wasLoaded = this.sfCrudService.loadSession()\r\n if (wasLoaded){\r\n this.customizeCompany(this.sfCrudService.uiEsquemas)\r\n this.stepService.currentIndex = this.sfCrudService.index\r\n this.createSteps(this.sfCrudService.uiEsquemas)\r\n this.loading.inProgress = false;\r\n this.sfCrudService.formLoading = this.loading\r\n }\r\n return wasLoaded\r\n }\r\n\r\n customizeCompany(uiEsquemas: any[]) {\r\n this.sfCrudService.configEmpresa = uiEsquemas.find(ui => ui.general)?.general\r\n this.logo = this.sfCrudService.configEmpresa?.icons?.carga;\r\n if(this.sfCrudService.configEmpresa){\r\n if (this.sfCrudService.configEmpresa.colors?.main) this.color = this.sfCrudService.configEmpresa.colors.main\r\n if (this.sfCrudService.configEmpresa.colors?.secondary) this.color2 = this.sfCrudService.configEmpresa.colors.secondary\r\n if (this.sfCrudService.configEmpresa.colors?.button) this.colorButton = this.sfCrudService.configEmpresa.colors.button\r\n }\r\n if (!this.colorButton) this.colorButton = \"blue\";\r\n if (!this.color2) this.color2 = \"blue\";\r\n if (!this.color) this.color = \"blue\";\r\n }\r\n\r\n scrollTop(){\r\n window.scroll({\r\n top: 0,\r\n left: 0,\r\n behavior: 'smooth'\r\n });\r\n }\r\n\r\n createSteps(uiEsquemas: any[]){\r\n this.items = []\r\n uiEsquemas.forEach((uiEsq, index) => {\r\n if (uiEsq.step) this.items.push({label: uiEsq.step, routerLink: index, queryParamsHandling: \"preserve\"})\r\n else this.items.push({label: `paso ${index}`, routerLink: index})\r\n this.sfCrudService.getRegistro(index) //ver si tiene un change\r\n })\r\n }\r\n\r\n /**\r\n * Instancia todos los esquemas, y realiza los requests para traer la data de todos los step.\r\n * @param esquema\r\n * @param registro\r\n * @returns\r\n */\r\n loadData(){\r\n this.sfCrudService.esquemas.forEach((esquema, i) => {\r\n const op = this.sfCrudService.registros[i].operations.find(x => x.type.startsWith(this.sfCrudService.getTrx(i)))\r\n this.sfCrudService.setDataSet(this.sfCrudService.createObject(esquema, op), i)\r\n })\r\n console.log(\"loadData\")\r\n return Promise.all(this.sfCrudService.registros.map((registro, i) => this.ids.length > 0 ? this.getInfoRegistro(registro, i, this.ids[i]): Promise.resolve()))\r\n }\r\n\r\n getInfoRegistro(configRegistro: ConfigRegistro, index: number, id: any) {\r\n\r\n const op = configRegistro.operations.find(x => x.type == 'read');\r\n if (!op) return;\r\n const url = this.sfCrudService.getURL(op, index, id)\r\n return this.generalService.genericRequest(op.method, url)\r\n .then((res: any) => {\r\n let value = undefined\r\n if (res?.data){\r\n value = Array.isArray(res.data) ? res.data[0] : res.data\r\n }\r\n else value = Array.isArray(res) ? res[0]: res\r\n\r\n this.sfCrudService.applyObjectKeys(value, op.keysEsquema || [], configRegistro)\r\n if (op.changeTrx) op.changeTrx.forEach(x => this.sfCrudService.setTrx(x.trx, x.index))\r\n console.log(\"getInfoRegistro\", op.changeTrx)\r\n })\r\n .catch((error) => {\r\n console.log(error)\r\n let errorChecking;\r\n if (Array.isArray(op.errorChecking)) errorChecking = op.errorChecking[0]\r\n else errorChecking = op.errorChecking\r\n\r\n this.notificationService.addNotification(this.notificationService.generateMessage(\r\n this.notificationService.genDefaultMessage(\"error\", \"Formulario no cargado correctamente\", \"\", errorChecking), error.error, errorChecking),\r\n errorChecking\r\n );\r\n throw error\r\n })\r\n }\r\n\r\n\r\n setDefaultValue(value: any) {\r\n let data = null;\r\n if (value.key && this.sfCrudService.currentOperation?.keys){\r\n data = this.sfCrudService.getValueKey(this.sfCrudService.currentOperation.keys.find(k => k.key == value.key))\r\n value = data\r\n }else{\r\n switch (value) {\r\n case '@uactivo':\r\n data = `${this.user.UsuarioSistema.TDOC}-${this.user.UsuarioSistema.NDOC}`\r\n break;\r\n case '@tdocactivo':\r\n data = this.user.UsuarioSistema.TDOC\r\n break;\r\n case '@ndocactivo':\r\n data = this.user.UsuarioSistema.NDOC\r\n break;\r\n case '@hoy':\r\n data = new Date();\r\n break;\r\n default:\r\n data = value;\r\n break;\r\n }\r\n return data\r\n }\r\n \r\n }\r\n get indexCrud(){\r\n return this.stepService.currentIndex;\r\n }\r\n\r\n primeChecking(){\r\n return new RequestChecking(undefined, undefined, false, undefined, undefined, false, undefined)\r\n }\r\n\r\n submit(index: number) {\r\n this.sfCrudService.applyValuesOnEvent('onSubmit', this.sfCrudService.getEsquema(index), undefined, this.sfCrudService.getData(index))\r\n let registro = this.sfCrudService.getRegistro(index)\r\n console.log(\"trx actual: \" ,this.sfCrudService.getTrx(this.indexCrud))\r\n const operation = registro.operations.find(op => op.type.startsWith(this.sfCrudService.getTrx(this.indexCrud)))!\r\n let url = this.sfCrudService.getURL(operation, index)\r\n return this.generalService.genericRequest(operation.method, url, this.sfCrudService.getData(index))\r\n .then((res: any) => {\r\n if (res === null) res = {}\r\n res = this.sfCrudService.applyObjectKeys(res, operation.keysEsquema || [], registro)\r\n this.sfCrudService.setAnswers(res, this.indexCrud)\r\n if (operation.changeTrx) operation.changeTrx.forEach(x => this.sfCrudService.setTrx(x.trx, x.index))\r\n this.notificationService.addNotification(this.notificationService.generateMessage(\r\n this.notificationService.genDefaultMessage(\"success\", undefined, \"Información subida correctamente\", operation.answerChecking), res, operation.answerChecking),\r\n operation.answerChecking\r\n );\r\n return res;\r\n })\r\n .catch(err => {\r\n this.notificationService.addNotification(\r\n this.notificationService.generateMessage(this.notificationService.genDefaultMessage(\"error\", \"Error no controlado\", \"Por favor comunicarse con el admin\",operation.errorChecking), err.error, operation.errorChecking)\r\n , operation.errorChecking\r\n )\r\n throw new Error(err)\r\n })\r\n // return Promise.resolve({})\r\n }\r\n\r\n onCloseAddItem(index: number) {\r\n const scope = (this.dialogElements[index].scope as any).replaceAll('.properties', '')\r\n const item = _.cloneDeep(this.dialogElements[index].data);\r\n if (index == 0) {\r\n jsonpath.query(this.sfCrudService.getData(this.indexCrud), scope)[0].push(item)\r\n }\r\n else jsonpath.query(this.dialogElements[index - 1].data, scope)[0].push(item)\r\n }\r\n\r\n deleteRow(element: any, indexElement: number) {\r\n const scope = element.scope.replaceAll('.properties', '')\r\n let indexDialog = this.dialogElements.length - 1\r\n\r\n if (indexDialog == -1) (jsonpath.query(this.sfCrudService.getData(this.indexCrud), scope)[0] as any[]).splice(indexElement, 1)\r\n else {\r\n indexDialog = indexDialog == 0 ? 1: indexDialog;\r\n (jsonpath.query(this.dialogElements[indexDialog - 1].data, scope)[0] as any[]).splice(indexElement, 1)\r\n }\r\n this.sfCrudService.applyValuesOnEvent('onChange', this.sfCrudService.getEsquema(this.indexCrud), element.scope.replace('$..properties.', ''), this.sfCrudService.getData(this.indexCrud))\r\n }\r\n\r\n onCloseEditRow(index: number) {\r\n let scope = undefined\r\n try{\r\n const iArray = this.dialogElements[index].index\r\n scope = (this.dialogElements[index].scope as any).replaceAll('.properties', '')\r\n const item = _.cloneDeep(this.dialogElements[index].data);\r\n if (index == 0) {\r\n jsonpath.query(this.sfCrudService.getData(this.indexCrud), scope)[0][iArray] = item\r\n }\r\n else {\r\n jsonpath.query(this.dialogElements[index - 1].data, scope)[0][iArray] = item\r\n }\r\n }catch (error){\r\n console.error(error)\r\n console.log(this.dialogElements)\r\n console.log(index)\r\n console.log(scope)\r\n console.log(this.indexCrud)\r\n console.log(this.sfCrudService.getData(this.indexCrud))\r\n if (index == 0 && scope) {\r\n console.log(jsonpath.query(this.sfCrudService.getData(this.indexCrud), scope))\r\n }\r\n else if (scope) {\r\n console.log(jsonpath.query(this.dialogElements[index - 1].data, scope))\r\n }\r\n throw error\r\n }\r\n\r\n }\r\n\r\n validateData(operation: Operation, data: any, conditions: Condition[], printErrors:boolean=true) {\r\n if (operation?.validations?.type == 'local') {\r\n let err = this.sfCrudService.validateDataLocal(operation, data, conditions);\r\n if (err.length != 0 && printErrors) this.notificationService.addNotification({ severity: 'warn', detail: err.slice(0, 5).join('. ')}, this.primeChecking())\r\n return err.length == 0;\r\n }\r\n return true;\r\n }\r\n\r\n onConfirm() {\r\n this.messageService.clear('c');\r\n }\r\n\r\n onReject() {\r\n this.messageService.clear('c');\r\n }\r\n\r\n onClickedEditButton(element: any, data: any, index:number){\r\n this.dialogOperation = \"u\"\r\n const esquema = _.cloneDeep(this.sfCrudService.getControl(element.scope, this.sfCrudService.getEsquema(this.indexCrud)));\r\n esquema.type = \"object\"\r\n const currentElement = {\r\n data: _.cloneDeep(data),\r\n uiEsquema: _.cloneDeep(element.elements[0]),\r\n esquema: esquema,\r\n scope: element.scope,\r\n index: index\r\n }\r\n this.displays.push(true)\r\n this.dialogElements.push(currentElement)\r\n }\r\n\r\n onClickedAddButton(element: any){\r\n this.dialogOperation = \"c\"\r\n\r\n const esquema = _.cloneDeep(this.sfCrudService.getControl(element.scope, this.sfCrudService.getEsquema(this.indexCrud)));\r\n const op = this.sfCrudService.registros[this.indexCrud].operations.find(x => x.type.startsWith(this.sfCrudService.getTrx(this.indexCrud)))\r\n esquema.type = \"object\"\r\n const currentElement = {\r\n data: this.sfCrudService.createObject(esquema, op),\r\n uiEsquema: _.cloneDeep(element.elements[0]),\r\n esquema: esquema,\r\n scope: element.scope,\r\n index: 0\r\n }\r\n try{\r\n currentElement.data.id = this.sfCrudService.getValue(element.scope, this.sfCrudService.getData(this.indexCrud)).length + 1\r\n }catch(error){\r\n console.log(\"error agregando un id\")\r\n console.error(error)\r\n }\r\n this.displays.push(true)\r\n this.dialogElements.push(currentElement)\r\n }\r\n\r\n onCloseDialog(index: number){\r\n let validated = true;\r\n if (this.dialogElements[index].esquema.validations){\r\n const op = new Operation()\r\n op.validations = this.dialogElements[index].esquema.validations\r\n validated = this.validateData(op, this.dialogElements[index].data, this.sfCrudService.getRegistro(this.indexCrud).conditions || [])\r\n }\r\n console.log(this.dialogElements[index].esquema)\r\n if (validated){\r\n switch (this.dialogOperation) {\r\n case \"c\":\r\n this.onCloseAddItem(index)\r\n break;\r\n case \"u\":\r\n this.onCloseEditRow(index)\r\n break;\r\n }\r\n this.removeDialogItem()\r\n }\r\n\r\n }\r\n\r\n removeDialogItem(){\r\n this.dialogElements.pop()\r\n this.displays.pop()\r\n }\r\n\r\n setLabelSumbit() {\r\n let x: any = {\"c\": { label: 'Guardar', icon: 'pi pi-save' },\r\n \"u\": { label: 'Actualizar', icon: 'pi pi-sync' },\r\n \"d\": { label: 'Eliminar', icon: 'pi pi-trash' }\r\n }\r\n\r\n this.btnSubmit = x[this.sfCrudService.getTrx(0)]\r\n }\r\n\r\n back() {\r\n this.router.navigateByUrl(this.sfCrudService.registros[0].btnBack);\r\n }\r\n}\r\n","<div class=\"card\">\r\n <!--TODO convertir en template y editarla en -->\r\n <h5 *ngIf=\"sfCrudService.registros.length == 1\" class=\"card-header mb-2\" style=\"display: flex; justify-content: space-between;align-items: center;\">\r\n <span>{{sfCrudService.registros[0]?.label || idForm.replaceAll('_', ' ')}} {{ids.length > 0 ? '-' + ids[0] : ''}}</span>\r\n <button *ngIf=\"sfCrudService.registros[0]?.canBack\" pButton pRipple type=\"button\" icon=\"pi pi-arrow-left\" (click)=\"back()\"></button>\r\n </h5>\r\n <div *ngIf=\"items.length > 1\">\r\n <app-step [items]=\"items\"></app-step>\r\n </div>\r\n <div *ngIf=\"items.length == 1\">\r\n <app-form [data]=\"sfCrudService.dataset[0]\" [esquema]=\"sfCrudService.esquemas[0]\"\r\n [uiEsquema]=\"sfCrudService.uiEsquemas[0]\" [isDialog]=\"false\"></app-form>\r\n\r\n <!--renderizar un codigo personalizado desde el componente padre o renderizar el que se tiene por defecto-->\r\n <ng-container *ngTemplateOutlet=\"buttonsFooterTemplate || defaultButtonsFooterTemplate\"></ng-container>\r\n <ng-template #defaultButtonsFooterTemplate>\r\n <div class=\"card-footer mt-2\" *ngIf=\"btnSubmit\">\r\n <button pButton pRipple type=\"button\" [icon]=\"btnSubmit.icon\" [label]=\"btnSubmit.label\" (click)=\"onClickBtnSubmit()\"></button>\r\n </div>\r\n </ng-template>\r\n </div>\r\n</div>\r\n\r\n<span *ngFor=\"let item of dialogElements; let $index=index\">\r\n <p-dialog [(visible)]=\"displays[$index]\" [modal]=\"true\" [header]=\"'Detalle'\" [closable]=\"false\">\r\n <!-- TODO header = currentElement.element.label ? currentElement.element.label: -->\r\n <app-form [data]=\"item.data\" [esquema]=\"item.esquema\" [uiEsquema]=\"item.uiEsquema\" [isDialog]=\"true\"\r\n [id]=\"ids[indexCrud]\"></app-form>\r\n <ng-template pTemplate=\"footer\">\r\n <p-button icon=\"pi pi-times\" (onClick)=\"removeDialogItem()\" label=\"Cancelar\" ></p-button>\r\n <p-button icon=\"pi pi-check\" [disabled]=\"item.esquema.disabled === true\" (onClick)=\"onCloseDialog($index)\" label=\"Ok\" pAutoFocus\r\n [autofocus]=\"true\"></p-button>\r\n </ng-template>\r\n </p-dialog>\r\n</span>\r\n\r\n<p-toast *ngIf=\"dialogElements.length == 0\">\r\n <ng-template let-message pTemplate=\"message\">\r\n <div class=\"custom-toast\">\r\n <i class=\"pi\" [ngClass]=\"{\r\n 'pi-check-circle': message.severity === 'success',\r\n 'pi-info-circle': message.severity === 'info',\r\n 'pi-exclamation-triangle': message.severity === 'warn',\r\n 'pi-times-circle': message.severity === 'error'\r\n }\"></i>\r\n <div class=\"custom-toast-content\">\r\n <span class=\"custom-toast-detail\">{{message.detail}}</span>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</p-toast>\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-sf-crud',\r\n template: `\r\n <p>\r\n sf-crud works!\r\n </p>\r\n `,\r\n styles: [\r\n ]\r\n})\r\nexport class SfCrudComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { FormComponent } from './components/form/form.component';\r\nimport { RegistroComponent } from './components/registro/registro.component';\r\n\r\n\r\nconst routes: Routes = [\r\n {path: ':idStep',\r\n component: FormComponent\r\n }\r\n \r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class SfCrudRoutingModule { }","import { FormsModule } from '@angular/forms';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\n//=========================================================\r\n// PrimeNG Modules\r\n//=========================================================\r\nimport { AccordionModule } from 'primeng/accordion';\r\nimport { AutoCompleteModule } from 'primeng/autocomplete';\r\nimport { AvatarGroupModule } from 'primeng/avatargroup';\r\nimport { AvatarModule } from 'primeng/avatar';\r\nimport { BadgeModule } from 'primeng/badge';\r\nimport { BlockUIModule } from 'primeng/blockui';\r\nimport { BreadcrumbModule } from 'primeng/breadcrumb';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { CalendarModule } from 'primeng/calendar';\r\nimport { CardModule } from 'primeng/card';\r\nimport { CarouselModule } from 'primeng/carousel';\r\nimport { CascadeSelectModule } from 'primeng/cascadeselect';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { ChipModule } from 'primeng/chip';\r\nimport { ChipsModule } from 'primeng/chips';\r\nimport { ColorPickerModule } from 'primeng/colorpicker';\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\r\nimport { ContextMenuModule } from 'primeng/contextmenu';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { DividerModule } from 'primeng/divider';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { DynamicDialogModule } from 'primeng/dynamicdialog';\r\nimport { FieldsetModule } from 'primeng/fieldset';\r\nimport { FileUploadModule } from 'primeng/fileupload';\r\nimport { GalleriaModule } from 'primeng/galleria';\r\nimport { InplaceModule } from 'primeng/inplace';\r\nimport { InputMaskModule } from 'primeng/inputmask';\r\nimport { InputNumberModule } from 'primeng/inputnumber';\r\nimport { InputSwitchModule } from 'primeng/inputswitch';\r\nimport { InputTextareaModule } from 'primeng/inputtextarea';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { KnobModule } from 'primeng/knob';\r\nimport { ListboxModule } from 'primeng/listbox';\r\nimport { MegaMenuModule } from 'primeng/megamenu';\r\nimport { MenubarModule } from 'primeng/menubar';\r\nimport { MenuModule } from 'primeng/menu';\r\nimport {MessageModule} from 'primeng/message';\r\nimport { MultiSelectModule } from 'primeng/multiselect';\r\nimport { OrganizationChartModule } from 'primeng/organizationchart';\r\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\r\nimport { PanelMenuModule } from 'primeng/panelmenu';\r\nimport { PanelModule } from 'primeng/panel';\r\nimport { PasswordModule } from 'primeng/password';\r\nimport { ProgressBarModule } from 'primeng/progressbar';\r\nimport { RadioButtonModule } from 'primeng/radiobutton';\r\nimport { RatingModule } from 'primeng/rating';\r\nimport { RippleModule } from 'primeng/ripple';\r\nimport { ScrollPanelModule } from 'primeng/scrollpanel';\r\nimport { ScrollTopModule } from 'primeng/scrolltop';\r\nimport { SelectButtonModule } from 'primeng/selectbutton';\r\nimport { SidebarModule } from 'primeng/sidebar';\r\nimport { SkeletonModule } from 'primeng/skeleton';\r\nimport { SlideMenuModule } from 'primeng/slidemenu';\r\nimport { SliderModule } from 'primeng/slider';\r\nimport { SplitButtonModule } from 'primeng/splitbutton';\r\nimport { SplitterModule } from 'primeng/splitter';\r\nimport { StepsModule } from 'primeng/steps';\r\nimport { TableModule } from 'primeng/table';\r\nimport { TabMenuModule } from 'primeng/tabmenu';\r\nimport { TabViewModule } from 'primeng/tabview';\r\nimport { TagModule } from 'primeng/tag';\r\nimport { TerminalModule } from 'primeng/terminal';\r\nimport { TieredMenuModule } from 'primeng/tieredmenu';\r\nimport { TimelineModule } from 'primeng/timeline';\r\nimport { ToastModule } from 'primeng/toast';\r\nimport { ToggleButtonModule } from 'primeng/togglebutton';\r\nimport { ToolbarModule } from 'primeng/toolbar';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\nimport { TreeModule } from 'primeng/tree';\r\n\r\n//=========================================================\r\n// Componets\r\n//=========================================================\r\nimport { SfCrudComponent } from './sf-crud.component';\r\nimport { TableroComponent } from './components/tablero/tablero.component';\r\nimport { RegistroComponent } from './components/registro/registro.component';\r\nimport { ControlComponent } from './components/control/control.component';\r\nimport {FormComponent} from './components/form/form.component';\r\n\r\nimport { StepComponent } from './components/step/step.component';\r\nimport { SfCrudRoutingModule } from './sf-crud.routing.module';\r\nimport { SfPdfsignModule } from 'sf-pdfsign';\r\nimport { SfSimuladorModule } from 'sf-simulador';\r\nimport { FileUploadComponent } from './components/file-upload/file-upload.component';\r\nimport { SfAdoModule } from \"sf-ado\";\r\n\r\n@NgModule({\r\n declarations: [\r\n SfCrudComponent,\r\n TableroComponent,\r\n RegistroComponent,\r\n ControlComponent,\r\n StepComponent,\r\n FormComponent,\r\n FileUploadComponent\r\n ],\r\n imports: [\r\n SfCrudRoutingModule,\r\n SfPdfsignModule,\r\n SfSimuladorModule,\r\n AccordionModule,\r\n AutoCompleteModule,\r\n AvatarGroupModule,\r\n AvatarModule,\r\n BadgeModule,\r\n BlockUIModule,\r\n BreadcrumbModule,\r\n ButtonModule,\r\n CalendarModule,\r\n CardModule,\r\n CarouselModule,\r\n CascadeSelectModule,\r\n CheckboxModule,\r\n ChipModule,\r\n ChipsModule,\r\n ColorPickerModule,\r\n ConfirmDialogModule,\r\n ConfirmPopupModule,\r\n ContextMenuModule,\r\n DialogModule,\r\n DividerModule,\r\n DropdownModule,\r\n DynamicDialogModule,\r\n FieldsetModule,\r\n FileUploadModule,\r\n FormsModule,\r\n GalleriaModule,\r\n HttpClientModule,\r\n InplaceModule,\r\n InputMaskModule,\r\n InputNumberModule,\r\n InputSwitchModule,\r\n InputTextareaModule,\r\n InputTextModule,\r\n KnobModule,\r\n ListboxModule,\r\n MegaMenuModule,\r\n MenubarModule,\r\n MenuModule,\r\n MessageModule,\r\n MultiSelectModule,\r\n OrganizationChartModule,\r\n OverlayPanelModule,\r\n PanelMenuModule,\r\n PanelModule,\r\n PasswordModule,\r\n ProgressBarModule,\r\n RadioButtonModule,\r\n RatingModule,\r\n RippleModule,\r\n ScrollPanelModule,\r\n ScrollTopModule,\r\n SelectButtonModule,\r\n SidebarModule,\r\n SkeletonModule,\r\n SlideMenuModule,\r\n SliderModule,\r\n SplitButtonModule,\r\n SplitterModule,\r\n StepsModule,\r\n TableModule,\r\n TabMenuModule,\r\n TabViewModule,\r\n TagModule,\r\n TerminalModule,\r\n TieredMenuModule,\r\n TimelineModule,\r\n ToastModule,\r\n ToggleButtonModule,\r\n ToolbarModule,\r\n TooltipModule,\r\n TreeModule,\r\n SfAdoModule\r\n],\r\n exports: [\r\n SfCrudComponent,\r\n TableroComponent,\r\n RegistroComponent,\r\n ControlComponent\r\n ]\r\n})\r\nexport class SfCrudModule { }\r\n","/*\r\n * Public API Surface of sf-crud\r\n */\r\n\r\nexport * from './lib/components/tablero/tablero.component';\r\nexport * from './lib/components/registro/registro.component';\r\nexport * from './lib/components/control/control.component';\r\nexport * from './lib/sf-crud.component';\r\nexport * from './lib/components/form/form.component';\r\nexport * from './lib/sf-crud.module';\r\nexport * from './lib/sf-crud.service';\r\nexport * from './lib/shared/services/step.service';\r\nexport * from './lib/shared/services/notification.service';\r\nexport * from './lib/shared/models/crud-config.model';\r\nexport * from './lib/shared/models/Empresa.model';\r\nexport * from './lib/shared/models/shema.model';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i0","Injectable","jsonpath","BehaviorSubject","moment","Subject","EventEmitter","_","i1.GeneralService","i2","i3.SfCrudService","i4.StepService","i5","i6","i7","i8","i9","i10","i11","i12","Component","Input","Output","HostBinding","i1.SfCrudService","i2.StepService","i3","i4","ViewChild","i2.SfCrudService","i3.NotificationService","Tooltip","i7.FileUploadComponent","i13","i14","i15","i16","i17","ChangeDetectionStrategy","ViewChildren","i6.ControlComponent","Swal","i4.SfCrudService","i5.StepService","i8.NotificationService","MessageService","i9.StepComponent","i10.FormComponent","RouterModule","NgModule","SfPdfsignModule","SfSimuladorModule","AccordionModule","AutoCompleteModule","AvatarGroupModule","AvatarModule","BadgeModule","BlockUIModule","BreadcrumbModule","ButtonModule","CalendarModule","CardModule","CarouselModule","CascadeSelectModule","CheckboxModule","ChipModule","ChipsModule","ColorPickerModule","ConfirmDialogModule","ConfirmPopupModule","ContextMenuModule","DialogModule","DividerModule","DropdownModule","DynamicDialogModule","FieldsetModule","FileUploadModule","FormsModule","GalleriaModule","HttpClientModule","InplaceModule","InputMaskModule","InputNumberModule","InputSwitchModule","InputTextareaModule","InputTextModule","KnobModule","ListboxModule","MegaMenuModule","MenubarModule","MenuModule","MessageModule","MultiSelectModule","OrganizationChartModule","OverlayPanelModule","PanelMenuModule","PanelModule","PasswordModule","ProgressBarModule","RadioButtonModule","RatingModule","RippleModule","ScrollPanelModule","ScrollTopModule","SelectButtonModule","SidebarModule","SkeletonModule","SlideMenuModule","SliderModule","SplitButtonModule","SplitterModule","StepsModule","TableModule","TabMenuModule","TabViewModule","TagModule","TerminalModule","TieredMenuModule","TimelineModule","ToastModule","ToggleButtonModule","ToolbarModule","TooltipModule","TreeModule","SfAdoModule"],"mappings":"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"}