From 27137db7b49195accbd3690f10a1c4ff6de49ad8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Stalder?= Date: Wed, 14 Mar 2018 10:35:12 +0100 Subject: [PATCH] add typescript typings --- index.d.ts | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 index.d.ts diff --git a/index.d.ts b/index.d.ts new file mode 100644 index 00000000..f27bea7 --- /dev/null +++ b/index.d.ts @@ -0,0 +1,59 @@ +declare module 'scrollmonitor' { + export const scrollMonitor: ScrollMonitorContainer; + export default scrollMonitor; + + export class ScrollMonitorContainer { + viewportTop: number; + viewportBottom: number; + viewportHeight: number; + documentHeight: number; + + constructor(containerEl: HTMLElement); + + create: ( + watchItem: HTMLElement | object | number | NodeList | Array | string, + offsets?: Offsets | number + ) => Watcher; + + update: () => void; + recalculateLocations: () => void; + + createContainer: (containerEl: HTMLElement) => ScrollMonitorContainer; + } + + export interface Watcher { + isInViewport: boolean; + isFullyInViewport: boolean; + isAboveViewport: boolean; + isBelowViewport: boolean; + top: number; + bottom: number; + height: number; + watchItem: HTMLElement | object | number; + offsets: Offsets; + + // Events + visibilityChange: (callback: () => void) => void; + stateChange: (callback: () => void) => void; + enterViewport: (callback: () => void) => void; + fullyEnterViewport: (callback: () => void) => void; + exitViewport: (callback: () => void) => void; + partiallyExitViewport: (callback: () => void) => void; + + // Functions + on: () => void; + off: () => void; + one: () => void; + recalculateLocation: () => void; + destroy: () => void; + lock: () => void; + unlock: () => void; + update: () => void; + triggerCallbacks: () => void; + } + + export interface Offsets { + top?: number; + bottom?: number; + } +}