/
ckfinderediting.js
60 lines (52 loc) · 1.55 KB
/
ckfinderediting.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/**
* @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
*/
/**
* @module ckfinder/ckfinderediting
*/
import { Plugin } from 'ckeditor5/src/core';
import { Notification } from 'ckeditor5/src/ui';
import { CKEditorError } from 'ckeditor5/src/utils';
import CKFinderCommand from './ckfindercommand';
/**
* The CKFinder editing feature. It introduces the {@link module:ckfinder/ckfindercommand~CKFinderCommand CKFinder command}.
*
* @extends module:core/plugin~Plugin
*/
export default class CKFinderEditing extends Plugin {
/**
* @inheritDoc
*/
static get pluginName() {
return 'CKFinderEditing';
}
/**
* @inheritDoc
*/
static get requires() {
return [ Notification, 'LinkEditing' ];
}
/**
* @inheritDoc
*/
init() {
const editor = this.editor;
if ( !editor.plugins.has( 'ImageBlockEditing' ) && !editor.plugins.has( 'ImageInlineEditing' ) ) {
/**
* CKFinder requires at least one plugin providing support for images loaded in the editor. Please
* make sure either:
*
* * {@link module:image/image~Image} (which loads both types of images),
* * or {@link module:image/imageblock~ImageBlock},
* * or {@link module:image/imageinline~ImageInline}.
*
* is loaded in your editor configuration.
*
* @error ckfinder-missing-image-plugin
*/
throw new CKEditorError( 'ckfinder-missing-image-plugin', editor );
}
editor.commands.add( 'ckfinder', new CKFinderCommand( editor ) );
}
}