import { ToolbarItem } from 'devextreme/ui/data_grid_types' const orderedToolbarItemNames = [ 'searchPanel', 'addRowButton', 'refreshButton', 'openDynamicGridReport', 'workflowStart', 'expandAllButton', 'collapseAllButton', 'fitColumns', ] const getToolbarItemPriority = (item: ToolbarItem) => { const name = item.name ?? '' if (name.startsWith('workflowApproval_')) { return orderedToolbarItemNames.indexOf('workflowStart') } const priority = orderedToolbarItemNames.indexOf(name) return priority === -1 ? orderedToolbarItemNames.length : priority } export const orderListToolbarItems = (items: ToolbarItem[]) => { return [...items].sort((left, right) => { const priorityDiff = getToolbarItemPriority(left) - getToolbarItemPriority(right) if (priorityDiff !== 0) { return priorityDiff } return items.indexOf(left) - items.indexOf(right) }) }