UNPKG

react-application-core

Version:

A react-based application core for the business applications.

197 lines 7.04 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); 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; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.MultiFieldPlugin = void 0; var util_1 = require("../../../util"); var multifield_support_1 = require("./multifield.support"); var di_1 = require("../../../di"); var MultiFieldPlugin = /** @class */ (function () { /** * @stable [21.01.2021] * @param field */ function MultiFieldPlugin(field) { this.field = field; } /** * @stable [21.01.2021] * @param item */ MultiFieldPlugin.prototype.onAddItem = function (item) { this.onChangeManually(this.asMultiFieldValue(this.onAdd(item))); }; /** * @stable [21.01.2021] * @param item */ MultiFieldPlugin.prototype.onEditItem = function (item) { this.onChangeManually(this.asMultiFieldValue(this.onEdit(item))); }; /** * @stable [01.06.2018] * @param {IMultiItemEntity} item */ MultiFieldPlugin.prototype.onDeleteItem = function (item) { this.onChangeManually(this.asMultiFieldValue(this.onDelete(item))); }; /** * @stable [21.01.2021] * @param item */ MultiFieldPlugin.prototype.onMergeItem = function (item) { if (item.newEntity) { this.onAddItem(item); } else { this.onEditItem(item); } }; MultiFieldPlugin.prototype.onAdd = function (item) { var removeValue = this.removeValue; var addValue = this.addValue; var editArray = this.editValue; var removeValueLength = removeValue.length; var removeArray = removeValue.filter((function (removedItem) { return !util_1.FilterUtils.SAME_ENTITY_PREDICATE(removedItem, item); })); var addArray = addValue; if (removeArray.length === removeValueLength) { addArray = addValue.concat(util_1.MultiFieldUtils.multiItemEntityAsEntity(item)); } return { addArray: addArray, editArray: editArray, removeArray: removeArray, }; }; /** * @stable [11.08.2018] * @param {IMultiItemEntity} item * @returns {IMultiFieldChangesEntity} */ MultiFieldPlugin.prototype.onEdit = function (item) { return multifield_support_1.toMultiFieldChangesEntityOnEdit(item, this.addValue, this.removeValue, this.editValue, this.originalValue); }; /** * @stable [18.08.2018] * @param {IMultiItemEntity} item * @returns {IMultiFieldChangesEntity} */ MultiFieldPlugin.prototype.onDelete = function (item) { return multifield_support_1.toMultiFieldChangesEntityOnDelete(item, this.addValue, this.removeValue, this.editValue, this.originalValue); }; Object.defineProperty(MultiFieldPlugin.prototype, "originalValue", { /** * @stable [21.01.2021] */ get: function () { return util_1.MultiFieldUtils.multiFieldValueAsMultiItemSourceEntities(this.value); }, enumerable: false, configurable: true }); Object.defineProperty(MultiFieldPlugin.prototype, "activeValue", { /** * @stable [14.10.2020] */ get: function () { return this.fieldConverter.fromMultiFieldValueToDefinedEntities({ source: this.originalValue, remove: this.removeValue, add: this.addValue, edit: this.editValue, }); }, enumerable: false, configurable: true }); /** * @stable [02.06.2018] * @param {MultiFieldValueT} value * @returns {number} */ MultiFieldPlugin.prototype.getActiveValueLength = function (value) { return util_1.asMultiFieldEntitiesLength(value); }; Object.defineProperty(MultiFieldPlugin.prototype, "editValue", { /** * @stable [21.01.2021] */ get: function () { return util_1.MultiFieldUtils.multiFieldValueAsMultiItemEditEntities(this.value); }, enumerable: false, configurable: true }); Object.defineProperty(MultiFieldPlugin.prototype, "addValue", { /** * @stable [21.01.2021] */ get: function () { return util_1.MultiFieldUtils.multiFieldValueAsMultiItemAddEntities(this.value); }, enumerable: false, configurable: true }); /** * @stable [21.01.2021] * @param payload */ MultiFieldPlugin.prototype.onChangeManually = function (payload) { this.field.onChangeManually(payload); }; Object.defineProperty(MultiFieldPlugin.prototype, "removeValue", { /** * @stable [29.08.2020] * @private */ get: function () { return util_1.MultiFieldUtils.multiFieldValueAsMultiItemRemoveEntities(this.value); }, enumerable: false, configurable: true }); /** * @stable [21.01.2021] * @param result */ MultiFieldPlugin.prototype.asMultiFieldValue = function (result) { var add = result.addArray; var remove = result.removeArray; var edit = result.editArray; if (add.length || remove.length || edit.length) { return util_1.MultiFieldUtils.fromMultiEntity({ add: add, edit: edit, remove: remove, source: this.originalValue, }); } else { return this.originalValue; } }; Object.defineProperty(MultiFieldPlugin.prototype, "value", { /** * @stable [21.01.2021] */ get: function () { return this.field.value; }, enumerable: false, configurable: true }); __decorate([ di_1.lazyInject(di_1.DI_TYPES.FieldConverter), __metadata("design:type", Object) ], MultiFieldPlugin.prototype, "fieldConverter", void 0); return MultiFieldPlugin; }()); exports.MultiFieldPlugin = MultiFieldPlugin; //# sourceMappingURL=multifield.plugin.js.map