UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

56 lines (54 loc) 2.19 kB
/** * DevExtreme (cjs/__internal/grids/new/grid_core/toolbar/controller.js) * Version: 25.1.3 * Build date: Wed Jun 25 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 _signalsCore = require("@preact/signals-core"); var _options_controller = require("../options_controller/options_controller"); var _const = require("./const"); var _utils = require("./utils"); function _extends() { return _extends = Object.assign ? Object.assign.bind() : function(n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) { ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]) } } return n }, _extends.apply(null, arguments) } class ToolbarController { constructor(options) { this.options = options; this.itemSubscriptions = {}; this.defaultItems = (0, _signalsCore.signal)({}); this.userItems = this.options.oneWay("toolbar.items"); this.items = (0, _signalsCore.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, _signalsCore.signal)(true); const { name: name } = item.peek(); this.itemSubscriptions[name] = (0, _signalsCore.effect)((() => { const newDefaultItems = _extends({}, 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];