tuain-ng-forms-lib 0.12.3 → 0.12.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/tuain-ng-forms-lib.umd.js +145 -358
- package/bundles/tuain-ng-forms-lib.umd.js.map +1 -1
- package/esm2015/lib/components/elements/action.component.js +44 -0
- package/esm2015/lib/components/elements/field.component.js +38 -0
- package/esm2015/lib/components/elements/layout/form-header.component.js +1 -7
- package/esm2015/lib/components/elements/tables/table-record-action.component.js +3 -18
- package/esm2015/lib/tuain-ng-forms-lib.module.js +3 -5
- package/esm2015/public-api.js +3 -5
- package/fesm2015/tuain-ng-forms-lib.js +4 -210
- package/fesm2015/tuain-ng-forms-lib.js.map +1 -1
- package/lib/components/elements/{actions/action.component.d.ts → action.component.d.ts} +0 -4
- package/lib/components/elements/{fields/field.component.d.ts → field.component.d.ts} +1 -1
- package/lib/components/elements/layout/form-header.component.d.ts +2 -5
- package/lib/components/elements/tables/table-record-action.component.d.ts +1 -4
- package/package.json +1 -1
- package/public-api.d.ts +2 -4
- package/tuain-ng-forms-lib.metadata.json +1 -1
- package/esm2015/lib/components/elements/actions/action.component.js +0 -53
- package/esm2015/lib/components/elements/fields/field.component.js +0 -38
- package/esm2015/lib/components/elements/fields/password.component.js +0 -18
- package/esm2015/lib/services/icon-dictionary.service.js +0 -161
- package/lib/components/elements/fields/password.component.d.ts +0 -6
- package/lib/services/icon-dictionary.service.d.ts +0 -157
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tuain-ng-forms-lib.umd.js","sources":["../../../projects/tuain-ng-forms-lib/src/lib/services/icon-dictionary.service.ts","../../../projects/tuain-ng-forms-lib/src/lib/components/elements/actions/action.component.ts","../../../projects/tuain-ng-forms-lib/src/lib/classes/forms/form.constants.ts","../../../projects/tuain-ng-forms-lib/src/lib/components/elements/fields/field.component.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/tuain-ng-forms-lib/src/lib/components/elements/fields/password.component.ts","../../../projects/tuain-ng-forms-lib/src/lib/components/elements/layout/element.component.ts","../../../projects/tuain-ng-forms-lib/src/lib/components/elements/layout/form-error.component.ts","../../../projects/tuain-ng-forms-lib/src/lib/components/elements/layout/form-header.component.ts","../../../projects/tuain-ng-forms-lib/src/lib/components/elements/layout/section.component.ts","../../../projects/tuain-ng-forms-lib/src/lib/components/elements/layout/sub-section.component.ts","../../../projects/tuain-ng-forms-lib/src/lib/classes/forms/table/filter.ts","../../../projects/tuain-ng-forms-lib/src/lib/classes/forms/element.ts","../../../projects/tuain-ng-forms-lib/src/lib/classes/forms/table/column.ts","../../../projects/tuain-ng-forms-lib/src/lib/classes/forms/table/action.ts","../../../projects/tuain-ng-forms-lib/src/lib/classes/utilities.ts","../../../projects/tuain-ng-forms-lib/src/lib/classes/forms/table/row-data.ts","../../../projects/tuain-ng-forms-lib/src/lib/classes/forms/table/table.ts","../../../projects/tuain-ng-forms-lib/src/lib/components/elements/tables/table-filter.component.ts","../../../projects/tuain-ng-forms-lib/src/lib/components/elements/tables/table-record-action.component.ts","../../../projects/tuain-ng-forms-lib/src/lib/components/elements/tables/table-record-field.component.ts","../../../projects/tuain-ng-forms-lib/src/lib/components/elements/tables/table.component.ts","../../../projects/tuain-ng-forms-lib/src/lib/classes/forms/subsection.ts","../../../projects/tuain-ng-forms-lib/src/lib/classes/forms/section.ts","../../../projects/tuain-ng-forms-lib/src/lib/classes/forms/action.ts","../../../projects/tuain-ng-forms-lib/src/lib/classes/forms/field.ts","../../../projects/tuain-ng-forms-lib/src/lib/classes/forms/form.ts","../../../projects/tuain-ng-forms-lib/src/lib/services/form-manager.service.ts","../../../projects/tuain-ng-forms-lib/src/lib/services/event-manager.service.ts","../../../projects/tuain-ng-forms-lib/src/lib/services/file-manager.service.ts","../../../projects/tuain-ng-forms-lib/src/lib/components/forms/basic-form.ts","../../../projects/tuain-ng-forms-lib/src/lib/tuain-ng-forms-lib.module.ts","../../../projects/tuain-ng-forms-lib/src/tuain-ng-forms-lib.ts"],"sourcesContent":["export const iconDictionary = {\n SELECT: 'icmn-pushpin',\n selectHolder: 'icmn-user-check',\n validateAML: 'icmn-warning',\n NEW: 'icmn-file-empty',\n 'FORM-CREATE': 'icmn-file-empty',\n 'FORM-EDIT': 'icmn-pencil2',\n 'FORM-VIEW': 'icmn-file-text2',\n SHIELD: 'fa fa-shield',\n LOGIN: 'fa fa-sign-in',\n LOGOUT: 'fa fa-sign-out',\n VIEW: 'icmn-eye',\n EDIT: 'icmn-pencil',\n DETAIL: 'icmn-binoculars',\n DELETE: 'icmn-bin',\n SERVERPROCESS: 'icmn-cloud-check',\n DEFAULT: 'icmn-home',\n HOME: 'icmn-home',\n IMAGE: 'icmn-image',\n PICTURE: 'icmn-camera',\n TEXT: 'icmn-file-text',\n MOVEUP: 'icmn-arrow-up',\n MOVEDOWN: 'icmn-arrow-down',\n NEWAFFILIATION: 'icmn-profile',\n AUTONEWAFFILIATION: 'icmn-profile',\n PROFILE: 'icmn-profile',\n ZIPFILE: 'icmn-file-zip',\n COPY: 'icmn-copy',\n FOLDER: 'icmn-folder-open',\n TAGS: 'icmn-price-tags',\n BARCODE: 'icmn-barcode',\n BARCODE2: 'fa fa-barcode',\n KEYBOARD: 'fa fa-keyboard-o',\n CART: 'icmn-cart',\n CAMARACOMERCIO: 'icmn-book',\n SARLAFT: 'icmn-binoculars',\n SCREENING: 'icmn-user-check',\n ENTITY: 'icmn-library',\n COIN: 'icmn-coin-dollar',\n CREDITCARD: 'icmn-credit-card',\n CONTACTS: 'icmn-address-book',\n LOCATION: 'icmn-location',\n CODES: 'icmn-file-text',\n BPMCODES: 'icmn-file-text2',\n MAIL: 'icmn-envelop',\n MAP: 'icmn-map',\n WARNING: 'icmn-warning',\n NOTIFICATION: 'icmn-notification',\n QUESTION: 'icmn-question',\n INFO: 'icmn-info',\n SAVE: 'icmn-floppy-disk',\n INBOXFULL: 'icmn-drawer',\n INBOXEMPTY: 'icmn-drawer2',\n DATABASE: 'icmn-database',\n UNDO: 'icmn-undo2',\n REDO: 'icmn-redo2',\n CHAT: 'icmn-bubbles4',\n BRIEFCASE: 'icmn-briefcase',\n USER: 'icmn-user',\n ADDUSER: 'icmn-user-plus',\n REMOVEUSER: 'icmn-user-minus',\n SPINNER: 'icmn-spiiner3',\n SEARCH: 'icmn-search',\n ZOOMIN: 'icmn-zoom-in',\n ZOOMOUT: 'icmn-zoom-out',\n KEY: 'icmn-key',\n LOCK: 'icmn-lock',\n lockDoc: 'icmn-lock',\n UNLOCK: 'icmn-unlocked',\n CONFIG: 'icmn-wrench',\n TUNE: 'icmn-equalizer',\n GEAR: 'icmn-cog',\n ADMIN: 'fa fa-cogs',\n LIST: 'icmn-list',\n FORMRECORD: 'icmn-insert-template',\n PIE: 'icmn-pie-chart',\n GRAPH: 'icmn-stats-dots',\n TROPHY: 'icmn-trophy',\n GIFT: 'icmn-gift',\n GAUGE: 'icmn-meter',\n FIRE: 'icmn-fire',\n LAB: 'icmn-lab',\n DELIVER: 'icmn-truck',\n MOBILE: 'icmn-mobile',\n MOBILE2: 'icmn-mobile',\n RECHARGE: 'icmn-power-cord',\n TREE: 'icmn-tree',\n EARTH: 'icmn-earth',\n TARGET: 'icmn-target',\n POWER: 'icmn-switch',\n VERIFY: 'icmn-clipboard',\n UPLOAD: 'icmn-cloud-upload',\n DOWNLOAD: 'icmn-cloud-download',\n DOWNLOADSET: 'icmn-cloud-download',\n LINK: 'icmn-link',\n ATACH: 'icmn-atachment',\n EYE: 'icmn-eye',\n NOEYE: 'icmn-eye-blocked',\n BOOKMARK: 'icmn-bookmark',\n STAR: 'icmn-star-full',\n HEART: 'icmn-heart',\n HEARTBROKEN: 'icmn-heart-broken',\n HAPPY: 'icmn-happy',\n SAD: 'icmn-sad',\n ACTIVATE: 'icmn-checkmark',\n INACTIVATE: 'icmn-cross',\n APPROVE: 'icmn-checkmark',\n REJECT: 'icmn-cross',\n CANCEL: 'icmn-cross',\n CLOSE: 'icmn-ungroup',\n CLEAN: 'fa fa-eraser',\n CHECK: 'icmn-checkmark',\n UNCHECK: 'icmn-cross',\n SELECTROW: 'icmn-checkbox-unchecked',\n UNSELECTROW: 'icmn-checkbox-checked',\n CHECKED: 'icmn-checkbox-checked',\n UNCHECKED: 'icmn-checkbox-unchecked',\n ENTER: 'icmn-enter',\n EXIT: 'icmn-exit',\n CUT: 'icmn-scissors',\n FILTER: 'icmn-filter',\n PLAY: 'icmn-play2',\n STOP: 'icmn-stop',\n UP: 'icmn-circle-up',\n DOWN: 'icmn-circle-down',\n RIGHT: 'icmn-circle-right',\n LEFT: 'icmn-circle-left',\n SORTASC: 'icmn-sort-alpha-asc',\n SORTDSC: 'icmn-sort-alpha-desc',\n TABLE: 'icmn-table',\n OFFICE: 'icmn-office',\n SHARE: 'icmn-share',\n FACEBOOK: 'icmn-facebook',\n WHATSAPP: 'icmn-whatsapp',\n TWITTER: 'icmn-twitter',\n YOUTUBE: 'icmn-youtube',\n PDF: 'icmn-file-pdf',\n EXCEL: 'icmn-file-excel',\n HOLDER: 'icmn-profile',\n XXX: 'fa fa-first-order',\n BANK: 'fa fa-bank',\n CREDITCARD2: 'fa fa-credit-card-alt',\n BUS: 'fa fa-bus',\n TELEVISION: 'icmn-tv',\n BACK: 'fa fa-arrow-left',\n SEND: 'fa fa-paper-plane-o',\n TEXTFILE: 'fa fa-file-text-o',\n PERSON: 'fa fa-user',\n BATCHFILE: 'fa fa-wpforms',\n REQUESTS: 'icmn-stack',\n THUMBUP: 'fa fa-thumbs-o-up',\n THUMBDOWN: 'fa fa-thumbs-o-down',\n EXCLAMATION: 'fa fa-exclamation-circle',\n};\n\nexport class IconDictionaryService {\n mapIcon = (iconName) => (iconName && iconDictionary[iconName])\n ? iconDictionary[iconName] : iconDictionary.DEFAULT\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { IconDictionaryService } from '../../../services/icon-dictionary.service';\n\n@Component({\n selector: 'lib-action',\n template: `<ng-content></ng-content>`\n})\n\nexport class ActionComponent implements OnInit {\n inProgress: boolean;\n @Input() actionObject: any;\n @Input() disabled: boolean;\n @Input() formBusy: any;\n @Input() relatedField: any;\n\n @Input() style = 'primary';\n @Input() showLabel = true;\n\n constructor(private _iconDictionary: IconDictionaryService) { }\n\n ngOnInit() {\n this.start();\n }\n\n start() { }\n\n activate() {\n if (this.actionObject?.notifyActivation) {\n this.actionObject.notifyActivation();\n }\n }\n\n icon() {\n return this._iconDictionary.mapIcon(this.actionObject?.iconName);\n }\n\n get isVisible() {\n if (!this.actionObject?.restrictedOnField) {\n return true;\n }\n if ((this.actionObject?.restrictedOnOperator === '=='\n && this.relatedField === this.actionObject?.restrictedOnValue)\n || (this.actionObject?.restrictedOnOperator === '!='\n && this.relatedField !== this.actionObject?.restrictedOnValue)) {\n return true;\n }\n }\n}\n","export const componentConstants = {\n recordsPerPage: 10,\n // Constantes para el despliegue de formularios\n ELEMENTTYPE_ACTION: 'ACTION',\n ELEMENTTYPE_FIELD: 'FIELD',\n ELEMENTTYPE_TABLE: 'TABLE',\n // Acciones de formularios\n FORMACTION_TABLEACTION: 'TABLEACTION',\n FORMACTION_GETDATA: 'GETDATA',\n FORMACTION_GETTABLEDATA: 'GETTABLEDATA',\n FORMACTION_VALIDATE: 'VALIDATE',\n // Errores etándar de formularios\n FORMERROR_VALIDATION_CODE: '13',\n FORMERROR_TYPE_WARNING: 'WARNING',\n FORMERROR_REQUIRED_FIELDS: 'Todos los campos requeridos deben ser diligenciados',\n FORMERROR_VALIDATION_TITLE: 'Advertencia',\n FORMERROR_VALIDATION_FIELDS: 'Existen campos con problemas de validación',\n // Valores para los controles de navegació\n FORMNAVIGATION_FIRST: 'first',\n FORMNAVIGATION_PREVGROUP: 'prevgroup',\n FORMNAVIGATION_NEXTGROUP: 'nextgroup',\n FORMNAVIGATION_LAST: 'last',\n\n FIELDTYPE_ARRAY: 'ARRAY',\n FIELDTYPE_CHECK: 'CHECK',\n FIELDTYPE_DATE: 'DATE',\n FIELDTYPE_MAP: 'MAP',\n FIELDTYPE_CURRENCY: 'CURRENCY',\n FIELDTYPE_SELECT: 'SELECT',\n FIELDTYPE_TEXT: 'TEXT',\n FIELD_REQUIRED_MESSAGE: 'Campo requerido',\n\n FORMTABLEACTION_SORT: 'SORT',\n FORMTABLEACTION_REFRESH: 'REFRESH',\n FORMTABLEACTION_NAVIGATE: 'NAVIGATE',\n\n FORMTABLEACTION_INLINE: 'INLINE',\n FORMTABLEACTION_GLOBAL: 'GLOBAL',\n FORMTABLEACTION_ROWSELECTION: 'ROWSELECTION',\n FORMTABLEACTION_SELECTION: 'SELECTION',\n\n TABLE_SORT_ASCENDING: 'asc',\n TABLE_SORT_DESCENDING: 'desc',\n\n SERVICE_ERRORCODE_NOERROR: '00',\n};\n\nexport const operators = {\n G: '>',\n L: '<',\n GE: '>=',\n LE: '<=',\n EQ: '==',\n NOT_EQ: '!=',\n CONTENT: 'Contiene',\n NOT_CONTENT: 'No Contiene',\n BETWEEN: 'Entre',\n};\n\nexport const tableFieldStyles = {\n TEXT: {\n 'text-align': 'left'\n },\n TITLE: {\n 'text-align': 'left'\n },\n LABEL: {\n 'text-align': 'left'\n },\n MESSAGE: {\n 'text-align': 'left'\n },\n NUMBER: {\n 'text-align': 'right'\n },\n DATE: {\n 'text-align': 'right'\n },\n CHECK: {\n 'text-align': 'center'\n },\n ARRAY: {\n 'text-align': 'left'\n },\n SELECT: {\n 'text-align': 'left'\n }\n};\n\nexport const DEFAULT_STATE_FLOW = {\n defaultState: 'CREATE',\n states: ['CREATE', 'EDIT', 'VIEW'],\n transitions: [\n { name: 'VIEW1', origin: 'CREATE', destination: 'VIEW' },\n { name: 'VIEW2', origin: 'EDIT', destination: 'VIEW' },\n { name: 'EDIT1', origin: 'CREATE', destination: 'EDIT' },\n { name: 'EDIT2', origin: 'VIEW', destination: 'EDIT' },\n { name: 'CREATE1', origin: 'EDIT', destination: 'CREATE' },\n { name: 'CREATE2', origin: 'VIEW', destination: 'CREATE' },\n ]\n};\n","import { Component, OnInit, Input } from '@angular/core';\nimport { componentConstants } from '../../../classes/forms/form.constants';\nimport { FieldDescriptor } from '../../../classes/forms/field';\n\n@Component({\n selector: 'lib-field',\n template: `<ng-content></ng-content>`\n})\nexport class FieldComponent implements OnInit {\n componentConstants: any;\n @Input() fieldObject: FieldDescriptor;\n @Input() disabled: boolean;\n\n constructor() {\n this.componentConstants = { ...componentConstants };\n }\n\n ngOnInit() {\n this.fieldObject.widget = this;\n this.start();\n }\n\n start() { }\n\n focus() { }\n\n onInputChange() {\n setTimeout(() => this.fieldObject.notifyEditionPartial(), 50);\n }\n\n onChangeContent() {\n setTimeout(() => this.fieldObject.notifyEditionFinish(), 50);\n }\n\n onShowInfo() {\n setTimeout(() => this.fieldObject.notifyEditionDetailRequest(), 50);\n }\n\n numberInputValidation(event) {\n const k = event.charCode;\n return (k > 47 && k < 58);\n }\n}\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 Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\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","import { Component, OnInit } from '@angular/core';\nimport { FieldComponent } from './field.component';\n\n@Component({\n selector: 'lib-password',\n template: `<ng-content></ng-content>`\n})\nexport class PasswordComponent extends FieldComponent implements OnInit {\n inputType = 'password';\n\n togglePwdView() {\n this.inputType = (this.inputType === 'password') ? 'text' : 'password';\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { componentConstants } from '../../../classes/forms/form.constants';\n\n@Component({\n selector: 'lib-element',\n template: `<ng-content></ng-content>`\n})\nexport class ElementComponent implements OnInit {\n componentConstants: any;\n\n @Input() formElement: any;\n @Input() formManager: any;\n\n constructor() {\n this.componentConstants = { ...componentConstants };\n }\n\n ngOnInit() {\n this.start();\n }\n\n start() { }\n\n get visible() {\n const visible = this.formElement?.visible ?? true;\n return visible && this.formElement?.viewOnState(this.formManager?.currentState);\n }\n\n get disabled() {\n const disabled = this.formElement?.disabled ?? false;\n return disabled || !this.formElement?.enabledOnState(this.formManager?.currentState);\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-form-error',\n template: `<ng-content></ng-content>`\n})\nexport class FormErrorComponent {\n componentConstants: any;\n @Input() errorTitle: any;\n @Input() errorMessage: any;\n @Input() errorType: any;\n}\n","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-form-header',\n template: `<ng-content></ng-content>`\n})\nexport class FormHeaderComponent implements OnInit {\n @Input() formManager: any;\n @Input() icon: any;\n @Input() goBackAction: boolean;\n @Input() showTitle: any;\n @Input() headerActions: any;\n @Output() goBackEvent: EventEmitter<object> = new EventEmitter<object>();\n navigation: any;\n\n goBackForm() {\n this.goBackEvent.emit();\n }\n\n ngOnInit() {\n this.navigation = (this.formManager?.formManagerService?.pageStack)\n ? Object.keys(this.formManager.formManagerService.pageStack) : null;\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-section',\n template: `<ng-content></ng-content>`\n})\nexport class SectionComponent implements OnInit {\n @Input() sectionObject: any;\n @Input() formManager: any;\n\n ngOnInit() {\n this.start();\n }\n\n start() { }\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-subsection',\n template: `<ng-content></ng-content>`\n})\nexport class SubSectionComponent implements OnInit {\n @Input() subSection: any;\n @Input() showHeader: any;\n @Input() formManager: any;\n\n ngOnInit() {\n this.start();\n }\n\n start() { }\n}\n","export class FieldSearch {\n fieldCode: string;\n fieldAlias: string;\n fieldTitle: string;\n fieldTypeCode: string;\n operators: string[];\n alignment: string;\n format: string;\n constructor(filterDefinition) {\n this.fieldCode = filterDefinition.fieldCode;\n this.fieldAlias = filterDefinition.fieldAlias || filterDefinition.fieldCode;\n this.fieldTitle = filterDefinition.fieldTitle;\n this.fieldTypeCode = filterDefinition.fieldTypeCode;\n this.operators = filterDefinition.operators;\n this.alignment = filterDefinition.alignment;\n this.format = filterDefinition.format;\n }\n}\n\nexport interface AdvancedFilterItem {\n fieldSearch: FieldSearch;\n operator: string;\n fieldValue1: string;\n fieldValue2: string;\n}\n\nexport class Filter {\n filterModeSimple: boolean;\n advancedFilter: AdvancedFilterItem[];\n simpleFilterWords: string[];\n constructor() {\n this.filterModeSimple = true;\n this.advancedFilter = [];\n this.simpleFilterWords = [];\n }\n}\n","import { componentConstants } from './form.constants';\n\nexport class FormElement {\n protected _visible: boolean;\n protected _visibleForced: boolean;\n protected _isForced: boolean;\n disabled: boolean;\n visibleStates: string[];\n enabledStates: string[];\n widget: any;\n type: string;\n\n constructor(elementDefinition) {\n this._isForced = false;\n this.setVisibleStates(elementDefinition.visibleStates);\n this.setEnabledStates(elementDefinition.enabledStates);\n this._visibleForced = false;\n this.disabled = elementDefinition?.disabled ?? false;\n this.setVisibility(elementDefinition?.visible ?? true);\n this.widget = null;\n }\n\n isField() { return this.type === componentConstants.ELEMENTTYPE_FIELD; }\n isAction() { return this.type === componentConstants.ELEMENTTYPE_ACTION; }\n isTable() { return this.type === componentConstants.ELEMENTTYPE_TABLE; }\n\n setVisibleStates(newStates: any) {\n const visibleStates = (!Array.isArray(newStates) && typeof newStates === 'string')\n ? newStates.split(',').map(state => state.trim()).filter(state => state.length > 0)\n : newStates;\n this.visibleStates = (Array.isArray(visibleStates)) ? visibleStates : [];\n }\n\n setEnabledStates(newStates: any) {\n const enabledStates = (!Array.isArray(newStates) && typeof newStates === 'string')\n ? newStates.split(',').map(state => state.trim()).filter(state => state.length > 0)\n : newStates;\n this.enabledStates = (Array.isArray(enabledStates)) ? enabledStates : [];\n }\n\n viewOnState(state) { return (this.visibleStates && state) ? this.visibleStates.includes(state) : false; }\n enabledOnState(state) { return (this.enabledStates && state) ? this.enabledStates.includes(state) : false; }\n\n supportState(state) { return this.viewOnState(state); }\n supportMode(state) { return this.viewOnState(state); }\n\n get visible() { return (this._isForced) ? this._visibleForced : this._visible; }\n set visible(visible: boolean) { this.setVisibility(visible); }\n\n setVisibility(visible: boolean, forced: boolean = null) {\n this._visible = visible && true;\n if (forced != null) {\n this._isForced = forced;\n }\n }\n\n show(forced?: boolean) {\n this._visible = true;\n if (forced !== null) {\n this._isForced = forced;\n this._visibleForced = true;\n }\n }\n\n hide(forced?: boolean) {\n this._visible = false;\n if (forced !== null) {\n this._isForced = forced;\n this._visibleForced = false;\n }\n }\n\n enable() { this.disabled = false; }\n disable() { this.disabled = true; }\n\n get enabled() { return !this.disabled; }\n get editable() { return !this.disabled; }\n}\n","import { componentConstants, tableFieldStyles } from '../form.constants';\n\nexport class RecordTableColumn {\n fieldCode: string;\n fieldTitle: string;\n fieldType: string;\n fieldAlignment: string;\n fieldFormat: string;\n visible: boolean;\n sortable: boolean;\n customAttributes: any;\n\n constructor(recTableColReceived) {\n if (recTableColReceived) {\n this.fieldCode = recTableColReceived.fieldCode;\n this.fieldTitle = recTableColReceived.fieldTitle;\n this.fieldType = recTableColReceived.fieldTypeCode || componentConstants.FIELDTYPE_TEXT;\n const defaultTypeAlignment = (tableFieldStyles[this.fieldType] != null) ? tableFieldStyles[this.fieldType]['text-align'] : 'left';\n this.fieldAlignment = (recTableColReceived.alignment != null) ? recTableColReceived.alignment.toLowerCase() : defaultTypeAlignment;\n this.visible = recTableColReceived?.visible ?? true;\n this.sortable = recTableColReceived?.sortable ?? false;\n this.fieldFormat = recTableColReceived.format || '';\n this.customAttributes = recTableColReceived?.customAttributes ?? {};\n }\n }\n}\n","export class TableAction {\n visibleStates: string[];\n enabledStates: string[];\n newState: string;\n\n actionCode: string;\n actionTitle: string;\n iconName: string;\n actionType: string;\n actionClass: string;\n stateField: string;\n\n backend: boolean;\n restrictedOnField: string;\n restrictedOnValue: string;\n restrictedOnOperator: string;\n customAttributes: any;\n\n constructor(actionDefinition) {\n this.actionCode = actionDefinition.actionCode;\n this.actionTitle = actionDefinition.actionTitle;\n this.iconName = actionDefinition.iconName || this.actionCode;\n this.actionType = actionDefinition.actionType || 'STANDARD';\n this.actionClass = actionDefinition.actionClass || 'INLINE';\n this.newState = actionDefinition.newState;\n this.stateField = actionDefinition.stateField || '';\n\n this.visibleStates = actionDefinition.visibleStates || [];\n this.enabledStates = actionDefinition.enabledStates || [];\n this.backend = actionDefinition?.serverAction ?? false;\n this.restrictedOnField = actionDefinition.fieldRestrictedCode || '';\n this.restrictedOnValue = actionDefinition.valueRestricted || '';\n this.restrictedOnOperator = actionDefinition.operatorRestricted || '';\n this.customAttributes = actionDefinition?.customAttributes ?? {};\n }\n\n supportMode(state) { return this.viewOnState(state); }\n\n viewOnState(state) { return this.visibleStates.includes(state); }\n enabledOnState(state) { return this.enabledStates.includes(state); }\n}\n","export function formatCurrency(inputValue) {\n if (!inputValue) { return null; }\n const numeralDecimalMark = '.';\n const numeralPositiveOnly = false;\n const stripLeadingZeroes = true;\n const numeralIntegerScale = 12;\n const numeralDecimalScale = 2;\n const delimiter = ',';\n let parts;\n let partInteger;\n let partDecimal = '';\n\n // Se eliminan los caracteres alfabéticos\n let outputValue = inputValue.toString();\n if (!outputValue) {\n return;\n }\n /**\n * Se remplaza el primer caracter de marca decimal con el marcador reservado\n * Se eliminan los caractertes no numéricos excepto el signo menos y 'M'\n * utilizado como separador decimal en este punto, eliminando los prefijos\n * Se remplaza el caracter menos por un marcador resertvado\n * Se eliminan todos los demás caracteres menos en caso de estar presentes\n * Se remplaza el marcador de caracter menos (si está presente)\n * Se remplaza el marcador de separación decimal\n */\n let value = outputValue.replace(/[A-Za-z]/g, '')\n .replace(numeralDecimalMark, 'M')\n .replace(/[^\\dM-]/g, '')\n .replace(/^\\-/, 'N')\n .replace(/\\-/g, '')\n .replace('N', numeralPositiveOnly ? '' : '-')\n .replace('M', numeralDecimalMark);\n // Se eliminan los ceros a la izquierda\n if (stripLeadingZeroes) {\n value = value.replace(/^(-)?0+(?=\\d)/, '$1');\n }\n // Se separa la parte entera de la parte decimal\n partInteger = value;\n if (value.indexOf(numeralDecimalMark) >= 0) {\n parts = value.split(numeralDecimalMark);\n partInteger = parts[0];\n partDecimal = numeralDecimalMark + parts[1].slice(0, numeralDecimalScale);\n }\n if (numeralIntegerScale > 0) {\n partInteger = partInteger.slice(0, numeralIntegerScale + (value.slice(0, 1) === '-' ? 1 : 0));\n }\n // Se separan los digitos de acuerdo a la configuraciñon de agrupación\n partInteger = partInteger.replace(/(\\d)(?=(\\d{3})+$)/g, '$1' + delimiter);\n outputValue = partInteger.toString() + (numeralDecimalScale > 0 ? partDecimal.toString() : '');\n return outputValue;\n}\n","import { formatCurrency } from '../../utilities';\nimport { RecordTableColumn } from './column';\nimport { operators, componentConstants } from '../form.constants';\n\nexport class TableRecordData {\n recordId: string;\n selected: boolean;\n recordData: any = {};\n\n constructor(recordReceived, recordDefinition: RecordTableColumn[], selectionFieldName = null) {\n const { tableRecordId, recordData } = recordReceived;\n this.recordId = tableRecordId;\n this.selected = false;\n this.recordData = {};\n if (!recordDefinition || recordDefinition.length === 0 || !recordData || recordData.length === 0) {\n return;\n }\n const fieldNames = recordDefinition.map(column => column.fieldCode);\n if (Array.isArray(recordData)) {\n const rawRecordData = recordData.filter(fieldData => fieldData.fieldCode && fieldNames.includes(fieldData.fieldCode));\n rawRecordData.forEach(fieldData => {\n const { fieldCode, fieldValue } = fieldData;\n const fieldDef = recordDefinition.find(column => column.fieldCode === fieldCode);\n const formattedFieldValue = this.formatFieldValue(fieldDef.fieldType, fieldValue);\n this.recordData[fieldCode] = formattedFieldValue;\n if (fieldCode === selectionFieldName) {\n this.selected = fieldValue;\n }\n });\n } else {\n const fields = Object.keys(recordData);\n fields.forEach(fieldCode => {\n const fieldValue = recordData[fieldCode];\n const fieldDef = recordDefinition.find(column => column.fieldCode === fieldCode);\n const formattedFieldValue = this.formatFieldValue(fieldDef.fieldType, fieldValue);\n this.recordData[fieldCode] = formattedFieldValue;\n });\n }\n }\n\n formatFieldValue(fieldType, fieldValue) {\n if (fieldType === componentConstants.FIELDTYPE_CURRENCY) {\n return formatCurrency(fieldValue);\n } else if (fieldType === componentConstants.FIELDTYPE_DATE && fieldValue) {\n return new Date(fieldValue).toISOString().split('T')[0];\n }\n return fieldValue || '';\n }\n\n toggleSelect() {\n this.selected = !this.selected;\n }\n\n select() {\n this.selected = true;\n }\n\n unselect() {\n this.selected = false;\n }\n\n get recordIdKey() {\n return (typeof this.recordId === 'object')\n ? JSON.stringify(this.recordId) : this.recordId;\n }\n\n getFieldValue(fieldCode) {\n return (fieldCode && this.recordData[fieldCode])\n ? this.recordData[fieldCode] : null;\n }\n\n hasPattern(words) {\n if (!words || words.length === 0) {\n return true;\n }\n for (const fieldCode in this.recordData) {\n if (this.recordData.hasOwnProperty(fieldCode)) {\n for (const word of words) {\n const term = word.toUpperCase();\n const fieldValue = this.recordData[fieldCode];\n if (fieldValue.toString().toUpperCase().includes(term)) {\n return true;\n }\n }\n }\n }\n return false;\n }\n\n hasCondition(advancedFilter) {\n if (!advancedFilter || advancedFilter.length === 0) {\n return true;\n }\n for (const condition of advancedFilter) {\n const fieldCode = condition.fieldSearch.fieldCode;\n if (this.recordData.hasOwnProperty(fieldCode)) {\n const fieldValue = this.recordData[fieldCode].toString().toUpperCase();\n const conditionField1Value = condition?.fieldValue1?.toString().toUpperCase();\n const conditionField2Value = condition.fieldValue2.toString().toUpperCase();\n if (condition.operator === operators.G && fieldValue <= conditionField1Value) {\n return false;\n }\n if (condition.operator === operators.L && fieldValue >= conditionField1Value) {\n return false;\n }\n if (condition.operator === operators.GE && fieldValue < conditionField1Value) {\n return false;\n }\n if (condition.operator === operators.LE && fieldValue > conditionField1Value) {\n return false;\n }\n if (condition.operator === operators.EQ) {\n return fieldValue === conditionField1Value;\n }\n if (condition.operator === operators.NOT_EQ && fieldValue === conditionField1Value) {\n return false;\n }\n if (condition.operator === operators.CONTENT && !fieldValue.includes(conditionField1Value)) {\n return false;\n }\n if (condition.operator === operators.NOT_CONTENT && fieldValue.includes(conditionField1Value)) {\n return false;\n }\n if (condition.operator === operators.BETWEEN && (fieldValue < conditionField1Value\n || fieldValue > conditionField2Value)) {\n return false;\n }\n }\n }\n return true;\n }\n}\n","import { Subject } from 'rxjs';\nimport { componentConstants } from '../form.constants';\nimport { FormElement } from '../element';\nimport { FieldSearch, Filter, AdvancedFilterItem } from './filter';\nimport { RecordTableColumn } from './column';\nimport { TableAction } from './action';\nimport { TableRecordData } from './row-data';\n\nexport const TABLE_FILTER_TYPES = {\n simpleFilterChange: 'SIMPLE_CHANGE',\n simpleFilterFinish: 'SIMPLE_FINISH',\n complexFilterAdd: 'COMPLEX_ADD',\n complexFilterRemove: 'COMPLEX_REMOVE',\n};\n\nexport interface TableFilterEvent {\n eventType: string;\n simpleFilterString: string;\n complexFilterItem: AdvancedFilterItem;\n itemName: string;\n}\n\nexport interface TableActionEvent {\n actionCode: string;\n recordId: any;\n recordData: any;\n}\n\nexport interface TableEvent {\n tableCode: string;\n actionCode: string;\n actionDetail: any;\n}\n\nexport class RecordTable extends FormElement {\n private readonly _inlineActionTrigger = new Subject<TableEvent>();\n private readonly _globalActionTrigger = new Subject<TableEvent>();\n private readonly _recordSelectionTrigger = new Subject<TableEvent>();\n private readonly _selectionActionTrigger = new Subject<TableEvent>();\n private readonly _getDataTrigger = new Subject<TableEvent>();\n tableRecords: TableRecordData[];\n tableRecordObj = {};\n visibleRecords: TableRecordData[];\n columns: RecordTableColumn[];\n private _tableColumnObj = {};\n private _appendPages: boolean;\n selectable: boolean;\n selectionBackend: boolean;\n selectionField: RecordTableColumn;\n private _actions: TableAction[];\n private _actionsObj = {};\n allSelected = false;\n\n tableCode: string;\n tableTitle: string;\n currentPage: number;\n totalPages: number;\n requestedPage: number;\n recordsPerPage: number;\n totalRecordsNumber: number;\n recordsNumber: number;\n sorting: any;\n\n waiting: boolean;\n clientPaging: boolean;\n\n simpleFilter: boolean;\n complexFilter: boolean;\n sortable: boolean;\n filterConfig: FieldSearch[];\n filterObject: Filter;\n customAttributes: any;\n\n constructor(tableReceived) {\n super(tableReceived);\n this.type = componentConstants.ELEMENTTYPE_TABLE;\n\n this.waiting = false;\n this.complexFilter = false;\n this.currentPage = 1;\n this.totalPages = 1;\n this.requestedPage = 1;\n\n this.columns = [];\n this._tableColumnObj = {};\n this._actions = [];\n this._actionsObj = {};\n this.filterConfig = [];\n this.filterObject = new Filter();\n this.tableRecords = [];\n\n this.tableCode = tableReceived.tableCode;\n this.tableTitle = tableReceived.tableTitle;\n this.clientPaging = tableReceived?.clientPaging ?? true;\n this.simpleFilter = tableReceived?.simpleFilter ?? false;\n this._appendPages = tableReceived?.append ?? false;\n this.selectable = tableReceived?.selectable ?? false;\n this.selectionBackend = tableReceived?.selectionBackend ?? false;\n this.customAttributes = tableReceived?.customAttributes ?? {};\n\n this.sortable = tableReceived?.sortable ?? false;\n this.sorting = { columnName: '', direction: '' };\n this.recordsPerPage = componentConstants.recordsPerPage;\n\n if (tableReceived.fields) {\n for (const columnReceived of tableReceived.fields) {\n const columnDefinition = new RecordTableColumn(columnReceived);\n this.columns.push(columnDefinition);\n this._tableColumnObj[columnDefinition.fieldCode] = columnDefinition;\n }\n }\n if (tableReceived.actions) {\n const tableActions = tableReceived.actions.map(objDef => {\n let visibleStates = objDef.visibleStates;\n let enabledStates = objDef.enabledStates;\n if (!visibleStates) {\n visibleStates = (objDef.actionModes || '').split(',')\n .map(state => state.trim())\n .filter(state => state.length > 0);\n enabledStates = (objDef.actionModes || '').split(',')\n .map(state => state.trim())\n .filter(state => state.length > 0);\n }\n return { ...objDef, visibleStates, enabledStates };\n });\n for (const actionReceived of tableActions) {\n const inlineAction = new TableAction(actionReceived);\n this._actions.push(inlineAction);\n this._actionsObj[inlineAction.actionCode] = inlineAction;\n }\n }\n if (tableReceived.filters && tableReceived.filters.length > 0) {\n this.complexFilter = true;\n for (const filterReceived of tableReceived.filters) {\n const filterItem = new FieldSearch(filterReceived);\n this.filterConfig.push(filterItem);\n }\n }\n if (this.selectable) {\n this.selectionField = this.columns\n .find(column => column.fieldCode === tableReceived?.selectionField);\n }\n }\n\n get inlineActionTrigger() { return this._inlineActionTrigger; }\n get globalActionTrigger() { return this._globalActionTrigger; }\n get selectionActionTrigger() { return this._selectionActionTrigger; }\n get recordSelectionTrigger() { return this._recordSelectionTrigger; }\n get getDataTrigger() { return this._getDataTrigger; }\n\n get hasActions() { return (this._actions.length > 0); }\n get selectionFieldName() { return this.selectionField?.fieldCode ?? null; }\n get columnNames() { return Object.keys(this._tableColumnObj); }\n\n get records() { return this.visibleRecords; }\n set records(records) { this.replaceRecords(records); }\n get selectedRecords() {\n return this.tableRecords.filter(rec => rec.selected)\n .map(rec => rec.recordId);\n }\n\n appendRecords(records) { this.setTableRecords(records, true); }\n replaceRecords(records) { this.setTableRecords(records, false); }\n columnDefinition(fieldCode) { return this._tableColumnObj[fieldCode]; }\n putOnWait() { this.waiting = true; }\n freeWaiting() { this.waiting = false; }\n getActionObject(actionCode) { return this.getAction(actionCode); }\n\n notifyGlobalAction(actionCode) {\n const tableEvent: TableEvent = {\n tableCode: this.tableCode,\n actionCode,\n actionDetail: null\n };\n this._globalActionTrigger.next(tableEvent);\n }\n\n notifyInlineAction(tableActionEvent: TableActionEvent) {\n const tableEvent: TableEvent = {\n tableCode: this.tableCode,\n actionCode: tableActionEvent.actionCode,\n actionDetail: {\n recordId: tableActionEvent.recordId,\n recordData: tableActionEvent.recordData\n }\n };\n this._inlineActionTrigger.next(tableEvent);\n }\n\n notifyRecordSelection(recordId) {\n const record = this.getTableRecord(recordId);\n if (!record) { return; }\n record.toggleSelect();\n const tableEvent: TableEvent = {\n tableCode: this.tableCode,\n actionCode: null,\n actionDetail: {\n recordId: record.recordId,\n recordData: record.recordData\n }\n };\n this.recordSelectionTrigger.next(tableEvent);\n }\n\n notifySelectionAction(actionCode) {\n const tableEvent: TableEvent = {\n tableCode: this.tableCode,\n actionCode,\n actionDetail: {\n selectedRecords: this.selectedRecords\n }\n };\n this._selectionActionTrigger.next(tableEvent);\n }\n\n notifyGetDataAction(requestedPage = null) {\n this.updateVisibleRecords();\n this.requestedPage = requestedPage || this.currentPage;\n const tableEvent: TableEvent = {\n tableCode: this.tableCode,\n actionCode: null,\n actionDetail: null,\n };\n this._getDataTrigger.next(tableEvent);\n }\n\n clean() {\n this.tableRecords = [];\n this.tableRecordObj = {};\n }\n\n selectAll() {\n this.allSelected = true;\n this.tableRecords.forEach(record => record.select());\n }\n\n unSelectAll() {\n this.allSelected = false;\n this.tableRecords.forEach(record => record.unselect());\n }\n\n setTableRecords(tableRecords, append) {\n if (!append) { this.clean(); }\n const newRecordsObj = { ...this.tableRecordObj };\n const newRecords = [...this.tableRecords];\n for (const tableRecord of tableRecords) {\n const recordReceived: TableRecordData = new TableRecordData(tableRecord, this.columns,\n this.selectionField?.fieldCode);\n const recordIdKey = recordReceived.recordIdKey;\n newRecords.push(recordReceived);\n newRecordsObj[recordIdKey] = recordReceived;\n }\n this.tableRecords = newRecords;\n this.tableRecordObj = newRecordsObj;\n this.updateVisibleRecords();\n }\n\n updateVisibleRecords() {\n if (!this.clientPaging || !this.tableRecords || this.tableRecords.length === 0) {\n this.visibleRecords = this.tableRecords;\n }\n this.visibleRecords = (this.filterObject.filterModeSimple)\n ? this.tableRecords.filter(record => record.hasPattern(this.filterObject.simpleFilterWords))\n : this.tableRecords.filter(record => record.hasCondition(this.filterObject.advancedFilter));\n }\n\n updateFromServer(tableReceived) {\n this.visible = tableReceived?.visible || true;\n this.currentPage = parseInt(tableReceived.currentPage, 10) || 1;\n this.totalPages = tableReceived.totalPages || 1;\n this.recordsPerPage = tableReceived.recordsPerPage;\n this.recordsNumber = tableReceived.recordsNumber;\n this.totalRecordsNumber = tableReceived.totalRecordsNumber;\n\n this.sorting.columnName = tableReceived.sortingColumn || '';\n this.sorting.direction = tableReceived.sortingDirection || '';\n this.requestedPage = 1;\n this.waiting = false;\n\n this.clean();\n if (this._appendPages) {\n this.replaceRecords(tableReceived.tableRecords);\n } else {\n this.appendRecords(tableReceived.tableRecords);\n }\n }\n\n getTableRecord(recordId) {\n const recordIdKey = (typeof recordId === 'object') ? JSON.stringify(recordId) : recordId;\n return (this.tableRecordObj && recordId && this.tableRecordObj[recordId])\n ? this.tableRecordObj[recordId] : null;\n }\n\n getAction(actionCode) {\n return (this._actionsObj && actionCode && this._actionsObj[actionCode])\n ? this._actionsObj[actionCode] : null;\n }\n\n getActions(actionClass: string = componentConstants.FORMTABLEACTION_INLINE, actionTypes: string[] = null) {\n return this._actions.filter(actionDef => {\n const typeIncluded = (actionTypes) ? actionTypes.includes(actionDef.actionType) : true;\n return actionDef.actionClass === actionClass && typeIncluded;\n });\n }\n\n // Filtros\n\n set simpleFilterText(filterText) {\n let terms = (filterText) ? filterText.split(' ') : null;\n if (terms && terms.length > 0) {\n terms = terms.filter((term) => term !== '');\n }\n this.filterObject.filterModeSimple = true;\n this.filterObject.simpleFilterWords = terms || [];\n }\n\n changeFilterMode(toSimple) {\n this.filterObject.filterModeSimple = toSimple;\n }\n\n addFilterRestriction(filterTerm: AdvancedFilterItem) {\n this.filterObject.advancedFilter.push(filterTerm);\n }\n\n removeFilterRestriction(fieldCode) {\n const filterIndex = this.filterObject.advancedFilter.findIndex((filterDef) => {\n return filterDef.fieldSearch.fieldCode === fieldCode;\n });\n const filterToRemove = this.filterObject.advancedFilter[filterIndex];\n this.filterObject.advancedFilter.splice(filterIndex, 1);\n return filterToRemove;\n }\n\n get availableFilters() {\n return this.filterConfig.filter((fieldSearch) => {\n const currentFilter = this.filterObject.advancedFilter.find((filterItem) => {\n return filterItem.fieldSearch.fieldCode === fieldSearch.fieldCode;\n });\n return !currentFilter;\n });\n }\n\n get currentFilter() {\n const compactFilter: any = {};\n if (this.filterObject.filterModeSimple) {\n compactFilter.simpleFilterWords = this.filterObject.simpleFilterWords;\n } else {\n compactFilter.advancedFilter = [];\n this.filterObject.advancedFilter.forEach((condition) => {\n const simplifiedCondition = {\n fieldCode: condition.fieldSearch.fieldCode,\n fieldAlias: condition.fieldSearch.fieldAlias,\n operator: condition.operator,\n fieldValue1: condition.fieldValue1,\n fieldValue2: condition.fieldValue2,\n };\n compactFilter.advancedFilter.push(simplifiedCondition);\n });\n }\n return compactFilter;\n }\n\n // Ordenamiento\n\n setRequiredOrder(columnField) {\n if (columnField !== this.sorting.columnName) {\n this.sorting.columnName = columnField;\n this.sorting.direction = componentConstants.TABLE_SORT_ASCENDING;\n } else {\n if (this.sorting.direction === componentConstants.TABLE_SORT_ASCENDING) {\n this.sorting.direction = componentConstants.TABLE_SORT_DESCENDING;\n } else {\n this.sorting.direction = componentConstants.TABLE_SORT_ASCENDING;\n }\n }\n }\n\n localSortData() {\n if (!this.sorting.columnName || !this.sorting.direction) { return; }\n this.tableRecords = this.tableRecords\n .sort((a, b) => this.recordCompare(a, b, this.sorting.columnName, this.sorting.direction));\n }\n\n recordCompare(recordA: TableRecordData, recordB: TableRecordData, columnCompare, direction) {\n const recordAColumn = recordA.getFieldValue(columnCompare);\n const recordBColumn = recordB.getFieldValue(columnCompare);\n let result = 0;\n if (recordAColumn.fieldValue < recordBColumn.fieldValue) {\n result = -1;\n } else if (recordAColumn.fieldValue > recordBColumn.fieldValue) {\n result = 1;\n }\n return direction === componentConstants.TABLE_SORT_ASCENDING ? result : -result;\n }\n}\n","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\nimport { FieldSearch, Filter, AdvancedFilterItem } from '../../../classes/forms/table/filter';\nimport { TABLE_FILTER_TYPES, TableFilterEvent } from '../../../classes/forms/table/table';\n\n@Component({\n selector: 'lib-table-filter',\n template: `<ng-content></ng-content>`\n})\n\nexport class LibTableFilterComponent implements OnInit {\n simpleSearchString = '';\n selectedField: string;\n filterFieldConfig: FieldSearch;\n selectedOperator: string;\n filterValue1: string;\n filterValue2: string;\n possibleOperators: string[];\n filterObject: Filter = new Filter();\n complexIsCollapsed = true;\n\n @Input() simpleFilter: boolean;\n @Input() complexFilter: boolean;\n @Input() complexFilterConfig: FieldSearch[];\n\n @Output() filterChanged: EventEmitter<object> = new EventEmitter<object>();\n\n ngOnInit() {\n this.start();\n }\n\n start() { }\n\n filterHasChanged(changeType) {\n this.complexIsCollapsed = true;\n const eventType = (changeType === 'change')\n ? TABLE_FILTER_TYPES.simpleFilterFinish\n : TABLE_FILTER_TYPES.simpleFilterChange;\n const tableFilterEvent: TableFilterEvent = {\n eventType,\n simpleFilterString: this.simpleSearchString,\n complexFilterItem: null,\n itemName: null,\n };\n this.filterChanged.emit(tableFilterEvent);\n }\n\n selectField() {\n this.selectedOperator = '';\n this.filterValue1 = '';\n this.filterValue2 = '';\n this.filterFieldConfig = this.complexFilterConfig.find((filterConfig) =>\n filterConfig.fieldCode === this.selectedField);\n this.possibleOperators = [];\n if (this.filterFieldConfig && this.filterFieldConfig.operators) {\n this.possibleOperators = this.filterFieldConfig.operators;\n }\n }\n\n addFilterField() {\n const filterCondition: AdvancedFilterItem = {\n fieldSearch: this.filterFieldConfig,\n operator: this.selectedOperator,\n fieldValue1: this.filterValue1,\n fieldValue2: this.filterValue2,\n };\n const tableFilterEvent: TableFilterEvent = {\n eventType: TABLE_FILTER_TYPES.complexFilterAdd,\n simpleFilterString: null,\n complexFilterItem: filterCondition,\n itemName: null,\n\n };\n this.filterChanged.emit(tableFilterEvent);\n this.clearFilterField();\n }\n\n clearFilterField() {\n this.selectedField = '';\n this.selectedOperator = '';\n this.selectedOperator = '';\n this.filterValue1 = '';\n this.filterValue2 = '';\n this.possibleOperators = [];\n }\n\n removeFilterField(fieldCode) {\n const tableFilterEvent: TableFilterEvent = {\n eventType: TABLE_FILTER_TYPES.complexFilterRemove,\n simpleFilterString: null,\n complexFilterItem: null,\n itemName: fieldCode,\n };\n this.filterChanged.emit(tableFilterEvent);\n // Se elimina de la configuración de filtro local\n const idx = this.filterObject.advancedFilter.findIndex(def => def.fieldSearch.fieldCode === fieldCode);\n if (idx >= 0) {\n const filterToRemove = this.filterObject.advancedFilter[idx];\n this.selectedField = filterToRemove.fieldSearch.fieldCode;\n this.selectField();\n this.selectedOperator = filterToRemove.operator;\n this.filterValue1 = filterToRemove.fieldValue1;\n this.filterValue2 = filterToRemove.fieldValue2;\n this.filterObject.advancedFilter.splice(idx, 1);\n }\n }\n}\n","import { Component, Input, Output, OnInit, EventEmitter, ChangeDetectionStrategy } from '@angular/core';\nimport { TableEvent, TableActionEvent } from '../../../classes/forms/table/table';\nimport { IconDictionaryService } from '../../../services/icon-dictionary.service';\n\nconst INLINE_ACTION = 'INLINE';\n\n@Component({\n selector: 'lib-table-record-action',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n\nexport class LibTableRecordActionComponent implements OnInit {\n @Input() recordId: any;\n @Input() recordData: any;\n @Input() action: any;\n\n @Output() actionSelected: EventEmitter<object> = new EventEmitter<object>();\n\n constructor(private _iconDictionary: IconDictionaryService) { }\n\n ngOnInit() {\n this.start();\n }\n\n start() { }\n\n onActivate() {\n const tableEvent: TableActionEvent = {\n actionCode: this.action.actionCode,\n recordId: this.recordId,\n recordData: this.recordData,\n };\n this.actionSelected.emit(tableEvent);\n }\n\n icon() {\n if (this.action.actionType === 'CHECK') {\n return this._iconDictionary.mapIcon('SELECTROW');\n } else if (this.action.actionType === 'UNCHECK') {\n return this._iconDictionary.mapIcon('UNSELECTROW');\n } else {\n return this._iconDictionary.mapIcon(this.action.iconName);\n }\n }\n\n class() { }\n}\n","import { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n selector: 'lib-table-record-field',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n\nexport class LibTableRecordFieldComponent implements OnInit {\n @Input() fieldCode: any;\n @Input() fieldType: any;\n @Input() fieldValue: any;\n\n ngOnInit() {\n this.start();\n }\n\n start() { }\n}\n","import { Component, OnInit, Input, ViewChild, ChangeDetectionStrategy } from '@angular/core';\nimport { tableFieldStyles } from '../../../classes/forms/form.constants';\nimport { TableRecordData } from '../../../classes/forms/table/row-data';\nimport { TableActionEvent } from '../../../classes/forms/table/table';\nimport { componentConstants } from '../../../classes/forms/form.constants';\n\nimport { RecordTable, TableEvent, TableFilterEvent, TABLE_FILTER_TYPES } from '../../../classes/forms/table/table';\n\n@Component({\n selector: 'lib-table',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n\nexport class LibTableComponent implements OnInit {\n tableFieldStyles: any;\n loaded = false;\n selectable = false;\n hasActions = false;\n inlineActions: any;\n globalActions: any;\n selectionActions: any;\n\n @Input() tableObject: RecordTable;\n @Input() tableRecords: TableRecordData[];\n @Input() disabled: boolean;\n @Input() currentState: string;\n @Input() waiting: boolean;\n\n ngOnInit() {\n this.tableFieldStyles = tableFieldStyles;\n this.selectable = this.tableObject.selectable;\n this.hasActions = this.tableObject.hasActions;\n this.tableObject.widget = this;\n this.inlineActions = this.tableObject.getActions(componentConstants.FORMTABLEACTION_INLINE);\n this.globalActions = this.tableObject.getActions(componentConstants.FORMTABLEACTION_GLOBAL);\n this.selectionActions = this.tableObject.getActions(componentConstants.FORMTABLEACTION_SELECTION);\n this.start();\n }\n\n start() { }\n\n tableGlobalAction(actionCode: string) {\n this.tableObject.notifyGlobalAction(actionCode);\n }\n\n tableSelectionAction(actionCode: string) {\n this.tableObject.notifySelectionAction(actionCode);\n }\n\n tableActionSelected(actionEvent: TableActionEvent) {\n this.tableObject.notifyInlineAction(actionEvent);\n }\n\n tableColumnSort(columnFieldCode) {\n this.tableObject.setRequiredOrder(columnFieldCode);\n if (this.tableObject.clientPaging) {\n return this.tableObject.localSortData();\n }\n this.tableObject.notifyGetDataAction();\n }\n\n changePage(requestedPage) {\n if (!this.tableObject.clientPaging) {\n this.tableObject.notifyGetDataAction(requestedPage);\n }\n }\n\n get records() {\n const currentPageRecords = this.tableObject.records;\n if (this.tableObject.clientPaging && currentPageRecords && currentPageRecords.length > 0) {\n this.tableObject.totalRecordsNumber = currentPageRecords.length;\n return currentPageRecords.map((record, i) => ({ id: i + 1, ...record }))\n .slice((this.tableObject.currentPage - 1) * this.tableObject.recordsPerPage,\n (this.tableObject.currentPage - 1) * this.tableObject.recordsPerPage + this.tableObject.recordsPerPage);\n }\n return currentPageRecords;\n }\n\n applyCurrentFilter(tableFilterEvent: TableFilterEvent) {\n const { eventType } = tableFilterEvent;\n let triggerDataUpdate = false;\n if (eventType === TABLE_FILTER_TYPES.simpleFilterChange || eventType === TABLE_FILTER_TYPES.simpleFilterFinish) {\n this.tableObject.simpleFilterText = tableFilterEvent.simpleFilterString.trim();\n if (this.tableObject.clientPaging) {\n this.tableObject.currentPage = 1;\n this.tableObject.updateVisibleRecords();\n } else if (eventType === TABLE_FILTER_TYPES.simpleFilterFinish) {\n triggerDataUpdate = true;\n }\n }\n if (eventType === TABLE_FILTER_TYPES.complexFilterAdd) {\n this.tableObject.addFilterRestriction(tableFilterEvent.complexFilterItem);\n }\n if (eventType === TABLE_FILTER_TYPES.complexFilterRemove) {\n this.tableObject.removeFilterRestriction(tableFilterEvent.itemName);\n }\n if (triggerDataUpdate) {\n const tableGetDataEvent = {\n tableCode: this.tableObject.tableCode,\n requestedPage: 1,\n };\n this.tableObject.notifyGetDataAction(tableGetDataEvent);\n }\n }\n\n tableSelectionToggle(recordId) {\n this.tableObject.notifyRecordSelection(recordId);\n }\n\n toggleSelectAll() {\n if (this.tableObject.allSelected) {\n this.tableObject.unSelectAll();\n } else {\n this.tableObject.selectAll();\n }\n }\n}\n","import { componentConstants } from './form.constants';\n\nexport class RecordFormSubSection {\n visible: boolean;\n _customRender: string;\n subsectionId: string;\n subsectionCode: string;\n subsectionTitle: string;\n visibleStates: string[];\n\n subSectionElements: any[];\n subSectionFields: any[];\n subSectionTables: any[];\n subSectionActions: any[];\n elementsArray: any;\n\n constructor(subsectionReceived, formObject) {\n if (!subsectionReceived) { return; }\n this._customRender = null;\n this.visible = true;\n this.subSectionElements = [];\n this.subSectionFields = [];\n this.subSectionTables = [];\n this.subSectionActions = [];\n this.elementsArray = {};\n this.subsectionId = (subsectionReceived.subsectionId) ? subsectionReceived.subsectionId.toString() : '';\n this.subsectionCode = (subsectionReceived.subsectionCode) ? subsectionReceived.subsectionCode : '';\n this.subsectionTitle = (subsectionReceived.subsectionTitle) ? subsectionReceived.subsectionTitle : '';\n this.visibleStates = subsectionReceived.visibleStates || [];\n if (subsectionReceived.elements) {\n for (const receivedElement of subsectionReceived.elements) {\n let elementObject = null;\n let arrayToAdd = null;\n const { type, code } = receivedElement;\n switch (type) {\n case componentConstants.ELEMENTTYPE_FIELD:\n elementObject = formObject.getFieldObject(code);\n arrayToAdd = this.subSectionFields;\n break;\n case componentConstants.ELEMENTTYPE_TABLE:\n elementObject = formObject.getTableObject(code);\n arrayToAdd = this.subSectionTables;\n break;\n case componentConstants.ELEMENTTYPE_ACTION:\n elementObject = formObject.getActionObject(code);\n arrayToAdd = this.subSectionActions;\n break;\n }\n if (elementObject) {\n elementObject.type = type;\n arrayToAdd.push(elementObject);\n this.subSectionElements.push(elementObject);\n this.elementsArray[code] = elementObject;\n }\n }\n }\n }\n\n show() { this.visible = true; }\n hide() { this.visible = false; }\n\n get customRender() { return this._customRender; }\n set customRender(customRenderName) { this._customRender = customRenderName; }\n\n getField(name) {\n return this.subSectionFields.find(fld => fld.name === name);\n }\n\n getFields() {\n return this.subSectionFields;\n }\n\n getFieldNames() {\n return this.subSectionFields.map(field => field.fieldCode);\n }\n\n viewOnState(state) {\n return this.visibleStates.includes(state);\n }\n\n supportMode(state) { return this.viewOnState(state); }\n}\n","import { Subject } from 'rxjs';\nimport { RecordFormSubSection } from './subsection';\n\nexport class RecordFormSection {\n private readonly _activation = new Subject<string>();\n private readonly _inactivation = new Subject<string>();\n visible: boolean;\n visibleStates: string[];\n\n active = false;\n sectionId: string;\n sectionCode: string;\n sectionTitle: string;\n\n subSections: RecordFormSubSection[];\n subSectionsObj: any;\n\n constructor(sectionReceived, formObject) {\n if (!sectionReceived) { return; }\n this.visible = true;\n this.sectionId = (sectionReceived.sectionId) ? sectionReceived.sectionId.toString() : '';\n this.sectionCode = (sectionReceived.sectionCode) ? sectionReceived.sectionCode : '';\n this.sectionTitle = (sectionReceived.sectionTitle) ? sectionReceived.sectionTitle : '';\n this.visibleStates = sectionReceived.visibleStates || [];\n this.subSections = [];\n this.subSectionsObj = {};\n if (sectionReceived.subsections) {\n const subsections = sectionReceived.subsections.map(objDef => {\n let visibleStates = objDef.visibleStates;\n if (!visibleStates) {\n visibleStates = (objDef.subsectionModes || '').split(',')\n .map(state => state.trim())\n .filter(state => state.length > 0);\n }\n if (!visibleStates || visibleStates.length === 0) {\n visibleStates = this.visibleStates;\n }\n if (objDef.elements && Array.isArray(objDef.elements)) {\n objDef.elements = objDef.elements.map(elm => ({ code: elm.elementCode, type: elm.elementTypeName }));\n }\n return { ...objDef, visibleStates };\n });\n for (const subsectionReceived of subsections) {\n const subSectionToAdd = new RecordFormSubSection(subsectionReceived, formObject);\n const subsectionCode = subSectionToAdd.subsectionCode;\n if (subsectionCode) {\n this.subSections.push(subSectionToAdd);\n this.subSectionsObj[subsectionCode] = subSectionToAdd;\n }\n }\n }\n }\n\n get activation() { return this._activation; }\n get inactivation() { return this._inactivation; }\n\n activate() {\n if (!this.active) {\n this.active = true;\n this._activation.next(this.sectionCode);\n }\n }\n\n inactivate() {\n if (this.active) {\n this.active = false;\n this._inactivation.next(this.sectionCode);\n }\n }\n\n show() { this.visible = true; }\n hide() { this.visible = false; }\n get title() { return this.sectionTitle; }\n set title(title) { this.sectionTitle = title; }\n\n getVisibleSubsections(state) {\n return this.subSections.filter(subSection => {\n return subSection.visible && subSection.viewOnState(state);\n });\n }\n\n getSubsection(subSectionCode) {\n return (this.subSectionsObj && this.subSectionsObj[subSectionCode])\n ? this.subSectionsObj[subSectionCode] : null;\n }\n\n getFields() {\n let fieldsArray = [];\n if (this.subSections && this.subSections.length > 0) {\n for (const subSection of this.subSections) {\n fieldsArray = fieldsArray.concat(subSection.getFields());\n }\n }\n return fieldsArray;\n }\n\n getFieldNames() {\n let fieldsArray = [];\n if (this.subSections && this.subSections.length > 0) {\n for (const subSection of this.subSections) {\n fieldsArray = fieldsArray.concat(subSection.getFieldNames());\n }\n }\n return fieldsArray;\n }\n\n getField(name) {\n let field = null;\n if (this.subSections && this.subSections.length > 0) {\n for (const subSection of this.subSections) {\n field = subSection.getField(name);\n if (field) {\n return field;\n }\n }\n }\n return null;\n }\n\n supportState(state) { return this.viewOnState(state); }\n viewOnState(state) { return this.visibleStates.includes(state); }\n supportMode(state) { return this.viewOnState(state); }\n}\n","import { Subject } from 'rxjs';\nimport { componentConstants } from './form.constants';\nimport { FormElement } from './element';\n\nconst HEADER = 'HEADER';\n\nexport class FormAction extends FormElement {\n private readonly _actionActivated = new Subject<string>();\n inProgress = false;\n newState: string;\n backend: boolean;\n\n actionCode: string;\n actionName: string;\n iconName: string;\n location: string;\n\n restrictedOnField: string;\n restrictedOnOperator: string;\n restrictedOnValue: string;\n customValidation: any;\n customAttributes: any;\n\n constructor(actionDefinition) {\n super(actionDefinition);\n this.type = componentConstants.ELEMENTTYPE_ACTION;\n this.actionCode = actionDefinition.actionCode ? actionDefinition.actionCode.toString() : '';\n this.actionName = actionDefinition.actionTitle;\n this.iconName = actionDefinition.iconName || this.actionCode;\n this.location = actionDefinition.position || HEADER;\n this.backend = actionDefinition?.serverAction ?? false;\n this.newState = actionDefinition?.newState;\n this.customAttributes = actionDefinition?.customAttributes ?? null;\n\n this.restrictedOnField = actionDefinition.fieldRestrictedCode ? actionDefinition.fieldRestrictedCode.toString() : '';\n this.restrictedOnOperator = actionDefinition.operatorRestricted || '';\n this.restrictedOnValue = actionDefinition.valueRestricted || '';\n this.customValidation = () => true;\n }\n\n get actionActivated() { return this._actionActivated; }\n\n start() { this.inProgress = true; }\n stop() { this.inProgress = false; }\n\n notifyActivation() { this._actionActivated.next(this.actionCode); }\n\n updateFromServer(receivedAction) {\n for (const propertyName in receivedAction) {\n if (propertyName !== 'actionCode' && propertyName !== 'actionId') {\n this[propertyName] = receivedAction[propertyName];\n }\n }\n }\n\n setCustomValidation(callback) { this.customValidation = () => callback(); }\n}\n","import { Subject } from 'rxjs';\nimport { componentConstants, tableFieldStyles } from './form.constants';\nimport { FormElement } from './element';\nimport { formatCurrency } from '../utilities';\n\nconst UNDEFINED = 'undefined';\n\nconst FIELD_VALUE = 'fieldValue';\nconst FIELD_OPTIONS = 'fieldOptions';\nconst FIELD_TITLE = 'fieldTitle';\nconst FIELD_CAPTURE_TYPE = 'captureType';\nconst FIELD_TYPE = 'fieldTypeCode';\nconst FIELD_MAX_LENGTH = 'maxLength';\nconst FIELD_VISIBLE = 'visible';\nconst FIELD_LABEL_VISIBLE = 'visibleLabel';\nconst FIELD_REQUIRED = 'required';\nconst FIELD_ERR_CODE = 'errorCode';\nconst FIELD_ERR_MSG = 'errorMessage';\nconst FIELD_TOOLTIP = 'tooltipText';\nconst FIELD_INFO = 'info';\nconst FIELD_EDITABLE = 'editable';\n\nexport class FieldDescriptor extends FormElement {\n private readonly _editionFinish = new Subject<string>();\n private readonly _editionPartial = new Subject<string>();\n private readonly _detailRequest = new Subject<string>();\n\n _fieldValue: any;\n hasChanged: boolean;\n outputOnly: boolean;\n _minValue: any;\n _maxValue: any;\n _maxLength: number;\n\n fieldCode: string;\n captureType: string;\n fieldTitle: string;\n fieldType: string;\n fieldAlignment: string;\n fieldFormat: string;\n externalValue: any;\n fieldInfo: string;\n tooltipText: string;\n defaultValue: string;\n errorMessage: string;\n errorCode: string;\n customAttributes: any;\n\n validateOnServer: boolean;\n visibleLabel: boolean;\n defaultEditable: boolean;\n fieldRequired: boolean;\n\n fieldOptions: {\n fieldOptionValue: string;\n fieldOptionId: string;\n }[];\n\n constructor(inputFieldReceived) {\n super(inputFieldReceived);\n this.type = componentConstants.ELEMENTTYPE_FIELD;\n\n const fieldReceived = (inputFieldReceived) ? inputFieldReceived : {};\n this.setEditable(fieldReceived?.editable ?? true);\n this.fieldCode = fieldReceived.fieldCode;\n this.fieldTitle = fieldReceived.fieldTitle || this.fieldCode;\n this.captureType = fieldReceived.captureType || 'INPUT';\n this.setFieldType(fieldReceived.fieldTypeCode);\n this.defaultValue = fieldReceived.defaultValue || null;\n this._maxLength = fieldReceived.maxLength || 0;\n this.setValue(fieldReceived.fieldValue || this.defaultValue || '');\n const defaultTypeAlignment = (tableFieldStyles[this.fieldType] != null) ? tableFieldStyles[this.fieldType]['text-align'] : 'left';\n this.fieldAlignment = (fieldReceived.alignment != null) ? fieldReceived.alignment.toLowerCase() : defaultTypeAlignment;\n this.fieldInfo = fieldReceived.info || '';\n this.fieldFormat = fieldReceived.format || '';\n this.validateOnServer = fieldReceived?.serverAction ?? false;\n this.customAttributes = fieldReceived?.customAttributes ?? null;\n\n this.setVisibility(fieldReceived.visible);\n this.visibleLabel = fieldReceived?.visibleLabel ?? true;\n this.tooltipText = fieldReceived.tooltip || '';\n this.defaultEditable = this.enabled;\n this.fieldRequired = fieldReceived?.required ?? false;\n this.errorMessage = fieldReceived.errorMessage || '';\n this.errorCode = fieldReceived.errorCode || '00';\n this.outputOnly = fieldReceived?.outputOnly ?? false;\n this.setFieldOptions(fieldReceived.fieldOptions);\n }\n\n get name() { return this.fieldCode; }\n get editionFinish() { return this._editionFinish; }\n get editionPartial() { return this._editionPartial; }\n get detailRequest() { return this._detailRequest; }\n\n get fieldValue() { return this.getValue(); }\n get required() { return this.fieldRequired; }\n set required(required: boolean) { this.fieldRequired = required ?? false; }\n get maxLength() { return (this._maxLength > 0) ? this._maxLength.toString() : ''; }\n set maxLength(requiredMaxLength: any) {\n if (typeof requiredMaxLength === 'string') {\n this._maxLength = parseInt(requiredMaxLength, 10);\n } else if (typeof requiredMaxLength === 'number') {\n this._maxLength = requiredMaxLength;\n }\n }\n get value() { return this.getValue(); }\n set value(newValue) { this.setValue(newValue); }\n\n notifyEditionPartial() { this._editionPartial.next(this.fieldCode); }\n notifyEditionFinish() { this._editionFinish.next(this.fieldCode); }\n notifyEditionDetailRequest() { this._detailRequest.next(this.fieldCode); }\n\n showLabel() { this.visibleLabel = true; }\n hideLabel() { this.visibleLabel = false; }\n changed() { this.hasChanged = true; }\n getRawValue() { return this._fieldValue; }\n setLabel(label) { this.fieldTitle = label; }\n clean() { this.setValue(this.defaultValue || ''); }\n get backend() { return this.validateOnServer; }\n\n setVisibleLabel(visibleLabel: boolean) { this.visibleLabel = visibleLabel; }\n setEditable(editable: boolean = true) { (editable) ? this.enable() : this.disable(); }\n isEmpty() { return this.getValue() === '' || this.getValue() === undefined || this.getValue() === null; }\n\n getErrorCode() { return this.errorCode; }\n setErrorCode(code) { this.errorCode = code; }\n getErrorMessage() { return this.errorMessage; }\n setErrorMessage(msg) { this.errorMessage = msg; }\n\n getValue() {\n switch (this.fieldType) {\n case componentConstants.FIELDTYPE_CHECK:\n return this._fieldValue ?? false;\n break;\n case componentConstants.FIELDTYPE_CURRENCY:\n return this._fieldValue.replace(',', '');\n break;\n default:\n return this._fieldValue;\n break;\n }\n }\n\n updateFromServer(fld) {\n if (FIELD_VISIBLE in fld) {\n this.setVisibility(fld.visible);\n }\n if (FIELD_LABEL_VISIBLE in fld) {\n this.setVisibleLabel(fld.visibleLabel);\n }\n if (FIELD_REQUIRED in fld) {\n this.fieldRequired = fld.required ?? false;\n }\n if (FIELD_ERR_CODE in fld) {\n (this.errorCode = fld.errorCode);\n }\n if (FIELD_ERR_MSG in fld) {\n (this.errorMessage = fld.errorMessage);\n }\n if (FIELD_TOOLTIP in fld) {\n (this.tooltipText = fld.tooltip);\n }\n if (FIELD_INFO in fld) {\n (this.fieldInfo = fld.info);\n }\n if (FIELD_EDITABLE in fld) {\n this.setEditable(fld.editable);\n }\n if (FIELD_TITLE in fld) {\n this.setLabel(fld.fieldTitle.toString());\n }\n if (FIELD_VALUE in fld) {\n this.hasChanged = false;\n this.setValue(fld.fieldValue);\n }\n if (FIELD_OPTIONS in fld) {\n this.setFieldOptions(fld.fieldOptions);\n }\n if (FIELD_CAPTURE_TYPE in fld) {\n this.captureType = fld.captureType || 'INPUT';\n }\n if (FIELD_TYPE in fld) {\n this.setFieldType(fld.fieldTypeCode);\n }\n if (FIELD_MAX_LENGTH in fld) {\n this.maxLength = fld.maxLength;\n }\n }\n\n setFieldType(inputFieldType) {\n this.fieldType = inputFieldType;\n /**\n * Se elimina la validación de que sea un tipo conocido\n * this.fieldType = (inputFieldType && FIELDTYPES.includes(inputFieldType))\n * ? inputFieldType : componentConstants.FIELDTYPE_TEXT;\n */\n }\n\n format() {\n if (this.fieldType === componentConstants.FIELDTYPE_CURRENCY) {\n this._fieldValue = formatCurrency(this._fieldValue);\n }\n }\n\n setMinValue(minValue) {\n if (this.fieldType === componentConstants.FIELDTYPE_DATE\n && this.widget?.setMinValue) {\n this._minValue = minValue;\n if (!minValue) {\n this.widget?.setMinValue(false);\n } else {\n const minDate = new Date(minValue);\n this.widget?.setMinValue(minDate);\n }\n }\n }\n\n setMaxValue(maxValue) {\n if (this.fieldType === componentConstants.FIELDTYPE_DATE\n && this.widget?.setMaxValue) {\n this._maxValue = maxValue;\n if (!maxValue) {\n this.widget?.setMaxValue(false);\n } else {\n const maxDate = new Date(maxValue);\n this.widget?.setMaxValue(maxDate);\n }\n }\n }\n\n setFieldOptions(newOptions) {\n if ((this.captureType !== 'LIST' && this.captureType !== 'RADIO')\n || typeof newOptions === UNDEFINED || !newOptions\n || !Array.isArray(newOptions)) {\n return;\n }\n const fieldOptions = newOptions.map(option => {\n if (option.text !== undefined && option.text !== null\n && option.value !== undefined && option.value !== null) {\n return { fieldOptionValue: option.text, fieldOptionId: option.value };\n }\n return { ...option };\n });\n this.fieldOptions = (fieldOptions && Array.isArray(fieldOptions)\n && fieldOptions.length > 0) ? fieldOptions : [];\n if (this.fieldType === componentConstants.FIELDTYPE_ARRAY && this.widget) {\n return this.widget?.refereshContent();\n }\n if (this._fieldValue) {\n if (this.fieldType === componentConstants.FIELDTYPE_ARRAY && Array.isArray(this._fieldValue)) {\n this._fieldValue = this._fieldValue?.filter(item =>\n this.fieldOptions.find(opt => opt.fieldOptionId === item)\n );\n } else {\n const valInOptions = this.fieldOptions\n .find(item => item.fieldOptionId === this._fieldValue);\n if (!valInOptions) {\n this.setValue('');\n }\n }\n }\n if (this.fieldRequired && this.fieldOptions.length === 1) {\n this.setValue(this.fieldOptions[0].fieldOptionId);\n if (this.widget?.onChangeContent) {\n this.widget?.onChangeContent();\n }\n }\n }\n\n setValue(newValue, widgetUpdate = true) {\n if (typeof newValue === UNDEFINED || newValue === null) {\n return;\n }\n let newFinalValue;\n switch (this.fieldType) {\n case 'BOOLEAN':\n newFinalValue = !!newValue;\n break;\n case componentConstants.FIELDTYPE_CHECK:\n newFinalValue = !!newValue;\n break;\n case componentConstants.FIELDTYPE_ARRAY:\n if (newValue === null || newValue === '') {\n newFinalValue = [];\n } else if (!Array.isArray(newValue)) {\n if (typeof (newValue) !== 'string') {\n newValue = newValue.toString();\n }\n newFinalValue = newValue.split(',');\n } else {\n newFinalValue = newValue;\n }\n break;\n case componentConstants.FIELDTYPE_MAP:\n newFinalValue = newValue;\n if (newFinalValue && this.widget && widgetUpdate) {\n const latitude = parseFloat(newFinalValue[0]);\n const longitude = parseFloat(newFinalValue[1]);\n this.widget?.setLocation(latitude, longitude);\n }\n break;\n case componentConstants.FIELDTYPE_CURRENCY:\n newFinalValue = formatCurrency(this._fieldValue);\n break;\n default:\n newFinalValue = newValue;\n break;\n }\n if (this._fieldValue !== newFinalValue) {\n this.hasChanged = true;\n this._fieldValue = newFinalValue;\n }\n }\n}\n","import { RecordFormSection } from './section';\nimport { FormAction } from './action';\nimport { FieldDescriptor } from './field';\nimport { RecordTable } from './table/table';\nimport { DEFAULT_STATE_FLOW } from './form.constants';\n\nconst HEADER = 'HEADER';\nconst NO_ERROR = '00';\n\ninterface Transition {\n name: string;\n source: string;\n destination: string;\n}\n\ninterface StateFlow {\n defaultState: string;\n states: string[];\n transitions: Transition[];\n}\n\nexport class FormStructureAndData {\n state: string;\n _name: string;\n private _title: string;\n private _stateFlow: StateFlow;\n private _fields: FieldDescriptor[];\n private _fieldsObj = {};\n private _actions: FormAction[];\n private _actionsObj = {};\n private _tables: RecordTable[];\n private _tableObj = {};\n private _sections: RecordFormSection[];\n private _sectionsObj = {};\n private _immutableData = {};\n private _extraInfo = {};\n\n constructor(definitionReceived) {\n this.state = '';\n this._actions = [];\n this._fields = [];\n this._tables = [];\n this._sections = [];\n this._stateFlow = {\n defaultState: '',\n states: [],\n transitions: [],\n };\n if (!definitionReceived) { return; }\n this._name = (definitionReceived.form && definitionReceived.form.formCode)\n ? definitionReceived.form.formCode : this._name;\n this._title = (definitionReceived.form && definitionReceived.form.formTitle)\n ? definitionReceived.form.formTitle : '';\n this.setStateFlow(definitionReceived?.states, definitionReceived?.transitions,\n definitionReceived?.defaultState);\n this.immutableData = definitionReceived.immutableData;\n this.extraInfo = definitionReceived.extraInfo;\n\n if (definitionReceived.actions) {\n const formActions = definitionReceived.actions.map(objDef => {\n let visibleStates = objDef.visibleStates;\n let enabledStates = objDef.enabledStates;\n if (!visibleStates) {\n visibleStates = (objDef.actionModes || '').split(',')\n .map(state => state.trim())\n .filter(state => state.length > 0) || [];\n enabledStates = [...visibleStates];\n }\n return { ...objDef, visibleStates, enabledStates };\n });\n for (const actionReceived of formActions) {\n const globalAction = new FormAction(actionReceived);\n const globalActionCode = globalAction.actionCode;\n if (globalActionCode) {\n this._actions.push(globalAction);\n this._actionsObj[globalActionCode] = globalAction;\n }\n }\n }\n\n if (definitionReceived.fields) {\n const formFields = definitionReceived.fields.map(objDef => {\n let visibleStates = objDef.visibleStates;\n let enabledStates = objDef.enabledStates || objDef.editableStates;\n if (!visibleStates) {\n visibleStates = (objDef.fieldModes || '').split(',')\n .map(state => state.trim())\n .filter(state => state.length > 0) || [];\n enabledStates = [...visibleStates];\n }\n return { ...objDef, visibleStates, enabledStates };\n });\n for (const fieldReceived of formFields) {\n const fieldToAdd = new FieldDescriptor(fieldReceived);\n const fieldCode = fieldToAdd.fieldCode;\n if (fieldCode) {\n this._fields.push(fieldToAdd);\n this._fieldsObj[fieldCode] = fieldToAdd;\n }\n }\n }\n\n if (definitionReceived.tables) {\n const tables = definitionReceived.tables.map(objDef => {\n let visibleStates = objDef.visibleStates;\n let enabledStates = objDef.enabledStates || objDef.editableStates;\n if (!visibleStates) {\n visibleStates = (objDef.tableModes || '').split(',')\n .map(state => state.trim())\n .filter(state => state.length > 0) || [];\n enabledStates = [...visibleStates];\n }\n if (!visibleStates || visibleStates.length === 0) {\n visibleStates = DEFAULT_STATE_FLOW.states;\n }\n return { ...objDef, visibleStates, enabledStates };\n });\n for (const tableReceived of tables) {\n const tableToAdd = new RecordTable(tableReceived);\n const tableCode = tableToAdd.tableCode;\n if (tableCode) {\n this._tables.push(tableToAdd);\n this._tableObj[tableCode] = tableToAdd;\n }\n }\n }\n\n if (definitionReceived.sections) {\n const formSections = definitionReceived.sections.map(objDef => {\n let visibleStates = objDef.visibleStates;\n if (!visibleStates) {\n visibleStates = (objDef.sectionModes || '').split(',')\n .map(state => state.trim())\n .filter(state => state.length > 0) || [];\n }\n return { ...objDef, visibleStates };\n });\n for (const sectionReceived of formSections) {\n const sectionToAdd = new RecordFormSection(sectionReceived, this);\n const sectionCode = sectionToAdd.sectionCode;\n if (sectionCode) {\n this._sections.push(sectionToAdd);\n this._sectionsObj[sectionCode] = sectionToAdd;\n }\n }\n }\n }\n\n set immutableData(immutableData) { Object.assign(this._immutableData, immutableData); }\n set extraInfo(extraInfo) { Object.assign(this._extraInfo, extraInfo); }\n\n get defaultState() { return this._stateFlow.defaultState; }\n get title() { return this._title; }\n set title(title) { this._title = title; }\n get name() { return this._name; }\n set name(name) { this._name = name; }\n\n changeState(newState) {\n if (!newState || !this.supportState(newState)) {\n return false;\n }\n if (!this.state) {\n this.state = newState;\n } else {\n const transitionToChange = this._stateFlow.transitions.find(trns =>\n trns.source === this.state && trns.destination === newState);\n if (transitionToChange) {\n this.state = newState;\n }\n }\n return (this.state === newState);\n }\n\n setStateFlow(states?, transitions?, defaultState?) {\n if (!states || !transitions) {\n this._stateFlow = JSON.parse(JSON.stringify(DEFAULT_STATE_FLOW));\n return;\n }\n this._stateFlow.states = states;\n this._stateFlow.defaultState = defaultState || this._stateFlow.states[0];\n this._stateFlow.transitions = transitions.map(transition => {\n const name = transition.name;\n const source = (this._stateFlow.states.includes(transition.source)) ? transition.source : '';\n const destination = (this._stateFlow.states.includes(transition.destination)) ? transition.destination : '';\n return { name, source, destination };\n }).filter(item => item.name && item.source && item.destination);\n }\n\n supportState(state) { return this._stateFlow.states?.includes(state); }\n supportMode(state) { return this.supportState(state); }\n\n\n get immutableData() {\n const data = {};\n const objectNames = Object.keys(this._immutableData);\n for (let index = 0; index < objectNames.length; index++) {\n const name = objectNames[index];\n data[name] = this.getImmutableElement(name);\n }\n return data;\n }\n\n getImmutableElement(name) { return this._immutableData?.[name]?.value ?? null; }\n getExtraInfo(name) { return this._extraInfo?.[name]?.value ?? null; }\n\n get extraInfo() {\n const data = {};\n const objectNames = Object.keys(this._extraInfo);\n for (let index = 0; index < objectNames.length; index++) {\n const name = objectNames[index];\n data[name] = this.getExtraInfo(name);\n }\n return data;\n }\n\n getFields() { return this._fields; }\n\n getStates() {\n return this._stateFlow.states;\n }\n\n getFieldNames() {\n return this._fields.map(field => field.fieldCode);\n }\n\n getActions() {\n return this._actions;\n }\n\n getHeaderActions() {\n return this._actions.filter(actionItem => actionItem.location === HEADER);\n }\n\n getFieldObject(elementId) {\n return (this._fieldsObj && elementId && this._fieldsObj[elementId])\n ? this._fieldsObj[elementId] : null;\n }\n\n getTableObject(elementId) {\n return (this._tableObj && elementId && this._tableObj[elementId])\n ? this._tableObj[elementId] : null;\n }\n\n getActionObject(elementId) {\n return (this._actionsObj && elementId && this._actionsObj[elementId])\n ? this._actionsObj[elementId] : null;\n }\n\n getSubSection(sectionCode, subsectionCode) {\n const section = (this._sectionsObj && this._sectionsObj[sectionCode])\n ? this._sectionsObj[sectionCode] : null;\n return (section) ? section.getSubsection(subsectionCode) : null;\n }\n\n getSection(sectionCode) {\n return (this._sectionsObj && this._sectionsObj[sectionCode])\n ? this._sectionsObj[sectionCode] : null;\n }\n sections() { return this.getSections(); }\n sectionTitles() { return this.getSectionsTitles(); }\n\n getSections() {\n return this._sections;\n }\n\n numSections() {\n return this._sections.length;\n }\n\n getSectionsTitles() {\n return this._sections.map(formSection => formSection.sectionTitle);\n }\n\n getSectionObject(elementId) {\n return (this._sectionsObj && elementId && this._sectionsObj[elementId])\n ? this._sectionsObj[elementId] : null;\n }\n tables() { return this.getTables(); }\n\n getTables() {\n return this._tables;\n }\n\n cleanData() {\n if (this._fields) {\n for (const recordField of this._fields) {\n recordField.setValue(recordField.defaultValue);\n }\n }\n if (this._tables) {\n for (const formTable of this._tables) {\n formTable.clean();\n }\n }\n }\n\n showSection(sectionCode) {\n const sectionObject = this.getSectionObject(sectionCode);\n return (sectionObject) ? sectionObject.show() : null;\n }\n\n hideSection(sectionCode) {\n const sectionObject = this.getSectionObject(sectionCode);\n return (sectionObject) ? sectionObject.hide() : null;\n }\n\n activeSection() {\n const activeSection = this._sections.find(sectionObj => sectionObj.active);\n return activeSection.sectionCode;\n }\n\n activateSection(sectionCode) {\n this._sections.forEach(sectionObj => {\n if (sectionObj) { sectionObj.inactivate(); }\n });\n const sectionObject = this.getSectionObject(sectionCode);\n return (sectionObject) ? sectionObject.activate() : null;\n }\n\n showSections(sectionArray) {\n const sectionNames = (Array.isArray(sectionArray)) ? sectionArray : [sectionArray];\n sectionNames.forEach(sectionCode => this.showSection(sectionCode));\n }\n\n hideSections(sectionArray) {\n const sectionNames = (Array.isArray(sectionArray)) ? sectionArray : [sectionArray];\n sectionNames.forEach(sectionCode => this.hideSection(sectionCode));\n }\n\n showSubSection(sectionCode, subSectionCode) {\n const sectionObject = this.getSectionObject(sectionCode);\n const subSectionObject = (sectionObject) ? sectionObject.getSubsection(subSectionCode) : null;\n return (subSectionObject) ? subSectionObject.show() : null;\n }\n\n hideSubSection(sectionCode, subSectionCode) {\n const sectionObject = this.getSectionObject(sectionCode);\n const subSectionObject = (sectionObject) ? sectionObject.getSubsection(subSectionCode) : null;\n return (subSectionObject) ? subSectionObject.hide() : null;\n }\n\n showSubSections(sectionCode, subSectionArray) {\n if (subSectionArray && subSectionArray.length > 0) {\n const sectionObject = this.getSectionObject(sectionCode);\n for (const subSectionCode of subSectionArray) {\n const subSectionObject = (sectionObject) ? sectionObject.getSubsection(subSectionCode) : null;\n if (subSectionObject) { subSectionObject.show(); }\n }\n }\n }\n\n hideSubSections(sectionCode, subSectionArray) {\n if (subSectionArray && subSectionArray.length > 0) {\n const sectionObject = this.getSectionObject(sectionCode);\n for (const subSectionCode of subSectionArray) {\n const subSectionObject = (sectionObject) ? sectionObject.getSubsection(subSectionCode) : null;\n if (subSectionObject) { subSectionObject.hide(); }\n }\n }\n }\n\n showAction(actionCode) {\n const actionObject = this.getActionObject(actionCode);\n return (actionObject) ? actionObject.show() : null;\n }\n\n hideAction(actionCode) {\n const actionObject = this.getActionObject(actionCode);\n return (actionObject) ? actionObject.hide() : null;\n }\n\n showActions(actionArray) {\n const actionNames = (Array.isArray(actionArray)) ? actionArray : [actionArray];\n actionNames.forEach(actionCode => this.showAction(actionCode));\n }\n\n hideActions(actionArray) {\n const actionNames = (Array.isArray(actionArray)) ? actionArray : [actionArray];\n actionNames.forEach(actionCode => this.hideAction(actionCode));\n }\n\n enableAction(actionCode) {\n const actionObject = this.getActionObject(actionCode);\n return (actionObject) ? actionObject.enable() : null;\n }\n\n disableAction(actionCode) {\n const actionObject = this.getActionObject(actionCode);\n return (actionObject) ? actionObject.disable() : null;\n }\n\n enableActions(actionArray) {\n const actionNames = (Array.isArray(actionArray)) ? actionArray : [actionArray];\n actionNames.forEach(actionCode => this.enableAction(actionCode));\n }\n\n disableActions(actionArray) {\n const actionNames = (Array.isArray(actionArray)) ? actionArray : [actionArray];\n actionNames.forEach(actionCode => this.disableAction(actionCode));\n }\n\n enableField(fieldCode) {\n const fieldObject = this.getFieldObject(fieldCode);\n return (fieldObject) ? fieldObject.enable() : null;\n }\n\n disableField(fieldCode) {\n const fieldObject = this.getFieldObject(fieldCode);\n return (fieldObject) ? fieldObject.disable() : null;\n }\n\n getFieldValue(fieldCode) {\n const fieldObject = this.getFieldObject(fieldCode);\n return (fieldObject) ? fieldObject.getValue() : null;\n }\n\n getFieldsValues(fieldCodesArray) {\n if (!fieldCodesArray || !Array.isArray(fieldCodesArray) || fieldCodesArray.length === 0) {\n return null;\n }\n const resultObject = {};\n for (let index = 0; index < fieldCodesArray.length; index++) {\n const fieldCode = fieldCodesArray[index];\n if (fieldCode) {\n resultObject[fieldCode] = this._fieldsObj?.[fieldCode]?.getValue() ?? null;\n }\n }\n return resultObject;\n }\n\n getFieldOptions(fieldCode) {\n const fieldObject = this.getFieldObject(fieldCode);\n return (fieldObject) ? fieldObject.getFieldOptions() : null;\n }\n\n setFieldValue(fieldCode, fieldValue) {\n const fieldObject = this.getFieldObject(fieldCode);\n return (fieldObject) ? fieldObject.setValue(fieldValue) : null;\n }\n\n setFieldErrorMessage(fieldCode, errorMessage) {\n const fieldObject = this.getFieldObject(fieldCode);\n return (fieldObject) ? fieldObject.setErrorMessage(errorMessage) : null;\n }\n\n setFieldOptions(fieldCode, optionsArray, idAttribute, nameAttribute) {\n const fieldObject = this.getFieldObject(fieldCode);\n if (fieldObject && optionsArray && optionsArray.length > 0) {\n const fieldOptions = [];\n for (const optionItem of optionsArray) {\n const fieldOption = {\n fieldOptionId: optionItem[idAttribute],\n fieldOptionValue: optionItem[nameAttribute]\n };\n fieldOptions.push(fieldOption);\n }\n fieldObject.setFieldOptions(fieldOptions);\n }\n }\n\n getFieldSet(filterFunc, fieldArray = null, sectionCode = null, subSectionCode = null) {\n let fieldUniverse = null;\n if (fieldArray && Array.isArray(fieldArray) && fieldArray.length > 0) {\n fieldUniverse = fieldArray;\n } else if (sectionCode && !subSectionCode) {\n const sectionObject = this.getSectionObject(sectionCode);\n fieldUniverse = sectionObject?.getFieldNames();\n } else if (sectionCode && subSectionCode) {\n const subSectionObject = this.getSubSection(sectionCode, subSectionCode);\n fieldUniverse = subSectionObject?.getFieldNames();\n } else {\n fieldUniverse = this.getFieldNames();\n }\n if (!filterFunc) {\n return fieldUniverse;\n }\n return fieldUniverse.filter(fld => {\n const fieldObject = this.getFieldObject(fld);\n return (fieldObject && filterFunc(fieldObject));\n });\n }\n\n applyProcessToFieldSet(processFunc, fieldArray = null, sectionCode = null, subSectionCode = null) {\n const fieldUniverse = this.getFieldSet(null, fieldArray, sectionCode, subSectionCode);\n let fieldSetSize = 0;\n if (fieldUniverse && processFunc) {\n for (const fieldCode of fieldUniverse) {\n const fieldObject = this.getFieldObject(fieldCode);\n if (fieldObject) {\n try {\n processFunc(fieldObject);\n fieldSetSize += 1;\n } catch (e) {\n console.log(`Error procesando funcion en campo ${fieldObject}: ${e}`);\n }\n }\n }\n }\n return fieldSetSize;\n }\n\n showFields(fieldArray = null, sectionCode = null, subSectionCode = null) {\n return this.applyProcessToFieldSet(fld => fld.show(),\n fieldArray, sectionCode, subSectionCode);\n }\n\n hideFields(fieldArray = null, sectionCode = null, subSectionCode = null) {\n return this.applyProcessToFieldSet(fld => fld.hide(),\n fieldArray, sectionCode, subSectionCode);\n }\n\n showLabelFields(fieldArray = null, sectionCode = null, subSectionCode = null) {\n return this.applyProcessToFieldSet(fld => fld.showLablel(),\n fieldArray, sectionCode, subSectionCode);\n }\n\n hideLabelFields(fieldArray = null, sectionCode = null, subSectionCode = null) {\n return this.applyProcessToFieldSet(fld => fld.hideLabel(),\n fieldArray, sectionCode, subSectionCode);\n }\n // Para deprecar\n enableEditFields(fieldArray = null, sectionCode = null, subSectionCode = null) {\n return this.enableFields(fieldArray, sectionCode, subSectionCode);\n }\n // Para deprecar\n disableEditFields(fieldArray = null, sectionCode = null, subSectionCode = null) {\n return this.disableFields(fieldArray, sectionCode, subSectionCode);\n }\n\n enableFields(fieldArray = null, sectionCode = null, subSectionCode = null) {\n return this.applyProcessToFieldSet(fld => fld.enable(),\n fieldArray, sectionCode, subSectionCode);\n }\n\n disableFields(fieldArray = null, sectionCode = null, subSectionCode = null) {\n return this.applyProcessToFieldSet(fld => fld.disable(),\n fieldArray, sectionCode, subSectionCode);\n }\n\n cleanFields(fieldArray = null, sectionCode = null, subSectionCode = null) {\n return this.applyProcessToFieldSet(fieldObject => {\n fieldObject.clean('');\n fieldObject.setErrorMessage('');\n }, fieldArray, sectionCode, subSectionCode);\n }\n\n getRequiredFields(fieldArray, sectionCode = null, subSectionCode = null) {\n return this.getFieldSet(fld => fld.fieldRequired, fieldArray,\n sectionCode, subSectionCode);\n }\n\n getRequiredEmptyFields(fieldArray = null, sectionCode = null, subSectionCode = null) {\n return this.getFieldSet(fld => fld.fieldRequired && fld.isEmpty(),\n fieldArray, sectionCode, subSectionCode);\n }\n\n getChangedFields(fieldArray, sectionCode = null, subSectionCode = null) {\n return this.getFieldSet(fld => !fld.outputOnly && fld.hasChanged(),\n fieldArray, sectionCode, subSectionCode);\n }\n\n getFieldsWithValidationIssues(fieldArray, sectionCode = null, subSectionCode = null) {\n return this.getFieldSet(fld => fld.errorCode !== NO_ERROR,\n fieldArray, sectionCode, subSectionCode);\n }\n\n tagFieldsWithError(errorMessage, fieldArray = null, sectionCode = null, subSectionCode = null) {\n return this.applyProcessToFieldSet(fieldObject => {\n fieldObject.setErrorMessage(errorMessage);\n }, fieldArray, sectionCode, subSectionCode);\n }\n\n cleanErrorFields(fieldArray = null, sectionCode = null, subSectionCode = null) {\n this.tagFieldsWithError('', fieldArray, sectionCode, subSectionCode);\n }\n\n tagEmptyRequiredFields(errorMessage, fieldArray = null, sectionCode = null, subSectionCode = null) {\n const pendingFields = this.getRequiredEmptyFields(fieldArray, sectionCode, subSectionCode);\n if (pendingFields && pendingFields.length > 0) {\n this.tagFieldsWithError(errorMessage, pendingFields);\n return true;\n }\n return false;\n }\n\n cleanTable(tableCode) {\n const tableObject = this.getTableObject(tableCode);\n return (tableObject) ? tableObject.clean() : null;\n }\n\n getTableRecord(tableCode, recordId) {\n const tableObject = this.getTableObject(tableCode);\n return (tableObject) ? tableObject.getTableRecord(recordId) : null;\n }\n\n hideTable(tableCode) {\n const tableObject = this.getTableObject(tableCode);\n return (tableObject) ? tableObject.hide() : null;\n }\n\n showTable(tableCode) {\n const tableObject = this.getTableObject(tableCode);\n return (tableObject) ? tableObject.show() : null;\n }\n\n showTables(tableArray) {\n const tableNames = (Array.isArray(tableArray)) ? tableArray : [tableArray];\n tableNames.forEach(tableCode => this.showTable(tableCode));\n }\n\n hideTables(tableArray) {\n const tableNames = (Array.isArray(tableArray)) ? tableArray : [tableArray];\n tableNames.forEach(tableCode => this.hideTable(tableCode));\n }\n\n /** payload para servicios Tuain */\n getPayload() {\n const formData = {\n fields: [],\n tables: [],\n };\n const formFields = this.getFields();\n if (formFields && formFields.length > 0) {\n for (const fieldDescriptor of formFields) {\n if (!fieldDescriptor.outputOnly) {\n const formField = {\n fieldCode: fieldDescriptor.fieldCode,\n fieldValue: fieldDescriptor.getValue(),\n editable: !fieldDescriptor.disabled,\n visible: fieldDescriptor.visible,\n required: fieldDescriptor.fieldRequired,\n fieldOptions: '',\n };\n formData.fields.push(formField);\n }\n }\n }\n const tables = this.getTables();\n if (tables && tables.length > 0) {\n for (const tableDescriptor of tables) {\n const formTable = {\n tableCode: tableDescriptor.tableCode,\n visible: tableDescriptor.visible,\n currentPage: tableDescriptor.currentPage,\n requestedPage: tableDescriptor.requestedPage,\n recordsPerPage: tableDescriptor.recordsPerPage,\n currentFilter: tableDescriptor.currentFilter,\n sortingColumn: tableDescriptor.sorting.columnName,\n sortingDirection: tableDescriptor.sorting.direction,\n };\n formData.tables.push(formTable);\n }\n }\n return formData;\n }\n}\n","import { nanoid } from 'nanoid';\n\nexport class LibFormManagerService {\n pageStack: any[];\n\n constructor() {\n this.cleanStack();\n }\n\n /**\n * Métodos virtuales de manejo de formularios\n */\n\n getFormDefinition(formCode) { }\n execServerAction(actionDetail) { }\n goToRoute(navigationArray: any[]) { }\n\n /**\n * Manejo del stack de navegación con atributos estados y parámetros\n */\n\n resetPageStack() { this.cleanStack() }\n\n cleanStack() {\n this.pageStack = [];\n }\n\n stack(data) {\n const id = nanoid(6);\n this.pageStack.push({ id, data });\n return id;\n }\n\n unstack(id) {\n const stackIdx = this.pageStack.findIndex(item => item.id === id);\n if (stackIdx >= 0) {\n const formData = this.pageStack[stackIdx].data;\n // Se eliminan los formularios posteriores al solicitado\n this.pageStack.splice(stackIdx + 1);\n return formData;\n }\n }\n\n getInputData(id: string) {\n const stackIdx = (id) ? this.pageStack.findIndex(item => item.id === id) : -1;\n if (stackIdx >= 0) {\n const { target: { predefinedFields } } = this.pageStack[stackIdx].data;\n return predefinedFields;\n }\n return null;\n }\n\n getOriginInfo(id: string) {\n const stackIdx = (id) ? this.pageStack.findIndex(item => item.id === id) : -1;\n if (stackIdx >= 0) {\n const { origin } = this.pageStack[stackIdx].data;\n return JSON.parse(JSON.stringify(origin));\n }\n return null;\n }\n\n changeForm(origin: any, target: any) {\n if (!origin) {\n this.cleanStack();\n }\n const { url, params } = target;\n const newToken = this.stack({ origin, target });\n const navigationArray = [url, ...params, newToken];\n this.goToRoute(navigationArray);\n }\n\n changePreviousForm(transitionToken: string) {\n const prevForm = this.unstack(transitionToken);\n if (!prevForm) { return; }\n const { origin: { url, params, token } } = prevForm;\n const navigationArray = [url, ...params, token];\n this.goToRoute(navigationArray);\n }\n}\n","import { BehaviorSubject } from 'rxjs';\n\nexport class LibEventManagerService {\n eventSubjects: any = {};\n\n constructor(eventNames) {\n eventNames.forEach((name) => { this.addEventName(name); });\n }\n\n addEventName(name) {\n if (!this.eventSubjects[name]) {\n const newEventSubject: BehaviorSubject<any> = new BehaviorSubject(null);\n this.eventSubjects[name] = newEventSubject;\n }\n }\n\n getEventNames() { return Object.keys(this.eventSubjects); }\n getSubject(eventClassName) { return eventClassName ? this.eventSubjects[eventClassName] : null; }\n subscribe(eventClassName, callback) { this.getSubject(eventClassName).subscribe(callback); }\n next(eventClassName, data) { this.getSubject(eventClassName).next(data); }\n}\n","export class LibFileManagementService {\n openFile(fileBase64Data, fileName, fileType) { }\n saveFileFromURL(fileUrl, fullFileName = null) { }\n saveFile(fileBase64Data, fileName, fileType) { }\n}\n\n","import { Component } from '@angular/core';\nimport { FormStructureAndData } from '../../classes/forms/form';\nimport { LibFormManagerService } from '../../services/form-manager.service';\nimport { LibEventManagerService } from '../../services/event-manager.service';\nimport { LibFileManagementService } from '../../services/file-manager.service';\nimport { componentConstants } from '../../classes/forms/form.constants';\n\nconst PAYLOAD_VERSION = 'TUAINEXCHANGE_1.0';\nconst INLINE_ACTION = 'INLINE';\nconst GLOBAL_ACTION = 'GLOBAL';\nconst GET_DATA_ACTION = 'GETDATA';\n\nconst FORM_SUBJECT = 'formSubject';\nconst ORIGIN_PARAM = 'origin';\nconst STATE_PARAM = 'mode';\nconst REQUIRED_FIELD_MESSAGE = 'Campo requerido';\n\n@Component({\n template: `<ng-content></ng-content>`\n})\nexport class BasicFormComponent {\n name: string;\n _formRoute: string;\n formSubject: string;\n _errorType: '';\n errorCode = '';\n errorMessage = '';\n errorDetail = '';\n\n formStructure: FormStructureAndData = null;\n transitionToken = null;\n inputDataFields = [];\n extraData: any = null;\n\n componentConstants: any = componentConstants;\n definitionObtained = false;\n formVisible = false;\n inServerProcess = false;\n\n formSectionsActivate = {};\n formSectionsInactivate = {};\n formActionsStart = {};\n formActionsFinish = {};\n fieldInputValidation = {};\n fieldValidationsStart = {};\n fieldValidationsFinish = {};\n // Callback de acciones de tablas\n tableSelectionsStart = {};\n tableSelectionsFinish = {};\n tableActionsStart = {};\n tableActionsFinish = {};\n tableGetDataStart = {};\n tableGetDataFinish = {};\n\n protected _eventEmiter: LibEventManagerService;\n\n constructor(\n protected formManagerService: LibFormManagerService,\n protected _eventManager: LibEventManagerService,\n protected fileMgmtServices: LibFileManagementService) {\n this.customPreProcessing();\n this._eventEmiter = this._eventManager;\n }\n\n get currentState() { return this.formStructure.state; }\n set currentState(state) { this.formStructure.changeState(state); }\n get currentMode() { return this.currentState; }\n get immutableData() { return this.formStructure.immutableData }\n get extraInfo() { return this.formStructure.extraInfo }\n\n // Métodos Pass-through hacia el contenido y estructura del formulario\n supportState(state) { return this.formStructure.supportState(state); }\n supportMode(state) { return this.supportState(state); }\n getTitle() { return this.formStructure.title; }\n setTitle(title: string) { this.formStructure.title = title; }\n getImmutableElement(name) { return this.formStructure.getImmutableElement(name); }\n getExtraInfo(name) { return this.formStructure.getExtraInfo(name); }\n cleanData() { return this.formStructure.cleanData(); }\n getFields() { return this.formStructure.getFields(); }\n getFieldNames() { return this.formStructure.getFieldNames(); }\n getFieldObject(elementId) { return this.formStructure.getFieldObject(elementId); }\n getField(fieldCode) { return this.getFieldObject(fieldCode); }\n enableField(fieldCode) { return this.formStructure.enableField(fieldCode); }\n disableField(fieldCode) { return this.formStructure.disableField(fieldCode); }\n getFieldValue(fieldCode) { return this.formStructure.getFieldValue(fieldCode); }\n getFieldsValues(fieldCodesArray) { return this.formStructure.getFieldsValues(fieldCodesArray); }\n getFieldOptions(fieldCode) { return this.formStructure.getFieldOptions(fieldCode); }\n setFieldValue(fieldCode, fieldValue) { return this.formStructure.setFieldValue(fieldCode, fieldValue); }\n setFieldErrorMessage(fieldCode, errorMessage) { return this.formStructure.setFieldErrorMessage(fieldCode, errorMessage); }\n setFieldOptions(fieldCode, optionsArray, idAttribute, nameAttribute) {\n return this.formStructure.setFieldOptions(fieldCode, optionsArray, idAttribute, nameAttribute);\n }\n getFieldSet(filterFunc?, fieldArray?, sectionCode?, subSectionCode?) {\n return this.formStructure.getFieldSet(filterFunc, fieldArray, sectionCode, subSectionCode);\n }\n applyProcessToFieldSet(processFunc, fieldArray?, sectionCode?, subSectionCode?) {\n return this.formStructure.applyProcessToFieldSet(processFunc, fieldArray, sectionCode, subSectionCode);\n }\n applyProcessToAllFields(processFunc) { return this.formStructure.applyProcessToFieldSet(processFunc); }\n cleanFields(fieldArray?, sectionCode?, subSectionCode?) {\n return this.formStructure.cleanFields(fieldArray, sectionCode, subSectionCode);\n }\n getRequiredFields(fieldArray, sectionCode?, subSectionCode?) {\n return this.formStructure.getRequiredFields(fieldArray, sectionCode, subSectionCode);\n }\n getRequiredEmptyFields(fieldArray?, sectionCode?, subSectionCode?) {\n return this.formStructure.getRequiredEmptyFields(fieldArray, sectionCode, subSectionCode);\n }\n getChangedFields(fieldArray?, sectionCode?, subSectionCode?) {\n return this.formStructure.getChangedFields(fieldArray, sectionCode, subSectionCode);\n }\n getFieldsWithValidationIssues(fieldArray?, sectionCode?, subSectionCode?) {\n return this.formStructure.getFieldsWithValidationIssues(fieldArray, sectionCode, subSectionCode);\n }\n tagFieldsWithError(errorMessage, fieldArray?, sectionCode?, subSectionCode?) {\n return this.formStructure.tagFieldsWithError(errorMessage, fieldArray, sectionCode, subSectionCode);\n }\n cleanErrorFields(fieldArray?, sectionCode?, subSectionCode?) {\n return this.formStructure.cleanErrorFields(fieldArray, sectionCode, subSectionCode);\n }\n showLabelFields(fieldArray?, sectionCode?, subSectionCode?) {\n return this.formStructure.showLabelFields(fieldArray, sectionCode, subSectionCode);\n }\n hideLabelFields(fieldArray?, sectionCode?, subSectionCode?) {\n return this.formStructure.hideLabelFields(fieldArray, sectionCode, subSectionCode);\n }\n enableFields(fieldArray?, sectionCode?, subSectionCode?) {\n return this.formStructure.enableFields(fieldArray, sectionCode, subSectionCode);\n }\n disableFields(fieldArray?, sectionCode?, subSectionCode?) {\n return this.formStructure.disableFields(fieldArray, sectionCode, subSectionCode);\n }\n enableEditFields(fieldArray?, sectionCode?, subSectionCode?) {\n return this.formStructure.enableEditFields(fieldArray, sectionCode, subSectionCode);\n }\n disableEditFields(fieldArray?, sectionCode?, subSectionCode?) {\n return this.formStructure.disableEditFields(fieldArray, sectionCode, subSectionCode);\n }\n showFields(fieldArray?, sectionCode?, subSectionCode?) {\n return this.formStructure.showFields(fieldArray, sectionCode, subSectionCode);\n }\n hideFields(fieldArray?, sectionCode?, subSectionCode?) {\n return this.formStructure.hideFields(fieldArray, sectionCode, subSectionCode);\n }\n\n getHeaderActions() { return this.formStructure.getHeaderActions(); }\n getActionObject(elementId) { return this.formStructure.getActionObject(elementId); }\n getAction(actionCode) { return this.getActionObject(actionCode); }\n getActionDefinition(actionCode) { return this.getActionObject(actionCode); }\n showAction(actionCode) { return this.formStructure.showAction(actionCode); }\n hideAction(actionCode) { return this.formStructure.hideAction(actionCode); }\n showActions(actionArray) { return this.formStructure.showActions(actionArray); }\n hideActions(actionArray) { return this.formStructure.hideActions(actionArray); }\n enableAction(actionCode) { return this.formStructure.enableAction(actionCode); }\n disableAction(actionCode) { return this.formStructure.disableAction(actionCode); }\n enableActions(actionArray) { return this.formStructure.enableActions(actionArray); }\n disableActions(actionArray) { return this.formStructure.disableActions(actionArray); }\n\n getStates() { return this.formStructure.getStates(); }\n getSections() { return this.formStructure.getSections(); }\n getSection(sectionCode) { return this.formStructure.getSection(sectionCode); }\n activateSection(sectionCode) { return this.formStructure.activateSection(sectionCode); }\n getSubSection(sectionCode, subsectionCode) { return this.formStructure.getSubSection(sectionCode, subsectionCode); }\n numSections() { return this.formStructure.numSections(); }\n getSectionsTitles() { return this.formStructure.getSectionsTitles(); }\n getSectionObject(elementId) { return this.formStructure.getSectionObject(elementId); }\n showSection(sectionCode) { return this.formStructure.showSection(sectionCode); }\n hideSection(sectionCode) { return this.formStructure.hideSection(sectionCode); }\n showSections(sectionArray) { return this.formStructure.showSections(sectionArray); }\n hideSections(sectionArray) { return this.formStructure.hideSections(sectionArray); }\n showSubSection(sectionCode, subSectionCode) { return this.formStructure.showSubSection(sectionCode, subSectionCode); }\n hideSubSection(sectionCode, subSectionCode) { return this.formStructure.hideSubSection(sectionCode, subSectionCode); }\n showSubSections(sectionCode, subSectionArray) { return this.formStructure.showSubSections(sectionCode, subSectionArray); }\n hideSubSections(sectionCode, subSectionArray) { return this.formStructure.hideSubSections(sectionCode, subSectionArray); }\n\n getTables() { return this.formStructure.getTables(); }\n getTableObject(elementId) { return this.formStructure.getTableObject(elementId); }\n getTable(tableName) { return this.getTableObject(tableName); }\n showTable(tableName) { return this.formStructure.showTable(tableName); }\n hideTable(tableName) { return this.formStructure.hideTable(tableName); }\n showTables(tableArray) { return this.formStructure.showTables(tableArray); }\n hideTables(tableArray) { return this.formStructure.hideTables(tableArray); }\n cleanTable(tableName) { return this.formStructure.cleanTable(tableName); }\n getTableRecord(tableName, recordId) { return this.formStructure.getTableRecord(tableName, recordId); }\n\n customPreProcessing() { }\n customFormStart() { }\n displayActionServerError() { }\n displayValidationServerError() { }\n displayTableServerError() { }\n showFieldInfo(fieldCode: string) { }\n showModalDialog(title, body, options, callback?, params?) { }\n openUploadDialog(title, body, options, callback?, params?) { }\n\n subscribeAppEvent(eventName, callback) {\n this._eventEmiter.subscribe(eventName, callback);\n }\n\n goToPage(navigationArray, predefinedFields, options = null) {\n let origin = null;\n const cleanStack = options?.cleanStack ?? false;\n if (!cleanStack) {\n origin = {\n code: this.formCode,\n url: this._formRoute,\n params: [\n this.currentState,\n this.formSubject,\n ],\n token: this.transitionToken,\n predefinedFields: this.inputDataFields\n };\n }\n const target = {\n url: navigationArray?.[0],\n params: navigationArray.splice(1),\n predefinedFields,\n };\n this.formManagerService.changeForm(origin, target);\n }\n\n goToNewPage(nav, flds) { return this.goToPage(nav, flds, { cleanStack: true }); }\n goToSubPage(nav, flds) { return this.goToPage(nav, flds, { cleanStack: false }); }\n canGoBack() { return this.transitionToken !== null }\n goBack() { return this.formManagerService.changePreviousForm(this.transitionToken); }\n goBackForm() { return this.goBack(); }\n getOriginDetail() { return this.formManagerService.getOriginInfo(this.transitionToken); }\n\n setError(errorType, errorMessage, errorDetail) {\n this._errorType = errorType || '';\n this.errorMessage = errorMessage || '';\n this.errorDetail = errorDetail || '';\n }\n\n get formManager() { return this; }\n resetError() { this.setError(null, null, null); }\n getErrorType() { return this._errorType; }\n getErrorMessage() { return this.errorMessage; }\n getErrorDetail() { return this.errorDetail; }\n getErrorCode() { return this._errorType; }\n\n get formRoute() { return this._formRoute; }\n set formRoute(route) { this._formRoute = route; }\n defineFormCode(name) { this.name = name; }\n getCurrentState() { return this.formStructure.state; }\n getCurrentMode() { return this.formStructure.state; }\n\n get formCode() { return this.name; }\n set formCode(name) { this.name = name; }\n\n getFormParameter(name) {\n return (this.extraData && name && this.extraData[name]) ? this.extraData[name] : null;\n }\n\n getSubject() { return this.formSubject; }\n getformSubject() { return this.getSubject(); }\n\n preocessInputParams(params) {\n const allParams = Object.keys(params ?? {});\n if (!allParams || !Array.isArray(allParams) || allParams.length === 0) {\n return;\n }\n this.extraData = [];\n for (const paramName of allParams) {\n this.extraData[paramName] = params[paramName].toString();\n }\n this.formSubject = this.extraData?.[FORM_SUBJECT] ?? null;\n const initialState = this.extraData[STATE_PARAM];\n this.transitionToken = this.extraData[ORIGIN_PARAM] ?? null;\n this.inputDataFields = (this.transitionToken) ? this.formManagerService.getInputData(this.transitionToken) : [];\n if (!this.transitionToken) {\n this.formManagerService.cleanStack();\n }\n return initialState;\n }\n\n subscribeSectionActivation() {\n const formSections = this.formStructure.getSections();\n if (Array.isArray(formSections)) {\n formSections.forEach(section => {\n section.activation.subscribe(code => this.launchSectionActivation(code));\n section.inactivation.subscribe(code => this.launchSectionInactivation(code));\n });\n }\n }\n\n subscribeFieldsSubjects() {\n const formFields = this.formStructure.getFields();\n if (Array.isArray(formFields)) {\n formFields.forEach(field => {\n field.editionFinish.subscribe(code => this.startFieldValidation(code));\n field.editionPartial.subscribe(code => this.startFieldInputValidation(code));\n field.detailRequest.subscribe(code => this.showFieldInfo(code));\n });\n }\n }\n\n subscribeActionSubjects() {\n const formActions = this.formStructure.getActions();\n if (Array.isArray(formActions)) {\n formActions.forEach(action => {\n action.actionActivated.subscribe(code => this.startAction(code));\n });\n }\n }\n\n subscribeTableSubjects() {\n const formTables = this.formStructure.getTables();\n if (Array.isArray(formTables)) {\n formTables.forEach(table => {\n table.inlineActionTrigger.subscribe(event => this.startTableAction(event));\n table.globalActionTrigger.subscribe(event => this.startTableGlobalAction(event));\n table.recordSelectionTrigger.subscribe(event => this.startTableRecordSelection(event));\n table.selectionActionTrigger.subscribe(event => this.startTableSelectionAction(event));\n table.getDataTrigger.subscribe(event => this.startTableGetData(event));\n });\n }\n }\n\n async formInit(params) {\n let initialState = this.preocessInputParams(params);\n if (!this.name) { return; }\n if (!this.definitionObtained) {\n this.inServerProcess = true;\n const formDefinition = await this.formManagerService.getFormDefinition(this.name);\n this.inServerProcess = false;\n this.formStructure = new FormStructureAndData(formDefinition);\n this.definitionObtained = true;\n } else {\n this.cleanData();\n }\n if (!this.supportState(initialState)) {\n initialState = this.formStructure.defaultState;\n }\n this.formStructure.changeState(initialState || this.formStructure.defaultState);\n for (const inputFieldData of this.inputDataFields) {\n const { fieldCode, fieldValue } = inputFieldData;\n if (fieldCode) {\n this.setFieldValue(inputFieldData.fieldCode, fieldValue);\n }\n }\n const recordResponse = await this.requestFormAction(componentConstants.FORMACTION_GETDATA);\n this.checkErrorRecordReceived(recordResponse);\n this.formVisible = true;\n this.subscribeSectionActivation();\n this.subscribeFieldsSubjects();\n this.subscribeActionSubjects();\n this.subscribeTableSubjects();\n this.customFormStart();\n }\n\n checkErrorRecordReceived(recordResponse) {\n const { error } = recordResponse;\n if (!error) { return false; }\n this.errorCode = recordResponse.errorCode;\n this.errorMessage = recordResponse.errorMessage;\n this.errorDetail = recordResponse.errorDetail;\n }\n\n errorOccured() {\n return (this.errorCode !== componentConstants.SERVICE_ERRORCODE_NOERROR);\n }\n\n changeState(state) { return this.formStructure.changeState(state); }\n changeFormMode(state) { return this.changeState(state); }\n\n async requestFormAction(actionCode, actionSubject = {}) {\n const actionDetail = {\n formCode: this.name,\n formSubject: this.formSubject,\n currentMode: this.formStructure.state,\n actionCode,\n actionSubject,\n version: PAYLOAD_VERSION,\n formData: this.formStructure.getPayload(),\n immutableData: this.formStructure.immutableData,\n };\n this.errorCode = '00';\n this.errorMessage = '';\n this.errorDetail = '';\n this.inServerProcess = true;\n const formActionResponse: any = await this.formManagerService.execServerAction(actionDetail);\n this.inServerProcess = false;\n if (formActionResponse && formActionResponse.error.errorType) {\n console.log('Excepción no soportada');\n }\n if (formActionResponse.hasError()) {\n const error = formActionResponse.error;\n this.errorCode = error.errorCode;\n this.errorMessage = error.errorMessage;\n this.errorDetail = error.errorDetail;\n }\n const formResponseData = formActionResponse.getData();\n this.updateFormWithServerData(formResponseData);\n return formResponseData;\n }\n\n updateFormWithServerData(formContent) {\n const {\n currentMode, formSubject, actions, fields, recordTables,\n returnedFile, immutableData, extraInfo,\n } = formContent;\n this.changeState(currentMode ?? this.formStructure.state);\n if (formSubject) { this.formSubject = formSubject; }\n if (actions && actions.length > 0) {\n for (const changedAction of actions) {\n const actionObject = this.getActionObject(changedAction.actionCode);\n if (actionObject) { actionObject.updateFromServer(changedAction); }\n }\n }\n if (fields && fields.length > 0) {\n for (const changedField of fields) {\n const fieldObject = this.getFieldObject(changedField.fieldCode);\n if (fieldObject) {\n fieldObject.updateFromServer(changedField);\n }\n }\n }\n if (recordTables && recordTables.length > 0) {\n for (const changedTable of recordTables) {\n const tableObject = this.getTableObject(changedTable.tableCode);\n if (tableObject) {\n tableObject.updateFromServer(changedTable);\n }\n }\n }\n if (returnedFile && returnedFile.file) {\n this.fileMgmtServices.saveFile(returnedFile.file, returnedFile.name, returnedFile.type);\n }\n this.formStructure.immutableData = immutableData;\n this.formStructure.extraInfo = extraInfo;\n }\n\n /**\n * Manejo de event handlers para acciones sobre el formulario\n */\n\n addSectionActivation(sections, callbackMethod) {\n const sectionSet = (Array.isArray(sections)) ? sections : [sections];\n sectionSet.forEach((sectionName) => {\n if (!this.formSectionsActivate[sectionName]) {\n this.formSectionsActivate[sectionName] = [];\n }\n this.formSectionsActivate[sectionName].push(callbackMethod);\n });\n }\n\n addSectionInactivation(sections, callbackMethod) {\n const sectionSet = (Array.isArray(sections)) ? sections : [sections];\n sectionSet.forEach((sectionName) => {\n if (!this.formSectionsInactivate[sectionName]) {\n this.formSectionsInactivate[sectionName] = [];\n }\n this.formSectionsInactivate[sectionName].push(callbackMethod);\n });\n }\n\n addActionMethodStart(actions, callbackMethod) {\n const actionSet = (Array.isArray(actions)) ? actions : [actions];\n actionSet.forEach((actionName) => {\n if (!this.formActionsStart[actionName]) {\n this.formActionsStart[actionName] = [];\n }\n this.formActionsStart[actionName].push(callbackMethod);\n });\n }\n\n addActionMethodFinish(actions, callbackMethod) {\n const actionSet = (Array.isArray(actions)) ? actions : [actions];\n actionSet.forEach((actionName) => {\n if (!this.formActionsFinish[actionName]) {\n this.formActionsFinish[actionName] = [];\n }\n this.formActionsFinish[actionName].push(callbackMethod);\n });\n }\n\n async launchSectionActivation(sectionCode: string) {\n const sectionObject = this.formStructure.getSectionObject(sectionCode);\n if (!sectionObject) { return; }\n const clientSectionMethods = this.formSectionsActivate[sectionCode];\n if (clientSectionMethods) {\n for (const clientSectionMethod of clientSectionMethods) {\n clientSectionMethod(sectionObject);\n }\n }\n }\n\n async launchSectionInactivation(sectionCode: string) {\n const sectionObject = this.formStructure.getSectionObject(sectionCode);\n if (!sectionObject) { return; }\n const clientSectionMethods = this.formSectionsInactivate[sectionCode];\n if (clientSectionMethods) {\n for (const clientSectionMethod of clientSectionMethods) {\n clientSectionMethod(sectionObject);\n }\n }\n }\n\n async startAction(actionCode: string) {\n const actionObject = this.getAction(actionCode);\n if (!actionObject) { return; }\n this.resetError();\n actionObject.start();\n const clientActionMethods = this.formActionsStart[actionCode];\n if (clientActionMethods) {\n const clientActionPromises = [];\n for (const clientActionMethod of clientActionMethods) {\n const continueActionPromise = clientActionMethod(actionObject);\n clientActionPromises.push(continueActionPromise);\n }\n const clientActionResults = await Promise.all(clientActionPromises);\n const continueAction = clientActionResults.reduce((total, curr) => (total && curr), true);\n if (!continueAction) {\n actionObject.stop();\n return;\n }\n }\n this.startServerAction(actionObject);\n }\n\n async startServerAction(actionInput) {\n const action = (typeof actionInput === 'string')\n ? this.getAction(actionInput) : actionInput;\n let finish = true;\n let actionResult = null;\n if (action.backend) {\n actionResult = await this.requestFormAction(action.actionCode);\n finish = !this.errorOccured();\n }\n if (finish) {\n await this.finishAction(action, actionResult);\n this.changeState(action.newState);\n } else {\n this.displayActionServerError();\n }\n action.stop();\n }\n\n async finishAction(actionObject, actionResult) {\n const finishActionMethods = this.formActionsFinish[actionObject.actionCode];\n if (finishActionMethods) {\n const clientActionPromises = [];\n for (const clientActionMethod of finishActionMethods) {\n clientActionPromises.push(clientActionMethod(actionObject, actionResult));\n }\n await Promise.all(clientActionPromises);\n }\n }\n\n completeGlobalAction(actionObject) {\n return this.startServerAction(actionObject);\n }\n\n /**\n * Manejadores de eventos para validaciones sobre campos\n */\n\n addFieldInputValidation(fields, callbackMethod) {\n const fieldSet = (Array.isArray(fields)) ? fields : [fields];\n fieldSet.forEach((fieldCode) => {\n if (!this.fieldInputValidation[fieldCode]) {\n this.fieldInputValidation[fieldCode] = [];\n }\n this.fieldInputValidation[fieldCode].push(callbackMethod);\n });\n }\n\n addFieldValidationStart(fields, callbackMethod) {\n const fieldSet = (Array.isArray(fields)) ? fields : [fields];\n fieldSet.forEach((fieldCode) => {\n if (!this.fieldValidationsStart[fieldCode]) {\n this.fieldValidationsStart[fieldCode] = [];\n }\n this.fieldValidationsStart[fieldCode].push(callbackMethod);\n });\n }\n\n addFieldValidationFinish(fields, callbackMethod) {\n const fieldSet = (Array.isArray(fields)) ? fields : [fields];\n fieldSet.forEach((fieldCode) => {\n if (!this.fieldValidationsFinish[fieldCode]) {\n this.fieldValidationsFinish[fieldCode] = [];\n }\n this.fieldValidationsFinish[fieldCode].push(callbackMethod);\n });\n }\n\n async startFieldInputValidation(fieldCode: string) {\n const fieldToValidate = this.getFieldObject(fieldCode);\n if (!fieldToValidate) { return false; }\n fieldToValidate.setErrorMessage('');\n fieldToValidate.setErrorCode('00');\n const validationCallbacks = this.fieldInputValidation[fieldCode];\n if (validationCallbacks) {\n const clientValidationPromises = [];\n for (const validationMethod of validationCallbacks) {\n const continueValidationPromise = validationMethod(fieldToValidate);\n clientValidationPromises.push(continueValidationPromise);\n }\n await Promise.all(clientValidationPromises);\n }\n }\n\n async startFieldValidation(fieldCode: string) {\n const fieldToValidate = this.getField(fieldCode);\n if (!fieldToValidate) { return; }\n fieldToValidate.setErrorMessage('');\n fieldToValidate.setErrorCode('00');\n const validationCallbacks = this.fieldValidationsStart[fieldCode];\n if (validationCallbacks) {\n const clientValidationPromises = [];\n for (const validationMethod of validationCallbacks) {\n const clientValidationPromise = validationMethod(fieldToValidate);\n clientValidationPromises.push(clientValidationPromise);\n }\n const clientValidationResults = await Promise.all(clientValidationPromises);\n const continueValidation = clientValidationResults.reduce((total, curr) => (total && curr), true);\n if (!continueValidation) {\n return;\n }\n }\n this.startServerFieldValidation(fieldToValidate);\n }\n\n async startServerFieldValidation(inputField) {\n const fieldObj = (typeof inputField === 'string')\n ? this.getField(inputField) : inputField;\n let finish = true;\n let validationResult = null;\n if (fieldObj.backend) {\n validationResult = await this\n .requestFormAction(componentConstants.FORMACTION_VALIDATE, fieldObj.fieldCode);\n finish = !this.errorOccured();\n }\n if (finish) {\n await this.finishFieldValidation(fieldObj, validationResult);\n } else {\n fieldObj.setErrorCode(this.errorCode);\n fieldObj.setErrorMessage(this.errorMessage);\n this.displayValidationServerError();\n }\n }\n\n async finishFieldValidation(fieldObject, validationResult) {\n const validationCallbacks = this.fieldValidationsFinish[fieldObject.fieldCode];\n if (validationCallbacks) {\n const clientActionPromises = [];\n for (const validationMethod of validationCallbacks) {\n clientActionPromises.push(validationMethod(fieldObject, validationResult));\n }\n await Promise.all(clientActionPromises);\n }\n }\n\n async continueFieldValidation(fieldCode) {\n return this.startServerFieldValidation(fieldCode);\n }\n\n /**\n * Manejadores de eventos para acciones sobre Tablas\n */\n\n addTableActionStart(tableName, actionCode, callbackMethod) {\n const tableObject = this.getTable(tableName);\n if (!tableObject) {\n return;\n }\n const inlineActionObject = tableObject.getActionObject(actionCode);\n if (!inlineActionObject) {\n return;\n }\n let tableEventHandlers = null;\n if (this.tableActionsStart[tableName]) {\n tableEventHandlers = this.tableActionsStart[tableName];\n } else {\n tableEventHandlers = {};\n this.tableActionsStart[tableName] = tableEventHandlers;\n }\n if (!tableEventHandlers[actionCode]) {\n tableEventHandlers[actionCode] = [];\n }\n tableEventHandlers[actionCode].push(callbackMethod);\n }\n\n addTableActionFinish(tableName, actionCode, callbackMethod) {\n const tableObject = this.getTable(tableName);\n if (!tableObject) {\n return;\n }\n const inlineActionObject = tableObject.getActionObject(actionCode);\n if (!inlineActionObject) {\n return;\n }\n let tableEventHandlers = null;\n if (this.tableActionsFinish[tableName]) {\n tableEventHandlers = this.tableActionsFinish[tableName];\n } else {\n tableEventHandlers = {};\n this.tableActionsFinish[tableName] = tableEventHandlers;\n }\n if (!tableEventHandlers[actionCode]) {\n tableEventHandlers[actionCode] = [];\n }\n tableEventHandlers[actionCode].push(callbackMethod);\n }\n\n addTableSelectionStart(tableName, callbackMethod) {\n const tableObject = this.getTable(tableName);\n if (!tableObject) { return; }\n let tableEventHandlers = null;\n if (this.tableSelectionsStart[tableName]) {\n tableEventHandlers = this.tableSelectionsStart[tableName];\n } else {\n tableEventHandlers = [];\n this.tableSelectionsStart[tableName] = tableEventHandlers;\n }\n tableEventHandlers.push(callbackMethod);\n }\n\n addTableSelectionFinish(tableName, callbackMethod) {\n const tableObject = this.getTable(tableName);\n if (!tableObject) { return; }\n let tableEventHandlers = null;\n if (this.tableSelectionsFinish[tableName]) {\n tableEventHandlers = this.tableSelectionsFinish[tableName];\n } else {\n tableEventHandlers = [];\n this.tableSelectionsFinish[tableName] = tableEventHandlers;\n }\n tableEventHandlers.push(callbackMethod);\n }\n\n addTableGetDataStart(tableName, callbackMethod) {\n const tableObject = this.getTable(tableName);\n if (!tableObject) {\n return;\n }\n let tableEventHandlers = null;\n if (this.tableGetDataStart[tableName]) {\n tableEventHandlers = this.tableGetDataStart[tableName];\n } else {\n tableEventHandlers = [];\n this.tableGetDataStart[tableName] = tableEventHandlers;\n }\n tableEventHandlers.push(callbackMethod);\n }\n\n addTableGetDataFinish(tableName, callbackMethod) {\n const tableObject = this.getTable(tableName);\n if (!tableObject) {\n return;\n }\n let tableEventHandlers = null;\n if (this.tableGetDataFinish[tableName]) {\n tableEventHandlers = this.tableGetDataFinish[tableName];\n } else {\n tableEventHandlers = {};\n this.tableGetDataFinish[tableName] = tableEventHandlers;\n }\n tableEventHandlers[GET_DATA_ACTION] = callbackMethod;\n }\n\n async startTableGlobalAction(tableActionEvent) {\n const { tableCode, actionCode } = tableActionEvent;\n const tableObject = this.getTable(tableCode);\n if (!tableObject || !actionCode) { return; }\n this.resetError();\n const action = tableObject.getAction(actionCode);\n if (!action) { return; }\n const tableActionDetail = {\n tableObject,\n action,\n tableCode,\n actionCode,\n };\n const tableEventHandlers = this.tableActionsStart[tableCode];\n const tableActionMethods = (tableEventHandlers) ? tableEventHandlers[actionCode] : null;\n if (tableActionMethods) {\n const clientActionPromises = [];\n for (const tableActionMethod of tableActionMethods) {\n const clientActionPromise = tableActionMethod(tableActionDetail);\n clientActionPromises.push(clientActionPromise);\n }\n const clientActionResults = await Promise.all(clientActionPromises);\n const continueAction = clientActionResults.reduce((total, curr) => (total && curr), true);\n if (!continueAction) {\n return;\n }\n }\n this.startTableServerGlobalAction(tableActionDetail);\n }\n\n async startTableServerGlobalAction(tableActionDetail) {\n const { tableObject, action, tableCode, actionCode } = tableActionDetail;\n if (!tableObject || !action) { return; }\n tableObject.putOnWait();\n let finish = true;\n let actionResult = null;\n if (action.backend) {\n const actionSubject = {\n tableCode,\n actionType: GLOBAL_ACTION,\n actionCode\n };\n actionResult = await this\n .requestFormAction(componentConstants.FORMACTION_TABLEACTION, actionSubject);\n finish = !this.errorOccured();\n }\n if (finish) {\n await this.finishTableGlobalAction(tableActionDetail, actionResult);\n this.changeState(action.newState);\n } else {\n this.displayTableServerError();\n }\n tableObject.freeWaiting();\n }\n\n async finishTableGlobalAction(tableActionDetail, actionResult) {\n const { tableCode, actionCode } = tableActionDetail;\n const tableEventHandlers = this.tableActionsFinish[tableCode];\n const tableActionMethods = (tableEventHandlers) ? tableEventHandlers[actionCode] : null;\n if (tableActionMethods) {\n const clientActionPromises = [];\n for (const tableActionMethod of tableActionMethods) {\n clientActionPromises.push(tableActionMethod(tableActionDetail, actionResult));\n }\n await Promise.all(clientActionPromises);\n }\n }\n\n async startTableAction(tableActionEvent) {\n const { tableCode, actionCode, actionDetail } = tableActionEvent;\n const tableObject = this.getTable(tableCode);\n if (!tableObject || !actionCode) { return; }\n this.resetError();\n const { recordId, recordData } = actionDetail;\n const action = tableObject.getAction(actionCode);\n if (!action) { return; }\n const tableActionDetail = {\n tableObject,\n action,\n tableCode,\n actionCode,\n recordId,\n recordData\n };\n const tableEventHandlers = this.tableActionsStart[tableCode];\n const tableActionMethods = (tableEventHandlers) ? tableEventHandlers[actionCode] : null;\n if (tableActionMethods) {\n const clientActionPromises = [];\n for (const tableActionMethod of tableActionMethods) {\n const clientActionPromise = tableActionMethod(tableActionDetail);\n clientActionPromises.push(clientActionPromise);\n }\n const clientActionResults = await Promise.all(clientActionPromises);\n const continueAction = clientActionResults.reduce((total, curr) => (total && curr), true);\n if (!continueAction) {\n return;\n }\n }\n this.startTableServerAction(tableActionDetail);\n }\n\n async startTableServerAction(tableActionDetail) {\n const { tableObject, action, tableCode, actionCode, recordId, recordData } = tableActionDetail;\n if (!tableObject || !action) { return; }\n tableObject.putOnWait();\n let finish = true;\n let actionResult = null;\n if (action.backend) {\n const actionSubject = {\n tableCode,\n actionType: componentConstants.FORMTABLEACTION_INLINE,\n actionCode,\n tableRecordId: recordId,\n tableRecordData: recordData\n };\n actionResult = await this\n .requestFormAction(componentConstants.FORMACTION_TABLEACTION, actionSubject);\n finish = !this.errorOccured();\n }\n if (finish) {\n this.finishTableAction(tableActionDetail, actionResult);\n this.changeState(action.newState);\n } else {\n this.displayTableServerError();\n }\n tableObject.freeWaiting();\n }\n\n completeInlineAction(tableAction) {\n return this.startTableServerAction(tableAction);\n }\n\n async finishTableAction(tableActionDetail, actionResult) {\n const { tableCode, actionCode } = tableActionDetail;\n const tableEventHandlers = this.tableActionsFinish[tableCode];\n const tableActionMethods = (tableEventHandlers) ? tableEventHandlers[actionCode] : null;\n if (tableActionMethods) {\n const clientActionPromises = [];\n for (const tableActionMethod of tableActionMethods) {\n clientActionPromises.push(tableActionMethod(tableActionDetail, actionResult));\n }\n await Promise.all(clientActionPromises);\n }\n }\n\n async startTableRecordSelection(tableActionEvent) {\n const { tableCode, actionDetail } = tableActionEvent;\n const tableObject = this.getTable(tableCode);\n if (!tableObject) { return; }\n this.resetError();\n const { recordId, recordData } = actionDetail;\n const tableSelectionDetail = {\n tableObject,\n tableCode,\n recordId,\n recordData\n };\n const tableEventHandlers = this.tableSelectionsStart[tableCode];\n if (tableEventHandlers) {\n const clientActionPromises = [];\n for (const tableSelectionMethod of tableEventHandlers) {\n const clientActionPromise = tableSelectionMethod(tableSelectionDetail);\n clientActionPromises.push(clientActionPromise);\n }\n const clientActionResults = await Promise.all(clientActionPromises);\n const continueAction = clientActionResults.reduce((total, curr) => (total && curr), true);\n if (!continueAction) {\n return;\n }\n }\n this.startTableServerRecordSelection(tableSelectionDetail);\n }\n\n async startTableServerRecordSelection(tableSelectionDetail) {\n const { tableObject, tableCode, recordId, recordData } = tableSelectionDetail;\n if (!tableObject) { return; }\n tableObject.putOnWait();\n let finish = true;\n let actionResult = null;\n if (tableObject.selectionBackend) {\n const actionSubject: any = {\n tableCode,\n actionType: componentConstants.FORMTABLEACTION_ROWSELECTION,\n actionCode: null,\n tableRecordId: recordId,\n tableRecordData: recordData\n };\n actionResult = await this\n .requestFormAction(componentConstants.FORMACTION_TABLEACTION, actionSubject);\n finish = !this.errorOccured();\n }\n if (finish) {\n this.finishTableRecordSelection(tableSelectionDetail, actionResult);\n } else {\n this.displayTableServerError();\n }\n tableObject.freeWaiting();\n }\n\n async finishTableRecordSelection(tableSelectionDetail, actionResult) {\n const { tableCode } = tableSelectionDetail;\n const tableEventHandlers = this.tableSelectionsFinish[tableCode];\n if (tableEventHandlers) {\n const clientActionPromises = [];\n for (const tableSelectionMethod of tableEventHandlers) {\n clientActionPromises.push(tableSelectionMethod(tableSelectionDetail, actionResult));\n }\n await Promise.all(clientActionPromises);\n }\n }\n\n async startTableSelectionAction(tableActionEvent) {\n const { tableCode, actionCode, actionDetail } = tableActionEvent;\n const tableObject = this.getTable(tableCode);\n if (!tableObject || !actionCode) { return; }\n this.resetError();\n const { selectedRecords } = actionDetail;\n const action = tableObject.getAction(actionCode);\n if (!action) { return; }\n const tableActionDetail = {\n tableObject,\n action,\n tableCode,\n actionCode,\n selectedRecords\n };\n const tableEventHandlers = this.tableActionsStart[tableCode];\n const tableActionMethods = (tableEventHandlers) ? tableEventHandlers[actionCode] : null;\n if (tableActionMethods) {\n const clientActionPromises = [];\n for (const tableActionMethod of tableActionMethods) {\n const clientActionPromise = tableActionMethod(tableActionDetail);\n clientActionPromises.push(clientActionPromise);\n }\n const clientActionResults = await Promise.all(clientActionPromises);\n const continueAction = clientActionResults.reduce((total, curr) => (total && curr), true);\n if (!continueAction) {\n return;\n }\n }\n this.startTableServerSelectionAction(tableActionDetail);\n }\n\n async startTableServerSelectionAction(tableActionDetail) {\n const { tableObject, action, tableCode, actionCode, selectedRecords } = tableActionDetail;\n if (!tableObject || !action) { return; }\n tableObject.putOnWait();\n let finish = true;\n let actionResult = null;\n if (action.backend) {\n const actionSubject = {\n tableCode,\n actionType: componentConstants.FORMTABLEACTION_SELECTION,\n actionCode,\n selectedRecords\n };\n actionResult = await this\n .requestFormAction(componentConstants.FORMACTION_TABLEACTION, actionSubject);\n finish = !this.errorOccured();\n }\n if (finish) {\n this.finishTableSelectionAction(tableActionDetail, actionResult);\n this.changeState(action.newState);\n } else {\n this.displayTableServerError();\n }\n tableObject.freeWaiting();\n }\n\n async finishTableSelectionAction(tableActionDetail, actionResult) {\n const { tableCode, actionCode } = tableActionDetail;\n const tableEventHandlers = this.tableActionsFinish[tableCode];\n const tableActionMethods = (tableEventHandlers) ? tableEventHandlers[actionCode] : null;\n if (tableActionMethods) {\n const clientActionPromises = [];\n for (const tableActionMethod of tableActionMethods) {\n clientActionPromises.push(tableActionMethod(tableActionDetail, actionResult));\n }\n await Promise.all(clientActionPromises);\n }\n }\n\n async startTableGetData(tableActionEvent) {\n const { tableCode } = tableActionEvent;\n const tableObject = this.getTable(tableCode);\n const tableActionDetail = {\n tableObject,\n tableCode\n };\n this.resetError();\n const tableEventHandlers = this.tableGetDataStart[tableCode];\n if (tableEventHandlers) {\n const clientActionPromises = [];\n for (const tableActionMethod of tableEventHandlers) {\n const clientActionPromise = tableActionMethod(tableActionDetail);\n clientActionPromises.push(clientActionPromise);\n }\n const clientActionResults = await Promise.all(clientActionPromises);\n const continueAction = clientActionResults.reduce((total, curr) => (total && curr), true);\n if (!continueAction) {\n return;\n }\n }\n this.startTableServerGetData(tableActionDetail);\n }\n\n async startTableServerGetData(tableActionDetail) {\n const { tableObject, tableCode } = tableActionDetail;\n tableObject.putOnWait();\n const actionSubject = { tableCode };\n const actionResult = await this\n .requestFormAction(componentConstants.FORMACTION_GETTABLEDATA, actionSubject);\n if (this.errorOccured()) {\n this.displayTableServerError();\n } else {\n this.finishTableGetData(tableActionDetail, actionResult);\n }\n tableObject.freeWaiting();\n }\n\n async finishTableGetData(tableActionDetail, actionResult) {\n const { tableCode, tableActionCode } = tableActionDetail;\n const tableEventHandlers = this.tableActionsFinish[tableCode];\n const tableActionMethods = (tableEventHandlers) ? tableEventHandlers[tableActionCode] : null;\n if (tableActionMethods) {\n const clientActionPromises = [];\n for (const tableActionMethod of tableActionMethods) {\n clientActionPromises.push(tableActionMethod(tableActionDetail, actionResult));\n }\n await Promise.all(clientActionPromises);\n }\n }\n\n checkSectionRequiredFields(sectionCode, reqFieldMessage?) {\n this.cleanErrorFields(null, sectionCode);\n const requiredFieldMessage = reqFieldMessage || REQUIRED_FIELD_MESSAGE;\n const numErrors = this.tagFieldsWithError(this.getRequiredEmptyFields(null,\n sectionCode), null, requiredFieldMessage);\n return (numErrors === 0);\n }\n\n validateSectionConsistency(sectionCode, reqFieldMessage?) {\n this.resetError();\n const completeFields = this.checkSectionRequiredFields(sectionCode, reqFieldMessage);\n if (!completeFields) {\n this.setError(componentConstants.FORMERROR_TYPE_WARNING,\n componentConstants.FORMERROR_VALIDATION_TITLE,\n componentConstants.FORMERROR_REQUIRED_FIELDS);\n return;\n }\n let validationError = false;\n const requiredEmptyFields = this.getRequiredEmptyFields(null, sectionCode);\n if (requiredEmptyFields.length > 0) {\n validationError = true;\n this.setError(componentConstants.FORMERROR_TYPE_WARNING,\n componentConstants.FORMERROR_VALIDATION_TITLE,\n componentConstants.FORMERROR_REQUIRED_FIELDS);\n this.tagFieldsWithError(requiredEmptyFields, null,\n componentConstants.FIELD_REQUIRED_MESSAGE);\n for (const fieldCode of requiredEmptyFields) {\n const requiredEmptyField = this.getField(fieldCode);\n if (requiredEmptyField && requiredEmptyField.widget\n && requiredEmptyField.widget.focus) {\n requiredEmptyField.widget.focus();\n break;\n }\n }\n }\n const validationIssueFields = this.getFieldsWithValidationIssues(null,\n sectionCode);\n if (!validationError && validationIssueFields.length > 0) {\n validationError = true;\n this.setError(componentConstants.FORMERROR_TYPE_WARNING,\n componentConstants.FORMERROR_VALIDATION_TITLE,\n componentConstants.FORMERROR_VALIDATION_FIELDS);\n for (const fieldCode of validationIssueFields) {\n const validationIssueField = this.getField(fieldCode);\n if (validationIssueField && validationIssueField.widget\n && validationIssueField.widget.focus) {\n validationIssueField.widget.focus();\n break;\n }\n }\n }\n return validationError;\n }\n\n copyTableRecordToFields(tableObj, mappingTable = null) {\n const tableObject = this.getTable(tableObj.tableCode);\n const tableRecord = tableObject.getTableRecord(tableObj.recordId);\n const columnNames = tableObject.columnNames;\n for (const columnName of columnNames) {\n const columnValue = tableRecord.getFieldValue(columnName) ?? '';\n const fieldCode = mappingTable?.[columnName] ?? columnName;\n this.setFieldValue(fieldCode, columnValue);\n }\n return true;\n }\n\n /**\n * Soporte registros en tablas que se editan en campos del formulario\n */\n\n defineEditionTable(tableEditionDef) {\n const { columnFieldMapping, recordCaptureFields, startCollapsed } = tableEditionDef;\n tableEditionDef.startCollapsed = (typeof startCollapsed !== 'undefined')\n ? startCollapsed : true;\n\n const fieldsMappingTable = {};\n const fieldsToClear = [];\n for (const columnMap of columnFieldMapping) {\n const [columnName, formField] = columnMap;\n fieldsMappingTable[columnName] = formField;\n fieldsToClear.push(formField);\n }\n tableEditionDef.fieldsMappingTable = fieldsMappingTable;\n tableEditionDef.fieldsToClear = fieldsToClear;\n\n const { tableName, newRecordActionName, saveRecordActionName,\n cancelSaveRecordActionName, tableEditRecordActionName, enableRecordEdition\n } = tableEditionDef;\n\n this.addActionMethodStart(newRecordActionName, () => {\n this.cleanFields(fieldsToClear, null);\n this.showFields(recordCaptureFields);\n if (!enableRecordEdition) {\n this.enableRecordEdition(tableEditionDef);\n } else {\n enableRecordEdition(tableEditionDef);\n }\n this.hideAction(newRecordActionName);\n this.showAction(cancelSaveRecordActionName);\n this.showAction(saveRecordActionName);\n return true;\n });\n const { recordEditionValidate, disableRecordEdition } = tableEditionDef;\n this.addActionMethodStart(saveRecordActionName, () => {\n return (!recordEditionValidate) ? this.recordEditionValidate(tableEditionDef)\n : recordEditionValidate(tableEditionDef);\n });\n this.addActionMethodFinish(saveRecordActionName, () => {\n if (!this.errorOccured()) {\n return (!disableRecordEdition) ? this.disableRecordEdition(tableEditionDef)\n : disableRecordEdition(tableEditionDef);\n }\n });\n this.addActionMethodStart(cancelSaveRecordActionName, () => {\n return (!disableRecordEdition) ? this.disableRecordEdition(tableEditionDef)\n : disableRecordEdition(tableEditionDef);\n });\n this.addTableActionStart(tableName, tableEditRecordActionName,\n (tblActObj) => {\n return (!enableRecordEdition)\n ? this.enableRecordEdition(tableEditionDef, tblActObj)\n : enableRecordEdition(tableEditionDef, tblActObj);\n });\n if (tableEditionDef.startCollapsed) {\n return (!tableEditionDef.disableRecordEdition)\n ? this.disableRecordEdition(tableEditionDef)\n : tableEditionDef.disableRecordEdition(tableEditionDef);\n } else {\n return (!tableEditionDef.enableRecordEdition)\n ? this.enableRecordEdition(tableEditionDef)\n : tableEditionDef.enableRecordEdition(tableEditionDef, null);\n }\n }\n\n enableRecordEdition(tableEditionDef, tableActionObject = null) {\n if (tableActionObject) {\n this.copyTableRecordToFields(tableActionObject, tableEditionDef.fieldsMappingTable);\n }\n this.showFields(tableEditionDef.recordCaptureFields);\n this.hideAction(tableEditionDef.newRecordActionName);\n this.showAction(tableEditionDef.cancelSaveRecordActionName);\n this.showAction(tableEditionDef.saveRecordActionName);\n if (tableEditionDef.fieldsToTriggerValidation\n && tableEditionDef.fieldsToTriggerValidation.length > 0) {\n for (const fieldName of tableEditionDef.fieldsToTriggerValidation) {\n this.startFieldValidation(fieldName);\n }\n }\n return true;\n }\n\n disableRecordEdition(tableDefinition) {\n this.cleanFields(tableDefinition.fieldsToClear, null);\n this.hideFields(tableDefinition.recordCaptureFields);\n this.showAction(tableDefinition.newRecordActionName);\n this.hideAction(tableDefinition.cancelSaveRecordActionName);\n this.hideAction(tableDefinition.saveRecordActionName);\n return true;\n }\n\n recordEditionValidate(tableEditionDef) {\n const { recordCaptureFields } = tableEditionDef;\n let validationOk = true;\n const requiredEmptyFields = this.getRequiredEmptyFields(recordCaptureFields, null);\n if (requiredEmptyFields.length > 0) {\n validationOk = false;\n this.setError(componentConstants.FORMERROR_TYPE_WARNING,\n componentConstants.FORMERROR_VALIDATION_TITLE,\n componentConstants.FORMERROR_REQUIRED_FIELDS);\n this.tagFieldsWithError(requiredEmptyFields, null,\n componentConstants.FIELD_REQUIRED_MESSAGE);\n }\n const validationIssueFields = this.getFieldsWithValidationIssues(recordCaptureFields, null);\n if (validationIssueFields.length > 0) {\n validationOk = false;\n this.setError(componentConstants.FORMERROR_TYPE_WARNING,\n componentConstants.FORMERROR_VALIDATION_TITLE, componentConstants.FORMERROR_VALIDATION_FIELDS);\n }\n return validationOk;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { FormsModule } from '@angular/forms';\n\nimport { BasicFormComponent } from './components/forms/basic-form';\nimport { ActionComponent } from './components/elements/actions/action.component';\nimport { FieldComponent } from './components/elements/fields/field.component';\nimport { PasswordComponent } from './components/elements/fields/password.component';\nimport { ElementComponent } from './components/elements/layout/element.component';\nimport { FormErrorComponent } from './components/elements/layout/form-error.component';\nimport { FormHeaderComponent } from './components/elements/layout/form-header.component';\nimport { SectionComponent } from './components/elements/layout/section.component';\nimport { SubSectionComponent } from './components/elements/layout/sub-section.component';\nimport { LibTableFilterComponent } from './components/elements/tables/table-filter.component';\nimport { LibTableRecordActionComponent } from './components/elements/tables/table-record-action.component';\nimport { LibTableRecordFieldComponent } from './components/elements/tables/table-record-field.component';\nimport { LibTableComponent } from './components/elements/tables/table.component';\n\nconst COMPONENTS = [\n BasicFormComponent,\n ActionComponent,\n FieldComponent,\n PasswordComponent,\n ElementComponent,\n FormErrorComponent,\n FormHeaderComponent,\n SectionComponent,\n SubSectionComponent,\n LibTableFilterComponent,\n LibTableRecordActionComponent,\n LibTableRecordFieldComponent,\n LibTableComponent];\n\n@NgModule({\n declarations: COMPONENTS,\n imports: [\n CommonModule,\n RouterModule,\n FormsModule,\n ],\n exports: COMPONENTS\n})\nexport class TuainNgFormsLibModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Component","Input","EventEmitter","Output","Subject","INLINE_ACTION","ChangeDetectionStrategy","HEADER","nanoid","BehaviorSubject","NgModule","CommonModule","RouterModule","FormsModule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tuain-ng-forms-lib.umd.js","sources":["../../../projects/tuain-ng-forms-lib/src/lib/components/elements/action.component.ts","../../../projects/tuain-ng-forms-lib/src/lib/classes/forms/form.constants.ts","../../../projects/tuain-ng-forms-lib/src/lib/components/elements/field.component.ts","../../../projects/tuain-ng-forms-lib/src/lib/components/elements/layout/element.component.ts","../../../projects/tuain-ng-forms-lib/src/lib/components/elements/layout/form-error.component.ts","../../../projects/tuain-ng-forms-lib/src/lib/components/elements/layout/form-header.component.ts","../../../projects/tuain-ng-forms-lib/src/lib/components/elements/layout/section.component.ts","../../../projects/tuain-ng-forms-lib/src/lib/components/elements/layout/sub-section.component.ts","../../../projects/tuain-ng-forms-lib/src/lib/classes/forms/table/filter.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/tuain-ng-forms-lib/src/lib/classes/forms/element.ts","../../../projects/tuain-ng-forms-lib/src/lib/classes/forms/table/column.ts","../../../projects/tuain-ng-forms-lib/src/lib/classes/forms/table/action.ts","../../../projects/tuain-ng-forms-lib/src/lib/classes/utilities.ts","../../../projects/tuain-ng-forms-lib/src/lib/classes/forms/table/row-data.ts","../../../projects/tuain-ng-forms-lib/src/lib/classes/forms/table/table.ts","../../../projects/tuain-ng-forms-lib/src/lib/components/elements/tables/table-filter.component.ts","../../../projects/tuain-ng-forms-lib/src/lib/components/elements/tables/table-record-action.component.ts","../../../projects/tuain-ng-forms-lib/src/lib/components/elements/tables/table-record-field.component.ts","../../../projects/tuain-ng-forms-lib/src/lib/components/elements/tables/table.component.ts","../../../projects/tuain-ng-forms-lib/src/lib/classes/forms/subsection.ts","../../../projects/tuain-ng-forms-lib/src/lib/classes/forms/section.ts","../../../projects/tuain-ng-forms-lib/src/lib/classes/forms/action.ts","../../../projects/tuain-ng-forms-lib/src/lib/classes/forms/field.ts","../../../projects/tuain-ng-forms-lib/src/lib/classes/forms/form.ts","../../../projects/tuain-ng-forms-lib/src/lib/services/form-manager.service.ts","../../../projects/tuain-ng-forms-lib/src/lib/services/event-manager.service.ts","../../../projects/tuain-ng-forms-lib/src/lib/services/file-manager.service.ts","../../../projects/tuain-ng-forms-lib/src/lib/components/forms/basic-form.ts","../../../projects/tuain-ng-forms-lib/src/lib/tuain-ng-forms-lib.module.ts","../../../projects/tuain-ng-forms-lib/src/tuain-ng-forms-lib.ts"],"sourcesContent":["import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-action',\n template: `<ng-content></ng-content>`\n})\n\nexport class ActionComponent implements OnInit {\n inProgress: boolean;\n @Input() actionObject: any;\n @Input() disabled: boolean;\n @Input() formBusy: any;\n @Input() relatedField: any;\n\n @Input() style = 'primary';\n @Input() showLabel = true;\n\n ngOnInit() {\n this.start();\n }\n\n start() { }\n\n activate() {\n if (this.actionObject?.notifyActivation) {\n this.actionObject.notifyActivation();\n }\n }\n\n get isVisible() {\n if (!this.actionObject?.restrictedOnField) {\n return true;\n }\n if ((this.actionObject?.restrictedOnOperator === '=='\n && this.relatedField === this.actionObject?.restrictedOnValue)\n || (this.actionObject?.restrictedOnOperator === '!='\n && this.relatedField !== this.actionObject?.restrictedOnValue)) {\n return true;\n }\n }\n}\n","export const componentConstants = {\n recordsPerPage: 10,\n // Constantes para el despliegue de formularios\n ELEMENTTYPE_ACTION: 'ACTION',\n ELEMENTTYPE_FIELD: 'FIELD',\n ELEMENTTYPE_TABLE: 'TABLE',\n // Acciones de formularios\n FORMACTION_TABLEACTION: 'TABLEACTION',\n FORMACTION_GETDATA: 'GETDATA',\n FORMACTION_GETTABLEDATA: 'GETTABLEDATA',\n FORMACTION_VALIDATE: 'VALIDATE',\n // Errores etándar de formularios\n FORMERROR_VALIDATION_CODE: '13',\n FORMERROR_TYPE_WARNING: 'WARNING',\n FORMERROR_REQUIRED_FIELDS: 'Todos los campos requeridos deben ser diligenciados',\n FORMERROR_VALIDATION_TITLE: 'Advertencia',\n FORMERROR_VALIDATION_FIELDS: 'Existen campos con problemas de validación',\n // Valores para los controles de navegació\n FORMNAVIGATION_FIRST: 'first',\n FORMNAVIGATION_PREVGROUP: 'prevgroup',\n FORMNAVIGATION_NEXTGROUP: 'nextgroup',\n FORMNAVIGATION_LAST: 'last',\n\n FIELDTYPE_ARRAY: 'ARRAY',\n FIELDTYPE_CHECK: 'CHECK',\n FIELDTYPE_DATE: 'DATE',\n FIELDTYPE_MAP: 'MAP',\n FIELDTYPE_CURRENCY: 'CURRENCY',\n FIELDTYPE_SELECT: 'SELECT',\n FIELDTYPE_TEXT: 'TEXT',\n FIELD_REQUIRED_MESSAGE: 'Campo requerido',\n\n FORMTABLEACTION_SORT: 'SORT',\n FORMTABLEACTION_REFRESH: 'REFRESH',\n FORMTABLEACTION_NAVIGATE: 'NAVIGATE',\n\n FORMTABLEACTION_INLINE: 'INLINE',\n FORMTABLEACTION_GLOBAL: 'GLOBAL',\n FORMTABLEACTION_ROWSELECTION: 'ROWSELECTION',\n FORMTABLEACTION_SELECTION: 'SELECTION',\n\n TABLE_SORT_ASCENDING: 'asc',\n TABLE_SORT_DESCENDING: 'desc',\n\n SERVICE_ERRORCODE_NOERROR: '00',\n};\n\nexport const operators = {\n G: '>',\n L: '<',\n GE: '>=',\n LE: '<=',\n EQ: '==',\n NOT_EQ: '!=',\n CONTENT: 'Contiene',\n NOT_CONTENT: 'No Contiene',\n BETWEEN: 'Entre',\n};\n\nexport const tableFieldStyles = {\n TEXT: {\n 'text-align': 'left'\n },\n TITLE: {\n 'text-align': 'left'\n },\n LABEL: {\n 'text-align': 'left'\n },\n MESSAGE: {\n 'text-align': 'left'\n },\n NUMBER: {\n 'text-align': 'right'\n },\n DATE: {\n 'text-align': 'right'\n },\n CHECK: {\n 'text-align': 'center'\n },\n ARRAY: {\n 'text-align': 'left'\n },\n SELECT: {\n 'text-align': 'left'\n }\n};\n\nexport const DEFAULT_STATE_FLOW = {\n defaultState: 'CREATE',\n states: ['CREATE', 'EDIT', 'VIEW'],\n transitions: [\n { name: 'VIEW1', origin: 'CREATE', destination: 'VIEW' },\n { name: 'VIEW2', origin: 'EDIT', destination: 'VIEW' },\n { name: 'EDIT1', origin: 'CREATE', destination: 'EDIT' },\n { name: 'EDIT2', origin: 'VIEW', destination: 'EDIT' },\n { name: 'CREATE1', origin: 'EDIT', destination: 'CREATE' },\n { name: 'CREATE2', origin: 'VIEW', destination: 'CREATE' },\n ]\n};\n","import { Component, OnInit, Input } from '@angular/core';\nimport { componentConstants } from '../../classes/forms/form.constants';\nimport { FieldDescriptor } from '../../classes/forms/field';\n\n@Component({\n selector: 'lib-field',\n template: `<ng-content></ng-content>`\n})\nexport class FieldComponent implements OnInit {\n componentConstants: any;\n @Input() fieldObject: FieldDescriptor;\n @Input() disabled: boolean;\n\n constructor() {\n this.componentConstants = { ...componentConstants };\n }\n\n ngOnInit() {\n this.fieldObject.widget = this;\n this.start();\n }\n\n start() { }\n\n focus() { }\n\n onInputChange() {\n setTimeout(() => this.fieldObject.notifyEditionPartial(), 50);\n }\n\n onChangeContent() {\n setTimeout(() => this.fieldObject.notifyEditionFinish(), 50);\n }\n\n onShowInfo() {\n setTimeout(() => this.fieldObject.notifyEditionDetailRequest(), 50);\n }\n\n numberInputValidation(event) {\n const k = event.charCode;\n return (k > 47 && k < 58);\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { componentConstants } from '../../../classes/forms/form.constants';\n\n@Component({\n selector: 'lib-element',\n template: `<ng-content></ng-content>`\n})\nexport class ElementComponent implements OnInit {\n componentConstants: any;\n\n @Input() formElement: any;\n @Input() formManager: any;\n\n constructor() {\n this.componentConstants = { ...componentConstants };\n }\n\n ngOnInit() {\n this.start();\n }\n\n start() { }\n\n get visible() {\n const visible = this.formElement?.visible ?? true;\n return visible && this.formElement?.viewOnState(this.formManager?.currentState);\n }\n\n get disabled() {\n const disabled = this.formElement?.disabled ?? false;\n return disabled || !this.formElement?.enabledOnState(this.formManager?.currentState);\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-form-error',\n template: `<ng-content></ng-content>`\n})\nexport class FormErrorComponent {\n componentConstants: any;\n @Input() errorTitle: any;\n @Input() errorMessage: any;\n @Input() errorType: any;\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'lib-form-header',\n template: `<ng-content></ng-content>`\n})\nexport class FormHeaderComponent {\n @Input() formManager: any;\n @Input() goBackAction: boolean;\n @Input() showTitle: any;\n @Input() headerActions: any;\n @Output() goBackEvent: EventEmitter<object> = new EventEmitter<object>();\n\n goBackForm() {\n this.goBackEvent.emit();\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-section',\n template: `<ng-content></ng-content>`\n})\nexport class SectionComponent implements OnInit {\n @Input() sectionObject: any;\n @Input() formManager: any;\n\n ngOnInit() {\n this.start();\n }\n\n start() { }\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-subsection',\n template: `<ng-content></ng-content>`\n})\nexport class SubSectionComponent implements OnInit {\n @Input() subSection: any;\n @Input() showHeader: any;\n @Input() formManager: any;\n\n ngOnInit() {\n this.start();\n }\n\n start() { }\n}\n","export class FieldSearch {\n fieldCode: string;\n fieldAlias: string;\n fieldTitle: string;\n fieldTypeCode: string;\n operators: string[];\n alignment: string;\n format: string;\n constructor(filterDefinition) {\n this.fieldCode = filterDefinition.fieldCode;\n this.fieldAlias = filterDefinition.fieldAlias || filterDefinition.fieldCode;\n this.fieldTitle = filterDefinition.fieldTitle;\n this.fieldTypeCode = filterDefinition.fieldTypeCode;\n this.operators = filterDefinition.operators;\n this.alignment = filterDefinition.alignment;\n this.format = filterDefinition.format;\n }\n}\n\nexport interface AdvancedFilterItem {\n fieldSearch: FieldSearch;\n operator: string;\n fieldValue1: string;\n fieldValue2: string;\n}\n\nexport class Filter {\n filterModeSimple: boolean;\n advancedFilter: AdvancedFilterItem[];\n simpleFilterWords: string[];\n constructor() {\n this.filterModeSimple = true;\n this.advancedFilter = [];\n this.simpleFilterWords = [];\n }\n}\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 Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\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","import { componentConstants } from './form.constants';\n\nexport class FormElement {\n protected _visible: boolean;\n protected _visibleForced: boolean;\n protected _isForced: boolean;\n disabled: boolean;\n visibleStates: string[];\n enabledStates: string[];\n widget: any;\n type: string;\n\n constructor(elementDefinition) {\n this._isForced = false;\n this.setVisibleStates(elementDefinition.visibleStates);\n this.setEnabledStates(elementDefinition.enabledStates);\n this._visibleForced = false;\n this.disabled = elementDefinition?.disabled ?? false;\n this.setVisibility(elementDefinition?.visible ?? true);\n this.widget = null;\n }\n\n isField() { return this.type === componentConstants.ELEMENTTYPE_FIELD; }\n isAction() { return this.type === componentConstants.ELEMENTTYPE_ACTION; }\n isTable() { return this.type === componentConstants.ELEMENTTYPE_TABLE; }\n\n setVisibleStates(newStates: any) {\n const visibleStates = (!Array.isArray(newStates) && typeof newStates === 'string')\n ? newStates.split(',').map(state => state.trim()).filter(state => state.length > 0)\n : newStates;\n this.visibleStates = (Array.isArray(visibleStates)) ? visibleStates : [];\n }\n\n setEnabledStates(newStates: any) {\n const enabledStates = (!Array.isArray(newStates) && typeof newStates === 'string')\n ? newStates.split(',').map(state => state.trim()).filter(state => state.length > 0)\n : newStates;\n this.enabledStates = (Array.isArray(enabledStates)) ? enabledStates : [];\n }\n\n viewOnState(state) { return (this.visibleStates && state) ? this.visibleStates.includes(state) : false; }\n enabledOnState(state) { return (this.enabledStates && state) ? this.enabledStates.includes(state) : false; }\n\n supportState(state) { return this.viewOnState(state); }\n supportMode(state) { return this.viewOnState(state); }\n\n get visible() { return (this._isForced) ? this._visibleForced : this._visible; }\n set visible(visible: boolean) { this.setVisibility(visible); }\n\n setVisibility(visible: boolean, forced: boolean = null) {\n this._visible = visible && true;\n if (forced != null) {\n this._isForced = forced;\n }\n }\n\n show(forced?: boolean) {\n this._visible = true;\n if (forced !== null) {\n this._isForced = forced;\n this._visibleForced = true;\n }\n }\n\n hide(forced?: boolean) {\n this._visible = false;\n if (forced !== null) {\n this._isForced = forced;\n this._visibleForced = false;\n }\n }\n\n enable() { this.disabled = false; }\n disable() { this.disabled = true; }\n\n get enabled() { return !this.disabled; }\n get editable() { return !this.disabled; }\n}\n","import { componentConstants, tableFieldStyles } from '../form.constants';\n\nexport class RecordTableColumn {\n fieldCode: string;\n fieldTitle: string;\n fieldType: string;\n fieldAlignment: string;\n fieldFormat: string;\n visible: boolean;\n sortable: boolean;\n customAttributes: any;\n\n constructor(recTableColReceived) {\n if (recTableColReceived) {\n this.fieldCode = recTableColReceived.fieldCode;\n this.fieldTitle = recTableColReceived.fieldTitle;\n this.fieldType = recTableColReceived.fieldTypeCode || componentConstants.FIELDTYPE_TEXT;\n const defaultTypeAlignment = (tableFieldStyles[this.fieldType] != null) ? tableFieldStyles[this.fieldType]['text-align'] : 'left';\n this.fieldAlignment = (recTableColReceived.alignment != null) ? recTableColReceived.alignment.toLowerCase() : defaultTypeAlignment;\n this.visible = recTableColReceived?.visible ?? true;\n this.sortable = recTableColReceived?.sortable ?? false;\n this.fieldFormat = recTableColReceived.format || '';\n this.customAttributes = recTableColReceived?.customAttributes ?? {};\n }\n }\n}\n","export class TableAction {\n visibleStates: string[];\n enabledStates: string[];\n newState: string;\n\n actionCode: string;\n actionTitle: string;\n iconName: string;\n actionType: string;\n actionClass: string;\n stateField: string;\n\n backend: boolean;\n restrictedOnField: string;\n restrictedOnValue: string;\n restrictedOnOperator: string;\n customAttributes: any;\n\n constructor(actionDefinition) {\n this.actionCode = actionDefinition.actionCode;\n this.actionTitle = actionDefinition.actionTitle;\n this.iconName = actionDefinition.iconName || this.actionCode;\n this.actionType = actionDefinition.actionType || 'STANDARD';\n this.actionClass = actionDefinition.actionClass || 'INLINE';\n this.newState = actionDefinition.newState;\n this.stateField = actionDefinition.stateField || '';\n\n this.visibleStates = actionDefinition.visibleStates || [];\n this.enabledStates = actionDefinition.enabledStates || [];\n this.backend = actionDefinition?.serverAction ?? false;\n this.restrictedOnField = actionDefinition.fieldRestrictedCode || '';\n this.restrictedOnValue = actionDefinition.valueRestricted || '';\n this.restrictedOnOperator = actionDefinition.operatorRestricted || '';\n this.customAttributes = actionDefinition?.customAttributes ?? {};\n }\n\n supportMode(state) { return this.viewOnState(state); }\n\n viewOnState(state) { return this.visibleStates.includes(state); }\n enabledOnState(state) { return this.enabledStates.includes(state); }\n}\n","export function formatCurrency(inputValue) {\n if (!inputValue) { return null; }\n const numeralDecimalMark = '.';\n const numeralPositiveOnly = false;\n const stripLeadingZeroes = true;\n const numeralIntegerScale = 12;\n const numeralDecimalScale = 2;\n const delimiter = ',';\n let parts;\n let partInteger;\n let partDecimal = '';\n\n // Se eliminan los caracteres alfabéticos\n let outputValue = inputValue.toString();\n if (!outputValue) {\n return;\n }\n /**\n * Se remplaza el primer caracter de marca decimal con el marcador reservado\n * Se eliminan los caractertes no numéricos excepto el signo menos y 'M'\n * utilizado como separador decimal en este punto, eliminando los prefijos\n * Se remplaza el caracter menos por un marcador resertvado\n * Se eliminan todos los demás caracteres menos en caso de estar presentes\n * Se remplaza el marcador de caracter menos (si está presente)\n * Se remplaza el marcador de separación decimal\n */\n let value = outputValue.replace(/[A-Za-z]/g, '')\n .replace(numeralDecimalMark, 'M')\n .replace(/[^\\dM-]/g, '')\n .replace(/^\\-/, 'N')\n .replace(/\\-/g, '')\n .replace('N', numeralPositiveOnly ? '' : '-')\n .replace('M', numeralDecimalMark);\n // Se eliminan los ceros a la izquierda\n if (stripLeadingZeroes) {\n value = value.replace(/^(-)?0+(?=\\d)/, '$1');\n }\n // Se separa la parte entera de la parte decimal\n partInteger = value;\n if (value.indexOf(numeralDecimalMark) >= 0) {\n parts = value.split(numeralDecimalMark);\n partInteger = parts[0];\n partDecimal = numeralDecimalMark + parts[1].slice(0, numeralDecimalScale);\n }\n if (numeralIntegerScale > 0) {\n partInteger = partInteger.slice(0, numeralIntegerScale + (value.slice(0, 1) === '-' ? 1 : 0));\n }\n // Se separan los digitos de acuerdo a la configuraciñon de agrupación\n partInteger = partInteger.replace(/(\\d)(?=(\\d{3})+$)/g, '$1' + delimiter);\n outputValue = partInteger.toString() + (numeralDecimalScale > 0 ? partDecimal.toString() : '');\n return outputValue;\n}\n","import { formatCurrency } from '../../utilities';\nimport { RecordTableColumn } from './column';\nimport { operators, componentConstants } from '../form.constants';\n\nexport class TableRecordData {\n recordId: string;\n selected: boolean;\n recordData: any = {};\n\n constructor(recordReceived, recordDefinition: RecordTableColumn[], selectionFieldName = null) {\n const { tableRecordId, recordData } = recordReceived;\n this.recordId = tableRecordId;\n this.selected = false;\n this.recordData = {};\n if (!recordDefinition || recordDefinition.length === 0 || !recordData || recordData.length === 0) {\n return;\n }\n const fieldNames = recordDefinition.map(column => column.fieldCode);\n if (Array.isArray(recordData)) {\n const rawRecordData = recordData.filter(fieldData => fieldData.fieldCode && fieldNames.includes(fieldData.fieldCode));\n rawRecordData.forEach(fieldData => {\n const { fieldCode, fieldValue } = fieldData;\n const fieldDef = recordDefinition.find(column => column.fieldCode === fieldCode);\n const formattedFieldValue = this.formatFieldValue(fieldDef.fieldType, fieldValue);\n this.recordData[fieldCode] = formattedFieldValue;\n if (fieldCode === selectionFieldName) {\n this.selected = fieldValue;\n }\n });\n } else {\n const fields = Object.keys(recordData);\n fields.forEach(fieldCode => {\n const fieldValue = recordData[fieldCode];\n const fieldDef = recordDefinition.find(column => column.fieldCode === fieldCode);\n const formattedFieldValue = this.formatFieldValue(fieldDef.fieldType, fieldValue);\n this.recordData[fieldCode] = formattedFieldValue;\n });\n }\n }\n\n formatFieldValue(fieldType, fieldValue) {\n if (fieldType === componentConstants.FIELDTYPE_CURRENCY) {\n return formatCurrency(fieldValue);\n } else if (fieldType === componentConstants.FIELDTYPE_DATE && fieldValue) {\n return new Date(fieldValue).toISOString().split('T')[0];\n }\n return fieldValue || '';\n }\n\n toggleSelect() {\n this.selected = !this.selected;\n }\n\n select() {\n this.selected = true;\n }\n\n unselect() {\n this.selected = false;\n }\n\n get recordIdKey() {\n return (typeof this.recordId === 'object')\n ? JSON.stringify(this.recordId) : this.recordId;\n }\n\n getFieldValue(fieldCode) {\n return (fieldCode && this.recordData[fieldCode])\n ? this.recordData[fieldCode] : null;\n }\n\n hasPattern(words) {\n if (!words || words.length === 0) {\n return true;\n }\n for (const fieldCode in this.recordData) {\n if (this.recordData.hasOwnProperty(fieldCode)) {\n for (const word of words) {\n const term = word.toUpperCase();\n const fieldValue = this.recordData[fieldCode];\n if (fieldValue.toString().toUpperCase().includes(term)) {\n return true;\n }\n }\n }\n }\n return false;\n }\n\n hasCondition(advancedFilter) {\n if (!advancedFilter || advancedFilter.length === 0) {\n return true;\n }\n for (const condition of advancedFilter) {\n const fieldCode = condition.fieldSearch.fieldCode;\n if (this.recordData.hasOwnProperty(fieldCode)) {\n const fieldValue = this.recordData[fieldCode].toString().toUpperCase();\n const conditionField1Value = condition?.fieldValue1?.toString().toUpperCase();\n const conditionField2Value = condition.fieldValue2.toString().toUpperCase();\n if (condition.operator === operators.G && fieldValue <= conditionField1Value) {\n return false;\n }\n if (condition.operator === operators.L && fieldValue >= conditionField1Value) {\n return false;\n }\n if (condition.operator === operators.GE && fieldValue < conditionField1Value) {\n return false;\n }\n if (condition.operator === operators.LE && fieldValue > conditionField1Value) {\n return false;\n }\n if (condition.operator === operators.EQ) {\n return fieldValue === conditionField1Value;\n }\n if (condition.operator === operators.NOT_EQ && fieldValue === conditionField1Value) {\n return false;\n }\n if (condition.operator === operators.CONTENT && !fieldValue.includes(conditionField1Value)) {\n return false;\n }\n if (condition.operator === operators.NOT_CONTENT && fieldValue.includes(conditionField1Value)) {\n return false;\n }\n if (condition.operator === operators.BETWEEN && (fieldValue < conditionField1Value\n || fieldValue > conditionField2Value)) {\n return false;\n }\n }\n }\n return true;\n }\n}\n","import { Subject } from 'rxjs';\nimport { componentConstants } from '../form.constants';\nimport { FormElement } from '../element';\nimport { FieldSearch, Filter, AdvancedFilterItem } from './filter';\nimport { RecordTableColumn } from './column';\nimport { TableAction } from './action';\nimport { TableRecordData } from './row-data';\n\nexport const TABLE_FILTER_TYPES = {\n simpleFilterChange: 'SIMPLE_CHANGE',\n simpleFilterFinish: 'SIMPLE_FINISH',\n complexFilterAdd: 'COMPLEX_ADD',\n complexFilterRemove: 'COMPLEX_REMOVE',\n};\n\nexport interface TableFilterEvent {\n eventType: string;\n simpleFilterString: string;\n complexFilterItem: AdvancedFilterItem;\n itemName: string;\n}\n\nexport interface TableActionEvent {\n actionCode: string;\n recordId: any;\n recordData: any;\n}\n\nexport interface TableEvent {\n tableCode: string;\n actionCode: string;\n actionDetail: any;\n}\n\nexport class RecordTable extends FormElement {\n private readonly _inlineActionTrigger = new Subject<TableEvent>();\n private readonly _globalActionTrigger = new Subject<TableEvent>();\n private readonly _recordSelectionTrigger = new Subject<TableEvent>();\n private readonly _selectionActionTrigger = new Subject<TableEvent>();\n private readonly _getDataTrigger = new Subject<TableEvent>();\n tableRecords: TableRecordData[];\n tableRecordObj = {};\n visibleRecords: TableRecordData[];\n columns: RecordTableColumn[];\n private _tableColumnObj = {};\n private _appendPages: boolean;\n selectable: boolean;\n selectionBackend: boolean;\n selectionField: RecordTableColumn;\n private _actions: TableAction[];\n private _actionsObj = {};\n allSelected = false;\n\n tableCode: string;\n tableTitle: string;\n currentPage: number;\n totalPages: number;\n requestedPage: number;\n recordsPerPage: number;\n totalRecordsNumber: number;\n recordsNumber: number;\n sorting: any;\n\n waiting: boolean;\n clientPaging: boolean;\n\n simpleFilter: boolean;\n complexFilter: boolean;\n sortable: boolean;\n filterConfig: FieldSearch[];\n filterObject: Filter;\n customAttributes: any;\n\n constructor(tableReceived) {\n super(tableReceived);\n this.type = componentConstants.ELEMENTTYPE_TABLE;\n\n this.waiting = false;\n this.complexFilter = false;\n this.currentPage = 1;\n this.totalPages = 1;\n this.requestedPage = 1;\n\n this.columns = [];\n this._tableColumnObj = {};\n this._actions = [];\n this._actionsObj = {};\n this.filterConfig = [];\n this.filterObject = new Filter();\n this.tableRecords = [];\n\n this.tableCode = tableReceived.tableCode;\n this.tableTitle = tableReceived.tableTitle;\n this.clientPaging = tableReceived?.clientPaging ?? true;\n this.simpleFilter = tableReceived?.simpleFilter ?? false;\n this._appendPages = tableReceived?.append ?? false;\n this.selectable = tableReceived?.selectable ?? false;\n this.selectionBackend = tableReceived?.selectionBackend ?? false;\n this.customAttributes = tableReceived?.customAttributes ?? {};\n\n this.sortable = tableReceived?.sortable ?? false;\n this.sorting = { columnName: '', direction: '' };\n this.recordsPerPage = componentConstants.recordsPerPage;\n\n if (tableReceived.fields) {\n for (const columnReceived of tableReceived.fields) {\n const columnDefinition = new RecordTableColumn(columnReceived);\n this.columns.push(columnDefinition);\n this._tableColumnObj[columnDefinition.fieldCode] = columnDefinition;\n }\n }\n if (tableReceived.actions) {\n const tableActions = tableReceived.actions.map(objDef => {\n let visibleStates = objDef.visibleStates;\n let enabledStates = objDef.enabledStates;\n if (!visibleStates) {\n visibleStates = (objDef.actionModes || '').split(',')\n .map(state => state.trim())\n .filter(state => state.length > 0);\n enabledStates = (objDef.actionModes || '').split(',')\n .map(state => state.trim())\n .filter(state => state.length > 0);\n }\n return { ...objDef, visibleStates, enabledStates };\n });\n for (const actionReceived of tableActions) {\n const inlineAction = new TableAction(actionReceived);\n this._actions.push(inlineAction);\n this._actionsObj[inlineAction.actionCode] = inlineAction;\n }\n }\n if (tableReceived.filters && tableReceived.filters.length > 0) {\n this.complexFilter = true;\n for (const filterReceived of tableReceived.filters) {\n const filterItem = new FieldSearch(filterReceived);\n this.filterConfig.push(filterItem);\n }\n }\n if (this.selectable) {\n this.selectionField = this.columns\n .find(column => column.fieldCode === tableReceived?.selectionField);\n }\n }\n\n get inlineActionTrigger() { return this._inlineActionTrigger; }\n get globalActionTrigger() { return this._globalActionTrigger; }\n get selectionActionTrigger() { return this._selectionActionTrigger; }\n get recordSelectionTrigger() { return this._recordSelectionTrigger; }\n get getDataTrigger() { return this._getDataTrigger; }\n\n get hasActions() { return (this._actions.length > 0); }\n get selectionFieldName() { return this.selectionField?.fieldCode ?? null; }\n get columnNames() { return Object.keys(this._tableColumnObj); }\n\n get records() { return this.visibleRecords; }\n set records(records) { this.replaceRecords(records); }\n get selectedRecords() {\n return this.tableRecords.filter(rec => rec.selected)\n .map(rec => rec.recordId);\n }\n\n appendRecords(records) { this.setTableRecords(records, true); }\n replaceRecords(records) { this.setTableRecords(records, false); }\n columnDefinition(fieldCode) { return this._tableColumnObj[fieldCode]; }\n putOnWait() { this.waiting = true; }\n freeWaiting() { this.waiting = false; }\n getActionObject(actionCode) { return this.getAction(actionCode); }\n\n notifyGlobalAction(actionCode) {\n const tableEvent: TableEvent = {\n tableCode: this.tableCode,\n actionCode,\n actionDetail: null\n };\n this._globalActionTrigger.next(tableEvent);\n }\n\n notifyInlineAction(tableActionEvent: TableActionEvent) {\n const tableEvent: TableEvent = {\n tableCode: this.tableCode,\n actionCode: tableActionEvent.actionCode,\n actionDetail: {\n recordId: tableActionEvent.recordId,\n recordData: tableActionEvent.recordData\n }\n };\n this._inlineActionTrigger.next(tableEvent);\n }\n\n notifyRecordSelection(recordId) {\n const record = this.getTableRecord(recordId);\n if (!record) { return; }\n record.toggleSelect();\n const tableEvent: TableEvent = {\n tableCode: this.tableCode,\n actionCode: null,\n actionDetail: {\n recordId: record.recordId,\n recordData: record.recordData\n }\n };\n this.recordSelectionTrigger.next(tableEvent);\n }\n\n notifySelectionAction(actionCode) {\n const tableEvent: TableEvent = {\n tableCode: this.tableCode,\n actionCode,\n actionDetail: {\n selectedRecords: this.selectedRecords\n }\n };\n this._selectionActionTrigger.next(tableEvent);\n }\n\n notifyGetDataAction(requestedPage = null) {\n this.updateVisibleRecords();\n this.requestedPage = requestedPage || this.currentPage;\n const tableEvent: TableEvent = {\n tableCode: this.tableCode,\n actionCode: null,\n actionDetail: null,\n };\n this._getDataTrigger.next(tableEvent);\n }\n\n clean() {\n this.tableRecords = [];\n this.tableRecordObj = {};\n }\n\n selectAll() {\n this.allSelected = true;\n this.tableRecords.forEach(record => record.select());\n }\n\n unSelectAll() {\n this.allSelected = false;\n this.tableRecords.forEach(record => record.unselect());\n }\n\n setTableRecords(tableRecords, append) {\n if (!append) { this.clean(); }\n const newRecordsObj = { ...this.tableRecordObj };\n const newRecords = [...this.tableRecords];\n for (const tableRecord of tableRecords) {\n const recordReceived: TableRecordData = new TableRecordData(tableRecord, this.columns,\n this.selectionField?.fieldCode);\n const recordIdKey = recordReceived.recordIdKey;\n newRecords.push(recordReceived);\n newRecordsObj[recordIdKey] = recordReceived;\n }\n this.tableRecords = newRecords;\n this.tableRecordObj = newRecordsObj;\n this.updateVisibleRecords();\n }\n\n updateVisibleRecords() {\n if (!this.clientPaging || !this.tableRecords || this.tableRecords.length === 0) {\n this.visibleRecords = this.tableRecords;\n }\n this.visibleRecords = (this.filterObject.filterModeSimple)\n ? this.tableRecords.filter(record => record.hasPattern(this.filterObject.simpleFilterWords))\n : this.tableRecords.filter(record => record.hasCondition(this.filterObject.advancedFilter));\n }\n\n updateFromServer(tableReceived) {\n this.visible = tableReceived?.visible || true;\n this.currentPage = parseInt(tableReceived.currentPage, 10) || 1;\n this.totalPages = tableReceived.totalPages || 1;\n this.recordsPerPage = tableReceived.recordsPerPage;\n this.recordsNumber = tableReceived.recordsNumber;\n this.totalRecordsNumber = tableReceived.totalRecordsNumber;\n\n this.sorting.columnName = tableReceived.sortingColumn || '';\n this.sorting.direction = tableReceived.sortingDirection || '';\n this.requestedPage = 1;\n this.waiting = false;\n\n this.clean();\n if (this._appendPages) {\n this.replaceRecords(tableReceived.tableRecords);\n } else {\n this.appendRecords(tableReceived.tableRecords);\n }\n }\n\n getTableRecord(recordId) {\n const recordIdKey = (typeof recordId === 'object') ? JSON.stringify(recordId) : recordId;\n return (this.tableRecordObj && recordId && this.tableRecordObj[recordId])\n ? this.tableRecordObj[recordId] : null;\n }\n\n getAction(actionCode) {\n return (this._actionsObj && actionCode && this._actionsObj[actionCode])\n ? this._actionsObj[actionCode] : null;\n }\n\n getActions(actionClass: string = componentConstants.FORMTABLEACTION_INLINE, actionTypes: string[] = null) {\n return this._actions.filter(actionDef => {\n const typeIncluded = (actionTypes) ? actionTypes.includes(actionDef.actionType) : true;\n return actionDef.actionClass === actionClass && typeIncluded;\n });\n }\n\n // Filtros\n\n set simpleFilterText(filterText) {\n let terms = (filterText) ? filterText.split(' ') : null;\n if (terms && terms.length > 0) {\n terms = terms.filter((term) => term !== '');\n }\n this.filterObject.filterModeSimple = true;\n this.filterObject.simpleFilterWords = terms || [];\n }\n\n changeFilterMode(toSimple) {\n this.filterObject.filterModeSimple = toSimple;\n }\n\n addFilterRestriction(filterTerm: AdvancedFilterItem) {\n this.filterObject.advancedFilter.push(filterTerm);\n }\n\n removeFilterRestriction(fieldCode) {\n const filterIndex = this.filterObject.advancedFilter.findIndex((filterDef) => {\n return filterDef.fieldSearch.fieldCode === fieldCode;\n });\n const filterToRemove = this.filterObject.advancedFilter[filterIndex];\n this.filterObject.advancedFilter.splice(filterIndex, 1);\n return filterToRemove;\n }\n\n get availableFilters() {\n return this.filterConfig.filter((fieldSearch) => {\n const currentFilter = this.filterObject.advancedFilter.find((filterItem) => {\n return filterItem.fieldSearch.fieldCode === fieldSearch.fieldCode;\n });\n return !currentFilter;\n });\n }\n\n get currentFilter() {\n const compactFilter: any = {};\n if (this.filterObject.filterModeSimple) {\n compactFilter.simpleFilterWords = this.filterObject.simpleFilterWords;\n } else {\n compactFilter.advancedFilter = [];\n this.filterObject.advancedFilter.forEach((condition) => {\n const simplifiedCondition = {\n fieldCode: condition.fieldSearch.fieldCode,\n fieldAlias: condition.fieldSearch.fieldAlias,\n operator: condition.operator,\n fieldValue1: condition.fieldValue1,\n fieldValue2: condition.fieldValue2,\n };\n compactFilter.advancedFilter.push(simplifiedCondition);\n });\n }\n return compactFilter;\n }\n\n // Ordenamiento\n\n setRequiredOrder(columnField) {\n if (columnField !== this.sorting.columnName) {\n this.sorting.columnName = columnField;\n this.sorting.direction = componentConstants.TABLE_SORT_ASCENDING;\n } else {\n if (this.sorting.direction === componentConstants.TABLE_SORT_ASCENDING) {\n this.sorting.direction = componentConstants.TABLE_SORT_DESCENDING;\n } else {\n this.sorting.direction = componentConstants.TABLE_SORT_ASCENDING;\n }\n }\n }\n\n localSortData() {\n if (!this.sorting.columnName || !this.sorting.direction) { return; }\n this.tableRecords = this.tableRecords\n .sort((a, b) => this.recordCompare(a, b, this.sorting.columnName, this.sorting.direction));\n }\n\n recordCompare(recordA: TableRecordData, recordB: TableRecordData, columnCompare, direction) {\n const recordAColumn = recordA.getFieldValue(columnCompare);\n const recordBColumn = recordB.getFieldValue(columnCompare);\n let result = 0;\n if (recordAColumn.fieldValue < recordBColumn.fieldValue) {\n result = -1;\n } else if (recordAColumn.fieldValue > recordBColumn.fieldValue) {\n result = 1;\n }\n return direction === componentConstants.TABLE_SORT_ASCENDING ? result : -result;\n }\n}\n","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\nimport { FieldSearch, Filter, AdvancedFilterItem } from '../../../classes/forms/table/filter';\nimport { TABLE_FILTER_TYPES, TableFilterEvent } from '../../../classes/forms/table/table';\n\n@Component({\n selector: 'lib-table-filter',\n template: `<ng-content></ng-content>`\n})\n\nexport class LibTableFilterComponent implements OnInit {\n simpleSearchString = '';\n selectedField: string;\n filterFieldConfig: FieldSearch;\n selectedOperator: string;\n filterValue1: string;\n filterValue2: string;\n possibleOperators: string[];\n filterObject: Filter = new Filter();\n complexIsCollapsed = true;\n\n @Input() simpleFilter: boolean;\n @Input() complexFilter: boolean;\n @Input() complexFilterConfig: FieldSearch[];\n\n @Output() filterChanged: EventEmitter<object> = new EventEmitter<object>();\n\n ngOnInit() {\n this.start();\n }\n\n start() { }\n\n filterHasChanged(changeType) {\n this.complexIsCollapsed = true;\n const eventType = (changeType === 'change')\n ? TABLE_FILTER_TYPES.simpleFilterFinish\n : TABLE_FILTER_TYPES.simpleFilterChange;\n const tableFilterEvent: TableFilterEvent = {\n eventType,\n simpleFilterString: this.simpleSearchString,\n complexFilterItem: null,\n itemName: null,\n };\n this.filterChanged.emit(tableFilterEvent);\n }\n\n selectField() {\n this.selectedOperator = '';\n this.filterValue1 = '';\n this.filterValue2 = '';\n this.filterFieldConfig = this.complexFilterConfig.find((filterConfig) =>\n filterConfig.fieldCode === this.selectedField);\n this.possibleOperators = [];\n if (this.filterFieldConfig && this.filterFieldConfig.operators) {\n this.possibleOperators = this.filterFieldConfig.operators;\n }\n }\n\n addFilterField() {\n const filterCondition: AdvancedFilterItem = {\n fieldSearch: this.filterFieldConfig,\n operator: this.selectedOperator,\n fieldValue1: this.filterValue1,\n fieldValue2: this.filterValue2,\n };\n const tableFilterEvent: TableFilterEvent = {\n eventType: TABLE_FILTER_TYPES.complexFilterAdd,\n simpleFilterString: null,\n complexFilterItem: filterCondition,\n itemName: null,\n\n };\n this.filterChanged.emit(tableFilterEvent);\n this.clearFilterField();\n }\n\n clearFilterField() {\n this.selectedField = '';\n this.selectedOperator = '';\n this.selectedOperator = '';\n this.filterValue1 = '';\n this.filterValue2 = '';\n this.possibleOperators = [];\n }\n\n removeFilterField(fieldCode) {\n const tableFilterEvent: TableFilterEvent = {\n eventType: TABLE_FILTER_TYPES.complexFilterRemove,\n simpleFilterString: null,\n complexFilterItem: null,\n itemName: fieldCode,\n };\n this.filterChanged.emit(tableFilterEvent);\n // Se elimina de la configuración de filtro local\n const idx = this.filterObject.advancedFilter.findIndex(def => def.fieldSearch.fieldCode === fieldCode);\n if (idx >= 0) {\n const filterToRemove = this.filterObject.advancedFilter[idx];\n this.selectedField = filterToRemove.fieldSearch.fieldCode;\n this.selectField();\n this.selectedOperator = filterToRemove.operator;\n this.filterValue1 = filterToRemove.fieldValue1;\n this.filterValue2 = filterToRemove.fieldValue2;\n this.filterObject.advancedFilter.splice(idx, 1);\n }\n }\n}\n","import { Component, Input, Output, OnInit, EventEmitter, ChangeDetectionStrategy } from '@angular/core';\nimport { TableEvent, TableActionEvent } from '../../../classes/forms/table/table';\n\nconst INLINE_ACTION = 'INLINE';\n\n@Component({\n selector: 'lib-table-record-action',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n\nexport class LibTableRecordActionComponent implements OnInit {\n @Input() recordId: any;\n @Input() recordData: any;\n @Input() action: any;\n\n @Output() actionSelected: EventEmitter<object> = new EventEmitter<object>();\n\n constructor() { }\n\n ngOnInit() {\n this.start();\n }\n\n start() { }\n\n onActivate() {\n const tableEvent: TableActionEvent = {\n actionCode: this.action.actionCode,\n recordId: this.recordId,\n recordData: this.recordData,\n };\n this.actionSelected.emit(tableEvent);\n }\n\n class() { }\n}\n","import { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n selector: 'lib-table-record-field',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n\nexport class LibTableRecordFieldComponent implements OnInit {\n @Input() fieldCode: any;\n @Input() fieldType: any;\n @Input() fieldValue: any;\n\n ngOnInit() {\n this.start();\n }\n\n start() { }\n}\n","import { Component, OnInit, Input, ViewChild, ChangeDetectionStrategy } from '@angular/core';\nimport { tableFieldStyles } from '../../../classes/forms/form.constants';\nimport { TableRecordData } from '../../../classes/forms/table/row-data';\nimport { TableActionEvent } from '../../../classes/forms/table/table';\nimport { componentConstants } from '../../../classes/forms/form.constants';\n\nimport { RecordTable, TableEvent, TableFilterEvent, TABLE_FILTER_TYPES } from '../../../classes/forms/table/table';\n\n@Component({\n selector: 'lib-table',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n\nexport class LibTableComponent implements OnInit {\n tableFieldStyles: any;\n loaded = false;\n selectable = false;\n hasActions = false;\n inlineActions: any;\n globalActions: any;\n selectionActions: any;\n\n @Input() tableObject: RecordTable;\n @Input() tableRecords: TableRecordData[];\n @Input() disabled: boolean;\n @Input() currentState: string;\n @Input() waiting: boolean;\n\n ngOnInit() {\n this.tableFieldStyles = tableFieldStyles;\n this.selectable = this.tableObject.selectable;\n this.hasActions = this.tableObject.hasActions;\n this.tableObject.widget = this;\n this.inlineActions = this.tableObject.getActions(componentConstants.FORMTABLEACTION_INLINE);\n this.globalActions = this.tableObject.getActions(componentConstants.FORMTABLEACTION_GLOBAL);\n this.selectionActions = this.tableObject.getActions(componentConstants.FORMTABLEACTION_SELECTION);\n this.start();\n }\n\n start() { }\n\n tableGlobalAction(actionCode: string) {\n this.tableObject.notifyGlobalAction(actionCode);\n }\n\n tableSelectionAction(actionCode: string) {\n this.tableObject.notifySelectionAction(actionCode);\n }\n\n tableActionSelected(actionEvent: TableActionEvent) {\n this.tableObject.notifyInlineAction(actionEvent);\n }\n\n tableColumnSort(columnFieldCode) {\n this.tableObject.setRequiredOrder(columnFieldCode);\n if (this.tableObject.clientPaging) {\n return this.tableObject.localSortData();\n }\n this.tableObject.notifyGetDataAction();\n }\n\n changePage(requestedPage) {\n if (!this.tableObject.clientPaging) {\n this.tableObject.notifyGetDataAction(requestedPage);\n }\n }\n\n get records() {\n const currentPageRecords = this.tableObject.records;\n if (this.tableObject.clientPaging && currentPageRecords && currentPageRecords.length > 0) {\n this.tableObject.totalRecordsNumber = currentPageRecords.length;\n return currentPageRecords.map((record, i) => ({ id: i + 1, ...record }))\n .slice((this.tableObject.currentPage - 1) * this.tableObject.recordsPerPage,\n (this.tableObject.currentPage - 1) * this.tableObject.recordsPerPage + this.tableObject.recordsPerPage);\n }\n return currentPageRecords;\n }\n\n applyCurrentFilter(tableFilterEvent: TableFilterEvent) {\n const { eventType } = tableFilterEvent;\n let triggerDataUpdate = false;\n if (eventType === TABLE_FILTER_TYPES.simpleFilterChange || eventType === TABLE_FILTER_TYPES.simpleFilterFinish) {\n this.tableObject.simpleFilterText = tableFilterEvent.simpleFilterString.trim();\n if (this.tableObject.clientPaging) {\n this.tableObject.currentPage = 1;\n this.tableObject.updateVisibleRecords();\n } else if (eventType === TABLE_FILTER_TYPES.simpleFilterFinish) {\n triggerDataUpdate = true;\n }\n }\n if (eventType === TABLE_FILTER_TYPES.complexFilterAdd) {\n this.tableObject.addFilterRestriction(tableFilterEvent.complexFilterItem);\n }\n if (eventType === TABLE_FILTER_TYPES.complexFilterRemove) {\n this.tableObject.removeFilterRestriction(tableFilterEvent.itemName);\n }\n if (triggerDataUpdate) {\n const tableGetDataEvent = {\n tableCode: this.tableObject.tableCode,\n requestedPage: 1,\n };\n this.tableObject.notifyGetDataAction(tableGetDataEvent);\n }\n }\n\n tableSelectionToggle(recordId) {\n this.tableObject.notifyRecordSelection(recordId);\n }\n\n toggleSelectAll() {\n if (this.tableObject.allSelected) {\n this.tableObject.unSelectAll();\n } else {\n this.tableObject.selectAll();\n }\n }\n}\n","import { componentConstants } from './form.constants';\n\nexport class RecordFormSubSection {\n visible: boolean;\n _customRender: string;\n subsectionId: string;\n subsectionCode: string;\n subsectionTitle: string;\n visibleStates: string[];\n\n subSectionElements: any[];\n subSectionFields: any[];\n subSectionTables: any[];\n subSectionActions: any[];\n elementsArray: any;\n\n constructor(subsectionReceived, formObject) {\n if (!subsectionReceived) { return; }\n this._customRender = null;\n this.visible = true;\n this.subSectionElements = [];\n this.subSectionFields = [];\n this.subSectionTables = [];\n this.subSectionActions = [];\n this.elementsArray = {};\n this.subsectionId = (subsectionReceived.subsectionId) ? subsectionReceived.subsectionId.toString() : '';\n this.subsectionCode = (subsectionReceived.subsectionCode) ? subsectionReceived.subsectionCode : '';\n this.subsectionTitle = (subsectionReceived.subsectionTitle) ? subsectionReceived.subsectionTitle : '';\n this.visibleStates = subsectionReceived.visibleStates || [];\n if (subsectionReceived.elements) {\n for (const receivedElement of subsectionReceived.elements) {\n let elementObject = null;\n let arrayToAdd = null;\n const { type, code } = receivedElement;\n switch (type) {\n case componentConstants.ELEMENTTYPE_FIELD:\n elementObject = formObject.getFieldObject(code);\n arrayToAdd = this.subSectionFields;\n break;\n case componentConstants.ELEMENTTYPE_TABLE:\n elementObject = formObject.getTableObject(code);\n arrayToAdd = this.subSectionTables;\n break;\n case componentConstants.ELEMENTTYPE_ACTION:\n elementObject = formObject.getActionObject(code);\n arrayToAdd = this.subSectionActions;\n break;\n }\n if (elementObject) {\n elementObject.type = type;\n arrayToAdd.push(elementObject);\n this.subSectionElements.push(elementObject);\n this.elementsArray[code] = elementObject;\n }\n }\n }\n }\n\n show() { this.visible = true; }\n hide() { this.visible = false; }\n\n get customRender() { return this._customRender; }\n set customRender(customRenderName) { this._customRender = customRenderName; }\n\n getField(name) {\n return this.subSectionFields.find(fld => fld.name === name);\n }\n\n getFields() {\n return this.subSectionFields;\n }\n\n getFieldNames() {\n return this.subSectionFields.map(field => field.fieldCode);\n }\n\n viewOnState(state) {\n return this.visibleStates.includes(state);\n }\n\n supportMode(state) { return this.viewOnState(state); }\n}\n","import { Subject } from 'rxjs';\nimport { RecordFormSubSection } from './subsection';\n\nexport class RecordFormSection {\n private readonly _activation = new Subject<string>();\n private readonly _inactivation = new Subject<string>();\n visible: boolean;\n visibleStates: string[];\n\n active = false;\n sectionId: string;\n sectionCode: string;\n sectionTitle: string;\n\n subSections: RecordFormSubSection[];\n subSectionsObj: any;\n\n constructor(sectionReceived, formObject) {\n if (!sectionReceived) { return; }\n this.visible = true;\n this.sectionId = (sectionReceived.sectionId) ? sectionReceived.sectionId.toString() : '';\n this.sectionCode = (sectionReceived.sectionCode) ? sectionReceived.sectionCode : '';\n this.sectionTitle = (sectionReceived.sectionTitle) ? sectionReceived.sectionTitle : '';\n this.visibleStates = sectionReceived.visibleStates || [];\n this.subSections = [];\n this.subSectionsObj = {};\n if (sectionReceived.subsections) {\n const subsections = sectionReceived.subsections.map(objDef => {\n let visibleStates = objDef.visibleStates;\n if (!visibleStates) {\n visibleStates = (objDef.subsectionModes || '').split(',')\n .map(state => state.trim())\n .filter(state => state.length > 0);\n }\n if (!visibleStates || visibleStates.length === 0) {\n visibleStates = this.visibleStates;\n }\n if (objDef.elements && Array.isArray(objDef.elements)) {\n objDef.elements = objDef.elements.map(elm => ({ code: elm.elementCode, type: elm.elementTypeName }));\n }\n return { ...objDef, visibleStates };\n });\n for (const subsectionReceived of subsections) {\n const subSectionToAdd = new RecordFormSubSection(subsectionReceived, formObject);\n const subsectionCode = subSectionToAdd.subsectionCode;\n if (subsectionCode) {\n this.subSections.push(subSectionToAdd);\n this.subSectionsObj[subsectionCode] = subSectionToAdd;\n }\n }\n }\n }\n\n get activation() { return this._activation; }\n get inactivation() { return this._inactivation; }\n\n activate() {\n if (!this.active) {\n this.active = true;\n this._activation.next(this.sectionCode);\n }\n }\n\n inactivate() {\n if (this.active) {\n this.active = false;\n this._inactivation.next(this.sectionCode);\n }\n }\n\n show() { this.visible = true; }\n hide() { this.visible = false; }\n get title() { return this.sectionTitle; }\n set title(title) { this.sectionTitle = title; }\n\n getVisibleSubsections(state) {\n return this.subSections.filter(subSection => {\n return subSection.visible && subSection.viewOnState(state);\n });\n }\n\n getSubsection(subSectionCode) {\n return (this.subSectionsObj && this.subSectionsObj[subSectionCode])\n ? this.subSectionsObj[subSectionCode] : null;\n }\n\n getFields() {\n let fieldsArray = [];\n if (this.subSections && this.subSections.length > 0) {\n for (const subSection of this.subSections) {\n fieldsArray = fieldsArray.concat(subSection.getFields());\n }\n }\n return fieldsArray;\n }\n\n getFieldNames() {\n let fieldsArray = [];\n if (this.subSections && this.subSections.length > 0) {\n for (const subSection of this.subSections) {\n fieldsArray = fieldsArray.concat(subSection.getFieldNames());\n }\n }\n return fieldsArray;\n }\n\n getField(name) {\n let field = null;\n if (this.subSections && this.subSections.length > 0) {\n for (const subSection of this.subSections) {\n field = subSection.getField(name);\n if (field) {\n return field;\n }\n }\n }\n return null;\n }\n\n supportState(state) { return this.viewOnState(state); }\n viewOnState(state) { return this.visibleStates.includes(state); }\n supportMode(state) { return this.viewOnState(state); }\n}\n","import { Subject } from 'rxjs';\nimport { componentConstants } from './form.constants';\nimport { FormElement } from './element';\n\nconst HEADER = 'HEADER';\n\nexport class FormAction extends FormElement {\n private readonly _actionActivated = new Subject<string>();\n inProgress = false;\n newState: string;\n backend: boolean;\n\n actionCode: string;\n actionName: string;\n iconName: string;\n location: string;\n\n restrictedOnField: string;\n restrictedOnOperator: string;\n restrictedOnValue: string;\n customValidation: any;\n customAttributes: any;\n\n constructor(actionDefinition) {\n super(actionDefinition);\n this.type = componentConstants.ELEMENTTYPE_ACTION;\n this.actionCode = actionDefinition.actionCode ? actionDefinition.actionCode.toString() : '';\n this.actionName = actionDefinition.actionTitle;\n this.iconName = actionDefinition.iconName || this.actionCode;\n this.location = actionDefinition.position || HEADER;\n this.backend = actionDefinition?.serverAction ?? false;\n this.newState = actionDefinition?.newState;\n this.customAttributes = actionDefinition?.customAttributes ?? null;\n\n this.restrictedOnField = actionDefinition.fieldRestrictedCode ? actionDefinition.fieldRestrictedCode.toString() : '';\n this.restrictedOnOperator = actionDefinition.operatorRestricted || '';\n this.restrictedOnValue = actionDefinition.valueRestricted || '';\n this.customValidation = () => true;\n }\n\n get actionActivated() { return this._actionActivated; }\n\n start() { this.inProgress = true; }\n stop() { this.inProgress = false; }\n\n notifyActivation() { this._actionActivated.next(this.actionCode); }\n\n updateFromServer(receivedAction) {\n for (const propertyName in receivedAction) {\n if (propertyName !== 'actionCode' && propertyName !== 'actionId') {\n this[propertyName] = receivedAction[propertyName];\n }\n }\n }\n\n setCustomValidation(callback) { this.customValidation = () => callback(); }\n}\n","import { Subject } from 'rxjs';\nimport { componentConstants, tableFieldStyles } from './form.constants';\nimport { FormElement } from './element';\nimport { formatCurrency } from '../utilities';\n\nconst UNDEFINED = 'undefined';\n\nconst FIELD_VALUE = 'fieldValue';\nconst FIELD_OPTIONS = 'fieldOptions';\nconst FIELD_TITLE = 'fieldTitle';\nconst FIELD_CAPTURE_TYPE = 'captureType';\nconst FIELD_TYPE = 'fieldTypeCode';\nconst FIELD_MAX_LENGTH = 'maxLength';\nconst FIELD_VISIBLE = 'visible';\nconst FIELD_LABEL_VISIBLE = 'visibleLabel';\nconst FIELD_REQUIRED = 'required';\nconst FIELD_ERR_CODE = 'errorCode';\nconst FIELD_ERR_MSG = 'errorMessage';\nconst FIELD_TOOLTIP = 'tooltipText';\nconst FIELD_INFO = 'info';\nconst FIELD_EDITABLE = 'editable';\n\nexport class FieldDescriptor extends FormElement {\n private readonly _editionFinish = new Subject<string>();\n private readonly _editionPartial = new Subject<string>();\n private readonly _detailRequest = new Subject<string>();\n\n _fieldValue: any;\n hasChanged: boolean;\n outputOnly: boolean;\n _minValue: any;\n _maxValue: any;\n _maxLength: number;\n\n fieldCode: string;\n captureType: string;\n fieldTitle: string;\n fieldType: string;\n fieldAlignment: string;\n fieldFormat: string;\n externalValue: any;\n fieldInfo: string;\n tooltipText: string;\n defaultValue: string;\n errorMessage: string;\n errorCode: string;\n customAttributes: any;\n\n validateOnServer: boolean;\n visibleLabel: boolean;\n defaultEditable: boolean;\n fieldRequired: boolean;\n\n fieldOptions: {\n fieldOptionValue: string;\n fieldOptionId: string;\n }[];\n\n constructor(inputFieldReceived) {\n super(inputFieldReceived);\n this.type = componentConstants.ELEMENTTYPE_FIELD;\n\n const fieldReceived = (inputFieldReceived) ? inputFieldReceived : {};\n this.setEditable(fieldReceived?.editable ?? true);\n this.fieldCode = fieldReceived.fieldCode;\n this.fieldTitle = fieldReceived.fieldTitle || this.fieldCode;\n this.captureType = fieldReceived.captureType || 'INPUT';\n this.setFieldType(fieldReceived.fieldTypeCode);\n this.defaultValue = fieldReceived.defaultValue || null;\n this._maxLength = fieldReceived.maxLength || 0;\n this.setValue(fieldReceived.fieldValue || this.defaultValue || '');\n const defaultTypeAlignment = (tableFieldStyles[this.fieldType] != null) ? tableFieldStyles[this.fieldType]['text-align'] : 'left';\n this.fieldAlignment = (fieldReceived.alignment != null) ? fieldReceived.alignment.toLowerCase() : defaultTypeAlignment;\n this.fieldInfo = fieldReceived.info || '';\n this.fieldFormat = fieldReceived.format || '';\n this.validateOnServer = fieldReceived?.serverAction ?? false;\n this.customAttributes = fieldReceived?.customAttributes ?? null;\n\n this.setVisibility(fieldReceived.visible);\n this.visibleLabel = fieldReceived?.visibleLabel ?? true;\n this.tooltipText = fieldReceived.tooltip || '';\n this.defaultEditable = this.enabled;\n this.fieldRequired = fieldReceived?.required ?? false;\n this.errorMessage = fieldReceived.errorMessage || '';\n this.errorCode = fieldReceived.errorCode || '00';\n this.outputOnly = fieldReceived?.outputOnly ?? false;\n this.setFieldOptions(fieldReceived.fieldOptions);\n }\n\n get name() { return this.fieldCode; }\n get editionFinish() { return this._editionFinish; }\n get editionPartial() { return this._editionPartial; }\n get detailRequest() { return this._detailRequest; }\n\n get fieldValue() { return this.getValue(); }\n get required() { return this.fieldRequired; }\n set required(required: boolean) { this.fieldRequired = required ?? false; }\n get maxLength() { return (this._maxLength > 0) ? this._maxLength.toString() : ''; }\n set maxLength(requiredMaxLength: any) {\n if (typeof requiredMaxLength === 'string') {\n this._maxLength = parseInt(requiredMaxLength, 10);\n } else if (typeof requiredMaxLength === 'number') {\n this._maxLength = requiredMaxLength;\n }\n }\n get value() { return this.getValue(); }\n set value(newValue) { this.setValue(newValue); }\n\n notifyEditionPartial() { this._editionPartial.next(this.fieldCode); }\n notifyEditionFinish() { this._editionFinish.next(this.fieldCode); }\n notifyEditionDetailRequest() { this._detailRequest.next(this.fieldCode); }\n\n showLabel() { this.visibleLabel = true; }\n hideLabel() { this.visibleLabel = false; }\n changed() { this.hasChanged = true; }\n getRawValue() { return this._fieldValue; }\n setLabel(label) { this.fieldTitle = label; }\n clean() { this.setValue(this.defaultValue || ''); }\n get backend() { return this.validateOnServer; }\n\n setVisibleLabel(visibleLabel: boolean) { this.visibleLabel = visibleLabel; }\n setEditable(editable: boolean = true) { (editable) ? this.enable() : this.disable(); }\n isEmpty() { return this.getValue() === '' || this.getValue() === undefined || this.getValue() === null; }\n\n getErrorCode() { return this.errorCode; }\n setErrorCode(code) { this.errorCode = code; }\n getErrorMessage() { return this.errorMessage; }\n setErrorMessage(msg) { this.errorMessage = msg; }\n\n getValue() {\n switch (this.fieldType) {\n case componentConstants.FIELDTYPE_CHECK:\n return this._fieldValue ?? false;\n break;\n case componentConstants.FIELDTYPE_CURRENCY:\n return this._fieldValue.replace(',', '');\n break;\n default:\n return this._fieldValue;\n break;\n }\n }\n\n updateFromServer(fld) {\n if (FIELD_VISIBLE in fld) {\n this.setVisibility(fld.visible);\n }\n if (FIELD_LABEL_VISIBLE in fld) {\n this.setVisibleLabel(fld.visibleLabel);\n }\n if (FIELD_REQUIRED in fld) {\n this.fieldRequired = fld.required ?? false;\n }\n if (FIELD_ERR_CODE in fld) {\n (this.errorCode = fld.errorCode);\n }\n if (FIELD_ERR_MSG in fld) {\n (this.errorMessage = fld.errorMessage);\n }\n if (FIELD_TOOLTIP in fld) {\n (this.tooltipText = fld.tooltip);\n }\n if (FIELD_INFO in fld) {\n (this.fieldInfo = fld.info);\n }\n if (FIELD_EDITABLE in fld) {\n this.setEditable(fld.editable);\n }\n if (FIELD_TITLE in fld) {\n this.setLabel(fld.fieldTitle.toString());\n }\n if (FIELD_VALUE in fld) {\n this.hasChanged = false;\n this.setValue(fld.fieldValue);\n }\n if (FIELD_OPTIONS in fld) {\n this.setFieldOptions(fld.fieldOptions);\n }\n if (FIELD_CAPTURE_TYPE in fld) {\n this.captureType = fld.captureType || 'INPUT';\n }\n if (FIELD_TYPE in fld) {\n this.setFieldType(fld.fieldTypeCode);\n }\n if (FIELD_MAX_LENGTH in fld) {\n this.maxLength = fld.maxLength;\n }\n }\n\n setFieldType(inputFieldType) {\n this.fieldType = inputFieldType;\n /**\n * Se elimina la validación de que sea un tipo conocido\n * this.fieldType = (inputFieldType && FIELDTYPES.includes(inputFieldType))\n * ? inputFieldType : componentConstants.FIELDTYPE_TEXT;\n */\n }\n\n format() {\n if (this.fieldType === componentConstants.FIELDTYPE_CURRENCY) {\n this._fieldValue = formatCurrency(this._fieldValue);\n }\n }\n\n setMinValue(minValue) {\n if (this.fieldType === componentConstants.FIELDTYPE_DATE\n && this.widget?.setMinValue) {\n this._minValue = minValue;\n if (!minValue) {\n this.widget?.setMinValue(false);\n } else {\n const minDate = new Date(minValue);\n this.widget?.setMinValue(minDate);\n }\n }\n }\n\n setMaxValue(maxValue) {\n if (this.fieldType === componentConstants.FIELDTYPE_DATE\n && this.widget?.setMaxValue) {\n this._maxValue = maxValue;\n if (!maxValue) {\n this.widget?.setMaxValue(false);\n } else {\n const maxDate = new Date(maxValue);\n this.widget?.setMaxValue(maxDate);\n }\n }\n }\n\n setFieldOptions(newOptions) {\n if ((this.captureType !== 'LIST' && this.captureType !== 'RADIO')\n || typeof newOptions === UNDEFINED || !newOptions\n || !Array.isArray(newOptions)) {\n return;\n }\n const fieldOptions = newOptions.map(option => {\n if (option.text !== undefined && option.text !== null\n && option.value !== undefined && option.value !== null) {\n return { fieldOptionValue: option.text, fieldOptionId: option.value };\n }\n return { ...option };\n });\n this.fieldOptions = (fieldOptions && Array.isArray(fieldOptions)\n && fieldOptions.length > 0) ? fieldOptions : [];\n if (this.fieldType === componentConstants.FIELDTYPE_ARRAY && this.widget) {\n return this.widget?.refereshContent();\n }\n if (this._fieldValue) {\n if (this.fieldType === componentConstants.FIELDTYPE_ARRAY && Array.isArray(this._fieldValue)) {\n this._fieldValue = this._fieldValue?.filter(item =>\n this.fieldOptions.find(opt => opt.fieldOptionId === item)\n );\n } else {\n const valInOptions = this.fieldOptions\n .find(item => item.fieldOptionId === this._fieldValue);\n if (!valInOptions) {\n this.setValue('');\n }\n }\n }\n if (this.fieldRequired && this.fieldOptions.length === 1) {\n this.setValue(this.fieldOptions[0].fieldOptionId);\n if (this.widget?.onChangeContent) {\n this.widget?.onChangeContent();\n }\n }\n }\n\n setValue(newValue, widgetUpdate = true) {\n if (typeof newValue === UNDEFINED || newValue === null) {\n return;\n }\n let newFinalValue;\n switch (this.fieldType) {\n case 'BOOLEAN':\n newFinalValue = !!newValue;\n break;\n case componentConstants.FIELDTYPE_CHECK:\n newFinalValue = !!newValue;\n break;\n case componentConstants.FIELDTYPE_ARRAY:\n if (newValue === null || newValue === '') {\n newFinalValue = [];\n } else if (!Array.isArray(newValue)) {\n if (typeof (newValue) !== 'string') {\n newValue = newValue.toString();\n }\n newFinalValue = newValue.split(',');\n } else {\n newFinalValue = newValue;\n }\n break;\n case componentConstants.FIELDTYPE_MAP:\n newFinalValue = newValue;\n if (newFinalValue && this.widget && widgetUpdate) {\n const latitude = parseFloat(newFinalValue[0]);\n const longitude = parseFloat(newFinalValue[1]);\n this.widget?.setLocation(latitude, longitude);\n }\n break;\n case componentConstants.FIELDTYPE_CURRENCY:\n newFinalValue = formatCurrency(this._fieldValue);\n break;\n default:\n newFinalValue = newValue;\n break;\n }\n if (this._fieldValue !== newFinalValue) {\n this.hasChanged = true;\n this._fieldValue = newFinalValue;\n }\n }\n}\n","import { RecordFormSection } from './section';\nimport { FormAction } from './action';\nimport { FieldDescriptor } from './field';\nimport { RecordTable } from './table/table';\nimport { DEFAULT_STATE_FLOW } from './form.constants';\n\nconst HEADER = 'HEADER';\nconst NO_ERROR = '00';\n\ninterface Transition {\n name: string;\n source: string;\n destination: string;\n}\n\ninterface StateFlow {\n defaultState: string;\n states: string[];\n transitions: Transition[];\n}\n\nexport class FormStructureAndData {\n state: string;\n _name: string;\n private _title: string;\n private _stateFlow: StateFlow;\n private _fields: FieldDescriptor[];\n private _fieldsObj = {};\n private _actions: FormAction[];\n private _actionsObj = {};\n private _tables: RecordTable[];\n private _tableObj = {};\n private _sections: RecordFormSection[];\n private _sectionsObj = {};\n private _immutableData = {};\n private _extraInfo = {};\n\n constructor(definitionReceived) {\n this.state = '';\n this._actions = [];\n this._fields = [];\n this._tables = [];\n this._sections = [];\n this._stateFlow = {\n defaultState: '',\n states: [],\n transitions: [],\n };\n if (!definitionReceived) { return; }\n this._name = (definitionReceived.form && definitionReceived.form.formCode)\n ? definitionReceived.form.formCode : this._name;\n this._title = (definitionReceived.form && definitionReceived.form.formTitle)\n ? definitionReceived.form.formTitle : '';\n this.setStateFlow(definitionReceived?.states, definitionReceived?.transitions,\n definitionReceived?.defaultState);\n this.immutableData = definitionReceived.immutableData;\n this.extraInfo = definitionReceived.extraInfo;\n\n if (definitionReceived.actions) {\n const formActions = definitionReceived.actions.map(objDef => {\n let visibleStates = objDef.visibleStates;\n let enabledStates = objDef.enabledStates;\n if (!visibleStates) {\n visibleStates = (objDef.actionModes || '').split(',')\n .map(state => state.trim())\n .filter(state => state.length > 0) || [];\n enabledStates = [...visibleStates];\n }\n return { ...objDef, visibleStates, enabledStates };\n });\n for (const actionReceived of formActions) {\n const globalAction = new FormAction(actionReceived);\n const globalActionCode = globalAction.actionCode;\n if (globalActionCode) {\n this._actions.push(globalAction);\n this._actionsObj[globalActionCode] = globalAction;\n }\n }\n }\n\n if (definitionReceived.fields) {\n const formFields = definitionReceived.fields.map(objDef => {\n let visibleStates = objDef.visibleStates;\n let enabledStates = objDef.enabledStates || objDef.editableStates;\n if (!visibleStates) {\n visibleStates = (objDef.fieldModes || '').split(',')\n .map(state => state.trim())\n .filter(state => state.length > 0) || [];\n enabledStates = [...visibleStates];\n }\n return { ...objDef, visibleStates, enabledStates };\n });\n for (const fieldReceived of formFields) {\n const fieldToAdd = new FieldDescriptor(fieldReceived);\n const fieldCode = fieldToAdd.fieldCode;\n if (fieldCode) {\n this._fields.push(fieldToAdd);\n this._fieldsObj[fieldCode] = fieldToAdd;\n }\n }\n }\n\n if (definitionReceived.tables) {\n const tables = definitionReceived.tables.map(objDef => {\n let visibleStates = objDef.visibleStates;\n let enabledStates = objDef.enabledStates || objDef.editableStates;\n if (!visibleStates) {\n visibleStates = (objDef.tableModes || '').split(',')\n .map(state => state.trim())\n .filter(state => state.length > 0) || [];\n enabledStates = [...visibleStates];\n }\n if (!visibleStates || visibleStates.length === 0) {\n visibleStates = DEFAULT_STATE_FLOW.states;\n }\n return { ...objDef, visibleStates, enabledStates };\n });\n for (const tableReceived of tables) {\n const tableToAdd = new RecordTable(tableReceived);\n const tableCode = tableToAdd.tableCode;\n if (tableCode) {\n this._tables.push(tableToAdd);\n this._tableObj[tableCode] = tableToAdd;\n }\n }\n }\n\n if (definitionReceived.sections) {\n const formSections = definitionReceived.sections.map(objDef => {\n let visibleStates = objDef.visibleStates;\n if (!visibleStates) {\n visibleStates = (objDef.sectionModes || '').split(',')\n .map(state => state.trim())\n .filter(state => state.length > 0) || [];\n }\n return { ...objDef, visibleStates };\n });\n for (const sectionReceived of formSections) {\n const sectionToAdd = new RecordFormSection(sectionReceived, this);\n const sectionCode = sectionToAdd.sectionCode;\n if (sectionCode) {\n this._sections.push(sectionToAdd);\n this._sectionsObj[sectionCode] = sectionToAdd;\n }\n }\n }\n }\n\n set immutableData(immutableData) { Object.assign(this._immutableData, immutableData); }\n set extraInfo(extraInfo) { Object.assign(this._extraInfo, extraInfo); }\n\n get defaultState() { return this._stateFlow.defaultState; }\n get title() { return this._title; }\n set title(title) { this._title = title; }\n get name() { return this._name; }\n set name(name) { this._name = name; }\n\n changeState(newState) {\n if (!newState || !this.supportState(newState)) {\n return false;\n }\n if (!this.state) {\n this.state = newState;\n } else {\n const transitionToChange = this._stateFlow.transitions.find(trns =>\n trns.source === this.state && trns.destination === newState);\n if (transitionToChange) {\n this.state = newState;\n }\n }\n return (this.state === newState);\n }\n\n setStateFlow(states?, transitions?, defaultState?) {\n if (!states || !transitions) {\n this._stateFlow = JSON.parse(JSON.stringify(DEFAULT_STATE_FLOW));\n return;\n }\n this._stateFlow.states = states;\n this._stateFlow.defaultState = defaultState || this._stateFlow.states[0];\n this._stateFlow.transitions = transitions.map(transition => {\n const name = transition.name;\n const source = (this._stateFlow.states.includes(transition.source)) ? transition.source : '';\n const destination = (this._stateFlow.states.includes(transition.destination)) ? transition.destination : '';\n return { name, source, destination };\n }).filter(item => item.name && item.source && item.destination);\n }\n\n supportState(state) { return this._stateFlow.states?.includes(state); }\n supportMode(state) { return this.supportState(state); }\n\n\n get immutableData() {\n const data = {};\n const objectNames = Object.keys(this._immutableData);\n for (let index = 0; index < objectNames.length; index++) {\n const name = objectNames[index];\n data[name] = this.getImmutableElement(name);\n }\n return data;\n }\n\n getImmutableElement(name) { return this._immutableData?.[name]?.value ?? null; }\n getExtraInfo(name) { return this._extraInfo?.[name]?.value ?? null; }\n\n get extraInfo() {\n const data = {};\n const objectNames = Object.keys(this._extraInfo);\n for (let index = 0; index < objectNames.length; index++) {\n const name = objectNames[index];\n data[name] = this.getExtraInfo(name);\n }\n return data;\n }\n\n getFields() { return this._fields; }\n\n getStates() {\n return this._stateFlow.states;\n }\n\n getFieldNames() {\n return this._fields.map(field => field.fieldCode);\n }\n\n getActions() {\n return this._actions;\n }\n\n getHeaderActions() {\n return this._actions.filter(actionItem => actionItem.location === HEADER);\n }\n\n getFieldObject(elementId) {\n return (this._fieldsObj && elementId && this._fieldsObj[elementId])\n ? this._fieldsObj[elementId] : null;\n }\n\n getTableObject(elementId) {\n return (this._tableObj && elementId && this._tableObj[elementId])\n ? this._tableObj[elementId] : null;\n }\n\n getActionObject(elementId) {\n return (this._actionsObj && elementId && this._actionsObj[elementId])\n ? this._actionsObj[elementId] : null;\n }\n\n getSubSection(sectionCode, subsectionCode) {\n const section = (this._sectionsObj && this._sectionsObj[sectionCode])\n ? this._sectionsObj[sectionCode] : null;\n return (section) ? section.getSubsection(subsectionCode) : null;\n }\n\n getSection(sectionCode) {\n return (this._sectionsObj && this._sectionsObj[sectionCode])\n ? this._sectionsObj[sectionCode] : null;\n }\n sections() { return this.getSections(); }\n sectionTitles() { return this.getSectionsTitles(); }\n\n getSections() {\n return this._sections;\n }\n\n numSections() {\n return this._sections.length;\n }\n\n getSectionsTitles() {\n return this._sections.map(formSection => formSection.sectionTitle);\n }\n\n getSectionObject(elementId) {\n return (this._sectionsObj && elementId && this._sectionsObj[elementId])\n ? this._sectionsObj[elementId] : null;\n }\n tables() { return this.getTables(); }\n\n getTables() {\n return this._tables;\n }\n\n cleanData() {\n if (this._fields) {\n for (const recordField of this._fields) {\n recordField.setValue(recordField.defaultValue);\n }\n }\n if (this._tables) {\n for (const formTable of this._tables) {\n formTable.clean();\n }\n }\n }\n\n showSection(sectionCode) {\n const sectionObject = this.getSectionObject(sectionCode);\n return (sectionObject) ? sectionObject.show() : null;\n }\n\n hideSection(sectionCode) {\n const sectionObject = this.getSectionObject(sectionCode);\n return (sectionObject) ? sectionObject.hide() : null;\n }\n\n activeSection() {\n const activeSection = this._sections.find(sectionObj => sectionObj.active);\n return activeSection.sectionCode;\n }\n\n activateSection(sectionCode) {\n this._sections.forEach(sectionObj => {\n if (sectionObj) { sectionObj.inactivate(); }\n });\n const sectionObject = this.getSectionObject(sectionCode);\n return (sectionObject) ? sectionObject.activate() : null;\n }\n\n showSections(sectionArray) {\n const sectionNames = (Array.isArray(sectionArray)) ? sectionArray : [sectionArray];\n sectionNames.forEach(sectionCode => this.showSection(sectionCode));\n }\n\n hideSections(sectionArray) {\n const sectionNames = (Array.isArray(sectionArray)) ? sectionArray : [sectionArray];\n sectionNames.forEach(sectionCode => this.hideSection(sectionCode));\n }\n\n showSubSection(sectionCode, subSectionCode) {\n const sectionObject = this.getSectionObject(sectionCode);\n const subSectionObject = (sectionObject) ? sectionObject.getSubsection(subSectionCode) : null;\n return (subSectionObject) ? subSectionObject.show() : null;\n }\n\n hideSubSection(sectionCode, subSectionCode) {\n const sectionObject = this.getSectionObject(sectionCode);\n const subSectionObject = (sectionObject) ? sectionObject.getSubsection(subSectionCode) : null;\n return (subSectionObject) ? subSectionObject.hide() : null;\n }\n\n showSubSections(sectionCode, subSectionArray) {\n if (subSectionArray && subSectionArray.length > 0) {\n const sectionObject = this.getSectionObject(sectionCode);\n for (const subSectionCode of subSectionArray) {\n const subSectionObject = (sectionObject) ? sectionObject.getSubsection(subSectionCode) : null;\n if (subSectionObject) { subSectionObject.show(); }\n }\n }\n }\n\n hideSubSections(sectionCode, subSectionArray) {\n if (subSectionArray && subSectionArray.length > 0) {\n const sectionObject = this.getSectionObject(sectionCode);\n for (const subSectionCode of subSectionArray) {\n const subSectionObject = (sectionObject) ? sectionObject.getSubsection(subSectionCode) : null;\n if (subSectionObject) { subSectionObject.hide(); }\n }\n }\n }\n\n showAction(actionCode) {\n const actionObject = this.getActionObject(actionCode);\n return (actionObject) ? actionObject.show() : null;\n }\n\n hideAction(actionCode) {\n const actionObject = this.getActionObject(actionCode);\n return (actionObject) ? actionObject.hide() : null;\n }\n\n showActions(actionArray) {\n const actionNames = (Array.isArray(actionArray)) ? actionArray : [actionArray];\n actionNames.forEach(actionCode => this.showAction(actionCode));\n }\n\n hideActions(actionArray) {\n const actionNames = (Array.isArray(actionArray)) ? actionArray : [actionArray];\n actionNames.forEach(actionCode => this.hideAction(actionCode));\n }\n\n enableAction(actionCode) {\n const actionObject = this.getActionObject(actionCode);\n return (actionObject) ? actionObject.enable() : null;\n }\n\n disableAction(actionCode) {\n const actionObject = this.getActionObject(actionCode);\n return (actionObject) ? actionObject.disable() : null;\n }\n\n enableActions(actionArray) {\n const actionNames = (Array.isArray(actionArray)) ? actionArray : [actionArray];\n actionNames.forEach(actionCode => this.enableAction(actionCode));\n }\n\n disableActions(actionArray) {\n const actionNames = (Array.isArray(actionArray)) ? actionArray : [actionArray];\n actionNames.forEach(actionCode => this.disableAction(actionCode));\n }\n\n enableField(fieldCode) {\n const fieldObject = this.getFieldObject(fieldCode);\n return (fieldObject) ? fieldObject.enable() : null;\n }\n\n disableField(fieldCode) {\n const fieldObject = this.getFieldObject(fieldCode);\n return (fieldObject) ? fieldObject.disable() : null;\n }\n\n getFieldValue(fieldCode) {\n const fieldObject = this.getFieldObject(fieldCode);\n return (fieldObject) ? fieldObject.getValue() : null;\n }\n\n getFieldsValues(fieldCodesArray) {\n if (!fieldCodesArray || !Array.isArray(fieldCodesArray) || fieldCodesArray.length === 0) {\n return null;\n }\n const resultObject = {};\n for (let index = 0; index < fieldCodesArray.length; index++) {\n const fieldCode = fieldCodesArray[index];\n if (fieldCode) {\n resultObject[fieldCode] = this._fieldsObj?.[fieldCode]?.getValue() ?? null;\n }\n }\n return resultObject;\n }\n\n getFieldOptions(fieldCode) {\n const fieldObject = this.getFieldObject(fieldCode);\n return (fieldObject) ? fieldObject.getFieldOptions() : null;\n }\n\n setFieldValue(fieldCode, fieldValue) {\n const fieldObject = this.getFieldObject(fieldCode);\n return (fieldObject) ? fieldObject.setValue(fieldValue) : null;\n }\n\n setFieldErrorMessage(fieldCode, errorMessage) {\n const fieldObject = this.getFieldObject(fieldCode);\n return (fieldObject) ? fieldObject.setErrorMessage(errorMessage) : null;\n }\n\n setFieldOptions(fieldCode, optionsArray, idAttribute, nameAttribute) {\n const fieldObject = this.getFieldObject(fieldCode);\n if (fieldObject && optionsArray && optionsArray.length > 0) {\n const fieldOptions = [];\n for (const optionItem of optionsArray) {\n const fieldOption = {\n fieldOptionId: optionItem[idAttribute],\n fieldOptionValue: optionItem[nameAttribute]\n };\n fieldOptions.push(fieldOption);\n }\n fieldObject.setFieldOptions(fieldOptions);\n }\n }\n\n getFieldSet(filterFunc, fieldArray = null, sectionCode = null, subSectionCode = null) {\n let fieldUniverse = null;\n if (fieldArray && Array.isArray(fieldArray) && fieldArray.length > 0) {\n fieldUniverse = fieldArray;\n } else if (sectionCode && !subSectionCode) {\n const sectionObject = this.getSectionObject(sectionCode);\n fieldUniverse = sectionObject?.getFieldNames();\n } else if (sectionCode && subSectionCode) {\n const subSectionObject = this.getSubSection(sectionCode, subSectionCode);\n fieldUniverse = subSectionObject?.getFieldNames();\n } else {\n fieldUniverse = this.getFieldNames();\n }\n if (!filterFunc) {\n return fieldUniverse;\n }\n return fieldUniverse.filter(fld => {\n const fieldObject = this.getFieldObject(fld);\n return (fieldObject && filterFunc(fieldObject));\n });\n }\n\n applyProcessToFieldSet(processFunc, fieldArray = null, sectionCode = null, subSectionCode = null) {\n const fieldUniverse = this.getFieldSet(null, fieldArray, sectionCode, subSectionCode);\n let fieldSetSize = 0;\n if (fieldUniverse && processFunc) {\n for (const fieldCode of fieldUniverse) {\n const fieldObject = this.getFieldObject(fieldCode);\n if (fieldObject) {\n try {\n processFunc(fieldObject);\n fieldSetSize += 1;\n } catch (e) {\n console.log(`Error procesando funcion en campo ${fieldObject}: ${e}`);\n }\n }\n }\n }\n return fieldSetSize;\n }\n\n showFields(fieldArray = null, sectionCode = null, subSectionCode = null) {\n return this.applyProcessToFieldSet(fld => fld.show(),\n fieldArray, sectionCode, subSectionCode);\n }\n\n hideFields(fieldArray = null, sectionCode = null, subSectionCode = null) {\n return this.applyProcessToFieldSet(fld => fld.hide(),\n fieldArray, sectionCode, subSectionCode);\n }\n\n showLabelFields(fieldArray = null, sectionCode = null, subSectionCode = null) {\n return this.applyProcessToFieldSet(fld => fld.showLablel(),\n fieldArray, sectionCode, subSectionCode);\n }\n\n hideLabelFields(fieldArray = null, sectionCode = null, subSectionCode = null) {\n return this.applyProcessToFieldSet(fld => fld.hideLabel(),\n fieldArray, sectionCode, subSectionCode);\n }\n // Para deprecar\n enableEditFields(fieldArray = null, sectionCode = null, subSectionCode = null) {\n return this.enableFields(fieldArray, sectionCode, subSectionCode);\n }\n // Para deprecar\n disableEditFields(fieldArray = null, sectionCode = null, subSectionCode = null) {\n return this.disableFields(fieldArray, sectionCode, subSectionCode);\n }\n\n enableFields(fieldArray = null, sectionCode = null, subSectionCode = null) {\n return this.applyProcessToFieldSet(fld => fld.enable(),\n fieldArray, sectionCode, subSectionCode);\n }\n\n disableFields(fieldArray = null, sectionCode = null, subSectionCode = null) {\n return this.applyProcessToFieldSet(fld => fld.disable(),\n fieldArray, sectionCode, subSectionCode);\n }\n\n cleanFields(fieldArray = null, sectionCode = null, subSectionCode = null) {\n return this.applyProcessToFieldSet(fieldObject => {\n fieldObject.clean('');\n fieldObject.setErrorMessage('');\n }, fieldArray, sectionCode, subSectionCode);\n }\n\n getRequiredFields(fieldArray, sectionCode = null, subSectionCode = null) {\n return this.getFieldSet(fld => fld.fieldRequired, fieldArray,\n sectionCode, subSectionCode);\n }\n\n getRequiredEmptyFields(fieldArray = null, sectionCode = null, subSectionCode = null) {\n return this.getFieldSet(fld => fld.fieldRequired && fld.isEmpty(),\n fieldArray, sectionCode, subSectionCode);\n }\n\n getChangedFields(fieldArray, sectionCode = null, subSectionCode = null) {\n return this.getFieldSet(fld => !fld.outputOnly && fld.hasChanged(),\n fieldArray, sectionCode, subSectionCode);\n }\n\n getFieldsWithValidationIssues(fieldArray, sectionCode = null, subSectionCode = null) {\n return this.getFieldSet(fld => fld.errorCode !== NO_ERROR,\n fieldArray, sectionCode, subSectionCode);\n }\n\n tagFieldsWithError(errorMessage, fieldArray = null, sectionCode = null, subSectionCode = null) {\n return this.applyProcessToFieldSet(fieldObject => {\n fieldObject.setErrorMessage(errorMessage);\n }, fieldArray, sectionCode, subSectionCode);\n }\n\n cleanErrorFields(fieldArray = null, sectionCode = null, subSectionCode = null) {\n this.tagFieldsWithError('', fieldArray, sectionCode, subSectionCode);\n }\n\n tagEmptyRequiredFields(errorMessage, fieldArray = null, sectionCode = null, subSectionCode = null) {\n const pendingFields = this.getRequiredEmptyFields(fieldArray, sectionCode, subSectionCode);\n if (pendingFields && pendingFields.length > 0) {\n this.tagFieldsWithError(errorMessage, pendingFields);\n return true;\n }\n return false;\n }\n\n cleanTable(tableCode) {\n const tableObject = this.getTableObject(tableCode);\n return (tableObject) ? tableObject.clean() : null;\n }\n\n getTableRecord(tableCode, recordId) {\n const tableObject = this.getTableObject(tableCode);\n return (tableObject) ? tableObject.getTableRecord(recordId) : null;\n }\n\n hideTable(tableCode) {\n const tableObject = this.getTableObject(tableCode);\n return (tableObject) ? tableObject.hide() : null;\n }\n\n showTable(tableCode) {\n const tableObject = this.getTableObject(tableCode);\n return (tableObject) ? tableObject.show() : null;\n }\n\n showTables(tableArray) {\n const tableNames = (Array.isArray(tableArray)) ? tableArray : [tableArray];\n tableNames.forEach(tableCode => this.showTable(tableCode));\n }\n\n hideTables(tableArray) {\n const tableNames = (Array.isArray(tableArray)) ? tableArray : [tableArray];\n tableNames.forEach(tableCode => this.hideTable(tableCode));\n }\n\n /** payload para servicios Tuain */\n getPayload() {\n const formData = {\n fields: [],\n tables: [],\n };\n const formFields = this.getFields();\n if (formFields && formFields.length > 0) {\n for (const fieldDescriptor of formFields) {\n if (!fieldDescriptor.outputOnly) {\n const formField = {\n fieldCode: fieldDescriptor.fieldCode,\n fieldValue: fieldDescriptor.getValue(),\n editable: !fieldDescriptor.disabled,\n visible: fieldDescriptor.visible,\n required: fieldDescriptor.fieldRequired,\n fieldOptions: '',\n };\n formData.fields.push(formField);\n }\n }\n }\n const tables = this.getTables();\n if (tables && tables.length > 0) {\n for (const tableDescriptor of tables) {\n const formTable = {\n tableCode: tableDescriptor.tableCode,\n visible: tableDescriptor.visible,\n currentPage: tableDescriptor.currentPage,\n requestedPage: tableDescriptor.requestedPage,\n recordsPerPage: tableDescriptor.recordsPerPage,\n currentFilter: tableDescriptor.currentFilter,\n sortingColumn: tableDescriptor.sorting.columnName,\n sortingDirection: tableDescriptor.sorting.direction,\n };\n formData.tables.push(formTable);\n }\n }\n return formData;\n }\n}\n","import { nanoid } from 'nanoid';\n\nexport class LibFormManagerService {\n pageStack: any[];\n\n constructor() {\n this.cleanStack();\n }\n\n /**\n * Métodos virtuales de manejo de formularios\n */\n\n getFormDefinition(formCode) { }\n execServerAction(actionDetail) { }\n goToRoute(navigationArray: any[]) { }\n\n /**\n * Manejo del stack de navegación con atributos estados y parámetros\n */\n\n resetPageStack() { this.cleanStack() }\n\n cleanStack() {\n this.pageStack = [];\n }\n\n stack(data) {\n const id = nanoid(6);\n this.pageStack.push({ id, data });\n return id;\n }\n\n unstack(id) {\n const stackIdx = this.pageStack.findIndex(item => item.id === id);\n if (stackIdx >= 0) {\n const formData = this.pageStack[stackIdx].data;\n // Se eliminan los formularios posteriores al solicitado\n this.pageStack.splice(stackIdx + 1);\n return formData;\n }\n }\n\n getInputData(id: string) {\n const stackIdx = (id) ? this.pageStack.findIndex(item => item.id === id) : -1;\n if (stackIdx >= 0) {\n const { target: { predefinedFields } } = this.pageStack[stackIdx].data;\n return predefinedFields;\n }\n return null;\n }\n\n getOriginInfo(id: string) {\n const stackIdx = (id) ? this.pageStack.findIndex(item => item.id === id) : -1;\n if (stackIdx >= 0) {\n const { origin } = this.pageStack[stackIdx].data;\n return JSON.parse(JSON.stringify(origin));\n }\n return null;\n }\n\n changeForm(origin: any, target: any) {\n if (!origin) {\n this.cleanStack();\n }\n const { url, params } = target;\n const newToken = this.stack({ origin, target });\n const navigationArray = [url, ...params, newToken];\n this.goToRoute(navigationArray);\n }\n\n changePreviousForm(transitionToken: string) {\n const prevForm = this.unstack(transitionToken);\n if (!prevForm) { return; }\n const { origin: { url, params, token } } = prevForm;\n const navigationArray = [url, ...params, token];\n this.goToRoute(navigationArray);\n }\n}\n","import { BehaviorSubject } from 'rxjs';\n\nexport class LibEventManagerService {\n eventSubjects: any = {};\n\n constructor(eventNames) {\n eventNames.forEach((name) => { this.addEventName(name); });\n }\n\n addEventName(name) {\n if (!this.eventSubjects[name]) {\n const newEventSubject: BehaviorSubject<any> = new BehaviorSubject(null);\n this.eventSubjects[name] = newEventSubject;\n }\n }\n\n getEventNames() { return Object.keys(this.eventSubjects); }\n getSubject(eventClassName) { return eventClassName ? this.eventSubjects[eventClassName] : null; }\n subscribe(eventClassName, callback) { this.getSubject(eventClassName).subscribe(callback); }\n next(eventClassName, data) { this.getSubject(eventClassName).next(data); }\n}\n","export class LibFileManagementService {\n openFile(fileBase64Data, fileName, fileType) { }\n saveFileFromURL(fileUrl, fullFileName = null) { }\n saveFile(fileBase64Data, fileName, fileType) { }\n}\n\n","import { Component } from '@angular/core';\nimport { FormStructureAndData } from '../../classes/forms/form';\nimport { LibFormManagerService } from '../../services/form-manager.service';\nimport { LibEventManagerService } from '../../services/event-manager.service';\nimport { LibFileManagementService } from '../../services/file-manager.service';\nimport { componentConstants } from '../../classes/forms/form.constants';\n\nconst PAYLOAD_VERSION = 'TUAINEXCHANGE_1.0';\nconst INLINE_ACTION = 'INLINE';\nconst GLOBAL_ACTION = 'GLOBAL';\nconst GET_DATA_ACTION = 'GETDATA';\n\nconst FORM_SUBJECT = 'formSubject';\nconst ORIGIN_PARAM = 'origin';\nconst STATE_PARAM = 'mode';\nconst REQUIRED_FIELD_MESSAGE = 'Campo requerido';\n\n@Component({\n template: `<ng-content></ng-content>`\n})\nexport class BasicFormComponent {\n name: string;\n _formRoute: string;\n formSubject: string;\n _errorType: '';\n errorCode = '';\n errorMessage = '';\n errorDetail = '';\n\n formStructure: FormStructureAndData = null;\n transitionToken = null;\n inputDataFields = [];\n extraData: any = null;\n\n componentConstants: any = componentConstants;\n definitionObtained = false;\n formVisible = false;\n inServerProcess = false;\n\n formSectionsActivate = {};\n formSectionsInactivate = {};\n formActionsStart = {};\n formActionsFinish = {};\n fieldInputValidation = {};\n fieldValidationsStart = {};\n fieldValidationsFinish = {};\n // Callback de acciones de tablas\n tableSelectionsStart = {};\n tableSelectionsFinish = {};\n tableActionsStart = {};\n tableActionsFinish = {};\n tableGetDataStart = {};\n tableGetDataFinish = {};\n\n protected _eventEmiter: LibEventManagerService;\n\n constructor(\n protected formManagerService: LibFormManagerService,\n protected _eventManager: LibEventManagerService,\n protected fileMgmtServices: LibFileManagementService) {\n this.customPreProcessing();\n this._eventEmiter = this._eventManager;\n }\n\n get currentState() { return this.formStructure.state; }\n set currentState(state) { this.formStructure.changeState(state); }\n get currentMode() { return this.currentState; }\n get immutableData() { return this.formStructure.immutableData }\n get extraInfo() { return this.formStructure.extraInfo }\n\n // Métodos Pass-through hacia el contenido y estructura del formulario\n supportState(state) { return this.formStructure.supportState(state); }\n supportMode(state) { return this.supportState(state); }\n getTitle() { return this.formStructure.title; }\n setTitle(title: string) { this.formStructure.title = title; }\n getImmutableElement(name) { return this.formStructure.getImmutableElement(name); }\n getExtraInfo(name) { return this.formStructure.getExtraInfo(name); }\n cleanData() { return this.formStructure.cleanData(); }\n getFields() { return this.formStructure.getFields(); }\n getFieldNames() { return this.formStructure.getFieldNames(); }\n getFieldObject(elementId) { return this.formStructure.getFieldObject(elementId); }\n getField(fieldCode) { return this.getFieldObject(fieldCode); }\n enableField(fieldCode) { return this.formStructure.enableField(fieldCode); }\n disableField(fieldCode) { return this.formStructure.disableField(fieldCode); }\n getFieldValue(fieldCode) { return this.formStructure.getFieldValue(fieldCode); }\n getFieldsValues(fieldCodesArray) { return this.formStructure.getFieldsValues(fieldCodesArray); }\n getFieldOptions(fieldCode) { return this.formStructure.getFieldOptions(fieldCode); }\n setFieldValue(fieldCode, fieldValue) { return this.formStructure.setFieldValue(fieldCode, fieldValue); }\n setFieldErrorMessage(fieldCode, errorMessage) { return this.formStructure.setFieldErrorMessage(fieldCode, errorMessage); }\n setFieldOptions(fieldCode, optionsArray, idAttribute, nameAttribute) {\n return this.formStructure.setFieldOptions(fieldCode, optionsArray, idAttribute, nameAttribute);\n }\n getFieldSet(filterFunc?, fieldArray?, sectionCode?, subSectionCode?) {\n return this.formStructure.getFieldSet(filterFunc, fieldArray, sectionCode, subSectionCode);\n }\n applyProcessToFieldSet(processFunc, fieldArray?, sectionCode?, subSectionCode?) {\n return this.formStructure.applyProcessToFieldSet(processFunc, fieldArray, sectionCode, subSectionCode);\n }\n applyProcessToAllFields(processFunc) { return this.formStructure.applyProcessToFieldSet(processFunc); }\n cleanFields(fieldArray?, sectionCode?, subSectionCode?) {\n return this.formStructure.cleanFields(fieldArray, sectionCode, subSectionCode);\n }\n getRequiredFields(fieldArray, sectionCode?, subSectionCode?) {\n return this.formStructure.getRequiredFields(fieldArray, sectionCode, subSectionCode);\n }\n getRequiredEmptyFields(fieldArray?, sectionCode?, subSectionCode?) {\n return this.formStructure.getRequiredEmptyFields(fieldArray, sectionCode, subSectionCode);\n }\n getChangedFields(fieldArray?, sectionCode?, subSectionCode?) {\n return this.formStructure.getChangedFields(fieldArray, sectionCode, subSectionCode);\n }\n getFieldsWithValidationIssues(fieldArray?, sectionCode?, subSectionCode?) {\n return this.formStructure.getFieldsWithValidationIssues(fieldArray, sectionCode, subSectionCode);\n }\n tagFieldsWithError(errorMessage, fieldArray?, sectionCode?, subSectionCode?) {\n return this.formStructure.tagFieldsWithError(errorMessage, fieldArray, sectionCode, subSectionCode);\n }\n cleanErrorFields(fieldArray?, sectionCode?, subSectionCode?) {\n return this.formStructure.cleanErrorFields(fieldArray, sectionCode, subSectionCode);\n }\n showLabelFields(fieldArray?, sectionCode?, subSectionCode?) {\n return this.formStructure.showLabelFields(fieldArray, sectionCode, subSectionCode);\n }\n hideLabelFields(fieldArray?, sectionCode?, subSectionCode?) {\n return this.formStructure.hideLabelFields(fieldArray, sectionCode, subSectionCode);\n }\n enableFields(fieldArray?, sectionCode?, subSectionCode?) {\n return this.formStructure.enableFields(fieldArray, sectionCode, subSectionCode);\n }\n disableFields(fieldArray?, sectionCode?, subSectionCode?) {\n return this.formStructure.disableFields(fieldArray, sectionCode, subSectionCode);\n }\n enableEditFields(fieldArray?, sectionCode?, subSectionCode?) {\n return this.formStructure.enableEditFields(fieldArray, sectionCode, subSectionCode);\n }\n disableEditFields(fieldArray?, sectionCode?, subSectionCode?) {\n return this.formStructure.disableEditFields(fieldArray, sectionCode, subSectionCode);\n }\n showFields(fieldArray?, sectionCode?, subSectionCode?) {\n return this.formStructure.showFields(fieldArray, sectionCode, subSectionCode);\n }\n hideFields(fieldArray?, sectionCode?, subSectionCode?) {\n return this.formStructure.hideFields(fieldArray, sectionCode, subSectionCode);\n }\n\n getHeaderActions() { return this.formStructure.getHeaderActions(); }\n getActionObject(elementId) { return this.formStructure.getActionObject(elementId); }\n getAction(actionCode) { return this.getActionObject(actionCode); }\n getActionDefinition(actionCode) { return this.getActionObject(actionCode); }\n showAction(actionCode) { return this.formStructure.showAction(actionCode); }\n hideAction(actionCode) { return this.formStructure.hideAction(actionCode); }\n showActions(actionArray) { return this.formStructure.showActions(actionArray); }\n hideActions(actionArray) { return this.formStructure.hideActions(actionArray); }\n enableAction(actionCode) { return this.formStructure.enableAction(actionCode); }\n disableAction(actionCode) { return this.formStructure.disableAction(actionCode); }\n enableActions(actionArray) { return this.formStructure.enableActions(actionArray); }\n disableActions(actionArray) { return this.formStructure.disableActions(actionArray); }\n\n getStates() { return this.formStructure.getStates(); }\n getSections() { return this.formStructure.getSections(); }\n getSection(sectionCode) { return this.formStructure.getSection(sectionCode); }\n activateSection(sectionCode) { return this.formStructure.activateSection(sectionCode); }\n getSubSection(sectionCode, subsectionCode) { return this.formStructure.getSubSection(sectionCode, subsectionCode); }\n numSections() { return this.formStructure.numSections(); }\n getSectionsTitles() { return this.formStructure.getSectionsTitles(); }\n getSectionObject(elementId) { return this.formStructure.getSectionObject(elementId); }\n showSection(sectionCode) { return this.formStructure.showSection(sectionCode); }\n hideSection(sectionCode) { return this.formStructure.hideSection(sectionCode); }\n showSections(sectionArray) { return this.formStructure.showSections(sectionArray); }\n hideSections(sectionArray) { return this.formStructure.hideSections(sectionArray); }\n showSubSection(sectionCode, subSectionCode) { return this.formStructure.showSubSection(sectionCode, subSectionCode); }\n hideSubSection(sectionCode, subSectionCode) { return this.formStructure.hideSubSection(sectionCode, subSectionCode); }\n showSubSections(sectionCode, subSectionArray) { return this.formStructure.showSubSections(sectionCode, subSectionArray); }\n hideSubSections(sectionCode, subSectionArray) { return this.formStructure.hideSubSections(sectionCode, subSectionArray); }\n\n getTables() { return this.formStructure.getTables(); }\n getTableObject(elementId) { return this.formStructure.getTableObject(elementId); }\n getTable(tableName) { return this.getTableObject(tableName); }\n showTable(tableName) { return this.formStructure.showTable(tableName); }\n hideTable(tableName) { return this.formStructure.hideTable(tableName); }\n showTables(tableArray) { return this.formStructure.showTables(tableArray); }\n hideTables(tableArray) { return this.formStructure.hideTables(tableArray); }\n cleanTable(tableName) { return this.formStructure.cleanTable(tableName); }\n getTableRecord(tableName, recordId) { return this.formStructure.getTableRecord(tableName, recordId); }\n\n customPreProcessing() { }\n customFormStart() { }\n displayActionServerError() { }\n displayValidationServerError() { }\n displayTableServerError() { }\n showFieldInfo(fieldCode: string) { }\n showModalDialog(title, body, options, callback?, params?) { }\n openUploadDialog(title, body, options, callback?, params?) { }\n\n subscribeAppEvent(eventName, callback) {\n this._eventEmiter.subscribe(eventName, callback);\n }\n\n goToPage(navigationArray, predefinedFields, options = null) {\n let origin = null;\n const cleanStack = options?.cleanStack ?? false;\n if (!cleanStack) {\n origin = {\n code: this.formCode,\n url: this._formRoute,\n params: [\n this.currentState,\n this.formSubject,\n ],\n token: this.transitionToken,\n predefinedFields: this.inputDataFields\n };\n }\n const target = {\n url: navigationArray?.[0],\n params: navigationArray.splice(1),\n predefinedFields,\n };\n this.formManagerService.changeForm(origin, target);\n }\n\n goToNewPage(nav, flds) { return this.goToPage(nav, flds, { cleanStack: true }); }\n goToSubPage(nav, flds) { return this.goToPage(nav, flds, { cleanStack: false }); }\n canGoBack() { return this.transitionToken !== null }\n goBack() { return this.formManagerService.changePreviousForm(this.transitionToken); }\n goBackForm() { return this.goBack(); }\n getOriginDetail() { return this.formManagerService.getOriginInfo(this.transitionToken); }\n\n setError(errorType, errorMessage, errorDetail) {\n this._errorType = errorType || '';\n this.errorMessage = errorMessage || '';\n this.errorDetail = errorDetail || '';\n }\n\n get formManager() { return this; }\n resetError() { this.setError(null, null, null); }\n getErrorType() { return this._errorType; }\n getErrorMessage() { return this.errorMessage; }\n getErrorDetail() { return this.errorDetail; }\n getErrorCode() { return this._errorType; }\n\n get formRoute() { return this._formRoute; }\n set formRoute(route) { this._formRoute = route; }\n defineFormCode(name) { this.name = name; }\n getCurrentState() { return this.formStructure.state; }\n getCurrentMode() { return this.formStructure.state; }\n\n get formCode() { return this.name; }\n set formCode(name) { this.name = name; }\n\n getFormParameter(name) {\n return (this.extraData && name && this.extraData[name]) ? this.extraData[name] : null;\n }\n\n getSubject() { return this.formSubject; }\n getformSubject() { return this.getSubject(); }\n\n preocessInputParams(params) {\n const allParams = Object.keys(params ?? {});\n if (!allParams || !Array.isArray(allParams) || allParams.length === 0) {\n return;\n }\n this.extraData = [];\n for (const paramName of allParams) {\n this.extraData[paramName] = params[paramName].toString();\n }\n this.formSubject = this.extraData?.[FORM_SUBJECT] ?? null;\n const initialState = this.extraData[STATE_PARAM];\n this.transitionToken = this.extraData[ORIGIN_PARAM] ?? null;\n this.inputDataFields = (this.transitionToken) ? this.formManagerService.getInputData(this.transitionToken) : [];\n if (!this.transitionToken) {\n this.formManagerService.cleanStack();\n }\n return initialState;\n }\n\n subscribeSectionActivation() {\n const formSections = this.formStructure.getSections();\n if (Array.isArray(formSections)) {\n formSections.forEach(section => {\n section.activation.subscribe(code => this.launchSectionActivation(code));\n section.inactivation.subscribe(code => this.launchSectionInactivation(code));\n });\n }\n }\n\n subscribeFieldsSubjects() {\n const formFields = this.formStructure.getFields();\n if (Array.isArray(formFields)) {\n formFields.forEach(field => {\n field.editionFinish.subscribe(code => this.startFieldValidation(code));\n field.editionPartial.subscribe(code => this.startFieldInputValidation(code));\n field.detailRequest.subscribe(code => this.showFieldInfo(code));\n });\n }\n }\n\n subscribeActionSubjects() {\n const formActions = this.formStructure.getActions();\n if (Array.isArray(formActions)) {\n formActions.forEach(action => {\n action.actionActivated.subscribe(code => this.startAction(code));\n });\n }\n }\n\n subscribeTableSubjects() {\n const formTables = this.formStructure.getTables();\n if (Array.isArray(formTables)) {\n formTables.forEach(table => {\n table.inlineActionTrigger.subscribe(event => this.startTableAction(event));\n table.globalActionTrigger.subscribe(event => this.startTableGlobalAction(event));\n table.recordSelectionTrigger.subscribe(event => this.startTableRecordSelection(event));\n table.selectionActionTrigger.subscribe(event => this.startTableSelectionAction(event));\n table.getDataTrigger.subscribe(event => this.startTableGetData(event));\n });\n }\n }\n\n async formInit(params) {\n let initialState = this.preocessInputParams(params);\n if (!this.name) { return; }\n if (!this.definitionObtained) {\n this.inServerProcess = true;\n const formDefinition = await this.formManagerService.getFormDefinition(this.name);\n this.inServerProcess = false;\n this.formStructure = new FormStructureAndData(formDefinition);\n this.definitionObtained = true;\n } else {\n this.cleanData();\n }\n if (!this.supportState(initialState)) {\n initialState = this.formStructure.defaultState;\n }\n this.formStructure.changeState(initialState || this.formStructure.defaultState);\n for (const inputFieldData of this.inputDataFields) {\n const { fieldCode, fieldValue } = inputFieldData;\n if (fieldCode) {\n this.setFieldValue(inputFieldData.fieldCode, fieldValue);\n }\n }\n const recordResponse = await this.requestFormAction(componentConstants.FORMACTION_GETDATA);\n this.checkErrorRecordReceived(recordResponse);\n this.formVisible = true;\n this.subscribeSectionActivation();\n this.subscribeFieldsSubjects();\n this.subscribeActionSubjects();\n this.subscribeTableSubjects();\n this.customFormStart();\n }\n\n checkErrorRecordReceived(recordResponse) {\n const { error } = recordResponse;\n if (!error) { return false; }\n this.errorCode = recordResponse.errorCode;\n this.errorMessage = recordResponse.errorMessage;\n this.errorDetail = recordResponse.errorDetail;\n }\n\n errorOccured() {\n return (this.errorCode !== componentConstants.SERVICE_ERRORCODE_NOERROR);\n }\n\n changeState(state) { return this.formStructure.changeState(state); }\n changeFormMode(state) { return this.changeState(state); }\n\n async requestFormAction(actionCode, actionSubject = {}) {\n const actionDetail = {\n formCode: this.name,\n formSubject: this.formSubject,\n currentMode: this.formStructure.state,\n actionCode,\n actionSubject,\n version: PAYLOAD_VERSION,\n formData: this.formStructure.getPayload(),\n immutableData: this.formStructure.immutableData,\n };\n this.errorCode = '00';\n this.errorMessage = '';\n this.errorDetail = '';\n this.inServerProcess = true;\n const formActionResponse: any = await this.formManagerService.execServerAction(actionDetail);\n this.inServerProcess = false;\n if (formActionResponse && formActionResponse.error.errorType) {\n console.log('Excepción no soportada');\n }\n if (formActionResponse.hasError()) {\n const error = formActionResponse.error;\n this.errorCode = error.errorCode;\n this.errorMessage = error.errorMessage;\n this.errorDetail = error.errorDetail;\n }\n const formResponseData = formActionResponse.getData();\n this.updateFormWithServerData(formResponseData);\n return formResponseData;\n }\n\n updateFormWithServerData(formContent) {\n const {\n currentMode, formSubject, actions, fields, recordTables,\n returnedFile, immutableData, extraInfo,\n } = formContent;\n this.changeState(currentMode ?? this.formStructure.state);\n if (formSubject) { this.formSubject = formSubject; }\n if (actions && actions.length > 0) {\n for (const changedAction of actions) {\n const actionObject = this.getActionObject(changedAction.actionCode);\n if (actionObject) { actionObject.updateFromServer(changedAction); }\n }\n }\n if (fields && fields.length > 0) {\n for (const changedField of fields) {\n const fieldObject = this.getFieldObject(changedField.fieldCode);\n if (fieldObject) {\n fieldObject.updateFromServer(changedField);\n }\n }\n }\n if (recordTables && recordTables.length > 0) {\n for (const changedTable of recordTables) {\n const tableObject = this.getTableObject(changedTable.tableCode);\n if (tableObject) {\n tableObject.updateFromServer(changedTable);\n }\n }\n }\n if (returnedFile && returnedFile.file) {\n this.fileMgmtServices.saveFile(returnedFile.file, returnedFile.name, returnedFile.type);\n }\n this.formStructure.immutableData = immutableData;\n this.formStructure.extraInfo = extraInfo;\n }\n\n /**\n * Manejo de event handlers para acciones sobre el formulario\n */\n\n addSectionActivation(sections, callbackMethod) {\n const sectionSet = (Array.isArray(sections)) ? sections : [sections];\n sectionSet.forEach((sectionName) => {\n if (!this.formSectionsActivate[sectionName]) {\n this.formSectionsActivate[sectionName] = [];\n }\n this.formSectionsActivate[sectionName].push(callbackMethod);\n });\n }\n\n addSectionInactivation(sections, callbackMethod) {\n const sectionSet = (Array.isArray(sections)) ? sections : [sections];\n sectionSet.forEach((sectionName) => {\n if (!this.formSectionsInactivate[sectionName]) {\n this.formSectionsInactivate[sectionName] = [];\n }\n this.formSectionsInactivate[sectionName].push(callbackMethod);\n });\n }\n\n addActionMethodStart(actions, callbackMethod) {\n const actionSet = (Array.isArray(actions)) ? actions : [actions];\n actionSet.forEach((actionName) => {\n if (!this.formActionsStart[actionName]) {\n this.formActionsStart[actionName] = [];\n }\n this.formActionsStart[actionName].push(callbackMethod);\n });\n }\n\n addActionMethodFinish(actions, callbackMethod) {\n const actionSet = (Array.isArray(actions)) ? actions : [actions];\n actionSet.forEach((actionName) => {\n if (!this.formActionsFinish[actionName]) {\n this.formActionsFinish[actionName] = [];\n }\n this.formActionsFinish[actionName].push(callbackMethod);\n });\n }\n\n async launchSectionActivation(sectionCode: string) {\n const sectionObject = this.formStructure.getSectionObject(sectionCode);\n if (!sectionObject) { return; }\n const clientSectionMethods = this.formSectionsActivate[sectionCode];\n if (clientSectionMethods) {\n for (const clientSectionMethod of clientSectionMethods) {\n clientSectionMethod(sectionObject);\n }\n }\n }\n\n async launchSectionInactivation(sectionCode: string) {\n const sectionObject = this.formStructure.getSectionObject(sectionCode);\n if (!sectionObject) { return; }\n const clientSectionMethods = this.formSectionsInactivate[sectionCode];\n if (clientSectionMethods) {\n for (const clientSectionMethod of clientSectionMethods) {\n clientSectionMethod(sectionObject);\n }\n }\n }\n\n async startAction(actionCode: string) {\n const actionObject = this.getAction(actionCode);\n if (!actionObject) { return; }\n this.resetError();\n actionObject.start();\n const clientActionMethods = this.formActionsStart[actionCode];\n if (clientActionMethods) {\n const clientActionPromises = [];\n for (const clientActionMethod of clientActionMethods) {\n const continueActionPromise = clientActionMethod(actionObject);\n clientActionPromises.push(continueActionPromise);\n }\n const clientActionResults = await Promise.all(clientActionPromises);\n const continueAction = clientActionResults.reduce((total, curr) => (total && curr), true);\n if (!continueAction) {\n actionObject.stop();\n return;\n }\n }\n this.startServerAction(actionObject);\n }\n\n async startServerAction(actionInput) {\n const action = (typeof actionInput === 'string')\n ? this.getAction(actionInput) : actionInput;\n let finish = true;\n let actionResult = null;\n if (action.backend) {\n actionResult = await this.requestFormAction(action.actionCode);\n finish = !this.errorOccured();\n }\n if (finish) {\n await this.finishAction(action, actionResult);\n this.changeState(action.newState);\n } else {\n this.displayActionServerError();\n }\n action.stop();\n }\n\n async finishAction(actionObject, actionResult) {\n const finishActionMethods = this.formActionsFinish[actionObject.actionCode];\n if (finishActionMethods) {\n const clientActionPromises = [];\n for (const clientActionMethod of finishActionMethods) {\n clientActionPromises.push(clientActionMethod(actionObject, actionResult));\n }\n await Promise.all(clientActionPromises);\n }\n }\n\n completeGlobalAction(actionObject) {\n return this.startServerAction(actionObject);\n }\n\n /**\n * Manejadores de eventos para validaciones sobre campos\n */\n\n addFieldInputValidation(fields, callbackMethod) {\n const fieldSet = (Array.isArray(fields)) ? fields : [fields];\n fieldSet.forEach((fieldCode) => {\n if (!this.fieldInputValidation[fieldCode]) {\n this.fieldInputValidation[fieldCode] = [];\n }\n this.fieldInputValidation[fieldCode].push(callbackMethod);\n });\n }\n\n addFieldValidationStart(fields, callbackMethod) {\n const fieldSet = (Array.isArray(fields)) ? fields : [fields];\n fieldSet.forEach((fieldCode) => {\n if (!this.fieldValidationsStart[fieldCode]) {\n this.fieldValidationsStart[fieldCode] = [];\n }\n this.fieldValidationsStart[fieldCode].push(callbackMethod);\n });\n }\n\n addFieldValidationFinish(fields, callbackMethod) {\n const fieldSet = (Array.isArray(fields)) ? fields : [fields];\n fieldSet.forEach((fieldCode) => {\n if (!this.fieldValidationsFinish[fieldCode]) {\n this.fieldValidationsFinish[fieldCode] = [];\n }\n this.fieldValidationsFinish[fieldCode].push(callbackMethod);\n });\n }\n\n async startFieldInputValidation(fieldCode: string) {\n const fieldToValidate = this.getFieldObject(fieldCode);\n if (!fieldToValidate) { return false; }\n fieldToValidate.setErrorMessage('');\n fieldToValidate.setErrorCode('00');\n const validationCallbacks = this.fieldInputValidation[fieldCode];\n if (validationCallbacks) {\n const clientValidationPromises = [];\n for (const validationMethod of validationCallbacks) {\n const continueValidationPromise = validationMethod(fieldToValidate);\n clientValidationPromises.push(continueValidationPromise);\n }\n await Promise.all(clientValidationPromises);\n }\n }\n\n async startFieldValidation(fieldCode: string) {\n const fieldToValidate = this.getField(fieldCode);\n if (!fieldToValidate) { return; }\n fieldToValidate.setErrorMessage('');\n fieldToValidate.setErrorCode('00');\n const validationCallbacks = this.fieldValidationsStart[fieldCode];\n if (validationCallbacks) {\n const clientValidationPromises = [];\n for (const validationMethod of validationCallbacks) {\n const clientValidationPromise = validationMethod(fieldToValidate);\n clientValidationPromises.push(clientValidationPromise);\n }\n const clientValidationResults = await Promise.all(clientValidationPromises);\n const continueValidation = clientValidationResults.reduce((total, curr) => (total && curr), true);\n if (!continueValidation) {\n return;\n }\n }\n this.startServerFieldValidation(fieldToValidate);\n }\n\n async startServerFieldValidation(inputField) {\n const fieldObj = (typeof inputField === 'string')\n ? this.getField(inputField) : inputField;\n let finish = true;\n let validationResult = null;\n if (fieldObj.backend) {\n validationResult = await this\n .requestFormAction(componentConstants.FORMACTION_VALIDATE, fieldObj.fieldCode);\n finish = !this.errorOccured();\n }\n if (finish) {\n await this.finishFieldValidation(fieldObj, validationResult);\n } else {\n fieldObj.setErrorCode(this.errorCode);\n fieldObj.setErrorMessage(this.errorMessage);\n this.displayValidationServerError();\n }\n }\n\n async finishFieldValidation(fieldObject, validationResult) {\n const validationCallbacks = this.fieldValidationsFinish[fieldObject.fieldCode];\n if (validationCallbacks) {\n const clientActionPromises = [];\n for (const validationMethod of validationCallbacks) {\n clientActionPromises.push(validationMethod(fieldObject, validationResult));\n }\n await Promise.all(clientActionPromises);\n }\n }\n\n async continueFieldValidation(fieldCode) {\n return this.startServerFieldValidation(fieldCode);\n }\n\n /**\n * Manejadores de eventos para acciones sobre Tablas\n */\n\n addTableActionStart(tableName, actionCode, callbackMethod) {\n const tableObject = this.getTable(tableName);\n if (!tableObject) {\n return;\n }\n const inlineActionObject = tableObject.getActionObject(actionCode);\n if (!inlineActionObject) {\n return;\n }\n let tableEventHandlers = null;\n if (this.tableActionsStart[tableName]) {\n tableEventHandlers = this.tableActionsStart[tableName];\n } else {\n tableEventHandlers = {};\n this.tableActionsStart[tableName] = tableEventHandlers;\n }\n if (!tableEventHandlers[actionCode]) {\n tableEventHandlers[actionCode] = [];\n }\n tableEventHandlers[actionCode].push(callbackMethod);\n }\n\n addTableActionFinish(tableName, actionCode, callbackMethod) {\n const tableObject = this.getTable(tableName);\n if (!tableObject) {\n return;\n }\n const inlineActionObject = tableObject.getActionObject(actionCode);\n if (!inlineActionObject) {\n return;\n }\n let tableEventHandlers = null;\n if (this.tableActionsFinish[tableName]) {\n tableEventHandlers = this.tableActionsFinish[tableName];\n } else {\n tableEventHandlers = {};\n this.tableActionsFinish[tableName] = tableEventHandlers;\n }\n if (!tableEventHandlers[actionCode]) {\n tableEventHandlers[actionCode] = [];\n }\n tableEventHandlers[actionCode].push(callbackMethod);\n }\n\n addTableSelectionStart(tableName, callbackMethod) {\n const tableObject = this.getTable(tableName);\n if (!tableObject) { return; }\n let tableEventHandlers = null;\n if (this.tableSelectionsStart[tableName]) {\n tableEventHandlers = this.tableSelectionsStart[tableName];\n } else {\n tableEventHandlers = [];\n this.tableSelectionsStart[tableName] = tableEventHandlers;\n }\n tableEventHandlers.push(callbackMethod);\n }\n\n addTableSelectionFinish(tableName, callbackMethod) {\n const tableObject = this.getTable(tableName);\n if (!tableObject) { return; }\n let tableEventHandlers = null;\n if (this.tableSelectionsFinish[tableName]) {\n tableEventHandlers = this.tableSelectionsFinish[tableName];\n } else {\n tableEventHandlers = [];\n this.tableSelectionsFinish[tableName] = tableEventHandlers;\n }\n tableEventHandlers.push(callbackMethod);\n }\n\n addTableGetDataStart(tableName, callbackMethod) {\n const tableObject = this.getTable(tableName);\n if (!tableObject) {\n return;\n }\n let tableEventHandlers = null;\n if (this.tableGetDataStart[tableName]) {\n tableEventHandlers = this.tableGetDataStart[tableName];\n } else {\n tableEventHandlers = [];\n this.tableGetDataStart[tableName] = tableEventHandlers;\n }\n tableEventHandlers.push(callbackMethod);\n }\n\n addTableGetDataFinish(tableName, callbackMethod) {\n const tableObject = this.getTable(tableName);\n if (!tableObject) {\n return;\n }\n let tableEventHandlers = null;\n if (this.tableGetDataFinish[tableName]) {\n tableEventHandlers = this.tableGetDataFinish[tableName];\n } else {\n tableEventHandlers = {};\n this.tableGetDataFinish[tableName] = tableEventHandlers;\n }\n tableEventHandlers[GET_DATA_ACTION] = callbackMethod;\n }\n\n async startTableGlobalAction(tableActionEvent) {\n const { tableCode, actionCode } = tableActionEvent;\n const tableObject = this.getTable(tableCode);\n if (!tableObject || !actionCode) { return; }\n this.resetError();\n const action = tableObject.getAction(actionCode);\n if (!action) { return; }\n const tableActionDetail = {\n tableObject,\n action,\n tableCode,\n actionCode,\n };\n const tableEventHandlers = this.tableActionsStart[tableCode];\n const tableActionMethods = (tableEventHandlers) ? tableEventHandlers[actionCode] : null;\n if (tableActionMethods) {\n const clientActionPromises = [];\n for (const tableActionMethod of tableActionMethods) {\n const clientActionPromise = tableActionMethod(tableActionDetail);\n clientActionPromises.push(clientActionPromise);\n }\n const clientActionResults = await Promise.all(clientActionPromises);\n const continueAction = clientActionResults.reduce((total, curr) => (total && curr), true);\n if (!continueAction) {\n return;\n }\n }\n this.startTableServerGlobalAction(tableActionDetail);\n }\n\n async startTableServerGlobalAction(tableActionDetail) {\n const { tableObject, action, tableCode, actionCode } = tableActionDetail;\n if (!tableObject || !action) { return; }\n tableObject.putOnWait();\n let finish = true;\n let actionResult = null;\n if (action.backend) {\n const actionSubject = {\n tableCode,\n actionType: GLOBAL_ACTION,\n actionCode\n };\n actionResult = await this\n .requestFormAction(componentConstants.FORMACTION_TABLEACTION, actionSubject);\n finish = !this.errorOccured();\n }\n if (finish) {\n await this.finishTableGlobalAction(tableActionDetail, actionResult);\n this.changeState(action.newState);\n } else {\n this.displayTableServerError();\n }\n tableObject.freeWaiting();\n }\n\n async finishTableGlobalAction(tableActionDetail, actionResult) {\n const { tableCode, actionCode } = tableActionDetail;\n const tableEventHandlers = this.tableActionsFinish[tableCode];\n const tableActionMethods = (tableEventHandlers) ? tableEventHandlers[actionCode] : null;\n if (tableActionMethods) {\n const clientActionPromises = [];\n for (const tableActionMethod of tableActionMethods) {\n clientActionPromises.push(tableActionMethod(tableActionDetail, actionResult));\n }\n await Promise.all(clientActionPromises);\n }\n }\n\n async startTableAction(tableActionEvent) {\n const { tableCode, actionCode, actionDetail } = tableActionEvent;\n const tableObject = this.getTable(tableCode);\n if (!tableObject || !actionCode) { return; }\n this.resetError();\n const { recordId, recordData } = actionDetail;\n const action = tableObject.getAction(actionCode);\n if (!action) { return; }\n const tableActionDetail = {\n tableObject,\n action,\n tableCode,\n actionCode,\n recordId,\n recordData\n };\n const tableEventHandlers = this.tableActionsStart[tableCode];\n const tableActionMethods = (tableEventHandlers) ? tableEventHandlers[actionCode] : null;\n if (tableActionMethods) {\n const clientActionPromises = [];\n for (const tableActionMethod of tableActionMethods) {\n const clientActionPromise = tableActionMethod(tableActionDetail);\n clientActionPromises.push(clientActionPromise);\n }\n const clientActionResults = await Promise.all(clientActionPromises);\n const continueAction = clientActionResults.reduce((total, curr) => (total && curr), true);\n if (!continueAction) {\n return;\n }\n }\n this.startTableServerAction(tableActionDetail);\n }\n\n async startTableServerAction(tableActionDetail) {\n const { tableObject, action, tableCode, actionCode, recordId, recordData } = tableActionDetail;\n if (!tableObject || !action) { return; }\n tableObject.putOnWait();\n let finish = true;\n let actionResult = null;\n if (action.backend) {\n const actionSubject = {\n tableCode,\n actionType: componentConstants.FORMTABLEACTION_INLINE,\n actionCode,\n tableRecordId: recordId,\n tableRecordData: recordData\n };\n actionResult = await this\n .requestFormAction(componentConstants.FORMACTION_TABLEACTION, actionSubject);\n finish = !this.errorOccured();\n }\n if (finish) {\n this.finishTableAction(tableActionDetail, actionResult);\n this.changeState(action.newState);\n } else {\n this.displayTableServerError();\n }\n tableObject.freeWaiting();\n }\n\n completeInlineAction(tableAction) {\n return this.startTableServerAction(tableAction);\n }\n\n async finishTableAction(tableActionDetail, actionResult) {\n const { tableCode, actionCode } = tableActionDetail;\n const tableEventHandlers = this.tableActionsFinish[tableCode];\n const tableActionMethods = (tableEventHandlers) ? tableEventHandlers[actionCode] : null;\n if (tableActionMethods) {\n const clientActionPromises = [];\n for (const tableActionMethod of tableActionMethods) {\n clientActionPromises.push(tableActionMethod(tableActionDetail, actionResult));\n }\n await Promise.all(clientActionPromises);\n }\n }\n\n async startTableRecordSelection(tableActionEvent) {\n const { tableCode, actionDetail } = tableActionEvent;\n const tableObject = this.getTable(tableCode);\n if (!tableObject) { return; }\n this.resetError();\n const { recordId, recordData } = actionDetail;\n const tableSelectionDetail = {\n tableObject,\n tableCode,\n recordId,\n recordData\n };\n const tableEventHandlers = this.tableSelectionsStart[tableCode];\n if (tableEventHandlers) {\n const clientActionPromises = [];\n for (const tableSelectionMethod of tableEventHandlers) {\n const clientActionPromise = tableSelectionMethod(tableSelectionDetail);\n clientActionPromises.push(clientActionPromise);\n }\n const clientActionResults = await Promise.all(clientActionPromises);\n const continueAction = clientActionResults.reduce((total, curr) => (total && curr), true);\n if (!continueAction) {\n return;\n }\n }\n this.startTableServerRecordSelection(tableSelectionDetail);\n }\n\n async startTableServerRecordSelection(tableSelectionDetail) {\n const { tableObject, tableCode, recordId, recordData } = tableSelectionDetail;\n if (!tableObject) { return; }\n tableObject.putOnWait();\n let finish = true;\n let actionResult = null;\n if (tableObject.selectionBackend) {\n const actionSubject: any = {\n tableCode,\n actionType: componentConstants.FORMTABLEACTION_ROWSELECTION,\n actionCode: null,\n tableRecordId: recordId,\n tableRecordData: recordData\n };\n actionResult = await this\n .requestFormAction(componentConstants.FORMACTION_TABLEACTION, actionSubject);\n finish = !this.errorOccured();\n }\n if (finish) {\n this.finishTableRecordSelection(tableSelectionDetail, actionResult);\n } else {\n this.displayTableServerError();\n }\n tableObject.freeWaiting();\n }\n\n async finishTableRecordSelection(tableSelectionDetail, actionResult) {\n const { tableCode } = tableSelectionDetail;\n const tableEventHandlers = this.tableSelectionsFinish[tableCode];\n if (tableEventHandlers) {\n const clientActionPromises = [];\n for (const tableSelectionMethod of tableEventHandlers) {\n clientActionPromises.push(tableSelectionMethod(tableSelectionDetail, actionResult));\n }\n await Promise.all(clientActionPromises);\n }\n }\n\n async startTableSelectionAction(tableActionEvent) {\n const { tableCode, actionCode, actionDetail } = tableActionEvent;\n const tableObject = this.getTable(tableCode);\n if (!tableObject || !actionCode) { return; }\n this.resetError();\n const { selectedRecords } = actionDetail;\n const action = tableObject.getAction(actionCode);\n if (!action) { return; }\n const tableActionDetail = {\n tableObject,\n action,\n tableCode,\n actionCode,\n selectedRecords\n };\n const tableEventHandlers = this.tableActionsStart[tableCode];\n const tableActionMethods = (tableEventHandlers) ? tableEventHandlers[actionCode] : null;\n if (tableActionMethods) {\n const clientActionPromises = [];\n for (const tableActionMethod of tableActionMethods) {\n const clientActionPromise = tableActionMethod(tableActionDetail);\n clientActionPromises.push(clientActionPromise);\n }\n const clientActionResults = await Promise.all(clientActionPromises);\n const continueAction = clientActionResults.reduce((total, curr) => (total && curr), true);\n if (!continueAction) {\n return;\n }\n }\n this.startTableServerSelectionAction(tableActionDetail);\n }\n\n async startTableServerSelectionAction(tableActionDetail) {\n const { tableObject, action, tableCode, actionCode, selectedRecords } = tableActionDetail;\n if (!tableObject || !action) { return; }\n tableObject.putOnWait();\n let finish = true;\n let actionResult = null;\n if (action.backend) {\n const actionSubject = {\n tableCode,\n actionType: componentConstants.FORMTABLEACTION_SELECTION,\n actionCode,\n selectedRecords\n };\n actionResult = await this\n .requestFormAction(componentConstants.FORMACTION_TABLEACTION, actionSubject);\n finish = !this.errorOccured();\n }\n if (finish) {\n this.finishTableSelectionAction(tableActionDetail, actionResult);\n this.changeState(action.newState);\n } else {\n this.displayTableServerError();\n }\n tableObject.freeWaiting();\n }\n\n async finishTableSelectionAction(tableActionDetail, actionResult) {\n const { tableCode, actionCode } = tableActionDetail;\n const tableEventHandlers = this.tableActionsFinish[tableCode];\n const tableActionMethods = (tableEventHandlers) ? tableEventHandlers[actionCode] : null;\n if (tableActionMethods) {\n const clientActionPromises = [];\n for (const tableActionMethod of tableActionMethods) {\n clientActionPromises.push(tableActionMethod(tableActionDetail, actionResult));\n }\n await Promise.all(clientActionPromises);\n }\n }\n\n async startTableGetData(tableActionEvent) {\n const { tableCode } = tableActionEvent;\n const tableObject = this.getTable(tableCode);\n const tableActionDetail = {\n tableObject,\n tableCode\n };\n this.resetError();\n const tableEventHandlers = this.tableGetDataStart[tableCode];\n if (tableEventHandlers) {\n const clientActionPromises = [];\n for (const tableActionMethod of tableEventHandlers) {\n const clientActionPromise = tableActionMethod(tableActionDetail);\n clientActionPromises.push(clientActionPromise);\n }\n const clientActionResults = await Promise.all(clientActionPromises);\n const continueAction = clientActionResults.reduce((total, curr) => (total && curr), true);\n if (!continueAction) {\n return;\n }\n }\n this.startTableServerGetData(tableActionDetail);\n }\n\n async startTableServerGetData(tableActionDetail) {\n const { tableObject, tableCode } = tableActionDetail;\n tableObject.putOnWait();\n const actionSubject = { tableCode };\n const actionResult = await this\n .requestFormAction(componentConstants.FORMACTION_GETTABLEDATA, actionSubject);\n if (this.errorOccured()) {\n this.displayTableServerError();\n } else {\n this.finishTableGetData(tableActionDetail, actionResult);\n }\n tableObject.freeWaiting();\n }\n\n async finishTableGetData(tableActionDetail, actionResult) {\n const { tableCode, tableActionCode } = tableActionDetail;\n const tableEventHandlers = this.tableActionsFinish[tableCode];\n const tableActionMethods = (tableEventHandlers) ? tableEventHandlers[tableActionCode] : null;\n if (tableActionMethods) {\n const clientActionPromises = [];\n for (const tableActionMethod of tableActionMethods) {\n clientActionPromises.push(tableActionMethod(tableActionDetail, actionResult));\n }\n await Promise.all(clientActionPromises);\n }\n }\n\n checkSectionRequiredFields(sectionCode, reqFieldMessage?) {\n this.cleanErrorFields(null, sectionCode);\n const requiredFieldMessage = reqFieldMessage || REQUIRED_FIELD_MESSAGE;\n const numErrors = this.tagFieldsWithError(this.getRequiredEmptyFields(null,\n sectionCode), null, requiredFieldMessage);\n return (numErrors === 0);\n }\n\n validateSectionConsistency(sectionCode, reqFieldMessage?) {\n this.resetError();\n const completeFields = this.checkSectionRequiredFields(sectionCode, reqFieldMessage);\n if (!completeFields) {\n this.setError(componentConstants.FORMERROR_TYPE_WARNING,\n componentConstants.FORMERROR_VALIDATION_TITLE,\n componentConstants.FORMERROR_REQUIRED_FIELDS);\n return;\n }\n let validationError = false;\n const requiredEmptyFields = this.getRequiredEmptyFields(null, sectionCode);\n if (requiredEmptyFields.length > 0) {\n validationError = true;\n this.setError(componentConstants.FORMERROR_TYPE_WARNING,\n componentConstants.FORMERROR_VALIDATION_TITLE,\n componentConstants.FORMERROR_REQUIRED_FIELDS);\n this.tagFieldsWithError(requiredEmptyFields, null,\n componentConstants.FIELD_REQUIRED_MESSAGE);\n for (const fieldCode of requiredEmptyFields) {\n const requiredEmptyField = this.getField(fieldCode);\n if (requiredEmptyField && requiredEmptyField.widget\n && requiredEmptyField.widget.focus) {\n requiredEmptyField.widget.focus();\n break;\n }\n }\n }\n const validationIssueFields = this.getFieldsWithValidationIssues(null,\n sectionCode);\n if (!validationError && validationIssueFields.length > 0) {\n validationError = true;\n this.setError(componentConstants.FORMERROR_TYPE_WARNING,\n componentConstants.FORMERROR_VALIDATION_TITLE,\n componentConstants.FORMERROR_VALIDATION_FIELDS);\n for (const fieldCode of validationIssueFields) {\n const validationIssueField = this.getField(fieldCode);\n if (validationIssueField && validationIssueField.widget\n && validationIssueField.widget.focus) {\n validationIssueField.widget.focus();\n break;\n }\n }\n }\n return validationError;\n }\n\n copyTableRecordToFields(tableObj, mappingTable = null) {\n const tableObject = this.getTable(tableObj.tableCode);\n const tableRecord = tableObject.getTableRecord(tableObj.recordId);\n const columnNames = tableObject.columnNames;\n for (const columnName of columnNames) {\n const columnValue = tableRecord.getFieldValue(columnName) ?? '';\n const fieldCode = mappingTable?.[columnName] ?? columnName;\n this.setFieldValue(fieldCode, columnValue);\n }\n return true;\n }\n\n /**\n * Soporte registros en tablas que se editan en campos del formulario\n */\n\n defineEditionTable(tableEditionDef) {\n const { columnFieldMapping, recordCaptureFields, startCollapsed } = tableEditionDef;\n tableEditionDef.startCollapsed = (typeof startCollapsed !== 'undefined')\n ? startCollapsed : true;\n\n const fieldsMappingTable = {};\n const fieldsToClear = [];\n for (const columnMap of columnFieldMapping) {\n const [columnName, formField] = columnMap;\n fieldsMappingTable[columnName] = formField;\n fieldsToClear.push(formField);\n }\n tableEditionDef.fieldsMappingTable = fieldsMappingTable;\n tableEditionDef.fieldsToClear = fieldsToClear;\n\n const { tableName, newRecordActionName, saveRecordActionName,\n cancelSaveRecordActionName, tableEditRecordActionName, enableRecordEdition\n } = tableEditionDef;\n\n this.addActionMethodStart(newRecordActionName, () => {\n this.cleanFields(fieldsToClear, null);\n this.showFields(recordCaptureFields);\n if (!enableRecordEdition) {\n this.enableRecordEdition(tableEditionDef);\n } else {\n enableRecordEdition(tableEditionDef);\n }\n this.hideAction(newRecordActionName);\n this.showAction(cancelSaveRecordActionName);\n this.showAction(saveRecordActionName);\n return true;\n });\n const { recordEditionValidate, disableRecordEdition } = tableEditionDef;\n this.addActionMethodStart(saveRecordActionName, () => {\n return (!recordEditionValidate) ? this.recordEditionValidate(tableEditionDef)\n : recordEditionValidate(tableEditionDef);\n });\n this.addActionMethodFinish(saveRecordActionName, () => {\n if (!this.errorOccured()) {\n return (!disableRecordEdition) ? this.disableRecordEdition(tableEditionDef)\n : disableRecordEdition(tableEditionDef);\n }\n });\n this.addActionMethodStart(cancelSaveRecordActionName, () => {\n return (!disableRecordEdition) ? this.disableRecordEdition(tableEditionDef)\n : disableRecordEdition(tableEditionDef);\n });\n this.addTableActionStart(tableName, tableEditRecordActionName,\n (tblActObj) => {\n return (!enableRecordEdition)\n ? this.enableRecordEdition(tableEditionDef, tblActObj)\n : enableRecordEdition(tableEditionDef, tblActObj);\n });\n if (tableEditionDef.startCollapsed) {\n return (!tableEditionDef.disableRecordEdition)\n ? this.disableRecordEdition(tableEditionDef)\n : tableEditionDef.disableRecordEdition(tableEditionDef);\n } else {\n return (!tableEditionDef.enableRecordEdition)\n ? this.enableRecordEdition(tableEditionDef)\n : tableEditionDef.enableRecordEdition(tableEditionDef, null);\n }\n }\n\n enableRecordEdition(tableEditionDef, tableActionObject = null) {\n if (tableActionObject) {\n this.copyTableRecordToFields(tableActionObject, tableEditionDef.fieldsMappingTable);\n }\n this.showFields(tableEditionDef.recordCaptureFields);\n this.hideAction(tableEditionDef.newRecordActionName);\n this.showAction(tableEditionDef.cancelSaveRecordActionName);\n this.showAction(tableEditionDef.saveRecordActionName);\n if (tableEditionDef.fieldsToTriggerValidation\n && tableEditionDef.fieldsToTriggerValidation.length > 0) {\n for (const fieldName of tableEditionDef.fieldsToTriggerValidation) {\n this.startFieldValidation(fieldName);\n }\n }\n return true;\n }\n\n disableRecordEdition(tableDefinition) {\n this.cleanFields(tableDefinition.fieldsToClear, null);\n this.hideFields(tableDefinition.recordCaptureFields);\n this.showAction(tableDefinition.newRecordActionName);\n this.hideAction(tableDefinition.cancelSaveRecordActionName);\n this.hideAction(tableDefinition.saveRecordActionName);\n return true;\n }\n\n recordEditionValidate(tableEditionDef) {\n const { recordCaptureFields } = tableEditionDef;\n let validationOk = true;\n const requiredEmptyFields = this.getRequiredEmptyFields(recordCaptureFields, null);\n if (requiredEmptyFields.length > 0) {\n validationOk = false;\n this.setError(componentConstants.FORMERROR_TYPE_WARNING,\n componentConstants.FORMERROR_VALIDATION_TITLE,\n componentConstants.FORMERROR_REQUIRED_FIELDS);\n this.tagFieldsWithError(requiredEmptyFields, null,\n componentConstants.FIELD_REQUIRED_MESSAGE);\n }\n const validationIssueFields = this.getFieldsWithValidationIssues(recordCaptureFields, null);\n if (validationIssueFields.length > 0) {\n validationOk = false;\n this.setError(componentConstants.FORMERROR_TYPE_WARNING,\n componentConstants.FORMERROR_VALIDATION_TITLE, componentConstants.FORMERROR_VALIDATION_FIELDS);\n }\n return validationOk;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { FormsModule } from '@angular/forms';\n\nimport { BasicFormComponent } from './components/forms/basic-form';\nimport { ActionComponent } from './components/elements/action.component';\nimport { FieldComponent } from './components/elements/field.component';\nimport { ElementComponent } from './components/elements/layout/element.component';\nimport { FormErrorComponent } from './components/elements/layout/form-error.component';\nimport { FormHeaderComponent } from './components/elements/layout/form-header.component';\nimport { SectionComponent } from './components/elements/layout/section.component';\nimport { SubSectionComponent } from './components/elements/layout/sub-section.component';\nimport { LibTableFilterComponent } from './components/elements/tables/table-filter.component';\nimport { LibTableRecordActionComponent } from './components/elements/tables/table-record-action.component';\nimport { LibTableRecordFieldComponent } from './components/elements/tables/table-record-field.component';\nimport { LibTableComponent } from './components/elements/tables/table.component';\n\nconst COMPONENTS = [\n BasicFormComponent,\n ActionComponent,\n FieldComponent,\n ElementComponent,\n FormErrorComponent,\n FormHeaderComponent,\n SectionComponent,\n SubSectionComponent,\n LibTableFilterComponent,\n LibTableRecordActionComponent,\n LibTableRecordFieldComponent,\n LibTableComponent];\n\n@NgModule({\n declarations: COMPONENTS,\n imports: [\n CommonModule,\n RouterModule,\n FormsModule,\n ],\n exports: COMPONENTS\n})\nexport class TuainNgFormsLibModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Component","Input","EventEmitter","Output","Subject","INLINE_ACTION","ChangeDetectionStrategy","HEADER","nanoid","BehaviorSubject","NgModule","CommonModule","RouterModule","FormsModule"],"mappings":"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"}
|