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 2020/03/02 08:23:23 UTC
[myfaces-tobago] 02/06: tobago-dropdown: custom elements,
remove jQuery
This is an automated email from the ASF dual-hosted git repository.
hnoeth pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/myfaces-tobago.git
commit fadb65946d6748fc430a0484cffd56478c613d0b
Author: Henning Noeth <hn...@apache.org>
AuthorDate: Wed Feb 26 15:55:44 2020 +0100
tobago-dropdown: custom elements, remove jQuery
* add events
issue: TOBAGO-1633: TS refactoring
---
.../tobago-theme-standard/src/main/npm/ts/tobago-dropdown.ts | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/tobago-theme/tobago-theme-standard/src/main/npm/ts/tobago-dropdown.ts b/tobago-theme/tobago-theme-standard/src/main/npm/ts/tobago-dropdown.ts
index f026821..9e4f1be 100644
--- a/tobago-theme/tobago-theme-standard/src/main/npm/ts/tobago-dropdown.ts
+++ b/tobago-theme/tobago-theme-standard/src/main/npm/ts/tobago-dropdown.ts
@@ -17,6 +17,13 @@
import Popper from "popper.js";
+const Event = {
+ HIDE: "tobago.dropdown.hide",
+ HIDDEN: "tobago.dropdown.hidden",
+ SHOW: "tobago.dropdown.show",
+ SHOWN: "tobago.dropdown.shown"
+};
+
class Dropdown extends HTMLElement {
private dropdownEntries: DropdownEntry[] = [];
@@ -107,6 +114,8 @@ class Dropdown extends HTMLElement {
}
openDropdown(): void {
+ this.dispatchEvent(new CustomEvent(Event.HIDE));
+
if (!this.inStickyHeader()) {
this.menuStore.appendChild(this.dropdownMenu);
new Popper(this.toggleButton, this.dropdownMenu, {
@@ -119,11 +128,14 @@ class Dropdown extends HTMLElement {
}
this.dropdownMenu.classList.add("show");
+ this.dispatchEvent(new CustomEvent(Event.HIDDEN));
}
closeDropdown(): void {
+ this.dispatchEvent(new CustomEvent(Event.SHOW));
this.dropdownMenu.classList.remove("show");
this.appendChild(this.dropdownMenu);
+ this.dispatchEvent(new CustomEvent(Event.SHOWN));
}
private get toggleButton(): HTMLElement {