import { RendererFactory2 } from '@angular/core'; import * as i0 from "@angular/core"; export declare type NcSortType = 'asc' | 'desc'; interface prettyConsole { /** * log打印 * @param textOrTitle 标题或内容 * @param content 内容 */ log: Function; /** * info打印 * @param textOrTitle 标题或内容 * @param content 内容 */ info: Function; /** * error打印 * @param textOrTitle 标题或内容 * @param content 内容 */ error: Function; /** * warning打印 * @param textOrTitle 标题或内容 * @param content 内容 */ warning: Function; /** * success打印 * @param textOrTitle 标题或内容 * @param content 内容 */ success: Function; } export declare class NcCommonService { private platformId; private rendererFactory; private renderer; constructor(platformId: Object, rendererFactory: RendererFactory2); /** * 精确加法 * @param value1 第一个加数 * @param value2 第二个加数 * @returns 两数之和 */ mathAdd(value1: number, value2: number): number; /** * 精确减法 * @param value1 被减数 * @param value2 减数 * @returns 两数之差 */ mathSubtract(value1: number, value2: number): number; /** * 精确乘法 * @param value1 第一个乘数 * @param value2 第二个乘数 * @returns 两数之积 */ mathMultiply(value1: number, value2: number): number; /** * 精确除法 * @param value1 被除数 * @param value2 除数 * @returns 两数之商 */ mathDivide(value1: number, value2: number): number; /** * 保留指定小数位数 * @param num 需要处理的数值 * @param len 要保留的小数位数 * @returns 处理后的数值,保留指定小数位数 */ retainDecimal(num: number, len: number): number; /** * 保留指定小数位数的百分比 * @param num 需要处理的数值 * @param len 要保留的小数位数 * @returns 处理后的百分比值,保留指定小数位数 */ retainPercentDecimal(num: number, len: number): number; /** * 设置Cookie * @param key Cookie的键 * @param value Cookie的值 * @param ttl Cookie的生存时间(毫秒) */ setCookie(key: string, value: string, ttl: number): void; /** * 获取Cookie * @param key Cookie的键 * @returns Cookie的值,如果不存在则返回null */ getCookie(key: string): string | null; /** * 删除指定的Cookie * @param key 要删除的Cookie的键 */ removeCookie(key: string): void; /** * 清除所有Cookie */ clearCookie(): void; /** * 设置LocalStorage项 * @param key LocalStorage的键 * @param value LocalStorage的值 * @param ttl 可选的生存时间(毫秒) */ setLocalStorage(key: string, value: any, ttl?: number): void; /** * 获取LocalStorage项 * @param key LocalStorage的键 * @returns LocalStorage的值,如果不存在或已过期则返回null */ getLocalStorage(key: string): any; /** * 删除指定的LocalStorage项 * @param key 要删除的LocalStorage项的键 */ removeLocalStorage(key: string): void; /** * 清除所有LocalStorage项 */ clearLocalStorage(): void; /** * 设置SessionStorage项 * @param key SessionStorage的键 * @param value SessionStorage的值 */ setSessionStorage(key: string, value: any): void; /** * 获取SessionStorage项 * @param key SessionStorage的键 * @returns SessionStorage的值,如果不存在则返回null */ getSessionStorage(key: string): any; /** * 删除指定的SessionStorage项 * @param key 要删除的SessionStorage项的键 */ removeSessionStorage(key: string): void; /** * 清除所有SessionStorage项 */ clearSessionStorage(): void; /** * 格式化时间 * @param format 格式化模板,如 'yyyy-MM-dd HH:mm:ss',注意MM为月份、mm为分钟 * @param dateInput 可选。要格式化的日期,可以是Date对象、时间戳(number)或日期字符串,默认为当前时间 * @returns 格式化后的日期字符串 */ formatDate(format: string, dateInput?: Date | number | string): string; /** * 获取两日期间的所有日期 * @param startDate 开始日期 * @param endDate 结束日期 * @returns 日期数组 */ getRangeDate(startDate: Date, endDate: Date): Date[]; /** * 获取两日期间的天数 * @param startDate 开始日期 * @param endDate 结束日期 * @returns 天数 */ getDaysBetween(startDate: Date, endDate: Date): number; /** * 数组去重 * @param array 要去重的数组 * @param keyFn 可选的函数,用于从每个数组项中提取用于比较的键,例如:item => item.id * @returns T[] */ uniqueArray(array: T[], keyFn?: (item: T) => any): T[]; /** * 数组排序 * @param array 要排序的数组 * @param sort 指定排序顺序,类型:NcOrderType,'asc' 为升序,'desc' 为降序 * @param keyFn 可选。可以是对象的键名或一个函数,用于从数组项中提取排序值,例如:'age'或 item => item.name.length * @returns T[] */ sortArray(array: T[], sort: NcSortType, key?: keyof T | ((item: T) => any)): T[]; /** * 判断对象是否为空 * @param obj * @returns boolean */ isObjectEmpty(obj: object): boolean; private x_PI; private PI; private a; private ee; /** * 百度坐标系 (BD-09) 与火星坐标系 (GCJ-02) 的转换 * 即百度 转 谷歌、高德 * @param lng 经度 * @param lat 纬度 * @returns [lng, lat] */ bd09togcj02(lng: number, lat: number): number[]; /** * 火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换 * 即谷歌、高德 转 百度 * @param lng 经度 * @param lat 纬度 * @returns [lng, lat] */ gcj02tobd09(lng: number, lat: number): number[]; /** * WGS84转火星坐标系 (GCJ-02) * 即WGS84 转 谷歌、高德 * @param lng 经度 * @param lat 纬度 * @returns [lng, lat] */ wgs84togcj02(lng: number, lat: number): number[]; /** * 火星坐标系 (GCJ-02)转WGS84 * 即谷歌、高德 转 WGS84 * @param lng 经度 * @param lat 纬度 * @returns [lng, lat] */ gcj02towgs84(lng: number, lat: number): number[]; private transformlat; private transformlng; /** * 判断是否在国内,不在国内则不做偏移 */ private out_of_china; /** * 小数形式经纬度转度分秒形式(秒保留3位小数) * @param digital 109.86330555555556 * @returns degrees '109°51′47.9″' */ digitalToDegrees(digital: number): string; /** * 度分秒形式经纬度转小数形式 * @param degrees '109°51′47.900000000016″' * @returns digital 109.86330555555556 */ degreesToDigital(degrees: string): number; private debounceTasks; private throttleTasks; /** * 防抖(Debounce):适用于避免短时间内多次触发的场景,只有在事件停止触发后的一段时间才会执行。例如:搜索框输入,避免频繁的API请求。 * @param key 用于标识Subject的唯一键,不同防抖任务应使用不同的key,相同key的任务会共享首次设置的delay时间 * @param delay 防抖延迟时间(毫秒) * @param fn 要防抖的函数 */ debounce(key: string, delay: number, fn: Function): void; /** * 节流(Throttle):适用于限制事件在固定时间间隔内执行的场景,确保事件不会过于频繁地触发。例如:滚动页面时的事件处理,避免频繁的计算和渲染。 * @param key 用于标识Subject的唯一键,不同节流任务应使用不同的key,相同key的任务会共享首次设置的delay时间 * @param delay 节流延迟时间(毫秒) * @param fn 要节流的函数 */ throttle(key: string, delay: number, fn: Function): void; private fullLoadingElement; private fullLoadingKeyframesStyle; /** * 显示全屏加载中(全屏蒙版) * @param content 可选。提示内容,默认:'加载中,请稍后...' */ showFullLoading(content?: string): void; /** * 移除全屏加载中(全屏蒙版) */ removeFullLoading(): void; /** * 美化控制台打印(log info error warning success) */ console: prettyConsole; private prettyPrint; private timers; /** * 开始性能计时器 * @param timerName 计时器名称 */ startTimer(timerName: string): void; /** * 结束性能计时器并返回持续时间 * @param timerName 计时器名称 * @returns 计时器持续时间(毫秒) */ endTimer(timerName: string): number; /** * 深克隆 * @param obj 被克隆对象 * @returns 克隆对象 */ deepClone(obj: T, seen?: Map): T; /** * 获取文件后缀 * @param filename string 文件名 * @returns extension */ getFileExtension(filename: string): string; /** * jsonp封装 * @param obj \{url: '', success: ()=> {}} */ jsonpFunction(obj: any): void; /** * 是否客户端 */ isBrowser: boolean; /** * 生成随机颜色 * @returns HEX */ generateRandomColor(): string; /** * 生成UUID * @returns UUID */ generateUUID(): string; /** * 验证密码强度(必须包含大、小写字母、数字、特殊字符至少三类,长度8-16位) * @param password 待验证的密码 * @returns 密码是否符合要求 */ passwordValidate(password: string): boolean; /** * 复制到剪贴板 * @param text 待复制的内容 * @returns 复制是否成功 */ copyToClipboard(text: string): boolean; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } export {};