UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

154 lines (152 loc) 5.88 kB
/** * DevExtreme (cjs/__internal/ui/form/m_form.item_options_actions.js) * Version: 24.2.6 * Build date: Mon Mar 17 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 _element_data = require("../../../core/element_data"); var _extend = require("../../../core/utils/extend"); var _m_form = _interopRequireDefault(require("./m_form.item_option_action")); var _m_form2 = require("./m_form.utils"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e } } class WidgetOptionItemOptionAction extends _m_form.default { tryExecute() { const { value: value } = this._options; const instance = this.findInstance(); if (instance) { instance.option(value); return true } return false } } class TabOptionItemOptionAction extends _m_form.default { tryExecute() { const tabPanel = this.findInstance(); if (tabPanel) { const { optionName: optionName, item: item, value: value } = this._options; const itemIndex = this._itemsRunTimeInfo.findItemIndexByItem(item); if (itemIndex >= 0) { tabPanel.option((0, _m_form2.getFullOptionName)(`items[${itemIndex}]`, optionName), value); return true } } return false } } class SimpleItemTemplateChangedAction extends _m_form.default { tryExecute() { return false } } class GroupItemTemplateChangedAction extends _m_form.default { tryExecute() { const preparedItem = this.findPreparedItem(); if (null != preparedItem && preparedItem._prepareGroupItemTemplate && preparedItem._renderGroupContentTemplate) { preparedItem._prepareGroupItemTemplate(this._options.item.template); preparedItem._renderGroupContentTemplate(); return true } return false } } class TabsOptionItemOptionAction extends _m_form.default { tryExecute() { const tabPanel = this.findInstance(); if (tabPanel) { const { value: value } = this._options; tabPanel.option("dataSource", value); return true } return false } } class ValidationRulesItemOptionAction extends _m_form.default { tryExecute() { const { item: item } = this._options; const instance = this.findInstance(); const validator = instance && (0, _element_data.data)(instance.$element()[0], "dxValidator"); if (validator && item) { const filterRequired = item => "required" === item.type; const oldContainsRequired = (validator.option("validationRules") || []).some(filterRequired); const newContainsRequired = (item.validationRules || []).some(filterRequired); if (!oldContainsRequired && !newContainsRequired || oldContainsRequired && newContainsRequired) { validator.option("validationRules", item.validationRules); return true } } return false } } class CssClassItemOptionAction extends _m_form.default { tryExecute() { const $itemContainer = this.findItemContainer(); const { previousValue: previousValue, value: value } = this._options; if ($itemContainer) { $itemContainer.removeClass(previousValue).addClass(value); return true } return false } } const tryCreateItemOptionAction = (optionName, itemActionOptions) => { switch (optionName) { case "editorOptions": case "buttonOptions": return new WidgetOptionItemOptionAction(itemActionOptions); case "validationRules": return new ValidationRulesItemOptionAction(itemActionOptions); case "cssClass": return new CssClassItemOptionAction(itemActionOptions); case "badge": case "disabled": case "icon": case "tabTemplate": case "title": return new TabOptionItemOptionAction((0, _extend.extend)(itemActionOptions, { optionName: optionName })); case "tabs": return new TabsOptionItemOptionAction(itemActionOptions); case "template": { var _itemActionOptions$it, _itemActionOptions$it2; const itemType = (null === itemActionOptions || void 0 === itemActionOptions || null === (_itemActionOptions$it = itemActionOptions.item) || void 0 === _itemActionOptions$it ? void 0 : _itemActionOptions$it.itemType) ?? (null === (_itemActionOptions$it2 = itemActionOptions.itemsRunTimeInfo.findPreparedItemByItem(null === itemActionOptions || void 0 === itemActionOptions ? void 0 : itemActionOptions.item)) || void 0 === _itemActionOptions$it2 ? void 0 : _itemActionOptions$it2.itemType); if ("simple" === itemType) { return new SimpleItemTemplateChangedAction(itemActionOptions) } if ("group" === itemType) { return new GroupItemTemplateChangedAction(itemActionOptions) } return new TabOptionItemOptionAction((0, _extend.extend)(itemActionOptions, { optionName: optionName })) } default: return null } }; var _default = exports.default = tryCreateItemOptionAction;