UNPKG

js-xxx

Version:

前端 JavaScript 常用函数/工具/方法库

446 lines 15.3 kB
/** * 获取浏览器信息 * @example * getUserAgent(); /// { browserName: 'Chrome', browserVersion: '102.0.0.0', osName: 'Windows', osVersion: '10.0', deviceName: '' } * @returns * @category Others-业务/其他 */ export declare function getUserAgent(): { browserName: string; browserVersion: string; osName: string; osVersion: string; }; /** * 判断当前运行环境是否为 Node.js * @example * isNode(); /// true * @returns * @category Others-业务/其他 */ export declare function isNode(): boolean; /** * 判断当前运行环境是否为浏览器 * @example * isBrowser(); /// true * @returns * @category Others-业务/其他 */ export declare function isBrowser(): boolean; /** * 检测黑暗模式 * @example * isDarkMode(); /// true * @returns * @category Others-业务/其他 */ export declare function isDarkMode(): boolean; /** * 是否苹果设备 * @example * isAppleDevice(); /// true * @returns * @category Others-业务/其他 */ export declare function isAppleDevice(): boolean; /** * 判断是否客户端渲染 * @example * isCSR(); /// true * @returns * @category Others-业务/其他 */ export declare function isCSR(): boolean; /** * 判断是否 Windows * @example * isWin(); /// true * @returns * @category Others-业务/其他 */ export declare function isWin(): boolean; /** * 判断是否 MacOS * @example * isMac(); /// true * @returns * @category Others-业务/其他 */ export declare function isMac(): boolean; /** * 判断是否 Chrome 内核 * @example * isChrome(); /// true * @returns * @category Others-业务/其他 */ export declare function isChrome(): boolean; /** * 版本号比对算法 * @example * checkVersion('1.0.1-rc', '1.0.0', '-rc'); /// 1 * checkVersion('1.0.0', '1.0.1'); /// -1 * checkVersion('1.0.0', '1.0.0'); /// 0 * @param targetVersion 目标版本 * @param currentVersion 当前版本 * @param testStr 需要替换的字符串 default(-rc) * @returns * @category Others-业务/其他 */ export declare function checkVersion(targetVersion: string, currentVersion: string, testStr?: string): -1 | 1 | 0; /** * 版本号升级算法 * @example * versionUpgrade('0.0.1'); /// '0.0.2' * versionUpgrade('0.0.0.9'); /// '0.0.0.10' * versionUpgrade('0.0.0.9', 9); /// '0.0.1.0' * versionUpgrade('0.0.9.9', 9); /// '0.1.0.0' * @param version 版本号 * @param maxVersionCode 最大版本号 * @returns * @category Others-业务/其他 */ export declare function versionUpgrade(version: string, maxVersionCode?: number): string; /** * 处理 rh 血型 * @example * formatRh('**d**'); /// '阴性' * formatRh('**d**', { format: [true, false], default: false }); /// true * @param input 输入值 * @param options 处理配置 * @returns * @category Others-业务/其他 */ export declare function formatRh(input: string, options?: { format?: [string | number | boolean, string | number | boolean]; default?: string | number | boolean; negative?: Array<string>; positive?: Array<string>; }): string | boolean | number; /** * 是否阴性血 * @example * isRhNegative('**d**'); /// true * @param input 输入值 * @returns * @category Others-业务/其他 */ export declare function isRhNegative(input: string): boolean; /** * 获取血型枚举信息 * @example * getBloodGroup('A'); /// { value: 'A', label: 'A 型', color: '#1890FF', lower: 'a', upper: 'A' } * @param bloodGroup 血型 * @returns * @category Others-业务/其他 */ export declare function getBloodGroup(bloodGroup: string): { value: string; label: string; color: string; lower: string; upper: string; }; /** * 生成 cron 表达式 * @example * calcCron(); /// '* * * * *' * calcCron({ minute: '30', hour: '1', day: '10'}); /// '30 1 10 * *' * calcCron({ week: '?' }); /// '* * * * ?' * calcCron({ week: '*' }); /// '* * * * *' * calcCron({ week: 0 }); /// '* * * * 0' * calcCron({ week: '0' }); /// '* * * * 0' * calcCron({ week: '7' }); /// '* * * * 0' * calcCron({ week: 'SUN,天,日,六,6,5' }); /// '* * * * 0,5,6' * calcCron({ day: '1-5' }); /// '* * 1-5 * * ' * calcCron({ day: '1,5' }); /// '* * 1,5 * * ' * calcCron({ day: '1/5' }); /// '* * 1/5 * * ' * @param options cron 配置 * @returns * @category Others-业务/其他 */ export declare function calcCron({ minute, hour, day, month, week }?: { minute?: string | undefined; hour?: string | undefined; day?: string | undefined; month?: string | undefined; week?: string | undefined; }): string; /** * 在页面上打印数据,我们打包通常会设置清除 console,使用此函数打印关键信息就不会被清除啦。 * @example * log([1, 2, 2, 3, 3], {a: 1, b: 2}, 'test', true); /// 打印数据 * log('danger'); /// 打印数据 * @param args 打印数据 rest 参数 * @returns * @category Extra-日志/调试 */ export declare function log(...args: any[]): string; /** * 强制转化为字符串,避免导出表格显示科学计数法。 * @example * forceToStr(123123123); /// '123123123' * forceToStr(undefined); /// '-' * forceToStr(undefined, 0); /// '0' * @param value 值 * @param defaultValue 默认值 * @returns * @category Tools-字符串相关 */ export declare function forceToStr(value: any, defaultValue?: string): string; /** * 华氏/摄氏度互转 * @example * transferTemperature(30.5); /// '86.9 °F' * transferTemperature(86, false, false); /// 30 * @returns * @category Others-业务/其他 */ export declare function transferTemperature(temperature: number | string, isCelsius?: boolean, addSuffix?: boolean): string | number; /** * 获取数据,支持格式化,默认值。 * @example * getDataStr(123123123); /// '123123123' * getDataStr(undefined); /// '-' * getDataStr(undefined, 0); /// '0' * getDataStr('test', '', '(', ')'); /// '(test)' * getDataStr(undefined, '', '(', ')'); /// '' * getDataStr(false); /// 'false' * @param value 值 * @param defaultValue 默认值 * @param prefix 前缀 * @param suffix 后缀 * @returns * @category Others-业务/其他 */ export declare function getDataStr(value: any, defaultValue?: string, prefix?: string, suffix?: string): string; /** * 清理对象中的空值,将 `null``undefined` 删除或替换。 * @param obj 需要清理的对象 * @param replacement 替换值,默认为 `undefined`,如果传入值则替换为该值。 * @returns * @example * clearObject({ a: 1, b: null, c: undefined, d: '', e: ' ' }); /// 返回: { a: 1 } * clearObject({ a: 1, b: null, c: undefined, d: '', e: ' ' }, ''); /// 返回: { a: 1, b: '', c: '', d: '', e: '' } * @category Others-业务/其他 */ export declare function clearObject(obj: any, replacement?: any): { [k: string]: any; }; /** * 比较两个值是否相等,支持严格模式和忽略大小写的比较。 * @example * compareTo(1, 2); /// false * compareTo('a', 'A'); /// true * compareTo('a', 'A', true); /// false * compareTo(3, 3); /// true * compareTo(2, '2'); /// true * compareTo('apple', 'banana'); /// false * compareTo('2', 2, true); /// false * compareTo('2', 2); /// true * @param value1 第一个值 * @param value2 第二个值 * @param strict 是否启用严格模式: true 表示严格比较,false 表示忽略大小写和类型比较,默认值为 false 。 * @returns * @category Others-业务/其他 */ export declare function compareTo(value1: any, value2: any, strict?: boolean): boolean; /** * 获取转换后树的映射对象、数组 `{ map: any, list: any[] }` * @example * getTreeData(treeData, 'id'); /// { map: any, list: any[] } * getTreeData(treeData, 'data.id'); /// { map: any, list: any[] } * @param treeData 树值 * @param key key * @returns * @category Others-Tree */ export declare function getTreeData(treeData: any[], key?: string): { map: any; list: any[]; }; /** * 过滤树级数据,并支持显示完整结构。 * @example * searchTreeData(treeData, '测试搜索关键字', 'id'); /// ... * searchTreeData(treeData, '测试搜索关键字', ['key', 'title']); /// ... * searchTreeData(treeData, '测试搜索关键字', ['data.key', 'title'], true); /// ... * @param treeData 树值 * @param searchText 过滤的值 * @param searchKeys 用于过滤的 key * @param strictMode 搜索配置 strictMode 时,会强制平铺排列返回符合条件的节点,默认不开启,保持树排列。 * @returns * @category Others-Tree */ export declare function searchTreeData(treeData: any[], searchText: string, searchKeys?: string | string[], strictMode?: boolean): any[]; /** * 转换数组数据为树状数据 * @example * transferTreeData(treeData); /// ... * transferTreeData(treeData, { labelKey: 'title', valueKey: 'key', parentKey: 'parent' }); /// ... * @param sourceData 源数据 * @param options 转化选项 * @returns * @category Others-Tree */ export declare function transferTreeData(sourceData: any[], options?: { labelKey: string; valueKey: string; parentKey: string; }): any[]; /** * 获取筛选后的树数据,自定义方法。 * @example * filterTreeData(treeData, (item) => item); /// ... * filterTreeData(treeData, (item) => filterIds.includes(item.id)); /// ... * @param treeData 树值 * @param callback 过滤的方法,默认不过滤。 * @returns * @category Others-Tree */ export declare function filterTreeData(treeData: any[], callback?: (item: any) => boolean): any[]; /** * 主动获取树的半选/全选节点 * @example * getTreeCheckNodes(treeData, ['0-0', '0-1']); /// ... * getTreeCheckNodes(treeData, ['0-0', '0-1'], ['0']); /// ... * getTreeCheckNodes(treeData, ['0-0', '0-1'], ['0'], { key: 'id' }); /// 使用 id 作为唯一标识 * @param treeData 树值 * @param checkedKeys 已经全选的节点 * @param halfCheckedKeys 已经半选的节点 * @param fieldNames 自定义字段名 * @returns { nodeMap, parentMap, nodeObj, checkedKeys, halfCheckedKeys } * @category Others-Tree */ export declare function getTreeCheckNodes(treeData: any[], checkedKeys: string[], halfCheckedKeys?: string[], fieldNames?: { key?: string; children?: string; }): { nodeMap: Map<any, any>; parentMap: Map<any, any>; nodeObj: {}; nodeArr: never[]; checkedNodes: never[]; halfCheckedNodes: never[]; } | { nodeMap: Map<string, any>; parentMap: Map<string, string>; nodeObj: Record<string, any>; nodeArr: any[]; checkedNodes: string[]; halfCheckedNodes: string[]; }; /** * 生成 table columns 数组 * @example * const fields = [ * { label: 'Name', value: 'name' }, * { label: 'Email', key: 'email' }, * { label: 'Age' }, * ]; * const columns = getTableColumns(fields); * console.log(columns); * // Output: [ * // { title: 'Name', dataIndex: 'name', key: 'name', label: 'Name', value: 'name' }, * // { title: 'Email', dataIndex: 'email', key: 'email', label: 'Email' }, * // { title: 'Age', dataIndex: 'Age', key: 'Age', label: 'Age' }, * // ] * @param fields 基础数据 * @returns * @category Others-TableColumns */ export declare function getTableColumns(fields: Array<{ label?: string; title?: string; dataIndex?: string; value?: string; key?: string; width?: number | string; align?: 'left' | 'center' | 'right'; fixed?: 'left' | 'right' | false; hidden?: boolean; ellipsis?: boolean | any; defaultSortOrder?: 'ascend' | 'descend' | string; colSpan?: number; className?: string; sorter?: any; search?: any; showSearch?: boolean; render?: (text: any, record: any, index: number) => any; [key: string]: any; }>): Array<{ label?: string; title?: string; dataIndex?: string; value?: string; key?: string; width?: number | string; align?: 'left' | 'center' | 'right'; fixed?: 'left' | 'right' | false; hidden?: boolean; ellipsis?: boolean | any; defaultSortOrder?: 'ascend' | 'descend' | string; colSpan?: number; className?: string; sorter?: any; search?: any; showSearch?: boolean; render?: (text: any, record: any, index: number) => any; [key: string]: any; }>; /** * 播放音频 * @param input 声音类型或者音频路径 * @example * playAudio('path/to/custom.mp3'); * @returns * @category Others-音频 */ export declare function playAudio(input: string): void; /** * Mock 数据类型 * @category Others-Mock&模拟数据 */ export declare type MockDataType = 'string' | 'number' | 'boolean' | 'date' | 'array' | 'object' | 'null' | 'undefined'; /** * Mock 数据选项 * @category Others-Mock&模拟数据 */ export interface MockOptions { min?: number; max?: number; length?: number; arrayTypes?: Array<MockDataType | { type: MockDataType; options?: MockOptions; }>; objectKeys?: { [key: string]: MockDataType | { type: MockDataType; options?: MockOptions; }; }; startDate?: Date; endDate?: Date; format?: string | false; } /** * 生成 Mock 模拟数据的方法 * @param type 要生成的数据类型 * @param options 生成数据的选项 * @example * getMockData('string', { length: 10 }); /// "aB3dE6gH1j" * getMockData('number', { min: 10, max: 100 }); /// 42 * getMockData('boolean'); /// true * getMockData('date', { startDate: new Date(2020, 0, 1), endDate: new Date(2021, 0, 1) }); /// "2020-06-15 12:34:56" * getMockData('date', { format: false }); /// Date object * getMockData('object', { objectKeys: { name: 'string', age: 'number', birthDate: { type: 'date', options: { format: 'yyyy/mm/dd' } } } }); /// { name: "aBc", age: 25, birthDate: "1995/05/17" } * getMockData('array', { length: 5, arrayTypes: ['string', 'number'] }); /// [ "aB3", 42, "xYz", 7, "MN1" ] * getMockData('array', { length: 5, objectKeys: { name: 'string', age: 'number', birthDate: { type: 'date', options: { format: 'yyyy/mm/dd' } } } }); /// [{ name: "aBc", age: 25, birthDate: "1995/05/17" } * 5 ......] * getMockData('array', { length: 5, arrayTypes: [{ type: 'object', objectKeys: { name: 'string', age: 'number', birthDate: { type: 'date', options: { format: 'yyyy/mm/dd' } } } }] }); /// [{ name: "aBc", age: 25, birthDate: "1995/05/17" } * 5 ......] * getMockData('array', { length: 10, arrayTypes: ['string', { type: 'number', options: { min: 10, max: 100 } }, { type: 'date', options: { format: 'yyyy/mm/dd' } }] }); /// [47, 49, 'uCp1bxDo', '2003/05/14', 'MUQSOf0W', '2011/07/01', 'nDYZD4Lu', 'YFSCEQvV', '2021/06/03', '1yaIgwhh'] * @returns * @category Others-Mock&模拟数据 */ export declare function getMockData(type: MockDataType, options?: MockOptions): any; //# sourceMappingURL=index.d.ts.map