| | |
| | | } |
| | | return element.getBoundingClientRect(); |
| | | } |
| | | |
| | | const trim = function (string: string) { |
| | | return (string || '').replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g, ''); |
| | | }; |
| | | |
| | | /* istanbul ignore next */ |
| | | export function hasClass(el: Element, cls: string) { |
| | | if (!el || !cls) return false; |
| | |
| | | return (' ' + el.className + ' ').indexOf(' ' + cls + ' ') > -1; |
| | | } |
| | | } |
| | | |
| | | /* istanbul ignore next */ |
| | | export function addClass(el: Element, cls: string) { |
| | | if (!el) return; |
| | |
| | | } |
| | | |
| | | /* istanbul ignore next */ |
| | | export const on = function ( |
| | | element: HTMLElement | Document | Window, |
| | | export function on( |
| | | element: Element | HTMLElement | Document | Window, |
| | | event: string, |
| | | handler: EventListenerOrEventListenerObject |
| | | ): void { |
| | | if (element && event && handler) { |
| | | element.addEventListener(event, handler, false); |
| | | } |
| | | }; |
| | | } |
| | | |
| | | /* istanbul ignore next */ |
| | | export const off = function ( |
| | | element: HTMLElement | Document | Window, |
| | | export function off( |
| | | element: Element | HTMLElement | Document | Window, |
| | | event: string, |
| | | handler: Fn |
| | | ): void { |
| | | if (element && event && handler) { |
| | | element.removeEventListener(event, handler, false); |
| | | } |
| | | }; |
| | | } |
| | | |
| | | /* istanbul ignore next */ |
| | | export function once(el: HTMLElement, event: string, fn: EventListener): void { |
| | | const listener = function (this: any, ...args: unknown[]) { |
| | | if (fn) { |
| | | fn.apply(this, args); |
| | | } |
| | | off(el, event, listener); |
| | | }; |
| | | on(el, event, listener); |
| | | } |