@ckeditor/ckeditor5-ui 39.0.2 → 40.0.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/lang/contexts.json +5 -1
- package/lang/translations/ar.po +16 -0
- package/lang/translations/ast.po +16 -0
- package/lang/translations/az.po +16 -0
- package/lang/translations/bg.po +16 -0
- package/lang/translations/bn.po +16 -0
- package/lang/translations/ca.po +16 -0
- package/lang/translations/cs.po +16 -0
- package/lang/translations/da.po +16 -0
- package/lang/translations/de-ch.po +16 -0
- package/lang/translations/de.po +16 -0
- package/lang/translations/el.po +16 -0
- package/lang/translations/en-au.po +16 -0
- package/lang/translations/en-gb.po +16 -0
- package/lang/translations/en.po +16 -0
- package/lang/translations/eo.po +16 -0
- package/lang/translations/es.po +16 -0
- package/lang/translations/et.po +16 -0
- package/lang/translations/eu.po +16 -0
- package/lang/translations/fa.po +16 -0
- package/lang/translations/fi.po +16 -0
- package/lang/translations/fr.po +16 -0
- package/lang/translations/gl.po +16 -0
- package/lang/translations/he.po +16 -0
- package/lang/translations/hi.po +16 -0
- package/lang/translations/hr.po +16 -0
- package/lang/translations/hu.po +16 -0
- package/lang/translations/id.po +16 -0
- package/lang/translations/it.po +16 -0
- package/lang/translations/ja.po +16 -0
- package/lang/translations/km.po +16 -0
- package/lang/translations/kn.po +16 -0
- package/lang/translations/ko.po +16 -0
- package/lang/translations/ku.po +16 -0
- package/lang/translations/lt.po +16 -0
- package/lang/translations/lv.po +16 -0
- package/lang/translations/ms.po +16 -0
- package/lang/translations/nb.po +16 -0
- package/lang/translations/ne.po +16 -0
- package/lang/translations/nl.po +16 -0
- package/lang/translations/no.po +16 -0
- package/lang/translations/pl.po +16 -0
- package/lang/translations/pt-br.po +16 -0
- package/lang/translations/pt.po +16 -0
- package/lang/translations/ro.po +16 -0
- package/lang/translations/ru.po +16 -0
- package/lang/translations/sk.po +16 -0
- package/lang/translations/sl.po +16 -0
- package/lang/translations/sq.po +16 -0
- package/lang/translations/sr-latn.po +16 -0
- package/lang/translations/sr.po +16 -0
- package/lang/translations/sv.po +16 -0
- package/lang/translations/th.po +16 -0
- package/lang/translations/tk.po +16 -0
- package/lang/translations/tr.po +16 -0
- package/lang/translations/tt.po +16 -0
- package/lang/translations/ug.po +16 -0
- package/lang/translations/uk.po +16 -0
- package/lang/translations/ur.po +16 -0
- package/lang/translations/uz.po +16 -0
- package/lang/translations/vi.po +16 -0
- package/lang/translations/zh-cn.po +16 -0
- package/lang/translations/zh.po +16 -0
- package/package.json +3 -3
- package/src/augmentation.d.ts +86 -86
- package/src/augmentation.js +5 -5
- package/src/autocomplete/autocompleteview.d.ts +81 -0
- package/src/autocomplete/autocompleteview.js +146 -0
- 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 +178 -178
- package/src/button/button.js +5 -5
- package/src/button/buttonlabel.d.ts +34 -0
- package/src/button/buttonlabel.js +5 -0
- package/src/button/buttonlabelview.d.ts +31 -0
- package/src/button/buttonlabelview.js +42 -0
- package/src/button/buttonview.d.ts +185 -177
- package/src/button/buttonview.js +219 -231
- 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 -378
- package/src/dropdown/utils.d.ts +235 -221
- package/src/dropdown/utils.js +458 -437
- 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 +282 -282
- package/src/editorui/editorui.js +410 -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 -299
- package/src/focuscycler.d.ts +226 -183
- package/src/focuscycler.js +245 -220
- package/src/formheader/formheaderview.d.ts +59 -53
- package/src/formheader/formheaderview.js +69 -63
- package/src/highlightedtext/highlightedtextview.d.ts +38 -0
- package/src/highlightedtext/highlightedtextview.js +102 -0
- package/src/icon/iconview.d.ts +85 -78
- package/src/icon/iconview.js +114 -112
- package/src/iframe/iframeview.d.ts +50 -50
- package/src/iframe/iframeview.js +63 -63
- package/src/index.d.ts +73 -63
- package/src/index.js +70 -62
- package/src/input/inputbase.d.ts +107 -0
- package/src/input/inputbase.js +110 -0
- package/src/input/inputview.d.ts +36 -121
- package/src/input/inputview.js +24 -106
- 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 -182
- package/src/labeledfield/labeledfieldview.js +157 -157
- package/src/labeledfield/utils.d.ts +123 -93
- package/src/labeledfield/utils.js +176 -131
- package/src/labeledinput/labeledinputview.d.ts +125 -125
- package/src/labeledinput/labeledinputview.js +125 -125
- package/src/list/listitemgroupview.d.ts +51 -0
- package/src/list/listitemgroupview.js +75 -0
- package/src/list/listitemview.d.ts +36 -35
- package/src/list/listitemview.js +42 -40
- package/src/list/listseparatorview.d.ts +18 -18
- package/src/list/listseparatorview.js +28 -28
- package/src/list/listview.d.ts +122 -65
- package/src/list/listview.js +187 -90
- 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 -988
- 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 -158
- package/src/panel/sticky/stickypanelview.js +234 -231
- package/src/search/filteredview.d.ts +31 -0
- package/src/search/filteredview.js +5 -0
- package/src/search/searchinfoview.d.ts +45 -0
- package/src/search/searchinfoview.js +59 -0
- package/src/search/searchresultsview.d.ts +54 -0
- package/src/search/searchresultsview.js +65 -0
- package/src/search/text/searchtextqueryview.d.ts +76 -0
- package/src/search/text/searchtextqueryview.js +75 -0
- package/src/search/text/searchtextview.d.ts +219 -0
- package/src/search/text/searchtextview.js +201 -0
- package/src/spinner/spinnerview.d.ts +25 -0
- package/src/spinner/spinnerview.js +38 -0
- package/src/template.d.ts +942 -942
- package/src/template.js +1294 -1294
- package/src/textarea/textareaview.d.ts +88 -0
- package/src/textarea/textareaview.js +140 -0
- 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 -391
- package/src/toolbar/normalizetoolbarconfig.d.ts +40 -39
- package/src/toolbar/normalizetoolbarconfig.js +51 -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 -265
- package/src/toolbar/toolbarview.js +719 -717
- 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/autocomplete/autocomplete.css +22 -0
- package/theme/components/formheader/formheader.css +8 -0
- package/theme/components/highlightedtext/highlightedtext.css +12 -0
- package/theme/components/search/search.css +43 -0
- package/theme/components/spinner/spinner.css +23 -0
- package/theme/components/textarea/textarea.css +10 -0
|
@@ -1,182 +1,187 @@
|
|
|
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/labeledfieldview
|
|
7
|
-
*/
|
|
8
|
-
import View from '../view';
|
|
9
|
-
import LabelView from '../label/labelview';
|
|
10
|
-
import type { FocusableView } from '../focuscycler';
|
|
11
|
-
import type ViewCollection from '../viewcollection';
|
|
12
|
-
import { type Locale } from '@ckeditor/ckeditor5-utils';
|
|
13
|
-
import '../../theme/components/labeledfield/labeledfieldview.css';
|
|
14
|
-
/**
|
|
15
|
-
* The labeled field view class. It can be used to enhance any view with the following features:
|
|
16
|
-
*
|
|
17
|
-
* * a label,
|
|
18
|
-
* * (optional) an error message,
|
|
19
|
-
* * (optional) an info (status) text,
|
|
20
|
-
*
|
|
21
|
-
* all bound logically by proper DOM attributes for UX and accessibility. It also provides an interface
|
|
22
|
-
* (e.g. observable properties) that allows controlling those additional features.
|
|
23
|
-
*
|
|
24
|
-
* The constructor of this class requires a callback that returns a view to be labeled. The callback
|
|
25
|
-
* is called with unique ids that allow binding of DOM properties:
|
|
26
|
-
*
|
|
27
|
-
* ```ts
|
|
28
|
-
* const labeledInputView = new LabeledFieldView( locale, ( labeledFieldView, viewUid, statusUid ) => {
|
|
29
|
-
* const inputView = new InputTextView( labeledFieldView.locale );
|
|
30
|
-
*
|
|
31
|
-
* inputView.set( {
|
|
32
|
-
* id: viewUid,
|
|
33
|
-
* ariaDescribedById: statusUid
|
|
34
|
-
* } );
|
|
35
|
-
*
|
|
36
|
-
* inputView.bind( 'isReadOnly' ).to( labeledFieldView, 'isEnabled', value => !value );
|
|
37
|
-
* inputView.bind( 'hasError' ).to( labeledFieldView, 'errorText', value => !!value );
|
|
38
|
-
*
|
|
39
|
-
* return inputView;
|
|
40
|
-
* } );
|
|
41
|
-
*
|
|
42
|
-
* labeledInputView.label = 'User name';
|
|
43
|
-
* labeledInputView.infoText = 'Full name like for instance, John Doe.';
|
|
44
|
-
* labeledInputView.render();
|
|
45
|
-
*
|
|
46
|
-
* document.body.append( labeledInputView.element );
|
|
47
|
-
* ```
|
|
48
|
-
*
|
|
49
|
-
* See {@link module:ui/labeledfield/utils} to discover ready–to–use labeled input helpers for common
|
|
50
|
-
* UI components.
|
|
51
|
-
*/
|
|
52
|
-
export default class LabeledFieldView<TFieldView extends FocusableView = FocusableView> extends View {
|
|
53
|
-
/**
|
|
54
|
-
* The field view that gets labeled.
|
|
55
|
-
*/
|
|
56
|
-
readonly fieldView: TFieldView;
|
|
57
|
-
/**
|
|
58
|
-
* The label view instance that describes the entire view.
|
|
59
|
-
*/
|
|
60
|
-
readonly labelView: LabelView;
|
|
61
|
-
/**
|
|
62
|
-
* The status view for the {@link #fieldView}. It displays {@link #errorText} and
|
|
63
|
-
* {@link #infoText}.
|
|
64
|
-
*/
|
|
65
|
-
readonly statusView: View;
|
|
66
|
-
/**
|
|
67
|
-
* A collection of children of the internal wrapper element. Allows inserting additional DOM elements (views) next to
|
|
68
|
-
* the {@link #fieldView} for easy styling (e.g. positioning).
|
|
69
|
-
*
|
|
70
|
-
* By default, the collection contains {@link #fieldView} and {@link #labelView}.
|
|
71
|
-
*/
|
|
72
|
-
readonly fieldWrapperChildren: ViewCollection;
|
|
73
|
-
/**
|
|
74
|
-
* The text of the label.
|
|
75
|
-
*
|
|
76
|
-
* @observable
|
|
77
|
-
*/
|
|
78
|
-
label: string | undefined;
|
|
79
|
-
/**
|
|
80
|
-
* Controls whether the component is in read-only mode.
|
|
81
|
-
*
|
|
82
|
-
* @observable
|
|
83
|
-
*/
|
|
84
|
-
isEnabled: boolean;
|
|
85
|
-
/**
|
|
86
|
-
* An observable flag set to `true` when {@link #fieldView} is empty (`false` otherwise).
|
|
87
|
-
*
|
|
88
|
-
* @readonly
|
|
89
|
-
* @observable
|
|
90
|
-
* @default true
|
|
91
|
-
*/
|
|
92
|
-
isEmpty: boolean;
|
|
93
|
-
/**
|
|
94
|
-
* An observable flag set to `true` when {@link #fieldView} is currently focused by
|
|
95
|
-
* the user (`false` otherwise).
|
|
96
|
-
*
|
|
97
|
-
* @readonly
|
|
98
|
-
* @observable
|
|
99
|
-
* @default false
|
|
100
|
-
*/
|
|
101
|
-
isFocused: boolean;
|
|
102
|
-
/**
|
|
103
|
-
* The validation error text. When set, it will be displayed
|
|
104
|
-
* next to the {@link #fieldView} as a typical validation error message.
|
|
105
|
-
* Set it to `null` to hide the message.
|
|
106
|
-
*
|
|
107
|
-
* **Note:** Setting this property to anything but `null` will automatically
|
|
108
|
-
* make the `hasError` of the {@link #fieldView} `true`.
|
|
109
|
-
*
|
|
110
|
-
* @observable
|
|
111
|
-
*/
|
|
112
|
-
errorText: string | null;
|
|
113
|
-
/**
|
|
114
|
-
* The additional information text displayed next to the {@link #fieldView} which can
|
|
115
|
-
* be used to inform the user about its purpose, provide help or hints.
|
|
116
|
-
*
|
|
117
|
-
* Set it to `null` to hide the message.
|
|
118
|
-
*
|
|
119
|
-
* **Note:** This text will be displayed in the same place as {@link #errorText} but the
|
|
120
|
-
* latter always takes precedence: if the {@link #errorText} is set, it replaces
|
|
121
|
-
* {@link #infoText}.
|
|
122
|
-
*
|
|
123
|
-
* @observable
|
|
124
|
-
* @default null
|
|
125
|
-
*/
|
|
126
|
-
infoText: string | null;
|
|
127
|
-
/**
|
|
128
|
-
* (Optional) The additional CSS class set on the dropdown {@link #element}.
|
|
129
|
-
*
|
|
130
|
-
* @observable
|
|
131
|
-
*/
|
|
132
|
-
class: string | undefined;
|
|
133
|
-
/**
|
|
134
|
-
* The content of the `placeholder` attribute of the {@link #fieldView}.
|
|
135
|
-
*
|
|
136
|
-
* @observable
|
|
137
|
-
*/
|
|
138
|
-
placeholder: string | undefined;
|
|
139
|
-
/**
|
|
140
|
-
* The combined status text made of {@link #errorText} and {@link #infoText}.
|
|
141
|
-
* Note that when present, {@link #errorText} always takes precedence in the
|
|
142
|
-
* status.
|
|
143
|
-
*
|
|
144
|
-
* @see #errorText
|
|
145
|
-
* @see #infoText
|
|
146
|
-
* @see #statusView
|
|
147
|
-
* @private
|
|
148
|
-
* @observable
|
|
149
|
-
*/
|
|
150
|
-
_statusText: string | null;
|
|
151
|
-
/**
|
|
152
|
-
* Creates an instance of the labeled field view class using a provided creator function
|
|
153
|
-
* that provides the view to be labeled.
|
|
154
|
-
*
|
|
155
|
-
* @param locale The locale instance.
|
|
156
|
-
* @param viewCreator A function that returns a {@link module:ui/view~View}
|
|
157
|
-
* that will be labeled. The following arguments are passed to the creator function:
|
|
158
|
-
*
|
|
159
|
-
* * an instance of the `LabeledFieldView` to allow binding observable properties,
|
|
160
|
-
* * an UID string that connects the {@link #labelView label} and the labeled field view in DOM,
|
|
161
|
-
* * an UID string that connects the {@link #statusView status} and the labeled field view in DOM.
|
|
162
|
-
*/
|
|
163
|
-
constructor(locale: Locale | undefined, viewCreator:
|
|
164
|
-
/**
|
|
165
|
-
* Creates label view class instance and bind with view.
|
|
166
|
-
*
|
|
167
|
-
* @param id Unique id to set as labelView#for attribute.
|
|
168
|
-
*/
|
|
169
|
-
private _createLabelView;
|
|
170
|
-
/**
|
|
171
|
-
* Creates the status view instance. It displays {@link #errorText} and {@link #infoText}
|
|
172
|
-
* next to the {@link #fieldView}. See {@link #_statusText}.
|
|
173
|
-
*
|
|
174
|
-
* @param statusUid Unique id of the status, shared with the {@link #fieldView view's}
|
|
175
|
-
* `aria-describedby` attribute.
|
|
176
|
-
*/
|
|
177
|
-
private _createStatusView;
|
|
178
|
-
/**
|
|
179
|
-
* Focuses the {@link #fieldView}.
|
|
180
|
-
*/
|
|
181
|
-
focus(): void;
|
|
182
|
-
}
|
|
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/labeledfieldview
|
|
7
|
+
*/
|
|
8
|
+
import View from '../view';
|
|
9
|
+
import LabelView from '../label/labelview';
|
|
10
|
+
import type { FocusableView } from '../focuscycler';
|
|
11
|
+
import type ViewCollection from '../viewcollection';
|
|
12
|
+
import { type Locale } from '@ckeditor/ckeditor5-utils';
|
|
13
|
+
import '../../theme/components/labeledfield/labeledfieldview.css';
|
|
14
|
+
/**
|
|
15
|
+
* The labeled field view class. It can be used to enhance any view with the following features:
|
|
16
|
+
*
|
|
17
|
+
* * a label,
|
|
18
|
+
* * (optional) an error message,
|
|
19
|
+
* * (optional) an info (status) text,
|
|
20
|
+
*
|
|
21
|
+
* all bound logically by proper DOM attributes for UX and accessibility. It also provides an interface
|
|
22
|
+
* (e.g. observable properties) that allows controlling those additional features.
|
|
23
|
+
*
|
|
24
|
+
* The constructor of this class requires a callback that returns a view to be labeled. The callback
|
|
25
|
+
* is called with unique ids that allow binding of DOM properties:
|
|
26
|
+
*
|
|
27
|
+
* ```ts
|
|
28
|
+
* const labeledInputView = new LabeledFieldView( locale, ( labeledFieldView, viewUid, statusUid ) => {
|
|
29
|
+
* const inputView = new InputTextView( labeledFieldView.locale );
|
|
30
|
+
*
|
|
31
|
+
* inputView.set( {
|
|
32
|
+
* id: viewUid,
|
|
33
|
+
* ariaDescribedById: statusUid
|
|
34
|
+
* } );
|
|
35
|
+
*
|
|
36
|
+
* inputView.bind( 'isReadOnly' ).to( labeledFieldView, 'isEnabled', value => !value );
|
|
37
|
+
* inputView.bind( 'hasError' ).to( labeledFieldView, 'errorText', value => !!value );
|
|
38
|
+
*
|
|
39
|
+
* return inputView;
|
|
40
|
+
* } );
|
|
41
|
+
*
|
|
42
|
+
* labeledInputView.label = 'User name';
|
|
43
|
+
* labeledInputView.infoText = 'Full name like for instance, John Doe.';
|
|
44
|
+
* labeledInputView.render();
|
|
45
|
+
*
|
|
46
|
+
* document.body.append( labeledInputView.element );
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
49
|
+
* See {@link module:ui/labeledfield/utils} to discover ready–to–use labeled input helpers for common
|
|
50
|
+
* UI components.
|
|
51
|
+
*/
|
|
52
|
+
export default class LabeledFieldView<TFieldView extends FocusableView = FocusableView> extends View {
|
|
53
|
+
/**
|
|
54
|
+
* The field view that gets labeled.
|
|
55
|
+
*/
|
|
56
|
+
readonly fieldView: TFieldView;
|
|
57
|
+
/**
|
|
58
|
+
* The label view instance that describes the entire view.
|
|
59
|
+
*/
|
|
60
|
+
readonly labelView: LabelView;
|
|
61
|
+
/**
|
|
62
|
+
* The status view for the {@link #fieldView}. It displays {@link #errorText} and
|
|
63
|
+
* {@link #infoText}.
|
|
64
|
+
*/
|
|
65
|
+
readonly statusView: View;
|
|
66
|
+
/**
|
|
67
|
+
* A collection of children of the internal wrapper element. Allows inserting additional DOM elements (views) next to
|
|
68
|
+
* the {@link #fieldView} for easy styling (e.g. positioning).
|
|
69
|
+
*
|
|
70
|
+
* By default, the collection contains {@link #fieldView} and {@link #labelView}.
|
|
71
|
+
*/
|
|
72
|
+
readonly fieldWrapperChildren: ViewCollection;
|
|
73
|
+
/**
|
|
74
|
+
* The text of the label.
|
|
75
|
+
*
|
|
76
|
+
* @observable
|
|
77
|
+
*/
|
|
78
|
+
label: string | undefined;
|
|
79
|
+
/**
|
|
80
|
+
* Controls whether the component is in read-only mode.
|
|
81
|
+
*
|
|
82
|
+
* @observable
|
|
83
|
+
*/
|
|
84
|
+
isEnabled: boolean;
|
|
85
|
+
/**
|
|
86
|
+
* An observable flag set to `true` when {@link #fieldView} is empty (`false` otherwise).
|
|
87
|
+
*
|
|
88
|
+
* @readonly
|
|
89
|
+
* @observable
|
|
90
|
+
* @default true
|
|
91
|
+
*/
|
|
92
|
+
isEmpty: boolean;
|
|
93
|
+
/**
|
|
94
|
+
* An observable flag set to `true` when {@link #fieldView} is currently focused by
|
|
95
|
+
* the user (`false` otherwise).
|
|
96
|
+
*
|
|
97
|
+
* @readonly
|
|
98
|
+
* @observable
|
|
99
|
+
* @default false
|
|
100
|
+
*/
|
|
101
|
+
isFocused: boolean;
|
|
102
|
+
/**
|
|
103
|
+
* The validation error text. When set, it will be displayed
|
|
104
|
+
* next to the {@link #fieldView} as a typical validation error message.
|
|
105
|
+
* Set it to `null` to hide the message.
|
|
106
|
+
*
|
|
107
|
+
* **Note:** Setting this property to anything but `null` will automatically
|
|
108
|
+
* make the `hasError` of the {@link #fieldView} `true`.
|
|
109
|
+
*
|
|
110
|
+
* @observable
|
|
111
|
+
*/
|
|
112
|
+
errorText: string | null;
|
|
113
|
+
/**
|
|
114
|
+
* The additional information text displayed next to the {@link #fieldView} which can
|
|
115
|
+
* be used to inform the user about its purpose, provide help or hints.
|
|
116
|
+
*
|
|
117
|
+
* Set it to `null` to hide the message.
|
|
118
|
+
*
|
|
119
|
+
* **Note:** This text will be displayed in the same place as {@link #errorText} but the
|
|
120
|
+
* latter always takes precedence: if the {@link #errorText} is set, it replaces
|
|
121
|
+
* {@link #infoText}.
|
|
122
|
+
*
|
|
123
|
+
* @observable
|
|
124
|
+
* @default null
|
|
125
|
+
*/
|
|
126
|
+
infoText: string | null;
|
|
127
|
+
/**
|
|
128
|
+
* (Optional) The additional CSS class set on the dropdown {@link #element}.
|
|
129
|
+
*
|
|
130
|
+
* @observable
|
|
131
|
+
*/
|
|
132
|
+
class: string | undefined;
|
|
133
|
+
/**
|
|
134
|
+
* The content of the `placeholder` attribute of the {@link #fieldView}.
|
|
135
|
+
*
|
|
136
|
+
* @observable
|
|
137
|
+
*/
|
|
138
|
+
placeholder: string | undefined;
|
|
139
|
+
/**
|
|
140
|
+
* The combined status text made of {@link #errorText} and {@link #infoText}.
|
|
141
|
+
* Note that when present, {@link #errorText} always takes precedence in the
|
|
142
|
+
* status.
|
|
143
|
+
*
|
|
144
|
+
* @see #errorText
|
|
145
|
+
* @see #infoText
|
|
146
|
+
* @see #statusView
|
|
147
|
+
* @private
|
|
148
|
+
* @observable
|
|
149
|
+
*/
|
|
150
|
+
_statusText: string | null;
|
|
151
|
+
/**
|
|
152
|
+
* Creates an instance of the labeled field view class using a provided creator function
|
|
153
|
+
* that provides the view to be labeled.
|
|
154
|
+
*
|
|
155
|
+
* @param locale The locale instance.
|
|
156
|
+
* @param viewCreator A function that returns a {@link module:ui/view~View}
|
|
157
|
+
* that will be labeled. The following arguments are passed to the creator function:
|
|
158
|
+
*
|
|
159
|
+
* * an instance of the `LabeledFieldView` to allow binding observable properties,
|
|
160
|
+
* * an UID string that connects the {@link #labelView label} and the labeled field view in DOM,
|
|
161
|
+
* * an UID string that connects the {@link #statusView status} and the labeled field view in DOM.
|
|
162
|
+
*/
|
|
163
|
+
constructor(locale: Locale | undefined, viewCreator: LabeledFieldViewCreator<TFieldView>);
|
|
164
|
+
/**
|
|
165
|
+
* Creates label view class instance and bind with view.
|
|
166
|
+
*
|
|
167
|
+
* @param id Unique id to set as labelView#for attribute.
|
|
168
|
+
*/
|
|
169
|
+
private _createLabelView;
|
|
170
|
+
/**
|
|
171
|
+
* Creates the status view instance. It displays {@link #errorText} and {@link #infoText}
|
|
172
|
+
* next to the {@link #fieldView}. See {@link #_statusText}.
|
|
173
|
+
*
|
|
174
|
+
* @param statusUid Unique id of the status, shared with the {@link #fieldView view's}
|
|
175
|
+
* `aria-describedby` attribute.
|
|
176
|
+
*/
|
|
177
|
+
private _createStatusView;
|
|
178
|
+
/**
|
|
179
|
+
* Focuses the {@link #fieldView}.
|
|
180
|
+
*/
|
|
181
|
+
focus(direction?: 1 | -1): void;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* A creator function that returns a focusable view to be labeled by a {@link module:ui/labeledfield/labeledfieldview~LabeledFieldView}
|
|
185
|
+
* instance.
|
|
186
|
+
*/
|
|
187
|
+
export type LabeledFieldViewCreator<TFieldView extends FocusableView> = (labeledFieldView: LabeledFieldView, viewUid: string, statusUid: string) => TFieldView;
|