@ckeditor/ckeditor5-ui 48.8.1-alpha.3 → 49.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +1 -1
- package/dist/arialiveannouncer.d.ts +89 -90
- package/dist/augmentation.d.ts +86 -86
- package/dist/autocomplete/autocompleteview.d.ts +69 -70
- package/dist/badge/badge.d.ts +119 -121
- package/dist/bindings/addkeyboardhandlingforgrid.d.ts +22 -22
- package/dist/bindings/clickoutsidehandler.d.ts +24 -26
- package/dist/bindings/csstransitiondisablermixin.d.ts +47 -36
- package/dist/bindings/draggableviewmixin.d.ts +45 -37
- package/dist/bindings/preventdefault.d.ts +30 -30
- package/dist/bindings/submithandler.d.ts +49 -49
- package/dist/button/button.d.ts +167 -167
- package/dist/button/buttonlabel.d.ts +28 -28
- package/dist/button/buttonlabelview.d.ts +26 -26
- package/dist/button/buttonview.d.ts +191 -192
- package/dist/button/filedialogbuttonview.d.ts +107 -99
- package/dist/button/listitembuttonview.d.ts +72 -73
- package/dist/button/switchbuttonview.d.ts +39 -40
- package/dist/collapsible/collapsibleview.d.ts +62 -63
- package/dist/colorgrid/colorgridview.d.ts +116 -117
- package/dist/colorgrid/colors.d.ts +28 -0
- package/dist/colorgrid/colortileview.d.ts +21 -21
- package/dist/colorgrid/utils.d.ts +47 -35
- package/dist/colorpicker/colorpickerview.d.ts +154 -157
- package/dist/colorpicker/utils.d.ts +37 -37
- package/dist/colorselector/colorgridsfragmentview.d.ts +191 -191
- package/dist/colorselector/colorpickerfragmentview.d.ts +129 -129
- package/dist/colorselector/colorselectorview.d.ts +226 -229
- package/dist/colorselector/documentcolorcollection.d.ts +52 -59
- package/dist/componentfactory.d.ts +76 -76
- package/dist/dialog/dialog.d.ts +311 -288
- package/dist/dialog/dialogactionsview.d.ts +61 -62
- package/dist/dialog/dialogcontentview.d.ts +22 -22
- package/dist/dialog/dialogview.d.ts +254 -251
- package/dist/dropdown/button/dropdownbutton.d.ts +17 -17
- package/dist/dropdown/button/dropdownbuttonview.d.ts +41 -41
- package/dist/dropdown/button/splitbuttonview.d.ts +154 -155
- package/dist/dropdown/dropdownpanelfocusable.d.ts +16 -16
- package/dist/dropdown/dropdownpanelview.d.ts +56 -56
- package/dist/dropdown/dropdownview.d.ts +337 -326
- package/dist/dropdown/menu/dropdownmenubehaviors.d.ts +43 -43
- package/dist/dropdown/menu/dropdownmenubuttonview.d.ts +28 -29
- package/dist/dropdown/menu/dropdownmenulistitembuttonview.d.ts +11 -12
- package/dist/dropdown/menu/dropdownmenulistitemview.d.ts +16 -17
- package/dist/dropdown/menu/dropdownmenulistview.d.ts +19 -19
- package/dist/dropdown/menu/dropdownmenunestedmenupanelview.d.ts +27 -28
- package/dist/dropdown/menu/dropdownmenunestedmenuview.d.ts +125 -126
- package/dist/dropdown/menu/dropdownmenurootlistview.d.ts +132 -132
- package/dist/dropdown/menu/utils.d.ts +112 -112
- package/dist/dropdown/utils.d.ts +270 -272
- package/dist/editableui/editableuiview.d.ts +78 -67
- package/dist/editableui/inline/inlineeditableuiview.d.ts +38 -36
- package/dist/editorui/accessibilityhelp/accessibilityhelp.d.ts +49 -50
- package/dist/editorui/accessibilityhelp/accessibilityhelpcontentview.d.ts +30 -30
- package/dist/editorui/bodycollection.d.ts +167 -86
- package/dist/editorui/boxed/boxededitoruiview.d.ts +35 -35
- package/dist/editorui/editorui.d.ts +382 -351
- package/dist/editorui/editoruiview.d.ts +48 -53
- package/dist/editorui/evaluationbadge.d.ts +28 -28
- package/dist/editorui/poweredby.d.ts +25 -25
- package/dist/focuscycler.d.ts +265 -270
- package/dist/formheader/formheaderview.d.ts +52 -53
- package/dist/formrow/formrowview.d.ts +51 -52
- package/dist/highlightedtext/buttonlabelwithhighlightview.d.ts +25 -25
- package/dist/highlightedtext/highlightedtextview.d.ts +30 -34
- package/dist/highlightedtext/labelwithhighlightview.d.ts +21 -21
- package/dist/icon/iconview.d.ts +82 -83
- package/dist/iframe/iframeview.d.ts +42 -42
- package/dist/index-content.css +3 -0
- package/dist/index-content.css.map +1 -0
- package/dist/index-editor.css +3240 -2329
- package/dist/index-editor.css.map +1 -0
- package/dist/index.css +2939 -2032
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +144 -136
- package/dist/index.js +17821 -17732
- package/dist/index.js.map +1 -1
- package/dist/input/inputbase.d.ts +114 -114
- package/dist/input/inputview.d.ts +27 -28
- package/dist/inputnumber/inputnumberview.d.ts +44 -44
- package/dist/inputtext/inputtextview.d.ts +13 -13
- package/dist/label/labelview.d.ts +30 -31
- package/dist/labeledfield/labeledfieldview.d.ts +179 -180
- package/dist/labeledfield/utils.d.ts +112 -112
- package/dist/labeledinput/labeledinputview.d.ts +119 -120
- package/dist/legacyerrors.d.ts +0 -4
- package/dist/list/listitemgroupview.d.ts +54 -54
- package/dist/list/listitemview.d.ts +31 -31
- package/dist/list/listseparatorview.d.ts +13 -13
- package/dist/list/listview.d.ts +118 -119
- package/dist/menubar/menubarmenubuttonview.d.ts +27 -28
- package/dist/menubar/menubarmenulistitembuttonview.d.ts +15 -16
- package/dist/menubar/menubarmenulistitemfiledialogbuttonview.d.ts +17 -18
- package/dist/menubar/menubarmenulistitemview.d.ts +19 -20
- package/dist/menubar/menubarmenulistview.d.ts +24 -24
- package/dist/menubar/menubarmenupanelview.d.ts +46 -47
- package/dist/menubar/menubarmenuview.d.ts +112 -113
- package/dist/menubar/menubarview.d.ts +144 -145
- package/dist/menubar/utils.d.ts +455 -455
- package/dist/model.d.ts +19 -18
- package/dist/notification/notification.d.ts +200 -200
- package/dist/overlayhost.d.ts +210 -0
- package/dist/panel/balloon/balloonpanelview.d.ts +700 -692
- package/dist/panel/balloon/contextualballoon.d.ts +296 -298
- package/dist/panel/sticky/stickypanelview.d.ts +162 -151
- package/dist/search/filteredview.d.ts +23 -23
- package/dist/search/filtergroupanditemnames.d.ts +11 -11
- package/dist/search/searchinfoview.d.ts +39 -39
- package/dist/search/searchresultsview.d.ts +49 -49
- package/dist/search/text/searchtextqueryview.d.ts +63 -63
- package/dist/search/text/searchtextview.d.ts +202 -203
- package/dist/spinner/spinnerview.d.ts +19 -20
- package/dist/tabs/tabbuttonview.d.ts +53 -0
- package/dist/tabs/tabpanelview.d.ts +45 -0
- package/dist/template.d.ts +897 -902
- package/dist/textarea/textareaview.d.ts +100 -96
- package/dist/toolbar/balloon/balloontoolbar.d.ts +122 -122
- package/dist/toolbar/block/blockbuttonview.d.ts +29 -30
- package/dist/toolbar/block/blocktoolbar.d.ts +166 -166
- package/dist/toolbar/normalizetoolbarconfig.d.ts +35 -35
- package/dist/toolbar/toolbarlinebreakview.d.ts +13 -13
- package/dist/toolbar/toolbarseparatorview.d.ts +13 -13
- package/dist/toolbar/toolbarview.d.ts +270 -271
- package/dist/tooltipmanager.d.ts +317 -193
- package/dist/translations/af.js +1 -1
- package/dist/translations/af.umd.js +5 -3
- package/dist/translations/ar.js +1 -1
- package/dist/translations/ar.umd.js +5 -3
- package/dist/translations/ast.js +1 -1
- package/dist/translations/ast.umd.js +5 -3
- package/dist/translations/az.js +1 -1
- package/dist/translations/az.umd.js +5 -3
- package/dist/translations/be.js +1 -1
- package/dist/translations/be.umd.js +5 -3
- package/dist/translations/bg.js +1 -1
- package/dist/translations/bg.umd.js +5 -3
- package/dist/translations/bn.js +1 -1
- package/dist/translations/bn.umd.js +5 -3
- package/dist/translations/bs.js +1 -1
- package/dist/translations/bs.umd.js +5 -3
- package/dist/translations/ca.js +1 -1
- package/dist/translations/ca.umd.js +5 -3
- package/dist/translations/cs.js +1 -1
- package/dist/translations/cs.umd.js +5 -3
- package/dist/translations/da.js +1 -1
- package/dist/translations/da.umd.js +5 -3
- package/dist/translations/de-ch.js +1 -1
- package/dist/translations/de-ch.umd.js +5 -3
- package/dist/translations/de.js +1 -1
- package/dist/translations/de.umd.js +5 -3
- package/dist/translations/el.js +1 -1
- package/dist/translations/el.umd.js +5 -3
- package/dist/translations/en-au.js +1 -1
- package/dist/translations/en-au.umd.js +5 -3
- package/dist/translations/en-gb.js +1 -1
- package/dist/translations/en-gb.umd.js +5 -3
- package/dist/translations/en.js +1 -1
- package/dist/translations/en.umd.js +5 -3
- package/dist/translations/eo.js +1 -1
- package/dist/translations/eo.umd.js +5 -3
- package/dist/translations/es-co.js +1 -1
- package/dist/translations/es-co.umd.js +5 -3
- package/dist/translations/es.js +1 -1
- package/dist/translations/es.umd.js +5 -3
- package/dist/translations/et.js +1 -1
- package/dist/translations/et.umd.js +5 -3
- package/dist/translations/eu.js +1 -1
- package/dist/translations/eu.umd.js +5 -3
- package/dist/translations/fa.js +1 -1
- package/dist/translations/fa.umd.js +5 -3
- package/dist/translations/fi.js +1 -1
- package/dist/translations/fi.umd.js +5 -3
- package/dist/translations/fr.js +1 -1
- package/dist/translations/fr.umd.js +5 -3
- package/dist/translations/gl.js +1 -1
- package/dist/translations/gl.umd.js +5 -3
- package/dist/translations/gu.js +1 -1
- package/dist/translations/gu.umd.js +5 -3
- package/dist/translations/he.js +1 -1
- package/dist/translations/he.umd.js +5 -3
- package/dist/translations/hi.js +1 -1
- package/dist/translations/hi.umd.js +5 -3
- package/dist/translations/hr.js +1 -1
- package/dist/translations/hr.umd.js +5 -3
- package/dist/translations/hu.js +1 -1
- package/dist/translations/hu.umd.js +5 -3
- package/dist/translations/hy.js +1 -1
- package/dist/translations/hy.umd.js +5 -3
- package/dist/translations/id.js +1 -1
- package/dist/translations/id.umd.js +5 -3
- package/dist/translations/it.js +1 -1
- package/dist/translations/it.umd.js +5 -3
- package/dist/translations/ja.js +1 -1
- package/dist/translations/ja.umd.js +5 -3
- package/dist/translations/jv.js +1 -1
- package/dist/translations/jv.umd.js +5 -3
- package/dist/translations/kk.js +1 -1
- package/dist/translations/kk.umd.js +5 -3
- package/dist/translations/km.js +1 -1
- package/dist/translations/km.umd.js +5 -3
- package/dist/translations/kn.js +1 -1
- package/dist/translations/kn.umd.js +5 -3
- package/dist/translations/ko.js +1 -1
- package/dist/translations/ko.umd.js +5 -3
- package/dist/translations/ku.js +1 -1
- package/dist/translations/ku.umd.js +5 -3
- package/dist/translations/lt.js +1 -1
- package/dist/translations/lt.umd.js +5 -3
- package/dist/translations/lv.js +1 -1
- package/dist/translations/lv.umd.js +5 -3
- package/dist/translations/ms.js +1 -1
- package/dist/translations/ms.umd.js +5 -3
- package/dist/translations/nb.js +1 -1
- package/dist/translations/nb.umd.js +5 -3
- package/dist/translations/ne.js +1 -1
- package/dist/translations/ne.umd.js +5 -3
- package/dist/translations/nl.js +1 -1
- package/dist/translations/nl.umd.js +5 -3
- package/dist/translations/no.js +1 -1
- package/dist/translations/no.umd.js +5 -3
- package/dist/translations/oc.js +1 -1
- package/dist/translations/oc.umd.js +5 -3
- package/dist/translations/pl.js +1 -1
- package/dist/translations/pl.umd.js +5 -3
- package/dist/translations/pt-br.js +1 -1
- package/dist/translations/pt-br.umd.js +5 -3
- package/dist/translations/pt.js +1 -1
- package/dist/translations/pt.umd.js +5 -3
- package/dist/translations/ro.js +1 -1
- package/dist/translations/ro.umd.js +5 -3
- package/dist/translations/ru.js +1 -1
- package/dist/translations/ru.umd.js +5 -3
- package/dist/translations/si.js +1 -1
- package/dist/translations/si.umd.js +5 -3
- package/dist/translations/sk.js +1 -1
- package/dist/translations/sk.umd.js +5 -3
- package/dist/translations/sl.js +1 -1
- package/dist/translations/sl.umd.js +5 -3
- package/dist/translations/sq.js +1 -1
- package/dist/translations/sq.umd.js +5 -3
- package/dist/translations/sr-latn.js +1 -1
- package/dist/translations/sr-latn.umd.js +5 -3
- package/dist/translations/sr.js +1 -1
- package/dist/translations/sr.umd.js +5 -3
- package/dist/translations/sv.js +1 -1
- package/dist/translations/sv.umd.js +5 -3
- package/dist/translations/th.js +1 -1
- package/dist/translations/th.umd.js +5 -3
- package/dist/translations/ti.js +1 -1
- package/dist/translations/ti.umd.js +5 -3
- package/dist/translations/tk.js +1 -1
- package/dist/translations/tk.umd.js +5 -3
- package/dist/translations/tr.js +1 -1
- package/dist/translations/tr.umd.js +5 -3
- package/dist/translations/tt.js +1 -1
- package/dist/translations/tt.umd.js +5 -3
- package/dist/translations/ug.js +1 -1
- package/dist/translations/ug.umd.js +5 -3
- package/dist/translations/uk.js +1 -1
- package/dist/translations/uk.umd.js +5 -3
- package/dist/translations/ur.js +1 -1
- package/dist/translations/ur.umd.js +5 -3
- package/dist/translations/uz.js +1 -1
- package/dist/translations/uz.umd.js +5 -3
- package/dist/translations/vi.js +1 -1
- package/dist/translations/vi.umd.js +5 -3
- package/dist/translations/zh-cn.js +1 -1
- package/dist/translations/zh-cn.umd.js +5 -3
- package/dist/translations/zh.js +1 -1
- package/dist/translations/zh.umd.js +5 -3
- package/dist/view.d.ts +384 -388
- package/dist/viewcollection.d.ts +134 -134
- package/package.json +8 -7
|
@@ -0,0 +1,210 @@
|
|
|
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
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* @module ui/overlayhost
|
|
7
|
+
*/
|
|
8
|
+
import { BodyCollection } from "./editorui/bodycollection.js";
|
|
9
|
+
import { TooltipManager } from "./tooltipmanager.js";
|
|
10
|
+
import { ShadowRootRegistry, type Emitter, type EmitterMixinConstructor, type Locale } from "@ckeditor/ckeditor5-utils";
|
|
11
|
+
declare const OverlayHostBase: EmitterMixinConstructor;
|
|
12
|
+
/**
|
|
13
|
+
* Keeps a feature's floating UI – its balloons, dialogs, panels and the tooltips inside them – in the right DOM
|
|
14
|
+
* tree, and keeps it there as the feature moves.
|
|
15
|
+
*
|
|
16
|
+
* For a feature that renders its UI *outside* an editor, in a container the integrator may put anywhere,
|
|
17
|
+
* including inside a shadow root. An editor's own floating UI needs none of this: it is mounted in the root the
|
|
18
|
+
* editor lives in and stays there.
|
|
19
|
+
*
|
|
20
|
+
* # Why it is needed
|
|
21
|
+
*
|
|
22
|
+
* Floating UI is mounted through a {@link module:ui/editorui/bodycollection~BodyCollection}, and it has to go
|
|
23
|
+
* into the same tree as the feature it belongs to. Anywhere else it loses the styles scoped to that tree, and
|
|
24
|
+
* its tooltips come out clipped or mis-styled across the shadow boundary.
|
|
25
|
+
*
|
|
26
|
+
* Doing that by hand means re-mounting the collection whenever the container moves, unmounting it while the
|
|
27
|
+
* container is detached, registering and unregistering it with the shared
|
|
28
|
+
* {@link module:ui/tooltipmanager~TooltipManager}, tracking the shadow roots of the inline UI so that tooltips
|
|
29
|
+
* and click-outside detection reach across boundaries, and tearing it all down in the right order. This class
|
|
30
|
+
* does all of it, behind resolvers that say where the feature's UI currently is.
|
|
31
|
+
*
|
|
32
|
+
* # How to use it
|
|
33
|
+
*
|
|
34
|
+
* ```ts
|
|
35
|
+
* const host = new OverlayHost( locale, {
|
|
36
|
+
* resolveMountTarget: () => getOverlayMountRoot( featureContainer ),
|
|
37
|
+
* resolveInlineContainer: () => featureContainer
|
|
38
|
+
* } );
|
|
39
|
+
*
|
|
40
|
+
* host.sync();
|
|
41
|
+
* host.bodyCollection.add( balloonPanelView );
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* Add the feature's floating views to {@link #bodyCollection}. Call {@link #sync} whenever the container may
|
|
45
|
+
* have moved – right before showing a panel, for instance – and {@link #destroy} once the feature goes away.
|
|
46
|
+
* It re-syncs on its own too: whenever a view is added to the collection, and on every `update` event of an
|
|
47
|
+
* {@link module:ui/overlayhost~OverlayHostOptions#updateEmitter `updateEmitter`}, if one is given.
|
|
48
|
+
*
|
|
49
|
+
* An editor's {@link module:ui/editorui/editorui~EditorUI} uses this class as well, lending it the body
|
|
50
|
+
* collection and shadow root registry it already has.
|
|
51
|
+
*/
|
|
52
|
+
export declare class OverlayHost extends OverlayHostBase {
|
|
53
|
+
/**
|
|
54
|
+
* The body collection holding the floating views. Add the feature's balloons and panels here.
|
|
55
|
+
*/
|
|
56
|
+
readonly bodyCollection: BodyCollection;
|
|
57
|
+
/**
|
|
58
|
+
* Tracks the shadow roots hosting the tooltip-bearing UI that lives outside the {@link #bodyCollection}:
|
|
59
|
+
* the {@link module:ui/overlayhost~OverlayHostOptions#resolveInlineContainer inline UI container} and any
|
|
60
|
+
* nodes registered directly by the owner (an editor registers its editables, toolbars and menu bar).
|
|
61
|
+
*/
|
|
62
|
+
readonly shadowRootRegistry: ShadowRootRegistry;
|
|
63
|
+
/**
|
|
64
|
+
* The shared tooltip manager the {@link #bodyCollection} is registered with.
|
|
65
|
+
*/
|
|
66
|
+
private readonly _tooltipManager;
|
|
67
|
+
/**
|
|
68
|
+
* See {@link module:ui/overlayhost~OverlayHostOptions#resolveMountTarget}.
|
|
69
|
+
*/
|
|
70
|
+
private readonly _resolveMountTarget;
|
|
71
|
+
/**
|
|
72
|
+
* See {@link module:ui/overlayhost~OverlayHostOptions#resolveInlineContainer}.
|
|
73
|
+
*/
|
|
74
|
+
private readonly _resolveInlineContainer?;
|
|
75
|
+
/**
|
|
76
|
+
* The inline UI container currently registered with {@link #shadowRootRegistry}, so it can be
|
|
77
|
+
* replaced when the feature moves to a different container.
|
|
78
|
+
*/
|
|
79
|
+
private _registeredInlineContainer;
|
|
80
|
+
/**
|
|
81
|
+
* Whether the {@link #bodyCollection} was created by this host (and is destroyed with it), as opposed to
|
|
82
|
+
* a borrowed one whose owner manages its life cycle.
|
|
83
|
+
*/
|
|
84
|
+
private readonly _ownsBodyCollection;
|
|
85
|
+
/**
|
|
86
|
+
* Whether the {@link #shadowRootRegistry} was created by this host (and is destroyed with it), as opposed
|
|
87
|
+
* to a borrowed one whose owner manages its life cycle.
|
|
88
|
+
*/
|
|
89
|
+
private readonly _ownsShadowRootRegistry;
|
|
90
|
+
/**
|
|
91
|
+
* Whether this host acquired its own reference to the shared tooltip manager (and releases it on
|
|
92
|
+
* {@link #destroy}), as opposed to using a borrowed reference whose holder releases it – an editor counts
|
|
93
|
+
* as a single holder no matter how it splits the work internally.
|
|
94
|
+
*/
|
|
95
|
+
private readonly _ownsTooltipManagerReference;
|
|
96
|
+
/**
|
|
97
|
+
* Whether {@link #destroy} has run, so a repeated call does not release the shared tooltip manager on
|
|
98
|
+
* behalf of another holder.
|
|
99
|
+
*/
|
|
100
|
+
private _destroyed;
|
|
101
|
+
/**
|
|
102
|
+
* Creates the host: the {@link #bodyCollection} (unless a borrowed one is given) and its registration in
|
|
103
|
+
* the shared {@link module:ui/tooltipmanager~TooltipManager}. The collection is not mounted in the DOM
|
|
104
|
+
* yet – call {@link #sync} for that.
|
|
105
|
+
*
|
|
106
|
+
* @param locale The locale of the feature (used by the body collection and the tooltip views).
|
|
107
|
+
* @param options The resolvers describing where the feature UI lives.
|
|
108
|
+
*/
|
|
109
|
+
constructor(locale: Locale, options: OverlayHostOptions);
|
|
110
|
+
/**
|
|
111
|
+
* Brings the host up to date with the resolved targets:
|
|
112
|
+
*
|
|
113
|
+
* * keeps the {@link #bodyCollection} mounted in the target resolved by
|
|
114
|
+
* {@link module:ui/overlayhost~OverlayHostOptions#resolveMountTarget} (re-mounting only when the target
|
|
115
|
+
* changes, unmounting on `null`);
|
|
116
|
+
* * keeps the {@link module:ui/overlayhost~OverlayHostOptions#resolveInlineContainer inline UI container}
|
|
117
|
+
* tracked for tooltips, re-resolving its shadow root in case a detached container has become connected.
|
|
118
|
+
*
|
|
119
|
+
* Idempotent – call it whenever the targets may have changed: after attaching the feature to a container,
|
|
120
|
+
* right before showing a floating panel (an editor's UI may be mounted lazily), or on any relevant layout
|
|
121
|
+
* change.
|
|
122
|
+
*/
|
|
123
|
+
sync(): void;
|
|
124
|
+
/**
|
|
125
|
+
* Destroys the host: stops hosting tooltips in the {@link #bodyCollection}, releases the shared
|
|
126
|
+
* {@link module:ui/tooltipmanager~TooltipManager} (so it is destroyed with its last holder) and destroys
|
|
127
|
+
* the collection together with its views and the {@link #shadowRootRegistry} – except the borrowed ones,
|
|
128
|
+
* which their owners destroy. Safe to call more than once.
|
|
129
|
+
*/
|
|
130
|
+
destroy(): void;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* The configuration of an {@link module:ui/overlayhost~OverlayHost}: callbacks resolving where the feature UI
|
|
134
|
+
* lives, called on every {@link module:ui/overlayhost~OverlayHost#sync}, and optional borrowed collaborators.
|
|
135
|
+
*/
|
|
136
|
+
export interface OverlayHostOptions {
|
|
137
|
+
/**
|
|
138
|
+
* Resolves the element or shadow root the {@link module:ui/overlayhost~OverlayHost#bodyCollection} should
|
|
139
|
+
* be mounted in – that is, where the feature's floating views end up in the DOM. The collection is
|
|
140
|
+
* appended as a top-level child of this target, which should meet two requirements at once:
|
|
141
|
+
*
|
|
142
|
+
* * it adopts the same styles as the root the feature's UI lives in – typically a shadow root sharing that
|
|
143
|
+
* root's adopted stylesheets – so the floating views are styled like the rest of the feature's UI;
|
|
144
|
+
* * it sits at the end of `document.body`, both so that `overflow` on the ancestors between the feature
|
|
145
|
+
* and the document body cannot clip the floating UI, and so that it paints above the rest of the UI
|
|
146
|
+
* (DOM order decides paint order within a stacking context) instead of below it.
|
|
147
|
+
*
|
|
148
|
+
* A dedicated shadow root appended at the end of `document.body` that mirrors those styles satisfies both.
|
|
149
|
+
* The target is therefore not required to be the feature's own root, and to stay unclipped and on top it
|
|
150
|
+
* usually should not be nested inside the feature's container.
|
|
151
|
+
*
|
|
152
|
+
* Return `null` to keep the collection unmounted – for example while the feature's container is not
|
|
153
|
+
* connected to the document yet, so there is no root to resolve. The target is re-resolved on every
|
|
154
|
+
* {@link module:ui/overlayhost~OverlayHost#sync}, so the collection is re-mounted if the feature moves to a
|
|
155
|
+
* different root and unmounted once its container goes away.
|
|
156
|
+
*
|
|
157
|
+
* {@link module:utils/dom/getoverlaymountroot~getOverlayMountRoot} covers the common resolution from an
|
|
158
|
+
* anchor node (the feature's container): the anchor's shadow root when it lives in one, `document.body`
|
|
159
|
+
* in the light DOM, or `null` while the anchor is detached.
|
|
160
|
+
*/
|
|
161
|
+
resolveMountTarget: () => HTMLElement | ShadowRoot | null;
|
|
162
|
+
/**
|
|
163
|
+
* Resolves the DOM node holding the feature's *inline* UI – the parts the feature renders directly into
|
|
164
|
+
* its own container (buttons, badges, and similar), as opposed to the floating views it puts into the
|
|
165
|
+
* {@link module:ui/overlayhost~OverlayHost#bodyCollection}. Usually the container element itself, but it
|
|
166
|
+
* may also be a shadow root, when that root is all the feature knows of the tree its inline UI lives in.
|
|
167
|
+
*
|
|
168
|
+
* The host registers this node with its {@link module:ui/overlayhost~OverlayHost#shadowRootRegistry} so
|
|
169
|
+
* the shared {@link module:ui/tooltipmanager~TooltipManager} can drive the tooltips of that inline UI. This
|
|
170
|
+
* matters when the inline UI sits inside a shadow root: in events observed at the document level the
|
|
171
|
+
* elements inside the root are hidden behind their shadow host, so the tooltip manager has to attach its
|
|
172
|
+
* listeners inside each registered root – without this node being registered, the tooltips of the
|
|
173
|
+
* feature's inline UI would never fire. The node is re-resolved on every
|
|
174
|
+
* {@link module:ui/overlayhost~OverlayHost#sync}, so the registration follows the feature if it moves to a
|
|
175
|
+
* different container.
|
|
176
|
+
*
|
|
177
|
+
* Omit it when the feature has no tooltip-bearing UI outside the body collection, or when those nodes are
|
|
178
|
+
* registered directly with the {@link module:ui/overlayhost~OverlayHost#shadowRootRegistry} instead.
|
|
179
|
+
*/
|
|
180
|
+
resolveInlineContainer?: () => HTMLElement | ShadowRoot | null | undefined;
|
|
181
|
+
/**
|
|
182
|
+
* An existing body collection to host instead of creating one – used by
|
|
183
|
+
* {@link module:ui/editorui/editorui~EditorUI}, whose collection belongs to the
|
|
184
|
+
* {@link module:ui/editorui/editoruiview~EditorUIView}. A borrowed collection is not destroyed by
|
|
185
|
+
* {@link module:ui/overlayhost~OverlayHost#destroy}; its owner destroys it.
|
|
186
|
+
*/
|
|
187
|
+
bodyCollection?: BodyCollection;
|
|
188
|
+
/**
|
|
189
|
+
* An existing shadow root registry to use instead of creating one – used by
|
|
190
|
+
* {@link module:ui/editorui/editorui~EditorUI}, which feeds its registry from many places (editables,
|
|
191
|
+
* toolbars, the menu bar) and shares it with other features. A borrowed registry is not destroyed by
|
|
192
|
+
* {@link module:ui/overlayhost~OverlayHost#destroy}; its owner destroys it.
|
|
193
|
+
*/
|
|
194
|
+
shadowRootRegistry?: ShadowRootRegistry;
|
|
195
|
+
/**
|
|
196
|
+
* A borrowed reference to the shared tooltip manager to register the body collection with, instead of the
|
|
197
|
+
* host {@link module:ui/tooltipmanager~TooltipManager.for acquiring} (and on destroy
|
|
198
|
+
* {@link module:ui/tooltipmanager~TooltipManager#release releasing}) a reference of its own – used by
|
|
199
|
+
* {@link module:ui/editorui/editorui~EditorUI}, so an editor keeps counting as a single holder of the
|
|
200
|
+
* singleton. The holder of the borrowed reference releases it.
|
|
201
|
+
*/
|
|
202
|
+
tooltipManager?: TooltipManager;
|
|
203
|
+
/**
|
|
204
|
+
* An emitter whose `update` event signals that the UI may have moved or re-rendered (an editor passes its
|
|
205
|
+
* {@link module:ui/editorui/editorui~EditorUI}). The host {@link module:ui/overlayhost~OverlayHost#sync
|
|
206
|
+
* re-syncs} on every such event and the shared tooltip manager repositions a pinned tooltip.
|
|
207
|
+
*/
|
|
208
|
+
updateEmitter?: Emitter;
|
|
209
|
+
}
|
|
210
|
+
export {};
|