@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,176 +1,176 @@
|
|
|
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/labeledfield/utils
|
|
7
|
-
*/
|
|
8
|
-
import InputTextView from '../inputtext/inputtextview';
|
|
9
|
-
import InputNumberView from '../inputnumber/inputnumberview';
|
|
10
|
-
import TextareaView from '../textarea/textareaview';
|
|
11
|
-
import { createDropdown } from '../dropdown/utils';
|
|
12
|
-
/**
|
|
13
|
-
* A helper for creating labeled inputs.
|
|
14
|
-
*
|
|
15
|
-
* It creates an instance of a {@link module:ui/inputtext/inputtextview~InputTextView input text} that is
|
|
16
|
-
* logically related to a {@link module:ui/labeledfield/labeledfieldview~LabeledFieldView labeled view} in DOM.
|
|
17
|
-
*
|
|
18
|
-
* The helper does the following:
|
|
19
|
-
*
|
|
20
|
-
* * It sets input's `id` and `ariaDescribedById` attributes.
|
|
21
|
-
* * It binds input's `isReadOnly` to the labeled view.
|
|
22
|
-
* * It binds input's `hasError` to the labeled view.
|
|
23
|
-
* * It enables a logic that cleans up the error when user starts typing in the input.
|
|
24
|
-
*
|
|
25
|
-
* Usage:
|
|
26
|
-
*
|
|
27
|
-
* ```ts
|
|
28
|
-
* const labeledInputView = new LabeledFieldView( locale, createLabeledInputText );
|
|
29
|
-
* console.log( labeledInputView.fieldView ); // A text input instance.
|
|
30
|
-
* ```
|
|
31
|
-
*
|
|
32
|
-
* @param labeledFieldView The instance of the labeled field view.
|
|
33
|
-
* @param viewUid An UID string that allows DOM logical connection between the
|
|
34
|
-
* {@link module:ui/labeledfield/labeledfieldview~LabeledFieldView#labelView labeled view's label} and the input.
|
|
35
|
-
* @param statusUid An UID string that allows DOM logical connection between the
|
|
36
|
-
* {@link module:ui/labeledfield/labeledfieldview~LabeledFieldView#statusView labeled view's status} and the input.
|
|
37
|
-
* @returns The input text view instance.
|
|
38
|
-
*/
|
|
39
|
-
const createLabeledInputText = (labeledFieldView, viewUid, statusUid) => {
|
|
40
|
-
const inputView = new InputTextView(labeledFieldView.locale);
|
|
41
|
-
inputView.set({
|
|
42
|
-
id: viewUid,
|
|
43
|
-
ariaDescribedById: statusUid
|
|
44
|
-
});
|
|
45
|
-
inputView.bind('isReadOnly').to(labeledFieldView, 'isEnabled', value => !value);
|
|
46
|
-
inputView.bind('hasError').to(labeledFieldView, 'errorText', value => !!value);
|
|
47
|
-
inputView.on('input', () => {
|
|
48
|
-
// UX: Make the error text disappear and disable the error indicator as the user
|
|
49
|
-
// starts fixing the errors.
|
|
50
|
-
labeledFieldView.errorText = null;
|
|
51
|
-
});
|
|
52
|
-
labeledFieldView.bind('isEmpty', 'isFocused', 'placeholder').to(inputView);
|
|
53
|
-
return inputView;
|
|
54
|
-
};
|
|
55
|
-
/**
|
|
56
|
-
* A helper for creating labeled number inputs.
|
|
57
|
-
*
|
|
58
|
-
* It creates an instance of a {@link module:ui/inputnumber/inputnumberview~InputNumberView input number} that is
|
|
59
|
-
* logically related to a {@link module:ui/labeledfield/labeledfieldview~LabeledFieldView labeled view} in DOM.
|
|
60
|
-
*
|
|
61
|
-
* The helper does the following:
|
|
62
|
-
*
|
|
63
|
-
* * It sets input's `id` and `ariaDescribedById` attributes.
|
|
64
|
-
* * It binds input's `isReadOnly` to the labeled view.
|
|
65
|
-
* * It binds input's `hasError` to the labeled view.
|
|
66
|
-
* * It enables a logic that cleans up the error when user starts typing in the input.
|
|
67
|
-
*
|
|
68
|
-
* Usage:
|
|
69
|
-
*
|
|
70
|
-
* ```ts
|
|
71
|
-
* const labeledInputView = new LabeledFieldView( locale, createLabeledInputNumber );
|
|
72
|
-
* console.log( labeledInputView.fieldView ); // A number input instance.
|
|
73
|
-
* ```
|
|
74
|
-
*
|
|
75
|
-
* @param labeledFieldView The instance of the labeled field view.
|
|
76
|
-
* @param viewUid An UID string that allows DOM logical connection between the
|
|
77
|
-
* {@link module:ui/labeledfield/labeledfieldview~LabeledFieldView#labelView labeled view's label} and the input.
|
|
78
|
-
* @param statusUid An UID string that allows DOM logical connection between the
|
|
79
|
-
* {@link module:ui/labeledfield/labeledfieldview~LabeledFieldView#statusView labeled view's status} and the input.
|
|
80
|
-
* @returns The input number view instance.
|
|
81
|
-
*/
|
|
82
|
-
const createLabeledInputNumber = (labeledFieldView, viewUid, statusUid) => {
|
|
83
|
-
const inputView = new InputNumberView(labeledFieldView.locale);
|
|
84
|
-
inputView.set({
|
|
85
|
-
id: viewUid,
|
|
86
|
-
ariaDescribedById: statusUid,
|
|
87
|
-
inputMode: 'numeric'
|
|
88
|
-
});
|
|
89
|
-
inputView.bind('isReadOnly').to(labeledFieldView, 'isEnabled', value => !value);
|
|
90
|
-
inputView.bind('hasError').to(labeledFieldView, 'errorText', value => !!value);
|
|
91
|
-
inputView.on('input', () => {
|
|
92
|
-
// UX: Make the error text disappear and disable the error indicator as the user
|
|
93
|
-
// starts fixing the errors.
|
|
94
|
-
labeledFieldView.errorText = null;
|
|
95
|
-
});
|
|
96
|
-
labeledFieldView.bind('isEmpty', 'isFocused', 'placeholder').to(inputView);
|
|
97
|
-
return inputView;
|
|
98
|
-
};
|
|
99
|
-
/**
|
|
100
|
-
* A helper for creating labeled textarea.
|
|
101
|
-
*
|
|
102
|
-
* It creates an instance of a {@link module:ui/textarea/textareaview~TextareaView textarea} that is
|
|
103
|
-
* logically related to a {@link module:ui/labeledfield/labeledfieldview~LabeledFieldView labeled view} in DOM.
|
|
104
|
-
*
|
|
105
|
-
* The helper does the following:
|
|
106
|
-
*
|
|
107
|
-
* * It sets textarea's `id` and `ariaDescribedById` attributes.
|
|
108
|
-
* * It binds textarea's `isReadOnly` to the labeled view.
|
|
109
|
-
* * It binds textarea's `hasError` to the labeled view.
|
|
110
|
-
* * It enables a logic that cleans up the error when user starts typing in the textarea.
|
|
111
|
-
*
|
|
112
|
-
* Usage:
|
|
113
|
-
*
|
|
114
|
-
* ```ts
|
|
115
|
-
* const labeledTextarea = new LabeledFieldView( locale, createLabeledTextarea );
|
|
116
|
-
* console.log( labeledTextarea.fieldView ); // A textarea instance.
|
|
117
|
-
* ```
|
|
118
|
-
*
|
|
119
|
-
* @param labeledFieldView The instance of the labeled field view.
|
|
120
|
-
* @param viewUid An UID string that allows DOM logical connection between the
|
|
121
|
-
* {@link module:ui/labeledfield/labeledfieldview~LabeledFieldView#labelView labeled view's label} and the textarea.
|
|
122
|
-
* @param statusUid An UID string that allows DOM logical connection between the
|
|
123
|
-
* {@link module:ui/labeledfield/labeledfieldview~LabeledFieldView#statusView labeled view's status} and the textarea.
|
|
124
|
-
* @returns The textarea view instance.
|
|
125
|
-
*/
|
|
126
|
-
const createLabeledTextarea = (labeledFieldView, viewUid, statusUid) => {
|
|
127
|
-
const textareaView = new TextareaView(labeledFieldView.locale);
|
|
128
|
-
textareaView.set({
|
|
129
|
-
id: viewUid,
|
|
130
|
-
ariaDescribedById: statusUid
|
|
131
|
-
});
|
|
132
|
-
textareaView.bind('isReadOnly').to(labeledFieldView, 'isEnabled', value => !value);
|
|
133
|
-
textareaView.bind('hasError').to(labeledFieldView, 'errorText', value => !!value);
|
|
134
|
-
textareaView.on('input', () => {
|
|
135
|
-
// UX: Make the error text disappear and disable the error indicator as the user
|
|
136
|
-
// starts fixing the errors.
|
|
137
|
-
labeledFieldView.errorText = null;
|
|
138
|
-
});
|
|
139
|
-
labeledFieldView.bind('isEmpty', 'isFocused', 'placeholder').to(textareaView);
|
|
140
|
-
return textareaView;
|
|
141
|
-
};
|
|
142
|
-
/**
|
|
143
|
-
* A helper for creating labeled dropdowns.
|
|
144
|
-
*
|
|
145
|
-
* It creates an instance of a {@link module:ui/dropdown/dropdownview~DropdownView dropdown} that is
|
|
146
|
-
* logically related to a {@link module:ui/labeledfield/labeledfieldview~LabeledFieldView labeled field view}.
|
|
147
|
-
*
|
|
148
|
-
* The helper does the following:
|
|
149
|
-
*
|
|
150
|
-
* * It sets dropdown's `id` and `ariaDescribedById` attributes.
|
|
151
|
-
* * It binds input's `isEnabled` to the labeled view.
|
|
152
|
-
*
|
|
153
|
-
* Usage:
|
|
154
|
-
*
|
|
155
|
-
* ```ts
|
|
156
|
-
* const labeledInputView = new LabeledFieldView( locale, createLabeledDropdown );
|
|
157
|
-
* console.log( labeledInputView.fieldView ); // A dropdown instance.
|
|
158
|
-
* ```
|
|
159
|
-
*
|
|
160
|
-
* @param labeledFieldView The instance of the labeled field view.
|
|
161
|
-
* @param viewUid An UID string that allows DOM logical connection between the
|
|
162
|
-
* {@link module:ui/labeledfield/labeledfieldview~LabeledFieldView#labelView labeled view label} and the dropdown.
|
|
163
|
-
* @param statusUid An UID string that allows DOM logical connection between the
|
|
164
|
-
* {@link module:ui/labeledfield/labeledfieldview~LabeledFieldView#statusView labeled view status} and the dropdown.
|
|
165
|
-
* @returns The dropdown view instance.
|
|
166
|
-
*/
|
|
167
|
-
const createLabeledDropdown = (labeledFieldView, viewUid, statusUid) => {
|
|
168
|
-
const dropdownView = createDropdown(labeledFieldView.locale);
|
|
169
|
-
dropdownView.set({
|
|
170
|
-
id: viewUid,
|
|
171
|
-
ariaDescribedById: statusUid
|
|
172
|
-
});
|
|
173
|
-
dropdownView.bind('isEnabled').to(labeledFieldView);
|
|
174
|
-
return dropdownView;
|
|
175
|
-
};
|
|
176
|
-
export { createLabeledInputNumber, createLabeledInputText, createLabeledTextarea, createLabeledDropdown };
|
|
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/labeledfield/utils
|
|
7
|
+
*/
|
|
8
|
+
import InputTextView from '../inputtext/inputtextview';
|
|
9
|
+
import InputNumberView from '../inputnumber/inputnumberview';
|
|
10
|
+
import TextareaView from '../textarea/textareaview';
|
|
11
|
+
import { createDropdown } from '../dropdown/utils';
|
|
12
|
+
/**
|
|
13
|
+
* A helper for creating labeled inputs.
|
|
14
|
+
*
|
|
15
|
+
* It creates an instance of a {@link module:ui/inputtext/inputtextview~InputTextView input text} that is
|
|
16
|
+
* logically related to a {@link module:ui/labeledfield/labeledfieldview~LabeledFieldView labeled view} in DOM.
|
|
17
|
+
*
|
|
18
|
+
* The helper does the following:
|
|
19
|
+
*
|
|
20
|
+
* * It sets input's `id` and `ariaDescribedById` attributes.
|
|
21
|
+
* * It binds input's `isReadOnly` to the labeled view.
|
|
22
|
+
* * It binds input's `hasError` to the labeled view.
|
|
23
|
+
* * It enables a logic that cleans up the error when user starts typing in the input.
|
|
24
|
+
*
|
|
25
|
+
* Usage:
|
|
26
|
+
*
|
|
27
|
+
* ```ts
|
|
28
|
+
* const labeledInputView = new LabeledFieldView( locale, createLabeledInputText );
|
|
29
|
+
* console.log( labeledInputView.fieldView ); // A text input instance.
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* @param labeledFieldView The instance of the labeled field view.
|
|
33
|
+
* @param viewUid An UID string that allows DOM logical connection between the
|
|
34
|
+
* {@link module:ui/labeledfield/labeledfieldview~LabeledFieldView#labelView labeled view's label} and the input.
|
|
35
|
+
* @param statusUid An UID string that allows DOM logical connection between the
|
|
36
|
+
* {@link module:ui/labeledfield/labeledfieldview~LabeledFieldView#statusView labeled view's status} and the input.
|
|
37
|
+
* @returns The input text view instance.
|
|
38
|
+
*/
|
|
39
|
+
const createLabeledInputText = (labeledFieldView, viewUid, statusUid) => {
|
|
40
|
+
const inputView = new InputTextView(labeledFieldView.locale);
|
|
41
|
+
inputView.set({
|
|
42
|
+
id: viewUid,
|
|
43
|
+
ariaDescribedById: statusUid
|
|
44
|
+
});
|
|
45
|
+
inputView.bind('isReadOnly').to(labeledFieldView, 'isEnabled', value => !value);
|
|
46
|
+
inputView.bind('hasError').to(labeledFieldView, 'errorText', value => !!value);
|
|
47
|
+
inputView.on('input', () => {
|
|
48
|
+
// UX: Make the error text disappear and disable the error indicator as the user
|
|
49
|
+
// starts fixing the errors.
|
|
50
|
+
labeledFieldView.errorText = null;
|
|
51
|
+
});
|
|
52
|
+
labeledFieldView.bind('isEmpty', 'isFocused', 'placeholder').to(inputView);
|
|
53
|
+
return inputView;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* A helper for creating labeled number inputs.
|
|
57
|
+
*
|
|
58
|
+
* It creates an instance of a {@link module:ui/inputnumber/inputnumberview~InputNumberView input number} that is
|
|
59
|
+
* logically related to a {@link module:ui/labeledfield/labeledfieldview~LabeledFieldView labeled view} in DOM.
|
|
60
|
+
*
|
|
61
|
+
* The helper does the following:
|
|
62
|
+
*
|
|
63
|
+
* * It sets input's `id` and `ariaDescribedById` attributes.
|
|
64
|
+
* * It binds input's `isReadOnly` to the labeled view.
|
|
65
|
+
* * It binds input's `hasError` to the labeled view.
|
|
66
|
+
* * It enables a logic that cleans up the error when user starts typing in the input.
|
|
67
|
+
*
|
|
68
|
+
* Usage:
|
|
69
|
+
*
|
|
70
|
+
* ```ts
|
|
71
|
+
* const labeledInputView = new LabeledFieldView( locale, createLabeledInputNumber );
|
|
72
|
+
* console.log( labeledInputView.fieldView ); // A number input instance.
|
|
73
|
+
* ```
|
|
74
|
+
*
|
|
75
|
+
* @param labeledFieldView The instance of the labeled field view.
|
|
76
|
+
* @param viewUid An UID string that allows DOM logical connection between the
|
|
77
|
+
* {@link module:ui/labeledfield/labeledfieldview~LabeledFieldView#labelView labeled view's label} and the input.
|
|
78
|
+
* @param statusUid An UID string that allows DOM logical connection between the
|
|
79
|
+
* {@link module:ui/labeledfield/labeledfieldview~LabeledFieldView#statusView labeled view's status} and the input.
|
|
80
|
+
* @returns The input number view instance.
|
|
81
|
+
*/
|
|
82
|
+
const createLabeledInputNumber = (labeledFieldView, viewUid, statusUid) => {
|
|
83
|
+
const inputView = new InputNumberView(labeledFieldView.locale);
|
|
84
|
+
inputView.set({
|
|
85
|
+
id: viewUid,
|
|
86
|
+
ariaDescribedById: statusUid,
|
|
87
|
+
inputMode: 'numeric'
|
|
88
|
+
});
|
|
89
|
+
inputView.bind('isReadOnly').to(labeledFieldView, 'isEnabled', value => !value);
|
|
90
|
+
inputView.bind('hasError').to(labeledFieldView, 'errorText', value => !!value);
|
|
91
|
+
inputView.on('input', () => {
|
|
92
|
+
// UX: Make the error text disappear and disable the error indicator as the user
|
|
93
|
+
// starts fixing the errors.
|
|
94
|
+
labeledFieldView.errorText = null;
|
|
95
|
+
});
|
|
96
|
+
labeledFieldView.bind('isEmpty', 'isFocused', 'placeholder').to(inputView);
|
|
97
|
+
return inputView;
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* A helper for creating labeled textarea.
|
|
101
|
+
*
|
|
102
|
+
* It creates an instance of a {@link module:ui/textarea/textareaview~TextareaView textarea} that is
|
|
103
|
+
* logically related to a {@link module:ui/labeledfield/labeledfieldview~LabeledFieldView labeled view} in DOM.
|
|
104
|
+
*
|
|
105
|
+
* The helper does the following:
|
|
106
|
+
*
|
|
107
|
+
* * It sets textarea's `id` and `ariaDescribedById` attributes.
|
|
108
|
+
* * It binds textarea's `isReadOnly` to the labeled view.
|
|
109
|
+
* * It binds textarea's `hasError` to the labeled view.
|
|
110
|
+
* * It enables a logic that cleans up the error when user starts typing in the textarea.
|
|
111
|
+
*
|
|
112
|
+
* Usage:
|
|
113
|
+
*
|
|
114
|
+
* ```ts
|
|
115
|
+
* const labeledTextarea = new LabeledFieldView( locale, createLabeledTextarea );
|
|
116
|
+
* console.log( labeledTextarea.fieldView ); // A textarea instance.
|
|
117
|
+
* ```
|
|
118
|
+
*
|
|
119
|
+
* @param labeledFieldView The instance of the labeled field view.
|
|
120
|
+
* @param viewUid An UID string that allows DOM logical connection between the
|
|
121
|
+
* {@link module:ui/labeledfield/labeledfieldview~LabeledFieldView#labelView labeled view's label} and the textarea.
|
|
122
|
+
* @param statusUid An UID string that allows DOM logical connection between the
|
|
123
|
+
* {@link module:ui/labeledfield/labeledfieldview~LabeledFieldView#statusView labeled view's status} and the textarea.
|
|
124
|
+
* @returns The textarea view instance.
|
|
125
|
+
*/
|
|
126
|
+
const createLabeledTextarea = (labeledFieldView, viewUid, statusUid) => {
|
|
127
|
+
const textareaView = new TextareaView(labeledFieldView.locale);
|
|
128
|
+
textareaView.set({
|
|
129
|
+
id: viewUid,
|
|
130
|
+
ariaDescribedById: statusUid
|
|
131
|
+
});
|
|
132
|
+
textareaView.bind('isReadOnly').to(labeledFieldView, 'isEnabled', value => !value);
|
|
133
|
+
textareaView.bind('hasError').to(labeledFieldView, 'errorText', value => !!value);
|
|
134
|
+
textareaView.on('input', () => {
|
|
135
|
+
// UX: Make the error text disappear and disable the error indicator as the user
|
|
136
|
+
// starts fixing the errors.
|
|
137
|
+
labeledFieldView.errorText = null;
|
|
138
|
+
});
|
|
139
|
+
labeledFieldView.bind('isEmpty', 'isFocused', 'placeholder').to(textareaView);
|
|
140
|
+
return textareaView;
|
|
141
|
+
};
|
|
142
|
+
/**
|
|
143
|
+
* A helper for creating labeled dropdowns.
|
|
144
|
+
*
|
|
145
|
+
* It creates an instance of a {@link module:ui/dropdown/dropdownview~DropdownView dropdown} that is
|
|
146
|
+
* logically related to a {@link module:ui/labeledfield/labeledfieldview~LabeledFieldView labeled field view}.
|
|
147
|
+
*
|
|
148
|
+
* The helper does the following:
|
|
149
|
+
*
|
|
150
|
+
* * It sets dropdown's `id` and `ariaDescribedById` attributes.
|
|
151
|
+
* * It binds input's `isEnabled` to the labeled view.
|
|
152
|
+
*
|
|
153
|
+
* Usage:
|
|
154
|
+
*
|
|
155
|
+
* ```ts
|
|
156
|
+
* const labeledInputView = new LabeledFieldView( locale, createLabeledDropdown );
|
|
157
|
+
* console.log( labeledInputView.fieldView ); // A dropdown instance.
|
|
158
|
+
* ```
|
|
159
|
+
*
|
|
160
|
+
* @param labeledFieldView The instance of the labeled field view.
|
|
161
|
+
* @param viewUid An UID string that allows DOM logical connection between the
|
|
162
|
+
* {@link module:ui/labeledfield/labeledfieldview~LabeledFieldView#labelView labeled view label} and the dropdown.
|
|
163
|
+
* @param statusUid An UID string that allows DOM logical connection between the
|
|
164
|
+
* {@link module:ui/labeledfield/labeledfieldview~LabeledFieldView#statusView labeled view status} and the dropdown.
|
|
165
|
+
* @returns The dropdown view instance.
|
|
166
|
+
*/
|
|
167
|
+
const createLabeledDropdown = (labeledFieldView, viewUid, statusUid) => {
|
|
168
|
+
const dropdownView = createDropdown(labeledFieldView.locale);
|
|
169
|
+
dropdownView.set({
|
|
170
|
+
id: viewUid,
|
|
171
|
+
ariaDescribedById: statusUid
|
|
172
|
+
});
|
|
173
|
+
dropdownView.bind('isEnabled').to(labeledFieldView);
|
|
174
|
+
return dropdownView;
|
|
175
|
+
};
|
|
176
|
+
export { createLabeledInputNumber, createLabeledInputText, createLabeledTextarea, createLabeledDropdown };
|
|
@@ -1,125 +1,125 @@
|
|
|
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/labeledinput/labeledinputview
|
|
7
|
-
*/
|
|
8
|
-
import View from '../view';
|
|
9
|
-
import LabelView from '../label/labelview';
|
|
10
|
-
import type { default as InputView } from '../input/inputview';
|
|
11
|
-
import { type Locale } from '@ckeditor/ckeditor5-utils';
|
|
12
|
-
import '../../theme/components/labeledinput/labeledinput.css';
|
|
13
|
-
/**
|
|
14
|
-
* The labeled input view class.
|
|
15
|
-
*/
|
|
16
|
-
export default class LabeledInputView extends View {
|
|
17
|
-
/**
|
|
18
|
-
* The label view.
|
|
19
|
-
*/
|
|
20
|
-
readonly labelView: LabelView;
|
|
21
|
-
/**
|
|
22
|
-
* The input view.
|
|
23
|
-
*/
|
|
24
|
-
readonly inputView: InputView;
|
|
25
|
-
/**
|
|
26
|
-
* The status view for the {@link #inputView}. It displays {@link #errorText} and
|
|
27
|
-
* {@link #infoText}.
|
|
28
|
-
*/
|
|
29
|
-
readonly statusView: View;
|
|
30
|
-
/**
|
|
31
|
-
* The text of the label.
|
|
32
|
-
*
|
|
33
|
-
* @observable
|
|
34
|
-
*/
|
|
35
|
-
label: string | undefined;
|
|
36
|
-
/**
|
|
37
|
-
* The value of the input.
|
|
38
|
-
*
|
|
39
|
-
* @observable
|
|
40
|
-
*/
|
|
41
|
-
value: string | undefined;
|
|
42
|
-
/**
|
|
43
|
-
* Controls whether the component is in read-only mode.
|
|
44
|
-
*
|
|
45
|
-
* @observable
|
|
46
|
-
*/
|
|
47
|
-
isReadOnly: boolean;
|
|
48
|
-
/**
|
|
49
|
-
* The validation error text. When set, it will be displayed
|
|
50
|
-
* next to the {@link #inputView} as a typical validation error message.
|
|
51
|
-
* Set it to `null` to hide the message.
|
|
52
|
-
*
|
|
53
|
-
* **Note:** Setting this property to anything but `null` will automatically
|
|
54
|
-
* make the {@link module:ui/inputtext/inputtextview~InputTextView#hasError `hasError`}
|
|
55
|
-
* of the {@link #inputView} `true`.
|
|
56
|
-
*
|
|
57
|
-
* **Note:** Typing in the {@link #inputView} which fires the
|
|
58
|
-
* {@link module:ui/inputtext/inputtextview~InputTextView#event:input `input` event}
|
|
59
|
-
* resets this property back to `null`, indicating that the input field can be re–validated.
|
|
60
|
-
*
|
|
61
|
-
* @observable
|
|
62
|
-
*/
|
|
63
|
-
errorText: string | null;
|
|
64
|
-
/**
|
|
65
|
-
* The additional information text displayed next to the {@link #inputView} which can
|
|
66
|
-
* be used to inform the user about the purpose of the input, provide help or hints.
|
|
67
|
-
*
|
|
68
|
-
* Set it to `null` to hide the message.
|
|
69
|
-
*
|
|
70
|
-
* **Note:** This text will be displayed in the same place as {@link #errorText} but the
|
|
71
|
-
* latter always takes precedence: if the {@link #errorText} is set, it replaces
|
|
72
|
-
* {@link #errorText} for as long as the value of the input is invalid.
|
|
73
|
-
*
|
|
74
|
-
* @observable
|
|
75
|
-
*/
|
|
76
|
-
infoText: string | null;
|
|
77
|
-
/**
|
|
78
|
-
* The combined status text made of {@link #errorText} and {@link #infoText}.
|
|
79
|
-
* Note that when present, {@link #errorText} always takes precedence in the
|
|
80
|
-
* status.
|
|
81
|
-
*
|
|
82
|
-
* @see #errorText
|
|
83
|
-
* @see #infoText
|
|
84
|
-
* @see #statusView
|
|
85
|
-
* @private
|
|
86
|
-
* @observable
|
|
87
|
-
*/
|
|
88
|
-
_statusText: string | null;
|
|
89
|
-
/**
|
|
90
|
-
* Creates an instance of the labeled input view class.
|
|
91
|
-
*
|
|
92
|
-
* @param locale The locale instance.
|
|
93
|
-
* @param InputView Constructor of the input view.
|
|
94
|
-
*/
|
|
95
|
-
constructor(locale: Locale | undefined, InputView: new (locale: Locale | undefined, statusUid: string) => InputView);
|
|
96
|
-
/**
|
|
97
|
-
* Creates label view class instance and bind with view.
|
|
98
|
-
*
|
|
99
|
-
* @param id Unique id to set as labelView#for attribute.
|
|
100
|
-
*/
|
|
101
|
-
private _createLabelView;
|
|
102
|
-
/**
|
|
103
|
-
* Creates input view class instance and bind with view.
|
|
104
|
-
*
|
|
105
|
-
* @param InputView Input view constructor.
|
|
106
|
-
* @param inputUid Unique id to set as inputView#id attribute.
|
|
107
|
-
* @param statusUid Unique id of the status for the input's `aria-describedby` attribute.
|
|
108
|
-
*/
|
|
109
|
-
private _createInputView;
|
|
110
|
-
/**
|
|
111
|
-
* Creates the status view instance. It displays {@link #errorText} and {@link #infoText}
|
|
112
|
-
* next to the {@link #inputView}. See {@link #_statusText}.
|
|
113
|
-
*
|
|
114
|
-
* @param statusUid Unique id of the status, shared with the input's `aria-describedby` attribute.
|
|
115
|
-
*/
|
|
116
|
-
private _createStatusView;
|
|
117
|
-
/**
|
|
118
|
-
* Moves the focus to the input and selects the value.
|
|
119
|
-
*/
|
|
120
|
-
select(): void;
|
|
121
|
-
/**
|
|
122
|
-
* Focuses the input.
|
|
123
|
-
*/
|
|
124
|
-
focus(): void;
|
|
125
|
-
}
|
|
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/labeledinput/labeledinputview
|
|
7
|
+
*/
|
|
8
|
+
import View from '../view';
|
|
9
|
+
import LabelView from '../label/labelview';
|
|
10
|
+
import type { default as InputView } from '../input/inputview';
|
|
11
|
+
import { type Locale } from '@ckeditor/ckeditor5-utils';
|
|
12
|
+
import '../../theme/components/labeledinput/labeledinput.css';
|
|
13
|
+
/**
|
|
14
|
+
* The labeled input view class.
|
|
15
|
+
*/
|
|
16
|
+
export default class LabeledInputView extends View {
|
|
17
|
+
/**
|
|
18
|
+
* The label view.
|
|
19
|
+
*/
|
|
20
|
+
readonly labelView: LabelView;
|
|
21
|
+
/**
|
|
22
|
+
* The input view.
|
|
23
|
+
*/
|
|
24
|
+
readonly inputView: InputView;
|
|
25
|
+
/**
|
|
26
|
+
* The status view for the {@link #inputView}. It displays {@link #errorText} and
|
|
27
|
+
* {@link #infoText}.
|
|
28
|
+
*/
|
|
29
|
+
readonly statusView: View;
|
|
30
|
+
/**
|
|
31
|
+
* The text of the label.
|
|
32
|
+
*
|
|
33
|
+
* @observable
|
|
34
|
+
*/
|
|
35
|
+
label: string | undefined;
|
|
36
|
+
/**
|
|
37
|
+
* The value of the input.
|
|
38
|
+
*
|
|
39
|
+
* @observable
|
|
40
|
+
*/
|
|
41
|
+
value: string | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* Controls whether the component is in read-only mode.
|
|
44
|
+
*
|
|
45
|
+
* @observable
|
|
46
|
+
*/
|
|
47
|
+
isReadOnly: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* The validation error text. When set, it will be displayed
|
|
50
|
+
* next to the {@link #inputView} as a typical validation error message.
|
|
51
|
+
* Set it to `null` to hide the message.
|
|
52
|
+
*
|
|
53
|
+
* **Note:** Setting this property to anything but `null` will automatically
|
|
54
|
+
* make the {@link module:ui/inputtext/inputtextview~InputTextView#hasError `hasError`}
|
|
55
|
+
* of the {@link #inputView} `true`.
|
|
56
|
+
*
|
|
57
|
+
* **Note:** Typing in the {@link #inputView} which fires the
|
|
58
|
+
* {@link module:ui/inputtext/inputtextview~InputTextView#event:input `input` event}
|
|
59
|
+
* resets this property back to `null`, indicating that the input field can be re–validated.
|
|
60
|
+
*
|
|
61
|
+
* @observable
|
|
62
|
+
*/
|
|
63
|
+
errorText: string | null;
|
|
64
|
+
/**
|
|
65
|
+
* The additional information text displayed next to the {@link #inputView} which can
|
|
66
|
+
* be used to inform the user about the purpose of the input, provide help or hints.
|
|
67
|
+
*
|
|
68
|
+
* Set it to `null` to hide the message.
|
|
69
|
+
*
|
|
70
|
+
* **Note:** This text will be displayed in the same place as {@link #errorText} but the
|
|
71
|
+
* latter always takes precedence: if the {@link #errorText} is set, it replaces
|
|
72
|
+
* {@link #errorText} for as long as the value of the input is invalid.
|
|
73
|
+
*
|
|
74
|
+
* @observable
|
|
75
|
+
*/
|
|
76
|
+
infoText: string | null;
|
|
77
|
+
/**
|
|
78
|
+
* The combined status text made of {@link #errorText} and {@link #infoText}.
|
|
79
|
+
* Note that when present, {@link #errorText} always takes precedence in the
|
|
80
|
+
* status.
|
|
81
|
+
*
|
|
82
|
+
* @see #errorText
|
|
83
|
+
* @see #infoText
|
|
84
|
+
* @see #statusView
|
|
85
|
+
* @private
|
|
86
|
+
* @observable
|
|
87
|
+
*/
|
|
88
|
+
_statusText: string | null;
|
|
89
|
+
/**
|
|
90
|
+
* Creates an instance of the labeled input view class.
|
|
91
|
+
*
|
|
92
|
+
* @param locale The locale instance.
|
|
93
|
+
* @param InputView Constructor of the input view.
|
|
94
|
+
*/
|
|
95
|
+
constructor(locale: Locale | undefined, InputView: new (locale: Locale | undefined, statusUid: string) => InputView);
|
|
96
|
+
/**
|
|
97
|
+
* Creates label view class instance and bind with view.
|
|
98
|
+
*
|
|
99
|
+
* @param id Unique id to set as labelView#for attribute.
|
|
100
|
+
*/
|
|
101
|
+
private _createLabelView;
|
|
102
|
+
/**
|
|
103
|
+
* Creates input view class instance and bind with view.
|
|
104
|
+
*
|
|
105
|
+
* @param InputView Input view constructor.
|
|
106
|
+
* @param inputUid Unique id to set as inputView#id attribute.
|
|
107
|
+
* @param statusUid Unique id of the status for the input's `aria-describedby` attribute.
|
|
108
|
+
*/
|
|
109
|
+
private _createInputView;
|
|
110
|
+
/**
|
|
111
|
+
* Creates the status view instance. It displays {@link #errorText} and {@link #infoText}
|
|
112
|
+
* next to the {@link #inputView}. See {@link #_statusText}.
|
|
113
|
+
*
|
|
114
|
+
* @param statusUid Unique id of the status, shared with the input's `aria-describedby` attribute.
|
|
115
|
+
*/
|
|
116
|
+
private _createStatusView;
|
|
117
|
+
/**
|
|
118
|
+
* Moves the focus to the input and selects the value.
|
|
119
|
+
*/
|
|
120
|
+
select(): void;
|
|
121
|
+
/**
|
|
122
|
+
* Focuses the input.
|
|
123
|
+
*/
|
|
124
|
+
focus(): void;
|
|
125
|
+
}
|