xxm-test-js
Version:
xxm-js通用js工具(utils)库
146 lines (145 loc) • 8.55 kB
TypeScript
import { handelTime } from './lib/handelTime';
import { formatThousands } from './lib/formatThousands';
import { getWeek } from './lib/getWeek';
import { formatDuration } from './lib/formatDuration';
import { throttle } from './lib/throttle';
import { debounce } from './lib/debounce';
import { deepCopy } from './lib/deepCopy';
import { flattenArray } from './lib/flattenArray';
import { isType } from './lib/isType';
import { runTasksWithConcurrency } from './lib/runTasksWithConcurrency';
import { sortArray } from './lib/sortArray';
import { uniqueArray } from './lib/uniqueArray';
import { getQueryObject } from './lib/getQueryObject';
import { cleanArray } from './lib/cleanArray';
import { copyTextToClipboard } from './lib/copyTextToClipboard';
import { convertToTree } from './lib/convertToTree';
import { flattenTree } from './lib/flattenTree';
import { arrayToString } from './lib/arrayToString';
import { stringToArray } from './lib/stringToArray';
import { categorizeBy } from './lib/categorizeBy';
import { lookupDictLabel } from './lib/lookupDictLabel';
import { createExistenceChecker } from './lib/createExistenceChecker';
import { customSortMethod } from './lib/customSortMethod';
import { groupBy } from './lib/groupBy';
import { enterFullscreen } from './lib/enterFullscreen';
import { exitFullscreen } from './lib/exitFullscreen';
import { getFullscreenElement } from './lib/getFullscreenElement';
import { observeElementResize, unobserveElementResize } from './lib/observeElementResize';
import { findPathInTree } from './lib/findPathInTree';
import { filterObject } from './lib/filterObject';
import { getRandomInt } from './lib/getRandomInt';
import { htmlEscape } from './lib/htmlEscape';
import { htmlUnescape } from './lib/htmlUnescape';
import { cssEscape } from './lib/cssEscape';
import { jsEscape } from './lib/jsEscape';
import { workEvent } from './lib/workEvent';
import { TimeThread } from './lib/TimeThread';
import { getRelativeTime } from './lib/getRelativeTime';
import { scrollToTop } from './lib/scrollToTop';
import { scrollToBottom } from './lib/scrollToBottom';
import { ScrollDirectionChecker } from './lib/ScrollDirectionChecker';
import { FormValidator } from './lib/FormValidator';
import { deepMerge } from './lib/deepMerge';
import { WebSocketClient } from './lib/WebSocketClient';
import { Watermark } from './lib/Watermark';
/**
* xxmJs 通用js方法集
* Copyright (c) 2024 xxm
* @getWeek 获取指定日期所在的周数(符合中国的周定义,即周一作为一周的开始)。
* @handelTime 格式化日期时间字符串。
* @formatThousands 格式化数字,添加千分位分隔符。
* @throttle 创建一个节流函数,该函数会在最后一次调用后的指定时间后停止执行。
* @debounce 创建一个防抖函数,该函数会延迟调用 `func` 直到自最后一次调用防抖函数后 `delay` 毫秒已过去。
* @deepCopy 创建一个对象或数组的深拷贝。
* @flattenArray 将嵌套数组展平成一维数组。
* @isType 创建一个函数来检查对象是否为指定的类型。
* @runTasksWithConcurrency 并发执行一组异步任务
* @sortArray 通用排序函数 对普通数组或对象数组根据指定字段进行升序或降序排序
* @uniqueArray 数组去重函数,支持基本类型和对象类型的数组去重。
* @getQueryObject 解析URL查询字符串并返回一个对象,其中包含查询参数的键值对。
* @cleanArray 清理数组中的假值(falsy values),返回仅含真值(truthy values)的一维数组。
* @copyTextToClipboard 将文本复制到剪贴板。
* @convertToTree 将扁平数据结构转换为树形结构。
* @flattenTree 将树形结构的数据扁平化为数组。
* @arrayToString 将数组转换为字符串。
* @stringToArray 将字符串转换为数组。
* @categorizeBy 根据对象数组中每个元素指定属性的值进行分类。
* @formatDuration 格式化时间差(如"1小时30分钟")
* @filterObject 根据条件过滤对象的属性。
* @groupBy 根据指定条件对数组元素进行分组。
* @lookupDictLabel 根据提供的值和键名,在数据字典中查找并返回目标键的值(通常是标签)。
* @createExistenceChecker 创建一个存在性检查函数,用于验证给定值是否存在于预定义的字符串列表中。
* @customSortMethod 创建一个多级排序函数,用于对给定的数据数组按照指定的排序规则进行排序。
* @enterFullscreen 请求指定元素进入全屏模式。
* @exitFullscreen 退出全屏模式方法
* @getFullscreenElement 获取当前处于全屏模式的元素。
* @observeElementResize 监听元素尺寸变化并执行回调函数
* @unobserveElementResize 取消对元素尺寸变化的监听
* @findPathInTree 查找树形数据中从根节点到目标节点的完整路径,未找到则返回空数组
* @getRandomInt 获取指定范围内的随机整数。
* @htmlEscape 将字符串进行 HTML 转义
* @htmlUnescape 将经过 HTML 转义的字符串进行反转义
* @cssEscape 将字符串进行 CSS 转义
* @jsEscape 将字符串进行 JS 转义
* @workEvent 启动一个时间线程,按照指定的时间间隔触发时钟事件,默认间隔为 5 分钟。
* @TimeThread 时间线程类,用于定时触发事件
* @getRelativeTime 获取相对时间,如刚刚、几天前、几个月前、几年前。
* @scrollToTop 滚动到容器顶部。
* @scrollToBottom 滚动到容器底部。
* @ScrollDirectionChecker 检测页面滚动方向。
* @FormValidator 表单验证类,用于确保输入数据的有效性。
* @deepMerge 递归合并两个或多个对象
* @WebSocketClient WebSocket 客户端封装类,支持自动重连、心跳检测、消息队列等功能
* @Watermark 页面水印类,用于添加防删除的文字水印,支持自定义样式和防篡改保护
*/
declare const xxmJs: {
getWeek: typeof getWeek;
handelTime: typeof handelTime;
formatThousands: typeof formatThousands;
throttle: typeof throttle;
debounce: typeof debounce;
deepCopy: typeof deepCopy;
flattenArray: typeof flattenArray;
isType: typeof isType;
runTasksWithConcurrency: typeof runTasksWithConcurrency;
sortArray: typeof sortArray;
uniqueArray: typeof uniqueArray;
getQueryObject: typeof getQueryObject;
cleanArray: typeof cleanArray;
copyTextToClipboard: typeof copyTextToClipboard;
convertToTree: typeof convertToTree;
flattenTree: typeof flattenTree;
arrayToString: typeof arrayToString;
stringToArray: typeof stringToArray;
categorizeBy: typeof categorizeBy;
formatDuration: typeof formatDuration;
groupBy: typeof groupBy;
lookupDictLabel: typeof lookupDictLabel;
createExistenceChecker: typeof createExistenceChecker;
customSortMethod: typeof customSortMethod;
enterFullscreen: typeof enterFullscreen;
exitFullscreen: typeof exitFullscreen;
getFullscreenElement: typeof getFullscreenElement;
observeElementResize: typeof observeElementResize;
unobserveElementResize: typeof unobserveElementResize;
findPathInTree: typeof findPathInTree;
filterObject: typeof filterObject;
getRandomInt: typeof getRandomInt;
htmlEscape: typeof htmlEscape;
htmlUnescape: typeof htmlUnescape;
cssEscape: typeof cssEscape;
jsEscape: typeof jsEscape;
workEvent: typeof workEvent;
TimeThread: typeof TimeThread;
getRelativeTime: typeof getRelativeTime;
scrollToTop: typeof scrollToTop;
scrollToBottom: typeof scrollToBottom;
ScrollDirectionChecker: typeof ScrollDirectionChecker;
FormValidator: typeof FormValidator;
deepMerge: typeof deepMerge;
WebSocketClient: typeof WebSocketClient;
Watermark: typeof Watermark;
};
export default xxmJs;
export { getWeek, handelTime, formatThousands, throttle, debounce, deepCopy, flattenArray, isType, runTasksWithConcurrency, sortArray, uniqueArray, getQueryObject, cleanArray, copyTextToClipboard, convertToTree, flattenTree, arrayToString, stringToArray, categorizeBy, formatDuration, groupBy, lookupDictLabel, createExistenceChecker, customSortMethod, enterFullscreen, exitFullscreen, getFullscreenElement, observeElementResize, unobserveElementResize, findPathInTree, filterObject, getRandomInt, htmlEscape, htmlUnescape, cssEscape, jsEscape, workEvent, TimeThread, getRelativeTime, scrollToTop, scrollToBottom, ScrollDirectionChecker, FormValidator, deepMerge, WebSocketClient, Watermark, };