import { App } from 'vue'; import { DeviceSize, Position } from './types'; import { Scheme } from '@material/material-color-utilities'; declare class MiTools { /** * Whether the `element / params` is valid. * @param value */ isValid(value: unknown): boolean; /** * 是否为数字 * @param number * @returns */ isNumber(number: any): boolean; /** * 单位转换 px -> rem * @param value * @param base */ px2rem(value: number | string, base?: number): number; /** * 转 rem * @param num * @returns */ convert2rem(num: any): any; /** * 根据窗口尺寸获取配置的大小值 * @param value 大小值 * * @see DeviceSize * @see Breakpoints */ distinguishSize(value?: string | number | DeviceSize, dynamicWidth?: number): any; /** * 随机生成字符串. * @returns {string} */ random(): string; /** * 生成唯一的 UID. * @param upper * @returns {string} */ uid(upper?: boolean, prefix?: string): string; /** * 添加事件监听. * 注: scroll 事件的监听等请务必使用此方法设定. * 避免多人重复定义被覆盖. * @param el * @param event * @param listener * @param useCapture */ on(el: Window | HTMLElement, event: keyof HTMLElementEventMap, listener: (this: HTMLElement, evt: HTMLElementEventMap[keyof HTMLElementEventMap]) => any, useCapture?: false): void; /** * 移除事件监听. * @param el * @param event * @param listener * @param useCapture */ off(el: Window | HTMLElement, event: keyof HTMLElementEventMap, listener: (this: HTMLElement, evt: HTMLElementEventMap[keyof HTMLElementEventMap]) => any, useCapture?: false): void; /** * 颜色转换 hex -> rgba * @param color * @param opacity * @returns */ colorHex2Rgba(color: string, opacity?: number): string; /** * 颜色转换 rgb -> hex * @param color * @returns */ colorRgb2Hex(color: string): string; /** * Hex 转 rgb 数值 * @param color * @returns */ hex2rgbValues(color: string): number[]; /** * 判断是否为 URL * @param url * @returns */ isUrl(url: string): boolean; /** * 生成范围内的随机数. * @param start * @param end * @returns {number} */ randomNumberInRange(start: number, end: number): number; /** * 封装定位或间距 * @param [string, number] value 数值 * @param prefix 前缀 (如: margin) */ wrapPositionOrSpacing(data: Position, prefix?: string): Record; /** * 格式化空字符串 * @param str * @param formatter * @returns */ formatEmpty(str?: string, formatter?: string): string | undefined; /** * 判断是否为空 * @param str * @param format * @returns */ isEmpty(str: any, format?: boolean): boolean | string; /** * 根据主色调生成主题变量 * @param primary 主题色 ( hex ) * @param target 变量插入的节点 */ createThemeProperties(primary?: string, target?: HTMLElement): void; /** * 设置全局的主题变量 * @param scheme * @returns */ setThemeSchemeProperties(scheme: Scheme, target?: HTMLElement): void; /** * 创建 style 标签并写入 css variables * @param tokens * @param id * @param overwritten 强制覆盖 * @param append head 末尾追加 * @param scopeKey 默认全局 */ createCssVariablesElement(tokens: string[], id?: string, overwritten?: boolean, append?: boolean, scopeKey?: string): void; /** * 获取局部的主题变量 * @param properties * @returns */ getThemeModuleProperties(properties: Record): Record; /** * 主题变量 * @param record * @returns */ setThemeModuleTokens(record: Record, target?: HTMLElement): void; /** * 设定局部主题变量 * @param properties 内置局部变量 * @param customProperties 自定义变量 */ applyThemeModuleProperties(properties: Record, customProperties: Record, target?: HTMLElement): void; /** * 合并组件局部主题变量 * @param properties 组件内的默认主题变量 * @param customProperties 自定义组件主题变量 * @returns */ assignThemeModuleProperties(properties: Record, customProperties: Record): Record; /** * 销毁局部主题变量 * @param properties */ destroyThemeModuleProperties(properties: Record): void; /** * 判断字符串是否是颜色值 * @param str * @returns */ isColorString(str: string): boolean; } export declare const $tools: MiTools; declare const _default: { install(app: App): App; }; export default _default;