UNPKG

devextreme

Version:

JavaScript/TypeScript Component Suite for Responsive Web Development

63 lines (61 loc) 1.98 kB
/** * DevExtreme (esm/__internal/grids/new/grid_core/toolbar/utils.js) * Version: 25.2.5 * Build date: Fri Feb 20 2026 * * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ import { extend } from "../../../../../core/utils/extend"; import { isDefined, isString } from "../../../../../core/utils/type"; import { DEFAULT_TOOLBAR_ITEMS } from "./const"; export function isVisible(visibleConfig, items) { if (void 0 === visibleConfig) { return items.length > 0 } return visibleConfig } function normalizeToolbarItem(item, defaultButtonsMap, defaultItemNames) { let button = item; if (isString(button)) { button = { name: button } } if (isDefined(button.name)) { if (isDefined(defaultButtonsMap[button.name])) { button = extend(true, {}, defaultButtonsMap[button.name], button) } else if (defaultItemNames.includes(button.name)) { button = Object.assign({}, button, { visible: false }) } } return extend(true, {}, { location: "after" }, button) } export function getSortedToolbarItems(defaultItemsCollection) { return Object.values(defaultItemsCollection).sort(((a, b) => { const aIndex = DEFAULT_TOOLBAR_ITEMS.indexOf(a.name); const bIndex = DEFAULT_TOOLBAR_ITEMS.indexOf(b.name); return aIndex - bIndex })) } export function normalizeToolbarItems(sortedDefaultItems, userItems, defaultItemNames) { if (!isDefined(userItems)) { return sortedDefaultItems } const defaultButtonsMap = {}; sortedDefaultItems.forEach((button => { defaultButtonsMap[button.name] = button })); return userItems.map((item => normalizeToolbarItem(item, defaultButtonsMap, defaultItemNames))) }