@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.
Files changed (226) hide show
  1. package/lang/contexts.json +5 -1
  2. package/lang/translations/ar.po +16 -0
  3. package/lang/translations/ast.po +16 -0
  4. package/lang/translations/az.po +16 -0
  5. package/lang/translations/bg.po +16 -0
  6. package/lang/translations/bn.po +16 -0
  7. package/lang/translations/ca.po +16 -0
  8. package/lang/translations/cs.po +16 -0
  9. package/lang/translations/da.po +16 -0
  10. package/lang/translations/de-ch.po +16 -0
  11. package/lang/translations/de.po +16 -0
  12. package/lang/translations/el.po +16 -0
  13. package/lang/translations/en-au.po +16 -0
  14. package/lang/translations/en-gb.po +16 -0
  15. package/lang/translations/en.po +16 -0
  16. package/lang/translations/eo.po +16 -0
  17. package/lang/translations/es.po +16 -0
  18. package/lang/translations/et.po +16 -0
  19. package/lang/translations/eu.po +16 -0
  20. package/lang/translations/fa.po +16 -0
  21. package/lang/translations/fi.po +16 -0
  22. package/lang/translations/fr.po +16 -0
  23. package/lang/translations/gl.po +16 -0
  24. package/lang/translations/he.po +16 -0
  25. package/lang/translations/hi.po +16 -0
  26. package/lang/translations/hr.po +16 -0
  27. package/lang/translations/hu.po +16 -0
  28. package/lang/translations/id.po +16 -0
  29. package/lang/translations/it.po +16 -0
  30. package/lang/translations/ja.po +16 -0
  31. package/lang/translations/km.po +16 -0
  32. package/lang/translations/kn.po +16 -0
  33. package/lang/translations/ko.po +16 -0
  34. package/lang/translations/ku.po +16 -0
  35. package/lang/translations/lt.po +16 -0
  36. package/lang/translations/lv.po +16 -0
  37. package/lang/translations/ms.po +16 -0
  38. package/lang/translations/nb.po +16 -0
  39. package/lang/translations/ne.po +16 -0
  40. package/lang/translations/nl.po +16 -0
  41. package/lang/translations/no.po +16 -0
  42. package/lang/translations/pl.po +16 -0
  43. package/lang/translations/pt-br.po +16 -0
  44. package/lang/translations/pt.po +16 -0
  45. package/lang/translations/ro.po +16 -0
  46. package/lang/translations/ru.po +16 -0
  47. package/lang/translations/sk.po +16 -0
  48. package/lang/translations/sl.po +16 -0
  49. package/lang/translations/sq.po +16 -0
  50. package/lang/translations/sr-latn.po +16 -0
  51. package/lang/translations/sr.po +16 -0
  52. package/lang/translations/sv.po +16 -0
  53. package/lang/translations/th.po +16 -0
  54. package/lang/translations/tk.po +16 -0
  55. package/lang/translations/tr.po +16 -0
  56. package/lang/translations/tt.po +16 -0
  57. package/lang/translations/ug.po +16 -0
  58. package/lang/translations/uk.po +16 -0
  59. package/lang/translations/ur.po +16 -0
  60. package/lang/translations/uz.po +16 -0
  61. package/lang/translations/vi.po +16 -0
  62. package/lang/translations/zh-cn.po +16 -0
  63. package/lang/translations/zh.po +16 -0
  64. package/package.json +3 -3
  65. package/src/augmentation.d.ts +86 -86
  66. package/src/augmentation.js +5 -5
  67. package/src/autocomplete/autocompleteview.d.ts +81 -0
  68. package/src/autocomplete/autocompleteview.js +146 -0
  69. package/src/bindings/addkeyboardhandlingforgrid.d.ts +27 -27
  70. package/src/bindings/addkeyboardhandlingforgrid.js +107 -107
  71. package/src/bindings/clickoutsidehandler.d.ts +28 -28
  72. package/src/bindings/clickoutsidehandler.js +36 -36
  73. package/src/bindings/csstransitiondisablermixin.d.ts +40 -40
  74. package/src/bindings/csstransitiondisablermixin.js +55 -55
  75. package/src/bindings/injectcsstransitiondisabler.d.ts +59 -59
  76. package/src/bindings/injectcsstransitiondisabler.js +71 -71
  77. package/src/bindings/preventdefault.d.ts +33 -33
  78. package/src/bindings/preventdefault.js +34 -34
  79. package/src/bindings/submithandler.d.ts +57 -57
  80. package/src/bindings/submithandler.js +47 -47
  81. package/src/button/button.d.ts +178 -178
  82. package/src/button/button.js +5 -5
  83. package/src/button/buttonlabel.d.ts +34 -0
  84. package/src/button/buttonlabel.js +5 -0
  85. package/src/button/buttonlabelview.d.ts +31 -0
  86. package/src/button/buttonlabelview.js +42 -0
  87. package/src/button/buttonview.d.ts +185 -177
  88. package/src/button/buttonview.js +219 -231
  89. package/src/button/switchbuttonview.d.ts +45 -45
  90. package/src/button/switchbuttonview.js +75 -75
  91. package/src/colorgrid/colorgridview.d.ts +132 -132
  92. package/src/colorgrid/colorgridview.js +124 -124
  93. package/src/colorgrid/colortileview.d.ts +28 -28
  94. package/src/colorgrid/colortileview.js +40 -40
  95. package/src/colorgrid/utils.d.ts +47 -47
  96. package/src/colorgrid/utils.js +84 -84
  97. package/src/colorpicker/colorpickerview.d.ts +137 -137
  98. package/src/colorpicker/colorpickerview.js +270 -270
  99. package/src/colorpicker/utils.d.ts +43 -43
  100. package/src/colorpicker/utils.js +99 -99
  101. package/src/colorselector/colorgridsfragmentview.d.ts +194 -194
  102. package/src/colorselector/colorgridsfragmentview.js +289 -289
  103. package/src/colorselector/colorpickerfragmentview.d.ts +128 -128
  104. package/src/colorselector/colorpickerfragmentview.js +205 -205
  105. package/src/colorselector/colorselectorview.d.ts +242 -242
  106. package/src/colorselector/colorselectorview.js +256 -256
  107. package/src/colorselector/documentcolorcollection.d.ts +70 -70
  108. package/src/colorselector/documentcolorcollection.js +42 -42
  109. package/src/componentfactory.d.ts +81 -81
  110. package/src/componentfactory.js +104 -104
  111. package/src/dropdown/button/dropdownbutton.d.ts +25 -25
  112. package/src/dropdown/button/dropdownbutton.js +5 -5
  113. package/src/dropdown/button/dropdownbuttonview.d.ts +48 -48
  114. package/src/dropdown/button/dropdownbuttonview.js +66 -66
  115. package/src/dropdown/button/splitbuttonview.d.ts +161 -161
  116. package/src/dropdown/button/splitbuttonview.js +152 -152
  117. package/src/dropdown/dropdownpanelfocusable.d.ts +21 -21
  118. package/src/dropdown/dropdownpanelfocusable.js +5 -5
  119. package/src/dropdown/dropdownpanelview.d.ts +62 -62
  120. package/src/dropdown/dropdownpanelview.js +97 -97
  121. package/src/dropdown/dropdownview.d.ts +315 -315
  122. package/src/dropdown/dropdownview.js +379 -378
  123. package/src/dropdown/utils.d.ts +235 -221
  124. package/src/dropdown/utils.js +458 -437
  125. package/src/editableui/editableuiview.d.ts +72 -72
  126. package/src/editableui/editableuiview.js +112 -112
  127. package/src/editableui/inline/inlineeditableuiview.d.ts +40 -40
  128. package/src/editableui/inline/inlineeditableuiview.js +48 -48
  129. package/src/editorui/bodycollection.d.ts +55 -55
  130. package/src/editorui/bodycollection.js +84 -84
  131. package/src/editorui/boxed/boxededitoruiview.d.ts +40 -40
  132. package/src/editorui/boxed/boxededitoruiview.js +81 -81
  133. package/src/editorui/editorui.d.ts +282 -282
  134. package/src/editorui/editorui.js +410 -410
  135. package/src/editorui/editoruiview.d.ts +39 -39
  136. package/src/editorui/editoruiview.js +38 -38
  137. package/src/editorui/poweredby.d.ts +71 -71
  138. package/src/editorui/poweredby.js +276 -299
  139. package/src/focuscycler.d.ts +226 -183
  140. package/src/focuscycler.js +245 -220
  141. package/src/formheader/formheaderview.d.ts +59 -53
  142. package/src/formheader/formheaderview.js +69 -63
  143. package/src/highlightedtext/highlightedtextview.d.ts +38 -0
  144. package/src/highlightedtext/highlightedtextview.js +102 -0
  145. package/src/icon/iconview.d.ts +85 -78
  146. package/src/icon/iconview.js +114 -112
  147. package/src/iframe/iframeview.d.ts +50 -50
  148. package/src/iframe/iframeview.js +63 -63
  149. package/src/index.d.ts +73 -63
  150. package/src/index.js +70 -62
  151. package/src/input/inputbase.d.ts +107 -0
  152. package/src/input/inputbase.js +110 -0
  153. package/src/input/inputview.d.ts +36 -121
  154. package/src/input/inputview.js +24 -106
  155. package/src/inputnumber/inputnumberview.d.ts +49 -49
  156. package/src/inputnumber/inputnumberview.js +40 -40
  157. package/src/inputtext/inputtextview.d.ts +18 -18
  158. package/src/inputtext/inputtextview.js +27 -27
  159. package/src/label/labelview.d.ts +36 -36
  160. package/src/label/labelview.js +41 -41
  161. package/src/labeledfield/labeledfieldview.d.ts +187 -182
  162. package/src/labeledfield/labeledfieldview.js +157 -157
  163. package/src/labeledfield/utils.d.ts +123 -93
  164. package/src/labeledfield/utils.js +176 -131
  165. package/src/labeledinput/labeledinputview.d.ts +125 -125
  166. package/src/labeledinput/labeledinputview.js +125 -125
  167. package/src/list/listitemgroupview.d.ts +51 -0
  168. package/src/list/listitemgroupview.js +75 -0
  169. package/src/list/listitemview.d.ts +36 -35
  170. package/src/list/listitemview.js +42 -40
  171. package/src/list/listseparatorview.d.ts +18 -18
  172. package/src/list/listseparatorview.js +28 -28
  173. package/src/list/listview.d.ts +122 -65
  174. package/src/list/listview.js +187 -90
  175. package/src/model.d.ts +22 -22
  176. package/src/model.js +31 -31
  177. package/src/notification/notification.d.ts +211 -211
  178. package/src/notification/notification.js +187 -187
  179. package/src/panel/balloon/balloonpanelview.d.ts +685 -685
  180. package/src/panel/balloon/balloonpanelview.js +1010 -988
  181. package/src/panel/balloon/contextualballoon.d.ts +299 -299
  182. package/src/panel/balloon/contextualballoon.js +572 -572
  183. package/src/panel/sticky/stickypanelview.d.ts +156 -158
  184. package/src/panel/sticky/stickypanelview.js +234 -231
  185. package/src/search/filteredview.d.ts +31 -0
  186. package/src/search/filteredview.js +5 -0
  187. package/src/search/searchinfoview.d.ts +45 -0
  188. package/src/search/searchinfoview.js +59 -0
  189. package/src/search/searchresultsview.d.ts +54 -0
  190. package/src/search/searchresultsview.js +65 -0
  191. package/src/search/text/searchtextqueryview.d.ts +76 -0
  192. package/src/search/text/searchtextqueryview.js +75 -0
  193. package/src/search/text/searchtextview.d.ts +219 -0
  194. package/src/search/text/searchtextview.js +201 -0
  195. package/src/spinner/spinnerview.d.ts +25 -0
  196. package/src/spinner/spinnerview.js +38 -0
  197. package/src/template.d.ts +942 -942
  198. package/src/template.js +1294 -1294
  199. package/src/textarea/textareaview.d.ts +88 -0
  200. package/src/textarea/textareaview.js +140 -0
  201. package/src/toolbar/balloon/balloontoolbar.d.ts +122 -122
  202. package/src/toolbar/balloon/balloontoolbar.js +300 -300
  203. package/src/toolbar/block/blockbuttonview.d.ts +35 -35
  204. package/src/toolbar/block/blockbuttonview.js +41 -41
  205. package/src/toolbar/block/blocktoolbar.d.ts +161 -161
  206. package/src/toolbar/block/blocktoolbar.js +395 -391
  207. package/src/toolbar/normalizetoolbarconfig.d.ts +40 -39
  208. package/src/toolbar/normalizetoolbarconfig.js +51 -51
  209. package/src/toolbar/toolbarlinebreakview.d.ts +18 -18
  210. package/src/toolbar/toolbarlinebreakview.js +28 -28
  211. package/src/toolbar/toolbarseparatorview.d.ts +18 -18
  212. package/src/toolbar/toolbarseparatorview.js +28 -28
  213. package/src/toolbar/toolbarview.d.ts +266 -265
  214. package/src/toolbar/toolbarview.js +719 -717
  215. package/src/tooltipmanager.d.ts +180 -180
  216. package/src/tooltipmanager.js +353 -353
  217. package/src/view.d.ts +422 -422
  218. package/src/view.js +396 -396
  219. package/src/viewcollection.d.ts +139 -139
  220. package/src/viewcollection.js +206 -206
  221. package/theme/components/autocomplete/autocomplete.css +22 -0
  222. package/theme/components/formheader/formheader.css +8 -0
  223. package/theme/components/highlightedtext/highlightedtext.css +12 -0
  224. package/theme/components/search/search.css +43 -0
  225. package/theme/components/spinner/spinner.css +23 -0
  226. package/theme/components/textarea/textarea.css +10 -0
@@ -1,206 +1,206 @@
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/viewcollection
7
- */
8
- import { CKEditorError, Collection } from '@ckeditor/ckeditor5-utils';
9
- /**
10
- * Collects {@link module:ui/view~View} instances.
11
- *
12
- * ```ts
13
- * const parentView = new ParentView( locale );
14
- * const collection = new ViewCollection( locale );
15
- *
16
- * collection.setParent( parentView.element );
17
- *
18
- * const viewA = new ChildView( locale );
19
- * const viewB = new ChildView( locale );
20
- * ```
21
- *
22
- * View collection renders and manages view {@link module:ui/view~View#element elements}:
23
- *
24
- * ```ts
25
- * collection.add( viewA );
26
- * collection.add( viewB );
27
- *
28
- * console.log( parentView.element.firsChild ); // -> viewA.element
29
- * console.log( parentView.element.lastChild ); // -> viewB.element
30
- * ```
31
- *
32
- * It {@link module:ui/viewcollection~ViewCollection#delegate propagates} DOM events too:
33
- *
34
- * ```ts
35
- * // Delegate #click and #keydown events from viewA and viewB to the parentView.
36
- * collection.delegate( 'click' ).to( parentView );
37
- *
38
- * parentView.on( 'click', ( evt ) => {
39
- * console.log( `${ evt.source } has been clicked.` );
40
- * } );
41
- *
42
- * // This event will be delegated to the parentView.
43
- * viewB.fire( 'click' );
44
- * ```
45
- *
46
- * **Note**: A view collection can be used directly in the {@link module:ui/template~TemplateDefinition definition}
47
- * of a {@link module:ui/template~Template template}.
48
- */
49
- export default class ViewCollection extends Collection {
50
- /**
51
- * Creates a new instance of the {@link module:ui/viewcollection~ViewCollection}.
52
- *
53
- * @param initialItems The initial items of the collection.
54
- */
55
- constructor(initialItems = []) {
56
- super(initialItems, {
57
- // An #id Number attribute should be legal and not break the `ViewCollection` instance.
58
- // https://github.com/ckeditor/ckeditor5-ui/issues/93
59
- idProperty: 'viewUid'
60
- });
61
- // Handle {@link module:ui/view~View#element} in DOM when a new view is added to the collection.
62
- this.on('add', (evt, view, index) => {
63
- this._renderViewIntoCollectionParent(view, index);
64
- });
65
- // Handle {@link module:ui/view~View#element} in DOM when a view is removed from the collection.
66
- this.on('remove', (evt, view) => {
67
- if (view.element && this._parentElement) {
68
- view.element.remove();
69
- }
70
- });
71
- this._parentElement = null;
72
- }
73
- /**
74
- * Destroys the view collection along with child views.
75
- * See the view {@link module:ui/view~View#destroy} method.
76
- */
77
- destroy() {
78
- this.map(view => view.destroy());
79
- }
80
- /**
81
- * Sets the parent HTML element of this collection. When parent is set, {@link #add adding} and
82
- * {@link #remove removing} views in the collection synchronizes their
83
- * {@link module:ui/view~View#element elements} in the parent element.
84
- *
85
- * @param element A new parent element.
86
- */
87
- setParent(elementOrDocFragment) {
88
- this._parentElement = elementOrDocFragment;
89
- // Take care of the initial collection items passed to the constructor.
90
- for (const view of this) {
91
- this._renderViewIntoCollectionParent(view);
92
- }
93
- }
94
- /**
95
- * Delegates selected events coming from within views in the collection to any
96
- * {@link module:utils/emittermixin~Emitter}.
97
- *
98
- * For the following views and collection:
99
- *
100
- * ```ts
101
- * const viewA = new View();
102
- * const viewB = new View();
103
- * const viewC = new View();
104
- *
105
- * const views = parentView.createCollection();
106
- *
107
- * views.delegate( 'eventX' ).to( viewB );
108
- * views.delegate( 'eventX', 'eventY' ).to( viewC );
109
- *
110
- * views.add( viewA );
111
- * ```
112
- *
113
- * the `eventX` is delegated (fired by) `viewB` and `viewC` along with `customData`:
114
- *
115
- * ```ts
116
- * viewA.fire( 'eventX', customData );
117
- * ```
118
- *
119
- * and `eventY` is delegated (fired by) `viewC` along with `customData`:
120
- *
121
- * ```ts
122
- * viewA.fire( 'eventY', customData );
123
- * ```
124
- *
125
- * See {@link module:utils/emittermixin~Emitter#delegate}.
126
- *
127
- * @param events {@link module:ui/view~View} event names to be delegated to another
128
- * {@link module:utils/emittermixin~Emitter}.
129
- * @returns Object with `to` property, a function which accepts the destination
130
- * of {@link module:utils/emittermixin~Emitter#delegate delegated} events.
131
- */
132
- delegate(...events) {
133
- if (!events.length || !isStringArray(events)) {
134
- /**
135
- * All event names must be strings.
136
- *
137
- * @error ui-viewcollection-delegate-wrong-events
138
- */
139
- throw new CKEditorError('ui-viewcollection-delegate-wrong-events', this);
140
- }
141
- return {
142
- to: dest => {
143
- // Activate delegating on existing views in this collection.
144
- for (const view of this) {
145
- for (const evtName of events) {
146
- view.delegate(evtName).to(dest);
147
- }
148
- }
149
- // Activate delegating on future views in this collection.
150
- this.on('add', (evt, view) => {
151
- for (const evtName of events) {
152
- view.delegate(evtName).to(dest);
153
- }
154
- });
155
- // Deactivate delegating when view is removed from this collection.
156
- this.on('remove', (evt, view) => {
157
- for (const evtName of events) {
158
- view.stopDelegating(evtName, dest);
159
- }
160
- });
161
- }
162
- };
163
- }
164
- /**
165
- * This method {@link module:ui/view~View#render renders} a new view added to the collection.
166
- *
167
- * If the {@link #_parentElement parent element} of the collection is set, this method also adds
168
- * the view's {@link module:ui/view~View#element} as a child of the parent in DOM at a specified index.
169
- *
170
- * **Note**: If index is not specified, the view's element is pushed as the last child
171
- * of the parent element.
172
- *
173
- * @param view A new view added to the collection.
174
- * @param index An index the view holds in the collection. When not specified,
175
- * the view is added at the end.
176
- */
177
- _renderViewIntoCollectionParent(view, index) {
178
- if (!view.isRendered) {
179
- view.render();
180
- }
181
- if (view.element && this._parentElement) {
182
- this._parentElement.insertBefore(view.element, this._parentElement.children[index]);
183
- }
184
- }
185
- /**
186
- * Removes a child view from the collection. If the {@link #setParent parent element} of the
187
- * collection has been set, the {@link module:ui/view~View#element element} of the view is also removed
188
- * in DOM, reflecting the order of the collection.
189
- *
190
- * See the {@link #add} method.
191
- *
192
- * @param subject The view to remove, its id or index in the collection.
193
- * @returns The removed view.
194
- */
195
- remove(subject) {
196
- return super.remove(subject);
197
- }
198
- }
199
- /**
200
- * Check if all entries of the array are of `String` type.
201
- *
202
- * @param arr An array to be checked.
203
- */
204
- function isStringArray(arr) {
205
- return arr.every(a => typeof a == 'string');
206
- }
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/viewcollection
7
+ */
8
+ import { CKEditorError, Collection } from '@ckeditor/ckeditor5-utils';
9
+ /**
10
+ * Collects {@link module:ui/view~View} instances.
11
+ *
12
+ * ```ts
13
+ * const parentView = new ParentView( locale );
14
+ * const collection = new ViewCollection( locale );
15
+ *
16
+ * collection.setParent( parentView.element );
17
+ *
18
+ * const viewA = new ChildView( locale );
19
+ * const viewB = new ChildView( locale );
20
+ * ```
21
+ *
22
+ * View collection renders and manages view {@link module:ui/view~View#element elements}:
23
+ *
24
+ * ```ts
25
+ * collection.add( viewA );
26
+ * collection.add( viewB );
27
+ *
28
+ * console.log( parentView.element.firsChild ); // -> viewA.element
29
+ * console.log( parentView.element.lastChild ); // -> viewB.element
30
+ * ```
31
+ *
32
+ * It {@link module:ui/viewcollection~ViewCollection#delegate propagates} DOM events too:
33
+ *
34
+ * ```ts
35
+ * // Delegate #click and #keydown events from viewA and viewB to the parentView.
36
+ * collection.delegate( 'click' ).to( parentView );
37
+ *
38
+ * parentView.on( 'click', ( evt ) => {
39
+ * console.log( `${ evt.source } has been clicked.` );
40
+ * } );
41
+ *
42
+ * // This event will be delegated to the parentView.
43
+ * viewB.fire( 'click' );
44
+ * ```
45
+ *
46
+ * **Note**: A view collection can be used directly in the {@link module:ui/template~TemplateDefinition definition}
47
+ * of a {@link module:ui/template~Template template}.
48
+ */
49
+ export default class ViewCollection extends Collection {
50
+ /**
51
+ * Creates a new instance of the {@link module:ui/viewcollection~ViewCollection}.
52
+ *
53
+ * @param initialItems The initial items of the collection.
54
+ */
55
+ constructor(initialItems = []) {
56
+ super(initialItems, {
57
+ // An #id Number attribute should be legal and not break the `ViewCollection` instance.
58
+ // https://github.com/ckeditor/ckeditor5-ui/issues/93
59
+ idProperty: 'viewUid'
60
+ });
61
+ // Handle {@link module:ui/view~View#element} in DOM when a new view is added to the collection.
62
+ this.on('add', (evt, view, index) => {
63
+ this._renderViewIntoCollectionParent(view, index);
64
+ });
65
+ // Handle {@link module:ui/view~View#element} in DOM when a view is removed from the collection.
66
+ this.on('remove', (evt, view) => {
67
+ if (view.element && this._parentElement) {
68
+ view.element.remove();
69
+ }
70
+ });
71
+ this._parentElement = null;
72
+ }
73
+ /**
74
+ * Destroys the view collection along with child views.
75
+ * See the view {@link module:ui/view~View#destroy} method.
76
+ */
77
+ destroy() {
78
+ this.map(view => view.destroy());
79
+ }
80
+ /**
81
+ * Sets the parent HTML element of this collection. When parent is set, {@link #add adding} and
82
+ * {@link #remove removing} views in the collection synchronizes their
83
+ * {@link module:ui/view~View#element elements} in the parent element.
84
+ *
85
+ * @param element A new parent element.
86
+ */
87
+ setParent(elementOrDocFragment) {
88
+ this._parentElement = elementOrDocFragment;
89
+ // Take care of the initial collection items passed to the constructor.
90
+ for (const view of this) {
91
+ this._renderViewIntoCollectionParent(view);
92
+ }
93
+ }
94
+ /**
95
+ * Delegates selected events coming from within views in the collection to any
96
+ * {@link module:utils/emittermixin~Emitter}.
97
+ *
98
+ * For the following views and collection:
99
+ *
100
+ * ```ts
101
+ * const viewA = new View();
102
+ * const viewB = new View();
103
+ * const viewC = new View();
104
+ *
105
+ * const views = parentView.createCollection();
106
+ *
107
+ * views.delegate( 'eventX' ).to( viewB );
108
+ * views.delegate( 'eventX', 'eventY' ).to( viewC );
109
+ *
110
+ * views.add( viewA );
111
+ * ```
112
+ *
113
+ * the `eventX` is delegated (fired by) `viewB` and `viewC` along with `customData`:
114
+ *
115
+ * ```ts
116
+ * viewA.fire( 'eventX', customData );
117
+ * ```
118
+ *
119
+ * and `eventY` is delegated (fired by) `viewC` along with `customData`:
120
+ *
121
+ * ```ts
122
+ * viewA.fire( 'eventY', customData );
123
+ * ```
124
+ *
125
+ * See {@link module:utils/emittermixin~Emitter#delegate}.
126
+ *
127
+ * @param events {@link module:ui/view~View} event names to be delegated to another
128
+ * {@link module:utils/emittermixin~Emitter}.
129
+ * @returns Object with `to` property, a function which accepts the destination
130
+ * of {@link module:utils/emittermixin~Emitter#delegate delegated} events.
131
+ */
132
+ delegate(...events) {
133
+ if (!events.length || !isStringArray(events)) {
134
+ /**
135
+ * All event names must be strings.
136
+ *
137
+ * @error ui-viewcollection-delegate-wrong-events
138
+ */
139
+ throw new CKEditorError('ui-viewcollection-delegate-wrong-events', this);
140
+ }
141
+ return {
142
+ to: dest => {
143
+ // Activate delegating on existing views in this collection.
144
+ for (const view of this) {
145
+ for (const evtName of events) {
146
+ view.delegate(evtName).to(dest);
147
+ }
148
+ }
149
+ // Activate delegating on future views in this collection.
150
+ this.on('add', (evt, view) => {
151
+ for (const evtName of events) {
152
+ view.delegate(evtName).to(dest);
153
+ }
154
+ });
155
+ // Deactivate delegating when view is removed from this collection.
156
+ this.on('remove', (evt, view) => {
157
+ for (const evtName of events) {
158
+ view.stopDelegating(evtName, dest);
159
+ }
160
+ });
161
+ }
162
+ };
163
+ }
164
+ /**
165
+ * This method {@link module:ui/view~View#render renders} a new view added to the collection.
166
+ *
167
+ * If the {@link #_parentElement parent element} of the collection is set, this method also adds
168
+ * the view's {@link module:ui/view~View#element} as a child of the parent in DOM at a specified index.
169
+ *
170
+ * **Note**: If index is not specified, the view's element is pushed as the last child
171
+ * of the parent element.
172
+ *
173
+ * @param view A new view added to the collection.
174
+ * @param index An index the view holds in the collection. When not specified,
175
+ * the view is added at the end.
176
+ */
177
+ _renderViewIntoCollectionParent(view, index) {
178
+ if (!view.isRendered) {
179
+ view.render();
180
+ }
181
+ if (view.element && this._parentElement) {
182
+ this._parentElement.insertBefore(view.element, this._parentElement.children[index]);
183
+ }
184
+ }
185
+ /**
186
+ * Removes a child view from the collection. If the {@link #setParent parent element} of the
187
+ * collection has been set, the {@link module:ui/view~View#element element} of the view is also removed
188
+ * in DOM, reflecting the order of the collection.
189
+ *
190
+ * See the {@link #add} method.
191
+ *
192
+ * @param subject The view to remove, its id or index in the collection.
193
+ * @returns The removed view.
194
+ */
195
+ remove(subject) {
196
+ return super.remove(subject);
197
+ }
198
+ }
199
+ /**
200
+ * Check if all entries of the array are of `String` type.
201
+ *
202
+ * @param arr An array to be checked.
203
+ */
204
+ function isStringArray(arr) {
205
+ return arr.every(a => typeof a == 'string');
206
+ }
@@ -0,0 +1,22 @@
1
+ /*
2
+ * 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
+ .ck.ck-autocomplete {
7
+ position: relative;
8
+
9
+ & > .ck-search__results {
10
+ position: absolute;
11
+ z-index: var(--ck-z-modal);
12
+
13
+ &.ck-search__results_n {
14
+ bottom: 100%;
15
+ }
16
+
17
+ &.ck-search__results_s {
18
+ top: 100%;
19
+ bottom: auto;
20
+ }
21
+ }
22
+ }
@@ -9,4 +9,12 @@
9
9
  flex-wrap: nowrap;
10
10
  align-items: center;
11
11
  justify-content: space-between;
12
+
13
+ & .ck-icon {
14
+ margin-right: var(--ck-spacing-medium);
15
+ }
16
+
17
+ & h2.ck-form__header__label {
18
+ flex-grow: 1;
19
+ }
12
20
  }
@@ -0,0 +1,12 @@
1
+ /*
2
+ * 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
+ .ck.ck-highlighted-text mark {
7
+ background: var(--ck-color-highlight-background);
8
+ vertical-align: initial;
9
+ font-weight: inherit;
10
+ line-height: inherit;
11
+ font-size: inherit;
12
+ }
@@ -0,0 +1,43 @@
1
+ /*
2
+ * 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
+ @import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";
7
+
8
+ .ck.ck-search {
9
+ & > .ck-labeled-field-view {
10
+ & > .ck-labeled-field-view__input-wrapper > .ck-icon {
11
+ position: absolute;
12
+ top: 50%;
13
+ transform: translateY(-50%);
14
+
15
+ @mixin ck-dir ltr {
16
+ left: var(--ck-spacing-medium);
17
+ }
18
+
19
+ @mixin ck-dir rtl {
20
+ right: var(--ck-spacing-medium);
21
+ }
22
+ }
23
+
24
+ & .ck-search__reset {
25
+ position: absolute;
26
+ top: 50%;
27
+ transform: translateY(-50%);
28
+ }
29
+ }
30
+
31
+ & > .ck-search__results {
32
+ & > .ck-search__info {
33
+ & > span:first-child {
34
+ display: block;
35
+ }
36
+
37
+ /* Hide the filtered view when nothing was found */
38
+ &:not(.ck-hidden) ~ * {
39
+ display: none;
40
+ }
41
+ }
42
+ }
43
+ }
@@ -0,0 +1,23 @@
1
+ /*
2
+ * 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
+ :root {
7
+ --ck-toolbar-spinner-size: 18px;
8
+ }
9
+
10
+ .ck.ck-spinner-container {
11
+ display: block;
12
+ position: relative;
13
+ }
14
+
15
+ .ck.ck-spinner {
16
+ position: absolute;
17
+ top: 50%;
18
+ left: 0;
19
+ right: 0;
20
+ margin: 0 auto;
21
+ transform: translateY(-50%);
22
+ z-index: 1;
23
+ }
@@ -0,0 +1,10 @@
1
+ /*
2
+ * 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
+ /*
7
+ * Note: This file should contain the wireframe styles only. But since there are no such styles,
8
+ * it acts as a message to the builder telling that it should look for the corresponding styles
9
+ * **in the theme** when compiling the editor.
10
+ */