@ckeditor/ckeditor5-ui 47.6.1 → 48.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.
- package/LICENSE.md +1 -1
- package/ckeditor5-metadata.json +3 -3
- package/{src → dist}/colorselector/documentcolorcollection.d.ts +4 -4
- package/{src → dist}/dialog/dialog.d.ts +1 -1
- package/dist/index-editor.css +2728 -587
- package/dist/index.css +2673 -850
- package/dist/index.css.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/{src → dist}/menubar/menubarmenuview.d.ts +4 -0
- package/{src → dist}/view.d.ts +1 -1
- package/package.json +25 -47
- package/lang/contexts.json +0 -51
- package/lang/translations/af.po +0 -208
- package/lang/translations/ar.po +0 -208
- package/lang/translations/ast.po +0 -208
- package/lang/translations/az.po +0 -208
- package/lang/translations/be.po +0 -208
- package/lang/translations/bg.po +0 -208
- package/lang/translations/bn.po +0 -208
- package/lang/translations/bs.po +0 -208
- package/lang/translations/ca.po +0 -208
- package/lang/translations/cs.po +0 -208
- package/lang/translations/da.po +0 -208
- package/lang/translations/de-ch.po +0 -208
- package/lang/translations/de.po +0 -208
- package/lang/translations/el.po +0 -208
- package/lang/translations/en-au.po +0 -208
- package/lang/translations/en-gb.po +0 -208
- package/lang/translations/en.po +0 -208
- package/lang/translations/eo.po +0 -208
- package/lang/translations/es-co.po +0 -208
- package/lang/translations/es.po +0 -208
- package/lang/translations/et.po +0 -208
- package/lang/translations/eu.po +0 -208
- package/lang/translations/fa.po +0 -208
- package/lang/translations/fi.po +0 -208
- package/lang/translations/fr.po +0 -208
- package/lang/translations/gl.po +0 -208
- package/lang/translations/gu.po +0 -208
- package/lang/translations/he.po +0 -208
- package/lang/translations/hi.po +0 -208
- package/lang/translations/hr.po +0 -208
- package/lang/translations/hu.po +0 -208
- package/lang/translations/hy.po +0 -208
- package/lang/translations/id.po +0 -208
- package/lang/translations/it.po +0 -208
- package/lang/translations/ja.po +0 -208
- package/lang/translations/jv.po +0 -208
- package/lang/translations/kk.po +0 -208
- package/lang/translations/km.po +0 -208
- package/lang/translations/kn.po +0 -208
- package/lang/translations/ko.po +0 -208
- package/lang/translations/ku.po +0 -208
- package/lang/translations/lt.po +0 -208
- package/lang/translations/lv.po +0 -208
- package/lang/translations/ms.po +0 -208
- package/lang/translations/nb.po +0 -208
- package/lang/translations/ne.po +0 -208
- package/lang/translations/nl.po +0 -208
- package/lang/translations/no.po +0 -208
- package/lang/translations/oc.po +0 -208
- package/lang/translations/pl.po +0 -208
- package/lang/translations/pt-br.po +0 -208
- package/lang/translations/pt.po +0 -208
- package/lang/translations/ro.po +0 -208
- package/lang/translations/ru.po +0 -208
- package/lang/translations/si.po +0 -208
- package/lang/translations/sk.po +0 -208
- package/lang/translations/sl.po +0 -208
- package/lang/translations/sq.po +0 -208
- package/lang/translations/sr-latn.po +0 -208
- package/lang/translations/sr.po +0 -208
- package/lang/translations/sv.po +0 -208
- package/lang/translations/th.po +0 -208
- package/lang/translations/ti.po +0 -208
- package/lang/translations/tk.po +0 -208
- package/lang/translations/tr.po +0 -208
- package/lang/translations/tt.po +0 -208
- package/lang/translations/ug.po +0 -208
- package/lang/translations/uk.po +0 -208
- package/lang/translations/ur.po +0 -208
- package/lang/translations/uz.po +0 -208
- package/lang/translations/vi.po +0 -208
- package/lang/translations/zh-cn.po +0 -208
- package/lang/translations/zh.po +0 -208
- package/src/arialiveannouncer.js +0 -189
- package/src/augmentation.js +0 -5
- package/src/autocomplete/autocompleteview.js +0 -157
- package/src/badge/badge.js +0 -226
- package/src/bindings/addkeyboardhandlingforgrid.js +0 -107
- package/src/bindings/clickoutsidehandler.js +0 -36
- package/src/bindings/csstransitiondisablermixin.js +0 -58
- package/src/bindings/draggableviewmixin.js +0 -144
- package/src/bindings/preventdefault.js +0 -35
- package/src/bindings/submithandler.js +0 -47
- package/src/button/button.js +0 -5
- package/src/button/buttonlabel.js +0 -5
- package/src/button/buttonlabelview.js +0 -42
- package/src/button/buttonview.js +0 -278
- package/src/button/filedialogbuttonview.js +0 -147
- package/src/button/listitembuttonview.js +0 -136
- package/src/button/switchbuttonview.js +0 -79
- package/src/collapsible/collapsibleview.js +0 -106
- package/src/colorgrid/colorgridview.js +0 -140
- package/src/colorgrid/colortileview.js +0 -42
- package/src/colorgrid/utils.js +0 -84
- package/src/colorpicker/colorpickerview.js +0 -356
- package/src/colorpicker/utils.js +0 -108
- package/src/colorselector/colorgridsfragmentview.js +0 -368
- package/src/colorselector/colorpickerfragmentview.js +0 -254
- package/src/colorselector/colorselectorview.js +0 -294
- package/src/colorselector/documentcolorcollection.js +0 -42
- package/src/componentfactory.js +0 -108
- package/src/dialog/dialog.js +0 -325
- package/src/dialog/dialogactionsview.js +0 -118
- package/src/dialog/dialogcontentview.js +0 -39
- package/src/dialog/dialogview.js +0 -507
- package/src/dropdown/button/dropdownbutton.js +0 -5
- package/src/dropdown/button/dropdownbuttonview.js +0 -70
- package/src/dropdown/button/splitbuttonview.js +0 -178
- package/src/dropdown/dropdownpanelfocusable.js +0 -5
- package/src/dropdown/dropdownpanelview.js +0 -106
- package/src/dropdown/dropdownview.js +0 -438
- package/src/dropdown/menu/dropdownmenubehaviors.js +0 -125
- package/src/dropdown/menu/dropdownmenubuttonview.js +0 -69
- package/src/dropdown/menu/dropdownmenulistitembuttonview.js +0 -30
- package/src/dropdown/menu/dropdownmenulistitemview.js +0 -38
- package/src/dropdown/menu/dropdownmenulistview.js +0 -29
- package/src/dropdown/menu/dropdownmenunestedmenupanelview.js +0 -63
- package/src/dropdown/menu/dropdownmenunestedmenuview.js +0 -214
- package/src/dropdown/menu/dropdownmenurootlistview.js +0 -168
- package/src/dropdown/menu/utils.js +0 -61
- package/src/dropdown/utils.js +0 -654
- package/src/editableui/editableuiview.js +0 -130
- package/src/editableui/inline/inlineeditableuiview.js +0 -75
- package/src/editorui/accessibilityhelp/accessibilityhelp.js +0 -142
- package/src/editorui/accessibilityhelp/accessibilityhelpcontentview.js +0 -112
- package/src/editorui/bodycollection.js +0 -128
- package/src/editorui/boxed/boxededitoruiview.js +0 -95
- package/src/editorui/editorui.js +0 -586
- package/src/editorui/editoruiview.js +0 -60
- package/src/editorui/evaluationbadge.js +0 -99
- package/src/editorui/poweredby.js +0 -120
- package/src/focuscycler.js +0 -383
- package/src/formheader/formheaderview.js +0 -77
- package/src/formrow/formrowview.js +0 -56
- package/src/highlightedtext/buttonlabelwithhighlightview.js +0 -31
- package/src/highlightedtext/highlightedtextview.js +0 -102
- package/src/highlightedtext/labelwithhighlightview.js +0 -37
- package/src/icon/iconview.js +0 -123
- package/src/iframe/iframeview.js +0 -63
- package/src/index.js +0 -132
- package/src/input/inputbase.js +0 -119
- package/src/input/inputview.js +0 -24
- package/src/inputnumber/inputnumberview.js +0 -40
- package/src/inputtext/inputtextview.js +0 -27
- package/src/label/labelview.js +0 -46
- package/src/labeledfield/labeledfieldview.js +0 -177
- package/src/labeledfield/utils.js +0 -176
- package/src/labeledinput/labeledinputview.js +0 -138
- package/src/legacyerrors.js +0 -20
- package/src/list/listitemgroupview.js +0 -82
- package/src/list/listitemview.js +0 -46
- package/src/list/listseparatorview.js +0 -28
- package/src/list/listview.js +0 -210
- package/src/menubar/menubarmenubuttonview.js +0 -68
- package/src/menubar/menubarmenulistitembuttonview.js +0 -30
- package/src/menubar/menubarmenulistitemfiledialogbuttonview.js +0 -32
- package/src/menubar/menubarmenulistitemview.js +0 -34
- package/src/menubar/menubarmenulistview.js +0 -72
- package/src/menubar/menubarmenupanelview.js +0 -64
- package/src/menubar/menubarmenuview.js +0 -198
- package/src/menubar/menubarview.js +0 -281
- package/src/menubar/utils.js +0 -1432
- package/src/model.js +0 -31
- package/src/notification/notification.js +0 -192
- package/src/panel/balloon/balloonpanelview.js +0 -1077
- package/src/panel/balloon/contextualballoon.js +0 -616
- package/src/panel/sticky/stickypanelview.js +0 -246
- package/src/search/filteredview.js +0 -5
- package/src/search/filtergroupanditemnames.js +0 -38
- package/src/search/searchinfoview.js +0 -59
- package/src/search/searchresultsview.js +0 -83
- package/src/search/text/searchtextqueryview.js +0 -87
- package/src/search/text/searchtextview.js +0 -242
- package/src/spinner/spinnerview.js +0 -38
- package/src/template.js +0 -1396
- package/src/textarea/textareaview.js +0 -189
- package/src/toolbar/balloon/balloontoolbar.js +0 -358
- package/src/toolbar/block/blockbuttonview.js +0 -41
- package/src/toolbar/block/blocktoolbar.js +0 -507
- package/src/toolbar/normalizetoolbarconfig.js +0 -52
- package/src/toolbar/toolbarlinebreakview.js +0 -28
- package/src/toolbar/toolbarseparatorview.js +0 -28
- package/src/toolbar/toolbarview.js +0 -873
- package/src/tooltipmanager.js +0 -454
- package/src/view.js +0 -471
- package/src/viewcollection.js +0 -210
- package/theme/components/arialiveannouncer/arialiveannouncer.css +0 -14
- package/theme/components/autocomplete/autocomplete.css +0 -22
- package/theme/components/button/button.css +0 -39
- package/theme/components/button/listitembutton.css +0 -48
- package/theme/components/button/switchbutton.css +0 -14
- package/theme/components/collapsible/collapsible.css +0 -10
- package/theme/components/colorgrid/colorgrid.css +0 -8
- package/theme/components/colorpicker/colorpicker.css +0 -34
- package/theme/components/colorselector/colorselector.css +0 -35
- package/theme/components/dialog/dialog.css +0 -42
- package/theme/components/dialog/dialogactions.css +0 -11
- package/theme/components/dropdown/dropdown.css +0 -95
- package/theme/components/dropdown/listdropdown.css +0 -10
- package/theme/components/dropdown/menu/dropdownmenu.css +0 -8
- package/theme/components/dropdown/menu/dropdownmenubutton.css +0 -9
- package/theme/components/dropdown/menu/dropdownmenulistitem.css +0 -10
- package/theme/components/dropdown/menu/dropdownmenulistitembutton.css +0 -10
- package/theme/components/dropdown/menu/dropdownmenupanel.css +0 -11
- package/theme/components/dropdown/splitbutton.css +0 -14
- package/theme/components/dropdown/toolbardropdown.css +0 -20
- package/theme/components/editorui/accessibilityhelp.css +0 -10
- package/theme/components/editorui/editorui.css +0 -10
- package/theme/components/form/form.css +0 -87
- package/theme/components/formheader/formheader.css +0 -18
- package/theme/components/formrow/formrow.css +0 -32
- package/theme/components/highlightedtext/highlightedtext.css +0 -12
- package/theme/components/icon/icon.css +0 -8
- package/theme/components/input/input.css +0 -10
- package/theme/components/label/label.css +0 -12
- package/theme/components/labeledfield/labeledfieldview.css +0 -16
- package/theme/components/labeledinput/labeledinput.css +0 -10
- package/theme/components/list/list.css +0 -26
- package/theme/components/menubar/menubar.css +0 -10
- package/theme/components/menubar/menubarmenu.css +0 -9
- package/theme/components/menubar/menubarmenubutton.css +0 -11
- package/theme/components/menubar/menubarmenulistitem.css +0 -10
- package/theme/components/menubar/menubarmenulistitembutton.css +0 -10
- package/theme/components/menubar/menubarmenupanel.css +0 -62
- package/theme/components/panel/balloonpanel.css +0 -56
- package/theme/components/panel/balloonrotator.css +0 -17
- package/theme/components/panel/fakepanel.css +0 -23
- package/theme/components/panel/stickypanel.css +0 -17
- package/theme/components/responsive-form/responsiveform.css +0 -42
- package/theme/components/search/search.css +0 -43
- package/theme/components/spinner/spinner.css +0 -23
- package/theme/components/textarea/textarea.css +0 -10
- package/theme/components/toolbar/blocktoolbar.css +0 -9
- package/theme/components/toolbar/toolbar.css +0 -58
- package/theme/components/tooltip/tooltip.css +0 -12
- package/theme/globals/_evaluationbadge.css +0 -54
- package/theme/globals/_hidden.css +0 -13
- package/theme/globals/_poweredby.css +0 -84
- package/theme/globals/_transition.css +0 -12
- package/theme/globals/_zindex.css +0 -10
- package/theme/globals/globals.css +0 -10
- package/theme/mixins/_dir.css +0 -10
- package/theme/mixins/_mediacolors.css +0 -20
- package/theme/mixins/_rwd.css +0 -10
- package/theme/mixins/_unselectable.css +0 -14
- /package/{src → dist}/arialiveannouncer.d.ts +0 -0
- /package/{src → dist}/augmentation.d.ts +0 -0
- /package/{src → dist}/autocomplete/autocompleteview.d.ts +0 -0
- /package/{src → dist}/badge/badge.d.ts +0 -0
- /package/{src → dist}/bindings/addkeyboardhandlingforgrid.d.ts +0 -0
- /package/{src → dist}/bindings/clickoutsidehandler.d.ts +0 -0
- /package/{src → dist}/bindings/csstransitiondisablermixin.d.ts +0 -0
- /package/{src → dist}/bindings/draggableviewmixin.d.ts +0 -0
- /package/{src → dist}/bindings/preventdefault.d.ts +0 -0
- /package/{src → dist}/bindings/submithandler.d.ts +0 -0
- /package/{src → dist}/button/button.d.ts +0 -0
- /package/{src → dist}/button/buttonlabel.d.ts +0 -0
- /package/{src → dist}/button/buttonlabelview.d.ts +0 -0
- /package/{src → dist}/button/buttonview.d.ts +0 -0
- /package/{src → dist}/button/filedialogbuttonview.d.ts +0 -0
- /package/{src → dist}/button/listitembuttonview.d.ts +0 -0
- /package/{src → dist}/button/switchbuttonview.d.ts +0 -0
- /package/{src → dist}/collapsible/collapsibleview.d.ts +0 -0
- /package/{src → dist}/colorgrid/colorgridview.d.ts +0 -0
- /package/{src → dist}/colorgrid/colortileview.d.ts +0 -0
- /package/{src → dist}/colorgrid/utils.d.ts +0 -0
- /package/{src → dist}/colorpicker/colorpickerview.d.ts +0 -0
- /package/{src → dist}/colorpicker/utils.d.ts +0 -0
- /package/{src → dist}/colorselector/colorgridsfragmentview.d.ts +0 -0
- /package/{src → dist}/colorselector/colorpickerfragmentview.d.ts +0 -0
- /package/{src → dist}/colorselector/colorselectorview.d.ts +0 -0
- /package/{src → dist}/componentfactory.d.ts +0 -0
- /package/{src → dist}/dialog/dialogactionsview.d.ts +0 -0
- /package/{src → dist}/dialog/dialogcontentview.d.ts +0 -0
- /package/{src → dist}/dialog/dialogview.d.ts +0 -0
- /package/{src → dist}/dropdown/button/dropdownbutton.d.ts +0 -0
- /package/{src → dist}/dropdown/button/dropdownbuttonview.d.ts +0 -0
- /package/{src → dist}/dropdown/button/splitbuttonview.d.ts +0 -0
- /package/{src → dist}/dropdown/dropdownpanelfocusable.d.ts +0 -0
- /package/{src → dist}/dropdown/dropdownpanelview.d.ts +0 -0
- /package/{src → dist}/dropdown/dropdownview.d.ts +0 -0
- /package/{src → dist}/dropdown/menu/dropdownmenubehaviors.d.ts +0 -0
- /package/{src → dist}/dropdown/menu/dropdownmenubuttonview.d.ts +0 -0
- /package/{src → dist}/dropdown/menu/dropdownmenulistitembuttonview.d.ts +0 -0
- /package/{src → dist}/dropdown/menu/dropdownmenulistitemview.d.ts +0 -0
- /package/{src → dist}/dropdown/menu/dropdownmenulistview.d.ts +0 -0
- /package/{src → dist}/dropdown/menu/dropdownmenunestedmenupanelview.d.ts +0 -0
- /package/{src → dist}/dropdown/menu/dropdownmenunestedmenuview.d.ts +0 -0
- /package/{src → dist}/dropdown/menu/dropdownmenurootlistview.d.ts +0 -0
- /package/{src → dist}/dropdown/menu/utils.d.ts +0 -0
- /package/{src → dist}/dropdown/utils.d.ts +0 -0
- /package/{src → dist}/editableui/editableuiview.d.ts +0 -0
- /package/{src → dist}/editableui/inline/inlineeditableuiview.d.ts +0 -0
- /package/{src → dist}/editorui/accessibilityhelp/accessibilityhelp.d.ts +0 -0
- /package/{src → dist}/editorui/accessibilityhelp/accessibilityhelpcontentview.d.ts +0 -0
- /package/{src → dist}/editorui/bodycollection.d.ts +0 -0
- /package/{src → dist}/editorui/boxed/boxededitoruiview.d.ts +0 -0
- /package/{src → dist}/editorui/editorui.d.ts +0 -0
- /package/{src → dist}/editorui/editoruiview.d.ts +0 -0
- /package/{src → dist}/editorui/evaluationbadge.d.ts +0 -0
- /package/{src → dist}/editorui/poweredby.d.ts +0 -0
- /package/{src → dist}/focuscycler.d.ts +0 -0
- /package/{src → dist}/formheader/formheaderview.d.ts +0 -0
- /package/{src → dist}/formrow/formrowview.d.ts +0 -0
- /package/{src → dist}/highlightedtext/buttonlabelwithhighlightview.d.ts +0 -0
- /package/{src → dist}/highlightedtext/highlightedtextview.d.ts +0 -0
- /package/{src → dist}/highlightedtext/labelwithhighlightview.d.ts +0 -0
- /package/{src → dist}/icon/iconview.d.ts +0 -0
- /package/{src → dist}/iframe/iframeview.d.ts +0 -0
- /package/{src → dist}/index.d.ts +0 -0
- /package/{src → dist}/input/inputbase.d.ts +0 -0
- /package/{src → dist}/input/inputview.d.ts +0 -0
- /package/{src → dist}/inputnumber/inputnumberview.d.ts +0 -0
- /package/{src → dist}/inputtext/inputtextview.d.ts +0 -0
- /package/{src → dist}/label/labelview.d.ts +0 -0
- /package/{src → dist}/labeledfield/labeledfieldview.d.ts +0 -0
- /package/{src → dist}/labeledfield/utils.d.ts +0 -0
- /package/{src → dist}/labeledinput/labeledinputview.d.ts +0 -0
- /package/{src → dist}/legacyerrors.d.ts +0 -0
- /package/{src → dist}/list/listitemgroupview.d.ts +0 -0
- /package/{src → dist}/list/listitemview.d.ts +0 -0
- /package/{src → dist}/list/listseparatorview.d.ts +0 -0
- /package/{src → dist}/list/listview.d.ts +0 -0
- /package/{src → dist}/menubar/menubarmenubuttonview.d.ts +0 -0
- /package/{src → dist}/menubar/menubarmenulistitembuttonview.d.ts +0 -0
- /package/{src → dist}/menubar/menubarmenulistitemfiledialogbuttonview.d.ts +0 -0
- /package/{src → dist}/menubar/menubarmenulistitemview.d.ts +0 -0
- /package/{src → dist}/menubar/menubarmenulistview.d.ts +0 -0
- /package/{src → dist}/menubar/menubarmenupanelview.d.ts +0 -0
- /package/{src → dist}/menubar/menubarview.d.ts +0 -0
- /package/{src → dist}/menubar/utils.d.ts +0 -0
- /package/{src → dist}/model.d.ts +0 -0
- /package/{src → dist}/notification/notification.d.ts +0 -0
- /package/{src → dist}/panel/balloon/balloonpanelview.d.ts +0 -0
- /package/{src → dist}/panel/balloon/contextualballoon.d.ts +0 -0
- /package/{src → dist}/panel/sticky/stickypanelview.d.ts +0 -0
- /package/{src → dist}/search/filteredview.d.ts +0 -0
- /package/{src → dist}/search/filtergroupanditemnames.d.ts +0 -0
- /package/{src → dist}/search/searchinfoview.d.ts +0 -0
- /package/{src → dist}/search/searchresultsview.d.ts +0 -0
- /package/{src → dist}/search/text/searchtextqueryview.d.ts +0 -0
- /package/{src → dist}/search/text/searchtextview.d.ts +0 -0
- /package/{src → dist}/spinner/spinnerview.d.ts +0 -0
- /package/{src → dist}/template.d.ts +0 -0
- /package/{src → dist}/textarea/textareaview.d.ts +0 -0
- /package/{src → dist}/toolbar/balloon/balloontoolbar.d.ts +0 -0
- /package/{src → dist}/toolbar/block/blockbuttonview.d.ts +0 -0
- /package/{src → dist}/toolbar/block/blocktoolbar.d.ts +0 -0
- /package/{src → dist}/toolbar/normalizetoolbarconfig.d.ts +0 -0
- /package/{src → dist}/toolbar/toolbarlinebreakview.d.ts +0 -0
- /package/{src → dist}/toolbar/toolbarseparatorview.d.ts +0 -0
- /package/{src → dist}/toolbar/toolbarview.d.ts +0 -0
- /package/{src → dist}/tooltipmanager.d.ts +0 -0
- /package/{src → dist}/viewcollection.d.ts +0 -0
|
@@ -1,29 +0,0 @@
|
|
|
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
|
-
import { ListView } from '../../list/listview.js';
|
|
6
|
-
/**
|
|
7
|
-
* Represents a dropdown menu list view.
|
|
8
|
-
*/
|
|
9
|
-
export class DropdownMenuListView extends ListView {
|
|
10
|
-
/**
|
|
11
|
-
* Creates an instance of the dropdown menu list view.
|
|
12
|
-
*
|
|
13
|
-
* @param locale The localization services instance.
|
|
14
|
-
*/
|
|
15
|
-
constructor(locale) {
|
|
16
|
-
super(locale);
|
|
17
|
-
const bind = this.bindTemplate;
|
|
18
|
-
this.role = 'menu';
|
|
19
|
-
this.set('isVisible', true);
|
|
20
|
-
this.extendTemplate({
|
|
21
|
-
attributes: {
|
|
22
|
-
class: [
|
|
23
|
-
'ck-dropdown-menu-list',
|
|
24
|
-
bind.if('isVisible', 'ck-hidden', value => !value)
|
|
25
|
-
]
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
}
|
|
@@ -1,63 +0,0 @@
|
|
|
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
|
-
import { BalloonPanelView } from '../../panel/balloon/balloonpanelview.js';
|
|
6
|
-
import '../../../theme/components/dropdown/menu/dropdownmenupanel.css';
|
|
7
|
-
/**
|
|
8
|
-
* Represents the view for the dropdown menu panel.
|
|
9
|
-
*/
|
|
10
|
-
export class DropdownMenuNestedMenuPanelView extends BalloonPanelView {
|
|
11
|
-
/**
|
|
12
|
-
* Creates an instance of the menu panel view.
|
|
13
|
-
*
|
|
14
|
-
* @param locale The localization services instance.
|
|
15
|
-
*/
|
|
16
|
-
constructor(locale) {
|
|
17
|
-
super(locale);
|
|
18
|
-
const bind = this.bindTemplate;
|
|
19
|
-
this.set({
|
|
20
|
-
isVisible: false,
|
|
21
|
-
position: 'se',
|
|
22
|
-
class: null,
|
|
23
|
-
top: 0,
|
|
24
|
-
left: 0
|
|
25
|
-
});
|
|
26
|
-
this.extendTemplate({
|
|
27
|
-
tag: 'div',
|
|
28
|
-
attributes: {
|
|
29
|
-
class: [
|
|
30
|
-
'ck-reset',
|
|
31
|
-
'ck-dropdown-menu__nested-menu__panel'
|
|
32
|
-
],
|
|
33
|
-
tabindex: '-1'
|
|
34
|
-
},
|
|
35
|
-
on: {
|
|
36
|
-
// Drag and drop in the panel should not break the selection in the editor.
|
|
37
|
-
// https://github.com/ckeditor/ckeditor5-ui/issues/228
|
|
38
|
-
selectstart: bind.to(evt => {
|
|
39
|
-
if (evt.target.tagName.toLocaleLowerCase() === 'input') {
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
evt.preventDefault();
|
|
43
|
-
})
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Focuses the first child of the panel (default) or the last one if the `direction` is `-1`.
|
|
49
|
-
*
|
|
50
|
-
* @param direction The direction to focus. Default is `1`.
|
|
51
|
-
*/
|
|
52
|
-
focus(direction = 1) {
|
|
53
|
-
const { content } = this;
|
|
54
|
-
if (content.length) {
|
|
55
|
-
if (direction === 1) {
|
|
56
|
-
content.first.focus();
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
content.last.focus();
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
@@ -1,214 +0,0 @@
|
|
|
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/dropdown/menu/dropdownmenunestedmenuview
|
|
7
|
-
*/
|
|
8
|
-
import { FocusTracker, KeystrokeHandler, global } from '@ckeditor/ckeditor5-utils';
|
|
9
|
-
import { DropdownMenuButtonView } from './dropdownmenubuttonview.js';
|
|
10
|
-
import { DropdownMenuListView } from './dropdownmenulistview.js';
|
|
11
|
-
import { DropdownMenuPanelPositioningFunctions } from './utils.js';
|
|
12
|
-
import { DropdownMenuBehaviors } from './dropdownmenubehaviors.js';
|
|
13
|
-
import { View } from '../../view.js';
|
|
14
|
-
import { DropdownMenuNestedMenuPanelView } from './dropdownmenunestedmenupanelview.js';
|
|
15
|
-
import '../../../theme/components/dropdown/menu/dropdownmenu.css';
|
|
16
|
-
/**
|
|
17
|
-
* Represents a nested menu view.
|
|
18
|
-
*/
|
|
19
|
-
export class DropdownMenuNestedMenuView extends View {
|
|
20
|
-
/**
|
|
21
|
-
* An array of delegated events for the dropdown menu definition controller.
|
|
22
|
-
* These events are delegated to the dropdown menu element.
|
|
23
|
-
*/
|
|
24
|
-
// Due to some spaghetti code we need to delegate `change:isOpen`.
|
|
25
|
-
static DELEGATED_EVENTS = [
|
|
26
|
-
'mouseenter', 'execute', 'change:isOpen'
|
|
27
|
-
];
|
|
28
|
-
id;
|
|
29
|
-
/**
|
|
30
|
-
* Button of the menu view.
|
|
31
|
-
*/
|
|
32
|
-
buttonView;
|
|
33
|
-
/**
|
|
34
|
-
* Panel of the menu. It hosts children of the menu.
|
|
35
|
-
*/
|
|
36
|
-
panelView;
|
|
37
|
-
/**
|
|
38
|
-
* List of nested menu entries.
|
|
39
|
-
*/
|
|
40
|
-
listView;
|
|
41
|
-
/**
|
|
42
|
-
* Tracks information about the DOM focus in the menu.
|
|
43
|
-
*/
|
|
44
|
-
focusTracker;
|
|
45
|
-
/**
|
|
46
|
-
* Instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}. It manages
|
|
47
|
-
* keystrokes of the menu.
|
|
48
|
-
*/
|
|
49
|
-
keystrokes;
|
|
50
|
-
_bodyCollection;
|
|
51
|
-
/**
|
|
52
|
-
* Creates a new instance of the DropdownMenuView class.
|
|
53
|
-
*
|
|
54
|
-
* @param locale
|
|
55
|
-
* @param bodyCollection
|
|
56
|
-
* @param id
|
|
57
|
-
* @param label The label for the dropdown menu button.
|
|
58
|
-
* @param parentMenuView The parent dropdown menu view, if any.
|
|
59
|
-
*/
|
|
60
|
-
constructor(locale, bodyCollection, id, label, parentMenuView) {
|
|
61
|
-
super(locale);
|
|
62
|
-
this._bodyCollection = bodyCollection;
|
|
63
|
-
this.id = id;
|
|
64
|
-
this.set({
|
|
65
|
-
isOpen: false,
|
|
66
|
-
isEnabled: true,
|
|
67
|
-
panelPosition: 'w',
|
|
68
|
-
class: undefined,
|
|
69
|
-
parentMenuView: null
|
|
70
|
-
});
|
|
71
|
-
this.keystrokes = new KeystrokeHandler();
|
|
72
|
-
this.focusTracker = new FocusTracker();
|
|
73
|
-
this.buttonView = new DropdownMenuButtonView(locale);
|
|
74
|
-
this.buttonView.delegate('mouseenter').to(this);
|
|
75
|
-
this.buttonView.bind('isOn', 'isEnabled').to(this, 'isOpen', 'isEnabled');
|
|
76
|
-
this.buttonView.label = label;
|
|
77
|
-
this.panelView = new DropdownMenuNestedMenuPanelView(locale);
|
|
78
|
-
this.panelView.isVisible = true;
|
|
79
|
-
this.listView = new DropdownMenuListView(locale);
|
|
80
|
-
this.listView.bind('ariaLabel').to(this.buttonView, 'label');
|
|
81
|
-
this.panelView.content.add(this.listView);
|
|
82
|
-
const bind = this.bindTemplate;
|
|
83
|
-
this.setTemplate({
|
|
84
|
-
tag: 'div',
|
|
85
|
-
attributes: {
|
|
86
|
-
class: [
|
|
87
|
-
'ck',
|
|
88
|
-
'ck-dropdown-menu-list__nested-menu',
|
|
89
|
-
bind.to('class'),
|
|
90
|
-
bind.if('isEnabled', 'ck-disabled', value => !value)
|
|
91
|
-
],
|
|
92
|
-
role: 'presentation'
|
|
93
|
-
},
|
|
94
|
-
children: [
|
|
95
|
-
this.buttonView
|
|
96
|
-
]
|
|
97
|
-
});
|
|
98
|
-
this.parentMenuView = parentMenuView;
|
|
99
|
-
if (this.parentMenuView) {
|
|
100
|
-
this._handleParentMenuView();
|
|
101
|
-
}
|
|
102
|
-
this._attachBehaviors();
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* An array of positioning functions used to determine the position of the dropdown menu panel.
|
|
106
|
-
* The order of the functions in the array determines the priority of the positions to be tried.
|
|
107
|
-
* The first function that returns a valid position will be used.
|
|
108
|
-
*
|
|
109
|
-
* @returns {Array<PositioningFunction>} An array of positioning functions.
|
|
110
|
-
* @internal
|
|
111
|
-
*/
|
|
112
|
-
get _panelPositions() {
|
|
113
|
-
const { westSouth, eastSouth, westNorth, eastNorth } = DropdownMenuPanelPositioningFunctions;
|
|
114
|
-
if (this.locale.uiLanguageDirection === 'ltr') {
|
|
115
|
-
return [eastSouth, eastNorth, westSouth, westNorth];
|
|
116
|
-
}
|
|
117
|
-
else {
|
|
118
|
-
return [westSouth, westNorth, eastSouth, eastNorth];
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* @inheritDoc
|
|
123
|
-
*/
|
|
124
|
-
render() {
|
|
125
|
-
super.render();
|
|
126
|
-
this.panelView.render();
|
|
127
|
-
this.focusTracker.add(this.buttonView.element);
|
|
128
|
-
this.focusTracker.add(this.panelView.element);
|
|
129
|
-
this.focusTracker.add(this.listView);
|
|
130
|
-
// Listen for keystrokes coming from within #element.
|
|
131
|
-
this.keystrokes.listenTo(this.element);
|
|
132
|
-
this._mountPanelOnOpen();
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* @inheritDoc
|
|
136
|
-
*/
|
|
137
|
-
destroy() {
|
|
138
|
-
this._removePanelFromBody();
|
|
139
|
-
this.panelView.destroy();
|
|
140
|
-
super.destroy();
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* @inheritDoc
|
|
144
|
-
*/
|
|
145
|
-
focus() {
|
|
146
|
-
this.buttonView.focus();
|
|
147
|
-
}
|
|
148
|
-
_handleParentMenuView() {
|
|
149
|
-
// Propagate events from this component to parent-menu.
|
|
150
|
-
this.delegate(...DropdownMenuNestedMenuView.DELEGATED_EVENTS).to(this.parentMenuView);
|
|
151
|
-
// Close this menu if its parent closes.
|
|
152
|
-
DropdownMenuBehaviors.closeOnParentClose(this, this.parentMenuView);
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Attach all keyboard behaviors for the menu view.
|
|
156
|
-
*/
|
|
157
|
-
_attachBehaviors() {
|
|
158
|
-
DropdownMenuBehaviors.openOnButtonClick(this);
|
|
159
|
-
DropdownMenuBehaviors.openAndFocusOnEnterKeyPress(this);
|
|
160
|
-
DropdownMenuBehaviors.openOnArrowRightKey(this);
|
|
161
|
-
DropdownMenuBehaviors.closeOnEscKey(this);
|
|
162
|
-
DropdownMenuBehaviors.closeOnArrowLeftKey(this);
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* Mounts the portal view in the body when the menu is open and removes it when the menu is closed.
|
|
166
|
-
* Binds keystrokes to the portal view when the menu is open.
|
|
167
|
-
*/
|
|
168
|
-
_mountPanelOnOpen() {
|
|
169
|
-
const { panelView } = this;
|
|
170
|
-
this.on('change:isOpen', (evt, name, isOpen) => {
|
|
171
|
-
// Ensure that the event was triggered by this instance.
|
|
172
|
-
// TODO: Remove checking `evt.source` if `change:isOpen` is no longer delegated.
|
|
173
|
-
if (evt.source !== this) {
|
|
174
|
-
return;
|
|
175
|
-
}
|
|
176
|
-
// Removes the panel view from the body when the menu is closed.
|
|
177
|
-
if (!isOpen && this._bodyCollection.has(panelView)) {
|
|
178
|
-
this._removePanelFromBody();
|
|
179
|
-
return;
|
|
180
|
-
}
|
|
181
|
-
// Adds the panel view to the body when the menu is open.
|
|
182
|
-
if (isOpen && !this._bodyCollection.has(panelView)) {
|
|
183
|
-
this._addPanelToBody();
|
|
184
|
-
}
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
|
-
/**
|
|
188
|
-
* Removes the panel view from the editor's body and removes it from the focus tracker.
|
|
189
|
-
*/
|
|
190
|
-
_removePanelFromBody() {
|
|
191
|
-
const { panelView, keystrokes } = this;
|
|
192
|
-
if (this._bodyCollection.has(panelView)) {
|
|
193
|
-
this._bodyCollection.remove(panelView);
|
|
194
|
-
keystrokes.stopListening(panelView.element);
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
/**
|
|
198
|
-
* Adds the panel view to the editor's body and sets up event listeners.
|
|
199
|
-
*/
|
|
200
|
-
_addPanelToBody() {
|
|
201
|
-
const { panelView, buttonView, keystrokes } = this;
|
|
202
|
-
if (!this._bodyCollection.has(panelView)) {
|
|
203
|
-
this._bodyCollection.add(panelView);
|
|
204
|
-
keystrokes.listenTo(panelView.element);
|
|
205
|
-
panelView.pin({
|
|
206
|
-
positions: this._panelPositions,
|
|
207
|
-
limiter: global.document.body,
|
|
208
|
-
element: panelView.element,
|
|
209
|
-
target: buttonView.element,
|
|
210
|
-
fitInViewport: true
|
|
211
|
-
});
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
}
|
|
@@ -1,168 +0,0 @@
|
|
|
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/dropdown/menu/dropdownmenurootlistview
|
|
7
|
-
*/
|
|
8
|
-
import { DropdownMenuListItemButtonView } from './dropdownmenulistitembuttonview.js';
|
|
9
|
-
import { DropdownMenuNestedMenuView } from './dropdownmenunestedmenuview.js';
|
|
10
|
-
import { DropdownMenuListView } from './dropdownmenulistview.js';
|
|
11
|
-
import { DropdownMenuListItemView } from './dropdownmenulistitemview.js';
|
|
12
|
-
import { DropdownRootMenuBehaviors } from './dropdownmenubehaviors.js';
|
|
13
|
-
/**
|
|
14
|
-
* Creates and manages a multi-level menu UI structure, suitable to be used inside dropdown components.
|
|
15
|
-
*
|
|
16
|
-
* This class creates a menu structure based on {@link module:ui/dropdown/menu/utils~DropdownMenuDefinition declarative definition}
|
|
17
|
-
* passed in the constructor.
|
|
18
|
-
*
|
|
19
|
-
* Below is an example of a simple definition, that describes a menu with two sub-menus (Menu 1, Menu 2) and four buttons in total (Item A,
|
|
20
|
-
* Item B, Item C, Item D):
|
|
21
|
-
*
|
|
22
|
-
* ```js
|
|
23
|
-
* [
|
|
24
|
-
* {
|
|
25
|
-
* id: 'menu_1',
|
|
26
|
-
* menu: 'Menu 1',
|
|
27
|
-
* children: [
|
|
28
|
-
* { id: 'menu_1_a', label: 'Item A' },
|
|
29
|
-
* { id: 'menu_1_b', label: 'Item B' }
|
|
30
|
-
* ]
|
|
31
|
-
* },
|
|
32
|
-
* {
|
|
33
|
-
* id: 'menu_2',
|
|
34
|
-
* menu: 'Menu 2',
|
|
35
|
-
* children: [
|
|
36
|
-
* { id: 'menu_2_c', label: 'Item C' },
|
|
37
|
-
* ]
|
|
38
|
-
* },
|
|
39
|
-
* { id: 'item_d', label: 'Item D' }
|
|
40
|
-
* ]
|
|
41
|
-
* ```
|
|
42
|
-
*
|
|
43
|
-
* The menu is build using multiple view classes. The most important are:
|
|
44
|
-
*
|
|
45
|
-
* * {@link module:ui/dropdown/menu/dropdownmenunestedmenuview~DropdownMenuNestedMenuView `DropdownMenuNestedMenuView`} - "menu" - provides
|
|
46
|
-
* a panel with a nested menu, and a button which opens the panel,
|
|
47
|
-
* * {@link module:ui/dropdown/menu/dropdownmenulistitembuttonview~DropdownMenuListItemButtonView `DropdownMenuListItemButtonView`} -
|
|
48
|
-
* "button" or "leaf button" (as opposed to buttons provided by `DropdownMenuNestedMenuView`) - should trigger some action when pressed.
|
|
49
|
-
*
|
|
50
|
-
* Instances of these two classes are created based on the data provided in definitions. They are assigned proper IDs and labels.
|
|
51
|
-
* Other view classes build a proper DOM structure around menus and buttons.
|
|
52
|
-
*
|
|
53
|
-
* The `DropdownMenuNestedMenuView` instances provides panels, which may include further menus or buttons. These panels are added to
|
|
54
|
-
* a `BodyCollection` view, which means they are appended outside the DOM editor and UI structure.
|
|
55
|
-
*
|
|
56
|
-
* When "leaf button" is pressed, it fires `execute` event which is delegated to `DropdownMenuRootListView` as `menu:execute` event. You
|
|
57
|
-
* can listen to this event to perform an action:
|
|
58
|
-
*
|
|
59
|
-
* ```js
|
|
60
|
-
* rootListView.on( 'menu:execute', evt => {
|
|
61
|
-
* console.log( evt.source.id ); // E.g. will print 'menu_1_a' when 'Item A' is pressed.
|
|
62
|
-
* } );
|
|
63
|
-
* ```
|
|
64
|
-
*
|
|
65
|
-
* All menus and "leaf" buttons created from the definition can be easily accessed through {@link ~DropdownMenuRootListView#menus `menus`}
|
|
66
|
-
* and {@link ~DropdownMenuRootListView#buttons `buttons`} properties.
|
|
67
|
-
*
|
|
68
|
-
* For performance reasons, the whole menu structure is created only when `DropdownMenuRootListView` is rendered for the first time.
|
|
69
|
-
*
|
|
70
|
-
* It is recommended to use this class together with {@link module:ui/dropdown/utils~addMenuToDropdown `addMenuToDropdown()` helper}.
|
|
71
|
-
*/
|
|
72
|
-
export class DropdownMenuRootListView extends DropdownMenuListView {
|
|
73
|
-
/**
|
|
74
|
-
* The definitions object used to create the whole menu structure.
|
|
75
|
-
*/
|
|
76
|
-
_definition;
|
|
77
|
-
/**
|
|
78
|
-
* Cached array of all menus in the dropdown menu (including nested menus).
|
|
79
|
-
*/
|
|
80
|
-
_cachedMenus = [];
|
|
81
|
-
/**
|
|
82
|
-
* Cached array of all buttons in the dropdown menu (including buttons in nested menus).
|
|
83
|
-
*/
|
|
84
|
-
_cachedButtons = [];
|
|
85
|
-
/**
|
|
86
|
-
* Editor body collection into which nested menus panels will be appended.
|
|
87
|
-
*/
|
|
88
|
-
_bodyCollection;
|
|
89
|
-
/**
|
|
90
|
-
* Creates an instance of the DropdownMenuRootListView class.
|
|
91
|
-
*
|
|
92
|
-
* @param locale
|
|
93
|
-
* @param bodyCollection
|
|
94
|
-
* @param definition The definition object used to create the menu structure.
|
|
95
|
-
*/
|
|
96
|
-
constructor(locale, bodyCollection, definition) {
|
|
97
|
-
super(locale);
|
|
98
|
-
this._bodyCollection = bodyCollection;
|
|
99
|
-
this._definition = definition;
|
|
100
|
-
this.set('menuPanelClass', undefined);
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Returns the array of all menus in the dropdown menu (including nested menus).
|
|
104
|
-
*/
|
|
105
|
-
get menus() {
|
|
106
|
-
return Array.from(this._cachedMenus.values());
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Returns the array of all buttons in the dropdown menu (including buttons in nested menus).
|
|
110
|
-
*
|
|
111
|
-
* Note, that this includes only "leaf" buttons, as specified in the definition passed in constructor. Buttons created as a part of
|
|
112
|
-
* the nested menus, that open nested menus when hovered or pressed, are not included.
|
|
113
|
-
*/
|
|
114
|
-
get buttons() {
|
|
115
|
-
return Array.from(this._cachedButtons.values());
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* @inheritDoc
|
|
119
|
-
*/
|
|
120
|
-
render() {
|
|
121
|
-
this._createStructure(this._definition, null);
|
|
122
|
-
super.render();
|
|
123
|
-
DropdownRootMenuBehaviors.toggleMenusAndFocusItemsOnHover(this);
|
|
124
|
-
DropdownRootMenuBehaviors.closeMenuWhenAnotherOnTheSameLevelOpens(this);
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Closes all nested menus.
|
|
128
|
-
*/
|
|
129
|
-
closeMenus() {
|
|
130
|
-
this.menus.forEach(menu => {
|
|
131
|
-
menu.isOpen = false;
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Recursively creates the whole view tree structure for the dropdown menu, according to the passed `definitions`.
|
|
136
|
-
*
|
|
137
|
-
* @private
|
|
138
|
-
*/
|
|
139
|
-
_createStructure(definitions, parentMenuView) {
|
|
140
|
-
const items = [];
|
|
141
|
-
for (const def of definitions) {
|
|
142
|
-
let createdView;
|
|
143
|
-
if ('menu' in def) {
|
|
144
|
-
createdView = new DropdownMenuNestedMenuView(this.locale, this._bodyCollection, def.id, def.menu, parentMenuView);
|
|
145
|
-
createdView.panelView.bind('class').to(this, 'menuPanelClass');
|
|
146
|
-
if (!parentMenuView) {
|
|
147
|
-
createdView.delegate(...DropdownMenuNestedMenuView.DELEGATED_EVENTS).to(this, (name) => `menu:${name}`);
|
|
148
|
-
}
|
|
149
|
-
this._cachedMenus.push(createdView);
|
|
150
|
-
this._createStructure(def.children, createdView);
|
|
151
|
-
}
|
|
152
|
-
else {
|
|
153
|
-
createdView = new DropdownMenuListItemButtonView(this.locale, def.id, def.label);
|
|
154
|
-
if (!parentMenuView) {
|
|
155
|
-
createdView.delegate('execute').to(this, 'menu:execute');
|
|
156
|
-
}
|
|
157
|
-
this._cachedButtons.push(createdView);
|
|
158
|
-
}
|
|
159
|
-
const listItemView = new DropdownMenuListItemView(this.locale, parentMenuView, createdView);
|
|
160
|
-
if (!parentMenuView) {
|
|
161
|
-
listItemView.delegate('mouseenter').to(this, 'menu:mouseenter');
|
|
162
|
-
}
|
|
163
|
-
items.push(listItemView);
|
|
164
|
-
}
|
|
165
|
-
const targetListView = parentMenuView ? parentMenuView.listView : this;
|
|
166
|
-
targetListView.items.addMany(items);
|
|
167
|
-
}
|
|
168
|
-
}
|
|
@@ -1,61 +0,0 @@
|
|
|
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
|
-
const NESTED_PANEL_HORIZONTAL_OFFSET = 5;
|
|
6
|
-
/**
|
|
7
|
-
* Contains every positioning function used by {@link module:ui/dropdown/menu/dropdownmenunestedmenuview~DropdownMenuNestedMenuView} that
|
|
8
|
-
* decides where the {@link module:ui/dropdown/menu/dropdownmenunestedmenuview~DropdownMenuNestedMenuView#panelView} should be placed.
|
|
9
|
-
*
|
|
10
|
-
* Positioning functions:
|
|
11
|
-
*
|
|
12
|
-
* ┌──────┬───────────────┐
|
|
13
|
-
* │ │ │
|
|
14
|
-
* └──────┤ │
|
|
15
|
-
* │ │
|
|
16
|
-
* │ ES │
|
|
17
|
-
* └───────────────┘
|
|
18
|
-
*
|
|
19
|
-
* ┌───────────────┬──────┐
|
|
20
|
-
* │ │ │
|
|
21
|
-
* │ ├──────┘
|
|
22
|
-
* │ │
|
|
23
|
-
* │ WS │
|
|
24
|
-
* └───────────────┘
|
|
25
|
-
*
|
|
26
|
-
* ┌───────────────┐
|
|
27
|
-
* │ EN │
|
|
28
|
-
* │ │
|
|
29
|
-
* ┌──────┤ │
|
|
30
|
-
* │ │ │
|
|
31
|
-
* └──────┴───────────────┘
|
|
32
|
-
*
|
|
33
|
-
* ┌───────────────┐
|
|
34
|
-
* │ WN │
|
|
35
|
-
* │ │
|
|
36
|
-
* │ ├──────┐
|
|
37
|
-
* │ │ │
|
|
38
|
-
* └───────────────┴──────┘
|
|
39
|
-
*/
|
|
40
|
-
export const DropdownMenuPanelPositioningFunctions = {
|
|
41
|
-
eastSouth: buttonRect => ({
|
|
42
|
-
top: buttonRect.top,
|
|
43
|
-
left: buttonRect.right - NESTED_PANEL_HORIZONTAL_OFFSET,
|
|
44
|
-
name: 'es'
|
|
45
|
-
}),
|
|
46
|
-
eastNorth: (buttonRect, panelRect) => ({
|
|
47
|
-
top: buttonRect.top - panelRect.height + buttonRect.height,
|
|
48
|
-
left: buttonRect.right - NESTED_PANEL_HORIZONTAL_OFFSET,
|
|
49
|
-
name: 'en'
|
|
50
|
-
}),
|
|
51
|
-
westSouth: (buttonRect, panelRect) => ({
|
|
52
|
-
top: buttonRect.top,
|
|
53
|
-
left: buttonRect.left - panelRect.width + NESTED_PANEL_HORIZONTAL_OFFSET,
|
|
54
|
-
name: 'ws'
|
|
55
|
-
}),
|
|
56
|
-
westNorth: (buttonRect, panelRect) => ({
|
|
57
|
-
top: buttonRect.top - panelRect.height + buttonRect.height,
|
|
58
|
-
left: buttonRect.left - panelRect.width + NESTED_PANEL_HORIZONTAL_OFFSET,
|
|
59
|
-
name: 'wn'
|
|
60
|
-
})
|
|
61
|
-
};
|