UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

44 lines (43 loc) 1.81 kB
/** * DevExtreme (cjs/__internal/grids/new/grid_core/toolbar/controller.js) * Version: 25.2.3 * Build date: Fri Dec 12 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.ToolbarController = void 0; var _index = require("../../../../core/state_manager/index"); var _options_controller = require("../options_controller/options_controller"); var _const = require("./const"); var _utils = require("./utils"); class ToolbarController { constructor(options) { this.options = options; this.itemSubscriptions = {}; this.defaultItems = (0, _index.signal)({}); this.userItems = this.options.oneWay("toolbar.items"); this.items = (0, _index.computed)((() => (0, _utils.normalizeToolbarItems)((0, _utils.getSortedToolbarItems)(this.defaultItems.value), this.userItems.value, _const.DEFAULT_TOOLBAR_ITEMS))) } addDefaultItem(item) { let needRender = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : (0, _index.signal)(true); const { name: name } = item.peek(); this.itemSubscriptions[name] = (0, _index.effect)((() => { const newDefaultItems = Object.assign({}, this.defaultItems.peek()); if (needRender.value) { newDefaultItems[name] = item.value } else { delete newDefaultItems[name] } this.defaultItems.value = newDefaultItems })) } } exports.ToolbarController = ToolbarController; ToolbarController.dependencies = [_options_controller.OptionsController];