@ckeditor/ckeditor5-ui 48.8.1-alpha.4 → 49.0.0-alpha.1

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 (273) hide show
  1. package/LICENSE.md +1 -1
  2. package/dist/arialiveannouncer.d.ts +89 -90
  3. package/dist/augmentation.d.ts +86 -86
  4. package/dist/autocomplete/autocompleteview.d.ts +69 -70
  5. package/dist/badge/badge.d.ts +119 -121
  6. package/dist/bindings/addkeyboardhandlingforgrid.d.ts +22 -22
  7. package/dist/bindings/clickoutsidehandler.d.ts +24 -26
  8. package/dist/bindings/csstransitiondisablermixin.d.ts +47 -36
  9. package/dist/bindings/draggableviewmixin.d.ts +45 -37
  10. package/dist/bindings/preventdefault.d.ts +30 -30
  11. package/dist/bindings/submithandler.d.ts +49 -49
  12. package/dist/button/button.d.ts +167 -167
  13. package/dist/button/buttonlabel.d.ts +28 -28
  14. package/dist/button/buttonlabelview.d.ts +26 -26
  15. package/dist/button/buttonview.d.ts +191 -192
  16. package/dist/button/filedialogbuttonview.d.ts +107 -99
  17. package/dist/button/listitembuttonview.d.ts +72 -73
  18. package/dist/button/switchbuttonview.d.ts +39 -40
  19. package/dist/collapsible/collapsibleview.d.ts +62 -63
  20. package/dist/colorgrid/colorgridview.d.ts +116 -117
  21. package/dist/colorgrid/colors.d.ts +28 -0
  22. package/dist/colorgrid/colortileview.d.ts +21 -21
  23. package/dist/colorgrid/utils.d.ts +47 -35
  24. package/dist/colorpicker/colorpickerview.d.ts +154 -157
  25. package/dist/colorpicker/utils.d.ts +37 -37
  26. package/dist/colorselector/colorgridsfragmentview.d.ts +191 -191
  27. package/dist/colorselector/colorpickerfragmentview.d.ts +129 -129
  28. package/dist/colorselector/colorselectorview.d.ts +226 -229
  29. package/dist/colorselector/documentcolorcollection.d.ts +52 -59
  30. package/dist/componentfactory.d.ts +76 -76
  31. package/dist/dialog/dialog.d.ts +311 -288
  32. package/dist/dialog/dialogactionsview.d.ts +61 -62
  33. package/dist/dialog/dialogcontentview.d.ts +22 -22
  34. package/dist/dialog/dialogview.d.ts +254 -251
  35. package/dist/dropdown/button/dropdownbutton.d.ts +17 -17
  36. package/dist/dropdown/button/dropdownbuttonview.d.ts +41 -41
  37. package/dist/dropdown/button/splitbuttonview.d.ts +154 -155
  38. package/dist/dropdown/dropdownpanelfocusable.d.ts +16 -16
  39. package/dist/dropdown/dropdownpanelview.d.ts +56 -56
  40. package/dist/dropdown/dropdownview.d.ts +337 -326
  41. package/dist/dropdown/menu/dropdownmenubehaviors.d.ts +43 -43
  42. package/dist/dropdown/menu/dropdownmenubuttonview.d.ts +28 -29
  43. package/dist/dropdown/menu/dropdownmenulistitembuttonview.d.ts +11 -12
  44. package/dist/dropdown/menu/dropdownmenulistitemview.d.ts +16 -17
  45. package/dist/dropdown/menu/dropdownmenulistview.d.ts +19 -19
  46. package/dist/dropdown/menu/dropdownmenunestedmenupanelview.d.ts +27 -28
  47. package/dist/dropdown/menu/dropdownmenunestedmenuview.d.ts +125 -126
  48. package/dist/dropdown/menu/dropdownmenurootlistview.d.ts +132 -132
  49. package/dist/dropdown/menu/utils.d.ts +112 -112
  50. package/dist/dropdown/utils.d.ts +270 -272
  51. package/dist/editableui/editableuiview.d.ts +78 -67
  52. package/dist/editableui/inline/inlineeditableuiview.d.ts +38 -36
  53. package/dist/editorui/accessibilityhelp/accessibilityhelp.d.ts +49 -50
  54. package/dist/editorui/accessibilityhelp/accessibilityhelpcontentview.d.ts +30 -30
  55. package/dist/editorui/bodycollection.d.ts +167 -86
  56. package/dist/editorui/boxed/boxededitoruiview.d.ts +35 -35
  57. package/dist/editorui/editorui.d.ts +382 -351
  58. package/dist/editorui/editoruiview.d.ts +48 -53
  59. package/dist/editorui/evaluationbadge.d.ts +28 -28
  60. package/dist/editorui/poweredby.d.ts +25 -25
  61. package/dist/focuscycler.d.ts +265 -270
  62. package/dist/formheader/formheaderview.d.ts +52 -53
  63. package/dist/formrow/formrowview.d.ts +51 -52
  64. package/dist/highlightedtext/buttonlabelwithhighlightview.d.ts +25 -25
  65. package/dist/highlightedtext/highlightedtextview.d.ts +30 -34
  66. package/dist/highlightedtext/labelwithhighlightview.d.ts +21 -21
  67. package/dist/icon/iconview.d.ts +82 -83
  68. package/dist/iframe/iframeview.d.ts +42 -42
  69. package/dist/index-content.css +3 -0
  70. package/dist/index-content.css.map +1 -0
  71. package/dist/index-editor.css +3241 -2329
  72. package/dist/index-editor.css.map +1 -0
  73. package/dist/index.css +2940 -2032
  74. package/dist/index.css.map +1 -1
  75. package/dist/index.d.ts +144 -136
  76. package/dist/index.js +17821 -17732
  77. package/dist/index.js.map +1 -1
  78. package/dist/input/inputbase.d.ts +114 -114
  79. package/dist/input/inputview.d.ts +27 -28
  80. package/dist/inputnumber/inputnumberview.d.ts +44 -44
  81. package/dist/inputtext/inputtextview.d.ts +13 -13
  82. package/dist/label/labelview.d.ts +30 -31
  83. package/dist/labeledfield/labeledfieldview.d.ts +179 -180
  84. package/dist/labeledfield/utils.d.ts +112 -112
  85. package/dist/labeledinput/labeledinputview.d.ts +119 -120
  86. package/dist/legacyerrors.d.ts +0 -4
  87. package/dist/list/listitemgroupview.d.ts +54 -54
  88. package/dist/list/listitemview.d.ts +31 -31
  89. package/dist/list/listseparatorview.d.ts +13 -13
  90. package/dist/list/listview.d.ts +118 -119
  91. package/dist/menubar/menubarmenubuttonview.d.ts +27 -28
  92. package/dist/menubar/menubarmenulistitembuttonview.d.ts +15 -16
  93. package/dist/menubar/menubarmenulistitemfiledialogbuttonview.d.ts +17 -18
  94. package/dist/menubar/menubarmenulistitemview.d.ts +19 -20
  95. package/dist/menubar/menubarmenulistview.d.ts +24 -24
  96. package/dist/menubar/menubarmenupanelview.d.ts +46 -47
  97. package/dist/menubar/menubarmenuview.d.ts +112 -113
  98. package/dist/menubar/menubarview.d.ts +144 -145
  99. package/dist/menubar/utils.d.ts +455 -455
  100. package/dist/model.d.ts +19 -18
  101. package/dist/notification/notification.d.ts +200 -200
  102. package/dist/overlayhost.d.ts +210 -0
  103. package/dist/panel/balloon/balloonpanelview.d.ts +700 -692
  104. package/dist/panel/balloon/contextualballoon.d.ts +296 -298
  105. package/dist/panel/sticky/stickypanelview.d.ts +162 -151
  106. package/dist/search/filteredview.d.ts +23 -23
  107. package/dist/search/filtergroupanditemnames.d.ts +11 -11
  108. package/dist/search/searchinfoview.d.ts +39 -39
  109. package/dist/search/searchresultsview.d.ts +49 -49
  110. package/dist/search/text/searchtextqueryview.d.ts +63 -63
  111. package/dist/search/text/searchtextview.d.ts +202 -203
  112. package/dist/spinner/spinnerview.d.ts +19 -20
  113. package/dist/tabs/tabbuttonview.d.ts +53 -0
  114. package/dist/tabs/tabpanelview.d.ts +45 -0
  115. package/dist/template.d.ts +897 -902
  116. package/dist/textarea/textareaview.d.ts +100 -96
  117. package/dist/toolbar/balloon/balloontoolbar.d.ts +122 -122
  118. package/dist/toolbar/block/blockbuttonview.d.ts +29 -30
  119. package/dist/toolbar/block/blocktoolbar.d.ts +166 -166
  120. package/dist/toolbar/normalizetoolbarconfig.d.ts +35 -35
  121. package/dist/toolbar/toolbarlinebreakview.d.ts +13 -13
  122. package/dist/toolbar/toolbarseparatorview.d.ts +13 -13
  123. package/dist/toolbar/toolbarview.d.ts +270 -271
  124. package/dist/tooltipmanager.d.ts +317 -193
  125. package/dist/translations/af.js +1 -1
  126. package/dist/translations/af.umd.js +5 -3
  127. package/dist/translations/ar.js +1 -1
  128. package/dist/translations/ar.umd.js +5 -3
  129. package/dist/translations/ast.js +1 -1
  130. package/dist/translations/ast.umd.js +5 -3
  131. package/dist/translations/az.js +1 -1
  132. package/dist/translations/az.umd.js +5 -3
  133. package/dist/translations/be.js +1 -1
  134. package/dist/translations/be.umd.js +5 -3
  135. package/dist/translations/bg.js +1 -1
  136. package/dist/translations/bg.umd.js +5 -3
  137. package/dist/translations/bn.js +1 -1
  138. package/dist/translations/bn.umd.js +5 -3
  139. package/dist/translations/bs.js +1 -1
  140. package/dist/translations/bs.umd.js +5 -3
  141. package/dist/translations/ca.js +1 -1
  142. package/dist/translations/ca.umd.js +5 -3
  143. package/dist/translations/cs.js +1 -1
  144. package/dist/translations/cs.umd.js +5 -3
  145. package/dist/translations/da.js +1 -1
  146. package/dist/translations/da.umd.js +5 -3
  147. package/dist/translations/de-ch.js +1 -1
  148. package/dist/translations/de-ch.umd.js +5 -3
  149. package/dist/translations/de.js +1 -1
  150. package/dist/translations/de.umd.js +5 -3
  151. package/dist/translations/el.js +1 -1
  152. package/dist/translations/el.umd.js +5 -3
  153. package/dist/translations/en-au.js +1 -1
  154. package/dist/translations/en-au.umd.js +5 -3
  155. package/dist/translations/en-gb.js +1 -1
  156. package/dist/translations/en-gb.umd.js +5 -3
  157. package/dist/translations/en.js +1 -1
  158. package/dist/translations/en.umd.js +5 -3
  159. package/dist/translations/eo.js +1 -1
  160. package/dist/translations/eo.umd.js +5 -3
  161. package/dist/translations/es-co.js +1 -1
  162. package/dist/translations/es-co.umd.js +5 -3
  163. package/dist/translations/es.js +1 -1
  164. package/dist/translations/es.umd.js +5 -3
  165. package/dist/translations/et.js +1 -1
  166. package/dist/translations/et.umd.js +5 -3
  167. package/dist/translations/eu.js +1 -1
  168. package/dist/translations/eu.umd.js +5 -3
  169. package/dist/translations/fa.js +1 -1
  170. package/dist/translations/fa.umd.js +5 -3
  171. package/dist/translations/fi.js +1 -1
  172. package/dist/translations/fi.umd.js +5 -3
  173. package/dist/translations/fr.js +1 -1
  174. package/dist/translations/fr.umd.js +5 -3
  175. package/dist/translations/gl.js +1 -1
  176. package/dist/translations/gl.umd.js +5 -3
  177. package/dist/translations/gu.js +1 -1
  178. package/dist/translations/gu.umd.js +5 -3
  179. package/dist/translations/he.js +1 -1
  180. package/dist/translations/he.umd.js +5 -3
  181. package/dist/translations/hi.js +1 -1
  182. package/dist/translations/hi.umd.js +5 -3
  183. package/dist/translations/hr.js +1 -1
  184. package/dist/translations/hr.umd.js +5 -3
  185. package/dist/translations/hu.js +1 -1
  186. package/dist/translations/hu.umd.js +5 -3
  187. package/dist/translations/hy.js +1 -1
  188. package/dist/translations/hy.umd.js +5 -3
  189. package/dist/translations/id.js +1 -1
  190. package/dist/translations/id.umd.js +5 -3
  191. package/dist/translations/it.js +1 -1
  192. package/dist/translations/it.umd.js +5 -3
  193. package/dist/translations/ja.js +1 -1
  194. package/dist/translations/ja.umd.js +5 -3
  195. package/dist/translations/jv.js +1 -1
  196. package/dist/translations/jv.umd.js +5 -3
  197. package/dist/translations/kk.js +1 -1
  198. package/dist/translations/kk.umd.js +5 -3
  199. package/dist/translations/km.js +1 -1
  200. package/dist/translations/km.umd.js +5 -3
  201. package/dist/translations/kn.js +1 -1
  202. package/dist/translations/kn.umd.js +5 -3
  203. package/dist/translations/ko.js +1 -1
  204. package/dist/translations/ko.umd.js +5 -3
  205. package/dist/translations/ku.js +1 -1
  206. package/dist/translations/ku.umd.js +5 -3
  207. package/dist/translations/lt.js +1 -1
  208. package/dist/translations/lt.umd.js +5 -3
  209. package/dist/translations/lv.js +1 -1
  210. package/dist/translations/lv.umd.js +5 -3
  211. package/dist/translations/ms.js +1 -1
  212. package/dist/translations/ms.umd.js +5 -3
  213. package/dist/translations/nb.js +1 -1
  214. package/dist/translations/nb.umd.js +5 -3
  215. package/dist/translations/ne.js +1 -1
  216. package/dist/translations/ne.umd.js +5 -3
  217. package/dist/translations/nl.js +1 -1
  218. package/dist/translations/nl.umd.js +5 -3
  219. package/dist/translations/no.js +1 -1
  220. package/dist/translations/no.umd.js +5 -3
  221. package/dist/translations/oc.js +1 -1
  222. package/dist/translations/oc.umd.js +5 -3
  223. package/dist/translations/pl.js +1 -1
  224. package/dist/translations/pl.umd.js +5 -3
  225. package/dist/translations/pt-br.js +1 -1
  226. package/dist/translations/pt-br.umd.js +5 -3
  227. package/dist/translations/pt.js +1 -1
  228. package/dist/translations/pt.umd.js +5 -3
  229. package/dist/translations/ro.js +1 -1
  230. package/dist/translations/ro.umd.js +5 -3
  231. package/dist/translations/ru.js +1 -1
  232. package/dist/translations/ru.umd.js +5 -3
  233. package/dist/translations/si.js +1 -1
  234. package/dist/translations/si.umd.js +5 -3
  235. package/dist/translations/sk.js +1 -1
  236. package/dist/translations/sk.umd.js +5 -3
  237. package/dist/translations/sl.js +1 -1
  238. package/dist/translations/sl.umd.js +5 -3
  239. package/dist/translations/sq.js +1 -1
  240. package/dist/translations/sq.umd.js +5 -3
  241. package/dist/translations/sr-latn.js +1 -1
  242. package/dist/translations/sr-latn.umd.js +5 -3
  243. package/dist/translations/sr.js +1 -1
  244. package/dist/translations/sr.umd.js +5 -3
  245. package/dist/translations/sv.js +1 -1
  246. package/dist/translations/sv.umd.js +5 -3
  247. package/dist/translations/th.js +1 -1
  248. package/dist/translations/th.umd.js +5 -3
  249. package/dist/translations/ti.js +1 -1
  250. package/dist/translations/ti.umd.js +5 -3
  251. package/dist/translations/tk.js +1 -1
  252. package/dist/translations/tk.umd.js +5 -3
  253. package/dist/translations/tr.js +1 -1
  254. package/dist/translations/tr.umd.js +5 -3
  255. package/dist/translations/tt.js +1 -1
  256. package/dist/translations/tt.umd.js +5 -3
  257. package/dist/translations/ug.js +1 -1
  258. package/dist/translations/ug.umd.js +5 -3
  259. package/dist/translations/uk.js +1 -1
  260. package/dist/translations/uk.umd.js +5 -3
  261. package/dist/translations/ur.js +1 -1
  262. package/dist/translations/ur.umd.js +5 -3
  263. package/dist/translations/uz.js +1 -1
  264. package/dist/translations/uz.umd.js +5 -3
  265. package/dist/translations/vi.js +1 -1
  266. package/dist/translations/vi.umd.js +5 -3
  267. package/dist/translations/zh-cn.js +1 -1
  268. package/dist/translations/zh-cn.umd.js +5 -3
  269. package/dist/translations/zh.js +1 -1
  270. package/dist/translations/zh.umd.js +5 -3
  271. package/dist/view.d.ts +384 -388
  272. package/dist/viewcollection.d.ts +134 -134
  273. package/package.json +8 -7
@@ -1,697 +1,705 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
- */
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
5
  /**
6
- * @module ui/panel/balloon/balloonpanelview
7
- */
8
- import { View } from '../../view.js';
9
- import { type ViewCollection } from '../../viewcollection.js';
10
- import { type Locale, type DomOptimalPositionOptions, type PositioningFunction } from '@ckeditor/ckeditor5-utils';
11
- import '../../../theme/components/panel/balloonpanel.css';
6
+ * @module ui/panel/balloon/balloonpanelview
7
+ */
8
+ import { View } from "../../view.js";
9
+ import { type ViewCollection } from "../../viewcollection.js";
10
+ import { type Locale, type DomOptimalPositionOptions, type PositioningFunction } from "@ckeditor/ckeditor5-utils";
12
11
  /**
13
- * The balloon panel view class.
14
- *
15
- * A floating container which can
16
- * {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView#pin pin} to any
17
- * {@link module:utils/dom/position~DomOptimalPositionOptions#target target} in the DOM and remain in that position
18
- * e.g. when the web page is scrolled.
19
- *
20
- * The balloon panel can be used to display contextual, non-blocking UI like forms, toolbars and
21
- * the like in its {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView#content} view
22
- * collection.
23
- *
24
- * There is a number of {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.defaultPositions}
25
- * that the balloon can use, automatically switching from one to another when the viewport space becomes
26
- * scarce to keep the balloon visible to the user as long as it is possible. The balloon will also
27
- * accept any custom position set provided by the user compatible with the
28
- * {@link module:utils/dom/position~DomOptimalPositionOptions options}.
29
- *
30
- * ```ts
31
- * const panel = new BalloonPanelView( locale );
32
- * const childView = new ChildView();
33
- * const positions = BalloonPanelView.defaultPositions;
34
- *
35
- * panel.render();
36
- *
37
- * // Add a child view to the panel's content collection.
38
- * panel.content.add( childView );
39
- *
40
- * // Start pinning the panel to an element with the "target" id DOM.
41
- * // The balloon will remain pinned until unpin() is called.
42
- * panel.pin( {
43
- * target: document.querySelector( '#target' ),
44
- * positions: [
45
- * positions.northArrowSouth,
46
- * positions.southArrowNorth
47
- * ]
48
- * } );
49
- * ```
50
- */
12
+ * The balloon panel view class.
13
+ *
14
+ * A floating container which can
15
+ * {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView#pin pin} to any
16
+ * {@link module:utils/dom/position~DomOptimalPositionOptions#target target} in the DOM and remain in that position
17
+ * e.g. when the web page is scrolled.
18
+ *
19
+ * The balloon panel can be used to display contextual, non-blocking UI like forms, toolbars and
20
+ * the like in its {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView#content} view
21
+ * collection.
22
+ *
23
+ * There is a number of {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.defaultPositions}
24
+ * that the balloon can use, automatically switching from one to another when the viewport space becomes
25
+ * scarce to keep the balloon visible to the user as long as it is possible. The balloon will also
26
+ * accept any custom position set provided by the user compatible with the
27
+ * {@link module:utils/dom/position~DomOptimalPositionOptions options}.
28
+ *
29
+ * ```ts
30
+ * const panel = new BalloonPanelView( locale );
31
+ * const childView = new ChildView();
32
+ * const positions = BalloonPanelView.defaultPositions;
33
+ *
34
+ * panel.render();
35
+ *
36
+ * // Add a child view to the panel's content collection.
37
+ * panel.content.add( childView );
38
+ *
39
+ * // Start pinning the panel to an element with the "target" id DOM.
40
+ * // The balloon will remain pinned until unpin() is called.
41
+ * panel.pin( {
42
+ * target: document.querySelector( '#target' ),
43
+ * positions: [
44
+ * positions.northArrowSouth,
45
+ * positions.southArrowNorth
46
+ * ]
47
+ * } );
48
+ * ```
49
+ */
51
50
  export declare class BalloonPanelView extends View {
52
- /**
53
- * A collection of the child views that creates the balloon panel contents.
54
- */
55
- readonly content: ViewCollection;
56
- /**
57
- * The absolute top position of the balloon panel in pixels.
58
- *
59
- * @observable
60
- * @default 0
61
- */
62
- top: number;
63
- /**
64
- * The absolute left position of the balloon panel in pixels.
65
- *
66
- * @observable
67
- * @default 0
68
- */
69
- left: number;
70
- /**
71
- * The balloon panel's current position. The position name is reflected in the CSS class set
72
- * to the balloon, i.e. `.ck-balloon-panel_arrow_nw` for the "arrow_nw" position. The class
73
- * controls the minor aspects of the balloon's visual appearance like the placement
74
- * of an {@link #withArrow arrow}. To support a new position, an additional CSS must be created.
75
- *
76
- * Default position names correspond with
77
- * {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.defaultPositions}.
78
- *
79
- * See the {@link #attachTo} and {@link #pin} methods to learn about custom balloon positions.
80
- *
81
- * @observable
82
- * @default 'arrow_nw'
83
- */
84
- position: 'arrow_nw' | 'arrow_ne' | 'arrow_sw' | 'arrow_se';
85
- /**
86
- * Controls whether the balloon panel is visible or not.
87
- *
88
- * @observable
89
- * @default false
90
- */
91
- isVisible: boolean;
92
- /**
93
- * Controls whether the balloon panel has an arrow. The presence of the arrow
94
- * is reflected in the `ck-balloon-panel_with-arrow` CSS class.
95
- *
96
- * @observable
97
- * @default true
98
- */
99
- withArrow: boolean;
100
- /**
101
- * An additional CSS class added to the {@link #element}.
102
- *
103
- * @observable
104
- */
105
- class: string | undefined;
106
- /**
107
- * A callback that starts pinning the panel when {@link #isVisible} gets
108
- * `true`. Used by {@link #pin}.
109
- *
110
- * @private
111
- */
112
- private _pinWhenIsVisibleCallback;
113
- /**
114
- * An instance of resize observer used to detect if target element is still visible.
115
- */
116
- private _resizeObserver;
117
- /**
118
- * @inheritDoc
119
- */
120
- constructor(locale?: Locale);
121
- /**
122
- * @inheritDoc
123
- */
124
- destroy(): void;
125
- /**
126
- * Shows the panel.
127
- *
128
- * See {@link #isVisible}.
129
- */
130
- show(): void;
131
- /**
132
- * Hides the panel.
133
- *
134
- * See {@link #isVisible}.
135
- */
136
- hide(): void;
137
- /**
138
- * Attaches the panel to a specified {@link module:utils/dom/position~DomOptimalPositionOptions#target} with a
139
- * smart positioning heuristics that chooses from available positions to make sure the panel
140
- * is visible to the user i.e. within the limits of the viewport.
141
- *
142
- * This method accepts configuration {@link module:utils/dom/position~DomOptimalPositionOptions options}
143
- * to set the `target`, optional `limiter` and `positions` the balloon should choose from.
144
- *
145
- * ```ts
146
- * const panel = new BalloonPanelView( locale );
147
- * const positions = BalloonPanelView.defaultPositions;
148
- *
149
- * panel.render();
150
- *
151
- * // Attach the panel to an element with the "target" id DOM.
152
- * panel.attachTo( {
153
- * target: document.querySelector( '#target' ),
154
- * positions: [
155
- * positions.northArrowSouth,
156
- * positions.southArrowNorth
157
- * ]
158
- * } );
159
- * ```
160
- *
161
- * **Note**: Attaching the panel will also automatically {@link #show} it.
162
- *
163
- * **Note**: An attached panel will not follow its target when the window is scrolled or resized.
164
- * See the {@link #pin} method for a more permanent positioning strategy.
165
- *
166
- * @param options Positioning options compatible with {@link module:utils/dom/position~getOptimalPosition}.
167
- * Default `positions` array is {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.defaultPositions}.
168
- * @returns Whether the balloon was shown and successfully attached or not. Attaching can fail if the target
169
- * provided in the options is invisible (e.g. element detached from DOM).
170
- */
171
- attachTo(options: Partial<DomOptimalPositionOptions>): boolean;
172
- /**
173
- * Works the same way as the {@link #attachTo} method except that the position of the panel is
174
- * continuously updated when:
175
- *
176
- * * any ancestor of the {@link module:utils/dom/position~DomOptimalPositionOptions#target}
177
- * or {@link module:utils/dom/position~DomOptimalPositionOptions#limiter} is scrolled,
178
- * * the browser window gets resized or scrolled.
179
- *
180
- * Thanks to that, the panel always sticks to the {@link module:utils/dom/position~DomOptimalPositionOptions#target}
181
- * and is immune to the changing environment.
182
- *
183
- * ```ts
184
- * const panel = new BalloonPanelView( locale );
185
- * const positions = BalloonPanelView.defaultPositions;
186
- *
187
- * panel.render();
188
- *
189
- * // Pin the panel to an element with the "target" id DOM.
190
- * panel.pin( {
191
- * target: document.querySelector( '#target' ),
192
- * positions: [
193
- * positions.northArrowSouth,
194
- * positions.southArrowNorth
195
- * ]
196
- * } );
197
- * ```
198
- *
199
- * To leave the pinned state, use the {@link #unpin} method.
200
- *
201
- * **Note**: Pinning the panel will also automatically {@link #show} it.
202
- *
203
- * @param options Positioning options compatible with {@link module:utils/dom/position~getOptimalPosition}.
204
- * Default `positions` array is {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.defaultPositions}.
205
- */
206
- pin(options: Partial<DomOptimalPositionOptions>): void;
207
- /**
208
- * Stops pinning the panel, as set up by {@link #pin}.
209
- */
210
- unpin(): void;
211
- /**
212
- * Starts managing the pinned state of the panel. See {@link #pin}.
213
- *
214
- * @param options Positioning options compatible with {@link module:utils/dom/position~getOptimalPosition}.
215
- * @returns Whether the balloon was shown and successfully attached or not. Attaching can fail if the target
216
- * provided in the options is invisible (e.g. element detached from DOM).
217
- */
218
- private _startPinning;
219
- /**
220
- * Stops managing the pinned state of the panel. See {@link #pin}.
221
- */
222
- private _stopPinning;
223
- /**
224
- * Returns available {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView}
225
- * {@link module:utils/dom/position~PositioningFunction positioning functions} adjusted by the specific offsets.
226
- *
227
- * @internal
228
- * @param options Options to generate positions. If not specified, this helper will simply return
229
- * {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.defaultPositions}.
230
- * @param options.sideOffset A custom side offset (in pixels) of each position. If
231
- * not specified, {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.arrowSideOffset the default value}
232
- * will be used.
233
- * @param options.heightOffset A custom height offset (in pixels) of each position. If
234
- * not specified, {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.arrowHeightOffset the default value}
235
- * will be used.
236
- * @param options.stickyVerticalOffset A custom offset (in pixels) of the `viewportStickyNorth` positioning function.
237
- * If not specified, {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.stickyVerticalOffset the default value}
238
- * will be used.
239
- * @param options.config Additional configuration of the balloon balloon panel view.
240
- * Currently only {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView#withArrow} is supported. Learn more
241
- * about {@link module:utils/dom/position~PositioningFunction positioning functions}.
242
- */
243
- static generatePositions(options?: {
244
- sideOffset?: number;
245
- heightOffset?: number;
246
- stickyVerticalOffset?: number;
247
- config?: object;
248
- }): Record<string, PositioningFunction>;
249
- /**
250
- * A side offset of the arrow tip from the edge of the balloon. Controlled by CSS.
251
- *
252
- * ```
253
- * ┌───────────────────────┐
254
- * │ │
255
- * │ Balloon │
256
- * │ Content │
257
- * │ │
258
- * └──+ +───────────────┘
259
- * | \ /
260
- * | \/
261
- * >┼─────┼< ─────────────────────── side offset
262
- *
263
- * ```
264
- *
265
- * @default 25
266
- */
267
- static arrowSideOffset: number;
268
- /**
269
- * A height offset of the arrow from the edge of the balloon. Controlled by CSS.
270
- *
271
- * ```
272
- * ┌───────────────────────┐
273
- * │ │
274
- * │ Balloon │
275
- * │ Content │ ╱-- arrow height offset
276
- * │ │ V
277
- * └──+ +───────────────┘ --- ─┼───────
278
- * \ / │
279
- * \/ │
280
- * ────────────────────────────────┼───────
281
- * ^
282
- *
283
- *
284
- * >┼────┼< arrow height offset
285
- * │ │
286
- * │ ┌────────────────────────┐
287
- * │ │ │
288
- * │ ╱ │
289
- * │ ╱ Balloon │
290
- * │ ╲ Content │
291
- * │ ╲ │
292
- * │ │ │
293
- * │ └────────────────────────┘
294
- * ```
295
- *
296
- * @default 10
297
- */
298
- static arrowHeightOffset: number;
299
- /**
300
- * A vertical offset of the balloon panel from the edge of the viewport if sticky.
301
- * It helps in accessing toolbar buttons underneath the balloon panel.
302
- *
303
- * ```
304
- * ┌───────────────────────────────────────────────────┐
305
- * │ Target │
306
- * │ │
307
- * │ /── vertical offset │
308
- * ┌─────────────────────────────V─────────────────────────┐
309
- * │ Toolbar ┌─────────────┐ │
310
- * ├────────────────────│ Balloon │────────────────────┤
311
- * │ │ └─────────────┘ │ │
312
- * │ │ │ │
313
- * │ │ │ │
314
- * │ │ │ │
315
- * │ └───────────────────────────────────────────────────┘ │
316
- * │ Viewport │
317
- * └───────────────────────────────────────────────────────┘
318
- * ```
319
- *
320
- * @default 20
321
- */
322
- static stickyVerticalOffset: number;
323
- /**
324
- * Function used to calculate the optimal position for the balloon.
325
- */
326
- private static _getOptimalPosition;
327
- /**
328
- * A default set of positioning functions used by the balloon panel view
329
- * when attaching using the {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView#attachTo} method.
330
- *
331
- * The available positioning functions are as follows:
332
- *
333
- * **North west**
334
- *
335
- * * `northWestArrowSouthWest`
336
- *
337
- * ```
338
- * +-----------------+
339
- * | Balloon |
340
- * +-----------------+
341
- * V
342
- * [ Target ]
343
- * ```
344
- *
345
- * * `northWestArrowSouthMiddleWest`
346
- *
347
- * ```
348
- * +-----------------+
349
- * | Balloon |
350
- * +-----------------+
351
- * V
352
- * [ Target ]
353
- * ```
354
- *
355
- * * `northWestArrowSouth`
356
- *
357
- * ```
358
- * +-----------------+
359
- * | Balloon |
360
- * +-----------------+
361
- * V
362
- * [ Target ]
363
- * ```
364
- *
365
- * * `northWestArrowSouthMiddleEast`
366
- *
367
- * ```
368
- * +-----------------+
369
- * | Balloon |
370
- * +-----------------+
371
- * V
372
- * [ Target ]
373
- * ```
374
- *
375
- * * `northWestArrowSouthEast`
376
- *
377
- * ```
378
- * +-----------------+
379
- * | Balloon |
380
- * +-----------------+
381
- * V
382
- * [ Target ]
383
- * ```
384
- *
385
- * **North**
386
- *
387
- * * `northArrowSouthWest`
388
- *
389
- * ```
390
- * +-----------------+
391
- * | Balloon |
392
- * +-----------------+
393
- * V
394
- * [ Target ]
395
- * ```
396
- *
397
- * * `northArrowSouthMiddleWest`
398
- *
399
- * ```
400
- * +-----------------+
401
- * | Balloon |
402
- * +-----------------+
403
- * V
404
- * [ Target ]
405
- * ```
406
- * * `northArrowSouth`
407
- *
408
- * ```
409
- * +-----------------+
410
- * | Balloon |
411
- * +-----------------+
412
- * V
413
- * [ Target ]
414
- * ```
415
- *
416
- * * `northArrowSouthMiddleEast`
417
- *
418
- * ```
419
- * +-----------------+
420
- * | Balloon |
421
- * +-----------------+
422
- * V
423
- * [ Target ]
424
- * ```
425
- *
426
- * * `northArrowSouthEast`
427
- *
428
- * ```
429
- * +-----------------+
430
- * | Balloon |
431
- * +-----------------+
432
- * V
433
- * [ Target ]
434
- * ```
435
- *
436
- * **North east**
437
- *
438
- * * `northEastArrowSouthWest`
439
- *
440
- * ```
441
- * +-----------------+
442
- * | Balloon |
443
- * +-----------------+
444
- * V
445
- * [ Target ]
446
- * ```
447
- *
448
- * * `northEastArrowSouthMiddleWest`
449
- *
450
- * ```
451
- * +-----------------+
452
- * | Balloon |
453
- * +-----------------+
454
- * V
455
- * [ Target ]
456
- * ```
457
- *
458
- * * `northEastArrowSouth`
459
- *
460
- * ```
461
- * +-----------------+
462
- * | Balloon |
463
- * +-----------------+
464
- * V
465
- * [ Target ]
466
- * ```
467
- *
468
- * * `northEastArrowSouthMiddleEast`
469
- *
470
- * ```
471
- * +-----------------+
472
- * | Balloon |
473
- * +-----------------+
474
- * V
475
- * [ Target ]
476
- * ```
477
- *
478
- * * `northEastArrowSouthEast`
479
- *
480
- * ```
481
- * +-----------------+
482
- * | Balloon |
483
- * +-----------------+
484
- * V
485
- * [ Target ]
486
- * ```
487
- *
488
- * **South**
489
- *
490
- * * `southArrowNorthWest`
491
- *
492
- * ```
493
- * [ Target ]
494
- * ^
495
- * +-----------------+
496
- * | Balloon |
497
- * +-----------------+
498
- * ```
499
- *
500
- * * `southArrowNorthMiddleWest`
501
- *
502
- * ```
503
- * [ Target ]
504
- * ^
505
- * +-----------------+
506
- * | Balloon |
507
- * +-----------------+
508
- * ```
509
- *
510
- * * `southArrowNorth`
511
- *
512
- * ```
513
- * [ Target ]
514
- * ^
515
- * +-----------------+
516
- * | Balloon |
517
- * +-----------------+
518
- * ```
519
- *
520
- * * `southArrowNorthMiddleEast`
521
- *
522
- * ```
523
- * [ Target ]
524
- * ^
525
- * +-----------------+
526
- * | Balloon |
527
- * +-----------------+
528
- * ```
529
- *
530
- * * `southArrowNorthEast`
531
- *
532
- * ```
533
- * [ Target ]
534
- * ^
535
- * +-----------------+
536
- * | Balloon |
537
- * +-----------------+
538
- * ```
539
- *
540
- * **South west**
541
- *
542
- * * `southWestArrowNorthWest`
543
- *
544
- *
545
- * ```
546
- * [ Target ]
547
- * ^
548
- * +-----------------+
549
- * | Balloon |
550
- * +-----------------+
551
- * ```
552
- *
553
- * * `southWestArrowNorthMiddleWest`
554
- *
555
- * ```
556
- * [ Target ]
557
- * ^
558
- * +-----------------+
559
- * | Balloon |
560
- * +-----------------+
561
- * ```
562
- *
563
- * * `southWestArrowNorth`
564
- *
565
- * ```
566
- * [ Target ]
567
- * ^
568
- * +-----------------+
569
- * | Balloon |
570
- * +-----------------+
571
- * ```
572
- *
573
- * * `southWestArrowNorthMiddleEast`
574
- *
575
- * ```
576
- * [ Target ]
577
- * ^
578
- * +-----------------+
579
- * | Balloon |
580
- * +-----------------+
581
- * ```
582
- *
583
- * * `southWestArrowNorthEast`
584
- *
585
- * ```
586
- * [ Target ]
587
- * ^
588
- * +-----------------+
589
- * | Balloon |
590
- * +-----------------+
591
- * ```
592
- *
593
- * **South east**
594
- *
595
- * * `southEastArrowNorthWest`
596
- *
597
- * ```
598
- * [ Target ]
599
- * ^
600
- * +-----------------+
601
- * | Balloon |
602
- * +-----------------+
603
- * ```
604
- *
605
- * * `southEastArrowNorthMiddleWest`
606
- *
607
- * ```
608
- * [ Target ]
609
- * ^
610
- * +-----------------+
611
- * | Balloon |
612
- * +-----------------+
613
- * ```
614
- *
615
- * * `southEastArrowNorth`
616
- *
617
- * ```
618
- * [ Target ]
619
- * ^
620
- * +-----------------+
621
- * | Balloon |
622
- * +-----------------+
623
- * ```
624
- *
625
- * * `southEastArrowNorthMiddleEast`
626
- *
627
- * ```
628
- * [ Target ]
629
- * ^
630
- * +-----------------+
631
- * | Balloon |
632
- * +-----------------+
633
- * ```
634
- *
635
- * * `southEastArrowNorthEast`
636
- *
637
- * ```
638
- * [ Target ]
639
- * ^
640
- * +-----------------+
641
- * | Balloon |
642
- * +-----------------+
643
- * ```
644
- *
645
- * **West**
646
- *
647
- * * `westArrowEast`
648
- *
649
- * ```
650
- * +-----------------+
651
- * | Balloon |>[ Target ]
652
- * +-----------------+
653
- * ```
654
- *
655
- * **East**
656
- *
657
- * * `eastArrowWest`
658
- *
659
- * ```
660
- * +-----------------+
661
- * [ Target ]<| Balloon |
662
- * +-----------------+
663
- * ```
664
- *
665
- * **Sticky**
666
- *
667
- * * `viewportStickyNorth`
668
- *
669
- * ```
670
- * +---------------------------+
671
- * | [ Target ] |
672
- * | |
673
- * +-----------------------------------+
674
- * | | +-----------------+ | |
675
- * | | | Balloon | | |
676
- * | | +-----------------+ | |
677
- * | | | |
678
- * | | | |
679
- * | | | |
680
- * | | | |
681
- * | +---------------------------+ |
682
- * | Viewport |
683
- * +-----------------------------------+
684
- * ```
685
- *
686
- * See {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView#attachTo}.
687
- *
688
- * Positioning functions must be compatible with {@link module:utils/dom/position~DomPoint}.
689
- *
690
- * Default positioning functions with customized offsets can be generated using
691
- * {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.generatePositions}.
692
- *
693
- * The name that the position function returns will be reflected in the balloon panel's class that
694
- * controls the placement of the "arrow". See {@link #position} to learn more.
695
- */
696
- static defaultPositions: Record<string, PositioningFunction>;
51
+ /**
52
+ * A collection of the child views that creates the balloon panel contents.
53
+ */
54
+ readonly content: ViewCollection;
55
+ /**
56
+ * The absolute top position of the balloon panel in pixels.
57
+ *
58
+ * @observable
59
+ * @default 0
60
+ */
61
+ top: number;
62
+ /**
63
+ * The absolute left position of the balloon panel in pixels.
64
+ *
65
+ * @observable
66
+ * @default 0
67
+ */
68
+ left: number;
69
+ /**
70
+ * The balloon panel's current position. The position name is reflected in the CSS class set
71
+ * to the balloon, i.e. `.ck-balloon-panel_arrow_nw` for the "arrow_nw" position. The class
72
+ * controls the minor aspects of the balloon's visual appearance like the placement
73
+ * of an {@link #withArrow arrow}. To support a new position, an additional CSS must be created.
74
+ *
75
+ * Default position names correspond with
76
+ * {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.defaultPositions}.
77
+ *
78
+ * See the {@link #attachTo} and {@link #pin} methods to learn about custom balloon positions.
79
+ *
80
+ * @observable
81
+ * @default 'arrow_nw'
82
+ */
83
+ position: "arrow_nw" | "arrow_ne" | "arrow_sw" | "arrow_se";
84
+ /**
85
+ * Controls whether the balloon panel is visible or not.
86
+ *
87
+ * @observable
88
+ * @default false
89
+ */
90
+ isVisible: boolean;
91
+ /**
92
+ * Controls whether the balloon panel has an arrow. The presence of the arrow
93
+ * is reflected in the `ck-balloon-panel_with-arrow` CSS class.
94
+ *
95
+ * @observable
96
+ * @default true
97
+ */
98
+ withArrow: boolean;
99
+ /**
100
+ * An additional CSS class added to the {@link #element}.
101
+ *
102
+ * @observable
103
+ */
104
+ class: string | undefined;
105
+ /**
106
+ * A callback that starts pinning the panel when {@link #isVisible} gets
107
+ * `true`. Used by {@link #pin}.
108
+ *
109
+ * @private
110
+ */
111
+ private _pinWhenIsVisibleCallback;
112
+ /**
113
+ * An instance of resize observer used to detect if target element is still visible.
114
+ */
115
+ private _resizeObserver;
116
+ /**
117
+ * The nodes the `scroll` listener of the currently pinned panel is attached to: `document` plus every shadow
118
+ * root hosting the positioning target or the limiter. Emptied by {@link #_stopPinning}.
119
+ *
120
+ * A single `document` listener is not enough, because `scroll` is not `composed` — its event path ends at
121
+ * the shadow root it originated in, so not even a capturing listener on `document` sees a scrollable
122
+ * container living inside a shadow root.
123
+ */
124
+ private _scrollListenerDomRoots;
125
+ /**
126
+ * @inheritDoc
127
+ */
128
+ constructor(locale?: Locale);
129
+ /**
130
+ * @inheritDoc
131
+ */
132
+ override destroy(): void;
133
+ /**
134
+ * Shows the panel.
135
+ *
136
+ * See {@link #isVisible}.
137
+ */
138
+ show(): void;
139
+ /**
140
+ * Hides the panel.
141
+ *
142
+ * See {@link #isVisible}.
143
+ */
144
+ hide(): void;
145
+ /**
146
+ * Attaches the panel to a specified {@link module:utils/dom/position~DomOptimalPositionOptions#target} with a
147
+ * smart positioning heuristics that chooses from available positions to make sure the panel
148
+ * is visible to the user i.e. within the limits of the viewport.
149
+ *
150
+ * This method accepts configuration {@link module:utils/dom/position~DomOptimalPositionOptions options}
151
+ * to set the `target`, optional `limiter` and `positions` the balloon should choose from.
152
+ *
153
+ * ```ts
154
+ * const panel = new BalloonPanelView( locale );
155
+ * const positions = BalloonPanelView.defaultPositions;
156
+ *
157
+ * panel.render();
158
+ *
159
+ * // Attach the panel to an element with the "target" id DOM.
160
+ * panel.attachTo( {
161
+ * target: document.querySelector( '#target' ),
162
+ * positions: [
163
+ * positions.northArrowSouth,
164
+ * positions.southArrowNorth
165
+ * ]
166
+ * } );
167
+ * ```
168
+ *
169
+ * **Note**: Attaching the panel will also automatically {@link #show} it.
170
+ *
171
+ * **Note**: An attached panel will not follow its target when the window is scrolled or resized.
172
+ * See the {@link #pin} method for a more permanent positioning strategy.
173
+ *
174
+ * @param options Positioning options compatible with {@link module:utils/dom/position~getOptimalPosition}.
175
+ * Default `positions` array is {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.defaultPositions}.
176
+ * @returns Whether the balloon was shown and successfully attached or not. Attaching can fail if the target
177
+ * provided in the options is invisible (e.g. element detached from DOM).
178
+ */
179
+ attachTo(options: Partial<DomOptimalPositionOptions>): boolean;
180
+ /**
181
+ * Works the same way as the {@link #attachTo} method except that the position of the panel is
182
+ * continuously updated when:
183
+ *
184
+ * * any ancestor of the {@link module:utils/dom/position~DomOptimalPositionOptions#target}
185
+ * or {@link module:utils/dom/position~DomOptimalPositionOptions#limiter} is scrolled,
186
+ * * the browser window gets resized or scrolled.
187
+ *
188
+ * Thanks to that, the panel always sticks to the {@link module:utils/dom/position~DomOptimalPositionOptions#target}
189
+ * and is immune to the changing environment.
190
+ *
191
+ * ```ts
192
+ * const panel = new BalloonPanelView( locale );
193
+ * const positions = BalloonPanelView.defaultPositions;
194
+ *
195
+ * panel.render();
196
+ *
197
+ * // Pin the panel to an element with the "target" id DOM.
198
+ * panel.pin( {
199
+ * target: document.querySelector( '#target' ),
200
+ * positions: [
201
+ * positions.northArrowSouth,
202
+ * positions.southArrowNorth
203
+ * ]
204
+ * } );
205
+ * ```
206
+ *
207
+ * To leave the pinned state, use the {@link #unpin} method.
208
+ *
209
+ * **Note**: Pinning the panel will also automatically {@link #show} it.
210
+ *
211
+ * @param options Positioning options compatible with {@link module:utils/dom/position~getOptimalPosition}.
212
+ * Default `positions` array is {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.defaultPositions}.
213
+ */
214
+ pin(options: Partial<DomOptimalPositionOptions>): void;
215
+ /**
216
+ * Stops pinning the panel, as set up by {@link #pin}.
217
+ */
218
+ unpin(): void;
219
+ /**
220
+ * Starts managing the pinned state of the panel. See {@link #pin}.
221
+ *
222
+ * @param options Positioning options compatible with {@link module:utils/dom/position~getOptimalPosition}.
223
+ * @returns Whether the balloon was shown and successfully attached or not. Attaching can fail if the target
224
+ * provided in the options is invisible (e.g. element detached from DOM).
225
+ */
226
+ private _startPinning;
227
+ /**
228
+ * Stops managing the pinned state of the panel. See {@link #pin}.
229
+ */
230
+ private _stopPinning;
231
+ /**
232
+ * Returns available {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView}
233
+ * {@link module:utils/dom/position~PositioningFunction positioning functions} adjusted by the specific offsets.
234
+ *
235
+ * @internal
236
+ * @param options Options to generate positions. If not specified, this helper will simply return
237
+ * {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.defaultPositions}.
238
+ * @param options.sideOffset A custom side offset (in pixels) of each position. If
239
+ * not specified, {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.arrowSideOffset the default value}
240
+ * will be used.
241
+ * @param options.heightOffset A custom height offset (in pixels) of each position. If
242
+ * not specified, {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.arrowHeightOffset the default value}
243
+ * will be used.
244
+ * @param options.stickyVerticalOffset A custom offset (in pixels) of the `viewportStickyNorth` positioning function.
245
+ * If not specified, {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.stickyVerticalOffset the default value}
246
+ * will be used.
247
+ * @param options.config Additional configuration of the balloon balloon panel view.
248
+ * Currently only {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView#withArrow} is supported. Learn more
249
+ * about {@link module:utils/dom/position~PositioningFunction positioning functions}.
250
+ */
251
+ static generatePositions(options?: {
252
+ sideOffset?: number;
253
+ heightOffset?: number;
254
+ stickyVerticalOffset?: number;
255
+ config?: object;
256
+ }): Record<string, PositioningFunction>;
257
+ /**
258
+ * A side offset of the arrow tip from the edge of the balloon. Controlled by CSS.
259
+ *
260
+ * ```
261
+ * ┌───────────────────────┐
262
+ * │ │
263
+ * │ Balloon │
264
+ * │ Content │
265
+ * │ │
266
+ * └──+ +───────────────┘
267
+ * | \ /
268
+ * | \/
269
+ * >┼─────┼< ─────────────────────── side offset
270
+ *
271
+ * ```
272
+ *
273
+ * @default 25
274
+ */
275
+ static arrowSideOffset: number;
276
+ /**
277
+ * A height offset of the arrow from the edge of the balloon. Controlled by CSS.
278
+ *
279
+ * ```
280
+ * ┌───────────────────────┐
281
+ * │ │
282
+ * │ Balloon │
283
+ * │ Content │ ╱-- arrow height offset
284
+ * │ │ V
285
+ * └──+ +───────────────┘ --- ─┼───────
286
+ * \ / │
287
+ * \/ │
288
+ * ────────────────────────────────┼───────
289
+ * ^
290
+ *
291
+ *
292
+ * >┼────┼< arrow height offset
293
+ * │ │
294
+ * │ ┌────────────────────────┐
295
+ * │ │ │
296
+ * │ ╱ │
297
+ * │ ╱ Balloon │
298
+ * │ ╲ Content │
299
+ * │ ╲ │
300
+ * │ │ │
301
+ * │ └────────────────────────┘
302
+ * ```
303
+ *
304
+ * @default 10
305
+ */
306
+ static arrowHeightOffset: number;
307
+ /**
308
+ * A vertical offset of the balloon panel from the edge of the viewport if sticky.
309
+ * It helps in accessing toolbar buttons underneath the balloon panel.
310
+ *
311
+ * ```
312
+ * ┌───────────────────────────────────────────────────┐
313
+ * │ Target │
314
+ * │ │
315
+ * │ /── vertical offset │
316
+ * ┌─────────────────────────────V─────────────────────────┐
317
+ * │ Toolbar ┌─────────────┐ │
318
+ * ├────────────────────│ Balloon │────────────────────┤
319
+ * │ │ └─────────────┘ │ │
320
+ * │ │ │ │
321
+ * │ │ │ │
322
+ * │ │ │ │
323
+ * │ └───────────────────────────────────────────────────┘ │
324
+ * │ Viewport │
325
+ * └───────────────────────────────────────────────────────┘
326
+ * ```
327
+ *
328
+ * @default 20
329
+ */
330
+ static stickyVerticalOffset: number;
331
+ /**
332
+ * Function used to calculate the optimal position for the balloon.
333
+ */
334
+ private static _getOptimalPosition;
335
+ /**
336
+ * A default set of positioning functions used by the balloon panel view
337
+ * when attaching using the {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView#attachTo} method.
338
+ *
339
+ * The available positioning functions are as follows:
340
+ *
341
+ * **North west**
342
+ *
343
+ * * `northWestArrowSouthWest`
344
+ *
345
+ * ```
346
+ * +-----------------+
347
+ * | Balloon |
348
+ * +-----------------+
349
+ * V
350
+ * [ Target ]
351
+ * ```
352
+ *
353
+ * * `northWestArrowSouthMiddleWest`
354
+ *
355
+ * ```
356
+ * +-----------------+
357
+ * | Balloon |
358
+ * +-----------------+
359
+ * V
360
+ * [ Target ]
361
+ * ```
362
+ *
363
+ * * `northWestArrowSouth`
364
+ *
365
+ * ```
366
+ * +-----------------+
367
+ * | Balloon |
368
+ * +-----------------+
369
+ * V
370
+ * [ Target ]
371
+ * ```
372
+ *
373
+ * * `northWestArrowSouthMiddleEast`
374
+ *
375
+ * ```
376
+ * +-----------------+
377
+ * | Balloon |
378
+ * +-----------------+
379
+ * V
380
+ * [ Target ]
381
+ * ```
382
+ *
383
+ * * `northWestArrowSouthEast`
384
+ *
385
+ * ```
386
+ * +-----------------+
387
+ * | Balloon |
388
+ * +-----------------+
389
+ * V
390
+ * [ Target ]
391
+ * ```
392
+ *
393
+ * **North**
394
+ *
395
+ * * `northArrowSouthWest`
396
+ *
397
+ * ```
398
+ * +-----------------+
399
+ * | Balloon |
400
+ * +-----------------+
401
+ * V
402
+ * [ Target ]
403
+ * ```
404
+ *
405
+ * * `northArrowSouthMiddleWest`
406
+ *
407
+ * ```
408
+ * +-----------------+
409
+ * | Balloon |
410
+ * +-----------------+
411
+ * V
412
+ * [ Target ]
413
+ * ```
414
+ * * `northArrowSouth`
415
+ *
416
+ * ```
417
+ * +-----------------+
418
+ * | Balloon |
419
+ * +-----------------+
420
+ * V
421
+ * [ Target ]
422
+ * ```
423
+ *
424
+ * * `northArrowSouthMiddleEast`
425
+ *
426
+ * ```
427
+ * +-----------------+
428
+ * | Balloon |
429
+ * +-----------------+
430
+ * V
431
+ * [ Target ]
432
+ * ```
433
+ *
434
+ * * `northArrowSouthEast`
435
+ *
436
+ * ```
437
+ * +-----------------+
438
+ * | Balloon |
439
+ * +-----------------+
440
+ * V
441
+ * [ Target ]
442
+ * ```
443
+ *
444
+ * **North east**
445
+ *
446
+ * * `northEastArrowSouthWest`
447
+ *
448
+ * ```
449
+ * +-----------------+
450
+ * | Balloon |
451
+ * +-----------------+
452
+ * V
453
+ * [ Target ]
454
+ * ```
455
+ *
456
+ * * `northEastArrowSouthMiddleWest`
457
+ *
458
+ * ```
459
+ * +-----------------+
460
+ * | Balloon |
461
+ * +-----------------+
462
+ * V
463
+ * [ Target ]
464
+ * ```
465
+ *
466
+ * * `northEastArrowSouth`
467
+ *
468
+ * ```
469
+ * +-----------------+
470
+ * | Balloon |
471
+ * +-----------------+
472
+ * V
473
+ * [ Target ]
474
+ * ```
475
+ *
476
+ * * `northEastArrowSouthMiddleEast`
477
+ *
478
+ * ```
479
+ * +-----------------+
480
+ * | Balloon |
481
+ * +-----------------+
482
+ * V
483
+ * [ Target ]
484
+ * ```
485
+ *
486
+ * * `northEastArrowSouthEast`
487
+ *
488
+ * ```
489
+ * +-----------------+
490
+ * | Balloon |
491
+ * +-----------------+
492
+ * V
493
+ * [ Target ]
494
+ * ```
495
+ *
496
+ * **South**
497
+ *
498
+ * * `southArrowNorthWest`
499
+ *
500
+ * ```
501
+ * [ Target ]
502
+ * ^
503
+ * +-----------------+
504
+ * | Balloon |
505
+ * +-----------------+
506
+ * ```
507
+ *
508
+ * * `southArrowNorthMiddleWest`
509
+ *
510
+ * ```
511
+ * [ Target ]
512
+ * ^
513
+ * +-----------------+
514
+ * | Balloon |
515
+ * +-----------------+
516
+ * ```
517
+ *
518
+ * * `southArrowNorth`
519
+ *
520
+ * ```
521
+ * [ Target ]
522
+ * ^
523
+ * +-----------------+
524
+ * | Balloon |
525
+ * +-----------------+
526
+ * ```
527
+ *
528
+ * * `southArrowNorthMiddleEast`
529
+ *
530
+ * ```
531
+ * [ Target ]
532
+ * ^
533
+ * +-----------------+
534
+ * | Balloon |
535
+ * +-----------------+
536
+ * ```
537
+ *
538
+ * * `southArrowNorthEast`
539
+ *
540
+ * ```
541
+ * [ Target ]
542
+ * ^
543
+ * +-----------------+
544
+ * | Balloon |
545
+ * +-----------------+
546
+ * ```
547
+ *
548
+ * **South west**
549
+ *
550
+ * * `southWestArrowNorthWest`
551
+ *
552
+ *
553
+ * ```
554
+ * [ Target ]
555
+ * ^
556
+ * +-----------------+
557
+ * | Balloon |
558
+ * +-----------------+
559
+ * ```
560
+ *
561
+ * * `southWestArrowNorthMiddleWest`
562
+ *
563
+ * ```
564
+ * [ Target ]
565
+ * ^
566
+ * +-----------------+
567
+ * | Balloon |
568
+ * +-----------------+
569
+ * ```
570
+ *
571
+ * * `southWestArrowNorth`
572
+ *
573
+ * ```
574
+ * [ Target ]
575
+ * ^
576
+ * +-----------------+
577
+ * | Balloon |
578
+ * +-----------------+
579
+ * ```
580
+ *
581
+ * * `southWestArrowNorthMiddleEast`
582
+ *
583
+ * ```
584
+ * [ Target ]
585
+ * ^
586
+ * +-----------------+
587
+ * | Balloon |
588
+ * +-----------------+
589
+ * ```
590
+ *
591
+ * * `southWestArrowNorthEast`
592
+ *
593
+ * ```
594
+ * [ Target ]
595
+ * ^
596
+ * +-----------------+
597
+ * | Balloon |
598
+ * +-----------------+
599
+ * ```
600
+ *
601
+ * **South east**
602
+ *
603
+ * * `southEastArrowNorthWest`
604
+ *
605
+ * ```
606
+ * [ Target ]
607
+ * ^
608
+ * +-----------------+
609
+ * | Balloon |
610
+ * +-----------------+
611
+ * ```
612
+ *
613
+ * * `southEastArrowNorthMiddleWest`
614
+ *
615
+ * ```
616
+ * [ Target ]
617
+ * ^
618
+ * +-----------------+
619
+ * | Balloon |
620
+ * +-----------------+
621
+ * ```
622
+ *
623
+ * * `southEastArrowNorth`
624
+ *
625
+ * ```
626
+ * [ Target ]
627
+ * ^
628
+ * +-----------------+
629
+ * | Balloon |
630
+ * +-----------------+
631
+ * ```
632
+ *
633
+ * * `southEastArrowNorthMiddleEast`
634
+ *
635
+ * ```
636
+ * [ Target ]
637
+ * ^
638
+ * +-----------------+
639
+ * | Balloon |
640
+ * +-----------------+
641
+ * ```
642
+ *
643
+ * * `southEastArrowNorthEast`
644
+ *
645
+ * ```
646
+ * [ Target ]
647
+ * ^
648
+ * +-----------------+
649
+ * | Balloon |
650
+ * +-----------------+
651
+ * ```
652
+ *
653
+ * **West**
654
+ *
655
+ * * `westArrowEast`
656
+ *
657
+ * ```
658
+ * +-----------------+
659
+ * | Balloon |>[ Target ]
660
+ * +-----------------+
661
+ * ```
662
+ *
663
+ * **East**
664
+ *
665
+ * * `eastArrowWest`
666
+ *
667
+ * ```
668
+ * +-----------------+
669
+ * [ Target ]<| Balloon |
670
+ * +-----------------+
671
+ * ```
672
+ *
673
+ * **Sticky**
674
+ *
675
+ * * `viewportStickyNorth`
676
+ *
677
+ * ```
678
+ * +---------------------------+
679
+ * | [ Target ] |
680
+ * | |
681
+ * +-----------------------------------+
682
+ * | | +-----------------+ | |
683
+ * | | | Balloon | | |
684
+ * | | +-----------------+ | |
685
+ * | | | |
686
+ * | | | |
687
+ * | | | |
688
+ * | | | |
689
+ * | +---------------------------+ |
690
+ * | Viewport |
691
+ * +-----------------------------------+
692
+ * ```
693
+ *
694
+ * See {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView#attachTo}.
695
+ *
696
+ * Positioning functions must be compatible with {@link module:utils/dom/position~DomPoint}.
697
+ *
698
+ * Default positioning functions with customized offsets can be generated using
699
+ * {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.generatePositions}.
700
+ *
701
+ * The name that the position function returns will be reflected in the balloon panel's class that
702
+ * controls the placement of the "arrow". See {@link #position} to learn more.
703
+ */
704
+ static defaultPositions: Record<string, PositioningFunction>;
697
705
  }