Options
All
  • Public
  • Public/Protected
  • All
Menu

helper-js

Index

Classes

Interfaces

Type aliases

Variables

Functions

Type aliases

BinarySearchReturn<T>: { count: number; greater?: boolean; hit: boolean; index: number; value: T } | null

Type parameters

  • T

CloneTreeNodeHandler<T>: (node: T, info: { index: number; oldNode: T; parent: T | null; path: TreeDataPath }) => T

Type parameters

  • T

Type declaration

    • (node: T, info: { index: number; oldNode: T; parent: T | null; path: TreeDataPath }): T
    • Parameters

      • node: T
      • info: { index: number; oldNode: T; parent: T | null; path: TreeDataPath }

      Returns T

FindAllCallback: (value: any, index: number) => void | boolean

Type declaration

    • (value: any, index: number): void | boolean
    • Parameters

      • value: any
      • index: number

      Returns void | boolean

FindTreeDataHandler<T>: ReplaceReturnType<WalkTreeDataHandler<T>, any>

Type parameters

  • T

FindTreeDataOptions: WalkTreeDataOptions
GetCalendarDay: { currentMonth?: boolean; date: number; month: number; nextMonth?: boolean; prevMonth?: boolean; text: number; year: number }

Type declaration

  • Optional currentMonth?: boolean
  • date: number
  • month: number
  • Optional nextMonth?: boolean
  • Optional prevMonth?: boolean
  • text: number
  • year: number
IterateAllOptions: { reverse?: boolean; exclude?: any }

Type declaration

  • Optional reverse?: boolean
  • exclude?:function
    • exclude(info: { index: number; value: any } | { key: string; value: any }): boolean
    • Parameters

      • info: { index: number; value: any } | { key: string; value: any }

      Returns boolean

MapObjectTreeHandler: (value: any, key: string | number, parent: object | any[], newParent: object | any[]) => void | null | undefined | { delete?: boolean; key?: string; skip?: boolean; stop?: boolean; value?: any }

Type declaration

    • (value: any, key: string | number, parent: object | any[], newParent: object | any[]): void | null | undefined | { delete?: boolean; key?: string; skip?: boolean; stop?: boolean; value?: any }
    • Parameters

      • value: any
      • key: string | number
      • parent: object | any[]
      • newParent: object | any[]

      Returns void | null | undefined | { delete?: boolean; key?: string; skip?: boolean; stop?: boolean; value?: any }

Nullable<T>: T | null

Type parameters

  • T

OmitFirstParameter<F>: F extends (x: any, ...args: infer P) => infer R ? (...args: P) => R : never

Remove function's first parameter

Type parameters

  • F

ParametersWithoutFirst<T>: T extends (first: any, ...args: infer P) => any ? P : never

Type parameters

  • T: (...args: any) => any

ReplaceReturnType<T, TNewReturn>: (...a: Parameters<T>) => TNewReturn

Type parameters

  • T: (...a: any) => any

  • TNewReturn

Type declaration

    • (...a: Parameters<T>): TNewReturn
    • Parameters

      • Rest ...a: Parameters<T>

      Returns TNewReturn

TreeDataNodeInfo<T>: { index: number; node: T; parent: T | null; path: TreeDataPath }

Type parameters

  • T

Type declaration

TreeDataPath: number[]
ViewportPosition: ReturnType<typeof getViewportPosition>
WalkTreeDataHandler<T>: (node: T, index: number, parent: T | null, path: TreeDataPath) => void | false | "skip children" | "skip siblings"

Type parameters

  • T

Type declaration

    • (node: T, index: number, parent: T | null, path: TreeDataPath): void | false | "skip children" | "skip siblings"
    • Parameters

      Returns void | false | "skip children" | "skip siblings"

WalkTreeDataOptions: { childFirst?: boolean; childrenKey?: string; reverse?: boolean }

Type declaration

  • Optional childFirst?: boolean
  • Optional childrenKey?: string
  • Optional reverse?: boolean

Variables

extendedLocalStorage: { action: () => { storage: Storage; clear: any; get: any; set: any }; clearCache: () => void } = ...

Type declaration

  • action: () => { storage: Storage; clear: any; get: any; set: any }
      • (): { storage: Storage; clear: any; get: any; set: any }
      • Returns { storage: Storage; clear: any; get: any; set: any }

        • storage: Storage
        • clear:function
          • clear(): void
        • get:function
          • get(name: string): any
        • set:function
          • set(name: string, value: any, minutes: number): void
          • Parameters

            • name: string
            • value: any
            • minutes: number

            Returns void

  • clearCache: () => void
      • (): void
      • Returns void

extendedSessionStorage: { action: () => { storage: Storage; clear: any; get: any; set: any }; clearCache: () => void } = ...

Type declaration

  • action: () => { storage: Storage; clear: any; get: any; set: any }
      • (): { storage: Storage; clear: any; get: any; set: any }
      • Returns { storage: Storage; clear: any; get: any; set: any }

        • storage: Storage
        • clear:function
          • clear(): void
        • get:function
          • get(name: string): any
        • set:function
          • set(name: string, value: any, minutes: number): void
          • Parameters

            • name: string
            • value: any
            • minutes: number

            Returns void

  • clearCache: () => void
      • (): void
      • Returns void

Functions

  • addClass(el: Element, className: string | string[]): void
  • Parameters

    • el: Element
    • className: string | string[]

    Returns void

  • addDate(dateObj: Date, n: number, type: "year" | "month" | "day" | "date" | "hour" | "minute" | "second" | "millisecond"): Date
  • Parameters

    • dateObj: Date
    • n: number
    • type: "year" | "month" | "day" | "date" | "hour" | "minute" | "second" | "millisecond"

    Returns Date

  • appendTo(el: Node, target: Node): void
  • Parameters

    • el: Node
    • target: Node

    Returns void

  • applyFinally<T, Y>(func: T, finallyFunc: Y): T
  • apply finally function to a function, execute it after target return, event it error 在目标方法结束或出错后执行另一方法

    Type parameters

    • T: Function

    • Y: Function

    Parameters

    • func: T
    • finallyFunc: Y

    Returns T

  • arrayAt<T>(arr: T[], n: number): T
  • get item from array by index. index can be negative number 通过索引获取数组一项. 支持负值索引.

    Type parameters

    • T

    Parameters

    • arr: T[]
    • n: number

    Returns T

  • arrayBetween<T>(arr: T[], index: number, endIndex: number): T[]
  • get items from array between 2 indeies. index can be negative 从数组获得一个范围内的项. 范围可以为负.

    Type parameters

    • T

    Parameters

    • arr: T[]
    • index: number
    • endIndex: number

    Returns T[]

  • arrayDiff<T>(arr1: T[], arr2: T[]): [T[], T[]]
  • Type parameters

    • T

    Parameters

    • arr1: T[]
    • arr2: T[]

    Returns [T[], T[]]

    diff1: in arr1 not in arr2. diff2: in arr2 not in arr1

  • arrayDistinct<T>(arr: T[], getMark?: (item: T, index: number) => unknown): T[]
  • Each item in the new array is unique. 新数组每项唯一.

    Type parameters

    • T

    Parameters

    • arr: T[]
    • Optional getMark: (item: T, index: number) => unknown
        • (item: T, index: number): unknown
        • Parameters

          • item: T
          • index: number

          Returns unknown

    Returns T[]

  • arrayFilter<T>(arr: T, without: any[]): T
  • simplified array.filter() e.g.: arrayFilter(arr, [null, undefined]) equal to arr.filter(v => v!== null && v!== undefined)

    Type parameters

    • T: ArrayLike<any, T>

    Parameters

    • arr: T
    • without: any[]

    Returns T

  • arrayFirst<T>(arr: T[]): T
  • get first or array 返回数组首项

    Type parameters

    • T

    Parameters

    • arr: T[]

    Returns T

  • arrayFlat<T>(arr: any[], depth?: number): T[]
  • get one-dimensional array from multidimensional array 从多维数组获取一维数组

    Type parameters

    • T

    Parameters

    • arr: any[]
    • depth: number = 10

    Returns T[]

  • arrayLast<T>(arr: T[]): T
  • get last of array 返回数组末项

    Type parameters

    • T

    Parameters

    • arr: T[]

    Returns T

  • arrayRemove(arr: any[], v: any): number
  • remove item from array. return removed count 从数组删除项. 返回删除计数

    Parameters

    • arr: any[]
    • v: any

    Returns number

  • arrayRemoveBySortedIndexes(arr: any[], sortedIndexes: number[]): void
  • remove items from array by sorted indexes. indexes example: [0, 2, 6, 8, 9] 通过有序的索引集删除数组项. 索引集例子: [0, 2, 6, 8, 9]

    Parameters

    • arr: any[]
    • sortedIndexes: number[]

    Returns void

  • arrayWithout<T>(arr: T, without: any[]): T
  • alias of arrayFilter

    Type parameters

    • T: ArrayLike<any, T>

    Parameters

    • arr: T
    • without: any[]

    Returns T

  • arrayWithoutEnd<T>(arr: T[], n?: number): T[]
  • return new array excluding n items from end 返回新数组排除末尾n项

    Type parameters

    • T

    Parameters

    • arr: T[]
    • n: number = 1

    Returns T[]

  • assignIfDiff(obj: object, key: string, val: any): void
  • Assign if value different. For assign sensitive, such as Vue.watch.

    Parameters

    • obj: object
    • key: string
    • val: any

    Returns void

  • assignIfKeyNull(obj: object, key: string, val: any): void
  • Parameters

    • obj: object
    • key: string
    • val: any

    Returns void

  • assignIfNoKey(obj: object, key: string, val: any): void
  • Parameters

    • obj: object
    • key: string
    • val: any

    Returns void

  • attachCache(obj: any, toCache: object, cache?: Cache): void
  • backupAttr(el: Element, name: string): void
  • Parameters

    • el: Element
    • name: string

    Returns void

  • between<T>(n: T, min: T, max: T): T
  • limit min and max of value. 限制值的最小和最大值.

    Type parameters

    • T

    Parameters

    • n: T
    • min: T
    • max: T

    Returns T

  • binarySearch, 二分查找

    Type parameters

    • T

    Parameters

    • arr: T[]
    • callback: (mid: T, index: number, count: number) => number

      return mid - your_value for ascending array

        • (mid: T, index: number, count: number): number
        • Parameters

          • mid: T
          • index: number
          • count: number

          Returns number

    • opt: BinarySearchOptions = {}

    Returns BinarySearchReturn<T>

  • bindContext<T>(action: T, context: any): T
  • wrap function, bind context(this).

    Type parameters

    • T: Function

    Parameters

    • action: T
    • context: any

    Returns T

  • cacheFunction<T>(func: T, options?: { capacity?: number }): { action: T; clearCache: () => void }
  • Cache function return by arguments

    Type parameters

    • T: Function

    Parameters

    • func: T
    • options: { capacity?: number } = {}
      • Optional capacity?: number

    Returns { action: T; clearCache: () => void }

    • action: T
    • clearCache: () => void
        • (): void
        • Returns void

  • camelCase(str: string): string
  • 'abc-abc-abc_abc' to 'AbcAbcAbcAbc'

    Parameters

    • str: string

    Returns string

  • camelToWords(str: string): string[]
  • 'AbcAbcAbcAbc' to ['Abc', 'Abc', 'Abc', 'Abc']

    Parameters

    • str: string

    Returns string[]

  • cloneDate(dateObj: Date): Date
  • cloneObject<T>(obj: T): T
  • return JSON.parse(JSON.stringify(obj))

    Type parameters

    • T

    Parameters

    • obj: T

    Returns T

  • cloneTreeData<T>(root: T, options?: { childrenKey?: string; nodeHandler?: CloneTreeNodeHandler<any> }): T
  • continuous<T>(method: T, opt?: { resetCount?: boolean; strategy: "every" | "last" }): (...args: ParametersWithoutFirst<T>) => Promise<void | ReturnType<T>>
  • warp continuous Promise method, such as mousemove handler

    Type parameters

    • T: (info: { count: number; currentCount: { value: number } }, ...args: any[]) => any

    Parameters

    • method: T
    • Optional opt: { resetCount?: boolean; strategy: "every" | "last" }
      • Optional resetCount?: boolean
      • strategy: "every" | "last"

    Returns (...args: ParametersWithoutFirst<T>) => Promise<void | ReturnType<T>>

  • copyTextToClipboard(text: string): void
  • Copy to text to clipboard. Async not supported. Recommend clipboard-polyfill. 复制文字到剪贴板. 仅限于简单使用, 不支持异步. 复杂环境推荐clipboard-polyfill

    Parameters

    • text: string

    Returns void

  • createElementFromHTML(htmlString: string): ChildNode | NodeListOf<ChildNode>
  • return NodeList if there are multiple top-level nodes

    Parameters

    • htmlString: string

    Returns ChildNode | NodeListOf<ChildNode>

  • css(el: Element, name: string): string | undefined
  • like jquery $(el).css(), but only can read

    Parameters

    • el: Element
    • name: string

    Returns string | undefined

  • cssNumber(el: Element, name: string): number
  • Parameters

    • el: Element
    • name: string

    Returns number

  • debounceImmediate<T>(action: T, wait?: number): { action: T; stop: () => void }
  • Type parameters

    • T

    Parameters

    • action: T
    • wait: number = 0

    Returns { action: T; stop: () => void }

    • action: T
    • stop: () => void
        • (): void
        • Returns void

  • debounceTrailing<T>(action: T, wait?: number): { action: T; stop: () => void }
  • Type parameters

    • T

    Parameters

    • action: T
    • wait: number = 0

    Returns { action: T; stop: () => void }

    • action: T
    • stop: () => void
        • (): void
        • Returns void

  • dotGet(obj: object, path: string | string[], throwError?: boolean): any
  • example: dotGet(window, 'document.body.children.0')

    Parameters

    • obj: object
    • path: string | string[]
    • Optional throwError: boolean

    Returns any

  • dotSet(obj: object, path: string | string[], value: any): void
  • example: dotSet(window, 'document.body.children.0', vaue)

    Parameters

    • obj: object
    • path: string | string[]
    • value: any

    Returns void

  • easeInOutQuad(startValue: number, changeInValue: number, changedTime: number, duration: number): number
  • Parameters

    • startValue: number
    • changeInValue: number
    • changedTime: number
    • duration: number

    Returns number

  • elementsFromPoint(x: number, y: number): Element[]
  • Parameters

    • x: number
    • y: number

    Returns Element[]

  • empty(v: number | boolean | object | unknown[]): boolean
  • detect if argumrnt is null, undefined, empty array, empty string, false, NaN, empty object 检查是否是null, undefined, 空数组, 空字符串, false, NaN, 空对象

    Parameters

    • v: number | boolean | object | unknown[]

    Returns boolean

  • executePromiseGetters(getters: (() => any)[], concurrent?: number): { promise: Promise<unknown>; stop: any }
  • execute promise in sequence

    Parameters

    • getters: (() => any)[]
    • concurrent: number = 1

    Returns { promise: Promise<unknown>; stop: any }

    • promise: Promise<unknown>
    • stop:function
      • stop(): void
  • add executed count as first argument of func 增加执行次数作为方法的第一个参数

    Type parameters

    • T

    Parameters

    • func: T

    Returns OmitFirstParameter<T>

  • extendedListen(info: [element: Element | Document | Window, name: string, handler: (event: any) => void, options?: boolean | AddEventListenerOptions][]): { listening: boolean; resume: () => void; stop: () => void }
  • lisiten multi events, and can stop and resume them. start listening by default. start is alias for resume

    Parameters

    • info: [element: Element | Document | Window, name: string, handler: (event: any) => void, options?: boolean | AddEventListenerOptions][]

    Returns { listening: boolean; resume: () => void; stop: () => void }

    • listening: boolean
    • resume: () => void
        • (): void
        • Returns void

    • stop: () => void
        • (): void
        • Returns void

  • findParent<T>(el: T, callback: (parentEl: Element) => boolean | void | "break", opt?: { until?: Element; withSelf?: boolean; withUntil?: boolean }): HTMLElement | T
  • Type parameters

    • T: Element

    Parameters

    • el: T
    • callback: (parentEl: Element) => boolean | void | "break"
        • (parentEl: Element): boolean | void | "break"
        • Parameters

          • parentEl: Element

          Returns boolean | void | "break"

    • opt: { until?: Element; withSelf?: boolean; withUntil?: boolean } = {}
      • Optional until?: Element
      • Optional withSelf?: boolean
      • Optional withUntil?: boolean

    Returns HTMLElement | T

  • genRandomLightColor(): string
  • getArrayItemSiblingsByOffsets<T>(arr: T[], item: any, offsets: number[]): T[]
  • get array item siblings. Example: getArrayItemSiblings(arr, item, [-1, 1]), get previous and next sibling 获得数组项的多个同级. 例: getArrayItemSiblings(arr, item, [-1, 1]), 获得前一个和后一个

    Type parameters

    • T

    Parameters

    • arr: T[]
    • item: any
    • offsets: number[]

    Returns T[]

  • getBoundingClientRect(el: Element): DOMRect
  • relative to viewport. like position fixed. alias getViewportPosition 相对于视口. 类似 position fixed. 别名 getViewportPosition

    Parameters

    • el: Element

    Returns DOMRect

  • getCalendar(year: number, month: number, startWeekDay?: number): GetCalendarDay[][]
  • startWeekDay: 0 is Sunday

    Parameters

    • year: number
    • month: number
    • startWeekDay: number = 0

    Returns GetCalendarDay[][]

    []

  • getElSizeEvenInvisible(el: HTMLElement): { height: number; width: number }
  • Parameters

    • el: HTMLElement

    Returns { height: number; width: number }

    • height: number
    • width: number
  • getImageSizeByUrl(url: string): Promise<{ height: number; width: number }>
  • Parameters

    • url: string

    Returns Promise<{ height: number; width: number }>

  • getMonthEnd(dateObj: Date): Date
  • getMonthStart(dateObj: Date): Date
  • getOffset(el: Element): { x: number; y: number }
  • getOffsetParent(el: HTMLElement): HTMLElement
  • there is some trap in el.offsetParent, so use this func to fix

    Parameters

    • el: HTMLElement

    Returns HTMLElement

  • getOuterAttachedHeight(el: Element, opt?: { border?: boolean; margin?: boolean }): number
  • Parameters

    • el: Element
    • opt: { border?: boolean; margin?: boolean } = {}
      • Optional border?: boolean
      • Optional margin?: boolean

    Returns number

  • getOuterAttachedWidth(el: Element, opt?: { border?: boolean; margin?: boolean }): number
  • Parameters

    • el: Element
    • opt: { border?: boolean; margin?: boolean } = {}
      • Optional border?: boolean
      • Optional margin?: boolean

    Returns number

  • getPosition(el: HTMLElement): { x: number; y: number }
  • get el current position. like jQuery.position. The position is relative to offsetParent viewport left top. it is for set absolute position, absolute position is relative to offsetParent viewport left top. 相对于offsetParent可视区域左上角(el.offsetLeft或top包含父元素的滚动距离, 所以要减去). position一般用于设置绝对定位的情况, 而绝对定位就是以可视区域左上角为原点.

    Parameters

    • el: HTMLElement

    Returns { x: number; y: number }

    • x: number
    • y: number
  • getPositionFromOffset(el: HTMLElement, of: { x: number; y: number }): { x: number; y: number }
  • like jQuery.offset(x, y), but it just return cmputed position, don't update style 类似 jQuery.offset的设置功能, 但是它只返回计算的position, 不改变元素样式.

    Parameters

    • el: HTMLElement
    • of: { x: number; y: number }
      • x: number
      • y: number

    Returns { x: number; y: number }

    • x: number
    • y: number
  • getScroll(): { left: number; top: number }
  • getScrollSpace(el: Element, direction: "left" | "right" | "top" | "bottom"): number
  • scrollLeft, scrollRight, scrollTop, scrollBottom. IMPORTANT! The min value of scrollRight and scrollBottom may be a float less than 1, not zero. 重要! scrollRight和scrollBottom的最小值可能是小于1的小数, 而不是0.

    Parameters

    • el: Element
    • direction: "left" | "right" | "top" | "bottom"

    Returns number

  • getUrlParam(par: string): string | false
  • Parameters

    • par: string

    Returns string | false

  • getUserLanguage(): string
  • getViewportPosition(el: Element): DOMRect
  • glb(): typeof globalThis
  • get global, such as window in browser. 返回顶级全局变量. 例如浏览器的window

    Returns typeof globalThis

  • groupArray<T, R>(arr: T[], getMark: (item: T) => R): Map<R, T[]>
  • group array by mark 计算每项的标识, 通过标识将数组项分组.

    Type parameters

    • T

    • R

    Parameters

    • arr: T[]
    • getMark: (item: T) => R
        • (item: T): R
        • Parameters

          • item: T

          Returns R

    Returns Map<R, T[]>

  • hasClass(el: Element, className: string): boolean
  • Parameters

    • el: Element
    • className: string

    Returns boolean

  • hasClassIn(el: Element, classNames: string[]): boolean
  • has any class in classNames

    Parameters

    • el: Element
    • classNames: string[]

    Returns boolean

  • hasClasses(el: Element, classNames: string[]): boolean
  • has all classNames

    Parameters

    • el: Element
    • classNames: string[]

    Returns boolean

  • indexesOf(strOrArr: string | any[], item: any): number[]
  • like indexOf, get all indexes

    Parameters

    • strOrArr: string | any[]
    • item: any

    Returns number[]

  • insertAfter(el: Node, target: Node): void
  • Parameters

    • el: Node
    • target: Node

    Returns void

  • insertBefore(el: Node, target: Node): void
  • Parameters

    • el: Node
    • target: Node

    Returns void

  • isArray<T>(v: unknown): v is any[]
  • Type parameters

    • T

    Parameters

    • v: unknown

    Returns v is any[]

  • isBool(v: unknown): v is boolean
  • Parameters

    • v: unknown

    Returns v is boolean

  • isDescendantOf(el: Node, parent: Node): boolean
  • NOT RECOMMEND. Use Node.contains instead.

    Parameters

    • el: Node
    • parent: Node

    Returns boolean

  • isDocumentExisted(): boolean
  • detect if global variable document existing. 判断全局变量document是否存在

    Returns boolean

  • isFunction(v: unknown): v is Function
  • Parameters

    • v: unknown

    Returns v is Function

  • isIE(): boolean
  • isIsoFormat(str: string): boolean
  • timezone must be UTC. eg: 2018-09-07T03:38:37.888Z

    Parameters

    • str: string

    Returns boolean

  • isMobile(): boolean
  • isNode(): boolean
  • isNumber(v: unknown): v is number
  • Parameters

    • v: unknown

    Returns v is number

  • isNumeric(v: unknown): v is string
  • Parameters

    • v: unknown

    Returns v is string

  • isObject(v: unknown): v is object
  • Parameters

    • v: unknown

    Returns v is object

  • isOffsetInEl(x: number, y: number, el: HTMLElement): boolean
  • [isOffsetInEl]

    Parameters

    • x: number
    • y: number
    • el: HTMLElement

      HTML Element

    Returns boolean

  • isPromise(v: unknown): v is Promise<any>
  • Parameters

    • v: unknown

    Returns v is Promise<any>

  • isScrollable(el: Element, direction: "x" | "y"): boolean
  • Parameters

    • el: Element
    • direction: "x" | "y"

    Returns boolean

  • isString(v: unknown): v is string
  • Parameters

    • v: unknown

    Returns v is string

  • isWindowDefined(): boolean
  • iterateAll<T>(val: string | object | any[] | NodeList | HTMLCollection, opt?: IterateAllOptions): Generator<{ index?: number; key?: string; value: T }>
  • Type parameters

    • T

    Parameters

    Returns Generator<{ index?: number; key?: string; value: T }>

  • joinFunctionsByNext(funcs: any[]): () => void
  • must pass arguments to next manually

    Parameters

    • funcs: any[]

    Returns () => void

      • (): void
      • Returns void

  • joinFunctionsByResult(funcs: any[]): any
  • the returned function only accept one argument

    Parameters

    • funcs: any[]

    Returns any

  • joinRows<T, Y>(rows1: T[], rows2: Y[], key1: string | ((row: T, index: number) => any), key2?: string, ignoreUnmatched?: boolean): [T | null, Y | null][]
  • example: pairRows(users, userProfiles, 'id', 'user_id')

    Type parameters

    • T

    • Y

    Parameters

    • rows1: T[]
    • rows2: Y[]
    • key1: string | ((row: T, index: number) => any)
    • Optional key2: string
    • Optional ignoreUnmatched: boolean

    Returns [T | null, Y | null][]

  • kebabCase(str: string): string
  • To lower case and use - as delimiter. example: '-ABC abc_def camelCase-- helloMyFriend' to 'a-b-c-abc-def-camel-case-hello-my-friend'

    Parameters

    • str: string

    Returns string

  • makeStorageHelper<T>(storage: T): { storage: T; clear: any; get: any; set: any }
  • Type parameters

    • T: Storage

    Parameters

    • storage: T

    Returns { storage: T; clear: any; get: any; set: any }

    • storage: T
    • clear:function
      • clear(): void
    • get:function
      • get(name: string): any
    • set:function
      • set(name: string, value: any, minutes: number): void
      • Parameters

        • name: string
        • value: any
        • minutes: number

        Returns void

  • walk object and change key, value, delete key. return cloned new object. 深度遍历对象, 可以改变key, value, 删除key. 返回克隆的新对象.

    Parameters

    • obj: object
    • handler: MapObjectTreeHandler

      return null: don't change anything return {delete: true}: delete return {key: newKey}: change key return {value: newValue}: change value return {skip: true}: skip children return {stop: true}: stop

    • limit: number = 10000

      to prevent circular reference.

    Returns object

  • mapObjects<T>(arr: T[], idKey: string | ((item: T, index: number) => string)): {}
  • [{id: 1}, {id: 2}] to {'1':{id: 1}, '2': {id: 2}}

    Type parameters

    • T

    Parameters

    • arr: T[]
    • idKey: string | ((item: T, index: number) => string)

    Returns {}

    • [key: string]: T
  • notGreaterThan<T>(n: T, max: T): T
  • If n greater than max, return max, else n. 如果n大于max, 返回max, 否则n.

    Type parameters

    • T

    Parameters

    • n: T
    • max: T

    Returns T

  • notLessThan<T>(n: T, min: T): T
  • If n less than min, return min, else n. 如果n小于min, 返回min, 否则n.

    Type parameters

    • T

    Parameters

    • n: T
    • min: T

    Returns T

  • objectAssignIfDiff<T>(obj1: T, obj2: object): T
  • Type parameters

    • T: object

    Parameters

    • obj1: T
    • obj2: object

    Returns T

  • objectAssignIfKeyNull<T>(obj1: T, obj2: object): T
  • Type parameters

    • T: object

    Parameters

    • obj1: T
    • obj2: object

    Returns T

  • objectAssignIfNoKey<T>(obj1: T, obj2: object): T
  • Type parameters

    • T: object

    Parameters

    • obj1: T
    • obj2: object

    Returns T

  • objectDefineProxyProperty(targetObj: object, targetKey: string, sourceObj: object, sourceKey: string): void
  • proxy a property to another key of this or another object

    Parameters

    • targetObj: object
    • targetKey: string
    • sourceObj: object
    • sourceKey: string

    Returns void

  • objectExcept(obj: object, keys: string[]): object
  • Parameters

    • obj: object
    • keys: string[]

    Returns object

  • objectMap(obj: object, handler: (value: any, key: string, index: number) => any): object
  • like Array.map

    Parameters

    • obj: object
    • handler: (value: any, key: string, index: number) => any
        • (value: any, key: string, index: number): any
        • Parameters

          • value: any
          • key: string
          • index: number

          Returns any

    Returns object

  • objectOnly(obj: object, keys: string[]): object
  • Parameters

    • obj: object
    • keys: string[]

    Returns object

  • off<T>(el: Node | Document | Window, name: string, handler: (event: T) => void, options?: boolean | AddEventListenerOptions): void
  • cancel event lisitener on element

    Type parameters

    • T: Event

    Parameters

    • el: Node | Document | Window
    • name: string
    • handler: (event: T) => void
        • (event: T): void
        • Parameters

          • event: T

          Returns void

    • Optional options: boolean | AddEventListenerOptions

    Returns void

  • on<T>(el: Node | Document | Window, name: string, handler: (event: T) => void, options?: boolean | AddEventListenerOptions): void
  • listen event on element

    Type parameters

    • T: Event

    Parameters

    • el: Node | Document | Window
    • name: string
    • handler: (event: T) => void
        • (event: T): void
        • Parameters

          • event: T

          Returns void

    • Optional options: boolean | AddEventListenerOptions

    Returns void

  • onContinuousInput(handler: (input: string) => void, opt?: { timeout?: number }): () => void
  • on continuous input. return destroy 监听连续输入事件. 返回取消监听函数. 例如监听用户输入aa

    Parameters

    • handler: (input: string) => void
        • (input: string): void
        • Parameters

          • input: string

          Returns void

    • opt: { timeout?: number } = {}
      • Optional timeout?: number

    Returns () => void

      • (): void
      • Returns void

  • onQuickKeydown(handler: (input: string) => void, opt?: { timeout?: number }): () => void
  • Parameters

    • handler: (input: string) => void
        • (input: string): void
        • Parameters

          • input: string

          Returns void

    • opt: { timeout?: number } = {}
      • Optional timeout?: number

    Returns () => void

      • (): void
      • Returns void

  • once<T>(el: Node | Document | Window, name: string, handler: (event: T) => void, options?: boolean | AddEventListenerOptions): () => void
  • listen event on element once. return destroy function

    Type parameters

    • T: Event

    Parameters

    • el: Node | Document | Window
    • name: string
    • handler: (event: T) => void
        • (event: T): void
        • Parameters

          • event: T

          Returns void

    • Optional options: boolean | AddEventListenerOptions

    Returns () => void

    destroy

      • (): void
      • Returns void

  • openCenterWindow(url: string, name: string, width: number, height: number, opt?: any): void
  • Parameters

    • url: string
    • name: string
    • width: number
    • height: number
    • opt: any = {}

    Returns void

  • openPreviewWindow(previewUrl: string, name?: string, width?: number, height?: number): void
  • Parameters

    • previewUrl: string
    • name: string = "preview"
    • width: number = 1000
    • height: number = 800

    Returns void

  • openWindow(url: string, name: string, opt?: any): void
  • Parameters

    • url: string
    • name: string
    • opt: any = {}

    Returns void

  • parseISO(timestamp: string): Date
  • Parameters

    • timestamp: string

      eg: 2018-09-07T03:38:37.888Z

    Returns Date

  • pathJoin(p1: string, p2: string): string
  • Parameters

    • p1: string
    • p2: string

    Returns string

  • pointIn(x: number, y: number, element: Element | Node): boolean
  • Parameters

    • x: number
    • y: number
    • element: Element | Node

    Returns boolean

  • prependTo(el: Node, target: Node): void
  • Parameters

    • el: Node
    • target: Node

    Returns void

  • promiseContinuous<T>(method: T, opt?: { resetCount?: boolean; strategy: "every" | "last" }): (...args: ParametersWithoutFirst<T>) => Promise<void | ReturnType<T>>
  • Type parameters

    • T: (info: { count: number; currentCount: { value: number } }, ...args: any[]) => any

    Parameters

    • method: T
    • Optional opt: { resetCount?: boolean; strategy: "every" | "last" }
      • Optional resetCount?: boolean
      • strategy: "every" | "last"

    Returns (...args: ParametersWithoutFirst<T>) => Promise<void | ReturnType<T>>

  • promisePin<T, E>(): { promise: Promise<T>; reject: (error: E) => void; resolve: (arg: T) => void }
  • Type parameters

    • T

    • E

    Returns { promise: Promise<T>; reject: (error: E) => void; resolve: (arg: T) => void }

    • promise: Promise<T>
    • reject: (error: E) => void
        • (error: E): void
        • Parameters

          • error: E

          Returns void

    • resolve: (arg: T) => void
        • (arg: T): void
        • Parameters

          • arg: T

          Returns void

  • promiseTimeout<T>(promise: Promise<T>, timeout: number): Promise<unknown>
  • Type parameters

    • T

    Parameters

    • promise: Promise<T>
    • timeout: number

    Returns Promise<unknown>

  • randChoice<T>(arr: string | T[]): string | T
  • rand item in array 返回数组随机一项

    Type parameters

    • T

    Parameters

    • arr: string | T[]

    Returns string | T

  • randInt(min: number, max: number): number
  • rand int in range, including min and max 返回指定范围随机整数, 包括范围起始值和终止值

    Parameters

    • min: number
    • max: number

    Returns number

  • randString(len?: number, seeds?: string | string[]): string
  • generate random string 随机字符串

    Parameters

    • len: number = 8

      default 8

    • seeds: string | string[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"

    Returns string

  • removeClass(el: Element, className: string | string[]): void
  • Parameters

    • el: Element
    • className: string | string[]

    Returns void

  • removeEl(el: Node): Node
  • resolveArgsByType(args: any[], types: any[]): any[]
  • Parameters

    • args: any[]
    • types: any[]

    Returns any[]

  • resolveValueOrGettter(valueOrGetter: any, args?: any[]): any
  • if it is function, return result, else return it directly.

    Parameters

    • valueOrGetter: any
    • args: any[] = []

    Returns any

  • restoreAttr(el: Element, name: string): void
  • Parameters

    • el: Element
    • name: string

    Returns void

  • retry(action: any, limitTimes?: number): Promise<any>
  • Parameters

    • action: any
    • limitTimes: number = 3

    Returns Promise<any>

  • reverseString(str: string): string
  • reverse a string

    Parameters

    • str: string

    Returns string

  • scrollTo(options: { duration?: number; element?: Element; x?: number; y?: number; beforeEveryFrame?: any }): () => void
  • Parameters

    • options: { duration?: number; element?: Element; x?: number; y?: number; beforeEveryFrame?: any }
      • Optional duration?: number
      • Optional element?: Element
      • Optional x?: number
      • Optional y?: number
      • beforeEveryFrame?:function
        • beforeEveryFrame(count: number): boolean | void
        • Parameters

          • count: number

          Returns boolean | void

    Returns () => void

      • (): void
      • Returns void

  • setElChildByIndex(el: Node, child: Node, index: number): void
  • Parameters

    • el: Node
    • child: Node
    • index: number

    Returns void

  • snakeCase(str: string): string
  • To lower case and use _ as delimiter.

    Parameters

    • str: string

    Returns string

  • splitArray<T>(arr: T[], n: number | ((times: number) => number)): T[][]
  • Split array every n. n can be getter, which argument is the times. 每n个拆分数组. n可以是方法, 参数是第几次分块

    Type parameters

    • T

    Parameters

    • arr: T[]
    • n: number | ((times: number) => number)

    Returns T[][]

  • strPad(str: string | number, n: number, padString?: string): string | number
  • Pad a string to a certain length with another string 左边补充指定字符, 使其达到指定长度

    Parameters

    • str: string | number
    • n: number
    • padString: string = "0"

    Returns string | number

  • studlyCase(str: string): string
  • 'abc abc' to 'Abc abc'

    Parameters

    • str: string

    Returns string

  • svgToDataURL(svgCode: string): string
  • titleCase(str: string): string
  • 'abcAbc' to 'Abc Abc'

    Parameters

    • str: string

    Returns string

  • toArrayIfNot<T>(arrOrNot: T | T[]): T[]
  • Type parameters

    • T

    Parameters

    • arrOrNot: T | T[]

    Returns T[]

  • unset(obj: object, prop: string): boolean
  • try to delete obj[prop]

    Parameters

    • obj: object
    • prop: string

    Returns boolean

  • viewportPositionToFixed(el: Node, viewportPosition: { x: number; y: number }): { x: number; y: number }
  • waitFor(condition: () => boolean, time?: number, maxTimes?: number): { promise: Promise<void>; stop: () => void }
  • Parameters

    • condition: () => boolean
        • (): boolean
        • Returns boolean

    • time: number = 100
    • maxTimes: number = 1000

    Returns { promise: Promise<void>; stop: () => void }

    • promise: Promise<void>
    • stop: () => void
        • (): void
        • Returns void

  • waitTime(milliseconds: number, callback?: () => void): Promise<void>
  • Parameters

    • milliseconds: number
    • Optional callback: () => void
        • (): void
        • Returns void

    Returns Promise<void>

  • walk tree data by with depth first search. tree data example: [{children: [{}, {}]}] 深度优先遍历树形数据. 树形数据示例: [{children: [{}, {}]}]

    Type parameters

    • T

    Parameters

    Returns void

  • windowLoaded(): Promise<void>
  • withoutUndefined<T>(obj: T): T
  • Type parameters

    • T: object

    Parameters

    • obj: T

    Returns T

Generated using TypeDoc