@ckeditor/ckeditor5-ui 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/lang/translations/pt-br.po +1 -1
- package/lang/translations/ug.po +26 -26
- package/package.json +3 -3
- package/src/arialiveannouncer.d.ts +94 -0
- package/src/arialiveannouncer.js +113 -0
- package/src/augmentation.d.ts +86 -86
- package/src/augmentation.js +5 -5
- package/src/autocomplete/autocompleteview.d.ts +81 -81
- package/src/autocomplete/autocompleteview.js +153 -146
- package/src/bindings/addkeyboardhandlingforgrid.d.ts +27 -27
- package/src/bindings/addkeyboardhandlingforgrid.js +107 -107
- package/src/bindings/clickoutsidehandler.d.ts +28 -28
- package/src/bindings/clickoutsidehandler.js +36 -36
- package/src/bindings/csstransitiondisablermixin.d.ts +40 -40
- package/src/bindings/csstransitiondisablermixin.js +55 -55
- package/src/bindings/injectcsstransitiondisabler.d.ts +59 -59
- package/src/bindings/injectcsstransitiondisabler.js +71 -71
- package/src/bindings/preventdefault.d.ts +33 -33
- package/src/bindings/preventdefault.js +34 -34
- package/src/bindings/submithandler.d.ts +57 -57
- package/src/bindings/submithandler.js +47 -47
- package/src/button/button.d.ts +172 -178
- package/src/button/button.js +5 -5
- package/src/button/buttonlabel.d.ts +34 -34
- package/src/button/buttonlabel.js +5 -5
- package/src/button/buttonlabelview.d.ts +31 -31
- package/src/button/buttonlabelview.js +42 -42
- package/src/button/buttonview.d.ts +181 -185
- package/src/button/buttonview.js +217 -219
- package/src/button/switchbuttonview.d.ts +45 -45
- package/src/button/switchbuttonview.js +75 -75
- package/src/colorgrid/colorgridview.d.ts +132 -132
- package/src/colorgrid/colorgridview.js +124 -124
- package/src/colorgrid/colortileview.d.ts +28 -28
- package/src/colorgrid/colortileview.js +40 -40
- package/src/colorgrid/utils.d.ts +47 -47
- package/src/colorgrid/utils.js +84 -84
- package/src/colorpicker/colorpickerview.d.ts +137 -137
- package/src/colorpicker/colorpickerview.js +270 -270
- package/src/colorpicker/utils.d.ts +43 -43
- package/src/colorpicker/utils.js +99 -99
- package/src/colorselector/colorgridsfragmentview.d.ts +194 -194
- package/src/colorselector/colorgridsfragmentview.js +289 -289
- package/src/colorselector/colorpickerfragmentview.d.ts +128 -128
- package/src/colorselector/colorpickerfragmentview.js +205 -205
- package/src/colorselector/colorselectorview.d.ts +242 -242
- package/src/colorselector/colorselectorview.js +256 -256
- package/src/colorselector/documentcolorcollection.d.ts +70 -70
- package/src/colorselector/documentcolorcollection.js +42 -42
- package/src/componentfactory.d.ts +81 -81
- package/src/componentfactory.js +104 -104
- package/src/dropdown/button/dropdownbutton.d.ts +25 -25
- package/src/dropdown/button/dropdownbutton.js +5 -5
- package/src/dropdown/button/dropdownbuttonview.d.ts +48 -48
- package/src/dropdown/button/dropdownbuttonview.js +66 -66
- package/src/dropdown/button/splitbuttonview.d.ts +161 -161
- package/src/dropdown/button/splitbuttonview.js +152 -152
- package/src/dropdown/dropdownpanelfocusable.d.ts +21 -21
- package/src/dropdown/dropdownpanelfocusable.js +5 -5
- package/src/dropdown/dropdownpanelview.d.ts +62 -62
- package/src/dropdown/dropdownpanelview.js +97 -97
- package/src/dropdown/dropdownview.d.ts +315 -315
- package/src/dropdown/dropdownview.js +379 -379
- package/src/dropdown/utils.d.ts +235 -235
- package/src/dropdown/utils.js +463 -458
- package/src/editableui/editableuiview.d.ts +72 -72
- package/src/editableui/editableuiview.js +112 -112
- package/src/editableui/inline/inlineeditableuiview.d.ts +40 -40
- package/src/editableui/inline/inlineeditableuiview.js +48 -48
- package/src/editorui/bodycollection.d.ts +55 -55
- package/src/editorui/bodycollection.js +84 -84
- package/src/editorui/boxed/boxededitoruiview.d.ts +40 -40
- package/src/editorui/boxed/boxededitoruiview.js +81 -81
- package/src/editorui/editorui.d.ts +288 -282
- package/src/editorui/editorui.js +412 -410
- package/src/editorui/editoruiview.d.ts +39 -39
- package/src/editorui/editoruiview.js +38 -38
- package/src/editorui/poweredby.d.ts +71 -71
- package/src/editorui/poweredby.js +276 -276
- package/src/focuscycler.d.ts +226 -226
- package/src/focuscycler.js +245 -245
- package/src/formheader/formheaderview.d.ts +59 -59
- package/src/formheader/formheaderview.js +69 -69
- package/src/highlightedtext/highlightedtextview.d.ts +38 -38
- package/src/highlightedtext/highlightedtextview.js +102 -102
- package/src/icon/iconview.d.ts +85 -85
- package/src/icon/iconview.js +114 -114
- package/src/iframe/iframeview.d.ts +50 -50
- package/src/iframe/iframeview.js +63 -63
- package/src/index.d.ts +73 -73
- package/src/index.js +70 -70
- package/src/input/inputbase.d.ts +107 -107
- package/src/input/inputbase.js +110 -110
- package/src/input/inputview.d.ts +36 -36
- package/src/input/inputview.js +24 -24
- package/src/inputnumber/inputnumberview.d.ts +49 -49
- package/src/inputnumber/inputnumberview.js +40 -40
- package/src/inputtext/inputtextview.d.ts +18 -18
- package/src/inputtext/inputtextview.js +27 -27
- package/src/label/labelview.d.ts +36 -36
- package/src/label/labelview.js +41 -41
- package/src/labeledfield/labeledfieldview.d.ts +187 -187
- package/src/labeledfield/labeledfieldview.js +157 -157
- package/src/labeledfield/utils.d.ts +123 -123
- package/src/labeledfield/utils.js +176 -176
- package/src/labeledinput/labeledinputview.d.ts +125 -125
- package/src/labeledinput/labeledinputview.js +125 -125
- package/src/list/listitemgroupview.d.ts +59 -51
- package/src/list/listitemgroupview.js +63 -75
- package/src/list/listitemview.d.ts +36 -36
- package/src/list/listitemview.js +42 -42
- package/src/list/listseparatorview.d.ts +18 -18
- package/src/list/listseparatorview.js +28 -28
- package/src/list/listview.d.ts +122 -122
- package/src/list/listview.js +187 -187
- package/src/model.d.ts +22 -22
- package/src/model.js +31 -31
- package/src/notification/notification.d.ts +211 -211
- package/src/notification/notification.js +187 -187
- package/src/panel/balloon/balloonpanelview.d.ts +685 -685
- package/src/panel/balloon/balloonpanelview.js +1010 -1010
- package/src/panel/balloon/contextualballoon.d.ts +299 -299
- package/src/panel/balloon/contextualballoon.js +572 -572
- package/src/panel/sticky/stickypanelview.d.ts +156 -156
- package/src/panel/sticky/stickypanelview.js +234 -234
- package/src/search/filteredview.d.ts +31 -31
- package/src/search/filteredview.js +5 -5
- package/src/search/searchinfoview.d.ts +45 -45
- package/src/search/searchinfoview.js +59 -59
- package/src/search/searchresultsview.d.ts +54 -54
- package/src/search/searchresultsview.js +65 -65
- package/src/search/text/searchtextqueryview.d.ts +76 -76
- package/src/search/text/searchtextqueryview.js +75 -75
- package/src/search/text/searchtextview.d.ts +219 -219
- package/src/search/text/searchtextview.js +201 -201
- package/src/spinner/spinnerview.d.ts +25 -25
- package/src/spinner/spinnerview.js +38 -38
- package/src/template.d.ts +942 -942
- package/src/template.js +1294 -1294
- package/src/textarea/textareaview.d.ts +88 -88
- package/src/textarea/textareaview.js +142 -140
- package/src/toolbar/balloon/balloontoolbar.d.ts +122 -122
- package/src/toolbar/balloon/balloontoolbar.js +300 -300
- package/src/toolbar/block/blockbuttonview.d.ts +35 -35
- package/src/toolbar/block/blockbuttonview.js +41 -41
- package/src/toolbar/block/blocktoolbar.d.ts +161 -161
- package/src/toolbar/block/blocktoolbar.js +395 -395
- package/src/toolbar/normalizetoolbarconfig.d.ts +40 -40
- package/src/toolbar/normalizetoolbarconfig.js +52 -51
- package/src/toolbar/toolbarlinebreakview.d.ts +18 -18
- package/src/toolbar/toolbarlinebreakview.js +28 -28
- package/src/toolbar/toolbarseparatorview.d.ts +18 -18
- package/src/toolbar/toolbarseparatorview.js +28 -28
- package/src/toolbar/toolbarview.d.ts +266 -266
- package/src/toolbar/toolbarview.js +719 -719
- package/src/tooltipmanager.d.ts +180 -180
- package/src/tooltipmanager.js +353 -353
- package/src/view.d.ts +422 -422
- package/src/view.js +396 -396
- package/src/viewcollection.d.ts +139 -139
- package/src/viewcollection.js +206 -206
- package/theme/components/arialiveannouncer/arialiveannouncer.css +10 -0
- package/theme/components/button/button.css +9 -1
- package/theme/components/formheader/formheader.css +0 -4
|
@@ -1,72 +1,72 @@
|
|
|
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 ui/editableui/editableuiview
|
|
7
|
-
*/
|
|
8
|
-
import View from '../view';
|
|
9
|
-
import type { View as EditingView } from '@ckeditor/ckeditor5-engine';
|
|
10
|
-
import type { Locale } from '@ckeditor/ckeditor5-utils';
|
|
11
|
-
/**
|
|
12
|
-
* The editable UI view class.
|
|
13
|
-
*/
|
|
14
|
-
export default class EditableUIView extends View {
|
|
15
|
-
/**
|
|
16
|
-
* The name of the editable UI view.
|
|
17
|
-
*/
|
|
18
|
-
name: string | null;
|
|
19
|
-
/**
|
|
20
|
-
* Controls whether the editable is focused, i.e. the user is typing in it.
|
|
21
|
-
*
|
|
22
|
-
* @observable
|
|
23
|
-
*/
|
|
24
|
-
isFocused: boolean;
|
|
25
|
-
/**
|
|
26
|
-
* The editing view instance the editable is related to. Editable uses the editing
|
|
27
|
-
* view to dynamically modify its certain DOM attributes after {@link #render rendering}.
|
|
28
|
-
*
|
|
29
|
-
* **Note**: The DOM attributes are performed by the editing view and not UI
|
|
30
|
-
* {@link module:ui/view~View#bindTemplate template bindings} because once rendered,
|
|
31
|
-
* the editable DOM element must remain under the full control of the engine to work properly.
|
|
32
|
-
*/
|
|
33
|
-
protected _editingView: EditingView;
|
|
34
|
-
/**
|
|
35
|
-
* The element which is the main editable element (usually the one with `contentEditable="true"`).
|
|
36
|
-
*/
|
|
37
|
-
private _editableElement;
|
|
38
|
-
/**
|
|
39
|
-
* Whether an external {@link #_editableElement} was passed into the constructor, which also means
|
|
40
|
-
* the view will not render its {@link #template}.
|
|
41
|
-
*/
|
|
42
|
-
private _hasExternalElement;
|
|
43
|
-
/**
|
|
44
|
-
* Creates an instance of EditableUIView class.
|
|
45
|
-
*
|
|
46
|
-
* @param locale The locale instance.
|
|
47
|
-
* @param editingView The editing view instance the editable is related to.
|
|
48
|
-
* @param editableElement The editable element. If not specified, this view
|
|
49
|
-
* should create it. Otherwise, the existing element should be used.
|
|
50
|
-
*/
|
|
51
|
-
constructor(locale: Locale, editingView: EditingView, editableElement?: HTMLElement);
|
|
52
|
-
/**
|
|
53
|
-
* Renders the view by either applying the {@link #template} to the existing
|
|
54
|
-
* {@link module:ui/editableui/editableuiview~EditableUIView#_editableElement} or assigning {@link #element}
|
|
55
|
-
* as {@link module:ui/editableui/editableuiview~EditableUIView#_editableElement}.
|
|
56
|
-
*/
|
|
57
|
-
render(): void;
|
|
58
|
-
/**
|
|
59
|
-
* @inheritDoc
|
|
60
|
-
*/
|
|
61
|
-
destroy(): void;
|
|
62
|
-
/**
|
|
63
|
-
* Whether an external {@link #_editableElement} was passed into the constructor, which also means
|
|
64
|
-
* the view will not render its {@link #template}.
|
|
65
|
-
*/
|
|
66
|
-
get hasExternalElement(): boolean;
|
|
67
|
-
/**
|
|
68
|
-
* Updates the `ck-focused` and `ck-blurred` CSS classes on the {@link #element} according to
|
|
69
|
-
* the {@link #isFocused} property value using the {@link #_editingView editing view} API.
|
|
70
|
-
*/
|
|
71
|
-
private _updateIsFocusedClasses;
|
|
72
|
-
}
|
|
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 ui/editableui/editableuiview
|
|
7
|
+
*/
|
|
8
|
+
import View from '../view';
|
|
9
|
+
import type { View as EditingView } from '@ckeditor/ckeditor5-engine';
|
|
10
|
+
import type { Locale } from '@ckeditor/ckeditor5-utils';
|
|
11
|
+
/**
|
|
12
|
+
* The editable UI view class.
|
|
13
|
+
*/
|
|
14
|
+
export default class EditableUIView extends View {
|
|
15
|
+
/**
|
|
16
|
+
* The name of the editable UI view.
|
|
17
|
+
*/
|
|
18
|
+
name: string | null;
|
|
19
|
+
/**
|
|
20
|
+
* Controls whether the editable is focused, i.e. the user is typing in it.
|
|
21
|
+
*
|
|
22
|
+
* @observable
|
|
23
|
+
*/
|
|
24
|
+
isFocused: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* The editing view instance the editable is related to. Editable uses the editing
|
|
27
|
+
* view to dynamically modify its certain DOM attributes after {@link #render rendering}.
|
|
28
|
+
*
|
|
29
|
+
* **Note**: The DOM attributes are performed by the editing view and not UI
|
|
30
|
+
* {@link module:ui/view~View#bindTemplate template bindings} because once rendered,
|
|
31
|
+
* the editable DOM element must remain under the full control of the engine to work properly.
|
|
32
|
+
*/
|
|
33
|
+
protected _editingView: EditingView;
|
|
34
|
+
/**
|
|
35
|
+
* The element which is the main editable element (usually the one with `contentEditable="true"`).
|
|
36
|
+
*/
|
|
37
|
+
private _editableElement;
|
|
38
|
+
/**
|
|
39
|
+
* Whether an external {@link #_editableElement} was passed into the constructor, which also means
|
|
40
|
+
* the view will not render its {@link #template}.
|
|
41
|
+
*/
|
|
42
|
+
private _hasExternalElement;
|
|
43
|
+
/**
|
|
44
|
+
* Creates an instance of EditableUIView class.
|
|
45
|
+
*
|
|
46
|
+
* @param locale The locale instance.
|
|
47
|
+
* @param editingView The editing view instance the editable is related to.
|
|
48
|
+
* @param editableElement The editable element. If not specified, this view
|
|
49
|
+
* should create it. Otherwise, the existing element should be used.
|
|
50
|
+
*/
|
|
51
|
+
constructor(locale: Locale, editingView: EditingView, editableElement?: HTMLElement);
|
|
52
|
+
/**
|
|
53
|
+
* Renders the view by either applying the {@link #template} to the existing
|
|
54
|
+
* {@link module:ui/editableui/editableuiview~EditableUIView#_editableElement} or assigning {@link #element}
|
|
55
|
+
* as {@link module:ui/editableui/editableuiview~EditableUIView#_editableElement}.
|
|
56
|
+
*/
|
|
57
|
+
render(): void;
|
|
58
|
+
/**
|
|
59
|
+
* @inheritDoc
|
|
60
|
+
*/
|
|
61
|
+
destroy(): void;
|
|
62
|
+
/**
|
|
63
|
+
* Whether an external {@link #_editableElement} was passed into the constructor, which also means
|
|
64
|
+
* the view will not render its {@link #template}.
|
|
65
|
+
*/
|
|
66
|
+
get hasExternalElement(): boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Updates the `ck-focused` and `ck-blurred` CSS classes on the {@link #element} according to
|
|
69
|
+
* the {@link #isFocused} property value using the {@link #_editingView editing view} API.
|
|
70
|
+
*/
|
|
71
|
+
private _updateIsFocusedClasses;
|
|
72
|
+
}
|
|
@@ -1,112 +1,112 @@
|
|
|
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 ui/editableui/editableuiview
|
|
7
|
-
*/
|
|
8
|
-
import View from '../view';
|
|
9
|
-
/**
|
|
10
|
-
* The editable UI view class.
|
|
11
|
-
*/
|
|
12
|
-
export default class EditableUIView extends View {
|
|
13
|
-
/**
|
|
14
|
-
* Creates an instance of EditableUIView class.
|
|
15
|
-
*
|
|
16
|
-
* @param locale The locale instance.
|
|
17
|
-
* @param editingView The editing view instance the editable is related to.
|
|
18
|
-
* @param editableElement The editable element. If not specified, this view
|
|
19
|
-
* should create it. Otherwise, the existing element should be used.
|
|
20
|
-
*/
|
|
21
|
-
constructor(locale, editingView, editableElement) {
|
|
22
|
-
super(locale);
|
|
23
|
-
/**
|
|
24
|
-
* The name of the editable UI view.
|
|
25
|
-
*/
|
|
26
|
-
this.name = null;
|
|
27
|
-
this.setTemplate({
|
|
28
|
-
tag: 'div',
|
|
29
|
-
attributes: {
|
|
30
|
-
class: [
|
|
31
|
-
'ck',
|
|
32
|
-
'ck-content',
|
|
33
|
-
'ck-editor__editable',
|
|
34
|
-
'ck-rounded-corners'
|
|
35
|
-
],
|
|
36
|
-
lang: locale.contentLanguage,
|
|
37
|
-
dir: locale.contentLanguageDirection
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
this.set('isFocused', false);
|
|
41
|
-
this._editableElement = editableElement;
|
|
42
|
-
this._hasExternalElement = !!this._editableElement;
|
|
43
|
-
this._editingView = editingView;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Renders the view by either applying the {@link #template} to the existing
|
|
47
|
-
* {@link module:ui/editableui/editableuiview~EditableUIView#_editableElement} or assigning {@link #element}
|
|
48
|
-
* as {@link module:ui/editableui/editableuiview~EditableUIView#_editableElement}.
|
|
49
|
-
*/
|
|
50
|
-
render() {
|
|
51
|
-
super.render();
|
|
52
|
-
if (this._hasExternalElement) {
|
|
53
|
-
this.template.apply(this.element = this._editableElement);
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
this._editableElement = this.element;
|
|
57
|
-
}
|
|
58
|
-
this.on('change:isFocused', () => this._updateIsFocusedClasses());
|
|
59
|
-
this._updateIsFocusedClasses();
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* @inheritDoc
|
|
63
|
-
*/
|
|
64
|
-
destroy() {
|
|
65
|
-
if (this._hasExternalElement) {
|
|
66
|
-
this.template.revert(this._editableElement);
|
|
67
|
-
}
|
|
68
|
-
super.destroy();
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Whether an external {@link #_editableElement} was passed into the constructor, which also means
|
|
72
|
-
* the view will not render its {@link #template}.
|
|
73
|
-
*/
|
|
74
|
-
get hasExternalElement() {
|
|
75
|
-
return this._hasExternalElement;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Updates the `ck-focused` and `ck-blurred` CSS classes on the {@link #element} according to
|
|
79
|
-
* the {@link #isFocused} property value using the {@link #_editingView editing view} API.
|
|
80
|
-
*/
|
|
81
|
-
_updateIsFocusedClasses() {
|
|
82
|
-
const editingView = this._editingView;
|
|
83
|
-
if (editingView.isRenderingInProgress) {
|
|
84
|
-
updateAfterRender(this);
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
update(this);
|
|
88
|
-
}
|
|
89
|
-
function update(view) {
|
|
90
|
-
editingView.change(writer => {
|
|
91
|
-
const viewRoot = editingView.document.getRoot(view.name);
|
|
92
|
-
writer.addClass(view.isFocused ? 'ck-focused' : 'ck-blurred', viewRoot);
|
|
93
|
-
writer.removeClass(view.isFocused ? 'ck-blurred' : 'ck-focused', viewRoot);
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
// In a case of a multi-root editor, a callback will be attached more than once (one callback for each root).
|
|
97
|
-
// While executing one callback the `isRenderingInProgress` observable is changing what causes executing another
|
|
98
|
-
// callback and render is called inside the already pending render.
|
|
99
|
-
// We need to be sure that callback is executed only when the value has changed from `true` to `false`.
|
|
100
|
-
// See https://github.com/ckeditor/ckeditor5/issues/1676.
|
|
101
|
-
function updateAfterRender(view) {
|
|
102
|
-
editingView.once('change:isRenderingInProgress', (evt, name, value) => {
|
|
103
|
-
if (!value) {
|
|
104
|
-
update(view);
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
updateAfterRender(view);
|
|
108
|
-
}
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
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 ui/editableui/editableuiview
|
|
7
|
+
*/
|
|
8
|
+
import View from '../view';
|
|
9
|
+
/**
|
|
10
|
+
* The editable UI view class.
|
|
11
|
+
*/
|
|
12
|
+
export default class EditableUIView extends View {
|
|
13
|
+
/**
|
|
14
|
+
* Creates an instance of EditableUIView class.
|
|
15
|
+
*
|
|
16
|
+
* @param locale The locale instance.
|
|
17
|
+
* @param editingView The editing view instance the editable is related to.
|
|
18
|
+
* @param editableElement The editable element. If not specified, this view
|
|
19
|
+
* should create it. Otherwise, the existing element should be used.
|
|
20
|
+
*/
|
|
21
|
+
constructor(locale, editingView, editableElement) {
|
|
22
|
+
super(locale);
|
|
23
|
+
/**
|
|
24
|
+
* The name of the editable UI view.
|
|
25
|
+
*/
|
|
26
|
+
this.name = null;
|
|
27
|
+
this.setTemplate({
|
|
28
|
+
tag: 'div',
|
|
29
|
+
attributes: {
|
|
30
|
+
class: [
|
|
31
|
+
'ck',
|
|
32
|
+
'ck-content',
|
|
33
|
+
'ck-editor__editable',
|
|
34
|
+
'ck-rounded-corners'
|
|
35
|
+
],
|
|
36
|
+
lang: locale.contentLanguage,
|
|
37
|
+
dir: locale.contentLanguageDirection
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
this.set('isFocused', false);
|
|
41
|
+
this._editableElement = editableElement;
|
|
42
|
+
this._hasExternalElement = !!this._editableElement;
|
|
43
|
+
this._editingView = editingView;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Renders the view by either applying the {@link #template} to the existing
|
|
47
|
+
* {@link module:ui/editableui/editableuiview~EditableUIView#_editableElement} or assigning {@link #element}
|
|
48
|
+
* as {@link module:ui/editableui/editableuiview~EditableUIView#_editableElement}.
|
|
49
|
+
*/
|
|
50
|
+
render() {
|
|
51
|
+
super.render();
|
|
52
|
+
if (this._hasExternalElement) {
|
|
53
|
+
this.template.apply(this.element = this._editableElement);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
this._editableElement = this.element;
|
|
57
|
+
}
|
|
58
|
+
this.on('change:isFocused', () => this._updateIsFocusedClasses());
|
|
59
|
+
this._updateIsFocusedClasses();
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* @inheritDoc
|
|
63
|
+
*/
|
|
64
|
+
destroy() {
|
|
65
|
+
if (this._hasExternalElement) {
|
|
66
|
+
this.template.revert(this._editableElement);
|
|
67
|
+
}
|
|
68
|
+
super.destroy();
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Whether an external {@link #_editableElement} was passed into the constructor, which also means
|
|
72
|
+
* the view will not render its {@link #template}.
|
|
73
|
+
*/
|
|
74
|
+
get hasExternalElement() {
|
|
75
|
+
return this._hasExternalElement;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Updates the `ck-focused` and `ck-blurred` CSS classes on the {@link #element} according to
|
|
79
|
+
* the {@link #isFocused} property value using the {@link #_editingView editing view} API.
|
|
80
|
+
*/
|
|
81
|
+
_updateIsFocusedClasses() {
|
|
82
|
+
const editingView = this._editingView;
|
|
83
|
+
if (editingView.isRenderingInProgress) {
|
|
84
|
+
updateAfterRender(this);
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
update(this);
|
|
88
|
+
}
|
|
89
|
+
function update(view) {
|
|
90
|
+
editingView.change(writer => {
|
|
91
|
+
const viewRoot = editingView.document.getRoot(view.name);
|
|
92
|
+
writer.addClass(view.isFocused ? 'ck-focused' : 'ck-blurred', viewRoot);
|
|
93
|
+
writer.removeClass(view.isFocused ? 'ck-blurred' : 'ck-focused', viewRoot);
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
// In a case of a multi-root editor, a callback will be attached more than once (one callback for each root).
|
|
97
|
+
// While executing one callback the `isRenderingInProgress` observable is changing what causes executing another
|
|
98
|
+
// callback and render is called inside the already pending render.
|
|
99
|
+
// We need to be sure that callback is executed only when the value has changed from `true` to `false`.
|
|
100
|
+
// See https://github.com/ckeditor/ckeditor5/issues/1676.
|
|
101
|
+
function updateAfterRender(view) {
|
|
102
|
+
editingView.once('change:isRenderingInProgress', (evt, name, value) => {
|
|
103
|
+
if (!value) {
|
|
104
|
+
update(view);
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
updateAfterRender(view);
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
@@ -1,40 +1,40 @@
|
|
|
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 ui/editableui/inline/inlineeditableuiview
|
|
7
|
-
*/
|
|
8
|
-
import EditableUIView from '../editableuiview';
|
|
9
|
-
import type { View } from '@ckeditor/ckeditor5-engine';
|
|
10
|
-
import type { Locale } from '@ckeditor/ckeditor5-utils';
|
|
11
|
-
/**
|
|
12
|
-
* The inline editable UI class implementing an inline {@link module:ui/editableui/editableuiview~EditableUIView}.
|
|
13
|
-
*/
|
|
14
|
-
export default class InlineEditableUIView extends EditableUIView {
|
|
15
|
-
/**
|
|
16
|
-
* A function that gets called with the instance of this view as an argument and should return a string that
|
|
17
|
-
* represents the label of the editable for assistive technologies.
|
|
18
|
-
*/
|
|
19
|
-
private readonly _generateLabel;
|
|
20
|
-
/**
|
|
21
|
-
* Creates an instance of the InlineEditableUIView class.
|
|
22
|
-
*
|
|
23
|
-
* @param locale The locale instance.
|
|
24
|
-
* @param editingView The editing view instance the editable is related to.
|
|
25
|
-
* @param editableElement The editable element. If not specified, the
|
|
26
|
-
* {@link module:ui/editableui/editableuiview~EditableUIView}
|
|
27
|
-
* will create it. Otherwise, the existing element will be used.
|
|
28
|
-
* @param options Additional configuration of the view.
|
|
29
|
-
* @param options.label A function that gets called with the instance of this view as an argument
|
|
30
|
-
* and should return a string that represents the label of the editable for assistive technologies. If not provided,
|
|
31
|
-
* a default label generator is used.
|
|
32
|
-
*/
|
|
33
|
-
constructor(locale: Locale, editingView: View, editableElement?: HTMLElement, options?: {
|
|
34
|
-
label?: (view: InlineEditableUIView) => string;
|
|
35
|
-
});
|
|
36
|
-
/**
|
|
37
|
-
* @inheritDoc
|
|
38
|
-
*/
|
|
39
|
-
render(): void;
|
|
40
|
-
}
|
|
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 ui/editableui/inline/inlineeditableuiview
|
|
7
|
+
*/
|
|
8
|
+
import EditableUIView from '../editableuiview';
|
|
9
|
+
import type { View } from '@ckeditor/ckeditor5-engine';
|
|
10
|
+
import type { Locale } from '@ckeditor/ckeditor5-utils';
|
|
11
|
+
/**
|
|
12
|
+
* The inline editable UI class implementing an inline {@link module:ui/editableui/editableuiview~EditableUIView}.
|
|
13
|
+
*/
|
|
14
|
+
export default class InlineEditableUIView extends EditableUIView {
|
|
15
|
+
/**
|
|
16
|
+
* A function that gets called with the instance of this view as an argument and should return a string that
|
|
17
|
+
* represents the label of the editable for assistive technologies.
|
|
18
|
+
*/
|
|
19
|
+
private readonly _generateLabel;
|
|
20
|
+
/**
|
|
21
|
+
* Creates an instance of the InlineEditableUIView class.
|
|
22
|
+
*
|
|
23
|
+
* @param locale The locale instance.
|
|
24
|
+
* @param editingView The editing view instance the editable is related to.
|
|
25
|
+
* @param editableElement The editable element. If not specified, the
|
|
26
|
+
* {@link module:ui/editableui/editableuiview~EditableUIView}
|
|
27
|
+
* will create it. Otherwise, the existing element will be used.
|
|
28
|
+
* @param options Additional configuration of the view.
|
|
29
|
+
* @param options.label A function that gets called with the instance of this view as an argument
|
|
30
|
+
* and should return a string that represents the label of the editable for assistive technologies. If not provided,
|
|
31
|
+
* a default label generator is used.
|
|
32
|
+
*/
|
|
33
|
+
constructor(locale: Locale, editingView: View, editableElement?: HTMLElement, options?: {
|
|
34
|
+
label?: (view: InlineEditableUIView) => string;
|
|
35
|
+
});
|
|
36
|
+
/**
|
|
37
|
+
* @inheritDoc
|
|
38
|
+
*/
|
|
39
|
+
render(): void;
|
|
40
|
+
}
|
|
@@ -1,48 +1,48 @@
|
|
|
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 ui/editableui/inline/inlineeditableuiview
|
|
7
|
-
*/
|
|
8
|
-
import EditableUIView from '../editableuiview';
|
|
9
|
-
/**
|
|
10
|
-
* The inline editable UI class implementing an inline {@link module:ui/editableui/editableuiview~EditableUIView}.
|
|
11
|
-
*/
|
|
12
|
-
export default class InlineEditableUIView extends EditableUIView {
|
|
13
|
-
/**
|
|
14
|
-
* Creates an instance of the InlineEditableUIView class.
|
|
15
|
-
*
|
|
16
|
-
* @param locale The locale instance.
|
|
17
|
-
* @param editingView The editing view instance the editable is related to.
|
|
18
|
-
* @param editableElement The editable element. If not specified, the
|
|
19
|
-
* {@link module:ui/editableui/editableuiview~EditableUIView}
|
|
20
|
-
* will create it. Otherwise, the existing element will be used.
|
|
21
|
-
* @param options Additional configuration of the view.
|
|
22
|
-
* @param options.label A function that gets called with the instance of this view as an argument
|
|
23
|
-
* and should return a string that represents the label of the editable for assistive technologies. If not provided,
|
|
24
|
-
* a default label generator is used.
|
|
25
|
-
*/
|
|
26
|
-
constructor(locale, editingView, editableElement, options = {}) {
|
|
27
|
-
super(locale, editingView, editableElement);
|
|
28
|
-
const t = locale.t;
|
|
29
|
-
this.extendTemplate({
|
|
30
|
-
attributes: {
|
|
31
|
-
role: 'textbox',
|
|
32
|
-
class: 'ck-editor__editable_inline'
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
this._generateLabel = options.label || (() => t('Editor editing area: %0', this.name));
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* @inheritDoc
|
|
39
|
-
*/
|
|
40
|
-
render() {
|
|
41
|
-
super.render();
|
|
42
|
-
const editingView = this._editingView;
|
|
43
|
-
editingView.change(writer => {
|
|
44
|
-
const viewRoot = editingView.document.getRoot(this.name);
|
|
45
|
-
writer.setAttribute('aria-label', this._generateLabel(this), viewRoot);
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
}
|
|
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 ui/editableui/inline/inlineeditableuiview
|
|
7
|
+
*/
|
|
8
|
+
import EditableUIView from '../editableuiview';
|
|
9
|
+
/**
|
|
10
|
+
* The inline editable UI class implementing an inline {@link module:ui/editableui/editableuiview~EditableUIView}.
|
|
11
|
+
*/
|
|
12
|
+
export default class InlineEditableUIView extends EditableUIView {
|
|
13
|
+
/**
|
|
14
|
+
* Creates an instance of the InlineEditableUIView class.
|
|
15
|
+
*
|
|
16
|
+
* @param locale The locale instance.
|
|
17
|
+
* @param editingView The editing view instance the editable is related to.
|
|
18
|
+
* @param editableElement The editable element. If not specified, the
|
|
19
|
+
* {@link module:ui/editableui/editableuiview~EditableUIView}
|
|
20
|
+
* will create it. Otherwise, the existing element will be used.
|
|
21
|
+
* @param options Additional configuration of the view.
|
|
22
|
+
* @param options.label A function that gets called with the instance of this view as an argument
|
|
23
|
+
* and should return a string that represents the label of the editable for assistive technologies. If not provided,
|
|
24
|
+
* a default label generator is used.
|
|
25
|
+
*/
|
|
26
|
+
constructor(locale, editingView, editableElement, options = {}) {
|
|
27
|
+
super(locale, editingView, editableElement);
|
|
28
|
+
const t = locale.t;
|
|
29
|
+
this.extendTemplate({
|
|
30
|
+
attributes: {
|
|
31
|
+
role: 'textbox',
|
|
32
|
+
class: 'ck-editor__editable_inline'
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
this._generateLabel = options.label || (() => t('Editor editing area: %0', this.name));
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* @inheritDoc
|
|
39
|
+
*/
|
|
40
|
+
render() {
|
|
41
|
+
super.render();
|
|
42
|
+
const editingView = this._editingView;
|
|
43
|
+
editingView.change(writer => {
|
|
44
|
+
const viewRoot = editingView.document.getRoot(this.name);
|
|
45
|
+
writer.setAttribute('aria-label', this._generateLabel(this), viewRoot);
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|