@atlaskit/editor-plugin-toolbar-lists-indentation
Version:
Toolbar lists and indentation plugin for @atlaskit/editor-core
106 lines • 4.19 kB
JavaScript
import React from 'react';
import { BULLETED_LIST_MENU_ITEM, INDENT_MENU_ITEM, LISTS_INDENTATION_GROUP, LISTS_INDENTATION_GROUP_COLLAPSED, LISTS_INDENTATION_GROUP_COLLAPSED_RANK, LISTS_INDENTATION_GROUP_INLINE, LISTS_INDENTATION_GROUP_RANK, LISTS_INDENTATION_MENU, LISTS_INDENTATION_MENU_RANK, LISTS_INDENTATION_MENU_SECTION, LISTS_INDENTATION_MENU_SECTION_RANK, NUMBERED_LIST_MENU_ITEM, OUTDENT_MENU_ITEM, TEXT_COLLAPSED_MENU, TEXT_COLLAPSED_MENU_RANK } from '@atlaskit/editor-common/toolbar';
import { BulletedListMenuItem } from './BulletedListMenuItem';
import { IndentMenuItem } from './IndentMenuItem';
import { ListsIndentationMenu } from './ListsIndentationMenu';
import { MenuSection } from './MenuSection';
import { NumberedListMenuItem } from './NumberedListMenuItem';
import { OutdentMenuItem } from './OutdentMenuItem';
export const getListsIndentationMenu = (allowHeadingAndParagraphIndentation, showIndentationButtons, api) => {
return [{
type: LISTS_INDENTATION_MENU.type,
key: LISTS_INDENTATION_MENU.key,
parents: [{
type: LISTS_INDENTATION_GROUP.type,
key: LISTS_INDENTATION_GROUP.key,
rank: LISTS_INDENTATION_GROUP_RANK[LISTS_INDENTATION_MENU.key]
}, {
type: LISTS_INDENTATION_GROUP_COLLAPSED.type,
key: LISTS_INDENTATION_GROUP_COLLAPSED.key,
rank: LISTS_INDENTATION_GROUP_COLLAPSED_RANK[LISTS_INDENTATION_MENU.key]
}, {
type: LISTS_INDENTATION_GROUP_INLINE.type,
key: LISTS_INDENTATION_GROUP_INLINE.key,
rank: LISTS_INDENTATION_GROUP_COLLAPSED_RANK[LISTS_INDENTATION_MENU.key]
}],
component: ({
children
}) => /*#__PURE__*/React.createElement(ListsIndentationMenu, {
api: api,
allowHeadingAndParagraphIndentation: allowHeadingAndParagraphIndentation
}, children)
}, {
type: LISTS_INDENTATION_MENU_SECTION.type,
key: LISTS_INDENTATION_MENU_SECTION.key,
parents: [{
type: LISTS_INDENTATION_MENU.type,
key: LISTS_INDENTATION_MENU.key,
rank: LISTS_INDENTATION_MENU_RANK[LISTS_INDENTATION_MENU_SECTION.key]
}, {
type: TEXT_COLLAPSED_MENU.type,
key: TEXT_COLLAPSED_MENU.key,
rank: TEXT_COLLAPSED_MENU_RANK[LISTS_INDENTATION_MENU_SECTION.key]
}],
component: MenuSection
}, {
type: BULLETED_LIST_MENU_ITEM.type,
key: BULLETED_LIST_MENU_ITEM.key,
parents: [{
type: LISTS_INDENTATION_MENU_SECTION.type,
key: LISTS_INDENTATION_MENU_SECTION.key,
rank: LISTS_INDENTATION_MENU_SECTION_RANK[BULLETED_LIST_MENU_ITEM.key]
}],
component: ({
parents
}) => /*#__PURE__*/React.createElement(BulletedListMenuItem, {
api: api,
parents: parents
})
}, {
type: NUMBERED_LIST_MENU_ITEM.type,
key: NUMBERED_LIST_MENU_ITEM.key,
parents: [{
type: LISTS_INDENTATION_MENU_SECTION.type,
key: LISTS_INDENTATION_MENU_SECTION.key,
rank: LISTS_INDENTATION_MENU_SECTION_RANK[NUMBERED_LIST_MENU_ITEM.key]
}],
component: ({
parents
}) => /*#__PURE__*/React.createElement(NumberedListMenuItem, {
api: api,
parents: parents
})
}, {
type: OUTDENT_MENU_ITEM.type,
key: OUTDENT_MENU_ITEM.key,
parents: [{
type: LISTS_INDENTATION_MENU_SECTION.type,
key: LISTS_INDENTATION_MENU_SECTION.key,
rank: LISTS_INDENTATION_MENU_SECTION_RANK[OUTDENT_MENU_ITEM.key]
}],
component: ({
parents
}) => /*#__PURE__*/React.createElement(OutdentMenuItem, {
api: api,
allowHeadingAndParagraphIndentation: allowHeadingAndParagraphIndentation,
showIndentationButtons: showIndentationButtons,
parents: parents
})
}, {
type: INDENT_MENU_ITEM.type,
key: INDENT_MENU_ITEM.key,
parents: [{
type: LISTS_INDENTATION_MENU_SECTION.type,
key: LISTS_INDENTATION_MENU_SECTION.key,
rank: LISTS_INDENTATION_MENU_SECTION_RANK[INDENT_MENU_ITEM.key]
}],
component: ({
parents
}) => /*#__PURE__*/React.createElement(IndentMenuItem, {
api: api,
allowHeadingAndParagraphIndentation: allowHeadingAndParagraphIndentation,
showIndentationButtons: showIndentationButtons,
parents: parents
})
}];
};