@syncfusion/ej2-ribbon 23.2.4 → 23.2.7

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 (50) hide show
  1. package/CHANGELOG.md +14 -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 +201 -11
  5. package/dist/es6/ej2-ribbon.es2015.js.map +1 -1
  6. package/dist/es6/ej2-ribbon.es5.js +201 -11
  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 +9 -9
  12. package/src/ribbon/base/interface.d.ts +17 -0
  13. package/src/ribbon/base/ribbon-model.d.ts +15 -1
  14. package/src/ribbon/base/ribbon.d.ts +17 -1
  15. package/src/ribbon/base/ribbon.js +201 -11
  16. package/styles/bootstrap-dark.css +7 -3
  17. package/styles/bootstrap.css +7 -3
  18. package/styles/bootstrap4.css +7 -3
  19. package/styles/bootstrap5-dark.css +7 -3
  20. package/styles/bootstrap5.css +7 -3
  21. package/styles/fabric-dark.css +7 -3
  22. package/styles/fabric.css +7 -3
  23. package/styles/fluent-dark.css +7 -3
  24. package/styles/fluent.css +7 -3
  25. package/styles/highcontrast-light.css +7 -3
  26. package/styles/highcontrast.css +7 -3
  27. package/styles/material-dark.css +7 -3
  28. package/styles/material.css +7 -3
  29. package/styles/material3-dark.css +7 -3
  30. package/styles/material3.css +7 -3
  31. package/styles/ribbon/_layout.scss +10 -3
  32. package/styles/ribbon/bootstrap-dark.css +7 -3
  33. package/styles/ribbon/bootstrap.css +7 -3
  34. package/styles/ribbon/bootstrap4.css +7 -3
  35. package/styles/ribbon/bootstrap5-dark.css +7 -3
  36. package/styles/ribbon/bootstrap5.css +7 -3
  37. package/styles/ribbon/fabric-dark.css +7 -3
  38. package/styles/ribbon/fabric.css +7 -3
  39. package/styles/ribbon/fluent-dark.css +7 -3
  40. package/styles/ribbon/fluent.css +7 -3
  41. package/styles/ribbon/highcontrast-light.css +7 -3
  42. package/styles/ribbon/highcontrast.css +7 -3
  43. package/styles/ribbon/material-dark.css +7 -3
  44. package/styles/ribbon/material.css +7 -3
  45. package/styles/ribbon/material3-dark.css +7 -3
  46. package/styles/ribbon/material3.css +7 -3
  47. package/styles/ribbon/tailwind-dark.css +7 -3
  48. package/styles/ribbon/tailwind.css +7 -3
  49. package/styles/tailwind-dark.css +7 -3
  50. package/styles/tailwind.css +7 -3
@@ -4026,6 +4026,7 @@ var Ribbon = /** @__PURE__ @class */ (function (_super) {
4026
4026
  if (activeTab) {
4027
4027
  activeTab.classList.add(RIBBON_TAB_ACTIVE);
4028
4028
  this.overflowDDB.element.classList.remove(HIDE_CSS);
4029
+ this.checkOverflowHiddenItems(false, selectedIndex);
4029
4030
  }
4030
4031
  else {
4031
4032
  this.overflowDDB.element.classList.add(HIDE_CSS);
@@ -4135,6 +4136,7 @@ var Ribbon = /** @__PURE__ @class */ (function (_super) {
4135
4136
  };
4136
4137
  Ribbon.prototype.createSimplfiedOverflow = function (tabContent, activeContent, tabIndex) {
4137
4138
  var orderedGroups = this.getGroupResizeOrder(true, tabIndex);
4139
+ var isEmptyCollection;
4138
4140
  for (var i = 0; ((i < orderedGroups.length) && (tabContent.offsetWidth < activeContent.offsetWidth)); i++) {
4139
4141
  var group = orderedGroups[parseInt(i.toString(), 10)];
4140
4142
  var groupEle = tabContent.querySelector('#' + group.id);
@@ -4163,7 +4165,25 @@ var Ribbon = /** @__PURE__ @class */ (function (_super) {
4163
4165
  if (!(group.enableGroupOverflow || groupEle.querySelector('.' + RIBBON_ITEM))) {
4164
4166
  groupEle.classList.add('e-ribbon-emptyCollection');
4165
4167
  }
4168
+ var itemsLength = groupEle.querySelectorAll('.' + RIBBON_ITEM);
4169
+ if (itemsLength && !group.enableGroupOverflow) {
4170
+ isEmptyCollection = this.checkEmptyCollection(itemsLength);
4171
+ if (isEmptyCollection) {
4172
+ groupEle.classList.add('e-ribbon-emptyCollection');
4173
+ }
4174
+ }
4175
+ this.checkOverflowHiddenItems(group.enableGroupOverflow, tabIndex, group.id);
4176
+ }
4177
+ };
4178
+ Ribbon.prototype.checkEmptyCollection = function (itemsLength) {
4179
+ var isEmptyCollection = true;
4180
+ for (var i = 0; i < itemsLength.length; i++) {
4181
+ if (!(itemsLength[parseInt(i.toString(), 10)].classList.contains('e-hidden'))) {
4182
+ isEmptyCollection = false;
4183
+ break;
4184
+ }
4166
4185
  }
4186
+ return isEmptyCollection;
4167
4187
  };
4168
4188
  Ribbon.prototype.updatePopupItems = function (item, itemEle, isGroupOF, isMenu) {
4169
4189
  var dropdown = getComponent(itemEle.querySelector('#' + item.id), (item.type === RibbonItemType.DropDown || item.type === RibbonItemType.GroupButton) ? DropDownButton : SplitButton);
@@ -4195,6 +4215,7 @@ var Ribbon = /** @__PURE__ @class */ (function (_super) {
4195
4215
  if (isClear === void 0) { isClear = false; }
4196
4216
  var orderedGroups = this.getGroupResizeOrder(false, tabIndex);
4197
4217
  var flag = true;
4218
+ var isEmptyCollection;
4198
4219
  for (var i = 0; ((i < orderedGroups.length) && flag); i++) {
4199
4220
  var group = orderedGroups[parseInt(i.toString(), 10)];
4200
4221
  var overflowDDB = void 0;
@@ -4242,7 +4263,13 @@ var Ribbon = /** @__PURE__ @class */ (function (_super) {
4242
4263
  var groupEle = tabContent.querySelector('#' + group.id);
4243
4264
  var itemEle = groupEle.querySelector('.' + RIBBON_ITEM);
4244
4265
  if (groupEle.classList.contains('e-ribbon-emptyCollection') && itemEle !== null) {
4245
- groupEle.classList.remove('e-ribbon-emptyCollection');
4266
+ var itemsLength = groupEle.querySelectorAll('.' + RIBBON_ITEM);
4267
+ if (itemsLength) {
4268
+ isEmptyCollection = this.checkEmptyCollection(itemsLength);
4269
+ if (!isEmptyCollection) {
4270
+ groupEle.classList.remove('e-ribbon-emptyCollection');
4271
+ }
4272
+ }
4246
4273
  }
4247
4274
  if (overflowDDB) {
4248
4275
  if (group.enableGroupOverflow) {
@@ -4262,6 +4289,7 @@ var Ribbon = /** @__PURE__ @class */ (function (_super) {
4262
4289
  }
4263
4290
  }
4264
4291
  }
4292
+ this.checkOverflowHiddenItems(group.enableGroupOverflow, tabIndex, group.id);
4265
4293
  }
4266
4294
  if (this.overflowDDB) {
4267
4295
  var overflowEle = this.overflowDDB.target;
@@ -4271,6 +4299,50 @@ var Ribbon = /** @__PURE__ @class */ (function (_super) {
4271
4299
  }
4272
4300
  }
4273
4301
  };
4302
+ Ribbon.prototype.checkOverflowHiddenItems = function (isGroupOF, tabIndex, groupId) {
4303
+ if (isGroupOF) {
4304
+ var overflowDDB = document.querySelector('#' + groupId + GROUPOF_BUTTON_ID);
4305
+ if (overflowDDB) {
4306
+ var overflowButton = getInstance(overflowDDB, DropDownButton);
4307
+ var overflowBtnTarget = overflowButton.target;
4308
+ var itemEle = overflowBtnTarget.querySelectorAll('.e-ribbon-item');
4309
+ var isHidden = true;
4310
+ for (var i = 0; i < itemEle.length; i++) {
4311
+ if (!(itemEle[parseInt(i.toString(), 10)].classList.contains('e-hidden'))) {
4312
+ isHidden = false;
4313
+ break;
4314
+ }
4315
+ }
4316
+ overflowButton.element.classList[isHidden ? 'add' : 'remove']('e-hidden');
4317
+ }
4318
+ }
4319
+ else {
4320
+ if (this.overflowDDB) {
4321
+ var isGroupHidden = true;
4322
+ var isItemHidden = void 0;
4323
+ var overflowEle = this.overflowDDB.target;
4324
+ var ofTabContainer = overflowEle.querySelector('#' + this.tabs[parseInt(tabIndex.toString(), 10)].id + OVERFLOW_ID);
4325
+ if (ofTabContainer) {
4326
+ for (var k = 0; k < ofTabContainer.children.length; k++) {
4327
+ isItemHidden = true;
4328
+ var overflowTab = ofTabContainer.children[parseInt(k.toString(), 10)];
4329
+ var groupTabContainer = overflowTab.querySelectorAll('.e-ribbon-item');
4330
+ for (var n = 0; n < groupTabContainer.length; n++) {
4331
+ if (!(groupTabContainer[parseInt(n.toString(), 10)].classList.contains('e-hidden'))) {
4332
+ isItemHidden = false;
4333
+ break;
4334
+ }
4335
+ }
4336
+ overflowTab.classList[isItemHidden ? 'add' : 'remove']('e-hide-group');
4337
+ if (!(overflowTab.classList.contains('e-hide-group')) && !(overflowTab.classList.contains('e-hidden'))) {
4338
+ isGroupHidden = false;
4339
+ }
4340
+ }
4341
+ this.overflowDDB.element.classList[isGroupHidden ? 'add' : 'remove'](HIDE_CSS);
4342
+ }
4343
+ }
4344
+ }
4345
+ };
4274
4346
  Ribbon.prototype.createOverflowPopup = function (item, tabIndex, isGroupOF, groupId, groupHeader, itemEle, groupContainer, isResize) {
4275
4347
  var overflowButton;
4276
4348
  var contentEle = this.tabObj.items[parseInt(tabIndex.toString(), 10)].content;
@@ -4286,11 +4358,16 @@ var Ribbon = /** @__PURE__ @class */ (function (_super) {
4286
4358
  overflowButton = getInstance(overflowDDB, DropDownButton);
4287
4359
  }
4288
4360
  var overflowBtnTarget = overflowButton.target;
4289
- if (groupEle && groupEle.classList.contains('e-disabled')) {
4290
- overflowBtnTarget.classList.add('e-disabled');
4291
- }
4292
- if (groupEle && groupEle.classList.contains('e-hidden')) {
4293
- overflowBtnTarget.classList.add('e-hidden');
4361
+ if (groupEle) {
4362
+ if (groupEle.classList.contains('e-disabled')) {
4363
+ overflowBtnTarget.classList.add('e-disabled');
4364
+ }
4365
+ if (groupEle.classList.contains('e-hidden')) {
4366
+ overflowBtnTarget.classList.add('e-hidden');
4367
+ }
4368
+ if (groupEle.classList.contains('e-hide-group')) {
4369
+ overflowBtnTarget.classList.add('e-hide-group');
4370
+ }
4294
4371
  }
4295
4372
  isResize ? overflowBtnTarget.insertBefore(itemEle, overflowBtnTarget.querySelector('.' + RIBBON_ITEM))
4296
4373
  : overflowBtnTarget.append(itemEle);
@@ -4310,8 +4387,16 @@ var Ribbon = /** @__PURE__ @class */ (function (_super) {
4310
4387
  var ofGroupContainer = overflowEle.querySelector('#' + groupId + CONTAINER_ID);
4311
4388
  if (!ofGroupContainer) {
4312
4389
  ofGroupContainer = this.createGroupContainer(groupId, groupHeader);
4313
- if (groupEle && groupEle.classList.contains('e-disabled')) {
4314
- ofGroupContainer.classList.add('e-disabled');
4390
+ if (groupEle) {
4391
+ if (groupEle.classList.contains('e-disabled')) {
4392
+ ofGroupContainer.classList.add('e-disabled');
4393
+ }
4394
+ if (groupEle.classList.contains('e-hidden')) {
4395
+ ofGroupContainer.classList.add('e-hidden');
4396
+ }
4397
+ if (groupEle.classList.contains('e-hide-group')) {
4398
+ ofGroupContainer.classList.add('e-hide-group');
4399
+ }
4315
4400
  }
4316
4401
  ofTabContainer.append(ofGroupContainer);
4317
4402
  }
@@ -4375,6 +4460,9 @@ var Ribbon = /** @__PURE__ @class */ (function (_super) {
4375
4460
  if (groupEle.classList.contains('e-hidden')) {
4376
4461
  ofGroupContainer.classList.add('e-hidden');
4377
4462
  }
4463
+ if (groupEle.classList.contains('e-hide-group')) {
4464
+ ofGroupContainer.classList.add('e-hide-group');
4465
+ }
4378
4466
  }
4379
4467
  };
4380
4468
  Ribbon.prototype.checkGroupShrinking = function (tabIndex, tabContent, activeContent, isLarge) {
@@ -5205,11 +5293,22 @@ var Ribbon = /** @__PURE__ @class */ (function (_super) {
5205
5293
  locale: this.locale,
5206
5294
  enableRtl: this.enableRtl,
5207
5295
  enablePersistence: this.enablePersistence,
5296
+ beforeOpen: function (args) {
5297
+ var eventArgs = { element: args.element, event: args.event, cancel: args.cancel };
5298
+ _this.trigger('overflowPopupOpen', eventArgs, function (ribbonArgs) {
5299
+ if (ribbonArgs.cancel) {
5300
+ args.cancel = true;
5301
+ }
5302
+ });
5303
+ },
5208
5304
  beforeClose: function (args) {
5209
5305
  var ele = args.event ? closest(args.event.target, '.' + RIBBON_POPUP_CONTROL) : null;
5210
- if (ele) {
5211
- args.cancel = true;
5212
- }
5306
+ var eventArgs = { element: args.element, event: args.event, cancel: args.cancel };
5307
+ _this.trigger('overflowPopupClose', eventArgs, function (ribbonArgs) {
5308
+ if (ele || ribbonArgs.cancel) {
5309
+ args.cancel = true;
5310
+ }
5311
+ });
5213
5312
  }
5214
5313
  }, overflowButton);
5215
5314
  this.element.classList.add(RIBBON_OVERFLOW);
@@ -5740,6 +5839,20 @@ var Ribbon = /** @__PURE__ @class */ (function (_super) {
5740
5839
  }
5741
5840
  var elements = this.createCollection(group.collections, group.orientation, group.id, group.header, group.enableGroupOverflow, tabIndex, groupContainer);
5742
5841
  append(elements, groupContent);
5842
+ var isItemsHidden = true;
5843
+ for (var j = 0; j < elements.length; j++) {
5844
+ if (isItemsHidden) {
5845
+ for (var k = 0; k < elements[parseInt(j.toString(), 10)].children.length; k++) {
5846
+ if (!(elements[parseInt(j.toString(), 10)].children[parseInt(k.toString(), 10)].classList.contains('e-hidden'))) {
5847
+ isItemsHidden = false;
5848
+ break;
5849
+ }
5850
+ }
5851
+ }
5852
+ }
5853
+ if (isItemsHidden) {
5854
+ groupEle.classList.add('e-hide-group');
5855
+ }
5743
5856
  if ((this.activeLayout === 'Simplified') && !(group.enableGroupOverflow || groupEle.querySelector('.' + RIBBON_ITEM))) {
5744
5857
  groupEle.classList.add('e-ribbon-emptyCollection');
5745
5858
  }
@@ -6756,6 +6869,7 @@ var Ribbon = /** @__PURE__ @class */ (function (_super) {
6756
6869
  if (ele) {
6757
6870
  var itemEle = closest(ele, '.e-ribbon-item');
6758
6871
  isHidden ? itemEle.classList.add('e-hidden') : itemEle.classList.remove('e-hidden');
6872
+ this.checkHiddenItems(itemProp.group, isHidden, itemProp.tabIndex);
6759
6873
  this.refreshLayout();
6760
6874
  }
6761
6875
  else {
@@ -6788,6 +6902,76 @@ var Ribbon = /** @__PURE__ @class */ (function (_super) {
6788
6902
  }
6789
6903
  }
6790
6904
  };
6905
+ Ribbon.prototype.checkHiddenItems = function (group, isHidden, tabIndex) {
6906
+ var isItemsHidden = true;
6907
+ var isEmptyCollection;
6908
+ var contentEle = this.tabObj.items[parseInt(tabIndex.toString(), 10)].content;
6909
+ var groupEle = contentEle.querySelector('#' + group.id);
6910
+ if (isHidden) {
6911
+ for (var i = 0; i < group.collections.length; i++) {
6912
+ if (isItemsHidden) {
6913
+ var collection = group.collections[parseInt(i.toString(), 10)];
6914
+ for (var j = 0; j < collection.items.length; j++) {
6915
+ var item = collection.items[parseInt(j.toString(), 10)];
6916
+ var itemEle = void 0;
6917
+ if (item.type === 'GroupButton') {
6918
+ var itemProp = getItem(this.tabs, item.id);
6919
+ itemEle = getItemElement(this, item.id + RIBBON_GROUP_BUTTON_ID, itemProp);
6920
+ }
6921
+ else {
6922
+ itemEle = getItemElement(this, item.id);
6923
+ }
6924
+ var itemContainer = itemEle ? itemEle.closest('.e-ribbon-item') : null;
6925
+ if (!(itemContainer.classList.contains('e-hidden'))) {
6926
+ isItemsHidden = false;
6927
+ break;
6928
+ }
6929
+ }
6930
+ }
6931
+ }
6932
+ if (isItemsHidden) {
6933
+ groupEle.classList.add('e-hide-group');
6934
+ this.checkOverflowItems(isHidden, contentEle, group.enableGroupOverflow, tabIndex, group.id);
6935
+ }
6936
+ }
6937
+ else {
6938
+ groupEle.classList.remove('e-hide-group');
6939
+ this.checkOverflowItems(isHidden, contentEle, group.enableGroupOverflow, tabIndex, group.id);
6940
+ }
6941
+ if (this.activeLayout === 'Simplified' && !group.enableGroupOverflow) {
6942
+ var itemsLength = groupEle.querySelectorAll('.' + RIBBON_ITEM);
6943
+ if (itemsLength) {
6944
+ isEmptyCollection = this.checkEmptyCollection(itemsLength);
6945
+ groupEle.classList[isEmptyCollection ? 'add' : 'remove']('e-ribbon-emptyCollection');
6946
+ }
6947
+ }
6948
+ };
6949
+ Ribbon.prototype.checkOverflowItems = function (isHidden, contentEle, isGroupOF, tabIndex, groupID) {
6950
+ var overflowDDB;
6951
+ var overflowtarget;
6952
+ if (isGroupOF) {
6953
+ var overflowDDBEle = contentEle.querySelector('#' + groupID + GROUPOF_BUTTON_ID);
6954
+ if (overflowDDBEle) {
6955
+ overflowDDB = getInstance(overflowDDBEle, DropDownButton);
6956
+ overflowtarget = overflowDDB.target;
6957
+ }
6958
+ if (overflowtarget) {
6959
+ isHidden ? overflowtarget.classList.add('e-hide-group') : overflowtarget.classList.remove('e-hide-group');
6960
+ }
6961
+ }
6962
+ else {
6963
+ if (this.overflowDDB) {
6964
+ var overflowEle = this.overflowDDB.target;
6965
+ var ofTabContainer = overflowEle.querySelector('#' + this.tabs[parseInt(tabIndex.toString(), 10)].id + OVERFLOW_ID);
6966
+ if (ofTabContainer) {
6967
+ var grpContainer = ofTabContainer.querySelector('#' + groupID + CONTAINER_ID);
6968
+ if (grpContainer) {
6969
+ isHidden ? grpContainer.classList.add('e-hide-group') : grpContainer.classList.remove('e-hide-group');
6970
+ }
6971
+ }
6972
+ }
6973
+ }
6974
+ };
6791
6975
  /**
6792
6976
  * tab - Gets the ribbon tab to be updated. The id of the tab is a required property. Other properties are optional.
6793
6977
  *
@@ -7450,6 +7634,12 @@ var Ribbon = /** @__PURE__ @class */ (function (_super) {
7450
7634
  __decorate([
7451
7635
  Event()
7452
7636
  ], Ribbon.prototype, "created", void 0);
7637
+ __decorate([
7638
+ Event()
7639
+ ], Ribbon.prototype, "overflowPopupOpen", void 0);
7640
+ __decorate([
7641
+ Event()
7642
+ ], Ribbon.prototype, "overflowPopupClose", void 0);
7453
7643
  Ribbon = Ribbon_1 = __decorate([
7454
7644
  NotifyPropertyChanges
7455
7645
  ], Ribbon);