@syncfusion/ej2-ribbon 29.2.4 → 30.1.39

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 (101) hide show
  1. package/.eslintrc.json +2 -0
  2. package/dist/ej2-ribbon.umd.min.js +2 -2
  3. package/dist/ej2-ribbon.umd.min.js.map +1 -1
  4. package/dist/es6/ej2-ribbon.es2015.js +66 -39
  5. package/dist/es6/ej2-ribbon.es2015.js.map +1 -1
  6. package/dist/es6/ej2-ribbon.es5.js +72 -45
  7. package/dist/es6/ej2-ribbon.es5.js.map +1 -1
  8. package/dist/global/ej2-ribbon.min.js +2 -2
  9. package/dist/global/ej2-ribbon.min.js.map +1 -1
  10. package/dist/global/index.d.ts +1 -1
  11. package/package.json +19 -54
  12. package/src/ribbon/base/ribbon.d.ts +1 -0
  13. package/src/ribbon/base/ribbon.js +16 -9
  14. package/src/ribbon/items/ribbon-gallery.d.ts +1 -0
  15. package/src/ribbon/items/ribbon-gallery.js +16 -13
  16. package/src/ribbon/items/ribbon-groupbutton.js +32 -20
  17. package/src/ribbon/modules/ribbon-filemenu.js +8 -3
  18. package/styles/bds-lite.css +216 -213
  19. package/styles/bds.css +219 -213
  20. package/styles/bootstrap-dark-lite.css +216 -213
  21. package/styles/bootstrap-dark.css +219 -213
  22. package/styles/bootstrap-lite.css +216 -213
  23. package/styles/bootstrap.css +219 -213
  24. package/styles/bootstrap4-lite.css +216 -213
  25. package/styles/bootstrap4.css +219 -213
  26. package/styles/bootstrap5-dark-lite.css +216 -213
  27. package/styles/bootstrap5-dark.css +219 -213
  28. package/styles/bootstrap5-lite.css +216 -213
  29. package/styles/bootstrap5.3-lite.css +216 -213
  30. package/styles/bootstrap5.3.css +219 -213
  31. package/styles/bootstrap5.css +219 -213
  32. package/styles/fabric-dark-lite.css +216 -213
  33. package/styles/fabric-dark.css +219 -213
  34. package/styles/fabric-lite.css +216 -213
  35. package/styles/fabric.css +219 -213
  36. package/styles/fluent-dark-lite.css +216 -213
  37. package/styles/fluent-dark.css +219 -213
  38. package/styles/fluent-lite.css +216 -213
  39. package/styles/fluent.css +219 -213
  40. package/styles/fluent2-lite.css +218 -215
  41. package/styles/fluent2.css +221 -215
  42. package/styles/highcontrast-light-lite.css +216 -213
  43. package/styles/highcontrast-light.css +219 -213
  44. package/styles/highcontrast-lite.css +216 -213
  45. package/styles/highcontrast.css +219 -213
  46. package/styles/material-dark-lite.css +216 -213
  47. package/styles/material-dark.css +219 -213
  48. package/styles/material-lite.css +216 -213
  49. package/styles/material.css +219 -213
  50. package/styles/material3-dark-lite.css +216 -213
  51. package/styles/material3-dark.css +219 -213
  52. package/styles/material3-lite.css +216 -213
  53. package/styles/material3.css +219 -213
  54. package/styles/ribbon/_bds-definition.scss +1 -1
  55. package/styles/ribbon/_bigger.scss +4 -0
  56. package/styles/ribbon/_bootstrap-dark-definition.scss +1 -1
  57. package/styles/ribbon/_bootstrap-definition.scss +1 -1
  58. package/styles/ribbon/_bootstrap4-definition.scss +1 -1
  59. package/styles/ribbon/_bootstrap5-definition.scss +1 -1
  60. package/styles/ribbon/_bootstrap5.3-definition.scss +1 -1
  61. package/styles/ribbon/_fabric-dark-definition.scss +1 -1
  62. package/styles/ribbon/_fabric-definition.scss +1 -1
  63. package/styles/ribbon/_fluent-definition.scss +1 -1
  64. package/styles/ribbon/_fluent2-definition.scss +3 -3
  65. package/styles/ribbon/_fusionnew-definition.scss +1 -1
  66. package/styles/ribbon/_highcontrast-definition.scss +1 -1
  67. package/styles/ribbon/_highcontrast-light-definition.scss +1 -1
  68. package/styles/ribbon/_layout.scss +5 -1
  69. package/styles/ribbon/_material-dark-definition.scss +1 -1
  70. package/styles/ribbon/_material-definition.scss +1 -1
  71. package/styles/ribbon/_material3-definition.scss +1 -1
  72. package/styles/ribbon/_tailwind-definition.scss +1 -1
  73. package/styles/ribbon/_tailwind3-definition.scss +2 -2
  74. package/styles/ribbon/_theme.scss +40 -33
  75. package/styles/ribbon/bds.css +219 -213
  76. package/styles/ribbon/bootstrap-dark.css +219 -213
  77. package/styles/ribbon/bootstrap.css +219 -213
  78. package/styles/ribbon/bootstrap4.css +219 -213
  79. package/styles/ribbon/bootstrap5-dark.css +219 -213
  80. package/styles/ribbon/bootstrap5.3.css +219 -213
  81. package/styles/ribbon/bootstrap5.css +219 -213
  82. package/styles/ribbon/fabric-dark.css +219 -213
  83. package/styles/ribbon/fabric.css +219 -213
  84. package/styles/ribbon/fluent-dark.css +219 -213
  85. package/styles/ribbon/fluent.css +219 -213
  86. package/styles/ribbon/fluent2.css +221 -215
  87. package/styles/ribbon/highcontrast-light.css +219 -213
  88. package/styles/ribbon/highcontrast.css +219 -213
  89. package/styles/ribbon/material-dark.css +219 -213
  90. package/styles/ribbon/material.css +219 -213
  91. package/styles/ribbon/material3-dark.css +219 -213
  92. package/styles/ribbon/material3.css +219 -213
  93. package/styles/ribbon/tailwind-dark.css +219 -213
  94. package/styles/ribbon/tailwind.css +219 -213
  95. package/styles/ribbon/tailwind3.css +220 -214
  96. package/styles/tailwind-dark-lite.css +216 -213
  97. package/styles/tailwind-dark.css +219 -213
  98. package/styles/tailwind-lite.css +216 -213
  99. package/styles/tailwind.css +219 -213
  100. package/styles/tailwind3-lite.css +217 -214
  101. package/styles/tailwind3.css +220 -214
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 29.2.4
3
+ * version : 30.1.39
4
4
  * Copyright Syncfusion Inc. 2001 - 2024. 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,67 +1,32 @@
1
1
  {
2
- "_from": "@syncfusion/ej2-ribbon@*",
3
- "_id": "@syncfusion/ej2-ribbon@29.1.39",
4
- "_inBundle": false,
5
- "_integrity": "sha512-uWxAO/a66JBCPRD1+9sNCDclv47jYNuP3B9Dyk7E+sT3MX/n9CxUpDHi478WkxcLHP7SC6zp0nRCGHZ2yvu/Zg==",
6
- "_location": "/@syncfusion/ej2-ribbon",
7
- "_phantomChildren": {},
8
- "_requested": {
9
- "type": "range",
10
- "registry": true,
11
- "raw": "@syncfusion/ej2-ribbon@*",
12
- "name": "@syncfusion/ej2-ribbon",
13
- "escapedName": "@syncfusion%2fej2-ribbon",
14
- "scope": "@syncfusion",
15
- "rawSpec": "*",
16
- "saveSpec": null,
17
- "fetchSpec": "*"
18
- },
19
- "_requiredBy": [
20
- "/",
21
- "/@syncfusion/ej2",
22
- "/@syncfusion/ej2-angular-ribbon",
23
- "/@syncfusion/ej2-react-ribbon",
24
- "/@syncfusion/ej2-vue-ribbon"
25
- ],
26
- "_resolved": "https://nexus.syncfusioninternal.com/repository/ej2-hotfix-new/@syncfusion/ej2-ribbon/-/ej2-ribbon-29.1.39.tgz",
27
- "_shasum": "44bf98bdf5b77f4e99fce2e988508db8d2db0e62",
28
- "_spec": "@syncfusion/ej2-ribbon@*",
29
- "_where": "/jenkins/workspace/elease-automation_release_29.1.1/packages/included",
30
- "author": {
31
- "name": "Syncfusion Inc."
32
- },
33
- "bugs": {
34
- "url": "https://github.com/syncfusion/ej2-ribbon-component/issues"
35
- },
36
- "bundleDependencies": false,
2
+ "name": "@syncfusion/ej2-ribbon",
3
+ "version": "30.1.39",
4
+ "description": "Essential JS 2 Component",
5
+ "author": "Syncfusion Inc.",
6
+ "license": "SEE LICENSE IN license",
7
+ "main": "./dist/ej2-ribbon.umd.min.js",
8
+ "module": "./index.js",
9
+ "es2015": "./dist/es6/ej2-ribbon.es5.js",
10
+ "typings": "index.d.ts",
37
11
  "dependencies": {
38
- "@syncfusion/ej2-base": "~29.2.4",
39
- "@syncfusion/ej2-buttons": "~29.2.4",
40
- "@syncfusion/ej2-dropdowns": "~29.2.4",
41
- "@syncfusion/ej2-lists": "~29.2.4",
42
- "@syncfusion/ej2-navigations": "~29.2.4",
43
- "@syncfusion/ej2-popups": "~29.2.4",
44
- "@syncfusion/ej2-splitbuttons": "~29.2.4"
12
+ "@syncfusion/ej2-base": "~30.1.38",
13
+ "@syncfusion/ej2-buttons": "~30.1.37",
14
+ "@syncfusion/ej2-dropdowns": "~30.1.39",
15
+ "@syncfusion/ej2-lists": "~30.1.37",
16
+ "@syncfusion/ej2-navigations": "~30.1.39",
17
+ "@syncfusion/ej2-popups": "~30.1.37",
18
+ "@syncfusion/ej2-splitbuttons": "~30.1.39"
45
19
  },
46
- "deprecated": false,
47
- "description": "Essential JS 2 Component",
48
20
  "devDependencies": {},
49
- "es2015": "./dist/es6/ej2-ribbon.es5.js",
50
- "homepage": "https://www.syncfusion.com/javascript-ui-controls",
51
21
  "keywords": [
52
22
  "ej2",
53
23
  "syncfusion",
54
24
  "ej2-ribbon"
55
25
  ],
56
- "license": "SEE LICENSE IN license",
57
- "main": "./dist/ej2-ribbon.umd.min.js",
58
- "module": "./index.js",
59
- "name": "@syncfusion/ej2-ribbon",
60
26
  "repository": {
61
27
  "type": "git",
62
- "url": "git+https://github.com/syncfusion/ej2-ribbon-component.git"
28
+ "url": "https://github.com/syncfusion/ej2-ribbon-component.git"
63
29
  },
64
- "typings": "index.d.ts",
65
- "version": "29.2.4",
66
- "sideEffects": false
30
+ "sideEffects": false,
31
+ "homepage": "https://www.syncfusion.com/javascript-ui-controls"
67
32
  }
@@ -237,6 +237,7 @@ export declare class Ribbon extends Component<HTMLElement> implements INotifyPro
237
237
  private itemsModel;
238
238
  private targetTabs;
239
239
  private isUpdateItems;
240
+ private resizeListener;
240
241
  /** @hidden */
241
242
  keysPress: string;
242
243
  /** @hidden */
@@ -151,7 +151,8 @@ var Ribbon = /** @class */ (function (_super) {
151
151
  this.currentControlIndex = 0;
152
152
  };
153
153
  Ribbon.prototype.wireEvents = function () {
154
- EventHandler.add(window, 'resize', this.resizeHandler, this);
154
+ this.resizeListener = this.resizeHandler.bind(this);
155
+ EventHandler.add(window, 'resize', this.resizeListener);
155
156
  EventHandler.add(document.body, 'keydown', this.keytipActionHandler, this);
156
157
  EventHandler.add(document, 'mousedown', this.mouseEventHandler, this);
157
158
  EventHandler.add(document, 'scroll', this.mouseEventHandler, this);
@@ -869,7 +870,7 @@ var Ribbon = /** @class */ (function (_super) {
869
870
  if (dropDownPopup) {
870
871
  dropDownPopup.setProperties({ position: { X: isLeft ? 'left' : 'right', Y: isMenu ? 'top' : 'bottom' } }, true);
871
872
  if (isMenu) {
872
- dropdown.beforeOpen = function () {
873
+ dropdown.beforeOpen = function (e) {
873
874
  if (isLeft) {
874
875
  if (item.type === RibbonItemType.Gallery && _this.ribbonGalleryModule) {
875
876
  _this.ribbonGalleryModule.checkCollision(dropDownPopup, dropDownPopup.element);
@@ -880,6 +881,12 @@ var Ribbon = /** @class */ (function (_super) {
880
881
  dropDownPopup.element.style.removeProperty('display');
881
882
  dropDownPopup.element.style.removeProperty('visibility');
882
883
  }
884
+ if (item.splitButtonSettings.beforeOpen) {
885
+ item.splitButtonSettings.beforeOpen.call(_this, e);
886
+ }
887
+ if (item.dropDownSettings.beforeOpen) {
888
+ item.dropDownSettings.beforeOpen.call(_this, e);
889
+ }
883
890
  };
884
891
  }
885
892
  else {
@@ -1174,10 +1181,8 @@ var Ribbon = /** @class */ (function (_super) {
1174
1181
  }
1175
1182
  break;
1176
1183
  case 'GroupButton':
1177
- if (this.activeLayout === 'Simplified') {
1178
- this.ribbonGroupButtonModule.addOverFlowEvents(item, itemEle, overflowButton);
1179
- break;
1180
- }
1184
+ this.ribbonGroupButtonModule.addOverFlowEvents(item, itemEle, overflowButton);
1185
+ break;
1181
1186
  }
1182
1187
  };
1183
1188
  Ribbon.prototype.createOfTabContainer = function (groupId, groupHeader, itemEle, tabIndex) {
@@ -2092,9 +2097,10 @@ var Ribbon = /** @class */ (function (_super) {
2092
2097
  className: constants.RIBBON_OVERFLOW_TARGET,
2093
2098
  attrs: { 'tabindex': '0' }
2094
2099
  });
2100
+ var overFlowCss = this.cssClass ? constants.SPACE + this.cssClass : '';
2095
2101
  var overflowDDB = new DropDownButton({
2096
2102
  iconCss: constants.OVERFLOW_ICON,
2097
- cssClass: constants.DROPDOWNBUTTON_HIDE + constants.SPACE + constants.RIBBON_GROUP_OVERFLOW_DDB,
2103
+ cssClass: constants.DROPDOWNBUTTON_HIDE + constants.SPACE + constants.RIBBON_GROUP_OVERFLOW_DDB + overFlowCss,
2098
2104
  target: overflowTarget,
2099
2105
  locale: this.locale,
2100
2106
  enableRtl: this.enableRtl,
@@ -2113,6 +2119,7 @@ var Ribbon = /** @class */ (function (_super) {
2113
2119
  var eventArgs = { element: args.element, event: args.event, cancel: args.cancel };
2114
2120
  _this.trigger('overflowPopupClose', eventArgs, function (ribbonArgs) {
2115
2121
  if (ele || ribbonArgs.cancel || groupButtonEle) {
2122
+ args.element = null;
2116
2123
  args.cancel = true;
2117
2124
  }
2118
2125
  });
@@ -4641,7 +4648,7 @@ var Ribbon = /** @class */ (function (_super) {
4641
4648
  if (itemProp.item.type === 'Gallery' && document.querySelector('#' + itemId + '_container').closest('.e-ribbon-overflow-target') && item.displayOptions !== DisplayMode.Overflow) {
4642
4649
  this.createOverflowPopup(itemProp.item, itemProp.tabIndex, itemProp.group.enableGroupOverflow, itemProp.group.id, itemProp.group.header, itemContainer, groupContainer);
4643
4650
  }
4644
- if (this.activeLayout === 'Simplified' && itemProp.group.enableGroupOverflow) {
4651
+ if (this.activeLayout === 'Simplified' && itemProp.group.enableGroupOverflow && dropdown) {
4645
4652
  if (dropdown.target.childElementCount === 0 ||
4646
4653
  (dropdown.target.childElementCount === 1 &&
4647
4654
  this.isHeaderVisible(dropdown.target, itemProp.group.id))) {
@@ -4784,7 +4791,7 @@ var Ribbon = /** @class */ (function (_super) {
4784
4791
  }
4785
4792
  };
4786
4793
  Ribbon.prototype.unwireEvents = function () {
4787
- EventHandler.remove(window, 'resize', this.resizeHandler);
4794
+ EventHandler.remove(window, 'resize', this.resizeListener);
4788
4795
  EventHandler.remove(document.body, 'keydown', this.keytipActionHandler);
4789
4796
  EventHandler.remove(document, 'mousedown', this.mouseEventHandler);
4790
4797
  EventHandler.remove(document, 'scroll', this.mouseEventHandler);
@@ -24,6 +24,7 @@ export declare class RibbonGallery {
24
24
  createGallery(item: RibbonItemModel, itemEle: HTMLElement): void;
25
25
  private renderGalleryItems;
26
26
  private setWrapperWidth;
27
+ private setWrapperStyle;
27
28
  /**
28
29
  * Checks the gallery items height.
29
30
  *
@@ -145,8 +145,6 @@ var RibbonGallery = /** @class */ (function () {
145
145
  }
146
146
  if (gallerySettings.groups[parseInt(i.toString(), 10)].itemHeight && gallerySettings.groups[parseInt(i.toString(), 10)].itemHeight !== 'auto') {
147
147
  galleryEle.style.height = gallerySettings.groups[parseInt(i.toString(), 10)].itemHeight + 'px';
148
- galleryEle.style.paddingTop = '0px';
149
- galleryEle.style.paddingBottom = '0px';
150
148
  if (this_1.parent.activeLayout !== 'Simplified' && !isPopup) {
151
149
  galleryContainerEle.style.flexFlow = 'wrap';
152
150
  }
@@ -268,6 +266,13 @@ var RibbonGallery = /** @class */ (function () {
268
266
  galleryWrapper.style.width = itemsWidth + 'px';
269
267
  }
270
268
  };
269
+ RibbonGallery.prototype.setWrapperStyle = function (popup, popupContainerItems) {
270
+ if (popup.width !== 'auto') {
271
+ popupContainerItems.forEach(function (ele) {
272
+ ele.style.flexFlow = 'wrap';
273
+ });
274
+ }
275
+ };
271
276
  /**
272
277
  * Checks the gallery items height.
273
278
  *
@@ -360,11 +365,7 @@ var RibbonGallery = /** @class */ (function () {
360
365
  }
361
366
  }
362
367
  var popupContainerItems = popupEle.querySelectorAll('.e-ribbon-gallery-container');
363
- if (popup.width !== 'auto') {
364
- popupContainerItems.forEach(function (ele) {
365
- ele.style.flexFlow = 'wrap';
366
- });
367
- }
368
+ this.setWrapperStyle(popup, popupContainerItems);
368
369
  var isCollideOccurs = false;
369
370
  for (var i = 0; i < popupContainerItems.length; i++) {
370
371
  var itemsWidth = 0;
@@ -530,7 +531,7 @@ var RibbonGallery = /** @class */ (function () {
530
531
  }
531
532
  }
532
533
  var popupEle = document.querySelector('#' + item.id + '_galleryPopup');
533
- var popup = getComponent(popupEle, Popup);
534
+ var popup_1 = getComponent(popupEle, Popup);
534
535
  var popupContainerEle_1 = document.querySelector('#' + item.id + '_galleryPopup .e-ribbon-popup-container');
535
536
  var dropdown = new DropDownButton({
536
537
  iconCss: iconCss,
@@ -540,6 +541,8 @@ var RibbonGallery = /** @class */ (function () {
540
541
  cssClass: 'e-ribbon-gallery-dropdown',
541
542
  disabled: item.disabled,
542
543
  open: function () {
544
+ var popupContainerItems = popupContainerEle_1.querySelectorAll('.e-ribbon-gallery-container');
545
+ _this.setWrapperStyle(popup_1, popupContainerItems);
543
546
  _this.setFoucsToFirstItem(popupContainerEle_1, true, item.id);
544
547
  },
545
548
  beforeClose: function (args) {
@@ -549,12 +552,12 @@ var RibbonGallery = /** @class */ (function () {
549
552
  }
550
553
  }
551
554
  }, buttonEle);
552
- if (popup.width !== 'auto') {
553
- dropdown.dropDown.width = formatUnit(popup.width);
555
+ if (popup_1.width !== 'auto') {
556
+ dropdown.dropDown.width = formatUnit(popup_1.width);
554
557
  }
555
- if (popup.height !== 'auto') {
556
- dropdown.dropDown.height = formatUnit(popup.height);
557
- dropdown.dropDown.element.style.height = (popup.height).toString();
558
+ if (popup_1.height !== 'auto') {
559
+ dropdown.dropDown.height = formatUnit(popup_1.height);
560
+ dropdown.dropDown.element.style.height = (popup_1.height).toString();
558
561
  }
559
562
  }
560
563
  };
@@ -10,6 +10,7 @@ import { Tooltip } from '@syncfusion/ej2-popups';
10
10
  */
11
11
  var RibbonGroupButton = /** @class */ (function () {
12
12
  function RibbonGroupButton(parent) {
13
+ this.grpBtnIndex = 0;
13
14
  this.parent = parent;
14
15
  this.isSelected = false;
15
16
  }
@@ -77,6 +78,7 @@ var RibbonGroupButton = /** @class */ (function () {
77
78
  this.count++;
78
79
  }
79
80
  }
81
+ this.grpBtnIndex = i;
80
82
  }
81
83
  if (groupBtnSettings.items[parseInt(i.toString(), 10)].ribbonTooltipSettings &&
82
84
  isTooltipPresent(groupBtnSettings.items[parseInt(i.toString(), 10)].ribbonTooltipSettings)) {
@@ -147,7 +149,7 @@ var RibbonGroupButton = /** @class */ (function () {
147
149
  var previousItems = [];
148
150
  var selectingItems = [];
149
151
  var selectedItems = [];
150
- var groupButtonEle;
152
+ var groupButtonEle = document.querySelector('#' + item.id);
151
153
  var dropdown;
152
154
  for (var j = 0; j < grpBtnSettings.items.length; j++) {
153
155
  if (document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + j)) {
@@ -185,7 +187,6 @@ var RibbonGroupButton = /** @class */ (function () {
185
187
  grpBtnSettings.items[parseInt(itemIndex.toString(), 10)].setProperties({ selected: true }, true);
186
188
  if (document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + itemIndex).classList.contains('e-active') && this.parent.activeLayout === 'Simplified') {
187
189
  this.grpBtnIndex = itemIndex;
188
- groupButtonEle = document.querySelector('#' + item.id);
189
190
  dropdown = getComponent(groupButtonEle, DropDownButton);
190
191
  dropdown.setProperties({
191
192
  iconCss: grpBtnSettings.items[parseInt(itemIndex.toString(), 10)].iconCss
@@ -216,7 +217,6 @@ var RibbonGroupButton = /** @class */ (function () {
216
217
  if (this.parent.activeLayout === 'Simplified') {
217
218
  var dropdownIcon = null;
218
219
  var itemsCount = 0;
219
- groupButtonEle = document.querySelector('#' + item.id);
220
220
  dropdown = getComponent(groupButtonEle, DropDownButton);
221
221
  if (!this.isSelected) {
222
222
  if (document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + itemIndex).classList.contains('e-active')) {
@@ -250,6 +250,10 @@ var RibbonGroupButton = /** @class */ (function () {
250
250
  if (grpBtnSettings.items[parseInt(itemIndex.toString(), 10)].click) {
251
251
  grpBtnSettings.items[parseInt(itemIndex.toString(), 10)].click.call(this, eventArgs_1);
252
252
  }
253
+ if (this.parent.activeLayout === 'Simplified' && groupButtonEle) {
254
+ dropdown = getComponent(groupButtonEle, DropDownButton);
255
+ dropdown.toggle();
256
+ }
253
257
  }
254
258
  };
255
259
  /**
@@ -334,7 +338,6 @@ var RibbonGroupButton = /** @class */ (function () {
334
338
  else {
335
339
  document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + 0).focus();
336
340
  }
337
- this.grpBtnIndex = 0;
338
341
  }
339
342
  };
340
343
  RibbonGroupButton.prototype.addGroupButtonHeader = function (itemID, groupBtnSettings, popupEle) {
@@ -416,28 +419,37 @@ var RibbonGroupButton = /** @class */ (function () {
416
419
  var groupBtnSettings = item.groupButtonSettings;
417
420
  var isIconOnly = true;
418
421
  var groupButtonEle = itemEle.querySelector('#' + item.id);
419
- var dropdown = getComponent(groupButtonEle, DropDownButton);
420
- dropdown.setProperties({ cssClass: dropdown.cssClass + constants.SPACE + constants.RIBBON_GROUP_BUTTON_OVERFLOW_POPUP, content: groupBtnSettings.header ? groupBtnSettings.header : '' });
421
- var targetEle = dropdown.target;
422
- if (targetEle.children.length) {
423
- for (var i = 0; i < targetEle.children.length; i++) {
424
- if (groupBtnSettings.items[parseInt(i.toString(), 10)].content) {
425
- isIconOnly = false;
426
- break;
422
+ if (groupButtonEle) {
423
+ var dropdown = getComponent(groupButtonEle, DropDownButton);
424
+ dropdown.setProperties({ cssClass: dropdown.cssClass + constants.SPACE + constants.RIBBON_GROUP_BUTTON_OVERFLOW_POPUP, content: groupBtnSettings.header ? groupBtnSettings.header : '' });
425
+ var targetEle_1 = dropdown.target;
426
+ if (targetEle_1.children.length) {
427
+ for (var i = 0; i < targetEle_1.children.length; i++) {
428
+ if (groupBtnSettings.items[parseInt(i.toString(), 10)].content) {
429
+ isIconOnly = false;
430
+ break;
431
+ }
432
+ }
433
+ if (isIconOnly) {
434
+ targetEle_1.classList.add('e-icon-btn');
427
435
  }
428
436
  }
429
- if (isIconOnly) {
430
- targetEle.classList.add('e-icon-btn');
431
- }
437
+ targetEle_1.onclick = function () {
438
+ if (_this.parent.activeLayout === 'Simplified' && targetEle_1.closest('.e-ribbon-dropdown-group-button').classList.contains(constants.RIBBON_GROUP_BUTTON_OVERFLOW_POPUP)) {
439
+ if (overflowButton.element.classList.contains('e-active')) {
440
+ overflowButton.toggle();
441
+ }
442
+ }
443
+ };
432
444
  }
433
- targetEle.onclick = function () {
434
- if (_this.parent.activeLayout === 'Simplified' && targetEle.closest('.e-ribbon-dropdown-group-button').classList.contains(constants.RIBBON_GROUP_BUTTON_OVERFLOW_POPUP)) {
435
- dropdown.toggle();
445
+ var overflowGroupButtonEle = itemEle.querySelector('#' + item.id + '_grpbtn');
446
+ if (this.parent.activeLayout === 'Classic' && overflowGroupButtonEle) {
447
+ overflowGroupButtonEle.onclick = function () {
436
448
  if (overflowButton.element.classList.contains('e-active')) {
437
449
  overflowButton.toggle();
438
450
  }
439
- }
440
- };
451
+ };
452
+ }
441
453
  };
442
454
  /**
443
455
  * Removes the additional event handlers as the item moved into overflow popup.
@@ -167,9 +167,14 @@ var RibbonFileMenu = /** @class */ (function () {
167
167
  if (event) {
168
168
  var eventArgs = { element: args.element, item: args.item, event: args.event };
169
169
  event.call(this, eventArgs);
170
- if (!args.element.classList.contains('e-menu-caret-icon')) {
171
- this.fileMenuDDB.toggle();
172
- }
170
+ }
171
+ var menuOpen = !!args.element.closest('.e-ribbon-menu.e-popup-open');
172
+ var fileTriggerOpen = !!args.element.closest('.e-ribbon-file-menu.e-popup-open');
173
+ var fileMenuOpen = !!document.querySelector('.e-ribbon-file-menu.e-popup-open');
174
+ // True if the file trigger was clicked open, or if the ribbon menu is open and the file menu popup is actually present
175
+ var isMenuOpen = fileTriggerOpen || (menuOpen && fileMenuOpen);
176
+ if (!args.element.classList.contains('e-menu-caret-icon') && isMenuOpen) {
177
+ this.fileMenuDDB.toggle();
173
178
  }
174
179
  };
175
180
  /**