UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

167 lines (164 loc) 5.71 kB
/** * DevExtreme (cjs/__internal/ui/toolbar/m_toolbar.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 _component_registrator = _interopRequireDefault(require("../../../core/component_registrator")); var _m_toolbar = _interopRequireDefault(require("./m_toolbar.base")); var _m_toolbar2 = require("./m_toolbar.utils"); var _m_toolbar3 = require("./strategy/m_toolbar.multiline"); var _m_toolbar4 = require("./strategy/m_toolbar.singleline"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e } } 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) } const TOOLBAR_MULTILINE_CLASS = "dx-toolbar-multiline"; const TOOLBAR_AUTO_HIDE_TEXT_CLASS = "dx-toolbar-text-auto-hide"; class Toolbar extends _m_toolbar.default { _getDefaultOptions() { return _extends({}, super._getDefaultOptions(), { menuItemTemplate: "menuItem", menuContainer: void 0, overflowMenuVisible: false, multiline: false }) } _isMultiline() { return this.option("multiline") } _dimensionChanged(dimension) { if ("height" === dimension) { return } super._dimensionChanged(); this._layoutStrategy._dimensionChanged() } _initMarkup() { super._initMarkup(); this._updateFocusableItemsTabIndex(); this._layoutStrategy._initMarkup() } _renderToolbar() { super._renderToolbar(); this._renderLayoutStrategy() } _itemContainer() { if (this._isMultiline()) { return this._$toolbarItemsContainer } return super._itemContainer() } _renderLayoutStrategy() { this.$element().toggleClass("dx-toolbar-multiline", this._isMultiline()); this._layoutStrategy = this._isMultiline() ? new _m_toolbar3.MultiLineStrategy(this) : new _m_toolbar4.SingleLineStrategy(this) } _renderSections() { if (this._isMultiline()) { return } return super._renderSections() } _postProcessRenderItems() { this._layoutStrategy._hideOverflowItems(); this._layoutStrategy._updateMenuVisibility(); super._postProcessRenderItems(); this._layoutStrategy._renderMenuItems() } _renderItem(index, item, itemContainer, $after) { const itemElement = super._renderItem(index, item, itemContainer, $after); this._layoutStrategy._renderItem(item, itemElement); const { widget: widget, showText: showText } = item; if ("dxButton" === widget && "inMenu" === showText) { itemElement.toggleClass("dx-toolbar-text-auto-hide") } return itemElement } _getItemsWidth() { return this._layoutStrategy._getItemsWidth() } _getMenuItems() { return this._layoutStrategy._getMenuItems() } _getToolbarItems() { return this._layoutStrategy._getToolbarItems() } _arrangeItems() { if (this.$element().is(":hidden")) { return } const elementWidth = this._layoutStrategy._arrangeItems(); if (!this._isMultiline()) { super._arrangeItems(elementWidth) } } _itemOptionChanged(item, property, value, prevValue) { if (!this._isMenuItem(item)) { super._itemOptionChanged(item, property, value, prevValue) } this._layoutStrategy._itemOptionChanged(item, property, value); if ("disabled" === property || "options.disabled" === property) { (0, _m_toolbar2.toggleItemFocusableElementTabIndex)(this, item) } if ("location" === property) { this.repaint() } } _updateFocusableItemsTabIndex() { this._getToolbarItems().forEach((item => (0, _m_toolbar2.toggleItemFocusableElementTabIndex)(this, item))) } _isMenuItem(itemData) { return "menu" === itemData.location || "always" === itemData.locateInMenu } _isToolbarItem(itemData) { return void 0 === itemData.location || "never" === itemData.locateInMenu } _optionChanged(args) { const { name: name, value: value } = args; this._layoutStrategy._optionChanged(name, value); switch (name) { case "menuContainer": case "menuItemTemplate": case "overflowMenuVisible": break; case "multiline": this._invalidate(); break; case "disabled": super._optionChanged(args); this._updateFocusableItemsTabIndex(); break; default: super._optionChanged(args) } } updateDimensions() { this._dimensionChanged() } }(0, _component_registrator.default)("dxToolbar", Toolbar); var _default = exports.default = Toolbar;