ckeditor5-elements-menu 49.0.0-alpha.4 → 49.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/README.md +7 -7
  2. package/dist/augmentation.d.ts +7 -7
  3. package/dist/augmentation.d.ts.map +1 -1
  4. package/dist/breadcrumbs/{breadcrumbs.d.ts → elementBreadcrumbs.d.ts} +8 -7
  5. package/dist/breadcrumbs/elementBreadcrumbs.d.ts.map +1 -0
  6. package/dist/breadcrumbs/{breadcrumbs.js → elementBreadcrumbs.js} +8 -7
  7. package/dist/breadcrumbs/elementBreadcrumbs.js.map +1 -0
  8. package/dist/contextMenu/elementContextMenu.d.ts.map +1 -1
  9. package/dist/contextMenu/elementContextMenu.js +7 -17
  10. package/dist/contextMenu/elementContextMenu.js.map +1 -1
  11. package/dist/domTarget.d.ts +8 -0
  12. package/dist/domTarget.d.ts.map +1 -0
  13. package/dist/domTarget.js +20 -0
  14. package/dist/domTarget.js.map +1 -0
  15. package/dist/elementMenu.d.ts +2 -2
  16. package/dist/elementMenu.d.ts.map +1 -1
  17. package/dist/elementMenu.js +4 -26
  18. package/dist/elementMenu.js.map +1 -1
  19. package/dist/elementMenuView.d.ts +5 -0
  20. package/dist/elementMenuView.d.ts.map +1 -1
  21. package/dist/elementMenuView.js +31 -5
  22. package/dist/elementMenuView.js.map +1 -1
  23. package/dist/index.d.ts +2 -2
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +2 -2
  26. package/dist/index.js.map +1 -1
  27. package/dist/quickInsert/{quickInsert.d.ts → elementQuickInsert.d.ts} +11 -11
  28. package/dist/quickInsert/elementQuickInsert.d.ts.map +1 -0
  29. package/dist/quickInsert/{quickInsert.js → elementQuickInsert.js} +19 -29
  30. package/dist/quickInsert/elementQuickInsert.js.map +1 -0
  31. package/dist/quickInsert/quickInsertCommand.d.ts +14 -5
  32. package/dist/quickInsert/quickInsertCommand.d.ts.map +1 -1
  33. package/dist/quickInsert/quickInsertCommand.js +28 -17
  34. package/dist/quickInsert/quickInsertCommand.js.map +1 -1
  35. package/dist/quickInsert/quickInsertPositionCommand.d.ts +7 -2
  36. package/dist/quickInsert/quickInsertPositionCommand.d.ts.map +1 -1
  37. package/dist/quickInsert/quickInsertPositionCommand.js +11 -13
  38. package/dist/quickInsert/quickInsertPositionCommand.js.map +1 -1
  39. package/package.json +5 -2
  40. package/src/augmentation.ts +10 -10
  41. package/src/breadcrumbs/{breadcrumbs.ts → elementBreadcrumbs.ts} +10 -9
  42. package/src/contextMenu/elementContextMenu.ts +8 -20
  43. package/src/domTarget.ts +27 -0
  44. package/src/elementMenu.ts +11 -36
  45. package/src/elementMenuView.ts +53 -14
  46. package/src/index.ts +2 -2
  47. package/src/quickInsert/{quickInsert.ts → elementQuickInsert.ts} +24 -38
  48. package/src/quickInsert/quickInsertCommand.ts +36 -25
  49. package/src/quickInsert/quickInsertPositionCommand.ts +13 -17
  50. package/dist/breadcrumbs/breadcrumbs.d.ts.map +0 -1
  51. package/dist/breadcrumbs/breadcrumbs.js.map +0 -1
  52. package/dist/quickInsert/quickInsert.d.ts.map +0 -1
  53. package/dist/quickInsert/quickInsert.js.map +0 -1
package/README.md CHANGED
@@ -5,9 +5,9 @@ separators, in a balloon. The features that open it are in this package too:
5
5
 
6
6
  - `ElementContextMenu`: right-clicking an element (or Shift+F10, or the menu key) opens its menu, configured by the
7
7
  `elementContextMenu` option.
8
- - `Breadcrumbs`: the element path at the selection, e.g. `aside.note › p`, as labels, or as buttons that open the menu of
9
- their element with the `breadcrumbs.menu` option.
10
- - `QuickInsert`: Alt+Enter opens a searchable list of the elements allowed at the cursor, and the `quickInsertBefore`
8
+ - `ElementBreadcrumbs`: the element path at the selection, e.g. `aside.note › p`, as labels, or as buttons that open the menu of
9
+ their element with the `elementBreadcrumbs.menu` option.
10
+ - `ElementQuickInsert`: Alt+Enter opens a searchable list of the elements allowed at the cursor, and the `quickInsertBefore`
11
11
  and `quickInsertAfter` commands are menu items that insert next to an element.
12
12
 
13
13
  ## Installation
@@ -23,7 +23,7 @@ Import the stylesheet of the package (`ckeditor5-elements/index.css` has the sty
23
23
  ## Usage
24
24
 
25
25
  ```ts
26
- import { Breadcrumbs, ElementClipboard, ElementContextMenu, QuickInsert } from 'ckeditor5-elements';
26
+ import { ElementBreadcrumbs, ElementClipboard, ElementContextMenu, ElementQuickInsert } from 'ckeditor5-elements';
27
27
  import 'ckeditor5-elements/index.css';
28
28
 
29
29
  // One menu for both: right-clicking an element, and clicking its breadcrumb.
@@ -35,11 +35,11 @@ const menu = (element, editor) => [
35
35
  ];
36
36
 
37
37
  // In the editor config:
38
- plugins: [..., ElementContextMenu, Breadcrumbs, QuickInsert, ElementClipboard],
38
+ plugins: [..., ElementContextMenu, ElementBreadcrumbs, ElementQuickInsert, ElementClipboard],
39
39
  toolbar: ['bold', 'italic', '|', 'breadcrumbs'],
40
40
  elementContextMenu: menu,
41
- breadcrumbs: { menu },
42
- quickInsert: { labels: { paragraph: 'Paragraph', heading1: 'Heading 1' } }
41
+ elementBreadcrumbs: { menu },
42
+ elementQuickInsert: { labels: { paragraph: 'Paragraph', heading1: 'Heading 1' } }
43
43
  ```
44
44
 
45
45
  See the [Context menu](https://ivankild.github.io/ckeditor5-elements/guide/context-menu),
@@ -1,10 +1,10 @@
1
- import type { Breadcrumbs, BreadcrumbsConfig, ElementContextMenu, ElementMenu, ElementMenuConfig, QuickInsert, QuickInsertCommand, QuickInsertConfig, QuickInsertPositionCommand } from './index.js';
1
+ import type { ElementBreadcrumbs, ElementBreadcrumbsConfig, ElementContextMenu, ElementMenu, ElementMenuConfig, ElementQuickInsert, QuickInsertCommand, ElementQuickInsertConfig, QuickInsertPositionCommand } from './index.js';
2
2
  declare module 'ckeditor5' {
3
3
  interface PluginsMap {
4
4
  [ElementMenu.pluginName]: ElementMenu;
5
5
  [ElementContextMenu.pluginName]: ElementContextMenu;
6
- [Breadcrumbs.pluginName]: Breadcrumbs;
7
- [QuickInsert.pluginName]: QuickInsert;
6
+ [ElementBreadcrumbs.pluginName]: ElementBreadcrumbs;
7
+ [ElementQuickInsert.pluginName]: ElementQuickInsert;
8
8
  }
9
9
  interface CommandsMap {
10
10
  quickInsert: QuickInsertCommand;
@@ -18,13 +18,13 @@ declare module 'ckeditor5' {
18
18
  */
19
19
  elementContextMenu?: ElementMenuConfig;
20
20
  /**
21
- * The configuration of the {@link Breadcrumbs} plugin.
21
+ * The configuration of the {@link ElementBreadcrumbs} plugin.
22
22
  */
23
- breadcrumbs?: BreadcrumbsConfig;
23
+ elementBreadcrumbs?: ElementBreadcrumbsConfig;
24
24
  /**
25
- * The configuration of the {@link QuickInsert} plugin.
25
+ * The configuration of the {@link ElementQuickInsert} plugin.
26
26
  */
27
- quickInsert?: QuickInsertConfig;
27
+ elementQuickInsert?: ElementQuickInsertConfig;
28
28
  }
29
29
  }
30
30
  //# sourceMappingURL=augmentation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"augmentation.d.ts","sourceRoot":"","sources":["../src/augmentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,0BAA0B,EAC1B,MAAM,YAAY,CAAC;AAEpB,OAAO,QAAQ,WAAW,CAAC;IAC1B,UAAU,UAAU;QACnB,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC;QACtC,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;QACpD,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC;QACtC,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC;KACtC;IAED,UAAU,WAAW;QACpB,WAAW,EAAE,kBAAkB,CAAC;QAChC,iBAAiB,EAAE,0BAA0B,CAAC;QAC9C,gBAAgB,EAAE,0BAA0B,CAAC;KAC7C;IAED,UAAU,YAAY;QACrB;;;WAGG;QACH,kBAAkB,CAAC,EAAE,iBAAiB,CAAC;QAEvC;;WAEG;QACH,WAAW,CAAC,EAAE,iBAAiB,CAAC;QAEhC;;WAEG;QACH,WAAW,CAAC,EAAE,iBAAiB,CAAC;KAChC;CACD"}
1
+ {"version":3,"file":"augmentation.d.ts","sourceRoot":"","sources":["../src/augmentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,EACxB,0BAA0B,EAC1B,MAAM,YAAY,CAAC;AAEpB,OAAO,QAAQ,WAAW,CAAC;IAC1B,UAAU,UAAU;QACnB,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC;QACtC,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;QACpD,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;QACpD,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;KACpD;IAED,UAAU,WAAW;QACpB,WAAW,EAAE,kBAAkB,CAAC;QAChC,iBAAiB,EAAE,0BAA0B,CAAC;QAC9C,gBAAgB,EAAE,0BAA0B,CAAC;KAC7C;IAED,UAAU,YAAY;QACrB;;;WAGG;QACH,kBAAkB,CAAC,EAAE,iBAAiB,CAAC;QAEvC;;WAEG;QACH,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;QAE9C;;WAEG;QACH,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;KAC9C;CACD"}
@@ -3,9 +3,9 @@ import ElementMenu, { type ElementMenuConfig } from '../elementMenu.js';
3
3
  import { type BreadcrumbItem } from './breadcrumbItemView.js';
4
4
  import BreadcrumbsView from './breadcrumbsView.js';
5
5
  /**
6
- * The configuration of the {@link Breadcrumbs} plugin.
6
+ * The configuration of the {@link ElementBreadcrumbs} plugin.
7
7
  */
8
- export interface BreadcrumbsConfig {
8
+ export interface ElementBreadcrumbsConfig {
9
9
  /**
10
10
  * Returns the items of the menu that opens when a breadcrumb is clicked, for the element of the breadcrumb: the
11
11
  * same items as in the `elementContextMenu` option (commands, submenus and `'|'` separators), so one callback can
@@ -17,18 +17,19 @@ export interface BreadcrumbsConfig {
17
17
  * Shows the data view structure at the current selection (the elements of the editor data, as in `getData()`), e.g.
18
18
  * `aside.note › p`, `ul › li` or `figure.table › table › tbody › tr › td`.
19
19
  *
20
- * Text attributes such as `<strong>` are skipped. The selected element, e.g. an image, is the innermost item.
20
+ * Inline elements are items, as any element. CKEditor's text attributes, marks on the text such as its `<strong>`, are
21
+ * skipped. The selected element, e.g. an image, is the innermost item.
21
22
  *
22
23
  * Place them in a toolbar as the `breadcrumbs` component, or anywhere else using a view from {@link createView}.
23
24
  *
24
- * Clicking is configured only by the `breadcrumbs.menu` editor config option (see {@link BreadcrumbsConfig}): with it,
25
+ * Clicking is configured only by the `elementBreadcrumbs.menu` editor config option (see {@link ElementBreadcrumbsConfig}): with it,
25
26
  * the items are buttons that open the menu of their element, with `ElementMenu`, as the context menu does; without it,
26
27
  * they are labels.
27
28
  *
28
29
  * The data view is converted again only when elements change, not when typing or moving the cursor. For a large
29
30
  * document, that happens at most every 250 ms.
30
31
  */
31
- export default class Breadcrumbs extends Plugin {
32
+ export default class ElementBreadcrumbs extends Plugin {
32
33
  /**
33
34
  * The elements at the current selection, from the outermost to the innermost one.
34
35
  *
@@ -39,7 +40,7 @@ export default class Breadcrumbs extends Plugin {
39
40
  private _isDataViewOutdated;
40
41
  private _isConversionSlow;
41
42
  private _conversionTimeout;
42
- static get pluginName(): 'Breadcrumbs';
43
+ static get pluginName(): 'ElementBreadcrumbs';
43
44
  static get requires(): readonly [typeof ElementMenu];
44
45
  constructor(editor: Editor);
45
46
  init(): void;
@@ -69,4 +70,4 @@ export default class Breadcrumbs extends Plugin {
69
70
  private _getItems;
70
71
  private _openMenu;
71
72
  }
72
- //# sourceMappingURL=breadcrumbs.d.ts.map
73
+ //# sourceMappingURL=elementBreadcrumbs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elementBreadcrumbs.d.ts","sourceRoot":"","sources":["../../src/breadcrumbs/elementBreadcrumbs.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,MAAM,EAEN,KAAK,MAAM,EACX,KAAK,MAAM,EAQX,MAAM,WAAW,CAAC;AAEnB,OAAO,WAAW,EAAE,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,KAAK,cAAc,EAAsC,MAAM,yBAAyB,CAAC;AAClG,OAAO,eAAqD,MAAM,sBAAsB,CAAC;AASzF;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACxC;;;;OAIG;IACH,IAAI,CAAC,EAAE,iBAAiB,CAAC;CACzB;AAWD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,MAAM;IACrD;;;;OAIG;IACY,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;IAEhD,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,mBAAmB,CAAQ;IACnC,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,kBAAkB,CAA8C;IAExE,WAAkB,UAAU,IAAI,oBAAoB,CAEnD;IAED,WAAkB,QAAQ,IAAI,SAAS,CAAC,OAAO,WAAW,CAAC,CAE1D;gBAEW,MAAM,EAAE,MAAM;IAMnB,IAAI,IAAI,IAAI;IAmBnB;;OAEG;IACI,UAAU,CAAC,MAAM,GAAE,MAA2B,GAAG,eAAe;IAgBvE;;OAEG;IACI,OAAO,IAAI,IAAI;IAcN,OAAO,IAAI,IAAI;IAK/B;;;OAGG;IACH,OAAO,CAAC,OAAO;IAqBf;;OAEG;IACH,OAAO,CAAC,QAAQ;IAwBhB,OAAO,CAAC,iBAAiB;IAOzB;;;OAGG;IACH,OAAO,CAAC,SAAS;IAwBjB,OAAO,CAAC,SAAS;CAwBjB"}
@@ -13,24 +13,25 @@ const THROTTLE_TIME = 250;
13
13
  * Shows the data view structure at the current selection (the elements of the editor data, as in `getData()`), e.g.
14
14
  * `aside.note › p`, `ul › li` or `figure.table › table › tbody › tr › td`.
15
15
  *
16
- * Text attributes such as `<strong>` are skipped. The selected element, e.g. an image, is the innermost item.
16
+ * Inline elements are items, as any element. CKEditor's text attributes, marks on the text such as its `<strong>`, are
17
+ * skipped. The selected element, e.g. an image, is the innermost item.
17
18
  *
18
19
  * Place them in a toolbar as the `breadcrumbs` component, or anywhere else using a view from {@link createView}.
19
20
  *
20
- * Clicking is configured only by the `breadcrumbs.menu` editor config option (see {@link BreadcrumbsConfig}): with it,
21
+ * Clicking is configured only by the `elementBreadcrumbs.menu` editor config option (see {@link ElementBreadcrumbsConfig}): with it,
21
22
  * the items are buttons that open the menu of their element, with `ElementMenu`, as the context menu does; without it,
22
23
  * they are labels.
23
24
  *
24
25
  * The data view is converted again only when elements change, not when typing or moving the cursor. For a large
25
26
  * document, that happens at most every 250 ms.
26
27
  */
27
- export default class Breadcrumbs extends Plugin {
28
+ export default class ElementBreadcrumbs extends Plugin {
28
29
  _dataView = null;
29
30
  _isDataViewOutdated = true;
30
31
  _isConversionSlow = false;
31
32
  _conversionTimeout = null;
32
33
  static get pluginName() {
33
- return 'Breadcrumbs';
34
+ return 'ElementBreadcrumbs';
34
35
  }
35
36
  static get requires() {
36
37
  return [ElementMenu];
@@ -57,7 +58,7 @@ export default class Breadcrumbs extends Plugin {
57
58
  * Creates a breadcrumbs view that follows {@link items}.
58
59
  */
59
60
  createView(locale = this.editor.locale) {
60
- const isClickable = typeof this.editor.config.get('breadcrumbs')?.menu === 'function';
61
+ const isClickable = typeof this.editor.config.get('elementBreadcrumbs')?.menu === 'function';
61
62
  const view = new BreadcrumbsView(locale, { isClickable });
62
63
  view.setItems(this.items);
63
64
  view.listenTo(this, 'change:items', () => {
@@ -154,7 +155,7 @@ export default class Breadcrumbs extends Plugin {
154
155
  return viewElement ? getPath(viewElement).map(node => createItem(node, dataView)) : [];
155
156
  }
156
157
  _openMenu(item) {
157
- const menuItems = this.editor.config.get('breadcrumbs')?.menu;
158
+ const menuItems = this.editor.config.get('elementBreadcrumbs')?.menu;
158
159
  const element = item.modelElement;
159
160
  if (!menuItems || !item.element || !element || !isInDocument(element)) {
160
161
  return;
@@ -221,4 +222,4 @@ function areEqual(a, b) {
221
222
  return (a.length === b.length &&
222
223
  a.every((item, index) => item.label === b[index]?.label && item.modelElement === b[index].modelElement));
223
224
  }
224
- //# sourceMappingURL=breadcrumbs.js.map
225
+ //# sourceMappingURL=elementBreadcrumbs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elementBreadcrumbs.js","sourceRoot":"","sources":["../../src/breadcrumbs/elementBreadcrumbs.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"elementContextMenu.d.ts","sourceRoot":"","sources":["../../src/contextMenu/elementContextMenu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAEzF,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAG5C;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,MAAM;IACrD,WAAkB,QAAQ,IAAI,SAAS,CAAC,OAAO,WAAW,CAAC,CAE1D;IAED,WAAkB,UAAU,IAAI,oBAAoB,CAEnD;IAEM,IAAI,IAAI,IAAI;IAmCnB;;;;;OAKG;IACI,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO;IAY/D;;;;;OAKG;IACI,eAAe,IAAI,OAAO;IAkBjC;;OAEG;IACI,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,YAAY,GAAG,IAAI;CAarE"}
1
+ {"version":3,"file":"elementContextMenu.d.ts","sourceRoot":"","sources":["../../src/contextMenu/elementContextMenu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAGzF,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAG5C;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,MAAM;IACrD,WAAkB,QAAQ,IAAI,SAAS,CAAC,OAAO,WAAW,CAAC,CAE1D;IAED,WAAkB,UAAU,IAAI,oBAAoB,CAEnD;IAEM,IAAI,IAAI,IAAI;IAmCnB;;;;;OAKG;IACI,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO;IAY/D;;;;;OAKG;IACI,eAAe,IAAI,OAAO;IAWjC;;OAEG;IACI,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,YAAY,GAAG,IAAI;CAOrE"}
@@ -1,5 +1,6 @@
1
1
  import { Plugin } from 'ckeditor5';
2
- import { getElementAtSelection, isInDocument } from 'ckeditor5-elements-core';
2
+ import { getElementAtSelection, getElementsAround, isInDocument } from 'ckeditor5-elements-core';
3
+ import { getDomTarget } from '../domTarget.js';
3
4
  import ElementMenu from '../elementMenu.js';
4
5
  import ContextMenuObserver, {} from './contextMenuObserver.js';
5
6
  /**
@@ -67,16 +68,9 @@ export default class ElementContextMenu extends Plugin {
67
68
  * Returns `false` when there is no such element or no items.
68
69
  */
69
70
  openAtSelection() {
70
- const editing = this.editor.editing;
71
- const selection = this.editor.model.document.selection;
72
- const selectedElement = selection.getSelectedElement();
73
- const element = getElementAtSelection(selection);
74
- const viewElement = selectedElement && editing.mapper.toViewElement(selectedElement);
75
- const viewRange = editing.view.document.selection.getFirstRange();
76
- const target = viewElement
77
- ? editing.view.domConverter.mapViewToDom(viewElement)
78
- : viewRange && editing.view.domConverter.viewRangeToDom(viewRange);
79
- if (!element || !isInDocument(element) || !(target instanceof HTMLElement || target instanceof Range)) {
71
+ const element = getElementAtSelection(this.editor.model.document.selection);
72
+ const target = getDomTarget(this.editor);
73
+ if (!element || !isInDocument(element) || !target) {
80
74
  return false;
81
75
  }
82
76
  return this.open(element, target);
@@ -85,12 +79,8 @@ export default class ElementContextMenu extends Plugin {
85
79
  * Returns the closest model element mapped to the given view element or its ancestors, skipping the root.
86
80
  */
87
81
  getModelElement(viewElement) {
88
- const mapper = this.editor.editing.mapper;
89
- for (let node = viewElement; node; node = node.parent?.is('element') ? node.parent : null) {
90
- const element = mapper.toModelElement(node);
91
- if (element) {
92
- return element.is('rootElement') ? null : element;
93
- }
82
+ for (const { element } of getElementsAround(this.editor.editing.mapper, viewElement)) {
83
+ return element;
94
84
  }
95
85
  return null;
96
86
  }
@@ -1 +1 @@
1
- {"version":3,"file":"elementContextMenu.js","sourceRoot":"","sources":["../../src/contextMenu/elementContextMenu.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"elementContextMenu.js","sourceRoot":"","sources":["../../src/contextMenu/elementContextMenu.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { type Editor } from 'ckeditor5';
2
+ import type { ElementOrPosition } from 'ckeditor5-elements-core';
3
+ /**
4
+ * Returns what a menu for the target is shown next to: the DOM element of an element, or the DOM range of a position.
5
+ * Without a target, the ones of the selection: its selected element, or its range. `null` when it is not rendered.
6
+ */
7
+ export declare function getDomTarget(editor: Editor, target?: ElementOrPosition): HTMLElement | Range | null;
8
+ //# sourceMappingURL=domTarget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domTarget.d.ts","sourceRoot":"","sources":["../src/domTarget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,iBAAiB,GAAG,WAAW,GAAG,KAAK,GAAG,IAAI,CAmBnG"}
@@ -0,0 +1,20 @@
1
+ import { ModelPosition } from 'ckeditor5';
2
+ /**
3
+ * Returns what a menu for the target is shown next to: the DOM element of an element, or the DOM range of a position.
4
+ * Without a target, the ones of the selection: its selected element, or its range. `null` when it is not rendered.
5
+ */
6
+ export function getDomTarget(editor, target) {
7
+ const { mapper, view } = editor.editing;
8
+ if (target instanceof ModelPosition) {
9
+ return view.domConverter.viewRangeToDom(view.createRange(mapper.toViewPosition(target)));
10
+ }
11
+ const element = target ?? editor.model.document.selection.getSelectedElement();
12
+ if (element) {
13
+ const viewElement = mapper.toViewElement(element);
14
+ const domElement = viewElement && view.domConverter.mapViewToDom(viewElement);
15
+ return domElement instanceof HTMLElement ? domElement : null;
16
+ }
17
+ const viewRange = view.document.selection.getFirstRange();
18
+ return viewRange ? view.domConverter.viewRangeToDom(viewRange) : null;
19
+ }
20
+ //# sourceMappingURL=domTarget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domTarget.js","sourceRoot":"","sources":["../src/domTarget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAe,MAAM,WAAW,CAAC;AAGvD;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,MAA0B;IACtE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC;IAExC,IAAI,MAAM,YAAY,aAAa,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;IAE/E,IAAI,OAAO,EAAE,CAAC;QACb,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,WAAW,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAE9E,OAAO,UAAU,YAAY,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;IAE1D,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACvE,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { ContextualBalloon, Notification, Plugin, type Editor, type FocusableView, type ModelElement, type RectSource } from 'ckeditor5';
2
- import { ElementOrPositionCommand } from 'ckeditor5-elements-core';
2
+ import { type ElementOrPositionCommand } from 'ckeditor5-elements-core';
3
3
  /**
4
4
  * A submenu of an element menu. Missing items are skipped, as in the menu.
5
5
  */
@@ -22,7 +22,7 @@ export interface ElementSubmenu {
22
22
  */
23
23
  export type ElementMenuItem = ElementOrPositionCommand | ElementSubmenu | '|';
24
24
  /**
25
- * Returns the items of the menu of the given element, e.g. as the `elementContextMenu` or `breadcrumbs.menu` editor
25
+ * Returns the items of the menu of the given element, e.g. as the `elementContextMenu` or `elementBreadcrumbs.menu` editor
26
26
  * config option. Missing items (e.g. commands that are not registered) are skipped. No items means no menu.
27
27
  */
28
28
  export type ElementMenuConfig = (element: ModelElement, editor: Editor) => (ElementMenuItem | null | undefined)[];
@@ -1 +1 @@
1
- {"version":3,"file":"elementMenu.d.ts","sourceRoot":"","sources":["../src/elementMenu.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,iBAAiB,EAGjB,YAAY,EACZ,MAAM,EAEN,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,wBAAwB,EAAgB,MAAM,yBAAyB,CAAC;AAGjF;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,KAAK,EAAE,CAAC,eAAe,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC;CAC9C;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,eAAe,GAAG,wBAAwB,GAAG,cAAc,GAAG,GAAG,CAAC;AAE9E;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC,eAAe,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC;AAElH;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC;IAE3B;;OAEG;IACH,aAAa,CAAC,EAAE;QAAE,KAAK,IAAI,IAAI,CAAA;KAAE,CAAC;IAElC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,MAAM;IAC9C;;OAEG;IACI,IAAI,EAAE,aAAa,GAAG,IAAI,CAAQ;IAEzC,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,OAAO,CAA6B;IAE5C,WAAkB,QAAQ,IAAI,SAAS,CAAC,OAAO,iBAAiB,EAAE,OAAO,YAAY,CAAC,CAGrF;IAED,WAAkB,UAAU,IAAI,aAAa,CAE5C;IAEM,IAAI,IAAI,IAAI;IAQnB;;;;;OAKG;IACI,IAAI,CACV,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,iBAAiB,EACzB,EAAE,KAAqC,EAAE,UAAU,EAAE,GAAG,OAAO,EAAE,GAAE,sBAA2B,GAC5F,OAAO;IAmBV;;;OAGG;IACI,IAAI,CACV,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,UAAU,EAClB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,GAAE,sBAA2B,GAChE,IAAI;IAqDP;;OAEG;IACI,IAAI,IAAI,IAAI;IAuBH,OAAO,IAAI,IAAI;IAK/B,OAAO,KAAK,QAAQ,GAEnB;CACD"}
1
+ {"version":3,"file":"elementMenu.d.ts","sourceRoot":"","sources":["../src/elementMenu.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,iBAAiB,EAGjB,YAAY,EACZ,MAAM,EAEN,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,MAAM,WAAW,CAAC;AACnB,OAAO,EAAgB,KAAK,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAGtF;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,KAAK,EAAE,CAAC,eAAe,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC;CAC9C;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,eAAe,GAAG,wBAAwB,GAAG,cAAc,GAAG,GAAG,CAAC;AAE9E;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC,eAAe,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC;AAElH;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC;IAE3B;;OAEG;IACH,aAAa,CAAC,EAAE;QAAE,KAAK,IAAI,IAAI,CAAA;KAAE,CAAC;IAElC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,MAAM;IAC9C;;OAEG;IACI,IAAI,EAAE,aAAa,GAAG,IAAI,CAAQ;IAEzC,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,OAAO,CAA6B;IAE5C,WAAkB,QAAQ,IAAI,SAAS,CAAC,OAAO,iBAAiB,EAAE,OAAO,YAAY,CAAC,CAGrF;IAED,WAAkB,UAAU,IAAI,aAAa,CAE5C;IAEM,IAAI,IAAI,IAAI;IAQnB;;;;;OAKG;IACI,IAAI,CACV,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,iBAAiB,EACzB,EAAE,KAAqC,EAAE,UAAU,EAAE,GAAG,OAAO,EAAE,GAAE,sBAA2B,GAC5F,OAAO;IAwBV;;;OAGG;IACI,IAAI,CACV,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,UAAU,EAClB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,GAAE,sBAA2B,GAChE,IAAI;IAqDP;;OAEG;IACI,IAAI,IAAI,IAAI;IAuBH,OAAO,IAAI,IAAI;IAK/B,OAAO,KAAK,QAAQ,GAEnB;CACD"}
@@ -1,5 +1,5 @@
1
1
  import { ContextualBalloon, DropdownMenuRootListView, KeystrokeHandler, Notification, Plugin, clickOutsideHandler } from 'ckeditor5';
2
- import { ElementOrPositionCommand, isInDocument } from 'ckeditor5-elements-core';
2
+ import { isInDocument } from 'ckeditor5-elements-core';
3
3
  import ElementMenuView from './elementMenuView.js';
4
4
  /**
5
5
  * Shows menus in a balloon: the menu of an element, built from commands, submenus and separators (see {@link open}),
@@ -40,11 +40,11 @@ export default class ElementMenu extends Plugin {
40
40
  * Returns `false` when there are no items.
41
41
  */
42
42
  open(element, target, config, { label = this.editor.t('Element menu'), isObsolete, ...options } = {}) {
43
- const items = cleanItems(config(element, this.editor));
44
- if (!items.length) {
43
+ const view = new ElementMenuView(this.editor.locale, this.editor.ui.view.body, config(element, this.editor), element);
44
+ if (view.isEmpty) {
45
+ view.destroy();
45
46
  return false;
46
47
  }
47
- const view = new ElementMenuView(this.editor.locale, this.editor.ui.view.body, items, element);
48
48
  view.ariaLabel = label;
49
49
  this.show(view, target, {
50
50
  ...options,
@@ -129,28 +129,6 @@ export default class ElementMenu extends Plugin {
129
129
  return this.editor.plugins.get(ContextualBalloon);
130
130
  }
131
131
  }
132
- /**
133
- * Returns the items without missing ones, submenus without items, and separators at the start or the end, or
134
- * repeated ones.
135
- */
136
- function cleanItems(items) {
137
- const result = [];
138
- for (const item of items) {
139
- const cleaned = item === '|' || item instanceof ElementOrPositionCommand || !item ? item : cleanSubmenu(item);
140
- if (!cleaned || (cleaned === '|' && (!result.length || result.at(-1) === '|'))) {
141
- continue;
142
- }
143
- result.push(cleaned);
144
- }
145
- if (result.at(-1) === '|') {
146
- result.pop();
147
- }
148
- return result;
149
- }
150
- function cleanSubmenu(submenu) {
151
- const items = cleanItems(submenu.items);
152
- return items.length ? { ...submenu, items } : null;
153
- }
154
132
  /**
155
133
  * Returns the panels of the open nested menus of CKEditor's dropdown menu.
156
134
  */
@@ -1 +1 @@
1
- {"version":3,"file":"elementMenu.js","sourceRoot":"","sources":["../src/elementMenu.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"elementMenu.js","sourceRoot":"","sources":["../src/elementMenu.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ import { type ElementMenuItem } from './elementMenu.js';
10
10
  * reflect the command title, icon and {@link ElementOrPositionCommand#getState state} for the target, and execute the
11
11
  * command for it. It also adds the separators, which CKEditor's menu definitions do not have.
12
12
  *
13
+ * Missing items are skipped, and submenus without items, and separators at the start or the end, or repeated ones.
13
14
  * Submenus are enabled when one of their items is. Right-clicking the menu does not open the native context menu.
14
15
  */
15
16
  export default class ElementMenuView extends DropdownMenuRootListView {
@@ -17,6 +18,10 @@ export default class ElementMenuView extends DropdownMenuRootListView {
17
18
  * The element or position the commands are executed for.
18
19
  */
19
20
  readonly target: ElementOrPosition;
21
+ /**
22
+ * Whether the menu has no items: all were missing.
23
+ */
24
+ readonly isEmpty: boolean;
20
25
  private readonly _commands;
21
26
  private readonly _submenus;
22
27
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"elementMenuView.d.ts","sourceRoot":"","sources":["../src/elementMenuView.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,wBAAwB,EAExB,KAAK,cAAc,EAGnB,KAAK,MAAM,EACX,MAAM,WAAW,CAAC;AACnB,OAAO,EAAiD,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAChH,OAAO,EAAE,KAAK,eAAe,EAAuB,MAAM,kBAAkB,CAAC;AAE7E;;;;;;;;;;GAUG;AACH,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,wBAAwB;IACpE;;OAEG;IACH,SAAgB,MAAM,EAAE,iBAAiB,CAAC;IAE1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwC;IAClE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;IAExD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwB;gBAGnD,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,SAAS,CAAC,eAAe,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,EACtD,MAAM,EAAE,iBAAiB;IAkB1B;;;OAGG;IACa,MAAM,IAAI,IAAI;IAqC9B,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,UAAU;CASlB"}
1
+ {"version":3,"file":"elementMenuView.d.ts","sourceRoot":"","sources":["../src/elementMenuView.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,wBAAwB,EAExB,KAAK,cAAc,EAGnB,KAAK,MAAM,EACX,MAAM,WAAW,CAAC;AACnB,OAAO,EAAiD,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAChH,OAAO,EAAE,KAAK,eAAe,EAAuB,MAAM,kBAAkB,CAAC;AAE7E;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,wBAAwB;IACpE;;OAEG;IACH,SAAgB,MAAM,EAAE,iBAAiB,CAAC;IAE1C;;OAEG;IACH,SAAgB,OAAO,EAAE,OAAO,CAAC;IAEjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwC;IAClE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2B;IAErD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwB;gBAGnD,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,SAAS,CAAC,eAAe,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,EACtD,MAAM,EAAE,iBAAiB;IAoB1B;;;OAGG;IACa,MAAM,IAAI,IAAI;IAqC9B,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,UAAU;CASlB"}
@@ -10,6 +10,7 @@ import {} from './elementMenu.js';
10
10
  * reflect the command title, icon and {@link ElementOrPositionCommand#getState state} for the target, and execute the
11
11
  * command for it. It also adds the separators, which CKEditor's menu definitions do not have.
12
12
  *
13
+ * Missing items are skipped, and submenus without items, and separators at the start or the end, or repeated ones.
13
14
  * Submenus are enabled when one of their items is. Right-clicking the menu does not open the native context menu.
14
15
  */
15
16
  export default class ElementMenuView extends DropdownMenuRootListView {
@@ -17,6 +18,10 @@ export default class ElementMenuView extends DropdownMenuRootListView {
17
18
  * The element or position the commands are executed for.
18
19
  */
19
20
  target;
21
+ /**
22
+ * Whether the menu has no items: all were missing.
23
+ */
24
+ isEmpty;
20
25
  _commands;
21
26
  _submenus;
22
27
  /**
@@ -25,8 +30,10 @@ export default class ElementMenuView extends DropdownMenuRootListView {
25
30
  _separators;
26
31
  constructor(locale, bodyCollection, items, target) {
27
32
  const maps = { commands: new Map(), submenus: new Map(), separators: new Map() };
28
- super(locale, bodyCollection, createDefinitions(items, '', maps));
33
+ const menuItems = cleanItems(items);
34
+ super(locale, bodyCollection, createDefinitions(menuItems, '', maps));
29
35
  this.target = target;
36
+ this.isEmpty = !menuItems.length;
30
37
  this._commands = maps.commands;
31
38
  this._submenus = maps.submenus;
32
39
  this._separators = maps.separators;
@@ -81,9 +88,31 @@ export default class ElementMenuView extends DropdownMenuRootListView {
81
88
  }
82
89
  return item instanceof ElementOrPositionCommand
83
90
  ? item.getState(this.target).isEnabled
84
- : item.items.some(child => !!child && this._isEnabled(child));
91
+ : item.items.some(child => this._isEnabled(child));
85
92
  }
86
93
  }
94
+ /**
95
+ * Returns the items without missing ones, submenus without items, and separators at the start or the end, or
96
+ * repeated ones.
97
+ */
98
+ function cleanItems(items) {
99
+ const result = [];
100
+ for (const item of items) {
101
+ const cleaned = item === '|' || item instanceof ElementOrPositionCommand || !item ? item : cleanSubmenu(item);
102
+ if (!cleaned || (cleaned === '|' && (!result.length || result.at(-1) === '|'))) {
103
+ continue;
104
+ }
105
+ result.push(cleaned);
106
+ }
107
+ if (result.at(-1) === '|') {
108
+ result.pop();
109
+ }
110
+ return result;
111
+ }
112
+ function cleanSubmenu(submenu) {
113
+ const items = cleanItems(submenu.items);
114
+ return items.length ? { ...submenu, items } : null;
115
+ }
87
116
  /**
88
117
  * Creates CKEditor's menu definitions for the items. The ids are paths of positions (e.g. `'2.0'`). Collects the
89
118
  * commands and submenus by id, and the positions of the separators by the id of their submenu.
@@ -93,9 +122,6 @@ function createDefinitions(items, parentId, maps) {
93
122
  let position = 0;
94
123
  for (const item of items) {
95
124
  const id = parentId ? `${parentId}.${String(position)}` : String(position);
96
- if (!item) {
97
- continue;
98
- }
99
125
  if (item === '|') {
100
126
  maps.separators.set(parentId, [...(maps.separators.get(parentId) ?? []), position]);
101
127
  }
@@ -1 +1 @@
1
- {"version":3,"file":"elementMenuView.js","sourceRoot":"","sources":["../src/elementMenuView.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"elementMenuView.js","sourceRoot":"","sources":["../src/elementMenuView.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -8,8 +8,8 @@
8
8
  */
9
9
  export { default as ElementMenu, type ElementMenuConfig, type ElementMenuItem, type ElementMenuShowOptions, type ElementSubmenu } from './elementMenu.js';
10
10
  export { default as ElementContextMenu } from './contextMenu/elementContextMenu.js';
11
- export { default as Breadcrumbs, type BreadcrumbsConfig } from './breadcrumbs/breadcrumbs.js';
12
- export { default as QuickInsert, type QuickInsertConfig } from './quickInsert/quickInsert.js';
11
+ export { default as ElementBreadcrumbs, type ElementBreadcrumbsConfig } from './breadcrumbs/elementBreadcrumbs.js';
12
+ export { default as ElementQuickInsert, type ElementQuickInsertConfig } from './quickInsert/elementQuickInsert.js';
13
13
  export { default as QuickInsertCommand } from './quickInsert/quickInsertCommand.js';
14
14
  export { default as QuickInsertPositionCommand, type QuickInsertPlacement } from './quickInsert/quickInsertPositionCommand.js';
15
15
  export { default as ElementMenuView } from './elementMenuView.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACN,OAAO,IAAI,WAAW,EACtB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAC9F,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAG9F,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EACN,OAAO,IAAI,0BAA0B,EACrC,KAAK,oBAAoB,EACzB,MAAM,6CAA6C,CAAC;AAGrD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EACN,OAAO,IAAI,eAAe,EAC1B,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,EAC3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACN,OAAO,IAAI,kBAAkB,EAC7B,KAAK,cAAc,EACnB,KAAK,yBAAyB,EAC9B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAG5G,OAAO,EACN,OAAO,IAAI,mBAAmB,EAC9B,KAAK,4BAA4B,EACjC,MAAM,sCAAsC,CAAC;AAG9C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEvF,OAAO,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACN,OAAO,IAAI,WAAW,EACtB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,KAAK,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AACnH,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,KAAK,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAGnH,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EACN,OAAO,IAAI,0BAA0B,EACrC,KAAK,oBAAoB,EACzB,MAAM,6CAA6C,CAAC;AAGrD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EACN,OAAO,IAAI,eAAe,EAC1B,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,EAC3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACN,OAAO,IAAI,kBAAkB,EAC7B,KAAK,cAAc,EACnB,KAAK,yBAAyB,EAC9B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAG5G,OAAO,EACN,OAAO,IAAI,mBAAmB,EAC9B,KAAK,4BAA4B,EACjC,MAAM,sCAAsC,CAAC;AAG9C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEvF,OAAO,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -9,8 +9,8 @@
9
9
  // Plugins.
10
10
  export { default as ElementMenu } from './elementMenu.js';
11
11
  export { default as ElementContextMenu } from './contextMenu/elementContextMenu.js';
12
- export { default as Breadcrumbs } from './breadcrumbs/breadcrumbs.js';
13
- export { default as QuickInsert } from './quickInsert/quickInsert.js';
12
+ export { default as ElementBreadcrumbs } from './breadcrumbs/elementBreadcrumbs.js';
13
+ export { default as ElementQuickInsert } from './quickInsert/elementQuickInsert.js';
14
14
  // Commands.
15
15
  export { default as QuickInsertCommand } from './quickInsert/quickInsertCommand.js';
16
16
  export { default as QuickInsertPositionCommand } from './quickInsert/quickInsertPositionCommand.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,WAAW;AACX,OAAO,EACN,OAAO,IAAI,WAAW,EAKtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,WAAW,EAA0B,MAAM,8BAA8B,CAAC;AAC9F,OAAO,EAAE,OAAO,IAAI,WAAW,EAA0B,MAAM,8BAA8B,CAAC;AAE9F,YAAY;AACZ,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EACN,OAAO,IAAI,0BAA0B,EAErC,MAAM,6CAA6C,CAAC;AAErD,SAAS;AACT,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EACN,OAAO,IAAI,eAAe,EAG1B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACN,OAAO,IAAI,kBAAkB,EAG7B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAwB,MAAM,sCAAsC,CAAC;AAE5G,aAAa;AACb,OAAO,EACN,OAAO,IAAI,mBAAmB,EAE9B,MAAM,sCAAsC,CAAC;AAE9C,SAAS;AACT,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEvF,OAAO,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,WAAW;AACX,OAAO,EACN,OAAO,IAAI,WAAW,EAKtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAiC,MAAM,qCAAqC,CAAC;AACnH,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAiC,MAAM,qCAAqC,CAAC;AAEnH,YAAY;AACZ,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EACN,OAAO,IAAI,0BAA0B,EAErC,MAAM,6CAA6C,CAAC;AAErD,SAAS;AACT,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EACN,OAAO,IAAI,eAAe,EAG1B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACN,OAAO,IAAI,kBAAkB,EAG7B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAwB,MAAM,sCAAsC,CAAC;AAE5G,aAAa;AACb,OAAO,EACN,OAAO,IAAI,mBAAmB,EAE9B,MAAM,sCAAsC,CAAC;AAE9C,SAAS;AACT,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEvF,OAAO,mBAAmB,CAAC"}