baseframe-js
Version:
Baseframe JS is a comprehensive suite of modular plugins and utilities designed for front-end development
62 lines (61 loc) • 2.01 kB
TypeScript
import type { StringPluginArgChoices } from './types';
import { type BaseElem, type SelectorRoot } from "base-elem-js";
type SubmenuBtnSkipFn = (elem: HTMLElement) => boolean;
interface NavMobileCssList {
outerOpen: string;
hasUl: string;
noUl: string;
open: string;
opening: string;
closing: string;
toggling: string;
btn: string;
}
export interface INavMobileDefaults {
enableBtn: HTMLElement | string;
ariaLabel: string;
tgBtnText: string;
insertBtnAfter: string;
slideDuration: number;
outerElement: HTMLElement | string;
outsideClickClose: boolean;
cssPrefix: string;
menuBtnCss: string;
menuBtnSkip: SubmenuBtnSkipFn | boolean;
doTrapFocus: boolean;
trapFocusElem: SelectorRoot | null;
stopPropagation: boolean;
bkptEnable: number | null;
animateHeight: boolean;
afterNavItemOpen: (li: HTMLLIElement[]) => void;
afterNavItemClose: (li: HTMLLIElement[]) => void;
afterOpen(element: HTMLElement, outerElement: HTMLElement[], enableBtn: HTMLElement): any;
afterClose(element: HTMLElement, outerElement: HTMLElement[], enableBtn: HTMLElement): any;
}
export interface INavMobileOptions extends Partial<INavMobileDefaults> {
enableBtn: HTMLElement | string;
}
export default class NavMobile {
#private;
$element: BaseElem;
element: HTMLElement;
params: INavMobileDefaults;
menuOpened: boolean;
allowClick: boolean;
cssList: NavMobileCssList;
$enableBtn: BaseElem;
enableBtn: HTMLElement;
static defaults: INavMobileDefaults;
static version: string;
static pluginName: string;
constructor(element: HTMLElement, options: INavMobileOptions | StringPluginArgChoices);
static remove(element: BaseElem, plugin?: NavMobile): void;
}
export interface NavMobilePlugin {
navMobile(options: INavMobileOptions | StringPluginArgChoices): BaseElem;
}
declare module 'base-elem-js' {
interface BaseElem extends NavMobilePlugin {
}
}
export {};