322 lines
5.8 KiB
JavaScript
322 lines
5.8 KiB
JavaScript
import {
|
|
ClassicEditor,
|
|
AccessibilityHelp,
|
|
Alignment,
|
|
Autoformat,
|
|
AutoImage,
|
|
AutoLink,
|
|
Autosave,
|
|
BalloonToolbar,
|
|
BlockQuote,
|
|
Bold,
|
|
CodeBlock,
|
|
Essentials,
|
|
FindAndReplace,
|
|
FontBackgroundColor,
|
|
FontColor,
|
|
FontFamily,
|
|
FontSize,
|
|
Heading,
|
|
Highlight,
|
|
HorizontalLine,
|
|
HtmlEmbed,
|
|
ImageBlock,
|
|
ImageCaption,
|
|
ImageInline,
|
|
ImageInsert,
|
|
ImageInsertViaUrl,
|
|
ImageResize,
|
|
ImageStyle,
|
|
ImageTextAlternative,
|
|
ImageToolbar,
|
|
ImageUpload,
|
|
Indent,
|
|
IndentBlock,
|
|
Italic,
|
|
Link,
|
|
LinkImage,
|
|
List,
|
|
ListProperties,
|
|
MediaEmbed,
|
|
Paragraph,
|
|
PasteFromOffice,
|
|
SelectAll,
|
|
ShowBlocks,
|
|
SimpleUploadAdapter,
|
|
SourceEditing,
|
|
SpecialCharacters,
|
|
SpecialCharactersArrows,
|
|
SpecialCharactersCurrency,
|
|
SpecialCharactersEssentials,
|
|
SpecialCharactersLatin,
|
|
SpecialCharactersMathematical,
|
|
SpecialCharactersText,
|
|
Strikethrough,
|
|
Table,
|
|
TableCaption,
|
|
TableCellProperties,
|
|
TableColumnResize,
|
|
TableProperties,
|
|
TableToolbar,
|
|
TextTransformation,
|
|
TodoList,
|
|
Underline,
|
|
Undo
|
|
} from '/assets/vendor/ckeditor5.js';
|
|
const editorConfig = {
|
|
toolbar: {
|
|
items: [
|
|
'undo',
|
|
'redo',
|
|
'|',
|
|
'sourceEditing',
|
|
'showBlocks',
|
|
'findAndReplace',
|
|
'selectAll',
|
|
'|',
|
|
'heading',
|
|
'|',
|
|
'fontSize',
|
|
'fontFamily',
|
|
'fontColor',
|
|
'fontBackgroundColor',
|
|
'|',
|
|
'bold',
|
|
'italic',
|
|
'underline',
|
|
'strikethrough',
|
|
'|',
|
|
'specialCharacters',
|
|
'horizontalLine',
|
|
'link',
|
|
'insertImage',
|
|
'mediaEmbed',
|
|
'insertTable',
|
|
'highlight',
|
|
'blockQuote',
|
|
'codeBlock',
|
|
'htmlEmbed',
|
|
'|',
|
|
'alignment',
|
|
'|',
|
|
'bulletedList',
|
|
'numberedList',
|
|
'todoList',
|
|
'outdent',
|
|
'indent',
|
|
'|',
|
|
'accessibilityHelp'
|
|
],
|
|
shouldNotGroupWhenFull: true
|
|
},
|
|
plugins: [
|
|
AccessibilityHelp,
|
|
Alignment,
|
|
Autoformat,
|
|
AutoImage,
|
|
AutoLink,
|
|
Autosave,
|
|
BalloonToolbar,
|
|
BlockQuote,
|
|
Bold,
|
|
CodeBlock,
|
|
Essentials,
|
|
FindAndReplace,
|
|
FontBackgroundColor,
|
|
FontColor,
|
|
FontFamily,
|
|
FontSize,
|
|
Heading,
|
|
Highlight,
|
|
HorizontalLine,
|
|
HtmlEmbed,
|
|
ImageBlock,
|
|
ImageCaption,
|
|
ImageInline,
|
|
ImageInsert,
|
|
ImageInsertViaUrl,
|
|
ImageResize,
|
|
ImageStyle,
|
|
ImageTextAlternative,
|
|
ImageToolbar,
|
|
ImageUpload,
|
|
Indent,
|
|
IndentBlock,
|
|
Italic,
|
|
Link,
|
|
LinkImage,
|
|
List,
|
|
ListProperties,
|
|
MediaEmbed,
|
|
Paragraph,
|
|
PasteFromOffice,
|
|
SelectAll,
|
|
ShowBlocks,
|
|
SimpleUploadAdapter,
|
|
SourceEditing,
|
|
SpecialCharacters,
|
|
SpecialCharactersArrows,
|
|
SpecialCharactersCurrency,
|
|
SpecialCharactersEssentials,
|
|
SpecialCharactersLatin,
|
|
SpecialCharactersMathematical,
|
|
SpecialCharactersText,
|
|
Strikethrough,
|
|
Table,
|
|
TableCaption,
|
|
TableCellProperties,
|
|
TableColumnResize,
|
|
TableProperties,
|
|
TableToolbar,
|
|
TextTransformation,
|
|
TodoList,
|
|
Underline,
|
|
Undo
|
|
],
|
|
simpleUpload: {
|
|
uploadUrl: 'https://api.vesmeh.com/api/file/ckeditor',
|
|
withCredentials: true,
|
|
headers: {
|
|
Authorization: 'xuwp4KzU1/YBoevpzgH0cz8+zLKQ+EOaYXeo4JtRxmVIuN7Hqxz97oQ398tNX68+'
|
|
}
|
|
},
|
|
balloonToolbar: ['bold', 'italic', '|', 'link', 'insertImage', '|', 'bulletedList', 'numberedList'],
|
|
fontFamily: {
|
|
supportAllValues: true
|
|
},
|
|
fontSize: {
|
|
options: [10, 12, 14, 'default', 18, 20, 22],
|
|
supportAllValues: true
|
|
},
|
|
heading: {
|
|
options: [
|
|
{
|
|
model: 'paragraph',
|
|
title: 'Paragraph',
|
|
class: 'ck-heading_paragraph'
|
|
},
|
|
{
|
|
model: 'heading1',
|
|
view: 'h1',
|
|
title: 'Heading 1',
|
|
class: 'ck-heading_heading1'
|
|
},
|
|
{
|
|
model: 'heading2',
|
|
view: 'h2',
|
|
title: 'Heading 2',
|
|
class: 'ck-heading_heading2'
|
|
},
|
|
{
|
|
model: 'heading3',
|
|
view: 'h3',
|
|
title: 'Heading 3',
|
|
class: 'ck-heading_heading3'
|
|
},
|
|
{
|
|
model: 'heading4',
|
|
view: 'h4',
|
|
title: 'Heading 4',
|
|
class: 'ck-heading_heading4'
|
|
},
|
|
{
|
|
model: 'heading5',
|
|
view: 'h5',
|
|
title: 'Heading 5',
|
|
class: 'ck-heading_heading5'
|
|
},
|
|
{
|
|
model: 'heading6',
|
|
view: 'h6',
|
|
title: 'Heading 6',
|
|
class: 'ck-heading_heading6'
|
|
}
|
|
]
|
|
},
|
|
image: {
|
|
toolbar: [
|
|
'toggleImageCaption',
|
|
'imageTextAlternative',
|
|
'|',
|
|
'imageStyle:inline',
|
|
'imageStyle:wrapText',
|
|
'imageStyle:breakText',
|
|
'|',
|
|
'resizeImage'
|
|
]
|
|
},
|
|
link: {
|
|
addTargetToExternalLinks: true,
|
|
defaultProtocol: 'https://',
|
|
decorators: {
|
|
toggleDownloadable: {
|
|
mode: 'manual',
|
|
label: 'Downloadable',
|
|
attributes: {
|
|
download: 'file'
|
|
}
|
|
}
|
|
}
|
|
},
|
|
list: {
|
|
properties: {
|
|
styles: true,
|
|
startIndex: true,
|
|
reversed: true
|
|
}
|
|
},
|
|
placeholder: 'متن خود را بنویسید یا کپی کنید',
|
|
table: {
|
|
contentToolbar: ['tableColumn', 'tableRow', 'mergeTableCells', 'tableProperties', 'tableCellProperties']
|
|
},
|
|
language: {
|
|
ui: 'en',
|
|
content: 'ar'
|
|
}
|
|
};
|
|
export function initializeCKEditor(data) {
|
|
if (!document.querySelector('.editor')) return;
|
|
if (window.editor) return;
|
|
|
|
ClassicEditor.create(document.querySelector('.editor'), editorConfig)
|
|
.then(editor => {
|
|
window.editor = editor;
|
|
window.editor.setData(data);
|
|
editor.editing.view.document.on('blur', () => {
|
|
if (GLOBAL.DotNetReference) {
|
|
GLOBAL.DotNetReference.invokeMethodAsync('MyMethod', window.editor.getData());
|
|
}
|
|
});
|
|
})
|
|
.catch(handleSampleError);
|
|
}
|
|
|
|
export function destroyEditor() {
|
|
if (window.editor) {
|
|
window.editor.destroy();
|
|
window.editor = null;
|
|
}
|
|
}
|
|
|
|
export function setData(data) {
|
|
if (window.editor) {
|
|
window.editor.setData(data);
|
|
}
|
|
}
|
|
|
|
function handleSampleError(error) {
|
|
const issueUrl = 'https://github.com/ckeditor/ckeditor5/issues';
|
|
const message = [
|
|
'Oops, something went wrong!',
|
|
`Please, report the following error on ${issueUrl} with the build id "pws0dnpd0jqj-zi42lsl7aqxa" and the error stack trace:`
|
|
].join('\n');
|
|
console.error(message);
|
|
console.error(error);
|
|
}
|
|
|
|
export var GLOBAL = {
|
|
DotNetReference: null,
|
|
SetDotnetReference: function (pDotNetReference) {
|
|
this.DotNetReference = pDotNetReference;
|
|
}
|
|
}; |