Skip to content
Snippets Groups Projects
config.js 3.87 KiB
Newer Older
chris's avatar
chris committed
import { emDash, ellipsis } from 'prosemirror-inputrules';
import { columnResizing, tableEditing } from 'prosemirror-tables';
  AnnotationToolGroupService,
  ImageService,
  PlaceholderService,
  InlineAnnotationsService,
  LinkService,
  ListsService,
  ListToolGroupService,
  TablesService,
  TableToolGroupService,
  BaseService,
  BaseToolGroupService,
  DisplayBlockLevelService,
  DisplayToolGroupService,
chris's avatar
chris committed
  ImageToolGroupService,
  TextBlockLevelService,
chris's avatar
chris committed
  TextToolGroupService,
  NoteService,
  NoteToolGroupService,
  TrackChangeService,
chris's avatar
chris committed
  CommentsService,
chris's avatar
chris committed
  CodeBlockService,
  CodeBlockToolGroupService,
chris's avatar
chris committed
  TrackChangeToolGroupService,
chris's avatar
chris committed
  DisplayTextToolGroupService,
chris's avatar
chris committed
  MathService,
  FindAndReplaceService,
  TrackingAndEditingToolGroupService,
  FullScreenService,
  FullScreenToolGroupService,
chris's avatar
chris committed
  SpecialCharactersService,
  SpecialCharactersToolGroupService,
  HighlightService,
  TextHighlightToolGroupServices,
  EditorInfoToolGroupServices,
  BottomInfoService,
  TransformService,
  TransformToolGroupService,
chris's avatar
chris committed
} from 'wax-prosemirror-services';
chris's avatar
chris committed
import { DefaultSchema } from 'wax-prosemirror-utilities';

chris's avatar
chris committed
import { WaxSelectionPlugin } from 'wax-prosemirror-plugins';
chris's avatar
chris committed
import invisibles, {
  space,
  hardBreak,
chris's avatar
chris committed
  paragraph,
} from '@guardian/prosemirror-invisibles';
chris's avatar
chris committed

chris's avatar
chris committed
const updateTitle = title => {
  console.log(title);
};

chris's avatar
chris committed
  MenuService: [
    {
chris's avatar
chris committed
      templateArea: 'mainMenuToolBar',
chris's avatar
chris committed
      toolGroups: [
        'Base',
        {
          name: 'Annotations',
          more: ['Superscript', 'Subscript', 'SmallCaps'],
        'TransformToolGroup',
chris's avatar
chris committed
        'Notes',
        'Lists',
        'Images',
chris's avatar
chris committed
        'SpecialCharacters',
chris's avatar
chris committed
        'CodeBlock',
        'Tables',
        'TrackingAndEditing',
chris's avatar
chris committed
        'FullScreen',
chris's avatar
chris committed
      ],
chris's avatar
chris committed
    {
      templateArea: 'leftSideBar',
      toolGroups: ['DisplayText'],
chris's avatar
chris committed
    {
      templateArea: 'commentTrackToolBar',
      toolGroups: [
        {
          name: 'Annotations',
          more: [
            'Superscript',
            'Subscript',
            'SmallCaps',
            'Emphasis',
            'Code',
            'Underline',
            'StrikeThrough',
          ],
        },
      ],
    },
    {
      templateArea: 'BottomRightInfo',
chris's avatar
chris committed
      toolGroups: ['InfoToolGroup'],
chris's avatar
chris committed
  ],
chris's avatar
chris committed

chris's avatar
chris committed
  SchemaService: DefaultSchema,
chris's avatar
chris committed
  TitleService: { updateTitle },
chris's avatar
chris committed
  RulesService: [emDash, ellipsis],
  ShortCutsService: {},
  EnableTrackChangeService: { enabled: false },
chris's avatar
chris committed

chris's avatar
chris committed
  PmPlugins: [
    columnResizing(),
    tableEditing(),
    invisibles([hardBreak()]),
    WaxSelectionPlugin,
  ],
chris's avatar
chris committed
  // Always load first CommentsService and LinkService,
  //as it matters on how PM treats nodes and marks
chris's avatar
chris committed
    new DisplayBlockLevelService(),
    new DisplayToolGroupService(),
    new TextBlockLevelService(),
    new TextToolGroupService(),
    new ListsService(),
    new LinkService(),
    new InlineAnnotationsService(),
    new TrackChangeService(),
    new CommentsService(),
    new PlaceholderService(),
    new ImageService(),
    new TablesService(),
    new BaseService(),
    new BaseToolGroupService(),
    new NoteService(),
    new TableToolGroupService(),
    new ImageToolGroupService(),
    new AnnotationToolGroupService(),
    new NoteToolGroupService(),
    new ListToolGroupService(),
    new CodeBlockService(),
    new CodeBlockToolGroupService(),
    new TrackChangeToolGroupService(),
    new DisplayTextToolGroupService(),
    new MathService(),
    new FindAndReplaceService(),
    new TrackingAndEditingToolGroupService(),
    new FullScreenService(),
    new FullScreenToolGroupService(),
chris's avatar
chris committed
    new SpecialCharactersService(),
    new SpecialCharactersToolGroupService(),
    new HighlightService(),
    new TextHighlightToolGroupServices(),
    new EditorInfoToolGroupServices(),
    new BottomInfoService(),
    new TransformService(),
    new TransformToolGroupService(),