@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.
- package/dist/ej2-ribbon.umd.min.js +2 -2
- package/dist/ej2-ribbon.umd.min.js.map +1 -1
- package/dist/es6/ej2-ribbon.es2015.js +60 -3
- package/dist/es6/ej2-ribbon.es2015.js.map +1 -1
- package/dist/es6/ej2-ribbon.es5.js +64 -7
- package/dist/es6/ej2-ribbon.es5.js.map +1 -1
- package/dist/global/ej2-ribbon.min.js +2 -2
- package/dist/global/ej2-ribbon.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +5 -5
- package/src/ribbon/base/ribbon.d.ts +1 -0
- package/src/ribbon/base/ribbon.js +14 -0
- package/src/ribbon/items/ribbon-dropdown.js +16 -1
- package/src/ribbon/items/ribbon-gallery.d.ts +1 -0
- package/src/ribbon/items/ribbon-gallery.js +24 -5
- package/src/ribbon/items/ribbon-splitbutton.js +10 -1
|
@@ -2123,7 +2123,16 @@ class RibbonDropDown {
|
|
|
2123
2123
|
}
|
|
2124
2124
|
},
|
|
2125
2125
|
beforeItemRender: dropDownSettings.beforeItemRender,
|
|
2126
|
-
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:
|
|
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) {
|
|
@@ -3902,7 +3926,7 @@ class RibbonGallery {
|
|
|
3902
3926
|
setWrapperStyle(popup, popupContainerItems) {
|
|
3903
3927
|
if (popup.width !== 'auto') {
|
|
3904
3928
|
popupContainerItems.forEach((ele) => {
|
|
3905
|
-
ele.style.flexFlow = 'wrap';
|
|
3929
|
+
ele.style.flexFlow = 'column wrap';
|
|
3906
3930
|
});
|
|
3907
3931
|
}
|
|
3908
3932
|
}
|
|
@@ -4175,6 +4199,9 @@ class RibbonGallery {
|
|
|
4175
4199
|
const popupContainerItems = popupContainerEle.querySelectorAll('.e-ribbon-gallery-container');
|
|
4176
4200
|
this.setWrapperStyle(popup, popupContainerItems);
|
|
4177
4201
|
this.setFoucsToFirstItem(popupContainerEle, true, item.id);
|
|
4202
|
+
if (popup.width !== 'auto') {
|
|
4203
|
+
this.alignGalleryPopupLeft(popupContainerEle, buttonEle);
|
|
4204
|
+
}
|
|
4178
4205
|
},
|
|
4179
4206
|
beforeClose: (args) => {
|
|
4180
4207
|
const isCancelled = this.popupEvents(args.event, item.gallerySettings, 'popupClose', false);
|
|
@@ -4345,6 +4372,22 @@ class RibbonGallery {
|
|
|
4345
4372
|
this.handleGalleryPopupNavigation(e, popupEle, isDropdown, itemID, popup, gallerySettings);
|
|
4346
4373
|
};
|
|
4347
4374
|
}
|
|
4375
|
+
alignGalleryPopupLeft(popup, buttonEle) {
|
|
4376
|
+
const popupEl = popup.parentElement;
|
|
4377
|
+
if (!popupEl) {
|
|
4378
|
+
return;
|
|
4379
|
+
}
|
|
4380
|
+
const currentLeft = parseFloat(popupEl.style.left);
|
|
4381
|
+
const buttonRect = buttonEle.getBoundingClientRect();
|
|
4382
|
+
const popupWidth = popupEl.offsetWidth;
|
|
4383
|
+
let targetLeft = buttonRect.left - popupWidth - 1;
|
|
4384
|
+
if (targetLeft < 0) {
|
|
4385
|
+
targetLeft = 1;
|
|
4386
|
+
}
|
|
4387
|
+
if (Math.abs(currentLeft - targetLeft) > 1) {
|
|
4388
|
+
popupEl.style.left = `${targetLeft}px`;
|
|
4389
|
+
}
|
|
4390
|
+
}
|
|
4348
4391
|
handleGalleryPopupNavigation(e, popupEle, isDropdown, itemID, popup, gallerySettings) {
|
|
4349
4392
|
const galleryPopupEle = popupEle.querySelectorAll('.e-ribbon-gallery-item');
|
|
4350
4393
|
if (galleryPopupEle) {
|
|
@@ -4510,6 +4553,16 @@ let Ribbon = Ribbon_1 = class Ribbon extends Component {
|
|
|
4510
4553
|
}
|
|
4511
4554
|
return modules;
|
|
4512
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
|
+
}
|
|
4513
4566
|
initialize() {
|
|
4514
4567
|
this.element.id = this.element.id || getUniqueID('e-' + this.getModuleName());
|
|
4515
4568
|
this.initializeLocale();
|
|
@@ -6480,6 +6533,10 @@ let Ribbon = Ribbon_1 = class Ribbon extends Component {
|
|
|
6480
6533
|
enableRtl: this.enableRtl,
|
|
6481
6534
|
enablePersistence: this.enablePersistence,
|
|
6482
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
|
+
}
|
|
6483
6540
|
const eventArgs = { element: args.element, event: args.event, cancel: args.cancel };
|
|
6484
6541
|
this.trigger('overflowPopupOpen', eventArgs, (ribbonArgs) => {
|
|
6485
6542
|
if (ribbonArgs.cancel) {
|