UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

161 lines (159 loc) 5.38 kB
/** * DevExtreme (cjs/__internal/ui/form/form.items_runtime_info.js) * Version: 25.1.5 * Build date: Wed Sep 03 2025 * * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _guid2 = _interopRequireDefault(require("../../../core/guid")); var _renderer = _interopRequireDefault(require("../../../core/renderer")); var _extend = require("../../../core/utils/extend"); var _iterator = require("../../../core/utils/iterator"); var _type = require("../../../core/utils/type"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e } } class FormItemsRunTimeInfo { constructor() { this._map = {} } _findWidgetInstance(condition) { let result; (0, _iterator.each)(this._map, ((_guid, _ref) => { let { widgetInstance: widgetInstance, item: item } = _ref; if (condition(item)) { result = widgetInstance; return false } return true })); return result } _findFieldByCondition(callback, valueExpr) { let result; (0, _iterator.each)(this._map, ((key, value) => { if (callback(value)) { result = "guid" === valueExpr ? key : value[valueExpr]; return false } return true })); return result } clear() { this._map = {} } removeItemsByItems(itemsRunTimeInfo) { (0, _iterator.each)(itemsRunTimeInfo.getItems(), (guid => this.removeItemByKey(guid))) } removeItemByKey(key) { delete this._map[key] } add(options) { const key = options.guid ?? (new _guid2.default).toString(); this._map[key] = options; return key } addItemsOrExtendFrom(itemsRunTimeInfo) { itemsRunTimeInfo.each(((key, itemRunTimeInfo) => { if (this._map[key]) { if (itemRunTimeInfo.widgetInstance) { this._map[key].widgetInstance = itemRunTimeInfo.widgetInstance } this._map[key].$itemContainer = itemRunTimeInfo.$itemContainer } else { this.add({ item: itemRunTimeInfo.item, widgetInstance: itemRunTimeInfo.widgetInstance, guid: key, $itemContainer: itemRunTimeInfo.$itemContainer }) } })) } extendRunTimeItemInfoByKey(key, options) { if (this._map[key]) { this._map[key] = (0, _extend.extend)(this._map[key], options) } } findWidgetInstanceByItem(item) { return this._findWidgetInstance((storedItem => storedItem === item)) } findGroupOrTabLayoutManagerByPath(targetPath) { return this._findFieldByCondition((_ref2 => { let { path: path } = _ref2; return path === targetPath }), "layoutManager") } findKeyByPath(targetPath) { return this._findFieldByCondition((_ref3 => { let { path: path } = _ref3; return path === targetPath }), "guid") } findWidgetInstanceByName(name) { return this._findWidgetInstance((item => name === item.name)) } findWidgetInstanceByDataField(dataField) { return this._findWidgetInstance((item => dataField === ((0, _type.isString)(item) ? item : item.dataField))) } findItemContainerByItem(item) { for (const key in this._map) { if (this._map[key].item === item) { return this._map[key].$itemContainer ?? (0, _renderer.default)() } } return (0, _renderer.default)() } findItemIndexByItem(targetItem) { return this._findFieldByCondition((_ref4 => { let { item: item } = _ref4; return item === targetItem }), "itemIndex") } findPreparedItemByItem(item) { return this._findFieldByCondition((_ref5 => { let { item: currentItem } = _ref5; return currentItem === item }), "preparedItem") } getItems() { return this._map } each(handler) { (0, _iterator.each)(this._map, ((key, itemRunTimeInfo) => { handler(key, itemRunTimeInfo) })) } removeItemsByPathStartWith(path) { const keys = Object.keys(this._map); const filteredKeys = keys.filter((key => { if (this._map[key].path) { var _this$_map$key$path; return null === (_this$_map$key$path = this._map[key].path) || void 0 === _this$_map$key$path ? void 0 : _this$_map$key$path.includes(path, 0) } return false })); filteredKeys.forEach((key => this.removeItemByKey(key))) } } exports.default = FormItemsRunTimeInfo;