@ckeditor/ckeditor5-editor-inline 40.0.0 → 40.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +3 -3
- package/package.json +2 -2
- 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 +121 -121
- package/src/inlineeditoruiview.d.ts +137 -137
- package/src/inlineeditoruiview.js +130 -130
- package/build/editor-inline.js.map +0 -1
package/src/inlineeditorui.js
CHANGED
@@ -1,121 +1,121 @@
|
|
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.
|
102
|
-
*/
|
103
|
-
_initPlaceholder() {
|
104
|
-
const editor = this.editor;
|
105
|
-
const editingView = editor.editing.view;
|
106
|
-
const editingRoot = editingView.document.getRoot();
|
107
|
-
const placeholder = editor.config.get('placeholder');
|
108
|
-
if (placeholder) {
|
109
|
-
const placeholderText = typeof placeholder === 'string' ? placeholder : placeholder[editingRoot.rootName];
|
110
|
-
if (placeholderText) {
|
111
|
-
editingRoot.placeholder = placeholderText;
|
112
|
-
}
|
113
|
-
}
|
114
|
-
enablePlaceholder({
|
115
|
-
view: editingView,
|
116
|
-
element: editingRoot,
|
117
|
-
isDirectHost: false,
|
118
|
-
keepOnFocus: true
|
119
|
-
});
|
120
|
-
}
|
121
|
-
}
|
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.
|
102
|
+
*/
|
103
|
+
_initPlaceholder() {
|
104
|
+
const editor = this.editor;
|
105
|
+
const editingView = editor.editing.view;
|
106
|
+
const editingRoot = editingView.document.getRoot();
|
107
|
+
const placeholder = editor.config.get('placeholder');
|
108
|
+
if (placeholder) {
|
109
|
+
const placeholderText = typeof placeholder === 'string' ? placeholder : placeholder[editingRoot.rootName];
|
110
|
+
if (placeholderText) {
|
111
|
+
editingRoot.placeholder = placeholderText;
|
112
|
+
}
|
113
|
+
}
|
114
|
+
enablePlaceholder({
|
115
|
+
view: editingView,
|
116
|
+
element: editingRoot,
|
117
|
+
isDirectHost: false,
|
118
|
+
keepOnFocus: true
|
119
|
+
});
|
120
|
+
}
|
121
|
+
}
|
@@ -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
|
+
}
|