UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

64 lines (62 loc) 2.04 kB
/** * DevExtreme (esm/__internal/grids/new/grid_core/toolbar/utils.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/ */ import _extends from "@babel/runtime/helpers/esm/extends"; 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 = _extends({}, 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))) }