@syncfusion/ej2-ribbon 23.2.4 → 23.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/CHANGELOG.md +6 -0
- 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 +181 -8
- package/dist/es6/ej2-ribbon.es2015.js.map +1 -1
- package/dist/es6/ej2-ribbon.es5.js +181 -8
- 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 +7 -7
- package/src/ribbon/base/ribbon.d.ts +4 -0
- package/src/ribbon/base/ribbon.js +181 -8
- package/styles/bootstrap-dark.css +7 -3
- package/styles/bootstrap.css +7 -3
- package/styles/bootstrap4.css +7 -3
- package/styles/bootstrap5-dark.css +7 -3
- package/styles/bootstrap5.css +7 -3
- package/styles/fabric-dark.css +7 -3
- package/styles/fabric.css +7 -3
- package/styles/fluent-dark.css +7 -3
- package/styles/fluent.css +7 -3
- package/styles/highcontrast-light.css +7 -3
- package/styles/highcontrast.css +7 -3
- package/styles/material-dark.css +7 -3
- package/styles/material.css +7 -3
- package/styles/material3-dark.css +7 -3
- package/styles/material3.css +7 -3
- package/styles/ribbon/_layout.scss +10 -3
- package/styles/ribbon/bootstrap-dark.css +7 -3
- package/styles/ribbon/bootstrap.css +7 -3
- package/styles/ribbon/bootstrap4.css +7 -3
- package/styles/ribbon/bootstrap5-dark.css +7 -3
- package/styles/ribbon/bootstrap5.css +7 -3
- package/styles/ribbon/fabric-dark.css +7 -3
- package/styles/ribbon/fabric.css +7 -3
- package/styles/ribbon/fluent-dark.css +7 -3
- package/styles/ribbon/fluent.css +7 -3
- package/styles/ribbon/highcontrast-light.css +7 -3
- package/styles/ribbon/highcontrast.css +7 -3
- package/styles/ribbon/material-dark.css +7 -3
- package/styles/ribbon/material.css +7 -3
- package/styles/ribbon/material3-dark.css +7 -3
- package/styles/ribbon/material3.css +7 -3
- package/styles/ribbon/tailwind-dark.css +7 -3
- package/styles/ribbon/tailwind.css +7 -3
- package/styles/tailwind-dark.css +7 -3
- package/styles/tailwind.css +7 -3
|
@@ -3674,6 +3674,7 @@ let Ribbon = Ribbon_1 = class Ribbon extends Component {
|
|
|
3674
3674
|
if (activeTab) {
|
|
3675
3675
|
activeTab.classList.add(RIBBON_TAB_ACTIVE);
|
|
3676
3676
|
this.overflowDDB.element.classList.remove(HIDE_CSS);
|
|
3677
|
+
this.checkOverflowHiddenItems(false, selectedIndex);
|
|
3677
3678
|
}
|
|
3678
3679
|
else {
|
|
3679
3680
|
this.overflowDDB.element.classList.add(HIDE_CSS);
|
|
@@ -3783,6 +3784,7 @@ let Ribbon = Ribbon_1 = class Ribbon extends Component {
|
|
|
3783
3784
|
}
|
|
3784
3785
|
createSimplfiedOverflow(tabContent, activeContent, tabIndex) {
|
|
3785
3786
|
const orderedGroups = this.getGroupResizeOrder(true, tabIndex);
|
|
3787
|
+
let isEmptyCollection;
|
|
3786
3788
|
for (let i = 0; ((i < orderedGroups.length) && (tabContent.offsetWidth < activeContent.offsetWidth)); i++) {
|
|
3787
3789
|
const group = orderedGroups[parseInt(i.toString(), 10)];
|
|
3788
3790
|
const groupEle = tabContent.querySelector('#' + group.id);
|
|
@@ -3811,7 +3813,25 @@ let Ribbon = Ribbon_1 = class Ribbon extends Component {
|
|
|
3811
3813
|
if (!(group.enableGroupOverflow || groupEle.querySelector('.' + RIBBON_ITEM))) {
|
|
3812
3814
|
groupEle.classList.add('e-ribbon-emptyCollection');
|
|
3813
3815
|
}
|
|
3816
|
+
let itemsLength = groupEle.querySelectorAll('.' + RIBBON_ITEM);
|
|
3817
|
+
if (itemsLength && !group.enableGroupOverflow) {
|
|
3818
|
+
isEmptyCollection = this.checkEmptyCollection(itemsLength);
|
|
3819
|
+
if (isEmptyCollection) {
|
|
3820
|
+
groupEle.classList.add('e-ribbon-emptyCollection');
|
|
3821
|
+
}
|
|
3822
|
+
}
|
|
3823
|
+
this.checkOverflowHiddenItems(group.enableGroupOverflow, tabIndex, group.id);
|
|
3824
|
+
}
|
|
3825
|
+
}
|
|
3826
|
+
checkEmptyCollection(itemsLength) {
|
|
3827
|
+
let isEmptyCollection = true;
|
|
3828
|
+
for (let i = 0; i < itemsLength.length; i++) {
|
|
3829
|
+
if (!(itemsLength[parseInt(i.toString(), 10)].classList.contains('e-hidden'))) {
|
|
3830
|
+
isEmptyCollection = false;
|
|
3831
|
+
break;
|
|
3832
|
+
}
|
|
3814
3833
|
}
|
|
3834
|
+
return isEmptyCollection;
|
|
3815
3835
|
}
|
|
3816
3836
|
updatePopupItems(item, itemEle, isGroupOF, isMenu) {
|
|
3817
3837
|
const dropdown = getComponent(itemEle.querySelector('#' + item.id), (item.type === RibbonItemType.DropDown || item.type === RibbonItemType.GroupButton) ? DropDownButton : SplitButton);
|
|
@@ -3842,6 +3862,7 @@ let Ribbon = Ribbon_1 = class Ribbon extends Component {
|
|
|
3842
3862
|
removeSimplfiedOverflow(tabContent, activeContent, tabIndex, isClear = false) {
|
|
3843
3863
|
const orderedGroups = this.getGroupResizeOrder(false, tabIndex);
|
|
3844
3864
|
let flag = true;
|
|
3865
|
+
let isEmptyCollection;
|
|
3845
3866
|
for (let i = 0; ((i < orderedGroups.length) && flag); i++) {
|
|
3846
3867
|
const group = orderedGroups[parseInt(i.toString(), 10)];
|
|
3847
3868
|
let overflowDDB;
|
|
@@ -3889,7 +3910,13 @@ let Ribbon = Ribbon_1 = class Ribbon extends Component {
|
|
|
3889
3910
|
const groupEle = tabContent.querySelector('#' + group.id);
|
|
3890
3911
|
const itemEle = groupEle.querySelector('.' + RIBBON_ITEM);
|
|
3891
3912
|
if (groupEle.classList.contains('e-ribbon-emptyCollection') && itemEle !== null) {
|
|
3892
|
-
groupEle.
|
|
3913
|
+
let itemsLength = groupEle.querySelectorAll('.' + RIBBON_ITEM);
|
|
3914
|
+
if (itemsLength) {
|
|
3915
|
+
isEmptyCollection = this.checkEmptyCollection(itemsLength);
|
|
3916
|
+
if (!isEmptyCollection) {
|
|
3917
|
+
groupEle.classList.remove('e-ribbon-emptyCollection');
|
|
3918
|
+
}
|
|
3919
|
+
}
|
|
3893
3920
|
}
|
|
3894
3921
|
if (overflowDDB) {
|
|
3895
3922
|
if (group.enableGroupOverflow) {
|
|
@@ -3909,6 +3936,7 @@ let Ribbon = Ribbon_1 = class Ribbon extends Component {
|
|
|
3909
3936
|
}
|
|
3910
3937
|
}
|
|
3911
3938
|
}
|
|
3939
|
+
this.checkOverflowHiddenItems(group.enableGroupOverflow, tabIndex, group.id);
|
|
3912
3940
|
}
|
|
3913
3941
|
if (this.overflowDDB) {
|
|
3914
3942
|
const overflowEle = this.overflowDDB.target;
|
|
@@ -3918,6 +3946,50 @@ let Ribbon = Ribbon_1 = class Ribbon extends Component {
|
|
|
3918
3946
|
}
|
|
3919
3947
|
}
|
|
3920
3948
|
}
|
|
3949
|
+
checkOverflowHiddenItems(isGroupOF, tabIndex, groupId) {
|
|
3950
|
+
if (isGroupOF) {
|
|
3951
|
+
const overflowDDB = document.querySelector('#' + groupId + GROUPOF_BUTTON_ID);
|
|
3952
|
+
if (overflowDDB) {
|
|
3953
|
+
const overflowButton = getInstance(overflowDDB, DropDownButton);
|
|
3954
|
+
const overflowBtnTarget = overflowButton.target;
|
|
3955
|
+
let itemEle = overflowBtnTarget.querySelectorAll('.e-ribbon-item');
|
|
3956
|
+
let isHidden = true;
|
|
3957
|
+
for (let i = 0; i < itemEle.length; i++) {
|
|
3958
|
+
if (!(itemEle[parseInt(i.toString(), 10)].classList.contains('e-hidden'))) {
|
|
3959
|
+
isHidden = false;
|
|
3960
|
+
break;
|
|
3961
|
+
}
|
|
3962
|
+
}
|
|
3963
|
+
overflowButton.element.classList[isHidden ? 'add' : 'remove']('e-hidden');
|
|
3964
|
+
}
|
|
3965
|
+
}
|
|
3966
|
+
else {
|
|
3967
|
+
if (this.overflowDDB) {
|
|
3968
|
+
let isGroupHidden = true;
|
|
3969
|
+
let isItemHidden;
|
|
3970
|
+
const overflowEle = this.overflowDDB.target;
|
|
3971
|
+
const ofTabContainer = overflowEle.querySelector('#' + this.tabs[parseInt(tabIndex.toString(), 10)].id + OVERFLOW_ID);
|
|
3972
|
+
if (ofTabContainer) {
|
|
3973
|
+
for (let k = 0; k < ofTabContainer.children.length; k++) {
|
|
3974
|
+
isItemHidden = true;
|
|
3975
|
+
const overflowTab = ofTabContainer.children[parseInt(k.toString(), 10)];
|
|
3976
|
+
let groupTabContainer = overflowTab.querySelectorAll('.e-ribbon-item');
|
|
3977
|
+
for (let n = 0; n < groupTabContainer.length; n++) {
|
|
3978
|
+
if (!(groupTabContainer[parseInt(n.toString(), 10)].classList.contains('e-hidden'))) {
|
|
3979
|
+
isItemHidden = false;
|
|
3980
|
+
break;
|
|
3981
|
+
}
|
|
3982
|
+
}
|
|
3983
|
+
overflowTab.classList[isItemHidden ? 'add' : 'remove']('e-hide-group');
|
|
3984
|
+
if (!(overflowTab.classList.contains('e-hide-group')) && !(overflowTab.classList.contains('e-hidden'))) {
|
|
3985
|
+
isGroupHidden = false;
|
|
3986
|
+
}
|
|
3987
|
+
}
|
|
3988
|
+
this.overflowDDB.element.classList[isGroupHidden ? 'add' : 'remove'](HIDE_CSS);
|
|
3989
|
+
}
|
|
3990
|
+
}
|
|
3991
|
+
}
|
|
3992
|
+
}
|
|
3921
3993
|
createOverflowPopup(item, tabIndex, isGroupOF, groupId, groupHeader, itemEle, groupContainer, isResize) {
|
|
3922
3994
|
let overflowButton;
|
|
3923
3995
|
const contentEle = this.tabObj.items[parseInt(tabIndex.toString(), 10)].content;
|
|
@@ -3933,11 +4005,16 @@ let Ribbon = Ribbon_1 = class Ribbon extends Component {
|
|
|
3933
4005
|
overflowButton = getInstance(overflowDDB, DropDownButton);
|
|
3934
4006
|
}
|
|
3935
4007
|
const overflowBtnTarget = overflowButton.target;
|
|
3936
|
-
if (groupEle
|
|
3937
|
-
|
|
3938
|
-
|
|
3939
|
-
|
|
3940
|
-
|
|
4008
|
+
if (groupEle) {
|
|
4009
|
+
if (groupEle.classList.contains('e-disabled')) {
|
|
4010
|
+
overflowBtnTarget.classList.add('e-disabled');
|
|
4011
|
+
}
|
|
4012
|
+
if (groupEle.classList.contains('e-hidden')) {
|
|
4013
|
+
overflowBtnTarget.classList.add('e-hidden');
|
|
4014
|
+
}
|
|
4015
|
+
if (groupEle.classList.contains('e-hide-group')) {
|
|
4016
|
+
overflowBtnTarget.classList.add('e-hide-group');
|
|
4017
|
+
}
|
|
3941
4018
|
}
|
|
3942
4019
|
isResize ? overflowBtnTarget.insertBefore(itemEle, overflowBtnTarget.querySelector('.' + RIBBON_ITEM))
|
|
3943
4020
|
: overflowBtnTarget.append(itemEle);
|
|
@@ -3957,8 +4034,16 @@ let Ribbon = Ribbon_1 = class Ribbon extends Component {
|
|
|
3957
4034
|
let ofGroupContainer = overflowEle.querySelector('#' + groupId + CONTAINER_ID);
|
|
3958
4035
|
if (!ofGroupContainer) {
|
|
3959
4036
|
ofGroupContainer = this.createGroupContainer(groupId, groupHeader);
|
|
3960
|
-
if (groupEle
|
|
3961
|
-
|
|
4037
|
+
if (groupEle) {
|
|
4038
|
+
if (groupEle.classList.contains('e-disabled')) {
|
|
4039
|
+
ofGroupContainer.classList.add('e-disabled');
|
|
4040
|
+
}
|
|
4041
|
+
if (groupEle.classList.contains('e-hidden')) {
|
|
4042
|
+
ofGroupContainer.classList.add('e-hidden');
|
|
4043
|
+
}
|
|
4044
|
+
if (groupEle.classList.contains('e-hide-group')) {
|
|
4045
|
+
ofGroupContainer.classList.add('e-hide-group');
|
|
4046
|
+
}
|
|
3962
4047
|
}
|
|
3963
4048
|
ofTabContainer.append(ofGroupContainer);
|
|
3964
4049
|
}
|
|
@@ -4022,6 +4107,9 @@ let Ribbon = Ribbon_1 = class Ribbon extends Component {
|
|
|
4022
4107
|
if (groupEle.classList.contains('e-hidden')) {
|
|
4023
4108
|
ofGroupContainer.classList.add('e-hidden');
|
|
4024
4109
|
}
|
|
4110
|
+
if (groupEle.classList.contains('e-hide-group')) {
|
|
4111
|
+
ofGroupContainer.classList.add('e-hide-group');
|
|
4112
|
+
}
|
|
4025
4113
|
}
|
|
4026
4114
|
}
|
|
4027
4115
|
checkGroupShrinking(tabIndex, tabContent, activeContent, isLarge) {
|
|
@@ -5356,6 +5444,20 @@ let Ribbon = Ribbon_1 = class Ribbon extends Component {
|
|
|
5356
5444
|
}
|
|
5357
5445
|
const elements = this.createCollection(group.collections, group.orientation, group.id, group.header, group.enableGroupOverflow, tabIndex, groupContainer);
|
|
5358
5446
|
append(elements, groupContent);
|
|
5447
|
+
let isItemsHidden = true;
|
|
5448
|
+
for (let j = 0; j < elements.length; j++) {
|
|
5449
|
+
if (isItemsHidden) {
|
|
5450
|
+
for (let k = 0; k < elements[parseInt(j.toString(), 10)].children.length; k++) {
|
|
5451
|
+
if (!(elements[parseInt(j.toString(), 10)].children[parseInt(k.toString(), 10)].classList.contains('e-hidden'))) {
|
|
5452
|
+
isItemsHidden = false;
|
|
5453
|
+
break;
|
|
5454
|
+
}
|
|
5455
|
+
}
|
|
5456
|
+
}
|
|
5457
|
+
}
|
|
5458
|
+
if (isItemsHidden) {
|
|
5459
|
+
groupEle.classList.add('e-hide-group');
|
|
5460
|
+
}
|
|
5359
5461
|
if ((this.activeLayout === 'Simplified') && !(group.enableGroupOverflow || groupEle.querySelector('.' + RIBBON_ITEM))) {
|
|
5360
5462
|
groupEle.classList.add('e-ribbon-emptyCollection');
|
|
5361
5463
|
}
|
|
@@ -6355,6 +6457,7 @@ let Ribbon = Ribbon_1 = class Ribbon extends Component {
|
|
|
6355
6457
|
if (ele) {
|
|
6356
6458
|
const itemEle = closest(ele, '.e-ribbon-item');
|
|
6357
6459
|
isHidden ? itemEle.classList.add('e-hidden') : itemEle.classList.remove('e-hidden');
|
|
6460
|
+
this.checkHiddenItems(itemProp.group, isHidden, itemProp.tabIndex);
|
|
6358
6461
|
this.refreshLayout();
|
|
6359
6462
|
}
|
|
6360
6463
|
else {
|
|
@@ -6387,6 +6490,76 @@ let Ribbon = Ribbon_1 = class Ribbon extends Component {
|
|
|
6387
6490
|
}
|
|
6388
6491
|
}
|
|
6389
6492
|
}
|
|
6493
|
+
checkHiddenItems(group, isHidden, tabIndex) {
|
|
6494
|
+
let isItemsHidden = true;
|
|
6495
|
+
let isEmptyCollection;
|
|
6496
|
+
const contentEle = this.tabObj.items[parseInt(tabIndex.toString(), 10)].content;
|
|
6497
|
+
const groupEle = contentEle.querySelector('#' + group.id);
|
|
6498
|
+
if (isHidden) {
|
|
6499
|
+
for (let i = 0; i < group.collections.length; i++) {
|
|
6500
|
+
if (isItemsHidden) {
|
|
6501
|
+
const collection = group.collections[parseInt(i.toString(), 10)];
|
|
6502
|
+
for (let j = 0; j < collection.items.length; j++) {
|
|
6503
|
+
const item = collection.items[parseInt(j.toString(), 10)];
|
|
6504
|
+
let itemEle;
|
|
6505
|
+
if (item.type === 'GroupButton') {
|
|
6506
|
+
const itemProp = getItem(this.tabs, item.id);
|
|
6507
|
+
itemEle = getItemElement(this, item.id + RIBBON_GROUP_BUTTON_ID, itemProp);
|
|
6508
|
+
}
|
|
6509
|
+
else {
|
|
6510
|
+
itemEle = getItemElement(this, item.id);
|
|
6511
|
+
}
|
|
6512
|
+
let itemContainer = itemEle ? itemEle.closest('.e-ribbon-item') : null;
|
|
6513
|
+
if (!(itemContainer.classList.contains('e-hidden'))) {
|
|
6514
|
+
isItemsHidden = false;
|
|
6515
|
+
break;
|
|
6516
|
+
}
|
|
6517
|
+
}
|
|
6518
|
+
}
|
|
6519
|
+
}
|
|
6520
|
+
if (isItemsHidden) {
|
|
6521
|
+
groupEle.classList.add('e-hide-group');
|
|
6522
|
+
this.checkOverflowItems(isHidden, contentEle, group.enableGroupOverflow, tabIndex, group.id);
|
|
6523
|
+
}
|
|
6524
|
+
}
|
|
6525
|
+
else {
|
|
6526
|
+
groupEle.classList.remove('e-hide-group');
|
|
6527
|
+
this.checkOverflowItems(isHidden, contentEle, group.enableGroupOverflow, tabIndex, group.id);
|
|
6528
|
+
}
|
|
6529
|
+
if (this.activeLayout === 'Simplified' && !group.enableGroupOverflow) {
|
|
6530
|
+
let itemsLength = groupEle.querySelectorAll('.' + RIBBON_ITEM);
|
|
6531
|
+
if (itemsLength) {
|
|
6532
|
+
isEmptyCollection = this.checkEmptyCollection(itemsLength);
|
|
6533
|
+
groupEle.classList[isEmptyCollection ? 'add' : 'remove']('e-ribbon-emptyCollection');
|
|
6534
|
+
}
|
|
6535
|
+
}
|
|
6536
|
+
}
|
|
6537
|
+
checkOverflowItems(isHidden, contentEle, isGroupOF, tabIndex, groupID) {
|
|
6538
|
+
let overflowDDB;
|
|
6539
|
+
let overflowtarget;
|
|
6540
|
+
if (isGroupOF) {
|
|
6541
|
+
const overflowDDBEle = contentEle.querySelector('#' + groupID + GROUPOF_BUTTON_ID);
|
|
6542
|
+
if (overflowDDBEle) {
|
|
6543
|
+
overflowDDB = getInstance(overflowDDBEle, DropDownButton);
|
|
6544
|
+
overflowtarget = overflowDDB.target;
|
|
6545
|
+
}
|
|
6546
|
+
if (overflowtarget) {
|
|
6547
|
+
isHidden ? overflowtarget.classList.add('e-hide-group') : overflowtarget.classList.remove('e-hide-group');
|
|
6548
|
+
}
|
|
6549
|
+
}
|
|
6550
|
+
else {
|
|
6551
|
+
if (this.overflowDDB) {
|
|
6552
|
+
const overflowEle = this.overflowDDB.target;
|
|
6553
|
+
const ofTabContainer = overflowEle.querySelector('#' + this.tabs[parseInt(tabIndex.toString(), 10)].id + OVERFLOW_ID);
|
|
6554
|
+
if (ofTabContainer) {
|
|
6555
|
+
const grpContainer = ofTabContainer.querySelector('#' + groupID + CONTAINER_ID);
|
|
6556
|
+
if (grpContainer) {
|
|
6557
|
+
isHidden ? grpContainer.classList.add('e-hide-group') : grpContainer.classList.remove('e-hide-group');
|
|
6558
|
+
}
|
|
6559
|
+
}
|
|
6560
|
+
}
|
|
6561
|
+
}
|
|
6562
|
+
}
|
|
6390
6563
|
/**
|
|
6391
6564
|
* tab - Gets the ribbon tab to be updated. The id of the tab is a required property. Other properties are optional.
|
|
6392
6565
|
*
|