This repository has been archived by the owner on Jun 26, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 15
/
elementapimixin.js
65 lines (57 loc) · 1.74 KB
/
elementapimixin.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
61
62
63
64
65
/**
* @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
*/
import CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';
import setDataInElement from '@ckeditor/ckeditor5-utils/src/dom/setdatainelement';
/**
* @module core/editor/utils/elementapimixin
*/
/**
* Implementation of the {@link module:core/editor/utils/elementapimixin~ElementApi}.
*
* @mixin ElementApiMixin
* @implements module:core/editor/utils/elementapimixin~ElementApi
*/
const ElementApiMixin = {
/**
* @inheritDoc
*/
updateSourceElement() {
if ( !this.sourceElement ) {
/**
* Cannot update the source element of a detached editor.
*
* The {@link ~ElementApi#updateSourceElement `updateSourceElement()`} method cannot be called if you did not
* pass an element to `Editor.create()`.
*
* @error editor-missing-sourceelement
*/
throw new CKEditorError(
'editor-missing-sourceelement: Cannot update the source element of a detached editor.',
this
);
}
setDataInElement( this.sourceElement, this.data.get() );
}
};
export default ElementApiMixin;
/**
* Interface describing an editor that replaced a DOM element (was "initialized on an element").
*
* Such an editor should provide a method to
* {@link module:core/editor/utils/elementapimixin~ElementApi#updateSourceElement update the replaced element with the current data}.
*
* @interface ElementApi
*/
/**
* The element on which the editor has been initialized.
*
* @readonly
* @member {HTMLElement} #sourceElement
*/
/**
* Updates the {@link #sourceElement editor source element}'s content with the data.
*
* @method #updateSourceElement
*/