@ckeditor/ckeditor5-editor-inline 38.0.1 → 38.1.1
Sign up to get free protection for your applications and to get access to all the features.
- package/build/editor-inline.js.map +1 -0
- package/package.json +2 -26
- package/src/index.d.ts +8 -8
- package/src/index.js +8 -8
- package/src/inlineeditor.d.ts +176 -176
- package/src/inlineeditor.js +226 -226
- package/src/inlineeditorui.d.ts +52 -52
- package/src/inlineeditorui.js +122 -122
- package/src/inlineeditoruiview.d.ts +137 -137
- package/src/inlineeditoruiview.js +130 -130
package/src/inlineeditorui.js
CHANGED
@@ -1,122 +1,122 @@
|
|
1
|
-
/**
|
2
|
-
* @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
|
3
|
-
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
4
|
-
*/
|
5
|
-
import { EditorUI, normalizeToolbarConfig } from 'ckeditor5/src/ui';
|
6
|
-
import { enablePlaceholder } from 'ckeditor5/src/engine';
|
7
|
-
/**
|
8
|
-
* The inline editor UI class.
|
9
|
-
*
|
10
|
-
* @extends module:ui/editorui/editorui~EditorUI
|
11
|
-
*/
|
12
|
-
export default class InlineEditorUI extends EditorUI {
|
13
|
-
/**
|
14
|
-
* Creates an instance of the inline editor UI class.
|
15
|
-
*
|
16
|
-
* @param editor The editor instance.
|
17
|
-
* @param view The view of the UI.
|
18
|
-
*/
|
19
|
-
constructor(editor, view) {
|
20
|
-
super(editor);
|
21
|
-
this.view = view;
|
22
|
-
this._toolbarConfig = normalizeToolbarConfig(editor.config.get('toolbar'));
|
23
|
-
}
|
24
|
-
/**
|
25
|
-
* @inheritDoc
|
26
|
-
*/
|
27
|
-
get element() {
|
28
|
-
return this.view.editable.element;
|
29
|
-
}
|
30
|
-
/**
|
31
|
-
* Initializes the UI.
|
32
|
-
*/
|
33
|
-
init() {
|
34
|
-
const editor = this.editor;
|
35
|
-
const view = this.view;
|
36
|
-
const editingView = editor.editing.view;
|
37
|
-
const editable = view.editable;
|
38
|
-
const editingRoot = editingView.document.getRoot();
|
39
|
-
// The editable UI and editing root should share the same name. Then name is used
|
40
|
-
// to recognize the particular editable, for instance in ARIA attributes.
|
41
|
-
editable.name = editingRoot.rootName;
|
42
|
-
view.render();
|
43
|
-
// The editable UI element in DOM is available for sure only after the editor UI view has been rendered.
|
44
|
-
// But it can be available earlier if a DOM element has been passed to InlineEditor.create().
|
45
|
-
const editableElement = editable.element;
|
46
|
-
// Register the editable UI view in the editor. A single editor instance can aggregate multiple
|
47
|
-
// editable areas (roots) but the inline editor has only one.
|
48
|
-
this.setEditableElement(editable.name, editableElement);
|
49
|
-
// Let the editable UI element respond to the changes in the global editor focus
|
50
|
-
// tracker. It has been added to the same tracker a few lines above but, in reality, there are
|
51
|
-
// many focusable areas in the editor, like balloons, toolbars or dropdowns and as long
|
52
|
-
// as they have focus, the editable should act like it is focused too (although technically
|
53
|
-
// it isn't), e.g. by setting the proper CSS class, visually announcing focus to the user.
|
54
|
-
// Doing otherwise will result in editable focus styles disappearing, once e.g. the
|
55
|
-
// toolbar gets focused.
|
56
|
-
editable.bind('isFocused').to(this.focusTracker);
|
57
|
-
// Bind the editable UI element to the editing view, making it an end– and entry–point
|
58
|
-
// of the editor's engine. This is where the engine meets the UI.
|
59
|
-
editingView.attachDomRoot(editableElement);
|
60
|
-
this._initPlaceholder();
|
61
|
-
this._initToolbar();
|
62
|
-
this.fire('ready');
|
63
|
-
}
|
64
|
-
/**
|
65
|
-
* @inheritDoc
|
66
|
-
*/
|
67
|
-
destroy() {
|
68
|
-
super.destroy();
|
69
|
-
const view = this.view;
|
70
|
-
const editingView = this.editor.editing.view;
|
71
|
-
editingView.detachDomRoot(view.editable.name);
|
72
|
-
view.destroy();
|
73
|
-
}
|
74
|
-
/**
|
75
|
-
* Initializes the inline editor toolbar and its panel.
|
76
|
-
*/
|
77
|
-
_initToolbar() {
|
78
|
-
const editor = this.editor;
|
79
|
-
const view = this.view;
|
80
|
-
const editableElement = view.editable.element;
|
81
|
-
const toolbar = view.toolbar;
|
82
|
-
// Set–up the view#panel.
|
83
|
-
view.panel.bind('isVisible').to(this.focusTracker, 'isFocused');
|
84
|
-
view.bind('viewportTopOffset').to(this, 'viewportOffset', ({ top }) => top || 0);
|
85
|
-
// https://github.com/ckeditor/ckeditor5-editor-inline/issues/4
|
86
|
-
view.listenTo(editor.ui, 'update', () => {
|
87
|
-
// Don't pin if the panel is not already visible. It prevents the panel
|
88
|
-
// showing up when there's no focus in the UI.
|
89
|
-
if (view.panel.isVisible) {
|
90
|
-
view.panel.pin({
|
91
|
-
target: editableElement,
|
92
|
-
positions: view.panelPositions
|
93
|
-
});
|
94
|
-
}
|
95
|
-
});
|
96
|
-
toolbar.fillFromConfig(this._toolbarConfig, this.componentFactory);
|
97
|
-
// Register the toolbar so it becomes available for Alt+F10 and Esc navigation.
|
98
|
-
this.addToolbar(toolbar);
|
99
|
-
}
|
100
|
-
/**
|
101
|
-
* Enable the placeholder text on the editing root, if any was configured.
|
102
|
-
*/
|
103
|
-
_initPlaceholder() {
|
104
|
-
const editor = this.editor;
|
105
|
-
const editingView = editor.editing.view;
|
106
|
-
const editingRoot = editingView.document.getRoot();
|
107
|
-
const sourceElement = editor.sourceElement;
|
108
|
-
const placeholder = editor.config.get('placeholder');
|
109
|
-
if (placeholder) {
|
110
|
-
const placeholderText = typeof placeholder === 'string' ? placeholder : placeholder[editingRoot.rootName];
|
111
|
-
if (placeholderText) {
|
112
|
-
enablePlaceholder({
|
113
|
-
view: editingView,
|
114
|
-
element: editingRoot,
|
115
|
-
text: placeholderText,
|
116
|
-
isDirectHost: false,
|
117
|
-
keepOnFocus: true
|
118
|
-
});
|
119
|
-
}
|
120
|
-
}
|
121
|
-
}
|
122
|
-
}
|
1
|
+
/**
|
2
|
+
* @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
|
3
|
+
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
4
|
+
*/
|
5
|
+
import { EditorUI, normalizeToolbarConfig } from 'ckeditor5/src/ui';
|
6
|
+
import { enablePlaceholder } from 'ckeditor5/src/engine';
|
7
|
+
/**
|
8
|
+
* The inline editor UI class.
|
9
|
+
*
|
10
|
+
* @extends module:ui/editorui/editorui~EditorUI
|
11
|
+
*/
|
12
|
+
export default class InlineEditorUI extends EditorUI {
|
13
|
+
/**
|
14
|
+
* Creates an instance of the inline editor UI class.
|
15
|
+
*
|
16
|
+
* @param editor The editor instance.
|
17
|
+
* @param view The view of the UI.
|
18
|
+
*/
|
19
|
+
constructor(editor, view) {
|
20
|
+
super(editor);
|
21
|
+
this.view = view;
|
22
|
+
this._toolbarConfig = normalizeToolbarConfig(editor.config.get('toolbar'));
|
23
|
+
}
|
24
|
+
/**
|
25
|
+
* @inheritDoc
|
26
|
+
*/
|
27
|
+
get element() {
|
28
|
+
return this.view.editable.element;
|
29
|
+
}
|
30
|
+
/**
|
31
|
+
* Initializes the UI.
|
32
|
+
*/
|
33
|
+
init() {
|
34
|
+
const editor = this.editor;
|
35
|
+
const view = this.view;
|
36
|
+
const editingView = editor.editing.view;
|
37
|
+
const editable = view.editable;
|
38
|
+
const editingRoot = editingView.document.getRoot();
|
39
|
+
// The editable UI and editing root should share the same name. Then name is used
|
40
|
+
// to recognize the particular editable, for instance in ARIA attributes.
|
41
|
+
editable.name = editingRoot.rootName;
|
42
|
+
view.render();
|
43
|
+
// The editable UI element in DOM is available for sure only after the editor UI view has been rendered.
|
44
|
+
// But it can be available earlier if a DOM element has been passed to InlineEditor.create().
|
45
|
+
const editableElement = editable.element;
|
46
|
+
// Register the editable UI view in the editor. A single editor instance can aggregate multiple
|
47
|
+
// editable areas (roots) but the inline editor has only one.
|
48
|
+
this.setEditableElement(editable.name, editableElement);
|
49
|
+
// Let the editable UI element respond to the changes in the global editor focus
|
50
|
+
// tracker. It has been added to the same tracker a few lines above but, in reality, there are
|
51
|
+
// many focusable areas in the editor, like balloons, toolbars or dropdowns and as long
|
52
|
+
// as they have focus, the editable should act like it is focused too (although technically
|
53
|
+
// it isn't), e.g. by setting the proper CSS class, visually announcing focus to the user.
|
54
|
+
// Doing otherwise will result in editable focus styles disappearing, once e.g. the
|
55
|
+
// toolbar gets focused.
|
56
|
+
editable.bind('isFocused').to(this.focusTracker);
|
57
|
+
// Bind the editable UI element to the editing view, making it an end– and entry–point
|
58
|
+
// of the editor's engine. This is where the engine meets the UI.
|
59
|
+
editingView.attachDomRoot(editableElement);
|
60
|
+
this._initPlaceholder();
|
61
|
+
this._initToolbar();
|
62
|
+
this.fire('ready');
|
63
|
+
}
|
64
|
+
/**
|
65
|
+
* @inheritDoc
|
66
|
+
*/
|
67
|
+
destroy() {
|
68
|
+
super.destroy();
|
69
|
+
const view = this.view;
|
70
|
+
const editingView = this.editor.editing.view;
|
71
|
+
editingView.detachDomRoot(view.editable.name);
|
72
|
+
view.destroy();
|
73
|
+
}
|
74
|
+
/**
|
75
|
+
* Initializes the inline editor toolbar and its panel.
|
76
|
+
*/
|
77
|
+
_initToolbar() {
|
78
|
+
const editor = this.editor;
|
79
|
+
const view = this.view;
|
80
|
+
const editableElement = view.editable.element;
|
81
|
+
const toolbar = view.toolbar;
|
82
|
+
// Set–up the view#panel.
|
83
|
+
view.panel.bind('isVisible').to(this.focusTracker, 'isFocused');
|
84
|
+
view.bind('viewportTopOffset').to(this, 'viewportOffset', ({ top }) => top || 0);
|
85
|
+
// https://github.com/ckeditor/ckeditor5-editor-inline/issues/4
|
86
|
+
view.listenTo(editor.ui, 'update', () => {
|
87
|
+
// Don't pin if the panel is not already visible. It prevents the panel
|
88
|
+
// showing up when there's no focus in the UI.
|
89
|
+
if (view.panel.isVisible) {
|
90
|
+
view.panel.pin({
|
91
|
+
target: editableElement,
|
92
|
+
positions: view.panelPositions
|
93
|
+
});
|
94
|
+
}
|
95
|
+
});
|
96
|
+
toolbar.fillFromConfig(this._toolbarConfig, this.componentFactory);
|
97
|
+
// Register the toolbar so it becomes available for Alt+F10 and Esc navigation.
|
98
|
+
this.addToolbar(toolbar);
|
99
|
+
}
|
100
|
+
/**
|
101
|
+
* Enable the placeholder text on the editing root, if any was configured.
|
102
|
+
*/
|
103
|
+
_initPlaceholder() {
|
104
|
+
const editor = this.editor;
|
105
|
+
const editingView = editor.editing.view;
|
106
|
+
const editingRoot = editingView.document.getRoot();
|
107
|
+
const sourceElement = editor.sourceElement;
|
108
|
+
const placeholder = editor.config.get('placeholder');
|
109
|
+
if (placeholder) {
|
110
|
+
const placeholderText = typeof placeholder === 'string' ? placeholder : placeholder[editingRoot.rootName];
|
111
|
+
if (placeholderText) {
|
112
|
+
enablePlaceholder({
|
113
|
+
view: editingView,
|
114
|
+
element: editingRoot,
|
115
|
+
text: placeholderText,
|
116
|
+
isDirectHost: false,
|
117
|
+
keepOnFocus: true
|
118
|
+
});
|
119
|
+
}
|
120
|
+
}
|
121
|
+
}
|
122
|
+
}
|
@@ -1,137 +1,137 @@
|
|
1
|
-
/**
|
2
|
-
* @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
|
3
|
-
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
4
|
-
*/
|
5
|
-
/**
|
6
|
-
* @module editor-inline/inlineeditoruiview
|
7
|
-
*/
|
8
|
-
import { BalloonPanelView, EditorUIView, InlineEditableUIView, ToolbarView } from 'ckeditor5/src/ui';
|
9
|
-
import { type PositioningFunction, type Locale } from 'ckeditor5/src/utils';
|
10
|
-
import type { View } from 'ckeditor5/src/engine';
|
11
|
-
/**
|
12
|
-
* Inline editor UI view. Uses an nline editable and a floating toolbar.
|
13
|
-
*/
|
14
|
-
export default class InlineEditorUIView extends EditorUIView {
|
15
|
-
/**
|
16
|
-
* A floating toolbar view instance.
|
17
|
-
*/
|
18
|
-
readonly toolbar: ToolbarView;
|
19
|
-
/**
|
20
|
-
* The offset from the top edge of the web browser's viewport which makes the
|
21
|
-
* UI become sticky. The default value is `0`, which means that the UI becomes
|
22
|
-
* sticky when its upper edge touches the top of the page viewport.
|
23
|
-
*
|
24
|
-
* This attribute is useful when the web page has UI elements positioned to the top
|
25
|
-
* either using `position: fixed` or `position: sticky`, which would cover the
|
26
|
-
* UI or vice–versa (depending on the `z-index` hierarchy).
|
27
|
-
*
|
28
|
-
* Bound to {@link module:ui/editorui/editorui~EditorUI#viewportOffset `EditorUI#viewportOffset`}.
|
29
|
-
*
|
30
|
-
* If {@link module:core/editor/editorconfig~EditorConfig#ui `EditorConfig#ui.viewportOffset.top`} is defined, then
|
31
|
-
* it will override the default value.
|
32
|
-
*
|
33
|
-
* @observable
|
34
|
-
* @default 0
|
35
|
-
*/
|
36
|
-
viewportTopOffset: number;
|
37
|
-
/**
|
38
|
-
* A balloon panel view instance.
|
39
|
-
*/
|
40
|
-
readonly panel: BalloonPanelView;
|
41
|
-
/**
|
42
|
-
* A set of positioning functions used by the {@link #panel} to float around
|
43
|
-
* {@link #element editableElement}.
|
44
|
-
*
|
45
|
-
* The positioning functions are as follows:
|
46
|
-
*
|
47
|
-
* * West:
|
48
|
-
*
|
49
|
-
* ```
|
50
|
-
* [ Panel ]
|
51
|
-
* +------------------+
|
52
|
-
* | #editableElement |
|
53
|
-
* +------------------+
|
54
|
-
*
|
55
|
-
* +------------------+
|
56
|
-
* | #editableElement |
|
57
|
-
* |[ Panel ] |
|
58
|
-
* | |
|
59
|
-
* +------------------+
|
60
|
-
*
|
61
|
-
* +------------------+
|
62
|
-
* | #editableElement |
|
63
|
-
* +------------------+
|
64
|
-
* [ Panel ]
|
65
|
-
* ```
|
66
|
-
*
|
67
|
-
* * East:
|
68
|
-
*
|
69
|
-
* ```
|
70
|
-
* [ Panel ]
|
71
|
-
* +------------------+
|
72
|
-
* | #editableElement |
|
73
|
-
* +------------------+
|
74
|
-
*
|
75
|
-
* +------------------+
|
76
|
-
* | #editableElement |
|
77
|
-
* | [ Panel ]|
|
78
|
-
* | |
|
79
|
-
* +------------------+
|
80
|
-
*
|
81
|
-
* +------------------+
|
82
|
-
* | #editableElement |
|
83
|
-
* +------------------+
|
84
|
-
* [ Panel ]
|
85
|
-
* ```
|
86
|
-
*
|
87
|
-
* See: {@link module:utils/dom/position~Options#positions}.
|
88
|
-
*/
|
89
|
-
readonly panelPositions: Array<PositioningFunction>;
|
90
|
-
/**
|
91
|
-
* Editable UI view.
|
92
|
-
*/
|
93
|
-
readonly editable: InlineEditableUIView;
|
94
|
-
/**
|
95
|
-
* An instance of the resize observer that helps dynamically determine the geometry of the toolbar
|
96
|
-
* and manage items that do not fit into a single row.
|
97
|
-
*
|
98
|
-
* **Note:** Created in {@link #render}.
|
99
|
-
*/
|
100
|
-
private _resizeObserver;
|
101
|
-
/**
|
102
|
-
* Creates an instance of the inline editor UI view.
|
103
|
-
*
|
104
|
-
* @param locale The {@link module:core/editor/editor~Editor#locale} instance.
|
105
|
-
* @param editingView The editing view instance this view is related to.
|
106
|
-
* @param editableElement The editable element. If not specified, it will be automatically created by
|
107
|
-
* {@link module:ui/editableui/editableuiview~EditableUIView}. Otherwise, the given element will be used.
|
108
|
-
* @param options Configuration options for the view instance.
|
109
|
-
* @param options.shouldToolbarGroupWhenFull When set `true` enables automatic items grouping
|
110
|
-
* in the main {@link module:editor-inline/inlineeditoruiview~InlineEditorUIView#toolbar toolbar}.
|
111
|
-
* See {@link module:ui/toolbar/toolbarview~ToolbarOptions#shouldGroupWhenFull} to learn more.
|
112
|
-
*/
|
113
|
-
constructor(locale: Locale, editingView: View, editableElement?: HTMLElement, options?: {
|
114
|
-
shouldToolbarGroupWhenFull?: boolean;
|
115
|
-
});
|
116
|
-
/**
|
117
|
-
* @inheritDoc
|
118
|
-
*/
|
119
|
-
render(): void;
|
120
|
-
/**
|
121
|
-
* @inheritDoc
|
122
|
-
*/
|
123
|
-
destroy(): void;
|
124
|
-
/**
|
125
|
-
* Determines the panel top position of the {@link #panel} in {@link #panelPositions}.
|
126
|
-
*
|
127
|
-
* @param editableRect Rect of the {@link #element}.
|
128
|
-
* @param panelRect Rect of the {@link #panel}.
|
129
|
-
*/
|
130
|
-
private _getPanelPositionTop;
|
131
|
-
/**
|
132
|
-
* Returns the positions for {@link #panelPositions}.
|
133
|
-
*
|
134
|
-
* See: {@link module:utils/dom/position~Options#positions}.
|
135
|
-
*/
|
136
|
-
private _getPanelPositions;
|
137
|
-
}
|
1
|
+
/**
|
2
|
+
* @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
|
3
|
+
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
4
|
+
*/
|
5
|
+
/**
|
6
|
+
* @module editor-inline/inlineeditoruiview
|
7
|
+
*/
|
8
|
+
import { BalloonPanelView, EditorUIView, InlineEditableUIView, ToolbarView } from 'ckeditor5/src/ui';
|
9
|
+
import { type PositioningFunction, type Locale } from 'ckeditor5/src/utils';
|
10
|
+
import type { View } from 'ckeditor5/src/engine';
|
11
|
+
/**
|
12
|
+
* Inline editor UI view. Uses an nline editable and a floating toolbar.
|
13
|
+
*/
|
14
|
+
export default class InlineEditorUIView extends EditorUIView {
|
15
|
+
/**
|
16
|
+
* A floating toolbar view instance.
|
17
|
+
*/
|
18
|
+
readonly toolbar: ToolbarView;
|
19
|
+
/**
|
20
|
+
* The offset from the top edge of the web browser's viewport which makes the
|
21
|
+
* UI become sticky. The default value is `0`, which means that the UI becomes
|
22
|
+
* sticky when its upper edge touches the top of the page viewport.
|
23
|
+
*
|
24
|
+
* This attribute is useful when the web page has UI elements positioned to the top
|
25
|
+
* either using `position: fixed` or `position: sticky`, which would cover the
|
26
|
+
* UI or vice–versa (depending on the `z-index` hierarchy).
|
27
|
+
*
|
28
|
+
* Bound to {@link module:ui/editorui/editorui~EditorUI#viewportOffset `EditorUI#viewportOffset`}.
|
29
|
+
*
|
30
|
+
* If {@link module:core/editor/editorconfig~EditorConfig#ui `EditorConfig#ui.viewportOffset.top`} is defined, then
|
31
|
+
* it will override the default value.
|
32
|
+
*
|
33
|
+
* @observable
|
34
|
+
* @default 0
|
35
|
+
*/
|
36
|
+
viewportTopOffset: number;
|
37
|
+
/**
|
38
|
+
* A balloon panel view instance.
|
39
|
+
*/
|
40
|
+
readonly panel: BalloonPanelView;
|
41
|
+
/**
|
42
|
+
* A set of positioning functions used by the {@link #panel} to float around
|
43
|
+
* {@link #element editableElement}.
|
44
|
+
*
|
45
|
+
* The positioning functions are as follows:
|
46
|
+
*
|
47
|
+
* * West:
|
48
|
+
*
|
49
|
+
* ```
|
50
|
+
* [ Panel ]
|
51
|
+
* +------------------+
|
52
|
+
* | #editableElement |
|
53
|
+
* +------------------+
|
54
|
+
*
|
55
|
+
* +------------------+
|
56
|
+
* | #editableElement |
|
57
|
+
* |[ Panel ] |
|
58
|
+
* | |
|
59
|
+
* +------------------+
|
60
|
+
*
|
61
|
+
* +------------------+
|
62
|
+
* | #editableElement |
|
63
|
+
* +------------------+
|
64
|
+
* [ Panel ]
|
65
|
+
* ```
|
66
|
+
*
|
67
|
+
* * East:
|
68
|
+
*
|
69
|
+
* ```
|
70
|
+
* [ Panel ]
|
71
|
+
* +------------------+
|
72
|
+
* | #editableElement |
|
73
|
+
* +------------------+
|
74
|
+
*
|
75
|
+
* +------------------+
|
76
|
+
* | #editableElement |
|
77
|
+
* | [ Panel ]|
|
78
|
+
* | |
|
79
|
+
* +------------------+
|
80
|
+
*
|
81
|
+
* +------------------+
|
82
|
+
* | #editableElement |
|
83
|
+
* +------------------+
|
84
|
+
* [ Panel ]
|
85
|
+
* ```
|
86
|
+
*
|
87
|
+
* See: {@link module:utils/dom/position~Options#positions}.
|
88
|
+
*/
|
89
|
+
readonly panelPositions: Array<PositioningFunction>;
|
90
|
+
/**
|
91
|
+
* Editable UI view.
|
92
|
+
*/
|
93
|
+
readonly editable: InlineEditableUIView;
|
94
|
+
/**
|
95
|
+
* An instance of the resize observer that helps dynamically determine the geometry of the toolbar
|
96
|
+
* and manage items that do not fit into a single row.
|
97
|
+
*
|
98
|
+
* **Note:** Created in {@link #render}.
|
99
|
+
*/
|
100
|
+
private _resizeObserver;
|
101
|
+
/**
|
102
|
+
* Creates an instance of the inline editor UI view.
|
103
|
+
*
|
104
|
+
* @param locale The {@link module:core/editor/editor~Editor#locale} instance.
|
105
|
+
* @param editingView The editing view instance this view is related to.
|
106
|
+
* @param editableElement The editable element. If not specified, it will be automatically created by
|
107
|
+
* {@link module:ui/editableui/editableuiview~EditableUIView}. Otherwise, the given element will be used.
|
108
|
+
* @param options Configuration options for the view instance.
|
109
|
+
* @param options.shouldToolbarGroupWhenFull When set `true` enables automatic items grouping
|
110
|
+
* in the main {@link module:editor-inline/inlineeditoruiview~InlineEditorUIView#toolbar toolbar}.
|
111
|
+
* See {@link module:ui/toolbar/toolbarview~ToolbarOptions#shouldGroupWhenFull} to learn more.
|
112
|
+
*/
|
113
|
+
constructor(locale: Locale, editingView: View, editableElement?: HTMLElement, options?: {
|
114
|
+
shouldToolbarGroupWhenFull?: boolean;
|
115
|
+
});
|
116
|
+
/**
|
117
|
+
* @inheritDoc
|
118
|
+
*/
|
119
|
+
render(): void;
|
120
|
+
/**
|
121
|
+
* @inheritDoc
|
122
|
+
*/
|
123
|
+
destroy(): void;
|
124
|
+
/**
|
125
|
+
* Determines the panel top position of the {@link #panel} in {@link #panelPositions}.
|
126
|
+
*
|
127
|
+
* @param editableRect Rect of the {@link #element}.
|
128
|
+
* @param panelRect Rect of the {@link #panel}.
|
129
|
+
*/
|
130
|
+
private _getPanelPositionTop;
|
131
|
+
/**
|
132
|
+
* Returns the positions for {@link #panelPositions}.
|
133
|
+
*
|
134
|
+
* See: {@link module:utils/dom/position~Options#positions}.
|
135
|
+
*/
|
136
|
+
private _getPanelPositions;
|
137
|
+
}
|