UNPKG

lazy-js-utils

Version:

A collection of lazy-loaded JavaScript utilities for efficient development

1,920 lines (1,749 loc) 94.9 kB
import { Element as Element$1 } from "domhandler"; import { Options } from "tsup"; //#region src/types.d.ts declare global { interface Window { webkitRequestAnimationFrame: (callback: FrameRequestCallback) => number; mozRequestAnimationFrame: (callback: FrameRequestCallback) => number; msRequestAnimationFrame: (callback: FrameRequestCallback) => number; oRequestAnimationFrame: (callback: FrameRequestCallback) => number; webkitCancelAnimationFrame: (handle: number) => void; mozCancelAnimationFrame: (handle: number) => void; oCancelAnimationFrame: (handle: number) => void; msCancelAnimationFrame: (handle: number) => void; webkitIndexedDB: IDBFactory; mozIndexedDB: IDBFactory; msIndexedDB: IDBFactory; indexedDB: IDBFactory; SpeechRecognition: any; webkitSpeechRecognition: any; } interface Navigator { webkitGetUserMedia: () => void; mozGetUserMedia: () => void; msGetUserMedia: () => void; getUserMedia: () => void; } } type Redirect = 'follow' | 'error' | 'manual'; type Cache = 'default' | 'no-store' | 'reload' | 'no-cache' | 'force-cache'; type Mode = 'cors' | 'no-cors' | 'same-origin' | 'navigate'; type ResponseType = 'formData' | 'text' | 'blob' | 'arrayBuffer' | 'json'; type BodyType = 'form' | 'json' | 'file'; type Method = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'OPTIONS'; type Credentials = 'omit' | 'include' | 'same-origin'; interface IFetchInterceptors { request?: { success?: (config: IFetchConfig) => IFetchConfig; error?: (error: any) => Promise<never>; }; response?: { success?: (response: any) => any; error?: (error: any) => Promise<never>; }; success?: (response: Response) => Response; error?: (error: any) => Promise<never>; } interface IFetchConfig extends IFetchOptions { url?: string; keepalive?: boolean; body?: any; retry?: number; integrity?: string; referrer?: string; referrerPolicy?: 'no-referrer' | 'no-referrer-when-downgrade' | 'origin' | 'origin-when-cross-origin' | 'unsafe-url' | 'strict-origin' | 'strict-origin-when-cross-origin' | 'same-origin'; method?: Method; credentials?: Credentials; params?: Record<string, string>; responseType?: ResponseType; bodyType?: BodyType; cache?: Cache; redirect?: Redirect; mode?: Mode; signal?: AbortSignal; cancel?: () => void; transformResponse?: (response: Response) => Response; } interface IFetchOptions { baseURL?: string; timeout?: number; headers?: Record<string, any>; interceptors?: IFetchInterceptors; } interface DeviceType { os: string; dev: string; } type TrimType = 'all' | 'pre' | 'around' | 'post'; interface EventBus { data: Record<string, Function[]>; emit: (event: string, data?: any) => void; on: (event: string, fn: (data?: any) => void) => void; off: (event: string, fn: Function) => void; } interface Position { x: number; y: number; } type FileType = 'file' | 'blob' | 'url'; interface JSCookie { get: (key: string) => string | undefined; set: (key: string, value: string, extdays?: number) => void; delete: (key: string) => void; } interface LRU { set: (key: string, value: any) => void; get: (key: string) => any; cache: Map<string, any>; max: number; size: () => number; } interface ISignature { canvas: HTMLCanvasElement; ctx: CanvasRenderingContext2D; createCanvas: (lineWidth: number, w: number, h: number) => void; clearCanvas: () => void; mount: (el: MaybeElement) => void; unmount: () => void; setColor: (color: string) => void; setBgColor: (bg: string) => void; undo: () => void; redo: () => void; save: (type?: string, quality?: any) => string; } interface FileMD5 { HASH: string; suffix: string; filename: string; buffer: ArrayBuffer; } interface FileChunk { file: Blob; filename: string; } type ChunkDetail = ChunkInfo & { isDone: boolean; remaining: number; type: string; size: number; lastModified: number; }; interface ChunkInfo { start: number; end: number; index: number; hash: string; } interface FileSpliceOptions { file: File; chunkSize: number; callback: (chunk: ChunkDetail) => void; } interface Deadline { timeRemaining: () => number; didTimeout: boolean; } interface DragEvent { dragStart?: (e: any) => void; dragMove?: (e: any) => void; dragEnd?: (e: any) => void; } interface MutationObserverInit { childList?: boolean; attributes?: boolean; characterData?: boolean; subtree?: boolean; attributeOldValue?: boolean; characterDataOldValue?: boolean; attributeFilter?: string[]; } interface ParsedURL { protocol?: string; host?: string; auth?: string; pathname: string; hash: string; search: string; } interface IShellMessage { status: number | null; result: string; pid: number; } type PkgTool = 'npm' | 'yarn' | 'pnpm' | 'bun'; type Keys<A, B> = keyof A | keyof B; type Val<key, A, B> = key extends keyof A ? key extends keyof B ? A[key] extends number | string | boolean | symbol | null | undefined ? A[key] | B[key] : Merge<A[key], B[key]> : A[key] : key extends keyof B ? B[key] : never; type Merge<A, B> = { [key in Keys<A, B>]: Val<key, A, B>; }; interface IsESModule { default: any; } interface NodeWorkerPayload { params: string | string[]; stdio?: 'inherit' | 'pipe'; errorExit?: boolean; isLog?: boolean; } type UseTimeoutReturn<T> = T extends Function ? () => void : undefined; type MaybeElement = string | HTMLElement; type Lang = 'zh-CN' | 'en-US' | 'ja-JP' | 'ko-KR' | 'zh-TW' | 'zh-HK' | 'zh-MO' | 'zh-SG'; type Direction = 'horizontal' | 'horizontal-reverse' | 'vertical' | 'vertical-reverse' | 'center-out' | 'out-center'; type TimeUnit = 'days' | 'hours' | 'minutes' | 'seconds'; type DateString = `${number}-${number}-${number}` | `${number}/${number}/${number}`; interface ImageData$1 { width: number; height: number; data: Uint8ClampedArray; } interface DotTextCanvasOptions { text: string; fontSize: number; color: string; fontWeight: number; direction?: Direction; isPreferred?: boolean; charSpacing?: number; charSpacings?: number[]; } interface DotImageCanvasOptions { src: string; color: string; fontWeight: number; bgColor?: string; direction?: Direction; isPreferred?: boolean; } //#endregion //#region src/array/diff.d.ts interface Options$3 { compare?: 'same' | 'different'; result?: 'value' | 'index'; } /** * * @param { any[] } array1 数组1 * @param { any[] } array2 数组2 * @param { Options } [options] {} * @param { 'same' | 'different' } [options.compare] 'same' | 'different' * @param { 'value' | 'index' } [options.compresultare] 'value' | 'index' * @returns 返回相同项或不同项的索引或值 */ declare function diff(array1: any[], array2: any[], options?: Options$3): any[]; //#endregion //#region src/array/forEach.d.ts interface ForEachCallback<T> { (value: T, index: number, array: T[]): any; } /** * * @param { any[] } array 数组 * @param { Function } callback ForEachCallback * @returns */ declare function forEach<T>(array: T[], callback: ForEachCallback<T>): any; //#endregion //#region src/array/getAverage.d.ts /** * * @param { number[] } array 数字数组 * @param { number } fraction 保留几位小数 * @returns 平均值 */ declare function getAverage(array: number[], fraction?: number): string; //#endregion //#region src/array/quickFilter.d.ts /** * * @param { any[] } array 数组 * @param { string | Array<string> } key 过滤条件 * @returns */ declare function quickFilter(array: any[], key: string | Array<string>): any[]; //#endregion //#region src/array/quickFind.d.ts /** * * @param { T[] } array 数组 * @param { string | number } id 主键 * @returns */ declare function quickFind<T>(array: T[], id: T[keyof T]): QuickFind<T>; declare class QuickFind<T> { array: T[]; indexMap: Map<any, number>; id: T[keyof T]; constructor(array: T[], indexMap: Map<any, number>, id: T[keyof T]); find(id: T[keyof T]): T | undefined; _update(id: T[keyof T], key: keyof T | T, value: any): T[]; delete(id: T[keyof T]): T[] | undefined; set(id: T[keyof T], key: keyof T | T, value?: any): T[]; } //#endregion //#region src/array/sort.d.ts /** * * @param { any[] } array 数组 * @param { Array<string | number> | number | string } match 匹配条件 * @returns */ declare function sort<T>(array: T[], match: Array<string | number> | number | string): T[]; //#endregion //#region src/array/sortByOrder.d.ts /** * * @param { any[] } sortArr 数组 * @param { string[] } order 顺序 * @param { string } prop 按照哪个属性 * @returns */ declare function sortByOrder<T>(sortArr: T[], order: string[], prop?: string): T[]; //#endregion //#region src/array/uniqueArray.d.ts /** * * @param { any[] } array 数组 * @returns 去重后的数组 */ declare function uniqueArray(array: any[]): any[]; //#endregion //#region src/array/chunk.d.ts /** * * @param { T[] } arr 数组 * @param { number } size 以多少为基准分割 * @returns 分割后的数组 */ declare function chunk<T>(arr: T[], size?: number): T[][]; //#endregion //#region src/array/countBy.d.ts /** * * @param { any[] } array 数组 * @param { Function } iterator 迭代数组函数 * @returns 结果的个数 */ declare function countBy<T extends Record<string, any>>(array: T[], iterator: (item: T) => any): Record<string, number>; //#endregion //#region src/array/flatten.d.ts /** * * @param { Record<string, any> | Record<string, any>[] } o 对象或者数组 * @param { string }flattenProps 展开的属性默认为children * @param { boolean }onlyLastNode 只保留最后一层级的数据 * @returns 一层的数组 */ declare function flatten<T extends Record<string, any>>(o: T | T[], flattenProps?: string, onlyLastNode?: boolean, result?: T[]): T[]; //#endregion //#region src/array/filterEmpty.d.ts /** * * @param { any[] } array 数组 * @returns 过滤空值后的数组 */ declare function filterEmpty<T>(array: T[]): T[]; //#endregion //#region src/canvas/Canvas.d.ts declare class Canvas { canvas: HTMLCanvasElement; ctx: CanvasRenderingContext2D; constructor(width?: number, height?: number); } //#endregion //#region src/canvas/CreateSignatureCanvas.d.ts declare class CreateSignatureCanvas implements ISignature { canvas: HTMLCanvasElement; ctx: CanvasRenderingContext2D; stop: (() => void)[]; active: boolean; historyStack: ImageData[]; resetStack: ImageData[]; color: string; bg: string; constructor(lineWidth?: number, w?: number, h?: number, color?: string, bg?: string); createCanvas(lineWidth: number | undefined, w: number, h: number): void; clearCanvas(): void; mount(el: MaybeElement): this; setColor(color: string): void; setBgColor(color: string): void; unmount(): void; listen(): void; undo(): void; redo(): void; erase(lineWidth?: number): void; unerased(): void; save(type?: string, quality?: number): string; } //#endregion //#region src/canvas/DotImageCanvas.d.ts /** * DotImageCanvas 将图片转换为点阵图形式展示,并提供动画绘制效果 * * 支持多种绘制方向,颜色控制,背景设置,以及动画效果控制 * @class */ declare class DotImageCanvas { /** 用于绘制的 Canvas 元素 */ canvas: HTMLCanvasElement; /** Canvas 的绘制上下文 */ ctx: CanvasRenderingContext2D; /** 缓存已处理图像的点阵数据 */ points: Map<string, Record<string, any>>; /** 原始图片源地址 */ originSrc: string; /** 点阵图颜色,设置后将覆盖原图颜色 */ color: string; /** 点阵粗细,影响绘制的圆点大小 */ fontWeight: number; /** 绘制状态:pending-绘制中,success-完成,fail-失败,reverted-已撤销 */ status: string; /** 背景颜色 */ bgColor?: string; /** 停止当前动画的函数 */ stop: () => void; /** 绘制方向 */ direction: Direction; /** 所有绘制任务 */ allTasks: Function[]; /** 已完成的任务索引 */ completedTaskIndex: number; /** 是否正在撤销绘制 */ isReverting: boolean; /** 每个绘制任务中的点坐标记录 */ drawnPoints: Array<{ x: number; y: number; color: any; }[]>; /** 清除任务列表 */ clearTasks: Function[]; /** 是否使用优先渲染模式 (RAF) */ isPreferred: boolean; /** 是否已挂载到DOM */ mounted: boolean; /** * 创建 DotImageCanvas 实例 * * @param {string | DotImageCanvasOptions} srcOrOptions - 图片URL或选项对象 * @param {string} [color] - 绘制颜色,为空时保留原图颜色 * @param {number} [fontWeight] - 点阵粗细 * @param {string} [bgColor] - 背景颜色 * @param {Direction} [direction] - 绘制方向 */ constructor(srcOrOptions: string | DotImageCanvasOptions, color?: string, fontWeight?: number, bgColor?: string, direction?: Direction); createDotImage(img: HTMLImageElement): (string | number | undefined)[][]; createImage(): Promise<unknown> | undefined; hasImage(): boolean; executor(): Promise<this>; /** * 创建绘制和清除任务的辅助方法 - 保持原有实现方式 */ createDrawAndClearTasks(pointsGenerator: () => { x: number; y: number; color: any; }[], size: number): { drawTask: () => void; clearTask: () => void; }; getCanvas(imagePointSet: (string | number | undefined)[][]): void; startAnimation(): this; revert(): this; continue(): this; initOptions(src: string, color: string, fontWeight: number, bgColor: string, direction?: Direction): void; /** * 重新绘制图像,可以更新配置 * * @param {string | Partial<DotImageCanvasOptions>} srcOrOptions - 图片URL或选项对象 * @param {string} [color] - 点阵颜色 * @param {number} [fontWeight] - 点阵粗细 * @param {string} [bgColor] - 背景颜色 * @param {Direction} [direction] - 绘制方向 * @returns {Promise<DotImageCanvas>} 更新后的实例 */ repaint(srcOrOptions: string | Partial<DotImageCanvasOptions>, color?: string, fontWeight?: number, bgColor?: string, direction?: Direction): Promise<this>; clearCanvas(): void; append(container: MaybeElement): this; destory(): void; } //#endregion //#region src/canvas/DotTextCanvas.d.ts /** * DotTextCanvas 将文字转换为点阵形式展示,并提供动画绘制效果 * * 支持多种绘制方向、颜色控制、间距设置以及动画效果 * @class */ declare class DotTextCanvas { /** 用于绘制的 Canvas 元素 */ canvas: HTMLCanvasElement; /** Canvas 的绘制上下文 */ ctx: CanvasRenderingContext2D; /** 缓存已处理字符的点阵数据 */ points: Map<string, Array<number[]>>; /** 原始文本内容 */ originText: string; /** 字体大小 */ fontSize: number; /** 点阵颜色 */ color: string; /** 点阵粗细,影响绘制的圆点大小 */ fontWeight: number; /** 绘制方向 */ direction: Direction; /** 全局字符间距,默认为0 */ charSpacing: number; /** 每个字符对之间的间距数组,优先级高于全局间距 */ charSpacings: number[]; /** 存储最终合成的点阵数据 */ textPointSet: Array<number[]>; /** 绘制状态:pending-绘制中,success-完成 */ status: string; /** 容器元素 */ container?: HTMLElement; /** 停止当前动画的函数 */ stop: () => void; /** 是否已挂载到DOM */ mounted: boolean; /** 是否使用优先渲染模式(RAF) */ isPreferred: boolean; /** 用于文本绘制的临时Canvas元素 */ private _textCanvas?; /** 临时Canvas的绘制上下文 */ private _textCtx?; /** * 创建 DotTextCanvas 实例 * * @param {string | DotTextCanvasOptions} textOrOptions - 文本内容或选项对象 * @param {number} [fontSize] - 字体大小 * @param {string} [color] - 点阵颜色 * @param {number} [fontWeight] - 点阵粗细 * @param {Direction} [direction] - 绘制方向 * @param {boolean} [isPreferred] - 是否使用优先渲染模式 * @param {number} [charSpacing] - 全局字符间距 * @param {number[]} [charSpacings] - 每个字符对之间的间距数组 */ constructor(textOrOptions: string | DotTextCanvasOptions, fontSize?: number, color?: string, fontWeight?: number, direction?: Direction, isPreferred?: boolean, charSpacing?: number, charSpacings?: number[]); /** * 为单个字符创建点阵数据 * * @param {string} text - 要转换为点阵的字符 * @returns {Array<number[]>} 字符的点阵数据 */ createTextPoint(text: string): number[][]; /** * 执行文字点阵转换流程 */ executor(): void; /** * 获取字符的点阵数据,如果不存在则创建 * * @param {string} text - 要获取点阵数据的字符 * @returns {Array<number[]>|undefined} 字符的点阵数据 */ getText(text: string): number[][] | undefined; /** * 合并所有字符的点阵数据,并应用字符间距 * * @returns {Array<number[]>} 合并后的点阵数据 */ combineText(): number[][]; /** * 根据绘制方向生成点坐标数组 * * @param {number} h - 点阵高度 * @param {number} w - 点阵宽度 * @returns {Array<[number, number]>} 按指定方向排列的点坐标数组 */ getPointsForDirection(h: number, w: number): Array<[number, number]>; /** * 设置Canvas大小并准备绘制 */ getCanvas(): void; /** * 创建分批绘制任务 * * @param {Array<[number, number]>} pointsToDraw - 要绘制的点坐标数组 * @param {number} batchSize - 每批绘制的点数量 * @param {Function} getPoint - 点坐标计算函数 * @param {number} size - 点的大小 * @returns {Array<Function>} 绘制任务数组 */ createDrawTasks(pointsToDraw: Array<[number, number]>, batchSize: number, getPoint: Function, size: number): Function[]; /** * 创建一批点的绘制任务 * * @param {Array<[number, number]>} points - 一批要绘制的点坐标 * @param {Function} getPoint - 点坐标计算函数 * @param {number} size - 点的大小 * @returns {Function} 绘制任务函数 */ createBatchDrawTask(points: Array<[number, number]>, getPoint: Function, size: number): () => void; /** * 开始执行动画绘制 * * @param {Array<Function>} tasks - 绘制任务数组 */ startDrawing(tasks: Array<Function>): void; /** * 重新绘制文字,可以更新配置 * * @param {string | Partial<DotTextCanvasOptions>} textOrOptions - 文本内容或选项对象 * @param {number} [fontSize] - 字体大小 * @param {string} [color] - 点阵颜色 * @param {number} [fontWeight] - 点阵粗细 * @param {Direction} [direction] - 绘制方向 * @returns {DotTextCanvas} 当前实例 */ repaint(this: any, textOrOptions: string | Partial<DotTextCanvasOptions>, fontSize?: number, color?: string, fontWeight?: number, direction?: Direction): DotTextCanvas; /** * 清除Canvas上的内容 */ clearCanvas(): void; /** * 将Canvas元素添加到DOM容器中 * * @param {MaybeElement} container - 要插入的容器元素 * @returns {DotTextCanvas} 当前实例 */ append(container: MaybeElement): this; /** * 销毁实例,移除DOM元素并停止所有动画 */ destory(): void; } //#endregion //#region src/canvas/getImageData.d.ts declare function getImageData(src: string): Promise<ImageData$1>; //#endregion //#region src/canvas/removeRoundSpace.d.ts declare function removeRoundSpace(data: number[][]): number[][]; //#endregion //#region src/canvas/sliderValidation.d.ts declare function sliderValidation(url: string, container: HTMLElement | string, l: number | (() => void) | undefined, callback: () => void): Promise<void>; //#endregion //#region src/canvas/Line.d.ts declare class Line { ctx: CanvasRenderingContext2D; color: string; isFill: boolean; constructor(ctx: CanvasRenderingContext2D, color?: string, isFill?: boolean); draw(points: number[][], color?: string): void; } //#endregion //#region src/canvas/Point.d.ts declare class Point { r: number; ctx: CanvasRenderingContext2D; color: string; constructor(ctx: CanvasRenderingContext2D, r?: number, color?: string); draw(x: number, y: number, color?: string, r?: number): void; } //#endregion //#region src/canvas/Square.d.ts declare class Square { ctx: CanvasRenderingContext2D; r: number; color: string; isFill: boolean; constructor(ctx: CanvasRenderingContext2D, r?: number, color?: string, isFill?: boolean); draw(x: number, y: number, r?: number): void; } //#endregion //#region src/compress/compressCss.d.ts declare function compressCss(s: string): string; //#endregion //#region src/compress/compressImage.d.ts type CompressImageOptionsType = 'base64' | 'blob'; interface CompressImageOptions { quality?: number; maxWidth?: number; maxHeight?: number; type?: CompressImageOptionsType; } declare function compressImage(source: string | File, options?: CompressImageOptions): Promise<unknown>; //#endregion //#region src/css/getClasses.d.ts declare const classesReg: RegExp; declare function getClasses(str: string, callback: (classes: string, block: string, index: number) => string): string; //#endregion //#region src/css/getCssVar.d.ts declare function getCssVar(element: MaybeElement, style: string, callback: (css: string) => void): void; //#endregion //#region src/css/hasClassName.d.ts declare function hasClassName(element: Element, className: string): boolean; //#endregion //#region src/css/setCssVar.d.ts declare function setCssVar(element: MaybeElement, styleObj: Record<string, string>): void; //#endregion //#region src/css/useNamespace.d.ts declare function useNamespace(defaultNamespace: string): (block: string) => { namespace: string; b: (blockSuffix?: string) => string; e: (element?: string) => string; m: (modifier?: string) => string; be: (blockSuffix?: string, element?: string) => string; em: (element?: string, modifier?: string) => string; bm: (blockSuffix?: string, modifier?: string) => string; bem: (blockSuffix?: string, element?: string, modifier?: string) => string; is: { (name: string, state: boolean | undefined): string; (name: string): string; }; cssVar: (object: Record<string, string>) => Record<string, string>; cssVarName: (name: string) => string; cssVarBlock: (object: Record<string, string>) => Record<string, string>; cssVarBlockName: (name: string) => string; }; //#endregion //#region src/css/setStyle.d.ts declare function setStyle(el: HTMLElement | string, styleObj: Record<string, any>): void; //#endregion //#region src/css/removeStyle.d.ts declare function removeStyle(el: HTMLElement | string, styles: string[] | string): void; //#endregion //#region src/css/addStyleRules.d.ts /** * * @param { string } rule '#blanc { color: white }' * @param { number } [index] cssRules 中的位置 */ declare function addRules(rule: string, index?: number): void; //#endregion //#region src/css/addClass.d.ts /** * dom上添加class * @param { MaybeElement } selector 元素 * @param { string } className class类 * @returns */ declare function addClass(selector: MaybeElement, className: string): void; //#endregion //#region src/css/removeClass.d.ts /** * dom上删除class * @param { MaybeElement } selector 元素 * @param { string } className class类 * @returns */ declare function removeClass(selector: MaybeElement, className: string): void; //#endregion //#region src/date/formateDate.d.ts declare function formateDate(datetime: Date, fmt?: string): string; //#endregion //#region src/date/getDateList.d.ts /** * Generates a list of dates starting from a given date. * * @param {string} start - The start date in the format 'YYYY-MM-DD' or 'YYYY/MM/DD'. * @param {number} [day] - The number of days to generate. If negative, dates will be generated in reverse order. * @returns {string[]} An array of date strings in the format 'YYYY-MM-DD'. * * @example * ```typescript * getDateList('2023-01-01', 5); * // Returns ['2023-01-01', '2023-01-02', '2023-01-03', '2023-01-04', '2023-01-05', '2023-01-06'] * ``` */ declare function getDateList(start: string, day?: number): string[]; //#endregion //#region src/date/getDaysOfMonth.d.ts /** * Returns the number of days in a given month. * * @param {number} currentMonth - The month for which to get the number of days (0-based, where 0 = January, 11 = December). * @returns {number} The number of days in the specified month. */ declare function getDaysOfMonth(currentMonth: number): number; //#endregion //#region src/date/createCalendar.d.ts /** * 返回当前月份的日历数组信息 * @param currentMonth 今天的月份-1 从0开始 * @returns number[][] */ declare function createCalendar(currentMonth: number): unknown[][]; //#endregion //#region src/date/compareDate.d.ts /** * 比较2个月份的大小 * @param date1 '2021-02-01' | '2021/02/01' * @param date2 '2021-03-02' | '2021/03/02' * @param separator '-' | '/' 默认 '-' * @returns -1 | 1 | 0 */ declare function compareDate(date1: DateString, date2: DateString, separator?: '-' | '/'): 0 | 1 | -1; //#endregion //#region src/date/compareTime.d.ts /** * 比较两个时间的大小 * * 该函数接受两个时间字符串,格式为 'HH:MM',并比较它们的大小。 * 返回值为 0 表示两个时间相同,1 表示第一个时间大于第二个时间,-1 表示第一个时间小于第二个时间。 * * @param {string} time1 - 第一个时间字符串,格式为 'HH:MM' * @param {string} time2 - 第二个时间字符串,格式为 'HH:MM' * @returns {number} - 返回 0 表示两个时间相同,1 表示第一个时间大于第二个时间,-1 表示第一个时间小于第二个时间 */ declare function compareTime(time1: string, time2: string): 0 | 1 | -1; //#endregion //#region src/date/compareDateTime.d.ts /** * 比较2个日期时间的大小 * @param date1 '2021-02-01 12:00:01' | '2021/02/01 12:00:01' * @param date2 '2021-03-02 12:00:00' | '2021/03/02 12:00:00' * @param separator '-' | '/' 默认 '-' * @returns -1 | 1 | 0 */ declare function compareDateTime(date1: DateString, date2: DateString): 0 | 1 | -1; //#endregion //#region src/date/getFirstDay.d.ts /** * 获取当前周的周一日期 * @returns */ declare function getFirstDay(): string; //#endregion //#region src/date/getDifferenceDays.d.ts declare function getDifferenceDays(date1: Date | string, date2?: Date | string, unit?: TimeUnit): number; //#endregion //#region src/event/createElement.d.ts /** * 创建dom元素 * @param { string } tag 创建的标签元素 * @param { Record<string, string> } [attributes] 属性 {} * @param { string } [innerHTML] 插入的内容innerHTML * @param { ElementCreationOptions } [options] 通过 customElements.define() 定义的自定义元素的标签名称 * @returns */ declare function createElement<T extends keyof HTMLElementTagNameMap>(tag: T, attributes?: Record<string, string>, innerHTML?: string, options?: ElementCreationOptions): HTMLElementTagNameMap[T]; //#endregion //#region src/event/createFragment.d.ts /** * 创建fragment * @returns */ declare function createFragment(): DocumentFragment; //#endregion //#region src/event/dragEvent.d.ts /** * 拖砖 * @param { HTMLElement | string } target 元素 * @param { DragEvent } options {} * @param { (e: any) => void } options.dragStart 开始拖拽callback * @param { (e: any) => void } options.dragMove 拖拽过程callback * @param { (e: any) => void } options.dragEnd 拖拽结束callback * @param trigger * @returns */ declare function dragEvent(target: HTMLElement | string, options?: DragEvent, trigger?: boolean): () => true | undefined; //#endregion //#region src/event/findElement.d.ts /** * 查找元素 * @param { string | string[] } selector 选择器 * @param { boolean } [all] 是否获取所有节点 * @param { HTMLElement | Document } [currentNode] 在哪个节点下查找 */ declare function findElement(selector: string | string[]): HTMLElement | null; declare function findElement<T extends boolean | HTMLElement>(selector: string | string[], all?: T, currentNode?: HTMLElement | Document): T extends true ? NodeListOf<Element> | undefined : HTMLElement | null; //#endregion //#region src/event/insertElement.d.ts /** * 插入元素 * @param { HTMLElement | string } parent 父元素 * @param { HTMLElement | DocumentFragment | string } element 将被插入的元素 * @param { HTMLElement } target 插入在这个元素之前 * @returns */ declare function insertElement(parent: HTMLElement | string, element: HTMLElement | DocumentFragment | string, target?: HTMLElement | null): void; //#endregion //#region src/event/removeElement.d.ts /** * 删除元素 * @param { HTMLElement | ChildNode | DocumentFragment | string } el 待被删除的节点 * @returns 父节点 */ declare function removeElement(el: HTMLElement | ChildNode | DocumentFragment | string): HTMLElement | null; //#endregion //#region src/event/useClick.d.ts /** * 点击事件 * @param { MaybeElement } target 元素 * @param { (e: MouseEvent) => void } callback 点击回调 * @returns 停止 */ declare function useClick(target: MaybeElement | Document, callback: (e: MouseEvent) => void): () => true | undefined; //#endregion //#region src/event/useElementBounding.d.ts /** * getBoundingClientRect * @param { Element | string } element 元素 * @param { (rect: DOMRect) => void } callback 位置变化回调函数 * @returns 停止 */ declare function useElementBounding(element: Element | string, callback: (rect: DOMRect) => void): () => void; //#endregion //#region src/event/useEventListener.d.ts /** * 事件监听 * @param { Window | Document | Element | string } target 元素 * @param { T } eventName 事件名 * @param { (e: (WindowEventMap & DocumentEventMap)[T]) => void } callback 回调 * @param { boolean | AddEventListenerOptions } useCapture 捕获 * @param { boolean } autoRemove 是否自动被移除 * @returns 停止 */ declare function useEventListener<T extends keyof (WindowEventMap & DocumentEventMap)>(target: Window | Document | Element | MediaQueryList | string, eventName: T, callback: (e: (WindowEventMap & DocumentEventMap)[T]) => void, useCapture?: boolean | AddEventListenerOptions, autoRemove?: boolean): () => void; //#endregion //#region src/event/useFocus.d.ts /** * input聚焦 * @param { MaybeElement } target 元素 */ declare function useFocus(target?: MaybeElement): void; //#endregion //#region src/event/useHover.d.ts /** * 元素hover事件 * @param { MaybeElement } target 元素 * @param { (isHover: boolean, e: MouseEvent) => void } callback hover回调 * @returns */ declare function useHover(target: MaybeElement, callback: (isHover: boolean, e: MouseEvent) => void): () => void; //#endregion //#region src/event/useIntersectionObserver.d.ts interface IntersectionObserverOptions { root?: Element | Document | string | null; rootMargin?: string; threshold?: number | number[]; } /** * 检测物体可见 * @param { Element | string } element 元素 * @param { (entries: IntersectionObserverEntry[]) => void } callback 元素可见回调 * @param { IntersectionObserverOptions } options {} * @param { Element | Document | string | null } options.root 相对容器节点 * @param { string } options.rootMargin 相对容器节点位置"10px 20px 30px 40px" * @param { number | number[] } options.threshold 相对容器节点百分比 [0, 0.25, 0.5, 0.75, 1] * @returns */ declare function useIntersectionObserver(element: Element | string, callback: (entries: IntersectionObserverEntry[]) => void, options?: IntersectionObserverOptions): () => void; //#endregion //#region src/event/useInterval.d.ts type UseIntervalReturn<T> = T extends Function ? () => void : undefined; /** * setInterval * @param { Function } fn 函数 * @param { number } duration 间隔时间 * @returns 停止 */ declare function useInterval<T>(fn: T, duration: number): UseIntervalReturn<T>; //#endregion //#region src/event/useKeyBoard.d.ts /** * 检测指定按键 * @param { string } c 按键字符串 * @param { Function } callback 按键与案件字符串一致时的回调 * @returns 停止 */ declare function useKeyBoard(c: string, callback: (code: string) => void): () => void; //#endregion //#region src/event/useMouse.d.ts /** * 检测鼠标移动 * @param { Function } callback 坚挺鼠标移动回调 * @param { number } delay 间隔多久触发 * @returns 停止 */ declare function useMouse(callback: (e: MouseEvent) => void, delay?: number): () => void; //#endregion //#region src/event/useMutationObserver.d.ts /** * 检测元素变化 * @param { Element | string | ParentNode | null } element 元素 * @param { MutationCallback } callback 默认 { childList: true } * @param { boolean } [callback.childList] 是否监听孩子元素 * @param { boolean } [callback.attributes] 是否监听属性 * @param { boolean } [callback.characterData] 是否监听内容 * @param { boolean } [callback.subtree] 是否监听树节点 * @param { boolean } [callback.attributeOldValue] 是否监听旧属性 * @param { string[] } [callback.attributeFilter] 属性过滤 * @param options * @returns */ declare function useMutationObserver(element: Element | string | ParentNode | Text | null, callback: MutationCallback, options?: MutationObserverInit): (() => true | undefined) | undefined; //#endregion //#region src/event/useResizeObserver.d.ts /** * 检测视口变化 * @param { Function } callback 浏览器尺寸变化回调 * @returns */ declare function useResizeObserver(callback: (width: number, height: number) => void): () => void; //#endregion //#region src/event/useWindowScroll.d.ts /** * 检测浏览器滚动 * @param { Function } callback 坚挺浏览器滚动条位置变化回调 * @returns 停止 */ declare function useWindowScroll(callback: (left: number, top: number) => void): () => void; //#endregion //#region src/event/useTimeout.d.ts /** * setTimeout * @param { Function } fn 函数 * @param { number } duration 间隔时长 * @returns 停止 */ declare function useTimeout<T>(fn: T, duration?: number): UseTimeoutReturn<T>; //#endregion //#region src/event/collisionDetection.d.ts /** * 检测2个物体是否碰撞 * @param { MaybeElement } o1 元素1 * @param { MaybeElement } o2 元素2 * @returns */ declare function collisionDetection(o1: MaybeElement, o2: MaybeElement): boolean; //#endregion //#region src/event/download.d.ts /** * 下载 * @param { string } href 链接 * @param { string } download 名字 */ declare function download(href: string, download?: string): void; //#endregion //#region src/event/useHead.d.ts interface IMeta { name: 'description' | 'viewport' | 'keywords' | 'robots' | string; content: string; } interface IScript { src: string; type: 'async' | 'module' | 'nomodule' | 'defer'; } interface ILink { rel: 'stylesheet' | 'preload' | 'icon' | 'prefetch' | string; href: string; } interface HeadOptions { title?: string | (() => string); meta?: IMeta[]; script?: IScript[]; link?: ILink[]; } /** * 创建head相关标签 * @param { HeadOptions } options * @param { string | (() => string) } options.title 返回一个title字符串 * @param { IMeta[] } options.meta 'description' | 'viewport' | 'keywords' | 'robots' | string * @param { IScript[] } options.script 'async' | 'module' | 'nomodule' | 'defer' * @param { ILink[] } options.link 'stylesheet' | 'preload' | 'icon' | 'prefetch' | string * @returns 移除函数 */ declare function useHead(options: HeadOptions): HTMLElement | null; //#endregion //#region src/event/useLongPress.d.ts /** * 检测元素鼠标长按 * @param { MaybeElement } el 元素 * @param { number } ms 时长 * @param { Function } callback 回调 * @returns 停止 */ declare function useLongPress(el: MaybeElement, ms: number, callback: () => void): () => void; //#endregion //#region src/event/useBlur.d.ts /** * 失去焦点 * @param { MaybeElement } el 元素 * @param { Function } callback 失去焦点时的回调 * @returns 停止 */ declare function useBlur(el: MaybeElement, callback: () => void): () => true | undefined; //#endregion //#region src/event/createTextNode.d.ts declare function createTextNode(text: string): Text; //#endregion //#region src/event/useRange.d.ts /** * 获取target元素所在位置最后的位置 * 注意如果外容器有偏移量,需要减去偏移量 * @param target * @returns */ declare function useRange(target: Node): DOMRect; //#endregion //#region src/flex/waterfall.d.ts /** * 创建图片瀑布流 * @param { string[] } imageList 图片列表 * @param { string } target mount元素 默认 body * @param { number } width 图片宽度 默认 200 * @param { number } space 图片间距 默认 20 * @returns */ declare function waterfall(imageList: string[], target: MaybeElement | number, width?: number, space?: number): (imageList: string[]) => void; //#endregion //#region src/html/escapeHtml.d.ts /** * 转义html * @param { string } s 字符串 * @returns */ declare function escapeHtml(s: string): string; //#endregion //#region src/html/htmlTransform.d.ts interface Update { setAttribs: (key: string, value?: string) => void; beforeInsert: (str: string) => void; afterInsert: (s: string) => void; renameAttribs: (key: string, value: string) => void; } type HtmlTransformOptions = Record<string, (node: Element$1, update: Update) => void>; /** * htmlparser * @param { string } s 字符串 * @param options {} * @param { (key: string, value?: string) => void } options.setAttribs 设置属性 * @param { (str: string) => void } options.beforeInsert 插入前 * @param { (s: string) => void } options.afterInsert 插入后 * @param { (key: string, value?: string) => void } options.renameAttribs 重命名 * @returns */ declare function htmlTransform(s?: string, options?: HtmlTransformOptions): Promise<string>; //#endregion //#region src/html/unescapeHtml.d.ts /** * 反转义html * @param { string } s 字符串 * @returns */ declare function unescapeHtml(s: string): string; //#endregion //#region src/html/getStyles.d.ts declare const stylesReg: RegExp; /** * * @param { string } str 字符串模板 * @param { Function } callback 读取style时的回调 * @returns */ declare function getStyles(str: string, callback: (style: string, block: string, index: number) => string): string; //#endregion //#region src/https/httpsRedirect.d.ts /** * http重定向到https */ declare function httpsRedirect(): void; //#endregion //#region src/is/isAbsolute.d.ts /** * 判断是否是绝对路径 * @param url * @returns */ declare function isAbsolute(url: string): boolean; //#endregion //#region src/is/isArray.d.ts /** * 判断是否是数组 */ declare const isArray: (arg: any) => arg is any[]; //#endregion //#region src/is/isBlob.d.ts /** * 判断是否是blob * @param o * @returns */ declare function isBlob(o: any): o is Blob; //#endregion //#region src/is/isBool.d.ts /** * 判断是否是boolean类型 * @param value * @returns */ declare function isBool(value: any): value is boolean; //#endregion //#region src/is/isBottom.d.ts /** * 判断滚动条到达窗口底部 * @param distance * @returns */ declare function isBottom(distance?: number): boolean; //#endregion //#region src/is/isBrowser.d.ts declare const isBrowser: boolean; //#endregion //#region src/is/isContainCn.d.ts /** * 判断是否包含中文 * @param s * @returns */ declare function isContainCn(s: string): boolean; //#endregion //#region src/is/isDate.d.ts /** * 判断是否是日期格式 * @param d * @returns */ declare function isDate(d: any): d is Date; //#endregion //#region src/is/isDef.d.ts /** * 判断元素不是undefined * @param v * @returns */ declare function isDef<T = any>(v: T): v is T extends undefined ? never : T; //#endregion //#region src/is/isElement.d.ts /** * 判断元素是HTMLElement * @param element * @returns */ declare function isElement(element: any): element is HTMLElement; //#endregion //#region src/is/isEqual.d.ts /** * 判断2个对象是否相等 * @param { any } o1 对象1 * @param { any } o2 对象2 * @returns */ declare function isEqual(o1: any, o2: any): boolean; //#endregion //#region src/is/isEsModule.d.ts /** * 判断对象是ESModule * @param obj * @returns */ declare function isESModule(obj: any): obj is IsESModule; //#endregion //#region src/is/isFalse.d.ts /** * 判断是否是false * @param v * @returns */ declare function isFalse(v: any): v is false; //#endregion //#region src/is/isFileType.d.ts /** * 判断文件类型 * @param { string } file 文件路径 * @param { string } appendix 文件类型 * @returns */ declare function isFileType(file: string, appendix: string): boolean; //#endregion //#region src/is/isFn.d.ts /** * 判读是否是函数 * @param o * @returns */ declare function isFn(o: any): o is Function; //#endregion //#region src/is/isIPv4.d.ts /** * 判断是否是ipv4 * @param ip * @returns */ declare function isIPv4(ip: string): boolean; //#endregion //#region src/is/isIPv6.d.ts /** * 判断是否是ipv6 */ declare function isIPv6(ip: string): boolean; //#endregion //#region src/is/isIdCard.d.ts /** * 判断是否是身份证 * @param s * @returns */ declare function isIdCard(s: string): boolean; //#endregion //#region src/is/isLeapYear.d.ts /** * 判断是否是闰年 */ declare function isLeapYear(year: number): boolean; //#endregion //#region src/is/isMap.d.ts /** * 判断是否是Map */ declare function isMap(o: any): o is Map<any, any>; //#endregion //#region src/is/isMobile.d.ts /** * 判断是否是手机号 */ declare function isMobile(s: string): boolean; //#endregion //#region src/is/isNaN.d.ts /** * 判断是否是NaN */ declare function isNaN(o: any): boolean; //#endregion //#region src/is/isNil.d.ts /** * 判断是否是null或undefined */ declare function isNil(value: any): value is null | undefined; //#endregion //#region src/is/isNull.d.ts /** * 判断是否是null */ declare function isNull(o: any): o is null; //#endregion //#region src/is/isNum.d.ts /** * 判断是否是number类型 */ declare function isNum(o: any): o is number; //#endregion //#region src/is/isObject.d.ts /** * 判断是否是对象 */ declare function isObject(value: any): boolean; //#endregion //#region src/is/isPlainObject.d.ts /** * 判断是否是{}类型 */ declare function isPlainObject(o: any): o is Record<any, any>; //#endregion //#region src/is/isPostCode.d.ts /** * 判断是否是邮编 */ declare function isPostCode(s: string | number): boolean; //#endregion //#region src/is/isPromise.d.ts /** * 判断是否是promise */ declare function isPromise(o: any): o is Promise<any>; //#endregion //#region src/is/isReg.d.ts /** * 判断是否是正则 */ declare function isReg(o: any): o is RegExp; //#endregion //#region src/is/isRelative.d.ts /** * 判断是否是相对路径 */ declare function isRelative(str: string): boolean; //#endregion //#region src/is/isSameDay.d.ts /** * 判断是否是同一天 * @param { Date } dateLeft 日期一 * @param { Date } dateRight 日期二 */ declare function isSameDay(dateLeft: Date, dateRight: Date): boolean; //#endregion //#region src/is/isSet.d.ts /** * 判断是否是Set */ declare function isSet(o: any): o is Set<any>; //#endregion //#region src/is/isStr.d.ts /** * 判断是否是字符串类型 */ declare function isStr(o: any): o is string; //#endregion //#region src/is/isSupportCamera.d.ts /** * 判断是否支持调用摄像头 */ declare function isSupportCamera(): boolean; //#endregion //#region src/is/isSupportWebp.d.ts /** * 判断是否支持webp格式 */ declare function isSupportWebp(): boolean; //#endregion //#region src/is/isSymbol.d.ts /** * 判断是否是symbol类型 */ declare function isSymbol(o: any): o is symbol; //#endregion //#region src/is/isTrue.d.ts /** * 判断是否是true */ declare function isTrue(v: any): v is true; //#endregion //#region src/is/isType.d.ts /** * 判断对象类型 */ declare function isType<T>(s: T, type: string): boolean; //#endregion //#region src/is/isUndef.d.ts /** * 判断是否是undefined */ declare function isUndef(o: any): o is undefined; //#endregion //#region src/is/isUrl.d.ts /** * 判断是否是url */ declare function isUrl(url: string): boolean; //#endregion //#region src/is/isVideo.d.ts /** * 判断是否是video */ declare function isVideo(filepath: string): boolean; //#endregion //#region src/is/isWeakMap.d.ts /** * 判断是否是WeakMap */ declare function isWeakMap(o: any): o is WeakMap<any, any>; //#endregion //#region src/is/isWeakSet.d.ts /** * 判断是否是WeakSet */ declare function isWeakSet(o: any): o is WeakSet<any>; //#endregion //#region src/is/isWin.d.ts /** * 判断是windows电脑 */ declare function isWin(): boolean; //#endregion //#region src/is/isSocketUrl.d.ts /** * 判断是否是websocket地址 */ declare function isSocketUrl(url: string): boolean; //#endregion //#region src/is/isBase64.d.ts /** * 判断是否是base64格式 * @param { string } base64 * @returns */ declare function isBase64(base64: string): boolean; //#endregion //#region src/is/isTrainNumber.d.ts /** * 判断是否是火车号 */ declare const isTrainNumber: (s: string) => boolean; //#endregion //#region src/is/isNameCn.d.ts /** * 判断输入的是中文 */ declare const isNameCn: (s: string) => boolean; //#endregion //#region src/is/isNameEn.d.ts /** * 判断输入的是否是英文 */ declare function isNameEn(s: string): boolean; //#endregion //#region src/is/isSoldierId.d.ts /** * 判断是否是军官证 */ declare function isSoldierId(s: string): boolean; //#endregion //#region src/is/isVersion.d.ts /** * 判断是否是版本号 */ declare function isVersion(version: string): boolean; //#endregion //#region src/is/isDivElement.d.ts declare function isDivElement(target: unknown): target is HTMLDivElement; //#endregion //#region src/is/isIFrameElement.d.ts declare function isIFrameElement(target: unknown): target is HTMLIFrameElement; //#endregion //#region src/is/isImageElement.d.ts declare function isImageElement(target: unknown): target is HTMLImageElement; //#endregion //#region src/is/isNode.d.ts declare function isNode(target: unknown): target is Node; //#endregion //#region src/is/isProxyDocument.d.ts declare function isProxyDocument(target: unknown): target is Document; //#endregion //#region src/is/isScriptElement.d.ts declare function isScriptElement(target: unknown): target is HTMLScriptElement; //#endregion //#region src/is/isShadowRoot.d.ts declare function isShadowRoot(target: unknown): target is ShadowRoot; //#endregion //#region src/is/isStyleElement.d.ts declare function isStyleElement(target: unknown): target is HTMLStyleElement; //#endregion //#region src/is/isVue.d.ts /** * 判断文件是不是.vue * @param { string } src 文件路径 * @returns */ declare function isVue(src: string): boolean; //#endregion //#region src/is/isComment.d.ts /** * 判断是否是<! -- xxx -->注释 * @param { string } s 字符串 * @returns */ declare function isComment(s: string): boolean; //#endregion //#region src/is/isActive.d.ts /** * 判断当前页面是否处于活跃状态 * @returns */ declare function isActive(): boolean; //#endregion //#region src/is/isFile.d.ts /** * 判断是否是文件 * @param o * @returns */ declare function isFile(o: Blob | string): o is File; //#endregion //#region src/js/listenStack.d.ts /** * 监听目标元素的子元素变化的栈 * @param { string | Element } target 元素 * @returns */ declare function listenStack(target: string | Element): (() => true | undefined) | undefined; //#endregion //#region src/js/copy.d.ts /** * 获取电脑粘贴板的内容 * @param { string } s 内容 * @returns */ declare function copy(s: string): boolean; //#endregion //#region src/js/curry.d.ts /** * 柯里化 * @param { Function } f 函数 * @returns 函数 */ declare function curry(f: Function): (...args: any[]) => any; //#endregion //#region src/js/sleep.d.ts /** * 等待函数 * @param { number } ms 延迟秒数 * @returns */ declare function sleep(ms: number): Promise<unknown>; //#endregion //#region src/js/parallel.d.ts /** * 并行执行 * @param { any[] } tasks 数组 * @param { (...args: any[]) => any } fn 函数 * @returns */ declare function parallel(tasks: any[], fn: (...args: any[]) => any): Promise<any[]>; //#endregion //#region src/js/promiseFinally.d.ts /** * * @param { Function } fn 函数 | 异步函数 * @param { Function } finalFn 函数 * @returns */ declare function promiseFinally(fn: Promise<any> | Function, finalFn: Function): Promise<any>; //#endregion //#region src/js/timeout.d.ts /** * 超时函数 * @param { Function } fn 函数 * @param { number } ms 时间 * @param { string } msg 错误消息 * @returns */ declare const timeout: (fn: Function, ms: number, msg: string) => Promise<any>; //#endregion //#region src/js/noop.d.ts declare function noop(): void; //#endregion //#region src/js/chainFns.d.ts /** * 链式调用 * @param { Function[] } fns 函数数组 * @returns */ declare function chainFns(...fns: Function[]): Function; //#endregion //#region src/js/nextTick.d.ts /** * * @param { () => any } flushCallbacks 函数 * @returns */ declare function nextTick(flushCallbacks: () => any): void; //#endregion //#region src/js/singleModel.d.ts /** * 单例模式 */ declare function singleModel(className: any): any; //#endregion //#region src/js/useWebWorker.d.ts /** * webWorker * @param { string } [url] url自定义worker文件路径 或者 worker函数 */ declare function useWebWorker(url: string): any; declare function useWebWorker(useWebWorkerThread: () => void): any; //#endregion //#region src/js/useServiceWorker.d.ts /** * * @param url url自定义worker文件路径 或者 worker函数 * @param { RegistrationOptions } options { * scope?: string; * type?: WorkerType; * updateViaCache?: ServiceWorkerUpdateViaCache; * } * @returns */ declare function useServiceWorker(url: string | (() => void), options: RegistrationOptions): Promise<ServiceWorkerRegistration>; //#endregion //#region src/js/noopFalse.d.ts declare const noopFalse: () => boolean; //#endregion //#region src/js/updateDetection.d.ts /** * 用户停留在老页面但是已经有新的版本 */ /** * 检测首页中script src是否存在更新 * @param { number } s 检测时间间隔 默认 2000 * @param callback 如果页面检测出有更新则会被调用 * @returns */ declare function updateDetection(s: number | undefined, callback: () => void): () => void; //#endregion //#region src/js/streamToUrl.d.ts /** * 将流文件转为base64 * @param { ArrayBuffer } stream 流 * @returns */ declare function streamToUrl(stream: ArrayBuffer): Promise<string>; //#endregion //#region src/js/useReader.d.ts /** * 读取ReadableStream * @param { ReadableStreamDefaultReader<Uint8Array> } reader getReader() 的结果 * @param { Function } callback 每片读取的回调 * @returns */ declare function useReader(reader: ReadableStreamDefaultReader<Uint8Array>, callback?: (value?: any) => any): Promise<string>; //#endregion //#region src/js/useSwitch.d.ts declare function useSwitch(options: any[]): () => any; //#endregion //#region src/js/catchAwait.d.ts declare function catchAwait<T, U = Error>(promise: Promise<T> | any, errorExt?: object): Promise<[U, undefined] | [undefined, T]>; //#endregion //#region src/js/executeStr.d.ts declare function executeStr(str: string): any; //#endregion //#region src/js/handleImageError.d.ts /** * handleImageError * @param errorImageSrc string[] - Array of image sources to use as fallback * @returns (event: Event) => void - Function to handle error event on image element */ declare function handleImageError(errorImageSrc: string[]): (event: Event) => void; //#endregion //#region src/js/replaceAsync.d.ts declare function replaceAsync(str: string, searchValue: string | RegExp, replaceValue: string | ((...args: any[]) => string | Promise<string>)): Promise<string>; //#endregion //#region src/js/reduceAsync.d.ts declare function reduceAsync<T, K>(arr: K[], reducer: (acc: T, item: K, index: number, arr: K[]) => any, initialValue: T): Promise<T>; //#endregion //#region src/js/retryAsync.d.ts declare function retryAsync<T>(fn: () => Promise<T>, retries: number): Promise<T>; //#endregion //#region src/log/debugWarn.d.ts declare function throwError(scope: string, m: string): never; declare function debugWarn(err: Error): void; declare function debugWarn(scope: string, message: string): void; //#endregion //#region src/log/globalErrorCapture.d.ts /** * 全局错误捕获 */ declare function globalErrorCapture(): () => void; //#endregion //#region src/log/interceptError.d.ts declare function interceptError(fn: Function): Promise<unknown>; //#endregion //#region src/log/log.d.ts /** * 日志输出 * @param { string } s 内容 * @param { Record<string, string | number> } styleObj 样式 * @param { string } type 类型 'warn' | 'error' | 'log' */ declare function log(s: string | number, options?: { type?: 'warn' | 'error' | 'log'; style?: Record<string, string | number> | string; args?: any[]; }): void; //#endregion //#region src/message/createEventBus.d.ts /** * eventbus */ declare function createEventBus(): EventBus; //#endregion //#region src/message/useStorageListen.d.ts /** * 跨标签页通信通过storage事件实现 * @param { (type: string, newValue: any, oldValue: any) => void } callback storage数据更新回调 * @returns */ declare function useStorageListen(callback: (type: string, newValue: any, oldValue: any) => void): () => void; declare function sendStorage(type: string, value: any): void; //#endregion //#region src/message/useSock