nadal-ckeditor5-upload-video
v0.0.3
Published
A custom CKEditor 5 build made by the CKEditor 5 online builder.
Downloads
1
Maintainers
Readme
CKEditor 5 editor generated with the online builder
export default class UploadAdapter {
constructor(loader, type) {
this.loader = loader
this.type = type
}
upload() {
return this.loader.file.then(
(file) =>
new Promise((resolve, reject) => {
this.initRequest(file, resolve, reject)
}),
)
}
async initRequest(file, resolve, reject) {
try {
resolve({
default: '/main_loopping/1_Trusted_ingredients_unprecedented_results.mp4',
})
} catch (e) {
alert('이미지 전송 중 오류가 발생했습니다.')
reject()
}
}
}
/**
* @license Copyright (c) 2014-2023, 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';
import { Alignment } from '@ckeditor/ckeditor5-alignment';
import { Autoformat } from '@ckeditor/ckeditor5-autoformat';
import { Bold, Italic } from '@ckeditor/ckeditor5-basic-styles';
import { BlockQuote } from '@ckeditor/ckeditor5-block-quote';
import { CloudServices } from '@ckeditor/ckeditor5-cloud-services';
import { Essentials } from '@ckeditor/ckeditor5-essentials';
import { FontFamily } from '@ckeditor/ckeditor5-font';
import { Heading } from '@ckeditor/ckeditor5-heading';
import {
Image,
ImageCaption,
ImageStyle,
ImageToolbar,
ImageUpload,
PictureEditing
} from '@ckeditor/ckeditor5-image';
import { Indent } from '@ckeditor/ckeditor5-indent';
import { Link } from '@ckeditor/ckeditor5-link';
import { List } from '@ckeditor/ckeditor5-list';
import { Paragraph } from '@ckeditor/ckeditor5-paragraph';
import { PasteFromOffice } from '@ckeditor/ckeditor5-paste-from-office';
import { Table, TableToolbar } from '@ckeditor/ckeditor5-table';
import { TextTransformation } from '@ckeditor/ckeditor5-typing';
import MediaEmbed from './plugins/video-upload';
import UploadAdapter from './adapter';
// You can read more about extending the build with additional plugins in the "Installing plugins" guide.
// See https://ckeditor.com/docs/ckeditor5/latest/installation/plugins/installing-plugins.html for details.
class Editor extends ClassicEditor {
public static override builtinPlugins = [
Alignment,
Autoformat,
BlockQuote,
Bold,
CloudServices,
Essentials,
FontFamily,
Heading,
Image,
ImageCaption,
ImageStyle,
ImageToolbar,
ImageUpload,
Indent,
Italic,
Link,
List,
Paragraph,
PasteFromOffice,
PictureEditing,
Table,
TableToolbar,
TextTransformation,
MediaEmbed
];
public static override defaultConfig = {
toolbar: {
items: [
'heading',
'|',
'bold',
'italic',
'link',
'bulletedList',
'numberedList',
'|',
'outdent',
'indent',
'|',
'imageUpload',
'blockQuote',
'insertTable',
'undo',
'redo',
'fontFamily',
'alignment',
'mediaEmbed',
]
},
language: 'en',
image: {
toolbar: [
'imageTextAlternative',
'toggleImageCaption',
'imageStyle:inline',
'imageStyle:block',
'imageStyle:side'
]
},
table: {
contentToolbar: [
'tableColumn',
'tableRow',
'mergeTableCells'
]
},
mediaEmbed: {
extraProviders: [
{
name: 'zdy',
url: [
/(.*?)/,
],
html: (match: any) => {
const src = match.input;
return (
'<div style="position: relative; padding-bottom: 100%; height: 0; padding-bottom: 56.2493%;pointer-events: auto;">' +
'<video controls style="position: absolute; width: 100%; height: 100%; top: 0; left: 0;" src="' + src + '">' +
'</video>' +
'</div>'
);
}
},
]
},
extraPlugins: [MyCustomUploadAdapterPlugin],
};
}
function MyCustomUploadAdapterPlugin(editor: any) {
const myeditor = editor
// eslint-disable-next-line no-underscore-dangle
myeditor.plugins.get('FileRepository').createUploadAdapter = (loader: any) => {
return new UploadAdapter(loader, ((myeditor.config as any)._config.type))
}
}
export default Editor;