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 2025/03/20 09:14:12 UTC
(myfaces-tobago) branch main updated (d5360f082e -> b5185df4b5)
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 d5360f082e fix: spelling (#6182)
new a47961f6a4 fix(dropdown): suggest
new b5185df4b5 build(theme): rebuild
The 2 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:
.../content/010-input/20-suggest/Suggest.test.js | 96 ++---
.../1020-suggest-quotMark/Suggest_QuotMark.test.js | 32 +-
tobago-theme/src/main/scss/_tobago.scss | 24 +-
.../src/main/css/tobago.css | 61 ++--
.../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 | 61 ++--
.../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 | 61 ++--
.../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 | 87 +++--
.../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 | 61 ++--
.../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 | 2 +
.../src/main/ts/tobago-dropdown-menu.ts | 4 +
.../tobago-theme-standard/src/main/ts/tobago-in.ts | 10 +-
.../src/main/ts/tobago-suggest.ts | 390 +++++++++++++--------
29 files changed, 574 insertions(+), 355 deletions(-)
(myfaces-tobago) 01/02: fix(dropdown): suggest
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 a47961f6a49e33b89265dedd27bc13602e9fea04
Author: Henning Noeth <hn...@apache.org>
AuthorDate: Fri Mar 14 12:04:36 2025 +0100
fix(dropdown): suggest
Refactor dropdown menu handling (scrolling/positioning). If the user scrolls, the dropdown menu should be closed. The dropdown menu is now scrollable if it is too big for the screen. The reference element must always be visible (important for filtering and tc:suggests).
* Autocomplete replaced with own implementation
* adjust tests
Issue: TOBAGO-2400
---
.../content/010-input/20-suggest/Suggest.test.js | 96 ++---
.../1020-suggest-quotMark/Suggest_QuotMark.test.js | 32 +-
tobago-theme/src/main/scss/_tobago.scss | 24 +-
.../src/main/ts/tobago-css.ts | 2 +
.../src/main/ts/tobago-dropdown-menu.ts | 4 +
.../tobago-theme-standard/src/main/ts/tobago-in.ts | 10 +-
.../src/main/ts/tobago-suggest.ts | 390 +++++++++++++--------
7 files changed, 341 insertions(+), 217 deletions(-)
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/010-input/20-suggest/Suggest.test.js b/tobago-example/tobago-example-demo/src/main/webapp/content/010-input/20-suggest/Suggest.test.js
index d8c4f855bc..d7f048f3c5 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/010-input/20-suggest/Suggest.test.js
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/010-input/20-suggest/Suggest.test.js
@@ -20,14 +20,14 @@ import {JasmineTestTool} from "/tobago/test/tobago-test-tool.js";
it("Basics: 'M'", function (done) {
const inputFn = elementByIdFn("page:mainForm:inBasic::field");
- const resultId = inputFn().getAttribute("aria-owns");
- const resultListFn = querySelectorAllFn("#" + resultId + " .autocomplete-result");
+ const resultId = inputFn().getAttribute("aria-owns").replaceAll(":", "\\:");
+ const resultListFn = querySelectorAllFn("#" + resultId + " .dropdown-item");
const test = new JasmineTestTool(done);
test.setup(() => resultListFn().length !== 10,
- () => inputFn().value = "", "focus", inputFn);
+ () => inputFn().value = "", "input", inputFn);
test.do(() => inputFn().value = "M");
- test.event("focus", inputFn, () => resultListFn().length === 10);
+ test.event("input", inputFn, () => resultListFn().length === 10);
test.do(() => expect(resultListFn().length).toBe(10));
test.do(() => expect(resultListFn()[0].textContent).toBe("Mercury"));
test.do(() => expect(resultListFn()[1].textContent).toBe("Mars"));
@@ -45,14 +45,14 @@ it("Basics: 'M'", function (done) {
it("Basics: 'Ma'", function (done) {
const inputFn = elementByIdFn("page:mainForm:inBasic::field");
- const resultId = inputFn().getAttribute("aria-owns");
- const resultListFn = querySelectorAllFn("#" + resultId + " .autocomplete-result");
+ const resultId = inputFn().getAttribute("aria-owns").replaceAll(":", "\\:");
+ const resultListFn = querySelectorAllFn("#" + resultId + " .dropdown-item");
const test = new JasmineTestTool(done);
test.setup(() => resultListFn().length !== 4,
- () => inputFn().value = "", "focus", inputFn);
+ () => inputFn().value = "", "input", inputFn);
test.do(() => inputFn().value = "Ma");
- test.event("focus", inputFn, () => resultListFn().length === 4);
+ test.event("input", inputFn, () => resultListFn().length === 4);
test.do(() => expect(resultListFn().length).toBe(4));
test.do(() => expect(resultListFn()[0].textContent).toBe("Mars"));
test.do(() => expect(resultListFn()[1].textContent).toBe("Amalthea"));
@@ -64,14 +64,14 @@ it("Basics: 'Ma'", function (done) {
it("Basics: 'Mar'", function (done) {
const inputFn = elementByIdFn("page:mainForm:inBasic::field");
- const resultId = inputFn().getAttribute("aria-owns");
- const resultListFn = querySelectorAllFn("#" + resultId + " .autocomplete-result");
+ const resultId = inputFn().getAttribute("aria-owns").replaceAll(":", "\\:");
+ const resultListFn = querySelectorAllFn("#" + resultId + " .dropdown-item");
const test = new JasmineTestTool(done);
test.setup(() => resultListFn().length !== 1,
- () => inputFn().value = "", "focus", inputFn);
+ () => inputFn().value = "", "input", inputFn);
test.do(() => inputFn().value = "Mar");
- test.event("focus", inputFn, () => resultListFn().length === 1);
+ test.event("input", inputFn, () => resultListFn().length === 1);
test.do(() => expect(resultListFn().length).toBe(1));
test.do(() => expect(resultListFn()[0].textContent).toBe("Mars"));
test.event("blur", inputFn, () => resultListFn().length === 0);
@@ -80,14 +80,14 @@ it("Basics: 'Mar'", function (done) {
it("Basics: 'Mars'", function (done) {
const inputFn = elementByIdFn("page:mainForm:inBasic::field");
- const resultId = inputFn().getAttribute("aria-owns");
- const resultListFn = querySelectorAllFn("#" + resultId + " .autocomplete-result");
+ const resultId = inputFn().getAttribute("aria-owns").replaceAll(":", "\\:");
+ const resultListFn = querySelectorAllFn("#" + resultId + " .dropdown-item");
const test = new JasmineTestTool(done);
test.setup(() => resultListFn().length !== 1,
- () => inputFn().value = "", "focus", inputFn);
+ () => inputFn().value = "", "input", inputFn);
test.do(() => inputFn().value = "Mars");
- test.event("focus", inputFn, () => resultListFn().length === 1);
+ test.event("input", inputFn, () => resultListFn().length === 1);
test.do(() => expect(resultListFn().length).toBe(1));
test.do(() => expect(resultListFn()[0].textContent).toBe("Mars"));
test.event("blur", inputFn, () => resultListFn().length === 0);
@@ -96,15 +96,15 @@ it("Basics: 'Mars'", function (done) {
it("Basics: Add 'eus' and click first entry.", function (done) {
const inputFn = elementByIdFn("page:mainForm:inBasic::field");
- const resultId = inputFn().getAttribute("aria-owns");
- const resultListFn = querySelectorAllFn("#" + resultId + " .autocomplete-result");
- const firstResult = querySelectorFn("#" + resultId + " .autocomplete-result[data-result-index='0']");
+ const resultId = inputFn().getAttribute("aria-owns").replaceAll(":", "\\:");
+ const resultListFn = querySelectorAllFn("#" + resultId + " .dropdown-item");
+ const firstResult = querySelectorFn("#" + resultId + " [data-result-index='0'] > .dropdown-item");
const test = new JasmineTestTool(done);
test.setup(() => resultListFn().length !== 3,
- () => inputFn().value = "", "focus", inputFn);
+ () => inputFn().value = "", "input", inputFn);
test.do(() => inputFn().value = "eus");
- test.event("focus", inputFn, () => resultListFn().length === 3);
+ test.event("input", inputFn, () => resultListFn().length === 3);
test.do(() => expect(resultListFn().length).toBe(3));
test.do(() => expect(resultListFn()[0].textContent).toBe("Prometheus"));
test.do(() => expect(resultListFn()[1].textContent).toBe("Epimetheus"));
@@ -116,28 +116,28 @@ it("Basics: Add 'eus' and click first entry.", function (done) {
it("Minimum Characters: 'C'", function (done) {
const inputFn = elementByIdFn("page:mainForm:minimumCharacters::field");
- const resultId = inputFn().getAttribute("aria-owns");
- const resultListFn = querySelectorAllFn("#" + resultId + " .autocomplete-result");
+ const resultId = inputFn().getAttribute("aria-owns").replaceAll(":", "\\:");
+ const resultListFn = querySelectorAllFn("#" + resultId + " .dropdown-item");
const test = new JasmineTestTool(done);
test.setup(() => resultListFn().length !== 0,
- () => inputFn().value = "Ear", "focus", inputFn);
+ () => inputFn().value = "Ear", "input", inputFn);
test.do(() => inputFn().value = "C");
- test.event("focus", inputFn, () => resultListFn().length === 0);
+ test.event("input", inputFn, () => resultListFn().length === 0);
test.do(() => expect(resultListFn().length).toBe(0));
test.start();
});
it("Minimum Characters: 'Ca'", function (done) {
const inputFn = elementByIdFn("page:mainForm:minimumCharacters::field");
- const resultId = inputFn().getAttribute("aria-owns");
- const resultListFn = querySelectorAllFn("#" + resultId + " .autocomplete-result");
+ const resultId = inputFn().getAttribute("aria-owns").replaceAll(":", "\\:");
+ const resultListFn = querySelectorAllFn("#" + resultId + " .dropdown-item");
const test = new JasmineTestTool(done);
test.setup(() => resultListFn().length !== 7,
- () => inputFn().value = "Ear", "focus", inputFn);
+ () => inputFn().value = "Ear", "input", inputFn);
test.do(() => inputFn().value = "Ca");
- test.event("focus", inputFn, () => resultListFn().length === 7);
+ test.event("input", inputFn, () => resultListFn().length === 7);
test.do(() => expect(resultListFn().length).toBe(7));
test.do(() => expect(resultListFn()[0].textContent).toBe("Callisto"));
test.do(() => expect(resultListFn()[1].textContent).toBe("Carme"));
@@ -152,12 +152,12 @@ it("Minimum Characters: 'Ca'", function (done) {
it("Minimum Characters: Zero", function (done) {
const inputFn = elementByIdFn("page:mainForm:minimumCharacters0::field");
- const resultId = inputFn().getAttribute("aria-owns");
- const resultListFn = querySelectorAllFn("#" + resultId + " .autocomplete-result");
+ const resultId = inputFn().getAttribute("aria-owns").replaceAll(":", "\\:");
+ const resultListFn = querySelectorAllFn("#" + resultId + " .dropdown-item");
const test = new JasmineTestTool(done);
test.setup(() => resultListFn().length === 0, () => inputFn().value = "", "blur", inputFn);
- test.event("focus", inputFn, () => resultListFn().length > 0);
+ test.event("input", inputFn, () => resultListFn().length > 0);
test.do(() => expect(resultListFn().length).toBeGreaterThan(0));
test.event("blur", inputFn, () => resultListFn().length === 0);
test.start();
@@ -165,14 +165,14 @@ it("Minimum Characters: Zero", function (done) {
it("Client side: 'Ju'", function (done) {
const inputFn = elementByIdFn("page:mainForm:inClient::field");
- const resultId = inputFn().getAttribute("aria-owns");
- const resultListFn = querySelectorAllFn("#" + resultId + " .autocomplete-result");
+ const resultId = inputFn().getAttribute("aria-owns").replaceAll(":", "\\:");
+ const resultListFn = querySelectorAllFn("#" + resultId + " .dropdown-item");
const test = new JasmineTestTool(done);
test.setup(() => resultListFn().length !== 2,
- () => inputFn().value = "", "focus", inputFn);
+ () => inputFn().value = "", "input", inputFn);
test.do(() => inputFn().value = "Ju");
- test.event("focus", inputFn, () => resultListFn().length === 2);
+ test.event("input", inputFn, () => resultListFn().length === 2);
test.do(() => expect(resultListFn().length).toBe(2));
test.do(() => expect(resultListFn()[0].textContent).toBe("Jupiter"));
test.do(() => expect(resultListFn()[1].textContent).toBe("Juliet"));
@@ -182,14 +182,14 @@ it("Client side: 'Ju'", function (done) {
it("Client side - Filter All: 'me'", function (done) {
const inputFn = elementByIdFn("page:mainForm:inClientFilterAll::field");
- const resultId = inputFn().getAttribute("aria-owns");
- const resultListFn = querySelectorAllFn("#" + resultId + " .autocomplete-result");
+ const resultId = inputFn().getAttribute("aria-owns").replaceAll(":", "\\:");
+ const resultListFn = querySelectorAllFn("#" + resultId + " .dropdown-item");
const test = new JasmineTestTool(done);
test.setup(() => resultListFn().length !== 88,
- () => inputFn().value = "", "focus", inputFn);
+ () => inputFn().value = "", "input", inputFn);
test.do(() => inputFn().value = "me");
- test.event("focus", inputFn, () => resultListFn().length === 88);
+ test.event("input", inputFn, () => resultListFn().length === 88);
test.do(() => expect(resultListFn().length).toBe(88));
test.do(() => expect(resultListFn()[0].textContent).toBe("Sun"));
test.do(() => expect(resultListFn()[1].textContent).toBe("Mercury"));
@@ -285,14 +285,14 @@ it("Client side - Filter All: 'me'", function (done) {
it("Client side - Filter Prefix: 'me'", function (done) {
const inputFn = elementByIdFn("page:mainForm:inClientFilterPrefix::field");
- const resultId = inputFn().getAttribute("aria-owns");
- const resultListFn = querySelectorAllFn("#" + resultId + " .autocomplete-result");
+ const resultId = inputFn().getAttribute("aria-owns").replaceAll(":", "\\:");
+ const resultListFn = querySelectorAllFn("#" + resultId + " .dropdown-item");
const test = new JasmineTestTool(done);
test.setup(() => resultListFn().length !== 3,
- () => inputFn().value = "", "focus", inputFn);
+ () => inputFn().value = "", "input", inputFn);
test.do(() => inputFn().value = "me");
- test.event("focus", inputFn, () => resultListFn().length === 3);
+ test.event("input", inputFn, () => resultListFn().length === 3);
test.do(() => expect(resultListFn().length).toBe(3));
test.do(() => expect(resultListFn()[0].textContent).toBe("Mercury"));
test.do(() => expect(resultListFn()[1].textContent).toBe("Metis"));
@@ -303,14 +303,14 @@ it("Client side - Filter Prefix: 'me'", function (done) {
it("Client side - Filter Contains: 'me'", function (done) {
const inputFn = elementByIdFn("page:mainForm:inClientFilterContains::field");
- const resultId = inputFn().getAttribute("aria-owns");
- const resultListFn = querySelectorAllFn("#" + resultId + " .autocomplete-result");
+ const resultId = inputFn().getAttribute("aria-owns").replaceAll(":", "\\:");
+ const resultListFn = querySelectorAllFn("#" + resultId + " .dropdown-item");
const test = new JasmineTestTool(done);
test.setup(() => resultListFn().length !== 8,
- () => inputFn().value = "", "focus", inputFn);
+ () => inputFn().value = "", "input", inputFn);
test.do(() => inputFn().value = "me");
- test.event("focus", inputFn, () => resultListFn().length === 8);
+ test.event("input", inputFn, () => resultListFn().length === 8);
test.do(() => expect(resultListFn().length).toBe(8));
test.do(() => expect(resultListFn()[0].textContent).toBe("Mercury"));
test.do(() => expect(resultListFn()[1].textContent).toBe("Metis"));
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/900-test/1020-suggest-quotMark/Suggest_QuotMark.test.js b/tobago-example/tobago-example-demo/src/main/webapp/content/900-test/1020-suggest-quotMark/Suggest_QuotMark.test.js
index 050ee8f56a..985541e614 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/900-test/1020-suggest-quotMark/Suggest_QuotMark.test.js
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/900-test/1020-suggest-quotMark/Suggest_QuotMark.test.js
@@ -20,14 +20,14 @@ import {JasmineTestTool} from "/tobago/test/tobago-test-tool.js";
it("Basics: 'M'", function (done) {
const inputFn = elementByIdFn("page:mainForm:input::field");
- const resultId = inputFn().getAttribute("aria-owns");
- const resultListFn = querySelectorAllFn("#" + resultId + " .autocomplete-result");
+ const resultId = inputFn().getAttribute("aria-owns").replaceAll(":", "\\:");
+ const resultListFn = querySelectorAllFn("#" + resultId + " .dropdown-item");
const test = new JasmineTestTool(done);
test.setup(() => resultListFn().length !== 3,
- () => inputFn().value = "", "focus", inputFn);
+ () => inputFn().value = "", "input", inputFn);
test.do(() => inputFn().value = "M");
- test.event("focus", inputFn, () => resultListFn().length === 3);
+ test.event("input", inputFn, () => resultListFn().length === 3);
test.do(() => expect(resultListFn().length).toBe(3));
test.do(() => expect(resultListFn()[0].textContent).toBe("Mercury"));
test.do(() => expect(resultListFn()[1].textContent).toBe("Mars"));
@@ -38,14 +38,14 @@ it("Basics: 'M'", function (done) {
it("Basics: 'Ma'", function (done) {
const inputFn = elementByIdFn("page:mainForm:input::field");
- const resultId = inputFn().getAttribute("aria-owns");
- const resultListFn = querySelectorAllFn("#" + resultId + " .autocomplete-result");
+ const resultId = inputFn().getAttribute("aria-owns").replaceAll(":", "\\:");
+ const resultListFn = querySelectorAllFn("#" + resultId + " .dropdown-item");
const test = new JasmineTestTool(done);
test.setup(() => resultListFn().length !== 2,
- () => inputFn().value = "", "focus", inputFn);
+ () => inputFn().value = "", "input", inputFn);
test.do(() => inputFn().value = "Ma");
- test.event("focus", inputFn, () => resultListFn().length === 2);
+ test.event("input", inputFn, () => resultListFn().length === 2);
test.do(() => expect(resultListFn().length).toBe(2));
test.do(() => expect(resultListFn()[0].textContent).toBe("Mars"));
test.do(() => expect(resultListFn()[1].textContent).toBe("Quotation\"Mark"));
@@ -55,14 +55,14 @@ it("Basics: 'Ma'", function (done) {
it("Basics: 'Mar'", function (done) {
const inputFn = elementByIdFn("page:mainForm:input::field");
- const resultId = inputFn().getAttribute("aria-owns");
- const resultListFn = querySelectorAllFn("#" + resultId + " .autocomplete-result");
+ const resultId = inputFn().getAttribute("aria-owns").replaceAll(":", "\\:");
+ const resultListFn = querySelectorAllFn("#" + resultId + " .dropdown-item");
const test = new JasmineTestTool(done);
test.setup(() => resultListFn().length !== 2,
- () => inputFn().value = "", "focus", inputFn);
+ () => inputFn().value = "", "input", inputFn);
test.do(() => inputFn().value = "Mar");
- test.event("focus", inputFn, () => resultListFn().length === 2);
+ test.event("input", inputFn, () => resultListFn().length === 2);
test.do(() => expect(resultListFn().length).toBe(2));
test.do(() => expect(resultListFn()[0].textContent).toBe("Mars"));
test.do(() => expect(resultListFn()[1].textContent).toBe("Quotation\"Mark"));
@@ -72,14 +72,14 @@ it("Basics: 'Mar'", function (done) {
it("Basics: 'Mars'", function (done) {
const inputFn = elementByIdFn("page:mainForm:input::field");
- const resultId = inputFn().getAttribute("aria-owns");
- const resultListFn = querySelectorAllFn("#" + resultId + " .autocomplete-result");
+ const resultId = inputFn().getAttribute("aria-owns").replaceAll(":", "\\:");
+ const resultListFn = querySelectorAllFn("#" + resultId + " .dropdown-item");
const test = new JasmineTestTool(done);
test.setup(() => resultListFn().length !== 1,
- () => inputFn().value = "", "focus", inputFn);
+ () => inputFn().value = "", "input", inputFn);
test.do(() => inputFn().value = "Mars");
- test.event("focus", inputFn, () => resultListFn().length === 1);
+ test.event("input", inputFn, () => resultListFn().length === 1);
test.do(() => expect(resultListFn().length).toBe(1));
test.do(() => expect(resultListFn()[0].textContent).toBe("Mars"));
test.event("blur", inputFn, () => resultListFn().length === 0);
diff --git a/tobago-theme/src/main/scss/_tobago.scss b/tobago-theme/src/main/scss/_tobago.scss
index 0450d775d1..52c508853f 100644
--- a/tobago-theme/src/main/scss/_tobago.scss
+++ b/tobago-theme/src/main/scss/_tobago.scss
@@ -385,6 +385,12 @@ @mixin selectListBorderColorShadow($name, $color) {
}
}
+@mixin suggestDropdownMenu() {
+ > .tobago-dropdown-menu {
+ @include tobagoDropdownMenuValues();
+ }
+}
+
@mixin tobagoDropdownMenuValues() { // use this mixin inside every .tobago-dropdown-menu class
/* 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. */
@@ -808,7 +814,6 @@ tobago-image {
}
}
-/* in ----------------------------------------------------------- */
tobago-in {
display: block;
@@ -840,16 +845,22 @@ tobago-in {
}
}
- &.autocomplete[data-loading=true] .autocomplete-pseudo-container {
+ .spinner {
+ display: none;
position: absolute;
+ &.tobago-show {
+ display: block;
+ }
+
&:after {
content: "";
border: 3px solid rgba(0, 0, 0, .12);
border-right-color: rgba(0, 0, 0, .48);
border-radius: 100%;
- width: 20px;
- height: 20px;
+ width: 100%;
+ height: 100%;
+ top: 50%;
position: absolute;
z-index: 5;
transform: translateY(-50%);
@@ -857,8 +868,8 @@ tobago-in {
}
}
- .autocomplete-result-list {
- cursor: pointer;
+ .tobago-dropdown-menu-anchor {
+ @include suggestDropdownMenu();
}
tobago-suggest {
@@ -1126,6 +1137,7 @@ tobago-page {
.tobago-page-menuStore {
@include buttonDropdownMenu();
@include selectListOptions();
+ @include suggestDropdownMenu();
position: fixed;
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 2092d4779b..caef78b3dc 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
@@ -38,6 +38,7 @@ export enum Css {
POSITION_FIXED = "position-fixed",
POSITION_RELATIVE = "position-relative",
SHOW = "show",
+ SPINNER = "spinner",
START_0 = "start-0",
START_50 = "start-50",
TABLE_ACTIVE = "table-active",
@@ -52,6 +53,7 @@ export enum Css {
TOBAGO_DISABLED = "tobago-disabled",
TOBAGO_DROP_ZONE = "tobago-drop-zone",
TOBAGO_DROPDOWN_MENU = "tobago-dropdown-menu",
+ TOBAGO_DROPDOWN_MENU_ANCHOR = "tobago-dropdown-menu-anchor",
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-menu.ts b/tobago-theme/tobago-theme-standard/src/main/ts/tobago-dropdown-menu.ts
index 6724c24c20..c2c7a28097 100644
--- a/tobago-theme/tobago-theme-standard/src/main/ts/tobago-dropdown-menu.ts
+++ b/tobago-theme/tobago-theme-standard/src/main/ts/tobago-dropdown-menu.ts
@@ -212,4 +212,8 @@ export class DropdownMenu {
const root = document.getRootNode() as ShadowRoot | Document;
return root.querySelector("tobago-footer.fixed-bottom");
}
+
+ get visible(): boolean {
+ return this.dropdownMenuElement.classList.contains(Css.SHOW);
+ }
}
diff --git a/tobago-theme/tobago-theme-standard/src/main/ts/tobago-in.ts b/tobago-theme/tobago-theme-standard/src/main/ts/tobago-in.ts
index 0e3095d333..98e7c70871 100644
--- a/tobago-theme/tobago-theme-standard/src/main/ts/tobago-in.ts
+++ b/tobago-theme/tobago-theme-standard/src/main/ts/tobago-in.ts
@@ -19,6 +19,8 @@ import {Focus} from "./tobago-focus";
import {Suggest} from "./tobago-suggest";
export class In extends HTMLElement {
+ private suggest: Suggest;
+
constructor() {
super();
}
@@ -26,11 +28,15 @@ export class In extends HTMLElement {
connectedCallback(): void {
this.input.addEventListener("focus", Focus.setLastFocusId);
if (this.querySelector("tobago-suggest")) {
- const suggest = new Suggest(this);
- suggest.init();
+ this.suggest = new Suggest(this);
+ this.suggest.init();
}
}
+ disconnectedCallback(): void {
+ this.suggest?.disconnect();
+ }
+
get input(): HTMLInputElement {
const rootNode = this.getRootNode() as ShadowRoot | Document;
return rootNode.getElementById(this.id + "::field") as HTMLInputElement;
diff --git a/tobago-theme/tobago-theme-standard/src/main/ts/tobago-suggest.ts b/tobago-theme/tobago-theme-standard/src/main/ts/tobago-suggest.ts
index bd0eea9552..e682f4b961 100644
--- a/tobago-theme/tobago-theme-standard/src/main/ts/tobago-suggest.ts
+++ b/tobago-theme/tobago-theme-standard/src/main/ts/tobago-suggest.ts
@@ -15,221 +15,321 @@
* limitations under the License.
*/
-import Autocomplete from "@trevoreyre/autocomplete-js";
import {SuggestFilter} from "./tobago-suggest-filter";
-import {MenuStore} from "./tobago-menu-store";
import {Css} from "./tobago-css";
+import {DropdownMenu, DropdownMenuAlignment} from "./tobago-dropdown-menu";
+import {Key} from "./tobago-key";
+import {ClientBehaviors} from "./tobago-client-behaviors";
export class Suggest {
-
- autocomplete: Autocomplete;
- tobagoIn: HTMLElement;
- resolve: any;
+ private tobagoIn: HTMLElement;
+ private dropdownMenu: DropdownMenu;
+ private timeout: number;
constructor(tobagoIn: HTMLElement) {
this.tobagoIn = tobagoIn;
}
public init(): void {
- if (!this.suggest) {
+ if (!this.tobagoSuggest) {
console.warn("[tobago-suggest] could not find tobago-suggest");
return;
}
+ this.tobagoSuggest.insertAdjacentHTML("beforebegin", `<div class="${Css.SPINNER}"/>`);
+ this.tobagoSuggest.insertAdjacentHTML("beforebegin", `<div class="${Css.TOBAGO_DROPDOWN_MENU_ANCHOR}"}">
+ <ul id="${this.tobagoSuggest.id + "::dropdownMenu"}" class="${Css.TOBAGO_DROPDOWN_MENU}"
+ name="${this.tobagoSuggest.id}" role="listbox"/></div>`);
+
+ this.dropdownMenu = new DropdownMenu(this.dropdownMenuElement, this.inputField, this.tobagoIn, this.localMenu,
+ DropdownMenuAlignment.centerFullWidth);
+
+ this.inputField.role = "combobox";
+ this.inputField.autocomplete = "off";
+ this.inputField.autocapitalize = "off";
+ this.inputField.spellcheck = false;
+ this.inputField.ariaAutoComplete = "list";
+ this.inputField.ariaHasPopup = "listbox";
+ this.inputField.setAttribute("aria-owns", this.dropdownMenuElement.id);
+
+ this.tobagoIn.addEventListener(ClientBehaviors.DROPDOWN_HIDDEN, this.deleteResults.bind(this));
+ this.inputField.addEventListener("input", this.inputEvent.bind(this));
+ this.inputField.addEventListener("keydown", this.keydownEvent.bind(this));
+ this.dropdownMenuElement.addEventListener("keydown", this.keydownEvent.bind(this));
+
+ this.inputField.addEventListener("blur", this.blurEvent.bind(this));
+ this.dropdownMenuElement.addEventListener("blur", this.blurEvent.bind(this));
+ }
+
+ /**
+ * Call this in the disconnectedCallback() method.
+ */
+ public disconnect(): void {
+ this.dropdownMenu.disconnect();
+ }
- this.registerAjaxListener();
- this.base.classList.add(Css.AUTOCOMPLETE);
- this.suggestInput.classList.add(Css.AUTOCOMPLETE_INPUT);
+ private blurEvent(event: FocusEvent): void {
+ const element = (event.relatedTarget as Element);
+ if (!this.isPartOfSuggest(element)) {
+ this.dropdownMenu.hide();
+ }
+ }
- if (this.isInputGroup && this.suggestInput.previousElementSibling === null) {
- this.suggestInput.insertAdjacentHTML("afterend", "<div class=\"autocomplete-pseudo-container\"></div>");
+ private isPartOfSuggest(element: Element): boolean {
+ if (element) {
+ if (this.inputField.id === element.id || this.tobagoSuggest.id === element.getAttribute("name")) {
+ return true;
+ } else {
+ return element.parentElement ? this.isPartOfSuggest(element.parentElement) : false;
+ }
} else {
- this.suggestInput.insertAdjacentHTML("beforebegin", "<div class=\"autocomplete-pseudo-container\"></div>");
+ return false;
}
- this.suggestInput.insertAdjacentHTML("afterend", "<ul class=\"autocomplete-result-list\"></ul>");
+ }
- const options = {
- search: (input: string) => {
- console.debug("[tobago-suggest] input = '%s'", input);
- if (input.length < this.minChars) {
- return [];
+ private keydownEvent(event: KeyboardEvent): void {
+ switch (event.key) {
+ case Key.ARROW_DOWN:
+ this.focusNextDropdownItem(event);
+ break;
+ case Key.ARROW_UP:
+ this.focusPreviousDropdownItem(event);
+ break;
+ case Key.TAB: {
+ if (event.shiftKey) {
+ this.focusPreviousDropdownItem(event);
+ } else {
+ this.focusNextDropdownItem(event);
}
- this.hiddenInput.value = input.toLowerCase();
-
- this.positioningSpinner();
-
- return new Promise(resolve => {
-
- if (this.update) {
- this.resolve = resolve;
- const suggestId = this.suggest.id;
- faces.ajax.request(suggestId, null, {
- params: {
- "jakarta.faces.behavior.event": "suggest"
- },
- execute: suggestId,
- render: suggestId
- });
- } else {
- switch (this.filter) {
- case SuggestFilter.all:
- return resolve(this.filterAll());
- case SuggestFilter.prefix:
- return resolve(this.filterPrefix());
- default:
- return resolve(this.filterContains());
- }
- }
- });
- },
- onUpdate: (results, selectedIndex) => {
- this.positioningResultList();
- this.setResultListMaxHeight();
- },
- debounceTime: this.delay
- };
-
- new Autocomplete(this.base, options);
- if (!this.localMenu) {
- MenuStore.appendChild(this.resultList);
+ break;
+ }
+ case Key.ESCAPE:
+ this.dropdownMenu.hide();
+ this.inputField.focus();
+ break;
+ default:
+ break;
}
}
- private registerAjaxListener(): void {
- faces.ajax.addOnEvent(this.resolvePromise.bind(this));
+ private focusNextDropdownItem(event: KeyboardEvent): void {
+ if (this.dropdownMenu.visible) {
+ event.preventDefault(); //prevent scrolling if dropdown menu has a scrollbar
+ if (this.inputField === this.activeElement) {
+ this.dropdownItems.item(0).focus();
+ } else {
+ for (let i = 0; i < this.dropdownItems.length; i++) {
+ if (this.dropdownItems.item(i) === this.activeElement) {
+ const nextItemIndex = ++i;
+ if (nextItemIndex >= this.dropdownItems.length) {
+ this.dropdownItems.item(0).focus();
+ } else {
+ this.dropdownItems.item(nextItemIndex).focus();
+ }
+ break;
+ }
+ }
+ }
+ }
}
- private resolvePromise(event: EventData): void {
- if (event.source === this.suggest && event.status === "success") {
- return this.resolve(this.filterAll());
+ private focusPreviousDropdownItem(event: KeyboardEvent): void {
+ if (this.dropdownMenu.visible) {
+ event.preventDefault(); //prevent scrolling if dropdown menu has a scrollbar
+ if (this.inputField === this.activeElement) {
+ this.dropdownItems.item(this.dropdownItems.length - 1).focus();
+ } else {
+ for (let i = 0; i < this.dropdownItems.length; i++) {
+ if (this.dropdownItems.item(i) === this.activeElement) {
+ const previousItemIndex = --i;
+ if (previousItemIndex < 0) {
+ this.dropdownItems.item(this.dropdownItems.length - 1).focus();
+ } else {
+ this.dropdownItems.item(previousItemIndex).focus();
+ }
+ break;
+ }
+ }
+ }
}
}
- private filterAll(): string[] {
- return this.items;
+ private inputEvent(event: InputEvent): void {
+ window.clearTimeout(this.timeout);
+
+ const inputElement: HTMLInputElement = event.currentTarget as HTMLInputElement;
+ const input = inputElement.value;
+
+ if (input.length >= this.minChars) {
+ this.hiddenInput.value = input.toLowerCase();
+ this.showSpinner();
+
+ if (this.update) {
+ this.timeout = window.setTimeout(() => {
+ const suggestId = this.tobagoSuggest.id;
+ faces.ajax.request(suggestId, null, {
+ params: {
+ "jakarta.faces.behavior.event": "suggest"
+ },
+ execute: suggestId,
+ render: suggestId,
+ onevent: this.ajaxEvent.bind(this),
+ });
+ }, this.delay);
+ } else {
+ switch (this.filter) {
+ case SuggestFilter.all:
+ this.renderResults(this.items);
+ break;
+ case SuggestFilter.prefix:
+ this.renderResults(this.items.filter(item => item.toLowerCase().startsWith(this.hiddenInput.value)));
+ break;
+ case SuggestFilter.contains:
+ default:
+ this.renderResults(this.items.filter(item => item.toLowerCase().indexOf(this.hiddenInput.value) > -1));
+ break;
+ }
+ }
+ } else {
+ this.dropdownMenu.hide();
+ }
}
- private filterPrefix(): string[] {
- return this.items.filter(item => {
- return item.toLowerCase().startsWith(this.hiddenInput.value);
- });
+ private showSpinner(): void {
+ const rect = this.inputField.getBoundingClientRect();
+ const cStyle = getComputedStyle(this.inputField);
+ const top = window.scrollY + rect.top;
+ const right = window.scrollX + rect.right;
+ const bottom = window.scrollY + rect.bottom;
+ const innerBorderTop = top + parseFloat(cStyle.borderTopWidth) + parseFloat(cStyle.paddingTop);
+ const innerBorderRight = right - parseFloat(cStyle.borderRight) - parseFloat(cStyle.paddingRight);
+ const innerBorderBottom = bottom - parseFloat(cStyle.borderBottom) - parseFloat(cStyle.paddingBottom);
+ const size = innerBorderBottom - innerBorderTop;
+ this.spinner.style.width = size + "px";
+ this.spinner.style.height = size + "px";
+ this.spinner.style.top = innerBorderTop + "px";
+ this.spinner.style.left = (innerBorderRight - size) + "px";
+ this.spinner.classList.add(Css.TOBAGO_SHOW);
}
- private filterContains(): string[] {
- return this.items.filter(item => {
- return item.toLowerCase().indexOf(this.hiddenInput.value) > -1;
- });
+ private hideSpinner(): void {
+ this.spinner.classList.remove(Css.TOBAGO_SHOW);
}
- private positioningSpinner(): void {
- const baseRect = this.base.getBoundingClientRect();
- const suggestInputRect = this.suggestInput.getBoundingClientRect();
- const suggestInputStyle = getComputedStyle(this.suggestInput);
- const pseudoContainer = this.pseudoContainer;
- pseudoContainer.style.left = `${suggestInputRect.x - baseRect.x + suggestInputRect.width
- - parseFloat(getComputedStyle(pseudoContainer, ":after").width)
- - parseFloat(suggestInputStyle.marginRight)
- - parseFloat(suggestInputStyle.borderRight)
- - parseFloat(suggestInputStyle.paddingRight)}px`;
- pseudoContainer.style.top = `${suggestInputRect.y - baseRect.y + (suggestInputRect.height / 2)}px`;
+ private ajaxEvent(event: EventData): void {
+ if (event.status === "success") {
+ this.renderResults(this.items);
+ }
}
- private positioningResultList(): void {
- const space = 2;
-
- if (this.localMenu) {
- const parentRect = this.suggestInput.parentElement.getBoundingClientRect();
- const suggestInputRect = this.suggestInput.getBoundingClientRect();
- this.resultList.style.marginLeft = `${suggestInputRect.x - parentRect.x}px`;
- this.resultList.style.maxWidth = `${suggestInputRect.width}px`;
- this.resultList.style.marginTop = `${space}px`;
- this.resultList.style.marginBottom = `${space}px`;
- } else {
- const suggestInputRect = this.suggestInput.getBoundingClientRect();
- this.resultList.style.minWidth = `${suggestInputRect.width}px`;
- this.resultList.style.left = `${suggestInputRect.left}px`;
- if (this.resultListPosition === "below") {
- this.resultList.style.marginTop =
- `${window.scrollY + suggestInputRect.top + suggestInputRect.height + space}px`;
- this.resultList.style.marginBottom = null;
- } else if (this.resultListPosition === "above") {
- this.resultList.style.marginTop = null;
- this.resultList.style.marginBottom = `${-(window.scrollY + suggestInputRect.top - space)}px`;
+ private renderResults(items: string[]): void {
+ if (items.length > 0) {
+ const dropdownItems: HTMLLIElement[] = [];
+ for (let i = 0; i < items.length; i++) {
+ const li = document.createElement("li");
+ li.setAttribute("data-result-index", i.toString());
+ li.setAttribute("role", "option");
+ const button = document.createElement("button");
+ button.type = "button";
+ button.classList.add(Css.DROPDOWN_ITEM);
+ button.textContent = items[i];
+ button.addEventListener("click", this.selectDropdownItem.bind(this));
+ li.appendChild(button);
+ dropdownItems.push(li);
+ }
+ this.dropdownMenuElement.replaceChildren(...dropdownItems);
+ this.hideSpinner();
+ this.dropdownMenu.show();
+
+ if (this.maxItems > 0) {
+ // do this after this.dropdownMenu.show(); to get the correct itemHeight
+ const itemHeight = this.dropdownMenuElement.querySelector("li").offsetHeight;
+ const dropdownMenuElementStyle = getComputedStyle(this.dropdownMenuElement);
+ const paddingTop = parseFloat(dropdownMenuElementStyle.paddingTop);
+ const paddingBottom = parseFloat(dropdownMenuElementStyle.paddingBottom);
+ const itemBasedMaxHeight = paddingTop + (this.maxItems * itemHeight) + paddingBottom;
+ const bodyBasedMaxHeight = parseFloat(this.dropdownMenuElement.style.maxHeight);
+
+ if (itemBasedMaxHeight < bodyBasedMaxHeight) {
+ this.dropdownMenuElement.style.maxHeight = itemBasedMaxHeight + "px";
+ }
}
+ } else {
+ this.hideSpinner();
+ this.dropdownMenu.hide();
}
}
- private setResultListMaxHeight(): void {
- const resultListEntry = this.resultList.querySelector(".autocomplete-result");
- if (this.maxItems && resultListEntry) {
- const resultListStyle = getComputedStyle(this.resultList);
- this.resultList.style.maxHeight = `${parseFloat(resultListStyle.borderTop)
- + parseFloat(resultListStyle.paddingTop)
- + (this.maxItems * parseFloat(getComputedStyle(resultListEntry).height))
- + parseFloat(resultListStyle.paddingBottom)
- + parseFloat(resultListStyle.borderBottom)}px`;
- }
+ private deleteResults(): void {
+ this.dropdownMenuElement.innerHTML = null;
}
- private get base(): HTMLElement {
- return this.tobagoIn;
+ private selectDropdownItem(event: MouseEvent): void {
+ const button: HTMLButtonElement = event.currentTarget as HTMLButtonElement;
+ this.inputField.value = button.textContent;
+ this.dropdownMenu.hide();
+ this.inputField.focus();
}
- private get pseudoContainer(): HTMLDivElement {
- return this.base.querySelector(".autocomplete-pseudo-container");
+ private get activeElement(): Element {
+ const root = this.tobagoIn.getRootNode() as ShadowRoot | Document;
+ return root.activeElement;
}
- private get suggestInput(): HTMLInputElement {
- const root = this.base.getRootNode() as ShadowRoot | Document;
- return root.getElementById(this.suggest.getAttribute("for")) as HTMLInputElement;
+ private get inputField(): HTMLInputElement {
+ const root = this.tobagoIn.getRootNode() as ShadowRoot | Document;
+ return root.getElementById(this.tobagoSuggest.getAttribute("for")) as HTMLInputElement;
}
- private get suggest(): HTMLElement {
- return this.base.querySelector("tobago-suggest");
+ private get spinner(): HTMLDivElement {
+ return this.tobagoIn.querySelector<HTMLDivElement>(`.${Css.SPINNER}`);
}
- private get hiddenInput(): HTMLInputElement {
- return this.suggest.querySelector(":scope > input[type=hidden]");
+ private get tobagoSuggest(): HTMLElement {
+ return this.tobagoIn.querySelector("tobago-suggest");
}
- private get items(): string[] {
- return JSON.parse(this.suggest.getAttribute("items")) as string[];
+ private get minChars(): number {
+ return parseInt(this.tobagoSuggest.getAttribute("min-chars"));
}
- private get resultList(): HTMLUListElement {
- const root = this.base.getRootNode() as ShadowRoot | Document;
- const resultListId = this.suggestInput.getAttribute("aria-owns");
- return root.getElementById(resultListId) as HTMLUListElement;
+ private get delay(): number {
+ return parseInt(this.tobagoSuggest.getAttribute("delay"));
}
- private get resultListPosition(): string {
- return this.base.dataset.position;
+ private get maxItems(): number {
+ return parseInt(this.tobagoSuggest.getAttribute("max-items"));
}
private get update(): boolean {
- return this.suggest.getAttribute("update") !== null;
+ return this.tobagoSuggest.getAttribute("update") !== null;
}
- private get delay(): number {
- return parseInt(this.suggest.getAttribute("delay"));
+ private get totalCount(): number {
+ return parseInt(this.tobagoSuggest.getAttribute("total-count"));
}
- private get maxItems(): number {
- return parseInt(this.suggest.getAttribute("max-items"));
+ private get filter(): SuggestFilter {
+ return SuggestFilter[this.tobagoSuggest.getAttribute("filter")] as SuggestFilter;
}
- private get minChars(): number {
- return parseInt(this.suggest.getAttribute("min-chars"));
+ private get items(): string[] {
+ return JSON.parse(this.tobagoSuggest.getAttribute("items")) as string[];
}
private get localMenu(): boolean {
- return this.suggest.getAttribute("local-menu") !== null;
+ return this.tobagoSuggest.getAttribute("local-menu") !== null;
}
- private get filter(): SuggestFilter {
- return SuggestFilter[this.suggest.getAttribute("filter")] as SuggestFilter;
+ private get hiddenInput(): HTMLInputElement {
+ return this.tobagoSuggest.querySelector(":scope > input[type=hidden]");
+ }
+
+ private get dropdownMenuElement(): HTMLUListElement {
+ const root = this.tobagoIn.getRootNode() as ShadowRoot | Document;
+ return root.getElementById(this.tobagoSuggest.id + "::dropdownMenu") as HTMLUListElement;
}
- private get isInputGroup(): boolean {
- return this.suggestInput.parentElement.classList.contains(Css.INPUT_GROUP);
+ private get dropdownItems(): NodeListOf<HTMLButtonElement> {
+ return this.dropdownMenuElement.querySelectorAll<HTMLButtonElement>("li button.dropdown-item");
}
}
(myfaces-tobago) 02/02: build(theme): rebuild
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 b5185df4b5f5bcf5a4ced159f46cd77943c1d372
Author: Henning Noeth <hn...@apache.org>
AuthorDate: Thu Mar 20 09:40:50 2025 +0100
build(theme): rebuild
---
.../src/main/css/tobago.css | 61 +++++++++------
.../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 | 61 +++++++++------
.../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 | 61 +++++++++------
.../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 | 87 +++++++++++++---------
.../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 | 61 +++++++++------
.../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(+), 138 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 a8834cd5af..86cb948acb 100644
--- a/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.css
+++ b/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.css
@@ -3644,7 +3644,7 @@ .dropdown-toggle:empty::after {
margin-left: 0;
}
-.dropdown-menu, tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore > .tobago-dropdown-menu, tobago-dropdown > .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 .tobago-page-menuStore .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore > .tobago-dropdown-menu, tobago-in .tobago-dropdown-menu-anchor > .tobago-dropdown-menu, tobago-dropdown > .tobago-dropdown-menu {
--bs-dropdown-zindex: 1000;
--bs-dropdown-min-width: 10rem;
--bs-dropdown-padding-x: 0;
@@ -3686,7 +3686,7 @@ .dropdown-menu, tobago-select-many-list .tobago-options.tobago-dropdown-menu, to
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, tobago-page .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore > [data-bs-popper].tobago-dropdown-menu, tobago-dropdown > [data-bs-popper].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 .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore > [data-bs-popper].tobago-dropdown-menu, tobago-in .tobago-dropdown-menu-anchor > [data-bs-popper].tobago-dropdown-menu, tobago-dropdown > [data-bs-popper].tobago-dropdown-menu {
top: 100%;
left: 0;
margin-top: var(--bs-dropdown-spacer);
@@ -3788,7 +3788,7 @@ @media (min-width: 1400px) {
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 tobago-page .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-page . [...]
+.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 .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-page . [...]
top: auto;
bottom: 100%;
margin-top: 0;
@@ -3808,7 +3808,7 @@ .dropup .dropdown-toggle:empty::after {
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 tobago-page .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago- [...]
+.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 .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago- [...]
top: 0;
right: auto;
left: 100%;
@@ -3832,7 +3832,7 @@ .dropend .dropdown-toggle::after {
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 tobago-page .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-m [...]
+.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 .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-m [...]
top: 0;
right: 100%;
left: auto;
@@ -3901,7 +3901,7 @@ .dropdown-item.disabled, .dropdown-item:disabled {
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, tobago-page .tobago-page-menuStore .show.tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore > .show.tobago-dropdown-menu, tobago-dropdown > .show.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 .tobago-page-menuStore .show.tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore > .show.tobago-dropdown-menu, tobago-in .tobago-dropdown-menu-anchor > .show.tobago-dropdown-menu, tobago-dropdown > .show.tobago-dropdown-menu {
display: block;
}
@@ -4104,7 +4104,7 @@ .nav-tabs .nav-item.show .nav-link {
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 tobago-page .tobago-page-menuStore .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore .nav-tabs .tobago-options.tobago-dropdown-menu, .nav-tabs toba [...]
+.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 .tobago-page-menuStore .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore .nav-tabs .tobago-options.tobago-dropdown-menu, .nav-tabs toba [...]
margin-top: calc(-1 * var(--bs-nav-tabs-border-width));
border-top-left-radius: 0;
border-top-right-radius: 0;
@@ -4239,7 +4239,7 @@ .navbar-nav {
.navbar-nav .nav-link.active, .navbar-nav .nav-link.show {
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 tobago-page .tobago-page-menuStore .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore .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 .tobago-page-menuStore .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore .navbar-nav .tobago-options.tobago-dropdown-menu, [...]
position: static;
}
@@ -4308,7 +4308,7 @@ @media (min-width: 576px) {
.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 tobago-page .tobago-page-menuStore .tobago-optio [...]
+ .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 .tobago-page-menuStore .tobago-optio [...]
position: absolute;
}
.navbar-expand-sm .navbar-nav .nav-link {
@@ -4355,7 +4355,7 @@ @media (min-width: 768px) {
.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 tobago-page .tobago-page-menuStore .tobago-optio [...]
+ .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 .tobago-page-menuStore .tobago-optio [...]
position: absolute;
}
.navbar-expand-md .navbar-nav .nav-link {
@@ -4402,7 +4402,7 @@ @media (min-width: 992px) {
.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 tobago-page .tobago-page-menuStore .tobago-optio [...]
+ .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 .tobago-page-menuStore .tobago-optio [...]
position: absolute;
}
.navbar-expand-lg .navbar-nav .nav-link {
@@ -4449,7 +4449,7 @@ @media (min-width: 1200px) {
.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 tobago-page .tobago-page-menuStore .tobago-optio [...]
+ .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 .tobago-page-menuStore .tobago-optio [...]
position: absolute;
}
.navbar-expand-xl .navbar-nav .nav-link {
@@ -4496,7 +4496,7 @@ @media (min-width: 1400px) {
.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 tobago-page .tobago-page-menuStore .tobago [...]
+ .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 .tobago-page-menuStore .tobago [...]
position: absolute;
}
.navbar-expand-xxl .navbar-nav .nav-link {
@@ -4542,7 +4542,7 @@ .navbar-expand {
.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 tobago-page .tobago-page-menuStore .tobago-options.tobago-dropdown-m [...]
+.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 .tobago-page-menuStore .tobago-options.tobago-dropdown-m [...]
position: absolute;
}
.navbar-expand .navbar-nav .nav-link {
@@ -12705,7 +12705,6 @@ tobago-image > img {
max-height: inherit;
}
-/* in ----------------------------------------------------------- */
tobago-in {
display: block;
}
@@ -12731,23 +12730,34 @@ tobago-in .input-group tobago-select-one-choice.form-select {
tobago-in .input-group tobago-select-one-choice.form-select > .form-select {
border: 0;
}
-tobago-in.autocomplete[data-loading=true] .autocomplete-pseudo-container {
+tobago-in .spinner {
+ display: none;
position: absolute;
}
-tobago-in.autocomplete[data-loading=true] .autocomplete-pseudo-container:after {
+tobago-in .spinner.tobago-show {
+ display: block;
+}
+tobago-in .spinner:after {
content: "";
border: 3px solid rgba(0, 0, 0, 0.12);
border-right-color: rgba(0, 0, 0, 0.48);
border-radius: 100%;
- width: 20px;
- height: 20px;
+ width: 100%;
+ height: 100%;
+ top: 50%;
position: absolute;
z-index: 5;
transform: translateY(-50%);
animation: rotate 1s linear infinite;
}
-tobago-in .autocomplete-result-list {
- cursor: pointer;
+tobago-in .tobago-dropdown-menu-anchor > .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. */
+ position: fixed;
+ overflow: auto;
+ overscroll-behavior: none;
+ margin: var(--tobago-dropdown-menu-offset);
+ z-index: var(--tobago-dropdown-menu-z-index);
}
tobago-in tobago-suggest {
display: none;
@@ -13247,6 +13257,15 @@ tobago-page .tobago-page-menuStore .tobago-options .table tfoot tr.tobago-no-ent
tobago-page .tobago-page-menuStore .tobago-options .table tfoot tr.tobago-no-entries td {
border-bottom-width: 0;
}
+tobago-page .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. */
+ position: fixed;
+ overflow: auto;
+ overscroll-behavior: none;
+ margin: var(--tobago-dropdown-menu-offset);
+ z-index: var(--tobago-dropdown-menu-z-index);
+}
tobago-page .tobago-page-popoverStore .popover .popover-body {
white-space: pre-line;
}
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 2d943068dc..81528ff95b 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/_variables.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/mixins/_color-mode.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules [...]
\ No newline at end of file
+{"version":3,"sources":["tobago.css","../scss/tobago-theme.scss","../scss/_variables.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/mixins/_color-mode.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules [...]
\ 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 e63cde362a..f2ab6d14ba 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";.tobago-dropdown-menu{background-color:#fff!important}.tobago-dropdown-menu .form-check-label{color:#555}.navbar .tobago-button{background-color:#59a3a3!important;border:1px solid #59a3a3!important}.navbar .tobago-button:hover{background-color:#61b5b5;border:1px solid #61b5b5}.navbar .tobago-link{color:#333!important}.navbar button.tobago-link.dropdown-item:disabled span{color:#555;opacity:.5}.tobago-dropdown-menu{--bs-dropdown-min-width:13rem!important}tobago-tree label [...]
+@charset "UTF-8";.tobago-dropdown-menu{background-color:#fff!important}.tobago-dropdown-menu .form-check-label{color:#555}.navbar .tobago-button{background-color:#59a3a3!important;border:1px solid #59a3a3!important}.navbar .tobago-button:hover{background-color:#61b5b5;border:1px solid #61b5b5}.navbar .tobago-link{color:#333!important}.navbar button.tobago-link.dropdown-item:disabled span{color:#555;opacity:.5}.tobago-dropdown-menu{--bs-dropdown-min-width:13rem!important}tobago-tree label [...]
/*# 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 516f08a8e4..04c8bb7902 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":"iBAiDA,sBACE,iBAAkB,eAEpB,wCACE,MAAO,KAGT,uBACE,iBAAkB,kBAClB,OAAQ,IAAI,MAAM,kBAEpB,6BACE,iBAAkB,QAClB,OAAQ,IAAI,MAAM,QAEpB,qBACE,MAAO,eAET,uDACE,MAAO,KACP,QAAS,GAGX,sBACE,wBAAyB,gBAG3B,kBACE,WAAY,KAGd,cACE,MAAO,KACP,WAAY,IAAK,KAEnB,gBACE,MAAO,QACP,WAAY,QAEd,sBACE,MAAO,QAGT,KACE,iBAAkB,eAepB,gBARA,IAEA,IAEA,IAEA,IARA,mBADA,kBAUA,wBARA,GAEA,GAEA,GAEA,GATA,EAaE,MAAO,eAGU,mBAAuC,mBAAuC,mBAA [...]
\ No newline at end of file
+{"version":3,"sources":["tobago-theme-charlotteville/src/main/css/tobago.css"],"names":[],"mappings":"iBAiDA,sBACE,iBAAkB,eAEpB,wCACE,MAAO,KAGT,uBACE,iBAAkB,kBAClB,OAAQ,IAAI,MAAM,kBAEpB,6BACE,iBAAkB,QAClB,OAAQ,IAAI,MAAM,QAEpB,qBACE,MAAO,eAET,uDACE,MAAO,KACP,QAAS,GAGX,sBACE,wBAAyB,gBAG3B,kBACE,WAAY,KAGd,cACE,MAAO,KACP,WAAY,IAAK,KAEnB,gBACE,MAAO,QACP,WAAY,QAEd,sBACE,MAAO,QAGT,KACE,iBAAkB,eAepB,gBARA,IAEA,IAEA,IAEA,IARA,mBADA,kBAUA,wBARA,GAEA,GAEA,GAEA,GATA,EAaE,MAAO,eAGU,mBAAuC,mBAAuC,mBAA [...]
\ 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 d55bf0cec3..eb93cca172 100644
--- a/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.css
+++ b/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.css
@@ -3439,7 +3439,7 @@ .dropdown-toggle:empty::after {
margin-left: 0;
}
-.dropdown-menu, tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore > .tobago-dropdown-menu, tobago-dropdown > .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 .tobago-page-menuStore .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore > .tobago-dropdown-menu, tobago-in .tobago-dropdown-menu-anchor > .tobago-dropdown-menu, tobago-dropdown > .tobago-dropdown-menu {
--bs-dropdown-zindex: 1000;
--bs-dropdown-min-width: 10rem;
--bs-dropdown-padding-x: 0;
@@ -3481,7 +3481,7 @@ .dropdown-menu, tobago-select-many-list .tobago-options.tobago-dropdown-menu, to
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, tobago-page .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore > [data-bs-popper].tobago-dropdown-menu, tobago-dropdown > [data-bs-popper].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 .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore > [data-bs-popper].tobago-dropdown-menu, tobago-in .tobago-dropdown-menu-anchor > [data-bs-popper].tobago-dropdown-menu, tobago-dropdown > [data-bs-popper].tobago-dropdown-menu {
top: 100%;
left: 0;
margin-top: var(--bs-dropdown-spacer);
@@ -3583,7 +3583,7 @@ @media (min-width: 1400px) {
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 tobago-page .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-page . [...]
+.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 .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-page . [...]
top: auto;
bottom: 100%;
margin-top: 0;
@@ -3603,7 +3603,7 @@ .dropup .dropdown-toggle:empty::after {
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 tobago-page .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago- [...]
+.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 .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago- [...]
top: 0;
right: auto;
left: 100%;
@@ -3627,7 +3627,7 @@ .dropend .dropdown-toggle::after {
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 tobago-page .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-m [...]
+.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 .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-m [...]
top: 0;
right: 100%;
left: auto;
@@ -3696,7 +3696,7 @@ .dropdown-item.disabled, .dropdown-item:disabled {
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, tobago-page .tobago-page-menuStore .show.tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore > .show.tobago-dropdown-menu, tobago-dropdown > .show.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 .tobago-page-menuStore .show.tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore > .show.tobago-dropdown-menu, tobago-in .tobago-dropdown-menu-anchor > .show.tobago-dropdown-menu, tobago-dropdown > .show.tobago-dropdown-menu {
display: block;
}
@@ -3899,7 +3899,7 @@ .nav-tabs .nav-item.show .nav-link {
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 tobago-page .tobago-page-menuStore .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore .nav-tabs .tobago-options.tobago-dropdown-menu, .nav-tabs toba [...]
+.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 .tobago-page-menuStore .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore .nav-tabs .tobago-options.tobago-dropdown-menu, .nav-tabs toba [...]
margin-top: calc(-1 * var(--bs-nav-tabs-border-width));
border-top-left-radius: 0;
border-top-right-radius: 0;
@@ -4034,7 +4034,7 @@ .navbar-nav {
.navbar-nav .nav-link.active, .navbar-nav .nav-link.show {
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 tobago-page .tobago-page-menuStore .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore .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 .tobago-page-menuStore .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore .navbar-nav .tobago-options.tobago-dropdown-menu, [...]
position: static;
}
@@ -4103,7 +4103,7 @@ @media (min-width: 576px) {
.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 tobago-page .tobago-page-menuStore .tobago-optio [...]
+ .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 .tobago-page-menuStore .tobago-optio [...]
position: absolute;
}
.navbar-expand-sm .navbar-nav .nav-link {
@@ -4150,7 +4150,7 @@ @media (min-width: 768px) {
.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 tobago-page .tobago-page-menuStore .tobago-optio [...]
+ .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 .tobago-page-menuStore .tobago-optio [...]
position: absolute;
}
.navbar-expand-md .navbar-nav .nav-link {
@@ -4197,7 +4197,7 @@ @media (min-width: 992px) {
.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 tobago-page .tobago-page-menuStore .tobago-optio [...]
+ .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 .tobago-page-menuStore .tobago-optio [...]
position: absolute;
}
.navbar-expand-lg .navbar-nav .nav-link {
@@ -4244,7 +4244,7 @@ @media (min-width: 1200px) {
.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 tobago-page .tobago-page-menuStore .tobago-optio [...]
+ .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 .tobago-page-menuStore .tobago-optio [...]
position: absolute;
}
.navbar-expand-xl .navbar-nav .nav-link {
@@ -4291,7 +4291,7 @@ @media (min-width: 1400px) {
.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 tobago-page .tobago-page-menuStore .tobago [...]
+ .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 .tobago-page-menuStore .tobago [...]
position: absolute;
}
.navbar-expand-xxl .navbar-nav .nav-link {
@@ -4337,7 +4337,7 @@ .navbar-expand {
.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 tobago-page .tobago-page-menuStore .tobago-options.tobago-dropdown-m [...]
+.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 .tobago-page-menuStore .tobago-options.tobago-dropdown-m [...]
position: absolute;
}
.navbar-expand .navbar-nav .nav-link {
@@ -12500,7 +12500,6 @@ tobago-image > img {
max-height: inherit;
}
-/* in ----------------------------------------------------------- */
tobago-in {
display: block;
}
@@ -12526,23 +12525,34 @@ tobago-in .input-group tobago-select-one-choice.form-select {
tobago-in .input-group tobago-select-one-choice.form-select > .form-select {
border: 0;
}
-tobago-in.autocomplete[data-loading=true] .autocomplete-pseudo-container {
+tobago-in .spinner {
+ display: none;
position: absolute;
}
-tobago-in.autocomplete[data-loading=true] .autocomplete-pseudo-container:after {
+tobago-in .spinner.tobago-show {
+ display: block;
+}
+tobago-in .spinner:after {
content: "";
border: 3px solid rgba(0, 0, 0, 0.12);
border-right-color: rgba(0, 0, 0, 0.48);
border-radius: 100%;
- width: 20px;
- height: 20px;
+ width: 100%;
+ height: 100%;
+ top: 50%;
position: absolute;
z-index: 5;
transform: translateY(-50%);
animation: rotate 1s linear infinite;
}
-tobago-in .autocomplete-result-list {
- cursor: pointer;
+tobago-in .tobago-dropdown-menu-anchor > .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. */
+ position: fixed;
+ overflow: auto;
+ overscroll-behavior: none;
+ margin: var(--tobago-dropdown-menu-offset);
+ z-index: var(--tobago-dropdown-menu-z-index);
}
tobago-in tobago-suggest {
display: none;
@@ -13042,6 +13052,15 @@ tobago-page .tobago-page-menuStore .tobago-options .table tfoot tr.tobago-no-ent
tobago-page .tobago-page-menuStore .tobago-options .table tfoot tr.tobago-no-entries td {
border-bottom-width: 0;
}
+tobago-page .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. */
+ position: fixed;
+ overflow: auto;
+ overscroll-behavior: none;
+ margin: var(--tobago-dropdown-menu-offset);
+ z-index: var(--tobago-dropdown-menu-z-index);
+}
tobago-page .tobago-page-popoverStore .popover .popover-body {
white-space: pre-line;
}
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 a5b026408f..cc285c8543 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/mixins/_color-mode.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/mixins/_bo [...]
\ 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/mixins/_color-mode.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/mixins/_bo [...]
\ 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 1d815d77af..0d4567149d 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 399f0c72fe..1e837e0450 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,MAQhC,MACA,sBACE,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,eAA [...]
\ 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,MAQhC,MACA,sBACE,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,eAA [...]
\ 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 53a64f081e..421ee7d837 100644
--- a/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.css
+++ b/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.css
@@ -3416,7 +3416,7 @@ .dropdown-toggle:empty::after {
margin-left: 0;
}
-.dropdown-menu, tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore > .tobago-dropdown-menu, tobago-dropdown > .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 .tobago-page-menuStore .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore > .tobago-dropdown-menu, tobago-in .tobago-dropdown-menu-anchor > .tobago-dropdown-menu, tobago-dropdown > .tobago-dropdown-menu {
--bs-dropdown-zindex: 1000;
--bs-dropdown-min-width: 10rem;
--bs-dropdown-padding-x: 0;
@@ -3458,7 +3458,7 @@ .dropdown-menu, tobago-select-many-list .tobago-options.tobago-dropdown-menu, to
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, tobago-page .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore > [data-bs-popper].tobago-dropdown-menu, tobago-dropdown > [data-bs-popper].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 .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore > [data-bs-popper].tobago-dropdown-menu, tobago-in .tobago-dropdown-menu-anchor > [data-bs-popper].tobago-dropdown-menu, tobago-dropdown > [data-bs-popper].tobago-dropdown-menu {
top: 100%;
left: 0;
margin-top: var(--bs-dropdown-spacer);
@@ -3560,7 +3560,7 @@ @media (min-width: 1400px) {
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 tobago-page .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-page . [...]
+.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 .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-page . [...]
top: auto;
bottom: 100%;
margin-top: 0;
@@ -3580,7 +3580,7 @@ .dropup .dropdown-toggle:empty::after {
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 tobago-page .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago- [...]
+.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 .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago- [...]
top: 0;
right: auto;
left: 100%;
@@ -3604,7 +3604,7 @@ .dropend .dropdown-toggle::after {
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 tobago-page .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-m [...]
+.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 .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-m [...]
top: 0;
right: 100%;
left: auto;
@@ -3673,7 +3673,7 @@ .dropdown-item.disabled, .dropdown-item:disabled {
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, tobago-page .tobago-page-menuStore .show.tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore > .show.tobago-dropdown-menu, tobago-dropdown > .show.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 .tobago-page-menuStore .show.tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore > .show.tobago-dropdown-menu, tobago-in .tobago-dropdown-menu-anchor > .show.tobago-dropdown-menu, tobago-dropdown > .show.tobago-dropdown-menu {
display: block;
}
@@ -3876,7 +3876,7 @@ .nav-tabs .nav-item.show .nav-link {
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 tobago-page .tobago-page-menuStore .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore .nav-tabs .tobago-options.tobago-dropdown-menu, .nav-tabs toba [...]
+.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 .tobago-page-menuStore .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore .nav-tabs .tobago-options.tobago-dropdown-menu, .nav-tabs toba [...]
margin-top: calc(-1 * var(--bs-nav-tabs-border-width));
border-top-left-radius: 0;
border-top-right-radius: 0;
@@ -4011,7 +4011,7 @@ .navbar-nav {
.navbar-nav .nav-link.active, .navbar-nav .nav-link.show {
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 tobago-page .tobago-page-menuStore .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore .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 .tobago-page-menuStore .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore .navbar-nav .tobago-options.tobago-dropdown-menu, [...]
position: static;
}
@@ -4080,7 +4080,7 @@ @media (min-width: 576px) {
.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 tobago-page .tobago-page-menuStore .tobago-optio [...]
+ .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 .tobago-page-menuStore .tobago-optio [...]
position: absolute;
}
.navbar-expand-sm .navbar-nav .nav-link {
@@ -4127,7 +4127,7 @@ @media (min-width: 768px) {
.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 tobago-page .tobago-page-menuStore .tobago-optio [...]
+ .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 .tobago-page-menuStore .tobago-optio [...]
position: absolute;
}
.navbar-expand-md .navbar-nav .nav-link {
@@ -4174,7 +4174,7 @@ @media (min-width: 992px) {
.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 tobago-page .tobago-page-menuStore .tobago-optio [...]
+ .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 .tobago-page-menuStore .tobago-optio [...]
position: absolute;
}
.navbar-expand-lg .navbar-nav .nav-link {
@@ -4221,7 +4221,7 @@ @media (min-width: 1200px) {
.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 tobago-page .tobago-page-menuStore .tobago-optio [...]
+ .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 .tobago-page-menuStore .tobago-optio [...]
position: absolute;
}
.navbar-expand-xl .navbar-nav .nav-link {
@@ -4268,7 +4268,7 @@ @media (min-width: 1400px) {
.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 tobago-page .tobago-page-menuStore .tobago [...]
+ .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 .tobago-page-menuStore .tobago [...]
position: absolute;
}
.navbar-expand-xxl .navbar-nav .nav-link {
@@ -4314,7 +4314,7 @@ .navbar-expand {
.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 tobago-page .tobago-page-menuStore .tobago-options.tobago-dropdown-m [...]
+.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 .tobago-page-menuStore .tobago-options.tobago-dropdown-m [...]
position: absolute;
}
.navbar-expand .navbar-nav .nav-link {
@@ -12494,7 +12494,6 @@ tobago-image > img {
max-height: inherit;
}
-/* in ----------------------------------------------------------- */
tobago-in {
display: block;
}
@@ -12520,23 +12519,34 @@ tobago-in .input-group tobago-select-one-choice.form-select {
tobago-in .input-group tobago-select-one-choice.form-select > .form-select {
border: 0;
}
-tobago-in.autocomplete[data-loading=true] .autocomplete-pseudo-container {
+tobago-in .spinner {
+ display: none;
position: absolute;
}
-tobago-in.autocomplete[data-loading=true] .autocomplete-pseudo-container:after {
+tobago-in .spinner.tobago-show {
+ display: block;
+}
+tobago-in .spinner:after {
content: "";
border: 3px solid rgba(0, 0, 0, 0.12);
border-right-color: rgba(0, 0, 0, 0.48);
border-radius: 100%;
- width: 20px;
- height: 20px;
+ width: 100%;
+ height: 100%;
+ top: 50%;
position: absolute;
z-index: 5;
transform: translateY(-50%);
animation: rotate 1s linear infinite;
}
-tobago-in .autocomplete-result-list {
- cursor: pointer;
+tobago-in .tobago-dropdown-menu-anchor > .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. */
+ position: fixed;
+ overflow: auto;
+ overscroll-behavior: none;
+ margin: var(--tobago-dropdown-menu-offset);
+ z-index: var(--tobago-dropdown-menu-z-index);
}
tobago-in tobago-suggest {
display: none;
@@ -13037,6 +13047,15 @@ tobago-page .tobago-page-menuStore .tobago-options .table tfoot tr.tobago-no-ent
tobago-page .tobago-page-menuStore .tobago-options .table tfoot tr.tobago-no-entries td {
border-bottom-width: 0;
}
+tobago-page .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. */
+ position: fixed;
+ overflow: auto;
+ overscroll-behavior: none;
+ margin: var(--tobago-dropdown-menu-offset);
+ z-index: var(--tobago-dropdown-menu-z-index);
+}
tobago-page .tobago-page-popoverStore .popover .popover-body {
white-space: pre-line;
}
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 c1fd9eb9d9..5a16e2c9ae 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/mixins/_color-mode.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/mixins/_bo [...]
\ 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/mixins/_color-mode.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/mixins/_bo [...]
\ 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 1e64a41197..cad89fa1c8 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,[data-bs-theme=light]{--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- [...]
+@charset "UTF-8";:root,[data-bs-theme=light]{--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- [...]
/*# 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 8b1852daca..b863cbbad1 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":"iBAwCA,MACA,sBACE,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,I [...]
\ No newline at end of file
+{"version":3,"sources":["tobago-theme-scarborough/src/main/css/tobago.css"],"names":[],"mappings":"iBAwCA,MACA,sBACE,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,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 cbddbf0b19..68cd18d3cc 100644
--- a/tobago-theme/tobago-theme-speyside/src/main/css/tobago.css
+++ b/tobago-theme/tobago-theme-speyside/src/main/css/tobago.css
@@ -3371,7 +3371,7 @@ .dropdown-toggle:empty::after {
margin-left: 0;
}
-.dropdown-menu, tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore > .tobago-dropdown-menu, tobago-dropdown > .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 .tobago-page-menuStore .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore > .tobago-dropdown-menu, tobago-in .tobago-dropdown-menu-anchor > .tobago-dropdown-menu, tobago-dropdown > .tobago-dropdown-menu {
--bs-dropdown-zindex: 1000;
--bs-dropdown-min-width: 10rem;
--bs-dropdown-padding-x: 0;
@@ -3412,7 +3412,7 @@ .dropdown-menu, tobago-select-many-list .tobago-options.tobago-dropdown-menu, to
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, tobago-page .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore > [data-bs-popper].tobago-dropdown-menu, tobago-dropdown > [data-bs-popper].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 .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore > [data-bs-popper].tobago-dropdown-menu, tobago-in .tobago-dropdown-menu-anchor > [data-bs-popper].tobago-dropdown-menu, tobago-dropdown > [data-bs-popper].tobago-dropdown-menu {
top: 100%;
left: 0;
margin-top: var(--bs-dropdown-spacer);
@@ -3514,7 +3514,7 @@ @media (min-width: 1400px) {
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 tobago-page .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-page . [...]
+.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 .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-page . [...]
top: auto;
bottom: 100%;
margin-top: 0;
@@ -3534,7 +3534,7 @@ .dropup .dropdown-toggle:empty::after {
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 tobago-page .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago- [...]
+.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 .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago- [...]
top: 0;
right: auto;
left: 100%;
@@ -3558,7 +3558,7 @@ .dropend .dropdown-toggle::after {
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 tobago-page .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-m [...]
+.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 .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-m [...]
top: 0;
right: 100%;
left: auto;
@@ -3626,7 +3626,7 @@ .dropdown-item.disabled, .dropdown-item:disabled {
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, tobago-page .tobago-page-menuStore .show.tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore > .show.tobago-dropdown-menu, tobago-dropdown > .show.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 .tobago-page-menuStore .show.tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore > .show.tobago-dropdown-menu, tobago-in .tobago-dropdown-menu-anchor > .show.tobago-dropdown-menu, tobago-dropdown > .show.tobago-dropdown-menu {
display: block;
}
@@ -3800,7 +3800,7 @@ .nav-tabs .nav-item.show .nav-link {
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 tobago-page .tobago-page-menuStore .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore .nav-tabs .tobago-options.tobago-dropdown-menu, .nav-tabs toba [...]
+.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 .tobago-page-menuStore .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore .nav-tabs .tobago-options.tobago-dropdown-menu, .nav-tabs toba [...]
margin-top: calc(-1 * var(--bs-nav-tabs-border-width));
}
@@ -3930,7 +3930,7 @@ .navbar-nav {
.navbar-nav .nav-link.active, .navbar-nav .nav-link.show {
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 tobago-page .tobago-page-menuStore .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore .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 .tobago-page-menuStore .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore .navbar-nav .tobago-options.tobago-dropdown-menu, [...]
position: static;
}
@@ -3998,7 +3998,7 @@ @media (min-width: 576px) {
.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 tobago-page .tobago-page-menuStore .tobago-optio [...]
+ .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 .tobago-page-menuStore .tobago-optio [...]
position: absolute;
}
.navbar-expand-sm .navbar-nav .nav-link {
@@ -4045,7 +4045,7 @@ @media (min-width: 768px) {
.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 tobago-page .tobago-page-menuStore .tobago-optio [...]
+ .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 .tobago-page-menuStore .tobago-optio [...]
position: absolute;
}
.navbar-expand-md .navbar-nav .nav-link {
@@ -4092,7 +4092,7 @@ @media (min-width: 992px) {
.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 tobago-page .tobago-page-menuStore .tobago-optio [...]
+ .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 .tobago-page-menuStore .tobago-optio [...]
position: absolute;
}
.navbar-expand-lg .navbar-nav .nav-link {
@@ -4139,7 +4139,7 @@ @media (min-width: 1200px) {
.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 tobago-page .tobago-page-menuStore .tobago-optio [...]
+ .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 .tobago-page-menuStore .tobago-optio [...]
position: absolute;
}
.navbar-expand-xl .navbar-nav .nav-link {
@@ -4186,7 +4186,7 @@ @media (min-width: 1400px) {
.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 tobago-page .tobago-page-menuStore .tobago [...]
+ .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 .tobago-page-menuStore .tobago [...]
position: absolute;
}
.navbar-expand-xxl .navbar-nav .nav-link {
@@ -4232,7 +4232,7 @@ .navbar-expand {
.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 tobago-page .tobago-page-menuStore .tobago-options.tobago-dropdown-m [...]
+.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 .tobago-page-menuStore .tobago-options.tobago-dropdown-m [...]
position: absolute;
}
.navbar-expand .navbar-nav .nav-link {
@@ -12195,7 +12195,6 @@ tobago-image > img {
max-height: inherit;
}
-/* in ----------------------------------------------------------- */
tobago-in {
display: block;
}
@@ -12221,23 +12220,34 @@ tobago-in .input-group tobago-select-one-choice.form-select {
tobago-in .input-group tobago-select-one-choice.form-select > .form-select {
border: 0;
}
-tobago-in.autocomplete[data-loading=true] .autocomplete-pseudo-container {
+tobago-in .spinner {
+ display: none;
position: absolute;
}
-tobago-in.autocomplete[data-loading=true] .autocomplete-pseudo-container:after {
+tobago-in .spinner.tobago-show {
+ display: block;
+}
+tobago-in .spinner:after {
content: "";
border: 3px solid rgba(0, 0, 0, 0.12);
border-right-color: rgba(0, 0, 0, 0.48);
border-radius: 100%;
- width: 20px;
- height: 20px;
+ width: 100%;
+ height: 100%;
+ top: 50%;
position: absolute;
z-index: 5;
transform: translateY(-50%);
animation: rotate 1s linear infinite;
}
-tobago-in .autocomplete-result-list {
- cursor: pointer;
+tobago-in .tobago-dropdown-menu-anchor > .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. */
+ position: fixed;
+ overflow: auto;
+ overscroll-behavior: none;
+ margin: var(--tobago-dropdown-menu-offset);
+ z-index: var(--tobago-dropdown-menu-z-index);
}
tobago-in tobago-suggest {
display: none;
@@ -12733,6 +12743,15 @@ tobago-page .tobago-page-menuStore .tobago-options .table tfoot tr.tobago-no-ent
tobago-page .tobago-page-menuStore .tobago-options .table tfoot tr.tobago-no-entries td {
border-bottom-width: 0;
}
+tobago-page .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. */
+ position: fixed;
+ overflow: auto;
+ overscroll-behavior: none;
+ margin: var(--tobago-dropdown-menu-offset);
+ z-index: var(--tobago-dropdown-menu-z-index);
+}
tobago-page .tobago-page-popoverStore .popover .popover-body {
white-space: pre-line;
}
@@ -14115,7 +14134,7 @@ .navbar-brand button.tobago-link {
font-weight: bold;
}
-.navbar .nav-item.dropdown > .dropdown-menu, .navbar tobago-dropdown.nav-item.dropdown > .tobago-dropdown-menu, .navbar tobago-page .nav-item.dropdown.tobago-page-menuStore > .tobago-dropdown-menu, tobago-page .navbar .nav-item.dropdown.tobago-page-menuStore > .tobago-dropdown-menu, .navbar tobago-page .tobago-page-menuStore .nav-item.dropdown > .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore .navbar .nav-item.dropdown > .tobago-options.tobago-dropdown-menu, .nav [...]
+.navbar .nav-item.dropdown > .dropdown-menu, .navbar tobago-dropdown.nav-item.dropdown > .tobago-dropdown-menu, .navbar tobago-in .nav-item.dropdown.tobago-dropdown-menu-anchor > .tobago-dropdown-menu, tobago-in .navbar .nav-item.dropdown.tobago-dropdown-menu-anchor > .tobago-dropdown-menu, .navbar tobago-page .nav-item.dropdown.tobago-page-menuStore > .tobago-dropdown-menu, tobago-page .navbar .nav-item.dropdown.tobago-page-menuStore > .tobago-dropdown-menu, .navbar tobago-page .tobago- [...]
border: 0;
background: #e3e4e5;
margin-top: 0;
@@ -14272,7 +14291,7 @@ @media (min-width: 992px) {
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-dropdown.nav-item.dropdown > .tobago-dropdown-menu, tobago-header.sticky-top tobago-page .nav-item.dropdown.tobago-page-menuStore > .tobago-dropdown-menu, tobago-page tobago-header.sticky-top .nav-item.dropdown.tobago-page-menuStore > .tobago-dropdown-menu, tobago-header.sticky-top tobago-page .tobago-page-menuStore .nav-item.dropdown > .tobago-options.tobago-dropdown-menu, tobago-page .tobago [...]
+ tobago-header.sticky-top .nav-item.dropdown > .dropdown-menu, tobago-header.sticky-top tobago-dropdown.nav-item.dropdown > .tobago-dropdown-menu, tobago-header.sticky-top tobago-in .nav-item.dropdown.tobago-dropdown-menu-anchor > .tobago-dropdown-menu, tobago-in tobago-header.sticky-top .nav-item.dropdown.tobago-dropdown-menu-anchor > .tobago-dropdown-menu, tobago-header.sticky-top tobago-page .nav-item.dropdown.tobago-page-menuStore > .tobago-dropdown-menu, tobago-page tobago-header.s [...]
position: fixed;
width: 100%;
top: auto;
@@ -14282,7 +14301,7 @@ @media (min-width: 992px) {
line-height: initial;
padding: 0 10% 1em 10%;
}
- 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-header.sticky-top tobago-page .nav-item.dropdown.tobago-page-menuStore > .tobago-dropdown-menu > .dropdown-item, tobago-page tobago-header.sticky-top .nav-item.dropdown.tobago-page-menuStore > .tobago-dropdown-menu > .dropdown-item, tobago-header.sticky-top tobago-page .tobago-page-menuStore .nav-item. [...]
+ 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-header.sticky-top tobago-in .nav-item.dropdown.tobago-dropdown-menu-anchor > .tobago-dropdown-menu > .dropdown-item, tobago-in tobago-header.sticky-top .nav-item.dropdown.tobago-dropdown-menu-anchor > .tobago-dropdown-menu > .dropdown-item, tobago-header.sticky-top tobago-page .nav-item.dropdown.tobago [...]
display: inline-block;
font-size: 1.3em;
width: calc(25% - 3px);
@@ -14290,7 +14309,7 @@ @media (min-width: 992px) {
vertical-align: top;
padding-top: 1em;
}
- 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-header.sticky-top tobago-page .nav-item.dropdown.tobago-page-menuStore > .tobago-dropdown-menu > .dropdown-item > a, tobago-page tobago-header.sticky-top .nav-item.dropdown.tobago-page-menuStore > .tobago-dropdown-menu > .dropdown-item > a, tobago-header.sticky-top tobago-page .tobago-page-menu [...]
+ 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-header.sticky-top tobago-in .nav-item.dropdown.tobago-dropdown-menu-anchor > .tobago-dropdown-menu > .dropdown-item > a, tobago-in tobago-header.sticky-top .nav-item.dropdown.tobago-dropdown-menu-anchor > .tobago-dropdown-menu > .dropdown-item > a, tobago-header.sticky-top tobago-page .nav-item [...]
margin-bottom: 0.5em;
}
tobago-header.sticky-top .navbar-nav > .nav-item.dropdown > .dropdown-toggle {
@@ -14308,30 +14327,30 @@ @media (min-width: 992px) {
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-dropdown.tobago-dropdown-submenu.dropdown-item > .tobago-dropdown-menu, tobago-header.sticky-top tobago-page .tobago-dropdown-submenu.dropdown-item.tobago-page-menuStore > .tobago-dropdown-menu, tobago-page tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item.tobago-page-menuStore > .tobago-dropdown-menu, tobago-header.sticky-top tobago-page .tobago-page-menuStor [...]
+ 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-header.sticky-top tobago-in .tobago-dropdown-submenu.dropdown-item.tobago-dropdown-menu-anchor > .tobago-dropdown-menu, tobago-in tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item.tobago-dropdown-menu-anchor > .tobago-dropdown-menu, tobago-header.sticky-top tobago-page .tobago-dropd [...]
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-dropdown.tobago-dropdown-submenu.dropdown-item > .tobago-dropdown-menu .dropdown-item, tobago-header.sticky-top tobago-page .tobago-dropdown-submenu.dropdown-item.tobago-page-menuStore > .tobago-dropdown-menu .dropdown-item, tobago-page tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item.tobago-page-menuStore > .tobago-dropdown-menu .dropdown-item [...]
+ 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-header.sticky-top tobago-in .tobago-dropdown-submenu.dropdown-item.tobago-dropdown-menu-anchor > .tobago-dropdown-menu .dropdown-item, tobago-in tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item.tobago-dropdown-menu-anchor > .tobago-dropdown-menu .dropd [...]
padding-left: 0;
}
- 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-header.sticky-top tobago-page .tobago-dropdown-submenu.dropdown-item.tobago-page-menuStore > .tobago-dropdown-menu .dropdown-item::before, tobago-page tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item.tobago-page-menuStore > .tobago-drop [...]
+ 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-header.sticky-top tobago-in .tobago-dropdown-submenu.dropdown-item.tobago-dropdown-menu-anchor > .tobago-dropdown-menu .dropdown-item::before, tobago-in tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item.tobago-dropdown-menu-anchor > .tob [...]
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-dropdown.tobago-dropdown-submenu.dropdown-item > .tobago-dropdown-menu .custom-radio > .dropdown-item, tobago-header.sticky-top tobago-page .tobago-dropdown-submenu.dropdown-item.tobago-page-menuStore > .tobago-dropdown-menu .custom-radio > .dropdown-item, tobago-page tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item.tobago-page- [...]
+ 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-header.sticky-top tobago-in .tobago-dropdown-submenu.dropdown-item.tobago-dropdown-menu-anchor > .tobago-dropdown-menu .custom-radio > .dropdown-item, tobago-in tobago-header.sticky-top .tobago-dropdown-submenu.dropdown-item.tobago-dro [...]
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-dropdown.tobago-dropdown-submenu.dropdown-item > .tobago-dropdown-menu .custom-radio > .dropdown-item::before, tobago-header.sticky-top tobago-page .tobago-dropdown-submenu.dropdown-item.tobago-page-menuStore > .tobago-dropdown-menu .custom-radio > .dropdown-item::before, tobago-page tobago-header.sticky-top .tobago-dropdown-submenu.dr [...]
+ 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-header.sticky-top tobago-in .tobago-dropdown-submenu.dropdown-item.tobago-dropdown-menu-anchor > .tobago-dropdown-menu .custom-radio > .dropdown-item::before, tobago-in tobago-header.sticky-top .tobago-dropdown-submenu. [...]
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-dropdown.tobago-dropdown-submenu.dropdown-item > .tobago-dropdown-menu .custom-radio > .dropdown-item::after, tobago-header.sticky-top tobago-page .tobago-dropdown-submenu.dropdown-item.tobago-page-menuStore > .tobago-dropdown-menu .custom-radio > .dropdown-item::after, tobago-page tobago-header.sticky-top .tobago-dropdown-submenu.dropd [...]
+ 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-header.sticky-top tobago-in .tobago-dropdown-submenu.dropdown-item.tobago-dropdown-menu-anchor > .tobago-dropdown-menu .custom-radio > .dropdown-item::after, tobago-in tobago-header.sticky-top .tobago-dropdown-submenu.dro [...]
left: 0;
}
tobago-header.sticky-top .tobago-dropdown-submenu::after {
@@ -14657,14 +14676,14 @@ .tobago-selectOneRadio .form-check-label input[type=radio][readonly] + .tobago-i
background: #f7f7f7;
}
-.tobago-dropdown-submenu > .dropdown-menu, tobago-dropdown.tobago-dropdown-submenu > .tobago-dropdown-menu, tobago-page .tobago-dropdown-submenu.tobago-page-menuStore > .tobago-dropdown-menu, tobago-page .tobago-page-menuStore .tobago-dropdown-submenu > .tobago-options.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 {
+.tobago-dropdown-submenu > .dropdown-menu, tobago-dropdown.tobago-dropdown-submenu > .tobago-dropdown-menu, tobago-in .tobago-dropdown-submenu.tobago-dropdown-menu-anchor > .tobago-dropdown-menu, tobago-page .tobago-dropdown-submenu.tobago-page-menuStore > .tobago-dropdown-menu, tobago-page .tobago-page-menuStore .tobago-dropdown-submenu > .tobago-options.tobago-dropdown-menu, tobago-select-one-list .tobago-dropdown-submenu > .tobago-options.tobago-dropdown-menu, tobago-select-many-list [...]
border-radius: 0;
}
-.dropdown-menu, tobago-dropdown > .tobago-dropdown-menu, tobago-page .tobago-page-menuStore > .tobago-dropdown-menu, tobago-page .tobago-page-menuStore .tobago-options.tobago-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-in .tobago-dropdown-menu-anchor > .tobago-dropdown-menu, tobago-page .tobago-page-menuStore > .tobago-dropdown-menu, tobago-page .tobago-page-menuStore .tobago-options.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-dropdown > .tobago-dropdown-menu .tobago-selectBooleanCheckbox .form-check-label, tobago-page .tobago-page-menuStore > .tobago-dropdown-menu .tobago-selectBooleanCheckbox .form-check-label, tobago-page .tobago-page-menuStore .tobago-options.tobago-dropdown-menu .tobago-selectBooleanCheckbox .form-check-label, tobago-select-one-list .tobago-options.tobago-dropdown-menu .tobago-selectBooleanCheckbox .form-check-label, t [...]
+.dropdown-menu .tobago-selectBooleanCheckbox .form-check-label, tobago-dropdown > .tobago-dropdown-menu .tobago-selectBooleanCheckbox .form-check-label, tobago-in .tobago-dropdown-menu-anchor > .tobago-dropdown-menu .tobago-selectBooleanCheckbox .form-check-label, tobago-page .tobago-page-menuStore > .tobago-dropdown-menu .tobago-selectBooleanCheckbox .form-check-label, tobago-page .tobago-page-menuStore .tobago-options.tobago-dropdown-menu .tobago-selectBooleanCheckbox .form-check-label [...]
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 8309bd5eeb..4bb66b659d 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/mixins/_color-mode.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/_type.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/mixins/_color-mode.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/_type.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 4bf3fa53df..8194684018 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,[data-bs-theme=light]{--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 [...]
+@charset "UTF-8";:root,[data-bs-theme=light]{--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 [...]
/*# 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 685b631bc5..c09e6a1bc5 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":"iBAsCA,MACA,sBACE,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,C [...]
\ No newline at end of file
+{"version":3,"sources":["tobago-theme-speyside/src/main/css/tobago.css"],"names":[],"mappings":"iBAsCA,MACA,sBACE,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,C [...]
\ 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 e1d2d55033..1edaf8f396 100644
--- a/tobago-theme/tobago-theme-standard/src/main/css/tobago.css
+++ b/tobago-theme/tobago-theme-standard/src/main/css/tobago.css
@@ -3396,7 +3396,7 @@ .dropdown-toggle:empty::after {
margin-left: 0;
}
-.dropdown-menu, tobago-select-many-list .tobago-options.tobago-dropdown-menu, tobago-select-one-list .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore > .tobago-dropdown-menu, tobago-dropdown > .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 .tobago-page-menuStore .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore > .tobago-dropdown-menu, tobago-in .tobago-dropdown-menu-anchor > .tobago-dropdown-menu, tobago-dropdown > .tobago-dropdown-menu {
--bs-dropdown-zindex: 1000;
--bs-dropdown-min-width: 10rem;
--bs-dropdown-padding-x: 0;
@@ -3438,7 +3438,7 @@ .dropdown-menu, tobago-select-many-list .tobago-options.tobago-dropdown-menu, to
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, tobago-page .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore > [data-bs-popper].tobago-dropdown-menu, tobago-dropdown > [data-bs-popper].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 .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore > [data-bs-popper].tobago-dropdown-menu, tobago-in .tobago-dropdown-menu-anchor > [data-bs-popper].tobago-dropdown-menu, tobago-dropdown > [data-bs-popper].tobago-dropdown-menu {
top: 100%;
left: 0;
margin-top: var(--bs-dropdown-spacer);
@@ -3540,7 +3540,7 @@ @media (min-width: 1400px) {
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 tobago-page .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-page . [...]
+.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 .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago-page . [...]
top: auto;
bottom: 100%;
margin-top: 0;
@@ -3560,7 +3560,7 @@ .dropup .dropdown-toggle:empty::after {
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 tobago-page .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago- [...]
+.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 .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-menu, tobago- [...]
top: 0;
right: auto;
left: 100%;
@@ -3584,7 +3584,7 @@ .dropend .dropdown-toggle::after {
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 tobago-page .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-m [...]
+.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 .tobago-page-menuStore [data-bs-popper].tobago-options.tobago-dropdown-m [...]
top: 0;
right: 100%;
left: auto;
@@ -3653,7 +3653,7 @@ .dropdown-item.disabled, .dropdown-item:disabled {
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, tobago-page .tobago-page-menuStore .show.tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore > .show.tobago-dropdown-menu, tobago-dropdown > .show.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 .tobago-page-menuStore .show.tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore > .show.tobago-dropdown-menu, tobago-in .tobago-dropdown-menu-anchor > .show.tobago-dropdown-menu, tobago-dropdown > .show.tobago-dropdown-menu {
display: block;
}
@@ -3856,7 +3856,7 @@ .nav-tabs .nav-item.show .nav-link {
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 tobago-page .tobago-page-menuStore .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore .nav-tabs .tobago-options.tobago-dropdown-menu, .nav-tabs toba [...]
+.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 .tobago-page-menuStore .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore .nav-tabs .tobago-options.tobago-dropdown-menu, .nav-tabs toba [...]
margin-top: calc(-1 * var(--bs-nav-tabs-border-width));
border-top-left-radius: 0;
border-top-right-radius: 0;
@@ -3991,7 +3991,7 @@ .navbar-nav {
.navbar-nav .nav-link.active, .navbar-nav .nav-link.show {
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 tobago-page .tobago-page-menuStore .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore .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 .tobago-page-menuStore .tobago-options.tobago-dropdown-menu, tobago-page .tobago-page-menuStore .navbar-nav .tobago-options.tobago-dropdown-menu, [...]
position: static;
}
@@ -4060,7 +4060,7 @@ @media (min-width: 576px) {
.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 tobago-page .tobago-page-menuStore .tobago-optio [...]
+ .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 .tobago-page-menuStore .tobago-optio [...]
position: absolute;
}
.navbar-expand-sm .navbar-nav .nav-link {
@@ -4107,7 +4107,7 @@ @media (min-width: 768px) {
.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 tobago-page .tobago-page-menuStore .tobago-optio [...]
+ .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 .tobago-page-menuStore .tobago-optio [...]
position: absolute;
}
.navbar-expand-md .navbar-nav .nav-link {
@@ -4154,7 +4154,7 @@ @media (min-width: 992px) {
.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 tobago-page .tobago-page-menuStore .tobago-optio [...]
+ .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 .tobago-page-menuStore .tobago-optio [...]
position: absolute;
}
.navbar-expand-lg .navbar-nav .nav-link {
@@ -4201,7 +4201,7 @@ @media (min-width: 1200px) {
.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 tobago-page .tobago-page-menuStore .tobago-optio [...]
+ .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 .tobago-page-menuStore .tobago-optio [...]
position: absolute;
}
.navbar-expand-xl .navbar-nav .nav-link {
@@ -4248,7 +4248,7 @@ @media (min-width: 1400px) {
.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 tobago-page .tobago-page-menuStore .tobago [...]
+ .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 .tobago-page-menuStore .tobago [...]
position: absolute;
}
.navbar-expand-xxl .navbar-nav .nav-link {
@@ -4294,7 +4294,7 @@ .navbar-expand {
.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 tobago-page .tobago-page-menuStore .tobago-options.tobago-dropdown-m [...]
+.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 .tobago-page-menuStore .tobago-options.tobago-dropdown-m [...]
position: absolute;
}
.navbar-expand .navbar-nav .nav-link {
@@ -12457,7 +12457,6 @@ tobago-image > img {
max-height: inherit;
}
-/* in ----------------------------------------------------------- */
tobago-in {
display: block;
}
@@ -12483,23 +12482,34 @@ tobago-in .input-group tobago-select-one-choice.form-select {
tobago-in .input-group tobago-select-one-choice.form-select > .form-select {
border: 0;
}
-tobago-in.autocomplete[data-loading=true] .autocomplete-pseudo-container {
+tobago-in .spinner {
+ display: none;
position: absolute;
}
-tobago-in.autocomplete[data-loading=true] .autocomplete-pseudo-container:after {
+tobago-in .spinner.tobago-show {
+ display: block;
+}
+tobago-in .spinner:after {
content: "";
border: 3px solid rgba(0, 0, 0, 0.12);
border-right-color: rgba(0, 0, 0, 0.48);
border-radius: 100%;
- width: 20px;
- height: 20px;
+ width: 100%;
+ height: 100%;
+ top: 50%;
position: absolute;
z-index: 5;
transform: translateY(-50%);
animation: rotate 1s linear infinite;
}
-tobago-in .autocomplete-result-list {
- cursor: pointer;
+tobago-in .tobago-dropdown-menu-anchor > .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. */
+ position: fixed;
+ overflow: auto;
+ overscroll-behavior: none;
+ margin: var(--tobago-dropdown-menu-offset);
+ z-index: var(--tobago-dropdown-menu-z-index);
}
tobago-in tobago-suggest {
display: none;
@@ -12999,6 +13009,15 @@ tobago-page .tobago-page-menuStore .tobago-options .table tfoot tr.tobago-no-ent
tobago-page .tobago-page-menuStore .tobago-options .table tfoot tr.tobago-no-entries td {
border-bottom-width: 0;
}
+tobago-page .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. */
+ position: fixed;
+ overflow: auto;
+ overscroll-behavior: none;
+ margin: var(--tobago-dropdown-menu-offset);
+ z-index: var(--tobago-dropdown-menu-z-index);
+}
tobago-page .tobago-page-popoverStore .popover .popover-body {
white-space: pre-line;
}
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 d7befeadb3..1e1139c776 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/mixins/_color-mode.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../. [...]
\ 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/mixins/_color-mode.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../. [...]
\ 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 61fac241cc..44549c1332 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,[data-bs-theme=light]{--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- [...]
+@charset "UTF-8";:root,[data-bs-theme=light]{--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- [...]
/*# 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 463ad12f23..b8135791a7 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":"iBAsBA,MACA,sBACE,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,IAC9 [...]
\ No newline at end of file
+{"version":3,"sources":["tobago-theme-standard/src/main/css/tobago.css"],"names":[],"mappings":"iBAsBA,MACA,sBACE,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,IAC9 [...]
\ 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 9fe9d03949..829665262b 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,t,s,n;!function(e){e.ACTIVE="active",e.AUTOCOMPLETE="autocomplete",e.AUTOCOMPLETE_INPUT="autocomplete-input",e.BOTTOM_0="bottom-0",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.END_0="end-0",e.FADE="fade",e.FIXED_BOTTOM="fixe [...]
+!function(e){"function"==typeof define&&define.amd?define(e):e()}((function(){"use strict";var e,t,s,n;!function(e){e.ACTIVE="active",e.AUTOCOMPLETE="autocomplete",e.AUTOCOMPLETE_INPUT="autocomplete-input",e.BOTTOM_0="bottom-0",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.END_0="end-0",e.FADE="fade",e.FIXED_BOTTOM="fixe [...]
/*!
* Bootstrap v5.3.3 (https://getbootstrap.com/)
* Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
-const ht=new Map,pt={set(e,t,s){ht.has(e)||ht.set(e,new Map);const n=ht.get(e);n.has(t)||0===n.size?n.set(t,s):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(n.keys())[0]}.`)},get:(e,t)=>ht.has(e)&&ht.get(e).get(t)||null,remove(e,t){if(!ht.has(e))return;const s=ht.get(e);s.delete(t),0===s.size&&ht.delete(e)}},gt="transitionend",mt=e=>(e&&window.CSS&&window.CSS.escape&&(e=e.replace(/#([^\s"#']+)/g,((e,t)=>`#${CSS.escape(t)}`))),e),f [...]
+const st=new Map,nt={set(e,t,s){st.has(e)||st.set(e,new Map);const n=st.get(e);n.has(t)||0===n.size?n.set(t,s):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(n.keys())[0]}.`)},get:(e,t)=>st.has(e)&&st.get(e).get(t)||null,remove(e,t){if(!st.has(e))return;const s=st.get(e);s.delete(t),0===s.size&&st.delete(e)}},it="transitionend",ot=e=>(e&&window.CSS&&window.CSS.escape&&(e=e.replace(/#([^\s"#']+)/g,((e,t)=>`#${CSS.escape(t)}`))),e),r [...]
/**
* @license
* Copyright 2017 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
- */const mr=globalThis,fr=mr.trustedTypes,br=fr?fr.createPolicy("lit-html",{createHTML:e=>e}):void 0,vr="$lit$",_r=`lit$${Math.random().toFixed(9).slice(2)}$`,yr="?"+_r,Er=`<${yr}>`,wr=document,Ar=()=>wr.createComment(""),Sr=e=>null===e||"object"!=typeof e&&"function"!=typeof e,Lr=Array.isArray,Or="[ \t\n\f\r]",Tr=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,xr=/-->/g,Cr=/>/g,Ir=RegExp(`>|${Or}(?:([^\\s"'>=/]+)(${Or}*=${Or}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),Nr=/'/g,kr [...]
+ */const or=globalThis,rr=or.trustedTypes,ar=rr?rr.createPolicy("lit-html",{createHTML:e=>e}):void 0,lr="$lit$",dr=`lit$${Math.random().toFixed(9).slice(2)}$`,cr="?"+dr,hr=`<${cr}>`,ur=document,pr=()=>ur.createComment(""),gr=e=>null===e||"object"!=typeof e&&"function"!=typeof e,mr=Array.isArray,fr="[ \t\n\f\r]",br=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,vr=/-->/g,_r=/>/g,Er=RegExp(`>|${fr}(?:([^\\s"'>=/]+)(${fr}*=${fr}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),yr=/'/g,wr [...]
<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){var t;const s=e.target.closest(".btn-group").dataset.tobagoValue,n=this.hiddenSelect.querySelector(`[value="${s}"]`);n.selected=!1;const i=this.badges.querySelector(`[data-tobago-value="${s}"]`),o=i.previousElementSibling,r="SPAN"===(null===(t=i.nextElementSibling)||void 0===t?void 0:t.tagName)?i.nextElementSibling:null;o?o.querySelector("button.btn.badge").focus():r?r.querySelector("button.btn.ba [...]
+ @blur="${this.blurEvent.bind(this)}"><i class='bi-x-lg'></i></button>`}removeBadge(e){var t;const s=e.target.closest(".btn-group").dataset.tobagoValue,n=this.hiddenSelect.querySelector(`[value="${s}"]`);n.selected=!1;const i=this.badges.querySelector(`[data-tobago-value="${s}"]`),o=i.previousElementSibling,r="SPAN"===(null===(t=i.nextElementSibling)||void 0===t?void 0:t.tagName)?i.nextElementSibling:null;o?o.querySelector("button.btn.badge").focus():r?r.querySelector("button.btn.ba [...]
//# 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 c4e7a3e666..a84193d6ef 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-key.ts","../ts/tobago-client-behaviors.ts","../ts/tobago-dropdown-menu.ts","../ts/tobago-bar.ts","../ts/tobago-date.ts","../ts/tobago-menu-store.ts","../ts/tobago-dropdown-item-factory.ts","../ts/tobago-dropdown-item.ts","../ts/tobago-dropdown.ts","../ts/tobago-overlay-type.ts","../ts/tobago-page-static.ts","../ts/tobago-page.ts","../ts/tobago-overlay.ts","../ts/tobago-file.ts","../ts/tobago-focus.ts","../ts/t [...]
\ No newline at end of file
+{"version":3,"file":"tobago.js","sources":["../ts/tobago-css.ts","../ts/tobago-key.ts","../ts/tobago-client-behaviors.ts","../ts/tobago-dropdown-menu.ts","../ts/tobago-bar.ts","../ts/tobago-date.ts","../ts/tobago-menu-store.ts","../ts/tobago-dropdown-item-factory.ts","../ts/tobago-dropdown-item.ts","../ts/tobago-dropdown.ts","../ts/tobago-overlay-type.ts","../ts/tobago-suggest-filter.ts","../ts/tobago-page-static.ts","../ts/tobago-page.ts","../ts/tobago-overlay.ts","../ts/tobago-file.ts" [...]
\ No newline at end of file