@syncfusion/ej2-ribbon 33.2.10 → 34.1.29

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 (294) hide show
  1. package/dist/ej2-ribbon.umd.min.js +2 -2
  2. package/dist/ej2-ribbon.umd.min.js.map +1 -1
  3. package/dist/es6/ej2-ribbon.es2015.js +107 -8
  4. package/dist/es6/ej2-ribbon.es2015.js.map +1 -1
  5. package/dist/es6/ej2-ribbon.es5.js +115 -16
  6. package/dist/es6/ej2-ribbon.es5.js.map +1 -1
  7. package/dist/global/ej2-ribbon.min.js +2 -2
  8. package/dist/global/ej2-ribbon.min.js.map +1 -1
  9. package/dist/global/index.d.ts +1 -1
  10. package/package.json +8 -8
  11. package/src/ribbon/base/ribbon-model.d.ts +1 -1
  12. package/src/ribbon/base/ribbon.js +1 -2
  13. package/src/ribbon/base/utils.js +8 -0
  14. package/src/ribbon/items/ribbon-colorpicker.js +20 -1
  15. package/src/ribbon/items/ribbon-combobox.js +30 -1
  16. package/src/ribbon/items/ribbon-gallery.js +17 -5
  17. package/src/ribbon/items/ribbon-groupbutton.js +18 -6
  18. package/src/ribbon/items/ribbon-splitbutton.js +8 -2
  19. package/src/ribbon/modules/ribbon-filemenu.js +14 -0
  20. package/styles/bds-lite.css +15 -312
  21. package/styles/bds-lite.scss +1 -15
  22. package/styles/bds.css +20 -316
  23. package/styles/bds.scss +2 -16
  24. package/styles/bootstrap-dark-lite.css +6 -74
  25. package/styles/bootstrap-dark-lite.scss +1 -15
  26. package/styles/bootstrap-dark.css +6 -74
  27. package/styles/bootstrap-dark.scss +2 -16
  28. package/styles/bootstrap-lite.css +6 -76
  29. package/styles/bootstrap-lite.scss +1 -15
  30. package/styles/bootstrap.css +6 -76
  31. package/styles/bootstrap.scss +2 -16
  32. package/styles/bootstrap4-lite.css +7 -127
  33. package/styles/bootstrap4-lite.scss +1 -15
  34. package/styles/bootstrap4.css +7 -127
  35. package/styles/bootstrap4.scss +2 -16
  36. package/styles/bootstrap5-dark-lite.css +6 -149
  37. package/styles/bootstrap5-dark-lite.scss +1 -15
  38. package/styles/bootstrap5-dark.css +11 -149
  39. package/styles/bootstrap5-dark.scss +2 -16
  40. package/styles/bootstrap5-lite.css +7 -150
  41. package/styles/bootstrap5-lite.scss +1 -16
  42. package/styles/bootstrap5.3-lite.css +7 -318
  43. package/styles/bootstrap5.3-lite.scss +1 -16
  44. package/styles/bootstrap5.3.css +13 -403
  45. package/styles/bootstrap5.3.scss +2 -17
  46. package/styles/bootstrap5.css +12 -150
  47. package/styles/bootstrap5.scss +2 -17
  48. package/styles/fabric-dark-lite.css +6 -50
  49. package/styles/fabric-dark-lite.scss +1 -16
  50. package/styles/fabric-dark.css +6 -50
  51. package/styles/fabric-dark.scss +2 -17
  52. package/styles/fabric-lite.css +6 -51
  53. package/styles/fabric-lite.scss +1 -16
  54. package/styles/fabric.css +6 -51
  55. package/styles/fabric.scss +2 -17
  56. package/styles/fluent-dark-lite.css +6 -141
  57. package/styles/fluent-dark-lite.scss +1 -16
  58. package/styles/fluent-dark.css +6 -141
  59. package/styles/fluent-dark.scss +2 -17
  60. package/styles/fluent-lite.css +6 -141
  61. package/styles/fluent-lite.scss +1 -16
  62. package/styles/fluent.css +6 -141
  63. package/styles/fluent.scss +2 -17
  64. package/styles/fluent2-lite.css +7 -390
  65. package/styles/fluent2-lite.scss +1 -16
  66. package/styles/fluent2.css +7 -476
  67. package/styles/fluent2.scss +2 -17
  68. package/styles/highcontrast-light-lite.css +6 -71
  69. package/styles/highcontrast-light-lite.scss +1 -16
  70. package/styles/highcontrast-light.css +6 -71
  71. package/styles/highcontrast-light.scss +2 -17
  72. package/styles/highcontrast-lite.css +6 -72
  73. package/styles/highcontrast-lite.scss +1 -16
  74. package/styles/highcontrast.css +6 -72
  75. package/styles/highcontrast.scss +2 -17
  76. package/styles/material-dark-lite.css +7 -211
  77. package/styles/material-dark-lite.scss +1 -16
  78. package/styles/material-dark.css +7 -211
  79. package/styles/material-dark.scss +2 -17
  80. package/styles/material-lite.css +6 -215
  81. package/styles/material-lite.scss +1 -15
  82. package/styles/material.css +6 -215
  83. package/styles/material.scss +2 -16
  84. package/styles/material3-dark-lite.css +7 -358
  85. package/styles/material3-dark-lite.scss +1 -16
  86. package/styles/material3-dark.css +7 -440
  87. package/styles/material3-dark.scss +2 -17
  88. package/styles/material3-lite.css +7 -362
  89. package/styles/material3-lite.scss +1 -16
  90. package/styles/material3.css +7 -446
  91. package/styles/material3.scss +2 -17
  92. package/styles/ribbon/_all.scss +2 -2
  93. package/styles/ribbon/_bds-definition.scss +2 -2
  94. package/styles/ribbon/_bigger.scss +8 -1
  95. package/styles/ribbon/_bootstrap-dark-definition.scss +1 -2
  96. package/styles/ribbon/_bootstrap-definition.scss +2 -2
  97. package/styles/ribbon/_bootstrap4-definition.scss +1 -2
  98. package/styles/ribbon/_bootstrap5-dark-definition.scss +2 -2
  99. package/styles/ribbon/_bootstrap5-definition.scss +2 -2
  100. package/styles/ribbon/_bootstrap5.3-definition.scss +3 -3
  101. package/styles/ribbon/_fabric-dark-definition.scss +2 -2
  102. package/styles/ribbon/_fabric-definition.scss +2 -2
  103. package/styles/ribbon/_fluent-dark-definition.scss +2 -2
  104. package/styles/ribbon/_fluent-definition.scss +2 -2
  105. package/styles/ribbon/_fluent2-definition.scss +2 -2
  106. package/styles/ribbon/_highcontrast-definition.scss +2 -2
  107. package/styles/ribbon/_highcontrast-light-definition.scss +2 -2
  108. package/styles/ribbon/_layout.scss +1 -1
  109. package/styles/ribbon/_material-dark-definition.scss +2 -2
  110. package/styles/ribbon/_material-definition.scss +2 -2
  111. package/styles/ribbon/_material3-dark-definition.scss +2 -2
  112. package/styles/ribbon/_material3-definition.scss +2 -2
  113. package/styles/ribbon/_tailwind-dark-definition.scss +2 -2
  114. package/styles/ribbon/_tailwind-definition.scss +2 -2
  115. package/styles/ribbon/_tailwind3-definition.scss +2 -2
  116. package/styles/ribbon/_theme.scss +1 -1
  117. package/styles/ribbon/_variables.scss +2 -0
  118. package/styles/ribbon/bds.css +20 -316
  119. package/styles/ribbon/bds.scss +2 -17
  120. package/styles/ribbon/bootstrap-dark.css +6 -74
  121. package/styles/ribbon/bootstrap-dark.scss +2 -17
  122. package/styles/ribbon/bootstrap.css +6 -76
  123. package/styles/ribbon/bootstrap.scss +2 -17
  124. package/styles/ribbon/bootstrap4.css +7 -127
  125. package/styles/ribbon/bootstrap4.scss +2 -17
  126. package/styles/ribbon/bootstrap5-dark.css +11 -149
  127. package/styles/ribbon/bootstrap5-dark.scss +2 -17
  128. package/styles/ribbon/bootstrap5.3.css +13 -403
  129. package/styles/ribbon/bootstrap5.3.scss +2 -17
  130. package/styles/ribbon/bootstrap5.css +12 -150
  131. package/styles/ribbon/bootstrap5.scss +2 -17
  132. package/styles/ribbon/fabric-dark.css +6 -50
  133. package/styles/ribbon/fabric-dark.scss +2 -17
  134. package/styles/ribbon/fabric.css +6 -51
  135. package/styles/ribbon/fabric.scss +2 -17
  136. package/styles/ribbon/fluent-dark.css +6 -141
  137. package/styles/ribbon/fluent-dark.scss +2 -17
  138. package/styles/ribbon/fluent.css +6 -141
  139. package/styles/ribbon/fluent.scss +2 -17
  140. package/styles/ribbon/fluent2.css +7 -476
  141. package/styles/ribbon/fluent2.scss +2 -17
  142. package/styles/ribbon/highcontrast-light.css +6 -71
  143. package/styles/ribbon/highcontrast-light.scss +2 -17
  144. package/styles/ribbon/highcontrast.css +6 -72
  145. package/styles/ribbon/highcontrast.scss +2 -17
  146. package/styles/ribbon/icons/_bds.scss +1 -1
  147. package/styles/ribbon/icons/_bootstrap-dark.scss +1 -1
  148. package/styles/ribbon/icons/_bootstrap.scss +1 -1
  149. package/styles/ribbon/icons/_bootstrap4.scss +1 -1
  150. package/styles/ribbon/icons/_bootstrap5.3.scss +1 -1
  151. package/styles/ribbon/icons/_bootstrap5.scss +1 -1
  152. package/styles/ribbon/icons/_fabric-dark.scss +1 -1
  153. package/styles/ribbon/icons/_fabric.scss +1 -1
  154. package/styles/ribbon/icons/_fluent.scss +1 -1
  155. package/styles/ribbon/icons/_fluent2.scss +1 -1
  156. package/styles/ribbon/icons/_fusionnew.scss +1 -1
  157. package/styles/ribbon/icons/_highcontrast.scss +1 -1
  158. package/styles/ribbon/icons/_material-dark.scss +1 -1
  159. package/styles/ribbon/icons/_material.scss +1 -1
  160. package/styles/ribbon/icons/_material3.scss +1 -1
  161. package/styles/ribbon/icons/_tailwind-dark.scss +1 -1
  162. package/styles/ribbon/icons/_tailwind.scss +1 -1
  163. package/styles/ribbon/icons/_tailwind3.scss +1 -1
  164. package/styles/ribbon/material-dark.css +7 -211
  165. package/styles/ribbon/material-dark.scss +2 -17
  166. package/styles/ribbon/material.css +6 -215
  167. package/styles/ribbon/material.scss +2 -17
  168. package/styles/ribbon/material3-dark.css +7 -440
  169. package/styles/ribbon/material3-dark.scss +2 -17
  170. package/styles/ribbon/material3.css +7 -446
  171. package/styles/ribbon/material3.scss +2 -17
  172. package/styles/ribbon/tailwind-dark.css +19 -176
  173. package/styles/ribbon/tailwind-dark.scss +2 -17
  174. package/styles/ribbon/tailwind.css +20 -177
  175. package/styles/ribbon/tailwind.scss +2 -17
  176. package/styles/ribbon/tailwind3.css +15 -376
  177. package/styles/ribbon/tailwind3.scss +2 -17
  178. package/styles/tailwind-dark-lite.css +14 -176
  179. package/styles/tailwind-dark-lite.scss +1 -16
  180. package/styles/tailwind-dark.css +19 -176
  181. package/styles/tailwind-dark.scss +2 -17
  182. package/styles/tailwind-lite.css +15 -177
  183. package/styles/tailwind-lite.scss +1 -16
  184. package/styles/tailwind.css +20 -177
  185. package/styles/tailwind.scss +2 -17
  186. package/styles/tailwind3-lite.css +15 -302
  187. package/styles/tailwind3-lite.scss +1 -16
  188. package/styles/tailwind3.css +15 -376
  189. package/styles/tailwind3.scss +2 -17
  190. package/styles/ribbon/_all.bds.scss +0 -2
  191. package/styles/ribbon/_all.bootstrap-dark.scss +0 -2
  192. package/styles/ribbon/_all.bootstrap.scss +0 -2
  193. package/styles/ribbon/_all.bootstrap4.scss +0 -2
  194. package/styles/ribbon/_all.bootstrap5-dark.scss +0 -2
  195. package/styles/ribbon/_all.bootstrap5.3.scss +0 -2
  196. package/styles/ribbon/_all.bootstrap5.scss +0 -2
  197. package/styles/ribbon/_all.fabric-dark.scss +0 -2
  198. package/styles/ribbon/_all.fabric.scss +0 -2
  199. package/styles/ribbon/_all.fluent-dark.scss +0 -2
  200. package/styles/ribbon/_all.fluent.scss +0 -2
  201. package/styles/ribbon/_all.fluent2.scss +0 -2
  202. package/styles/ribbon/_all.highcontrast-light.scss +0 -2
  203. package/styles/ribbon/_all.highcontrast.scss +0 -2
  204. package/styles/ribbon/_all.material-dark.scss +0 -2
  205. package/styles/ribbon/_all.material.scss +0 -2
  206. package/styles/ribbon/_all.material3-dark.scss +0 -2
  207. package/styles/ribbon/_all.material3.scss +0 -2
  208. package/styles/ribbon/_all.tailwind-dark.scss +0 -2
  209. package/styles/ribbon/_all.tailwind.scss +0 -2
  210. package/styles/ribbon/_all.tailwind3.scss +0 -2
  211. package/styles/ribbon/_bigger.bds.scss +0 -3
  212. package/styles/ribbon/_bigger.bootstrap-dark.scss +0 -3
  213. package/styles/ribbon/_bigger.bootstrap.scss +0 -3
  214. package/styles/ribbon/_bigger.bootstrap4.scss +0 -3
  215. package/styles/ribbon/_bigger.bootstrap5-dark.scss +0 -3
  216. package/styles/ribbon/_bigger.bootstrap5.3.scss +0 -3
  217. package/styles/ribbon/_bigger.bootstrap5.scss +0 -3
  218. package/styles/ribbon/_bigger.fabric-dark.scss +0 -3
  219. package/styles/ribbon/_bigger.fabric.scss +0 -3
  220. package/styles/ribbon/_bigger.fluent-dark.scss +0 -3
  221. package/styles/ribbon/_bigger.fluent.scss +0 -3
  222. package/styles/ribbon/_bigger.fluent2.scss +0 -3
  223. package/styles/ribbon/_bigger.highcontrast-light.scss +0 -3
  224. package/styles/ribbon/_bigger.highcontrast.scss +0 -3
  225. package/styles/ribbon/_bigger.material-dark.scss +0 -3
  226. package/styles/ribbon/_bigger.material.scss +0 -3
  227. package/styles/ribbon/_bigger.material3-dark.scss +0 -3
  228. package/styles/ribbon/_bigger.material3.scss +0 -3
  229. package/styles/ribbon/_bigger.tailwind-dark.scss +0 -3
  230. package/styles/ribbon/_bigger.tailwind.scss +0 -3
  231. package/styles/ribbon/_bigger.tailwind3.scss +0 -3
  232. package/styles/ribbon/_layout.bds.scss +0 -3
  233. package/styles/ribbon/_layout.bootstrap-dark.scss +0 -3
  234. package/styles/ribbon/_layout.bootstrap.scss +0 -3
  235. package/styles/ribbon/_layout.bootstrap4.scss +0 -3
  236. package/styles/ribbon/_layout.bootstrap5-dark.scss +0 -3
  237. package/styles/ribbon/_layout.bootstrap5.3.scss +0 -3
  238. package/styles/ribbon/_layout.bootstrap5.scss +0 -3
  239. package/styles/ribbon/_layout.fabric-dark.scss +0 -3
  240. package/styles/ribbon/_layout.fabric.scss +0 -3
  241. package/styles/ribbon/_layout.fluent-dark.scss +0 -3
  242. package/styles/ribbon/_layout.fluent.scss +0 -3
  243. package/styles/ribbon/_layout.fluent2.scss +0 -3
  244. package/styles/ribbon/_layout.highcontrast-light.scss +0 -3
  245. package/styles/ribbon/_layout.highcontrast.scss +0 -3
  246. package/styles/ribbon/_layout.material-dark.scss +0 -3
  247. package/styles/ribbon/_layout.material.scss +0 -3
  248. package/styles/ribbon/_layout.material3-dark.scss +0 -3
  249. package/styles/ribbon/_layout.material3.scss +0 -3
  250. package/styles/ribbon/_layout.tailwind-dark.scss +0 -3
  251. package/styles/ribbon/_layout.tailwind.scss +0 -3
  252. package/styles/ribbon/_layout.tailwind3.scss +0 -3
  253. package/styles/ribbon/_theme-variables.bds.scss +0 -1
  254. package/styles/ribbon/_theme-variables.bootstrap-dark.scss +0 -1
  255. package/styles/ribbon/_theme-variables.bootstrap.scss +0 -1
  256. package/styles/ribbon/_theme-variables.bootstrap4.scss +0 -1
  257. package/styles/ribbon/_theme-variables.bootstrap5-dark.scss +0 -1
  258. package/styles/ribbon/_theme-variables.bootstrap5.3.scss +0 -1
  259. package/styles/ribbon/_theme-variables.bootstrap5.scss +0 -1
  260. package/styles/ribbon/_theme-variables.fabric-dark.scss +0 -1
  261. package/styles/ribbon/_theme-variables.fabric.scss +0 -1
  262. package/styles/ribbon/_theme-variables.fluent-dark.scss +0 -1
  263. package/styles/ribbon/_theme-variables.fluent.scss +0 -1
  264. package/styles/ribbon/_theme-variables.fluent2.scss +0 -1
  265. package/styles/ribbon/_theme-variables.highcontrast-light.scss +0 -1
  266. package/styles/ribbon/_theme-variables.highcontrast.scss +0 -1
  267. package/styles/ribbon/_theme-variables.material-dark.scss +0 -1
  268. package/styles/ribbon/_theme-variables.material.scss +0 -1
  269. package/styles/ribbon/_theme-variables.material3-dark.scss +0 -1
  270. package/styles/ribbon/_theme-variables.material3.scss +0 -1
  271. package/styles/ribbon/_theme-variables.tailwind-dark.scss +0 -1
  272. package/styles/ribbon/_theme-variables.tailwind.scss +0 -1
  273. package/styles/ribbon/_theme-variables.tailwind3.scss +0 -1
  274. package/styles/ribbon/_theme.bds.scss +0 -4
  275. package/styles/ribbon/_theme.bootstrap-dark.scss +0 -4
  276. package/styles/ribbon/_theme.bootstrap.scss +0 -4
  277. package/styles/ribbon/_theme.bootstrap4.scss +0 -4
  278. package/styles/ribbon/_theme.bootstrap5-dark.scss +0 -4
  279. package/styles/ribbon/_theme.bootstrap5.3.scss +0 -4
  280. package/styles/ribbon/_theme.bootstrap5.scss +0 -4
  281. package/styles/ribbon/_theme.fabric-dark.scss +0 -4
  282. package/styles/ribbon/_theme.fabric.scss +0 -4
  283. package/styles/ribbon/_theme.fluent-dark.scss +0 -4
  284. package/styles/ribbon/_theme.fluent.scss +0 -4
  285. package/styles/ribbon/_theme.fluent2.scss +0 -4
  286. package/styles/ribbon/_theme.highcontrast-light.scss +0 -4
  287. package/styles/ribbon/_theme.highcontrast.scss +0 -4
  288. package/styles/ribbon/_theme.material-dark.scss +0 -4
  289. package/styles/ribbon/_theme.material.scss +0 -4
  290. package/styles/ribbon/_theme.material3-dark.scss +0 -4
  291. package/styles/ribbon/_theme.material3.scss +0 -4
  292. package/styles/ribbon/_theme.tailwind-dark.scss +0 -4
  293. package/styles/ribbon/_theme.tailwind.scss +0 -4
  294. package/styles/ribbon/_theme.tailwind3.scss +0 -4
@@ -1694,7 +1694,16 @@ class RibbonColorPicker {
1694
1694
  colorPickerSettings.beforeClose.call(this);
1695
1695
  }
1696
1696
  },
1697
- beforeOpen: colorPickerSettings.beforeOpen,
1697
+ beforeOpen: (e) => {
1698
+ const target = this.parent.getAppendToElement();
1699
+ const splitBtn = colorPicker['splitBtn'];
1700
+ if (splitBtn && splitBtn.dropDown && !target.contains(splitBtn.dropDown.element)) {
1701
+ target.appendChild(splitBtn.dropDown.element);
1702
+ }
1703
+ if (colorPickerSettings.beforeOpen) {
1704
+ colorPickerSettings.beforeOpen.call(this, e);
1705
+ }
1706
+ },
1698
1707
  beforeTileRender: colorPickerSettings.beforeTileRender,
1699
1708
  created: colorPickerSettings.created,
1700
1709
  change: (e) => {
@@ -1762,6 +1771,16 @@ class RibbonColorPicker {
1762
1771
  item.colorPickerSettings.beforeClose.call(this);
1763
1772
  }
1764
1773
  };
1774
+ colorPickerObj.beforeOpen = (e) => {
1775
+ const target = this.parent.getAppendToElement();
1776
+ const splitBtn = colorPickerObj['splitBtn'];
1777
+ if (splitBtn && splitBtn.dropDown && !target.contains(splitBtn.dropDown.element)) {
1778
+ target.appendChild(splitBtn.dropDown.element);
1779
+ }
1780
+ if (item.colorPickerSettings.beforeOpen) {
1781
+ item.colorPickerSettings.beforeOpen.call(this, e);
1782
+ }
1783
+ };
1765
1784
  splitBtn.close = () => {
1766
1785
  if (target && !target.closest('.e-ribbon-group-overflow-ddb')) {
1767
1786
  if (overflowButton.element.classList.contains('e-active')) {
@@ -1931,7 +1950,21 @@ class RibbonComboBox {
1931
1950
  text: comboBoxSettings.text,
1932
1951
  value: comboBoxSettings.value,
1933
1952
  width: comboBoxSettings.width,
1934
- beforeOpen: comboBoxSettings.beforeOpen,
1953
+ beforeOpen: (e) => {
1954
+ requestAnimationFrame(() => {
1955
+ if (!this.parent) {
1956
+ return;
1957
+ }
1958
+ const target = this.parent.getAppendToElement();
1959
+ const popupEle = document.getElementById(inputEle.id + '_popup');
1960
+ if (popupEle && !target.contains(popupEle)) {
1961
+ target.appendChild(popupEle);
1962
+ }
1963
+ });
1964
+ if (comboBoxSettings.beforeOpen) {
1965
+ comboBoxSettings.beforeOpen.call(this, e);
1966
+ }
1967
+ },
1935
1968
  open: comboBoxSettings.open,
1936
1969
  htmlAttributes: comboBoxSettings.htmlAttributes,
1937
1970
  close: (e) => {
@@ -1967,6 +2000,21 @@ class RibbonComboBox {
1967
2000
  const inputEle = itemEle.querySelector('#' + item.id);
1968
2001
  inputEle.setAttribute('data-control', item.type.toString());
1969
2002
  const comboBoxObj = getComponent(inputEle, ComboBox);
2003
+ comboBoxObj.beforeOpen = (e) => {
2004
+ requestAnimationFrame(() => {
2005
+ if (!this.parent) {
2006
+ return;
2007
+ }
2008
+ const target = this.parent.getAppendToElement();
2009
+ const popupEle = document.getElementById(item.id + '_popup');
2010
+ if (popupEle && !target.contains(popupEle)) {
2011
+ target.appendChild(popupEle);
2012
+ }
2013
+ });
2014
+ if (item.comboBoxSettings.beforeOpen) {
2015
+ item.comboBoxSettings.beforeOpen.call(this, e);
2016
+ }
2017
+ };
1970
2018
  comboBoxObj.setProperties({ cssClass: comboBoxObj.cssClass + SPACE + RIBBON_POPUP_CONTROL });
1971
2019
  comboBoxObj.close = (e) => {
1972
2020
  const target = e.event ? e.event.target : null;
@@ -2660,9 +2708,15 @@ class RibbonSplitButton {
2660
2708
  }
2661
2709
  };
2662
2710
  let target;
2663
- splitbutton.beforeOpen = (e) => {
2711
+ splitbutton.beforeOpen = () => {
2712
+ const splitBtn = getComponent(splitButtonEle, SplitButton);
2713
+ const popupEl = splitBtn && splitBtn.dropDown ? splitBtn.dropDown.element : null;
2714
+ const target = this.parent.getAppendToElement();
2715
+ if (popupEl && !target.contains(popupEl)) {
2716
+ target.appendChild(popupEl);
2717
+ }
2664
2718
  if (item.splitButtonSettings.beforeOpen) {
2665
- item.splitButtonSettings.beforeOpen.call(this, e);
2719
+ item.splitButtonSettings.beforeOpen.call(this);
2666
2720
  }
2667
2721
  };
2668
2722
  splitbutton.beforeClose = (e) => {
@@ -3101,6 +3155,7 @@ function createTooltip(element, ribbon) {
3101
3155
  const ribbonTooltip = new Tooltip({
3102
3156
  target: '.' + RIBBON_TOOLTIP_TARGET,
3103
3157
  beforeRender: beforeTooltipRender.bind(this),
3158
+ beforeOpen: beforeTooltipOpen.bind(this),
3104
3159
  windowCollision: true
3105
3160
  });
3106
3161
  ribbonTooltip.appendTo(element);
@@ -3112,6 +3167,13 @@ function createTooltip(element, ribbon) {
3112
3167
  function beforeTooltipRender(args) {
3113
3168
  setToolTipContent(args, ribbonTooltip, ribbon.tooltipData);
3114
3169
  }
3170
+ function beforeTooltipOpen(args) {
3171
+ const target = ribbon.getAppendToElement();
3172
+ const tooltipPopup = args.element;
3173
+ if (tooltipPopup && !target.contains(tooltipPopup)) {
3174
+ target.appendChild(tooltipPopup);
3175
+ }
3176
+ }
3115
3177
  }
3116
3178
  /**
3117
3179
  * Destroys tooltip
@@ -3284,7 +3346,13 @@ class RibbonGroupButton {
3284
3346
  target: btnContainerEle,
3285
3347
  enableRtl: this.parent.enableRtl,
3286
3348
  cssClass: 'e-ribbon-dropdown-group-button',
3287
- disabled: item.disabled
3349
+ disabled: item.disabled,
3350
+ beforeOpen: () => {
3351
+ const target = this.parent.getAppendToElement();
3352
+ if (dropdown && dropdown.dropDown && !target.contains(dropdown.dropDown.element)) {
3353
+ target.appendChild(dropdown.dropDown.element);
3354
+ }
3355
+ }
3288
3356
  }, buttonEle);
3289
3357
  if (groupBtnSettings.header) {
3290
3358
  const dropDownPopup = dropdown.dropDown;
@@ -3459,7 +3527,13 @@ class RibbonGroupButton {
3459
3527
  target: containerEle,
3460
3528
  enableRtl: this.parent.enableRtl,
3461
3529
  cssClass: 'e-ribbon-dropdown-group-button',
3462
- disabled: item.disabled
3530
+ disabled: item.disabled,
3531
+ beforeOpen: () => {
3532
+ const target = this.parent.getAppendToElement();
3533
+ if (dropdown && dropdown.dropDown && !target.contains(dropdown.dropDown.element)) {
3534
+ target.appendChild(dropdown.dropDown.element);
3535
+ }
3536
+ }
3463
3537
  }, buttonEle);
3464
3538
  if (groupBtnSettings.header) {
3465
3539
  const dropDownPopup = dropdown.dropDown;
@@ -4084,7 +4158,8 @@ class RibbonGallery {
4084
4158
  className: 'e-ribbon-gallery-popup',
4085
4159
  id: item.id + '_galleryPopup'
4086
4160
  });
4087
- document.body.append(gallerypopupElement);
4161
+ const appendTarget = this.parent.getAppendToElement();
4162
+ appendTarget.append(gallerypopupElement);
4088
4163
  const galleryPopup = new Popup(gallerypopupElement, {
4089
4164
  relateTo: buttonEle,
4090
4165
  content: popupContainer,
@@ -4195,6 +4270,13 @@ class RibbonGallery {
4195
4270
  enableRtl: this.parent.enableRtl,
4196
4271
  cssClass: 'e-ribbon-gallery-dropdown',
4197
4272
  disabled: item.disabled,
4273
+ beforeOpen: () => {
4274
+ const target = this.parent.getAppendToElement();
4275
+ const dropDownPopup = dropdown && dropdown.dropDown ? dropdown.dropDown.element : null;
4276
+ if (dropDownPopup && !target.contains(dropDownPopup)) {
4277
+ target.appendChild(dropDownPopup);
4278
+ }
4279
+ },
4198
4280
  open: () => {
4199
4281
  const popupContainerItems = popupContainerEle.querySelectorAll('.e-ribbon-gallery-container');
4200
4282
  this.setWrapperStyle(popup, popupContainerItems);
@@ -4319,6 +4401,10 @@ class RibbonGallery {
4319
4401
  if (isCancelled) {
4320
4402
  return;
4321
4403
  }
4404
+ const target = this.parent.getAppendToElement();
4405
+ if (!target.contains(popupEle)) {
4406
+ target.appendChild(popupEle);
4407
+ }
4322
4408
  popup.show();
4323
4409
  this.checkCollision(popup, popupEle);
4324
4410
  const buttonEle = document.querySelector('#' + itemID + '_popupButton');
@@ -9206,7 +9292,6 @@ let Ribbon = Ribbon_1 = class Ribbon extends Component {
9206
9292
  super.destroy();
9207
9293
  this.tabObj.destroy();
9208
9294
  this.tabObj = undefined;
9209
- this.l10n = null;
9210
9295
  this.initialPropsData = {};
9211
9296
  this.hiddenGroups = [];
9212
9297
  this.hiddenElements = {};
@@ -9506,6 +9591,13 @@ class RibbonFileMenu {
9506
9591
  if (!isOpen && args.event && args.event.target.closest('.e-ribbon-menu')) {
9507
9592
  args.cancel = true;
9508
9593
  }
9594
+ if (isOpen && this.fileMenuDDB && this.fileMenuDDB.dropDown) {
9595
+ const target = this.parent.getAppendToElement();
9596
+ const popupEl = this.fileMenuDDB.dropDown.element;
9597
+ if (popupEl && !target.contains(popupEl)) {
9598
+ target.appendChild(popupEl);
9599
+ }
9600
+ }
9509
9601
  const event = isOpen ? this.parent.fileMenu.beforeOpen :
9510
9602
  this.parent.fileMenu.beforeClose;
9511
9603
  if (event) {
@@ -9566,6 +9658,13 @@ class RibbonFileMenu {
9566
9658
  }, this);
9567
9659
  }
9568
9660
  menuBeforeEvent(isOpen, args) {
9661
+ if (isOpen) {
9662
+ const target = this.parent.getAppendToElement();
9663
+ const popup = args.element && args.element.closest('.e-popup');
9664
+ if (popup && !target.contains(popup)) {
9665
+ target.appendChild(popup);
9666
+ }
9667
+ }
9569
9668
  const event = isOpen ? this.parent.fileMenu.beforeOpen :
9570
9669
  this.parent.fileMenu.beforeClose;
9571
9670
  if (event) {