tuain-ng-forms-lib 12.0.75 → 12.0.79
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 +7 -6
- package/bundles/tuain-ng-forms-lib.umd.js.map +1 -1
- package/esm2015/lib/classes/forms/action.js +3 -3
- package/esm2015/lib/classes/forms/field.js +2 -2
- package/esm2015/lib/classes/forms/table/action.js +4 -4
- package/esm2015/lib/classes/forms/table/table.js +2 -1
- package/fesm2015/tuain-ng-forms-lib.js +7 -6
- package/fesm2015/tuain-ng-forms-lib.js.map +1 -1
- package/lib/classes/forms/table/table.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tuain-ng-forms-lib.umd.js","sources":["../../../projects/tuain-ng-forms-lib/src/lib/components/elements/action.component.ts","../../../node_modules/tslib/tslib.es6.js","../../../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/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/form.constants.ts","../../../projects/tuain-ng-forms-lib/src/lib/classes/forms/element.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/table/column.ts","../../../projects/tuain-ng-forms-lib/src/lib/classes/forms/table/action.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/classes/forms/subsection.ts","../../../projects/tuain-ng-forms-lib/src/lib/classes/forms/section.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';\nimport { FormAction } from '../../classes/forms/action';\n\n@Component({\n selector: 'lib-action',\n template: `<ng-content></ng-content>`\n})\n\nexport class ActionComponent implements OnInit {\n formConfig: any;\n inProgress: boolean;\n @Input() action: FormAction;\n @Input() busy: any;\n @Input() relatedField: any;\n @Input() state: any;\n\n @Input() style = 'primary';\n @Input() showLabel = true;\n\n ngOnInit() {\n this.formConfig = this.action?._formConfig;\n this.start();\n }\n\n start() { }\n\n activate() {\n if (this.action?.notifyActivation) {\n this.action.notifyActivation();\n }\n }\n\n visibleOnRestriction() {\n if (!this.action?.restrictedOnField) {\n return true;\n }\n if ((this.action?.restrictedOnOperator === '=='\n && this.relatedField === this.action?.restrictedOnValue)\n || (this.action?.restrictedOnOperator === '!='\n && this.relatedField !== this.action?.restrictedOnValue)) {\n return true;\n }\n }\n\n get visible() {\n return this.action?.visibleOn(this.state) && this.visibleOnRestriction();\n }\n\n get disabled() {\n return !(this.action?.enabledOn(this.state));\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, Input } from '@angular/core';\nimport { FieldDescriptor } from '../../classes/forms/field';\n\nconst VALUE = 'value';\nconst FOCUS = 'focus';\n@Component({\n selector: 'lib-field',\n template: `<ng-content></ng-content>`\n})\nexport class FieldComponent implements OnInit {\n formConfig: any;\n // Atributos obtenidos estáticamente\n code: string;\n value: any;\n fieldInfo: string;\n fieldAlignment: string;\n tooltipText: string;\n\n // Atributos actualizados por subscripción\n maxLength: any;\n minValue: any;\n maxValue: any;\n onValidation: any;\n captureType: any;\n title: any;\n type: any;\n visibleLabel: any;\n required: any;\n options: any;\n\n errorType: any;\n errorCode: any;\n errorMessage: any;\n\n @Input() field: FieldDescriptor;\n @Input() state: any;\n\n ngOnInit() {\n if (this.field) {\n this.formConfig = this.field?._formConfig;\n // Inicialización\n const mapping = Object.entries(this.formConfig.componentFieldAttrMap);\n for (let index = 0; index < mapping.length; index++) {\n const [fieldAttr1, compAttr1] = mapping[index];\n const compAttr = compAttr1.toString();\n const fieldAttr = fieldAttr1.toString();\n const attributeValue = this.field?.[fieldAttr]\n this.dafaultProcessFieldChange(compAttr, attributeValue);\n this.processFieldChange(compAttr, attributeValue);\n }\n // Subscripción a cambios en atributos\n this.field.attributeChange.subscribe(event => {\n const { name: fieldAttr, value } = event;\n const compAttr = this.formConfig.componentFieldAttrMap[fieldAttr];\n this.dafaultProcessFieldChange(compAttr, value);\n this.processFieldChange(compAttr, value);\n });\n }\n this.start();\n }\n\n dafaultProcessFieldChange(attribute: string, value?: any) {\n if (attribute === VALUE) {\n this.updateValue();\n } else if (attribute === FOCUS) {\n this.focus();\n } else {\n this[attribute] = value;\n }\n }\n\n processFieldChange(attribute: string, value?: any) { }\n start() { }\n focus() { }\n\n updateObject() {\n this.field.setValue(this.value);\n }\n\n inputChanged() {\n this.field.setValue(this.value);\n this.onChangeContent();\n }\n\n inputTyped() {\n this.field.setValue(this.value);\n this.onInputChange();\n }\n\n updateValue() {\n this.value = this.field.getValue();\n }\n\n onInputChange() {\n setTimeout(() => this.field.notifyEditionPartial(), 50);\n }\n\n onChangeContent() {\n setTimeout(() => this.field.notifyEditionFinish(), 50);\n }\n\n onShowInfo(detail = null) {\n setTimeout(() => this.field.notifyEditionDetailRequest(detail), 50);\n }\n\n numberInputValidation(event) {\n const k = event.charCode;\n return (k > 47 && k < 58);\n }\n\n get visible() {\n return this.field?.visibleOn(this.state);\n }\n\n get disabled() {\n return !this.field?.enabledOn(this.state);\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-element',\n template: `<ng-content></ng-content>`\n})\nexport class ElementComponent implements OnInit {\n formConfig: any;\n\n @Input() element: any;\n @Input() form: any;\n @Input() state: any;\n\n ngOnInit() {\n this.formConfig = this.element?._formConfig;\n this.start();\n }\n\n start() { }\n\n get visible() {\n return this.element?.visibleOn(this.state);\n }\n\n get disabled() {\n return !this.element?.enabledOn(this.state);\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 @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() section: 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","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, ChangeDetectionStrategy } from '@angular/core';\nimport { TableRecordData } from '../../../classes/forms/table/row-data';\nimport { TableActionEvent } from '../../../classes/forms/table/table';\nimport { RecordTable, TableEvent } from '../../../classes/forms/table/table';\n\nconst changeViewAttributes = ['visibleRecords', 'currentPage', 'recordsPerPage'];\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 formConfig: any;\n globalFilterString: string = '';\n\n // Atributos sincronizados del objeto\n code: any;\n columns: any;\n currentPage: number = 1;\n globalSearch: boolean = false;\n visibleRecords: any[];\n selectedRecords: any[] = [];\n recordsPerPage: any;\n totalRecordsNumber: number = 0;\n allSelected: boolean = false;\n layout: string;\n\n tableFieldStyles: any;\n loaded = false;\n selectable = false;\n hasActions = false;\n inlineActions: any;\n globalActions: any;\n selectionActions: any;\n\n @Input() table: RecordTable;\n @Input() tableRecords: TableRecordData[];\n @Input() disabled: boolean;\n @Input() state: string;\n @Input() waiting: boolean;\n\n ngOnInit() {\n if (this.table) {\n this.formConfig = this.table?._formConfig;\n this.tableFieldStyles = this.formConfig.tableFieldStyles;\n this.selectable = this.table.selectable;\n this.hasActions = this.table.hasActions();\n this.inlineActions = this.table.getActions(this.formConfig.tableActions.inline);\n this.globalActions = this.table.getActions(this.formConfig.tableActions.global);\n this.selectionActions = this.table.getActions(this.formConfig.tableActions.selection);\n // Inicialización de campos mapeados del objeto\n const mapping = Object.entries(this.formConfig.componentTableAttrMap);\n for (let index = 0; index < mapping.length; index++) {\n const [tableAttrRaw, compAttrRaw] = mapping[index];\n const tableAttr = tableAttrRaw.toString();\n const compAttr = compAttrRaw.toString();\n this.syncAttribute(compAttr, this.table[tableAttr]);\n }\n // Subscripción a cambios en atributos\n this.table.attributeChange.subscribe(event => {\n const { name: tableAttr, value } = event;\n const compAttr = this.formConfig.componentTableAttrMap[tableAttr];\n this.syncAttribute(compAttr, value);\n });\n }\n this.start();\n }\n\n start() { }\n tableGlobalAction(actionCode: string) { this.table.notifyGlobalAction(actionCode); }\n tableSelectionAction(actionCode: string) { this.table.notifySelectionAction(actionCode); }\n tableActionSelected(actionEvent: TableActionEvent) { this.table.notifyInlineAction(actionEvent); }\n tableSelectionToggle(recordId) { this.table.notifyRecordSelection(recordId); }\n toggleSelectAll() { return (this.allSelected) ? this.table.unSelectAll() : this.table.selectAll(); }\n globalFilterCompleted() { this.changePage(1); }\n changePage(requestedPage) { this.table.changePage(requestedPage); }\n tableColumnSort(columnName, direction = null) { this.table.sort(columnName, direction ?? 'ascend'); }\n globalFilterChanged() { this.table.setGlobalFilterString(this.globalFilterString?.trim() ?? ''); }\n\n syncAttribute(name, value) {\n try {\n this[name] = value;\n return true;\n } catch {\n return false;\n }\n }\n\n filterHasChanged(column, values) {\n this.table.addColumnFilter(column.fieldCode, values);\n }\n}\n","export const NO_ERROR = '00';\nexport const HEADER = 'HEADER';\n\nexport const elementTypes = {\n action: 'ACTION',\n field: 'FIELD',\n table: 'TABLE',\n};\n\nexport const formActions = {\n tableAction: 'TABLEACTION',\n getData: 'GETDATA',\n getTableData: 'GETTABLEDATA',\n validate: 'VALIDATE',\n};\n\nexport const operators = {\n G: 'G',\n L: 'L',\n GE: 'GE',\n LE: 'LE',\n EQ: 'EQ',\n NEQ: 'NEQ',\n HAS: 'HAS',\n NOTHAS: 'NOTHAS',\n BETWEEN: 'BETWEEN',\n IN: 'IN',\n};\n","import { elementTypes } from './form.constants';\nexport class FormElement {\n protected _visible: boolean;\n protected _visibleForced: boolean;\n protected _isForced: boolean;\n _formConfig: any;\n disabled: boolean;\n visibleStates: string[];\n enabledStates: string[];\n elementType: string;\n customAttributes: any;\n\n constructor(elementDefinition: any, formConfig: any) {\n this._formConfig = formConfig;\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.customAttributes = elementDefinition?.customAttributes ?? {};\n }\n\n getCustomAttribute(name: string): string { return this.customAttributes?.[name] ?? null; }\n setCustomAttribute(name: string, value: string): void { if (name) { this.customAttributes[name] = value; } }\n matchAttribute(name: string, value: string): boolean { return this.customAttributes?.[name] === value; }\n\n isField(): boolean { return this.elementType === elementTypes.field; }\n isAction(): boolean { return this.elementType === elementTypes.action; }\n isTable(): boolean { return this.elementType === elementTypes.table; }\n\n setVisibleStates(newStates: any): void {\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): void {\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: string): boolean { return (this.visibleStates && state) ? this.visibleStates.includes(state) : false; }\n enabledOnState(state: string): boolean { return (this.enabledStates && state) ? this.enabledStates.includes(state) : false; }\n\n /**\n * @deprecated Utilizar viewOnState\n */\n supportState(state: string): boolean { return this.viewOnState(state); }\n\n /**\n * @deprecated Utilizar viewOnState\n */\n supportMode(state: string): boolean { return this.viewOnState(state); }\n\n get visible(): boolean { return (this._isForced) ? this._visibleForced : this._visible; }\n set visible(visible: boolean) { this.setVisibility(visible); }\n\n visibleOn(state: string): boolean {\n return this.visible && this.viewOnState(state);\n }\n\n enabledOn(state: string): boolean {\n return !this.disabled && this.enabledOnState(state);\n }\n\n setVisibility(visible: boolean, forced: boolean = null): void {\n this._visible = visible && true;\n if (forced != null) {\n this._isForced = forced;\n }\n }\n\n show(forced?: boolean): void {\n this._visible = true;\n if (forced !== null) {\n this._isForced = forced;\n this._visibleForced = true;\n }\n }\n\n hide(forced?: boolean): void {\n this._visible = false;\n if (forced !== null) {\n this._isForced = forced;\n this._visibleForced = false;\n }\n }\n\n enable(): void { this.disabled = false; }\n disable(): void { this.disabled = true; }\n\n get enabled(): boolean { return !this.disabled; }\n get editable(): boolean { return !this.disabled; }\n}\n","import { Subject } from 'rxjs';\nimport { elementTypes } 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\n inProgress = false;\n newState: string;\n backend: boolean;\n\n actionCode: string;\n actionName: string;\n iconName: string;\n\n restrictedOnField: string;\n restrictedOnOperator: string;\n restrictedOnValue: string;\n customValidation: any;\n\n constructor(actionDefinition, formConfig) {\n super(actionDefinition, formConfig);\n this.elementType = elementTypes.action;\n this.actionCode = actionDefinition.actionCode ? actionDefinition.actionCode.toString() : '';\n this.actionName = actionDefinition.actionTitle;\n this.iconName = actionDefinition.iconName || this.actionCode;\n this.setCustomAttribute('location', actionDefinition.position || HEADER);\n this.backend = actionDefinition?.serverAction ?? false;\n this.newState = actionDefinition?.newState;\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 yn from 'yn';\nimport { elementTypes, NO_ERROR } from './form.constants';\nimport { FormElement } from './element';\nimport { isNgTemplate } from '@angular/compiler';\n\nconst UNDEFINED = 'undefined';\n\nconst DEFAULT_ERROR_TYPE = 'error';\nconst DEFAULT_CAPTURE_TYPE = 'INPUT';\nconst DEFAULT_ALIGNMENT = 'left';\n\nconst STD_MAX_LENGTH = 50;\nconst BIG_MAX_LENGTH = 500;\n\nconst fldAttr = {\n validateOnServer: 'validateOnServer',\n value: '_value',\n minValue: '_minValue',\n maxValue: '_maxValue',\n maxLength: '_maxLength',\n onValidation: '_onValidation',\n focus: 'focus',\n intrinsicErrorMessage: '_intrinsicErrorMessage',\n code: 'fieldCode',\n info: 'fieldInfo',\n defaultValue: 'defaultValue',\n defaultEditable: 'defaultEditable',\n visibleLabel: 'visibleLabel',\n required: 'fieldRequired',\n hasChanged: 'hasChanged',\n outputOnly: 'outputOnly',\n captureType: 'captureType',\n title: 'fieldTitle',\n type: 'fieldType',\n alignment: 'fieldAlignment',\n format: 'fieldFormat',\n externalValue: 'externalValue',\n tooltipText: 'tooltipText',\n errorType: 'errorType',\n errorCode: 'errorCode',\n errorMessage: 'errorMessage',\n options: 'fieldOptions',\n};\n\nexport interface DetailEvent {\n code: string;\n detail: any;\n}\n\nexport interface FieldOption {\n fieldOptionValue: string;\n fieldOptionId: string;\n}\n\nexport class FieldDescriptor extends FormElement {\n private readonly _editionFinish = new Subject<any>();\n private readonly _editionPartial = new Subject<any>();\n private readonly _detailRequest = new Subject<DetailEvent>();\n private readonly _attributeChange = new Subject<any>();\n\n private validateOnServer: boolean;\n\n private _value: any;\n private _focus: boolean;\n\n private _minValue: any;\n private _maxValue: any;\n private _maxLength: number;\n _onValidation: boolean;\n _intrinsicErrorMessage: string;\n\n fieldCode: string;\n fieldInfo: string;\n defaultValue: string;\n defaultEditable: boolean;\n\n visibleLabel: boolean;\n fieldRequired: boolean;\n hasChanged: boolean;\n outputOnly: boolean;\n captureType: string;\n fieldTitle: string;\n fieldType: string;\n fieldAlignment: string;\n fieldFormat: RegExp;\n externalValue: any;\n tooltipText: string;\n\n errorType: string;\n errorCode: string;\n errorMessage: string;\n\n fieldOptions: FieldOption[];\n\n constructor(inputFieldReceived, formConfig) {\n super(inputFieldReceived, formConfig);\n this.elementType = elementTypes.field;\n const fld = (inputFieldReceived) ? inputFieldReceived : {};\n\n this.setAttr(fldAttr.code, fld.fieldCode);\n this.setAttr(fldAttr.title, fld.fieldTitle ?? this.fieldCode);\n this.setAttr(fldAttr.captureType, fld.captureType ?? DEFAULT_CAPTURE_TYPE);\n this.setAttr(fldAttr.defaultValue, fld.defaultValue ?? null);\n const defaultTypeAlignment = (this._formConfig.tableFieldStyles[this.fieldType] != null)\n ? this._formConfig.tableFieldStyles[this.fieldType]['text-align'] : DEFAULT_ALIGNMENT;\n const fieldAlignment = (fld.alignment != null) ? fld.alignment.toLowerCase() : defaultTypeAlignment;\n this.setAttr(fldAttr.alignment, fieldAlignment);\n this.setAttr(fldAttr.info, fld.info || '');\n let fieldFormat;\n try {\n fieldFormat = (fld.format) ? new RegExp(fld.format) : null;\n } catch (e) {\n fieldFormat = null;\n }\n this.setAttr(fldAttr.format, fieldFormat);\n\n this.setAttr(fldAttr.validateOnServer, fld.serverAction ?? false);\n\n this.setAttr(fldAttr.tooltipText, fld.tooltip || '');\n this.setAttr(fldAttr.defaultEditable, this.enabled);\n this.setAttr(fldAttr.required, fld.required ?? false);\n this.setError(fld.errorCode, fld.errorMessage, fld.errorType ?? DEFAULT_ERROR_TYPE);\n this.setAttr(fldAttr.outputOnly, fld.outputOnly ?? false);\n const maxLength = fld.maxLength ?? (this.captureType === 'TEXTAREA' ? BIG_MAX_LENGTH : STD_MAX_LENGTH);\n this.setAttr(fldAttr.maxLength, maxLength);\n this.setAttr(fldAttr.intrinsicErrorMessage, this._formConfig.fieldTypeErrMsg[this.fieldType] ?? this._formConfig.fieldTypeErrMsg.DEFAULT);\n\n this.setFieldType(fld.fieldTypeCode);\n this.setEditable(fld.editable ?? true);\n this.setVisibleLabel(fld.visibleLabel ?? true);\n this.setVisibility(fld.visible);\n this.setFieldOptions(fld.fieldOptions);\n this.setValue(fld.fieldValue || this.defaultValue || '');\n }\n\n get name() { return this.fieldCode; }\n get editionFinish() { return this._editionFinish; }\n get attributeChange() { return this._attributeChange; }\n\n get editionPartial() { return this._editionPartial; }\n get detailRequest() { return this._detailRequest; }\n get info() { return this.fieldInfo; }\n\n get validating() { return this._onValidation; }\n set validating(isValidating: boolean) { this.setAttr(fldAttr.onValidation, isValidating); }\n\n focus() { this.setAttr(fldAttr.focus, true); }\n\n setIntrinsicErrorMessage(message: string) { this.setAttr(fldAttr.intrinsicErrorMessage, message); }\n set intrinsicErrorMessage(message: string) { this.setIntrinsicErrorMessage(message); }\n\n get fieldValue() { return this.getValue(); }\n\n getRequired() { return this.required; }\n setRequired(required: boolean) { this.required = required; }\n\n get required(): boolean { return this.fieldRequired; }\n set required(required: boolean) { this.setAttr(fldAttr.required, required ?? false); }\n get maxLength() { return (this._maxLength > 0) ? this._maxLength.toString() : ''; }\n set maxLength(requiredMaxLength: any) {\n if (typeof requiredMaxLength === 'string') {\n this.setAttr(fldAttr.maxLength, parseInt(requiredMaxLength, 10));\n } else if (typeof requiredMaxLength === 'number') {\n this.setAttr(fldAttr.maxLength, requiredMaxLength);\n }\n }\n get value() { return this.getValue(); }\n set value(newValue) { this.setValue(newValue); }\n\n notifyEditionPartial() {\n const intrinsicValidation = true;\n this._editionPartial.next({ code: this.fieldCode, intrinsicValidation });\n }\n\n notifyEditionFinish() {\n let intrinsicValidation = true;\n const fieldDefaultFormat = this._formConfig.fieldTypesPatterns?.[this.fieldType] ?? null;\n const fieldValue = this.getValue();\n if (fieldValue && (fieldDefaultFormat || this.fieldFormat)) {\n intrinsicValidation = (fieldDefaultFormat?.test(fieldValue) ?? true)\n && (this.fieldFormat?.test(fieldValue) ?? true);\n if (!intrinsicValidation) {\n this.setError('99', this._intrinsicErrorMessage);\n }\n }\n if (intrinsicValidation && fieldValue && this._minValue && fieldValue < this._minValue) {\n intrinsicValidation = false;\n this.setError('99', 'Campo con valor inferior al mínimo');\n }\n if (intrinsicValidation && fieldValue && this._maxValue && fieldValue > this._maxValue) {\n intrinsicValidation = false;\n this.setError('99', 'Campo con valor superior al máximo');\n }\n this._editionFinish.next({ code: this.fieldCode, intrinsicValidation });\n }\n\n setAttr(name: string, value: any) {\n this[name] = value;\n if (this._formConfig.monitoredFieldAttributes.includes(name)) {\n this._attributeChange.next({ name, value });\n }\n }\n\n notifyEditionDetailRequest(detail: any) {\n const detailEvent: DetailEvent = {\n code: this.fieldCode,\n detail,\n };\n this._detailRequest.next(detailEvent);\n }\n\n setVisibleLabel(visibleLabel: boolean) { this.setAttr(fldAttr.visibleLabel, visibleLabel); }\n showLabel() { this.setVisibleLabel(true); }\n hideLabel() { this.setVisibleLabel(false); }\n\n setChanged(hasChanged: boolean) { this.setAttr(fldAttr.hasChanged, hasChanged); }\n changed() { this.setChanged(true); }\n\n setLabel(label) { this.setAttr(fldAttr.title, label); }\n clean() { this.setValue(this.defaultValue || ''); this.resetError(); }\n get backend() { return this.validateOnServer; }\n\n setEditable(editable: boolean = true) { (editable) ? this.enable() : this.disable(); }\n\n hasError() { return this.errorCode !== NO_ERROR; }\n resetError() { (this.errorCode !== NO_ERROR) && this.setError(NO_ERROR, null); }\n setError(code, message, type = DEFAULT_ERROR_TYPE) {\n this.setAttr(fldAttr.errorCode, code ?? NO_ERROR);\n this.setAttr(fldAttr.errorType, (this.errorCode === NO_ERROR) ? '' : type);\n this.setAttr(fldAttr.errorMessage, message ?? '');\n }\n\n getError() { return { type: this.errorType, code: this.errorCode, message: this.errorMessage }; }\n get error() { return this.getError(); }\n set error(errorObj) { this.setError(errorObj.code, errorObj.message, errorObj.type ?? DEFAULT_ERROR_TYPE) }\n\n getErrorCode() { return this.getError().code; }\n setErrorCode(code) { this.setError(code, this.errorMessage); }\n getErrorMessage() { return this.getError().message; }\n setErrorMessage(msg) { this.setError(this.errorCode, msg); }\n\n get empty(): boolean { return this.isEmpty(); }\n\n isEmpty(): boolean {\n const fieldCurrentValue = this.getValue();\n if (fieldCurrentValue === undefined || fieldCurrentValue === null) {\n return true;\n }\n if ((this.fieldType === this._formConfig.fieldTypes.array || this.fieldType === this._formConfig.fieldTypes.phone)\n && Array.isArray(fieldCurrentValue) && fieldCurrentValue.length === 0) {\n return true;\n };\n return fieldCurrentValue === '';\n }\n\n getValue(): any {\n if (this.fieldType === this._formConfig.fieldTypes.boolean\n || this.fieldType === this._formConfig.fieldTypes.check) {\n return yn(this._value);\n }\n return this._value;\n }\n\n getOptionText() {\n return this.fieldOptions?.find(item => item.fieldOptionId === this._value)?.fieldOptionValue ?? null;\n }\n\n updateFromServer(fld) {\n const fieldKeys = Object.keys(fld);\n for (let index = 0; index < fieldKeys.length; index++) {\n const attrName = fieldKeys[index];\n const attrValue = fld[attrName];\n (attrName === this._formConfig.apiFieldAttrs.visible) && this.setVisibility(attrValue);\n (attrName === this._formConfig.apiFieldAttrs.labelVisible) && this.setVisibleLabel(fld.visibleLabel);\n (attrName === this._formConfig.apiFieldAttrs.required) && this.setAttr(fldAttr.required, fld.required ?? false);\n (attrName === this._formConfig.apiFieldAttrs.errorCode) && this.setAttr(fldAttr.errorCode, fld.errorCode);\n (attrName === this._formConfig.apiFieldAttrs.errorMessage) && this.setAttr(fldAttr.errorMessage, fld.errorMessage);\n (attrName === this._formConfig.apiFieldAttrs.tooltip) && this.setAttr(fldAttr.tooltipText, fld.tooltip);\n (attrName === this._formConfig.apiFieldAttrs.info) && this.setAttr(fldAttr.info, fld.info);\n (attrName === this._formConfig.apiFieldAttrs.editable) && this.setEditable(fld.editable);\n (attrName === this._formConfig.apiFieldAttrs.title) && this.setLabel(fld.fieldTitle.toString());\n (attrName === this._formConfig.apiFieldAttrs.value) && (this.setValue(fld.fieldValue) && this.setChanged(false));\n (attrName === this._formConfig.apiFieldAttrs.options) && this.setFieldOptions(fld.fieldOptions);\n (attrName === this._formConfig.apiFieldAttrs.captureType) && this.setAttr(fldAttr.captureType, fld.captureType || 'INPUT');\n (attrName === this._formConfig.apiFieldAttrs.type) && this.setFieldType(fld.fieldTypeCode);\n (attrName === this._formConfig.apiFieldAttrs.maxLength) && this.setAttr(fldAttr.maxLength, fld.maxLength);\n }\n }\n\n setFieldType(inputFieldType) {\n this.setAttr(fldAttr.type, inputFieldType);\n }\n\n setMinValue(inputMinValue) {\n let minValue = inputMinValue;\n if (this.fieldType === this._formConfig.fieldTypes.date) {\n minValue = new Date(minValue);\n }\n this.setAttr(fldAttr.minValue, minValue);\n }\n\n setMaxValue(inputMaxValue) {\n let maxValue = inputMaxValue;\n if (this.fieldType === this._formConfig.fieldTypes.date) {\n maxValue = new Date(maxValue);\n }\n this.setAttr(fldAttr.maxValue, maxValue);\n }\n\n getFieldOptions(): FieldOption[] {\n return this.fieldOptions.map(option => {\n const optionCopy: FieldOption = { ...option };\n return optionCopy;\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 let 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 fieldOptions = (fieldOptions && Array.isArray(fieldOptions)\n && fieldOptions.length > 0) ? fieldOptions : [];\n this.setAttr(fldAttr.options, fieldOptions);\n if (this._value) {\n if (this.fieldType === this._formConfig.fieldTypes.array && Array.isArray(this._value)) {\n const fieldValue = this._value?.filter(item =>\n this.fieldOptions.find(opt => opt.fieldOptionId === item)\n );\n this.setAttr(fldAttr.value, fieldValue);\n } else {\n const valInOptions = this.fieldOptions\n .find(item => item.fieldOptionId === this._value);\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 }\n }\n\n setValue(newValue, widgetUpdate = true) {\n if (typeof newValue === UNDEFINED || newValue === null) {\n return true;\n }\n let newFinalValue;\n if (this.fieldType === this._formConfig.fieldTypes.boolean\n || this.fieldType === this._formConfig.fieldTypes.check) {\n newFinalValue = yn(newValue);\n } else if (this.fieldType === this._formConfig.fieldTypes.array\n || this.fieldType === this._formConfig.fieldTypes.map) {\n if (newValue === null || newValue === '') {\n newFinalValue = [];\n } else if (Array.isArray(newValue)) {\n newFinalValue = newValue;\n } else {\n newFinalValue = newValue.toString().split(',');\n }\n } else {\n newFinalValue = newValue;\n }\n if (this._value !== newFinalValue) {\n this.setChanged(true);\n if (widgetUpdate) {\n this.setAttr(fldAttr.value, newFinalValue);\n } else {\n this._value = newFinalValue;\n }\n }\n return true;\n }\n}\n","export interface FilterDef {\n operators: string[];\n options: any[];\n}\n\nexport interface FilterSetup {\n fieldCode: string;\n operator: string;\n values: any[];\n}\nexport class RecordTableColumn {\n _formConfig: any;\n fieldCode: string;\n fieldTitle: string;\n fieldType: string;\n fieldAlignment: string;\n fieldFormat: string;\n visible: boolean;\n sortable: boolean;\n sortDirections: string[];\n customAttributes: any;\n // Filtros\n filterVisible: boolean = false;\n filterDef: FilterDef;\n filterSetup: FilterSetup;\n\n constructor(recTableColReceived, formConfig) {\n this._formConfig = formConfig;\n this.filterDef = null;\n if (recTableColReceived) {\n this.fieldCode = recTableColReceived.fieldCode;\n this.fieldTitle = recTableColReceived.fieldTitle;\n this.fieldType = recTableColReceived.fieldTypeCode || this._formConfig.fieldTypes.text;\n const defaultTypeAlignment = (this._formConfig.tableFieldStyles[this.fieldType] != null) ? this._formConfig.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.sortDirections = (this.sortable) ? ['ascend', 'descend'] : [null];\n this.fieldFormat = recTableColReceived.format || '';\n this.customAttributes = recTableColReceived?.customAttributes ?? {};\n }\n }\n\n hideFilter() {\n this.filterVisible = false;\n }\n\n addFilterDefinition(filterDefinition) {\n this.filterDef = {\n operators: filterDefinition.operators,\n options: filterDefinition.options ?? null,\n };\n }\n\n get filterDefinition() {\n return this.filterDef;\n }\n\n addFilter(columnValues, operator) {\n this.filterSetup = {\n fieldCode: this.fieldCode,\n operator: operator ?? this.filterDef.operators[0],\n values: columnValues,\n }\n }\n\n get filter() {\n return this.filterSetup;\n }\n\n removeFilter() {\n this.filterSetup = null;\n }\n\n get options() {\n if (this.filterDef?.operators?.length === 1 && this.filterDef?.operators[0] === 'IN') {\n return this.filterDef?.options;\n }\n return null;\n }\n\n serSortDirections(ascend: boolean, descend: boolean) {\n this.sortDirections = [];\n if (ascend) {\n this.sortDirections.unshift('ascend');\n }\n if (descend) {\n this.sortDirections.unshift('descend');\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","import { RecordTableColumn } from './column';\nimport { operators } 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 this.recordData[fieldCode] = fieldValue ?? '';\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 this.recordData[fieldCode] = fieldValue ?? '';\n });\n }\n }\n\n toggleSelect() { this.selected = !this.selected; }\n select() { this.selected = true; }\n unselect() { this.selected = false; }\n\n get recordIdKey() {\n return (typeof this.recordId === 'object')\n ? JSON.stringify(this.recordId) : this.recordId;\n }\n\n getFieldValue(fieldCode): any {\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(columnFilters) {\n if (!columnFilters || columnFilters.length === 0) {\n return true;\n }\n for (const condition of columnFilters) {\n const { fieldCode, operator, values } = condition;\n if (this.recordData.hasOwnProperty(fieldCode)) {\n const fieldValue = this.recordData[fieldCode];\n const stringValue = fieldValue.toString().toUpperCase();\n if (operator === operators.G && fieldValue <= values[0]) {\n return false;\n }\n if (operator === operators.L && fieldValue >= values[0]) {\n return false;\n }\n if (operator === operators.GE && fieldValue < values[0]) {\n return false;\n }\n if (operator === operators.LE && fieldValue > values[0]) {\n return false;\n }\n if (operator === operators.IN && !values.includes(fieldValue)) {\n return false;\n }\n if (operator === operators.EQ) {\n return fieldValue === values[0];\n }\n if (operator === operators.NEQ && fieldValue === values[0]) {\n return false;\n }\n if (operator === operators.HAS && !stringValue.includes(values[0].toString().toUpperCase())) {\n return false;\n }\n if (operator === operators.NOTHAS && stringValue.includes(values[0].toString().toUpperCase())) {\n return false;\n }\n if (operator === operators.BETWEEN && (fieldValue < values[0] || fieldValue > values[1])) {\n return false;\n }\n }\n }\n return true;\n }\n}\n","import { Subject } from 'rxjs';\nimport { elementTypes } from '../form.constants';\nimport { FormElement } from '../element';\nimport { RecordTableColumn } from './column';\nimport { TableAction } from './action';\nimport { TableRecordData } from './row-data';\n\nconst TABLE_SORT_ASCENDING = 'asc';\nconst TABLE_SORT_DESCENDING = 'desc';\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 private readonly _attributeChange = new Subject<any>();\n private _tableColumnObj = {};\n private _appendPages: boolean;\n private _actions: TableAction[];\n private _actionsObj = {};\n\n // Mecanismos de filtrado nueva versión\n private globalFilterStrings: string[] = [];\n private selectedRecords: any;\n private globalSearch: boolean;\n private restrictedId: any;\n private layout: string;\n\n tableRecords: TableRecordData[];\n tableRecordObj = {};\n visibleRecords: TableRecordData[];\n columns: RecordTableColumn[];\n selectable: boolean;\n selectionBackend: boolean;\n selectionField: string;\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 sortable: boolean;\n\n constructor(tableReceived, formConfig) {\n super(tableReceived, formConfig);\n this.elementType = elementTypes.table;\n this.waiting = false;\n this.currentPage = 1;\n this.totalPages = 1;\n this.requestedPage = 1;\n this.columns = [];\n this._tableColumnObj = {};\n this._actions = [];\n this._actionsObj = {};\n this.tableRecords = [];\n this.globalSearch = false;\n this.restrictedId = null;\n\n this.tableTitle = tableReceived.tableTitle;\n this._appendPages = tableReceived?.append ?? false;\n this.selectable = tableReceived?.selectable ?? false;\n this.selectionBackend = tableReceived?.selectionBackend ?? false;\n this.sortable = tableReceived?.sortable ?? false;\n\n this.setAttr('allSelected', false);\n this.setAttr('tableCode', tableReceived.tableCode);\n this.setAttr('clientPaging', tableReceived?.clientPaging ?? true);\n this.setAttr('globalSearch', tableReceived?.simpleFilter ?? false);\n this.setAttr('sorting', { columnName: '', direction: '' });\n this.setAttr('recordsPerPage', formConfig.defaultRecordsPerPage);\n this.setAttr('layout', '');\n\n if (tableReceived.fields) {\n const columns = [];\n for (const columnReceived of tableReceived.fields) {\n const columnDefinition = new RecordTableColumn(columnReceived, this._formConfig);\n columns.push(columnDefinition);\n this._tableColumnObj[columnDefinition.fieldCode] = columnDefinition;\n }\n this.setAttr('columns', columns);\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 this.selectionField = (this.selectable) ? tableReceived?.selectionField : null;\n // Filtros predefinidos en el formulario\n if (tableReceived.filters) {\n for (let index = 0; index < tableReceived.filters.length; index++) {\n this.addFilterDefinition(tableReceived.filters[index].fieldCode, tableReceived.filters[index]);\n }\n }\n }\n\n get columnNames() { return Object.keys(this._tableColumnObj); }\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 get attributeChange() { return this._attributeChange; }\n\n setLayout(layout) { this.setAttr('layout', layout); }\n hasActions() { return (this._actions.length > 0); }\n getSelectedRecords() { return this.tableRecords.filter(rec => rec.selected).map(rec => rec.recordId); }\n activateGlobalSearch() { this.globalSearch = true; }\n inactivateGlobalSearch() { this.globalSearch = false; }\n columnDefinition(fieldCode) { return this._tableColumnObj[fieldCode]; }\n putOnWait() { this.waiting = true; }\n freeWaiting() { this.waiting = false; }\n\n setAttr(name: string, value: any) {\n this[name] = value;\n if (this._formConfig.monitoredTableAttributes.includes(name)) {\n this._attributeChange.next({ name, value });\n }\n }\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 return null;\n }\n\n clean() {\n this.tableRecords = [];\n this.unSelectAll();\n this.tableRecordObj = {};\n this.updateVisibleRecords();\n }\n\n selectAll() {\n this.setAttr('allSelected', true);\n this.tableRecords.forEach(record => record.select());\n this.setAttr('selectedRecords', this.getSelectedRecords());\n return true;\n\n }\n\n unSelectAll() {\n this.setAttr('allSelected', false);\n this.tableRecords.forEach(record => record.unselect());\n this.setAttr('selectedRecords', this.getSelectedRecords());\n return true;\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, this.selectionField);\n const recordIdKey = recordReceived.recordIdKey;\n newRecords.push(recordReceived);\n newRecordsObj[recordIdKey] = recordReceived;\n }\n this.tableRecords = newRecords;\n this.setAttr('selectedRecords', this.getSelectedRecords());\n this.tableRecordObj = newRecordsObj;\n this.updateVisibleRecords();\n }\n\n appendRecords(records) { this.setTableRecords(records, true); }\n replaceRecords(records) { this.setTableRecords(records, false); }\n\n changePage(requestedPage) {\n if (this.clientPaging) {\n this.setAttr('currentPage', requestedPage);\n this.updateVisibleRecords();\n } else {\n this.notifyGetDataAction(requestedPage);\n }\n }\n\n updateVisibleRecords() {\n // updateView const changeViewAttributes = ['currentPage', 'recordsPerPage', 'sorting'];\n let visibleRecords: any[];\n if (this.clientPaging) {\n let filteredRecords = this.getFilteredRecords();\n this.setAttr('totalRecordsNumber', filteredRecords.length);\n visibleRecords = filteredRecords.slice((this.currentPage - 1) * this.recordsPerPage,\n (this.currentPage - 1) * this.recordsPerPage + this.recordsPerPage);\n } else {\n visibleRecords = this.tableRecords;\n }\n this.setAttr('visibleRecords', visibleRecords);\n }\n\n updateFromServer(tableReceived) {\n this.requestedPage = 1;\n this.clean();\n this.visible = tableReceived?.visible || true;\n this.totalPages = tableReceived.totalPages || 1;\n this.recordsNumber = tableReceived.recordsNumber;\n this.setAttr('currentPage', +tableReceived?.currentPage ?? 1);\n this.setAttr('recordsPerPage', +tableReceived.recordsPerPage);\n this.setAttr('totalRecordsNumber', (this.clientPaging) ? tableReceived.tableRecords.length : +tableReceived.totalRecordsNumber);\n this.setAttr('sorting', {\n columnName: tableReceived.sortingColumn || '',\n direction: tableReceived.sortingDirection || ''\n });\n this.waiting = false;\n if (this._appendPages) {\n this.replaceRecords(tableReceived.tableRecords);\n } else {\n this.appendRecords(tableReceived.tableRecords);\n }\n this.updateVisibleRecords();\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 = this._formConfig.tableActions.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 setFilterById(id) {\n if (this.restrictedId === id) { return; }\n this.restrictedId = id;\n this.updateVisibleRecords();\n }\n\n cleanIdFilter() {\n if (this.restrictedId === null) { return; }\n this.restrictedId = null;\n this.updateVisibleRecords();\n }\n\n setGlobalFilterString(text) {\n this.globalFilterStrings = text.split(' ').filter(t => t && t.trim().length > 0).map(t => t.trim()) ?? [];\n if (this.clientPaging) {\n this.changePage(1);\n }\n }\n\n addFilterDefinition(columnName, filterDefinition) {\n const tableColumn = this.columnDefinition(columnName);\n tableColumn && tableColumn.addFilterDefinition(filterDefinition);\n }\n\n getFilteredRecords() {\n let filteredRecords = this.tableRecords;\n if (this.restrictedId) {\n filteredRecords = filteredRecords.filter(record => record.recordId === this.restrictedId);\n }\n if (this.globalFilterStrings.length > 0) {\n filteredRecords = filteredRecords.filter(record => record.hasPattern(this.globalFilterStrings));\n }\n const columnFilters = this.columns.filter(column => column.filter).map(column => column.filter);\n if (columnFilters.length > 0) {\n filteredRecords = filteredRecords.filter(record => record.hasCondition(columnFilters));\n }\n return filteredRecords;\n }\n\n getColumnFilter(columnName: string) {\n const tableColumn = this.columnDefinition(columnName);\n return tableColumn?.filter ?? null;\n }\n\n addColumnFilter(columnName: string, columnValues: any | any[], operator: string = null) {\n const tableColumn = this.columnDefinition(columnName);\n const columnFilterDefinition = tableColumn?.filterDefinition ?? null;\n if (!columnFilterDefinition) {\n return null;\n }\n tableColumn && tableColumn.addFilter(columnValues, operator);\n this.updateVisibleRecords();\n }\n\n removeColumnFilter(columnName: string) {\n const tableColumn = this.columnDefinition(columnName);\n tableColumn && tableColumn.removeFilter();\n this.updateVisibleRecords();\n }\n\n get currentFilter() {\n const compactFilter: any = {\n simpleFilterWords: this.globalFilterStrings,\n advancedFilter: [],\n };\n const columnFilters = this.columns.filter(column => column.filter).map(column => column.filter);\n for (let index = 0; index < columnFilters.length; index++) {\n const columnFilter = columnFilters[index];\n compactFilter.advancedFilter.push({\n fieldCode: columnFilter.fieldCode,\n operator: columnFilter.operator,\n fieldValue1: columnFilter.values[0],\n fieldValue2: columnFilter.values[1],\n });\n }\n return compactFilter;\n }\n\n // Ordenamiento de registros local\n\n sort(columnName, direction) {\n this.setRequiredOrder(columnName, direction);\n if (this.clientPaging) {\n this.localSortData()\n } else {\n this.notifyGetDataAction();\n }\n }\n\n setRequiredOrder(columnField, direction = null) {\n this.setAttr('sorting', {\n columnName: columnField,\n direction: (direction === 'ascend') ? TABLE_SORT_ASCENDING : TABLE_SORT_DESCENDING,\n });\n }\n\n localSortData() {\n if (!this.sorting.columnName || !this.sorting.direction) { return; }\n this.tableRecords.sort((a, b) => this.recordCompare(a, b, this.sorting.columnName, this.sorting.direction));\n this.unSelectAll();\n this.updateVisibleRecords();\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 < recordBColumn) {\n result = -1;\n } else if (recordAColumn > recordBColumn) {\n result = 1;\n }\n return direction === TABLE_SORT_ASCENDING ? result : -result;\n }\n}\n","import { FormAction } from './action';\nimport { elementTypes } 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 elementTypes.field:\n elementObject = formObject.getField(code);\n arrayToAdd = this.subSectionFields;\n break;\n case elementTypes.table:\n elementObject = formObject.getTable(code);\n arrayToAdd = this.subSectionTables;\n break;\n case elementTypes.action:\n elementObject = formObject.getAction(code);\n arrayToAdd = this.subSectionActions;\n break;\n }\n if (elementObject) {\n elementObject.elementType = 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 getActions(): FormAction[] {\n return this.subSectionActions;\n }\n\n getActionNames(): string[] {\n return this.subSectionActions.map(action => action.actionCode);\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 { FormAction } from './action';\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 customAttributes: any;\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 this.customAttributes = sectionReceived?.customAttributes ?? null;\n }\n\n getCustomAttribute(name) { return this.customAttributes?.[name] ?? null; }\n setCustomAttribute(name, value) { return name && (this.customAttributes[name] = value); }\n matchAttribute(name, value) { return this.customAttributes?.[name] === value; }\n\n get code() { return this.sectionCode; }\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 getActions(): FormAction[] {\n let actionArray = [];\n if (this.subSections && this.subSections.length > 0) {\n for (const subSection of this.subSections) {\n actionArray = actionArray.concat(subSection.getActions());\n }\n }\n return actionArray;\n }\n\n getActionNames(): string[] {\n let actionArray = [];\n if (this.subSections && this.subSections.length > 0) {\n for (const subSection of this.subSections) {\n actionArray = actionArray.concat(subSection.getActionNames());\n }\n }\n return actionArray;\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 { FormAction } from './action';\nimport { FieldDescriptor, FieldOption } from './field';\nimport { RecordTable } from './table/table';\nimport { RecordFormSection } from './section';\nimport { RecordFormSubSection } from './subsection';\nimport { NO_ERROR, HEADER } from './form.constants';\nimport { TableRecordData } from './table/row-data';\n\nconst ACTIVE = 'active';\nconst SHOW = 'show';\nconst HIDE = 'hide';\nconst ENABLE = 'enable';\nconst DISABLE = 'disable';\nconst CLEAN = 'clean';\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 interface FieldPayload {\n fieldCode: string;\n fieldValue: any;\n editable: boolean;\n visible: boolean;\n required: boolean;\n fieldOptions: string,\n}\n\nexport interface TablePayload {\n tableCode: string;\n visible: boolean;\n currentPage: number;\n requestedPage: number;\n recordsPerPage: number;\n currentFilter: any,\n sortingColumn: string;\n sortingDirection: string;\n}\n\ninterface FormPayload {\n fields: FieldPayload[],\n tables: TablePayload[],\n}\n\nexport class FormStructureAndData {\n state: string;\n _name: string;\n _formConfig: any;\n private _title: string;\n private _stateFlow: StateFlow;\n private _fieldArray: FieldDescriptor[];\n private _fields = {};\n private _actionArray: FormAction[];\n private _actions = {};\n private _tableArray: RecordTable[];\n private _tables = {};\n private _sectionArray: RecordFormSection[];\n private _sections = {};\n private _immutableData = {};\n private _extraInfo = {};\n private _exclusiveSectionsByAttr = {};\n\n constructor(definitionReceived, formConfig) {\n this._formConfig = formConfig;\n this.state = '';\n this._actionArray = [];\n this._fieldArray = [];\n this._tableArray = [];\n this._sectionArray = [];\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, this._formConfig);\n const globalActionCode = globalAction.actionCode;\n if (globalActionCode) {\n this._actionArray.push(globalAction);\n this._actions[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, this._formConfig);\n const fieldCode = fieldToAdd.fieldCode;\n if (fieldCode) {\n this._fieldArray.push(fieldToAdd);\n this._fields[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 = this._formConfig.defaultStateFlow.states;\n }\n return { ...objDef, visibleStates, enabledStates };\n });\n for (const tableReceived of tables) {\n const tableToAdd = new RecordTable(tableReceived, this._formConfig);\n const tableCode = tableToAdd.tableCode;\n if (tableCode) {\n this._tableArray.push(tableToAdd);\n this._tables[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._sectionArray.push(sectionToAdd);\n this._sections[sectionCode] = sectionToAdd;\n }\n }\n }\n }\n\n getTitle(): string { return this._title; }\n setTitle(title: string): void { this._title = title; }\n get name(): string { return this._name; }\n set name(name) { this._name = name; }\n\n // Estados\n get defaultState(): string { return this._stateFlow.defaultState; }\n supportState(state: string): boolean { return this._stateFlow.states?.includes(state); }\n supportMode(state: string): boolean { return this.supportState(state); }\n get states(): any[] { return this._stateFlow.states; }\n\n getCurrentState(): string { return this.state; }\n\n changeState(newState: string): boolean {\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?: string): void {\n if (!states || !transitions) {\n this._stateFlow = JSON.parse(JSON.stringify(this._formConfig.defaultStateFlow));\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 // immutable Data\n getImmutableElement(name: string): any { return this._immutableData?.[name]?.value ?? null; }\n set immutableData(immutableData) { Object.assign(this._immutableData, immutableData); }\n get immutableData(): any { return JSON.parse(JSON.stringify(this._immutableData)); }\n\n // extra Info\n getExtraInfo(name: string): any { return this._extraInfo?.[name]?.value ?? null; }\n set extraInfo(extraInfo) { Object.assign(this._extraInfo, extraInfo); }\n get extraInfo(): any { return JSON.parse(JSON.stringify(this._extraInfo)); }\n\n // Fields\n get fields(): any { return this._fields; }\n get fieldNames(): string[] { return this.getFieldNames(); }\n getFields(): FieldDescriptor[] { return this._fieldArray; }\n getFieldNames(): string[] { return this._fieldArray.map(field => field.fieldCode); }\n getField(code: string): FieldDescriptor { return (code && this._fields?.[code]) ? this._fields[code] : null; }\n enableField(code: string): void { this.getField(code)?.enable(); }\n disableField(code: string): void { this.getField(code)?.disable(); }\n getFieldValue(code: string): any { return this.getField(code)?.getValue(); }\n getFieldOptionText(code: string): any { return this.getField(code)?.getOptionText(); }\n getFieldOptions(code: string): FieldOption[] { return this.getField(code)?.getFieldOptions() ?? null; }\n setFieldValue(code: string, value: any): any { this.getField(code)?.setValue(value); }\n setFieldError(code: string, errorCode: string, message: string, type: string = 'error'): any { this.getField(code)?.setError(errorCode, message, type); }\n setFieldIntrinsicErrorMessage(code: string, message: string): any { this.getField(code)?.setIntrinsicErrorMessage(message); }\n setFieldRequired(code: string, required: boolean): any { this.getField(code)?.setRequired(required); }\n setFieldErrorMessage(code: string, message: string): any { this.getField(code)?.setErrorMessage(message); }\n\n setFieldOptions(code: string, optionsArray: any[], idAttribute: string, nameAttribute: string): any {\n const field = this.getField(code);\n if (field && optionsArray?.length > 0) {\n const fieldOptions = optionsArray.map(item => ({\n fieldOptionId: item[idAttribute],\n fieldOptionValue: item[nameAttribute]\n }));\n field.setFieldOptions(fieldOptions);\n }\n }\n\n getFieldSet(filter, inputCodes: string[] | string, secCode?: string, subCode?: string): string[] {\n let codes = null;\n if (typeof inputCodes === 'string' && inputCodes) {\n codes = [inputCodes];\n } else if (Array.isArray(inputCodes) && inputCodes.length > 0) {\n codes = inputCodes;\n } else if (secCode && !subCode) {\n codes = this.getSection(secCode)?.getFieldNames() ?? [];\n } else if (secCode && subCode) {\n codes = this.getSubSection(secCode, subCode)?.getFieldNames() ?? [];\n } else {\n codes = this.getFieldNames();\n }\n return (filter) ? codes.filter(fld => filter(this.getField(fld))) : codes;\n }\n\n applyOnFields(processFunc, inputCodes?: string[] | string, secCode?: string, subCode?: string): number {\n if (!processFunc) { return 0; }\n const codes = this.getFieldSet(null, inputCodes, secCode, subCode);\n let processedFields = 0;\n for (const code of codes) {\n const field = this.getField(code);\n if (field) {\n try {\n processFunc(field);\n processedFields += 1;\n } catch (e) {\n console.log(`Error procesando funcion en campo ${field}: ${e}`);\n }\n }\n }\n return processedFields;\n }\n\n enableFields(codes?: string[] | string, secCode?: string, subCode?: string): number {\n return this.applyOnFields(fld => fld.enable(), codes, secCode, subCode);\n }\n\n showFields(codes?: string[] | string, secCode?: string, subCode?: string): number {\n return this.applyOnFields(fld => fld.show(), codes, secCode, subCode);\n }\n\n hideFields(codes?: string[] | string, secCode?: string, subCode?: string): number {\n return this.applyOnFields(fld => fld.hide(), codes, secCode, subCode);\n }\n\n showLabelFields(codes?: string[] | string, secCode?: string, subCode?: string): number {\n return this.applyOnFields(fld => fld.showLablel(), codes, secCode, subCode);\n }\n\n hideLabelFields(codes?: string[] | string, secCode?: string, subCode?: string): number {\n return this.applyOnFields(fld => fld.hideLabel(), codes, secCode, subCode);\n }\n\n disableFields(codes?: string[] | string, secCode?: string, subCode?: string): number {\n return this.applyOnFields(fld => fld.disable(), codes, secCode, subCode);\n }\n\n cleanFields(codes?: string[] | string, secCode?: string, subCode?: string): number {\n return this.applyOnFields(fld => fld.clean(), codes, secCode, subCode);\n }\n\n tagFieldsWithError(message: string, codes?: string[] | string, secCode?: string, subCode?: string): number {\n return this.applyOnFields(fld => fld.setErrorMessage(message), codes, secCode, subCode);\n }\n\n cleanErrorFields(codes?: string[] | string, secCode?: string, subCode?: string): number {\n return this.tagFieldsWithError('', codes, secCode, subCode);\n }\n\n tagEmptyRequiredFields(message: string, codes = null, secCode?: string, subCode?: string): boolean {\n return this.tagFieldsWithError(message, this.getRequiredEmptyFields(codes, secCode, subCode)) > 0;\n }\n\n getRequiredFields(codes?: string[] | string, secCode?: string, subCode?: string): string[] {\n return this.getFieldSet(fld => fld.required, codes, secCode, subCode);\n }\n\n getRequiredEmptyFields(codes?: string[] | string, secCode?: string, subCode?: string): string[] {\n return this.getFieldSet(fld => fld.required && fld.empty, codes, secCode, subCode);\n }\n\n getChangedFields(codes?: string[] | string, secCode?: string, subCode?: string): string[] {\n return this.getFieldSet(fld => !fld.outputOnly && fld.hasChanged(), codes, secCode, subCode);\n }\n\n getFieldsWithValidationIssues(codes?: string[] | string, secCode?: string, subCode?: string): string[] {\n return this.getFieldSet(fld => fld.errorCode !== NO_ERROR, codes, secCode, subCode);\n }\n\n getFieldsValues(inputCodes?: string[] | string, secCode?: string, subCode?: string): any {\n const codes = this.getFieldSet(null, inputCodes, secCode, subCode);\n const resultObject = {};\n for (let index = 0; index < codes.length; index++) {\n const code = codes[index];\n if (code) {\n resultObject[code] = this._fields?.[code]?.getValue() ?? null;\n }\n }\n return resultObject;\n }\n\n // Acciones\n get actions() { return this._actions; }\n\n getActionsByAttribute(name: string, value): FormAction[] { return this._actionArray.filter(actionItem => actionItem.matchAttribute(name, value)); }\n getActions(): FormAction[] { return this._actionArray; }\n getAction(code: string): FormAction { return (code && this._actions?.[code]) ? this._actions[code] : null; }\n showActions(codes: string[] | string): void { return this.execOnActions(codes, SHOW); }\n hideActions(codes: string[] | string): void { return this.execOnActions(codes, HIDE); }\n enableActions(codes: string[] | string): void { return this.execOnActions(codes, ENABLE); }\n disableActions(codes: string[] | string): void { return this.execOnActions(codes, DISABLE); }\n\n execOnActions(codes: string[] | string, functionName: string): void {\n const actionCodes = (Array.isArray(codes)) ? codes : (codes ? [codes] : []);\n if (!functionName || actionCodes.length === 0) { return; }\n actionCodes.forEach(code => {\n const action = this.getAction(code);\n action?.[functionName]?.();\n });\n }\n\n // Tablas\n get tables(): any { return this.tables; }\n getTables(): RecordTable[] { return this._tableArray; }\n getTable(code: string): RecordTable { return (code && this._tables?.[code]) ? this._tables[code] : null; }\n getTableRecord(code: string, id: string): TableRecordData { return this.getTable(code)?.getTableRecord(id) }\n\n enableTables(codes: string[] | string): void { return this.execOnTables(codes, ENABLE); }\n disableTables(codes: string[] | string): void { return this.execOnTables(codes, DISABLE); }\n showTables(codes: string[] | string): void { return this.execOnTables(codes, SHOW); }\n hideTables(codes: string[] | string): void { return this.execOnTables(codes, HIDE); }\n cleanTables(codes: string[] | string): void { return this.execOnTables(codes, CLEAN); }\n\n execOnTables(codes: string[] | string, functionName: string) {\n const tableCodes = (Array.isArray(codes)) ? codes : (codes ? [codes] : []);\n if (!functionName || tableCodes.length === 0) { return; }\n tableCodes.forEach(code => {\n const table = this.getTable(code);\n table?.[functionName]?.();\n });\n }\n\n // Secciones\n get sections(): any { return this._sections; }\n getSections(): RecordFormSection[] { return this._sectionArray; }\n getSectionsByAttribute(name, value): RecordFormSection[] { return this._sectionArray.filter(item => item.matchAttribute(name, value)); }\n get sectionTitles(): string[] { return this._sectionArray.map(formSection => formSection.sectionTitle); }\n get visibleSections(): RecordFormSection[] { return this._sectionArray.filter(sec => sec.visible); }\n getSection(code: string): RecordFormSection { return (code && this._sections?.[code]) ? this._sections[code] : null; }\n showSections(codes: string[] | string): void { this.execOnSections(codes, SHOW); }\n hideSections(codes: string[] | string): void { this.execOnSections(codes, HIDE); }\n activeSection(): string { return this._exclusiveSectionsByAttr[ACTIVE]; }\n getSubSection(code: string, subCode): RecordFormSubSection { return this.getSection(code)?.getSubsection(subCode) ?? null; }\n showSubSections(code: string, subCodes: string[] | string): void { return this.execOnSubSections(code, subCodes, SHOW); }\n hideSubSections(code: string, subCodes: string[] | string): void { return this.execOnSubSections(code, subCodes, HIDE); }\n getSectionActions(code): FormAction[] { return this.getSection(code)?.getActions() ?? null; }\n getSectionActionNames(code): string[] { return this.getSection(code)?.getActionNames() ?? null; }\n\n activateSection(code: string): void {\n if (code === this._exclusiveSectionsByAttr[ACTIVE]) { return; }\n this.getSection(this.activeSection())?.inactivate();\n this.getSection(code)?.activate();\n this._exclusiveSectionsByAttr[ACTIVE] = code;\n }\n\n execOnSections(codes: string[] | string, functionName: string): void {\n const sectionCodes = (Array.isArray(codes)) ? codes : (codes ? [codes] : []);\n if (!functionName || sectionCodes.length === 0) { return; }\n sectionCodes.forEach(code => {\n const section = this.getSection(code);\n section?.[functionName]?.();\n });\n }\n\n execOnSubSections(code: string, subNames: string[] | string, functionName: string): void {\n const subCodes = (Array.isArray(subNames)) ? subNames : (subNames ? [subNames] : []);\n const section = this.getSection(code);\n if (!functionName || !section || subCodes.length === 0) { return; }\n for (const subCode of subCodes) {\n const subSection = this.getSubSection(code, subCode);\n subSection?.[functionName]?.();\n }\n }\n\n /**\n * Métodos propios de gestión del formulario\n */\n\n cleanData(): void {\n for (const field of this._fieldArray) {\n field.setValue(field.defaultValue);\n }\n for (const table of this._tableArray) {\n table.clean();\n }\n }\n\n getPayload(): any {\n const formData: FormPayload = {\n fields: [],\n tables: [],\n };\n formData.fields = this.getFields().filter(fld => !fld.outputOnly)\n .map(fld => {\n const fieldPayload: FieldPayload = {\n fieldCode: fld.fieldCode,\n fieldValue: fld.getValue(),\n editable: !fld.disabled,\n visible: fld.visible,\n required: fld.required,\n fieldOptions: '',\n }\n return fieldPayload;\n });\n\n formData.tables = this.getTables().map(tbl => {\n const tablePayload: TablePayload = {\n tableCode: tbl.tableCode,\n visible: tbl.visible,\n currentPage: tbl.currentPage,\n requestedPage: tbl.requestedPage,\n recordsPerPage: tbl.recordsPerPage,\n currentFilter: tbl.currentFilter,\n sortingColumn: tbl.sorting.columnName,\n sortingDirection: tbl.sorting.direction,\n };\n return tablePayload\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 // Métodos virtuales para las aplicaciones\n getFormDefinition(formCode) { }\n execServerAction(actionDetail) { }\n goToForm(formCode, token, subject) { }\n loadStack() { }\n saveStack() { }\n\n cleanStack() { this.pageStack = []; }\n resetPageStack() { this.cleanStack() }\n\n findFormInStack(token) {\n const index = this.pageStack.findIndex(item => item?.token === token);\n const data = (index >= 0) ? this.pageStack[index] : null;\n return { index, data };\n }\n\n replaceItem(token, formInfo) {\n if (!token || !formInfo) { return; }\n const { index, data: storedForm } = this.findFormInStack(token);\n let updatedForm: any = null;\n if (index >= 0) {\n updatedForm = { ...storedForm };\n updatedForm.subject = formInfo?.subject ?? storedForm.subject;\n updatedForm.state = formInfo?.state ?? storedForm.state;\n updatedForm.fields = storedForm?.fields ?? {};\n updatedForm.extra = storedForm?.extra ?? {};\n if (formInfo.fields) {\n Object.assign(updatedForm.fields, formInfo.fields);\n }\n if (formInfo.extra) {\n Object.assign(updatedForm.extra, formInfo.extra);\n }\n this.pageStack[index] = updatedForm;\n this.saveStack();\n }\n }\n\n stack(origin, target) {\n const token = nanoid(6);\n this.replaceItem(target.originToken, origin);\n this.pageStack.push({ token, ...target });\n this.saveStack();\n return token;\n }\n\n unstack(token = null) {\n let index = (token) ? this.findFormInStack(token).index : this.pageStack.length - 2;\n let formInfo = null;\n if (index >= 0) {\n formInfo = this.pageStack[index];\n this.pageStack.splice(index + 1);\n this.saveStack();\n }\n return formInfo;\n }\n\n getFormInfo(token: string) {\n const { data } = this.findFormInStack(token);\n return {\n token: data?.token,\n subject: data?.subject,\n state: data?.state,\n originToken: data?.originToken,\n fields: data?.fields ?? {},\n extra: data?.extra ?? {}\n };\n }\n\n openForm(origin: any, target: any) {\n (!origin) && this.cleanStack();\n target.originToken = origin?.token ?? null;\n const token = this.stack(origin, target);\n this.goToForm(target.name, token, target.subject);\n }\n\n backTo(targetToken = null) {\n const formInfo = this.unstack(targetToken);\n formInfo && formInfo.name && this.goToForm(formInfo.name, formInfo.token, formInfo.subject);\n }\n}\n","import { ReplaySubject } 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: ReplaySubject<any> = new ReplaySubject(1);\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 { formActions, NO_ERROR, HEADER } from '../../classes/forms/form.constants';\nimport { FormAction } from '../../classes/forms/action';\nimport { FieldDescriptor, FieldOption } from '../../classes/forms/field';\nimport { RecordTable } from '../../classes/forms/table/table';\nimport { RecordFormSection } from '../../classes/forms/section';\nimport { RecordFormSubSection } from '../../classes/forms/subsection';\n\nconst PAYLOAD_VERSION = 'TUAINEXCHANGE_1.0';\nconst INLINE_ACTION = 'INLINE';\nconst GLOBAL_ACTION = 'GLOBAL';\nconst GET_DATA_ACTION = 'GETDATA';\n\nconst SUBJECT = 'subject';\nconst TOKEN = 'token';\n\n@Component({\n template: `<ng-content></ng-content>`\n})\nexport class BasicFormComponent {\n private _formStructure: FormStructureAndData = null;\n private _controlToken: string = null;\n private _originToken: string;\n private _formRoute: string;\n private _definitionObtained: boolean = false;\n // Eventos de acciones y campos\n private _formSectionsActivate: any = {};\n private _formSectionsInactivate: any = {};\n private _formActionsStart: any = {};\n private _formActionsFinish: any = {};\n private _fieldInputValidation: any = {};\n private _fieldValidationsStart: any = {};\n private _fieldValidationsFinish: any = {};\n // Callback de acciones de tablas\n private _tableSelectionsStart: any = {};\n private _tableSelectionsFinish: any = {};\n private _tableActionsStart: any = {};\n private _tableActionsFinish: any = {};\n private _tableGetDataStart: any = {};\n private _tableGetDataFinish: any = {};\n\n protected inputDataFields: any = {};\n protected extraData: any = {};\n protected _eventEmiter: LibEventManagerService;\n\n\n formConfig: any;\n name: string;\n formSubject: string;\n _errorType: string = '';\n errorCode: string = '';\n errorMessage: string = '';\n errorDetail: string = '';\n visible: boolean = false;\n\n fields: any;\n actions: any;\n sections: any;\n busy: boolean = false;\n\n getTitle() { return this._formStructure?.getTitle(); }\n setTitle(title: string) { return this._formStructure?.setTitle(title); }\n cleanData() { return this._formStructure?.cleanData(); }\n getCurrentState() { return this._formStructure?.getCurrentState(); }\n supportState(state: string) { return this._formStructure?.supportState(state); }\n changeState(state) { return this._formStructure?.changeState(state); }\n getStates() { return this._formStructure?.states; }\n getImmutableElement(name: string) { return this._formStructure?.getImmutableElement(name); }\n getExtraInfo(name: string) { return this._formStructure?.getExtraInfo(name); }\n getFields() { return this._formStructure?.getFields(); }\n getFieldNames() { return this._formStructure?.getFieldNames(); }\n getField(code: string) { return this._formStructure?.getField(code); }\n enableField(code: string) { return this._formStructure?.enableField(code); }\n disableField(code: string) { return this._formStructure?.disableField(code); }\n getFieldValue(code: string): any { return this._formStructure?.getFieldValue(code); }\n getFieldOptionText(code: string): any { return this._formStructure?.getFieldOptionText(code); }\n getFieldsValues(codes: string[]) { return this._formStructure?.getFieldsValues(codes); }\n getFieldOptions(code: string): FieldOption[] { return this._formStructure?.getFieldOptions(code); }\n setFieldValue(code: string, value: any) { return this._formStructure?.setFieldValue(code, value); }\n setFieldRequired(code: string, required: boolean) { return this._formStructure?.setFieldRequired(code, required); }\n setFieldErrorMessage(code: string, errorMessage: string) { return this._formStructure?.setFieldErrorMessage(code, errorMessage); }\n setFieldError(code: string, errorCode: string, message: string, type?: string) { return this._formStructure?.setFieldError(code, errorCode, message, type); }\n setFieldIntrinsicErrorMessage(code: string, message: string) {\n return this._formStructure?.setFieldIntrinsicErrorMessage(code, message);\n }\n setFieldOptions(code, optionsArray, idAttribute, nameAttribute) {\n return this._formStructure?.setFieldOptions(code, optionsArray, idAttribute, nameAttribute);\n }\n getFieldSet(filterFunc?, codes?: string[] | string, secCode?: string, subCode?: string) {\n return this._formStructure?.getFieldSet(filterFunc, codes, secCode, subCode);\n }\n applyOnFields(processFunc, codes?: string[] | string, secCode?: string, subCode?: string) {\n return this._formStructure?.applyOnFields(processFunc, codes, secCode, subCode);\n }\n applyProcessToAllFields(processFunc) {\n return this._formStructure?.applyOnFields(processFunc);\n }\n cleanFields(codes?: string[] | string, secCode?: string, subCode?: string) {\n return this._formStructure?.cleanFields(codes, secCode, subCode);\n }\n getRequiredFields(codes?: string[] | string, secCode?: string, subCode?: string) {\n return this._formStructure?.getRequiredFields(codes, secCode, subCode);\n }\n getRequiredEmptyFields(codes?: string[] | string, secCode?: string, subCode?: string) {\n return this._formStructure?.getRequiredEmptyFields(codes, secCode, subCode);\n }\n getChangedFields(codes?: string[] | string, secCode?: string, subCode?: string) {\n return this._formStructure?.getChangedFields(codes, secCode, subCode);\n }\n getFieldsWithValidationIssues(codes?: string[] | string, secCode?: string, subCode?: string) {\n return this._formStructure?.getFieldsWithValidationIssues(codes, secCode, subCode);\n }\n tagFieldsWithError(errorMessage, codes?: string[] | string, secCode?: string, subCode?: string) {\n return this._formStructure?.tagFieldsWithError(errorMessage, codes, secCode, subCode);\n }\n cleanErrorFields(codes?: string[] | string, secCode?: string, subCode?: string) {\n return this._formStructure?.cleanErrorFields(codes, secCode, subCode);\n }\n showLabelFields(codes?: string[] | string, secCode?: string, subCode?: string) {\n return this._formStructure?.showLabelFields(codes, secCode, subCode);\n }\n hideLabelFields(codes?: string[] | string, secCode?: string, subCode?: string) {\n return this._formStructure?.hideLabelFields(codes, secCode, subCode);\n }\n enableFields(codes?: string[] | string, secCode?: string, subCode?: string) {\n return this._formStructure?.enableFields(codes, secCode, subCode);\n }\n disableFields(codes?: string[] | string, secCode?: string, subCode?: string) {\n return this._formStructure?.disableFields(codes, secCode, subCode);\n }\n /**\n * @deprecated Use enableFields\n */\n enableEditFields(codes?: string[] | string, secCode?: string, subCode?: string) {\n return this.enableFields(codes, secCode, subCode);\n }\n /**\n * @deprecated Use disableFields\n */\n disableEditFields(codes?: string[] | string, secCode?: string, subCode?: string) {\n return this.disableFields(codes, secCode, subCode);\n }\n showFields(codes?: string[] | string, secCode?: string, subCode?: string) {\n return this._formStructure?.showFields(codes, secCode, subCode);\n }\n hideFields(codes?: string[] | string, secCode?: string, subCode?: string) {\n return this._formStructure?.hideFields(codes, secCode, subCode);\n }\n getActionsByAttribute(name: string, value) {\n return this._formStructure?.getActionsByAttribute(name, value);\n }\n getHeaderActions() {\n return this._formStructure?.getActionsByAttribute('location', HEADER);\n }\n getAction(actionCode: string): FormAction {\n return this._formStructure?.getAction(actionCode);\n }\n showActions(actionArray): void {\n return this._formStructure?.showActions(actionArray);\n }\n hideActions(actionArray): void {\n return this._formStructure?.hideActions(actionArray);\n }\n enableActions(actionArray): void {\n return this._formStructure?.enableActions(actionArray);\n }\n disableActions(actionArray): void {\n return this._formStructure?.disableActions(actionArray);\n }\n showAction(code: string): void {\n return this._formStructure?.showActions(code);\n }\n hideAction(code: string): void {\n return this._formStructure?.hideActions(code);\n }\n enableAction(code: string): void {\n return this._formStructure?.enableActions(code);\n }\n disableAction(code: string): void {\n return this._formStructure?.disableActions(code);\n }\n getSections(): RecordFormSection[] {\n return this._formStructure?.getSections();\n }\n activateSection(code): void {\n return this._formStructure?.activateSection(code);\n }\n getSectionsTitles(): string[] {\n return this._formStructure?.getSections().map(sec => sec.title);\n }\n getSection(code: string): RecordFormSection {\n return this._formStructure?.getSection(code);\n }\n showSection(code: string): void {\n return this._formStructure?.showSections(code);\n }\n hideSection(code: string): void {\n return this._formStructure?.hideSections(code);\n }\n showSections(codes: string[] | string): void {\n return this._formStructure?.showSections(codes);\n }\n hideSections(codes: string[] | string): void {\n return this._formStructure?.hideSections(codes);\n }\n getSubSection(code: string, subCode: string): RecordFormSubSection {\n return this._formStructure?.getSubSection(code, subCode);\n }\n showSubSection(code: string, subCode: string): void {\n return this._formStructure?.showSubSections(code, subCode);\n }\n hideSubSection(code: string, subCode: string): void {\n return this._formStructure?.hideSubSections(code, subCode);\n }\n showSubSections(code: string, subCodes: string[] | string): void {\n return this._formStructure?.showSubSections(code, subCodes);\n }\n hideSubSections(code: string, subCodes: string[] | string): void {\n return this._formStructure?.hideSubSections(code, subCodes);\n }\n getSectionActions(code: string): FormAction[] {\n return this._formStructure?.getSectionActions(code);\n }\n getSectionActionNames(code: string): string[] {\n return this._formStructure?.getSectionActionNames(code);\n }\n\n getTables() {\n return this._formStructure?.getTables();\n }\n showTables(codes: string[] | string) {\n return this._formStructure?.showTables(codes);\n }\n hideTables(codes: string[] | string) {\n return this._formStructure?.hideTables(codes);\n }\n cleanTables(codes: string[] | string) {\n return this._formStructure?.cleanTables(codes);\n }\n getTable(code: string) {\n return this._formStructure?.getTable(code);\n }\n showTable(code: string) {\n return this._formStructure?.showTables(code);\n }\n hideTable(code: string) {\n return this._formStructure?.hideTables(code);\n }\n cleanTable(code: string) {\n return this._formStructure?.getTable(code)?.clean();\n }\n getTableRecord(code: string, recordId: any) {\n return this._formStructure?.getTableRecord(code, recordId);\n }\n\n\n constructor(\n protected formManagerService: LibFormManagerService,\n protected _eventManager: LibEventManagerService,\n protected fileMgmtServices: LibFileManagementService) {\n this._eventEmiter = this._eventManager;\n this.cleanStart();\n this.customPreProcessing();\n }\n\n setConfig(formConfig) {\n this.formConfig = formConfig;\n }\n\n cleanStart() {\n this._errorType = '';\n this.errorCode = '';\n this.errorMessage = '';\n this.errorDetail = '';\n this._formStructure = null;\n this.fields = null;\n this.actions = null;\n this.sections = null;\n this._controlToken = null;\n this.inputDataFields = {};\n this._definitionObtained = false;\n // Se limpian los manejadores de eventos\n this.visible = false;\n this.busy = false;\n this._formSectionsActivate = {};\n this._formSectionsInactivate = {};\n this._formActionsStart = {};\n this._formActionsFinish = {};\n this._fieldInputValidation = {};\n this._fieldValidationsStart = {};\n this._fieldValidationsFinish = {};\n this._tableSelectionsStart = {};\n this._tableSelectionsFinish = {};\n this._tableActionsStart = {};\n this._tableActionsFinish = {};\n this._tableGetDataStart = {};\n this._tableGetDataFinish = {};\n }\n\n get formVisible(): boolean { return this.visible; }\n get formManager() { return this; }\n get formCode(): string { return this.name; }\n set formCode(name: string) { this.name = name; }\n get inServerProcess() { return this.busy; }\n get form(): FormStructureAndData { return this._formStructure; }\n\n get state(): string { return this._formStructure?.state; }\n get currentState(): string { return this._formStructure?.state; }\n set currentState(state: string) { this._formStructure.changeState(state); }\n get immutableData(): any { return this._formStructure?.immutableData }\n get extraInfo(): any { return this._formStructure?.extraInfo }\n get visibleSections(): RecordFormSection[] { return this._formStructure?.visibleSections; }\n\n get formRoute(): string { return this._formRoute; }\n set formRoute(route: string) { this._formRoute = route; }\n\n get subject(): string { return this.formSubject; }\n\n // Métodos virtuales\n customPreProcessing() { }\n customFormStart() { }\n displayActionServerError() { }\n displayValidationServerError() { }\n displayTableServerError() { }\n showFieldInfo(fieldCode?: string, detail?: any) { }\n showModalDialog(title, body, options, callback?, params?) { }\n openUploadDialog(title, body, options, callback?, params?) { }\n\n /**\n * @deprecated Use supportState\n */\n supportMode(state: string): boolean { return this.supportState(state); }\n\n /**\n * @deprecated Use getField\n */\n getFieldObject(code: string): FieldDescriptor { return this.getField(code); }\n\n /**\n * @deprecated Use getAction\n */\n getActionObject(code: string): FormAction { return this.getAction(code); }\n\n /**\n * @deprecated Use getTable\n */\n getTableObject(code: string): RecordTable { return this.getTable(code); }\n\n /**\n * @deprecated Use getSection\n */\n getSectionObject(code: string): RecordFormSection { return this.getSection(code); }\n\n /**\n * @deprecated Use changeState\n */\n changeFormMode(state: string): boolean { return this.changeState(state); }\n\n /**\n * @deprecated Use subject\n */\n getFormSubject(): string { return this.subject; }\n /**\n * @deprecated Use subject\n */\n getSubject(): string { return this.formSubject; }\n /**\n * @deprecated Use subject\n */\n getformSubject(): string { return this.getSubject(); }\n\n\n numSections(): number { return this._formStructure?.sections.length; }\n\n subscribeAppEvent(eventName: string, callback): void {\n this._eventEmiter.subscribe(eventName, callback);\n }\n\n openForm(name: string, data = null, backData = null, cleanStack = false): void {\n let origin = null;\n if (!cleanStack) {\n origin = { ...backData, name: this.name, url: this._formRoute, token: this._controlToken };\n origin.subject = origin?.subject ?? this.formSubject;\n origin.state = origin?.state ?? this.state;\n origin.fields = origin?.fields ?? {};\n origin.extra = origin?.extra ?? {};\n }\n const target = { ...data, name };\n target.subject = target?.subject ?? null;\n target.state = target?.state ?? null;\n target.fields = target?.fields ?? {};\n target.extra = target?.extra ?? {};\n this.formManagerService.openForm(origin, target);\n }\n\n canGoBack(): boolean { return this._originToken !== null }\n goBack(): void { return this.formManagerService.backTo(); }\n goBackForm(): void { return this.goBack(); }\n getOriginDetail(): any { return this.formManagerService.getFormInfo(this._originToken); }\n\n setError(errorType: string, errorMessage: string, errorDetail: string): void {\n this._errorType = errorType || '';\n this.errorMessage = errorMessage || '';\n this.errorDetail = errorDetail || '';\n }\n\n resetError(): void { this.setError(null, null, null); }\n getErrorType(): string { return this._errorType; }\n getErrorMessage(): string { return this.errorMessage; }\n getErrorDetail(): string { return this.errorDetail; }\n getErrorCode(): string { return this._errorType; }\n\n getFormParameter(name: string): string {\n return (name) ? (this.extraData?.[name] ?? null) : null;\n }\n\n preocessInputParams(params: any): string {\n this._controlToken = params?.[TOKEN] ?? null;\n const { token, subject, state, fields, extra, originToken } = this.formManagerService.getFormInfo(this._controlToken);\n if (!this._controlToken || this._controlToken !== token) {\n return null;\n }\n this.formSubject = params?.[SUBJECT] ?? subject ?? null;\n this.inputDataFields = fields;\n this.extraData = extra;\n this._originToken = originToken;\n return state;\n }\n\n subscribeSectionActivation(): void {\n const formSections = this._formStructure.sections;\n const sectionNames = Object.keys(formSections);\n for (let index = 0; index < sectionNames.length; index++) {\n const sectionName = sectionNames[index];\n const section = formSections[sectionName];\n section.activation.subscribe(code => this.launchSectionActivation(code));\n section.inactivation.subscribe(code => this.launchSectionInactivation(code));\n }\n }\n\n subscribeFieldsSubjects(): void {\n const formFields = this._formStructure.getFields();\n if (Array.isArray(formFields)) {\n formFields.forEach(field => {\n field.editionFinish.subscribe(event => {\n const { code, intrinsicValidation } = event;\n this.startFieldValidation(code, intrinsicValidation);\n });\n field.editionPartial.subscribe(event => {\n const { code, intrinsicValidation } = event;\n this.startFieldInputValidation(code, intrinsicValidation);\n });\n field.detailRequest.subscribe(event => this.showFieldInfo(event.code, event.detail));\n });\n }\n }\n\n subscribeActionSubjects(): void {\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(): void {\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): Promise<void> {\n let initialState: string = this.preocessInputParams(params);\n if (!this.name) { return; }\n if (!this._definitionObtained) {\n this.busy = true;\n const formDefinition = await this.formManagerService.getFormDefinition(this.name);\n this.busy = false;\n this._formStructure = new FormStructureAndData(formDefinition, this.formConfig);\n this.fields = this._formStructure.fields;\n this.actions = this._formStructure.actions;\n this.sections = this._formStructure.sections;\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 const inputFieldNames = Object.keys(this.inputDataFields);\n for (let index = 0; index < inputFieldNames.length; index++) {\n const fieldCode = inputFieldNames[index];\n const fieldValue = this.inputDataFields[fieldCode];\n this.setFieldValue(fieldCode, fieldValue);\n }\n const recordResponse = await this.requestFormAction(formActions.getData);\n this.checkErrorRecordReceived(recordResponse);\n this.visible = true;\n this.subscribeSectionActivation();\n this.subscribeFieldsSubjects();\n this.subscribeActionSubjects();\n this.subscribeTableSubjects();\n this.customFormStart();\n }\n\n checkErrorRecordReceived(recordResponse: any): boolean {\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 return true;\n }\n\n errorOccured(): boolean {\n return (this.errorCode !== NO_ERROR);\n }\n\n /**\n * Soporte manejo de eventos de formulario\n */\n\n async requestFormAction(actionCode: string, actionSubject: any = {}): Promise<any> {\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 = NO_ERROR;\n this.errorMessage = '';\n this.errorDetail = '';\n this.busy = true;\n const formActionResponse: any = await this.formManagerService.execServerAction(actionDetail);\n this.busy = 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: any) {\n const {\n currentMode, formSubject, actions, fields, recordTables,\n returnedFile, immutableData, extraInfo,\n } = formContent;\n currentMode && this.changeState(currentMode);\n if (formSubject) { this.formSubject = formSubject; }\n if (actions && actions.length > 0) {\n for (const changedAction of actions) {\n const actionObject = this.getAction(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.getField(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.getTable(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(codes: string[] | string, callbackMethod) {\n const sectionSet = (Array.isArray(codes)) ? codes : (codes ? [codes] : []);\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(codes: string[] | string, callbackMethod) {\n const sectionSet = (Array.isArray(codes)) ? codes : (codes ? [codes] : []);\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(codes: string[] | string, callbackMethod) {\n const actionSet = (Array.isArray(codes)) ? codes : (codes ? [codes] : []);\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(codes: string[] | string, callbackMethod) {\n const actionSet = (Array.isArray(codes)) ? codes : (codes ? [codes] : []);\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(code: string) {\n const sectionObject = this._formStructure.getSection(code);\n if (!sectionObject) { return; }\n const clientSectionMethods = this._formSectionsActivate[code];\n if (clientSectionMethods) {\n for (const clientSectionMethod of clientSectionMethods) {\n clientSectionMethod(sectionObject);\n }\n }\n }\n\n async launchSectionInactivation(code: string) {\n const sectionObject = this._formStructure.getSection(code);\n if (!sectionObject) { return; }\n const clientSectionMethods = this._formSectionsInactivate[code];\n if (clientSectionMethods) {\n for (const clientSectionMethod of clientSectionMethods) {\n clientSectionMethod(sectionObject);\n }\n }\n }\n\n async startAction(code: string) {\n const actionObject = this.getAction(code);\n if (!actionObject) { return; }\n this.resetError();\n actionObject.start();\n const clientActionMethods = this._formActionsStart[code];\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 action.newState && this.changeState(action.newState);\n } else {\n this.displayActionServerError();\n }\n action.stop();\n }\n\n async finishAction(action, actionResult) {\n const finishActionMethods = this._formActionsFinish[action.actionCode];\n if (finishActionMethods) {\n const clientActionPromises = [];\n for (const clientActionMethod of finishActionMethods) {\n clientActionPromises.push(clientActionMethod(action, actionResult));\n }\n await Promise.all(clientActionPromises);\n }\n }\n\n completeGlobalAction(action: any) {\n return this.startServerAction(action);\n }\n\n /**\n * Manejadores de eventos para validaciones sobre campos\n */\n\n addFieldInputValidation(codes: string[] | string, callbackMethod) {\n const fieldSet = (Array.isArray(codes)) ? codes : (codes ? [codes] : []);\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(codes: string[] | string, callbackMethod) {\n const fieldSet = (Array.isArray(codes)) ? codes : (codes ? [codes] : []);\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(codes: string[] | string, callbackMethod) {\n const fieldSet = (Array.isArray(codes)) ? codes : (codes ? [codes] : []);\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, intrinsicValidation: boolean = true) {\n const fieldToValidate = this.getField(fieldCode);\n if (!fieldToValidate) { return false; }\n fieldToValidate.resetError();\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, intrinsicValidation: boolean = true) {\n const fieldToValidate = this.getField(fieldCode);\n if (!fieldToValidate || !intrinsicValidation) { return; }\n fieldToValidate.resetError();\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: string | FieldDescriptor) {\n const fieldObj = (typeof inputField === 'string')\n ? this.getField(inputField) : inputField;\n let finish = true;\n let validationResult = null;\n if (fieldObj.backend) {\n fieldObj.validating = true;\n validationResult = await this\n .requestFormAction(formActions.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 fieldObj.validating = false;\n }\n\n async finishFieldValidation(fieldObject: any, validationResult: boolean) {\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: string) {\n return this.startServerFieldValidation(fieldCode);\n }\n\n /**\n * Manejadores de eventos para acciones sobre Tablas\n */\n\n addTableActionStart(code: string, actionCode: string, callbackMethod) {\n const tableObject = this.getTable(code);\n if (!tableObject) {\n return;\n }\n const inlineActionObject = tableObject.getAction(actionCode);\n if (!inlineActionObject) {\n return;\n }\n let tableEventHandlers = null;\n if (this._tableActionsStart[code]) {\n tableEventHandlers = this._tableActionsStart[code];\n } else {\n tableEventHandlers = {};\n this._tableActionsStart[code] = tableEventHandlers;\n }\n if (!tableEventHandlers[actionCode]) {\n tableEventHandlers[actionCode] = [];\n }\n tableEventHandlers[actionCode].push(callbackMethod);\n }\n\n addTableActionFinish(code: string, actionCode: string, callbackMethod) {\n const tableObject = this.getTable(code);\n if (!tableObject) {\n return;\n }\n const inlineActionObject = tableObject.getAction(actionCode);\n if (!inlineActionObject) {\n return;\n }\n let tableEventHandlers = null;\n if (this._tableActionsFinish[code]) {\n tableEventHandlers = this._tableActionsFinish[code];\n } else {\n tableEventHandlers = {};\n this._tableActionsFinish[code] = tableEventHandlers;\n }\n if (!tableEventHandlers[actionCode]) {\n tableEventHandlers[actionCode] = [];\n }\n tableEventHandlers[actionCode].push(callbackMethod);\n }\n\n addTableSelectionStart(code: string, callbackMethod) {\n const tableObject = this.getTable(code);\n if (!tableObject) { return; }\n let tableEventHandlers = null;\n if (this._tableSelectionsStart[code]) {\n tableEventHandlers = this._tableSelectionsStart[code];\n } else {\n tableEventHandlers = [];\n this._tableSelectionsStart[code] = tableEventHandlers;\n }\n tableEventHandlers.push(callbackMethod);\n }\n\n addTableSelectionFinish(code: string, callbackMethod) {\n const tableObject = this.getTable(code);\n if (!tableObject) { return; }\n let tableEventHandlers = null;\n if (this._tableSelectionsFinish[code]) {\n tableEventHandlers = this._tableSelectionsFinish[code];\n } else {\n tableEventHandlers = [];\n this._tableSelectionsFinish[code] = tableEventHandlers;\n }\n tableEventHandlers.push(callbackMethod);\n }\n\n addTableGetDataStart(code: string, callbackMethod) {\n const tableObject = this.getTable(code);\n if (!tableObject) {\n return;\n }\n let tableEventHandlers = null;\n if (this._tableGetDataStart[code]) {\n tableEventHandlers = this._tableGetDataStart[code];\n } else {\n tableEventHandlers = [];\n this._tableGetDataStart[code] = tableEventHandlers;\n }\n tableEventHandlers.push(callbackMethod);\n }\n\n addTableGetDataFinish(code: string, callbackMethod) {\n const tableObject = this.getTable(code);\n if (!tableObject) {\n return;\n }\n let tableEventHandlers = null;\n if (this._tableGetDataFinish[code]) {\n tableEventHandlers = this._tableGetDataFinish[code];\n } else {\n tableEventHandlers = {};\n this._tableGetDataFinish[code] = tableEventHandlers;\n }\n tableEventHandlers[GET_DATA_ACTION] = callbackMethod;\n }\n\n async startTableGlobalAction(tableActionEvent: any) {\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: any) {\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(formActions.tableAction, actionSubject);\n finish = !this.errorOccured();\n }\n if (finish) {\n await this.finishTableGlobalAction(tableActionDetail, actionResult);\n action.newState && this.changeState(action.newState);\n } else {\n this.displayTableServerError();\n }\n tableObject.freeWaiting();\n }\n\n async finishTableGlobalAction(tableActionDetail: any, 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: any) {\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: any) {\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: this.formConfig.tableActions.inline,\n actionCode,\n tableRecordId: recordId,\n tableRecordData: recordData\n };\n actionResult = await this\n .requestFormAction(formActions.tableAction, actionSubject);\n finish = !this.errorOccured();\n }\n if (finish) {\n this.finishTableAction(tableActionDetail, actionResult);\n action.newState && this.changeState(action.newState);\n } else {\n this.displayTableServerError();\n }\n tableObject.freeWaiting();\n }\n\n completeInlineAction(tableAction: any) {\n return this.startTableServerAction(tableAction);\n }\n\n async finishTableAction(tableActionDetail: any, 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: any) {\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: any) {\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: this.formConfig.tableActions.rowSelection,\n actionCode: null,\n tableRecordId: recordId,\n tableRecordData: recordData\n };\n actionResult = await this\n .requestFormAction(formActions.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: any, 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: any) {\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: any) {\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: this.formConfig.tableActions.selection,\n actionCode,\n selectedRecords\n };\n actionResult = await this\n .requestFormAction(formActions.tableAction, actionSubject);\n finish = !this.errorOccured();\n }\n if (finish) {\n this.finishTableSelectionAction(tableActionDetail, actionResult);\n action.newState && this.changeState(action.newState);\n } else {\n this.displayTableServerError();\n }\n tableObject.freeWaiting();\n }\n\n async finishTableSelectionAction(tableActionDetail: any, 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: any) {\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: any) {\n const { tableObject, tableCode } = tableActionDetail;\n tableObject.putOnWait();\n const actionSubject = { tableCode };\n const actionResult = await this\n .requestFormAction(formActions.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: any, 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: string, reqFieldMessage?) {\n this.cleanErrorFields(null, sectionCode);\n const requiredFieldMessage = reqFieldMessage ?? this.formConfig.formStandardErrors.requiredField\n const numErrors = this.tagFieldsWithError(this.getRequiredEmptyFields(null,\n sectionCode), null, requiredFieldMessage);\n return (numErrors === 0);\n }\n\n validateSectionConsistency(sectionCode: string, reqFieldMessage?) {\n this.resetError();\n const completeFields = this.checkSectionRequiredFields(sectionCode, reqFieldMessage);\n if (!completeFields) {\n this.setError(this.formConfig.formStandardErrors.typeWarning,\n this.formConfig.formStandardErrors.validationTitle,\n this.formConfig.formStandardErrors.requiredFields);\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(this.formConfig.formStandardErrors.typeWarning,\n this.formConfig.formStandardErrors.validationTitle,\n this.formConfig.formStandardErrors.requiredFields);\n this.tagFieldsWithError(requiredEmptyFields, null,\n this.formConfig.formStandardErrors.requiredField);\n for (const fieldCode of requiredEmptyFields) {\n const requiredEmptyField = this.getField(fieldCode);\n requiredEmptyField?.focus();\n break;\n }\n }\n const validationIssueFields = this.getFieldsWithValidationIssues(null,\n sectionCode);\n if (!validationError && validationIssueFields.length > 0) {\n validationError = true;\n this.setError(this.formConfig.formStandardErrors.typeWarning,\n this.formConfig.formStandardErrors.validationTitle,\n this.formConfig.formStandardErrors.validationFields);\n for (const fieldCode of validationIssueFields) {\n const validationIssueField = this.getField(fieldCode);\n validationIssueField.focus();\n break;\n }\n }\n return validationError;\n }\n\n copyTableRecordToFields(tableObj: any, mappingTable: any = 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","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 { 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 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","INLINE_ACTION","ChangeDetectionStrategy","HEADER","Subject","yn","nanoid","ReplaySubject","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","../../../node_modules/tslib/tslib.es6.js","../../../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/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/form.constants.ts","../../../projects/tuain-ng-forms-lib/src/lib/classes/forms/element.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/table/column.ts","../../../projects/tuain-ng-forms-lib/src/lib/classes/forms/table/action.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/classes/forms/subsection.ts","../../../projects/tuain-ng-forms-lib/src/lib/classes/forms/section.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';\nimport { FormAction } from '../../classes/forms/action';\n\n@Component({\n selector: 'lib-action',\n template: `<ng-content></ng-content>`\n})\n\nexport class ActionComponent implements OnInit {\n formConfig: any;\n inProgress: boolean;\n @Input() action: FormAction;\n @Input() busy: any;\n @Input() relatedField: any;\n @Input() state: any;\n\n @Input() style = 'primary';\n @Input() showLabel = true;\n\n ngOnInit() {\n this.formConfig = this.action?._formConfig;\n this.start();\n }\n\n start() { }\n\n activate() {\n if (this.action?.notifyActivation) {\n this.action.notifyActivation();\n }\n }\n\n visibleOnRestriction() {\n if (!this.action?.restrictedOnField) {\n return true;\n }\n if ((this.action?.restrictedOnOperator === '=='\n && this.relatedField === this.action?.restrictedOnValue)\n || (this.action?.restrictedOnOperator === '!='\n && this.relatedField !== this.action?.restrictedOnValue)) {\n return true;\n }\n }\n\n get visible() {\n return this.action?.visibleOn(this.state) && this.visibleOnRestriction();\n }\n\n get disabled() {\n return !(this.action?.enabledOn(this.state));\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, Input } from '@angular/core';\nimport { FieldDescriptor } from '../../classes/forms/field';\n\nconst VALUE = 'value';\nconst FOCUS = 'focus';\n@Component({\n selector: 'lib-field',\n template: `<ng-content></ng-content>`\n})\nexport class FieldComponent implements OnInit {\n formConfig: any;\n // Atributos obtenidos estáticamente\n code: string;\n value: any;\n fieldInfo: string;\n fieldAlignment: string;\n tooltipText: string;\n\n // Atributos actualizados por subscripción\n maxLength: any;\n minValue: any;\n maxValue: any;\n onValidation: any;\n captureType: any;\n title: any;\n type: any;\n visibleLabel: any;\n required: any;\n options: any;\n\n errorType: any;\n errorCode: any;\n errorMessage: any;\n\n @Input() field: FieldDescriptor;\n @Input() state: any;\n\n ngOnInit() {\n if (this.field) {\n this.formConfig = this.field?._formConfig;\n // Inicialización\n const mapping = Object.entries(this.formConfig.componentFieldAttrMap);\n for (let index = 0; index < mapping.length; index++) {\n const [fieldAttr1, compAttr1] = mapping[index];\n const compAttr = compAttr1.toString();\n const fieldAttr = fieldAttr1.toString();\n const attributeValue = this.field?.[fieldAttr]\n this.dafaultProcessFieldChange(compAttr, attributeValue);\n this.processFieldChange(compAttr, attributeValue);\n }\n // Subscripción a cambios en atributos\n this.field.attributeChange.subscribe(event => {\n const { name: fieldAttr, value } = event;\n const compAttr = this.formConfig.componentFieldAttrMap[fieldAttr];\n this.dafaultProcessFieldChange(compAttr, value);\n this.processFieldChange(compAttr, value);\n });\n }\n this.start();\n }\n\n dafaultProcessFieldChange(attribute: string, value?: any) {\n if (attribute === VALUE) {\n this.updateValue();\n } else if (attribute === FOCUS) {\n this.focus();\n } else {\n this[attribute] = value;\n }\n }\n\n processFieldChange(attribute: string, value?: any) { }\n start() { }\n focus() { }\n\n updateObject() {\n this.field.setValue(this.value);\n }\n\n inputChanged() {\n this.field.setValue(this.value);\n this.onChangeContent();\n }\n\n inputTyped() {\n this.field.setValue(this.value);\n this.onInputChange();\n }\n\n updateValue() {\n this.value = this.field.getValue();\n }\n\n onInputChange() {\n setTimeout(() => this.field.notifyEditionPartial(), 50);\n }\n\n onChangeContent() {\n setTimeout(() => this.field.notifyEditionFinish(), 50);\n }\n\n onShowInfo(detail = null) {\n setTimeout(() => this.field.notifyEditionDetailRequest(detail), 50);\n }\n\n numberInputValidation(event) {\n const k = event.charCode;\n return (k > 47 && k < 58);\n }\n\n get visible() {\n return this.field?.visibleOn(this.state);\n }\n\n get disabled() {\n return !this.field?.enabledOn(this.state);\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-element',\n template: `<ng-content></ng-content>`\n})\nexport class ElementComponent implements OnInit {\n formConfig: any;\n\n @Input() element: any;\n @Input() form: any;\n @Input() state: any;\n\n ngOnInit() {\n this.formConfig = this.element?._formConfig;\n this.start();\n }\n\n start() { }\n\n get visible() {\n return this.element?.visibleOn(this.state);\n }\n\n get disabled() {\n return !this.element?.enabledOn(this.state);\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 @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() section: 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","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, ChangeDetectionStrategy } from '@angular/core';\nimport { TableRecordData } from '../../../classes/forms/table/row-data';\nimport { TableActionEvent } from '../../../classes/forms/table/table';\nimport { RecordTable, TableEvent } from '../../../classes/forms/table/table';\n\nconst changeViewAttributes = ['visibleRecords', 'currentPage', 'recordsPerPage'];\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 formConfig: any;\n globalFilterString: string = '';\n\n // Atributos sincronizados del objeto\n code: any;\n columns: any;\n currentPage: number = 1;\n globalSearch: boolean = false;\n visibleRecords: any[];\n selectedRecords: any[] = [];\n recordsPerPage: any;\n totalRecordsNumber: number = 0;\n allSelected: boolean = false;\n layout: string;\n\n tableFieldStyles: any;\n loaded = false;\n selectable = false;\n hasActions = false;\n inlineActions: any;\n globalActions: any;\n selectionActions: any;\n\n @Input() table: RecordTable;\n @Input() tableRecords: TableRecordData[];\n @Input() disabled: boolean;\n @Input() state: string;\n @Input() waiting: boolean;\n\n ngOnInit() {\n if (this.table) {\n this.formConfig = this.table?._formConfig;\n this.tableFieldStyles = this.formConfig.tableFieldStyles;\n this.selectable = this.table.selectable;\n this.hasActions = this.table.hasActions();\n this.inlineActions = this.table.getActions(this.formConfig.tableActions.inline);\n this.globalActions = this.table.getActions(this.formConfig.tableActions.global);\n this.selectionActions = this.table.getActions(this.formConfig.tableActions.selection);\n // Inicialización de campos mapeados del objeto\n const mapping = Object.entries(this.formConfig.componentTableAttrMap);\n for (let index = 0; index < mapping.length; index++) {\n const [tableAttrRaw, compAttrRaw] = mapping[index];\n const tableAttr = tableAttrRaw.toString();\n const compAttr = compAttrRaw.toString();\n this.syncAttribute(compAttr, this.table[tableAttr]);\n }\n // Subscripción a cambios en atributos\n this.table.attributeChange.subscribe(event => {\n const { name: tableAttr, value } = event;\n const compAttr = this.formConfig.componentTableAttrMap[tableAttr];\n this.syncAttribute(compAttr, value);\n });\n }\n this.start();\n }\n\n start() { }\n tableGlobalAction(actionCode: string) { this.table.notifyGlobalAction(actionCode); }\n tableSelectionAction(actionCode: string) { this.table.notifySelectionAction(actionCode); }\n tableActionSelected(actionEvent: TableActionEvent) { this.table.notifyInlineAction(actionEvent); }\n tableSelectionToggle(recordId) { this.table.notifyRecordSelection(recordId); }\n toggleSelectAll() { return (this.allSelected) ? this.table.unSelectAll() : this.table.selectAll(); }\n globalFilterCompleted() { this.changePage(1); }\n changePage(requestedPage) { this.table.changePage(requestedPage); }\n tableColumnSort(columnName, direction = null) { this.table.sort(columnName, direction ?? 'ascend'); }\n globalFilterChanged() { this.table.setGlobalFilterString(this.globalFilterString?.trim() ?? ''); }\n\n syncAttribute(name, value) {\n try {\n this[name] = value;\n return true;\n } catch {\n return false;\n }\n }\n\n filterHasChanged(column, values) {\n this.table.addColumnFilter(column.fieldCode, values);\n }\n}\n","export const NO_ERROR = '00';\nexport const HEADER = 'HEADER';\n\nexport const elementTypes = {\n action: 'ACTION',\n field: 'FIELD',\n table: 'TABLE',\n};\n\nexport const formActions = {\n tableAction: 'TABLEACTION',\n getData: 'GETDATA',\n getTableData: 'GETTABLEDATA',\n validate: 'VALIDATE',\n};\n\nexport const operators = {\n G: 'G',\n L: 'L',\n GE: 'GE',\n LE: 'LE',\n EQ: 'EQ',\n NEQ: 'NEQ',\n HAS: 'HAS',\n NOTHAS: 'NOTHAS',\n BETWEEN: 'BETWEEN',\n IN: 'IN',\n};\n","import { elementTypes } from './form.constants';\nexport class FormElement {\n protected _visible: boolean;\n protected _visibleForced: boolean;\n protected _isForced: boolean;\n _formConfig: any;\n disabled: boolean;\n visibleStates: string[];\n enabledStates: string[];\n elementType: string;\n customAttributes: any;\n\n constructor(elementDefinition: any, formConfig: any) {\n this._formConfig = formConfig;\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.customAttributes = elementDefinition?.customAttributes ?? {};\n }\n\n getCustomAttribute(name: string): string { return this.customAttributes?.[name] ?? null; }\n setCustomAttribute(name: string, value: string): void { if (name) { this.customAttributes[name] = value; } }\n matchAttribute(name: string, value: string): boolean { return this.customAttributes?.[name] === value; }\n\n isField(): boolean { return this.elementType === elementTypes.field; }\n isAction(): boolean { return this.elementType === elementTypes.action; }\n isTable(): boolean { return this.elementType === elementTypes.table; }\n\n setVisibleStates(newStates: any): void {\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): void {\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: string): boolean { return (this.visibleStates && state) ? this.visibleStates.includes(state) : false; }\n enabledOnState(state: string): boolean { return (this.enabledStates && state) ? this.enabledStates.includes(state) : false; }\n\n /**\n * @deprecated Utilizar viewOnState\n */\n supportState(state: string): boolean { return this.viewOnState(state); }\n\n /**\n * @deprecated Utilizar viewOnState\n */\n supportMode(state: string): boolean { return this.viewOnState(state); }\n\n get visible(): boolean { return (this._isForced) ? this._visibleForced : this._visible; }\n set visible(visible: boolean) { this.setVisibility(visible); }\n\n visibleOn(state: string): boolean {\n return this.visible && this.viewOnState(state);\n }\n\n enabledOn(state: string): boolean {\n return !this.disabled && this.enabledOnState(state);\n }\n\n setVisibility(visible: boolean, forced: boolean = null): void {\n this._visible = visible && true;\n if (forced != null) {\n this._isForced = forced;\n }\n }\n\n show(forced?: boolean): void {\n this._visible = true;\n if (forced !== null) {\n this._isForced = forced;\n this._visibleForced = true;\n }\n }\n\n hide(forced?: boolean): void {\n this._visible = false;\n if (forced !== null) {\n this._isForced = forced;\n this._visibleForced = false;\n }\n }\n\n enable(): void { this.disabled = false; }\n disable(): void { this.disabled = true; }\n\n get enabled(): boolean { return !this.disabled; }\n get editable(): boolean { return !this.disabled; }\n}\n","import { Subject } from 'rxjs';\nimport { elementTypes } 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\n inProgress = false;\n newState: string;\n backend: boolean;\n\n actionCode: string;\n actionName: string;\n iconName: string;\n\n restrictedOnField: string;\n restrictedOnOperator: string;\n restrictedOnValue: string;\n customValidation: any;\n\n constructor(actionDefinition, formConfig) {\n super(actionDefinition, formConfig);\n this.elementType = elementTypes.action;\n this.actionCode = actionDefinition.actionCode ? actionDefinition.actionCode.toString() : '';\n this.actionName = actionDefinition.actionTitle;\n this.iconName = actionDefinition.iconName || this.actionCode;\n this.setCustomAttribute('location', actionDefinition.position || HEADER);\n this.backend = actionDefinition?.serverAction ?? false;\n this.newState = actionDefinition?.newState;\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 yn from 'yn';\nimport { elementTypes, NO_ERROR } from './form.constants';\nimport { FormElement } from './element';\nimport { isNgTemplate } from '@angular/compiler';\n\nconst UNDEFINED = 'undefined';\n\nconst DEFAULT_ERROR_TYPE = 'error';\nconst DEFAULT_CAPTURE_TYPE = 'INPUT';\nconst DEFAULT_ALIGNMENT = 'left';\n\nconst STD_MAX_LENGTH = 50;\nconst BIG_MAX_LENGTH = 500;\n\nconst fldAttr = {\n validateOnServer: 'validateOnServer',\n value: '_value',\n minValue: '_minValue',\n maxValue: '_maxValue',\n maxLength: '_maxLength',\n onValidation: '_onValidation',\n focus: 'focus',\n intrinsicErrorMessage: '_intrinsicErrorMessage',\n code: 'fieldCode',\n info: 'fieldInfo',\n defaultValue: 'defaultValue',\n defaultEditable: 'defaultEditable',\n visibleLabel: 'visibleLabel',\n required: 'fieldRequired',\n hasChanged: 'hasChanged',\n outputOnly: 'outputOnly',\n captureType: 'captureType',\n title: 'fieldTitle',\n type: 'fieldType',\n alignment: 'fieldAlignment',\n format: 'fieldFormat',\n externalValue: 'externalValue',\n tooltipText: 'tooltipText',\n errorType: 'errorType',\n errorCode: 'errorCode',\n errorMessage: 'errorMessage',\n options: 'fieldOptions',\n};\n\nexport interface DetailEvent {\n code: string;\n detail: any;\n}\n\nexport interface FieldOption {\n fieldOptionValue: string;\n fieldOptionId: string;\n}\n\nexport class FieldDescriptor extends FormElement {\n private readonly _editionFinish = new Subject<any>();\n private readonly _editionPartial = new Subject<any>();\n private readonly _detailRequest = new Subject<DetailEvent>();\n private readonly _attributeChange = new Subject<any>();\n\n private validateOnServer: boolean;\n\n private _value: any;\n private _focus: boolean;\n\n private _minValue: any;\n private _maxValue: any;\n private _maxLength: number;\n _onValidation: boolean;\n _intrinsicErrorMessage: string;\n\n fieldCode: string;\n fieldInfo: string;\n defaultValue: string;\n defaultEditable: boolean;\n\n visibleLabel: boolean;\n fieldRequired: boolean;\n hasChanged: boolean;\n outputOnly: boolean;\n captureType: string;\n fieldTitle: string;\n fieldType: string;\n fieldAlignment: string;\n fieldFormat: RegExp;\n externalValue: any;\n tooltipText: string;\n\n errorType: string;\n errorCode: string;\n errorMessage: string;\n\n fieldOptions: FieldOption[];\n\n constructor(inputFieldReceived, formConfig) {\n super(inputFieldReceived, formConfig);\n this.elementType = elementTypes.field;\n const fld = (inputFieldReceived) ? inputFieldReceived : {};\n\n this.setAttr(fldAttr.code, fld.fieldCode);\n this.setAttr(fldAttr.title, fld.fieldTitle ?? this.fieldCode);\n this.setAttr(fldAttr.captureType, fld.captureType ?? DEFAULT_CAPTURE_TYPE);\n this.setAttr(fldAttr.defaultValue, fld.defaultValue ?? null);\n const defaultTypeAlignment = (this._formConfig.tableFieldStyles[this.fieldType] != null)\n ? this._formConfig.tableFieldStyles[this.fieldType]['text-align'] : DEFAULT_ALIGNMENT;\n const fieldAlignment = (fld.alignment != null) ? fld.alignment.toLowerCase() : defaultTypeAlignment;\n this.setAttr(fldAttr.alignment, fieldAlignment);\n this.setAttr(fldAttr.info, fld.info || '');\n let fieldFormat;\n try {\n fieldFormat = (fld.format) ? new RegExp(fld.format) : null;\n } catch (e) {\n fieldFormat = null;\n }\n this.setAttr(fldAttr.format, fieldFormat);\n\n this.setAttr(fldAttr.validateOnServer, fld.serverAction ?? false);\n\n this.setAttr(fldAttr.tooltipText, fld.tooltip || '');\n this.setAttr(fldAttr.defaultEditable, this.enabled);\n this.setAttr(fldAttr.required, fld.required ?? false);\n this.setError(fld.errorCode, fld.errorMessage, fld.errorType ?? DEFAULT_ERROR_TYPE);\n this.setAttr(fldAttr.outputOnly, fld.outputOnly ?? false);\n const maxLength = fld.maxLength ?? (this.captureType === 'TEXTAREA' ? BIG_MAX_LENGTH : STD_MAX_LENGTH);\n this.setAttr(fldAttr.maxLength, maxLength);\n this.setAttr(fldAttr.intrinsicErrorMessage, this._formConfig.fieldTypeErrMsg[this.fieldType] ?? this._formConfig.fieldTypeErrMsg.DEFAULT);\n\n this.setFieldType(fld.fieldTypeCode);\n this.setEditable(fld.editable ?? true);\n this.setVisibleLabel(fld.visibleLabel ?? true);\n this.setVisibility(fld.visible);\n this.setFieldOptions(fld.fieldOptions);\n this.setValue(fld.fieldValue || this.defaultValue || '');\n }\n\n get name() { return this.fieldCode; }\n get editionFinish() { return this._editionFinish; }\n get attributeChange() { return this._attributeChange; }\n\n get editionPartial() { return this._editionPartial; }\n get detailRequest() { return this._detailRequest; }\n get info() { return this.fieldInfo; }\n\n get validating() { return this._onValidation; }\n set validating(isValidating: boolean) { this.setAttr(fldAttr.onValidation, isValidating); }\n\n focus() { this.setAttr(fldAttr.focus, true); }\n\n setIntrinsicErrorMessage(message: string) { this.setAttr(fldAttr.intrinsicErrorMessage, message); }\n set intrinsicErrorMessage(message: string) { this.setIntrinsicErrorMessage(message); }\n\n get fieldValue() { return this.getValue(); }\n\n getRequired() { return this.required; }\n setRequired(required: boolean) { this.required = required; }\n\n get required(): boolean { return this.fieldRequired; }\n set required(required: boolean) { this.setAttr(fldAttr.required, required ?? false); }\n get maxLength() { return (this._maxLength > 0) ? this._maxLength.toString() : ''; }\n set maxLength(requiredMaxLength: any) {\n if (typeof requiredMaxLength === 'string') {\n this.setAttr(fldAttr.maxLength, parseInt(requiredMaxLength, 10));\n } else if (typeof requiredMaxLength === 'number') {\n this.setAttr(fldAttr.maxLength, requiredMaxLength);\n }\n }\n get value() { return this.getValue(); }\n set value(newValue) { this.setValue(newValue); }\n\n notifyEditionPartial() {\n const intrinsicValidation = true;\n this._editionPartial.next({ code: this.fieldCode, intrinsicValidation });\n }\n\n notifyEditionFinish() {\n let intrinsicValidation = true;\n const fieldDefaultFormat = this._formConfig.fieldTypesPatterns?.[this.fieldType] ?? null;\n const fieldValue = this.getValue();\n if (fieldValue && (fieldDefaultFormat || this.fieldFormat)) {\n intrinsicValidation = (fieldDefaultFormat?.test(fieldValue) ?? true)\n && (this.fieldFormat?.test(fieldValue) ?? true);\n if (!intrinsicValidation) {\n this.setError('99', this._intrinsicErrorMessage);\n }\n }\n if (intrinsicValidation && fieldValue && this._minValue && fieldValue < this._minValue) {\n intrinsicValidation = false;\n this.setError('99', 'Campo con valor inferior al mínimo');\n }\n if (intrinsicValidation && fieldValue && this._maxValue && fieldValue > this._maxValue) {\n intrinsicValidation = false;\n this.setError('99', 'Campo con valor superior al máximo');\n }\n this._editionFinish.next({ code: this.fieldCode, intrinsicValidation });\n }\n\n setAttr(name: string, value: any) {\n this[name] = value;\n if (this._formConfig.monitoredFieldAttributes.includes(name)) {\n this._attributeChange.next({ name, value });\n }\n }\n\n notifyEditionDetailRequest(detail: any) {\n const detailEvent: DetailEvent = {\n code: this.fieldCode,\n detail,\n };\n this._detailRequest.next(detailEvent);\n }\n\n setVisibleLabel(visibleLabel: boolean) { this.setAttr(fldAttr.visibleLabel, visibleLabel); }\n showLabel() { this.setVisibleLabel(true); }\n hideLabel() { this.setVisibleLabel(false); }\n\n setChanged(hasChanged: boolean) { this.setAttr(fldAttr.hasChanged, hasChanged); }\n changed() { this.setChanged(true); }\n\n setLabel(label) { this.setAttr(fldAttr.title, label); }\n clean() { this.setValue(this.defaultValue || ''); this.resetError(); }\n get backend() { return this.validateOnServer; }\n\n setEditable(editable: boolean = true) { (editable) ? this.enable() : this.disable(); }\n\n hasError() { return this.errorCode !== NO_ERROR; }\n resetError() { (this.errorCode !== NO_ERROR) && this.setError(NO_ERROR, null); }\n setError(code, message, type = DEFAULT_ERROR_TYPE) {\n this.setAttr(fldAttr.errorCode, code ?? NO_ERROR);\n this.setAttr(fldAttr.errorType, (this.errorCode === NO_ERROR) ? '' : type);\n this.setAttr(fldAttr.errorMessage, message ?? '');\n }\n\n getError() { return { type: this.errorType, code: this.errorCode, message: this.errorMessage }; }\n get error() { return this.getError(); }\n set error(errorObj) { this.setError(errorObj.code, errorObj.message, errorObj.type ?? DEFAULT_ERROR_TYPE) }\n\n getErrorCode() { return this.getError().code; }\n setErrorCode(code) { this.setError(code, this.errorMessage); }\n getErrorMessage() { return this.getError().message; }\n setErrorMessage(msg) { this.setError(this.errorCode, msg); }\n\n get empty(): boolean { return this.isEmpty(); }\n\n isEmpty(): boolean {\n const fieldCurrentValue = this.getValue();\n if (fieldCurrentValue === undefined || fieldCurrentValue === null) {\n return true;\n }\n if ((this.fieldType === this._formConfig.fieldTypes.array || this.fieldType === this._formConfig.fieldTypes.phone)\n && Array.isArray(fieldCurrentValue) && fieldCurrentValue.length === 0) {\n return true;\n };\n return fieldCurrentValue === '';\n }\n\n getValue(): any {\n if (this.fieldType === this._formConfig.fieldTypes.boolean\n || this.fieldType === this._formConfig.fieldTypes.check) {\n return yn(this._value);\n }\n return this._value;\n }\n\n getOptionText() {\n return this.fieldOptions?.find(item => item.fieldOptionId === this._value)?.fieldOptionValue ?? null;\n }\n\n updateFromServer(fld) {\n const fieldKeys = Object.keys(fld);\n for (let index = 0; index < fieldKeys.length; index++) {\n const attrName = fieldKeys[index];\n const attrValue = fld[attrName];\n (attrName === this._formConfig.apiFieldAttrs.visible) && this.setVisibility(attrValue);\n (attrName === this._formConfig.apiFieldAttrs.labelVisible) && this.setVisibleLabel(fld.visibleLabel);\n (attrName === this._formConfig.apiFieldAttrs.required) && this.setAttr(fldAttr.required, fld.required ?? false);\n (attrName === this._formConfig.apiFieldAttrs.errorCode) && this.setAttr(fldAttr.errorCode, fld.errorCode);\n (attrName === this._formConfig.apiFieldAttrs.errorMessage) && this.setAttr(fldAttr.errorMessage, fld.errorMessage);\n (attrName === this._formConfig.apiFieldAttrs.tooltip) && this.setAttr(fldAttr.tooltipText, fld.tooltip);\n (attrName === this._formConfig.apiFieldAttrs.info) && this.setAttr(fldAttr.info, fld.info);\n (attrName === this._formConfig.apiFieldAttrs.editable) && this.setEditable(fld.editable);\n (attrName === this._formConfig.apiFieldAttrs.title) && this.setLabel(fld.fieldTitle.toString());\n (attrName === this._formConfig.apiFieldAttrs.value) && (this.setValue(fld.fieldValue) && this.setChanged(false));\n (attrName === this._formConfig.apiFieldAttrs.options) && this.setFieldOptions(fld.fieldOptions);\n (attrName === this._formConfig.apiFieldAttrs.captureType) && this.setAttr(fldAttr.captureType, fld.captureType || 'INPUT');\n (attrName === this._formConfig.apiFieldAttrs.type) && this.setFieldType(fld.fieldTypeCode);\n (attrName === this._formConfig.apiFieldAttrs.maxLength) && this.setAttr(fldAttr.maxLength, fld.maxLength);\n }\n }\n\n setFieldType(inputFieldType) {\n this.setAttr(fldAttr.type, inputFieldType);\n }\n\n setMinValue(inputMinValue) {\n let minValue = inputMinValue;\n if (this.fieldType === this._formConfig.fieldTypes.date) {\n minValue = new Date(minValue);\n }\n this.setAttr(fldAttr.minValue, minValue);\n }\n\n setMaxValue(inputMaxValue) {\n let maxValue = inputMaxValue;\n if (this.fieldType === this._formConfig.fieldTypes.date) {\n maxValue = new Date(maxValue);\n }\n this.setAttr(fldAttr.maxValue, maxValue);\n }\n\n getFieldOptions(): FieldOption[] {\n return this.fieldOptions.map(option => {\n const optionCopy: FieldOption = { ...option };\n return optionCopy;\n });\n }\n\n\n setFieldOptions(newOptions) {\n if ((!this._formConfig.captureTypesWithOptions.includes(this.captureType))\n || typeof newOptions === UNDEFINED || !newOptions\n || !Array.isArray(newOptions)) {\n return;\n }\n let 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 fieldOptions = (fieldOptions && Array.isArray(fieldOptions)\n && fieldOptions.length > 0) ? fieldOptions : [];\n this.setAttr(fldAttr.options, fieldOptions);\n if (this._value) {\n if (this.fieldType === this._formConfig.fieldTypes.array && Array.isArray(this._value)) {\n const fieldValue = this._value?.filter(item =>\n this.fieldOptions.find(opt => opt.fieldOptionId === item)\n );\n this.setAttr(fldAttr.value, fieldValue);\n } else {\n const valInOptions = this.fieldOptions\n .find(item => item.fieldOptionId === this._value);\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 }\n }\n\n setValue(newValue, widgetUpdate = true) {\n if (typeof newValue === UNDEFINED || newValue === null) {\n return true;\n }\n let newFinalValue;\n if (this.fieldType === this._formConfig.fieldTypes.boolean\n || this.fieldType === this._formConfig.fieldTypes.check) {\n newFinalValue = yn(newValue);\n } else if (this.fieldType === this._formConfig.fieldTypes.array\n || this.fieldType === this._formConfig.fieldTypes.map) {\n if (newValue === null || newValue === '') {\n newFinalValue = [];\n } else if (Array.isArray(newValue)) {\n newFinalValue = newValue;\n } else {\n newFinalValue = newValue.toString().split(',');\n }\n } else {\n newFinalValue = newValue;\n }\n if (this._value !== newFinalValue) {\n this.setChanged(true);\n if (widgetUpdate) {\n this.setAttr(fldAttr.value, newFinalValue);\n } else {\n this._value = newFinalValue;\n }\n }\n return true;\n }\n}\n","export interface FilterDef {\n operators: string[];\n options: any[];\n}\n\nexport interface FilterSetup {\n fieldCode: string;\n operator: string;\n values: any[];\n}\nexport class RecordTableColumn {\n _formConfig: any;\n fieldCode: string;\n fieldTitle: string;\n fieldType: string;\n fieldAlignment: string;\n fieldFormat: string;\n visible: boolean;\n sortable: boolean;\n sortDirections: string[];\n customAttributes: any;\n // Filtros\n filterVisible: boolean = false;\n filterDef: FilterDef;\n filterSetup: FilterSetup;\n\n constructor(recTableColReceived, formConfig) {\n this._formConfig = formConfig;\n this.filterDef = null;\n if (recTableColReceived) {\n this.fieldCode = recTableColReceived.fieldCode;\n this.fieldTitle = recTableColReceived.fieldTitle;\n this.fieldType = recTableColReceived.fieldTypeCode || this._formConfig.fieldTypes.text;\n const defaultTypeAlignment = (this._formConfig.tableFieldStyles[this.fieldType] != null) ? this._formConfig.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.sortDirections = (this.sortable) ? ['ascend', 'descend'] : [null];\n this.fieldFormat = recTableColReceived.format || '';\n this.customAttributes = recTableColReceived?.customAttributes ?? {};\n }\n }\n\n hideFilter() {\n this.filterVisible = false;\n }\n\n addFilterDefinition(filterDefinition) {\n this.filterDef = {\n operators: filterDefinition.operators,\n options: filterDefinition.options ?? null,\n };\n }\n\n get filterDefinition() {\n return this.filterDef;\n }\n\n addFilter(columnValues, operator) {\n this.filterSetup = {\n fieldCode: this.fieldCode,\n operator: operator ?? this.filterDef.operators[0],\n values: columnValues,\n }\n }\n\n get filter() {\n return this.filterSetup;\n }\n\n removeFilter() {\n this.filterSetup = null;\n }\n\n get options() {\n if (this.filterDef?.operators?.length === 1 && this.filterDef?.operators[0] === 'IN') {\n return this.filterDef?.options;\n }\n return null;\n }\n\n serSortDirections(ascend: boolean, descend: boolean) {\n this.sortDirections = [];\n if (ascend) {\n this.sortDirections.unshift('ascend');\n }\n if (descend) {\n this.sortDirections.unshift('descend');\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","import { RecordTableColumn } from './column';\nimport { operators } 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 this.recordData[fieldCode] = fieldValue ?? '';\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 this.recordData[fieldCode] = fieldValue ?? '';\n });\n }\n }\n\n toggleSelect() { this.selected = !this.selected; }\n select() { this.selected = true; }\n unselect() { this.selected = false; }\n\n get recordIdKey() {\n return (typeof this.recordId === 'object')\n ? JSON.stringify(this.recordId) : this.recordId;\n }\n\n getFieldValue(fieldCode): any {\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(columnFilters) {\n if (!columnFilters || columnFilters.length === 0) {\n return true;\n }\n for (const condition of columnFilters) {\n const { fieldCode, operator, values } = condition;\n if (this.recordData.hasOwnProperty(fieldCode)) {\n const fieldValue = this.recordData[fieldCode];\n const stringValue = fieldValue.toString().toUpperCase();\n if (operator === operators.G && fieldValue <= values[0]) {\n return false;\n }\n if (operator === operators.L && fieldValue >= values[0]) {\n return false;\n }\n if (operator === operators.GE && fieldValue < values[0]) {\n return false;\n }\n if (operator === operators.LE && fieldValue > values[0]) {\n return false;\n }\n if (operator === operators.IN && !values.includes(fieldValue)) {\n return false;\n }\n if (operator === operators.EQ) {\n return fieldValue === values[0];\n }\n if (operator === operators.NEQ && fieldValue === values[0]) {\n return false;\n }\n if (operator === operators.HAS && !stringValue.includes(values[0].toString().toUpperCase())) {\n return false;\n }\n if (operator === operators.NOTHAS && stringValue.includes(values[0].toString().toUpperCase())) {\n return false;\n }\n if (operator === operators.BETWEEN && (fieldValue < values[0] || fieldValue > values[1])) {\n return false;\n }\n }\n }\n return true;\n }\n}\n","import { Subject } from 'rxjs';\nimport { elementTypes } from '../form.constants';\nimport { FormElement } from '../element';\nimport { RecordTableColumn } from './column';\nimport { TableAction } from './action';\nimport { TableRecordData } from './row-data';\n\nconst TABLE_SORT_ASCENDING = 'asc';\nconst TABLE_SORT_DESCENDING = 'desc';\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 private readonly _attributeChange = new Subject<any>();\n private _tableColumnObj = {};\n private _appendPages: boolean;\n private _actions: TableAction[];\n private _actionsObj = {};\n\n // Mecanismos de filtrado nueva versión\n private globalFilterStrings: string[] = [];\n private selectedRecords: any;\n private globalSearch: boolean;\n private restrictedId: any;\n private layout: string;\n\n tableRecords: TableRecordData[];\n tableRecordObj = {};\n visibleRecords: TableRecordData[];\n columns: RecordTableColumn[];\n selectable: boolean;\n selectionBackend: boolean;\n selectionField: string;\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 sortable: boolean;\n\n constructor(tableReceived, formConfig) {\n super(tableReceived, formConfig);\n this.elementType = elementTypes.table;\n this.waiting = false;\n this.currentPage = 1;\n this.totalPages = 1;\n this.requestedPage = 1;\n this.columns = [];\n this._tableColumnObj = {};\n this._actions = [];\n this._actionsObj = {};\n this.tableRecords = [];\n this.globalSearch = false;\n this.restrictedId = null;\n\n this.tableTitle = tableReceived.tableTitle;\n this._appendPages = tableReceived?.append ?? false;\n this.selectable = tableReceived?.selectable ?? false;\n this.selectionBackend = tableReceived?.selectionBackend ?? false;\n this.sortable = tableReceived?.sortable ?? false;\n\n this.setAttr('allSelected', false);\n this.setAttr('tableCode', tableReceived.tableCode);\n this.setAttr('clientPaging', tableReceived?.clientPaging ?? true);\n this.setAttr('globalSearch', tableReceived?.simpleFilter ?? false);\n this.setAttr('sorting', { columnName: '', direction: '' });\n this.setAttr('recordsPerPage', formConfig.defaultRecordsPerPage);\n this.setAttr('layout', '');\n\n if (tableReceived.fields) {\n const columns = [];\n for (const columnReceived of tableReceived.fields) {\n const columnDefinition = new RecordTableColumn(columnReceived, this._formConfig);\n columns.push(columnDefinition);\n this._tableColumnObj[columnDefinition.fieldCode] = columnDefinition;\n }\n this.setAttr('columns', columns);\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 this.selectionField = (this.selectable) ? tableReceived?.selectionField : null;\n // Filtros predefinidos en el formulario\n if (tableReceived.filters) {\n for (let index = 0; index < tableReceived.filters.length; index++) {\n this.addFilterDefinition(tableReceived.filters[index].fieldCode, tableReceived.filters[index]);\n }\n }\n }\n\n get columnNames() { return Object.keys(this._tableColumnObj); }\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 get attributeChange() { return this._attributeChange; }\n\n getLayout() { return this.layout; }\n setLayout(layout) { this.setAttr('layout', layout); }\n hasActions() { return (this._actions.length > 0); }\n getSelectedRecords() { return this.tableRecords.filter(rec => rec.selected).map(rec => rec.recordId); }\n activateGlobalSearch() { this.globalSearch = true; }\n inactivateGlobalSearch() { this.globalSearch = false; }\n columnDefinition(fieldCode) { return this._tableColumnObj[fieldCode]; }\n putOnWait() { this.waiting = true; }\n freeWaiting() { this.waiting = false; }\n\n setAttr(name: string, value: any) {\n this[name] = value;\n if (this._formConfig.monitoredTableAttributes.includes(name)) {\n this._attributeChange.next({ name, value });\n }\n }\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 return null;\n }\n\n clean() {\n this.tableRecords = [];\n this.unSelectAll();\n this.tableRecordObj = {};\n this.updateVisibleRecords();\n }\n\n selectAll() {\n this.setAttr('allSelected', true);\n this.tableRecords.forEach(record => record.select());\n this.setAttr('selectedRecords', this.getSelectedRecords());\n return true;\n\n }\n\n unSelectAll() {\n this.setAttr('allSelected', false);\n this.tableRecords.forEach(record => record.unselect());\n this.setAttr('selectedRecords', this.getSelectedRecords());\n return true;\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, this.selectionField);\n const recordIdKey = recordReceived.recordIdKey;\n newRecords.push(recordReceived);\n newRecordsObj[recordIdKey] = recordReceived;\n }\n this.tableRecords = newRecords;\n this.setAttr('selectedRecords', this.getSelectedRecords());\n this.tableRecordObj = newRecordsObj;\n this.updateVisibleRecords();\n }\n\n appendRecords(records) { this.setTableRecords(records, true); }\n replaceRecords(records) { this.setTableRecords(records, false); }\n\n changePage(requestedPage) {\n if (this.clientPaging) {\n this.setAttr('currentPage', requestedPage);\n this.updateVisibleRecords();\n } else {\n this.notifyGetDataAction(requestedPage);\n }\n }\n\n updateVisibleRecords() {\n // updateView const changeViewAttributes = ['currentPage', 'recordsPerPage', 'sorting'];\n let visibleRecords: any[];\n if (this.clientPaging) {\n let filteredRecords = this.getFilteredRecords();\n this.setAttr('totalRecordsNumber', filteredRecords.length);\n visibleRecords = filteredRecords.slice((this.currentPage - 1) * this.recordsPerPage,\n (this.currentPage - 1) * this.recordsPerPage + this.recordsPerPage);\n } else {\n visibleRecords = this.tableRecords;\n }\n this.setAttr('visibleRecords', visibleRecords);\n }\n\n updateFromServer(tableReceived) {\n this.requestedPage = 1;\n this.clean();\n this.visible = tableReceived?.visible || true;\n this.totalPages = tableReceived.totalPages || 1;\n this.recordsNumber = tableReceived.recordsNumber;\n this.setAttr('currentPage', +tableReceived?.currentPage ?? 1);\n this.setAttr('recordsPerPage', +tableReceived.recordsPerPage);\n this.setAttr('totalRecordsNumber', (this.clientPaging) ? tableReceived.tableRecords.length : +tableReceived.totalRecordsNumber);\n this.setAttr('sorting', {\n columnName: tableReceived.sortingColumn || '',\n direction: tableReceived.sortingDirection || ''\n });\n this.waiting = false;\n if (this._appendPages) {\n this.replaceRecords(tableReceived.tableRecords);\n } else {\n this.appendRecords(tableReceived.tableRecords);\n }\n this.updateVisibleRecords();\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 = this._formConfig.tableActions.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 setFilterById(id) {\n if (this.restrictedId === id) { return; }\n this.restrictedId = id;\n this.updateVisibleRecords();\n }\n\n cleanIdFilter() {\n if (this.restrictedId === null) { return; }\n this.restrictedId = null;\n this.updateVisibleRecords();\n }\n\n setGlobalFilterString(text) {\n this.globalFilterStrings = text.split(' ').filter(t => t && t.trim().length > 0).map(t => t.trim()) ?? [];\n if (this.clientPaging) {\n this.changePage(1);\n }\n }\n\n addFilterDefinition(columnName, filterDefinition) {\n const tableColumn = this.columnDefinition(columnName);\n tableColumn && tableColumn.addFilterDefinition(filterDefinition);\n }\n\n getFilteredRecords() {\n let filteredRecords = this.tableRecords;\n if (this.restrictedId) {\n filteredRecords = filteredRecords.filter(record => record.recordId === this.restrictedId);\n }\n if (this.globalFilterStrings.length > 0) {\n filteredRecords = filteredRecords.filter(record => record.hasPattern(this.globalFilterStrings));\n }\n const columnFilters = this.columns.filter(column => column.filter).map(column => column.filter);\n if (columnFilters.length > 0) {\n filteredRecords = filteredRecords.filter(record => record.hasCondition(columnFilters));\n }\n return filteredRecords;\n }\n\n getColumnFilter(columnName: string) {\n const tableColumn = this.columnDefinition(columnName);\n return tableColumn?.filter ?? null;\n }\n\n addColumnFilter(columnName: string, columnValues: any | any[], operator: string = null) {\n const tableColumn = this.columnDefinition(columnName);\n const columnFilterDefinition = tableColumn?.filterDefinition ?? null;\n if (!columnFilterDefinition) {\n return null;\n }\n tableColumn && tableColumn.addFilter(columnValues, operator);\n this.updateVisibleRecords();\n }\n\n removeColumnFilter(columnName: string) {\n const tableColumn = this.columnDefinition(columnName);\n tableColumn && tableColumn.removeFilter();\n this.updateVisibleRecords();\n }\n\n get currentFilter() {\n const compactFilter: any = {\n simpleFilterWords: this.globalFilterStrings,\n advancedFilter: [],\n };\n const columnFilters = this.columns.filter(column => column.filter).map(column => column.filter);\n for (let index = 0; index < columnFilters.length; index++) {\n const columnFilter = columnFilters[index];\n compactFilter.advancedFilter.push({\n fieldCode: columnFilter.fieldCode,\n operator: columnFilter.operator,\n fieldValue1: columnFilter.values[0],\n fieldValue2: columnFilter.values[1],\n });\n }\n return compactFilter;\n }\n\n // Ordenamiento de registros local\n\n sort(columnName, direction) {\n this.setRequiredOrder(columnName, direction);\n if (this.clientPaging) {\n this.localSortData()\n } else {\n this.notifyGetDataAction();\n }\n }\n\n setRequiredOrder(columnField, direction = null) {\n this.setAttr('sorting', {\n columnName: columnField,\n direction: (direction === 'ascend') ? TABLE_SORT_ASCENDING : TABLE_SORT_DESCENDING,\n });\n }\n\n localSortData() {\n if (!this.sorting.columnName || !this.sorting.direction) { return; }\n this.tableRecords.sort((a, b) => this.recordCompare(a, b, this.sorting.columnName, this.sorting.direction));\n this.unSelectAll();\n this.updateVisibleRecords();\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 < recordBColumn) {\n result = -1;\n } else if (recordAColumn > recordBColumn) {\n result = 1;\n }\n return direction === TABLE_SORT_ASCENDING ? result : -result;\n }\n}\n","import { FormAction } from './action';\nimport { elementTypes } 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 elementTypes.field:\n elementObject = formObject.getField(code);\n arrayToAdd = this.subSectionFields;\n break;\n case elementTypes.table:\n elementObject = formObject.getTable(code);\n arrayToAdd = this.subSectionTables;\n break;\n case elementTypes.action:\n elementObject = formObject.getAction(code);\n arrayToAdd = this.subSectionActions;\n break;\n }\n if (elementObject) {\n elementObject.elementType = 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 getActions(): FormAction[] {\n return this.subSectionActions;\n }\n\n getActionNames(): string[] {\n return this.subSectionActions.map(action => action.actionCode);\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 { FormAction } from './action';\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 customAttributes: any;\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 this.customAttributes = sectionReceived?.customAttributes ?? null;\n }\n\n getCustomAttribute(name) { return this.customAttributes?.[name] ?? null; }\n setCustomAttribute(name, value) { return name && (this.customAttributes[name] = value); }\n matchAttribute(name, value) { return this.customAttributes?.[name] === value; }\n\n get code() { return this.sectionCode; }\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 getActions(): FormAction[] {\n let actionArray = [];\n if (this.subSections && this.subSections.length > 0) {\n for (const subSection of this.subSections) {\n actionArray = actionArray.concat(subSection.getActions());\n }\n }\n return actionArray;\n }\n\n getActionNames(): string[] {\n let actionArray = [];\n if (this.subSections && this.subSections.length > 0) {\n for (const subSection of this.subSections) {\n actionArray = actionArray.concat(subSection.getActionNames());\n }\n }\n return actionArray;\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 { FormAction } from './action';\nimport { FieldDescriptor, FieldOption } from './field';\nimport { RecordTable } from './table/table';\nimport { RecordFormSection } from './section';\nimport { RecordFormSubSection } from './subsection';\nimport { NO_ERROR, HEADER } from './form.constants';\nimport { TableRecordData } from './table/row-data';\n\nconst ACTIVE = 'active';\nconst SHOW = 'show';\nconst HIDE = 'hide';\nconst ENABLE = 'enable';\nconst DISABLE = 'disable';\nconst CLEAN = 'clean';\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 interface FieldPayload {\n fieldCode: string;\n fieldValue: any;\n editable: boolean;\n visible: boolean;\n required: boolean;\n fieldOptions: string,\n}\n\nexport interface TablePayload {\n tableCode: string;\n visible: boolean;\n currentPage: number;\n requestedPage: number;\n recordsPerPage: number;\n currentFilter: any,\n sortingColumn: string;\n sortingDirection: string;\n}\n\ninterface FormPayload {\n fields: FieldPayload[],\n tables: TablePayload[],\n}\n\nexport class FormStructureAndData {\n state: string;\n _name: string;\n _formConfig: any;\n private _title: string;\n private _stateFlow: StateFlow;\n private _fieldArray: FieldDescriptor[];\n private _fields = {};\n private _actionArray: FormAction[];\n private _actions = {};\n private _tableArray: RecordTable[];\n private _tables = {};\n private _sectionArray: RecordFormSection[];\n private _sections = {};\n private _immutableData = {};\n private _extraInfo = {};\n private _exclusiveSectionsByAttr = {};\n\n constructor(definitionReceived, formConfig) {\n this._formConfig = formConfig;\n this.state = '';\n this._actionArray = [];\n this._fieldArray = [];\n this._tableArray = [];\n this._sectionArray = [];\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, this._formConfig);\n const globalActionCode = globalAction.actionCode;\n if (globalActionCode) {\n this._actionArray.push(globalAction);\n this._actions[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, this._formConfig);\n const fieldCode = fieldToAdd.fieldCode;\n if (fieldCode) {\n this._fieldArray.push(fieldToAdd);\n this._fields[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 = this._formConfig.defaultStateFlow.states;\n }\n return { ...objDef, visibleStates, enabledStates };\n });\n for (const tableReceived of tables) {\n const tableToAdd = new RecordTable(tableReceived, this._formConfig);\n const tableCode = tableToAdd.tableCode;\n if (tableCode) {\n this._tableArray.push(tableToAdd);\n this._tables[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._sectionArray.push(sectionToAdd);\n this._sections[sectionCode] = sectionToAdd;\n }\n }\n }\n }\n\n getTitle(): string { return this._title; }\n setTitle(title: string): void { this._title = title; }\n get name(): string { return this._name; }\n set name(name) { this._name = name; }\n\n // Estados\n get defaultState(): string { return this._stateFlow.defaultState; }\n supportState(state: string): boolean { return this._stateFlow.states?.includes(state); }\n supportMode(state: string): boolean { return this.supportState(state); }\n get states(): any[] { return this._stateFlow.states; }\n\n getCurrentState(): string { return this.state; }\n\n changeState(newState: string): boolean {\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?: string): void {\n if (!states || !transitions) {\n this._stateFlow = JSON.parse(JSON.stringify(this._formConfig.defaultStateFlow));\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 // immutable Data\n getImmutableElement(name: string): any { return this._immutableData?.[name]?.value ?? null; }\n set immutableData(immutableData) { Object.assign(this._immutableData, immutableData); }\n get immutableData(): any { return JSON.parse(JSON.stringify(this._immutableData)); }\n\n // extra Info\n getExtraInfo(name: string): any { return this._extraInfo?.[name]?.value ?? null; }\n set extraInfo(extraInfo) { Object.assign(this._extraInfo, extraInfo); }\n get extraInfo(): any { return JSON.parse(JSON.stringify(this._extraInfo)); }\n\n // Fields\n get fields(): any { return this._fields; }\n get fieldNames(): string[] { return this.getFieldNames(); }\n getFields(): FieldDescriptor[] { return this._fieldArray; }\n getFieldNames(): string[] { return this._fieldArray.map(field => field.fieldCode); }\n getField(code: string): FieldDescriptor { return (code && this._fields?.[code]) ? this._fields[code] : null; }\n enableField(code: string): void { this.getField(code)?.enable(); }\n disableField(code: string): void { this.getField(code)?.disable(); }\n getFieldValue(code: string): any { return this.getField(code)?.getValue(); }\n getFieldOptionText(code: string): any { return this.getField(code)?.getOptionText(); }\n getFieldOptions(code: string): FieldOption[] { return this.getField(code)?.getFieldOptions() ?? null; }\n setFieldValue(code: string, value: any): any { this.getField(code)?.setValue(value); }\n setFieldError(code: string, errorCode: string, message: string, type: string = 'error'): any { this.getField(code)?.setError(errorCode, message, type); }\n setFieldIntrinsicErrorMessage(code: string, message: string): any { this.getField(code)?.setIntrinsicErrorMessage(message); }\n setFieldRequired(code: string, required: boolean): any { this.getField(code)?.setRequired(required); }\n setFieldErrorMessage(code: string, message: string): any { this.getField(code)?.setErrorMessage(message); }\n\n setFieldOptions(code: string, optionsArray: any[], idAttribute: string, nameAttribute: string): any {\n const field = this.getField(code);\n if (field && optionsArray?.length > 0) {\n const fieldOptions = optionsArray.map(item => ({\n fieldOptionId: item[idAttribute],\n fieldOptionValue: item[nameAttribute]\n }));\n field.setFieldOptions(fieldOptions);\n }\n }\n\n getFieldSet(filter, inputCodes: string[] | string, secCode?: string, subCode?: string): string[] {\n let codes = null;\n if (typeof inputCodes === 'string' && inputCodes) {\n codes = [inputCodes];\n } else if (Array.isArray(inputCodes) && inputCodes.length > 0) {\n codes = inputCodes;\n } else if (secCode && !subCode) {\n codes = this.getSection(secCode)?.getFieldNames() ?? [];\n } else if (secCode && subCode) {\n codes = this.getSubSection(secCode, subCode)?.getFieldNames() ?? [];\n } else {\n codes = this.getFieldNames();\n }\n return (filter) ? codes.filter(fld => filter(this.getField(fld))) : codes;\n }\n\n applyOnFields(processFunc, inputCodes?: string[] | string, secCode?: string, subCode?: string): number {\n if (!processFunc) { return 0; }\n const codes = this.getFieldSet(null, inputCodes, secCode, subCode);\n let processedFields = 0;\n for (const code of codes) {\n const field = this.getField(code);\n if (field) {\n try {\n processFunc(field);\n processedFields += 1;\n } catch (e) {\n console.log(`Error procesando funcion en campo ${field}: ${e}`);\n }\n }\n }\n return processedFields;\n }\n\n enableFields(codes?: string[] | string, secCode?: string, subCode?: string): number {\n return this.applyOnFields(fld => fld.enable(), codes, secCode, subCode);\n }\n\n showFields(codes?: string[] | string, secCode?: string, subCode?: string): number {\n return this.applyOnFields(fld => fld.show(), codes, secCode, subCode);\n }\n\n hideFields(codes?: string[] | string, secCode?: string, subCode?: string): number {\n return this.applyOnFields(fld => fld.hide(), codes, secCode, subCode);\n }\n\n showLabelFields(codes?: string[] | string, secCode?: string, subCode?: string): number {\n return this.applyOnFields(fld => fld.showLablel(), codes, secCode, subCode);\n }\n\n hideLabelFields(codes?: string[] | string, secCode?: string, subCode?: string): number {\n return this.applyOnFields(fld => fld.hideLabel(), codes, secCode, subCode);\n }\n\n disableFields(codes?: string[] | string, secCode?: string, subCode?: string): number {\n return this.applyOnFields(fld => fld.disable(), codes, secCode, subCode);\n }\n\n cleanFields(codes?: string[] | string, secCode?: string, subCode?: string): number {\n return this.applyOnFields(fld => fld.clean(), codes, secCode, subCode);\n }\n\n tagFieldsWithError(message: string, codes?: string[] | string, secCode?: string, subCode?: string): number {\n return this.applyOnFields(fld => fld.setErrorMessage(message), codes, secCode, subCode);\n }\n\n cleanErrorFields(codes?: string[] | string, secCode?: string, subCode?: string): number {\n return this.tagFieldsWithError('', codes, secCode, subCode);\n }\n\n tagEmptyRequiredFields(message: string, codes = null, secCode?: string, subCode?: string): boolean {\n return this.tagFieldsWithError(message, this.getRequiredEmptyFields(codes, secCode, subCode)) > 0;\n }\n\n getRequiredFields(codes?: string[] | string, secCode?: string, subCode?: string): string[] {\n return this.getFieldSet(fld => fld.required, codes, secCode, subCode);\n }\n\n getRequiredEmptyFields(codes?: string[] | string, secCode?: string, subCode?: string): string[] {\n return this.getFieldSet(fld => fld.required && fld.empty, codes, secCode, subCode);\n }\n\n getChangedFields(codes?: string[] | string, secCode?: string, subCode?: string): string[] {\n return this.getFieldSet(fld => !fld.outputOnly && fld.hasChanged(), codes, secCode, subCode);\n }\n\n getFieldsWithValidationIssues(codes?: string[] | string, secCode?: string, subCode?: string): string[] {\n return this.getFieldSet(fld => fld.errorCode !== NO_ERROR, codes, secCode, subCode);\n }\n\n getFieldsValues(inputCodes?: string[] | string, secCode?: string, subCode?: string): any {\n const codes = this.getFieldSet(null, inputCodes, secCode, subCode);\n const resultObject = {};\n for (let index = 0; index < codes.length; index++) {\n const code = codes[index];\n if (code) {\n resultObject[code] = this._fields?.[code]?.getValue() ?? null;\n }\n }\n return resultObject;\n }\n\n // Acciones\n get actions() { return this._actions; }\n\n getActionsByAttribute(name: string, value): FormAction[] { return this._actionArray.filter(actionItem => actionItem.matchAttribute(name, value)); }\n getActions(): FormAction[] { return this._actionArray; }\n getAction(code: string): FormAction { return (code && this._actions?.[code]) ? this._actions[code] : null; }\n showActions(codes: string[] | string): void { return this.execOnActions(codes, SHOW); }\n hideActions(codes: string[] | string): void { return this.execOnActions(codes, HIDE); }\n enableActions(codes: string[] | string): void { return this.execOnActions(codes, ENABLE); }\n disableActions(codes: string[] | string): void { return this.execOnActions(codes, DISABLE); }\n\n execOnActions(codes: string[] | string, functionName: string): void {\n const actionCodes = (Array.isArray(codes)) ? codes : (codes ? [codes] : []);\n if (!functionName || actionCodes.length === 0) { return; }\n actionCodes.forEach(code => {\n const action = this.getAction(code);\n action?.[functionName]?.();\n });\n }\n\n // Tablas\n get tables(): any { return this.tables; }\n getTables(): RecordTable[] { return this._tableArray; }\n getTable(code: string): RecordTable { return (code && this._tables?.[code]) ? this._tables[code] : null; }\n getTableRecord(code: string, id: string): TableRecordData { return this.getTable(code)?.getTableRecord(id) }\n\n enableTables(codes: string[] | string): void { return this.execOnTables(codes, ENABLE); }\n disableTables(codes: string[] | string): void { return this.execOnTables(codes, DISABLE); }\n showTables(codes: string[] | string): void { return this.execOnTables(codes, SHOW); }\n hideTables(codes: string[] | string): void { return this.execOnTables(codes, HIDE); }\n cleanTables(codes: string[] | string): void { return this.execOnTables(codes, CLEAN); }\n\n execOnTables(codes: string[] | string, functionName: string) {\n const tableCodes = (Array.isArray(codes)) ? codes : (codes ? [codes] : []);\n if (!functionName || tableCodes.length === 0) { return; }\n tableCodes.forEach(code => {\n const table = this.getTable(code);\n table?.[functionName]?.();\n });\n }\n\n // Secciones\n get sections(): any { return this._sections; }\n getSections(): RecordFormSection[] { return this._sectionArray; }\n getSectionsByAttribute(name, value): RecordFormSection[] { return this._sectionArray.filter(item => item.matchAttribute(name, value)); }\n get sectionTitles(): string[] { return this._sectionArray.map(formSection => formSection.sectionTitle); }\n get visibleSections(): RecordFormSection[] { return this._sectionArray.filter(sec => sec.visible); }\n getSection(code: string): RecordFormSection { return (code && this._sections?.[code]) ? this._sections[code] : null; }\n showSections(codes: string[] | string): void { this.execOnSections(codes, SHOW); }\n hideSections(codes: string[] | string): void { this.execOnSections(codes, HIDE); }\n activeSection(): string { return this._exclusiveSectionsByAttr[ACTIVE]; }\n getSubSection(code: string, subCode): RecordFormSubSection { return this.getSection(code)?.getSubsection(subCode) ?? null; }\n showSubSections(code: string, subCodes: string[] | string): void { return this.execOnSubSections(code, subCodes, SHOW); }\n hideSubSections(code: string, subCodes: string[] | string): void { return this.execOnSubSections(code, subCodes, HIDE); }\n getSectionActions(code): FormAction[] { return this.getSection(code)?.getActions() ?? null; }\n getSectionActionNames(code): string[] { return this.getSection(code)?.getActionNames() ?? null; }\n\n activateSection(code: string): void {\n if (code === this._exclusiveSectionsByAttr[ACTIVE]) { return; }\n this.getSection(this.activeSection())?.inactivate();\n this.getSection(code)?.activate();\n this._exclusiveSectionsByAttr[ACTIVE] = code;\n }\n\n execOnSections(codes: string[] | string, functionName: string): void {\n const sectionCodes = (Array.isArray(codes)) ? codes : (codes ? [codes] : []);\n if (!functionName || sectionCodes.length === 0) { return; }\n sectionCodes.forEach(code => {\n const section = this.getSection(code);\n section?.[functionName]?.();\n });\n }\n\n execOnSubSections(code: string, subNames: string[] | string, functionName: string): void {\n const subCodes = (Array.isArray(subNames)) ? subNames : (subNames ? [subNames] : []);\n const section = this.getSection(code);\n if (!functionName || !section || subCodes.length === 0) { return; }\n for (const subCode of subCodes) {\n const subSection = this.getSubSection(code, subCode);\n subSection?.[functionName]?.();\n }\n }\n\n /**\n * Métodos propios de gestión del formulario\n */\n\n cleanData(): void {\n for (const field of this._fieldArray) {\n field.setValue(field.defaultValue);\n }\n for (const table of this._tableArray) {\n table.clean();\n }\n }\n\n getPayload(): any {\n const formData: FormPayload = {\n fields: [],\n tables: [],\n };\n formData.fields = this.getFields().filter(fld => !fld.outputOnly)\n .map(fld => {\n const fieldPayload: FieldPayload = {\n fieldCode: fld.fieldCode,\n fieldValue: fld.getValue(),\n editable: !fld.disabled,\n visible: fld.visible,\n required: fld.required,\n fieldOptions: '',\n }\n return fieldPayload;\n });\n\n formData.tables = this.getTables().map(tbl => {\n const tablePayload: TablePayload = {\n tableCode: tbl.tableCode,\n visible: tbl.visible,\n currentPage: tbl.currentPage,\n requestedPage: tbl.requestedPage,\n recordsPerPage: tbl.recordsPerPage,\n currentFilter: tbl.currentFilter,\n sortingColumn: tbl.sorting.columnName,\n sortingDirection: tbl.sorting.direction,\n };\n return tablePayload\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 // Métodos virtuales para las aplicaciones\n getFormDefinition(formCode) { }\n execServerAction(actionDetail) { }\n goToForm(formCode, token, subject) { }\n loadStack() { }\n saveStack() { }\n\n cleanStack() { this.pageStack = []; }\n resetPageStack() { this.cleanStack() }\n\n findFormInStack(token) {\n const index = this.pageStack.findIndex(item => item?.token === token);\n const data = (index >= 0) ? this.pageStack[index] : null;\n return { index, data };\n }\n\n replaceItem(token, formInfo) {\n if (!token || !formInfo) { return; }\n const { index, data: storedForm } = this.findFormInStack(token);\n let updatedForm: any = null;\n if (index >= 0) {\n updatedForm = { ...storedForm };\n updatedForm.subject = formInfo?.subject ?? storedForm.subject;\n updatedForm.state = formInfo?.state ?? storedForm.state;\n updatedForm.fields = storedForm?.fields ?? {};\n updatedForm.extra = storedForm?.extra ?? {};\n if (formInfo.fields) {\n Object.assign(updatedForm.fields, formInfo.fields);\n }\n if (formInfo.extra) {\n Object.assign(updatedForm.extra, formInfo.extra);\n }\n this.pageStack[index] = updatedForm;\n this.saveStack();\n }\n }\n\n stack(origin, target) {\n const token = nanoid(6);\n this.replaceItem(target.originToken, origin);\n this.pageStack.push({ token, ...target });\n this.saveStack();\n return token;\n }\n\n unstack(token = null) {\n let index = (token) ? this.findFormInStack(token).index : this.pageStack.length - 2;\n let formInfo = null;\n if (index >= 0) {\n formInfo = this.pageStack[index];\n this.pageStack.splice(index + 1);\n this.saveStack();\n }\n return formInfo;\n }\n\n getFormInfo(token: string) {\n const { data } = this.findFormInStack(token);\n return {\n token: data?.token,\n subject: data?.subject,\n state: data?.state,\n originToken: data?.originToken,\n fields: data?.fields ?? {},\n extra: data?.extra ?? {}\n };\n }\n\n openForm(origin: any, target: any) {\n (!origin) && this.cleanStack();\n target.originToken = origin?.token ?? null;\n const token = this.stack(origin, target);\n this.goToForm(target.name, token, target.subject);\n }\n\n backTo(targetToken = null) {\n const formInfo = this.unstack(targetToken);\n formInfo && formInfo.name && this.goToForm(formInfo.name, formInfo.token, formInfo.subject);\n }\n}\n","import { ReplaySubject } 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: ReplaySubject<any> = new ReplaySubject(1);\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 { formActions, NO_ERROR, HEADER } from '../../classes/forms/form.constants';\nimport { FormAction } from '../../classes/forms/action';\nimport { FieldDescriptor, FieldOption } from '../../classes/forms/field';\nimport { RecordTable } from '../../classes/forms/table/table';\nimport { RecordFormSection } from '../../classes/forms/section';\nimport { RecordFormSubSection } from '../../classes/forms/subsection';\n\nconst PAYLOAD_VERSION = 'TUAINEXCHANGE_1.0';\nconst INLINE_ACTION = 'INLINE';\nconst GLOBAL_ACTION = 'GLOBAL';\nconst GET_DATA_ACTION = 'GETDATA';\n\nconst SUBJECT = 'subject';\nconst TOKEN = 'token';\n\n@Component({\n template: `<ng-content></ng-content>`\n})\nexport class BasicFormComponent {\n private _formStructure: FormStructureAndData = null;\n private _controlToken: string = null;\n private _originToken: string;\n private _formRoute: string;\n private _definitionObtained: boolean = false;\n // Eventos de acciones y campos\n private _formSectionsActivate: any = {};\n private _formSectionsInactivate: any = {};\n private _formActionsStart: any = {};\n private _formActionsFinish: any = {};\n private _fieldInputValidation: any = {};\n private _fieldValidationsStart: any = {};\n private _fieldValidationsFinish: any = {};\n // Callback de acciones de tablas\n private _tableSelectionsStart: any = {};\n private _tableSelectionsFinish: any = {};\n private _tableActionsStart: any = {};\n private _tableActionsFinish: any = {};\n private _tableGetDataStart: any = {};\n private _tableGetDataFinish: any = {};\n\n protected inputDataFields: any = {};\n protected extraData: any = {};\n protected _eventEmiter: LibEventManagerService;\n\n\n formConfig: any;\n name: string;\n formSubject: string;\n _errorType: string = '';\n errorCode: string = '';\n errorMessage: string = '';\n errorDetail: string = '';\n visible: boolean = false;\n\n fields: any;\n actions: any;\n sections: any;\n busy: boolean = false;\n\n getTitle() { return this._formStructure?.getTitle(); }\n setTitle(title: string) { return this._formStructure?.setTitle(title); }\n cleanData() { return this._formStructure?.cleanData(); }\n getCurrentState() { return this._formStructure?.getCurrentState(); }\n supportState(state: string) { return this._formStructure?.supportState(state); }\n changeState(state) { return this._formStructure?.changeState(state); }\n getStates() { return this._formStructure?.states; }\n getImmutableElement(name: string) { return this._formStructure?.getImmutableElement(name); }\n getExtraInfo(name: string) { return this._formStructure?.getExtraInfo(name); }\n getFields() { return this._formStructure?.getFields(); }\n getFieldNames() { return this._formStructure?.getFieldNames(); }\n getField(code: string) { return this._formStructure?.getField(code); }\n enableField(code: string) { return this._formStructure?.enableField(code); }\n disableField(code: string) { return this._formStructure?.disableField(code); }\n getFieldValue(code: string): any { return this._formStructure?.getFieldValue(code); }\n getFieldOptionText(code: string): any { return this._formStructure?.getFieldOptionText(code); }\n getFieldsValues(codes: string[]) { return this._formStructure?.getFieldsValues(codes); }\n getFieldOptions(code: string): FieldOption[] { return this._formStructure?.getFieldOptions(code); }\n setFieldValue(code: string, value: any) { return this._formStructure?.setFieldValue(code, value); }\n setFieldRequired(code: string, required: boolean) { return this._formStructure?.setFieldRequired(code, required); }\n setFieldErrorMessage(code: string, errorMessage: string) { return this._formStructure?.setFieldErrorMessage(code, errorMessage); }\n setFieldError(code: string, errorCode: string, message: string, type?: string) { return this._formStructure?.setFieldError(code, errorCode, message, type); }\n setFieldIntrinsicErrorMessage(code: string, message: string) {\n return this._formStructure?.setFieldIntrinsicErrorMessage(code, message);\n }\n setFieldOptions(code, optionsArray, idAttribute, nameAttribute) {\n return this._formStructure?.setFieldOptions(code, optionsArray, idAttribute, nameAttribute);\n }\n getFieldSet(filterFunc?, codes?: string[] | string, secCode?: string, subCode?: string) {\n return this._formStructure?.getFieldSet(filterFunc, codes, secCode, subCode);\n }\n applyOnFields(processFunc, codes?: string[] | string, secCode?: string, subCode?: string) {\n return this._formStructure?.applyOnFields(processFunc, codes, secCode, subCode);\n }\n applyProcessToAllFields(processFunc) {\n return this._formStructure?.applyOnFields(processFunc);\n }\n cleanFields(codes?: string[] | string, secCode?: string, subCode?: string) {\n return this._formStructure?.cleanFields(codes, secCode, subCode);\n }\n getRequiredFields(codes?: string[] | string, secCode?: string, subCode?: string) {\n return this._formStructure?.getRequiredFields(codes, secCode, subCode);\n }\n getRequiredEmptyFields(codes?: string[] | string, secCode?: string, subCode?: string) {\n return this._formStructure?.getRequiredEmptyFields(codes, secCode, subCode);\n }\n getChangedFields(codes?: string[] | string, secCode?: string, subCode?: string) {\n return this._formStructure?.getChangedFields(codes, secCode, subCode);\n }\n getFieldsWithValidationIssues(codes?: string[] | string, secCode?: string, subCode?: string) {\n return this._formStructure?.getFieldsWithValidationIssues(codes, secCode, subCode);\n }\n tagFieldsWithError(errorMessage, codes?: string[] | string, secCode?: string, subCode?: string) {\n return this._formStructure?.tagFieldsWithError(errorMessage, codes, secCode, subCode);\n }\n cleanErrorFields(codes?: string[] | string, secCode?: string, subCode?: string) {\n return this._formStructure?.cleanErrorFields(codes, secCode, subCode);\n }\n showLabelFields(codes?: string[] | string, secCode?: string, subCode?: string) {\n return this._formStructure?.showLabelFields(codes, secCode, subCode);\n }\n hideLabelFields(codes?: string[] | string, secCode?: string, subCode?: string) {\n return this._formStructure?.hideLabelFields(codes, secCode, subCode);\n }\n enableFields(codes?: string[] | string, secCode?: string, subCode?: string) {\n return this._formStructure?.enableFields(codes, secCode, subCode);\n }\n disableFields(codes?: string[] | string, secCode?: string, subCode?: string) {\n return this._formStructure?.disableFields(codes, secCode, subCode);\n }\n /**\n * @deprecated Use enableFields\n */\n enableEditFields(codes?: string[] | string, secCode?: string, subCode?: string) {\n return this.enableFields(codes, secCode, subCode);\n }\n /**\n * @deprecated Use disableFields\n */\n disableEditFields(codes?: string[] | string, secCode?: string, subCode?: string) {\n return this.disableFields(codes, secCode, subCode);\n }\n showFields(codes?: string[] | string, secCode?: string, subCode?: string) {\n return this._formStructure?.showFields(codes, secCode, subCode);\n }\n hideFields(codes?: string[] | string, secCode?: string, subCode?: string) {\n return this._formStructure?.hideFields(codes, secCode, subCode);\n }\n getActionsByAttribute(name: string, value) {\n return this._formStructure?.getActionsByAttribute(name, value);\n }\n getHeaderActions() {\n return this._formStructure?.getActionsByAttribute('location', HEADER);\n }\n getAction(actionCode: string): FormAction {\n return this._formStructure?.getAction(actionCode);\n }\n showActions(actionArray): void {\n return this._formStructure?.showActions(actionArray);\n }\n hideActions(actionArray): void {\n return this._formStructure?.hideActions(actionArray);\n }\n enableActions(actionArray): void {\n return this._formStructure?.enableActions(actionArray);\n }\n disableActions(actionArray): void {\n return this._formStructure?.disableActions(actionArray);\n }\n showAction(code: string): void {\n return this._formStructure?.showActions(code);\n }\n hideAction(code: string): void {\n return this._formStructure?.hideActions(code);\n }\n enableAction(code: string): void {\n return this._formStructure?.enableActions(code);\n }\n disableAction(code: string): void {\n return this._formStructure?.disableActions(code);\n }\n getSections(): RecordFormSection[] {\n return this._formStructure?.getSections();\n }\n activateSection(code): void {\n return this._formStructure?.activateSection(code);\n }\n getSectionsTitles(): string[] {\n return this._formStructure?.getSections().map(sec => sec.title);\n }\n getSection(code: string): RecordFormSection {\n return this._formStructure?.getSection(code);\n }\n showSection(code: string): void {\n return this._formStructure?.showSections(code);\n }\n hideSection(code: string): void {\n return this._formStructure?.hideSections(code);\n }\n showSections(codes: string[] | string): void {\n return this._formStructure?.showSections(codes);\n }\n hideSections(codes: string[] | string): void {\n return this._formStructure?.hideSections(codes);\n }\n getSubSection(code: string, subCode: string): RecordFormSubSection {\n return this._formStructure?.getSubSection(code, subCode);\n }\n showSubSection(code: string, subCode: string): void {\n return this._formStructure?.showSubSections(code, subCode);\n }\n hideSubSection(code: string, subCode: string): void {\n return this._formStructure?.hideSubSections(code, subCode);\n }\n showSubSections(code: string, subCodes: string[] | string): void {\n return this._formStructure?.showSubSections(code, subCodes);\n }\n hideSubSections(code: string, subCodes: string[] | string): void {\n return this._formStructure?.hideSubSections(code, subCodes);\n }\n getSectionActions(code: string): FormAction[] {\n return this._formStructure?.getSectionActions(code);\n }\n getSectionActionNames(code: string): string[] {\n return this._formStructure?.getSectionActionNames(code);\n }\n\n getTables() {\n return this._formStructure?.getTables();\n }\n showTables(codes: string[] | string) {\n return this._formStructure?.showTables(codes);\n }\n hideTables(codes: string[] | string) {\n return this._formStructure?.hideTables(codes);\n }\n cleanTables(codes: string[] | string) {\n return this._formStructure?.cleanTables(codes);\n }\n getTable(code: string) {\n return this._formStructure?.getTable(code);\n }\n showTable(code: string) {\n return this._formStructure?.showTables(code);\n }\n hideTable(code: string) {\n return this._formStructure?.hideTables(code);\n }\n cleanTable(code: string) {\n return this._formStructure?.getTable(code)?.clean();\n }\n getTableRecord(code: string, recordId: any) {\n return this._formStructure?.getTableRecord(code, recordId);\n }\n\n\n constructor(\n protected formManagerService: LibFormManagerService,\n protected _eventManager: LibEventManagerService,\n protected fileMgmtServices: LibFileManagementService) {\n this._eventEmiter = this._eventManager;\n this.cleanStart();\n this.customPreProcessing();\n }\n\n setConfig(formConfig) {\n this.formConfig = formConfig;\n }\n\n cleanStart() {\n this._errorType = '';\n this.errorCode = '';\n this.errorMessage = '';\n this.errorDetail = '';\n this._formStructure = null;\n this.fields = null;\n this.actions = null;\n this.sections = null;\n this._controlToken = null;\n this.inputDataFields = {};\n this._definitionObtained = false;\n // Se limpian los manejadores de eventos\n this.visible = false;\n this.busy = false;\n this._formSectionsActivate = {};\n this._formSectionsInactivate = {};\n this._formActionsStart = {};\n this._formActionsFinish = {};\n this._fieldInputValidation = {};\n this._fieldValidationsStart = {};\n this._fieldValidationsFinish = {};\n this._tableSelectionsStart = {};\n this._tableSelectionsFinish = {};\n this._tableActionsStart = {};\n this._tableActionsFinish = {};\n this._tableGetDataStart = {};\n this._tableGetDataFinish = {};\n }\n\n get formVisible(): boolean { return this.visible; }\n get formManager() { return this; }\n get formCode(): string { return this.name; }\n set formCode(name: string) { this.name = name; }\n get inServerProcess() { return this.busy; }\n get form(): FormStructureAndData { return this._formStructure; }\n\n get state(): string { return this._formStructure?.state; }\n get currentState(): string { return this._formStructure?.state; }\n set currentState(state: string) { this._formStructure.changeState(state); }\n get immutableData(): any { return this._formStructure?.immutableData }\n get extraInfo(): any { return this._formStructure?.extraInfo }\n get visibleSections(): RecordFormSection[] { return this._formStructure?.visibleSections; }\n\n get formRoute(): string { return this._formRoute; }\n set formRoute(route: string) { this._formRoute = route; }\n\n get subject(): string { return this.formSubject; }\n\n // Métodos virtuales\n customPreProcessing() { }\n customFormStart() { }\n displayActionServerError() { }\n displayValidationServerError() { }\n displayTableServerError() { }\n showFieldInfo(fieldCode?: string, detail?: any) { }\n showModalDialog(title, body, options, callback?, params?) { }\n openUploadDialog(title, body, options, callback?, params?) { }\n\n /**\n * @deprecated Use supportState\n */\n supportMode(state: string): boolean { return this.supportState(state); }\n\n /**\n * @deprecated Use getField\n */\n getFieldObject(code: string): FieldDescriptor { return this.getField(code); }\n\n /**\n * @deprecated Use getAction\n */\n getActionObject(code: string): FormAction { return this.getAction(code); }\n\n /**\n * @deprecated Use getTable\n */\n getTableObject(code: string): RecordTable { return this.getTable(code); }\n\n /**\n * @deprecated Use getSection\n */\n getSectionObject(code: string): RecordFormSection { return this.getSection(code); }\n\n /**\n * @deprecated Use changeState\n */\n changeFormMode(state: string): boolean { return this.changeState(state); }\n\n /**\n * @deprecated Use subject\n */\n getFormSubject(): string { return this.subject; }\n /**\n * @deprecated Use subject\n */\n getSubject(): string { return this.formSubject; }\n /**\n * @deprecated Use subject\n */\n getformSubject(): string { return this.getSubject(); }\n\n\n numSections(): number { return this._formStructure?.sections.length; }\n\n subscribeAppEvent(eventName: string, callback): void {\n this._eventEmiter.subscribe(eventName, callback);\n }\n\n openForm(name: string, data = null, backData = null, cleanStack = false): void {\n let origin = null;\n if (!cleanStack) {\n origin = { ...backData, name: this.name, url: this._formRoute, token: this._controlToken };\n origin.subject = origin?.subject ?? this.formSubject;\n origin.state = origin?.state ?? this.state;\n origin.fields = origin?.fields ?? {};\n origin.extra = origin?.extra ?? {};\n }\n const target = { ...data, name };\n target.subject = target?.subject ?? null;\n target.state = target?.state ?? null;\n target.fields = target?.fields ?? {};\n target.extra = target?.extra ?? {};\n this.formManagerService.openForm(origin, target);\n }\n\n canGoBack(): boolean { return this._originToken !== null }\n goBack(): void { return this.formManagerService.backTo(); }\n goBackForm(): void { return this.goBack(); }\n getOriginDetail(): any { return this.formManagerService.getFormInfo(this._originToken); }\n\n setError(errorType: string, errorMessage: string, errorDetail: string): void {\n this._errorType = errorType || '';\n this.errorMessage = errorMessage || '';\n this.errorDetail = errorDetail || '';\n }\n\n resetError(): void { this.setError(null, null, null); }\n getErrorType(): string { return this._errorType; }\n getErrorMessage(): string { return this.errorMessage; }\n getErrorDetail(): string { return this.errorDetail; }\n getErrorCode(): string { return this._errorType; }\n\n getFormParameter(name: string): string {\n return (name) ? (this.extraData?.[name] ?? null) : null;\n }\n\n preocessInputParams(params: any): string {\n this._controlToken = params?.[TOKEN] ?? null;\n const { token, subject, state, fields, extra, originToken } = this.formManagerService.getFormInfo(this._controlToken);\n if (!this._controlToken || this._controlToken !== token) {\n return null;\n }\n this.formSubject = params?.[SUBJECT] ?? subject ?? null;\n this.inputDataFields = fields;\n this.extraData = extra;\n this._originToken = originToken;\n return state;\n }\n\n subscribeSectionActivation(): void {\n const formSections = this._formStructure.sections;\n const sectionNames = Object.keys(formSections);\n for (let index = 0; index < sectionNames.length; index++) {\n const sectionName = sectionNames[index];\n const section = formSections[sectionName];\n section.activation.subscribe(code => this.launchSectionActivation(code));\n section.inactivation.subscribe(code => this.launchSectionInactivation(code));\n }\n }\n\n subscribeFieldsSubjects(): void {\n const formFields = this._formStructure.getFields();\n if (Array.isArray(formFields)) {\n formFields.forEach(field => {\n field.editionFinish.subscribe(event => {\n const { code, intrinsicValidation } = event;\n this.startFieldValidation(code, intrinsicValidation);\n });\n field.editionPartial.subscribe(event => {\n const { code, intrinsicValidation } = event;\n this.startFieldInputValidation(code, intrinsicValidation);\n });\n field.detailRequest.subscribe(event => this.showFieldInfo(event.code, event.detail));\n });\n }\n }\n\n subscribeActionSubjects(): void {\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(): void {\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): Promise<void> {\n let initialState: string = this.preocessInputParams(params);\n if (!this.name) { return; }\n if (!this._definitionObtained) {\n this.busy = true;\n const formDefinition = await this.formManagerService.getFormDefinition(this.name);\n this.busy = false;\n this._formStructure = new FormStructureAndData(formDefinition, this.formConfig);\n this.fields = this._formStructure.fields;\n this.actions = this._formStructure.actions;\n this.sections = this._formStructure.sections;\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 const inputFieldNames = Object.keys(this.inputDataFields);\n for (let index = 0; index < inputFieldNames.length; index++) {\n const fieldCode = inputFieldNames[index];\n const fieldValue = this.inputDataFields[fieldCode];\n this.setFieldValue(fieldCode, fieldValue);\n }\n const recordResponse = await this.requestFormAction(formActions.getData);\n this.checkErrorRecordReceived(recordResponse);\n this.visible = true;\n this.subscribeSectionActivation();\n this.subscribeFieldsSubjects();\n this.subscribeActionSubjects();\n this.subscribeTableSubjects();\n this.customFormStart();\n }\n\n checkErrorRecordReceived(recordResponse: any): boolean {\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 return true;\n }\n\n errorOccured(): boolean {\n return (this.errorCode !== NO_ERROR);\n }\n\n /**\n * Soporte manejo de eventos de formulario\n */\n\n async requestFormAction(actionCode: string, actionSubject: any = {}): Promise<any> {\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 = NO_ERROR;\n this.errorMessage = '';\n this.errorDetail = '';\n this.busy = true;\n const formActionResponse: any = await this.formManagerService.execServerAction(actionDetail);\n this.busy = 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: any) {\n const {\n currentMode, formSubject, actions, fields, recordTables,\n returnedFile, immutableData, extraInfo,\n } = formContent;\n currentMode && this.changeState(currentMode);\n if (formSubject) { this.formSubject = formSubject; }\n if (actions && actions.length > 0) {\n for (const changedAction of actions) {\n const actionObject = this.getAction(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.getField(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.getTable(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(codes: string[] | string, callbackMethod) {\n const sectionSet = (Array.isArray(codes)) ? codes : (codes ? [codes] : []);\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(codes: string[] | string, callbackMethod) {\n const sectionSet = (Array.isArray(codes)) ? codes : (codes ? [codes] : []);\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(codes: string[] | string, callbackMethod) {\n const actionSet = (Array.isArray(codes)) ? codes : (codes ? [codes] : []);\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(codes: string[] | string, callbackMethod) {\n const actionSet = (Array.isArray(codes)) ? codes : (codes ? [codes] : []);\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(code: string) {\n const sectionObject = this._formStructure.getSection(code);\n if (!sectionObject) { return; }\n const clientSectionMethods = this._formSectionsActivate[code];\n if (clientSectionMethods) {\n for (const clientSectionMethod of clientSectionMethods) {\n clientSectionMethod(sectionObject);\n }\n }\n }\n\n async launchSectionInactivation(code: string) {\n const sectionObject = this._formStructure.getSection(code);\n if (!sectionObject) { return; }\n const clientSectionMethods = this._formSectionsInactivate[code];\n if (clientSectionMethods) {\n for (const clientSectionMethod of clientSectionMethods) {\n clientSectionMethod(sectionObject);\n }\n }\n }\n\n async startAction(code: string) {\n const actionObject = this.getAction(code);\n if (!actionObject) { return; }\n this.resetError();\n actionObject.start();\n const clientActionMethods = this._formActionsStart[code];\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 action.newState && this.changeState(action.newState);\n } else {\n this.displayActionServerError();\n }\n action.stop();\n }\n\n async finishAction(action, actionResult) {\n const finishActionMethods = this._formActionsFinish[action.actionCode];\n if (finishActionMethods) {\n const clientActionPromises = [];\n for (const clientActionMethod of finishActionMethods) {\n clientActionPromises.push(clientActionMethod(action, actionResult));\n }\n await Promise.all(clientActionPromises);\n }\n }\n\n completeGlobalAction(action: any) {\n return this.startServerAction(action);\n }\n\n /**\n * Manejadores de eventos para validaciones sobre campos\n */\n\n addFieldInputValidation(codes: string[] | string, callbackMethod) {\n const fieldSet = (Array.isArray(codes)) ? codes : (codes ? [codes] : []);\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(codes: string[] | string, callbackMethod) {\n const fieldSet = (Array.isArray(codes)) ? codes : (codes ? [codes] : []);\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(codes: string[] | string, callbackMethod) {\n const fieldSet = (Array.isArray(codes)) ? codes : (codes ? [codes] : []);\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, intrinsicValidation: boolean = true) {\n const fieldToValidate = this.getField(fieldCode);\n if (!fieldToValidate) { return false; }\n fieldToValidate.resetError();\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, intrinsicValidation: boolean = true) {\n const fieldToValidate = this.getField(fieldCode);\n if (!fieldToValidate || !intrinsicValidation) { return; }\n fieldToValidate.resetError();\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: string | FieldDescriptor) {\n const fieldObj = (typeof inputField === 'string')\n ? this.getField(inputField) : inputField;\n let finish = true;\n let validationResult = null;\n if (fieldObj.backend) {\n fieldObj.validating = true;\n validationResult = await this\n .requestFormAction(formActions.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 fieldObj.validating = false;\n }\n\n async finishFieldValidation(fieldObject: any, validationResult: boolean) {\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: string) {\n return this.startServerFieldValidation(fieldCode);\n }\n\n /**\n * Manejadores de eventos para acciones sobre Tablas\n */\n\n addTableActionStart(code: string, actionCode: string, callbackMethod) {\n const tableObject = this.getTable(code);\n if (!tableObject) {\n return;\n }\n const inlineActionObject = tableObject.getAction(actionCode);\n if (!inlineActionObject) {\n return;\n }\n let tableEventHandlers = null;\n if (this._tableActionsStart[code]) {\n tableEventHandlers = this._tableActionsStart[code];\n } else {\n tableEventHandlers = {};\n this._tableActionsStart[code] = tableEventHandlers;\n }\n if (!tableEventHandlers[actionCode]) {\n tableEventHandlers[actionCode] = [];\n }\n tableEventHandlers[actionCode].push(callbackMethod);\n }\n\n addTableActionFinish(code: string, actionCode: string, callbackMethod) {\n const tableObject = this.getTable(code);\n if (!tableObject) {\n return;\n }\n const inlineActionObject = tableObject.getAction(actionCode);\n if (!inlineActionObject) {\n return;\n }\n let tableEventHandlers = null;\n if (this._tableActionsFinish[code]) {\n tableEventHandlers = this._tableActionsFinish[code];\n } else {\n tableEventHandlers = {};\n this._tableActionsFinish[code] = tableEventHandlers;\n }\n if (!tableEventHandlers[actionCode]) {\n tableEventHandlers[actionCode] = [];\n }\n tableEventHandlers[actionCode].push(callbackMethod);\n }\n\n addTableSelectionStart(code: string, callbackMethod) {\n const tableObject = this.getTable(code);\n if (!tableObject) { return; }\n let tableEventHandlers = null;\n if (this._tableSelectionsStart[code]) {\n tableEventHandlers = this._tableSelectionsStart[code];\n } else {\n tableEventHandlers = [];\n this._tableSelectionsStart[code] = tableEventHandlers;\n }\n tableEventHandlers.push(callbackMethod);\n }\n\n addTableSelectionFinish(code: string, callbackMethod) {\n const tableObject = this.getTable(code);\n if (!tableObject) { return; }\n let tableEventHandlers = null;\n if (this._tableSelectionsFinish[code]) {\n tableEventHandlers = this._tableSelectionsFinish[code];\n } else {\n tableEventHandlers = [];\n this._tableSelectionsFinish[code] = tableEventHandlers;\n }\n tableEventHandlers.push(callbackMethod);\n }\n\n addTableGetDataStart(code: string, callbackMethod) {\n const tableObject = this.getTable(code);\n if (!tableObject) {\n return;\n }\n let tableEventHandlers = null;\n if (this._tableGetDataStart[code]) {\n tableEventHandlers = this._tableGetDataStart[code];\n } else {\n tableEventHandlers = [];\n this._tableGetDataStart[code] = tableEventHandlers;\n }\n tableEventHandlers.push(callbackMethod);\n }\n\n addTableGetDataFinish(code: string, callbackMethod) {\n const tableObject = this.getTable(code);\n if (!tableObject) {\n return;\n }\n let tableEventHandlers = null;\n if (this._tableGetDataFinish[code]) {\n tableEventHandlers = this._tableGetDataFinish[code];\n } else {\n tableEventHandlers = {};\n this._tableGetDataFinish[code] = tableEventHandlers;\n }\n tableEventHandlers[GET_DATA_ACTION] = callbackMethod;\n }\n\n async startTableGlobalAction(tableActionEvent: any) {\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: any) {\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(formActions.tableAction, actionSubject);\n finish = !this.errorOccured();\n }\n if (finish) {\n await this.finishTableGlobalAction(tableActionDetail, actionResult);\n action.newState && this.changeState(action.newState);\n } else {\n this.displayTableServerError();\n }\n tableObject.freeWaiting();\n }\n\n async finishTableGlobalAction(tableActionDetail: any, 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: any) {\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: any) {\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: this.formConfig.tableActions.inline,\n actionCode,\n tableRecordId: recordId,\n tableRecordData: recordData\n };\n actionResult = await this\n .requestFormAction(formActions.tableAction, actionSubject);\n finish = !this.errorOccured();\n }\n if (finish) {\n this.finishTableAction(tableActionDetail, actionResult);\n action.newState && this.changeState(action.newState);\n } else {\n this.displayTableServerError();\n }\n tableObject.freeWaiting();\n }\n\n completeInlineAction(tableAction: any) {\n return this.startTableServerAction(tableAction);\n }\n\n async finishTableAction(tableActionDetail: any, 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: any) {\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: any) {\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: this.formConfig.tableActions.rowSelection,\n actionCode: null,\n tableRecordId: recordId,\n tableRecordData: recordData\n };\n actionResult = await this\n .requestFormAction(formActions.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: any, 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: any) {\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: any) {\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: this.formConfig.tableActions.selection,\n actionCode,\n selectedRecords\n };\n actionResult = await this\n .requestFormAction(formActions.tableAction, actionSubject);\n finish = !this.errorOccured();\n }\n if (finish) {\n this.finishTableSelectionAction(tableActionDetail, actionResult);\n action.newState && this.changeState(action.newState);\n } else {\n this.displayTableServerError();\n }\n tableObject.freeWaiting();\n }\n\n async finishTableSelectionAction(tableActionDetail: any, 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: any) {\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: any) {\n const { tableObject, tableCode } = tableActionDetail;\n tableObject.putOnWait();\n const actionSubject = { tableCode };\n const actionResult = await this\n .requestFormAction(formActions.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: any, 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: string, reqFieldMessage?) {\n this.cleanErrorFields(null, sectionCode);\n const requiredFieldMessage = reqFieldMessage ?? this.formConfig.formStandardErrors.requiredField\n const numErrors = this.tagFieldsWithError(this.getRequiredEmptyFields(null,\n sectionCode), null, requiredFieldMessage);\n return (numErrors === 0);\n }\n\n validateSectionConsistency(sectionCode: string, reqFieldMessage?) {\n this.resetError();\n const completeFields = this.checkSectionRequiredFields(sectionCode, reqFieldMessage);\n if (!completeFields) {\n this.setError(this.formConfig.formStandardErrors.typeWarning,\n this.formConfig.formStandardErrors.validationTitle,\n this.formConfig.formStandardErrors.requiredFields);\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(this.formConfig.formStandardErrors.typeWarning,\n this.formConfig.formStandardErrors.validationTitle,\n this.formConfig.formStandardErrors.requiredFields);\n this.tagFieldsWithError(requiredEmptyFields, null,\n this.formConfig.formStandardErrors.requiredField);\n for (const fieldCode of requiredEmptyFields) {\n const requiredEmptyField = this.getField(fieldCode);\n requiredEmptyField?.focus();\n break;\n }\n }\n const validationIssueFields = this.getFieldsWithValidationIssues(null,\n sectionCode);\n if (!validationError && validationIssueFields.length > 0) {\n validationError = true;\n this.setError(this.formConfig.formStandardErrors.typeWarning,\n this.formConfig.formStandardErrors.validationTitle,\n this.formConfig.formStandardErrors.validationFields);\n for (const fieldCode of validationIssueFields) {\n const validationIssueField = this.getField(fieldCode);\n validationIssueField.focus();\n break;\n }\n }\n return validationError;\n }\n\n copyTableRecordToFields(tableObj: any, mappingTable: any = 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","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 { 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 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","INLINE_ACTION","ChangeDetectionStrategy","HEADER","Subject","yn","nanoid","ReplaySubject","NgModule","CommonModule","RouterModule","FormsModule"],"mappings":"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"}
|