@ckeditor/ckeditor5-ui 39.0.1 → 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 (229) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/LICENSE.md +1 -1
  3. package/README.md +4 -4
  4. package/lang/contexts.json +5 -1
  5. package/lang/translations/ar.po +17 -0
  6. package/lang/translations/ast.po +17 -0
  7. package/lang/translations/az.po +17 -0
  8. package/lang/translations/bg.po +17 -0
  9. package/lang/translations/bn.po +17 -0
  10. package/lang/translations/ca.po +17 -0
  11. package/lang/translations/cs.po +17 -0
  12. package/lang/translations/da.po +17 -0
  13. package/lang/translations/de-ch.po +17 -0
  14. package/lang/translations/de.po +17 -0
  15. package/lang/translations/el.po +17 -0
  16. package/lang/translations/en-au.po +17 -0
  17. package/lang/translations/en-gb.po +17 -0
  18. package/lang/translations/en.po +17 -0
  19. package/lang/translations/eo.po +17 -0
  20. package/lang/translations/es.po +17 -0
  21. package/lang/translations/et.po +17 -0
  22. package/lang/translations/eu.po +17 -0
  23. package/lang/translations/fa.po +17 -0
  24. package/lang/translations/fi.po +17 -0
  25. package/lang/translations/fr.po +17 -0
  26. package/lang/translations/gl.po +17 -0
  27. package/lang/translations/he.po +17 -0
  28. package/lang/translations/hi.po +17 -0
  29. package/lang/translations/hr.po +17 -0
  30. package/lang/translations/hu.po +17 -0
  31. package/lang/translations/id.po +17 -0
  32. package/lang/translations/it.po +17 -0
  33. package/lang/translations/ja.po +17 -0
  34. package/lang/translations/km.po +17 -0
  35. package/lang/translations/kn.po +17 -0
  36. package/lang/translations/ko.po +17 -0
  37. package/lang/translations/ku.po +17 -0
  38. package/lang/translations/lt.po +17 -0
  39. package/lang/translations/lv.po +17 -0
  40. package/lang/translations/ms.po +17 -0
  41. package/lang/translations/nb.po +17 -0
  42. package/lang/translations/ne.po +17 -0
  43. package/lang/translations/nl.po +17 -0
  44. package/lang/translations/no.po +17 -0
  45. package/lang/translations/pl.po +17 -0
  46. package/lang/translations/pt-br.po +17 -0
  47. package/lang/translations/pt.po +17 -0
  48. package/lang/translations/ro.po +17 -0
  49. package/lang/translations/ru.po +17 -0
  50. package/lang/translations/sk.po +17 -0
  51. package/lang/translations/sl.po +17 -0
  52. package/lang/translations/sq.po +17 -0
  53. package/lang/translations/sr-latn.po +17 -0
  54. package/lang/translations/sr.po +17 -0
  55. package/lang/translations/sv.po +17 -0
  56. package/lang/translations/th.po +17 -0
  57. package/lang/translations/tk.po +17 -0
  58. package/lang/translations/tr.po +17 -0
  59. package/lang/translations/tt.po +17 -0
  60. package/lang/translations/ug.po +17 -0
  61. package/lang/translations/uk.po +17 -0
  62. package/lang/translations/ur.po +17 -0
  63. package/lang/translations/uz.po +17 -0
  64. package/lang/translations/vi.po +17 -0
  65. package/lang/translations/zh-cn.po +17 -0
  66. package/lang/translations/zh.po +17 -0
  67. package/package.json +3 -7
  68. package/src/augmentation.d.ts +86 -86
  69. package/src/augmentation.js +5 -5
  70. package/src/autocomplete/autocompleteview.d.ts +81 -0
  71. package/src/autocomplete/autocompleteview.js +146 -0
  72. package/src/bindings/addkeyboardhandlingforgrid.d.ts +27 -27
  73. package/src/bindings/addkeyboardhandlingforgrid.js +107 -107
  74. package/src/bindings/clickoutsidehandler.d.ts +28 -28
  75. package/src/bindings/clickoutsidehandler.js +36 -36
  76. package/src/bindings/csstransitiondisablermixin.d.ts +40 -40
  77. package/src/bindings/csstransitiondisablermixin.js +55 -55
  78. package/src/bindings/injectcsstransitiondisabler.d.ts +59 -59
  79. package/src/bindings/injectcsstransitiondisabler.js +71 -71
  80. package/src/bindings/preventdefault.d.ts +33 -33
  81. package/src/bindings/preventdefault.js +34 -34
  82. package/src/bindings/submithandler.d.ts +57 -57
  83. package/src/bindings/submithandler.js +47 -47
  84. package/src/button/button.d.ts +178 -178
  85. package/src/button/button.js +5 -5
  86. package/src/button/buttonlabel.d.ts +34 -0
  87. package/src/button/buttonlabel.js +5 -0
  88. package/src/button/buttonlabelview.d.ts +31 -0
  89. package/src/button/buttonlabelview.js +42 -0
  90. package/src/button/buttonview.d.ts +185 -177
  91. package/src/button/buttonview.js +219 -231
  92. package/src/button/switchbuttonview.d.ts +45 -45
  93. package/src/button/switchbuttonview.js +75 -75
  94. package/src/colorgrid/colorgridview.d.ts +132 -132
  95. package/src/colorgrid/colorgridview.js +124 -124
  96. package/src/colorgrid/colortileview.d.ts +28 -28
  97. package/src/colorgrid/colortileview.js +40 -40
  98. package/src/colorgrid/utils.d.ts +47 -47
  99. package/src/colorgrid/utils.js +84 -84
  100. package/src/colorpicker/colorpickerview.d.ts +137 -137
  101. package/src/colorpicker/colorpickerview.js +270 -270
  102. package/src/colorpicker/utils.d.ts +43 -43
  103. package/src/colorpicker/utils.js +99 -99
  104. package/src/colorselector/colorgridsfragmentview.d.ts +194 -194
  105. package/src/colorselector/colorgridsfragmentview.js +289 -289
  106. package/src/colorselector/colorpickerfragmentview.d.ts +128 -128
  107. package/src/colorselector/colorpickerfragmentview.js +205 -205
  108. package/src/colorselector/colorselectorview.d.ts +242 -242
  109. package/src/colorselector/colorselectorview.js +256 -256
  110. package/src/colorselector/documentcolorcollection.d.ts +70 -70
  111. package/src/colorselector/documentcolorcollection.js +42 -42
  112. package/src/componentfactory.d.ts +81 -81
  113. package/src/componentfactory.js +104 -104
  114. package/src/dropdown/button/dropdownbutton.d.ts +25 -25
  115. package/src/dropdown/button/dropdownbutton.js +5 -5
  116. package/src/dropdown/button/dropdownbuttonview.d.ts +48 -48
  117. package/src/dropdown/button/dropdownbuttonview.js +66 -66
  118. package/src/dropdown/button/splitbuttonview.d.ts +161 -161
  119. package/src/dropdown/button/splitbuttonview.js +152 -152
  120. package/src/dropdown/dropdownpanelfocusable.d.ts +21 -21
  121. package/src/dropdown/dropdownpanelfocusable.js +5 -5
  122. package/src/dropdown/dropdownpanelview.d.ts +62 -62
  123. package/src/dropdown/dropdownpanelview.js +97 -97
  124. package/src/dropdown/dropdownview.d.ts +315 -315
  125. package/src/dropdown/dropdownview.js +379 -378
  126. package/src/dropdown/utils.d.ts +235 -221
  127. package/src/dropdown/utils.js +458 -437
  128. package/src/editableui/editableuiview.d.ts +72 -72
  129. package/src/editableui/editableuiview.js +112 -112
  130. package/src/editableui/inline/inlineeditableuiview.d.ts +40 -40
  131. package/src/editableui/inline/inlineeditableuiview.js +48 -48
  132. package/src/editorui/bodycollection.d.ts +55 -55
  133. package/src/editorui/bodycollection.js +84 -84
  134. package/src/editorui/boxed/boxededitoruiview.d.ts +40 -40
  135. package/src/editorui/boxed/boxededitoruiview.js +81 -81
  136. package/src/editorui/editorui.d.ts +282 -282
  137. package/src/editorui/editorui.js +410 -410
  138. package/src/editorui/editoruiview.d.ts +39 -39
  139. package/src/editorui/editoruiview.js +38 -38
  140. package/src/editorui/poweredby.d.ts +71 -71
  141. package/src/editorui/poweredby.js +276 -299
  142. package/src/focuscycler.d.ts +226 -183
  143. package/src/focuscycler.js +245 -220
  144. package/src/formheader/formheaderview.d.ts +59 -53
  145. package/src/formheader/formheaderview.js +69 -63
  146. package/src/highlightedtext/highlightedtextview.d.ts +38 -0
  147. package/src/highlightedtext/highlightedtextview.js +102 -0
  148. package/src/icon/iconview.d.ts +85 -78
  149. package/src/icon/iconview.js +114 -112
  150. package/src/iframe/iframeview.d.ts +50 -50
  151. package/src/iframe/iframeview.js +63 -63
  152. package/src/index.d.ts +73 -63
  153. package/src/index.js +70 -62
  154. package/src/input/inputbase.d.ts +107 -0
  155. package/src/input/inputbase.js +110 -0
  156. package/src/input/inputview.d.ts +36 -121
  157. package/src/input/inputview.js +24 -106
  158. package/src/inputnumber/inputnumberview.d.ts +49 -49
  159. package/src/inputnumber/inputnumberview.js +40 -40
  160. package/src/inputtext/inputtextview.d.ts +18 -18
  161. package/src/inputtext/inputtextview.js +27 -27
  162. package/src/label/labelview.d.ts +36 -36
  163. package/src/label/labelview.js +41 -41
  164. package/src/labeledfield/labeledfieldview.d.ts +187 -182
  165. package/src/labeledfield/labeledfieldview.js +157 -157
  166. package/src/labeledfield/utils.d.ts +123 -93
  167. package/src/labeledfield/utils.js +176 -131
  168. package/src/labeledinput/labeledinputview.d.ts +125 -125
  169. package/src/labeledinput/labeledinputview.js +125 -125
  170. package/src/list/listitemgroupview.d.ts +51 -0
  171. package/src/list/listitemgroupview.js +75 -0
  172. package/src/list/listitemview.d.ts +36 -35
  173. package/src/list/listitemview.js +42 -40
  174. package/src/list/listseparatorview.d.ts +18 -18
  175. package/src/list/listseparatorview.js +28 -28
  176. package/src/list/listview.d.ts +122 -65
  177. package/src/list/listview.js +187 -90
  178. package/src/model.d.ts +22 -22
  179. package/src/model.js +31 -31
  180. package/src/notification/notification.d.ts +211 -211
  181. package/src/notification/notification.js +187 -187
  182. package/src/panel/balloon/balloonpanelview.d.ts +685 -685
  183. package/src/panel/balloon/balloonpanelview.js +1010 -988
  184. package/src/panel/balloon/contextualballoon.d.ts +299 -299
  185. package/src/panel/balloon/contextualballoon.js +572 -572
  186. package/src/panel/sticky/stickypanelview.d.ts +156 -158
  187. package/src/panel/sticky/stickypanelview.js +234 -231
  188. package/src/search/filteredview.d.ts +31 -0
  189. package/src/search/filteredview.js +5 -0
  190. package/src/search/searchinfoview.d.ts +45 -0
  191. package/src/search/searchinfoview.js +59 -0
  192. package/src/search/searchresultsview.d.ts +54 -0
  193. package/src/search/searchresultsview.js +65 -0
  194. package/src/search/text/searchtextqueryview.d.ts +76 -0
  195. package/src/search/text/searchtextqueryview.js +75 -0
  196. package/src/search/text/searchtextview.d.ts +219 -0
  197. package/src/search/text/searchtextview.js +201 -0
  198. package/src/spinner/spinnerview.d.ts +25 -0
  199. package/src/spinner/spinnerview.js +38 -0
  200. package/src/template.d.ts +942 -942
  201. package/src/template.js +1294 -1294
  202. package/src/textarea/textareaview.d.ts +88 -0
  203. package/src/textarea/textareaview.js +140 -0
  204. package/src/toolbar/balloon/balloontoolbar.d.ts +122 -122
  205. package/src/toolbar/balloon/balloontoolbar.js +300 -300
  206. package/src/toolbar/block/blockbuttonview.d.ts +35 -35
  207. package/src/toolbar/block/blockbuttonview.js +41 -41
  208. package/src/toolbar/block/blocktoolbar.d.ts +161 -161
  209. package/src/toolbar/block/blocktoolbar.js +395 -391
  210. package/src/toolbar/normalizetoolbarconfig.d.ts +40 -39
  211. package/src/toolbar/normalizetoolbarconfig.js +51 -51
  212. package/src/toolbar/toolbarlinebreakview.d.ts +18 -18
  213. package/src/toolbar/toolbarlinebreakview.js +28 -28
  214. package/src/toolbar/toolbarseparatorview.d.ts +18 -18
  215. package/src/toolbar/toolbarseparatorview.js +28 -28
  216. package/src/toolbar/toolbarview.d.ts +266 -265
  217. package/src/toolbar/toolbarview.js +719 -717
  218. package/src/tooltipmanager.d.ts +180 -180
  219. package/src/tooltipmanager.js +353 -353
  220. package/src/view.d.ts +422 -422
  221. package/src/view.js +396 -396
  222. package/src/viewcollection.d.ts +139 -139
  223. package/src/viewcollection.js +206 -206
  224. package/theme/components/autocomplete/autocomplete.css +22 -0
  225. package/theme/components/formheader/formheader.css +8 -0
  226. package/theme/components/highlightedtext/highlightedtext.css +12 -0
  227. package/theme/components/search/search.css +43 -0
  228. package/theme/components/spinner/spinner.css +23 -0
  229. 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
+ */