From 8dcc863aedd6c0aca6b8ec0512d94a2be4e08909 Mon Sep 17 00:00:00 2001 From: Daniel <50356015+danny007in@users.noreply.github.com> Date: Tue, 17 Oct 2023 15:05:15 +0530 Subject: [PATCH] Treeview accordance (#5345) --- src/ts/treeview.ts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/ts/treeview.ts b/src/ts/treeview.ts index d5e6cb9ca..ed95b1ca5 100644 --- a/src/ts/treeview.ts +++ b/src/ts/treeview.ts @@ -33,11 +33,13 @@ const SELECTOR_TREEVIEW_MENU = '.nav-treeview' const SELECTOR_DATA_TOGGLE = '[data-lte-toggle="treeview"]' const Default = { - animationSpeed: 300 + animationSpeed: 300, + accordion: true } type Config = { animationSpeed: number; + accordion: boolean; } /** @@ -57,6 +59,20 @@ class Treeview { open(): void { const event = new Event(EVENT_EXPANDED) + if (this._config.accordion) { + const openMenuList = this._element.parentElement?.querySelectorAll(`${SELECTOR_NAV_ITEM}.${CLASS_NAME_MENU_OPEN}`) + + openMenuList?.forEach(openMenu => { + if (openMenu !== this._element.parentElement) { + openMenu.classList.remove(CLASS_NAME_MENU_OPEN) + const childElement = openMenu?.querySelector(SELECTOR_TREEVIEW_MENU) as HTMLElement | undefined + if (childElement) { + slideUp(childElement, this._config.animationSpeed) + } + } + }) + } + this._element.classList.add(CLASS_NAME_MENU_OPEN) const childElement = this._element?.querySelector(SELECTOR_TREEVIEW_MENU) as HTMLElement | undefined