Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,35 +1,37 @@
<Dropdown Color="DropdownColor.Secondary" AutoClose="true">
<DropdownToggleButton>Default dropdown</DropdownToggleButton>
<DropdownMenu>
<DropdownItem To="#" Type="DropdownItemType.Link">Menu item</DropdownItem>
<DropdownItem To="#" Type="DropdownItemType.Link">Menu item</DropdownItem>
<DropdownItem To="#" Type="DropdownItemType.Link">Menu item</DropdownItem>
</DropdownMenu>
</Dropdown>
<div class="btn-group gap-3">
<Dropdown Color="DropdownColor.Secondary" AutoClose="true">
<DropdownToggleButton>Default dropdown</DropdownToggleButton>
<DropdownMenu>
<DropdownItem To="#" Type="DropdownItemType.Link">Menu item</DropdownItem>
<DropdownItem To="#" Type="DropdownItemType.Link">Menu item</DropdownItem>
<DropdownItem To="#" Type="DropdownItemType.Link">Menu item</DropdownItem>
</DropdownMenu>
</Dropdown>

<Dropdown Color="DropdownColor.Secondary" AutoClose="true" AutoCloseBehavior="DropdownAutoCloseBehavior.Outside">
<DropdownToggleButton>Clickable outside</DropdownToggleButton>
<DropdownMenu>
<DropdownItem To="#" Type="DropdownItemType.Link">Menu item</DropdownItem>
<DropdownItem To="#" Type="DropdownItemType.Link">Menu item</DropdownItem>
<DropdownItem To="#" Type="DropdownItemType.Link">Menu item</DropdownItem>
</DropdownMenu>
</Dropdown>
<Dropdown Color="DropdownColor.Secondary" AutoClose="true" AutoCloseBehavior="DropdownAutoCloseBehavior.Outside">
<DropdownToggleButton>Clickable outside</DropdownToggleButton>
<DropdownMenu>
<DropdownItem To="#" Type="DropdownItemType.Link">Menu item</DropdownItem>
<DropdownItem To="#" Type="DropdownItemType.Link">Menu item</DropdownItem>
<DropdownItem To="#" Type="DropdownItemType.Link">Menu item</DropdownItem>
</DropdownMenu>
</Dropdown>

<Dropdown Color="DropdownColor.Secondary" AutoClose="true" AutoCloseBehavior="DropdownAutoCloseBehavior.Inside">
<DropdownToggleButton>Clickable inside</DropdownToggleButton>
<DropdownMenu>
<DropdownItem To="#" Type="DropdownItemType.Link">Menu item</DropdownItem>
<DropdownItem To="#" Type="DropdownItemType.Link">Menu item</DropdownItem>
<DropdownItem To="#" Type="DropdownItemType.Link">Menu item</DropdownItem>
</DropdownMenu>
</Dropdown>
<Dropdown Color="DropdownColor.Secondary" AutoClose="true" AutoCloseBehavior="DropdownAutoCloseBehavior.Inside">
<DropdownToggleButton>Clickable inside</DropdownToggleButton>
<DropdownMenu>
<DropdownItem To="#" Type="DropdownItemType.Link">Menu item</DropdownItem>
<DropdownItem To="#" Type="DropdownItemType.Link">Menu item</DropdownItem>
<DropdownItem To="#" Type="DropdownItemType.Link">Menu item</DropdownItem>
</DropdownMenu>
</Dropdown>

<Dropdown Color="DropdownColor.Secondary" AutoClose="false">
<DropdownToggleButton>Manual close</DropdownToggleButton>
<DropdownMenu>
<DropdownItem To="#" Type="DropdownItemType.Link">Menu item</DropdownItem>
<DropdownItem To="#" Type="DropdownItemType.Link">Menu item</DropdownItem>
<DropdownItem To="#" Type="DropdownItemType.Link">Menu item</DropdownItem>
</DropdownMenu>
</Dropdown>
<Dropdown Color="DropdownColor.Secondary" AutoClose="false">
<DropdownToggleButton>Manual close</DropdownToggleButton>
<DropdownMenu>
<DropdownItem To="#" Type="DropdownItemType.Link">Menu item</DropdownItem>
<DropdownItem To="#" Type="DropdownItemType.Link">Menu item</DropdownItem>
<DropdownItem To="#" Type="DropdownItemType.Link">Menu item</DropdownItem>
</DropdownMenu>
</Dropdown>
</div>
Original file line number Diff line number Diff line change
@@ -1,20 +1,40 @@
<Dropdown @ref="dropdown1" Color="DropdownColor.Secondary">
<DropdownToggleButton>Dropdown button</DropdownToggleButton>
<DropdownMenu>
<DropdownItem To="#" Type="DropdownItemType.Link">Action</DropdownItem>
<DropdownItem To="#" Type="DropdownItemType.Link">Another action</DropdownItem>
<DropdownItem To="#" Type="DropdownItemType.Link">Something else here</DropdownItem>
</DropdownMenu>
</Dropdown>
<div class="mb-3">
<div class="btn-group gap-3">
<Dropdown @ref="dropdown1" Color="DropdownColor.Secondary">
<DropdownToggleButton>Dropdown button</DropdownToggleButton>
<DropdownMenu>
<DropdownItem To="#" Type="DropdownItemType.Link">Action</DropdownItem>
<DropdownItem To="#" Type="DropdownItemType.Link">Another action</DropdownItem>
<DropdownItem To="#" Type="DropdownItemType.Link">Something else here</DropdownItem>
</DropdownMenu>
</Dropdown>

<Button Color="ButtonColor.Primary" @onclick="ShowAsync">Show</Button>
<Button Color="ButtonColor.Primary" @onclick="HideAsync">Hide</Button>
<Button Color="ButtonColor.Primary" @onclick="ToggleAsync">Toggle</Button>
<Button Color="ButtonColor.Primary" @onclick="ShowAsync">Show</Button>
<Button Color="ButtonColor.Primary" @onclick="HideAsync">Hide</Button>
</div>
</div>

@code{
<div>
<div class="btn-group gap-3">
<Dropdown @ref="dropdown2" Color="DropdownColor.Secondary" AutoClose="false">
<DropdownToggleButton>Dropdown button</DropdownToggleButton>
<DropdownMenu>
<DropdownItem To="#" Type="DropdownItemType.Link">Action</DropdownItem>
<DropdownItem To="#" Type="DropdownItemType.Link">Another action</DropdownItem>
<DropdownItem To="#" Type="DropdownItemType.Link">Something else here</DropdownItem>
</DropdownMenu>
</Dropdown>

<Button Color="ButtonColor.Primary" @onclick="ToggleAsync">Toggle</Button>
</div>
</div>

@code {
private Dropdown dropdown1 = default!;
private Dropdown dropdown2 = default!;

private async Task ShowAsync() => await dropdown1.ShowAsync();
private async Task HideAsync() => await dropdown1.HideAsync();
private async Task ToggleAsync() => await dropdown1.ToggleAsync();

private async Task ToggleAsync() => await dropdown2.ToggleAsync();
}
2 changes: 1 addition & 1 deletion blazorbootstrap/Components/Dropdown/Dropdown.razor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ protected override void OnInitialized()

protected override string? ClassNames =>
BuildClassNames(Class,
(BootstrapClass.ButtonGroup, true),
(BootstrapClass.ButtonGroup, Split),
(Direction.ToDropdownDirectionClass(), true));

/// <summary>
Expand Down
42 changes: 27 additions & 15 deletions blazorbootstrap/wwwroot/blazor.bootstrap.js
Original file line number Diff line number Diff line change
Expand Up @@ -399,48 +399,60 @@ window.blazorBootstrap = {
dropdown: {
dispose: (elementId) => {
let dropdownEl = document.getElementById(elementId);
if (dropdownEl != null)
bootstrap?.Dropdown?.getOrCreateInstance(dropdownEl)?.dispose();
if (dropdownEl != null) {
let toggleEl = dropdownEl.querySelector('[data-bs-toggle="dropdown"]') ?? dropdownEl;
bootstrap?.Dropdown?.getOrCreateInstance(toggleEl)?.dispose();
}
},
hide: (elementId) => {
let dropdownEl = document.getElementById(elementId);
if (dropdownEl != null)
bootstrap?.Dropdown?.getOrCreateInstance(dropdownEl)?.hide();
if (dropdownEl != null) {
let toggleEl = dropdownEl.querySelector('[data-bs-toggle="dropdown"]') ?? dropdownEl;
bootstrap?.Dropdown?.getOrCreateInstance(toggleEl)?.hide();
}
},
initialize: (elementId, dotNetHelper) => {
let dropdownEl = document.getElementById(elementId);
if (dropdownEl == null)
return;

dropdownEl.addEventListener('hide.bs.dropdown', function () {
let toggleEl = dropdownEl.querySelector('[data-bs-toggle="dropdown"]') ?? dropdownEl;

toggleEl.addEventListener('hide.bs.dropdown', function () {
dotNetHelper.invokeMethodAsync('bsHideDropdown');
});
dropdownEl.addEventListener('hidden.bs.dropdown', function () {
toggleEl.addEventListener('hidden.bs.dropdown', function () {
dotNetHelper.invokeMethodAsync('bsHiddenDropdown');
});
dropdownEl.addEventListener('show.bs.dropdown', function () {
toggleEl.addEventListener('show.bs.dropdown', function () {
dotNetHelper.invokeMethodAsync('bsShowDropdown');
});
dropdownEl.addEventListener('shown.bs.dropdown', function () {
toggleEl.addEventListener('shown.bs.dropdown', function () {
dotNetHelper.invokeMethodAsync('bsShownDropdown');
});

bootstrap?.Dropdown?.getOrCreateInstance(dropdownEl);
bootstrap?.Dropdown?.getOrCreateInstance(toggleEl);
},
show: (elementId) => {
let dropdownEl = document.getElementById(elementId);
if (dropdownEl != null)
bootstrap?.Dropdown?.getOrCreateInstance(dropdownEl)?.show();
if (dropdownEl != null) {
let toggleEl = dropdownEl.querySelector('[data-bs-toggle="dropdown"]') ?? dropdownEl;
bootstrap?.Dropdown?.getOrCreateInstance(toggleEl)?.show();
}
},
toggle: (elementId) => {
let dropdownEl = document.getElementById(elementId);
if (dropdownEl != null)
bootstrap?.Dropdown?.getOrCreateInstance(dropdownEl)?.toggle();
if (dropdownEl != null) {
let toggleEl = dropdownEl.querySelector('[data-bs-toggle="dropdown"]') ?? dropdownEl;
bootstrap?.Dropdown?.getOrCreateInstance(toggleEl)?.toggle();
}
},
update: (elementId) => {
let dropdownEl = document.getElementById(elementId);
if (dropdownEl != null)
bootstrap?.Dropdown?.getOrCreateInstance(dropdownEl)?.update();
if (dropdownEl != null) {
let toggleEl = dropdownEl.querySelector('[data-bs-toggle="dropdown"]') ?? dropdownEl;
bootstrap?.Dropdown?.getOrCreateInstance(toggleEl)?.update();
}
}
},
googlemaps: {
Expand Down
Loading