diff --git a/src/BootstrapBlazor/Components/RibbonTab/RibbonTab.razor b/src/BootstrapBlazor/Components/RibbonTab/RibbonTab.razor
index 037f3c4b1b0..9bb9cdbb03b 100644
--- a/src/BootstrapBlazor/Components/RibbonTab/RibbonTab.razor
+++ b/src/BootstrapBlazor/Components/RibbonTab/RibbonTab.razor
@@ -7,7 +7,8 @@
OnItemClickAsync="OnItemClickAsync!" OnMenuClickAsync="OnMenuClickAsync!" OnFloatChanged="OnFloatChanged!"
EncodeAnchorCallback="EncodeAnchorCallback!" DecodeAnchorCallback="DecodeAnchorCallback!"
RightButtonsTemplate="RightButtonsTemplate!"
- RibbonArrowUpIcon="@RibbonArrowUpIcon" RibbonArrowDownIcon="@RibbonArrowDownIcon" RibbonArrowPinIcon="@RibbonArrowPinIcon">
+ RibbonArrowUpIcon="@RibbonArrowUpIcon" RibbonArrowDownIcon="@RibbonArrowDownIcon"
+ RibbonArrowPinIcon="@RibbonArrowPinIcon">
@if (ChildContent != null)
{
diff --git a/src/BootstrapBlazor/Components/RibbonTab/RibbonTab.razor.js b/src/BootstrapBlazor/Components/RibbonTab/RibbonTab.razor.js
index 22e351d9a15..fdd9a14bd86 100644
--- a/src/BootstrapBlazor/Components/RibbonTab/RibbonTab.razor.js
+++ b/src/BootstrapBlazor/Components/RibbonTab/RibbonTab.razor.js
@@ -1,37 +1,43 @@
import Data from "../../modules/data.js"
import EventHandler from "../../modules/event-handler.js"
+import { registerBootstrapBlazorModule } from "../../modules/utility.js"
export function init(id, invoke, callback) {
const el = document.getElementById(id)
const rt = {
element: el, invoke, callback,
handlerClick: e => {
- const isFloat = el.classList.contains('is-float')
- if (isFloat) {
- const expanded = el.classList.contains('is-expand')
- if (expanded) {
- const ribbonBody = e.target.closest('.ribbon-body');
- if (ribbonBody) {
- invoke.invokeMethodAsync(callback)
- }
- else {
- const ribbonTab = e.target.closest('.ribbon-tab')
- if (ribbonTab !== el) {
- invoke.invokeMethodAsync(callback)
- }
+ [...document.querySelectorAll('.ribbon-header.is-float.is-expand')].forEach(headerEl => {
+ const tabId = headerEl.parentElement.getAttribute("id");
+ const tab = Data.get(tabId);
+ const { element, invoke, callback } = tab;
+
+ const ribbonBody = e.target.closest('.ribbon-body');
+ if (ribbonBody) {
+ invoke.invokeMethodAsync(callback);
+ }
+ else {
+ const ribbonTab = e.target.closest('.ribbon-tab')
+ if (ribbonTab !== element) {
+ invoke.invokeMethodAsync(callback);
}
}
- }
+ });
}
}
Data.set(id, rt)
- EventHandler.on(document, 'click', rt.handlerClick)
+ registerBootstrapBlazorModule('RibbonTab', id, () => {
+ EventHandler.on(document, 'click', rt.handlerClick)
+ });
}
export function dispose(id) {
const rt = Data.get(id)
Data.remove(id)
- EventHandler.off(document, 'click', rt.handlerClick)
+ const { RibbonTab } = window.BootstrapBlazor;
+ RibbonTab.dispose(id, () => {
+ EventHandler.off(document, 'click', rt.handlerClick)
+ });
}
diff --git a/src/BootstrapBlazor/Components/RibbonTab/RibbonTabHeader.razor.cs b/src/BootstrapBlazor/Components/RibbonTab/RibbonTabHeader.razor.cs
index 6508e3680db..0b017e3f3d6 100644
--- a/src/BootstrapBlazor/Components/RibbonTab/RibbonTabHeader.razor.cs
+++ b/src/BootstrapBlazor/Components/RibbonTab/RibbonTabHeader.razor.cs
@@ -17,9 +17,7 @@ public partial class RibbonTabHeader
///
[Parameter]
[NotNull]
-#if NET6_0_OR_GREATER
[EditorRequired]
-#endif
public IEnumerable? Items { get; set; }
///