UNPKG

baseframe-js

Version:

A suite of useful Javascript plugins and functions to help with Front-end Development on websites

79 lines (78 loc) 2.42 kB
import type { Cash, Selector } from "cash-dom"; import type { StringPluginArgChoices } from './types'; type submenuBtnSkipFn = (elem: HTMLElement) => boolean; interface NavMobileCssList { menuOuterOpen: string; menuHasUL: string; menuOpen: string; menuOpening: string; menuClosing: string; menuToggling: string; menuBtnCss: string; } export interface INavMobileDefaults { enableBtn: Selector; ariaLabel: string; subMenuText: string; insertToggleBtnAfter: string; slideDuration: number; outerElement: string; outsideClickClose: boolean; cssPrefix: string; menuBtnCss: string; menuBtnSkip: submenuBtnSkipFn | boolean; doTrapFocus: boolean; trapFocusElem: Selector | null; stopPropagation: boolean; bkptEnable: number | null; animateHeight: boolean; afterNavItemOpen: ($li: Cash) => void; afterNavItemClose: ($li: Cash) => void; afterOpen($element: Cash, outerElement: Cash, enableBtn: Cash): any; afterClose($element: Cash, outerElement: Cash, enableBtn: Cash): any; } export interface INavMobileOptions extends Partial<INavMobileDefaults> { enableBtn: Selector; } export default class NavMobile { #private; $element: Cash; params: INavMobileDefaults; menuOpened: boolean; allowClick: boolean; cssList: NavMobileCssList; static defaults: { enableBtn: string; ariaLabel: string; subMenuText: string; insertToggleBtnAfter: string; slideDuration: number; outerElement: HTMLElement; outsideClickClose: boolean; animateHeight: boolean; cssPrefix: string; menuBtnCss: string; menuBtnSkip: boolean; afterNavItemOpen: () => void; afterNavItemClose: () => void; afterOpen: () => void; afterClose: () => void; doTrapFocus: boolean; trapFocusElem: any; stopPropagation: boolean; bkptEnable: any; }; static version: string; static pluginName: string; constructor(element: HTMLElement, options: INavMobileOptions | StringPluginArgChoices); handleEvents(): void; addChildNavCss(): void; checkIfEnabled(): void; static remove(element: Cash, plugin?: NavMobile): void; } declare module 'cash-dom' { interface Cash { navMobile(options: INavMobileOptions | StringPluginArgChoices): Cash; } } export {};