@syncfusion/ej2-ribbon 33.2.3 → 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.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 33.2.3
3
+ * version : 33.2.5
4
4
  * Copyright Syncfusion Inc. 2001 - 2025. All rights reserved.
5
5
  * Use of this code is subject to the terms of our license.
6
6
  * A copy of the current license can be obtained at any time by e-mailing
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@syncfusion/ej2-ribbon",
3
- "version": "33.2.3",
3
+ "version": "33.2.5",
4
4
  "description": "Essential JS 2 Component",
5
5
  "author": "Syncfusion Inc.",
6
6
  "license": "SEE LICENSE IN license",
@@ -10,11 +10,11 @@
10
10
  "typings": "index.d.ts",
11
11
  "dependencies": {
12
12
  "@syncfusion/ej2-base": "~33.2.3",
13
- "@syncfusion/ej2-buttons": "~33.2.3",
14
- "@syncfusion/ej2-dropdowns": "~33.2.3",
13
+ "@syncfusion/ej2-buttons": "~33.2.5",
14
+ "@syncfusion/ej2-dropdowns": "~33.2.5",
15
15
  "@syncfusion/ej2-lists": "~33.2.3",
16
- "@syncfusion/ej2-navigations": "~33.2.3",
17
- "@syncfusion/ej2-popups": "~33.2.3",
16
+ "@syncfusion/ej2-navigations": "~33.2.4",
17
+ "@syncfusion/ej2-popups": "~33.2.5",
18
18
  "@syncfusion/ej2-splitbuttons": "~33.2.3"
19
19
  },
20
20
  "devDependencies": {},
@@ -290,6 +290,7 @@ export declare class Ribbon extends Component<HTMLElement> implements INotifyPro
290
290
  * @hidden
291
291
  */
292
292
  protected requiredModules(): ModuleDeclaration[];
293
+ getAppendToElement(): HTMLElement;
293
294
  private initialize;
294
295
  private initializeLocale;
295
296
  private wireEvents;
@@ -124,6 +124,16 @@ var Ribbon = /** @class */ (function (_super) {
124
124
  }
125
125
  return modules;
126
126
  };
127
+ Ribbon.prototype.getAppendToElement = function () {
128
+ if (this.isAngular) {
129
+ var cdkPane = this.element.closest('.cdk-overlay-pane');
130
+ var popoverEl = this.element.closest('[popover]');
131
+ if (cdkPane && popoverEl) {
132
+ return cdkPane;
133
+ }
134
+ }
135
+ return document.body;
136
+ };
127
137
  Ribbon.prototype.initialize = function () {
128
138
  this.element.id = this.element.id || getUniqueID('e-' + this.getModuleName());
129
139
  this.initializeLocale();
@@ -2126,6 +2136,10 @@ var Ribbon = /** @class */ (function (_super) {
2126
2136
  enableRtl: this.enableRtl,
2127
2137
  enablePersistence: this.enablePersistence,
2128
2138
  beforeOpen: function (args) {
2139
+ var target = _this.getAppendToElement();
2140
+ if (overflowDDB && overflowDDB.dropDown && !target.contains(overflowDDB.dropDown.element)) {
2141
+ target.appendChild(overflowDDB.dropDown.element);
2142
+ }
2129
2143
  var eventArgs = { element: args.element, event: args.event, cancel: args.cancel };
2130
2144
  _this.trigger('overflowPopupOpen', eventArgs, function (ribbonArgs) {
2131
2145
  if (ribbonArgs.cancel) {
@@ -52,7 +52,16 @@ var RibbonDropDown = /** @class */ (function () {
52
52
  }
53
53
  },
54
54
  beforeItemRender: dropDownSettings.beforeItemRender,
55
- beforeOpen: dropDownSettings.beforeOpen,
55
+ beforeOpen: function (e) {
56
+ var ddb = getComponent(buttonEle, DropDownButton);
57
+ var target = _this.parent.getAppendToElement();
58
+ if (ddb && ddb.dropDown && !target.contains(ddb.dropDown.element)) {
59
+ target.appendChild(ddb.dropDown.element);
60
+ }
61
+ if (dropDownSettings.beforeOpen) {
62
+ dropDownSettings.beforeOpen.call(_this, e);
63
+ }
64
+ },
56
65
  close: function (e) {
57
66
  if (dropDownSettings.close) {
58
67
  dropDownSettings.close.call(_this, e);
@@ -158,6 +167,12 @@ var RibbonDropDown = /** @class */ (function () {
158
167
  cssClass: VERTICAL_DDB + SPACE + RIBBON_GROUP_OVERFLOW_DDB,
159
168
  iconPosition: 'Top',
160
169
  content: name,
170
+ beforeOpen: function () {
171
+ var target = _this.parent.getAppendToElement();
172
+ if (dropdown && dropdown.dropDown && !target.contains(dropdown.dropDown.element)) {
173
+ target.appendChild(dropdown.dropDown.element);
174
+ }
175
+ },
161
176
  beforeClose: function (args) {
162
177
  args.cancel = !isNullOrUndefined(args.event && closest(args.event.target, '.' + RIBBON_POPUP_CONTROL));
163
178
  }
@@ -91,6 +91,7 @@ export declare class RibbonGallery {
91
91
  */
92
92
  hideGalleryPopup(id: string): void;
93
93
  private setFoucsToFirstItem;
94
+ private alignGalleryPopupLeft;
94
95
  private handleGalleryPopupNavigation;
95
96
  private createGalleryTemplate;
96
97
  private createGalleryPopupTemplate;
@@ -269,7 +269,7 @@ var RibbonGallery = /** @class */ (function () {
269
269
  RibbonGallery.prototype.setWrapperStyle = function (popup, popupContainerItems) {
270
270
  if (popup.width !== 'auto') {
271
271
  popupContainerItems.forEach(function (ele) {
272
- ele.style.flexFlow = 'wrap';
272
+ ele.style.flexFlow = 'column wrap';
273
273
  });
274
274
  }
275
275
  };
@@ -499,12 +499,12 @@ var RibbonGallery = /** @class */ (function () {
499
499
  RibbonGallery.prototype.addOverFlowEvents = function (item, itemEle) {
500
500
  var _this = this;
501
501
  if (itemEle.closest('.e-ribbon-overflow-target')) {
502
- var buttonEle = this.parent.createElement('button', {
502
+ var buttonEle_1 = this.parent.createElement('button', {
503
503
  id: item.id
504
504
  });
505
- itemEle.appendChild(buttonEle);
505
+ itemEle.appendChild(buttonEle_1);
506
506
  if (itemEle.querySelector('.e-ribbon-gallery-wrapper').classList.contains('e-disabled')) {
507
- buttonEle.classList.add('e-disabled');
507
+ buttonEle_1.classList.add('e-disabled');
508
508
  }
509
509
  itemEle.querySelector('.e-ribbon-gallery-wrapper').classList.add('e-hidden');
510
510
  itemEle.querySelectorAll('.e-ribbon-gallery-container').forEach(function (ele) {
@@ -544,6 +544,9 @@ var RibbonGallery = /** @class */ (function () {
544
544
  var popupContainerItems = popupContainerEle_1.querySelectorAll('.e-ribbon-gallery-container');
545
545
  _this.setWrapperStyle(popup_1, popupContainerItems);
546
546
  _this.setFoucsToFirstItem(popupContainerEle_1, true, item.id);
547
+ if (popup_1.width !== 'auto') {
548
+ _this.alignGalleryPopupLeft(popupContainerEle_1, buttonEle_1);
549
+ }
547
550
  },
548
551
  beforeClose: function (args) {
549
552
  var isCancelled = _this.popupEvents(args.event, item.gallerySettings, 'popupClose', false);
@@ -551,7 +554,7 @@ var RibbonGallery = /** @class */ (function () {
551
554
  args.cancel = true;
552
555
  }
553
556
  }
554
- }, buttonEle);
557
+ }, buttonEle_1);
555
558
  if (popup_1.width !== 'auto') {
556
559
  dropdown.dropDown.width = formatUnit(popup_1.width);
557
560
  }
@@ -715,6 +718,22 @@ var RibbonGallery = /** @class */ (function () {
715
718
  _this.handleGalleryPopupNavigation(e, popupEle, isDropdown, itemID, popup, gallerySettings);
716
719
  };
717
720
  };
721
+ RibbonGallery.prototype.alignGalleryPopupLeft = function (popup, buttonEle) {
722
+ var popupEl = popup.parentElement;
723
+ if (!popupEl) {
724
+ return;
725
+ }
726
+ var currentLeft = parseFloat(popupEl.style.left);
727
+ var buttonRect = buttonEle.getBoundingClientRect();
728
+ var popupWidth = popupEl.offsetWidth;
729
+ var targetLeft = buttonRect.left - popupWidth - 1;
730
+ if (targetLeft < 0) {
731
+ targetLeft = 1;
732
+ }
733
+ if (Math.abs(currentLeft - targetLeft) > 1) {
734
+ popupEl.style.left = targetLeft + "px";
735
+ }
736
+ };
718
737
  RibbonGallery.prototype.handleGalleryPopupNavigation = function (e, popupEle, isDropdown, itemID, popup, gallerySettings) {
719
738
  var galleryPopupEle = popupEle.querySelectorAll('.e-ribbon-gallery-item');
720
739
  if (galleryPopupEle) {
@@ -49,7 +49,16 @@ var RibbonSplitButton = /** @class */ (function () {
49
49
  }
50
50
  },
51
51
  beforeItemRender: splitButtonSettings.beforeItemRender,
52
- beforeOpen: splitButtonSettings.beforeOpen,
52
+ beforeOpen: function () {
53
+ var popupEl = splitbutton.dropDown.element;
54
+ var target = _this.parent.getAppendToElement();
55
+ if (popupEl && !target.contains(popupEl)) {
56
+ target.appendChild(popupEl);
57
+ }
58
+ if (splitButtonSettings.beforeOpen) {
59
+ splitButtonSettings.beforeOpen.call(_this);
60
+ }
61
+ },
53
62
  close: function () {
54
63
  splitbutton['wrapper'].classList.remove(RIBBON_POPUP_OPEN);
55
64
  if (splitButtonSettings.close) {