@syncfusion/ej2-ribbon 31.1.17 → 31.1.22

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 (186) hide show
  1. package/dist/ej2-ribbon.umd.min.js +3 -3
  2. package/dist/ej2-ribbon.umd.min.js.map +1 -1
  3. package/dist/es6/ej2-ribbon.es2015.js +24 -5
  4. package/dist/es6/ej2-ribbon.es2015.js.map +1 -1
  5. package/dist/es6/ej2-ribbon.es5.js +24 -5
  6. package/dist/es6/ej2-ribbon.es5.js.map +1 -1
  7. package/dist/global/ej2-ribbon.min.js +3 -3
  8. package/dist/global/ej2-ribbon.min.js.map +1 -1
  9. package/dist/global/index.d.ts +2 -2
  10. package/package.json +17 -53
  11. package/src/ribbon/base/ribbon-model.d.ts +1 -1
  12. package/src/ribbon/base/ribbon.js +14 -5
  13. package/src/ribbon/items/ribbon-splitbutton.js +11 -0
  14. package/styles/bds-lite.css +9 -0
  15. package/styles/bds.css +9 -0
  16. package/styles/bootstrap-dark-lite.css +9 -0
  17. package/styles/bootstrap-dark.css +9 -0
  18. package/styles/bootstrap-lite.css +9 -0
  19. package/styles/bootstrap.css +9 -0
  20. package/styles/bootstrap4-lite.css +17 -0
  21. package/styles/bootstrap4.css +17 -0
  22. package/styles/bootstrap5-dark-lite.css +9 -0
  23. package/styles/bootstrap5-dark.css +9 -0
  24. package/styles/bootstrap5-lite.css +9 -0
  25. package/styles/bootstrap5.3-lite.css +9 -0
  26. package/styles/bootstrap5.3.css +9 -0
  27. package/styles/bootstrap5.css +9 -0
  28. package/styles/fabric-dark-lite.css +9 -0
  29. package/styles/fabric-dark.css +9 -0
  30. package/styles/fabric-lite.css +9 -0
  31. package/styles/fabric.css +9 -0
  32. package/styles/fluent-dark-lite.css +9 -0
  33. package/styles/fluent-dark.css +9 -0
  34. package/styles/fluent-lite.css +9 -0
  35. package/styles/fluent.css +9 -0
  36. package/styles/fluent2-lite.css +11 -2
  37. package/styles/fluent2.css +11 -2
  38. package/styles/highcontrast-light-lite.css +9 -0
  39. package/styles/highcontrast-light.css +9 -0
  40. package/styles/highcontrast-lite.css +9 -0
  41. package/styles/highcontrast.css +9 -0
  42. package/styles/material-dark-lite.css +9 -0
  43. package/styles/material-dark.css +9 -0
  44. package/styles/material-lite.css +9 -0
  45. package/styles/material.css +9 -0
  46. package/styles/material3-dark-lite.css +9 -0
  47. package/styles/material3-dark.css +9 -0
  48. package/styles/material3-lite.css +9 -0
  49. package/styles/material3.css +9 -0
  50. package/styles/ribbon/_fluent2-definition.scss +2 -2
  51. package/styles/ribbon/_layout.scss +7 -0
  52. package/styles/ribbon/bds.css +9 -0
  53. package/styles/ribbon/bootstrap-dark.css +9 -0
  54. package/styles/ribbon/bootstrap.css +9 -0
  55. package/styles/ribbon/bootstrap4.css +17 -0
  56. package/styles/ribbon/bootstrap5-dark.css +9 -0
  57. package/styles/ribbon/bootstrap5.3.css +9 -0
  58. package/styles/ribbon/bootstrap5.css +9 -0
  59. package/styles/ribbon/fabric-dark.css +9 -0
  60. package/styles/ribbon/fabric.css +9 -0
  61. package/styles/ribbon/fluent-dark.css +9 -0
  62. package/styles/ribbon/fluent.css +9 -0
  63. package/styles/ribbon/fluent2.css +11 -2
  64. package/styles/ribbon/highcontrast-light.css +9 -0
  65. package/styles/ribbon/highcontrast.css +9 -0
  66. package/styles/ribbon/material-dark.css +9 -0
  67. package/styles/ribbon/material.css +9 -0
  68. package/styles/ribbon/material3-dark.css +9 -0
  69. package/styles/ribbon/material3.css +9 -0
  70. package/styles/ribbon/tailwind-dark.css +9 -0
  71. package/styles/ribbon/tailwind.css +9 -0
  72. package/styles/ribbon/tailwind3.css +9 -0
  73. package/styles/tailwind-dark-lite.css +9 -0
  74. package/styles/tailwind-dark.css +9 -0
  75. package/styles/tailwind-lite.css +9 -0
  76. package/styles/tailwind.css +9 -0
  77. package/styles/tailwind3-lite.css +9 -0
  78. package/styles/tailwind3.css +9 -0
  79. package/dist/ts/index.d.ts +0 -1
  80. package/dist/ts/index.ts +0 -3
  81. package/dist/ts/ribbon/base/constant.d.ts +0 -201
  82. package/dist/ts/ribbon/base/constant.ts +0 -204
  83. package/dist/ts/ribbon/base/index.d.ts +0 -8
  84. package/dist/ts/ribbon/base/index.ts +0 -8
  85. package/dist/ts/ribbon/base/interface.d.ts +0 -398
  86. package/dist/ts/ribbon/base/interface.ts +0 -424
  87. package/dist/ts/ribbon/base/ribbon-model.d.ts +0 -195
  88. package/dist/ts/ribbon/base/ribbon.d.ts +0 -608
  89. package/dist/ts/ribbon/base/ribbon.ts +0 -4896
  90. package/dist/ts/ribbon/base/utils.d.ts +0 -139
  91. package/dist/ts/ribbon/base/utils.ts +0 -341
  92. package/dist/ts/ribbon/index.d.ts +0 -7
  93. package/dist/ts/ribbon/index.ts +0 -7
  94. package/dist/ts/ribbon/items/index.d.ts +0 -8
  95. package/dist/ts/ribbon/items/index.ts +0 -8
  96. package/dist/ts/ribbon/items/ribbon-button.d.ts +0 -64
  97. package/dist/ts/ribbon/items/ribbon-button.ts +0 -160
  98. package/dist/ts/ribbon/items/ribbon-checkbox.d.ts +0 -55
  99. package/dist/ts/ribbon/items/ribbon-checkbox.ts +0 -130
  100. package/dist/ts/ribbon/items/ribbon-colorpicker.d.ts +0 -72
  101. package/dist/ts/ribbon/items/ribbon-colorpicker.ts +0 -228
  102. package/dist/ts/ribbon/items/ribbon-combobox.d.ts +0 -77
  103. package/dist/ts/ribbon/items/ribbon-combobox.ts +0 -201
  104. package/dist/ts/ribbon/items/ribbon-dropdown.d.ts +0 -128
  105. package/dist/ts/ribbon/items/ribbon-dropdown.ts +0 -400
  106. package/dist/ts/ribbon/items/ribbon-gallery.d.ts +0 -97
  107. package/dist/ts/ribbon/items/ribbon-gallery.ts +0 -773
  108. package/dist/ts/ribbon/items/ribbon-groupbutton.d.ts +0 -73
  109. package/dist/ts/ribbon/items/ribbon-groupbutton.ts +0 -531
  110. package/dist/ts/ribbon/items/ribbon-splitbutton.d.ts +0 -85
  111. package/dist/ts/ribbon/items/ribbon-splitbutton.ts +0 -257
  112. package/dist/ts/ribbon/models/index.d.ts +0 -42
  113. package/dist/ts/ribbon/models/index.ts +0 -44
  114. package/dist/ts/ribbon/models/ribbon-back-button-model.d.ts +0 -29
  115. package/dist/ts/ribbon/models/ribbon-back-button.d.ts +0 -24
  116. package/dist/ts/ribbon/models/ribbon-back-button.ts +0 -31
  117. package/dist/ts/ribbon/models/ribbon-back-stage-settings-model.d.ts +0 -83
  118. package/dist/ts/ribbon/models/ribbon-back-stage-settings.d.ts +0 -81
  119. package/dist/ts/ribbon/models/ribbon-back-stage-settings.ts +0 -109
  120. package/dist/ts/ribbon/models/ribbon-backstage-item-model.d.ts +0 -69
  121. package/dist/ts/ribbon/models/ribbon-backstage-item.d.ts +0 -80
  122. package/dist/ts/ribbon/models/ribbon-backstage-item.ts +0 -102
  123. package/dist/ts/ribbon/models/ribbon-button-settings-model.d.ts +0 -64
  124. package/dist/ts/ribbon/models/ribbon-button-settings.d.ts +0 -63
  125. package/dist/ts/ribbon/models/ribbon-button-settings.ts +0 -80
  126. package/dist/ts/ribbon/models/ribbon-checkbox-settings-model.d.ts +0 -57
  127. package/dist/ts/ribbon/models/ribbon-checkbox-settings.d.ts +0 -58
  128. package/dist/ts/ribbon/models/ribbon-checkbox-settings.ts +0 -74
  129. package/dist/ts/ribbon/models/ribbon-collection-model.d.ts +0 -30
  130. package/dist/ts/ribbon/models/ribbon-collection.d.ts +0 -33
  131. package/dist/ts/ribbon/models/ribbon-collection.ts +0 -45
  132. package/dist/ts/ribbon/models/ribbon-colorpicker-settings-model.d.ts +0 -137
  133. package/dist/ts/ribbon/models/ribbon-colorpicker-settings.d.ts +0 -129
  134. package/dist/ts/ribbon/models/ribbon-colorpicker-settings.ts +0 -165
  135. package/dist/ts/ribbon/models/ribbon-combobox-settings-model.d.ts +0 -275
  136. package/dist/ts/ribbon/models/ribbon-combobox-settings.d.ts +0 -257
  137. package/dist/ts/ribbon/models/ribbon-combobox-settings.ts +0 -313
  138. package/dist/ts/ribbon/models/ribbon-contextual-tab-settings-model.d.ts +0 -30
  139. package/dist/ts/ribbon/models/ribbon-contextual-tab-settings.d.ts +0 -33
  140. package/dist/ts/ribbon/models/ribbon-contextual-tab-settings.ts +0 -44
  141. package/dist/ts/ribbon/models/ribbon-dropdown-settings-model.d.ts +0 -114
  142. package/dist/ts/ribbon/models/ribbon-dropdown-settings.d.ts +0 -107
  143. package/dist/ts/ribbon/models/ribbon-dropdown-settings.ts +0 -139
  144. package/dist/ts/ribbon/models/ribbon-file-menu-settings-model.d.ts +0 -123
  145. package/dist/ts/ribbon/models/ribbon-file-menu-settings.d.ts +0 -173
  146. package/dist/ts/ribbon/models/ribbon-file-menu-settings.ts +0 -220
  147. package/dist/ts/ribbon/models/ribbon-gallery-group-model.d.ts +0 -44
  148. package/dist/ts/ribbon/models/ribbon-gallery-group.d.ts +0 -38
  149. package/dist/ts/ribbon/models/ribbon-gallery-group.ts +0 -50
  150. package/dist/ts/ribbon/models/ribbon-gallery-item-model.d.ts +0 -43
  151. package/dist/ts/ribbon/models/ribbon-gallery-item.d.ts +0 -38
  152. package/dist/ts/ribbon/models/ribbon-gallery-item.ts +0 -47
  153. package/dist/ts/ribbon/models/ribbon-gallery-settings-model.d.ts +0 -108
  154. package/dist/ts/ribbon/models/ribbon-gallery-settings.d.ts +0 -95
  155. package/dist/ts/ribbon/models/ribbon-gallery-settings.ts +0 -123
  156. package/dist/ts/ribbon/models/ribbon-group-button-item-model.d.ts +0 -64
  157. package/dist/ts/ribbon/models/ribbon-group-button-item.d.ts +0 -65
  158. package/dist/ts/ribbon/models/ribbon-group-button-item.ts +0 -85
  159. package/dist/ts/ribbon/models/ribbon-group-button-settings-model.d.ts +0 -32
  160. package/dist/ts/ribbon/models/ribbon-group-button-settings.d.ts +0 -29
  161. package/dist/ts/ribbon/models/ribbon-group-button-settings.ts +0 -38
  162. package/dist/ts/ribbon/models/ribbon-group-model.d.ts +0 -112
  163. package/dist/ts/ribbon/models/ribbon-group.d.ts +0 -105
  164. package/dist/ts/ribbon/models/ribbon-group.ts +0 -138
  165. package/dist/ts/ribbon/models/ribbon-item-model.d.ts +0 -144
  166. package/dist/ts/ribbon/models/ribbon-item.d.ts +0 -141
  167. package/dist/ts/ribbon/models/ribbon-item.ts +0 -190
  168. package/dist/ts/ribbon/models/ribbon-splitbutton-settings-model.d.ts +0 -114
  169. package/dist/ts/ribbon/models/ribbon-splitbutton-settings.d.ts +0 -107
  170. package/dist/ts/ribbon/models/ribbon-splitbutton-settings.ts +0 -140
  171. package/dist/ts/ribbon/models/ribbon-tab-model.d.ts +0 -44
  172. package/dist/ts/ribbon/models/ribbon-tab.d.ts +0 -45
  173. package/dist/ts/ribbon/models/ribbon-tab.ts +0 -61
  174. package/dist/ts/ribbon/models/ribbon-tooltip-model.d.ts +0 -43
  175. package/dist/ts/ribbon/models/ribbon-tooltip.d.ts +0 -36
  176. package/dist/ts/ribbon/models/ribbon-tooltip.ts +0 -47
  177. package/dist/ts/ribbon/modules/index.d.ts +0 -4
  178. package/dist/ts/ribbon/modules/index.ts +0 -5
  179. package/dist/ts/ribbon/modules/ribbon-backstage.d.ts +0 -117
  180. package/dist/ts/ribbon/modules/ribbon-backstage.ts +0 -620
  181. package/dist/ts/ribbon/modules/ribbon-contextualtab.d.ts +0 -27
  182. package/dist/ts/ribbon/modules/ribbon-contextualtab.ts +0 -93
  183. package/dist/ts/ribbon/modules/ribbon-filemenu.d.ts +0 -96
  184. package/dist/ts/ribbon/modules/ribbon-filemenu.ts +0 -353
  185. package/dist/ts/ribbon/modules/ribbon-keytip.d.ts +0 -56
  186. package/dist/ts/ribbon/modules/ribbon-keytip.ts +0 -580
@@ -1,73 +0,0 @@
1
- import { Ribbon } from '../base/ribbon';
2
- import { RibbonItemModel } from '../models';
3
- import { DropDownButton } from '@syncfusion/ej2-splitbuttons';
4
- /**
5
- * Defines the items of Ribbon.
6
- */
7
- export declare class RibbonGroupButton {
8
- private parent;
9
- private count;
10
- private isSelected;
11
- private grpBtnIndex;
12
- constructor(parent: Ribbon);
13
- protected getModuleName(): string;
14
- protected destroy(): void;
15
- /**
16
- * Creates Group Button
17
- *
18
- * @param {RibbonItemModel} item - Gets the ribbon item model.
19
- * @param {HTMLElement} itemElement - Gets the ribbon item element.
20
- * @returns {void}
21
- * @hidden
22
- */
23
- createGroupButton(item: RibbonItemModel, itemElement: HTMLElement): void;
24
- private groupButtonClicked;
25
- /**
26
- * updates group button in mode switching
27
- *
28
- * @param {RibbonItemModel} item - Gets the ribbon item model.
29
- * @param {HTMLElement} itemElement - Gets the ribbon item element.
30
- * @returns {void}
31
- * @hidden
32
- */
33
- switchGroupButton(item: RibbonItemModel, itemElement: HTMLElement): void;
34
- private handleFocusState;
35
- private addGroupButtonHeader;
36
- private handleGroupButtonNavigation;
37
- /**
38
- * Adds the additional event handlers as the item moved into overflow popup.
39
- *
40
- * @param {RibbonItemModel} item - Gets the ribbon item model.
41
- * @param {HTMLElement} itemEle - Gets the ribbon item element.
42
- * @param {DropDownButton} overflowButton - Gets the overflow button.
43
- * @returns {void}
44
- * @hidden
45
- */
46
- addOverFlowEvents(item: RibbonItemModel, itemEle: HTMLElement, overflowButton: DropDownButton): void;
47
- /**
48
- * Removes the additional event handlers as the item moved into overflow popup.
49
- *
50
- * @param {RibbonItemModel} item - Gets the ribbon item model.
51
- * @param {HTMLElement} itemEle - Gets the ribbon item element.
52
- * @returns {void}
53
- * @hidden
54
- */
55
- removeOverFlowEvents(item: RibbonItemModel, itemEle: HTMLElement): void;
56
- /**
57
- * Removes DropDown.
58
- *
59
- * @param {RibbonItemModel} item - Gets the ribbon item.
60
- * @returns {void}
61
- * @hidden
62
- */
63
- destroyDropDown(item: RibbonItemModel): void;
64
- /**
65
- * Updates the group button size.
66
- *
67
- * @param {HTMLElement} itemElement - Gets the group button container element.
68
- * @param {RibbonItemModel} item - Gets the ribbon item.
69
- * @returns {void}
70
- * @hidden
71
- */
72
- updateGroupButtonSize(itemElement: HTMLElement, item: RibbonItemModel): void;
73
- }
@@ -1,531 +0,0 @@
1
- import { EventHandler, KeyboardEventArgs, getComponent, remove } from '@syncfusion/ej2-base';
2
- import { Ribbon } from '../base/ribbon';
3
- import { RibbonGroupButtonItem, RibbonGroupButtonItemModel, RibbonGroupButtonSettingsModel, RibbonItemModel } from '../models';
4
- import * as constants from '../base/constant';
5
- import { Button } from '@syncfusion/ej2-buttons';
6
- import { BeforeClickGroupButtonEventArgs, ClickGroupButtonEventArgs, RibbonGroupButtonSelection, RibbonItemSize } from '../base/interface';
7
- import { DropDownButton } from '@syncfusion/ej2-splitbuttons';
8
- import { createTooltip, isTooltipPresent, setCustomAttributes } from '../base/utils';
9
- import { Popup, Tooltip } from '@syncfusion/ej2-popups';
10
-
11
- /**
12
- * Defines the items of Ribbon.
13
- */
14
- export class RibbonGroupButton {
15
- private parent: Ribbon;
16
- private count: number;
17
- private isSelected: boolean;
18
- private grpBtnIndex: number = 0;
19
-
20
- constructor(parent: Ribbon) {
21
- this.parent = parent;
22
- this.isSelected = false;
23
- }
24
- protected getModuleName(): string {
25
- return 'ribbonGroupButton';
26
- }
27
- protected destroy(): void {
28
- this.parent = null;
29
- }
30
-
31
- /**
32
- * Creates Group Button
33
- *
34
- * @param {RibbonItemModel} item - Gets the ribbon item model.
35
- * @param {HTMLElement} itemElement - Gets the ribbon item element.
36
- * @returns {void}
37
- * @hidden
38
- */
39
- public createGroupButton(item: RibbonItemModel, itemElement: HTMLElement): void {
40
- const groupBtnSettings: RibbonGroupButtonSettingsModel = item.groupButtonSettings;
41
- this.count = 0;
42
- const btnContainerEle: HTMLElement = this.parent.createElement('div', {
43
- id: item.id + constants.RIBBON_GROUP_BUTTON_ID,
44
- className: 'e-btn-group'
45
- });
46
- itemElement.appendChild(btnContainerEle);
47
- for (let i: number = 0; i < groupBtnSettings.items.length; i++) {
48
- if ((groupBtnSettings.items[parseInt(i.toString(), 10)].iconCss)) {
49
- const groupButtonEle: HTMLButtonElement = this.parent.createElement('button', {
50
- id: item.id + constants.RIBBON_GROUP_BUTTON_ID + i,
51
- className: constants.RIBBON_GROUP_BUTTON
52
- });
53
- btnContainerEle.appendChild(groupButtonEle);
54
- new Button({
55
- iconCss: groupBtnSettings.items[parseInt(i.toString(), 10)].iconCss,
56
- disabled: item.disabled,
57
- enableRtl: this.parent.enableRtl,
58
- content: item.activeSize === RibbonItemSize.Small ? '' : groupBtnSettings.items[parseInt(i.toString(), 10)].content,
59
- iconPosition: item.activeSize === RibbonItemSize.Large ? 'Top' : 'Left'
60
- }, groupButtonEle);
61
- if (groupBtnSettings.items[parseInt(i.toString(), 10)].htmlAttributes) {
62
- setCustomAttributes(groupButtonEle, groupBtnSettings.items[parseInt(i.toString(), 10)].htmlAttributes);
63
- }
64
- if (groupBtnSettings.items[parseInt(i.toString(), 10)].content) {
65
- groupButtonEle.classList.add(constants.RIBBON_GROUP_BUTTON_CONTENT);
66
- groupButtonEle.setAttribute('aria-label', groupBtnSettings.items[parseInt(i.toString(), 10)].content);
67
- }
68
- else {
69
- groupButtonEle.setAttribute('aria-label', 'groupbuttonitem');
70
- }
71
- const buttonEle: HTMLElement = itemElement.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + i);
72
- if (groupBtnSettings.selection === RibbonGroupButtonSelection.Single) {
73
- btnContainerEle.classList.add(constants.RIBBON_SINGLE_BUTTON_SELECTION);
74
- }
75
- else {
76
- btnContainerEle.classList.add(constants.RIBBON_MULTIPLE_BUTTON_SELECTION);
77
- }
78
- if (groupBtnSettings.items[parseInt(i.toString(), 10)].selected) {
79
- if (groupBtnSettings.selection === RibbonGroupButtonSelection.Multiple) {
80
- buttonEle.classList.add('e-active');
81
- }
82
- else {
83
- if (this.count < 1) {
84
- buttonEle.classList.add('e-active');
85
- this.count++;
86
- }
87
- }
88
- this.grpBtnIndex = i;
89
- }
90
- if (groupBtnSettings.items[parseInt(i.toString(), 10)].ribbonTooltipSettings &&
91
- isTooltipPresent(groupBtnSettings.items[parseInt(i.toString(), 10)].ribbonTooltipSettings)) {
92
- groupButtonEle.classList.add(constants.RIBBON_TOOLTIP_TARGET);
93
- this.parent.tooltipData.push({
94
- id: groupButtonEle.id, data: groupBtnSettings.items[parseInt(i.toString(), 10)].ribbonTooltipSettings
95
- });
96
- }
97
- EventHandler.add(buttonEle, 'click', this.groupButtonClicked.bind(this, i, item, groupBtnSettings), this);
98
- }
99
- }
100
- if (this.parent.activeLayout === 'Simplified') {
101
- let dropdownIcon: string;
102
- let activeEleCount: number = 0;
103
- let count: number = 0;
104
- const buttonEle: HTMLButtonElement = this.parent.createElement('button', {
105
- id: item.id
106
- });
107
- itemElement.appendChild(buttonEle);
108
- for (let i: number = 0; i < groupBtnSettings.items.length; i++) {
109
- if (item.groupButtonSettings.items[parseInt(i.toString(), 10)].selected &&
110
- !this.isSelected && groupBtnSettings.selection === RibbonGroupButtonSelection.Single) {
111
- dropdownIcon = item.groupButtonSettings.items[parseInt(i.toString(), 10)].iconCss;
112
- this.isSelected = true;
113
- }
114
- else if (item.groupButtonSettings.items[parseInt(i.toString(), 10)].selected &&
115
- groupBtnSettings.selection === RibbonGroupButtonSelection.Multiple) {
116
- activeEleCount++;
117
- if (activeEleCount === 1) {
118
- dropdownIcon = item.groupButtonSettings.items[parseInt(i.toString(), 10)].iconCss;
119
- }
120
- else {
121
- dropdownIcon = null;
122
- }
123
- }
124
- }
125
- while (count < item.groupButtonSettings.items.length && !this.isSelected && !dropdownIcon) {
126
- if (item.groupButtonSettings.items[parseInt(count.toString(), 10)].iconCss) {
127
- dropdownIcon = item.groupButtonSettings.items[parseInt(count.toString(), 10)].iconCss;
128
- this.isSelected = true;
129
- }
130
- count++;
131
- }
132
- const dropdown: DropDownButton = new DropDownButton({
133
- iconCss: dropdownIcon,
134
- target: btnContainerEle,
135
- enableRtl: this.parent.enableRtl,
136
- cssClass: 'e-ribbon-dropdown-group-button',
137
- disabled: item.disabled
138
- }, buttonEle);
139
- if (groupBtnSettings.header) {
140
- const dropDownPopup: Popup = dropdown.dropDown;
141
- this.addGroupButtonHeader(item.id, groupBtnSettings, dropDownPopup.element);
142
- }
143
- buttonEle.onclick = buttonEle.onkeydown = () => {
144
- this.handleFocusState(item, itemElement);
145
- };
146
- btnContainerEle.onkeydown = (e: KeyboardEventArgs) => {
147
- if (this.parent.activeLayout === 'Simplified') {
148
- this.handleGroupButtonNavigation(e, item);
149
- }
150
- };
151
- createTooltip(btnContainerEle, this.parent);
152
- this.isSelected = false;
153
- }
154
- }
155
-
156
- private groupButtonClicked(itemIndex: number, item: RibbonItemModel, grpBtnSettings: RibbonGroupButtonSettingsModel): void {
157
- const previousItems: RibbonGroupButtonItemModel[] = [];
158
- const selectingItems: RibbonGroupButtonItemModel[] = [];
159
- const selectedItems: RibbonGroupButtonItemModel[] = [];
160
- const groupButtonEle: HTMLButtonElement = document.querySelector('#' + item.id);
161
- let dropdown: DropDownButton;
162
- for (let j: number = 0; j < grpBtnSettings.items.length; j++) {
163
- if (document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + j)) {
164
- if (document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + j).classList.contains('e-active')) {
165
- previousItems.push(grpBtnSettings.items[parseInt(j.toString(), 10)]);
166
- }
167
- }
168
- }
169
- if (!(document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + itemIndex).classList.contains('e-active'))) {
170
- selectingItems.push(grpBtnSettings.items[parseInt(itemIndex.toString(), 10)]);
171
- }
172
- const eventArgs: BeforeClickGroupButtonEventArgs = {
173
- cancel: false, previousItems: previousItems, selectingItems: selectingItems
174
- };
175
- if (grpBtnSettings.items[parseInt(itemIndex.toString(), 10)].beforeClick) {
176
- grpBtnSettings.items[parseInt(itemIndex.toString(), 10)].beforeClick.call(this, eventArgs);
177
- }
178
- if (eventArgs.cancel) {
179
- return;
180
- }
181
- else {
182
- if (grpBtnSettings.selection === RibbonGroupButtonSelection.Single) {
183
- if (document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID).classList.contains(constants.RIBBON_MULTIPLE_BUTTON_SELECTION)) {
184
- document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID).classList.remove(constants.RIBBON_MULTIPLE_BUTTON_SELECTION);
185
- document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID).classList.add(constants.RIBBON_SINGLE_BUTTON_SELECTION);
186
- }
187
- for (let j: number = 0; j < grpBtnSettings.items.length; j++) {
188
- if (document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + j) && document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + j).classList.contains('e-active')) {
189
- document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + j).classList.remove('e-active');
190
- (grpBtnSettings.items[parseInt(j.toString(), 10)] as RibbonGroupButtonItem).
191
- setProperties({ selected: false }, true);
192
- }
193
- }
194
- document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + itemIndex).classList.toggle('e-active');
195
- (grpBtnSettings.items[parseInt(itemIndex.toString(), 10)] as RibbonGroupButtonItem).setProperties({ selected: true }, true);
196
- if (document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + itemIndex).classList.contains('e-active') && this.parent.activeLayout === 'Simplified') {
197
- this.grpBtnIndex = itemIndex;
198
- dropdown = getComponent(groupButtonEle, DropDownButton);
199
- dropdown.setProperties({
200
- iconCss: grpBtnSettings.items[parseInt(itemIndex.toString(), 10)].iconCss
201
- });
202
- }
203
- }
204
- else {
205
- if (document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID).classList.contains(constants.RIBBON_SINGLE_BUTTON_SELECTION)) {
206
- document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID).classList.remove(constants.RIBBON_SINGLE_BUTTON_SELECTION);
207
- document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID).classList.add(constants.RIBBON_MULTIPLE_BUTTON_SELECTION);
208
- }
209
- document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + itemIndex).classList.toggle('e-active');
210
- if (document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + itemIndex).classList.contains('e-active')) {
211
- (grpBtnSettings.items[parseInt(itemIndex.toString(), 10)] as RibbonGroupButtonItem).
212
- setProperties({ selected: true }, true);
213
- }
214
- else {
215
- (grpBtnSettings.items[parseInt(itemIndex.toString(), 10)] as RibbonGroupButtonItem).
216
- setProperties({ selected: false }, true);
217
- }
218
- let activeEleCount: number = 0;
219
- for (let n: number = 0; n < grpBtnSettings.items.length; n++) {
220
- if (document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + n) && document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + n).classList.contains('e-active') && this.parent.activeLayout === 'Simplified' && n !== itemIndex) {
221
- this.isSelected = true;
222
- activeEleCount++;
223
- }
224
- }
225
- if (this.parent.activeLayout === 'Simplified') {
226
- let dropdownIcon: string = null;
227
- let itemsCount: number = 0;
228
- dropdown = getComponent(groupButtonEle, DropDownButton);
229
- if (!this.isSelected) {
230
- if (document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + itemIndex).classList.contains('e-active')) {
231
- dropdownIcon = grpBtnSettings.items[parseInt(itemIndex.toString(), 10)].iconCss;
232
- }
233
- }
234
- else {
235
- if (activeEleCount === 1 && !(document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + itemIndex).classList.contains('e-active'))) {
236
- for (let n: number = 0; n < grpBtnSettings.items.length; n++) {
237
- if (document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + n) && document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + n).classList.contains('e-active')) {
238
- dropdownIcon = grpBtnSettings.items[parseInt(n.toString(), 10)].iconCss;
239
- }
240
- }
241
- }
242
- }
243
- while (itemsCount < grpBtnSettings.items.length && !dropdownIcon) {
244
- if (grpBtnSettings.items[parseInt(itemsCount.toString(), 10)].iconCss) {
245
- dropdownIcon = grpBtnSettings.items[parseInt(itemsCount.toString(), 10)].iconCss;
246
- }
247
- itemsCount++;
248
- }
249
- dropdown.setProperties({ iconCss: dropdownIcon});
250
- this.grpBtnIndex = itemIndex;
251
- }
252
- this.isSelected = false;
253
- }
254
- if (document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + itemIndex).classList.contains('e-active')) {
255
- selectedItems.push(grpBtnSettings.items[parseInt(itemIndex.toString(), 10)]);
256
- }
257
- const eventArgs: ClickGroupButtonEventArgs = { previousItems: previousItems, selectedItems: selectedItems };
258
- if (grpBtnSettings.items[parseInt(itemIndex.toString(), 10)].click) {
259
- grpBtnSettings.items[parseInt(itemIndex.toString(), 10)].click.call(this, eventArgs);
260
- }
261
- if (this.parent.activeLayout === 'Simplified' && groupButtonEle) {
262
- dropdown = getComponent(groupButtonEle, DropDownButton);
263
- dropdown.toggle();
264
- }
265
- }
266
- }
267
-
268
- /**
269
- * updates group button in mode switching
270
- *
271
- * @param {RibbonItemModel} item - Gets the ribbon item model.
272
- * @param {HTMLElement} itemElement - Gets the ribbon item element.
273
- * @returns {void}
274
- * @hidden
275
- */
276
- public switchGroupButton(item: RibbonItemModel, itemElement: HTMLElement): void {
277
- const groupBtnSettings: RibbonGroupButtonSettingsModel = item.groupButtonSettings;
278
- let dropdownIcon: string = null;
279
- let activeEleCount: number = 0;
280
- let itemsCount: number = 0;
281
- if (this.parent.activeLayout === 'Simplified') {
282
- const containerEle: HTMLButtonElement = itemElement.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID);
283
- const buttonEle: HTMLButtonElement = this.parent.createElement('button', {
284
- id: item.id
285
- });
286
- itemElement.appendChild(buttonEle);
287
- for (let i: number = 0; i < groupBtnSettings.items.length; i++) {
288
- if (document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + i)) {
289
- if (document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + i).classList.contains('e-active') && groupBtnSettings.selection === RibbonGroupButtonSelection.Single) {
290
- dropdownIcon = groupBtnSettings.items[parseInt(i.toString(), 10)].iconCss;
291
- }
292
- else if (document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + i).classList.contains('e-active') && groupBtnSettings.selection === RibbonGroupButtonSelection.Multiple) {
293
- activeEleCount++;
294
- if (activeEleCount === 1) {
295
- dropdownIcon = groupBtnSettings.items[parseInt(i.toString(), 10)].iconCss;
296
- }
297
- else if (activeEleCount > 1) {
298
- dropdownIcon = null;
299
- }
300
- }
301
- }
302
- }
303
- while (itemsCount < groupBtnSettings.items.length && !dropdownIcon) {
304
- if (groupBtnSettings.items[parseInt(itemsCount.toString(), 10)].iconCss) {
305
- dropdownIcon = groupBtnSettings.items[parseInt(itemsCount.toString(), 10)].iconCss;
306
- }
307
- itemsCount++;
308
- }
309
- const dropdown: DropDownButton = new DropDownButton({
310
- iconCss: dropdownIcon,
311
- target: containerEle,
312
- enableRtl: this.parent.enableRtl,
313
- cssClass: 'e-ribbon-dropdown-group-button',
314
- disabled: item.disabled
315
- }, buttonEle);
316
- if (groupBtnSettings.header) {
317
- const dropDownPopup: Popup = dropdown.dropDown;
318
- this.addGroupButtonHeader(item.id, groupBtnSettings, dropDownPopup.element);
319
- }
320
- buttonEle.onclick = buttonEle.onkeydown = () => {
321
- this.handleFocusState(item, itemElement);
322
- };
323
- containerEle.onkeydown = (e: KeyboardEventArgs) => {
324
- if (this.parent.activeLayout === 'Simplified') {
325
- this.handleGroupButtonNavigation(e, item);
326
- }
327
- };
328
- createTooltip(containerEle, this.parent);
329
- }
330
- else {
331
- const groupButtonEle: HTMLButtonElement = itemElement.querySelector('#' + item.id);
332
- const dropdown: DropDownButton = getComponent(groupButtonEle, DropDownButton);
333
- itemElement.appendChild(dropdown.target as HTMLElement);
334
- if (groupButtonEle) {
335
- dropdown.destroy();
336
- remove(groupButtonEle);
337
- }
338
- }
339
- }
340
-
341
- private handleFocusState(item: RibbonItemModel, itemElement: HTMLElement): void {
342
- if (itemElement.querySelector('#' + item.id).classList.contains('e-active')) {
343
- const defaultSelectedBtn: HTMLElement = document.querySelector('#' + item.id + '_grpbtn').querySelector('.' + constants.RIBBON_GROUP_BUTTON + '.e-active');
344
- if (defaultSelectedBtn) {
345
- defaultSelectedBtn.focus();
346
- }
347
- else {
348
- (document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + 0) as HTMLElement).focus();
349
- }
350
- }
351
- }
352
-
353
- private addGroupButtonHeader(itemID: string, groupBtnSettings: RibbonGroupButtonSettingsModel, popupEle: HTMLElement): void {
354
- const groupButtonHeader: HTMLElement = this.parent.createElement('div', {
355
- className: 'e-ribbon-groupbutton-header',
356
- id: itemID + constants.HEADER_ID,
357
- innerHTML: groupBtnSettings.header
358
- });
359
- popupEle.insertBefore(groupButtonHeader, popupEle.firstChild);
360
- }
361
-
362
- private handleGroupButtonNavigation(e: KeyboardEventArgs, item: RibbonItemModel): void {
363
- const groupButtonEle: HTMLElement = document.querySelector('#' + item.id) as HTMLElement;
364
- const dropdown: DropDownButton = getComponent(groupButtonEle, DropDownButton);
365
- const targetEle: HTMLElement = dropdown.target as HTMLElement;
366
- let isOverflowPopup: boolean = false;
367
- if (this.parent.activeLayout === 'Simplified' && targetEle.closest('.e-ribbon-dropdown-group-button').classList.contains(constants.RIBBON_GROUP_BUTTON_OVERFLOW_POPUP)) {
368
- isOverflowPopup = true;
369
- }
370
- if (e.key === 'Tab') { e.preventDefault(); }
371
- const groupBtnSettings: RibbonGroupButtonSettingsModel = item.groupButtonSettings;
372
- if ((e.key === 'ArrowRight' && !isOverflowPopup) || (e.key === 'ArrowDown' && isOverflowPopup)) {
373
- if (!this.parent.enableRtl || (e.key === 'ArrowDown' && isOverflowPopup)) {
374
- this.grpBtnIndex++;
375
- if (this.grpBtnIndex < groupBtnSettings.items.length) {
376
- (document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + (this.grpBtnIndex)) as HTMLElement).focus();
377
- }
378
- else {
379
- this.grpBtnIndex = 0;
380
- (document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + (this.grpBtnIndex)) as HTMLElement).focus();
381
- }
382
- }
383
- else {
384
- if (this.grpBtnIndex === 0) {
385
- this.grpBtnIndex = groupBtnSettings.items.length - 1;
386
- (document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + (this.grpBtnIndex)) as HTMLElement).focus();
387
- }
388
- else {
389
- this.grpBtnIndex--;
390
- (document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + (this.grpBtnIndex)) as HTMLElement).focus();
391
- }
392
- }
393
- }
394
- else if ((e.key === 'ArrowLeft' && !isOverflowPopup) || (e.key === 'ArrowUp' && isOverflowPopup)) {
395
- if (!this.parent.enableRtl || (e.key === 'ArrowUp' && isOverflowPopup)) {
396
- if (this.grpBtnIndex === 0) {
397
- this.grpBtnIndex = groupBtnSettings.items.length - 1;
398
- (document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + (this.grpBtnIndex)) as HTMLElement).focus();
399
- }
400
- else {
401
- this.grpBtnIndex--;
402
- (document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + (this.grpBtnIndex)) as HTMLElement).focus();
403
- }
404
- }
405
- else {
406
- this.grpBtnIndex++;
407
- if (this.grpBtnIndex < groupBtnSettings.items.length) {
408
- (document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + (this.grpBtnIndex)) as HTMLElement).focus();
409
- }
410
- else {
411
- this.grpBtnIndex = 0;
412
- (document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + (this.grpBtnIndex)) as HTMLElement).focus();
413
- }
414
- }
415
- }
416
- }
417
-
418
- /**
419
- * Adds the additional event handlers as the item moved into overflow popup.
420
- *
421
- * @param {RibbonItemModel} item - Gets the ribbon item model.
422
- * @param {HTMLElement} itemEle - Gets the ribbon item element.
423
- * @param {DropDownButton} overflowButton - Gets the overflow button.
424
- * @returns {void}
425
- * @hidden
426
- */
427
- public addOverFlowEvents(item: RibbonItemModel, itemEle: HTMLElement, overflowButton: DropDownButton): void {
428
- const groupBtnSettings: RibbonGroupButtonSettingsModel = item.groupButtonSettings;
429
- let isIconOnly: boolean = true;
430
- const groupButtonEle: HTMLElement = itemEle.querySelector('#' + item.id) as HTMLElement;
431
- if (groupButtonEle) {
432
- const dropdown: DropDownButton = getComponent(groupButtonEle, DropDownButton);
433
- dropdown.setProperties({ cssClass: dropdown.cssClass + constants.SPACE + constants.RIBBON_GROUP_BUTTON_OVERFLOW_POPUP, content: groupBtnSettings.header ? groupBtnSettings.header : ''});
434
- const targetEle: HTMLElement = dropdown.target as HTMLElement;
435
- if (targetEle.children.length) {
436
- for (let i: number = 0; i < targetEle.children.length; i++) {
437
- if (groupBtnSettings.items[parseInt(i.toString(), 10)].content) {
438
- isIconOnly = false;
439
- break;
440
- }
441
- }
442
- if (isIconOnly) {
443
- targetEle.classList.add('e-icon-btn');
444
- }
445
- }
446
- targetEle.onclick = () => {
447
- if (this.parent.activeLayout === 'Simplified' && targetEle.closest('.e-ribbon-dropdown-group-button').classList.contains(constants.RIBBON_GROUP_BUTTON_OVERFLOW_POPUP)) {
448
- if (overflowButton.element.classList.contains('e-active')) {
449
- overflowButton.toggle();
450
- }
451
- }
452
- };
453
- }
454
- const overflowGroupButtonEle: HTMLElement = itemEle.querySelector('#' + item.id + '_grpbtn') as HTMLElement;
455
- if (this.parent.activeLayout === 'Classic' && overflowGroupButtonEle) {
456
- overflowGroupButtonEle.onclick = () => {
457
- if (overflowButton.element.classList.contains('e-active')) {
458
- overflowButton.toggle();
459
- }
460
- };
461
- }
462
- }
463
-
464
- /**
465
- * Removes the additional event handlers as the item moved into overflow popup.
466
- *
467
- * @param {RibbonItemModel} item - Gets the ribbon item model.
468
- * @param {HTMLElement} itemEle - Gets the ribbon item element.
469
- * @returns {void}
470
- * @hidden
471
- */
472
- public removeOverFlowEvents(item: RibbonItemModel, itemEle: HTMLElement): void {
473
- const groupButtonEle: HTMLElement = itemEle.querySelector('#' + item.id) as HTMLElement;
474
- if (groupButtonEle) {
475
- const dropdown: DropDownButton = getComponent(groupButtonEle, DropDownButton);
476
- const targetEle: HTMLElement = dropdown.target as HTMLElement;
477
- if (targetEle.classList.contains('e-icon-btn')) {
478
- targetEle.classList.remove('e-icon-btn');
479
- }
480
- let cssClass: string[] = dropdown.cssClass.split(constants.SPACE);
481
- cssClass = cssClass.filter((value: string) => value !== constants.RIBBON_GROUP_BUTTON_OVERFLOW_POPUP);
482
- dropdown.setProperties({ cssClass: cssClass.join(constants.SPACE), content: '' });
483
- }
484
- }
485
-
486
- /**
487
- * Removes DropDown.
488
- *
489
- * @param {RibbonItemModel} item - Gets the ribbon item.
490
- * @returns {void}
491
- * @hidden
492
- */
493
- public destroyDropDown(item: RibbonItemModel): void {
494
- const groupButtonEle: HTMLButtonElement = document.querySelector('#' + item.id);
495
- if (groupButtonEle) {
496
- const dropdown: DropDownButton = getComponent(groupButtonEle, DropDownButton);
497
- const tooltip: Tooltip = getComponent(dropdown.target as HTMLElement, Tooltip);
498
- tooltip.destroy();
499
- dropdown.destroy();
500
- remove(groupButtonEle);
501
- }
502
- }
503
-
504
- /**
505
- * Updates the group button size.
506
- *
507
- * @param {HTMLElement} itemElement - Gets the group button container element.
508
- * @param {RibbonItemModel} item - Gets the ribbon item.
509
- * @returns {void}
510
- * @hidden
511
- */
512
- public updateGroupButtonSize(itemElement: HTMLElement, item: RibbonItemModel): void {
513
- const groupBtnSettings: RibbonGroupButtonSettingsModel = item.groupButtonSettings;
514
- let buttonEle: HTMLElement;
515
- for (let i: number = 0; i < groupBtnSettings.items.length; i++) {
516
- if (this.parent.activeLayout === 'Classic') {
517
- buttonEle = itemElement.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + i);
518
- }
519
- else {
520
- buttonEle = document.querySelector('#' + item.id + constants.RIBBON_GROUP_BUTTON_ID + i);
521
- }
522
- if (buttonEle) {
523
- const buttonObj: Button = getComponent(buttonEle, Button);
524
- buttonObj.setProperties({
525
- iconPosition: item.activeSize === RibbonItemSize.Large ? 'Top' : 'Left',
526
- content: item.activeSize === RibbonItemSize.Small ? '' : groupBtnSettings.items[parseInt(i.toString(), 10)].content
527
- });
528
- }
529
- }
530
- }
531
- }