Skip to content
Snippets Groups Projects
configMobile.js 3.25 KiB
Newer Older
chris's avatar
chris committed
import { emDash, ellipsis } from 'prosemirror-inputrules';
import { columnResizing, tableEditing } from 'prosemirror-tables';
import {
  AnnotationToolGroupService,
  ImageService,
  InlineAnnotationsService,
  LinkService,
  ListsService,
  ListToolGroupService,
  TablesService,
  BaseService,
  BaseToolGroupService,
  DisplayBlockLevelService,
  DisplayToolGroupService,
  ImageToolGroupService,
  TextBlockLevelService,
  TextToolGroupService,
  NoteService,
  NoteToolGroupService,
  EditingSuggestingService,
chris's avatar
chris committed
  TrackChangeService,
  CommentsService,
  CodeBlockService,
  CodeBlockToolGroupService,
  DisplayTextToolGroupService,
  BlockDropDownToolGroupService,
  HighlightService,
  TextHighlightToolGroupServices,
  EditorInfoToolGroupServices,
  BottomInfoService,
  TransformService,
  TransformToolGroupService,
  CustomTagInlineToolGroupService,
  CustomTagBlockToolGroupService,
chris's avatar
chris committed
} from 'wax-prosemirror-services';

chris's avatar
chris committed
import { DefaultSchema } from 'wax-prosemirror-core';
chris's avatar
chris committed

import invisibles, {
  space,
  hardBreak,
  paragraph,
} from '@guardian/prosemirror-invisibles';

chris's avatar
chris committed
const updateTitle = title => {};
chris's avatar
chris committed

chris's avatar
chris committed
export default {
  MenuService: [
    {
      templateArea: 'topBar',
      toolGroups: [
        'Base',
        {
          name: 'Annotations',
          more: ['Superscript', 'Subscript', 'SmallCaps'],
        },
        'TransformToolGroup',
chris's avatar
chris committed
        'BlockDropDown',
        'Notes',
        'Lists',
        'Images',
        'CodeBlock',
        'Tables',
chris's avatar
chris committed
        // 'TrackChange',
chris's avatar
chris committed
      ],
    },
    {
      templateArea: 'BottomRightInfo',
chris's avatar
chris committed
      toolGroups: ['InfoToolGroup'],
chris's avatar
chris committed
  ],

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

chris's avatar
chris committed
  PmPlugins: [columnResizing(), tableEditing(), invisibles([hardBreak()])],
  CustomTagService: {
    tags: [
      { label: 'custom-tag-label-1', tagType: 'inline' },
      { label: 'custom-tag-label-2', tagType: 'inline' },
chris's avatar
chris committed
      { label: 'custom-tag-label-3', tagType: 'block' },
    ],
chris's avatar
chris committed

  // Always load first CommentsService and LinkService,
  //as it matters on how PM treats nodes and marks
  services: [
    new DisplayBlockLevelService(),
    new DisplayToolGroupService(),
    new TextBlockLevelService(),
    new TextToolGroupService(),
    new ListsService(),
    new LinkService(),
    new InlineAnnotationsService(),
    new TrackChangeService(),
    new CommentsService(),
    new ImageService(),
    new TablesService(),
    new BaseService(),
    new BaseToolGroupService(),
    new NoteService(),
    new ImageToolGroupService(),
    new AnnotationToolGroupService(),
    new NoteToolGroupService(),
    new ListToolGroupService(),
    new CodeBlockService(),
    new CodeBlockToolGroupService(),
    new EditingSuggestingService(),
chris's avatar
chris committed
    new DisplayTextToolGroupService(),
    new BlockDropDownToolGroupService(),
    new HighlightService(),
    new TextHighlightToolGroupServices(),
    new EditorInfoToolGroupServices(),
    new BottomInfoService(),
    new TransformService(),
    new TransformToolGroupService(),
    new CustomTagService(),
    new CustomTagInlineToolGroupService(),
    new CustomTagBlockToolGroupService(),
chris's avatar
chris committed
  ],
};