@syncfusion/ej2-ribbon 33.2.4 → 33.2.5

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.
@@ -2123,7 +2123,16 @@ class RibbonDropDown {
2123
2123
  }
2124
2124
  },
2125
2125
  beforeItemRender: dropDownSettings.beforeItemRender,
2126
- beforeOpen: dropDownSettings.beforeOpen,
2126
+ beforeOpen: (e) => {
2127
+ const ddb = getComponent(buttonEle, DropDownButton);
2128
+ const target = this.parent.getAppendToElement();
2129
+ if (ddb && ddb.dropDown && !target.contains(ddb.dropDown.element)) {
2130
+ target.appendChild(ddb.dropDown.element);
2131
+ }
2132
+ if (dropDownSettings.beforeOpen) {
2133
+ dropDownSettings.beforeOpen.call(this, e);
2134
+ }
2135
+ },
2127
2136
  close: (e) => {
2128
2137
  if (dropDownSettings.close) {
2129
2138
  dropDownSettings.close.call(this, e);
@@ -2226,6 +2235,12 @@ class RibbonDropDown {
2226
2235
  cssClass: VERTICAL_DDB + SPACE + RIBBON_GROUP_OVERFLOW_DDB,
2227
2236
  iconPosition: 'Top',
2228
2237
  content: name,
2238
+ beforeOpen: () => {
2239
+ const target = this.parent.getAppendToElement();
2240
+ if (dropdown && dropdown.dropDown && !target.contains(dropdown.dropDown.element)) {
2241
+ target.appendChild(dropdown.dropDown.element);
2242
+ }
2243
+ },
2229
2244
  beforeClose: (args) => {
2230
2245
  args.cancel = !isNullOrUndefined(args.event && closest(args.event.target, '.' + RIBBON_POPUP_CONTROL));
2231
2246
  }
@@ -2565,7 +2580,16 @@ class RibbonSplitButton {
2565
2580
  }
2566
2581
  },
2567
2582
  beforeItemRender: splitButtonSettings.beforeItemRender,
2568
- beforeOpen: splitButtonSettings.beforeOpen,
2583
+ beforeOpen: () => {
2584
+ const popupEl = splitbutton.dropDown.element;
2585
+ const target = this.parent.getAppendToElement();
2586
+ if (popupEl && !target.contains(popupEl)) {
2587
+ target.appendChild(popupEl);
2588
+ }
2589
+ if (splitButtonSettings.beforeOpen) {
2590
+ splitButtonSettings.beforeOpen.call(this);
2591
+ }
2592
+ },
2569
2593
  close: () => {
2570
2594
  splitbutton['wrapper'].classList.remove(RIBBON_POPUP_OPEN);
2571
2595
  if (splitButtonSettings.close) {
@@ -4529,6 +4553,16 @@ let Ribbon = Ribbon_1 = class Ribbon extends Component {
4529
4553
  }
4530
4554
  return modules;
4531
4555
  }
4556
+ getAppendToElement() {
4557
+ if (this.isAngular) {
4558
+ const cdkPane = this.element.closest('.cdk-overlay-pane');
4559
+ const popoverEl = this.element.closest('[popover]');
4560
+ if (cdkPane && popoverEl) {
4561
+ return cdkPane;
4562
+ }
4563
+ }
4564
+ return document.body;
4565
+ }
4532
4566
  initialize() {
4533
4567
  this.element.id = this.element.id || getUniqueID('e-' + this.getModuleName());
4534
4568
  this.initializeLocale();
@@ -6499,6 +6533,10 @@ let Ribbon = Ribbon_1 = class Ribbon extends Component {
6499
6533
  enableRtl: this.enableRtl,
6500
6534
  enablePersistence: this.enablePersistence,
6501
6535
  beforeOpen: (args) => {
6536
+ const target = this.getAppendToElement();
6537
+ if (overflowDDB && overflowDDB.dropDown && !target.contains(overflowDDB.dropDown.element)) {
6538
+ target.appendChild(overflowDDB.dropDown.element);
6539
+ }
6502
6540
  const eventArgs = { element: args.element, event: args.event, cancel: args.cancel };
6503
6541
  this.trigger('overflowPopupOpen', eventArgs, (ribbonArgs) => {
6504
6542
  if (ribbonArgs.cancel) {