mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2025-06-20 17:15:51 +02:00
252 lines
8.7 KiB
JavaScript
252 lines
8.7 KiB
JavaScript
/**
|
|
* @license Copyright (c) 2014-2022, CKSource Holding sp. z o.o. All rights reserved.
|
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
*/
|
|
import ClassicEditor from '@ckeditor/ckeditor5-editor-classic/src/classiceditor.js';
|
|
import Alignment from '@ckeditor/ckeditor5-alignment/src/alignment.js';
|
|
import Autoformat from '@ckeditor/ckeditor5-autoformat/src/autoformat.js';
|
|
import Base64UploadAdapter from '@ckeditor/ckeditor5-upload/src/adapters/base64uploadadapter.js';
|
|
import BlockQuote from '@ckeditor/ckeditor5-block-quote/src/blockquote.js';
|
|
import Bold from '@ckeditor/ckeditor5-basic-styles/src/bold.js';
|
|
import Code from '@ckeditor/ckeditor5-basic-styles/src/code.js';
|
|
import CodeBlock from '@ckeditor/ckeditor5-code-block/src/codeblock.js';
|
|
import Essentials from '@ckeditor/ckeditor5-essentials/src/essentials.js';
|
|
import FindAndReplace from '@ckeditor/ckeditor5-find-and-replace/src/findandreplace.js';
|
|
import FontBackgroundColor from '@ckeditor/ckeditor5-font/src/fontbackgroundcolor.js';
|
|
import FontColor from '@ckeditor/ckeditor5-font/src/fontcolor.js';
|
|
import FontFamily from '@ckeditor/ckeditor5-font/src/fontfamily.js';
|
|
import FontSize from '@ckeditor/ckeditor5-font/src/fontsize.js';
|
|
import GeneralHtmlSupport from '@ckeditor/ckeditor5-html-support/src/generalhtmlsupport.js';
|
|
import Heading from '@ckeditor/ckeditor5-heading/src/heading.js';
|
|
import Highlight from '@ckeditor/ckeditor5-highlight/src/highlight.js';
|
|
import HorizontalLine from '@ckeditor/ckeditor5-horizontal-line/src/horizontalline.js';
|
|
import HtmlComment from '@ckeditor/ckeditor5-html-support/src/htmlcomment.js';
|
|
import HtmlEmbed from '@ckeditor/ckeditor5-html-embed/src/htmlembed.js';
|
|
import Image from '@ckeditor/ckeditor5-image/src/image.js';
|
|
import ImageResize from '@ckeditor/ckeditor5-image/src/imageresize.js';
|
|
import ImageStyle from '@ckeditor/ckeditor5-image/src/imagestyle.js';
|
|
import ImageToolbar from '@ckeditor/ckeditor5-image/src/imagetoolbar.js';
|
|
import ImageUpload from '@ckeditor/ckeditor5-image/src/imageupload.js';
|
|
import Indent from '@ckeditor/ckeditor5-indent/src/indent.js';
|
|
import IndentBlock from '@ckeditor/ckeditor5-indent/src/indentblock.js';
|
|
import Italic from '@ckeditor/ckeditor5-basic-styles/src/italic.js';
|
|
import Link from '@ckeditor/ckeditor5-link/src/link.js';
|
|
import LinkImage from '@ckeditor/ckeditor5-link/src/linkimage.js';
|
|
import List from '@ckeditor/ckeditor5-list/src/list.js';
|
|
import ListProperties from '@ckeditor/ckeditor5-list/src/listproperties.js';
|
|
import Markdown from '@ckeditor/ckeditor5-markdown-gfm/src/markdown.js';
|
|
import MediaEmbed from '@ckeditor/ckeditor5-media-embed/src/mediaembed.js';
|
|
import MediaEmbedToolbar from '@ckeditor/ckeditor5-media-embed/src/mediaembedtoolbar.js';
|
|
import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph.js';
|
|
import PasteFromOffice from '@ckeditor/ckeditor5-paste-from-office/src/pastefromoffice.js';
|
|
import RemoveFormat from '@ckeditor/ckeditor5-remove-format/src/removeformat.js';
|
|
import SourceEditing from '@ckeditor/ckeditor5-source-editing/src/sourceediting.js';
|
|
import SpecialCharacters from '@ckeditor/ckeditor5-special-characters/src/specialcharacters.js';
|
|
import SpecialCharactersArrows from '@ckeditor/ckeditor5-special-characters/src/specialcharactersarrows.js';
|
|
import SpecialCharactersCurrency from '@ckeditor/ckeditor5-special-characters/src/specialcharacterscurrency.js';
|
|
import SpecialCharactersEssentials from '@ckeditor/ckeditor5-special-characters/src/specialcharactersessentials.js';
|
|
import SpecialCharactersLatin from '@ckeditor/ckeditor5-special-characters/src/specialcharacterslatin.js';
|
|
import SpecialCharactersMathematical from '@ckeditor/ckeditor5-special-characters/src/specialcharactersmathematical.js';
|
|
import SpecialCharactersText from '@ckeditor/ckeditor5-special-characters/src/specialcharacterstext.js';
|
|
import Strikethrough from '@ckeditor/ckeditor5-basic-styles/src/strikethrough.js';
|
|
import Subscript from '@ckeditor/ckeditor5-basic-styles/src/subscript.js';
|
|
import Superscript from '@ckeditor/ckeditor5-basic-styles/src/superscript.js';
|
|
import Table from '@ckeditor/ckeditor5-table/src/table.js';
|
|
import TableCaption from '@ckeditor/ckeditor5-table/src/tablecaption.js';
|
|
import TableCellProperties from '@ckeditor/ckeditor5-table/src/tablecellproperties';
|
|
import TableColumnResize from '@ckeditor/ckeditor5-table/src/tablecolumnresize.js';
|
|
import TableProperties from '@ckeditor/ckeditor5-table/src/tableproperties';
|
|
import TableToolbar from '@ckeditor/ckeditor5-table/src/tabletoolbar.js';
|
|
import Underline from '@ckeditor/ckeditor5-basic-styles/src/underline.js';
|
|
import WordCount from '@ckeditor/ckeditor5-word-count/src/wordcount.js';
|
|
import EditorWatchdog from '@ckeditor/ckeditor5-watchdog/src/editorwatchdog.js';
|
|
import PartDBLabel from "./plugins/PartDBLabel/PartDBLabel";
|
|
|
|
class Editor extends ClassicEditor {}
|
|
|
|
// Plugins to include in the build.
|
|
Editor.builtinPlugins = [
|
|
Alignment,
|
|
Autoformat,
|
|
Base64UploadAdapter,
|
|
BlockQuote,
|
|
Bold,
|
|
Code,
|
|
CodeBlock,
|
|
Essentials,
|
|
FindAndReplace,
|
|
FontBackgroundColor,
|
|
FontColor,
|
|
FontFamily,
|
|
FontSize,
|
|
GeneralHtmlSupport,
|
|
Heading,
|
|
Highlight,
|
|
HorizontalLine,
|
|
HtmlComment,
|
|
HtmlEmbed,
|
|
Image,
|
|
ImageResize,
|
|
ImageStyle,
|
|
ImageToolbar,
|
|
ImageUpload,
|
|
Indent,
|
|
IndentBlock,
|
|
Italic,
|
|
Link,
|
|
LinkImage,
|
|
List,
|
|
ListProperties,
|
|
MediaEmbed,
|
|
MediaEmbedToolbar,
|
|
Paragraph,
|
|
PasteFromOffice,
|
|
RemoveFormat,
|
|
SourceEditing,
|
|
SpecialCharacters,
|
|
SpecialCharactersArrows,
|
|
SpecialCharactersCurrency,
|
|
SpecialCharactersEssentials,
|
|
SpecialCharactersLatin,
|
|
SpecialCharactersMathematical,
|
|
SpecialCharactersText,
|
|
Strikethrough,
|
|
Subscript,
|
|
Superscript,
|
|
Table,
|
|
TableCaption,
|
|
TableCellProperties,
|
|
TableColumnResize,
|
|
TableProperties,
|
|
TableToolbar,
|
|
Underline,
|
|
WordCount,
|
|
|
|
PartDBLabel
|
|
];
|
|
|
|
// Editor configuration.
|
|
Editor.defaultConfig = {
|
|
toolbar: {
|
|
items: [
|
|
'heading',
|
|
'alignment',
|
|
'|',
|
|
'bold',
|
|
'italic',
|
|
'underline',
|
|
'strikethrough',
|
|
'subscript',
|
|
'superscript',
|
|
'removeFormat',
|
|
'highlight',
|
|
'|',
|
|
'fontBackgroundColor',
|
|
'fontColor',
|
|
'fontSize',
|
|
'|',
|
|
'fontFamily',
|
|
'link',
|
|
'bulletedList',
|
|
'numberedList',
|
|
'outdent',
|
|
'indent',
|
|
'|',
|
|
'specialCharacters',
|
|
'horizontalLine',
|
|
'|',
|
|
'imageUpload',
|
|
'blockQuote',
|
|
'insertTable',
|
|
'mediaEmbed',
|
|
'code',
|
|
'codeBlock',
|
|
'htmlEmbed',
|
|
'|',
|
|
'undo',
|
|
'redo',
|
|
'findAndReplace',
|
|
'sourceEditing',
|
|
'|',
|
|
'partdb_label',
|
|
],
|
|
shouldNotGroupWhenFull: true
|
|
},
|
|
language: 'en',
|
|
fontFamily: {
|
|
options: [
|
|
'default',
|
|
'DejaVu Sans Mono, monospace',
|
|
'DejaVu Sans, sans-serif',
|
|
'DejaVu Serif, serif',
|
|
'Helvetica, Arial, sans-serif',
|
|
'Times New Roman, Times, serif',
|
|
'Courier New, Courier, monospace',
|
|
'Unifont, monospace',
|
|
],
|
|
supportAllValues: true
|
|
},
|
|
'fontSize': {
|
|
options: [
|
|
'default',
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14,
|
|
15,
|
|
16,
|
|
17,
|
|
18,
|
|
19,
|
|
20,
|
|
21,
|
|
],
|
|
supportAllValues: true
|
|
},
|
|
// Allow all HTML features for our labels
|
|
htmlSupport: {
|
|
allow: [
|
|
{
|
|
name: /.*/,
|
|
attributes: true,
|
|
classes: true,
|
|
styles: true
|
|
}
|
|
],
|
|
disallow: [
|
|
//Some rudimentary protection against XSS, even if it is not really needed as this is only parsed by DOMHTML which does not support any kind of script execution.
|
|
{
|
|
name: /^(head|body|html|script)$/i,
|
|
},
|
|
{
|
|
name: /.*/,
|
|
attributes: /^on.*/i
|
|
}
|
|
]
|
|
},
|
|
image: {
|
|
toolbar: [
|
|
'imageTextAlternative',
|
|
'imageStyle:inline',
|
|
'imageStyle:block',
|
|
'imageStyle:side',
|
|
'linkImage'
|
|
]
|
|
},
|
|
table: {
|
|
contentToolbar: [
|
|
'tableColumn',
|
|
'tableRow',
|
|
'mergeTableCells',
|
|
'tableCellProperties',
|
|
'tableProperties'
|
|
]
|
|
},
|
|
};
|
|
|
|
export default { Editor, EditorWatchdog };
|