/** * @module ui */ import type { Buttons, ButtonsGroup, ButtonsGroups, IControlType, IJodit } from 'jodit/types'; import { isArray } from 'jodit/core/helpers/checker/is-array'; export const isButtonGroup = ( item: ButtonsGroup | string | IControlType ): item is ButtonsGroup => { return isArray((item).buttons); }; export function flatButtonsSet( buttons: ButtonsGroups, jodit: IJodit ): Set { const groups = jodit.getRegisteredButtonGroups(); return new Set( buttons.reduce( (acc: Buttons, item: ButtonsGroup | string | IControlType) => { if (isButtonGroup(item)) { acc = acc.concat([ ...(item).buttons, ...(groups[item.group] ?? []) ]); } else { acc.push(item); } return acc; }, [] as Buttons ) ); }