You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by hn...@apache.org on 2023/05/10 18:42:19 UTC
[myfaces-tobago] branch main updated (6d1c8d5b81 -> f442abb670)
This is an automated email from the ASF dual-hosted git repository.
hnoeth pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/myfaces-tobago.git
from 6d1c8d5b81 build(deps): bump maven-surefire-plugin from 3.0.0 to 3.1.0
new a8dcad832b fix: tobago test tools
new 070e9a61f6 fix: dropdown key events
new f442abb670 build(theme): rebuild after fixing dropdown key events
The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../renderkit/renderer/CommandRendererBase.java | 11 +-
.../renderer/buttons/separator-inside-buttons.html | 6 +-
.../renderer/in/input-group-dropdown-after.html | 6 +-
.../renderer/in/input-group-dropdown-before.html | 6 +-
.../resources/renderer/link/booleanInsideLink.html | 6 +-
.../resources/renderer/link/manyInsideLink.html | 4 +-
.../resources/renderer/link/radioInsideLink.html | 6 +-
.../renderer/link/separatorInsideLink.html | 6 +-
.../renderer/links/link-inside-links-sub.html | 4 +-
.../content/010-input/50-input-group/Group.test.js | 2 +-
.../main/webapp/content/060-popup/Popup.test.js | 4 +-
.../4050-ajax-dropdown/Ajax_Dropdown.test.js | 2 +-
.../900-test/4000-button-link/Button_Link.test.js | 4 +-
.../900-test/4200-dropdown/Dropdown.test.js | 134 +++++++++++
.../content/900-test/4200-dropdown/Dropdown.xhtml | 112 ++++++++++
.../900-test/6500-behavior/Behavior.test.js | 6 +-
.../src/main/webapp/script/tobago-test.js | 21 +-
tobago-theme/src/main/scss/_tobago.scss | 55 +++--
.../src/main/css/tobago.css | 116 ++++------
.../src/main/css/tobago.css.map | 2 +-
.../src/main/css/tobago.min.css | 2 +-
.../src/main/css/tobago.min.css.map | 2 +-
.../src/main/css/tobago.css | 116 ++++------
.../src/main/css/tobago.css.map | 2 +-
.../src/main/css/tobago.min.css | 2 +-
.../src/main/css/tobago.min.css.map | 2 +-
.../src/main/css/tobago.css | 116 ++++------
.../src/main/css/tobago.css.map | 2 +-
.../src/main/css/tobago.min.css | 2 +-
.../src/main/css/tobago.min.css.map | 2 +-
.../tobago-theme-speyside/src/main/css/tobago.css | 142 +++++-------
.../src/main/css/tobago.css.map | 2 +-
.../src/main/css/tobago.min.css | 2 +-
.../src/main/css/tobago.min.css.map | 2 +-
.../tobago-theme-standard/src/main/css/tobago.css | 116 ++++------
.../src/main/css/tobago.css.map | 2 +-
.../src/main/css/tobago.min.css | 2 +-
.../src/main/css/tobago.min.css.map | 2 +-
.../tobago-theme-standard/src/main/js/tobago.js | 8 +-
.../src/main/js/tobago.js.map | 2 +-
.../src/main/ts/tobago-css.ts | 4 +
.../src/main/ts/tobago-dropdown-item-factory.ts | 44 ++++
.../src/main/ts/tobago-dropdown-item.ts | 93 ++++++++
.../src/main/ts/tobago-dropdown.ts | 246 ++++++++++++++++++++-
.../src/main/ts/tobago-key.ts | 2 +
.../resources/tobago/test/tobago-test-tool.js | 16 ++
46 files changed, 965 insertions(+), 481 deletions(-)
create mode 100644 tobago-example/tobago-example-demo/src/main/webapp/content/900-test/4200-dropdown/Dropdown.test.js
create mode 100644 tobago-example/tobago-example-demo/src/main/webapp/content/900-test/4200-dropdown/Dropdown.xhtml
create mode 100644 tobago-theme/tobago-theme-standard/src/main/ts/tobago-dropdown-item-factory.ts
create mode 100644 tobago-theme/tobago-theme-standard/src/main/ts/tobago-dropdown-item.ts
[myfaces-tobago] 03/03: build(theme): rebuild after fixing dropdown key events
Posted by hn...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
hnoeth pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/myfaces-tobago.git
commit f442abb6700941415e1cd8aab6321cb0ba4a1613
Author: Henning Noeth <hn...@apache.org>
AuthorDate: Wed May 10 18:10:28 2023 +0200
build(theme): rebuild after fixing dropdown key events
---
.../src/main/css/tobago.css | 116 ++++++-----------
.../src/main/css/tobago.css.map | 2 +-
.../src/main/css/tobago.min.css | 2 +-
.../src/main/css/tobago.min.css.map | 2 +-
.../src/main/css/tobago.css | 116 ++++++-----------
.../src/main/css/tobago.css.map | 2 +-
.../src/main/css/tobago.min.css | 2 +-
.../src/main/css/tobago.min.css.map | 2 +-
.../src/main/css/tobago.css | 116 ++++++-----------
.../src/main/css/tobago.css.map | 2 +-
.../src/main/css/tobago.min.css | 2 +-
.../src/main/css/tobago.min.css.map | 2 +-
.../tobago-theme-speyside/src/main/css/tobago.css | 142 ++++++++-------------
.../src/main/css/tobago.css.map | 2 +-
.../src/main/css/tobago.min.css | 2 +-
.../src/main/css/tobago.min.css.map | 2 +-
.../tobago-theme-standard/src/main/css/tobago.css | 116 ++++++-----------
.../src/main/css/tobago.css.map | 2 +-
.../src/main/css/tobago.min.css | 2 +-
.../src/main/css/tobago.min.css.map | 2 +-
.../tobago-theme-standard/src/main/js/tobago.js | 8 +-
.../src/main/js/tobago.js.map | 2 +-
22 files changed, 233 insertions(+), 413 deletions(-)
diff --git a/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.css b/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.css
index f28c0c117d..29e0c3882e 100644
--- a/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.css
+++ b/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.css
@@ -3241,7 +3241,7 @@ textarea.form-control-lg {
margin-left: 0;
}
-.dropdown-menu, tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .tobago-options.tobago-dropdown-menu {
+.dropdown-menu, tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .tobago-options.tobago-dropdown-menu, .tobago-page-menuStore .tobago-dropdown-menu, tobago-dropdown .tobago-dropdown-menu {
--bs-dropdown-zindex: 1000;
--bs-dropdown-min-width: 10rem;
--bs-dropdown-padding-x: 0;
@@ -3283,7 +3283,7 @@ textarea.form-control-lg {
border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);
border-radius: var(--bs-dropdown-border-radius);
}
-.dropdown-menu[data-bs-popper], tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu {
+.dropdown-menu[data-bs-popper], tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, .tobago-page-menuStore [data-bs-popper].tobago-dropdown-menu, tobago-dropdown [data-bs-popper].tobago-dropdown-menu {
top: 100%;
left: 0;
margin-top: var(--bs-dropdown-spacer);
@@ -3385,7 +3385,7 @@ textarea.form-control-lg {
left: auto;
}
}
-.dropup .dropdown-menu[data-bs-popper], .dropup tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-many-list .dropup [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropup tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list .dropup [data-bs-popper].tobago-options.tobago-dropdown-menu {
+.dropup .dropdown-menu[data-bs-popper], .dropup tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-many-list .dropup [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropup tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list .dropup [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropup .tobago-page-menuStore [data-bs-popper].tobago-dropdown-menu, .tobago-page-menuStore .dropup [data-bs- [...]
top: auto;
bottom: 100%;
margin-top: 0;
@@ -3405,7 +3405,7 @@ textarea.form-control-lg {
margin-left: 0;
}
-.dropend .dropdown-menu[data-bs-popper], .dropend tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-many-list .dropend [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropend tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list .dropend [data-bs-popper].tobago-options.tobago-dropdown-menu {
+.dropend .dropdown-menu[data-bs-popper], .dropend tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-many-list .dropend [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropend tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list .dropend [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropend .tobago-page-menuStore [data-bs-popper].tobago-dropdown-menu, .tobago-page-menuStore .dropend [d [...]
top: 0;
right: auto;
left: 100%;
@@ -3429,7 +3429,7 @@ textarea.form-control-lg {
vertical-align: 0;
}
-.dropstart .dropdown-menu[data-bs-popper], .dropstart tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-many-list .dropstart [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropstart tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list .dropstart [data-bs-popper].tobago-options.tobago-dropdown-menu {
+.dropstart .dropdown-menu[data-bs-popper], .dropstart tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-many-list .dropstart [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropstart tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list .dropstart [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropstart .tobago-page-menuStore [data-bs-popper].tobago-dropdown-menu, .tobago-page-menuStore [...]
top: 0;
right: 100%;
left: auto;
@@ -3497,7 +3497,7 @@ textarea.form-control-lg {
background-color: transparent;
}
-.dropdown-menu.show, tobago-select-many-list .show.tobago-options.tobago-dropdown-menu, tobago-select-one-list .show.tobago-options.tobago-dropdown-menu {
+.dropdown-menu.show, tobago-select-many-list .show.tobago-options.tobago-dropdown-menu, tobago-select-one-list .show.tobago-options.tobago-dropdown-menu, .tobago-page-menuStore .show.tobago-dropdown-menu, tobago-dropdown .show.tobago-dropdown-menu {
display: block;
}
@@ -3700,7 +3700,7 @@ textarea.form-control-lg {
background-color: var(--bs-nav-tabs-link-active-bg);
border-color: var(--bs-nav-tabs-link-active-border-color);
}
-.nav-tabs .dropdown-menu, .nav-tabs tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .nav-tabs .tobago-options.tobago-dropdown-menu, .nav-tabs tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .nav-tabs .tobago-options.tobago-dropdown-menu {
+.nav-tabs .dropdown-menu, .nav-tabs tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .nav-tabs .tobago-options.tobago-dropdown-menu, .nav-tabs tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .nav-tabs .tobago-options.tobago-dropdown-menu, .nav-tabs .tobago-page-menuStore .tobago-dropdown-menu, .tobago-page-menuStore .nav-tabs .tobago-dropdown-menu, .nav-tabs tobago-dropdown .tobago-dropdown-menu, tobago-dropdown .na [...]
margin-top: calc(-1 * var(--bs-nav-tabs-border-width));
border-top-left-radius: 0;
border-top-right-radius: 0;
@@ -3822,7 +3822,7 @@ textarea.form-control-lg {
.navbar-nav .nav-link.active {
color: var(--bs-navbar-active-color);
}
-.navbar-nav .dropdown-menu, .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-nav .tobago-options.tobago-dropdown-menu {
+.navbar-nav .dropdown-menu, .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-nav .tobago-page-menuStore .tobago-dropdown-menu, .tobago-page-menuStore .navbar-nav .tobago-dropdown-menu, .navbar-nav tobago-dropdown .tobago-dropdown-menu, tob [...]
position: static;
}
@@ -3891,7 +3891,7 @@ textarea.form-control-lg {
.navbar-expand-sm .navbar-nav {
flex-direction: row;
}
- .navbar-expand-sm .navbar-nav .dropdown-menu, .navbar-expand-sm .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-sm .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-sm .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-sm .navbar-nav .tobago-options.tobago-dropdown-menu {
+ .navbar-expand-sm .navbar-nav .dropdown-menu, .navbar-expand-sm .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-sm .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-sm .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-sm .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-sm .navbar-nav .tobago-page-menuStore .tobago-dropdown-menu, .t [...]
position: absolute;
}
.navbar-expand-sm .navbar-nav .nav-link {
@@ -3938,7 +3938,7 @@ textarea.form-control-lg {
.navbar-expand-md .navbar-nav {
flex-direction: row;
}
- .navbar-expand-md .navbar-nav .dropdown-menu, .navbar-expand-md .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-md .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-md .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-md .navbar-nav .tobago-options.tobago-dropdown-menu {
+ .navbar-expand-md .navbar-nav .dropdown-menu, .navbar-expand-md .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-md .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-md .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-md .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-md .navbar-nav .tobago-page-menuStore .tobago-dropdown-menu, .t [...]
position: absolute;
}
.navbar-expand-md .navbar-nav .nav-link {
@@ -3985,7 +3985,7 @@ textarea.form-control-lg {
.navbar-expand-lg .navbar-nav {
flex-direction: row;
}
- .navbar-expand-lg .navbar-nav .dropdown-menu, .navbar-expand-lg .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-lg .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-lg .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-lg .navbar-nav .tobago-options.tobago-dropdown-menu {
+ .navbar-expand-lg .navbar-nav .dropdown-menu, .navbar-expand-lg .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-lg .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-lg .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-lg .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-lg .navbar-nav .tobago-page-menuStore .tobago-dropdown-menu, .t [...]
position: absolute;
}
.navbar-expand-lg .navbar-nav .nav-link {
@@ -4032,7 +4032,7 @@ textarea.form-control-lg {
.navbar-expand-xl .navbar-nav {
flex-direction: row;
}
- .navbar-expand-xl .navbar-nav .dropdown-menu, .navbar-expand-xl .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-xl .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-xl .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-xl .navbar-nav .tobago-options.tobago-dropdown-menu {
+ .navbar-expand-xl .navbar-nav .dropdown-menu, .navbar-expand-xl .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-xl .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-xl .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-xl .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-xl .navbar-nav .tobago-page-menuStore .tobago-dropdown-menu, .t [...]
position: absolute;
}
.navbar-expand-xl .navbar-nav .nav-link {
@@ -4079,7 +4079,7 @@ textarea.form-control-lg {
.navbar-expand-xxl .navbar-nav {
flex-direction: row;
}
- .navbar-expand-xxl .navbar-nav .dropdown-menu, .navbar-expand-xxl .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-xxl .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-xxl .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-xxl .navbar-nav .tobago-options.tobago-dropdown-menu {
+ .navbar-expand-xxl .navbar-nav .dropdown-menu, .navbar-expand-xxl .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-xxl .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-xxl .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-xxl .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-xxl .navbar-nav .tobago-page-menuStore .tobago-dropdown-me [...]
position: absolute;
}
.navbar-expand-xxl .navbar-nav .nav-link {
@@ -4125,7 +4125,7 @@ textarea.form-control-lg {
.navbar-expand .navbar-nav {
flex-direction: row;
}
-.navbar-expand .navbar-nav .dropdown-menu, .navbar-expand .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand .navbar-nav .tobago-options.tobago-dropdown-menu {
+.navbar-expand .navbar-nav .dropdown-menu, .navbar-expand .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand .navbar-nav .tobago-page-menuStore .tobago-dropdown-menu, .tobago-page-menuStore [...]
position: absolute;
}
.navbar-expand .navbar-nav .nav-link {
@@ -6119,8 +6119,6 @@ textarea.form-control-lg {
border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(-100%);
}
-}
-@media (max-width: 575.98px) {
.offcanvas-sm.offcanvas-end {
top: 0;
right: 0;
@@ -6128,8 +6126,6 @@ textarea.form-control-lg {
border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(100%);
}
-}
-@media (max-width: 575.98px) {
.offcanvas-sm.offcanvas-top {
top: 0;
right: 0;
@@ -6139,8 +6135,6 @@ textarea.form-control-lg {
border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(-100%);
}
-}
-@media (max-width: 575.98px) {
.offcanvas-sm.offcanvas-bottom {
right: 0;
left: 0;
@@ -6149,13 +6143,9 @@ textarea.form-control-lg {
border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(100%);
}
-}
-@media (max-width: 575.98px) {
.offcanvas-sm.showing, .offcanvas-sm.show:not(.hiding) {
transform: none;
}
-}
-@media (max-width: 575.98px) {
.offcanvas-sm.showing, .offcanvas-sm.hiding, .offcanvas-sm.show {
visibility: visible;
}
@@ -6207,8 +6197,6 @@ textarea.form-control-lg {
border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(-100%);
}
-}
-@media (max-width: 767.98px) {
.offcanvas-md.offcanvas-end {
top: 0;
right: 0;
@@ -6216,8 +6204,6 @@ textarea.form-control-lg {
border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(100%);
}
-}
-@media (max-width: 767.98px) {
.offcanvas-md.offcanvas-top {
top: 0;
right: 0;
@@ -6227,8 +6213,6 @@ textarea.form-control-lg {
border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(-100%);
}
-}
-@media (max-width: 767.98px) {
.offcanvas-md.offcanvas-bottom {
right: 0;
left: 0;
@@ -6237,13 +6221,9 @@ textarea.form-control-lg {
border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(100%);
}
-}
-@media (max-width: 767.98px) {
.offcanvas-md.showing, .offcanvas-md.show:not(.hiding) {
transform: none;
}
-}
-@media (max-width: 767.98px) {
.offcanvas-md.showing, .offcanvas-md.hiding, .offcanvas-md.show {
visibility: visible;
}
@@ -6295,8 +6275,6 @@ textarea.form-control-lg {
border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(-100%);
}
-}
-@media (max-width: 991.98px) {
.offcanvas-lg.offcanvas-end {
top: 0;
right: 0;
@@ -6304,8 +6282,6 @@ textarea.form-control-lg {
border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(100%);
}
-}
-@media (max-width: 991.98px) {
.offcanvas-lg.offcanvas-top {
top: 0;
right: 0;
@@ -6315,8 +6291,6 @@ textarea.form-control-lg {
border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(-100%);
}
-}
-@media (max-width: 991.98px) {
.offcanvas-lg.offcanvas-bottom {
right: 0;
left: 0;
@@ -6325,13 +6299,9 @@ textarea.form-control-lg {
border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(100%);
}
-}
-@media (max-width: 991.98px) {
.offcanvas-lg.showing, .offcanvas-lg.show:not(.hiding) {
transform: none;
}
-}
-@media (max-width: 991.98px) {
.offcanvas-lg.showing, .offcanvas-lg.hiding, .offcanvas-lg.show {
visibility: visible;
}
@@ -6383,8 +6353,6 @@ textarea.form-control-lg {
border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(-100%);
}
-}
-@media (max-width: 1199.98px) {
.offcanvas-xl.offcanvas-end {
top: 0;
right: 0;
@@ -6392,8 +6360,6 @@ textarea.form-control-lg {
border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(100%);
}
-}
-@media (max-width: 1199.98px) {
.offcanvas-xl.offcanvas-top {
top: 0;
right: 0;
@@ -6403,8 +6369,6 @@ textarea.form-control-lg {
border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(-100%);
}
-}
-@media (max-width: 1199.98px) {
.offcanvas-xl.offcanvas-bottom {
right: 0;
left: 0;
@@ -6413,13 +6377,9 @@ textarea.form-control-lg {
border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(100%);
}
-}
-@media (max-width: 1199.98px) {
.offcanvas-xl.showing, .offcanvas-xl.show:not(.hiding) {
transform: none;
}
-}
-@media (max-width: 1199.98px) {
.offcanvas-xl.showing, .offcanvas-xl.hiding, .offcanvas-xl.show {
visibility: visible;
}
@@ -6471,8 +6431,6 @@ textarea.form-control-lg {
border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(-100%);
}
-}
-@media (max-width: 1399.98px) {
.offcanvas-xxl.offcanvas-end {
top: 0;
right: 0;
@@ -6480,8 +6438,6 @@ textarea.form-control-lg {
border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(100%);
}
-}
-@media (max-width: 1399.98px) {
.offcanvas-xxl.offcanvas-top {
top: 0;
right: 0;
@@ -6491,8 +6447,6 @@ textarea.form-control-lg {
border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(-100%);
}
-}
-@media (max-width: 1399.98px) {
.offcanvas-xxl.offcanvas-bottom {
right: 0;
left: 0;
@@ -6501,13 +6455,9 @@ textarea.form-control-lg {
border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(100%);
}
-}
-@media (max-width: 1399.98px) {
.offcanvas-xxl.showing, .offcanvas-xxl.show:not(.hiding) {
transform: none;
}
-}
-@media (max-width: 1399.98px) {
.offcanvas-xxl.showing, .offcanvas-xxl.hiding, .offcanvas-xxl.show {
visibility: visible;
}
@@ -11025,17 +10975,23 @@ tobago-date input::-ms-clear {
display: none;
}
-/* dropdown ------------------------------------------------------- */
tobago-dropdown {
display: inline-block;
}
-tobago-dropdown .dropdown-menu .form-check, tobago-dropdown tobago-select-many-list .tobago-options.tobago-dropdown-menu .form-check, tobago-select-many-list tobago-dropdown .tobago-options.tobago-dropdown-menu .form-check, tobago-dropdown tobago-select-one-list .tobago-options.tobago-dropdown-menu .form-check, tobago-select-one-list tobago-dropdown .tobago-options.tobago-dropdown-menu .form-check {
+tobago-dropdown .tobago-dropdown-menu {
+ /* Use .tobago-dropdown-menu instead of .dropdown-menu to prevent Bootstrap from creating a dropdown instance.
+ This leads to javascript error if arrow up/down is pressed. */
+}
+tobago-dropdown .tobago-dropdown-menu .form-check {
/* move form-check components to the right, so checkbox/radio buttons are inside dropdown-menu */
padding-left: 2.5em;
}
-tobago-dropdown .dropdown-menu .form-check.form-switch, tobago-dropdown tobago-select-many-list .tobago-options.tobago-dropdown-menu .form-check.form-switch, tobago-select-many-list tobago-dropdown .tobago-options.tobago-dropdown-menu .form-check.form-switch, tobago-dropdown tobago-select-one-list .tobago-options.tobago-dropdown-menu .form-check.form-switch, tobago-select-one-list tobago-dropdown .tobago-options.tobago-dropdown-menu .form-check.form-switch {
+tobago-dropdown .tobago-dropdown-menu .form-check.form-switch {
padding-left: 3.5em;
}
+tobago-dropdown .tobago-dropdown-menu label[for] {
+ width: 100%;
+}
tobago-dropdown.tobago-dropdown-submenu {
cursor: pointer;
position: relative;
@@ -11045,12 +11001,8 @@ tobago-dropdown.tobago-dropdown-submenu {
tobago-dropdown.tobago-dropdown-submenu:hover {
background-color: #d0d0d0;
}
-tobago-dropdown.tobago-dropdown-submenu:hover > .dropdown-menu, tobago-select-many-list tobago-dropdown.tobago-dropdown-submenu:hover > .tobago-options.tobago-dropdown-menu, tobago-select-one-list tobago-dropdown.tobago-dropdown-submenu:hover > .tobago-options.tobago-dropdown-menu {
+tobago-dropdown.tobago-dropdown-submenu:hover > .tobago-dropdown-menu:not(.tobago-disabled) {
display: block;
- top: 0;
- left: 100%;
- margin-top: -0.5rem;
- margin-left: -1px;
}
tobago-dropdown.tobago-dropdown-submenu > .dropdown-item::after {
content: " ";
@@ -11062,6 +11014,12 @@ tobago-dropdown.tobago-dropdown-submenu > .dropdown-item::after {
margin-top: 7px;
margin-right: -10px;
}
+tobago-dropdown.tobago-dropdown-submenu > .tobago-dropdown-menu {
+ top: 0;
+ left: 100%;
+ margin-top: -0.5rem;
+ margin-left: -1px;
+}
tobago-file {
display: block;
@@ -11738,7 +11696,7 @@ tobago-messages .alert.alert-dismissible.alert-info:before {
border-bottom: #dddddd;
}
-.dropdown-menu .form-check, tobago-select-many-list .tobago-options.tobago-dropdown-menu .form-check, tobago-select-one-list .tobago-options.tobago-dropdown-menu .form-check {
+.tobago-dropdown-menu .form-check {
display: block;
}
@@ -11805,7 +11763,6 @@ tobago-page {
overflow-y: auto;
}
-/* menuStore -------------------------------------------------------- */
.tobago-page-menuStore {
position: absolute;
top: 0;
@@ -11814,13 +11771,20 @@ tobago-page {
height: 0;
z-index: 1070;
}
-.tobago-page-menuStore .dropdown-menu .form-check, .tobago-page-menuStore tobago-select-many-list .tobago-options.tobago-dropdown-menu .form-check, tobago-select-many-list .tobago-page-menuStore .tobago-options.tobago-dropdown-menu .form-check, .tobago-page-menuStore tobago-select-one-list .tobago-options.tobago-dropdown-menu .form-check, tobago-select-one-list .tobago-page-menuStore .tobago-options.tobago-dropdown-menu .form-check {
+.tobago-page-menuStore .tobago-dropdown-menu {
+ /* Use .tobago-dropdown-menu instead of .dropdown-menu to prevent Bootstrap from creating a dropdown instance.
+ This leads to javascript error if arrow up/down is pressed. */
+}
+.tobago-page-menuStore .tobago-dropdown-menu .form-check {
/* move form-check components to the right, so checkbox/radio buttons are inside dropdown-menu */
padding-left: 2.5em;
}
-.tobago-page-menuStore .dropdown-menu .form-check.form-switch, .tobago-page-menuStore tobago-select-many-list .tobago-options.tobago-dropdown-menu .form-check.form-switch, tobago-select-many-list .tobago-page-menuStore .tobago-options.tobago-dropdown-menu .form-check.form-switch, .tobago-page-menuStore tobago-select-one-list .tobago-options.tobago-dropdown-menu .form-check.form-switch, tobago-select-one-list .tobago-page-menuStore .tobago-options.tobago-dropdown-menu .form-check.form-switch {
+.tobago-page-menuStore .tobago-dropdown-menu .form-check.form-switch {
padding-left: 3.5em;
}
+.tobago-page-menuStore .tobago-dropdown-menu label[for] {
+ width: 100%;
+}
/* panel ------------------------------------------------------------- */
tobago-panel {
diff --git a/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.css.map b/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.css.map
index 8a1dffd451..37134ae5ea 100644
--- a/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.css.map
+++ b/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.css.map
@@ -1 +1 @@
-{"version":3,"sources":["tobago.css","../scss/tobago-theme.scss","../scss/_custom.scss","../../../../node_modules/bootstrap/scss/mixins/_banner.scss","../../../../node_modules/bootstrap/scss/_root.scss","../../../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../../../node_modules/bootstrap/scss/_type.s [...]
\ No newline at end of file
+{"version":3,"sources":["tobago.css","../scss/tobago-theme.scss","../scss/_custom.scss","../../../../node_modules/bootstrap/scss/mixins/_banner.scss","../../../../node_modules/bootstrap/scss/_root.scss","../../../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../../../node_modules/bootstrap/scss/_type.s [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.min.css b/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.min.css
index 53cd4427da..1e700ba372 100644
--- a/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.min.css
+++ b/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.min.css
@@ -1,2 +1,2 @@
-@charset "UTF-8";:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#ff00be;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000000;--bs-white:#ffffff;--bs-gray:#777777;--bs-gray-dark:#323232;--bs-gray-100:#f8f9fa;--bs-gray-200:#d0d0d0;--bs-gray-300:#dee2e6;--bs-gray-400:#a0a0a0;--bs-gray-500:#adb5bd;--bs-gray-600:#777777;--bs-gray-700:#495057;--bs-gray-800:#323232;--bs-gray-900:#212529;--bs [...]
+@charset "UTF-8";:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#ff00be;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000000;--bs-white:#ffffff;--bs-gray:#777777;--bs-gray-dark:#323232;--bs-gray-100:#f8f9fa;--bs-gray-200:#d0d0d0;--bs-gray-300:#dee2e6;--bs-gray-400:#a0a0a0;--bs-gray-500:#adb5bd;--bs-gray-600:#777777;--bs-gray-700:#495057;--bs-gray-800:#323232;--bs-gray-900:#212529;--bs [...]
/*# sourceMappingURL=tobago.min.css.map */
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.min.css.map b/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.min.css.map
index 0e55987fb1..90019c6835 100644
--- a/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.min.css.map
+++ b/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["tobago-theme-charlotteville/src/main/css/tobago.css"],"names":[],"mappings":"iBAuCA,MACE,UAAW,QACX,YAAa,QACb,YAAa,QACb,UAAW,QACX,SAAU,QACV,YAAa,QACb,YAAa,QACb,WAAY,QACZ,UAAW,QACX,UAAW,QACX,WAAY,QACZ,WAAY,QACZ,UAAW,QACX,eAAgB,QAChB,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,aAAc,QACd,eAAgB,QAChB,aAAc,QACd,UAAW,QACX,aAAc,QACd,YAAa,QACb,WAAY,QACZ,UAAW,QACX,iBAAkB,EAAE,CAAE,GAAG,CAAE,IAC3B,mBAAoB,GAAG,CAAE,GAAG,CAAE,IAC9 [...]
\ No newline at end of file
+{"version":3,"sources":["tobago-theme-charlotteville/src/main/css/tobago.css"],"names":[],"mappings":"iBAuCA,MACE,UAAW,QACX,YAAa,QACb,YAAa,QACb,UAAW,QACX,SAAU,QACV,YAAa,QACb,YAAa,QACb,WAAY,QACZ,UAAW,QACX,UAAW,QACX,WAAY,QACZ,WAAY,QACZ,UAAW,QACX,eAAgB,QAChB,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,aAAc,QACd,eAAgB,QAChB,aAAc,QACd,UAAW,QACX,aAAc,QACd,YAAa,QACb,WAAY,QACZ,UAAW,QACX,iBAAkB,EAAE,CAAE,GAAG,CAAE,IAC3B,mBAAoB,GAAG,CAAE,GAAG,CAAE,IAC9 [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.css b/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.css
index 350c22e91d..6f4324c698 100644
--- a/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.css
+++ b/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.css
@@ -3268,7 +3268,7 @@ textarea.form-control-lg {
margin-left: 0;
}
-.dropdown-menu, tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .tobago-options.tobago-dropdown-menu {
+.dropdown-menu, tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .tobago-options.tobago-dropdown-menu, .tobago-page-menuStore .tobago-dropdown-menu, tobago-dropdown .tobago-dropdown-menu {
--bs-dropdown-zindex: 1000;
--bs-dropdown-min-width: 10rem;
--bs-dropdown-padding-x: 0;
@@ -3310,7 +3310,7 @@ textarea.form-control-lg {
border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);
border-radius: var(--bs-dropdown-border-radius);
}
-.dropdown-menu[data-bs-popper], tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu {
+.dropdown-menu[data-bs-popper], tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, .tobago-page-menuStore [data-bs-popper].tobago-dropdown-menu, tobago-dropdown [data-bs-popper].tobago-dropdown-menu {
top: 100%;
left: 0;
margin-top: var(--bs-dropdown-spacer);
@@ -3412,7 +3412,7 @@ textarea.form-control-lg {
left: auto;
}
}
-.dropup .dropdown-menu[data-bs-popper], .dropup tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-many-list .dropup [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropup tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list .dropup [data-bs-popper].tobago-options.tobago-dropdown-menu {
+.dropup .dropdown-menu[data-bs-popper], .dropup tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-many-list .dropup [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropup tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list .dropup [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropup .tobago-page-menuStore [data-bs-popper].tobago-dropdown-menu, .tobago-page-menuStore .dropup [data-bs- [...]
top: auto;
bottom: 100%;
margin-top: 0;
@@ -3432,7 +3432,7 @@ textarea.form-control-lg {
margin-left: 0;
}
-.dropend .dropdown-menu[data-bs-popper], .dropend tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-many-list .dropend [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropend tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list .dropend [data-bs-popper].tobago-options.tobago-dropdown-menu {
+.dropend .dropdown-menu[data-bs-popper], .dropend tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-many-list .dropend [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropend tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list .dropend [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropend .tobago-page-menuStore [data-bs-popper].tobago-dropdown-menu, .tobago-page-menuStore .dropend [d [...]
top: 0;
right: auto;
left: 100%;
@@ -3456,7 +3456,7 @@ textarea.form-control-lg {
vertical-align: 0;
}
-.dropstart .dropdown-menu[data-bs-popper], .dropstart tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-many-list .dropstart [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropstart tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list .dropstart [data-bs-popper].tobago-options.tobago-dropdown-menu {
+.dropstart .dropdown-menu[data-bs-popper], .dropstart tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-many-list .dropstart [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropstart tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list .dropstart [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropstart .tobago-page-menuStore [data-bs-popper].tobago-dropdown-menu, .tobago-page-menuStore [...]
top: 0;
right: 100%;
left: auto;
@@ -3524,7 +3524,7 @@ textarea.form-control-lg {
background-color: transparent;
}
-.dropdown-menu.show, tobago-select-many-list .show.tobago-options.tobago-dropdown-menu, tobago-select-one-list .show.tobago-options.tobago-dropdown-menu {
+.dropdown-menu.show, tobago-select-many-list .show.tobago-options.tobago-dropdown-menu, tobago-select-one-list .show.tobago-options.tobago-dropdown-menu, .tobago-page-menuStore .show.tobago-dropdown-menu, tobago-dropdown .show.tobago-dropdown-menu {
display: block;
}
@@ -3727,7 +3727,7 @@ textarea.form-control-lg {
background-color: var(--bs-nav-tabs-link-active-bg);
border-color: var(--bs-nav-tabs-link-active-border-color);
}
-.nav-tabs .dropdown-menu, .nav-tabs tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .nav-tabs .tobago-options.tobago-dropdown-menu, .nav-tabs tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .nav-tabs .tobago-options.tobago-dropdown-menu {
+.nav-tabs .dropdown-menu, .nav-tabs tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .nav-tabs .tobago-options.tobago-dropdown-menu, .nav-tabs tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .nav-tabs .tobago-options.tobago-dropdown-menu, .nav-tabs .tobago-page-menuStore .tobago-dropdown-menu, .tobago-page-menuStore .nav-tabs .tobago-dropdown-menu, .nav-tabs tobago-dropdown .tobago-dropdown-menu, tobago-dropdown .na [...]
margin-top: calc(-1 * var(--bs-nav-tabs-border-width));
border-top-left-radius: 0;
border-top-right-radius: 0;
@@ -3849,7 +3849,7 @@ textarea.form-control-lg {
.navbar-nav .nav-link.active {
color: var(--bs-navbar-active-color);
}
-.navbar-nav .dropdown-menu, .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-nav .tobago-options.tobago-dropdown-menu {
+.navbar-nav .dropdown-menu, .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-nav .tobago-page-menuStore .tobago-dropdown-menu, .tobago-page-menuStore .navbar-nav .tobago-dropdown-menu, .navbar-nav tobago-dropdown .tobago-dropdown-menu, tob [...]
position: static;
}
@@ -3918,7 +3918,7 @@ textarea.form-control-lg {
.navbar-expand-sm .navbar-nav {
flex-direction: row;
}
- .navbar-expand-sm .navbar-nav .dropdown-menu, .navbar-expand-sm .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-sm .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-sm .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-sm .navbar-nav .tobago-options.tobago-dropdown-menu {
+ .navbar-expand-sm .navbar-nav .dropdown-menu, .navbar-expand-sm .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-sm .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-sm .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-sm .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-sm .navbar-nav .tobago-page-menuStore .tobago-dropdown-menu, .t [...]
position: absolute;
}
.navbar-expand-sm .navbar-nav .nav-link {
@@ -3965,7 +3965,7 @@ textarea.form-control-lg {
.navbar-expand-md .navbar-nav {
flex-direction: row;
}
- .navbar-expand-md .navbar-nav .dropdown-menu, .navbar-expand-md .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-md .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-md .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-md .navbar-nav .tobago-options.tobago-dropdown-menu {
+ .navbar-expand-md .navbar-nav .dropdown-menu, .navbar-expand-md .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-md .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-md .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-md .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-md .navbar-nav .tobago-page-menuStore .tobago-dropdown-menu, .t [...]
position: absolute;
}
.navbar-expand-md .navbar-nav .nav-link {
@@ -4012,7 +4012,7 @@ textarea.form-control-lg {
.navbar-expand-lg .navbar-nav {
flex-direction: row;
}
- .navbar-expand-lg .navbar-nav .dropdown-menu, .navbar-expand-lg .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-lg .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-lg .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-lg .navbar-nav .tobago-options.tobago-dropdown-menu {
+ .navbar-expand-lg .navbar-nav .dropdown-menu, .navbar-expand-lg .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-lg .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-lg .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-lg .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-lg .navbar-nav .tobago-page-menuStore .tobago-dropdown-menu, .t [...]
position: absolute;
}
.navbar-expand-lg .navbar-nav .nav-link {
@@ -4059,7 +4059,7 @@ textarea.form-control-lg {
.navbar-expand-xl .navbar-nav {
flex-direction: row;
}
- .navbar-expand-xl .navbar-nav .dropdown-menu, .navbar-expand-xl .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-xl .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-xl .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-xl .navbar-nav .tobago-options.tobago-dropdown-menu {
+ .navbar-expand-xl .navbar-nav .dropdown-menu, .navbar-expand-xl .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-xl .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-xl .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-xl .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-xl .navbar-nav .tobago-page-menuStore .tobago-dropdown-menu, .t [...]
position: absolute;
}
.navbar-expand-xl .navbar-nav .nav-link {
@@ -4106,7 +4106,7 @@ textarea.form-control-lg {
.navbar-expand-xxl .navbar-nav {
flex-direction: row;
}
- .navbar-expand-xxl .navbar-nav .dropdown-menu, .navbar-expand-xxl .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-xxl .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-xxl .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-xxl .navbar-nav .tobago-options.tobago-dropdown-menu {
+ .navbar-expand-xxl .navbar-nav .dropdown-menu, .navbar-expand-xxl .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-xxl .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-xxl .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-xxl .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-xxl .navbar-nav .tobago-page-menuStore .tobago-dropdown-me [...]
position: absolute;
}
.navbar-expand-xxl .navbar-nav .nav-link {
@@ -4152,7 +4152,7 @@ textarea.form-control-lg {
.navbar-expand .navbar-nav {
flex-direction: row;
}
-.navbar-expand .navbar-nav .dropdown-menu, .navbar-expand .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand .navbar-nav .tobago-options.tobago-dropdown-menu {
+.navbar-expand .navbar-nav .dropdown-menu, .navbar-expand .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand .navbar-nav .tobago-page-menuStore .tobago-dropdown-menu, .tobago-page-menuStore [...]
position: absolute;
}
.navbar-expand .navbar-nav .nav-link {
@@ -6146,8 +6146,6 @@ textarea.form-control-lg {
border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(-100%);
}
-}
-@media (max-width: 575.98px) {
.offcanvas-sm.offcanvas-end {
top: 0;
right: 0;
@@ -6155,8 +6153,6 @@ textarea.form-control-lg {
border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(100%);
}
-}
-@media (max-width: 575.98px) {
.offcanvas-sm.offcanvas-top {
top: 0;
right: 0;
@@ -6166,8 +6162,6 @@ textarea.form-control-lg {
border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(-100%);
}
-}
-@media (max-width: 575.98px) {
.offcanvas-sm.offcanvas-bottom {
right: 0;
left: 0;
@@ -6176,13 +6170,9 @@ textarea.form-control-lg {
border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(100%);
}
-}
-@media (max-width: 575.98px) {
.offcanvas-sm.showing, .offcanvas-sm.show:not(.hiding) {
transform: none;
}
-}
-@media (max-width: 575.98px) {
.offcanvas-sm.showing, .offcanvas-sm.hiding, .offcanvas-sm.show {
visibility: visible;
}
@@ -6234,8 +6224,6 @@ textarea.form-control-lg {
border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(-100%);
}
-}
-@media (max-width: 767.98px) {
.offcanvas-md.offcanvas-end {
top: 0;
right: 0;
@@ -6243,8 +6231,6 @@ textarea.form-control-lg {
border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(100%);
}
-}
-@media (max-width: 767.98px) {
.offcanvas-md.offcanvas-top {
top: 0;
right: 0;
@@ -6254,8 +6240,6 @@ textarea.form-control-lg {
border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(-100%);
}
-}
-@media (max-width: 767.98px) {
.offcanvas-md.offcanvas-bottom {
right: 0;
left: 0;
@@ -6264,13 +6248,9 @@ textarea.form-control-lg {
border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(100%);
}
-}
-@media (max-width: 767.98px) {
.offcanvas-md.showing, .offcanvas-md.show:not(.hiding) {
transform: none;
}
-}
-@media (max-width: 767.98px) {
.offcanvas-md.showing, .offcanvas-md.hiding, .offcanvas-md.show {
visibility: visible;
}
@@ -6322,8 +6302,6 @@ textarea.form-control-lg {
border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(-100%);
}
-}
-@media (max-width: 991.98px) {
.offcanvas-lg.offcanvas-end {
top: 0;
right: 0;
@@ -6331,8 +6309,6 @@ textarea.form-control-lg {
border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(100%);
}
-}
-@media (max-width: 991.98px) {
.offcanvas-lg.offcanvas-top {
top: 0;
right: 0;
@@ -6342,8 +6318,6 @@ textarea.form-control-lg {
border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(-100%);
}
-}
-@media (max-width: 991.98px) {
.offcanvas-lg.offcanvas-bottom {
right: 0;
left: 0;
@@ -6352,13 +6326,9 @@ textarea.form-control-lg {
border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(100%);
}
-}
-@media (max-width: 991.98px) {
.offcanvas-lg.showing, .offcanvas-lg.show:not(.hiding) {
transform: none;
}
-}
-@media (max-width: 991.98px) {
.offcanvas-lg.showing, .offcanvas-lg.hiding, .offcanvas-lg.show {
visibility: visible;
}
@@ -6410,8 +6380,6 @@ textarea.form-control-lg {
border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(-100%);
}
-}
-@media (max-width: 1199.98px) {
.offcanvas-xl.offcanvas-end {
top: 0;
right: 0;
@@ -6419,8 +6387,6 @@ textarea.form-control-lg {
border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(100%);
}
-}
-@media (max-width: 1199.98px) {
.offcanvas-xl.offcanvas-top {
top: 0;
right: 0;
@@ -6430,8 +6396,6 @@ textarea.form-control-lg {
border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(-100%);
}
-}
-@media (max-width: 1199.98px) {
.offcanvas-xl.offcanvas-bottom {
right: 0;
left: 0;
@@ -6440,13 +6404,9 @@ textarea.form-control-lg {
border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(100%);
}
-}
-@media (max-width: 1199.98px) {
.offcanvas-xl.showing, .offcanvas-xl.show:not(.hiding) {
transform: none;
}
-}
-@media (max-width: 1199.98px) {
.offcanvas-xl.showing, .offcanvas-xl.hiding, .offcanvas-xl.show {
visibility: visible;
}
@@ -6498,8 +6458,6 @@ textarea.form-control-lg {
border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(-100%);
}
-}
-@media (max-width: 1399.98px) {
.offcanvas-xxl.offcanvas-end {
top: 0;
right: 0;
@@ -6507,8 +6465,6 @@ textarea.form-control-lg {
border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(100%);
}
-}
-@media (max-width: 1399.98px) {
.offcanvas-xxl.offcanvas-top {
top: 0;
right: 0;
@@ -6518,8 +6474,6 @@ textarea.form-control-lg {
border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(-100%);
}
-}
-@media (max-width: 1399.98px) {
.offcanvas-xxl.offcanvas-bottom {
right: 0;
left: 0;
@@ -6528,13 +6482,9 @@ textarea.form-control-lg {
border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(100%);
}
-}
-@media (max-width: 1399.98px) {
.offcanvas-xxl.showing, .offcanvas-xxl.show:not(.hiding) {
transform: none;
}
-}
-@media (max-width: 1399.98px) {
.offcanvas-xxl.showing, .offcanvas-xxl.hiding, .offcanvas-xxl.show {
visibility: visible;
}
@@ -11052,17 +11002,23 @@ tobago-date input::-ms-clear {
display: none;
}
-/* dropdown ------------------------------------------------------- */
tobago-dropdown {
display: inline-block;
}
-tobago-dropdown .dropdown-menu .form-check, tobago-dropdown tobago-select-many-list .tobago-options.tobago-dropdown-menu .form-check, tobago-select-many-list tobago-dropdown .tobago-options.tobago-dropdown-menu .form-check, tobago-dropdown tobago-select-one-list .tobago-options.tobago-dropdown-menu .form-check, tobago-select-one-list tobago-dropdown .tobago-options.tobago-dropdown-menu .form-check {
+tobago-dropdown .tobago-dropdown-menu {
+ /* Use .tobago-dropdown-menu instead of .dropdown-menu to prevent Bootstrap from creating a dropdown instance.
+ This leads to javascript error if arrow up/down is pressed. */
+}
+tobago-dropdown .tobago-dropdown-menu .form-check {
/* move form-check components to the right, so checkbox/radio buttons are inside dropdown-menu */
padding-left: 2.5em;
}
-tobago-dropdown .dropdown-menu .form-check.form-switch, tobago-dropdown tobago-select-many-list .tobago-options.tobago-dropdown-menu .form-check.form-switch, tobago-select-many-list tobago-dropdown .tobago-options.tobago-dropdown-menu .form-check.form-switch, tobago-dropdown tobago-select-one-list .tobago-options.tobago-dropdown-menu .form-check.form-switch, tobago-select-one-list tobago-dropdown .tobago-options.tobago-dropdown-menu .form-check.form-switch {
+tobago-dropdown .tobago-dropdown-menu .form-check.form-switch {
padding-left: 3.5em;
}
+tobago-dropdown .tobago-dropdown-menu label[for] {
+ width: 100%;
+}
tobago-dropdown.tobago-dropdown-submenu {
cursor: pointer;
position: relative;
@@ -11072,12 +11028,8 @@ tobago-dropdown.tobago-dropdown-submenu {
tobago-dropdown.tobago-dropdown-submenu:hover {
background-color: #e9ecef;
}
-tobago-dropdown.tobago-dropdown-submenu:hover > .dropdown-menu, tobago-select-many-list tobago-dropdown.tobago-dropdown-submenu:hover > .tobago-options.tobago-dropdown-menu, tobago-select-one-list tobago-dropdown.tobago-dropdown-submenu:hover > .tobago-options.tobago-dropdown-menu {
+tobago-dropdown.tobago-dropdown-submenu:hover > .tobago-dropdown-menu:not(.tobago-disabled) {
display: block;
- top: 0;
- left: 100%;
- margin-top: -0.5rem;
- margin-left: -1px;
}
tobago-dropdown.tobago-dropdown-submenu > .dropdown-item::after {
content: " ";
@@ -11089,6 +11041,12 @@ tobago-dropdown.tobago-dropdown-submenu > .dropdown-item::after {
margin-top: 7px;
margin-right: -10px;
}
+tobago-dropdown.tobago-dropdown-submenu > .tobago-dropdown-menu {
+ top: 0;
+ left: 100%;
+ margin-top: -0.5rem;
+ margin-left: -1px;
+}
tobago-file {
display: block;
@@ -11765,7 +11723,7 @@ tobago-messages .alert.alert-dismissible.alert-info:before {
border-bottom: #dddddd;
}
-.dropdown-menu .form-check, tobago-select-many-list .tobago-options.tobago-dropdown-menu .form-check, tobago-select-one-list .tobago-options.tobago-dropdown-menu .form-check {
+.tobago-dropdown-menu .form-check {
display: block;
}
@@ -11832,7 +11790,6 @@ tobago-page {
overflow-y: auto;
}
-/* menuStore -------------------------------------------------------- */
.tobago-page-menuStore {
position: absolute;
top: 0;
@@ -11841,13 +11798,20 @@ tobago-page {
height: 0;
z-index: 1070;
}
-.tobago-page-menuStore .dropdown-menu .form-check, .tobago-page-menuStore tobago-select-many-list .tobago-options.tobago-dropdown-menu .form-check, tobago-select-many-list .tobago-page-menuStore .tobago-options.tobago-dropdown-menu .form-check, .tobago-page-menuStore tobago-select-one-list .tobago-options.tobago-dropdown-menu .form-check, tobago-select-one-list .tobago-page-menuStore .tobago-options.tobago-dropdown-menu .form-check {
+.tobago-page-menuStore .tobago-dropdown-menu {
+ /* Use .tobago-dropdown-menu instead of .dropdown-menu to prevent Bootstrap from creating a dropdown instance.
+ This leads to javascript error if arrow up/down is pressed. */
+}
+.tobago-page-menuStore .tobago-dropdown-menu .form-check {
/* move form-check components to the right, so checkbox/radio buttons are inside dropdown-menu */
padding-left: 2.5em;
}
-.tobago-page-menuStore .dropdown-menu .form-check.form-switch, .tobago-page-menuStore tobago-select-many-list .tobago-options.tobago-dropdown-menu .form-check.form-switch, tobago-select-many-list .tobago-page-menuStore .tobago-options.tobago-dropdown-menu .form-check.form-switch, .tobago-page-menuStore tobago-select-one-list .tobago-options.tobago-dropdown-menu .form-check.form-switch, tobago-select-one-list .tobago-page-menuStore .tobago-options.tobago-dropdown-menu .form-check.form-switch {
+.tobago-page-menuStore .tobago-dropdown-menu .form-check.form-switch {
padding-left: 3.5em;
}
+.tobago-page-menuStore .tobago-dropdown-menu label[for] {
+ width: 100%;
+}
/* panel ------------------------------------------------------------- */
tobago-panel {
diff --git a/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.css.map b/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.css.map
index 4f77bee156..42ed2e89c6 100644
--- a/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.css.map
+++ b/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.css.map
@@ -1 +1 @@
-{"version":3,"sources":["tobago.css","../scss/tobago-theme.scss","../scss/_custom.scss","../../../../node_modules/bootstrap/scss/mixins/_banner.scss","../../../../node_modules/bootstrap/scss/_root.scss","../../../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../../../node_modules/bootstrap/scss/_type.s [...]
\ No newline at end of file
+{"version":3,"sources":["tobago.css","../scss/tobago-theme.scss","../scss/_custom.scss","../../../../node_modules/bootstrap/scss/mixins/_banner.scss","../../../../node_modules/bootstrap/scss/_root.scss","../../../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../../../node_modules/bootstrap/scss/_type.s [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.min.css b/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.min.css
index ecd43c4023..daf9a8f40d 100644
--- a/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.min.css
+++ b/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.min.css
@@ -1,2 +1,2 @@
-@charset "UTF-8";@font-face{font-family:Amaranth;font-style:normal;font-weight:400;src:url("../fonts/Amaranth-Regular.otf") format("opentype")}@font-face{font-family:Amaranth;font-style:normal;font-weight:700;src:url("../fonts/Amaranth-Bold.otf") format("opentype")}@font-face{font-family:Amaranth;font-style:italic;src:url("../fonts/Amaranth-Italic.otf") format("opentype")}@font-face{font-family:Amaranth;font-style:italic;font-weight:700;src:url("../fonts/Amaranth-BoldItalic.otf") format( [...]
+@charset "UTF-8";@font-face{font-family:Amaranth;font-style:normal;font-weight:400;src:url("../fonts/Amaranth-Regular.otf") format("opentype")}@font-face{font-family:Amaranth;font-style:normal;font-weight:700;src:url("../fonts/Amaranth-Bold.otf") format("opentype")}@font-face{font-family:Amaranth;font-style:italic;src:url("../fonts/Amaranth-Italic.otf") format("opentype")}@font-face{font-family:Amaranth;font-style:italic;font-weight:700;src:url("../fonts/Amaranth-BoldItalic.otf") format( [...]
/*# sourceMappingURL=tobago.min.css.map */
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.min.css.map b/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.min.css.map
index cd071090f6..80b4157f90 100644
--- a/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.min.css.map
+++ b/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["tobago-theme-roxborough/src/main/css/tobago.css"],"names":[],"mappings":"iBAiCA,WACE,YAAa,SACb,WAAY,OACZ,YAAa,IACb,IAAK,qCAAqC,mBAE5C,WACE,YAAa,SACb,WAAY,OACZ,YAAa,IACb,IAAK,kCAAkC,mBAEzC,WACE,YAAa,SACb,WAAY,OACZ,IAAK,oCAAoC,mBAE3C,WACE,YAAa,SACb,WAAY,OACZ,YAAa,IACb,IAAK,wCAAwC,mBAE/C,mBACE,YAAa,QAAQ,CAAE,KAAK,CAAE,MAShC,MACE,UAAW,QACX,YAAa,QACb,YAAa,QACb,UAAW,QACX,SAAU,QACV,YAAa,QACb,YAAa,QACb,WAAY,QACZ,UAAW,QACX,UAAW,QACX,WAAY,QACZ,WAAY,KACZ,UAAW,QACX,eAAgB,QAC [...]
\ No newline at end of file
+{"version":3,"sources":["tobago-theme-roxborough/src/main/css/tobago.css"],"names":[],"mappings":"iBAiCA,WACE,YAAa,SACb,WAAY,OACZ,YAAa,IACb,IAAK,qCAAqC,mBAE5C,WACE,YAAa,SACb,WAAY,OACZ,YAAa,IACb,IAAK,kCAAkC,mBAEzC,WACE,YAAa,SACb,WAAY,OACZ,IAAK,oCAAoC,mBAE3C,WACE,YAAa,SACb,WAAY,OACZ,YAAa,IACb,IAAK,wCAAwC,mBAE/C,mBACE,YAAa,QAAQ,CAAE,KAAK,CAAE,MAShC,MACE,UAAW,QACX,YAAa,QACb,YAAa,QACb,UAAW,QACX,SAAU,QACV,YAAa,QACb,YAAa,QACb,WAAY,QACZ,UAAW,QACX,UAAW,QACX,WAAY,QACZ,WAAY,KACZ,UAAW,QACX,eAAgB,QAC [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.css b/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.css
index 773fe7e79d..149b0ccedf 100644
--- a/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.css
+++ b/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.css
@@ -3245,7 +3245,7 @@ textarea.form-control-lg {
margin-left: 0;
}
-.dropdown-menu, tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .tobago-options.tobago-dropdown-menu {
+.dropdown-menu, tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .tobago-options.tobago-dropdown-menu, .tobago-page-menuStore .tobago-dropdown-menu, tobago-dropdown .tobago-dropdown-menu {
--bs-dropdown-zindex: 1000;
--bs-dropdown-min-width: 10rem;
--bs-dropdown-padding-x: 0;
@@ -3287,7 +3287,7 @@ textarea.form-control-lg {
border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);
border-radius: var(--bs-dropdown-border-radius);
}
-.dropdown-menu[data-bs-popper], tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu {
+.dropdown-menu[data-bs-popper], tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, .tobago-page-menuStore [data-bs-popper].tobago-dropdown-menu, tobago-dropdown [data-bs-popper].tobago-dropdown-menu {
top: 100%;
left: 0;
margin-top: var(--bs-dropdown-spacer);
@@ -3389,7 +3389,7 @@ textarea.form-control-lg {
left: auto;
}
}
-.dropup .dropdown-menu[data-bs-popper], .dropup tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-many-list .dropup [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropup tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list .dropup [data-bs-popper].tobago-options.tobago-dropdown-menu {
+.dropup .dropdown-menu[data-bs-popper], .dropup tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-many-list .dropup [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropup tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list .dropup [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropup .tobago-page-menuStore [data-bs-popper].tobago-dropdown-menu, .tobago-page-menuStore .dropup [data-bs- [...]
top: auto;
bottom: 100%;
margin-top: 0;
@@ -3409,7 +3409,7 @@ textarea.form-control-lg {
margin-left: 0;
}
-.dropend .dropdown-menu[data-bs-popper], .dropend tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-many-list .dropend [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropend tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list .dropend [data-bs-popper].tobago-options.tobago-dropdown-menu {
+.dropend .dropdown-menu[data-bs-popper], .dropend tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-many-list .dropend [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropend tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list .dropend [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropend .tobago-page-menuStore [data-bs-popper].tobago-dropdown-menu, .tobago-page-menuStore .dropend [d [...]
top: 0;
right: auto;
left: 100%;
@@ -3433,7 +3433,7 @@ textarea.form-control-lg {
vertical-align: 0;
}
-.dropstart .dropdown-menu[data-bs-popper], .dropstart tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-many-list .dropstart [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropstart tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list .dropstart [data-bs-popper].tobago-options.tobago-dropdown-menu {
+.dropstart .dropdown-menu[data-bs-popper], .dropstart tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-many-list .dropstart [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropstart tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list .dropstart [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropstart .tobago-page-menuStore [data-bs-popper].tobago-dropdown-menu, .tobago-page-menuStore [...]
top: 0;
right: 100%;
left: auto;
@@ -3501,7 +3501,7 @@ textarea.form-control-lg {
background-color: transparent;
}
-.dropdown-menu.show, tobago-select-many-list .show.tobago-options.tobago-dropdown-menu, tobago-select-one-list .show.tobago-options.tobago-dropdown-menu {
+.dropdown-menu.show, tobago-select-many-list .show.tobago-options.tobago-dropdown-menu, tobago-select-one-list .show.tobago-options.tobago-dropdown-menu, .tobago-page-menuStore .show.tobago-dropdown-menu, tobago-dropdown .show.tobago-dropdown-menu {
display: block;
}
@@ -3704,7 +3704,7 @@ textarea.form-control-lg {
background-color: var(--bs-nav-tabs-link-active-bg);
border-color: var(--bs-nav-tabs-link-active-border-color);
}
-.nav-tabs .dropdown-menu, .nav-tabs tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .nav-tabs .tobago-options.tobago-dropdown-menu, .nav-tabs tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .nav-tabs .tobago-options.tobago-dropdown-menu {
+.nav-tabs .dropdown-menu, .nav-tabs tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .nav-tabs .tobago-options.tobago-dropdown-menu, .nav-tabs tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .nav-tabs .tobago-options.tobago-dropdown-menu, .nav-tabs .tobago-page-menuStore .tobago-dropdown-menu, .tobago-page-menuStore .nav-tabs .tobago-dropdown-menu, .nav-tabs tobago-dropdown .tobago-dropdown-menu, tobago-dropdown .na [...]
margin-top: calc(-1 * var(--bs-nav-tabs-border-width));
border-top-left-radius: 0;
border-top-right-radius: 0;
@@ -3826,7 +3826,7 @@ textarea.form-control-lg {
.navbar-nav .nav-link.active {
color: var(--bs-navbar-active-color);
}
-.navbar-nav .dropdown-menu, .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-nav .tobago-options.tobago-dropdown-menu {
+.navbar-nav .dropdown-menu, .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-nav .tobago-page-menuStore .tobago-dropdown-menu, .tobago-page-menuStore .navbar-nav .tobago-dropdown-menu, .navbar-nav tobago-dropdown .tobago-dropdown-menu, tob [...]
position: static;
}
@@ -3895,7 +3895,7 @@ textarea.form-control-lg {
.navbar-expand-sm .navbar-nav {
flex-direction: row;
}
- .navbar-expand-sm .navbar-nav .dropdown-menu, .navbar-expand-sm .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-sm .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-sm .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-sm .navbar-nav .tobago-options.tobago-dropdown-menu {
+ .navbar-expand-sm .navbar-nav .dropdown-menu, .navbar-expand-sm .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-sm .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-sm .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-sm .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-sm .navbar-nav .tobago-page-menuStore .tobago-dropdown-menu, .t [...]
position: absolute;
}
.navbar-expand-sm .navbar-nav .nav-link {
@@ -3942,7 +3942,7 @@ textarea.form-control-lg {
.navbar-expand-md .navbar-nav {
flex-direction: row;
}
- .navbar-expand-md .navbar-nav .dropdown-menu, .navbar-expand-md .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-md .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-md .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-md .navbar-nav .tobago-options.tobago-dropdown-menu {
+ .navbar-expand-md .navbar-nav .dropdown-menu, .navbar-expand-md .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-md .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-md .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-md .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-md .navbar-nav .tobago-page-menuStore .tobago-dropdown-menu, .t [...]
position: absolute;
}
.navbar-expand-md .navbar-nav .nav-link {
@@ -3989,7 +3989,7 @@ textarea.form-control-lg {
.navbar-expand-lg .navbar-nav {
flex-direction: row;
}
- .navbar-expand-lg .navbar-nav .dropdown-menu, .navbar-expand-lg .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-lg .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-lg .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-lg .navbar-nav .tobago-options.tobago-dropdown-menu {
+ .navbar-expand-lg .navbar-nav .dropdown-menu, .navbar-expand-lg .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-lg .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-lg .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-lg .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-lg .navbar-nav .tobago-page-menuStore .tobago-dropdown-menu, .t [...]
position: absolute;
}
.navbar-expand-lg .navbar-nav .nav-link {
@@ -4036,7 +4036,7 @@ textarea.form-control-lg {
.navbar-expand-xl .navbar-nav {
flex-direction: row;
}
- .navbar-expand-xl .navbar-nav .dropdown-menu, .navbar-expand-xl .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-xl .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-xl .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-xl .navbar-nav .tobago-options.tobago-dropdown-menu {
+ .navbar-expand-xl .navbar-nav .dropdown-menu, .navbar-expand-xl .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-xl .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-xl .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-xl .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-xl .navbar-nav .tobago-page-menuStore .tobago-dropdown-menu, .t [...]
position: absolute;
}
.navbar-expand-xl .navbar-nav .nav-link {
@@ -4083,7 +4083,7 @@ textarea.form-control-lg {
.navbar-expand-xxl .navbar-nav {
flex-direction: row;
}
- .navbar-expand-xxl .navbar-nav .dropdown-menu, .navbar-expand-xxl .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-xxl .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-xxl .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-xxl .navbar-nav .tobago-options.tobago-dropdown-menu {
+ .navbar-expand-xxl .navbar-nav .dropdown-menu, .navbar-expand-xxl .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-xxl .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-xxl .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-xxl .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-xxl .navbar-nav .tobago-page-menuStore .tobago-dropdown-me [...]
position: absolute;
}
.navbar-expand-xxl .navbar-nav .nav-link {
@@ -4129,7 +4129,7 @@ textarea.form-control-lg {
.navbar-expand .navbar-nav {
flex-direction: row;
}
-.navbar-expand .navbar-nav .dropdown-menu, .navbar-expand .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand .navbar-nav .tobago-options.tobago-dropdown-menu {
+.navbar-expand .navbar-nav .dropdown-menu, .navbar-expand .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand .navbar-nav .tobago-page-menuStore .tobago-dropdown-menu, .tobago-page-menuStore [...]
position: absolute;
}
.navbar-expand .navbar-nav .nav-link {
@@ -6123,8 +6123,6 @@ textarea.form-control-lg {
border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(-100%);
}
-}
-@media (max-width: 575.98px) {
.offcanvas-sm.offcanvas-end {
top: 0;
right: 0;
@@ -6132,8 +6130,6 @@ textarea.form-control-lg {
border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(100%);
}
-}
-@media (max-width: 575.98px) {
.offcanvas-sm.offcanvas-top {
top: 0;
right: 0;
@@ -6143,8 +6139,6 @@ textarea.form-control-lg {
border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(-100%);
}
-}
-@media (max-width: 575.98px) {
.offcanvas-sm.offcanvas-bottom {
right: 0;
left: 0;
@@ -6153,13 +6147,9 @@ textarea.form-control-lg {
border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(100%);
}
-}
-@media (max-width: 575.98px) {
.offcanvas-sm.showing, .offcanvas-sm.show:not(.hiding) {
transform: none;
}
-}
-@media (max-width: 575.98px) {
.offcanvas-sm.showing, .offcanvas-sm.hiding, .offcanvas-sm.show {
visibility: visible;
}
@@ -6211,8 +6201,6 @@ textarea.form-control-lg {
border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(-100%);
}
-}
-@media (max-width: 767.98px) {
.offcanvas-md.offcanvas-end {
top: 0;
right: 0;
@@ -6220,8 +6208,6 @@ textarea.form-control-lg {
border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(100%);
}
-}
-@media (max-width: 767.98px) {
.offcanvas-md.offcanvas-top {
top: 0;
right: 0;
@@ -6231,8 +6217,6 @@ textarea.form-control-lg {
border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(-100%);
}
-}
-@media (max-width: 767.98px) {
.offcanvas-md.offcanvas-bottom {
right: 0;
left: 0;
@@ -6241,13 +6225,9 @@ textarea.form-control-lg {
border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(100%);
}
-}
-@media (max-width: 767.98px) {
.offcanvas-md.showing, .offcanvas-md.show:not(.hiding) {
transform: none;
}
-}
-@media (max-width: 767.98px) {
.offcanvas-md.showing, .offcanvas-md.hiding, .offcanvas-md.show {
visibility: visible;
}
@@ -6299,8 +6279,6 @@ textarea.form-control-lg {
border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(-100%);
}
-}
-@media (max-width: 991.98px) {
.offcanvas-lg.offcanvas-end {
top: 0;
right: 0;
@@ -6308,8 +6286,6 @@ textarea.form-control-lg {
border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(100%);
}
-}
-@media (max-width: 991.98px) {
.offcanvas-lg.offcanvas-top {
top: 0;
right: 0;
@@ -6319,8 +6295,6 @@ textarea.form-control-lg {
border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(-100%);
}
-}
-@media (max-width: 991.98px) {
.offcanvas-lg.offcanvas-bottom {
right: 0;
left: 0;
@@ -6329,13 +6303,9 @@ textarea.form-control-lg {
border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(100%);
}
-}
-@media (max-width: 991.98px) {
.offcanvas-lg.showing, .offcanvas-lg.show:not(.hiding) {
transform: none;
}
-}
-@media (max-width: 991.98px) {
.offcanvas-lg.showing, .offcanvas-lg.hiding, .offcanvas-lg.show {
visibility: visible;
}
@@ -6387,8 +6357,6 @@ textarea.form-control-lg {
border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(-100%);
}
-}
-@media (max-width: 1199.98px) {
.offcanvas-xl.offcanvas-end {
top: 0;
right: 0;
@@ -6396,8 +6364,6 @@ textarea.form-control-lg {
border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(100%);
}
-}
-@media (max-width: 1199.98px) {
.offcanvas-xl.offcanvas-top {
top: 0;
right: 0;
@@ -6407,8 +6373,6 @@ textarea.form-control-lg {
border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(-100%);
}
-}
-@media (max-width: 1199.98px) {
.offcanvas-xl.offcanvas-bottom {
right: 0;
left: 0;
@@ -6417,13 +6381,9 @@ textarea.form-control-lg {
border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(100%);
}
-}
-@media (max-width: 1199.98px) {
.offcanvas-xl.showing, .offcanvas-xl.show:not(.hiding) {
transform: none;
}
-}
-@media (max-width: 1199.98px) {
.offcanvas-xl.showing, .offcanvas-xl.hiding, .offcanvas-xl.show {
visibility: visible;
}
@@ -6475,8 +6435,6 @@ textarea.form-control-lg {
border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(-100%);
}
-}
-@media (max-width: 1399.98px) {
.offcanvas-xxl.offcanvas-end {
top: 0;
right: 0;
@@ -6484,8 +6442,6 @@ textarea.form-control-lg {
border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(100%);
}
-}
-@media (max-width: 1399.98px) {
.offcanvas-xxl.offcanvas-top {
top: 0;
right: 0;
@@ -6495,8 +6451,6 @@ textarea.form-control-lg {
border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(-100%);
}
-}
-@media (max-width: 1399.98px) {
.offcanvas-xxl.offcanvas-bottom {
right: 0;
left: 0;
@@ -6505,13 +6459,9 @@ textarea.form-control-lg {
border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(100%);
}
-}
-@media (max-width: 1399.98px) {
.offcanvas-xxl.showing, .offcanvas-xxl.show:not(.hiding) {
transform: none;
}
-}
-@media (max-width: 1399.98px) {
.offcanvas-xxl.showing, .offcanvas-xxl.hiding, .offcanvas-xxl.show {
visibility: visible;
}
@@ -11046,17 +10996,23 @@ tobago-date input::-ms-clear {
display: none;
}
-/* dropdown ------------------------------------------------------- */
tobago-dropdown {
display: inline-block;
}
-tobago-dropdown .dropdown-menu .form-check, tobago-dropdown tobago-select-many-list .tobago-options.tobago-dropdown-menu .form-check, tobago-select-many-list tobago-dropdown .tobago-options.tobago-dropdown-menu .form-check, tobago-dropdown tobago-select-one-list .tobago-options.tobago-dropdown-menu .form-check, tobago-select-one-list tobago-dropdown .tobago-options.tobago-dropdown-menu .form-check {
+tobago-dropdown .tobago-dropdown-menu {
+ /* Use .tobago-dropdown-menu instead of .dropdown-menu to prevent Bootstrap from creating a dropdown instance.
+ This leads to javascript error if arrow up/down is pressed. */
+}
+tobago-dropdown .tobago-dropdown-menu .form-check {
/* move form-check components to the right, so checkbox/radio buttons are inside dropdown-menu */
padding-left: 2.5em;
}
-tobago-dropdown .dropdown-menu .form-check.form-switch, tobago-dropdown tobago-select-many-list .tobago-options.tobago-dropdown-menu .form-check.form-switch, tobago-select-many-list tobago-dropdown .tobago-options.tobago-dropdown-menu .form-check.form-switch, tobago-dropdown tobago-select-one-list .tobago-options.tobago-dropdown-menu .form-check.form-switch, tobago-select-one-list tobago-dropdown .tobago-options.tobago-dropdown-menu .form-check.form-switch {
+tobago-dropdown .tobago-dropdown-menu .form-check.form-switch {
padding-left: 3.5em;
}
+tobago-dropdown .tobago-dropdown-menu label[for] {
+ width: 100%;
+}
tobago-dropdown.tobago-dropdown-submenu {
cursor: pointer;
position: relative;
@@ -11066,12 +11022,8 @@ tobago-dropdown.tobago-dropdown-submenu {
tobago-dropdown.tobago-dropdown-submenu:hover {
background-color: #e9ecef;
}
-tobago-dropdown.tobago-dropdown-submenu:hover > .dropdown-menu, tobago-select-many-list tobago-dropdown.tobago-dropdown-submenu:hover > .tobago-options.tobago-dropdown-menu, tobago-select-one-list tobago-dropdown.tobago-dropdown-submenu:hover > .tobago-options.tobago-dropdown-menu {
+tobago-dropdown.tobago-dropdown-submenu:hover > .tobago-dropdown-menu:not(.tobago-disabled) {
display: block;
- top: 0;
- left: 100%;
- margin-top: -0.5rem;
- margin-left: -1px;
}
tobago-dropdown.tobago-dropdown-submenu > .dropdown-item::after {
content: " ";
@@ -11083,6 +11035,12 @@ tobago-dropdown.tobago-dropdown-submenu > .dropdown-item::after {
margin-top: 7px;
margin-right: -10px;
}
+tobago-dropdown.tobago-dropdown-submenu > .tobago-dropdown-menu {
+ top: 0;
+ left: 100%;
+ margin-top: -0.5rem;
+ margin-left: -1px;
+}
tobago-file {
display: block;
@@ -11759,7 +11717,7 @@ tobago-messages .alert.alert-dismissible.alert-info:before {
border-bottom: #dddddd;
}
-.dropdown-menu .form-check, tobago-select-many-list .tobago-options.tobago-dropdown-menu .form-check, tobago-select-one-list .tobago-options.tobago-dropdown-menu .form-check {
+.tobago-dropdown-menu .form-check {
display: block;
}
@@ -11826,7 +11784,6 @@ tobago-page {
overflow-y: auto;
}
-/* menuStore -------------------------------------------------------- */
.tobago-page-menuStore {
position: absolute;
top: 0;
@@ -11835,13 +11792,20 @@ tobago-page {
height: 0;
z-index: 1070;
}
-.tobago-page-menuStore .dropdown-menu .form-check, .tobago-page-menuStore tobago-select-many-list .tobago-options.tobago-dropdown-menu .form-check, tobago-select-many-list .tobago-page-menuStore .tobago-options.tobago-dropdown-menu .form-check, .tobago-page-menuStore tobago-select-one-list .tobago-options.tobago-dropdown-menu .form-check, tobago-select-one-list .tobago-page-menuStore .tobago-options.tobago-dropdown-menu .form-check {
+.tobago-page-menuStore .tobago-dropdown-menu {
+ /* Use .tobago-dropdown-menu instead of .dropdown-menu to prevent Bootstrap from creating a dropdown instance.
+ This leads to javascript error if arrow up/down is pressed. */
+}
+.tobago-page-menuStore .tobago-dropdown-menu .form-check {
/* move form-check components to the right, so checkbox/radio buttons are inside dropdown-menu */
padding-left: 2.5em;
}
-.tobago-page-menuStore .dropdown-menu .form-check.form-switch, .tobago-page-menuStore tobago-select-many-list .tobago-options.tobago-dropdown-menu .form-check.form-switch, tobago-select-many-list .tobago-page-menuStore .tobago-options.tobago-dropdown-menu .form-check.form-switch, .tobago-page-menuStore tobago-select-one-list .tobago-options.tobago-dropdown-menu .form-check.form-switch, tobago-select-one-list .tobago-page-menuStore .tobago-options.tobago-dropdown-menu .form-check.form-switch {
+.tobago-page-menuStore .tobago-dropdown-menu .form-check.form-switch {
padding-left: 3.5em;
}
+.tobago-page-menuStore .tobago-dropdown-menu label[for] {
+ width: 100%;
+}
/* panel ------------------------------------------------------------- */
tobago-panel {
diff --git a/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.css.map b/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.css.map
index 494cc03669..06f4aaf464 100644
--- a/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.css.map
+++ b/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.css.map
@@ -1 +1 @@
-{"version":3,"sources":["tobago.css","../scss/tobago-theme.scss","../scss/_custom.scss","../../../../node_modules/bootstrap/scss/mixins/_banner.scss","../../../../node_modules/bootstrap/scss/_root.scss","../../../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../../../node_modules/bootstrap/scss/_type.s [...]
\ No newline at end of file
+{"version":3,"sources":["tobago.css","../scss/tobago-theme.scss","../scss/_custom.scss","../../../../node_modules/bootstrap/scss/mixins/_banner.scss","../../../../node_modules/bootstrap/scss/_root.scss","../../../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../../../node_modules/bootstrap/scss/_type.s [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.min.css b/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.min.css
index eb00718a22..331922ef9f 100644
--- a/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.min.css
+++ b/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.min.css
@@ -1,2 +1,2 @@
-@charset "UTF-8";:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-prima [...]
+@charset "UTF-8";:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-prima [...]
/*# sourceMappingURL=tobago.min.css.map */
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.min.css.map b/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.min.css.map
index a054308386..243cb03dd4 100644
--- a/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.min.css.map
+++ b/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["tobago-theme-scarborough/src/main/css/tobago.css"],"names":[],"mappings":"iBAyCA,MACE,UAAW,QACX,YAAa,QACb,YAAa,QACb,UAAW,QACX,SAAU,QACV,YAAa,QACb,YAAa,QACb,WAAY,QACZ,UAAW,QACX,UAAW,QACX,WAAY,KACZ,WAAY,KACZ,UAAW,QACX,eAAgB,QAChB,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,aAAc,QACd,eAAgB,QAChB,aAAc,QACd,UAAW,QACX,aAAc,QACd,YAAa,QACb,WAAY,QACZ,UAAW,QACX,iBAAkB,EAAE,CAAE,GAAG,CAAE,IAC3B,mBAAoB,GAAG,CAAE,GAAG,CAAE,IAC9B,i [...]
\ No newline at end of file
+{"version":3,"sources":["tobago-theme-scarborough/src/main/css/tobago.css"],"names":[],"mappings":"iBAyCA,MACE,UAAW,QACX,YAAa,QACb,YAAa,QACb,UAAW,QACX,SAAU,QACV,YAAa,QACb,YAAa,QACb,WAAY,QACZ,UAAW,QACX,UAAW,QACX,WAAY,KACZ,WAAY,KACZ,UAAW,QACX,eAAgB,QAChB,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,aAAc,QACd,eAAgB,QAChB,aAAc,QACd,UAAW,QACX,aAAc,QACd,YAAa,QACb,WAAY,QACZ,UAAW,QACX,iBAAkB,EAAE,CAAE,GAAG,CAAE,IAC3B,mBAAoB,GAAG,CAAE,GAAG,CAAE,IAC9B,i [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-speyside/src/main/css/tobago.css b/tobago-theme/tobago-theme-speyside/src/main/css/tobago.css
index bb6bd7a4f5..46d583002f 100644
--- a/tobago-theme/tobago-theme-speyside/src/main/css/tobago.css
+++ b/tobago-theme/tobago-theme-speyside/src/main/css/tobago.css
@@ -3198,7 +3198,7 @@ textarea.form-control-lg {
margin-left: 0;
}
-.dropdown-menu, tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .tobago-options.tobago-dropdown-menu {
+.dropdown-menu, tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .tobago-options.tobago-dropdown-menu, .tobago-page-menuStore .tobago-dropdown-menu, tobago-dropdown .tobago-dropdown-menu {
--bs-dropdown-zindex: 1000;
--bs-dropdown-min-width: 10rem;
--bs-dropdown-padding-x: 0;
@@ -3239,7 +3239,7 @@ textarea.form-control-lg {
background-clip: padding-box;
border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);
}
-.dropdown-menu[data-bs-popper], tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu {
+.dropdown-menu[data-bs-popper], tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, .tobago-page-menuStore [data-bs-popper].tobago-dropdown-menu, tobago-dropdown [data-bs-popper].tobago-dropdown-menu {
top: 100%;
left: 0;
margin-top: var(--bs-dropdown-spacer);
@@ -3341,7 +3341,7 @@ textarea.form-control-lg {
left: auto;
}
}
-.dropup .dropdown-menu[data-bs-popper], .dropup tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-many-list .dropup [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropup tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list .dropup [data-bs-popper].tobago-options.tobago-dropdown-menu {
+.dropup .dropdown-menu[data-bs-popper], .dropup tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-many-list .dropup [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropup tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list .dropup [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropup .tobago-page-menuStore [data-bs-popper].tobago-dropdown-menu, .tobago-page-menuStore .dropup [data-bs- [...]
top: auto;
bottom: 100%;
margin-top: 0;
@@ -3361,7 +3361,7 @@ textarea.form-control-lg {
margin-left: 0;
}
-.dropend .dropdown-menu[data-bs-popper], .dropend tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-many-list .dropend [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropend tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list .dropend [data-bs-popper].tobago-options.tobago-dropdown-menu {
+.dropend .dropdown-menu[data-bs-popper], .dropend tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-many-list .dropend [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropend tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list .dropend [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropend .tobago-page-menuStore [data-bs-popper].tobago-dropdown-menu, .tobago-page-menuStore .dropend [d [...]
top: 0;
right: auto;
left: 100%;
@@ -3385,7 +3385,7 @@ textarea.form-control-lg {
vertical-align: 0;
}
-.dropstart .dropdown-menu[data-bs-popper], .dropstart tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-many-list .dropstart [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropstart tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list .dropstart [data-bs-popper].tobago-options.tobago-dropdown-menu {
+.dropstart .dropdown-menu[data-bs-popper], .dropstart tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-many-list .dropstart [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropstart tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list .dropstart [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropstart .tobago-page-menuStore [data-bs-popper].tobago-dropdown-menu, .tobago-page-menuStore [...]
top: 0;
right: 100%;
left: auto;
@@ -3453,7 +3453,7 @@ textarea.form-control-lg {
background-color: transparent;
}
-.dropdown-menu.show, tobago-select-many-list .show.tobago-options.tobago-dropdown-menu, tobago-select-one-list .show.tobago-options.tobago-dropdown-menu {
+.dropdown-menu.show, tobago-select-many-list .show.tobago-options.tobago-dropdown-menu, tobago-select-one-list .show.tobago-options.tobago-dropdown-menu, .tobago-page-menuStore .show.tobago-dropdown-menu, tobago-dropdown .show.tobago-dropdown-menu {
display: block;
}
@@ -3627,7 +3627,7 @@ textarea.form-control-lg {
background-color: var(--bs-nav-tabs-link-active-bg);
border-color: var(--bs-nav-tabs-link-active-border-color);
}
-.nav-tabs .dropdown-menu, .nav-tabs tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .nav-tabs .tobago-options.tobago-dropdown-menu, .nav-tabs tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .nav-tabs .tobago-options.tobago-dropdown-menu {
+.nav-tabs .dropdown-menu, .nav-tabs tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .nav-tabs .tobago-options.tobago-dropdown-menu, .nav-tabs tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .nav-tabs .tobago-options.tobago-dropdown-menu, .nav-tabs .tobago-page-menuStore .tobago-dropdown-menu, .tobago-page-menuStore .nav-tabs .tobago-dropdown-menu, .nav-tabs tobago-dropdown .tobago-dropdown-menu, tobago-dropdown .na [...]
margin-top: calc(-1 * var(--bs-nav-tabs-border-width));
}
@@ -3746,7 +3746,7 @@ textarea.form-control-lg {
.navbar-nav .nav-link.active {
color: var(--bs-navbar-active-color);
}
-.navbar-nav .dropdown-menu, .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-nav .tobago-options.tobago-dropdown-menu {
+.navbar-nav .dropdown-menu, .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-nav .tobago-page-menuStore .tobago-dropdown-menu, .tobago-page-menuStore .navbar-nav .tobago-dropdown-menu, .navbar-nav tobago-dropdown .tobago-dropdown-menu, tob [...]
position: static;
}
@@ -3814,7 +3814,7 @@ textarea.form-control-lg {
.navbar-expand-sm .navbar-nav {
flex-direction: row;
}
- .navbar-expand-sm .navbar-nav .dropdown-menu, .navbar-expand-sm .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-sm .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-sm .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-sm .navbar-nav .tobago-options.tobago-dropdown-menu {
+ .navbar-expand-sm .navbar-nav .dropdown-menu, .navbar-expand-sm .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-sm .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-sm .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-sm .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-sm .navbar-nav .tobago-page-menuStore .tobago-dropdown-menu, .t [...]
position: absolute;
}
.navbar-expand-sm .navbar-nav .nav-link {
@@ -3861,7 +3861,7 @@ textarea.form-control-lg {
.navbar-expand-md .navbar-nav {
flex-direction: row;
}
- .navbar-expand-md .navbar-nav .dropdown-menu, .navbar-expand-md .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-md .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-md .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-md .navbar-nav .tobago-options.tobago-dropdown-menu {
+ .navbar-expand-md .navbar-nav .dropdown-menu, .navbar-expand-md .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-md .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-md .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-md .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-md .navbar-nav .tobago-page-menuStore .tobago-dropdown-menu, .t [...]
position: absolute;
}
.navbar-expand-md .navbar-nav .nav-link {
@@ -3908,7 +3908,7 @@ textarea.form-control-lg {
.navbar-expand-lg .navbar-nav {
flex-direction: row;
}
- .navbar-expand-lg .navbar-nav .dropdown-menu, .navbar-expand-lg .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-lg .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-lg .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-lg .navbar-nav .tobago-options.tobago-dropdown-menu {
+ .navbar-expand-lg .navbar-nav .dropdown-menu, .navbar-expand-lg .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-lg .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-lg .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-lg .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-lg .navbar-nav .tobago-page-menuStore .tobago-dropdown-menu, .t [...]
position: absolute;
}
.navbar-expand-lg .navbar-nav .nav-link {
@@ -3955,7 +3955,7 @@ textarea.form-control-lg {
.navbar-expand-xl .navbar-nav {
flex-direction: row;
}
- .navbar-expand-xl .navbar-nav .dropdown-menu, .navbar-expand-xl .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-xl .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-xl .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-xl .navbar-nav .tobago-options.tobago-dropdown-menu {
+ .navbar-expand-xl .navbar-nav .dropdown-menu, .navbar-expand-xl .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-xl .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-xl .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-xl .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-xl .navbar-nav .tobago-page-menuStore .tobago-dropdown-menu, .t [...]
position: absolute;
}
.navbar-expand-xl .navbar-nav .nav-link {
@@ -4002,7 +4002,7 @@ textarea.form-control-lg {
.navbar-expand-xxl .navbar-nav {
flex-direction: row;
}
- .navbar-expand-xxl .navbar-nav .dropdown-menu, .navbar-expand-xxl .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-xxl .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-xxl .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-xxl .navbar-nav .tobago-options.tobago-dropdown-menu {
+ .navbar-expand-xxl .navbar-nav .dropdown-menu, .navbar-expand-xxl .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-xxl .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-xxl .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-xxl .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-xxl .navbar-nav .tobago-page-menuStore .tobago-dropdown-me [...]
position: absolute;
}
.navbar-expand-xxl .navbar-nav .nav-link {
@@ -4048,7 +4048,7 @@ textarea.form-control-lg {
.navbar-expand .navbar-nav {
flex-direction: row;
}
-.navbar-expand .navbar-nav .dropdown-menu, .navbar-expand .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand .navbar-nav .tobago-options.tobago-dropdown-menu {
+.navbar-expand .navbar-nav .dropdown-menu, .navbar-expand .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand .navbar-nav .tobago-page-menuStore .tobago-dropdown-menu, .tobago-page-menuStore [...]
position: absolute;
}
.navbar-expand .navbar-nav .nav-link {
@@ -5849,8 +5849,6 @@ textarea.form-control-lg {
border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(-100%);
}
-}
-@media (max-width: 575.98px) {
.offcanvas-sm.offcanvas-end {
top: 0;
right: 0;
@@ -5858,8 +5856,6 @@ textarea.form-control-lg {
border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(100%);
}
-}
-@media (max-width: 575.98px) {
.offcanvas-sm.offcanvas-top {
top: 0;
right: 0;
@@ -5869,8 +5865,6 @@ textarea.form-control-lg {
border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(-100%);
}
-}
-@media (max-width: 575.98px) {
.offcanvas-sm.offcanvas-bottom {
right: 0;
left: 0;
@@ -5879,13 +5873,9 @@ textarea.form-control-lg {
border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(100%);
}
-}
-@media (max-width: 575.98px) {
.offcanvas-sm.showing, .offcanvas-sm.show:not(.hiding) {
transform: none;
}
-}
-@media (max-width: 575.98px) {
.offcanvas-sm.showing, .offcanvas-sm.hiding, .offcanvas-sm.show {
visibility: visible;
}
@@ -5937,8 +5927,6 @@ textarea.form-control-lg {
border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(-100%);
}
-}
-@media (max-width: 767.98px) {
.offcanvas-md.offcanvas-end {
top: 0;
right: 0;
@@ -5946,8 +5934,6 @@ textarea.form-control-lg {
border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(100%);
}
-}
-@media (max-width: 767.98px) {
.offcanvas-md.offcanvas-top {
top: 0;
right: 0;
@@ -5957,8 +5943,6 @@ textarea.form-control-lg {
border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(-100%);
}
-}
-@media (max-width: 767.98px) {
.offcanvas-md.offcanvas-bottom {
right: 0;
left: 0;
@@ -5967,13 +5951,9 @@ textarea.form-control-lg {
border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(100%);
}
-}
-@media (max-width: 767.98px) {
.offcanvas-md.showing, .offcanvas-md.show:not(.hiding) {
transform: none;
}
-}
-@media (max-width: 767.98px) {
.offcanvas-md.showing, .offcanvas-md.hiding, .offcanvas-md.show {
visibility: visible;
}
@@ -6025,8 +6005,6 @@ textarea.form-control-lg {
border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(-100%);
}
-}
-@media (max-width: 991.98px) {
.offcanvas-lg.offcanvas-end {
top: 0;
right: 0;
@@ -6034,8 +6012,6 @@ textarea.form-control-lg {
border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(100%);
}
-}
-@media (max-width: 991.98px) {
.offcanvas-lg.offcanvas-top {
top: 0;
right: 0;
@@ -6045,8 +6021,6 @@ textarea.form-control-lg {
border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(-100%);
}
-}
-@media (max-width: 991.98px) {
.offcanvas-lg.offcanvas-bottom {
right: 0;
left: 0;
@@ -6055,13 +6029,9 @@ textarea.form-control-lg {
border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(100%);
}
-}
-@media (max-width: 991.98px) {
.offcanvas-lg.showing, .offcanvas-lg.show:not(.hiding) {
transform: none;
}
-}
-@media (max-width: 991.98px) {
.offcanvas-lg.showing, .offcanvas-lg.hiding, .offcanvas-lg.show {
visibility: visible;
}
@@ -6113,8 +6083,6 @@ textarea.form-control-lg {
border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(-100%);
}
-}
-@media (max-width: 1199.98px) {
.offcanvas-xl.offcanvas-end {
top: 0;
right: 0;
@@ -6122,8 +6090,6 @@ textarea.form-control-lg {
border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(100%);
}
-}
-@media (max-width: 1199.98px) {
.offcanvas-xl.offcanvas-top {
top: 0;
right: 0;
@@ -6133,8 +6099,6 @@ textarea.form-control-lg {
border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(-100%);
}
-}
-@media (max-width: 1199.98px) {
.offcanvas-xl.offcanvas-bottom {
right: 0;
left: 0;
@@ -6143,13 +6107,9 @@ textarea.form-control-lg {
border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(100%);
}
-}
-@media (max-width: 1199.98px) {
.offcanvas-xl.showing, .offcanvas-xl.show:not(.hiding) {
transform: none;
}
-}
-@media (max-width: 1199.98px) {
.offcanvas-xl.showing, .offcanvas-xl.hiding, .offcanvas-xl.show {
visibility: visible;
}
@@ -6201,8 +6161,6 @@ textarea.form-control-lg {
border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(-100%);
}
-}
-@media (max-width: 1399.98px) {
.offcanvas-xxl.offcanvas-end {
top: 0;
right: 0;
@@ -6210,8 +6168,6 @@ textarea.form-control-lg {
border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(100%);
}
-}
-@media (max-width: 1399.98px) {
.offcanvas-xxl.offcanvas-top {
top: 0;
right: 0;
@@ -6221,8 +6177,6 @@ textarea.form-control-lg {
border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(-100%);
}
-}
-@media (max-width: 1399.98px) {
.offcanvas-xxl.offcanvas-bottom {
right: 0;
left: 0;
@@ -6231,13 +6185,9 @@ textarea.form-control-lg {
border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(100%);
}
-}
-@media (max-width: 1399.98px) {
.offcanvas-xxl.showing, .offcanvas-xxl.show:not(.hiding) {
transform: none;
}
-}
-@media (max-width: 1399.98px) {
.offcanvas-xxl.showing, .offcanvas-xxl.hiding, .offcanvas-xxl.show {
visibility: visible;
}
@@ -10752,17 +10702,23 @@ tobago-date input::-ms-clear {
display: none;
}
-/* dropdown ------------------------------------------------------- */
tobago-dropdown {
display: inline-block;
}
-tobago-dropdown .dropdown-menu .form-check, tobago-dropdown tobago-select-many-list .tobago-options.tobago-dropdown-menu .form-check, tobago-select-many-list tobago-dropdown .tobago-options.tobago-dropdown-menu .form-check, tobago-dropdown tobago-select-one-list .tobago-options.tobago-dropdown-menu .form-check, tobago-select-one-list tobago-dropdown .tobago-options.tobago-dropdown-menu .form-check {
+tobago-dropdown .tobago-dropdown-menu {
+ /* Use .tobago-dropdown-menu instead of .dropdown-menu to prevent Bootstrap from creating a dropdown instance.
+ This leads to javascript error if arrow up/down is pressed. */
+}
+tobago-dropdown .tobago-dropdown-menu .form-check {
/* move form-check components to the right, so checkbox/radio buttons are inside dropdown-menu */
padding-left: 2.5em;
}
-tobago-dropdown .dropdown-menu .form-check.form-switch, tobago-dropdown tobago-select-many-list .tobago-options.tobago-dropdown-menu .form-check.form-switch, tobago-select-many-list tobago-dropdown .tobago-options.tobago-dropdown-menu .form-check.form-switch, tobago-dropdown tobago-select-one-list .tobago-options.tobago-dropdown-menu .form-check.form-switch, tobago-select-one-list tobago-dropdown .tobago-options.tobago-dropdown-menu .form-check.form-switch {
+tobago-dropdown .tobago-dropdown-menu .form-check.form-switch {
padding-left: 3.5em;
}
+tobago-dropdown .tobago-dropdown-menu label[for] {
+ width: 100%;
+}
tobago-dropdown.tobago-dropdown-submenu {
cursor: pointer;
position: relative;
@@ -10772,12 +10728,8 @@ tobago-dropdown.tobago-dropdown-submenu {
tobago-dropdown.tobago-dropdown-submenu:hover {
background-color: #e3e4e5;
}
-tobago-dropdown.tobago-dropdown-submenu:hover > .dropdown-menu, tobago-select-many-list tobago-dropdown.tobago-dropdown-submenu:hover > .tobago-options.tobago-dropdown-menu, tobago-select-one-list tobago-dropdown.tobago-dropdown-submenu:hover > .tobago-options.tobago-dropdown-menu {
+tobago-dropdown.tobago-dropdown-submenu:hover > .tobago-dropdown-menu:not(.tobago-disabled) {
display: block;
- top: 0;
- left: 100%;
- margin-top: -0.5rem;
- margin-left: -1px;
}
tobago-dropdown.tobago-dropdown-submenu > .dropdown-item::after {
content: " ";
@@ -10789,6 +10741,12 @@ tobago-dropdown.tobago-dropdown-submenu > .dropdown-item::after {
margin-top: 7px;
margin-right: -10px;
}
+tobago-dropdown.tobago-dropdown-submenu > .tobago-dropdown-menu {
+ top: 0;
+ left: 100%;
+ margin-top: -0.5rem;
+ margin-left: -1px;
+}
tobago-file {
display: block;
@@ -11460,7 +11418,7 @@ tobago-messages .alert.alert-dismissible.alert-info:before {
border-bottom: #dddddd;
}
-.dropdown-menu .form-check, tobago-select-many-list .tobago-options.tobago-dropdown-menu .form-check, tobago-select-one-list .tobago-options.tobago-dropdown-menu .form-check {
+.tobago-dropdown-menu .form-check {
display: block;
}
@@ -11527,7 +11485,6 @@ tobago-page {
overflow-y: auto;
}
-/* menuStore -------------------------------------------------------- */
.tobago-page-menuStore {
position: absolute;
top: 0;
@@ -11536,13 +11493,20 @@ tobago-page {
height: 0;
z-index: 1070;
}
-.tobago-page-menuStore .dropdown-menu .form-check, .tobago-page-menuStore tobago-select-many-list .tobago-options.tobago-dropdown-menu .form-check, tobago-select-many-list .tobago-page-menuStore .tobago-options.tobago-dropdown-menu .form-check, .tobago-page-menuStore tobago-select-one-list .tobago-options.tobago-dropdown-menu .form-check, tobago-select-one-list .tobago-page-menuStore .tobago-options.tobago-dropdown-menu .form-check {
+.tobago-page-menuStore .tobago-dropdown-menu {
+ /* Use .tobago-dropdown-menu instead of .dropdown-menu to prevent Bootstrap from creating a dropdown instance.
+ This leads to javascript error if arrow up/down is pressed. */
+}
+.tobago-page-menuStore .tobago-dropdown-menu .form-check {
/* move form-check components to the right, so checkbox/radio buttons are inside dropdown-menu */
padding-left: 2.5em;
}
-.tobago-page-menuStore .dropdown-menu .form-check.form-switch, .tobago-page-menuStore tobago-select-many-list .tobago-options.tobago-dropdown-menu .form-check.form-switch, tobago-select-many-list .tobago-page-menuStore .tobago-options.tobago-dropdown-menu .form-check.form-switch, .tobago-page-menuStore tobago-select-one-list .tobago-options.tobago-dropdown-menu .form-check.form-switch, tobago-select-one-list .tobago-page-menuStore .tobago-options.tobago-dropdown-menu .form-check.form-switch {
+.tobago-page-menuStore .tobago-dropdown-menu .form-check.form-switch {
padding-left: 3.5em;
}
+.tobago-page-menuStore .tobago-dropdown-menu label[for] {
+ width: 100%;
+}
/* panel ------------------------------------------------------------- */
tobago-panel {
@@ -12745,7 +12709,7 @@ tobago-header.sticky-top a[disabled], tobago-header.sticky-top a[disabled]:hover
font-weight: bold;
}
-.navbar .nav-item.dropdown > .dropdown-menu, .navbar tobago-select-one-list .nav-item.dropdown > .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar .nav-item.dropdown > .tobago-options.tobago-dropdown-menu, .navbar tobago-select-many-list .nav-item.dropdown > .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar .nav-item.dropdown > .tobago-options.tobago-dropdown-menu, .navbar .tobago-dropdown-submenu > .dropdown-menu, .navbar tobago-select-one-list .to [...]
+.navbar .nav-item.dropdown > .dropdown-menu, .navbar tobago-dropdown .nav-item.dropdown > .tobago-dropdown-menu, tobago-dropdown .navbar .nav-item.dropdown > .tobago-dropdown-menu, .navbar .tobago-page-menuStore .nav-item.dropdown > .tobago-dropdown-menu, .tobago-page-menuStore .navbar .nav-item.dropdown > .tobago-dropdown-menu, .navbar tobago-select-one-list .nav-item.dropdown > .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar .nav-item.dropdown > .tobago-options.tob [...]
border: 0;
background: #e3e4e5;
margin-top: 0;
@@ -12902,7 +12866,7 @@ tobago-header.sticky-top a[disabled], tobago-header.sticky-top a[disabled]:hover
tobago-header.sticky-top .nav-item.dropdown > button.dropdown-toggle:hover, tobago-header.sticky-top .nav-item.dropdown > button.dropdown-toggle:focus {
color: #d90;
}
- tobago-header.sticky-top .nav-item.dropdown > .dropdown-menu, tobago-header.sticky-top tobago-select-one-list .nav-item.dropdown > .tobago-options.tobago-dropdown-menu, tobago-select-one-list tobago-header.sticky-top .nav-item.dropdown > .tobago-options.tobago-dropdown-menu, tobago-header.sticky-top tobago-select-many-list .nav-item.dropdown > .tobago-options.tobago-dropdown-menu, tobago-select-many-list tobago-header.sticky-top .nav-item.dropdown > .tobago-options.tobago-dropdown-menu {
+ tobago-header.sticky-top .nav-item.dropdown > .dropdown-menu, tobago-header.sticky-top tobago-dropdown .nav-item.dropdown > .tobago-dropdown-menu, tobago-dropdown tobago-header.sticky-top .nav-item.dropdown > .tobago-dropdown-menu, tobago-header.sticky-top .tobago-page-menuStore .nav-item.dropdown > .tobago-dropdown-menu, .tobago-page-menuStore tobago-header.sticky-top .nav-item.dropdown > .tobago-dropdown-menu, tobago-header.sticky-top tobago-select-one-list .nav-item.dropdown > .toba [...]
position: fixed;
width: 100%;
top: auto;
@@ -12912,7 +12876,7 @@ tobago-header.sticky-top a[disabled], tobago-header.sticky-top a[disabled]:hover
line-height: initial;
padding: 0 10% 1em 10%;
}
- tobago-header.sticky-top .nav-item.dropdown > .dropdown-menu > .dropdown-item, tobago-header.sticky-top tobago-select-one-list .nav-item.dropdown > .tobago-options.tobago-dropdown-menu > .dropdown-item, tobago-select-one-list tobago-header.sticky-top .nav-item.dropdown > .tobago-options.tobago-dropdown-menu > .dropdown-item, tobago-header.sticky-top tobago-select-many-list .nav-item.dropdown > .tobago-options.tobago-dropdown-menu > .dropdown-item, tobago-select-many-list tobago-header. [...]
+ tobago-header.sticky-top .nav-item.dropdown > .dropdown-menu > .dropdown-item, tobago-header.sticky-top tobago-dropdown .nav-item.dropdown > .tobago-dropdown-menu > .dropdown-item, tobago-dropdown tobago-header.sticky-top .nav-item.dropdown > .tobago-dropdown-menu > .dropdown-item, tobago-header.sticky-top .tobago-page-menuStore .nav-item.dropdown > .tobago-dropdown-menu > .dropdown-item, .tobago-page-menuStore tobago-header.sticky-top .nav-item.dropdown > .tobago-dropdown-menu > .drop [...]
display: inline-block;
font-size: 1.3em;
width: calc(25% - 3px);
@@ -12920,7 +12884,7 @@ tobago-header.sticky-top a[disabled], tobago-header.sticky-top a[disabled]:hover
vertical-align: top;
padding-top: 1em;
}
- tobago-header.sticky-top .nav-item.dropdown > .dropdown-menu > .dropdown-item > a, tobago-header.sticky-top tobago-select-one-list .nav-item.dropdown > .tobago-options.tobago-dropdown-menu > .dropdown-item > a, tobago-select-one-list tobago-header.sticky-top .nav-item.dropdown > .tobago-options.tobago-dropdown-menu > .dropdown-item > a, tobago-header.sticky-top tobago-select-many-list .nav-item.dropdown > .tobago-options.tobago-dropdown-menu > .dropdown-item > a, tobago-select-many-lis [...]
+ tobago-header.sticky-top .nav-item.dropdown > .dropdown-menu > .dropdown-item > a, tobago-header.sticky-top tobago-dropdown .nav-item.dropdown > .tobago-dropdown-menu > .dropdown-item > a, tobago-dropdown tobago-header.sticky-top .nav-item.dropdown > .tobago-dropdown-menu > .dropdown-item > a, tobago-header.sticky-top .tobago-page-menuStore .nav-item.dropdown > .tobago-dropdown-menu > .dropdown-item > a, .tobago-page-menuStore tobago-header.sticky-top .nav-item.dropdown > .tobago-dropd [...]
margin-bottom: 0.5em;
}
tobago-header.sticky-top .navbar-nav > .nav-item.dropdown > .dropdown-toggle {
@@ -12938,30 +12902,30 @@ tobago-header.sticky-top a[disabled], tobago-header.sticky-top a[disabled]:hover
tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item {
display: block;
}
- tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item > .dropdown-menu, tobago-header.sticky-top tobago-select-one-list .tobago-dropdown-submenu.dropdown-item > .tobago-options.tobago-dropdown-menu, tobago-select-one-list tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item > .tobago-options.tobago-dropdown-menu, tobago-header.sticky-top tobago-select-many-list .tobago-dropdown-submenu.dropdown-item > .tobago-options.tobago-dropdown-menu, tobago-select-many-list to [...]
+ tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item > .dropdown-menu, tobago-header.sticky-top tobago-dropdown .tobago-dropdown-submenu.dropdown-item > .tobago-dropdown-menu, tobago-dropdown tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item > .tobago-dropdown-menu, tobago-header.sticky-top .tobago-page-menuStore .tobago-dropdown-submenu.dropdown-item > .tobago-dropdown-menu, .tobago-page-menuStore tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item [...]
display: block;
border-radius: 0;
position: static;
float: none;
padding: 0;
}
- tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item > .dropdown-menu .dropdown-item, tobago-header.sticky-top tobago-select-one-list .tobago-dropdown-submenu.dropdown-item > .tobago-options.tobago-dropdown-menu .dropdown-item, tobago-select-one-list tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item > .tobago-options.tobago-dropdown-menu .dropdown-item, tobago-header.sticky-top tobago-select-many-list .tobago-dropdown-submenu.dropdown-item > .tobago-options.tob [...]
+ tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item > .dropdown-menu .dropdown-item, tobago-header.sticky-top tobago-dropdown .tobago-dropdown-submenu.dropdown-item > .tobago-dropdown-menu .dropdown-item, tobago-dropdown tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item > .tobago-dropdown-menu .dropdown-item, tobago-header.sticky-top .tobago-page-menuStore .tobago-dropdown-submenu.dropdown-item > .tobago-dropdown-menu .dropdown-item, .tobago-page-menuStore tob [...]
padding-left: 0;
}
- tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item > .dropdown-menu .dropdown-item::before, tobago-header.sticky-top tobago-select-one-list .tobago-dropdown-submenu.dropdown-item > .tobago-options.tobago-dropdown-menu .dropdown-item::before, tobago-select-one-list tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item > .tobago-options.tobago-dropdown-menu .dropdown-item::before, tobago-header.sticky-top tobago-select-many-list .tobago-dropdown-submenu.dropdown-it [...]
+ tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item > .dropdown-menu .dropdown-item::before, tobago-header.sticky-top tobago-dropdown .tobago-dropdown-submenu.dropdown-item > .tobago-dropdown-menu .dropdown-item::before, tobago-dropdown tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item > .tobago-dropdown-menu .dropdown-item::before, tobago-header.sticky-top .tobago-page-menuStore .tobago-dropdown-submenu.dropdown-item > .tobago-dropdown-menu .dropdown-item::be [...]
content: "> ";
position: relative;
vertical-align: top;
}
- tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item > .dropdown-menu .custom-radio > .dropdown-item, tobago-header.sticky-top tobago-select-one-list .tobago-dropdown-submenu.dropdown-item > .tobago-options.tobago-dropdown-menu .custom-radio > .dropdown-item, tobago-select-one-list tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item > .tobago-options.tobago-dropdown-menu .custom-radio > .dropdown-item, tobago-header.sticky-top tobago-select-many-list .tobago-drop [...]
+ tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item > .dropdown-menu .custom-radio > .dropdown-item, tobago-header.sticky-top tobago-dropdown .tobago-dropdown-submenu.dropdown-item > .tobago-dropdown-menu .custom-radio > .dropdown-item, tobago-dropdown tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item > .tobago-dropdown-menu .custom-radio > .dropdown-item, tobago-header.sticky-top .tobago-page-menuStore .tobago-dropdown-submenu.dropdown-item > .tobago-dropdown [...]
padding-left: 1.5rem;
}
- tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item > .dropdown-menu .custom-radio > .dropdown-item::before, tobago-header.sticky-top tobago-select-one-list .tobago-dropdown-submenu.dropdown-item > .tobago-options.tobago-dropdown-menu .custom-radio > .dropdown-item::before, tobago-select-one-list tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item > .tobago-options.tobago-dropdown-menu .custom-radio > .dropdown-item::before, tobago-header.sticky-top tobago-selec [...]
+ tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item > .dropdown-menu .custom-radio > .dropdown-item::before, tobago-header.sticky-top tobago-dropdown .tobago-dropdown-submenu.dropdown-item > .tobago-dropdown-menu .custom-radio > .dropdown-item::before, tobago-dropdown tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item > .tobago-dropdown-menu .custom-radio > .dropdown-item::before, tobago-header.sticky-top .tobago-page-menuStore .tobago-dropdown-submenu.dropdown [...]
content: "";
position: absolute;
margin-left: -1.5rem;
}
- tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item > .dropdown-menu .custom-radio > .dropdown-item::after, tobago-header.sticky-top tobago-select-one-list .tobago-dropdown-submenu.dropdown-item > .tobago-options.tobago-dropdown-menu .custom-radio > .dropdown-item::after, tobago-select-one-list tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item > .tobago-options.tobago-dropdown-menu .custom-radio > .dropdown-item::after, tobago-header.sticky-top tobago-select-m [...]
+ tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item > .dropdown-menu .custom-radio > .dropdown-item::after, tobago-header.sticky-top tobago-dropdown .tobago-dropdown-submenu.dropdown-item > .tobago-dropdown-menu .custom-radio > .dropdown-item::after, tobago-dropdown tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item > .tobago-dropdown-menu .custom-radio > .dropdown-item::after, tobago-header.sticky-top .tobago-page-menuStore .tobago-dropdown-submenu.dropdown-it [...]
left: 0;
}
tobago-header.sticky-top .tobago-dropdown-submenu::after {
@@ -13287,14 +13251,14 @@ li:last-child {
background: #f7f7f7;
}
-.tobago-dropdown-submenu > .dropdown-menu, tobago-select-one-list .tobago-dropdown-submenu > .tobago-options.tobago-dropdown-menu, tobago-select-many-list .tobago-dropdown-submenu > .tobago-options.tobago-dropdown-menu {
+.tobago-dropdown-submenu > .dropdown-menu, tobago-dropdown .tobago-dropdown-submenu > .tobago-dropdown-menu, .tobago-page-menuStore .tobago-dropdown-submenu > .tobago-dropdown-menu, tobago-select-one-list .tobago-dropdown-submenu > .tobago-options.tobago-dropdown-menu, tobago-select-many-list .tobago-dropdown-submenu > .tobago-options.tobago-dropdown-menu {
border-radius: 0;
}
-.dropdown-menu, tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .tobago-options.tobago-dropdown-menu {
+.dropdown-menu, tobago-dropdown .tobago-dropdown-menu, .tobago-page-menuStore .tobago-dropdown-menu, tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .tobago-options.tobago-dropdown-menu {
border-radius: 0;
}
-.dropdown-menu .tobago-selectBooleanCheckbox .form-check-label, tobago-select-one-list .tobago-options.tobago-dropdown-menu .tobago-selectBooleanCheckbox .form-check-label, tobago-select-many-list .tobago-options.tobago-dropdown-menu .tobago-selectBooleanCheckbox .form-check-label, .dropdown-menu .tobago-selectManyCheckbox .form-check-label, tobago-select-one-list .tobago-options.tobago-dropdown-menu .tobago-selectManyCheckbox .form-check-label, tobago-select-many-list .tobago-options.to [...]
+.dropdown-menu .tobago-selectBooleanCheckbox .form-check-label, tobago-dropdown .tobago-dropdown-menu .tobago-selectBooleanCheckbox .form-check-label, .tobago-page-menuStore .tobago-dropdown-menu .tobago-selectBooleanCheckbox .form-check-label, tobago-select-one-list .tobago-options.tobago-dropdown-menu .tobago-selectBooleanCheckbox .form-check-label, tobago-select-many-list .tobago-options.tobago-dropdown-menu .tobago-selectBooleanCheckbox .form-check-label, .dropdown-menu .tobago-selec [...]
padding-left: 1rem;
}
diff --git a/tobago-theme/tobago-theme-speyside/src/main/css/tobago.css.map b/tobago-theme/tobago-theme-speyside/src/main/css/tobago.css.map
index 7c3abda50b..979310df26 100644
--- a/tobago-theme/tobago-theme-speyside/src/main/css/tobago.css.map
+++ b/tobago-theme/tobago-theme-speyside/src/main/css/tobago.css.map
@@ -1 +1 @@
-{"version":3,"sources":["tobago.css","../scss/tobago-theme.scss","../scss/_custom.scss","../../../../node_modules/bootstrap/scss/mixins/_banner.scss","../../../../node_modules/bootstrap/scss/_root.scss","../../../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/_type.scss","../../../../node_modules/bootstrap/scss/mixins/_lists.scss",".. [...]
\ No newline at end of file
+{"version":3,"sources":["tobago.css","../scss/tobago-theme.scss","../scss/_custom.scss","../../../../node_modules/bootstrap/scss/mixins/_banner.scss","../../../../node_modules/bootstrap/scss/_root.scss","../../../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/_type.scss","../../../../node_modules/bootstrap/scss/mixins/_lists.scss",".. [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-speyside/src/main/css/tobago.min.css b/tobago-theme/tobago-theme-speyside/src/main/css/tobago.min.css
index 428a0fdaf2..83febcee58 100644
--- a/tobago-theme/tobago-theme-speyside/src/main/css/tobago.min.css
+++ b/tobago-theme/tobago-theme-speyside/src/main/css/tobago.min.css
@@ -1,2 +1,2 @@
-@charset "UTF-8";:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:rgb(58, 37, 100);--bs-pink:#d63384;--bs-red:rgb(211, 0, 64);--bs-orange:#d90;--bs-yellow:#ffc107;--bs-green:rgb(29, 163, 50);--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:rgb(120, 140, 148);--bs-gray-dark:#323232;--bs-gray-100:#f7f7f7;--bs-gray-200:#e3e4e5;--bs-gray-300:#d7d7d7;--bs-gray-400:#ced4da;--bs-gray-500:#acacac;--bs-gray-600:rgb(120, 140, 148);--bs-gray-700:#55595c;--bs-gray [...]
+@charset "UTF-8";:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:rgb(58, 37, 100);--bs-pink:#d63384;--bs-red:rgb(211, 0, 64);--bs-orange:#d90;--bs-yellow:#ffc107;--bs-green:rgb(29, 163, 50);--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:rgb(120, 140, 148);--bs-gray-dark:#323232;--bs-gray-100:#f7f7f7;--bs-gray-200:#e3e4e5;--bs-gray-300:#d7d7d7;--bs-gray-400:#ced4da;--bs-gray-500:#acacac;--bs-gray-600:rgb(120, 140, 148);--bs-gray-700:#55595c;--bs-gray [...]
/*# sourceMappingURL=tobago.min.css.map */
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-speyside/src/main/css/tobago.min.css.map b/tobago-theme/tobago-theme-speyside/src/main/css/tobago.min.css.map
index b8ba65f488..37b6abacc7 100644
--- a/tobago-theme/tobago-theme-speyside/src/main/css/tobago.min.css.map
+++ b/tobago-theme/tobago-theme-speyside/src/main/css/tobago.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["tobago-theme-speyside/src/main/css/tobago.css"],"names":[],"mappings":"iBAuCA,MACE,UAAW,QACX,YAAa,QACb,YAAa,iBACb,UAAW,QACX,SAAU,gBACV,YAAa,KACb,YAAa,QACb,WAAY,iBACZ,UAAW,QACX,UAAW,QACX,WAAY,KACZ,WAAY,KACZ,UAAW,mBACX,eAAgB,QAChB,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,mBACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,aAAc,gBACd,eAAgB,QAChB,aAAc,iBACd,UAAW,QACX,aAAc,QACd,YAAa,gBACb,WAAY,QACZ,UAAW,QACX,iBAAkB,EAAE,CAAE,EAAE,CAAE,GAC1B,mBAAoB,GAAG,CAAE,GAAG,CAAE,IA [...]
\ No newline at end of file
+{"version":3,"sources":["tobago-theme-speyside/src/main/css/tobago.css"],"names":[],"mappings":"iBAuCA,MACE,UAAW,QACX,YAAa,QACb,YAAa,iBACb,UAAW,QACX,SAAU,gBACV,YAAa,KACb,YAAa,QACb,WAAY,iBACZ,UAAW,QACX,UAAW,QACX,WAAY,KACZ,WAAY,KACZ,UAAW,mBACX,eAAgB,QAChB,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,mBACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,aAAc,gBACd,eAAgB,QAChB,aAAc,iBACd,UAAW,QACX,aAAc,QACd,YAAa,gBACb,WAAY,QACZ,UAAW,QACX,iBAAkB,EAAE,CAAE,EAAE,CAAE,GAC1B,mBAAoB,GAAG,CAAE,GAAG,CAAE,IA [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-standard/src/main/css/tobago.css b/tobago-theme/tobago-theme-standard/src/main/css/tobago.css
index 407ba4f7c2..ca95133690 100644
--- a/tobago-theme/tobago-theme-standard/src/main/css/tobago.css
+++ b/tobago-theme/tobago-theme-standard/src/main/css/tobago.css
@@ -3225,7 +3225,7 @@ textarea.form-control-lg {
margin-left: 0;
}
-.dropdown-menu, tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .tobago-options.tobago-dropdown-menu {
+.dropdown-menu, tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .tobago-options.tobago-dropdown-menu, .tobago-page-menuStore .tobago-dropdown-menu, tobago-dropdown .tobago-dropdown-menu {
--bs-dropdown-zindex: 1000;
--bs-dropdown-min-width: 10rem;
--bs-dropdown-padding-x: 0;
@@ -3267,7 +3267,7 @@ textarea.form-control-lg {
border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);
border-radius: var(--bs-dropdown-border-radius);
}
-.dropdown-menu[data-bs-popper], tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu {
+.dropdown-menu[data-bs-popper], tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, .tobago-page-menuStore [data-bs-popper].tobago-dropdown-menu, tobago-dropdown [data-bs-popper].tobago-dropdown-menu {
top: 100%;
left: 0;
margin-top: var(--bs-dropdown-spacer);
@@ -3369,7 +3369,7 @@ textarea.form-control-lg {
left: auto;
}
}
-.dropup .dropdown-menu[data-bs-popper], .dropup tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-many-list .dropup [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropup tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list .dropup [data-bs-popper].tobago-options.tobago-dropdown-menu {
+.dropup .dropdown-menu[data-bs-popper], .dropup tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-many-list .dropup [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropup tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list .dropup [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropup .tobago-page-menuStore [data-bs-popper].tobago-dropdown-menu, .tobago-page-menuStore .dropup [data-bs- [...]
top: auto;
bottom: 100%;
margin-top: 0;
@@ -3389,7 +3389,7 @@ textarea.form-control-lg {
margin-left: 0;
}
-.dropend .dropdown-menu[data-bs-popper], .dropend tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-many-list .dropend [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropend tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list .dropend [data-bs-popper].tobago-options.tobago-dropdown-menu {
+.dropend .dropdown-menu[data-bs-popper], .dropend tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-many-list .dropend [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropend tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list .dropend [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropend .tobago-page-menuStore [data-bs-popper].tobago-dropdown-menu, .tobago-page-menuStore .dropend [d [...]
top: 0;
right: auto;
left: 100%;
@@ -3413,7 +3413,7 @@ textarea.form-control-lg {
vertical-align: 0;
}
-.dropstart .dropdown-menu[data-bs-popper], .dropstart tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-many-list .dropstart [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropstart tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list .dropstart [data-bs-popper].tobago-options.tobago-dropdown-menu {
+.dropstart .dropdown-menu[data-bs-popper], .dropstart tobago-select-many-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-many-list .dropstart [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropstart tobago-select-one-list [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-select-one-list .dropstart [data-bs-popper].tobago-options.tobago-dropdown-menu, .dropstart .tobago-page-menuStore [data-bs-popper].tobago-dropdown-menu, .tobago-page-menuStore [...]
top: 0;
right: 100%;
left: auto;
@@ -3481,7 +3481,7 @@ textarea.form-control-lg {
background-color: transparent;
}
-.dropdown-menu.show, tobago-select-many-list .show.tobago-options.tobago-dropdown-menu, tobago-select-one-list .show.tobago-options.tobago-dropdown-menu {
+.dropdown-menu.show, tobago-select-many-list .show.tobago-options.tobago-dropdown-menu, tobago-select-one-list .show.tobago-options.tobago-dropdown-menu, .tobago-page-menuStore .show.tobago-dropdown-menu, tobago-dropdown .show.tobago-dropdown-menu {
display: block;
}
@@ -3684,7 +3684,7 @@ textarea.form-control-lg {
background-color: var(--bs-nav-tabs-link-active-bg);
border-color: var(--bs-nav-tabs-link-active-border-color);
}
-.nav-tabs .dropdown-menu, .nav-tabs tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .nav-tabs .tobago-options.tobago-dropdown-menu, .nav-tabs tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .nav-tabs .tobago-options.tobago-dropdown-menu {
+.nav-tabs .dropdown-menu, .nav-tabs tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .nav-tabs .tobago-options.tobago-dropdown-menu, .nav-tabs tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .nav-tabs .tobago-options.tobago-dropdown-menu, .nav-tabs .tobago-page-menuStore .tobago-dropdown-menu, .tobago-page-menuStore .nav-tabs .tobago-dropdown-menu, .nav-tabs tobago-dropdown .tobago-dropdown-menu, tobago-dropdown .na [...]
margin-top: calc(-1 * var(--bs-nav-tabs-border-width));
border-top-left-radius: 0;
border-top-right-radius: 0;
@@ -3806,7 +3806,7 @@ textarea.form-control-lg {
.navbar-nav .nav-link.active {
color: var(--bs-navbar-active-color);
}
-.navbar-nav .dropdown-menu, .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-nav .tobago-options.tobago-dropdown-menu {
+.navbar-nav .dropdown-menu, .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-nav .tobago-page-menuStore .tobago-dropdown-menu, .tobago-page-menuStore .navbar-nav .tobago-dropdown-menu, .navbar-nav tobago-dropdown .tobago-dropdown-menu, tob [...]
position: static;
}
@@ -3875,7 +3875,7 @@ textarea.form-control-lg {
.navbar-expand-sm .navbar-nav {
flex-direction: row;
}
- .navbar-expand-sm .navbar-nav .dropdown-menu, .navbar-expand-sm .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-sm .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-sm .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-sm .navbar-nav .tobago-options.tobago-dropdown-menu {
+ .navbar-expand-sm .navbar-nav .dropdown-menu, .navbar-expand-sm .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-sm .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-sm .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-sm .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-sm .navbar-nav .tobago-page-menuStore .tobago-dropdown-menu, .t [...]
position: absolute;
}
.navbar-expand-sm .navbar-nav .nav-link {
@@ -3922,7 +3922,7 @@ textarea.form-control-lg {
.navbar-expand-md .navbar-nav {
flex-direction: row;
}
- .navbar-expand-md .navbar-nav .dropdown-menu, .navbar-expand-md .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-md .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-md .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-md .navbar-nav .tobago-options.tobago-dropdown-menu {
+ .navbar-expand-md .navbar-nav .dropdown-menu, .navbar-expand-md .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-md .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-md .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-md .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-md .navbar-nav .tobago-page-menuStore .tobago-dropdown-menu, .t [...]
position: absolute;
}
.navbar-expand-md .navbar-nav .nav-link {
@@ -3969,7 +3969,7 @@ textarea.form-control-lg {
.navbar-expand-lg .navbar-nav {
flex-direction: row;
}
- .navbar-expand-lg .navbar-nav .dropdown-menu, .navbar-expand-lg .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-lg .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-lg .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-lg .navbar-nav .tobago-options.tobago-dropdown-menu {
+ .navbar-expand-lg .navbar-nav .dropdown-menu, .navbar-expand-lg .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-lg .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-lg .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-lg .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-lg .navbar-nav .tobago-page-menuStore .tobago-dropdown-menu, .t [...]
position: absolute;
}
.navbar-expand-lg .navbar-nav .nav-link {
@@ -4016,7 +4016,7 @@ textarea.form-control-lg {
.navbar-expand-xl .navbar-nav {
flex-direction: row;
}
- .navbar-expand-xl .navbar-nav .dropdown-menu, .navbar-expand-xl .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-xl .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-xl .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-xl .navbar-nav .tobago-options.tobago-dropdown-menu {
+ .navbar-expand-xl .navbar-nav .dropdown-menu, .navbar-expand-xl .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-xl .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-xl .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-xl .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-xl .navbar-nav .tobago-page-menuStore .tobago-dropdown-menu, .t [...]
position: absolute;
}
.navbar-expand-xl .navbar-nav .nav-link {
@@ -4063,7 +4063,7 @@ textarea.form-control-lg {
.navbar-expand-xxl .navbar-nav {
flex-direction: row;
}
- .navbar-expand-xxl .navbar-nav .dropdown-menu, .navbar-expand-xxl .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-xxl .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-xxl .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-xxl .navbar-nav .tobago-options.tobago-dropdown-menu {
+ .navbar-expand-xxl .navbar-nav .dropdown-menu, .navbar-expand-xxl .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand-xxl .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-xxl .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand-xxl .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand-xxl .navbar-nav .tobago-page-menuStore .tobago-dropdown-me [...]
position: absolute;
}
.navbar-expand-xxl .navbar-nav .nav-link {
@@ -4109,7 +4109,7 @@ textarea.form-control-lg {
.navbar-expand .navbar-nav {
flex-direction: row;
}
-.navbar-expand .navbar-nav .dropdown-menu, .navbar-expand .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand .navbar-nav .tobago-options.tobago-dropdown-menu {
+.navbar-expand .navbar-nav .dropdown-menu, .navbar-expand .navbar-nav tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-many-list .navbar-expand .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand .navbar-nav tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .navbar-expand .navbar-nav .tobago-options.tobago-dropdown-menu, .navbar-expand .navbar-nav .tobago-page-menuStore .tobago-dropdown-menu, .tobago-page-menuStore [...]
position: absolute;
}
.navbar-expand .navbar-nav .nav-link {
@@ -6103,8 +6103,6 @@ textarea.form-control-lg {
border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(-100%);
}
-}
-@media (max-width: 575.98px) {
.offcanvas-sm.offcanvas-end {
top: 0;
right: 0;
@@ -6112,8 +6110,6 @@ textarea.form-control-lg {
border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(100%);
}
-}
-@media (max-width: 575.98px) {
.offcanvas-sm.offcanvas-top {
top: 0;
right: 0;
@@ -6123,8 +6119,6 @@ textarea.form-control-lg {
border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(-100%);
}
-}
-@media (max-width: 575.98px) {
.offcanvas-sm.offcanvas-bottom {
right: 0;
left: 0;
@@ -6133,13 +6127,9 @@ textarea.form-control-lg {
border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(100%);
}
-}
-@media (max-width: 575.98px) {
.offcanvas-sm.showing, .offcanvas-sm.show:not(.hiding) {
transform: none;
}
-}
-@media (max-width: 575.98px) {
.offcanvas-sm.showing, .offcanvas-sm.hiding, .offcanvas-sm.show {
visibility: visible;
}
@@ -6191,8 +6181,6 @@ textarea.form-control-lg {
border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(-100%);
}
-}
-@media (max-width: 767.98px) {
.offcanvas-md.offcanvas-end {
top: 0;
right: 0;
@@ -6200,8 +6188,6 @@ textarea.form-control-lg {
border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(100%);
}
-}
-@media (max-width: 767.98px) {
.offcanvas-md.offcanvas-top {
top: 0;
right: 0;
@@ -6211,8 +6197,6 @@ textarea.form-control-lg {
border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(-100%);
}
-}
-@media (max-width: 767.98px) {
.offcanvas-md.offcanvas-bottom {
right: 0;
left: 0;
@@ -6221,13 +6205,9 @@ textarea.form-control-lg {
border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(100%);
}
-}
-@media (max-width: 767.98px) {
.offcanvas-md.showing, .offcanvas-md.show:not(.hiding) {
transform: none;
}
-}
-@media (max-width: 767.98px) {
.offcanvas-md.showing, .offcanvas-md.hiding, .offcanvas-md.show {
visibility: visible;
}
@@ -6279,8 +6259,6 @@ textarea.form-control-lg {
border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(-100%);
}
-}
-@media (max-width: 991.98px) {
.offcanvas-lg.offcanvas-end {
top: 0;
right: 0;
@@ -6288,8 +6266,6 @@ textarea.form-control-lg {
border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(100%);
}
-}
-@media (max-width: 991.98px) {
.offcanvas-lg.offcanvas-top {
top: 0;
right: 0;
@@ -6299,8 +6275,6 @@ textarea.form-control-lg {
border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(-100%);
}
-}
-@media (max-width: 991.98px) {
.offcanvas-lg.offcanvas-bottom {
right: 0;
left: 0;
@@ -6309,13 +6283,9 @@ textarea.form-control-lg {
border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(100%);
}
-}
-@media (max-width: 991.98px) {
.offcanvas-lg.showing, .offcanvas-lg.show:not(.hiding) {
transform: none;
}
-}
-@media (max-width: 991.98px) {
.offcanvas-lg.showing, .offcanvas-lg.hiding, .offcanvas-lg.show {
visibility: visible;
}
@@ -6367,8 +6337,6 @@ textarea.form-control-lg {
border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(-100%);
}
-}
-@media (max-width: 1199.98px) {
.offcanvas-xl.offcanvas-end {
top: 0;
right: 0;
@@ -6376,8 +6344,6 @@ textarea.form-control-lg {
border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(100%);
}
-}
-@media (max-width: 1199.98px) {
.offcanvas-xl.offcanvas-top {
top: 0;
right: 0;
@@ -6387,8 +6353,6 @@ textarea.form-control-lg {
border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(-100%);
}
-}
-@media (max-width: 1199.98px) {
.offcanvas-xl.offcanvas-bottom {
right: 0;
left: 0;
@@ -6397,13 +6361,9 @@ textarea.form-control-lg {
border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(100%);
}
-}
-@media (max-width: 1199.98px) {
.offcanvas-xl.showing, .offcanvas-xl.show:not(.hiding) {
transform: none;
}
-}
-@media (max-width: 1199.98px) {
.offcanvas-xl.showing, .offcanvas-xl.hiding, .offcanvas-xl.show {
visibility: visible;
}
@@ -6455,8 +6415,6 @@ textarea.form-control-lg {
border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(-100%);
}
-}
-@media (max-width: 1399.98px) {
.offcanvas-xxl.offcanvas-end {
top: 0;
right: 0;
@@ -6464,8 +6422,6 @@ textarea.form-control-lg {
border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(100%);
}
-}
-@media (max-width: 1399.98px) {
.offcanvas-xxl.offcanvas-top {
top: 0;
right: 0;
@@ -6475,8 +6431,6 @@ textarea.form-control-lg {
border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(-100%);
}
-}
-@media (max-width: 1399.98px) {
.offcanvas-xxl.offcanvas-bottom {
right: 0;
left: 0;
@@ -6485,13 +6439,9 @@ textarea.form-control-lg {
border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(100%);
}
-}
-@media (max-width: 1399.98px) {
.offcanvas-xxl.showing, .offcanvas-xxl.show:not(.hiding) {
transform: none;
}
-}
-@media (max-width: 1399.98px) {
.offcanvas-xxl.showing, .offcanvas-xxl.hiding, .offcanvas-xxl.show {
visibility: visible;
}
@@ -11009,17 +10959,23 @@ tobago-date input::-ms-clear {
display: none;
}
-/* dropdown ------------------------------------------------------- */
tobago-dropdown {
display: inline-block;
}
-tobago-dropdown .dropdown-menu .form-check, tobago-dropdown tobago-select-many-list .tobago-options.tobago-dropdown-menu .form-check, tobago-select-many-list tobago-dropdown .tobago-options.tobago-dropdown-menu .form-check, tobago-dropdown tobago-select-one-list .tobago-options.tobago-dropdown-menu .form-check, tobago-select-one-list tobago-dropdown .tobago-options.tobago-dropdown-menu .form-check {
+tobago-dropdown .tobago-dropdown-menu {
+ /* Use .tobago-dropdown-menu instead of .dropdown-menu to prevent Bootstrap from creating a dropdown instance.
+ This leads to javascript error if arrow up/down is pressed. */
+}
+tobago-dropdown .tobago-dropdown-menu .form-check {
/* move form-check components to the right, so checkbox/radio buttons are inside dropdown-menu */
padding-left: 2.5em;
}
-tobago-dropdown .dropdown-menu .form-check.form-switch, tobago-dropdown tobago-select-many-list .tobago-options.tobago-dropdown-menu .form-check.form-switch, tobago-select-many-list tobago-dropdown .tobago-options.tobago-dropdown-menu .form-check.form-switch, tobago-dropdown tobago-select-one-list .tobago-options.tobago-dropdown-menu .form-check.form-switch, tobago-select-one-list tobago-dropdown .tobago-options.tobago-dropdown-menu .form-check.form-switch {
+tobago-dropdown .tobago-dropdown-menu .form-check.form-switch {
padding-left: 3.5em;
}
+tobago-dropdown .tobago-dropdown-menu label[for] {
+ width: 100%;
+}
tobago-dropdown.tobago-dropdown-submenu {
cursor: pointer;
position: relative;
@@ -11029,12 +10985,8 @@ tobago-dropdown.tobago-dropdown-submenu {
tobago-dropdown.tobago-dropdown-submenu:hover {
background-color: #e9ecef;
}
-tobago-dropdown.tobago-dropdown-submenu:hover > .dropdown-menu, tobago-select-many-list tobago-dropdown.tobago-dropdown-submenu:hover > .tobago-options.tobago-dropdown-menu, tobago-select-one-list tobago-dropdown.tobago-dropdown-submenu:hover > .tobago-options.tobago-dropdown-menu {
+tobago-dropdown.tobago-dropdown-submenu:hover > .tobago-dropdown-menu:not(.tobago-disabled) {
display: block;
- top: 0;
- left: 100%;
- margin-top: -0.5rem;
- margin-left: -1px;
}
tobago-dropdown.tobago-dropdown-submenu > .dropdown-item::after {
content: " ";
@@ -11046,6 +10998,12 @@ tobago-dropdown.tobago-dropdown-submenu > .dropdown-item::after {
margin-top: 7px;
margin-right: -10px;
}
+tobago-dropdown.tobago-dropdown-submenu > .tobago-dropdown-menu {
+ top: 0;
+ left: 100%;
+ margin-top: -0.5rem;
+ margin-left: -1px;
+}
tobago-file {
display: block;
@@ -11722,7 +11680,7 @@ tobago-messages .alert.alert-dismissible.alert-info:before {
border-bottom: #dddddd;
}
-.dropdown-menu .form-check, tobago-select-many-list .tobago-options.tobago-dropdown-menu .form-check, tobago-select-one-list .tobago-options.tobago-dropdown-menu .form-check {
+.tobago-dropdown-menu .form-check {
display: block;
}
@@ -11789,7 +11747,6 @@ tobago-page {
overflow-y: auto;
}
-/* menuStore -------------------------------------------------------- */
.tobago-page-menuStore {
position: absolute;
top: 0;
@@ -11798,13 +11755,20 @@ tobago-page {
height: 0;
z-index: 1070;
}
-.tobago-page-menuStore .dropdown-menu .form-check, .tobago-page-menuStore tobago-select-many-list .tobago-options.tobago-dropdown-menu .form-check, tobago-select-many-list .tobago-page-menuStore .tobago-options.tobago-dropdown-menu .form-check, .tobago-page-menuStore tobago-select-one-list .tobago-options.tobago-dropdown-menu .form-check, tobago-select-one-list .tobago-page-menuStore .tobago-options.tobago-dropdown-menu .form-check {
+.tobago-page-menuStore .tobago-dropdown-menu {
+ /* Use .tobago-dropdown-menu instead of .dropdown-menu to prevent Bootstrap from creating a dropdown instance.
+ This leads to javascript error if arrow up/down is pressed. */
+}
+.tobago-page-menuStore .tobago-dropdown-menu .form-check {
/* move form-check components to the right, so checkbox/radio buttons are inside dropdown-menu */
padding-left: 2.5em;
}
-.tobago-page-menuStore .dropdown-menu .form-check.form-switch, .tobago-page-menuStore tobago-select-many-list .tobago-options.tobago-dropdown-menu .form-check.form-switch, tobago-select-many-list .tobago-page-menuStore .tobago-options.tobago-dropdown-menu .form-check.form-switch, .tobago-page-menuStore tobago-select-one-list .tobago-options.tobago-dropdown-menu .form-check.form-switch, tobago-select-one-list .tobago-page-menuStore .tobago-options.tobago-dropdown-menu .form-check.form-switch {
+.tobago-page-menuStore .tobago-dropdown-menu .form-check.form-switch {
padding-left: 3.5em;
}
+.tobago-page-menuStore .tobago-dropdown-menu label[for] {
+ width: 100%;
+}
/* panel ------------------------------------------------------------- */
tobago-panel {
diff --git a/tobago-theme/tobago-theme-standard/src/main/css/tobago.css.map b/tobago-theme/tobago-theme-standard/src/main/css/tobago.css.map
index dd97e2ea0e..9b0db74f31 100644
--- a/tobago-theme/tobago-theme-standard/src/main/css/tobago.css.map
+++ b/tobago-theme/tobago-theme-standard/src/main/css/tobago.css.map
@@ -1 +1 @@
-{"version":3,"sources":["tobago.css","../scss/tobago-theme.scss","../../../../node_modules/bootstrap/scss/mixins/_banner.scss","../../../../node_modules/bootstrap/scss/_root.scss","../../../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../../../node_modules/bootstrap/scss/_type.scss","../../../../node_ [...]
\ No newline at end of file
+{"version":3,"sources":["tobago.css","../scss/tobago-theme.scss","../../../../node_modules/bootstrap/scss/mixins/_banner.scss","../../../../node_modules/bootstrap/scss/_root.scss","../../../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../../../node_modules/bootstrap/scss/_type.scss","../../../../node_ [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-standard/src/main/css/tobago.min.css b/tobago-theme/tobago-theme-standard/src/main/css/tobago.min.css
index b5f7b0ccf3..36fc522303 100644
--- a/tobago-theme/tobago-theme-standard/src/main/css/tobago.min.css
+++ b/tobago-theme/tobago-theme-standard/src/main/css/tobago.min.css
@@ -1,2 +1,2 @@
-@charset "UTF-8";:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-prima [...]
+@charset "UTF-8";:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-prima [...]
/*# sourceMappingURL=tobago.min.css.map */
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-standard/src/main/css/tobago.min.css.map b/tobago-theme/tobago-theme-standard/src/main/css/tobago.min.css.map
index 029e605a61..c00c693250 100644
--- a/tobago-theme/tobago-theme-standard/src/main/css/tobago.min.css.map
+++ b/tobago-theme/tobago-theme-standard/src/main/css/tobago.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["tobago-theme-standard/src/main/css/tobago.css"],"names":[],"mappings":"iBAuBA,MACE,UAAW,QACX,YAAa,QACb,YAAa,QACb,UAAW,QACX,SAAU,QACV,YAAa,QACb,YAAa,QACb,WAAY,QACZ,UAAW,QACX,UAAW,QACX,WAAY,KACZ,WAAY,KACZ,UAAW,QACX,eAAgB,QAChB,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,aAAc,QACd,eAAgB,QAChB,aAAc,QACd,UAAW,QACX,aAAc,QACd,YAAa,QACb,WAAY,QACZ,UAAW,QACX,iBAAkB,EAAE,CAAE,GAAG,CAAE,IAC3B,mBAAoB,GAAG,CAAE,GAAG,CAAE,IAC9B,iBAA [...]
\ No newline at end of file
+{"version":3,"sources":["tobago-theme-standard/src/main/css/tobago.css"],"names":[],"mappings":"iBAuBA,MACE,UAAW,QACX,YAAa,QACb,YAAa,QACb,UAAW,QACX,SAAU,QACV,YAAa,QACb,YAAa,QACb,WAAY,QACZ,UAAW,QACX,UAAW,QACX,WAAY,KACZ,WAAY,KACZ,UAAW,QACX,eAAgB,QAChB,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,aAAc,QACd,eAAgB,QAChB,aAAc,QACd,UAAW,QACX,aAAc,QACd,YAAa,QACb,WAAY,QACZ,UAAW,QACX,iBAAkB,EAAE,CAAE,GAAG,CAAE,IAC3B,mBAAoB,GAAG,CAAE,GAAG,CAAE,IAC9B,iBAA [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-standard/src/main/js/tobago.js b/tobago-theme/tobago-theme-standard/src/main/js/tobago.js
index e2438923d6..79ffea5f9e 100644
--- a/tobago-theme/tobago-theme-standard/src/main/js/tobago.js
+++ b/tobago-theme/tobago-theme-standard/src/main/js/tobago.js
@@ -1,19 +1,19 @@
-!function(e){"function"==typeof define&&define.amd?define(e):e()}((function(){"use strict";var e;!function(e){e.ACTIVE="active",e.AUTOCOMPLETE="autocomplete",e.AUTOCOMPLETE_INPUT="autocomplete-input",e.COLLAPSE="collapse",e.COLLAPSING="collapsing",e.D_NONE="d-none",e.DISABLED="disabled",e.DROPDOWN_MENU="dropdown-menu",e.FIXED_BOTTOM="fixed-bottom",e.INPUT_GROUP="input-group",e.POSITION_RELATIVE="position-relative",e.SHOW="show",e.TABLE_ACTIVE="table-active",e.TABLE_INFO="table-info",e.TA [...]
+!function(e){"function"==typeof define&&define.amd?define(e):e()}((function(){"use strict";var e;!function(e){e.ACTIVE="active",e.AUTOCOMPLETE="autocomplete",e.AUTOCOMPLETE_INPUT="autocomplete-input",e.COLLAPSE="collapse",e.COLLAPSING="collapsing",e.D_NONE="d-none",e.DISABLED="disabled",e.DROPDOWN="dropdown",e.DROPDOWN_ITEM="dropdown-item",e.DROPDOWN_MENU="dropdown-menu",e.DROPDOWN_MENU_END="dropdown-menu-end",e.FIXED_BOTTOM="fixed-bottom",e.INPUT_GROUP="input-group",e.POSITION_RELATIVE= [...]
/*!
* Bootstrap v5.2.3 (https://getbootstrap.com/)
* Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
-const Be="transitionend",Me=e=>{let t=e.getAttribute("data-bs-target");if(!t||"#"===t){let s=e.getAttribute("href");if(!s||!s.includes("#")&&!s.startsWith("."))return null;s.includes("#")&&!s.startsWith("#")&&(s=`#${s.split("#")[1]}`),t=s&&"#"!==s?s.trim():null}return t},Pe=e=>{const t=Me(e);return t&&document.querySelector(t)?t:null},$e=e=>{const t=Me(e);return t?document.querySelector(t):null},He=e=>{e.dispatchEvent(new Event(Be))},qe=e=>!(!e||"object"!=typeof e)&&(void 0!==e.jquery&&( [...]
+const Me="transitionend",Pe=e=>{let t=e.getAttribute("data-bs-target");if(!t||"#"===t){let s=e.getAttribute("href");if(!s||!s.includes("#")&&!s.startsWith("."))return null;s.includes("#")&&!s.startsWith("#")&&(s=`#${s.split("#")[1]}`),t=s&&"#"!==s?s.trim():null}return t},Be=e=>{const t=Pe(e);return t&&document.querySelector(t)?t:null},$e=e=>{const t=Pe(e);return t?document.querySelector(t):null},He=e=>{e.dispatchEvent(new Event(Me))},qe=e=>!(!e||"object"!=typeof e)&&(void 0!==e.jquery&&( [...]
/**
* @license
* Copyright 2017 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
- */const $n=window,Hn=$n.trustedTypes,qn=Hn?Hn.createPolicy("lit-html",{createHTML:e=>e}):void 0,jn="$lit$",Fn=`lit$${(Math.random()+"").slice(9)}$`,Wn="?"+Fn,zn=`<${Wn}>`,Un=document,Vn=()=>Un.createComment(""),Gn=e=>null===e||"object"!=typeof e&&"function"!=typeof e,Yn=Array.isArray,Xn="[ \t\n\f\r]",Jn=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Kn=/-->/g,Qn=/>/g,Zn=RegExp(`>|${Xn}(?:([^\\s"'>=/]+)(${Xn}*=${Xn}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),eo=/'/g,to=/"/g,so=/ [...]
+ */const qi=window,ji=qi.trustedTypes,Wi=ji?ji.createPolicy("lit-html",{createHTML:e=>e}):void 0,Fi="$lit$",zi=`lit$${(Math.random()+"").slice(9)}$`,Ui="?"+zi,Vi=`<${Ui}>`,Gi=document,Yi=()=>Gi.createComment(""),Xi=e=>null===e||"object"!=typeof e&&"function"!=typeof e,Ji=Array.isArray,Ki="[ \t\n\f\r]",Qi=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Zi=/-->/g,eo=/>/g,to=RegExp(`>|${Ki}(?:([^\\s"'>=/]+)(${Ki}*=${Ki}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),so=/'/g,no=/"/g,io=/ [...]
<button type='button'
class='tobago-button btn btn-secondary badge' aria-label='deselect ${e}'
${s>0?" tabindex='"+String(s)+"'":""}
@click="${this.removeBadge.bind(this)}"
@focus="${this.focusEvent.bind(this)}"
- @blur="${this.blurEvent.bind(this)}"><i class='bi-x-lg'></i></button>`}removeBadge(e){const t=e.target.closest(".btn-group").dataset.tobagoValue,s=this.hiddenSelect.querySelector(`[value="${t}"]`);s.selected=!1;const i=this.selectField.querySelector(`[data-tobago-value="${t}"]`),n=i.previousElementSibling,o="SPAN"===i.nextElementSibling.tagName?i.nextElementSibling:null;n?n.querySelector("button.btn.badge").focus():o?o.querySelector("button.btn.badge").focus():(this.filterInput.dis [...]
+ @blur="${this.blurEvent.bind(this)}"><i class='bi-x-lg'></i></button>`}removeBadge(e){const t=e.target.closest(".btn-group").dataset.tobagoValue,s=this.hiddenSelect.querySelector(`[value="${t}"]`);s.selected=!1;const n=this.selectField.querySelector(`[data-tobago-value="${t}"]`),i=n.previousElementSibling,o="SPAN"===n.nextElementSibling.tagName?n.nextElementSibling:null;i?i.querySelector("button.btn.badge").focus():o?o.querySelector("button.btn.badge").focus():(this.filterInput.dis [...]
//# sourceMappingURL=tobago.js.map
diff --git a/tobago-theme/tobago-theme-standard/src/main/js/tobago.js.map b/tobago-theme/tobago-theme-standard/src/main/js/tobago.js.map
index c18bde45dd..de51198666 100644
--- a/tobago-theme/tobago-theme-standard/src/main/js/tobago.js.map
+++ b/tobago-theme/tobago-theme-standard/src/main/js/tobago.js.map
@@ -1 +1 @@
-{"version":3,"file":"tobago.js","sources":["../ts/tobago-css.ts","../ts/tobago-bar.ts","../../../../node_modules/@popperjs/core/lib/enums.js","../../../../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../../../../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../../../../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../../../../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../../../../node_modules/@popperjs/core/lib/utils/getBasePlacement.j [...]
\ No newline at end of file
+{"version":3,"file":"tobago.js","sources":["../ts/tobago-css.ts","../ts/tobago-bar.ts","../../../../node_modules/@popperjs/core/lib/enums.js","../../../../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../../../../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../../../../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../../../../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../../../../node_modules/@popperjs/core/lib/utils/getBasePlacement.j [...]
\ No newline at end of file
[myfaces-tobago] 02/03: fix: dropdown key events
Posted by hn...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
hnoeth pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/myfaces-tobago.git
commit 070e9a61f61778d56da56029887607e5cdc47a07
Author: Henning Noeth <hn...@apache.org>
AuthorDate: Tue Apr 18 10:02:11 2023 +0200
fix: dropdown key events
* reimplement dropdown key and click events, because bootstrap implementation didn't support sub-menus.
* fix css style: sub-menus are now positioned correctly for keyboard
* increased clickable area for checkbox/radio button label
* use .tobago-dropdown-menu instead of .dropdown-menu to prevent Bootstrap from creating a dropdown instance
* dropdown menu stays open if clicked on checkbox/radio button
* fix: disabled sub-menus are not opened anymore
* adjust tests
* add integration test
Issue: TOBAGO-2205
---
.../renderkit/renderer/CommandRendererBase.java | 11 +-
.../renderer/buttons/separator-inside-buttons.html | 6 +-
.../renderer/in/input-group-dropdown-after.html | 6 +-
.../renderer/in/input-group-dropdown-before.html | 6 +-
.../resources/renderer/link/booleanInsideLink.html | 6 +-
.../resources/renderer/link/manyInsideLink.html | 4 +-
.../resources/renderer/link/radioInsideLink.html | 6 +-
.../renderer/link/separatorInsideLink.html | 6 +-
.../renderer/links/link-inside-links-sub.html | 4 +-
.../content/010-input/50-input-group/Group.test.js | 2 +-
.../main/webapp/content/060-popup/Popup.test.js | 4 +-
.../4050-ajax-dropdown/Ajax_Dropdown.test.js | 2 +-
.../900-test/4000-button-link/Button_Link.test.js | 4 +-
.../900-test/4200-dropdown/Dropdown.test.js | 134 +++++++++++
.../content/900-test/4200-dropdown/Dropdown.xhtml | 112 ++++++++++
.../900-test/6500-behavior/Behavior.test.js | 6 +-
.../src/main/webapp/script/tobago-test.js | 21 +-
tobago-theme/src/main/scss/_tobago.scss | 55 +++--
.../src/main/ts/tobago-css.ts | 4 +
.../src/main/ts/tobago-dropdown-item-factory.ts | 44 ++++
.../src/main/ts/tobago-dropdown-item.ts | 93 ++++++++
.../src/main/ts/tobago-dropdown.ts | 246 ++++++++++++++++++++-
.../src/main/ts/tobago-key.ts | 2 +
23 files changed, 716 insertions(+), 68 deletions(-)
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/CommandRendererBase.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/CommandRendererBase.java
index db358df9c1..dfdb97021e 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/CommandRendererBase.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/CommandRendererBase.java
@@ -114,7 +114,6 @@ public abstract class CommandRendererBase<T extends AbstractUICommand> extends D
HtmlRendererUtils.writeDataAttributes(facesContext, writer, component);
if (parentOfCommands) {
- writer.writeAttribute(DataAttributes.BS_TOGGLE, "dropdown", false);
writer.writeAttribute(Arias.EXPANDED, Boolean.FALSE.toString(), false);
}
final String title = HtmlRendererUtils.getTitleFromTipAndMessages(facesContext, component);
@@ -175,6 +174,9 @@ public abstract class CommandRendererBase<T extends AbstractUICommand> extends D
@Override
public void encodeChildrenInternal(final FacesContext facesContext, final T component) throws IOException {
final boolean parentOfCommands = component.isParentOfCommands();
+ final boolean isInsideInputAfter = isInside(facesContext, HtmlElements.TOBAGO_IN)
+ && isInside(facesContext, Facets.after);
+ final boolean disabled = component.isDisabled();
final TobagoResponseWriter writer = getResponseWriter(facesContext);
@@ -182,9 +184,10 @@ public abstract class CommandRendererBase<T extends AbstractUICommand> extends D
List<UIComponent> renderLater = null;
writer.startElement(HtmlElements.DIV);
- writer.writeClassAttribute(BootstrapClass.DROPDOWN_MENU,
- isInside(facesContext, HtmlElements.TOBAGO_IN) && isInside(facesContext, Facets.after)
- ? BootstrapClass.DROPDOWN_MENU_END : null);
+ writer.writeClassAttribute(
+ TobagoClass.DROPDOWN__MENU,
+ isInsideInputAfter ? BootstrapClass.DROPDOWN_MENU_END : null,
+ disabled ? TobagoClass.DISABLED : null);
writer.writeAttribute(Arias.LABELLEDBY, component.getFieldId(facesContext), false);
writer.writeAttribute(HtmlAttributes.NAME, component.getClientId(facesContext), false);
diff --git a/tobago-core/src/test/resources/renderer/buttons/separator-inside-buttons.html b/tobago-core/src/test/resources/renderer/buttons/separator-inside-buttons.html
index 0ff3ec6cbb..4df742b525 100644
--- a/tobago-core/src/test/resources/renderer/buttons/separator-inside-buttons.html
+++ b/tobago-core/src/test/resources/renderer/buttons/separator-inside-buttons.html
@@ -19,8 +19,8 @@ CSS class of "tobago-dropdown" has changed from btn-group to dropdown
-->
<tobago-buttons id='list' class='btn-group tobago-auto-spacing' role='group'>
<tobago-dropdown id='id' class='dropdown btn-group'>
- <button type='button' id='id::command' name='id' data-bs-toggle='dropdown' aria-expanded='false' class='tobago-button btn btn-secondary dropdown-toggle'><tobago-behavior event='click' client-id='id' field-id='id::command'></tobago-behavior><span>button</span></button>
- <div class='dropdown-menu' aria-labelledby='id::command' name='id'>
+ <button type='button' id='id::command' name='id' aria-expanded='false' class='tobago-button btn btn-secondary dropdown-toggle'><tobago-behavior event='click' client-id='id' field-id='id::command'></tobago-behavior><span>button</span></button>
+ <div class='tobago-dropdown-menu' aria-labelledby='id::command' name='id'>
<button type='button' id='sub1' name='sub1' class='tobago-link dropdown-item'><tobago-behavior event='click' client-id='sub1'></tobago-behavior><span>sub1</span></button>
<tobago-separator id='separator1' class='dropdown-divider'>
</tobago-separator>
@@ -30,4 +30,4 @@ CSS class of "tobago-dropdown" has changed from btn-group to dropdown
<button type='button' id='sub3' name='sub3' class='tobago-link dropdown-item'><tobago-behavior event='click' client-id='sub3'></tobago-behavior><span>sub3</span></button>
</div>
</tobago-dropdown>
-</tobago-buttons>
\ No newline at end of file
+</tobago-buttons>
diff --git a/tobago-core/src/test/resources/renderer/in/input-group-dropdown-after.html b/tobago-core/src/test/resources/renderer/in/input-group-dropdown-after.html
index f20e9927ac..f63407d2e4 100644
--- a/tobago-core/src/test/resources/renderer/in/input-group-dropdown-after.html
+++ b/tobago-core/src/test/resources/renderer/in/input-group-dropdown-after.html
@@ -21,11 +21,11 @@ dropdown-menu-right is temporarily not here (in the div with dropdown-menu), XXX
<div class='input-group'>
<input type='text' name='id' id='id::field' class='form-control'>
<tobago-dropdown id='button' class='dropdown'>
- <button type='button' id='button::command' name='button' data-bs-toggle='dropdown' aria-expanded='false' class='tobago-button btn btn-secondary dropdown-toggle'><tobago-behavior event='click' client-id='button' field-id='button::command' omit='omit'></tobago-behavior><span>dropdown</span></button>
- <div class='dropdown-menu dropdown-menu-end' aria-labelledby='button::command' name='button'>
+ <button type='button' id='button::command' name='button' aria-expanded='false' class='tobago-button btn btn-secondary dropdown-toggle'><tobago-behavior event='click' client-id='button' field-id='button::command' omit='omit'></tobago-behavior><span>dropdown</span></button>
+ <div class='tobago-dropdown-menu dropdown-menu-end' aria-labelledby='button::command' name='button'>
<button type='button' id='l1' name='l1' class='tobago-link dropdown-item'><tobago-behavior event='click' client-id='l1'></tobago-behavior><span>Link 1</span></button>
<button type='button' id='l2' name='l2' class='tobago-link dropdown-item'><tobago-behavior event='click' client-id='l2'></tobago-behavior><span>Link 2</span></button>
</div>
</tobago-dropdown>
</div>
-</tobago-in>
\ No newline at end of file
+</tobago-in>
diff --git a/tobago-core/src/test/resources/renderer/in/input-group-dropdown-before.html b/tobago-core/src/test/resources/renderer/in/input-group-dropdown-before.html
index 06d7ca08c8..2a4964f93f 100644
--- a/tobago-core/src/test/resources/renderer/in/input-group-dropdown-before.html
+++ b/tobago-core/src/test/resources/renderer/in/input-group-dropdown-before.html
@@ -18,12 +18,12 @@
<tobago-in id='id' class='tobago-auto-spacing'>
<div class='input-group'>
<tobago-dropdown id='button' class='dropdown'>
- <button type='button' id='button::command' name='button' data-bs-toggle='dropdown' aria-expanded='false' class='tobago-button btn btn-secondary dropdown-toggle'><tobago-behavior event='click' client-id='button' field-id='button::command' omit='omit'></tobago-behavior><span>dropdown</span></button>
- <div class='dropdown-menu' aria-labelledby='button::command' name='button'>
+ <button type='button' id='button::command' name='button' aria-expanded='false' class='tobago-button btn btn-secondary dropdown-toggle'><tobago-behavior event='click' client-id='button' field-id='button::command' omit='omit'></tobago-behavior><span>dropdown</span></button>
+ <div class='tobago-dropdown-menu' aria-labelledby='button::command' name='button'>
<button type='button' id='l1' name='l1' class='tobago-link dropdown-item'><tobago-behavior event='click' client-id='l1'></tobago-behavior><span>Link 1</span></button>
<button type='button' id='l2' name='l2' class='tobago-link dropdown-item'><tobago-behavior event='click' client-id='l2'></tobago-behavior><span>Link 2</span></button>
</div>
</tobago-dropdown>
<input type='text' name='id' id='id::field' class='form-control'>
</div>
-</tobago-in>
\ No newline at end of file
+</tobago-in>
diff --git a/tobago-core/src/test/resources/renderer/link/booleanInsideLink.html b/tobago-core/src/test/resources/renderer/link/booleanInsideLink.html
index d5b478e14e..dba64a9bfc 100644
--- a/tobago-core/src/test/resources/renderer/link/booleanInsideLink.html
+++ b/tobago-core/src/test/resources/renderer/link/booleanInsideLink.html
@@ -16,11 +16,11 @@
-->
<tobago-dropdown id='id' class='dropdown'>
- <button type='button' id='id::command' name='id' data-bs-toggle='dropdown' aria-expanded='false' class='tobago-link btn btn-link tobago-auto-spacing dropdown-toggle'><tobago-behavior event='click' client-id='id' field-id='id::command'></tobago-behavior><span>dropdown</span></button>
- <div class='dropdown-menu' aria-labelledby='id::command' name='id'>
+ <button type='button' id='id::command' name='id' aria-expanded='false' class='tobago-link btn btn-link tobago-auto-spacing dropdown-toggle'><tobago-behavior event='click' client-id='id' field-id='id::command'></tobago-behavior><span>dropdown</span></button>
+ <div class='tobago-dropdown-menu' aria-labelledby='id::command' name='id'>
<tobago-select-boolean-checkbox id='id' class='form-check dropdown-item'>
<input class='form-check-input' type='checkbox' value='true' name='id' id='id::field'>
<label class='form-check-label' for='id::field'></label>
</tobago-select-boolean-checkbox>
</div>
-</tobago-dropdown>
\ No newline at end of file
+</tobago-dropdown>
diff --git a/tobago-core/src/test/resources/renderer/link/manyInsideLink.html b/tobago-core/src/test/resources/renderer/link/manyInsideLink.html
index 0a369e7294..c094e6f0f6 100644
--- a/tobago-core/src/test/resources/renderer/link/manyInsideLink.html
+++ b/tobago-core/src/test/resources/renderer/link/manyInsideLink.html
@@ -16,8 +16,8 @@
-->
<tobago-dropdown id='id' class='dropdown'>
- <button type='button' id='id::command' name='id' data-bs-toggle='dropdown' aria-expanded='false' class='tobago-link btn btn-link tobago-auto-spacing dropdown-toggle'><tobago-behavior event='click' client-id='id' field-id='id::command'></tobago-behavior><span>dropdown</span></button>
- <div class='dropdown-menu' aria-labelledby='id::command' name='id'>
+ <button type='button' id='id::command' name='id' aria-expanded='false' class='tobago-link btn btn-link tobago-auto-spacing dropdown-toggle'><tobago-behavior event='click' client-id='id' field-id='id::command'></tobago-behavior><span>dropdown</span></button>
+ <div class='tobago-dropdown-menu' aria-labelledby='id::command' name='id'>
<tobago-select-many-checkbox>
<div class='form-check dropdown-item'>
<input class='form-check-input' type='checkbox' name='many' id='many::0' value=''>
diff --git a/tobago-core/src/test/resources/renderer/link/radioInsideLink.html b/tobago-core/src/test/resources/renderer/link/radioInsideLink.html
index 54df9b55a4..ae114eb9bd 100644
--- a/tobago-core/src/test/resources/renderer/link/radioInsideLink.html
+++ b/tobago-core/src/test/resources/renderer/link/radioInsideLink.html
@@ -16,8 +16,8 @@
-->
<tobago-dropdown id='id' class='dropdown'>
- <button type='button' id='id::command' name='id' data-bs-toggle='dropdown' aria-expanded='false' class='tobago-link btn btn-link tobago-auto-spacing dropdown-toggle'><tobago-behavior event='click' client-id='id' field-id='id::command'></tobago-behavior><span>dropdown</span></button>
- <div class='dropdown-menu' aria-labelledby='id::command' name='id'>
+ <button type='button' id='id::command' name='id' aria-expanded='false' class='tobago-link btn btn-link tobago-auto-spacing dropdown-toggle'><tobago-behavior event='click' client-id='id' field-id='id::command'></tobago-behavior><span>dropdown</span></button>
+ <div class='tobago-dropdown-menu' aria-labelledby='id::command' name='id'>
<tobago-select-one-radio>
<div class='form-check dropdown-item'>
<input class='form-check-input' type='radio' checked='checked' name='radio' id='radio::0' value=''>
@@ -29,4 +29,4 @@
</div>
</tobago-select-one-radio>
</div>
-</tobago-dropdown>
\ No newline at end of file
+</tobago-dropdown>
diff --git a/tobago-core/src/test/resources/renderer/link/separatorInsideLink.html b/tobago-core/src/test/resources/renderer/link/separatorInsideLink.html
index ef60ef708b..ea88b39247 100644
--- a/tobago-core/src/test/resources/renderer/link/separatorInsideLink.html
+++ b/tobago-core/src/test/resources/renderer/link/separatorInsideLink.html
@@ -16,11 +16,11 @@
-->
<tobago-dropdown id='id' class='dropdown'>
- <button type='button' id='id::command' name='id' data-bs-toggle='dropdown' aria-expanded='false' class='tobago-link btn btn-link tobago-auto-spacing dropdown-toggle'><tobago-behavior event='click' client-id='id' field-id='id::command'></tobago-behavior><span>dropdown</span></button>
- <div class='dropdown-menu' aria-labelledby='id::command' name='id'>
+ <button type='button' id='id::command' name='id' aria-expanded='false' class='tobago-link btn btn-link tobago-auto-spacing dropdown-toggle'><tobago-behavior event='click' client-id='id' field-id='id::command'></tobago-behavior><span>dropdown</span></button>
+ <div class='tobago-dropdown-menu' aria-labelledby='id::command' name='id'>
<a id='link1' name='link1' href='https://www.apache.org/' class='tobago-link dropdown-item'><tobago-behavior event='click' client-id='link1' omit='omit'></tobago-behavior><span>Link 1</span></a>
<tobago-separator id='separator' class='dropdown-divider'>
</tobago-separator>
<a id='link2' name='link2' href='https://www.apache.org/' class='tobago-link dropdown-item'><tobago-behavior event='click' client-id='link2' omit='omit'></tobago-behavior><span>Link 2</span></a>
</div>
-</tobago-dropdown>
\ No newline at end of file
+</tobago-dropdown>
diff --git a/tobago-core/src/test/resources/renderer/links/link-inside-links-sub.html b/tobago-core/src/test/resources/renderer/links/link-inside-links-sub.html
index ed111248ae..d41754f7cc 100644
--- a/tobago-core/src/test/resources/renderer/links/link-inside-links-sub.html
+++ b/tobago-core/src/test/resources/renderer/links/link-inside-links-sub.html
@@ -21,8 +21,8 @@ CSS class nav-item has moved from "tobago-dropdown" to "li"
<ul class='nav'>
<li class='nav-item'>
<tobago-dropdown id='id' class='dropdown'>
- <button type='button' id='id::command' name='id' data-bs-toggle='dropdown' aria-expanded='false' class='tobago-link btn btn-link dropdown-toggle nav-link'><tobago-behavior event='click' client-id='id' field-id='id::command'></tobago-behavior><span>apache</span></button>
- <div class='dropdown-menu' aria-labelledby='id::command' name='id'>
+ <button type='button' id='id::command' name='id' aria-expanded='false' class='tobago-link btn btn-link dropdown-toggle nav-link'><tobago-behavior event='click' client-id='id' field-id='id::command'></tobago-behavior><span>apache</span></button>
+ <div class='tobago-dropdown-menu' aria-labelledby='id::command' name='id'>
<a id='sub' name='sub' href='https://www.apache.org/' class='tobago-link dropdown-item'><tobago-behavior event='click' client-id='sub' omit='omit'></tobago-behavior><span>sub</span></a>
</div>
</tobago-dropdown>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/010-input/50-input-group/Group.test.js b/tobago-example/tobago-example-demo/src/main/webapp/content/010-input/50-input-group/Group.test.js
index 5e78555902..6572e77f5a 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/010-input/50-input-group/Group.test.js
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/010-input/50-input-group/Group.test.js
@@ -37,7 +37,7 @@ it("ajax: chat send button", function (done) {
it("ajax: dropdown button", function (done) {
let buttonFn = querySelectorFn("#page\\:mainForm\\:lsendtoc\\:\\:command");
let buttonLabelFn = querySelectorFn("#page\\:mainForm\\:lsendtoc\\:\\:command span");
- let dropdownMenu = querySelectorFn(".dropdown-menu[name='page:mainForm:lsendtoc']");
+ let dropdownMenu = querySelectorFn(".tobago-dropdown-menu[name='page:mainForm:lsendtoc']");
let sendToPeterFn = querySelectorFn("#page\\:mainForm\\:sendToPeter");
let sendToBobFn = querySelectorFn("#page\\:mainForm\\:sendToBob");
let sendToAllFn = querySelectorFn("#page\\:mainForm\\:sendToAll");
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/060-popup/Popup.test.js b/tobago-example/tobago-example-demo/src/main/webapp/content/060-popup/Popup.test.js
index 7725c3b58e..1ca7dfc5a6 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/060-popup/Popup.test.js
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/060-popup/Popup.test.js
@@ -224,7 +224,7 @@ it("Open 'Client Popup', press 'Submit & Close' while field has content.", funct
it("Open 'Large Popup'.", function (done) {
let dropdownButtonFn = elementByIdFn("page:mainForm:dropdownButton::command");
- let dropdownMenuFn = querySelectorFn(".dropdown-menu[name=page\\:mainForm\\:dropdownButton]");
+ let dropdownMenuFn = querySelectorFn(".tobago-dropdown-menu[name=page\\:mainForm\\:dropdownButton]");
let openButtonFn = elementByIdFn("page:mainForm:largePopupLink");
let popupFn = elementByIdFn("page:mainForm:largePopup");
let collapseFn = elementByIdFn("page:mainForm:largePopup::collapse");
@@ -264,7 +264,7 @@ it("Open 'Large Popup'.", function (done) {
it("Open 'Small Popup'.", function (done) {
let dropdownButtonFn = elementByIdFn("page:mainForm:dropdownButton::command");
- let dropdownMenuFn = querySelectorFn(".dropdown-menu[name=page\\:mainForm\\:dropdownButton]");
+ let dropdownMenuFn = querySelectorFn(".tobago-dropdown-menu[name=page\\:mainForm\\:dropdownButton]");
let openButtonFn = elementByIdFn("page:mainForm:smallPopupLink");
let popupFn = elementByIdFn("page:mainForm:smallPopup");
let collapseFn = elementByIdFn("page:mainForm:smallPopup::collapse");
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/900-test/4000-button-link/4050-ajax-dropdown/Ajax_Dropdown.test.js b/tobago-example/tobago-example-demo/src/main/webapp/content/900-test/4000-button-link/4050-ajax-dropdown/Ajax_Dropdown.test.js
index 897e1d6cb3..3a9ade6194 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/900-test/4000-button-link/4050-ajax-dropdown/Ajax_Dropdown.test.js
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/900-test/4000-button-link/4050-ajax-dropdown/Ajax_Dropdown.test.js
@@ -20,7 +20,7 @@ import {elementByIdFn, querySelectorAllFn, querySelectorFn} from "/script/tobago
it("Execute 'AJAX' entry in dropdown menu", function (done) {
let dropdownButtonFn = elementByIdFn("page:mainForm:dropdownButton::command");
- let dropdownMenuFn = querySelectorFn(".dropdown-menu[name=page\\:mainForm\\:dropdownButton]");
+ let dropdownMenuFn = querySelectorFn(".tobago-dropdown-menu[name=page\\:mainForm\\:dropdownButton]");
let dropdownAjaxEntryFn = elementByIdFn("page:mainForm:ajaxEntry");
let inputFn = elementByIdFn("page:mainForm:inputAjax::field");
let outputFn = querySelectorFn("#page\\:mainForm\\:outputAjax .form-control-plaintext");
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/900-test/4000-button-link/Button_Link.test.js b/tobago-example/tobago-example-demo/src/main/webapp/content/900-test/4000-button-link/Button_Link.test.js
index dc29061012..f92c9a47c1 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/900-test/4000-button-link/Button_Link.test.js
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/900-test/4000-button-link/Button_Link.test.js
@@ -115,8 +115,8 @@ function getTargetFrameInput() {
}
it("Style must not be a dropdown item", function (done) {
- const dropdownMenuFn = querySelectorFn("#page\\:mainForm\\:dropdownWithStyle .dropdown-menu");
- const styleAsItemFn = querySelectorFn("#page\\:mainForm\\:dropdownWithStyle .dropdown-menu .dropdown-item > style");
+ const dropdownMenuFn = querySelectorFn("#page\\:mainForm\\:dropdownWithStyle .tobago-dropdown-menu");
+ const styleAsItemFn = querySelectorFn("#page\\:mainForm\\:dropdownWithStyle .tobago-dropdown-menu .dropdown-item > style");
const buttonFn = elementByIdFn("page:mainForm:dropdownWithStyle::command");
const test = new JasmineTestTool(done);
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/900-test/4200-dropdown/Dropdown.test.js b/tobago-example/tobago-example-demo/src/main/webapp/content/900-test/4200-dropdown/Dropdown.test.js
new file mode 100644
index 0000000000..b8f47abb74
--- /dev/null
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/900-test/4200-dropdown/Dropdown.test.js
@@ -0,0 +1,134 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {activeElementFn, elementByIdFn, querySelectorFn} from "/script/tobago-test.js";
+import {JasmineTestTool} from "/tobago/test/tobago-test-tool.js";
+
+it("Dropdown key events", function (done) {
+ const toggleButtonFn = elementByIdFn("page:mainForm:root::command");
+ const dropdownMenuFn = querySelectorFn(".tobago-dropdown-menu[name='page:mainForm:root']");
+ const entry1Fn = elementByIdFn("page:mainForm:entry1");
+ const checkboxFn = elementByIdFn("page:mainForm:checkbox::field");
+ const toggleFn = elementByIdFn("page:mainForm:toggle::field");
+ const radioSunFn = elementByIdFn("page:mainForm:radio::0");
+ const radioMoonFn = elementByIdFn("page:mainForm:radio::1");
+ const multiCheckboxFn = elementByIdFn("page:mainForm:multiCheckbox::0");
+ const entry2Fn = elementByIdFn("page:mainForm:entry2");
+ const entry3Fn = elementByIdFn("page:mainForm:entry3::command");
+ const entry3DropdownMenuFn = querySelectorFn(".tobago-dropdown-menu[name='page:mainForm:entry3']");
+ const subFn = elementByIdFn("page:mainForm:sub::command");
+ const subDropdownMenuFn = querySelectorFn(".tobago-dropdown-menu[name='page:mainForm:sub']");
+ const link311Fn = elementByIdFn("page:mainForm:link311");
+ const link312Fn = elementByIdFn("page:mainForm:link312::command");
+ const link312DropdownMenuFn = querySelectorFn(".tobago-dropdown-menu[name='page:mainForm:link312']");
+ const link313Fn = elementByIdFn("page:mainForm:link313");
+
+ const test = new JasmineTestTool(done);
+ test.setup(() => !dropdownMenuFn().classList.contains("show"), null, "click", toggleButtonFn);
+ test.setup(() => activeElementFn() === toggleButtonFn(), null, "focus", toggleButtonFn);
+ test.do(() => expect(dropdownMenuFn().classList).not.toContain("show"));
+ test.do(() => expect(dropdownMenuFn().parentElement.tagName).toEqual("TOBAGO-DROPDOWN"));
+ test.do(() => expect(activeElementFn()).toEqual(toggleButtonFn()));
+
+ test.do(() => activeElementFn().dispatchEvent(
+ new KeyboardEvent("keydown", {bubbles: true, key: 'ArrowDown'})));
+ test.wait(() => dropdownMenuFn().classList.contains("show"));
+ test.do(() => expect(dropdownMenuFn().classList).toContain("show"));
+ test.do(() => expect(dropdownMenuFn().parentElement.classList).toContain("tobago-page-menuStore"));
+ test.do(() => expect(activeElementFn()).toEqual(entry1Fn()));
+
+ test.do(() => activeElementFn().dispatchEvent(
+ new KeyboardEvent("keydown", {bubbles: true, key: 'ArrowDown'})));
+ test.wait(() => activeElementFn() === checkboxFn());
+ test.do(() => expect(activeElementFn()).toEqual(checkboxFn()));
+
+ test.do(() => activeElementFn().dispatchEvent(
+ new KeyboardEvent("keydown", {bubbles: true, key: 'ArrowDown'})));
+ test.wait(() => activeElementFn() === toggleFn());
+ test.do(() => expect(activeElementFn()).toEqual(toggleFn()));
+
+ test.do(() => activeElementFn().dispatchEvent(
+ new KeyboardEvent("keydown", {bubbles: true, key: 'ArrowDown'})));
+ test.wait(() => activeElementFn() === radioSunFn());
+ test.do(() => expect(activeElementFn()).toEqual(radioSunFn()));
+
+ test.do(() => activeElementFn().dispatchEvent(
+ new KeyboardEvent("keydown", {bubbles: true, key: 'ArrowDown'})));
+ test.wait(() => activeElementFn() === radioMoonFn());
+ test.do(() => expect(activeElementFn()).toEqual(radioMoonFn()));
+
+ test.do(() => activeElementFn().dispatchEvent(
+ new KeyboardEvent("keydown", {bubbles: true, key: 'ArrowDown'})));
+ test.wait(() => activeElementFn() === multiCheckboxFn());
+ test.do(() => expect(activeElementFn()).toEqual(multiCheckboxFn()));
+
+ test.do(() => activeElementFn().dispatchEvent(
+ new KeyboardEvent("keydown", {bubbles: true, key: 'ArrowDown'})));
+ test.wait(() => activeElementFn() === entry2Fn());
+ test.do(() => expect(activeElementFn()).toEqual(entry2Fn()));
+
+ test.do(() => expect(entry3DropdownMenuFn().classList).not.toContain("show"));
+ test.do(() => activeElementFn().dispatchEvent(
+ new KeyboardEvent("keydown", {bubbles: true, key: 'ArrowDown'})));
+ test.wait(() => activeElementFn() === entry3Fn());
+ test.do(() => expect(activeElementFn()).toEqual(entry3Fn()));
+ test.do(() => expect(entry3DropdownMenuFn().classList).toContain("show"));
+
+ test.do(() => expect(subDropdownMenuFn().classList).not.toContain("show"));
+ test.do(() => activeElementFn().dispatchEvent(
+ new KeyboardEvent("keydown", {bubbles: true, key: 'ArrowRight'})));
+ test.wait(() => activeElementFn() === subFn());
+ test.do(() => expect(activeElementFn()).toEqual(subFn()));
+ test.do(() => expect(subDropdownMenuFn().classList).toContain("show"));
+
+ test.do(() => activeElementFn().dispatchEvent(
+ new KeyboardEvent("keydown", {bubbles: true, key: 'ArrowRight'})));
+ test.wait(() => activeElementFn() === link311Fn());
+ test.do(() => expect(activeElementFn()).toEqual(link311Fn()));
+
+ test.do(() => activeElementFn().dispatchEvent(
+ new KeyboardEvent("keydown", {bubbles: true, key: 'ArrowUp'})));
+ test.wait(() => activeElementFn() === link313Fn());
+ test.do(() => expect(activeElementFn()).toEqual(link313Fn()));
+
+ test.do(() => expect(link312DropdownMenuFn().classList).not.toContain("show"));
+ test.do(() => activeElementFn().dispatchEvent(
+ new KeyboardEvent("keydown", {bubbles: true, key: 'ArrowUp'})));
+ test.wait(() => activeElementFn() === link312Fn());
+ test.do(() => expect(activeElementFn()).toEqual(link312Fn()));
+ test.do(() => expect(link312DropdownMenuFn().classList).toContain("show"));
+
+ test.do(() => expect(entry3DropdownMenuFn().classList).toContain("show"));
+ test.do(() => expect(subDropdownMenuFn().classList).toContain("show"));
+ test.do(() => expect(link312DropdownMenuFn().classList).toContain("show"));
+ test.do(() => activeElementFn().dispatchEvent(
+ new KeyboardEvent("keydown", {bubbles: true, key: 'ArrowLeft'})));
+ test.wait(() => activeElementFn() === subFn());
+ test.do(() => expect(activeElementFn()).toEqual(subFn()));
+ test.do(() => expect(entry3DropdownMenuFn().classList).toContain("show"));
+ test.do(() => expect(subDropdownMenuFn().classList).toContain("show"));
+ test.do(() => expect(link312DropdownMenuFn().classList).not.toContain("show"));
+
+ test.do(() => activeElementFn().dispatchEvent(
+ new KeyboardEvent("keydown", {bubbles: true, key: 'Escape'})));
+ test.do(() => expect(dropdownMenuFn().classList).not.toContain("show"));
+ test.do(() => expect(entry3DropdownMenuFn().classList).not.toContain("show"));
+ test.do(() => expect(subDropdownMenuFn().classList).not.toContain("show"));
+ test.do(() => expect(link312DropdownMenuFn().classList).not.toContain("show"));
+
+ test.start();
+});
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/900-test/4200-dropdown/Dropdown.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/900-test/4200-dropdown/Dropdown.xhtml
new file mode 100644
index 0000000000..0cab0260f7
--- /dev/null
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/900-test/4200-dropdown/Dropdown.xhtml
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+-->
+
+<ui:composition template="/main.xhtml"
+ xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:tc="http://myfaces.apache.org/tobago/component"
+ xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
+
+ <tc:button id="root" label="Dropdown" omit="true">
+ <tc:link id="entry1" label="Entry One"/>
+ <tc:selectBooleanCheckbox id="checkbox" itemLabel="Checkbox"/>
+ <tc:selectBooleanToggle id="toggle" itemLabel="Toggle"/>
+ <tc:selectBooleanToggle itemLabel="Disabled" disabled="true"/>
+ <tc:selectOneRadio id="radio">
+ <tc:selectItem id="sun" itemLabel="Sun" itemValue="solis"/>
+ <tc:selectItem id="moon" itemLabel="Moon" itemValue="luna"/>
+ <tc:selectItem itemLabel="Stars" itemValue="stella" itemDisabled="true"/>
+ </tc:selectOneRadio>
+ <tc:selectManyCheckbox id="multiCheckbox" label="Checkbox Group">
+ <tc:selectItem id="checkbox1" itemLabel="Item One" itemValue="one"/>
+ <tc:selectItem itemLabel="Item Two (disabled)" itemValue="two" itemDisabled="true"/>
+ </tc:selectManyCheckbox>
+ <tc:link id="entry2" label="Entry Two"/>
+ <tc:separator/>
+ <tc:link label="Entry disabled" disabled="true"/>
+ <tc:link id="entry3" label="Entry Three" omit="true">
+ <tc:link id="sub" label="Sub" omit="true">
+ <tc:link id="link311" label="3-1-1"/>
+ <tc:selectBooleanCheckbox itemLabel="Checkbox"/>
+ <tc:selectBooleanToggle itemLabel="Toggle"/>
+ <tc:link id="link312" label="3-1-2" omit="true">
+ <tc:link label="3-1-2-1"/>
+ <tc:link label="3-1-2-2"/>
+ <tc:link label="3-1-2-3"/>
+ </tc:link>
+ <tc:link id="link313" label="3-1-3"/>
+ </tc:link>
+ <tc:link label="3-1"/>
+ <tc:link label="3-2" disabled="true">
+ <tc:link label="3-2-1"/>
+ <tc:link label="3-2-2"/>
+ <tc:link label="3-2-3"/>
+ </tc:link>
+ <tc:link label="3-3"/>
+ </tc:link>
+ <tc:link label="Entry 4"/>
+ <tc:link label="apache.org" link="https://www.apache.org/"/>
+ <tc:link label="Entry 6"/>
+ </tc:button>
+
+ <tc:in>
+ <f:facet name="after">
+ <tc:button omit="true">
+ <tc:link label="Entry One"/>
+ <tc:selectBooleanCheckbox itemLabel="Checkbox"/>
+ <tc:selectBooleanToggle itemLabel="Toggle"/>
+ <tc:selectBooleanToggle itemLabel="Disabled" disabled="true"/>
+ <tc:selectOneRadio id="ins1">
+ <tc:selectItem itemLabel="Sun" itemValue="solis"/>
+ <tc:selectItem itemLabel="Moon" itemValue="luna"/>
+ <tc:selectItem itemLabel="Stars" itemValue="stella" itemDisabled="true"/>
+ </tc:selectOneRadio>
+ <tc:selectManyCheckbox label="Checkbox Group">
+ <tc:selectItem itemLabel="Item One" itemValue="one"/>
+ <tc:selectItem itemLabel="Item Two (disabled)" itemValue="two" itemDisabled="true"/>
+ </tc:selectManyCheckbox>
+ <tc:link label="Entry Two"/>
+ <tc:separator/>
+ <tc:link label="Entry disabled" disabled="true"/>
+ <tc:link label="Entry Three" omit="true">
+ <tc:link label="Sub" omit="true">
+ <tc:link label="3-1-1"/>
+ <tc:selectBooleanCheckbox itemLabel="Checkbox"/>
+ <tc:selectBooleanToggle itemLabel="Toggle"/>
+ <tc:link label="3-1-2">
+ <tc:link label="3-1-2-1"/>
+ <tc:link label="3-1-2-2"/>
+ <tc:link label="3-1-2-3"/>
+ </tc:link>
+ <tc:link label="3-1-3"/>
+ </tc:link>
+ <tc:link label="3-1"/>
+ <tc:link label="3-2">
+ <tc:link label="3-2-1"/>
+ <tc:link label="3-2-2"/>
+ <tc:link label="3-2-3"/>
+ </tc:link>
+ <tc:link label="3-3"/>
+ </tc:link>
+ <tc:link label="Entry 4"/>
+ <tc:link label="apache.org" link="https://www.apache.org/"/>
+ <tc:link label="Entry 6"/>
+ </tc:button>
+ </f:facet>
+ </tc:in>
+</ui:composition>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/900-test/6500-behavior/Behavior.test.js b/tobago-example/tobago-example-demo/src/main/webapp/content/900-test/6500-behavior/Behavior.test.js
index 0cb72f7280..1a447ac96a 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/900-test/6500-behavior/Behavior.test.js
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/900-test/6500-behavior/Behavior.test.js
@@ -80,7 +80,7 @@ it("Simple EventAjax", function (done) {
it("Dropdown: Simple Event", function (done) {
const dropdownButtonFn = elementByIdFn("page:mainForm:dropdown::command");
- const dropdownMenuFn = querySelectorFn(".dropdown-menu[name='page:mainForm:dropdown']");
+ const dropdownMenuFn = querySelectorFn(".tobago-dropdown-menu[name='page:mainForm:dropdown']");
const entryFn = elementByIdFn("page:mainForm:simpleEventEntry");
const oldCounterValues = getCounterValues();
@@ -108,7 +108,7 @@ it("Dropdown: Simple Event", function (done) {
it("Dropdown: Simple Ajax", function (done) {
const dropdownButtonFn = elementByIdFn("page:mainForm:dropdown::command");
- const dropdownMenuFn = querySelectorFn(".dropdown-menu[name='page:mainForm:dropdown']");
+ const dropdownMenuFn = querySelectorFn(".tobago-dropdown-menu[name='page:mainForm:dropdown']");
const entryFn = elementByIdFn("page:mainForm:simpleAjaxEntry");
const oldCounterValues = getCounterValues();
@@ -136,7 +136,7 @@ it("Dropdown: Simple Ajax", function (done) {
it("Dropdown: Simple EventAjax", function (done) {
const dropdownButtonFn = elementByIdFn("page:mainForm:dropdown::command");
- const dropdownMenuFn = querySelectorFn(".dropdown-menu[name='page:mainForm:dropdown']");
+ const dropdownMenuFn = querySelectorFn(".tobago-dropdown-menu[name='page:mainForm:dropdown']");
const entryFn = elementByIdFn("page:mainForm:simpleEventAjaxEntry");
const oldCounterValues = getCounterValues();
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/script/tobago-test.js b/tobago-example/tobago-example-demo/src/main/webapp/script/tobago-test.js
index 0791fb36b2..761cda8aac 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/script/tobago-test.js
+++ b/tobago-example/tobago-example-demo/src/main/webapp/script/tobago-test.js
@@ -19,25 +19,44 @@
import {JasmineTestTool} from "/tobago/test/tobago-test-tool.js";
+/**
+ * @param expression
+ * @returns {function(): HTMLElement}
+ */
function elementByIdFn(expression) {
return function () {
return document.getElementById("page:testframe").contentWindow.document.getElementById(expression);
}
}
+/**
+ * @param expression
+ * @returns {function(): *}
+ */
function querySelectorFn(expression) {
return function () {
return document.getElementById("page:testframe").contentWindow.document.querySelector(expression);
}
}
+/**
+ * @param expression
+ * @returns {function(): NodeListOf<*>}
+ */
function querySelectorAllFn(expression) {
return function () {
return document.getElementById("page:testframe").contentWindow.document.querySelectorAll(expression);
}
}
-export {elementByIdFn, querySelectorFn, querySelectorAllFn};
+/**
+ * @returns {HTMLElement}
+ */
+function activeElementFn() {
+ return document.getElementById("page:testframe").contentWindow.document.activeElement;
+}
+
+export {elementByIdFn, querySelectorFn, querySelectorAllFn, activeElementFn};
beforeEach(function (done) {
const test = new JasmineTestTool(done);
diff --git a/tobago-theme/src/main/scss/_tobago.scss b/tobago-theme/src/main/scss/_tobago.scss
index e835804db7..14592463b1 100644
--- a/tobago-theme/src/main/scss/_tobago.scss
+++ b/tobago-theme/src/main/scss/_tobago.scss
@@ -93,18 +93,6 @@ $tobago-flex-layout-spacing: 0.5rem;
}
}
-@mixin dropdownMenuFormCheckComponents() {
- .dropdown-menu .form-check {
- /* move form-check components to the right, so checkbox/radio buttons are inside dropdown-menu */
- $paddingLeftCheckboxRadio: (divide($dropdown-item-padding-x, 1rem) + $form-check-padding-start);
- padding-left: $paddingLeftCheckboxRadio;
-
- &.form-switch {
- padding-left: $paddingLeftCheckboxRadio + ($form-switch-width - $form-check-input-width);
- }
- }
-}
-
@mixin formControlFocusShadows() {
//_form-control:focus from bootstrap
@if $enable-shadows {
@@ -331,6 +319,28 @@ $tobago-flex-layout-spacing: 0.5rem;
}
}
+@mixin tobagoDropdownMenu() {
+ .tobago-dropdown-menu {
+ /* Use .tobago-dropdown-menu instead of .dropdown-menu to prevent Bootstrap from creating a dropdown instance.
+ This leads to javascript error if arrow up/down is pressed. */
+ @extend .dropdown-menu;
+
+ .form-check {
+ /* move form-check components to the right, so checkbox/radio buttons are inside dropdown-menu */
+ $paddingLeftCheckboxRadio: (divide($dropdown-item-padding-x, 1rem) + $form-check-padding-start);
+ padding-left: $paddingLeftCheckboxRadio;
+
+ &.form-switch {
+ padding-left: $paddingLeftCheckboxRadio + ($form-switch-width - $form-check-input-width);
+ }
+ }
+
+ label[for] {
+ width: 100%; //increased clickable area for checkbox/radio button label
+ }
+ }
+}
+
@mixin tobagoTreeNodeToggle() {
.tobago-toggle:not(.invisible) {
cursor: pointer;
@@ -497,11 +507,10 @@ tobago-date {
// dummy for unit tests
}
-/* dropdown ------------------------------------------------------- */
tobago-dropdown {
display: inline-block; //make tobago-dropdown height the same the inner button. Important for dropdown-menu position
- @include dropdownMenuFormCheckComponents();
+ @include tobagoDropdownMenu();
&.tobago-dropdown-submenu {
cursor: pointer;
@@ -512,12 +521,8 @@ tobago-dropdown {
&:hover {
background-color: $dropdown-link-hover-bg;
- > .dropdown-menu {
+ > .tobago-dropdown-menu:not(.tobago-disabled) {
display: block;
- top: 0;
- left: 100%;
- margin-top: -0.5rem;
- margin-left: -1px;
}
}
@@ -531,6 +536,13 @@ tobago-dropdown {
margin-top: 7px;
margin-right: -10px;
}
+
+ > .tobago-dropdown-menu {
+ top: 0;
+ left: 100%;
+ margin-top: -0.5rem;
+ margin-left: -1px;
+ }
}
}
@@ -1007,7 +1019,7 @@ tobago-messages {
}
}
-.dropdown-menu .form-check {
+.tobago-dropdown-menu .form-check {
display: block;
}
@@ -1082,9 +1094,8 @@ tobago-page {
}
}
-/* menuStore -------------------------------------------------------- */
.tobago-page-menuStore {
- @include dropdownMenuFormCheckComponents();
+ @include tobagoDropdownMenu();
position: absolute;
top: 0;
diff --git a/tobago-theme/tobago-theme-standard/src/main/ts/tobago-css.ts b/tobago-theme/tobago-theme-standard/src/main/ts/tobago-css.ts
index e3fed5d73e..2032fa74a3 100644
--- a/tobago-theme/tobago-theme-standard/src/main/ts/tobago-css.ts
+++ b/tobago-theme/tobago-theme-standard/src/main/ts/tobago-css.ts
@@ -25,7 +25,10 @@ export enum Css {
COLLAPSING = "collapsing",
D_NONE = "d-none",
DISABLED = "disabled",
+ DROPDOWN = "dropdown",
+ DROPDOWN_ITEM = "dropdown-item",
DROPDOWN_MENU = "dropdown-menu",
+ DROPDOWN_MENU_END = "dropdown-menu-end",
FIXED_BOTTOM = "fixed-bottom",
INPUT_GROUP = "input-group",
POSITION_RELATIVE = "position-relative",
@@ -36,6 +39,7 @@ export enum Css {
TOBAGO_COLLAPSED = "tobago-collapsed",
TOBAGO_DISABLED = "tobago-disabled",
TOBAGO_DROP_ZONE = "tobago-drop-zone",
+ TOBAGO_DROPDOWN_MENU = "tobago-dropdown-menu",
TOBAGO_DROPDOWN_SUBMENU = "tobago-dropdown-submenu",
TOBAGO_EXPANDED = "tobago-expanded",
TOBAGO_FOCUS = "tobago-focus",
diff --git a/tobago-theme/tobago-theme-standard/src/main/ts/tobago-dropdown-item-factory.ts b/tobago-theme/tobago-theme-standard/src/main/ts/tobago-dropdown-item-factory.ts
new file mode 100644
index 0000000000..2a99523d6f
--- /dev/null
+++ b/tobago-theme/tobago-theme-standard/src/main/ts/tobago-dropdown-item-factory.ts
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import {DropdownItem} from "./tobago-dropdown-item";
+import {Css} from "./tobago-css";
+
+export class DropdownItemFactory {
+ static create(dropdownMenu: HTMLDivElement): DropdownItem[] {
+ if (dropdownMenu.classList.contains(Css.TOBAGO_DROPDOWN_MENU)) {
+ const dropdownItems: DropdownItem[] = [];
+ dropdownMenu.querySelectorAll<HTMLElement>(
+ ":scope > a.dropdown-item, "
+ + ":scope > button.dropdown-item, "
+ + ":scope > tobago-select-boolean-checkbox.dropdown-item > input, "
+ + ":scope > tobago-select-boolean-toggle.dropdown-item > input, "
+ + ":scope > tobago-select-one-radio > .dropdown-item > input, "
+ + ":scope > tobago-select-many-checkbox > .dropdown-item > input, "
+ + ":scope > tobago-dropdown.tobago-dropdown-submenu > .dropdown-item").forEach(
+ (element) => {
+ dropdownItems.push(new DropdownItem(element));
+ }
+ );
+ return dropdownItems;
+ } else {
+ console.error("Given element is no dropdown menu.");
+ }
+ }
+}
diff --git a/tobago-theme/tobago-theme-standard/src/main/ts/tobago-dropdown-item.ts b/tobago-theme/tobago-theme-standard/src/main/ts/tobago-dropdown-item.ts
new file mode 100644
index 0000000000..78e12971ae
--- /dev/null
+++ b/tobago-theme/tobago-theme-standard/src/main/ts/tobago-dropdown-item.ts
@@ -0,0 +1,93 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import {Css} from "./tobago-css";
+import {DropdownItemFactory} from "./tobago-dropdown-item-factory";
+
+export class DropdownItem {
+ private _element: HTMLElement;
+
+ constructor(element: HTMLElement) {
+ this._element = element;
+ }
+
+ get ancestors(): DropdownItem[] {
+ const ancestors: DropdownItem[] = [];
+ let dropdownItem: DropdownItem = this as DropdownItem;
+ while (dropdownItem != null) {
+ ancestors.push(dropdownItem);
+ dropdownItem = dropdownItem.parent;
+ }
+ return ancestors;
+ }
+
+ get children(): DropdownItem[] {
+ const dropdownMenu = this.dropdownMenu;
+ if (dropdownMenu) {
+ return DropdownItemFactory.create(dropdownMenu);
+ }
+ }
+
+ get element(): HTMLElement {
+ return this._element;
+ }
+
+ get disabled(): boolean {
+ const input = this.element.querySelector("input");
+ return input ? input.disabled : this.element.getAttribute("disabled") === "disabled";
+ }
+
+ get focused(): boolean {
+ const root = this.element.getRootNode() as ShadowRoot | Document;
+ return root.activeElement === this.element;
+ }
+
+ get parent(): DropdownItem {
+ const dropdownItemElement: HTMLElement = this.element
+ .closest(`.${Css.TOBAGO_DROPDOWN_MENU}`)
+ ?.closest("tobago-dropdown")
+ ?.querySelector(":scope." + Css.TOBAGO_DROPDOWN_SUBMENU + " > ." + Css.DROPDOWN_ITEM);
+ return dropdownItemElement ? new DropdownItem(dropdownItemElement) : null;
+ }
+
+ get siblings(): DropdownItem[] {
+ const dropdownMenu: HTMLDivElement = this.element.closest(`.${Css.TOBAGO_DROPDOWN_MENU}`);
+ if (dropdownMenu) {
+ return DropdownItemFactory.create(dropdownMenu);
+ }
+ }
+
+ private get dropdownMenu(): HTMLDivElement {
+ return this.element.parentElement.querySelector(":scope > ." + Css.TOBAGO_DROPDOWN_MENU);
+ }
+
+ focus(options?: FocusOptions): void {
+ this.element.focus(options);
+ }
+
+ showSubMenu(): void {
+ if (!this.disabled) {
+ this.dropdownMenu?.classList.add(Css.SHOW);
+ }
+ }
+
+ hideSubMenu(): void {
+ this.dropdownMenu?.classList.remove(Css.SHOW);
+ }
+}
diff --git a/tobago-theme/tobago-theme-standard/src/main/ts/tobago-dropdown.ts b/tobago-theme/tobago-theme-standard/src/main/ts/tobago-dropdown.ts
index a07e6d7842..15f752f89a 100644
--- a/tobago-theme/tobago-theme-standard/src/main/ts/tobago-dropdown.ts
+++ b/tobago-theme/tobago-theme-standard/src/main/ts/tobago-dropdown.ts
@@ -17,6 +17,10 @@
import {MenuStore} from "./tobago-menu-store";
import {Css} from "./tobago-css";
+import {Key} from "./tobago-key";
+import {createPopper, Instance} from "@popperjs/core";
+import {DropdownItem} from "./tobago-dropdown-item";
+import {DropdownItemFactory} from "./tobago-dropdown-item-factory";
const TobagoDropdownEvent = {
HIDE: "tobago.dropdown.hide",
@@ -31,11 +35,25 @@ const TobagoDropdownEvent = {
*/
class Dropdown extends HTMLElement {
+ private popper: Instance;
+ private globalClickEventListener: EventListenerOrEventListenerObject;
+
constructor() {
super();
+ }
+
+ connectedCallback(): void {
if (!this.classList.contains(Css.TOBAGO_DROPDOWN_SUBMENU)) { // ignore submenus
- this.addEventListener("shown.bs.dropdown", this.openDropdown.bind(this));
- this.addEventListener("hidden.bs.dropdown", this.closeDropdown.bind(this));
+ this.popper = createPopper(this.toggle, this.dropdownMenu, {
+ placement: this.dropdownMenu.classList.contains(Css.DROPDOWN_MENU_END) ? "bottom-end" : "bottom-start",
+ });
+ this.globalClickEventListener = this.globalClickEvent.bind(this) as EventListenerOrEventListenerObject;
+ document.addEventListener("click", this.globalClickEventListener);
+ this.addEventListener("keydown", this.keydownEvent.bind(this));
+ this.dropdownMenu.addEventListener("keydown", this.keydownEvent.bind(this));
+ this.getAllDropdownItems(this.dropdownItems).forEach((dropdownItem) => {
+ dropdownItem.element.addEventListener("focus", this.focusEvent.bind(this));
+ });
}
// the click should not sort the column of a table - XXX not very nice - may look for a better solution
if (this.closest("tr") != null) {
@@ -45,24 +63,237 @@ class Dropdown extends HTMLElement {
}
}
- openDropdown(): void {
+ disconnectedCallback(): void {
+ document.removeEventListener("click", this.globalClickEventListener);
+ MenuStore.get().querySelector(`:scope > .${Css.TOBAGO_DROPDOWN_MENU}[name='${this.id}']`)?.remove();
+ }
+
+ get toggle(): HTMLButtonElement {
+ return this.querySelector(".dropdown-toggle");
+ }
+
+ get expanded(): boolean {
+ return this.toggle.ariaExpanded === "true";
+ }
+
+ get dropdownItems(): DropdownItem[] {
+ return DropdownItemFactory.create(this.dropdownMenu);
+ }
+
+ get dropdownMenu(): HTMLDivElement {
+ const root = this.getRootNode() as ShadowRoot | Document;
+ return root.querySelector(`.${Css.TOBAGO_DROPDOWN_MENU}[name='${this.id}']`);
+ }
+
+ private globalClickEvent(event: MouseEvent): void {
+ if (!this.toggle.disabled) {
+ const element = (event.target as Element);
+ if (this.isPartOfDropdown(event.target as Element)) {
+ if (element.getAttribute("for") !== null || element.tagName === "INPUT") {
+ /* do nothing if for-label, because click event triggers a second time on input element
+ do nothing if input element, because dropdown menu should stay open */
+ } else if (element.querySelector<HTMLInputElement>(":scope.dropdown-item > input") !== null) {
+ element.querySelector<HTMLInputElement>(":scope.dropdown-item > input")?.click();
+ } else if (this.getSubMenuToggle(element as HTMLElement) !== null) {
+ const subMenuToggle = this.getSubMenuToggle(element as HTMLElement);
+ subMenuToggle.click();
+ } else if (this.expanded) {
+ this.hideDropdown();
+ } else {
+ this.showDropdown();
+ }
+ } else {
+ this.hideDropdown();
+ }
+ }
+ }
+
+ private isPartOfDropdown(element: Element): boolean {
+ if (element) {
+ if (this.id === element.id || this.id === element.getAttribute("name")) {
+ return true;
+ } else {
+ return element.parentElement ? this.isPartOfDropdown(element.parentElement) : false;
+ }
+ } else {
+ return false;
+ }
+ }
+
+ private getSubMenuToggle(element: HTMLElement): HTMLElement {
+ if (element && element.classList.contains(Css.DROPDOWN_ITEM)
+ && element.parentElement && element.parentElement.classList.contains(Css.TOBAGO_DROPDOWN_SUBMENU)) {
+ return element;
+ } else if (element.parentElement) {
+ return this.getSubMenuToggle(element.parentElement);
+ } else {
+ return null;
+ }
+ }
+
+ private keydownEvent(event: KeyboardEvent): void {
+ switch (event.key) {
+ case Key.ARROW_DOWN:
+ event.preventDefault(); //prevent click event if radio button is selected
+ this.showDropdown();
+ this.getNextDropdownItem()?.focus();
+ break;
+ case Key.ARROW_UP:
+ event.preventDefault(); //prevent click event if radio button is selected
+ this.showDropdown();
+ this.getPreviousDropdownItem()?.focus();
+ break;
+ case Key.ARROW_RIGHT:
+ event.preventDefault(); //prevent click event if radio button is selected
+ this.getSubmenuDropdownItem()?.focus();
+ break;
+ case Key.ARROW_LEFT:
+ event.preventDefault(); //prevent click event if radio button is selected
+ this.getParentDropdownItem()?.focus();
+ break;
+ case Key.ESCAPE:
+ this.hideDropdown();
+ break;
+ default:
+ break;
+ }
+ }
+
+ private showDropdown(): void {
this.dispatchEvent(new CustomEvent(TobagoDropdownEvent.SHOW));
- if (!this.insideNavbar()) {
+ if (!this.insideNavbar() && !this.dropdownMenu.classList.contains(Css.SHOW)) {
MenuStore.appendChild(this.dropdownMenu);
}
+ this.toggle.classList.add(Css.SHOW);
+ this.toggle.ariaExpanded = "true";
+ this.dropdownMenu.classList.add(Css.SHOW);
+ this.popper.update();
this.dispatchEvent(new CustomEvent(TobagoDropdownEvent.SHOWN));
}
- closeDropdown(): void {
+ private hideDropdown(): void {
this.dispatchEvent(new CustomEvent(TobagoDropdownEvent.HIDE));
+
+ this.toggle.classList.remove(Css.SHOW);
+ this.toggle.ariaExpanded = "false";
+ this.dropdownMenu.classList.remove(Css.SHOW);
+ this.getAllDropdownItems(this.dropdownItems).forEach((dropdownItem) => dropdownItem.hideSubMenu());
if (!this.insideNavbar()) {
this.appendChild(this.dropdownMenu);
}
+
this.dispatchEvent(new CustomEvent(TobagoDropdownEvent.HIDDEN));
}
+ private getNextDropdownItem(): DropdownItem {
+ const focusedDropdownItem = this.getFocusedDropdownItem(this.dropdownItems);
+ if (focusedDropdownItem) {
+ const enabledDropdownItems = this.getEnabledDropdownItems(focusedDropdownItem.siblings);
+ if (enabledDropdownItems.length > 0) {
+ const index = enabledDropdownItems.findIndex((value) => value.element === focusedDropdownItem.element);
+ const newIndex = index === -1 ? 0 : index + 1;
+ if (newIndex >= 0 && newIndex < enabledDropdownItems.length) {
+ return enabledDropdownItems[newIndex];
+ } else {
+ return enabledDropdownItems[0];
+ }
+ }
+ } else {
+ const enabledDropdownItems = this.getEnabledDropdownItems(this.dropdownItems);
+ if (enabledDropdownItems.length > 0) {
+ return enabledDropdownItems[0];
+ }
+ }
+ }
+
+ private getPreviousDropdownItem(): DropdownItem {
+ const focusedDropdownItem = this.getFocusedDropdownItem(this.dropdownItems);
+ if (focusedDropdownItem) {
+ const enabledDropdownItems = this.getEnabledDropdownItems(focusedDropdownItem.siblings);
+ if (enabledDropdownItems.length > 0) {
+ const index = enabledDropdownItems.findIndex((value) => value.element === focusedDropdownItem.element);
+ const newIndex = index === -1 ? 0 : index - 1;
+ if (newIndex >= 0 && newIndex < enabledDropdownItems.length) {
+ return enabledDropdownItems[newIndex];
+ } else {
+ return enabledDropdownItems[enabledDropdownItems.length - 1];
+ }
+ }
+ } else {
+ const enabledDropdownItems = this.getEnabledDropdownItems(this.dropdownItems);
+ if (enabledDropdownItems.length > 0) {
+ return enabledDropdownItems[enabledDropdownItems.length - 1];
+ }
+ }
+ }
+
+ private getSubmenuDropdownItem(): DropdownItem {
+ const focusedDropdownItems = this.getFocusedDropdownItem(this.dropdownItems);
+ if (focusedDropdownItems && focusedDropdownItems.children) {
+ const enabledDropdownItems = this.getEnabledDropdownItems(focusedDropdownItems.children);
+ if (enabledDropdownItems.length > 0) {
+ return enabledDropdownItems[0];
+ }
+ }
+ }
+
+ private getParentDropdownItem(): DropdownItem {
+ const focusedDropdownItems = this.getFocusedDropdownItem(this.dropdownItems);
+ if (focusedDropdownItems) {
+ return focusedDropdownItems.parent;
+ }
+ }
+
+ private focusEvent(event: FocusEvent): void {
+ const dropdownItem = new DropdownItem(event.target as HTMLElement);
+ const ancestors: DropdownItem[] = dropdownItem.ancestors;
+ const allDropdownItems: DropdownItem[] = this.getAllDropdownItems(this.dropdownItems);
+ allDropdownItems.forEach((dropdownItem) => {
+ if (ancestors.find((ancestor) => ancestor.element === dropdownItem.element)) {
+ dropdownItem.showSubMenu();
+ } else {
+ dropdownItem.hideSubMenu();
+ }
+ });
+ }
+
+ private getFocusedDropdownItem(dropdownItems: DropdownItem[]): DropdownItem {
+ if (dropdownItems) {
+ for (let i = 0; i < dropdownItems.length; i++) {
+ const dropdownItem = dropdownItems[i];
+ const focusedDropdownItem = this.getFocusedDropdownItem(dropdownItem.children);
+ if (focusedDropdownItem != null) {
+ return focusedDropdownItem;
+ } else if (dropdownItem.focused) {
+ return dropdownItem;
+ }
+ }
+ }
+ }
+
+ private getEnabledDropdownItems(dropdownItems: DropdownItem[]): DropdownItem[] {
+ const enabledDropdownItems: DropdownItem[] = [];
+ dropdownItems.forEach((dropdownItem) => {
+ if (!dropdownItem.disabled) {
+ enabledDropdownItems.push(dropdownItem);
+ }
+ });
+ return enabledDropdownItems;
+ }
+
+ private getAllDropdownItems(dropdownItems: DropdownItem[]): DropdownItem[] {
+ let allDropdownItems: DropdownItem[] = [];
+ dropdownItems.forEach((dropdownItem) => {
+ allDropdownItems.push(dropdownItem);
+ if (dropdownItem.children) {
+ allDropdownItems = allDropdownItems.concat(this.getAllDropdownItems(dropdownItem.children));
+ }
+ });
+ return allDropdownItems;
+ }
+
/**
* The bootstrap dropdown implementation doesn't adjust the position of the dropdown menu if inside a '.navbar'.
* In this case the dropdown menu should not be appended to the menu store.
@@ -71,11 +302,6 @@ class Dropdown extends HTMLElement {
private insideNavbar(): boolean {
return Boolean(this.closest(".navbar"));
}
-
- private get dropdownMenu(): HTMLDivElement {
- const root = this.getRootNode() as ShadowRoot | Document;
- return root.querySelector(`.dropdown-menu[name='${this.id}']`);
- }
}
document.addEventListener("tobago.init", function (event: Event): void {
diff --git a/tobago-theme/tobago-theme-standard/src/main/ts/tobago-key.ts b/tobago-theme/tobago-theme-standard/src/main/ts/tobago-key.ts
index cdb99fbbf7..3b50d24905 100644
--- a/tobago-theme/tobago-theme-standard/src/main/ts/tobago-key.ts
+++ b/tobago-theme/tobago-theme-standard/src/main/ts/tobago-key.ts
@@ -19,6 +19,8 @@
export enum Key {
ARROW_DOWN = "ArrowDown",
+ ARROW_LEFT = "ArrowLeft",
+ ARROW_RIGHT = "ArrowRight",
ARROW_UP = "ArrowUp",
BACKSPACE = "Backspace",
ENTER = "Enter",
[myfaces-tobago] 01/03: fix: tobago test tools
Posted by hn...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
hnoeth pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/myfaces-tobago.git
commit a8dcad832b25971afe856ad7c4e63e0d95f74d9d
Author: Henning Noeth <hn...@apache.org>
AuthorDate: Wed May 10 09:20:47 2023 +0200
fix: tobago test tools
* can now focus buttons and links
---
.../META-INF/resources/tobago/test/tobago-test-tool.js | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/tobago-tool/tobago-tool-test/src/main/resources/META-INF/resources/tobago/test/tobago-test-tool.js b/tobago-tool/tobago-tool-test/src/main/resources/META-INF/resources/tobago/test/tobago-test-tool.js
index c550dfc4b1..6a78f1c744 100644
--- a/tobago-tool/tobago-tool-test/src/main/resources/META-INF/resources/tobago/test/tobago-test-tool.js
+++ b/tobago-tool/tobago-tool-test/src/main/resources/META-INF/resources/tobago/test/tobago-test-tool.js
@@ -93,6 +93,14 @@ class JasmineTestTool {
eventElement().dispatchEvent(new Event(eventType, {bubbles: true}))
}
}
+ } else if (eventType === "focus") {
+ eventFn = () => {
+ if (eventElement().tagName === "A" || eventElement().tagName === "BUTTON") {
+ eventElement().focus();
+ } else {
+ eventElement().dispatchEvent(new Event(eventType, {bubbles: true}))
+ }
+ }
} else {
eventFn = () => eventElement().dispatchEvent(new Event(eventType, {bubbles: true}));
}
@@ -125,6 +133,14 @@ class JasmineTestTool {
element().dispatchEvent(new Event(type, {bubbles: true}))
}
}
+ } else if (type === "focus") {
+ eventFn = () => {
+ if (element().tagName === "A" || element().tagName === "BUTTON") {
+ element().focus();
+ } else {
+ element().dispatchEvent(new Event(type, {bubbles: true}))
+ }
+ }
} else {
eventFn = () => element().dispatchEvent(new Event(type, {bubbles: true}));
}