sf-crud 12.0.1-beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -0
- package/bundles/sf-crud.umd.js +1037 -0
- package/bundles/sf-crud.umd.js.map +1 -0
- package/esm2015/lib/components/control/control.component.js +35 -0
- package/esm2015/lib/components/registro/registro.component.js +160 -0
- package/esm2015/lib/components/tablero/tablero.component.js +95 -0
- package/esm2015/lib/sf-crud.component.js +26 -0
- package/esm2015/lib/sf-crud.module.js +329 -0
- package/esm2015/lib/sf-crud.service.js +14 -0
- package/esm2015/lib/shared/services/general.service.js +50 -0
- package/esm2015/lib/shared/services/models/crud-config.model.js +43 -0
- package/esm2015/lib/shared/services/models/shema.model.js +6 -0
- package/esm2015/public-api.js +9 -0
- package/esm2015/sf-crud.js +5 -0
- package/fesm2015/sf-crud.js +733 -0
- package/fesm2015/sf-crud.js.map +1 -0
- package/lib/components/control/control.component.d.ts +13 -0
- package/lib/components/registro/registro.component.d.ts +36 -0
- package/lib/components/tablero/tablero.component.d.ts +29 -0
- package/lib/sf-crud.component.d.ts +8 -0
- package/lib/sf-crud.module.d.ts +82 -0
- package/lib/sf-crud.service.d.ts +6 -0
- package/lib/shared/services/general.service.d.ts +13 -0
- package/lib/shared/services/models/crud-config.model.d.ts +36 -0
- package/lib/shared/services/models/shema.model.d.ts +6 -0
- package/package.json +18 -0
- package/public-api.d.ts +5 -0
- package/sf-crud.d.ts +5 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sf-crud.umd.js","sources":["../../../projects/sf-crud/src/lib/shared/services/models/shema.model.ts","../../../projects/sf-crud/src/lib/shared/services/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/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/lib/sf-crud.service.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 properties?: any;\r\n enum?: any[];\r\n default?:any;\r\n}\r\n\r\n","import { 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: string[] = [];\r\n endpoint: string = '';\r\n method: string = '';\r\n server: string = '';\r\n key: string = '';\r\n filters: string[] = [];\r\n}\r\n\r\nexport class ConfigRegistro {\r\n operations: Operations[] = [];\r\n btnBack: 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}\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}\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 __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 (_) 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: n === \"return\" } : 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","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\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, Input, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { GeneralService } from '../../shared/services/general.service';\nimport { ConfigTablero, CrudConfig } from '../../shared/services/models/crud-config.model';\n\n@Component({\n selector: 'sf-crudtablero',\n templateUrl: './tablero.component.html'\n})\nexport class TableroComponent implements OnInit {\n\n @Input() opciones: any[] = [];\n @Input() idEntidad: string = '';\n @Input() idKatios: string = '';\n\n public crudConfig: CrudConfig = new CrudConfig();\n public enProceso: boolean = false;\n public data: any[] = [];\n public btn: { create: any, read: any, update: any, delete: any } = { create: undefined, read: undefined, update: undefined, delete: undefined }\n\n constructor(\n private generalService: GeneralService,\n private router: Router\n ) { }\n\n ngOnInit(): void {\n this.loadConfigCrud()\n }\n\n loadConfigCrud() {\n this.enProceso = true;\n this.generalService.getCrudByEntidad(this.idKatios, this.idEntidad)\n .then(res => {\n this.crudConfig = res;\n this.getInfoTablero(this.crudConfig.tablero);\n this.loadOptions();\n })\n .catch(err => {\n console.log(err);\n this.enProceso = false;\n })\n }\n\n getInfoTablero(configTablero: ConfigTablero) {\n this.generalService.genericRequest(configTablero.method, configTablero.server, configTablero.endpoint)\n .then((res: any) => {\n this.data = res.data;\n this.enProceso = false;\n })\n .catch(err => {\n console.log(err);\n this.enProceso = false;\n })\n }\n\n loadOptions() {\n this.btn.create = this.opciones.find(x => x.label == 'Crear');\n this.btn.read = this.opciones.find(x => x.label == 'Visualizar');\n this.btn.update = this.opciones.find(x => x.label == 'Editar');\n this.btn.delete = this.opciones.find(x => x.label == 'Eliminar');\n }\n\n redirect(data: any, accion: string) {\n switch (accion) {\n case 'create':\n this.router.navigateByUrl(this.btn.create?.valor?.redirect || '');\n break;\n case 'read':\n this.router.navigateByUrl(this.btn.read.valor.redirect.replace('$id', data[this.crudConfig.tablero.key]));\n break\n case 'update':\n this.router.navigateByUrl(this.btn.update.valor.redirect.replace('$id', data[this.crudConfig.tablero.key]));\n break\n case 'delete':\n this.router.navigateByUrl(this.btn.delete.valor.redirect.replace('$id', data[this.crudConfig.tablero.key]));\n break\n default:\n break\n }\n }\n}\n","<p-blockUI [blocked]=\"enProceso\">\n <i class=\"pi pi-cog pi-spin\" style=\"font-size: 50px\"></i>\n</p-blockUI>\n\n<div class=\"card\" *ngIf=\"!enProceso\">\n <p-toolbar styleClass=\"mb-4 gap-2\">\n <ng-template pTemplate=\"left\">\n <button *ngIf=\"btn.create\" pButton pRipple [label]=\"btn.create.label\" [icon]=\"btn.create.icon\"\n class=\"p-button-success mr-2\" (click)=\"redirect(rowData, 'create')\"></button>\n </ng-template>\n </p-toolbar>\n <p-table #dt [columns]=\"crudConfig.tablero.columns\" [value]=\"data\" [rowHover]=\"true\" [rows]=\"10\" [paginator]=\"true\"\n [globalFilterFields]=\"crudConfig.tablero?.filters || []\" [tableStyle]=\"{'min-width': '75rem'}\"\n currentPageReportTemplate=\"Registro {first} al {last} de {totalRecords} {{idEntidad}}\"\n [showCurrentPageReport]=\"true\">\n <ng-template pTemplate=\"caption\">\n <div class=\"flex align-items-center justify-content-between\">\n <h5 class=\"m-0\">{{idEntidad}}</h5>\n <span class=\"p-input-icon-left\">\n <i class=\"pi pi-search\"></i>\n <input pInputText type=\"text\" (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\n placeholder=\"Buscar...\" />\n </span>\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th *ngFor=\"let col of columns\">\n {{col.label}}\n </th>\n <th>Acción</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\">\n <tr>\n <td *ngFor=\"let col of columns\">\n {{rowData[col.col]}}\n </td>\n <th>\n <button *ngIf=\"btn.read\" pButton pRipple [pTooltip]=\"btn.read.label\" [icon]=\"btn.read.icon\"\n class=\"p-button-rounded p-button-info mr-2\" (click)=\"redirect(rowData, 'read')\"></button>\n <button *ngIf=\"btn.update\" pButton pRipple [pTooltip]=\"btn.update.label\" [icon]=\"btn.update.icon\"\n class=\"p-button-rounded p-button-warning mr-2\" (click)=\"redirect(rowData, 'update')\"></button>\n <button *ngIf=\"btn.delete\" pButton pRipple [pTooltip]=\"btn.delete.label\" [icon]=\"btn.delete.icon\"\n class=\"p-button-rounded p-button-danger mr-2\" (click)=\"redirect(rowData, 'delete')\"></button>\n </th>\n </tr>\n </ng-template>\n </p-table>\n</div>","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'sf-control',\n templateUrl: './control.component.html'\n})\nexport class ControlComponent implements OnInit {\n\n @Input() control: any;\n @Input() label: string = '';\n @Input() value: any;\n @Output() setValue: EventEmitter<any> = new EventEmitter<any>();\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n sendValue() {\n this.setValue.emit(this.value);\n }\n\n}\n","<ng-container [ngSwitch]=\"control.type\">\n <ng-container *ngSwitchCase=\"'string'\">\n <label>{{label}}</label>\n <ng-container *ngIf=\"!control?.enum\">\n <input pInputText type=\"text\" [(ngModel)]=\"value\" (focusout)=\"sendValue()\">\n </ng-container>\n <ng-container *ngIf=\"control?.enum\">\n <p-dropdown [options]=\"control.enum\" [(ngModel)]=\"value\" (onChange)=\"sendValue()\" placeholder=\"Seleccione una opción\"></p-dropdown>\n </ng-container>\n </ng-container>\n</ng-container>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { GeneralService } from '../../shared/services/general.service';\nimport { ConfigRegistro, CrudConfig, Operations } from '../../shared/services/models/crud-config.model';\nimport * as jsonpath from 'jsonpath';\nimport { Shema } from '../../shared/services/models/shema.model';\nimport { MessageService } from 'primeng/api';\n\n\n@Component({\n selector: 'sf-registro',\n templateUrl: './registro.component.html',\n providers: [MessageService]\n})\nexport class RegistroComponent implements OnInit {\n\n @Input() idKatios: string = '';\n @Input() idEntidad: string = '';\n @Input() trx: string = '';\n @Input() id: string = '';\n\n public enProceso: boolean = false;\n public crudConfig: CrudConfig = new CrudConfig();\n public btnSubmit: any;\n public data: any;\n public configOperation: Operations = new Operations();\n\n constructor(\n private generalService: GeneralService,\n private router: Router,\n private messageSerice: MessageService,\n ) { }\n\n ngOnInit(): void {\n this.loadConfigCrud();\n this.setLabelSumbit();\n }\n\n loadConfigCrud() {\n this.enProceso = true;\n this.generalService.getCrudByEntidad(this.idKatios, this.idEntidad)\n .then(res => {\n this.crudConfig = res;\n if (this.trx != 'c') this.getInfoRegistro(this.crudConfig.registro);\n else {\n this.data = this.createObject(this.crudConfig.esquema);\n this.enProceso = false;\n }\n this.configOperation = this.crudConfig.registro.operations.find(x => x.type.startsWith(this.trx)) || new Operations();\n })\n .catch(err => {\n console.log(err);\n this.enProceso = false;\n })\n }\n\n setLabelSumbit() {\n if (this.trx == 'c') this.btnSubmit = { label: 'Guardar', icon: 'pi pi-save' }\n else if (this.trx == 'r') this.btnSubmit = undefined;\n else if (this.trx == 'u') this.btnSubmit = { label: 'Actualizar', icon: 'pi pi-sync' }\n else if (this.trx == 'd') this.btnSubmit = { label: 'Eliminar', icon: 'pi pi-trash' }\n\n }\n\n getInfoRegistro(configRegistro: ConfigRegistro) {\n let op = configRegistro.operations.find(x => x.type == 'read');\n let endpoint = op?.endpoint || '';\n endpoint = endpoint.replace('@idKatios', this.idKatios);\n endpoint = endpoint.replace('@id', this.id);\n this.generalService.genericRequest(op?.method || '', op?.server || '', endpoint)\n .then((res: any) => {\n this.data = res.data;\n this.enProceso = false;\n })\n .catch(err => {\n console.log(err);\n this.enProceso = false;\n })\n }\n\n back() {\n this.router.navigateByUrl(this.crudConfig.registro.btnBack);\n }\n\n getControl(scope: string) {\n return jsonpath.query(this.crudConfig.esquema, scope)[0];\n }\n\n getValue(scope: string) {\n return jsonpath.query(this.data, scope.replace('.properties', ''))[0];\n }\n\n setValue(value: any, scope: string) {\n jsonpath.value(this.data, scope.replace('.properties', ''), value);\n }\n\n createObject(esquema: Shema) {\n let object = {};\n switch (esquema.type) {\n case 'string':\n case 'number':\n return esquema?.default || null;\n case 'boolean':\n return esquema?.default || false;\n case 'object':\n for (const key in esquema?.properties) {\n Object.defineProperty(object, key, { value: this.createObject(esquema?.properties[key]), writable: true, enumerable: true, configurable: true })\n }\n break;\n default:\n break;\n }\n return object;\n }\n\n submit() {\n if (!this.validateData()) return;\n this.enProceso = true;\n let endpoint = this.configOperation.endpoint;\n endpoint = endpoint.replace('@idKatios', this.idKatios)\n endpoint = endpoint.replace('@id', this.id)\n this.generalService.genericRequest(this.configOperation.method, this.configOperation.server, endpoint, this.data)\n .then(() => {\n this.messageSerice.add({ severity: 'success', detail: `Proceso exitoso!` })\n setTimeout(() => {\n this.enProceso = false;\n this.back()\n }, 2000);\n })\n .catch(err => {\n this.messageSerice.add({ severity: 'warn', detail: `${err?.error?.message || 'Error no controlado, por favor comunicarse con del admin.'}` })\n this.enProceso = false;\n })\n }\n\n validateData() {\n if (this.configOperation.validations.type == 'local') return this.validateDataLocal();\n return true;\n }\n\n validateDataLocal() {\n let err: string[] = []\n this.configOperation.validations.required.forEach(x => {\n if (!jsonpath.query(this.data, x.field)[0]) err.push(x.message);\n })\n if (err.length != 0) this.messageSerice.add({ severity: 'warn', detail: err.join('. ') })\n return err.length == 0;\n }\n\n}\n","<p-blockUI [blocked]=\"enProceso\">\n <i class=\"pi pi-cog pi-spin\" style=\"font-size: 50px\"></i>\n</p-blockUI>\n\n<p-toast></p-toast>\n\n<div class=\"card\" *ngIf=\"!enProceso\">\n <h5 class=\"card-header mb-2\" style=\"display: flex; justify-content: space-between;align-items: center;\">\n <span>{{idEntidad}} {{id != '' ? '-' + id : ''}}</span>\n <button pButton pRipple type=\"button\" icon=\"pi pi-arrow-left\" (click)=\"back()\"></button>\n </h5>\n <div *ngFor=\"let element of crudConfig.uiEsquema.elements\" [class]=\"element?.class\">\n <ng-container [ngSwitch]=\"element.type\">\n <div *ngSwitchCase=\"'Label'\" [style]=\"element?.style\">\n {{element?.label}}\n </div>\n <ng-container *ngSwitchCase=\"'HorizontalLayout'\">\n <div *ngFor=\"let el of element.elements\" [class]=\"el?.class\">\n <ng-container [ngSwitch]=\"el.type\" >\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"getControl(el.scope)\" [label]=\"el.label\" [value]=\"getValue(el.scope)\" (setValue)=\"setValue($event, el.scope)\"></sf-control>\n </ng-container>\n </div>\n </ng-container>\n <div *ngSwitchCase=\"'Control'\">\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"getControl(element.scope)\" [label]=\"element.label\"></sf-control>\n </div>\n </ng-container>\n </div>\n <div class=\"card-footer\" *ngIf=\"btnSubmit\">\n <button pButton pRipple type=\"button\" [icon]=\"btnSubmit.icon\" [label]=\"btnSubmit.label\" (click)=\"submit()\"></button>\n </div>\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-sf-crud',\n template: `\n <p>\n sf-crud works!\n </p>\n `,\n styles: [\n ]\n})\nexport class SfCrudComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { FormsModule } from '@angular/forms';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\n//=========================================================\n// PrimeNG Modules\n//=========================================================\nimport { AccordionModule } from 'primeng/accordion';\nimport { AvatarModule } from 'primeng/avatar';\nimport { AvatarGroupModule } from 'primeng/avatargroup';\nimport { BadgeModule } from 'primeng/badge';\nimport { BlockUIModule } from 'primeng/blockui';\nimport { BreadcrumbModule } from 'primeng/breadcrumb';\nimport { ButtonModule } from 'primeng/button';\nimport { CalendarModule } from 'primeng/calendar';\nimport { CardModule } from 'primeng/card';\nimport { CarouselModule } from 'primeng/carousel';\nimport { CascadeSelectModule } from 'primeng/cascadeselect';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { ChipModule } from 'primeng/chip';\nimport { ChipsModule } from 'primeng/chips';\nimport { CodeHighlighterModule } from 'primeng/codehighlighter';\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { ColorPickerModule } from 'primeng/colorpicker';\nimport { ContextMenuModule } from 'primeng/contextmenu';\nimport { DialogModule } from 'primeng/dialog';\nimport { DividerModule } from 'primeng/divider';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { FieldsetModule } from 'primeng/fieldset';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { GalleriaModule } from 'primeng/galleria';\nimport { InplaceModule } from 'primeng/inplace';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { InputMaskModule } from 'primeng/inputmask';\nimport { InputSwitchModule } from 'primeng/inputswitch';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { KnobModule } from 'primeng/knob';\nimport { LightboxModule } from 'primeng/lightbox';\nimport { ListboxModule } from 'primeng/listbox';\nimport { MegaMenuModule } from 'primeng/megamenu';\nimport { MenuModule } from 'primeng/menu';\nimport { MenubarModule } from 'primeng/menubar';\nimport { MessagesModule } from 'primeng/messages';\nimport { MessageModule } from 'primeng/message';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { OrganizationChartModule } from 'primeng/organizationchart';\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\nimport { PanelModule } from 'primeng/panel';\nimport { PanelMenuModule } from 'primeng/panelmenu';\nimport { PasswordModule } from 'primeng/password';\nimport { ProgressBarModule } from 'primeng/progressbar';\nimport { RadioButtonModule } from 'primeng/radiobutton';\nimport { RatingModule } from 'primeng/rating';\nimport { RippleModule } from 'primeng/ripple';\nimport { ScrollPanelModule } from 'primeng/scrollpanel';\nimport { ScrollTopModule } from 'primeng/scrolltop';\nimport { SelectButtonModule } from 'primeng/selectbutton';\nimport { SidebarModule } from 'primeng/sidebar';\nimport { SkeletonModule } from 'primeng/skeleton';\nimport { SlideMenuModule } from 'primeng/slidemenu';\nimport { SliderModule } from 'primeng/slider';\nimport { SplitterModule } from 'primeng/splitter';\nimport { StepsModule } from 'primeng/steps';\nimport { TableModule } from 'primeng/table';\nimport { TabMenuModule } from 'primeng/tabmenu';\nimport { TabViewModule } from 'primeng/tabview';\nimport { TagModule } from 'primeng/tag';\nimport { TerminalModule } from 'primeng/terminal';\nimport { TieredMenuModule } from 'primeng/tieredmenu';\nimport { TimelineModule } from 'primeng/timeline';\nimport { ToastModule } from 'primeng/toast';\nimport { ToggleButtonModule } from 'primeng/togglebutton';\nimport { ToolbarModule } from 'primeng/toolbar';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { TreeModule } from 'primeng/tree';\n\n//=========================================================\n// Componets\n//=========================================================\nimport { SfCrudComponent } from './sf-crud.component';\nimport { TableroComponent } from './components/tablero/tablero.component';\nimport { RegistroComponent } from './components/registro/registro.component';\nimport { ControlComponent } from './components/control/control.component';\n\n@NgModule({\n declarations: [\n SfCrudComponent,\n TableroComponent,\n RegistroComponent,\n ControlComponent\n ],\n imports: [\n AccordionModule,\n AvatarGroupModule,\n AvatarModule,\n BadgeModule,\n BlockUIModule,\n BreadcrumbModule,\n ButtonModule,\n CalendarModule,\n CardModule,\n CarouselModule,\n CascadeSelectModule,\n CheckboxModule,\n ChipModule,\n ChipsModule,\n CodeHighlighterModule,\n ColorPickerModule,\n ConfirmDialogModule,\n ConfirmPopupModule,\n ContextMenuModule,\n DialogModule,\n DividerModule,\n DropdownModule,\n FieldsetModule,\n FileUploadModule,\n FormsModule,\n GalleriaModule,\n HttpClientModule,\n InplaceModule,\n InputMaskModule,\n InputNumberModule,\n InputSwitchModule,\n InputTextareaModule,\n InputTextModule,\n KnobModule,\n LightboxModule,\n ListboxModule,\n MegaMenuModule,\n MenubarModule,\n MenuModule,\n MessageModule,\n MessagesModule,\n MultiSelectModule,\n OrganizationChartModule,\n OverlayPanelModule,\n PanelMenuModule,\n PanelModule,\n PasswordModule,\n ProgressBarModule,\n RadioButtonModule,\n RatingModule,\n RippleModule,\n ScrollPanelModule,\n ScrollTopModule,\n SelectButtonModule,\n SidebarModule,\n SkeletonModule,\n SlideMenuModule,\n SliderModule,\n SplitterModule,\n StepsModule,\n TableModule,\n TabMenuModule,\n TabViewModule,\n TagModule,\n TerminalModule,\n TieredMenuModule,\n TimelineModule,\n ToastModule,\n ToggleButtonModule,\n ToolbarModule,\n TooltipModule,\n TreeModule,\n ],\n exports: [\n SfCrudComponent,\n TableroComponent,\n RegistroComponent\n ]\n})\nexport class SfCrudModule { }\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SfCrudService {\n\n constructor() { }\n}\n","/*\n * Public API Surface of sf-crud\n */\n\nexport * from './lib/components/tablero/tablero.component';\nexport * from './lib/components/registro/registro.component';\nexport * from './lib/sf-crud.component';\nexport * from './lib/sf-crud.module';\nexport * from './lib/sf-crud.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i0","Injectable","i1.GeneralService","i2","i3","i4","i5","i6","i7","i8","i9","i10","i11","Component","Input","EventEmitter","Output","jsonpath","MessageService","i6.ControlComponent","AccordionModule","AvatarGroupModule","AvatarModule","BadgeModule","BlockUIModule","BreadcrumbModule","ButtonModule","CalendarModule","CardModule","CarouselModule","CascadeSelectModule","CheckboxModule","ChipModule","ChipsModule","CodeHighlighterModule","ColorPickerModule","ConfirmDialogModule","ConfirmPopupModule","ContextMenuModule","DialogModule","DividerModule","DropdownModule","FieldsetModule","FileUploadModule","FormsModule","GalleriaModule","HttpClientModule","InplaceModule","InputMaskModule","InputNumberModule","InputSwitchModule","InputTextareaModule","InputTextModule","KnobModule","LightboxModule","ListboxModule","MegaMenuModule","MenubarModule","MenuModule","MessageModule","MessagesModule","MultiSelectModule","OrganizationChartModule","OverlayPanelModule","PanelMenuModule","PanelModule","PasswordModule","ProgressBarModule","RadioButtonModule","RatingModule","RippleModule","ScrollPanelModule","ScrollTopModule","SelectButtonModule","SidebarModule","SkeletonModule","SlideMenuModule","SliderModule","SplitterModule","StepsModule","TableModule","TabMenuModule","TabViewModule","TagModule","TerminalModule","TieredMenuModule","TimelineModule","ToastModule","ToggleButtonModule","ToolbarModule","TooltipModule","TreeModule","NgModule"],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "primeng/dropdown";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
import * as i3 from "@angular/forms";
|
|
6
|
+
import * as i4 from "primeng/inputtext";
|
|
7
|
+
export class ControlComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.label = '';
|
|
10
|
+
this.setValue = new EventEmitter();
|
|
11
|
+
}
|
|
12
|
+
ngOnInit() {
|
|
13
|
+
}
|
|
14
|
+
sendValue() {
|
|
15
|
+
this.setValue.emit(this.value);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
ControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
19
|
+
ControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ControlComponent, selector: "sf-control", inputs: { control: "control", label: "label", value: "value" }, outputs: { setValue: "setValue" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"control.type\">\n <ng-container *ngSwitchCase=\"'string'\">\n <label>{{label}}</label>\n <ng-container *ngIf=\"!control?.enum\">\n <input pInputText type=\"text\" [(ngModel)]=\"value\" (focusout)=\"sendValue()\">\n </ng-container>\n <ng-container *ngIf=\"control?.enum\">\n <p-dropdown [options]=\"control.enum\" [(ngModel)]=\"value\" (onChange)=\"sendValue()\" placeholder=\"Seleccione una opci\u00F3n\"></p-dropdown>\n </ng-container>\n </ng-container>\n</ng-container>\n", components: [{ type: i1.Dropdown, selector: "p-dropdown", inputs: ["scrollHeight", "resetFilterOnHide", "dropdownIcon", "optionGroupChildren", "autoDisplayFirst", "emptyFilterMessage", "emptyMessage", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "autofocusFilter", "disabled", "options", "filterValue", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "group", "showClear", "virtualScroll", "itemSize", "ariaFilterLabel", "ariaLabelledBy", "maxlength", "tooltipStyleClass"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide"] }], directives: [{ type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.InputText, selector: "[pInputText]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ControlComponent, decorators: [{
|
|
21
|
+
type: Component,
|
|
22
|
+
args: [{
|
|
23
|
+
selector: 'sf-control',
|
|
24
|
+
templateUrl: './control.component.html'
|
|
25
|
+
}]
|
|
26
|
+
}], ctorParameters: function () { return []; }, propDecorators: { control: [{
|
|
27
|
+
type: Input
|
|
28
|
+
}], label: [{
|
|
29
|
+
type: Input
|
|
30
|
+
}], value: [{
|
|
31
|
+
type: Input
|
|
32
|
+
}], setValue: [{
|
|
33
|
+
type: Output
|
|
34
|
+
}] } });
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZi1jcnVkL3NyYy9saWIvY29tcG9uZW50cy9jb250cm9sL2NvbnRyb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2YtY3J1ZC9zcmMvbGliL2NvbXBvbmVudHMvY29udHJvbC9jb250cm9sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQU0vRSxNQUFNLE9BQU8sZ0JBQWdCO0lBTzNCO1FBSlMsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUVsQixhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFFaEQsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQzs7OEdBZFUsZ0JBQWdCO2tHQUFoQixnQkFBZ0IscUpDTjdCLHFqQkFXQTs0RkRMYSxnQkFBZ0I7a0JBSjVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFdBQVcsRUFBRSwwQkFBMEI7aUJBQ3hDOzBFQUdVLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNJLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NmLWNvbnRyb2wnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29udHJvbC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQ29udHJvbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgY29udHJvbDogYW55O1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHZhbHVlOiBhbnk7XG4gIEBPdXRwdXQoKSBzZXRWYWx1ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgc2VuZFZhbHVlKCkge1xuICAgIHRoaXMuc2V0VmFsdWUuZW1pdCh0aGlzLnZhbHVlKTtcbiAgfVxuXG59XG4iLCI8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJjb250cm9sLnR5cGVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInc3RyaW5nJ1wiPlxuICAgICAgICA8bGFiZWw+e3tsYWJlbH19PC9sYWJlbD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb250cm9sPy5lbnVtXCI+XG4gICAgICAgICAgICA8aW5wdXQgcElucHV0VGV4dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwidmFsdWVcIiAoZm9jdXNvdXQpPVwic2VuZFZhbHVlKClcIj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250cm9sPy5lbnVtXCI+XG4gICAgICAgICAgICA8cC1kcm9wZG93biBbb3B0aW9uc109XCJjb250cm9sLmVudW1cIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgKG9uQ2hhbmdlKT1cInNlbmRWYWx1ZSgpXCIgcGxhY2Vob2xkZXI9XCJTZWxlY2Npb25lIHVuYSBvcGNpw7NuXCI+PC9wLWRyb3Bkb3duPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { CrudConfig, Operations } from '../../shared/services/models/crud-config.model';
|
|
3
|
+
import * as jsonpath from 'jsonpath';
|
|
4
|
+
import { MessageService } from 'primeng/api';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../../shared/services/general.service";
|
|
7
|
+
import * as i2 from "@angular/router";
|
|
8
|
+
import * as i3 from "primeng/api";
|
|
9
|
+
import * as i4 from "primeng/blockui";
|
|
10
|
+
import * as i5 from "primeng/toast";
|
|
11
|
+
import * as i6 from "../control/control.component";
|
|
12
|
+
import * as i7 from "@angular/common";
|
|
13
|
+
import * as i8 from "primeng/button";
|
|
14
|
+
import * as i9 from "primeng/ripple";
|
|
15
|
+
export class RegistroComponent {
|
|
16
|
+
constructor(generalService, router, messageSerice) {
|
|
17
|
+
this.generalService = generalService;
|
|
18
|
+
this.router = router;
|
|
19
|
+
this.messageSerice = messageSerice;
|
|
20
|
+
this.idKatios = '';
|
|
21
|
+
this.idEntidad = '';
|
|
22
|
+
this.trx = '';
|
|
23
|
+
this.id = '';
|
|
24
|
+
this.enProceso = false;
|
|
25
|
+
this.crudConfig = new CrudConfig();
|
|
26
|
+
this.configOperation = new Operations();
|
|
27
|
+
}
|
|
28
|
+
ngOnInit() {
|
|
29
|
+
this.loadConfigCrud();
|
|
30
|
+
this.setLabelSumbit();
|
|
31
|
+
}
|
|
32
|
+
loadConfigCrud() {
|
|
33
|
+
this.enProceso = true;
|
|
34
|
+
this.generalService.getCrudByEntidad(this.idKatios, this.idEntidad)
|
|
35
|
+
.then(res => {
|
|
36
|
+
this.crudConfig = res;
|
|
37
|
+
if (this.trx != 'c')
|
|
38
|
+
this.getInfoRegistro(this.crudConfig.registro);
|
|
39
|
+
else {
|
|
40
|
+
this.data = this.createObject(this.crudConfig.esquema);
|
|
41
|
+
this.enProceso = false;
|
|
42
|
+
}
|
|
43
|
+
this.configOperation = this.crudConfig.registro.operations.find(x => x.type.startsWith(this.trx)) || new Operations();
|
|
44
|
+
})
|
|
45
|
+
.catch(err => {
|
|
46
|
+
console.log(err);
|
|
47
|
+
this.enProceso = false;
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
setLabelSumbit() {
|
|
51
|
+
if (this.trx == 'c')
|
|
52
|
+
this.btnSubmit = { label: 'Guardar', icon: 'pi pi-save' };
|
|
53
|
+
else if (this.trx == 'r')
|
|
54
|
+
this.btnSubmit = undefined;
|
|
55
|
+
else if (this.trx == 'u')
|
|
56
|
+
this.btnSubmit = { label: 'Actualizar', icon: 'pi pi-sync' };
|
|
57
|
+
else if (this.trx == 'd')
|
|
58
|
+
this.btnSubmit = { label: 'Eliminar', icon: 'pi pi-trash' };
|
|
59
|
+
}
|
|
60
|
+
getInfoRegistro(configRegistro) {
|
|
61
|
+
let op = configRegistro.operations.find(x => x.type == 'read');
|
|
62
|
+
let endpoint = (op === null || op === void 0 ? void 0 : op.endpoint) || '';
|
|
63
|
+
endpoint = endpoint.replace('@idKatios', this.idKatios);
|
|
64
|
+
endpoint = endpoint.replace('@id', this.id);
|
|
65
|
+
this.generalService.genericRequest((op === null || op === void 0 ? void 0 : op.method) || '', (op === null || op === void 0 ? void 0 : op.server) || '', endpoint)
|
|
66
|
+
.then((res) => {
|
|
67
|
+
this.data = res.data;
|
|
68
|
+
this.enProceso = false;
|
|
69
|
+
})
|
|
70
|
+
.catch(err => {
|
|
71
|
+
console.log(err);
|
|
72
|
+
this.enProceso = false;
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
back() {
|
|
76
|
+
this.router.navigateByUrl(this.crudConfig.registro.btnBack);
|
|
77
|
+
}
|
|
78
|
+
getControl(scope) {
|
|
79
|
+
return jsonpath.query(this.crudConfig.esquema, scope)[0];
|
|
80
|
+
}
|
|
81
|
+
getValue(scope) {
|
|
82
|
+
return jsonpath.query(this.data, scope.replace('.properties', ''))[0];
|
|
83
|
+
}
|
|
84
|
+
setValue(value, scope) {
|
|
85
|
+
jsonpath.value(this.data, scope.replace('.properties', ''), value);
|
|
86
|
+
}
|
|
87
|
+
createObject(esquema) {
|
|
88
|
+
let object = {};
|
|
89
|
+
switch (esquema.type) {
|
|
90
|
+
case 'string':
|
|
91
|
+
case 'number':
|
|
92
|
+
return (esquema === null || esquema === void 0 ? void 0 : esquema.default) || null;
|
|
93
|
+
case 'boolean':
|
|
94
|
+
return (esquema === null || esquema === void 0 ? void 0 : esquema.default) || false;
|
|
95
|
+
case 'object':
|
|
96
|
+
for (const key in esquema === null || esquema === void 0 ? void 0 : esquema.properties) {
|
|
97
|
+
Object.defineProperty(object, key, { value: this.createObject(esquema === null || esquema === void 0 ? void 0 : esquema.properties[key]), writable: true, enumerable: true, configurable: true });
|
|
98
|
+
}
|
|
99
|
+
break;
|
|
100
|
+
default:
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
return object;
|
|
104
|
+
}
|
|
105
|
+
submit() {
|
|
106
|
+
if (!this.validateData())
|
|
107
|
+
return;
|
|
108
|
+
this.enProceso = true;
|
|
109
|
+
let endpoint = this.configOperation.endpoint;
|
|
110
|
+
endpoint = endpoint.replace('@idKatios', this.idKatios);
|
|
111
|
+
endpoint = endpoint.replace('@id', this.id);
|
|
112
|
+
this.generalService.genericRequest(this.configOperation.method, this.configOperation.server, endpoint, this.data)
|
|
113
|
+
.then(() => {
|
|
114
|
+
this.messageSerice.add({ severity: 'success', detail: `Proceso exitoso!` });
|
|
115
|
+
setTimeout(() => {
|
|
116
|
+
this.enProceso = false;
|
|
117
|
+
this.back();
|
|
118
|
+
}, 2000);
|
|
119
|
+
})
|
|
120
|
+
.catch(err => {
|
|
121
|
+
var _a;
|
|
122
|
+
this.messageSerice.add({ severity: 'warn', detail: `${((_a = err === null || err === void 0 ? void 0 : err.error) === null || _a === void 0 ? void 0 : _a.message) || 'Error no controlado, por favor comunicarse con del admin.'}` });
|
|
123
|
+
this.enProceso = false;
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
validateData() {
|
|
127
|
+
if (this.configOperation.validations.type == 'local')
|
|
128
|
+
return this.validateDataLocal();
|
|
129
|
+
return true;
|
|
130
|
+
}
|
|
131
|
+
validateDataLocal() {
|
|
132
|
+
let err = [];
|
|
133
|
+
this.configOperation.validations.required.forEach(x => {
|
|
134
|
+
if (!jsonpath.query(this.data, x.field)[0])
|
|
135
|
+
err.push(x.message);
|
|
136
|
+
});
|
|
137
|
+
if (err.length != 0)
|
|
138
|
+
this.messageSerice.add({ severity: 'warn', detail: err.join('. ') });
|
|
139
|
+
return err.length == 0;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
RegistroComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RegistroComponent, deps: [{ token: i1.GeneralService }, { token: i2.Router }, { token: i3.MessageService }], target: i0.ɵɵFactoryTarget.Component });
|
|
143
|
+
RegistroComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: RegistroComponent, selector: "sf-registro", inputs: { idKatios: "idKatios", idEntidad: "idEntidad", trx: "trx", id: "id" }, providers: [MessageService], ngImport: i0, template: "<p-blockUI [blocked]=\"enProceso\">\n <i class=\"pi pi-cog pi-spin\" style=\"font-size: 50px\"></i>\n</p-blockUI>\n\n<p-toast></p-toast>\n\n<div class=\"card\" *ngIf=\"!enProceso\">\n <h5 class=\"card-header mb-2\" style=\"display: flex; justify-content: space-between;align-items: center;\">\n <span>{{idEntidad}} {{id != '' ? '-' + id : ''}}</span>\n <button pButton pRipple type=\"button\" icon=\"pi pi-arrow-left\" (click)=\"back()\"></button>\n </h5>\n <div *ngFor=\"let element of crudConfig.uiEsquema.elements\" [class]=\"element?.class\">\n <ng-container [ngSwitch]=\"element.type\">\n <div *ngSwitchCase=\"'Label'\" [style]=\"element?.style\">\n {{element?.label}}\n </div>\n <ng-container *ngSwitchCase=\"'HorizontalLayout'\">\n <div *ngFor=\"let el of element.elements\" [class]=\"el?.class\">\n <ng-container [ngSwitch]=\"el.type\" >\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"getControl(el.scope)\" [label]=\"el.label\" [value]=\"getValue(el.scope)\" (setValue)=\"setValue($event, el.scope)\"></sf-control>\n </ng-container>\n </div>\n </ng-container>\n <div *ngSwitchCase=\"'Control'\">\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"getControl(element.scope)\" [label]=\"element.label\"></sf-control>\n </div>\n </ng-container>\n </div>\n <div class=\"card-footer\" *ngIf=\"btnSubmit\">\n <button pButton pRipple type=\"button\" [icon]=\"btnSubmit.icon\" [label]=\"btnSubmit.label\" (click)=\"submit()\"></button>\n </div>\n</div>", components: [{ type: i4.BlockUI, selector: "p-blockUI", inputs: ["autoZIndex", "baseZIndex", "blocked", "target", "styleClass"] }, { type: i5.Toast, selector: "p-toast", inputs: ["autoZIndex", "baseZIndex", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "key", "style", "styleClass", "breakpoints"], outputs: ["onClose"] }, { type: i6.ControlComponent, selector: "sf-control", inputs: ["control", "label", "value"], outputs: ["setValue"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { type: i9.Ripple, selector: "[pRipple]" }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i7.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }] });
|
|
144
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RegistroComponent, decorators: [{
|
|
145
|
+
type: Component,
|
|
146
|
+
args: [{
|
|
147
|
+
selector: 'sf-registro',
|
|
148
|
+
templateUrl: './registro.component.html',
|
|
149
|
+
providers: [MessageService]
|
|
150
|
+
}]
|
|
151
|
+
}], ctorParameters: function () { return [{ type: i1.GeneralService }, { type: i2.Router }, { type: i3.MessageService }]; }, propDecorators: { idKatios: [{
|
|
152
|
+
type: Input
|
|
153
|
+
}], idEntidad: [{
|
|
154
|
+
type: Input
|
|
155
|
+
}], trx: [{
|
|
156
|
+
type: Input
|
|
157
|
+
}], id: [{
|
|
158
|
+
type: Input
|
|
159
|
+
}] } });
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cm8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2YtY3J1ZC9zcmMvbGliL2NvbXBvbmVudHMvcmVnaXN0cm8vcmVnaXN0cm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2YtY3J1ZC9zcmMvbGliL2NvbXBvbmVudHMvcmVnaXN0cm8vcmVnaXN0cm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHekQsT0FBTyxFQUFrQixVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDeEcsT0FBTyxLQUFLLFFBQVEsTUFBTSxVQUFVLENBQUM7QUFFckMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7Ozs7Ozs7QUFRN0MsTUFBTSxPQUFPLGlCQUFpQjtJQWE1QixZQUNVLGNBQThCLEVBQzlCLE1BQWMsRUFDZCxhQUE2QjtRQUY3QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQWQ5QixhQUFRLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFDdkIsUUFBRyxHQUFXLEVBQUUsQ0FBQztRQUNqQixPQUFFLEdBQVcsRUFBRSxDQUFDO1FBRWxCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsZUFBVSxHQUFlLElBQUksVUFBVSxFQUFFLENBQUM7UUFHMUMsb0JBQWUsR0FBZSxJQUFJLFVBQVUsRUFBRSxDQUFDO0lBTWxELENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFD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QUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDekYsT0FBTyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDOzsrR0FySVUsaUJBQWlCO21HQUFqQixpQkFBaUIsc0hBRmpCLENBQUMsY0FBYyxDQUFDLDBCQ1o3Qiw0cURBK0JNOzRGRGpCTyxpQkFBaUI7a0JBTDdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFdBQVcsRUFBRSwyQkFBMkI7b0JBQ3hDLFNBQVMsRUFBRSxDQUFDLGNBQWMsQ0FBQztpQkFDNUI7dUpBR1UsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBHZW5lcmFsU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9nZW5lcmFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uZmlnUmVnaXN0cm8sIENydWRDb25maWcsIE9wZXJhdGlvbnMgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2VydmljZXMvbW9kZWxzL2NydWQtY29uZmlnLm1vZGVsJztcbmltcG9ydCAqIGFzIGpzb25wYXRoIGZyb20gJ2pzb25wYXRoJztcbmltcG9ydCB7IFNoZW1hIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3NlcnZpY2VzL21vZGVscy9zaGVtYS5tb2RlbCc7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZi1yZWdpc3RybycsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWdpc3Ryby5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW01lc3NhZ2VTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBSZWdpc3Ryb0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgaWRLYXRpb3M6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBpZEVudGlkYWQ6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSB0cng6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBpZDogc3RyaW5nID0gJyc7XG5cbiAgcHVibGljIGVuUHJvY2VzbzogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgY3J1ZENvbmZpZzogQ3J1ZENvbmZpZyA9IG5ldyBDcnVkQ29uZmlnKCk7XG4gIHB1YmxpYyBidG5TdWJtaXQ6IGFueTtcbiAgcHVibGljIGRhdGE6IGFueTtcbiAgcHVibGljIGNvbmZpZ09wZXJhdGlvbjogT3BlcmF0aW9ucyA9IG5ldyBPcGVyYXRpb25zKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBnZW5lcmFsU2VydmljZTogR2VuZXJhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICApIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubG9hZENvbmZpZ0NydWQoKTtcbiAgICB0aGlzLnNldExhYmVsU3VtYml0KCk7XG4gIH1cblxuICBsb2FkQ29uZmlnQ3J1ZCgpIHtcbiAgICB0aGlzLmVuUHJvY2VzbyA9IHRydWU7XG4gICAgdGhpcy5nZW5lcmFsU2VydmljZS5nZXRDcnVkQnlFbnRpZGFkKHRoaXMuaWRLYXRpb3MsIHRoaXMuaWRFbnRpZGFkKVxuICAgICAgLnRoZW4ocmVzID0+IHtcbiAgICAgICAgdGhpcy5jcnVkQ29uZmlnID0gcmVzO1xuICAgICAgICBpZiAodGhpcy50cnggIT0gJ2MnKSB0aGlzLmdldEluZm9SZWdpc3Rybyh0aGlzLmNydWRDb25maWcucmVnaXN0cm8pO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICB0aGlzLmRhdGEgPSB0aGlzLmNyZWF0ZU9iamVjdCh0aGlzLmNydWRDb25maWcuZXNxdWVtYSk7XG4gICAgICAgICAgdGhpcy5lblByb2Nlc28gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbmZpZ09wZXJhdGlvbiA9IHRoaXMuY3J1ZENvbmZpZy5yZWdpc3Ryby5vcGVyYXRpb25zLmZpbmQoeCA9PiB4LnR5cGUuc3RhcnRzV2l0aCh0aGlzLnRyeCkpIHx8IG5ldyBPcGVyYXRpb25zKCk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgIHRoaXMuZW5Qcm9jZXNvID0gZmFsc2U7XG4gICAgICB9KVxuICB9XG5cbiAgc2V0TGFiZWxTdW1iaXQoKSB7XG4gICAgaWYgKHRoaXMudHJ4ID09ICdjJykgdGhpcy5idG5TdWJtaXQgPSB7IGxhYmVsOiAnR3VhcmRhcicsIGljb246ICdwaSBwaS1zYXZlJyB9XG4gICAgZWxzZSBpZiAodGhpcy50cnggPT0gJ3InKSB0aGlzLmJ0blN1Ym1pdCA9IHVuZGVmaW5lZDtcbiAgICBlbHNlIGlmICh0aGlzLnRyeCA9PSAndScpIHRoaXMuYnRuU3VibWl0ID0geyBsYWJlbDogJ0FjdHVhbGl6YXInLCBpY29uOiAncGkgcGktc3luYycgfVxuICAgIGVsc2UgaWYgKHRoaXMudHJ4ID09ICdkJykgdGhpcy5idG5TdWJtaXQgPSB7IGxhYmVsOiAnRWxpbWluYXInLCBpY29uOiAncGkgcGktdHJhc2gnIH1cblxuICB9XG5cbiAgZ2V0SW5mb1JlZ2lzdHJvKGNvbmZpZ1JlZ2lzdHJvOiBDb25maWdSZWdpc3Rybykge1xuICAgIGxldCBvcCA9IGNvbmZpZ1JlZ2lzdHJvLm9wZXJhdGlvbnMuZmluZCh4ID0+IHgudHlwZSA9PSAncmVhZCcpO1xuICAgIGxldCBlbmRwb2ludCA9IG9wPy5lbmRwb2ludCB8fCAnJztcbiAgICBlbmRwb2ludCA9IGVuZHBvaW50LnJlcGxhY2UoJ0BpZEthdGlvcycsIHRoaXMuaWRLYXRpb3MpO1xuICAgIGVuZHBvaW50ID0gZW5kcG9pbnQucmVwbGFjZSgnQGlkJywgdGhpcy5pZCk7XG4gICAgdGhpcy5nZW5lcmFsU2VydmljZS5nZW5lcmljUmVxdWVzdChvcD8ubWV0aG9kIHx8ICcnLCBvcD8uc2VydmVyIHx8ICcnLCBlbmRwb2ludClcbiAgICAgIC50aGVuKChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmRhdGEgPSByZXMuZGF0YTtcbiAgICAgICAgdGhpcy5lblByb2Nlc28gPSBmYWxzZTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgdGhpcy5lblByb2Nlc28gPSBmYWxzZTtcbiAgICAgIH0pXG4gIH1cblxuICBiYWNrKCkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5jcnVkQ29uZmlnLnJlZ2lzdHJvLmJ0bkJhY2spO1xuICB9XG5cbiAgZ2V0Q29udHJvbChzY29wZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGpzb25wYXRoLnF1ZXJ5KHRoaXMuY3J1ZENvbmZpZy5lc3F1ZW1hLCBzY29wZSlbMF07XG4gIH1cblxuICBnZXRWYWx1ZShzY29wZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGpzb25wYXRoLnF1ZXJ5KHRoaXMuZGF0YSwgc2NvcGUucmVwbGFjZSgnLnByb3BlcnRpZXMnLCAnJykpWzBdO1xuICB9XG5cbiAgc2V0VmFsdWUodmFsdWU6IGFueSwgc2NvcGU6IHN0cmluZykge1xuICAgIGpzb25wYXRoLnZhbHVlKHRoaXMuZGF0YSwgc2NvcGUucmVwbGFjZSgnLnByb3BlcnRpZXMnLCAnJyksIHZhbHVlKTtcbiAgfVxuXG4gIGNyZWF0ZU9iamVjdChlc3F1ZW1hOiBTaGVtYSkge1xuICAgIGxldCBvYmplY3QgPSB7fTtcbiAgICBzd2l0Y2ggKGVzcXVlbWEudHlwZSkge1xuICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgIHJldHVybiBlc3F1ZW1hPy5kZWZhdWx0IHx8IG51bGw7XG4gICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgICAgcmV0dXJuIGVzcXVlbWE/LmRlZmF1bHQgfHwgZmFsc2U7XG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBlc3F1ZW1hPy5wcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iamVjdCwga2V5LCB7IHZhbHVlOiB0aGlzLmNyZWF0ZU9iamVjdChlc3F1ZW1hPy5wcm9wZXJ0aWVzW2tleV0pLCB3cml0YWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0pXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIG9iamVjdDtcbiAgfVxuXG4gIHN1Ym1pdCgpIHtcbiAgICBpZiAoIXRoaXMudmFsaWRhdGVEYXRhKCkpIHJldHVybjtcbiAgICB0aGlzLmVuUHJvY2VzbyA9IHRydWU7XG4gICAgbGV0IGVuZHBvaW50ID0gdGhpcy5jb25maWdPcGVyYXRpb24uZW5kcG9pbnQ7XG4gICAgZW5kcG9pbnQgPSBlbmRwb2ludC5yZXBsYWNlKCdAaWRLYXRpb3MnLCB0aGlzLmlkS2F0aW9zKVxuICAgIGVuZHBvaW50ID0gZW5kcG9pbnQucmVwbGFjZSgnQGlkJywgdGhpcy5pZClcbiAgICB0aGlzLmdlbmVyYWxTZXJ2aWNlLmdlbmVyaWNSZXF1ZXN0KHRoaXMuY29uZmlnT3BlcmF0aW9uLm1ldGhvZCwgdGhpcy5jb25maWdPcGVyYXRpb24uc2VydmVyLCBlbmRwb2ludCwgdGhpcy5kYXRhKVxuICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJpY2UuYWRkKHsgc2V2ZXJpdHk6ICdzdWNjZXNzJywgZGV0YWlsOiBgUHJvY2VzbyBleGl0b3NvIWAgfSlcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5lblByb2Nlc28gPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmJhY2soKVxuICAgICAgICB9LCAyMDAwKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VyaWNlLmFkZCh7IHNldmVyaXR5OiAnd2FybicsIGRldGFpbDogYCR7ZXJyPy5lcnJvcj8ubWVzc2FnZSB8fCAnRXJyb3Igbm8gY29udHJvbGFkbywgcG9yIGZhdm9yIGNvbXVuaWNhcnNlIGNvbiBkZWwgYWRtaW4uJ31gIH0pXG4gICAgICAgIHRoaXMuZW5Qcm9jZXNvID0gZmFsc2U7XG4gICAgICB9KVxuICB9XG5cbiAgdmFsaWRhdGVEYXRhKCkge1xuICAgIGlmICh0aGlzLmNvbmZpZ09wZXJhdGlvbi52YWxpZGF0aW9ucy50eXBlID09ICdsb2NhbCcpIHJldHVybiB0aGlzLnZhbGlkYXRlRGF0YUxvY2FsKCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB2YWxpZGF0ZURhdGFMb2NhbCgpIHtcbiAgICBsZXQgZXJyOiBzdHJpbmdbXSA9IFtdXG4gICAgdGhpcy5jb25maWdPcGVyYXRpb24udmFsaWRhdGlvbnMucmVxdWlyZWQuZm9yRWFjaCh4ID0+IHtcbiAgICAgIGlmICghanNvbnBhdGgucXVlcnkodGhpcy5kYXRhLCB4LmZpZWxkKVswXSkgZXJyLnB1c2goeC5tZXNzYWdlKTtcbiAgICB9KVxuICAgIGlmIChlcnIubGVuZ3RoICE9IDApIHRoaXMubWVzc2FnZVNlcmljZS5hZGQoeyBzZXZlcml0eTogJ3dhcm4nLCBkZXRhaWw6IGVyci5qb2luKCcuICcpIH0pXG4gICAgcmV0dXJuIGVyci5sZW5ndGggPT0gMDtcbiAgfVxuXG59XG4iLCI8cC1ibG9ja1VJIFtibG9ja2VkXT1cImVuUHJvY2Vzb1wiPlxuICAgIDxpIGNsYXNzPVwicGkgcGktY29nIHBpLXNwaW5cIiBzdHlsZT1cImZvbnQtc2l6ZTogNTBweFwiPjwvaT5cbjwvcC1ibG9ja1VJPlxuXG48cC10b2FzdD48L3AtdG9hc3Q+XG5cbjxkaXYgY2xhc3M9XCJjYXJkXCIgKm5nSWY9XCIhZW5Qcm9jZXNvXCI+XG4gICAgPGg1IGNsYXNzPVwiY2FyZC1oZWFkZXIgbWItMlwiIHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOiBjZW50ZXI7XCI+XG4gICAgICAgIDxzcGFuPnt7aWRFbnRpZGFkfX0ge3tpZCAhPSAnJyA/ICctJyArIGlkIDogJyd9fTwvc3Bhbj5cbiAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgdHlwZT1cImJ1dHRvblwiIGljb249XCJwaSBwaS1hcnJvdy1sZWZ0XCIgKGNsaWNrKT1cImJhY2soKVwiPjwvYnV0dG9uPlxuICAgIDwvaDU+XG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgZWxlbWVudCBvZiBjcnVkQ29uZmlnLnVpRXNxdWVtYS5lbGVtZW50c1wiIFtjbGFzc109XCJlbGVtZW50Py5jbGFzc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJlbGVtZW50LnR5cGVcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidMYWJlbCdcIiBbc3R5bGVdPVwiZWxlbWVudD8uc3R5bGVcIj5cbiAgICAgICAgICAgICAgICB7e2VsZW1lbnQ/LmxhYmVsfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0hvcml6b250YWxMYXlvdXQnXCI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZWwgb2YgZWxlbWVudC5lbGVtZW50c1wiIFtjbGFzc109XCJlbD8uY2xhc3NcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZWwudHlwZVwiID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzZi1jb250cm9sICpuZ1N3aXRjaENhc2U9XCInQ29udHJvbCdcIiBbY29udHJvbF09XCJnZXRDb250cm9sKGVsLnNjb3BlKVwiIFtsYWJlbF09XCJlbC5sYWJlbFwiIFt2YWx1ZV09XCJnZXRWYWx1ZShlbC5zY29wZSlcIiAoc2V0VmFsdWUpPVwic2V0VmFsdWUoJGV2ZW50LCBlbC5zY29wZSlcIj48L3NmLWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInQ29udHJvbCdcIj5cbiAgICAgICAgICAgICAgICA8c2YtY29udHJvbCAqbmdTd2l0Y2hDYXNlPVwiJ0NvbnRyb2wnXCIgW2NvbnRyb2xdPVwiZ2V0Q29udHJvbChlbGVtZW50LnNjb3BlKVwiIFtsYWJlbF09XCJlbGVtZW50LmxhYmVsXCI+PC9zZi1jb250cm9sPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlclwiICpuZ0lmPVwiYnRuU3VibWl0XCI+XG4gICAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIHR5cGU9XCJidXR0b25cIiBbaWNvbl09XCJidG5TdWJtaXQuaWNvblwiIFtsYWJlbF09XCJidG5TdWJtaXQubGFiZWxcIiAoY2xpY2spPVwic3VibWl0KClcIj48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { CrudConfig } from '../../shared/services/models/crud-config.model';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../shared/services/general.service";
|
|
5
|
+
import * as i2 from "@angular/router";
|
|
6
|
+
import * as i3 from "primeng/blockui";
|
|
7
|
+
import * as i4 from "primeng/toolbar";
|
|
8
|
+
import * as i5 from "primeng/table";
|
|
9
|
+
import * as i6 from "@angular/common";
|
|
10
|
+
import * as i7 from "primeng/api";
|
|
11
|
+
import * as i8 from "primeng/button";
|
|
12
|
+
import * as i9 from "primeng/ripple";
|
|
13
|
+
import * as i10 from "primeng/inputtext";
|
|
14
|
+
import * as i11 from "primeng/tooltip";
|
|
15
|
+
export class TableroComponent {
|
|
16
|
+
constructor(generalService, router) {
|
|
17
|
+
this.generalService = generalService;
|
|
18
|
+
this.router = router;
|
|
19
|
+
this.opciones = [];
|
|
20
|
+
this.idEntidad = '';
|
|
21
|
+
this.idKatios = '';
|
|
22
|
+
this.crudConfig = new CrudConfig();
|
|
23
|
+
this.enProceso = false;
|
|
24
|
+
this.data = [];
|
|
25
|
+
this.btn = { create: undefined, read: undefined, update: undefined, delete: undefined };
|
|
26
|
+
}
|
|
27
|
+
ngOnInit() {
|
|
28
|
+
this.loadConfigCrud();
|
|
29
|
+
}
|
|
30
|
+
loadConfigCrud() {
|
|
31
|
+
this.enProceso = true;
|
|
32
|
+
this.generalService.getCrudByEntidad(this.idKatios, this.idEntidad)
|
|
33
|
+
.then(res => {
|
|
34
|
+
this.crudConfig = res;
|
|
35
|
+
this.getInfoTablero(this.crudConfig.tablero);
|
|
36
|
+
this.loadOptions();
|
|
37
|
+
})
|
|
38
|
+
.catch(err => {
|
|
39
|
+
console.log(err);
|
|
40
|
+
this.enProceso = false;
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
getInfoTablero(configTablero) {
|
|
44
|
+
this.generalService.genericRequest(configTablero.method, configTablero.server, configTablero.endpoint)
|
|
45
|
+
.then((res) => {
|
|
46
|
+
this.data = res.data;
|
|
47
|
+
this.enProceso = false;
|
|
48
|
+
})
|
|
49
|
+
.catch(err => {
|
|
50
|
+
console.log(err);
|
|
51
|
+
this.enProceso = false;
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
loadOptions() {
|
|
55
|
+
this.btn.create = this.opciones.find(x => x.label == 'Crear');
|
|
56
|
+
this.btn.read = this.opciones.find(x => x.label == 'Visualizar');
|
|
57
|
+
this.btn.update = this.opciones.find(x => x.label == 'Editar');
|
|
58
|
+
this.btn.delete = this.opciones.find(x => x.label == 'Eliminar');
|
|
59
|
+
}
|
|
60
|
+
redirect(data, accion) {
|
|
61
|
+
var _a, _b;
|
|
62
|
+
switch (accion) {
|
|
63
|
+
case 'create':
|
|
64
|
+
this.router.navigateByUrl(((_b = (_a = this.btn.create) === null || _a === void 0 ? void 0 : _a.valor) === null || _b === void 0 ? void 0 : _b.redirect) || '');
|
|
65
|
+
break;
|
|
66
|
+
case 'read':
|
|
67
|
+
this.router.navigateByUrl(this.btn.read.valor.redirect.replace('$id', data[this.crudConfig.tablero.key]));
|
|
68
|
+
break;
|
|
69
|
+
case 'update':
|
|
70
|
+
this.router.navigateByUrl(this.btn.update.valor.redirect.replace('$id', data[this.crudConfig.tablero.key]));
|
|
71
|
+
break;
|
|
72
|
+
case 'delete':
|
|
73
|
+
this.router.navigateByUrl(this.btn.delete.valor.redirect.replace('$id', data[this.crudConfig.tablero.key]));
|
|
74
|
+
break;
|
|
75
|
+
default:
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
TableroComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TableroComponent, deps: [{ token: i1.GeneralService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
81
|
+
TableroComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TableroComponent, selector: "sf-crudtablero", inputs: { opciones: "opciones", idEntidad: "idEntidad", idKatios: "idKatios" }, ngImport: i0, template: "<p-blockUI [blocked]=\"enProceso\">\n <i class=\"pi pi-cog pi-spin\" style=\"font-size: 50px\"></i>\n</p-blockUI>\n\n<div class=\"card\" *ngIf=\"!enProceso\">\n <p-toolbar styleClass=\"mb-4 gap-2\">\n <ng-template pTemplate=\"left\">\n <button *ngIf=\"btn.create\" pButton pRipple [label]=\"btn.create.label\" [icon]=\"btn.create.icon\"\n class=\"p-button-success mr-2\" (click)=\"redirect(rowData, 'create')\"></button>\n </ng-template>\n </p-toolbar>\n <p-table #dt [columns]=\"crudConfig.tablero.columns\" [value]=\"data\" [rowHover]=\"true\" [rows]=\"10\" [paginator]=\"true\"\n [globalFilterFields]=\"crudConfig.tablero?.filters || []\" [tableStyle]=\"{'min-width': '75rem'}\"\n currentPageReportTemplate=\"Registro {first} al {last} de {totalRecords} {{idEntidad}}\"\n [showCurrentPageReport]=\"true\">\n <ng-template pTemplate=\"caption\">\n <div class=\"flex align-items-center justify-content-between\">\n <h5 class=\"m-0\">{{idEntidad}}</h5>\n <span class=\"p-input-icon-left\">\n <i class=\"pi pi-search\"></i>\n <input pInputText type=\"text\" (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\n placeholder=\"Buscar...\" />\n </span>\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th *ngFor=\"let col of columns\">\n {{col.label}}\n </th>\n <th>Acci\u00F3n</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\">\n <tr>\n <td *ngFor=\"let col of columns\">\n {{rowData[col.col]}}\n </td>\n <th>\n <button *ngIf=\"btn.read\" pButton pRipple [pTooltip]=\"btn.read.label\" [icon]=\"btn.read.icon\"\n class=\"p-button-rounded p-button-info mr-2\" (click)=\"redirect(rowData, 'read')\"></button>\n <button *ngIf=\"btn.update\" pButton pRipple [pTooltip]=\"btn.update.label\" [icon]=\"btn.update.icon\"\n class=\"p-button-rounded p-button-warning mr-2\" (click)=\"redirect(rowData, 'update')\"></button>\n <button *ngIf=\"btn.delete\" pButton pRipple [pTooltip]=\"btn.delete.label\" [icon]=\"btn.delete.icon\"\n class=\"p-button-rounded p-button-danger mr-2\" (click)=\"redirect(rowData, 'delete')\"></button>\n </th>\n </tr>\n </ng-template>\n </p-table>\n</div>", components: [{ type: i3.BlockUI, selector: "p-blockUI", inputs: ["autoZIndex", "baseZIndex", "blocked", "target", "styleClass"] }, { type: i4.Toolbar, selector: "p-toolbar", inputs: ["style", "styleClass"] }, { type: i5.Table, selector: "p-table", inputs: ["pageLinks", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "contextMenuSelectionMode", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "filterDelay", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "virtualScrollDelay", "virtualRowHeight", "columnResizeMode", "loadingIcon", "showLoader", "showInitialSortBadge", "stateStorage", "editMode", "totalRecords", "value", "columns", "first", "rows", "sortField", "sortOrder", "multiSortMeta", "selection", "contextMenuSelection", "frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "rowsPerPageOptions", "paginatorDropdownAppendTo", "showCurrentPageReport", "showJumpToPageDropdown", "selectionMode", "dataKey", "metaKeySelection", "globalFilterFields", "filterLocale", "scrollable", "scrollHeight", "virtualScroll", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "reorderableColumns", "loading", "rowHover", "customSort", "autoLayout", "exportFunction", "stateKey", "minBufferPx", "maxBufferPx"], outputs: ["selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i8.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { type: i9.Ripple, selector: "[pRipple]" }, { type: i10.InputText, selector: "[pInputText]" }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "tooltipZIndex", "escape", "tooltipDisabled", "pTooltip", "positionStyle", "tooltipStyleClass", "showDelay", "hideDelay", "life"] }] });
|
|
82
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TableroComponent, decorators: [{
|
|
83
|
+
type: Component,
|
|
84
|
+
args: [{
|
|
85
|
+
selector: 'sf-crudtablero',
|
|
86
|
+
templateUrl: './tablero.component.html'
|
|
87
|
+
}]
|
|
88
|
+
}], ctorParameters: function () { return [{ type: i1.GeneralService }, { type: i2.Router }]; }, propDecorators: { opciones: [{
|
|
89
|
+
type: Input
|
|
90
|
+
}], idEntidad: [{
|
|
91
|
+
type: Input
|
|
92
|
+
}], idKatios: [{
|
|
93
|
+
type: Input
|
|
94
|
+
}] } });
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGVyby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZi1jcnVkL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXJvL3RhYmxlcm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2YtY3J1ZC9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVyby90YWJsZXJvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR3pELE9BQU8sRUFBaUIsVUFBVSxFQUFFLE1BQU0sZ0RBQWdELENBQUM7Ozs7Ozs7Ozs7Ozs7QUFNM0YsTUFBTSxPQUFPLGdCQUFnQjtJQVczQixZQUNVLGNBQThCLEVBQzlCLE1BQWM7UUFEZCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVhmLGFBQVEsR0FBVSxFQUFFLENBQUM7UUFDckIsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUN2QixhQUFRLEdBQVcsRUFBRSxDQUFDO1FBRXhCLGVBQVUsR0FBZSxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQzFDLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsU0FBSSxHQUFVLEVBQUUsQ0FBQztRQUNqQixRQUFHLEdBQXlELEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFBO0lBSzNJLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFBO0lBQ3ZCLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENB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QyxDQUFDLENBQUMsQ0FBQztnQkFDNUcsTUFBSztZQUNQLEtBQUssUUFBUTtnQkFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDNUcsTUFBSztZQUNQO2dCQUNFLE1BQUs7U0FDUjtJQUNILENBQUM7OzhHQXRFVSxnQkFBZ0I7a0dBQWhCLGdCQUFnQixzSUNUN0IscXFGQWlETTs0RkR4Q08sZ0JBQWdCO2tCQUo1QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFdBQVcsRUFBRSwwQkFBMEI7aUJBQ3hDOzBIQUdVLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgR2VuZXJhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2VydmljZXMvZ2VuZXJhbC5zZXJ2aWNlJztcbmltcG9ydCB7IENvbmZpZ1RhYmxlcm8sIENydWRDb25maWcgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2VydmljZXMvbW9kZWxzL2NydWQtY29uZmlnLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2YtY3J1ZHRhYmxlcm8nLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGVyby5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVyb0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgb3BjaW9uZXM6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIGlkRW50aWRhZDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGlkS2F0aW9zOiBzdHJpbmcgPSAnJztcblxuICBwdWJsaWMgY3J1ZENvbmZpZzogQ3J1ZENvbmZpZyA9IG5ldyBDcnVkQ29uZmlnKCk7XG4gIHB1YmxpYyBlblByb2Nlc286IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGRhdGE6IGFueVtdID0gW107XG4gIHB1YmxpYyBidG46IHsgY3JlYXRlOiBhbnksIHJlYWQ6IGFueSwgdXBkYXRlOiBhbnksIGRlbGV0ZTogYW55IH0gPSB7IGNyZWF0ZTogdW5kZWZpbmVkLCByZWFkOiB1bmRlZmluZWQsIHVwZGF0ZTogdW5kZWZpbmVkLCBkZWxldGU6IHVuZGVmaW5lZCB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBnZW5lcmFsU2VydmljZTogR2VuZXJhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxuICApIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubG9hZENvbmZpZ0NydWQoKVxuICB9XG5cbiAgbG9hZENvbmZpZ0NydWQoKSB7XG4gICAgdGhpcy5lblByb2Nlc28gPSB0cnVlO1xuICAgIHRoaXMuZ2VuZXJhbFNlcnZpY2UuZ2V0Q3J1ZEJ5RW50aWRhZCh0aGlzLmlkS2F0aW9zLCB0aGlzLmlkRW50aWRhZClcbiAgICAgIC50aGVuKHJlcyA9PiB7XG4gICAgICAgIHRoaXMuY3J1ZENvbmZpZyA9IHJlcztcbiAgICAgICAgdGhpcy5nZXRJbmZvVGFibGVybyh0aGlzLmNydWRDb25maWcudGFibGVybyk7XG4gICAgICAgIHRoaXMubG9hZE9wdGlvbnMoKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgdGhpcy5lblByb2Nlc28gPSBmYWxzZTtcbiAgICAgIH0pXG4gIH1cblxuICBnZXRJbmZvVGFibGVybyhjb25maWdUYWJsZXJvOiBDb25maWdUYWJsZXJvKSB7XG4gICAgdGhpcy5nZW5lcmFsU2VydmljZS5nZW5lcmljUmVxdWVzdChjb25maWdUYWJsZXJvLm1ldGhvZCwgY29uZmlnVGFibGVyby5zZXJ2ZXIsIGNvbmZpZ1RhYmxlcm8uZW5kcG9pbnQpXG4gICAgICAudGhlbigocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5kYXRhID0gcmVzLmRhdGE7XG4gICAgICAgIHRoaXMuZW5Qcm9jZXNvID0gZmFsc2U7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgIHRoaXMuZW5Qcm9jZXNvID0gZmFsc2U7XG4gICAgICB9KVxuICB9XG5cbiAgbG9hZE9wdGlvbnMoKSB7XG4gICAgdGhpcy5idG4uY3JlYXRlID0gdGhpcy5vcGNpb25lcy5maW5kKHggPT4geC5sYWJlbCA9PSAnQ3JlYXInKTtcbiAgICB0aGlzLmJ0bi5yZWFkID0gdGhpcy5vcGNpb25lcy5maW5kKHggPT4geC5sYWJlbCA9PSAnVmlzdWFsaXphcicpO1xuICAgIHRoaXMuYnRuLnVwZGF0ZSA9IHRoaXMub3BjaW9uZXMuZmluZCh4ID0+IHgubGFiZWwgPT0gJ0VkaXRhcicpO1xuICAgIHRoaXMuYnRuLmRlbGV0ZSA9IHRoaXMub3BjaW9uZXMuZmluZCh4ID0+IHgubGFiZWwgPT0gJ0VsaW1pbmFyJyk7XG4gIH1cblxuICByZWRpcmVjdChkYXRhOiBhbnksIGFjY2lvbjogc3RyaW5nKSB7XG4gICAgc3dpdGNoIChhY2Npb24pIHtcbiAgICAgIGNhc2UgJ2NyZWF0ZSc6XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5idG4uY3JlYXRlPy52YWxvcj8ucmVkaXJlY3QgfHwgJycpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3JlYWQnOlxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMuYnRuLnJlYWQudmFsb3IucmVkaXJlY3QucmVwbGFjZSgnJGlkJywgZGF0YVt0aGlzLmNydWRDb25maWcudGFibGVyby5rZXldKSk7XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICd1cGRhdGUnOlxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMuYnRuLnVwZGF0ZS52YWxvci5yZWRpcmVjdC5yZXBsYWNlKCckaWQnLCBkYXRhW3RoaXMuY3J1ZENvbmZpZy50YWJsZXJvLmtleV0pKTtcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5idG4uZGVsZXRlLnZhbG9yLnJlZGlyZWN0LnJlcGxhY2UoJyRpZCcsIGRhdGFbdGhpcy5jcnVkQ29uZmlnLnRhYmxlcm8ua2V5XSkpO1xuICAgICAgICBicmVha1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWtcbiAgICB9XG4gIH1cbn1cbiIsIjxwLWJsb2NrVUkgW2Jsb2NrZWRdPVwiZW5Qcm9jZXNvXCI+XG4gICAgPGkgY2xhc3M9XCJwaSBwaS1jb2cgcGktc3BpblwiIHN0eWxlPVwiZm9udC1zaXplOiA1MHB4XCI+PC9pPlxuPC9wLWJsb2NrVUk+XG5cbjxkaXYgY2xhc3M9XCJjYXJkXCIgKm5nSWY9XCIhZW5Qcm9jZXNvXCI+XG4gICAgPHAtdG9vbGJhciBzdHlsZUNsYXNzPVwibWItNCBnYXAtMlwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwibGVmdFwiPlxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImJ0bi5jcmVhdGVcIiBwQnV0dG9uIHBSaXBwbGUgW2xhYmVsXT1cImJ0bi5jcmVhdGUubGFiZWxcIiBbaWNvbl09XCJidG4uY3JlYXRlLmljb25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tc3VjY2VzcyBtci0yXCIgKGNsaWNrKT1cInJlZGlyZWN0KHJvd0RhdGEsICdjcmVhdGUnKVwiPjwvYnV0dG9uPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvcC10b29sYmFyPlxuICAgIDxwLXRhYmxlICNkdCBbY29sdW1uc109XCJjcnVkQ29uZmlnLnRhYmxlcm8uY29sdW1uc1wiIFt2YWx1ZV09XCJkYXRhXCIgW3Jvd0hvdmVyXT1cInRydWVcIiBbcm93c109XCIxMFwiIFtwYWdpbmF0b3JdPVwidHJ1ZVwiXG4gICAgICAgIFtnbG9iYWxGaWx0ZXJGaWVsZHNdPVwiY3J1ZENvbmZpZy50YWJsZXJvPy5maWx0ZXJzIHx8IFtdXCIgW3RhYmxlU3R5bGVdPVwieydtaW4td2lkdGgnOiAnNzVyZW0nfVwiXG4gICAgICAgIGN1cnJlbnRQYWdlUmVwb3J0VGVtcGxhdGU9XCJSZWdpc3RybyB7Zmlyc3R9IGFsIHtsYXN0fSBkZSB7dG90YWxSZWNvcmRzfSB7e2lkRW50aWRhZH19XCJcbiAgICAgICAgW3Nob3dDdXJyZW50UGFnZVJlcG9ydF09XCJ0cnVlXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjYXB0aW9uXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cbiAgICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJtLTBcIj57e2lkRW50aWRhZH19PC9oNT5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtaW5wdXQtaWNvbi1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktc2VhcmNoXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgcElucHV0VGV4dCB0eXBlPVwidGV4dFwiIChpbnB1dCk9XCJkdC5maWx0ZXJHbG9iYWwoJGV2ZW50LnRhcmdldC52YWx1ZSwgJ2NvbnRhaW5zJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJCdXNjYXIuLi5cIiAvPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCIgbGV0LWNvbHVtbnM+XG4gICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiPlxuICAgICAgICAgICAgICAgICAgICB7e2NvbC5sYWJlbH19XG4gICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICA8dGg+QWNjacOzbjwvdGg+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1yb3dEYXRhIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiPlxuICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnNcIj5cbiAgICAgICAgICAgICAgICAgICAge3tyb3dEYXRhW2NvbC5jb2xdfX1cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDx0aD5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImJ0bi5yZWFkXCIgcEJ1dHRvbiBwUmlwcGxlIFtwVG9vbHRpcF09XCJidG4ucmVhZC5sYWJlbFwiIFtpY29uXT1cImJ0bi5yZWFkLmljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLWluZm8gbXItMlwiIChjbGljayk9XCJyZWRpcmVjdChyb3dEYXRhLCAncmVhZCcpXCI+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJidG4udXBkYXRlXCIgcEJ1dHRvbiBwUmlwcGxlIFtwVG9vbHRpcF09XCJidG4udXBkYXRlLmxhYmVsXCIgW2ljb25dPVwiYnRuLnVwZGF0ZS5pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi13YXJuaW5nIG1yLTJcIiAoY2xpY2spPVwicmVkaXJlY3Qocm93RGF0YSwgJ3VwZGF0ZScpXCI+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJidG4uZGVsZXRlXCIgcEJ1dHRvbiBwUmlwcGxlIFtwVG9vbHRpcF09XCJidG4uZGVsZXRlLmxhYmVsXCIgW2ljb25dPVwiYnRuLmRlbGV0ZS5pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1kYW5nZXIgbXItMlwiIChjbGljayk9XCJyZWRpcmVjdChyb3dEYXRhLCAnZGVsZXRlJylcIj48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L3AtdGFibGU+XG48L2Rpdj4iXX0=
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class SfCrudComponent {
|
|
4
|
+
constructor() { }
|
|
5
|
+
ngOnInit() {
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
SfCrudComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SfCrudComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9
|
+
SfCrudComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SfCrudComponent, selector: "lib-sf-crud", ngImport: i0, template: `
|
|
10
|
+
<p>
|
|
11
|
+
sf-crud works!
|
|
12
|
+
</p>
|
|
13
|
+
`, isInline: true });
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SfCrudComponent, decorators: [{
|
|
15
|
+
type: Component,
|
|
16
|
+
args: [{
|
|
17
|
+
selector: 'lib-sf-crud',
|
|
18
|
+
template: `
|
|
19
|
+
<p>
|
|
20
|
+
sf-crud works!
|
|
21
|
+
</p>
|
|
22
|
+
`,
|
|
23
|
+
styles: []
|
|
24
|
+
}]
|
|
25
|
+
}], ctorParameters: function () { return []; } });
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2YtY3J1ZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zZi1jcnVkL3NyYy9saWIvc2YtY3J1ZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFZbEQsTUFBTSxPQUFPLGVBQWU7SUFFMUIsZ0JBQWdCLENBQUM7SUFFakIsUUFBUTtJQUNSLENBQUM7OzZHQUxVLGVBQWU7aUdBQWYsZUFBZSxtREFSaEI7Ozs7R0FJVDs0RkFJVSxlQUFlO2tCQVYzQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixRQUFRLEVBQUU7Ozs7R0FJVDtvQkFDRCxNQUFNLEVBQUUsRUFDUDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zZi1jcnVkJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8cD5cbiAgICAgIHNmLWNydWQgd29ya3MhXG4gICAgPC9wPlxuICBgLFxuICBzdHlsZXM6IFtcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTZkNydWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxufVxuIl19
|