gant-core 0.1.50 → 0.1.52
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cli/index.js +1 -1
- package/lib/index.js +81 -36
- package/lib/index.js.map +1 -1
- package/package.json +1 -1
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/core/request/InterceptorManager.ts","../src/core/request/index.ts","../src/core/cache/index.ts","../src/core/event/index.ts","../src/core/store/codelist/services.ts","../src/core/store/codelist/index.ts","../src/core/store/parameter/services.ts","../src/core/store/parameter/index.ts","../src/core/store/websocket.ts","../src/core/store/progress.ts","../src/core/store/global/services.ts","../src/core/store/storage.ts","../src/core/store/user/services.ts","../src/core/store/user/index.ts","../src/core/store/menu/index.ts","../src/core/store/login/services/base.ts","../src/core/store/login/services/sso.ts","../src/core/store/login/services/authentication.ts","../src/core/store/login/services/validate.ts","../src/core/store/login/base.ts","../src/core/store/login/sso.ts","../src/core/store/login/validate.ts","../src/core/store/login/index.ts","../src/core/store/global/index.ts","../src/core/store/companydata/services.ts","../src/core/store/companydata/index.ts","../src/core/store/index.ts","../src/core/i18n/services.ts","../node_modules/i18next/dist/esm/i18next.js","../src/core/i18n/index.ts","../node_modules/@ctrl/tinycolor/dist/module/util.js","../node_modules/@ctrl/tinycolor/dist/module/conversion.js","../node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","../node_modules/@ctrl/tinycolor/dist/module/format-input.js","../node_modules/@ctrl/tinycolor/dist/module/index.js","../node_modules/@ctrl/tinycolor/dist/module/readability.js","../node_modules/@ctrl/tinycolor/dist/module/to-ms-filter.js","../node_modules/@ctrl/tinycolor/dist/module/from-ratio.js","../node_modules/@ctrl/tinycolor/dist/module/random.js","../node_modules/@ant-design/colors/es/generate.js","../node_modules/@ant-design/colors/es/index.js","../src/core/theme/algorithm/shared/genControlHeight.ts","../src/core/theme/algorithm/shared/genSizeMapToken.ts","../src/core/theme/seed.ts","../src/core/theme/utils.ts","../src/core/theme/algorithm/shared/genColorMapToken.ts","../src/core/theme/algorithm/shared/genRadius.ts","../src/core/theme/algorithm/shared/genCommonMapToken.ts","../src/core/theme/algorithm/default/colors.ts","../src/core/theme/algorithm/shared/genFontSizes.ts","../src/core/theme/algorithm/shared/genFontMapToken.ts","../src/core/theme/algorithm/default/index.ts","../src/core/theme/algorithm/dark/colors.ts","../src/core/theme/algorithm/dark/index.ts","../src/core/theme/algorithm/compact/genCompactSizeMapToken.ts","../src/core/theme/algorithm/compact/index.ts","../src/core/theme/algorithm/meeting/colors.ts","../src/core/theme/algorithm/meeting/index.ts","../src/core/theme/algorithm/util/getAlphaColor.ts","../src/core/theme/algorithm/util/alias.ts","../src/core/theme/alias/index.ts","../src/core/theme/interface/presetColors.ts","../src/core/theme/index.ts","../src/core/microservices/index.ts","../src/core/utils/locale.ts","../src/core/utils/route.ts","../src/main.ts"],"sourcesContent":["import { GantServerOptions } from './interface';\nimport { forEach } from 'lodash-es';\nclass InterceptorManager<V> {\n handlers: any[];\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(\n fulfilled?:\n | ((value: V, options?: GantServerOptions) => V | Promise<V>)\n | null,\n rejected?: ((error: any, options?: GantServerOptions) => any) | null,\n ) {\n this.handlers.push({\n fulfilled,\n rejected,\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id: number) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn: any) {\n forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","import axios from 'axios';\nimport type { AxiosResponse, AxiosInterceptorManager } from 'axios';\nimport {\n GantAxiosRequestConfig,\n GantServerOptions,\n InternalAxiosRequestConfig,\n} from './interface';\nimport InterceptorManager from './InterceptorManager';\nexport * from './interface';\n\nconst instance = axios.create({});\nconst responseInterceptor = new InterceptorManager<AxiosResponse>();\n\ntype RequestMethodType = <T = any>(\n url: string,\n config?: GantAxiosRequestConfig,\n options?: GantServerOptions,\n) => Promise<T>;\n\ntype Request = {\n <T = any>(\n url: string,\n config: GantAxiosRequestConfig,\n options?: GantServerOptions,\n ): Promise<T>;\n} & {\n post: RequestMethodType;\n get: RequestMethodType;\n put: RequestMethodType;\n delete: RequestMethodType;\n};\nconst defaultOptions = {\n showSuccess: false,\n successMessage: '',\n showWarning: false,\n showError: true,\n getParams: false,\n isStream: false,\n dangerParse: false,\n};\nconst requestInterceptor: RequestMethodType = function (\n url,\n config,\n optionsProp,\n) {\n const options = { ...defaultOptions, ...optionsProp };\n const { getParams, isStream } = options;\n const responseInterceptorChain: any[] = [];\n\n responseInterceptor.forEach(function pushResponseInterceptors(\n interceptor: any,\n ) {\n responseInterceptorChain.push(interceptor);\n });\n\n let promise = instance.request<any, AxiosResponse>({\n method: 'post',\n ...config,\n url,\n });\n let i = 0;\n while (i < responseInterceptorChain.length) {\n const fulfilled = responseInterceptorChain[i]?.fulfilled;\n const rejected = responseInterceptorChain[i]?.rejected;\n promise = promise\n .then((res: any) => {\n if (typeof fulfilled == 'function') return fulfilled(res, options);\n return res;\n })\n .catch((reject: any) => {\n if (typeof rejected == 'function') return rejected(reject, options);\n return Promise.reject(reject);\n });\n i++;\n }\n return promise.then((res: AxiosResponse) => {\n const { data: serveData } = res;\n return getParams ? res : isStream ? serveData : serveData.data;\n });\n};\n\nconst request = requestInterceptor as Request;\n\n//兼容写法\n(\n ['post', 'get', 'put', 'delete'] as ('post' | 'get' | 'put' | 'delete')[]\n).forEach((method) => {\n request[method] = function namedRequest(url, config, ...options) {\n return request(url, { ...config, method }, ...options);\n } as RequestMethodType;\n});\n\nexport default request;\nexport const requestInstance = {\n ...instance,\n interceptors: {\n request: instance.interceptors\n .request as AxiosInterceptorManager<InternalAxiosRequestConfig>,\n response: responseInterceptor,\n },\n};\n","// 缓存类\nclass CacheItem {\n constructor(namespace: string) {\n this.cache[namespace] = {};\n }\n private cache: { [key: string]: any } = {};\n get(key: string) {\n return this.cache[key];\n }\n set(key: string, value: any) {\n this.cache[key] = value;\n return this.cache[key];\n }\n}\n\nclass proxyCacheConstructor {\n private static instance: proxyCacheConstructor | null = null;\n private store: { [key: string]: CacheItem } = {};\n public static getInstance() {\n if (!this.instance) {\n this.instance = new proxyCacheConstructor();\n }\n return this.instance;\n }\n public namespace(namespace: string) {\n this.store[namespace] = new CacheItem(namespace);\n return this.store[namespace];\n }\n}\n\nconst expireCache = proxyCacheConstructor.getInstance();\n\nexport interface CacheD<T> {\n (key: string, value?: T): void | T;\n get: (key: string) => T;\n set: (key: string, value: T) => void;\n}\n\nexport default expireCache;\n","import mitt from 'mitt';\n\nconst emitter = mitt();\n\nexport default emitter;\n","import request from '@core/request';\n\nexport function findAllCodeListApi() {\n return request('/codeList/findAll', {\n data: {},\n serviceId: 'fwPlatform',\n });\n}\n","import { findAllCodeListApi } from './services';\nimport { groupBy, find, reduce } from 'lodash-es';\n\nexport interface CodeTypeGroup {\n codeTypeId: string;\n id: string;\n isGroup: boolean;\n name: string;\n type: string;\n typeName: string;\n value: string;\n}\n\nexport interface CodeTypeChild extends CodeTypeGroup {\n groupId: string;\n}\n\nexport type CodeTypeItem = CodeTypeChild | CodeTypeGroup;\nexport type CodeList = CodeTypeItem[];\nexport type CodeValue = Record<string, any>;\nexport type CodeMaps = { [name: string]: CodeList };\n\nclass CodeListStore {\n codeLists: CodeList = [];\n codeMaps: CodeMaps = {};\n async findAllCodeList() {\n const res = await findAllCodeListApi();\n const data = res || [];\n const dataMap = groupBy(data, 'type');\n this.codeLists = data;\n this.codeMaps = dataMap;\n }\n getCodeLocaleList = (codeType: string) => {\n return [...this.codeMaps?.[codeType]] || [];\n };\n getCodeLocaleName = (codeType: string, value: string) => {\n const codeList = this.getCodeLocaleList(codeType);\n function getName(value: string): string {\n const code = find(codeList, (item: any) => item.value === String(value));\n return code?.name || '';\n }\n if (Array.isArray(value)) {\n const text = reduce(\n value,\n (res = '', value = '') => res + ',' + getName(value),\n '',\n );\n return text.slice(1, text.length);\n } else if (String(value).indexOf(',') >= 0) {\n const str = value.replace('[', '').replace(']', '');\n const valueArr = str.split(',');\n const text = reduce(\n valueArr,\n (res = '', value = '') => res + ',' + getName(value),\n '',\n );\n return text.slice(1, text.length);\n } else {\n return getName(value);\n }\n };\n}\n\nconst codeListStoreInstance = new CodeListStore();\nexport const getCodeLocaleList = codeListStoreInstance.getCodeLocaleList;\nexport const getCodeLocaleName = codeListStoreInstance.getCodeLocaleName;\nexport default codeListStoreInstance;\n","import request from '@core/request';\n//获取系统参数\nexport function findSystemParameterApi() {\n return request(\n '/parameter/findAll',\n {\n serviceId: 'fwPlatform',\n data: {},\n },\n {\n showError: false,\n },\n );\n}\n","import { findSystemParameterApi } from './services';\nimport { keyBy, pick } from 'lodash-es';\n\nexport interface ParameterItem {\n catalog: string;\n description: string;\n id: string;\n name: string;\n optCounter: number;\n type: string;\n value: string;\n}\n\nexport type ParameterList = ParameterItem[];\nexport type ParameterMaps = { [name: string]: ParameterItem };\n\nclass ParameterStoreClass {\n parameterList: ParameterList = [];\n parameterMap: ParameterMaps = {};\n findAllParameters= async()=>{\n const res = await findSystemParameterApi();\n const data = res || [];\n const dataMap: any = keyBy(data, 'name');\n this.parameterList = data;\n this.parameterMap = dataMap;\n }\n /**\n * 获取系统参数,可以一次指定获取多个参数(传入数组)\n * @param name {string | string[]} 需要获取到的参数的key\n * @returns 返回根据key查询到一个参数对象\n */\n getSystemParameterByName =(name: string | string[])=> {\n if (typeof name === 'string') return this.parameterMap[name];\n return pick(this.parameterMap, name);\n }\n}\n\nconst parameterStoreInstance = new ParameterStoreClass();\n\nexport default parameterStoreInstance;\n","import { uniqueId, get, omit } from \"lodash-es\";\nimport emitter from \"@core/event\";\n//计算最终的WebSocketUrl\nconst pingMsg = \"ping\"; //客户端心跳信息\nconst pongMsg = \"pong\"; //服务端心跳信息\nconst reconnectTimeout = 10000;\nconst pingPongTimeout = 10000; //发送的心跳的间隔时间\nexport interface WEBSOCKETRECROD {\n id: string;\n recipientType: string;\n recipientCode: string;\n title?: string;\n status?: \"01\" | \"00\";\n senderName?: string;\n senderTime?: string;\n content: string;\n linkUri?: string;\n linkName?: string;\n progress?: number;\n}\nexport const WS_CONTENT_SUCCESS = \"WS_CONTENT_SUCCESS\";\nexport const WS_CONTENT_ERROR = \"WS_CONTENT_ERROR\";\nexport const WS_CONTENT_CLOSE = \"WS_CONTENT_CLOSE\";\nconst getWebSocketUrl = (userLoginName: string) => {\n const suffix = \"notification-ws\";\n const paramStr = `userLoginName=${userLoginName}`;\n const { host, protocol, port, hostname } = window.location;\n //是否是https\n const isHttps = protocol.includes(\"https\");\n //ws协议\n let wsProtocol = isHttps ? \"wss\" : \"ws\";\n //默认是host\n let wsHost: string = host;\n //如果不是是https并且有端口号时,ws端口就是web端口+1\n if (!isHttps && port) {\n let newhost = parseInt(port);\n wsHost = `${hostname}:${newhost}`;\n }\n const wsAddress = `${wsProtocol}://${wsHost}/${suffix}?${paramStr}`;\n return wsAddress;\n};\n\ntype GantWebSocketOptions = {\n disReconnect?: boolean;\n repeatLimit?: null | undefined | number;\n};\nexport class GantWebSocket {\n RECIPIENT_TYPE_ALL = \"all\"; // 所有用户均可收到的消息类型【公告等消息】\n RECIPIENT_TYPE_USER = \"user\"; // 某个用户可以收到【用户通知】\n RECIPIENT_TYPE_OBSERVER = \"obsvr\"; // 某个观察者可以收到【接口处理进度】\n RECIPIENT_TYPE_CONNECTION = \"conn\"; // 某个连接成功接收到【ws连接专用】\n //链接地址\n private webSocketUrl: string = \"\";\n // WebSocket\n private ws: WebSocket | null = null;\n //重链次数\n private repeat = 0;\n // 链接状态\n private connectLoading = false;\n\n //禁止重链\n private disReconnect = false;\n\n private pingTimeoutFn: null | NodeJS.Timeout = null;\n private pongTimeoutFn: null | NodeJS.Timeout = null;\n private reconnectFn: null | NodeJS.Timeout = null;\n\n //是否限制次数\n private repeatLimit: null | undefined | number = 2;\n\n //链接标识\n connectionId: string = \"\";\n private userLoginName: string = \"\";\n\n private eventStack: {\n [name: string]: {\n type: \"recipientType\" | \"message\";\n recipientType: string[];\n event: (data: WEBSOCKETRECROD) => void;\n };\n } = {};\n constructor() {}\n\n init = (userLoginName: string, options?: GantWebSocketOptions) => {\n this.userLoginName = userLoginName;\n this.webSocketUrl = getWebSocketUrl(userLoginName);\n this.disReconnect = get(options, \"disReconnect\", false);\n this.repeatLimit = get(options, \"repeatLimit\", 20);\n this.createWebSocket();\n };\n createWebSocket = () => {\n this.connectLoading = true;\n try {\n this.ws = new WebSocket(this.webSocketUrl);\n this.registerEvent();\n } catch (error) {\n this.ws = null;\n this.reconnect();\n } finally {\n this.connectLoading = false;\n }\n };\n //重新链接\n reconnect = () => {\n if (this.reconnectFn) clearTimeout(this.reconnectFn);\n if (!!this.repeatLimit && this.repeatLimit <= this.repeat) return;\n if (this.connectLoading || this.disReconnect || this.ws) return;\n this.repeat++;\n this.reconnectFn = setTimeout(() => {\n this.createWebSocket();\n }, reconnectTimeout);\n };\n //链接状态检查\n heartCheck = () => {\n this.repeat = 0;\n if (this.disReconnect) return;\n this.pingTimeoutFn = setTimeout(() => {\n const msg = `{\"userLoginName\":\"${this.userLoginName}\",\"connectionId\":\"${this.connectionId}\",\"content\":\"${pingMsg}\"}`;\n this.ws?.send(msg);\n this.pongTimeoutFn = setTimeout(() => {\n this.ws?.close();\n }, pingPongTimeout);\n }, pingPongTimeout);\n };\n\n heartReset = () => {\n if (this.pingTimeoutFn) {\n clearTimeout(this.pingTimeoutFn);\n this.pingTimeoutFn = null;\n }\n if (this.pongTimeoutFn) {\n clearTimeout(this.pongTimeoutFn);\n this.pongTimeoutFn = null;\n }\n };\n\n //主动断开连接\n disconnect = () => {\n this.heartReset();\n this.ws?.readyState == 1 && this.ws?.close();\n this.ws = null;\n };\n\n //注册事件\n registerEvent = () => {\n if (!this.ws) return;\n this.ws.onopen = () => {\n this.heartCheck();\n };\n this.ws.onmessage = (e) => {\n this.heartReset();\n this.heartCheck();\n const dataStr = e.data;\n try {\n //忽略心跳回复信息\n if (\n dataStr == pongMsg ||\n JSON.parse(dataStr).content == pingMsg ||\n JSON.parse(dataStr).content == pongMsg\n )\n return;\n const wsdata: WEBSOCKETRECROD = JSON.parse(dataStr);\n const data = {\n ...wsdata,\n senderTime: wsdata.senderTime,\n };\n emitter.emit(WS_CONTENT_SUCCESS, data);\n Object.keys(this.eventStack).map((eventId) => {\n const itemEevent = this.eventStack[eventId];\n const isIncludes = itemEevent.recipientType?.includes(\n data.recipientType\n );\n if (isIncludes) itemEevent?.event?.(data);\n });\n //存储服务端连接成功后的第一次响应返回的标识id\n if (data.recipientType == this.RECIPIENT_TYPE_CONNECTION) {\n this.connectionId = data.recipientCode;\n return;\n }\n } catch (err) {\n console.warn(\"received error!!!\", err);\n }\n };\n this.ws.onerror = () => {\n this.heartReset();\n this.reconnect();\n emitter.emit(WS_CONTENT_ERROR);\n };\n this.ws.onclose = () => {\n console.warn(\"webSocket close\");\n this.ws = null;\n this.heartReset();\n this.reconnect();\n emitter.emit(WS_CONTENT_CLOSE);\n };\n };\n\n addTypeListener = (\n type: string | string[],\n event: (data: WEBSOCKETRECROD) => void\n ) => {\n const eventType = Array.isArray(type) ? type : [type];\n const id = uniqueId();\n this.eventStack[id] = {\n recipientType: eventType,\n type: \"recipientType\",\n event,\n };\n return id;\n };\n removeListener = (id: string | string[]) => {\n this.eventStack = omit(this.eventStack, id);\n };\n}\nconst websocket = new GantWebSocket();\nexport default websocket;\n","import websocket, { WEBSOCKETRECROD } from './websocket';\nimport request from '@core/request';\nimport { uniqueId, omit, isEmpty } from 'lodash-es';\nimport emitter from '@core/event';\nconst { RECIPIENT_TYPE_OBSERVER } = websocket;\nexport interface ProgressOptions {\n type?: string;\n options?: any;\n data?: WEBSOCKETRECROD;\n}\nexport const PROGRESS_UPDEDATE = 'PROGRESS_UPDEDATE';\nexport class GantProgress {\n websocketId: string;\n private progressObserver: { [id: string]: ProgressOptions } = {};\n constructor() {\n this.websocketId = websocket.addTypeListener(\n RECIPIENT_TYPE_OBSERVER,\n this.progressEvent,\n );\n }\n progressEvent(data: WEBSOCKETRECROD) {\n Object.keys(this.progressObserver).map((id) => {\n const itemObserver = this.progressObserver[id];\n if (data?.recipientCode === itemObserver.type) {\n this.progressObserver[id] = {\n ...itemObserver,\n data: data,\n };\n }\n });\n this.updedataProgress();\n }\n\n updedataProgress() {\n const newProgress: ProgressOptions[] = [];\n Object.keys(this.progressObserver).map((id) => {\n const itemObserver = this.progressObserver[id];\n if (!isEmpty(itemObserver?.data)) newProgress.push(itemObserver);\n });\n emitter.emit(PROGRESS_UPDEDATE, newProgress);\n }\n\n addProgressListener(type: string, options?: any) {\n const id = uniqueId();\n this.progressObserver[id] = {\n type: type,\n options,\n };\n return id;\n }\n removeProgressListener(id: string) {\n this.progressObserver = omit(this.progressObserver, id);\n this.updedataProgress();\n }\n async requestProgress(\n url: string,\n options?: {\n params?: any;\n success?: (params: any) => void;\n error?: (error: any) => void;\n headers?: any;\n getParams?: boolean;\n },\n ) {\n if (!websocket.connectionId && !options?.headers?.connectionId)\n return console.error(`WebSocket no link established`);\n const observerId = new Date().getDate() + '';\n const progressId = this.addProgressListener(observerId);\n try {\n const response = await request.post(\n url,\n {\n headers: {\n observerId,\n connectionId: websocket.connectionId,\n ...options?.headers,\n },\n data: options?.params,\n },\n {\n getParams: options?.getParams,\n },\n );\n options?.success?.(response);\n } catch (error) {\n console.error('--->', error);\n options?.error?.(error);\n }\n this.removeProgressListener(progressId);\n }\n}\n\nconst Progress = new GantProgress();\nexport default Progress;\n","import request from '@core/request';\nexport async function findUserAggregateInfoApi() {\n return request('/security/findUserAggregateInfo', {\n method: 'POST',\n });\n}\n\n// 获取平台信息\nexport function getPlatformAggregateInfoApi() {\n return request(\n '/platformManage/getPlatformAggregateInfo',\n {\n method: 'POST',\n },\n { showError: false },\n );\n}\n","// 默认缓存期限为7天\nconst DEFAULT_CACHE_TIME = 60 * 60 * 24 * 7;\n\n/**\n * 创建本地缓存对象\n * @param {string=} prefixKey -\n * @param {Object} [storage=localStorage] - sessionStorage | localStorage\n */\nexport const createStorage = ({\n prefixKey = '',\n storage = localStorage,\n} = {}) => {\n /**\n * 本地缓存类\n * @class Storage\n */\n const StorageClass = class {\n storage = storage;\n prefixKey?: string = prefixKey;\n\n getKey(key: string) {\n return `${this.prefixKey}${key}`.toUpperCase();\n }\n\n /**\n * @description 设置缓存\n * @param {string} key 缓存键\n * @param {*} value 缓存值\n * @param expire\n */\n set(key: string, value: any, expire: number | null = DEFAULT_CACHE_TIME) {\n const stringData = JSON.stringify({\n value,\n expire: expire !== null ? new Date().getTime() + expire * 1000 : null,\n });\n this.storage.setItem(this.getKey(key), stringData);\n }\n\n /**\n * 读取缓存\n * @param {string} key 缓存键\n * @param {*=} def 默认值\n */\n get(key: string, def: any = null) {\n const item = this.storage.getItem(this.getKey(key));\n if (item) {\n try {\n const data = JSON.parse(item);\n const { value, expire } = data;\n // 在有效期内直接返回\n if (expire === null || expire >= Date.now()) {\n return value;\n }\n this.remove(key);\n } catch (e) {\n console.error(e);\n return def;\n }\n }\n return def;\n }\n\n /**\n * 从缓存删除某项\n * @param {string} key\n */\n remove(key: string) {\n this.storage.removeItem(this.getKey(key));\n }\n\n /**\n * 清空所有缓存\n * @memberOf Cache\n */\n clear(): void {\n this.storage.clear();\n }\n\n /**\n * 设置cookie\n * @param {string} name cookie 名称\n * @param {*} value cookie 值\n * @param {number=} expire 过期时间\n * 如果过期时间未设置,默认关闭浏览器自动删除\n * @example\n */\n setCookie(\n name: string,\n value: any,\n expire: number | null = DEFAULT_CACHE_TIME,\n ) {\n document.cookie = `${this.getKey(name)}=${value}; Max-Age=${expire}`;\n }\n\n /**\n * 根据名字获取cookie值\n * @param name\n */\n getCookie(name: string): string {\n const cookieArr = document.cookie.split('; ');\n for (let i = 0, length = cookieArr.length; i < length; i++) {\n const kv = cookieArr[i].split('=');\n if (kv[0] === this.getKey(name)) {\n return kv[1];\n }\n }\n return '';\n }\n\n /**\n * 根据名字删除指定的cookie\n * @param {string} key\n */\n removeCookie(key: string) {\n this.setCookie(key, 1, -1);\n }\n\n /**\n * 清空cookie,使所有cookie失效\n */\n clearCookie(): void {\n const keys = document.cookie.match(/[^ =;]+(?==)/g);\n if (keys) {\n for (let i = keys.length; i--; ) {\n document.cookie = keys[i] + '=0;expire=' + new Date(0).toUTCString();\n }\n }\n }\n };\n return new StorageClass();\n};\n\nexport const storage = createStorage();\n","import request, { GantServerOptions } from \"@core/request\";\n//公司定制化数据接口\nexport async function setUserDataApi(params: any, options?: GantServerOptions) {\n return request(\n \"/accountUserSelf/setUserData\",\n {\n data: params,\n serviceId: \"fwSecurity\",\n },\n options\n );\n}\n\n//获取公司定制化信息\nexport async function getUserDataApi(params: any) {\n return request(\"/accountUserSelf/getUserData\", {\n data: params,\n serviceId: \"fwSecurity\",\n });\n}\n//删除公司定制化信息\nexport async function delUserDataApi(params: any, options?: GantServerOptions) {\n return request(\n \"/accountUserSelf/delUserData\",\n {\n data: params,\n serviceId: \"fwSecurity\",\n },\n options\n );\n}\n\nexport async function getUserByIdApi(userId: string) {\n return request(\"/security/getUserById\", {\n method: \"POST\",\n data: { id: userId },\n serviceId: \"fwSecurity\",\n });\n}\n\nexport async function getUserByUserLoginNameApi(userLoginName: string) {\n return request(\"/security/getUserByUserLoginName\", {\n method: \"POST\",\n data: { userLoginName: userLoginName },\n serviceId: \"fwSecurity\",\n });\n}\n","import { findIndex, get, isEmpty, isPlainObject, omit } from \"lodash-es\";\nimport { storage } from \"../storage\";\nimport { UserIdentityType, User } from \"../type\";\nimport {\n getUserDataApi,\n setUserDataApi,\n delUserDataApi,\n getUserByIdApi,\n getUserByUserLoginNameApi,\n} from \"./services\";\n\nexport default class UserStore {\n userIdentity = {} as UserIdentityType; //用户身份信息\n currentUser = {} as User; //当前用户信息\n isSuperAdmin = false;\n roles: string[] = []; //用户所属角色\n functions: string[] = []; //用户授权功能点\n delegations: any[] = []; //用户代理信息\n userSetting: { [type: string]: any } = {};\n users: User[] = [];\n getUserIdentity(): UserIdentityType {\n if (!isEmpty(this.userIdentity)) return this.userIdentity;\n const localUserIdentity = storage?.get(\"userIdentity\");\n return localUserIdentity ? localUserIdentity : ({} as UserIdentityType);\n }\n setUserIdentity(identity: Partial<UserIdentityType>) {\n this.userIdentity = {\n ...this.userIdentity,\n ...identity,\n };\n storage.set(\"userIdentity\", this.userIdentity);\n return this.userIdentity;\n }\n clearUserIdentity() {\n storage.remove(\"userIdentity\");\n this.userIdentity = {} as UserIdentityType;\n }\n setUserAggregateInfo = ({\n delegations,\n roles,\n functions,\n isSuperAdmin,\n currentUser,\n }: any) => {\n this.delegations = delegations;\n this.roles = roles;\n this.functions = functions;\n this.isSuperAdmin = isSuperAdmin;\n this.currentUser = currentUser;\n };\n getUserSettingType = (dataType: string) => {\n const userId = this.currentUser.id;\n return `${userId}-${dataType}`;\n };\n getUserSetting = async (dataType: string) => {\n const key = this.getUserSettingType(dataType);\n const userId = this.currentUser.id;\n if (!!this.userSetting[key]) {\n return this.userSetting[key];\n }\n const res = await getUserDataApi({ dataType, dataId: userId+dataType });\n const bigData = res?.bigData ? JSON.parse(res.bigData) : undefined;\n this.userSetting[key] = bigData;\n return bigData;\n };\n updateUserSetting = async (dataType: string, data: any) => {\n const key = this.getUserSettingType(dataType);\n const userId = this.currentUser.id;\n await setUserDataApi({\n dataType,\n dataId: userId+dataType,\n bigData: JSON.stringify(data),\n });\n this.userSetting[key] = data;\n return data;\n };\n removeUserSetting = async (dataType: string) => {\n const key = this.getUserSettingType(dataType);\n const userId = this.currentUser.id;\n await delUserDataApi({ dataType, dataId: userId });\n delete this.userSetting[key];\n };\n getUserInfo = async (userId: string, userLoginName?: boolean) => {\n const index = findIndex(this.users, (itemUser) =>\n userLoginName ? itemUser.userLoginName === userId : itemUser.id === userId\n );\n if (index > -1) return get(this.users, `[${index}]`);\n const userInfo = userLoginName\n ? await getUserByUserLoginNameApi(userId)\n : await getUserByIdApi(userId);\n isPlainObject(userInfo) && this.users.push(userInfo);\n return userInfo;\n };\n}\n","import {\n isEmpty,\n groupBy,\n omit,\n cloneDeep,\n mapValues,\n uniqBy,\n remove,\n includes,\n} from 'lodash-es';\nimport { ServerMenuData, ServerMenuMap, ServerMenu } from '../type';\nimport emitter from '@core/event';\nimport { storage } from '../storage';\nexport const httpsRegexp =\n /^https?:\\/\\/(([a-zA-Z0-9_-])+(\\.)?)*(:\\d+)?(\\/((\\.)?(\\?)?=?&?[a-zA-Z0-9_-](\\?)?)*)*$/i;\nexport const httpRegexp =\n /^https?:\\/\\/(([a-zA-Z0-9_-])+(\\.)?)*(:\\d+)?(\\/((\\.)?(\\?)?=?&?[a-zA-Z0-9_-](\\?)?)*)*$/i;\n\nconst getItemPath = (path: string) => {\n if (httpsRegexp.test(path) || httpRegexp.test(path)) return path;\n return path?.indexOf('/') === 0 ? path : '/' + path;\n};\n\nexport const MENU_HISTORY_UPDATE = 'MENU_HISTORY_UPDATE';\nexport const MENU_BREADCRUMBS_UPDATE = 'MENU_BREADCRUMBS_UPDATE';\n\nexport default class MenuStore {\n menuDataMaps: ServerMenuMap = {};\n menuData: ServerMenuData = [];\n menuPathMaps: { [name: string]: string } = {};\n breadcrumbs: any[] = [];\n menuHistorys = [] as { pathname: string; name: string }[];\n userId?: string;\n constructor() {}\n addListenerMenuHistorys = (listener: (...args: any[]) => void) => {\n emitter.on(MENU_HISTORY_UPDATE, listener);\n };\n\n removeListenerMenuHistorys = (listener: (...args: any[]) => void) => {\n return emitter.off(MENU_HISTORY_UPDATE, listener);\n };\n addListenerBreadcrumbs = (listener: (...args: any[]) => void) => {\n return emitter.on(MENU_BREADCRUMBS_UPDATE, listener);\n };\n removeListenerBreadcrumbs = (listener: (...args: any[]) => void) => {\n return emitter.off(MENU_BREADCRUMBS_UPDATE, listener);\n };\n getTreeMenuData = (\n data: ServerMenuData,\n childrenGroup: {\n [name: string]: ServerMenuData;\n },\n parentPath?: string,\n ) => {\n return data\n .map((item) => {\n const { id, path, leaf } = item;\n const childrenData = childrenGroup[id];\n const newItem: ServerMenu = {\n ...item,\n key: id,\n path: parentPath ? parentPath + getItemPath(path) : getItemPath(path),\n };\n if (!!childrenData && !leaf) {\n const children = this.getTreeMenuData(\n childrenData,\n childrenGroup,\n newItem.path,\n );\n newItem.children = children;\n }\n this.menuDataMaps[newItem.path] = newItem;\n return newItem;\n })\n .sort((a, b) => a.seqNum - b.seqNum);\n };\n init = (menuData: ServerMenuData, userId: string) => {\n const cloneMenuData = cloneDeep(menuData);\n if (isEmpty(cloneMenuData)) return;\n const groupObj = groupBy(cloneMenuData, 'parentResourceId');\n const { ROOT, ...childrenGroup } = groupObj;\n this.menuData = this.getTreeMenuData(ROOT, childrenGroup);\n this.menuData = [...this.menuData];\n const menuPathMaps = mapValues(this.menuDataMaps, 'name');\n this.updateMenuMaps(menuPathMaps);\n this.initMenuHistorys(userId);\n return;\n };\n updateMenuMaps = (menuPathMaps: any) => {\n this.menuPathMaps = { ...this.menuPathMaps, ...menuPathMaps };\n const historys = this.menuHistorys;\n const newHistorys = historys.map((item) => {\n const itemName = this.menuPathMaps[item.pathname];\n return {\n pathname: item.pathname,\n name: itemName ? itemName : item.name,\n };\n });\n const newBreadcrumbs = this.breadcrumbs.map((item) => {\n const itemName = this.menuPathMaps[item.pathname];\n return {\n ...item,\n name: itemName ? itemName : item.name,\n };\n });\n this.updatehistorys(newHistorys);\n this.updateBreadcrumbs(newBreadcrumbs);\n };\n\n liseterHistorys = (pathname: string) => {\n let historys = this.menuHistorys;\n if (\n !this.menuDataMaps[pathname]?.leaf ||\n historys.some((item) => item.pathname === pathname)\n )\n return;\n historys = [{ pathname, name: this.menuPathMaps[pathname] }, ...historys];\n this.updatehistorys(historys);\n };\n\n updatehistorys = (historys: { pathname: string; name: string }[]) => {\n if (!this.userId) return;\n const newHistorys = historys.map((item) => {\n return {\n ...item,\n name: item.name ? item.name : this.menuPathMaps[item.pathname],\n };\n });\n this.menuHistorys = newHistorys;\n this.menuHistorys = uniqBy(this.menuHistorys, 'pathname');\n emitter.emit(MENU_HISTORY_UPDATE, this.menuHistorys);\n storage.set(`${this.userId}-menu-history`, this.menuHistorys);\n };\n initMenuHistorys = (userId: string) => {\n this.userId = userId;\n const historys = storage.get(`${userId}-menu-history`, this.menuHistorys);\n this.updatehistorys(historys);\n };\n liseterBreadcrumbs = (pathname: string) => {\n const array = pathname.split('/');\n let index = 1;\n const breadcrumbs: any[] = [];\n const current = { pathname, name: this.menuPathMaps[pathname] };\n while (index < array.length) {\n const itemPathname = array.slice(0, index).join('/');\n if (!!this.menuPathMaps[itemPathname])\n breadcrumbs.push({\n name: this.menuPathMaps[itemPathname],\n pathname: itemPathname,\n });\n index++;\n }\n breadcrumbs.push(current);\n this.updateBreadcrumbs(breadcrumbs);\n };\n updateBreadcrumbs = (breadcrumbs: any[]) => {\n this.breadcrumbs = breadcrumbs;\n this.breadcrumbs = uniqBy(this.breadcrumbs, 'pathname');\n emitter.emit(MENU_BREADCRUMBS_UPDATE, breadcrumbs);\n };\n}\n","import request from '@core/request';\nimport { AccountLoginParams } from './types';\n//获取登录方式\n// 获取登录方式\nexport function getLoginMethodApi() {\n return request('/authentication/getLoginMethod', {\n serviceId: 'fwSecurity',\n });\n}\n\n// 检查登录状态\nexport function checkTokenApi() {\n return request(\n '/authentication/checkToken',\n {\n serviceId: 'fwSecurity',\n },\n { showError: false },\n );\n}\n\nexport function accountLoginApi(params: AccountLoginParams) {\n return request('/authentication/login', {\n data: params,\n serviceId: 'fwSecurity',\n });\n}\n\n// 登出\nexport function accountLogoutApi() {\n return request('/authentication/logout', {\n data: {},\n serviceId: 'fwSecurity',\n });\n}\n\n// 进入代理\nexport function delegateLoginApi(params: any) {\n return request('/delegateAuth/delegateLogin', {\n data: params,\n serviceId: 'fwSecurity',\n });\n}\n\n// 退出代理\nexport function delegateLogoutApi(params: any) {\n return request('/delegateAuth/delegateLogout', {\n data: params,\n serviceId: 'fwSecurity',\n });\n}\n","import request from '@core/request';\n// 检测三方是否配置sso登录\nexport function checkAuthConfigApi() {\n return request('/ssoAuthConfig/checkOnlyRedirect', {}, { showError: false });\n}\n// 验证ssoToken并转换为甘棠Token, 写入到Cookie中\nexport function ssoLoginApi(params: any) {\n const { ssoTokenType, ssoToken } = params;\n return request(\n `/authentication/ssoLogin?tokenType=${ssoTokenType}&token=${ssoToken}`,\n {\n serviceId: 'fwSecurity',\n },\n );\n}\n","import request from '@core/request';\nimport { BeforeLoginCheckCodeParams } from './types';\n\n// 登录之后校验二次验证码\nexport function beforeLoginCheckCodeApi(payload: BeforeLoginCheckCodeParams) {\n return request('/authentication/beforeLoginCheckCode', {\n method: 'POST',\n data: {\n ...payload,\n },\n serviceId: 'fwSecurity',\n });\n}\n// 检测登录密码是否需要重置\nexport function checkPasswordApi() {\n return request(\n '/security/checkPasswordUpdateTime',\n { data: {} },\n { showError: false },\n );\n}\n\n// 提取token\nexport function extractTokenApi() {\n return request('/authentication/extractToken', { data: {} });\n}\n\n// 恢复token\nexport function refactorTokenApi(tokenValue: string) {\n return request('/authentication/refactorToken', {\n data: { value: tokenValue },\n });\n}\n","import request from '@core/request';\nimport { CaptchaCheckParams } from './types';\n\n//获取验证码\nexport function getValidateCodeApi(params = {}) {\n return request('/authentication/getValidateCode', {\n data: params,\n serviceId: 'fwSecurity',\n });\n}\n\n//获取滑块验证码\nexport function sliderVerificationCodeApi() {\n return request('/authentication/sliderVerificationCode', {\n method: 'POST',\n serviceId: 'fwSecurity',\n });\n}\n\n//校验滑块验证码\nexport function checkCaptchaApi(payload: CaptchaCheckParams) {\n return request('/authentication/checkCaptcha', {\n method: 'POST',\n data: {\n ...payload,\n },\n serviceId: 'fwSecurity',\n });\n}\n","import { LoginResultData } from \"../type\";\nimport {\n accountLoginApi,\n accountLogoutApi,\n BaseLoginParams,\n getLoginMethodApi,\n checkPasswordApi,\n extractTokenApi,\n refactorTokenApi,\n checkTokenApi,\n} from \"./services\";\nexport type LoginErrorType =\n | \"passwordError\"\n | \"validateError\"\n | \"passwordExpiration\"\n | \"SLIDER_VERIFICATION_LOGIN\";\n\nexport default class BaseLogin {\n loginPathname?: string;\n BASE: string = \"/\";\n get baseLoginPathname() {\n return `${this.BASE}${this.loginPathname?.replace(\"/\", \"\")}`;\n }\n tokenValue: string = \"\";\n\n get isLoginPathname() {\n const pathname = window.location.pathname;\n return this.baseLoginPathname == pathname;\n }\n\n getRealPath = (pathname: string) => {\n return `${this.BASE}${pathname.replace(\"/\", \"\")}`;\n };\n\n chekToken = async () => {\n const res = await checkTokenApi();\n if (!!res && this.isLoginPathname) window.location.replace(this.BASE);\n return res;\n };\n\n getLoginMethod = async () => {\n return getLoginMethodApi();\n };\n\n redirectBaseLogin = async () => {\n const pathname = window.location.pathname;\n const url = window.location.href;\n if (this.isLoginPathname) return true;\n const urlParams = new URLSearchParams();\n if (pathname !== this.BASE && pathname !== \"/\")\n urlParams.append(\"redirectUrl\", url);\n const searchString = decodeURIComponent(urlParams.toString());\n window.location.replace(\n `${this.baseLoginPathname}${\n !!searchString ? \"?\" + decodeURIComponent(urlParams.toString()) : \"\"\n }`\n );\n return false;\n };\n\n checkPassword = async () => {\n const res = await checkPasswordApi();\n if (res === \"noPass\") {\n // 临时清除token,待修改完密码后恢复\n this.tokenValue = await extractTokenApi();\n return false;\n }\n return true;\n };\n\n refactorToken = async () => {\n await refactorTokenApi(this.tokenValue);\n };\n\n login = async (params: BaseLoginParams) => {\n const res = await this.baseLogin(params);\n if (res.error) return res;\n return res;\n };\n\n private baseLogin = async (params: BaseLoginParams) => {\n const result: {\n error?: LoginErrorType;\n data?: LoginResultData;\n } = {\n error: undefined,\n data: undefined,\n };\n try {\n //其他登录方式未补充完\n const res = await accountLoginApi(params);\n const { userToken, traceId } = res;\n if (userToken) {\n result.data = res;\n const checked = await this.checkPassword();\n if (!checked) result.error = \"passwordExpiration\";\n return result;\n }\n //traceId 需要第三方验证 //验证码之后的由业务自行判断\n if (traceId) {\n result.data = res;\n result.error = \"SLIDER_VERIFICATION_LOGIN\";\n return result;\n }\n result.error = \"passwordError\";\n return result;\n } catch (err) {\n result.error = \"validateError\";\n return result;\n }\n };\n\n loginSuccess = () => {\n const params = new URLSearchParams(window.location.search);\n let url = params.get(\"redirectUrl\");\n if (url) window.location.href = url;\n else window.location.replace(this.BASE);\n };\n baseLoginOut = async () => {\n const params = new URLSearchParams();\n const url = window.location.href;\n if (window.location.pathname !== this.BASE)\n params.append(\"redirectUrl\", url);\n await accountLogoutApi();\n window.location.replace(`${this.baseLoginPathname}?${params.toString()}`);\n };\n}\n","import { SSOConfigType } from \"../type\";\nimport { checkAuthConfigApi } from \"./services\";\n\nconst defaultSsoConfig = {\n sso: false,\n ssoUrlSearchParams: [\"ticket\"],\n ssoCheckTokenUrl: \"\",\n ssoSuccessUrlkey: \"successUrl\",\n ssoLoginUrl: window.location.origin + \"/fwSecurity/ssoAuth/login.api\",\n ssologinOutUrl: window.location.origin + \"fwSecurity/ssoAuth/logout.api\",\n};\n\nexport default class SSOLogin {\n init(ssoConfig?: SSOConfigType) {\n this.ssoConfig = { ...this.ssoConfig, ...ssoConfig };\n }\n private ssoConfig: Required<SSOConfigType> = defaultSsoConfig;\n\n isSso = async (ssoCallback?: () => boolean) => {\n if (!this.ssoConfig.sso) return false;\n let sso = false;\n try {\n sso = await checkAuthConfigApi();\n } catch (error) {\n console.error(\"sso\", error);\n }\n if (ssoCallback) {\n sso = await ssoCallback();\n }\n return !!sso;\n };\n\n ssoLogin = () => {\n //在检测cookie中是否包含userIdentity信息\n const { ssoSuccessUrlkey, ssoUrlSearchParams, ssoLoginUrl } =\n this.ssoConfig;\n const params = new URLSearchParams(window.location.search.slice(1));\n const ssoParams = new URLSearchParams();\n const url = window.location.href;\n ssoParams.append(ssoSuccessUrlkey, encodeURIComponent(url));\n ssoUrlSearchParams.map((key) => {\n const value = params.get(key);\n if (value) ssoParams.append(key, value);\n });\n //待补充sso检测\n window.location.href = `${ssoLoginUrl}?${ssoParams.toString()}`;\n\n return false;\n };\n\n ssoLoginOut = () => {\n window.location.href = this.ssoConfig.ssologinOutUrl;\n };\n}\n","import {\n getValidateCodeApi,\n sliderVerificationCodeApi,\n checkCaptchaApi,\n GetValidateCodeParams,\n CaptchaCheckParams,\n} from './services';\nexport default class ValidateLogin {\n getValidateCodeImage = (params: GetValidateCodeParams) => {\n return getValidateCodeApi(params);\n };\n sliderVerificationCodeImage = () => {\n return sliderVerificationCodeApi();\n };\n checkCaptcha = (params: CaptchaCheckParams) => {\n return checkCaptchaApi(params);\n };\n}\n","import BaseLogin from \"./base\";\nimport SSOLogin from \"./sso\";\nimport ValidateLogin from \"./validate\";\nimport {\n BeforeLoginCheckCodeParams,\n beforeLoginCheckCodeApi,\n} from \"./services\";\nimport type { LOGIN_CONFIG } from \"../../../cli/interfaces\";\nexport default class LoginStore extends BaseLogin {\n ssoLogin: SSOLogin;\n validate: ValidateLogin;\n noCheckPermissionsPath?: string[] = [];\n ssoCallback?: () => boolean;\n constructor() {\n super();\n this.ssoLogin = new SSOLogin();\n this.validate = new ValidateLogin();\n }\n init = (\n loginConfig?: LOGIN_CONFIG,\n base = \"/\",\n ssoCallback?: () => boolean\n ) => {\n this.BASE = base;\n this.ssoCallback = ssoCallback;\n this.noCheckPermissionsPath = loginConfig?.noCheckPermissionsPath;\n this.ssoLogin.init(loginConfig);\n this.loginPathname = loginConfig?.loginPathname || \"/login\";\n };\n isNoLoginRequiredPage = () => {\n const pathname = window.location.pathname;\n const isNoLogin = this.noCheckPermissionsPath?.some((itemPath) => {\n return this.getRealPath(itemPath) == pathname;\n });\n return isNoLogin;\n };\n loginOut = async () => {\n const isSSO = await this.ssoLogin.isSso(this.ssoCallback);\n if (isSSO) this.ssoLogin.ssoLoginOut();\n await this.baseLoginOut();\n };\n loginAuthentication = async (params: BeforeLoginCheckCodeParams) => {\n await beforeLoginCheckCodeApi(params);\n this.loginSuccess();\n return;\n };\n redirectLogin = async () => {\n if (this.isNoLoginRequiredPage()) return true;\n const isSSO = await this.ssoLogin.isSso(this.ssoCallback);\n if (isSSO) {\n this.ssoLogin.ssoLogin();\n return false;\n }\n if (this.isLoginPathname) return true;\n return await this.redirectBaseLogin();\n };\n}\n","import {\n findUserAggregateInfoApi,\n getPlatformAggregateInfoApi,\n} from \"./services\";\nimport CodeListStoreInstance from \"../codelist\";\nimport ParameterStoreInstance from \"../parameter\";\nimport websocket from \"../websocket\";\nimport UserStore from \"../user\";\nimport MenuStore from \"../menu\";\nimport LoginStore from \"../login\";\nimport {\n UserAggregateInfo,\n Language,\n ProductInfo,\n ServerMenuData,\n GlobalOptions,\n} from \"../type\";\nimport { isEmpty } from \"lodash-es\";\nclass GlobalStoreClass {\n //无需登录验证的页面\n userStore: UserStore;\n menuStore: MenuStore;\n loginStore: LoginStore;\n isSuperAdmin: boolean = false;\n loginCallback?: () => void;\n constructor() {\n this.userStore = new UserStore();\n this.menuStore = new MenuStore();\n this.loginStore = new LoginStore();\n }\n platformLanguages: Language[] = [];\n productInfo: ProductInfo = {\n isProdEnv: false,\n productName: \"\",\n };\n get isPrd() {\n return this.productInfo?.isProdEnv;\n }\n get userInfo() {\n return this.userStore.currentUser;\n }\n\n get menuData() {\n return this.menuStore.menuData;\n }\n\n findPlantform = async () => {\n const res = await getPlatformAggregateInfoApi();\n this.platformLanguages = res.platformLanguages;\n this.productInfo = res.productInfo;\n };\n getAggregateInfo = async (\n menus?: ServerMenuData | ((res: UserAggregateInfo) => ServerMenuData)\n ) => {\n const res: UserAggregateInfo = await findUserAggregateInfoApi();\n\n const { user: currentUser, startMenus, isSuperAdmin, ...restInfo } = res;\n\n this.userStore.setUserAggregateInfo({ ...restInfo, currentUser });\n\n this.isSuperAdmin = isSuperAdmin;\n\n const localeMenus = typeof menus == \"function\" ? await menus(res) : menus;\n\n this.menuStore.init(\n isEmpty(localeMenus) ? startMenus : localeMenus,\n currentUser.id\n );\n };\n init = async (options: GlobalOptions) => {\n const { base = \"/\", menuData, loginSuccessCallback, ssoCallback,websocket:_startwebsocket=true } = options;\n this.loginStore.init(options?.loginConfig, base, ssoCallback);\n try {\n //检查token\n const res = await this.loginStore.chekToken();\n if (res) {\n //登录状态下获取聚合信息 保存header\n this.userStore.setUserIdentity(res);\n await this.getAggregateInfo(menuData);\n await CodeListStoreInstance.findAllCodeList();\n await ParameterStoreInstance.findAllParameters();\n //websocket注册\n if(_startwebsocket) websocket.init(this.userStore.currentUser.userLoginName);\n await loginSuccessCallback?.();\n return true;\n }\n //未登录情况下跳转到登录\n return await this.loginStore.redirectLogin();\n } catch (error) {\n console.error(error);\n }\n return false;\n };\n}\n\nconst globalStore = new GlobalStoreClass();\n\nexport default globalStore;\n","import request from '@core/request';\nexport type CompanyDataParams = {\n dataType: string;\n dataId: string;\n bigData?: string;\n};\n\n//公司定制化数据接口\nexport async function setCompanyDataApi(params: CompanyDataParams) {\n return request('/companyData/setCompanyData', {\n data: params,\n serviceId: 'fwSecurity',\n });\n}\n\n//获取公司定制化信息\nexport async function getCompanyDataApi(params: CompanyDataParams) {\n return request('/companyData/getCompanyData', {\n data: params,\n serviceId: 'fwSecurity',\n });\n}\n\n//删除公司定制化信息\nexport async function delCompanyDataApi(params: CompanyDataParams) {\n return request('/companyData/delCompanyData', {\n data: params,\n serviceId: 'fwSecurity',\n });\n}\n","const companyVersion = 'company-v1';\nimport {\n getCompanyDataApi,\n setCompanyDataApi,\n delCompanyDataApi,\n} from './services';\nclass CompanyData {\n data: any = {};\n getCompanyDataType = (dataType: string) => {\n return `${companyVersion}-${dataType}`;\n };\n getCompanyData = async (dataType: string) => {\n const key = this.getCompanyDataType(dataType);\n if (!!this.data[key]) {\n return this.data[key];\n }\n const res = await getCompanyDataApi({ dataType, dataId: companyVersion });\n const bigData = res?.bigData ? JSON.parse(res.bigData) : undefined;\n this.data[key] = bigData;\n };\n updateCompanyData = async (dataType: string, data: any) => {\n const key = this.getCompanyDataType(dataType);\n await setCompanyDataApi({\n dataType,\n dataId: companyVersion,\n bigData: JSON.stringify(data),\n });\n this.data[key] = data;\n return data;\n };\n removeCompanyData = async (dataType: string) => {\n const key = this.getCompanyDataType(dataType);\n await delCompanyDataApi({ dataType, dataId: companyVersion });\n delete this.data[key];\n };\n}\n\nexport default new CompanyData();\n","import CodeListStoreInstance from './codelist';\nimport ParameterStoreInstance from './parameter';\nimport websocket from './websocket';\nimport progress from './progress';\nimport globalStore from './global';\nimport companydataStore from './companydata';\nimport { storage as storageStore } from './storage';\nexport type * from './type';\n\nconst codeListStore = CodeListStoreInstance;\nconst parameterStore = ParameterStoreInstance;\nconst userStore = globalStore.userStore;\nconst loginStore = globalStore.loginStore;\nconst menuStore = globalStore.menuStore;\n\nexport {\n globalStore,\n codeListStore,\n parameterStore,\n websocket,\n progress,\n userStore,\n loginStore,\n menuStore,\n companydataStore,\n storageStore,\n};\nexport { MENU_HISTORY_UPDATE, MENU_BREADCRUMBS_UPDATE } from './menu';\nexport { PROGRESS_UPDEDATE } from './progress';\nexport {\n WS_CONTENT_CLOSE,\n WS_CONTENT_ERROR,\n WS_CONTENT_SUCCESS,\n} from './websocket';\n","import request from '@core/request';\n\nexport const getFWPluginContentByPluginKeyApi = (value: string) => {\n return request('/langPluginContent/getFWPluginContentByPluginKey', {\n method: 'post',\n data: { value: value },\n serviceId: 'fwPlatform',\n });\n};\n","const consoleLogger = {\n type: 'logger',\n log(args) {\n this.output('log', args);\n },\n warn(args) {\n this.output('warn', args);\n },\n error(args) {\n this.output('error', args);\n },\n output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\nclass Logger {\n constructor(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.init(concreteLogger, options);\n }\n init(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.forward(args, 'log', '', true);\n }\n warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return this.forward(args, 'warn', '', true);\n }\n error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return this.forward(args, 'error', '');\n }\n deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = `${prefix}${this.prefix} ${args[0]}`;\n return this.logger[lvl](args);\n }\n create(moduleName) {\n return new Logger(this.logger, {\n ...{\n prefix: `${this.prefix}:${moduleName}:`\n },\n ...this.options\n });\n }\n clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n}\nvar baseLogger = new Logger();\n\nclass EventEmitter {\n constructor() {\n this.observers = {};\n }\n on(events, listener) {\n events.split(' ').forEach(event => {\n if (!this.observers[event]) this.observers[event] = new Map();\n const numListeners = this.observers[event].get(listener) || 0;\n this.observers[event].set(listener, numListeners + 1);\n });\n return this;\n }\n off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event].delete(listener);\n }\n emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (this.observers[event]) {\n const cloned = Array.from(this.observers[event].entries());\n cloned.forEach(_ref => {\n let [observer, numTimesAdded] = _ref;\n for (let i = 0; i < numTimesAdded; i++) {\n observer(...args);\n }\n });\n }\n if (this.observers['*']) {\n const cloned = Array.from(this.observers['*'].entries());\n cloned.forEach(_ref2 => {\n let [observer, numTimesAdded] = _ref2;\n for (let i = 0; i < numTimesAdded; i++) {\n observer.apply(observer, [event, ...args]);\n }\n });\n }\n }\n}\n\nfunction defer() {\n let res;\n let rej;\n const promise = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(m => {\n if (s[m]) t[m] = s[m];\n });\n}\nconst lastOfPathSeparatorRegExp = /###/g;\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(lastOfPathSeparatorRegExp, '.') : key;\n }\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n const stack = typeof path !== 'string' ? path : path.split('.');\n let stackIndex = 0;\n while (stackIndex < stack.length - 1) {\n if (canNotTraverseDeeper()) return {};\n const key = cleanKey(stack[stackIndex]);\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n ++stackIndex;\n }\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack[stackIndex])\n };\n}\nfunction setPath(object, path, newValue) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n if (obj !== undefined || path.length === 1) {\n obj[k] = newValue;\n return;\n }\n let e = path[path.length - 1];\n let p = path.slice(0, path.length - 1);\n let last = getLastOfPath(object, p, Object);\n while (last.obj === undefined && p.length) {\n e = `${p[p.length - 1]}.${e}`;\n p = p.slice(0, p.length - 1);\n last = getLastOfPath(object, p, Object);\n if (last && last.obj && typeof last.obj[`${last.k}.${e}`] !== 'undefined') {\n last.obj = undefined;\n }\n }\n last.obj[`${last.k}.${e}`] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n const {\n obj,\n k\n } = getLastOfPath(object, path);\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n const value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (const prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, s => _entityMap[s]);\n }\n return data;\n}\nclass RegExpCache {\n constructor(capacity) {\n this.capacity = capacity;\n this.regExpMap = new Map();\n this.regExpQueue = [];\n }\n getRegExp(pattern) {\n const regExpFromCache = this.regExpMap.get(pattern);\n if (regExpFromCache !== undefined) {\n return regExpFromCache;\n }\n const regExpNew = new RegExp(pattern);\n if (this.regExpQueue.length === this.capacity) {\n this.regExpMap.delete(this.regExpQueue.shift());\n }\n this.regExpMap.set(pattern, regExpNew);\n this.regExpQueue.push(pattern);\n return regExpNew;\n }\n}\nconst chars = [' ', ',', '?', '!', ';'];\nconst looksLikeObjectPathRegExpCache = new RegExpCache(20);\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n const possibleChars = chars.filter(c => nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0);\n if (possibleChars.length === 0) return true;\n const r = looksLikeObjectPathRegExpCache.getRegExp(`(${possibleChars.map(c => c === '?' ? '\\\\?' : c).join('|')})`);\n let matched = !r.test(key);\n if (!matched) {\n const ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n}\nfunction deepFind(obj, path) {\n let keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n const tokens = path.split(keySeparator);\n let current = obj;\n for (let i = 0; i < tokens.length;) {\n if (!current || typeof current !== 'object') {\n return undefined;\n }\n let next;\n let nextPath = '';\n for (let j = i; j < tokens.length; ++j) {\n if (j !== i) {\n nextPath += keySeparator;\n }\n nextPath += tokens[j];\n next = current[nextPath];\n if (next !== undefined) {\n if (['string', 'number', 'boolean'].indexOf(typeof next) > -1 && j < tokens.length - 1) {\n continue;\n }\n i += j - i + 1;\n break;\n }\n }\n current = next;\n }\n return current;\n}\nfunction getCleanedCode(code) {\n if (code && code.indexOf('_') > 0) return code.replace('_', '-');\n return code;\n}\n\nclass ResourceStore extends EventEmitter {\n constructor(data) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n super();\n this.data = data || {};\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n if (this.options.ignoreJSONStructure === undefined) {\n this.options.ignoreJSONStructure = true;\n }\n }\n addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n removeNamespaces(ns) {\n const index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n getResource(lng, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n let path;\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n } else {\n path = [lng, ns];\n if (key) {\n if (Array.isArray(key)) {\n path.push(...key);\n } else if (typeof key === 'string' && keySeparator) {\n path.push(...key.split(keySeparator));\n } else {\n path.push(key);\n }\n }\n }\n const result = getPath(this.data, path);\n if (!result && !ns && !key && lng.indexOf('.') > -1) {\n lng = path[0];\n ns = path[1];\n key = path.slice(2).join('.');\n }\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n addResource(lng, ns, key, value) {\n let options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n addResources(lng, ns, resources) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n for (const m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n addResourceBundle(lng, ns, resources, deep, overwrite) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false,\n skipCopy: false\n };\n let path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n let pack = getPath(this.data, path) || {};\n if (!options.skipCopy) resources = JSON.parse(JSON.stringify(resources));\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = {\n ...pack,\n ...resources\n };\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return {\n ...{},\n ...this.getResource(lng, ns)\n };\n return this.getResource(lng, ns);\n }\n getDataByLanguage(lng) {\n return this.data[lng];\n }\n hasLanguageSomeTranslations(lng) {\n const data = this.getDataByLanguage(lng);\n const n = data && Object.keys(data) || [];\n return !!n.find(v => data[v] && Object.keys(data[v]).length > 0);\n }\n toJSON() {\n return this.data;\n }\n}\n\nvar postProcessor = {\n processors: {},\n addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle(processors, value, key, options, translator) {\n processors.forEach(processor => {\n if (this.processors[processor]) value = this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nconst checkedLoadedFor = {};\nclass Translator extends EventEmitter {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n super();\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, this);\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n this.logger = baseLogger.create('translator');\n }\n changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n exists(key) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n if (key === undefined || key === null) {\n return false;\n }\n const resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n extractFromKey(key, options) {\n let nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let namespaces = options.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n const m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key,\n namespaces\n };\n }\n const parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key,\n namespaces\n };\n }\n translate(keys, options, lastKey) {\n if (typeof options !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof options === 'object') options = {\n ...options\n };\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n const returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], options);\n const namespace = namespaces[namespaces.length - 1];\n const lng = options.lng || this.language;\n const appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n const nsSeparator = options.nsSeparator || this.options.nsSeparator;\n if (returnDetails) {\n return {\n res: `${namespace}${nsSeparator}${key}`,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return `${namespace}${nsSeparator}${key}`;\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, options);\n let res = resolved && resolved.res;\n const resUsedKey = resolved && resolved.usedKey || key;\n const resExactUsedKey = resolved && resolved.exactUsedKey || key;\n const resType = Object.prototype.toString.apply(res);\n const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n const joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n const r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, {\n ...options,\n ns: namespaces\n }) : `key '${key} (${this.language})' returned an object instead of string.`;\n if (returnDetails) {\n resolved.res = r;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n const resTypeIsArray = resType === '[object Array]';\n const copy = resTypeIsArray ? [] : {};\n const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (const m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n copy[m] = this.translate(deepKey, {\n ...options,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n let usedDefault = false;\n let usedKey = false;\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const hasDefaultValue = Translator.hasDefaultValue(options);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n const defaultValueSuffixOrdinalFallback = options.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, {\n ordinal: false\n }) : '';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const defaultValue = needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] || options[`defaultValue${defaultValueSuffix}`] || options[`defaultValue${defaultValueSuffixOrdinalFallback}`] || options.defaultValue;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n const missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n const resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n const updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n const fk = this.resolve(key, {\n ...options,\n keySeparator: false\n });\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n let lngs = [];\n const fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (let i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n const send = (l, k, specificDefaultValue) => {\n const defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (this.options.missingKeyHandler) {\n this.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (this.backendConnector && this.backendConnector.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n this.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(language => {\n const suffixes = this.pluralResolver.getSuffixes(language, options);\n if (needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] && suffixes.indexOf(`${this.options.pluralSeparator}zero`) < 0) {\n suffixes.push(`${this.options.pluralSeparator}zero`);\n }\n suffixes.forEach(suffix => {\n send([language], key + suffix, options[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = `${namespace}:${key}`;\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}:${key}` : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n if (returnDetails) {\n resolved.res = res;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, options, resolved, lastKey) {\n var _this = this;\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...options\n }, options.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init({\n ...options,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...options.interpolation\n }\n }\n });\n const skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n let nestBef;\n if (skipOnVariables) {\n const nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n let data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = resolved.usedLng;\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`);\n return null;\n }\n return _this.translate(...args, key);\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n const postProcess = options.postProcess || this.options.postProcess;\n const postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n i18nResolved: {\n ...resolved,\n usedParams: this.getUsedParamsDetails(options)\n },\n ...options\n } : options, this);\n }\n return res;\n }\n resolve(keys) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let found;\n let usedKey;\n let exactUsedKey;\n let usedLng;\n let usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(k => {\n if (this.isValidLookup(found)) return;\n const extracted = this.extractFromKey(k, options);\n const key = extracted.key;\n usedKey = key;\n let namespaces = extracted.namespaces;\n if (this.options.fallbackNS) namespaces = namespaces.concat(this.options.fallbackNS);\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n const codes = options.lngs ? options.lngs : this.languageUtils.toResolveHierarchy(options.lng || this.language, options.fallbackLng);\n namespaces.forEach(ns => {\n if (this.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils && this.utils.hasLoadedNamespace && !this.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[`${codes[0]}-${ns}`] = true;\n this.logger.warn(`key \"${usedKey}\" for languages \"${codes.join(', ')}\" won't get resolved as namespace \"${usedNS}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(code => {\n if (this.isValidLookup(found)) return;\n usedLng = code;\n const finalKeys = [key];\n if (this.i18nFormat && this.i18nFormat.addLookupKeys) {\n this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, options.count, options);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator}${options.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n let possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!this.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = this.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey,\n exactUsedKey,\n usedLng,\n usedNS\n };\n }\n isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n getResource(code, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n getUsedParamsDetails() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const optionsKeys = ['defaultValue', 'ordinal', 'context', 'replace', 'lng', 'lngs', 'fallbackLng', 'ns', 'keySeparator', 'nsSeparator', 'returnObjects', 'returnDetails', 'joinArrays', 'postProcess', 'interpolation'];\n const useOptionsReplaceForData = options.replace && typeof options.replace !== 'string';\n let data = useOptionsReplaceForData ? options.replace : options;\n if (useOptionsReplaceForData && typeof options.count !== 'undefined') {\n data.count = options.count;\n }\n if (this.options.interpolation.defaultVariables) {\n data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n }\n if (!useOptionsReplaceForData) {\n data = {\n ...data\n };\n for (const key of optionsKeys) {\n delete data[key];\n }\n }\n return data;\n }\n static hasDefaultValue(options) {\n const prefix = 'defaultValue';\n for (const option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n}\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nclass LanguageUtil {\n constructor(options) {\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return null;\n const p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return code;\n const p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n const specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n let p = code.split('-');\n if (this.options.lowerCaseLng) {\n p = p.map(part => part.toLowerCase());\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n return p.join('-');\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n getBestMatchFromCodes(codes) {\n if (!codes) return null;\n let found;\n codes.forEach(code => {\n if (found) return;\n const cleanedLng = this.formatLanguageCode(code);\n if (!this.options.supportedLngs || this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(code => {\n if (found) return;\n const lngOnly = this.getLanguagePartFromCode(code);\n if (this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = this.options.supportedLngs.find(supportedLng => {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf('-') > 0 && lngOnly.indexOf('-') < 0 && supportedLng.substring(0, supportedLng.indexOf('-')) === lngOnly) return supportedLng;\n if (supportedLng.indexOf(lngOnly) === 0 && lngOnly.length > 1) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks.default || [];\n let found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks.default;\n return found || [];\n }\n toResolveHierarchy(code, fallbackCode) {\n const fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n const codes = [];\n const addCode = c => {\n if (!c) return;\n if (this.isSupportedCode(c)) {\n codes.push(c);\n } else {\n this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`);\n }\n };\n if (typeof code === 'string' && (code.indexOf('-') > -1 || code.indexOf('_') > -1)) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(fc => {\n if (codes.indexOf(fc) < 0) addCode(this.formatLanguageCode(fc));\n });\n return codes;\n }\n}\n\nlet sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nlet _rulesPluralsTypes = {\n 1: function (n) {\n return Number(n > 1);\n },\n 2: function (n) {\n return Number(n != 1);\n },\n 3: function (n) {\n return 0;\n },\n 4: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function (n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function (n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function (n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function (n) {\n return Number(n >= 2);\n },\n 10: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function (n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function (n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function (n) {\n return Number(n !== 0);\n },\n 14: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function (n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function (n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function (n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function (n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function (n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nconst nonIntlVersions = ['v1', 'v2', 'v3'];\nconst intlVersions = ['v4'];\nconst suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nfunction createRules() {\n const rules = {};\n sets.forEach(set => {\n set.lngs.forEach(l => {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\nclass PluralResolver {\n constructor(languageUtils) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n if ((!this.options.compatibilityJSON || intlVersions.includes(this.options.compatibilityJSON)) && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n this.rules = createRules();\n }\n addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n getRule(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(getCleanedCode(code === 'dev' ? 'en' : code), {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch (err) {\n return;\n }\n }\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n needsPlural(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n return rule && rule.numbers.length > 1;\n }\n getPluralFormsOfKey(code, key) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (!rule) {\n return [];\n }\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort((pluralCategory1, pluralCategory2) => suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2]).map(pluralCategory => `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${pluralCategory}`);\n }\n return rule.numbers.map(number => this.getSuffix(code, number, options));\n }\n getSuffix(code, count) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const rule = this.getRule(code, options);\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n }\n return this.getSuffixRetroCompatible(rule, count);\n }\n this.logger.warn(`no plural rule found for: ${code}`);\n return '';\n }\n getSuffixRetroCompatible(rule, count) {\n const idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n let suffix = rule.numbers[idx];\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n const returnSuffix = () => this.options.prepend && suffix.toString() ? this.options.prepend + suffix.toString() : suffix.toString();\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return `_plural_${suffix.toString()}`;\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n shouldUseIntlApi() {\n return !nonIntlVersions.includes(this.options.compatibilityJSON);\n }\n}\n\nfunction deepFindWithDefaults(data, defaultData, key) {\n let keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';\n let ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n let path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && typeof key === 'string') {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n}\nclass Interpolator {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options.interpolation && options.interpolation.format || (value => value);\n this.init(options);\n }\n init() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n const iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n reset() {\n if (this.options) this.init(this.options);\n }\n resetRegExp() {\n const getOrResetRegExp = (existingRegExp, pattern) => {\n if (existingRegExp && existingRegExp.source === pattern) {\n existingRegExp.lastIndex = 0;\n return existingRegExp;\n }\n return new RegExp(pattern, 'g');\n };\n this.regexp = getOrResetRegExp(this.regexp, `${this.prefix}(.+?)${this.suffix}`);\n this.regexpUnescape = getOrResetRegExp(this.regexpUnescape, `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`);\n this.nestingRegexp = getOrResetRegExp(this.nestingRegexp, `${this.nestingPrefix}(.+?)${this.nestingSuffix}`);\n }\n interpolate(str, data, lng, options) {\n let match;\n let value;\n let replaces;\n const defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n const handleFormat = key => {\n if (key.indexOf(this.formatSeparator) < 0) {\n const path = deepFindWithDefaults(data, defaultData, key, this.options.keySeparator, this.options.ignoreJSONStructure);\n return this.alwaysFormat ? this.format(path, undefined, lng, {\n ...options,\n ...data,\n interpolationkey: key\n }) : path;\n }\n const p = key.split(this.formatSeparator);\n const k = p.shift().trim();\n const f = p.join(this.formatSeparator).trim();\n return this.format(deepFindWithDefaults(data, defaultData, k, this.options.keySeparator, this.options.ignoreJSONStructure), f, lng, {\n ...options,\n ...data,\n interpolationkey: k\n });\n };\n this.resetRegExp();\n const missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n const skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n const todos = [{\n regex: this.regexpUnescape,\n safeValue: val => regexSafe(val)\n }, {\n regex: this.regexp,\n safeValue: val => this.escapeValue ? regexSafe(this.escape(val)) : regexSafe(val)\n }];\n todos.forEach(todo => {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n const matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n const temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`);\n value = '';\n }\n } else if (typeof value !== 'string' && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n const safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n nest(str, fc) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let match;\n let value;\n let clonedOptions;\n function handleHasOptions(key, inheritedOptions) {\n const sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n const c = key.split(new RegExp(`${sep}[ ]*{`));\n let optionsString = `{${c[1]}`;\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n const matchedSingleQuotes = optionsString.match(/'/g);\n const matchedDoubleQuotes = optionsString.match(/\"/g);\n if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = {\n ...inheritedOptions,\n ...clonedOptions\n };\n } catch (e) {\n this.logger.warn(`failed parsing options string in nesting for key ${key}`, e);\n return `${key}${sep}${optionsString}`;\n }\n if (clonedOptions.defaultValue && clonedOptions.defaultValue.indexOf(this.prefix) > -1) delete clonedOptions.defaultValue;\n return key;\n }\n while (match = this.nestingRegexp.exec(str)) {\n let formatters = [];\n clonedOptions = {\n ...options\n };\n clonedOptions = clonedOptions.replace && typeof clonedOptions.replace !== 'string' ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n let doReduce = false;\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n const r = match[1].split(this.formatSeparator).map(elem => elem.trim());\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n if (!value) {\n this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);\n value = '';\n }\n if (doReduce) {\n value = formatters.reduce((v, f) => this.format(v, f, options.lng, {\n ...options,\n interpolationkey: match[1].trim()\n }), value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n}\n\nfunction parseFormatStr(formatStr) {\n let formatName = formatStr.toLowerCase().trim();\n const formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n const p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n const optStr = p[1].substring(0, p[1].length - 1);\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n const opts = optStr.split(';');\n opts.forEach(opt => {\n if (!opt) return;\n const [key, ...rest] = opt.split(':');\n const val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;\n if (val === 'false') formatOptions[key.trim()] = false;\n if (val === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);\n });\n }\n }\n return {\n formatName,\n formatOptions\n };\n}\nfunction createCachedFormatter(fn) {\n const cache = {};\n return function invokeFormatter(val, lng, options) {\n const key = lng + JSON.stringify(options);\n let formatter = cache[key];\n if (!formatter) {\n formatter = fn(getCleanedCode(lng), options);\n cache[key] = formatter;\n }\n return formatter(val);\n };\n}\nclass Formatter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n this.init(options);\n }\n init(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n const iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n format(value, format, lng) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const formats = format.split(this.formatSeparator);\n const result = formats.reduce((mem, f) => {\n const {\n formatName,\n formatOptions\n } = parseFormatStr(f);\n if (this.formats[formatName]) {\n let formatted = mem;\n try {\n const valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n const l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = this.formats[formatName](mem, l, {\n ...formatOptions,\n ...options,\n ...valOptions\n });\n } catch (error) {\n this.logger.warn(error);\n }\n return formatted;\n } else {\n this.logger.warn(`there was no format function for ${formatName}`);\n }\n return mem;\n }, value);\n return result;\n }\n}\n\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\nclass Connector extends EventEmitter {\n constructor(backend, store, services) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n super();\n this.backend = backend;\n this.store = store;\n this.services = services;\n this.languageUtils = services.languageUtils;\n this.options = options;\n this.logger = baseLogger.create('backendConnector');\n this.waitingReads = [];\n this.maxParallelReads = options.maxParallelReads || 10;\n this.readingCalls = 0;\n this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n this.state = {};\n this.queue = [];\n if (this.backend && this.backend.init) {\n this.backend.init(services, options.backend, options);\n }\n }\n queueLoad(languages, namespaces, options, callback) {\n const toLoad = {};\n const pending = {};\n const toLoadLanguages = {};\n const toLoadNamespaces = {};\n languages.forEach(lng => {\n let hasAllNamespaces = true;\n namespaces.forEach(ns => {\n const name = `${lng}|${ns}`;\n if (!options.reload && this.store.hasResourceBundle(lng, ns)) {\n this.state[name] = 2;\n } else if (this.state[name] < 0) ; else if (this.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n this.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n loaded(name, err, data) {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (data) {\n this.store.addResourceBundle(lng, ns, data, undefined, undefined, {\n skipCopy: true\n });\n }\n this.state[name] = err ? -1 : 2;\n const loaded = {};\n this.queue.forEach(q => {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(l => {\n if (!loaded[l]) loaded[l] = {};\n const loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(n => {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(q => !q.done);\n }\n read(lng, ns, fcName) {\n let tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n let wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n let callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng,\n ns,\n fcName,\n tried,\n wait,\n callback\n });\n return;\n }\n this.readingCalls++;\n const resolver = (err, data) => {\n this.readingCalls--;\n if (this.waitingReads.length > 0) {\n const next = this.waitingReads.shift();\n this.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < this.maxRetries) {\n setTimeout(() => {\n this.read.call(this, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n const fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n const r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(data => resolver(null, data)).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n prepareLoading(languages, namespaces) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let callback = arguments.length > 3 ? arguments[3] : undefined;\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n const toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(name => {\n this.loadOne(name);\n });\n }\n load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n loadOne(name) {\n let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, (err, data) => {\n if (err) this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`, err);\n if (!err && data) this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`, data);\n this.loaded(name, err, data);\n });\n }\n saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n let clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : () => {};\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(`did not save key \"${key}\" as the namespace \"${namespace}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend && this.backend.create) {\n const opts = {\n ...options,\n isUpdate\n };\n const fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n let r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(data => clb(null, data)).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n}\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: false,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n let ret = {};\n if (typeof args[1] === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n const options = args[3] || args[2];\n Object.keys(options).forEach(key => {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: value => value,\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n return options;\n}\n\nfunction noop() {}\nfunction bindMemberFunctions(inst) {\n const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(mem => {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\nclass I18n extends EventEmitter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n super();\n this.options = transformOptions(options);\n this.services = {};\n this.logger = baseLogger;\n this.modules = {\n external: []\n };\n bindMemberFunctions(this);\n if (callback && !this.isInitialized && !options.isClone) {\n if (!this.options.initImmediate) {\n this.init(options, callback);\n return this;\n }\n setTimeout(() => {\n this.init(options, callback);\n }, 0);\n }\n }\n init() {\n var _this = this;\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n this.isInitializing = true;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n const defOpts = get();\n this.options = {\n ...defOpts,\n ...this.options,\n ...transformOptions(options)\n };\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation\n };\n }\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n let formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n const lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n const s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n _this.emit(event, ...args);\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n _this.emit(event, ...args);\n });\n this.modules.external.forEach(m => {\n if (m.init) m.init(this);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n const storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(fcName => {\n this[fcName] = function () {\n return _this.store[fcName](...arguments);\n };\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = function () {\n _this.store[fcName](...arguments);\n return _this;\n };\n });\n const deferred = defer();\n const load = () => {\n const finish = (err, t) => {\n this.isInitializing = false;\n if (this.isInitialized && !this.initializedStoreOnce) this.logger.warn('init: i18next is already initialized. You should call init just once!');\n this.isInitialized = true;\n if (!this.options.isClone) this.logger.log('initialized', this.options);\n this.emit('initialized', this.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (this.languages && this.options.compatibilityAPI !== 'v1' && !this.isInitialized) return finish(null, this.t.bind(this));\n this.changeLanguage(this.options.lng, finish);\n };\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n loadResources(language) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n let usedCallback = callback;\n const usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode' && (!this.options.preload || this.options.preload.length === 0)) return usedCallback();\n const toLoad = [];\n const append = lng => {\n if (!lng) return;\n if (lng === 'cimode') return;\n const lngs = this.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(l => {\n if (l === 'cimode') return;\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n const fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(l => append(l));\n } else {\n append(usedLng);\n }\n if (this.options.preload) {\n this.options.preload.forEach(l => append(l));\n }\n this.services.backendConnector.load(toLoad, this.options.ns, e => {\n if (!e && !this.resolvedLanguage && this.language) this.setResolvedLanguage(this.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n reloadResources(lngs, ns, callback) {\n const deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, err => {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (let li = 0; li < this.languages.length; li++) {\n const lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n changeLanguage(lng, callback) {\n var _this2 = this;\n this.isLanguageChangingTo = lng;\n const deferred = defer();\n this.emit('languageChanging', lng);\n const setLngProps = l => {\n this.language = l;\n this.languages = this.services.languageUtils.toResolveHierarchy(l);\n this.resolvedLanguage = undefined;\n this.setResolvedLanguage(l);\n };\n const done = (err, l) => {\n if (l) {\n setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve(function () {\n return _this2.t(...arguments);\n });\n if (callback) callback(err, function () {\n return _this2.t(...arguments);\n });\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const l = typeof lngs === 'string' ? lngs : this.services.languageUtils.getBestMatchFromCodes(lngs);\n if (l) {\n if (!this.language) {\n setLngProps(l);\n }\n if (!this.translator.language) this.translator.changeLanguage(l);\n if (this.services.languageDetector && this.services.languageDetector.cacheUserLanguage) this.services.languageDetector.cacheUserLanguage(l);\n }\n this.loadResources(l, err => {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n getFixedT(lng, ns, keyPrefix) {\n var _this3 = this;\n const fixedT = function (key, opts) {\n let options;\n if (typeof opts !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n options = _this3.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = {\n ...opts\n };\n }\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n const keySeparator = _this3.options.keySeparator || '.';\n let resultKey;\n if (options.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => `${options.keyPrefix}${keySeparator}${k}`);\n } else {\n resultKey = options.keyPrefix ? `${options.keyPrefix}${keySeparator}${key}` : key;\n }\n return _this3.t(resultKey, options);\n };\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n t() {\n return this.translator && this.translator.translate(...arguments);\n }\n exists() {\n return this.translator && this.translator.exists(...arguments);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n const lng = options.lng || this.resolvedLanguage || this.languages[0];\n const fallbackLng = this.options ? this.options.fallbackLng : false;\n const lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = this.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 2;\n };\n if (options.precheck) {\n const preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n loadNamespaces(ns, callback) {\n const deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(n => {\n if (this.options.ns.indexOf(n) < 0) this.options.ns.push(n);\n });\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n loadLanguages(lngs, callback) {\n const deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n const preloaded = this.options.preload || [];\n const newLngs = lngs.filter(lng => preloaded.indexOf(lng) < 0);\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n const rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n const languageUtils = this.services && this.services.languageUtils || new LanguageUtil(get());\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n cloneInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n const forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) delete options.forkResourceStore;\n const mergedOptions = {\n ...this.options,\n ...options,\n ...{\n isClone: true\n }\n };\n const clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n const membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(m => {\n clone[m] = this[m];\n });\n clone.services = {\n ...this.services\n };\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n if (forkResourceStore) {\n clone.store = new ResourceStore(this.store.data, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n clone.translator = new Translator(clone.services, mergedOptions);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n clone.emit(event, ...args);\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n}\nconst instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nconst createInstance = instance.createInstance;\nconst dir = instance.dir;\nconst init = instance.init;\nconst loadResources = instance.loadResources;\nconst reloadResources = instance.reloadResources;\nconst use = instance.use;\nconst changeLanguage = instance.changeLanguage;\nconst getFixedT = instance.getFixedT;\nconst t = instance.t;\nconst exists = instance.exists;\nconst setDefaultNamespace = instance.setDefaultNamespace;\nconst hasLoadedNamespace = instance.hasLoadedNamespace;\nconst loadNamespaces = instance.loadNamespaces;\nconst loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","import { get, find } from 'lodash-es';\nimport { getFWPluginContentByPluginKeyApi } from './services';\nimport i18nNext, { InitOptions, Callback } from 'i18next';\nlet languageMaps: any = {};\nexport const initDynamicLang = async (\n language: string,\n options?: {\n i18n?: boolean;\n i18nInitOptions?: InitOptions;\n i18nCallback?: Callback;\n },\n) => {\n const res = await getFWPluginContentByPluginKeyApi(language);\n languageMaps = res;\n let tr = defaultTr;\n if (options?.i18n) {\n await i18nNext.init(options?.i18nInitOptions || {}, options?.i18nCallback);\n tr = (key: string, agrs?: string[], type: 'fe' | 'workflow' = 'fe') => {\n const obj: any = {};\n agrs?.map((value, index) => {\n obj[`${index}`] = value;\n });\n return i18nNext.t(key, obj) as string;\n };\n }\n (window as any)['tr'] = tr;\n return options?.i18n ? i18nNext : null;\n};\n\nconst defaultTr = (\n key: string,\n agrs?: string[],\n type: 'fe' | 'workflow' = 'fe',\n) => {\n let value = get(languageMaps, `${type}.${key}`, key);\n if (!value) value = key;\n\n function replaceVariablesInString(str: string, arr?: string[]) {\n return str.replace(/\\${(\\d+)}/g, function (match, index) {\n const arrIndex = parseInt(index);\n return arr?.[arrIndex] !== undefined ? arr[arrIndex] : match;\n });\n }\n return replaceVariablesInString(value, agrs);\n};\n\nexport const tr = (\n key: string,\n agrs?: string[],\n type: 'fe' | 'workflow' = 'fe',\n) => {\n return (window as any)['tr'](key, agrs, type);\n};\n","/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nexport function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\n * @hidden\n */\nexport function isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nexport function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nexport function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n) {\n if (n <= 1) {\n return \"\".concat(Number(n) * 100, \"%\");\n }\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\n","import { bound01, pad2 } from './util.js';\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * <http://www.w3.org/TR/css3-color/>\n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nexport function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, l: l };\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nexport function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nexport function rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n pad2(convertDecimalToHex(a)),\n ];\n // Return a 4 character hex if possible\n if (allow4Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1)) &&\n hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nexport function rgbaToArgbHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n return hex.join('');\n}\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\n","// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexport var names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\nimport { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb, } from './conversion.js';\nimport { names } from './css-color-names.js';\nimport { boundAlpha, convertToPercentage } from './util.js';\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nexport function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = 'hsv';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n}\n// <http://www.w3.org/TR/css3-values/#integers>\nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// <http://www.w3.org/TR/css3-values/#number-value>\nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\".concat(CSS_NUMBER, \")|(?:\").concat(CSS_INTEGER, \")\");\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nexport function stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex6.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n match = matchers.hex4.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n a: convertHexToDecimal(match[4] + match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex3.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nexport function isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n","import { numberInputToObject, rgbaToHex, rgbToHex, rgbToHsl, rgbToHsv } from './conversion.js';\nimport { names } from './css-color-names.js';\nimport { inputToRGB } from './format-input';\nimport { bound01, boundAlpha, clamp01 } from './util.js';\nvar TinyColor = /** @class */ (function () {\n function TinyColor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n var _a;\n // If input is already a tinycolor, return itself\n if (color instanceof TinyColor) {\n // eslint-disable-next-line no-constructor-return\n return color;\n }\n if (typeof color === 'number') {\n color = numberInputToObject(color);\n }\n this.originalInput = color;\n var rgb = inputToRGB(color);\n this.originalInput = color;\n this.r = rgb.r;\n this.g = rgb.g;\n this.b = rgb.b;\n this.a = rgb.a;\n this.roundA = Math.round(100 * this.a) / 100;\n this.format = (_a = opts.format) !== null && _a !== void 0 ? _a : rgb.format;\n this.gradientType = opts.gradientType;\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this.r < 1) {\n this.r = Math.round(this.r);\n }\n if (this.g < 1) {\n this.g = Math.round(this.g);\n }\n if (this.b < 1) {\n this.b = Math.round(this.b);\n }\n this.isValid = rgb.ok;\n }\n TinyColor.prototype.isDark = function () {\n return this.getBrightness() < 128;\n };\n TinyColor.prototype.isLight = function () {\n return !this.isDark();\n };\n /**\n * Returns the perceived brightness of the color, from 0-255.\n */\n TinyColor.prototype.getBrightness = function () {\n // http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n };\n /**\n * Returns the perceived luminance of a color, from 0-1.\n */\n TinyColor.prototype.getLuminance = function () {\n // http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var R;\n var G;\n var B;\n var RsRGB = rgb.r / 255;\n var GsRGB = rgb.g / 255;\n var BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) {\n R = RsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n }\n if (GsRGB <= 0.03928) {\n G = GsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n }\n if (BsRGB <= 0.03928) {\n B = BsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n }\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n };\n /**\n * Returns the alpha value of a color, from 0-1.\n */\n TinyColor.prototype.getAlpha = function () {\n return this.a;\n };\n /**\n * Sets the alpha value on the current color.\n *\n * @param alpha - The new alpha value. The accepted range is 0-1.\n */\n TinyColor.prototype.setAlpha = function (alpha) {\n this.a = boundAlpha(alpha);\n this.roundA = Math.round(100 * this.a) / 100;\n return this;\n };\n /**\n * Returns whether the color is monochrome.\n */\n TinyColor.prototype.isMonochrome = function () {\n var s = this.toHsl().s;\n return s === 0;\n };\n /**\n * Returns the object as a HSVA object.\n */\n TinyColor.prototype.toHsv = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this.a };\n };\n /**\n * Returns the hsva values interpolated into a string with the following format:\n * \"hsva(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHsvString = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n var h = Math.round(hsv.h * 360);\n var s = Math.round(hsv.s * 100);\n var v = Math.round(hsv.v * 100);\n return this.a === 1 ? \"hsv(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%)\") : \"hsva(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a HSLA object.\n */\n TinyColor.prototype.toHsl = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this.a };\n };\n /**\n * Returns the hsla values interpolated into a string with the following format:\n * \"hsla(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHslString = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n var h = Math.round(hsl.h * 360);\n var s = Math.round(hsl.s * 100);\n var l = Math.round(hsl.l * 100);\n return this.a === 1 ? \"hsl(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%)\") : \"hsla(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the hex value of the color.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHex = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return rgbToHex(this.r, this.g, this.b, allow3Char);\n };\n /**\n * Returns the hex value of the color -with a # prefixed.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHexString = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return '#' + this.toHex(allow3Char);\n };\n /**\n * Returns the hex 8 value of the color.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8 = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return rgbaToHex(this.r, this.g, this.b, this.a, allow4Char);\n };\n /**\n * Returns the hex 8 value of the color -with a # prefixed.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8String = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return '#' + this.toHex8(allow4Char);\n };\n /**\n * Returns the shorter hex value of the color depends on its alpha -with a # prefixed.\n * @param allowShortChar will shorten hex value to 3 or 4 char if possible\n */\n TinyColor.prototype.toHexShortString = function (allowShortChar) {\n if (allowShortChar === void 0) { allowShortChar = false; }\n return this.a === 1 ? this.toHexString(allowShortChar) : this.toHex8String(allowShortChar);\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toRgb = function () {\n return {\n r: Math.round(this.r),\n g: Math.round(this.g),\n b: Math.round(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA values interpolated into a string with the following format:\n * \"RGBA(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toRgbString = function () {\n var r = Math.round(this.r);\n var g = Math.round(this.g);\n var b = Math.round(this.b);\n return this.a === 1 ? \"rgb(\".concat(r, \", \").concat(g, \", \").concat(b, \")\") : \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toPercentageRgb = function () {\n var fmt = function (x) { return \"\".concat(Math.round(bound01(x, 255) * 100), \"%\"); };\n return {\n r: fmt(this.r),\n g: fmt(this.g),\n b: fmt(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA relative values interpolated into a string\n */\n TinyColor.prototype.toPercentageRgbString = function () {\n var rnd = function (x) { return Math.round(bound01(x, 255) * 100); };\n return this.a === 1\n ? \"rgb(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%)\")\n : \"rgba(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%, \").concat(this.roundA, \")\");\n };\n /**\n * The 'real' name of the color -if there is one.\n */\n TinyColor.prototype.toName = function () {\n if (this.a === 0) {\n return 'transparent';\n }\n if (this.a < 1) {\n return false;\n }\n var hex = '#' + rgbToHex(this.r, this.g, this.b, false);\n for (var _i = 0, _a = Object.entries(names); _i < _a.length; _i++) {\n var _b = _a[_i], key = _b[0], value = _b[1];\n if (hex === value) {\n return key;\n }\n }\n return false;\n };\n TinyColor.prototype.toString = function (format) {\n var formatSet = Boolean(format);\n format = format !== null && format !== void 0 ? format : this.format;\n var formattedString = false;\n var hasAlpha = this.a < 1 && this.a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format.startsWith('hex') || format === 'name');\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === 'name' && this.a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === 'rgb') {\n formattedString = this.toRgbString();\n }\n if (format === 'prgb') {\n formattedString = this.toPercentageRgbString();\n }\n if (format === 'hex' || format === 'hex6') {\n formattedString = this.toHexString();\n }\n if (format === 'hex3') {\n formattedString = this.toHexString(true);\n }\n if (format === 'hex4') {\n formattedString = this.toHex8String(true);\n }\n if (format === 'hex8') {\n formattedString = this.toHex8String();\n }\n if (format === 'name') {\n formattedString = this.toName();\n }\n if (format === 'hsl') {\n formattedString = this.toHslString();\n }\n if (format === 'hsv') {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n };\n TinyColor.prototype.toNumber = function () {\n return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b);\n };\n TinyColor.prototype.clone = function () {\n return new TinyColor(this.toString());\n };\n /**\n * Lighten the color a given amount. Providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.lighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Brighten the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.brighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var rgb = this.toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return new TinyColor(rgb);\n };\n /**\n * Darken the color a given amount, from 0 to 100.\n * Providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.darken = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Mix the color with pure white, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.tint = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('white', amount);\n };\n /**\n * Mix the color with pure black, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.shade = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('black', amount);\n };\n /**\n * Desaturate the color a given amount, from 0 to 100.\n * Providing 100 will is the same as calling greyscale\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.desaturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Saturate the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.saturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Completely desaturates a color into greyscale.\n * Same as calling `desaturate(100)`\n */\n TinyColor.prototype.greyscale = function () {\n return this.desaturate(100);\n };\n /**\n * Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n * Values outside of this range will be wrapped into this range.\n */\n TinyColor.prototype.spin = function (amount) {\n var hsl = this.toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return new TinyColor(hsl);\n };\n /**\n * Mix the current color a given amount with another color, from 0 to 100.\n * 0 means no mixing (return current color).\n */\n TinyColor.prototype.mix = function (color, amount) {\n if (amount === void 0) { amount = 50; }\n var rgb1 = this.toRgb();\n var rgb2 = new TinyColor(color).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a,\n };\n return new TinyColor(rgba);\n };\n TinyColor.prototype.analogous = function (results, slices) {\n if (results === void 0) { results = 6; }\n if (slices === void 0) { slices = 30; }\n var hsl = this.toHsl();\n var part = 360 / slices;\n var ret = [this];\n for (hsl.h = (hsl.h - ((part * results) >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(new TinyColor(hsl));\n }\n return ret;\n };\n /**\n * taken from https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js\n */\n TinyColor.prototype.complement = function () {\n var hsl = this.toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return new TinyColor(hsl);\n };\n TinyColor.prototype.monochromatic = function (results) {\n if (results === void 0) { results = 6; }\n var hsv = this.toHsv();\n var h = hsv.h;\n var s = hsv.s;\n var v = hsv.v;\n var res = [];\n var modification = 1 / results;\n while (results--) {\n res.push(new TinyColor({ h: h, s: s, v: v }));\n v = (v + modification) % 1;\n }\n return res;\n };\n TinyColor.prototype.splitcomplement = function () {\n var hsl = this.toHsl();\n var h = hsl.h;\n return [\n this,\n new TinyColor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }),\n new TinyColor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l }),\n ];\n };\n /**\n * Compute how the color would appear on a background\n */\n TinyColor.prototype.onBackground = function (background) {\n var fg = this.toRgb();\n var bg = new TinyColor(background).toRgb();\n var alpha = fg.a + bg.a * (1 - fg.a);\n return new TinyColor({\n r: (fg.r * fg.a + bg.r * bg.a * (1 - fg.a)) / alpha,\n g: (fg.g * fg.a + bg.g * bg.a * (1 - fg.a)) / alpha,\n b: (fg.b * fg.a + bg.b * bg.a * (1 - fg.a)) / alpha,\n a: alpha,\n });\n };\n /**\n * Alias for `polyad(3)`\n */\n TinyColor.prototype.triad = function () {\n return this.polyad(3);\n };\n /**\n * Alias for `polyad(4)`\n */\n TinyColor.prototype.tetrad = function () {\n return this.polyad(4);\n };\n /**\n * Get polyad colors, like (for 1, 2, 3, 4, 5, 6, 7, 8, etc...)\n * monad, dyad, triad, tetrad, pentad, hexad, heptad, octad, etc...\n */\n TinyColor.prototype.polyad = function (n) {\n var hsl = this.toHsl();\n var h = hsl.h;\n var result = [this];\n var increment = 360 / n;\n for (var i = 1; i < n; i++) {\n result.push(new TinyColor({ h: (h + i * increment) % 360, s: hsl.s, l: hsl.l }));\n }\n return result;\n };\n /**\n * compare color vs current color\n */\n TinyColor.prototype.equals = function (color) {\n return this.toRgbString() === new TinyColor(color).toRgbString();\n };\n return TinyColor;\n}());\nexport { TinyColor };\n// kept for backwards compatability with v1\nexport function tinycolor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n return new TinyColor(color, opts);\n}\n","import { TinyColor } from './index.js';\n// Readability Functions\n// ---------------------\n// <http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef (WCAG Version 2)\n/**\n * AKA `contrast`\n *\n * Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2)\n */\nexport function readability(color1, color2) {\n var c1 = new TinyColor(color1);\n var c2 = new TinyColor(color2);\n return ((Math.max(c1.getLuminance(), c2.getLuminance()) + 0.05) /\n (Math.min(c1.getLuminance(), c2.getLuminance()) + 0.05));\n}\n/**\n * Ensure that foreground and background color combinations meet WCAG2 guidelines.\n * The third argument is an object.\n * the 'level' property states 'AA' or 'AAA' - if missing or invalid, it defaults to 'AA';\n * the 'size' property states 'large' or 'small' - if missing or invalid, it defaults to 'small'.\n * If the entire object is absent, isReadable defaults to {level:\"AA\",size:\"small\"}.\n *\n * Example\n * ```ts\n * new TinyColor().isReadable('#000', '#111') => false\n * new TinyColor().isReadable('#000', '#111', { level: 'AA', size: 'large' }) => false\n * ```\n */\nexport function isReadable(color1, color2, wcag2) {\n var _a, _b;\n if (wcag2 === void 0) { wcag2 = { level: 'AA', size: 'small' }; }\n var readabilityLevel = readability(color1, color2);\n switch (((_a = wcag2.level) !== null && _a !== void 0 ? _a : 'AA') + ((_b = wcag2.size) !== null && _b !== void 0 ? _b : 'small')) {\n case 'AAsmall':\n case 'AAAlarge':\n return readabilityLevel >= 4.5;\n case 'AAlarge':\n return readabilityLevel >= 3;\n case 'AAAsmall':\n return readabilityLevel >= 7;\n default:\n return false;\n }\n}\n/**\n * Given a base color and a list of possible foreground or background\n * colors for that base, returns the most readable color.\n * Optionally returns Black or White if the most readable color is unreadable.\n *\n * @param baseColor - the base color.\n * @param colorList - array of colors to pick the most readable one from.\n * @param args - and object with extra arguments\n *\n * Example\n * ```ts\n * new TinyColor().mostReadable('#123', ['#124\", \"#125'], { includeFallbackColors: false }).toHexString(); // \"#112255\"\n * new TinyColor().mostReadable('#123', ['#124\", \"#125'],{ includeFallbackColors: true }).toHexString(); // \"#ffffff\"\n * new TinyColor().mostReadable('#a8015a', [\"#faf3f3\"], { includeFallbackColors:true, level: 'AAA', size: 'large' }).toHexString(); // \"#faf3f3\"\n * new TinyColor().mostReadable('#a8015a', [\"#faf3f3\"], { includeFallbackColors:true, level: 'AAA', size: 'small' }).toHexString(); // \"#ffffff\"\n * ```\n */\nexport function mostReadable(baseColor, colorList, args) {\n if (args === void 0) { args = { includeFallbackColors: false, level: 'AA', size: 'small' }; }\n var bestColor = null;\n var bestScore = 0;\n var includeFallbackColors = args.includeFallbackColors, level = args.level, size = args.size;\n for (var _i = 0, colorList_1 = colorList; _i < colorList_1.length; _i++) {\n var color = colorList_1[_i];\n var score = readability(baseColor, color);\n if (score > bestScore) {\n bestScore = score;\n bestColor = new TinyColor(color);\n }\n }\n if (isReadable(baseColor, bestColor, { level: level, size: size }) || !includeFallbackColors) {\n return bestColor;\n }\n args.includeFallbackColors = false;\n return mostReadable(baseColor, ['#fff', '#000'], args);\n}\n","import { rgbaToArgbHex } from './conversion.js';\nimport { TinyColor } from './index.js';\n/**\n * Returns the color represented as a Microsoft filter for use in old versions of IE.\n */\nexport function toMsFilter(firstColor, secondColor) {\n var color = new TinyColor(firstColor);\n var hex8String = '#' + rgbaToArgbHex(color.r, color.g, color.b, color.a);\n var secondHex8String = hex8String;\n var gradientType = color.gradientType ? 'GradientType = 1, ' : '';\n if (secondColor) {\n var s = new TinyColor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s.r, s.g, s.b, s.a);\n }\n return \"progid:DXImageTransform.Microsoft.gradient(\".concat(gradientType, \"startColorstr=\").concat(hex8String, \",endColorstr=\").concat(secondHex8String, \")\");\n}\n","import { TinyColor } from './index.js';\nimport { convertToPercentage } from './util.js';\n/**\n * If input is an object, force 1 into \"1.0\" to handle ratios properly\n * String input requires \"1.0\" as input, so 1 will be treated as 1\n */\nexport function fromRatio(ratio, opts) {\n var newColor = {\n r: convertToPercentage(ratio.r),\n g: convertToPercentage(ratio.g),\n b: convertToPercentage(ratio.b),\n };\n if (ratio.a !== undefined) {\n newColor.a = Number(ratio.a);\n }\n return new TinyColor(newColor, opts);\n}\n/** old random function */\nexport function legacyRandom() {\n return new TinyColor({\n r: Math.random(),\n g: Math.random(),\n b: Math.random(),\n });\n}\n","/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\n// randomColor by David Merfield under the CC0 license\n// https://github.com/davidmerfield/randomColor/\nimport { TinyColor } from './index.js';\nexport function random(options) {\n if (options === void 0) { options = {}; }\n // Check if we need to generate multiple colors\n if (options.count !== undefined &&\n options.count !== null) {\n var totalColors = options.count;\n var colors = [];\n options.count = undefined;\n while (totalColors > colors.length) {\n // Since we're generating multiple colors,\n // incremement the seed. Otherwise we'd just\n // generate the same color each time...\n options.count = null;\n if (options.seed) {\n options.seed += 1;\n }\n colors.push(random(options));\n }\n options.count = totalColors;\n return colors;\n }\n // First we pick a hue (H)\n var h = pickHue(options.hue, options.seed);\n // Then use H to determine saturation (S)\n var s = pickSaturation(h, options);\n // Then use S and H to determine brightness (B).\n var v = pickBrightness(h, s, options);\n var res = { h: h, s: s, v: v };\n if (options.alpha !== undefined) {\n res.a = options.alpha;\n }\n // Then we return the HSB color in the desired format\n return new TinyColor(res);\n}\nfunction pickHue(hue, seed) {\n var hueRange = getHueRange(hue);\n var res = randomWithin(hueRange, seed);\n // Instead of storing red as two seperate ranges,\n // we group them, using negative numbers\n if (res < 0) {\n res = 360 + res;\n }\n return res;\n}\nfunction pickSaturation(hue, options) {\n if (options.hue === 'monochrome') {\n return 0;\n }\n if (options.luminosity === 'random') {\n return randomWithin([0, 100], options.seed);\n }\n var saturationRange = getColorInfo(hue).saturationRange;\n var sMin = saturationRange[0];\n var sMax = saturationRange[1];\n switch (options.luminosity) {\n case 'bright':\n sMin = 55;\n break;\n case 'dark':\n sMin = sMax - 10;\n break;\n case 'light':\n sMax = 55;\n break;\n default:\n break;\n }\n return randomWithin([sMin, sMax], options.seed);\n}\nfunction pickBrightness(H, S, options) {\n var bMin = getMinimumBrightness(H, S);\n var bMax = 100;\n switch (options.luminosity) {\n case 'dark':\n bMax = bMin + 20;\n break;\n case 'light':\n bMin = (bMax + bMin) / 2;\n break;\n case 'random':\n bMin = 0;\n bMax = 100;\n break;\n default:\n break;\n }\n return randomWithin([bMin, bMax], options.seed);\n}\nfunction getMinimumBrightness(H, S) {\n var lowerBounds = getColorInfo(H).lowerBounds;\n for (var i = 0; i < lowerBounds.length - 1; i++) {\n var s1 = lowerBounds[i][0];\n var v1 = lowerBounds[i][1];\n var s2 = lowerBounds[i + 1][0];\n var v2 = lowerBounds[i + 1][1];\n if (S >= s1 && S <= s2) {\n var m = (v2 - v1) / (s2 - s1);\n var b = v1 - m * s1;\n return m * S + b;\n }\n }\n return 0;\n}\nfunction getHueRange(colorInput) {\n var num = parseInt(colorInput, 10);\n if (!Number.isNaN(num) && num < 360 && num > 0) {\n return [num, num];\n }\n if (typeof colorInput === 'string') {\n var namedColor = bounds.find(function (n) { return n.name === colorInput; });\n if (namedColor) {\n var color = defineColor(namedColor);\n if (color.hueRange) {\n return color.hueRange;\n }\n }\n var parsed = new TinyColor(colorInput);\n if (parsed.isValid) {\n var hue = parsed.toHsv().h;\n return [hue, hue];\n }\n }\n return [0, 360];\n}\nfunction getColorInfo(hue) {\n // Maps red colors to make picking hue easier\n if (hue >= 334 && hue <= 360) {\n hue -= 360;\n }\n for (var _i = 0, bounds_1 = bounds; _i < bounds_1.length; _i++) {\n var bound = bounds_1[_i];\n var color = defineColor(bound);\n if (color.hueRange && hue >= color.hueRange[0] && hue <= color.hueRange[1]) {\n return color;\n }\n }\n throw Error('Color not found');\n}\nfunction randomWithin(range, seed) {\n if (seed === undefined) {\n return Math.floor(range[0] + Math.random() * (range[1] + 1 - range[0]));\n }\n // Seeded random algorithm from http://indiegamr.com/generate-repeatable-random-numbers-in-js/\n var max = range[1] || 1;\n var min = range[0] || 0;\n seed = (seed * 9301 + 49297) % 233280;\n var rnd = seed / 233280.0;\n return Math.floor(min + rnd * (max - min));\n}\nfunction defineColor(bound) {\n var sMin = bound.lowerBounds[0][0];\n var sMax = bound.lowerBounds[bound.lowerBounds.length - 1][0];\n var bMin = bound.lowerBounds[bound.lowerBounds.length - 1][1];\n var bMax = bound.lowerBounds[0][1];\n return {\n name: bound.name,\n hueRange: bound.hueRange,\n lowerBounds: bound.lowerBounds,\n saturationRange: [sMin, sMax],\n brightnessRange: [bMin, bMax],\n };\n}\n/**\n * @hidden\n */\nexport var bounds = [\n {\n name: 'monochrome',\n hueRange: null,\n lowerBounds: [\n [0, 0],\n [100, 0],\n ],\n },\n {\n name: 'red',\n hueRange: [-26, 18],\n lowerBounds: [\n [20, 100],\n [30, 92],\n [40, 89],\n [50, 85],\n [60, 78],\n [70, 70],\n [80, 60],\n [90, 55],\n [100, 50],\n ],\n },\n {\n name: 'orange',\n hueRange: [19, 46],\n lowerBounds: [\n [20, 100],\n [30, 93],\n [40, 88],\n [50, 86],\n [60, 85],\n [70, 70],\n [100, 70],\n ],\n },\n {\n name: 'yellow',\n hueRange: [47, 62],\n lowerBounds: [\n [25, 100],\n [40, 94],\n [50, 89],\n [60, 86],\n [70, 84],\n [80, 82],\n [90, 80],\n [100, 75],\n ],\n },\n {\n name: 'green',\n hueRange: [63, 178],\n lowerBounds: [\n [30, 100],\n [40, 90],\n [50, 85],\n [60, 81],\n [70, 74],\n [80, 64],\n [90, 50],\n [100, 40],\n ],\n },\n {\n name: 'blue',\n hueRange: [179, 257],\n lowerBounds: [\n [20, 100],\n [30, 86],\n [40, 80],\n [50, 74],\n [60, 60],\n [70, 52],\n [80, 44],\n [90, 39],\n [100, 35],\n ],\n },\n {\n name: 'purple',\n hueRange: [258, 282],\n lowerBounds: [\n [20, 100],\n [30, 87],\n [40, 79],\n [50, 70],\n [60, 65],\n [70, 59],\n [80, 52],\n [90, 45],\n [100, 42],\n ],\n },\n {\n name: 'pink',\n hueRange: [283, 334],\n lowerBounds: [\n [20, 100],\n [30, 90],\n [40, 86],\n [60, 84],\n [80, 80],\n [90, 75],\n [100, 73],\n ],\n },\n];\n","import { inputToRGB, rgbToHex, rgbToHsv } from '@ctrl/tinycolor';\nvar hueStep = 2; // 色相阶梯\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\nvar lightColorCount = 5; // 浅色数量,主色上\nvar darkColorCount = 4; // 深色数量,主色下\n// 暗色主题颜色映射关系表\nvar darkColorMap = [{\n index: 7,\n opacity: 0.15\n}, {\n index: 6,\n opacity: 0.25\n}, {\n index: 5,\n opacity: 0.3\n}, {\n index: 5,\n opacity: 0.45\n}, {\n index: 5,\n opacity: 0.65\n}, {\n index: 5,\n opacity: 0.85\n}, {\n index: 4,\n opacity: 0.9\n}, {\n index: 3,\n opacity: 0.95\n}, {\n index: 2,\n opacity: 0.97\n}, {\n index: 1,\n opacity: 0.98\n}];\n// Wrapper function ported from TinyColor.prototype.toHsv\n// Keep it here because of `hsv.h * 360`\nfunction toHsv(_ref) {\n var r = _ref.r,\n g = _ref.g,\n b = _ref.b;\n var hsv = rgbToHsv(r, g, b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v\n };\n}\n\n// Wrapper function ported from TinyColor.prototype.toHexString\n// Keep it here because of the prefix `#`\nfunction toHex(_ref2) {\n var r = _ref2.r,\n g = _ref2.g,\n b = _ref2.b;\n return \"#\".concat(rgbToHex(r, g, b, false));\n}\n\n// Wrapper function ported from TinyColor.prototype.mix, not treeshakable.\n// Amount in range [0, 1]\n// Assume color1 & color2 has no alpha, since the following src code did so.\nfunction mix(rgb1, rgb2, amount) {\n var p = amount / 100;\n var rgb = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b\n };\n return rgb;\n}\nfunction getHue(hsv, i, light) {\n var hue;\n // 根据色相不同,色相转向不同\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n return hue;\n}\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n var saturation;\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n }\n // 边界值修正\n if (saturation > 1) {\n saturation = 1;\n }\n // 第一格的 s 限制在 0.06-0.1 之间\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n return Number(saturation.toFixed(2));\n}\nfunction getValue(hsv, i, light) {\n var value;\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n if (value > 1) {\n value = 1;\n }\n return Number(value.toFixed(2));\n}\nexport default function generate(color) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var patterns = [];\n var pColor = inputToRGB(color);\n for (var i = lightColorCount; i > 0; i -= 1) {\n var hsv = toHsv(pColor);\n var colorString = toHex(inputToRGB({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n }));\n patterns.push(colorString);\n }\n patterns.push(toHex(pColor));\n for (var _i = 1; _i <= darkColorCount; _i += 1) {\n var _hsv = toHsv(pColor);\n var _colorString = toHex(inputToRGB({\n h: getHue(_hsv, _i),\n s: getSaturation(_hsv, _i),\n v: getValue(_hsv, _i)\n }));\n patterns.push(_colorString);\n }\n\n // dark theme patterns\n if (opts.theme === 'dark') {\n return darkColorMap.map(function (_ref3) {\n var index = _ref3.index,\n opacity = _ref3.opacity;\n var darkColorString = toHex(mix(inputToRGB(opts.backgroundColor || '#141414'), inputToRGB(patterns[index]), opacity * 100));\n return darkColorString;\n });\n }\n return patterns;\n}","import generate from \"./generate\";\nvar presetPrimaryColors = {\n red: '#F5222D',\n volcano: '#FA541C',\n orange: '#FA8C16',\n gold: '#FAAD14',\n yellow: '#FADB14',\n lime: '#A0D911',\n green: '#52C41A',\n cyan: '#13C2C2',\n blue: '#1677FF',\n geekblue: '#2F54EB',\n purple: '#722ED1',\n magenta: '#EB2F96',\n grey: '#666666'\n};\nvar presetPalettes = {};\nvar presetDarkPalettes = {};\nObject.keys(presetPrimaryColors).forEach(function (key) {\n presetPalettes[key] = generate(presetPrimaryColors[key]);\n presetPalettes[key].primary = presetPalettes[key][5];\n\n // dark presetPalettes\n presetDarkPalettes[key] = generate(presetPrimaryColors[key], {\n theme: 'dark',\n backgroundColor: '#141414'\n });\n presetDarkPalettes[key].primary = presetDarkPalettes[key][5];\n});\nvar red = presetPalettes.red;\nvar volcano = presetPalettes.volcano;\nvar gold = presetPalettes.gold;\nvar orange = presetPalettes.orange;\nvar yellow = presetPalettes.yellow;\nvar lime = presetPalettes.lime;\nvar green = presetPalettes.green;\nvar cyan = presetPalettes.cyan;\nvar blue = presetPalettes.blue;\nvar geekblue = presetPalettes.geekblue;\nvar purple = presetPalettes.purple;\nvar magenta = presetPalettes.magenta;\nvar grey = presetPalettes.grey;\nvar gray = presetPalettes.grey;\nexport { generate, presetPalettes, presetDarkPalettes, presetPrimaryColors, red, volcano, orange, gold, yellow, lime, green, cyan, blue, geekblue, purple, magenta, grey, gray };","import type { HeightMapToken, SeedToken } from '../../interface';\n\nconst genControlHeight = (token: SeedToken): HeightMapToken => {\n const { controlHeight } = token;\n\n return {\n controlHeightSM: controlHeight * 0.75,\n controlHeightXS: controlHeight * 0.5,\n controlHeightLG: controlHeight * 1.25,\n };\n};\n\nexport default genControlHeight;\n","import type { SeedToken, SizeMapToken } from '../../interface';\n\nexport default function genSizeMapToken(token: SeedToken): SizeMapToken {\n const { sizeUnit, sizeStep } = token;\n\n return {\n sizeXXL: sizeUnit * (sizeStep + 8), // 48\n sizeXL: sizeUnit * (sizeStep + 4), // 32\n sizeLG: sizeUnit * (sizeStep + 2), // 24\n sizeMD: sizeUnit * (sizeStep + 1), // 20\n sizeMS: sizeUnit * sizeStep, // 16\n size: sizeUnit * sizeStep, // 16\n sizeSM: sizeUnit * (sizeStep - 1), // 12\n sizeXS: sizeUnit * (sizeStep - 2), // 8\n sizeXXS: sizeUnit * (sizeStep - 3), // 4\n };\n}\n","import type { PresetColorType, SeedToken } from './interface';\n\nexport const defaultPresetColors: PresetColorType = {\n blue: '#1677ff',\n purple: '#722ED1',\n cyan: '#13C2C2',\n green: '#52C41A',\n magenta: '#EB2F96',\n pink: '#eb2f96',\n red: '#F5222D',\n orange: '#FA8C16',\n yellow: '#FADB14',\n volcano: '#FA541C',\n geekblue: '#2F54EB',\n gold: '#FAAD14',\n lime: '#A0D911',\n};\n\nconst seedToken: SeedToken = {\n // preset color palettes\n ...defaultPresetColors,\n\n // Color\n colorPrimary: '#1677ff',\n colorSuccess: '#52c41a',\n colorWarning: '#faad14',\n colorError: '#ff4d4f',\n colorInfo: '#1677ff',\n colorLink: '',\n colorTextBase: '',\n\n colorBgBase: '',\n\n // Font\n fontFamily: `microsoft yahei,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif`,\n fontFamilyCode: `'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace`,\n fontWeight: 400,\n fontSize: 12,\n\n // Line\n lineWidth: 1,\n lineType: 'solid',\n\n // Motion\n motionUnit: 0.1,\n motionBase: 0,\n motionEaseOutCirc: 'cubic-bezier(0.08, 0.82, 0.17, 1)',\n motionEaseInOutCirc: 'cubic-bezier(0.78, 0.14, 0.15, 0.86)',\n motionEaseOut: 'cubic-bezier(0.215, 0.61, 0.355, 1)',\n motionEaseInOut: 'cubic-bezier(0.645, 0.045, 0.355, 1)',\n motionEaseOutBack: 'cubic-bezier(0.12, 0.4, 0.29, 1.46)',\n motionEaseInBack: 'cubic-bezier(0.71, -0.46, 0.88, 0.6)',\n motionEaseInQuint: 'cubic-bezier(0.755, 0.05, 0.855, 0.06)',\n motionEaseOutQuint: 'cubic-bezier(0.23, 1, 0.32, 1)',\n\n // Radius\n borderRadius: 6,\n\n // Size\n sizeUnit: 4,\n sizeStep: 4,\n sizePopupArrow: 16,\n\n // Control Base\n controlHeight: 32,\n\n // zIndex\n zIndexBase: 0,\n zIndexPopupBase: 1000,\n\n // opacity\n opacity: 1,\n\n // Wireframe\n wireframe: false,\n\n // Motion\n motion: true,\n //布局相关\n layoutHeaderHeight: 50,\n layoutSiderWidth: 200,\n layoutIconSize: 24,\n layoutNavHeight: 40,\n //渐变色\n gradientColors: ['rgba(0, 64, 237,0.3)', 'rgba(0, 229, 237,0.3)'],\n};\nexport default seedToken;\n","import { mapValues, isObject, toLower } from 'lodash-es';\nimport { TinyColor } from '@ctrl/tinycolor';\n/**\n * Sums the passed percentage to the R, G or B of a HEX color\n * @param {string} color The color to change\n * @param {number} amount The amount to change the color by\n * @returns {string} The processed part of the color\n */\nfunction addLight(color: string, amount: number) {\n const cc = parseInt(color, 16) + amount;\n const c = cc > 255 ? 255 : cc;\n return c.toString(16).length > 1 ? c.toString(16) : `0${c.toString(16)}`;\n}\n\n/**\n * Lightens a 6 char HEX color according to the passed percentage\n * @param {string} color The color to change\n * @param {number} amount The amount to change the color by\n * @returns {string} The processed color represented as HEX\n */\nexport function lighten(color: string, amount: number) {\n color = color.indexOf('#') >= 0 ? color.substring(1, color.length) : color;\n amount = Math.trunc((255 * amount) / 100);\n return `#${addLight(color.substring(0, 2), amount)}${addLight(\n color.substring(2, 4),\n amount,\n )}${addLight(color.substring(4, 6), amount)}`;\n}\n\nexport function getTokenCssVar(data: any, prefix?: string) {\n if (typeof data !== 'object' || Array.isArray(data)) return;\n const tokenCss: any = {};\n mapValues(data, (itemValue, name) => {\n const varName = prefix ? '--' + `${prefix}-` + name : '--' + name;\n const value =\n typeof itemValue === 'number' &&\n !['lineheight', 'opacity', 'weight'].some((key) =>\n toLower(name).includes(key),\n )\n ? itemValue + 'px'\n : itemValue;\n if (isObject(itemValue)) return getTokenCssVar(value, name);\n tokenCss[varName] = value;\n });\n return tokenCss;\n}\n\nexport const getAlphaColor = (baseColor: string, alpha: number) => {\n return new TinyColor(baseColor).setAlpha(alpha).toRgbString();\n};\n\nexport const getDarkenSolidColor = (baseColor: string, brightness: number) => {\n const instance = new TinyColor(baseColor);\n return instance.darken(brightness).toHexString();\n};\nexport const getLightenSolidColor = (baseColor: string, brightness: number) => {\n const instance = new TinyColor(baseColor);\n return instance.lighten(brightness).toHexString();\n};\n\nexport const getBackgroundColor = (baseColor: string, bgBaseColor: string) => {\n const color = new TinyColor(baseColor);\n return color.onBackground(bgBaseColor).toRgbString();\n};\n","import { TinyColor } from '@ctrl/tinycolor';\nimport type { ColorMapToken, SeedToken } from '../../interface';\nimport type {\n GenerateColorMap,\n GenerateNeutralColorMap,\n GenerateGradientColorMap,\n} from '../ColorMap';\nimport { getBackgroundColor, getAlphaColor } from '../../utils';\nimport { get } from 'lodash';\n\nexport const generateGradientColorPalettes: GenerateGradientColorMap = (\n bgBaseColor: string,\n gradientColors: string[],\n) => {\n return gradientColors.map(item=> getBackgroundColor(item as string, bgBaseColor));\n};\n\ninterface PaletteGenerators {\n generateColorPalettes: GenerateColorMap;\n generateNeutralColorPalettes: GenerateNeutralColorMap;\n}\n\nexport default function genColorMapToken(\n seed: SeedToken,\n { generateColorPalettes, generateNeutralColorPalettes }: PaletteGenerators,\n): ColorMapToken {\n const {\n colorSuccess: colorSuccessBase,\n colorWarning: colorWarningBase,\n colorError: colorErrorBase,\n colorInfo: colorInfoBase,\n colorPrimary: colorPrimaryBase,\n colorBgBase,\n colorTextBase,\n } = seed;\n\n const primaryColors = generateColorPalettes(colorPrimaryBase);\n const successColors = generateColorPalettes(colorSuccessBase);\n const warningColors = generateColorPalettes(colorWarningBase);\n const errorColors = generateColorPalettes(colorErrorBase);\n const infoColors = generateColorPalettes(colorInfoBase);\n const neutralColors = generateNeutralColorPalettes(\n colorBgBase,\n colorTextBase,\n );\n\n const gradientColors = generateGradientColorPalettes(\n neutralColors.colorBgBase,\n seed.gradientColors as any,\n );\n\n // Color Link\n const colorLink = seed.colorLink || seed.colorInfo;\n const linkColors = generateColorPalettes(colorLink);\n\n return {\n ...neutralColors,\n gradientColors,\n colorPrimaryBg: primaryColors[1],\n colorPrimaryBgHover: primaryColors[2],\n colorPrimaryBorder: primaryColors[3],\n colorPrimaryBorderHover: primaryColors[4],\n colorPrimaryHover: primaryColors[5],\n colorPrimary: primaryColors[6],\n colorPrimaryActive: primaryColors[7],\n colorPrimaryTextHover: primaryColors[8],\n colorPrimaryText: primaryColors[9],\n colorPrimaryTextActive: primaryColors[10],\n\n colorSuccessBg: successColors[1],\n colorSuccessBgHover: successColors[2],\n colorSuccessBorder: successColors[3],\n colorSuccessBorderHover: successColors[4],\n colorSuccessHover: successColors[4],\n colorSuccess: successColors[6],\n colorSuccessActive: successColors[7],\n colorSuccessTextHover: successColors[8],\n colorSuccessText: successColors[9],\n colorSuccessTextActive: successColors[10],\n\n colorErrorBg: errorColors[1],\n colorErrorBgHover: errorColors[2],\n colorErrorBorder: errorColors[3],\n colorErrorBorderHover: errorColors[4],\n colorErrorHover: errorColors[5],\n colorError: errorColors[6],\n colorErrorActive: errorColors[7],\n colorErrorTextHover: errorColors[8],\n colorErrorText: errorColors[9],\n colorErrorTextActive: errorColors[10],\n\n colorWarningBg: warningColors[1],\n colorWarningBgHover: warningColors[2],\n colorWarningBorder: warningColors[3],\n colorWarningBorderHover: warningColors[4],\n colorWarningHover: warningColors[4],\n colorWarning: warningColors[6],\n colorWarningActive: warningColors[7],\n colorWarningTextHover: warningColors[8],\n colorWarningText: warningColors[9],\n colorWarningTextActive: warningColors[10],\n\n colorInfoBg: infoColors[1],\n colorInfoBgHover: infoColors[2],\n colorInfoBorder: infoColors[3],\n colorInfoBorderHover: infoColors[4],\n colorInfoHover: infoColors[4],\n colorInfo: infoColors[6],\n colorInfoActive: infoColors[7],\n colorInfoTextHover: infoColors[8],\n colorInfoText: infoColors[9],\n colorInfoTextActive: infoColors[10],\n\n colorLinkHover: linkColors[4],\n colorLink: linkColors[6],\n colorLinkActive: linkColors[7],\n\n colorBgMask: new TinyColor('#000').setAlpha(0.45).toRgbString(),\n colorWhite: '#fff',\n };\n}\n","import type { MapToken } from '../../interface';\n\nconst genRadius = (\n radiusBase: number,\n): Pick<\n MapToken,\n | 'borderRadiusXS'\n | 'borderRadiusSM'\n | 'borderRadiusLG'\n | 'borderRadius'\n | 'borderRadiusOuter'\n | 'borderRadiusXL'\n | 'borderRadiusXXL'\n> => {\n let radiusLG = radiusBase;\n let radiusSM = radiusBase;\n let radiusXS = radiusBase;\n let radiusXL = radiusBase;\n let radiusXXL = radiusBase;\n let radiusOuter = radiusBase;\n\n // radiusLG\n if (radiusBase < 6 && radiusBase >= 5) {\n radiusLG = radiusBase + 1;\n } else if (radiusBase < 16 && radiusBase >= 6) {\n radiusLG = radiusBase + 2;\n } else if (radiusBase >= 16) {\n radiusLG = 16;\n }\n\n // radiusSM\n if (radiusBase < 7 && radiusBase >= 5) {\n radiusSM = 4;\n } else if (radiusBase < 8 && radiusBase >= 7) {\n radiusSM = 5;\n } else if (radiusBase < 14 && radiusBase >= 8) {\n radiusSM = 6;\n } else if (radiusBase < 16 && radiusBase >= 14) {\n radiusSM = 7;\n } else if (radiusBase >= 16) {\n radiusSM = 8;\n }\n\n // radiusXS\n if (radiusBase < 6 && radiusBase >= 2) {\n radiusXS = 1;\n } else if (radiusBase >= 6) {\n radiusXS = 2;\n }\n\n // radiusOuter\n if (radiusBase > 4 && radiusBase < 8) {\n radiusOuter = 4;\n } else if (radiusBase >= 8) {\n radiusOuter = 6;\n }\n\n radiusXL = radiusLG > 0 ? radiusLG + 4 : radiusLG;\n radiusXXL = radiusLG > 0 ? radiusLG + 8 : radiusLG;\n\n\n return {\n borderRadius: radiusBase > 16 ? 16 : radiusBase,\n borderRadiusXS: radiusXS,\n borderRadiusSM: radiusSM,\n borderRadiusLG: radiusLG,\n borderRadiusXL: radiusXL,\n borderRadiusXXL: radiusXXL,\n borderRadiusOuter: radiusOuter,\n };\n};\n\nexport default genRadius;\n","import type { CommonMapToken, SeedToken } from '../../interface';\nimport genRadius from './genRadius';\n\nexport default function genCommonMapToken(token: SeedToken): CommonMapToken {\n const {\n motionUnit,\n motionBase,\n borderRadius,\n lineWidth,\n opacity,\n layoutHeaderHeight,\n } = token;\n\n return {\n // motion\n motionDurationFast: `${(motionBase + motionUnit).toFixed(1)}s`,\n motionDurationMid: `${(motionBase + motionUnit * 2).toFixed(1)}s`,\n motionDurationSlow: `${(motionBase + motionUnit * 3).toFixed(1)}s`,\n\n // line\n lineWidthBold: lineWidth + 1,\n\n // radius\n ...genRadius(borderRadius),\n opacityImage: opacity,\n opacity1: opacity * 0.8,\n opacity2: opacity * 0.6,\n };\n}\n","import { generate } from '@ant-design/colors';\nimport type {\n GenerateColorMap,\n GenerateNeutralColorMap,\n GenerateGradientColorMap,\n} from '../ColorMap';\nimport {\n getAlphaColor,\n getDarkenSolidColor,\n getBackgroundColor,\n} from '../../utils';\nimport { TinyColor } from '@ctrl/tinycolor';\n\nexport const generateColorPalettes: GenerateColorMap = (baseColor: string) => {\n const colors = generate(baseColor);\n return {\n 1: colors[0],\n 2: colors[1],\n 3: colors[2],\n 4: colors[3],\n 5: colors[4],\n 6: colors[5],\n 7: colors[6],\n 8: colors[4],\n 9: colors[5],\n 10: colors[6],\n // 8: colors[7],\n // 9: colors[8],\n // 10: colors[9],\n };\n};\n\nexport const generateNeutralColorPalettes: GenerateNeutralColorMap = (\n bgBaseColor: string,\n textBaseColor: string,\n) => {\n let colorBgBase = bgBaseColor || '#fff';\n let colorTextBase = textBaseColor || '#000';\n\n colorBgBase = new TinyColor(colorBgBase).lighten()\n ? colorBgBase\n : new TinyColor(colorBgBase).lighten(100).toRgbString();\n colorTextBase = new TinyColor(colorTextBase).isDark()\n ? colorTextBase\n : new TinyColor(colorTextBase).darken(100).toRgbString();\n\n return {\n colorBgBase,\n colorTextBase,\n\n colorText: getAlphaColor(colorTextBase, 0.88),\n colorTextSecondary: getAlphaColor(colorTextBase, 0.65),\n colorTextTertiary: getAlphaColor(colorTextBase, 0.45),\n colorTextQuaternary: getAlphaColor(colorTextBase, 0.25),\n\n colorFill: getAlphaColor(colorTextBase, 0.15),\n colorFillSecondary: getAlphaColor(colorTextBase, 0.06),\n colorFillTertiary: getAlphaColor(colorTextBase, 0.04),\n colorFillQuaternary: getAlphaColor(colorTextBase, 0.02),\n\n colorBgLayout: getDarkenSolidColor(colorBgBase, 4),\n colorBgContainer: getDarkenSolidColor(colorBgBase, 0),\n colorBgElevated: getDarkenSolidColor(colorBgBase, 0),\n colorBgSpotlight: getAlphaColor(colorTextBase, 0.85),\n\n colorBorder: getDarkenSolidColor(colorBgBase, 15),\n colorBorderSecondary: getDarkenSolidColor(colorBgBase, 6),\n };\n};\n","// https://zhuanlan.zhihu.com/p/32746810\nexport default function getFontSizes(base: number) {\n const fontSizes = new Array(10).fill(null).map((_, index) => {\n const i = index - 1;\n const baseSize = base * 2.71828 ** (i / 5);\n const intSize = index > 1 ? Math.floor(baseSize) : Math.ceil(baseSize);\n\n // Convert to even\n return Math.floor(intSize / 2) * 2;\n });\n\n fontSizes[1] = base;\n\n return fontSizes.map((size) => {\n const height = size + 8;\n\n return {\n size,\n lineHeight: height / size,\n };\n });\n}\n","import type { FontMapToken } from '../../interface';\nimport genFontSizes from './genFontSizes';\n\nconst genFontMapToken = (fontSize: number): FontMapToken => {\n const fontSizePairs = genFontSizes(fontSize);\n const fontSizes = fontSizePairs.map((pair) => pair.size);\n const lineHeights = fontSizePairs.map((pair) => pair.lineHeight);\n\n return {\n fontSizeSM: fontSizes[0],\n fontSize: fontSizes[1],\n fontSizeLG: fontSizes[2],\n fontSizeXL: fontSizes[3],\n\n fontSizeHeading1: fontSizes[6],\n fontSizeHeading2: fontSizes[5],\n fontSizeHeading3: fontSizes[4],\n fontSizeHeading4: fontSizes[3],\n fontSizeHeading5: fontSizes[2],\n\n lineHeight: lineHeights[1],\n lineHeightLG: lineHeights[2],\n lineHeightSM: lineHeights[0],\n\n lineHeightHeading1: lineHeights[6],\n lineHeightHeading2: lineHeights[5],\n lineHeightHeading3: lineHeights[4],\n lineHeightHeading4: lineHeights[3],\n lineHeightHeading5: lineHeights[2],\n };\n};\n\nexport default genFontMapToken;\n","import { generate } from '@ant-design/colors';\nimport genControlHeight from '../shared/genControlHeight';\nimport genSizeMapToken from '../shared/genSizeMapToken';\nimport type {\n ColorPalettes,\n LegacyColorPalettes,\n MapToken,\n PresetColorType,\n SeedToken,\n} from '../../interface';\nimport { defaultPresetColors } from '../../seed';\nimport genColorMapToken from '../shared/genColorMapToken';\nimport genCommonMapToken from '../shared/genCommonMapToken';\nimport { generateColorPalettes, generateNeutralColorPalettes } from './colors';\nimport genFontMapToken from '../shared/genFontMapToken';\n\nexport default function derivative(token: SeedToken): MapToken {\n const colorPalettes = (\n Object.keys(defaultPresetColors) as (keyof PresetColorType)[]\n )\n .map((colorKey: keyof PresetColorType) => {\n const colors = generate(token[colorKey]);\n\n return new Array(10).fill(1).reduce((prev, _, i) => {\n prev[`${colorKey}-${i + 1}`] = colors[i];\n prev[`${colorKey}${i + 1}`] = colors[i];\n return prev;\n }, {}) as ColorPalettes & LegacyColorPalettes;\n })\n .reduce(\n (prev, cur) => {\n prev = {\n ...prev,\n ...cur,\n };\n return prev;\n },\n {} as ColorPalettes & LegacyColorPalettes,\n );\n\n return {\n ...token,\n ...colorPalettes,\n // Colors\n ...genColorMapToken(token, {\n generateColorPalettes,\n generateNeutralColorPalettes,\n }),\n // Font\n ...genFontMapToken(token.fontSize),\n // Size\n ...genSizeMapToken(token),\n // Height\n ...genControlHeight(token),\n // Others\n ...genCommonMapToken(token),\n };\n}\n","import { generate } from '@ant-design/colors';\nimport type { GenerateColorMap, GenerateNeutralColorMap } from '../ColorMap';\nimport { getAlphaColor, getLightenSolidColor } from '../../utils';\nimport { TinyColor } from '@ctrl/tinycolor';\nexport const generateColorPalettes: GenerateColorMap = (baseColor: string) => {\n const colors = generate(baseColor, { theme: 'dark' });\n return {\n 1: colors[0],\n 2: colors[1],\n 3: colors[2],\n 4: colors[3],\n 5: colors[6],\n 6: colors[5],\n 7: colors[4],\n 8: colors[6],\n 9: colors[5],\n 10: colors[4],\n // 8: colors[9],\n // 9: colors[8],\n // 10: colors[7],\n };\n};\n\nexport const generateNeutralColorPalettes: GenerateNeutralColorMap = (\n bgBaseColor: string,\n textBaseColor: string,\n) => {\n let colorBgBase = bgBaseColor || '#000';\n let colorTextBase = textBaseColor || '#fff';\n\n colorBgBase = new TinyColor(colorBgBase).isDark()\n ? colorBgBase\n : new TinyColor(colorBgBase).darken(100).toRgbString();\n colorTextBase = new TinyColor(colorTextBase).isLight()\n ? colorTextBase\n : new TinyColor(colorTextBase).lighten(100).toRgbString();\n\n return {\n colorBgBase,\n colorTextBase,\n\n colorText: getAlphaColor(colorTextBase, 0.85),\n colorTextSecondary: getAlphaColor(colorTextBase, 0.65),\n colorTextTertiary: getAlphaColor(colorTextBase, 0.45),\n colorTextQuaternary: getAlphaColor(colorTextBase, 0.25),\n\n colorFill: getAlphaColor(colorTextBase, 0.18),\n colorFillSecondary: getAlphaColor(colorTextBase, 0.12),\n colorFillTertiary: getAlphaColor(colorTextBase, 0.08),\n colorFillQuaternary: getAlphaColor(colorTextBase, 0.04),\n\n colorBgElevated: getLightenSolidColor(colorBgBase, 12),\n colorBgContainer: getLightenSolidColor(colorBgBase, 8),\n colorBgLayout: getLightenSolidColor(colorBgBase, 0),\n colorBgSpotlight: getLightenSolidColor(colorBgBase, 26),\n\n colorBorder: getLightenSolidColor(colorBgBase, 26),\n colorBorderSecondary: getLightenSolidColor(colorBgBase, 19),\n };\n};\n","import { generate } from '@ant-design/colors';\nimport type {\n DerivativeFunc,\n ColorPalettes,\n LegacyColorPalettes,\n MapToken,\n PresetColorType,\n SeedToken,\n AliasToken,\n} from '../../interface';\nimport { defaultPresetColors } from '../../seed';\nimport genColorMapToken from '../shared/genColorMapToken';\nimport { generateColorPalettes, generateNeutralColorPalettes } from './colors';\nimport defaultAlgorithm from '../default';\n\nconst derivative: DerivativeFunc<SeedToken, MapToken> = (\n token,\n mapToken,\n) => {\n const colorPalettes = (\n Object.keys(defaultPresetColors) as (keyof PresetColorType)[]\n )\n .map((colorKey: keyof PresetColorType) => {\n const colors = generate(token[colorKey], { theme: 'dark' });\n\n return new Array(10).fill(1).reduce((prev, _, i) => {\n prev[`${colorKey}-${i + 1}`] = colors[i];\n prev[`${colorKey}${i + 1}`] = colors[i];\n return prev;\n }, {}) as ColorPalettes;\n })\n .reduce(\n (prev, cur) => {\n prev = {\n ...prev,\n ...cur,\n };\n return prev;\n },\n {} as ColorPalettes & LegacyColorPalettes,\n );\n\n const mergedMapToken = mapToken ?? defaultAlgorithm(token);\n\n return {\n ...mergedMapToken,\n\n // Dark tokens\n ...colorPalettes,\n // Colors\n ...genColorMapToken(token, {\n generateColorPalettes,\n generateNeutralColorPalettes,\n }),\n };\n};\n\nexport default derivative;\n","import type { SeedToken, SizeMapToken } from '../../interface';\n\nexport default function genSizeMapToken(token: SeedToken): SizeMapToken {\n const { sizeUnit, sizeStep } = token;\n\n const compactSizeStep = sizeStep - 2;\n\n return {\n sizeXXL: sizeUnit * (compactSizeStep + 10),\n sizeXL: sizeUnit * (compactSizeStep + 6),\n sizeLG: sizeUnit * (compactSizeStep + 2),\n sizeMD: sizeUnit * (compactSizeStep + 2),\n sizeMS: sizeUnit * (compactSizeStep + 1),\n size: sizeUnit * compactSizeStep,\n sizeSM: sizeUnit * compactSizeStep,\n sizeXS: sizeUnit * (compactSizeStep - 1),\n sizeXXS: sizeUnit * (compactSizeStep - 1),\n };\n}\n","import genControlHeight from '../shared/genControlHeight';\nimport type {\n DerivativeFunc,\n MapToken,\n SeedToken,\n AliasToken,\n} from '../../interface';\nimport defaultAlgorithm from '../default';\nimport genCompactSizeMapToken from './genCompactSizeMapToken';\nimport genFontMapToken from '../shared/genFontMapToken';\n\nconst derivative: DerivativeFunc<SeedToken, MapToken> = (token, mapToken) => {\n const mergedMapToken = mapToken ?? defaultAlgorithm(token);\n\n const fontSize = mergedMapToken.fontSizeSM; // Smaller size font-size as base\n const controlHeight = mergedMapToken.controlHeight - 4;\n\n return {\n ...mergedMapToken,\n ...genCompactSizeMapToken(mapToken ?? token),\n\n // font\n ...genFontMapToken(fontSize),\n\n // controlHeight\n controlHeight,\n ...genControlHeight({ ...mergedMapToken, controlHeight }),\n };\n};\n\nexport default derivative;\n","import { getAlphaColor, getDarkenSolidColor } from '../../utils';\n\nexport const generateMettingNeutralColorPalettes = (\n bgBaseColor: string,\n textBaseColor: string,\n) => {\n const colorBgBase = bgBaseColor || '#fff';\n const colorTextBase = textBaseColor || '#000';\n\n return {\n colorBgBase,\n colorTextBase,\n\n colorText: getAlphaColor(colorTextBase, 0.9),\n colorTextSecondary: getAlphaColor(colorTextBase, 0.8),\n colorTextTertiary: getAlphaColor(colorTextBase, 0.7),\n colorTextQuaternary: getAlphaColor(colorTextBase, 0.6),\n\n colorFill: getAlphaColor(colorTextBase, 0.3),\n colorFillSecondary: getAlphaColor(colorTextBase, 0.2),\n colorFillTertiary: getAlphaColor(colorTextBase, 0.1),\n colorFillQuaternary: getAlphaColor(colorTextBase, 0.06),\n\n colorBgLayout: getDarkenSolidColor(colorBgBase, 6),\n colorBgContainer: getDarkenSolidColor(colorBgBase, 0),\n colorBgElevated: getDarkenSolidColor(colorBgBase, 0),\n colorBgSpotlight: getAlphaColor(colorTextBase, 1),\n\n colorBorder: getDarkenSolidColor(colorBgBase, 30),\n colorBorderSecondary: getDarkenSolidColor(colorBgBase, 12),\n };\n};\n","import { generate } from '@ant-design/colors';\nimport type {\n ColorPalettes,\n LegacyColorPalettes,\n MapToken,\n PresetColorType,\n SeedToken,\n} from '../../interface';\nimport { defaultPresetColors } from '../../seed';\nimport defaultAlgorithm from '../default';\nimport { generateMettingNeutralColorPalettes } from './colors';\n\nexport default function derivative(\n token: SeedToken,\n mapToken: MapToken,\n): MapToken {\n const mergedMapToken = mapToken ?? defaultAlgorithm(token);\n const colorPalettes = (\n Object.keys(defaultPresetColors) as (keyof PresetColorType)[]\n )\n .map((colorKey: keyof PresetColorType) => {\n const colors = generate(token[colorKey]);\n\n return new Array(10).fill(1).reduce((prev, _, i) => {\n prev[`${colorKey}-${i + 1}`] = colors[i];\n prev[`${colorKey}${i + 1}`] = colors[i];\n return prev;\n }, {}) as ColorPalettes & LegacyColorPalettes;\n })\n .reduce(\n (prev, cur) => {\n prev = {\n ...prev,\n ...cur,\n };\n return prev;\n },\n {} as ColorPalettes & LegacyColorPalettes,\n );\n const { fontSize, colorBgBase, colorTextBase } = mergedMapToken;\n\n return {\n ...mergedMapToken,\n\n ...colorPalettes,\n\n // Colors\n ...generateMettingNeutralColorPalettes(colorBgBase, colorTextBase),\n // Font\n fontSizeSM: fontSize ,\n fontSize: fontSize + 2,\n fontSizeLG: fontSize + 3,\n fontSizeXL: fontSize + 4,\n };\n}\n","import { TinyColor } from '@ctrl/tinycolor';\n\nfunction isStableColor(color: number): boolean {\n return color >= 0 && color <= 255;\n}\n\nfunction getAlphaColor(frontColor: string, backgroundColor: string): string {\n const { r: fR, g: fG, b: fB, a: originAlpha } = new TinyColor(frontColor).toRgb();\n if (originAlpha < 1) {\n return frontColor;\n }\n\n const { r: bR, g: bG, b: bB } = new TinyColor(backgroundColor).toRgb();\n\n for (let fA = 0.01; fA <= 1; fA += 0.01) {\n const r = Math.round((fR - bR * (1 - fA)) / fA);\n const g = Math.round((fG - bG * (1 - fA)) / fA);\n const b = Math.round((fB - bB * (1 - fA)) / fA);\n if (isStableColor(r) && isStableColor(g) && isStableColor(b)) {\n return new TinyColor({ r, g, b, a: Math.round(fA * 100) / 100 }).toRgbString();\n }\n }\n\n // fallback\n /* istanbul ignore next */\n return new TinyColor({ r: fR, g: fG, b: fB, a: 1 }).toRgbString();\n}\n\nexport default getAlphaColor;\n","import { TinyColor } from '@ctrl/tinycolor';\nimport type { AliasToken, MapToken, SeedToken } from '../../interface';\nimport seedToken from '../../seed';\nimport getAlphaColor from './getAlphaColor';\n\n/** Raw merge of `@ant-design/cssinjs` token. Which need additional process */\ntype RawMergedToken = MapToken & { override: Partial<AliasToken> };\n\n/**\n * Seed (designer) > Derivative (designer) > Alias (developer).\n *\n * Merge seed & derivative & override token and generate alias token for developer.\n */\nexport default function formatToken(derivativeToken: RawMergedToken): AliasToken {\n const { override, ...restToken } = derivativeToken;\n const overrideTokens = { ...override };\n\n Object.keys(seedToken).forEach((token) => {\n delete overrideTokens[token as keyof SeedToken];\n });\n\n const mergedToken = {\n ...restToken,\n ...overrideTokens,\n };\n\n const screenXS = 480;\n const screenSM = 576;\n const screenMD = 768;\n const screenLG = 992;\n const screenXL = 1200;\n const screenXXL = 1600;\n\n // Motion\n if (mergedToken.motion === false) {\n const fastDuration = '0s';\n mergedToken.motionDurationFast = fastDuration;\n mergedToken.motionDurationMid = fastDuration;\n mergedToken.motionDurationSlow = fastDuration;\n }\n\n // Generate alias token\n const aliasToken: AliasToken = {\n ...mergedToken,\n\n // ============== Background ============== //\n colorFillContent: mergedToken.colorFillSecondary,\n colorFillContentHover: mergedToken.colorFill,\n colorFillAlter: mergedToken.colorFillQuaternary,\n colorBgContainerDisabled: mergedToken.colorFillTertiary,\n\n // ============== Split ============== //\n colorBorderBg: mergedToken.colorBgContainer,\n colorSplit: getAlphaColor(mergedToken.colorBorderSecondary, mergedToken.colorBgContainer),\n\n // ============== Text ============== //\n colorTextPlaceholder: mergedToken.colorTextQuaternary,\n colorTextDisabled: mergedToken.colorTextQuaternary,\n colorTextHeading: mergedToken.colorText,\n colorTextLabel: mergedToken.colorTextSecondary,\n colorTextDescription: mergedToken.colorTextTertiary,\n colorTextLightSolid: mergedToken.colorWhite,\n colorHighlight: mergedToken.colorError,\n colorBgTextHover: mergedToken.colorFillSecondary,\n colorBgTextActive: mergedToken.colorFill,\n\n colorIcon: mergedToken.colorTextTertiary,\n colorIconHover: mergedToken.colorText,\n\n colorErrorOutline: getAlphaColor(mergedToken.colorErrorBg, mergedToken.colorBgContainer),\n colorWarningOutline: getAlphaColor(mergedToken.colorWarningBg, mergedToken.colorBgContainer),\n\n // Font\n fontSizeIcon: mergedToken.fontSizeSM,\n\n // Line\n lineWidthFocus: mergedToken.lineWidth * 2,\n\n // Control\n lineWidth: mergedToken.lineWidth,\n controlOutlineWidth: mergedToken.lineWidth * 2,\n // Checkbox size and expand icon size\n controlInteractiveSize: mergedToken.controlHeight / 2,\n\n controlItemBgHover: mergedToken.colorFillTertiary,\n controlItemBgActive: mergedToken.colorPrimaryBg,\n controlItemBgActiveHover: mergedToken.colorPrimaryBgHover,\n controlItemBgActiveDisabled: mergedToken.colorFill,\n controlTmpOutline: mergedToken.colorFillQuaternary,\n controlOutline: getAlphaColor(mergedToken.colorPrimaryBg, mergedToken.colorBgContainer),\n\n lineType: mergedToken.lineType,\n borderRadius: mergedToken.borderRadius,\n borderRadiusXS: mergedToken.borderRadiusXS,\n borderRadiusSM: mergedToken.borderRadiusSM,\n borderRadiusLG: mergedToken.borderRadiusLG,\n\n fontWeightStrong: 600,\n\n opacityLoading: 0.65,\n\n linkDecoration: 'none',\n linkHoverDecoration: 'none',\n linkFocusDecoration: 'none',\n\n controlPaddingHorizontal: 12,\n controlPaddingHorizontalSM: 8,\n\n paddingXXS: mergedToken.sizeXXS,\n paddingXS: mergedToken.sizeXS,\n paddingSM: mergedToken.sizeSM,\n padding: mergedToken.size,\n paddingMD: mergedToken.sizeMD,\n paddingLG: mergedToken.sizeLG,\n paddingXL: mergedToken.sizeXL,\n\n paddingContentHorizontalLG: mergedToken.sizeLG,\n paddingContentVerticalLG: mergedToken.sizeMS,\n paddingContentHorizontal: mergedToken.sizeMS,\n paddingContentVertical: mergedToken.sizeSM,\n paddingContentHorizontalSM: mergedToken.size,\n paddingContentVerticalSM: mergedToken.sizeXS,\n\n marginXXS: mergedToken.sizeXXS,\n marginXS: mergedToken.sizeXS,\n marginSM: mergedToken.sizeSM,\n margin: mergedToken.size,\n marginMD: mergedToken.sizeMD,\n marginLG: mergedToken.sizeLG,\n marginXL: mergedToken.sizeXL,\n marginXXL: mergedToken.sizeXXL,\n\n boxShadow: `\n 0 6px 16px 0 rgba(0, 0, 0, 0.08),\n 0 3px 6px -4px rgba(0, 0, 0, 0.12),\n 0 9px 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowSecondary: `\n 0 6px 16px 0 rgba(0, 0, 0, 0.08),\n 0 3px 6px -4px rgba(0, 0, 0, 0.12),\n 0 9px 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowTertiary: `\n 0 1px 2px 0 rgba(0, 0, 0, 0.03),\n 0 1px 6px -1px rgba(0, 0, 0, 0.02),\n 0 2px 4px 0 rgba(0, 0, 0, 0.02)\n `,\n\n screenXS,\n screenXSMin: screenXS,\n screenXSMax: screenSM - 1,\n screenSM,\n screenSMMin: screenSM,\n screenSMMax: screenMD - 1,\n screenMD,\n screenMDMin: screenMD,\n screenMDMax: screenLG - 1,\n screenLG,\n screenLGMin: screenLG,\n screenLGMax: screenXL - 1,\n screenXL,\n screenXLMin: screenXL,\n screenXLMax: screenXXL - 1,\n screenXXL,\n screenXXLMin: screenXXL,\n\n boxShadowPopoverArrow: '2px 2px 5px rgba(0, 0, 0, 0.05)',\n boxShadowCard: `\n 0 1px 2px -2px ${new TinyColor('rgba(0, 0, 0, 0.16)').toRgbString()},\n 0 3px 6px 0 ${new TinyColor('rgba(0, 0, 0, 0.12)').toRgbString()},\n 0 5px 12px 4px ${new TinyColor('rgba(0, 0, 0, 0.09)').toRgbString()}\n `,\n boxShadowDrawerRight: `\n -6px 0 16px 0 rgba(0, 0, 0, 0.08),\n -3px 0 6px -4px rgba(0, 0, 0, 0.12),\n -9px 0 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowDrawerLeft: `\n 6px 0 16px 0 rgba(0, 0, 0, 0.08),\n 3px 0 6px -4px rgba(0, 0, 0, 0.12),\n 9px 0 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowDrawerUp: `\n 0 6px 16px 0 rgba(0, 0, 0, 0.08),\n 0 3px 6px -4px rgba(0, 0, 0, 0.12),\n 0 9px 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowDrawerDown: `\n 0 -6px 16px 0 rgba(0, 0, 0, 0.08),\n 0 -3px 6px -4px rgba(0, 0, 0, 0.12),\n 0 -9px 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowTabsOverflowLeft: 'inset 10px 0 8px -8px rgba(0, 0, 0, 0.08)',\n boxShadowTabsOverflowRight: 'inset -10px 0 8px -8px rgba(0, 0, 0, 0.08)',\n boxShadowTabsOverflowTop: 'inset 0 10px 8px -8px rgba(0, 0, 0, 0.08)',\n boxShadowTabsOverflowBottom: 'inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08)',\n\n // Override AliasToken\n ...overrideTokens,\n };\n\n return aliasToken;\n}\n","import defaultDerivative from '../algorithm/default';\nimport darkDerivative from '../algorithm/dark';\nimport compactDerivative from '../algorithm/compact';\nimport meetingDerivative from '../algorithm/meeting';\nimport seedToken from '../seed';\nimport type { ThemeType, MapToken, AliasToken, SeedToken } from '../interface';\nimport formatToken from '../algorithm/util/alias';\nimport { mergeWith, omit, pick } from 'lodash-es';\n\nconst getAliasToken = (\n token: Partial<AliasToken> = seedToken,\n type: ThemeType = 'default',\n) => {\n let seed = pick(token, Object.keys(seedToken)) as SeedToken;\n seed = mergeWith(seedToken, seed);\n const defaultMapToken: MapToken = defaultDerivative(seed);\n const defaultToken = omit(token, Object.keys(seedToken));\n let mapToken;\n\n switch (type) {\n case 'dark':\n mapToken = darkDerivative(seed, defaultMapToken);\n break;\n case 'compact':\n mapToken = compactDerivative(seed, defaultMapToken);\n break;\n case 'meeting':\n mapToken = meetingDerivative(seed, defaultMapToken);\n break;\n default:\n mapToken = defaultMapToken;\n break;\n }\n return formatToken({ ...mapToken, override: defaultToken });\n};\n\nexport default getAliasToken;\n","export const PresetColors = [\n 'blue',\n 'purple',\n 'cyan',\n 'green',\n 'magenta',\n 'pink',\n 'red',\n 'orange',\n 'yellow',\n 'volcano',\n 'geekblue',\n 'lime',\n 'gold',\n] as const;\n\nexport type PresetColorKey = (typeof PresetColors)[number];\n\nexport type PresetColorType = Record<PresetColorKey, string>;\n\ntype ColorPaletteKeyIndex = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;\n\nexport type LegacyColorPalettes = {\n /**\n * @deprecated\n */\n [key in `${keyof PresetColorType}-${ColorPaletteKeyIndex}`]: string;\n};\n\nexport type ColorPalettes = {\n [key in `${keyof PresetColorType}${ColorPaletteKeyIndex}`]: string;\n};\n","import getAliasToken from './alias';\nexport { default as seed } from './seed';\nexport { default as defaultAlgorithm } from './algorithm/default';\nexport { default as darkAlgorithm } from './algorithm/dark';\nexport { default as compactAlgorithm } from './algorithm/compact';\nexport { default as formatAliasToken } from './algorithm/util/alias';\nexport { getAliasToken };\nexport * from './interface';\nexport * from './utils';\nconst token = getAliasToken();\nexport default token;\n","/**\n * 异常处理程序\n */\nimport { get } from 'lodash-es';\nexport const TraceIdKey = 'x-g-trace-id';\nexport const StateKey = 'x-g-process-result';\n\nlet microServiceMap: any = {};\nexport const setMicroServiceMap = (map: any) => {\n microServiceMap = { ...microServiceMap, ...map };\n};\n\nexport const getTraceId = (response: any) =>\n get(response, 'headers', TraceIdKey) ||\n get(response, 'config.headers', TraceIdKey);\n\nexport const getMicroSevicesUrl = (url: string, serviceId?: string) => {\n const serviceIdMap: any = {};\n Object.keys(microServiceMap).forEach((key) => {\n microServiceMap[key as keyof typeof microServiceMap].forEach(\n (module: any) => {\n serviceIdMap[module] = key;\n },\n );\n });\n\n const urlMap: any = {};\n Object.keys(microServiceMap).forEach((key) => {\n urlMap[key] = key;\n });\n const suffix = '.api';\n //传入拼接的url\n let newUrl = suffix ? `${url}${suffix}` : url;\n if (serviceId) {\n newUrl = `/${urlMap[serviceId]}${newUrl}`;\n } else {\n const [, urlPrefix] = newUrl.split('/');\n newUrl = serviceIdMap[urlPrefix]\n ? `/${serviceIdMap[urlPrefix]}${newUrl}`\n : newUrl;\n }\n return newUrl;\n};\n","import { globalStore, storageStore } from '../store';\nimport { find, get } from 'lodash-es';\n\nconst LOCALE_VERSION = 'LOCALE-v1';\nexport const getAntdLocaleKey = (localeKey: string) => {\n if (localeKey === 'en') return 'en-US';\n return localeKey;\n};\n\nexport const getLocaleKey = () => {\n let key = storageStore.get(LOCALE_VERSION);\n if (!!key) return key;\n const defaultLoacle = find(globalStore?.platformLanguages, {\n isDefault: true,\n });\n return get(defaultLoacle, 'locale', 'zh_CN');\n};\n\nexport const setLocaleKey = (locale: string) => {\n storageStore.set(LOCALE_VERSION, locale);\n location.reload();\n return locale;\n};\n","import { isEmpty, groupBy, has, join } from 'lodash-es';\nconst resolvePath = (...paths) => {\n let resolved = join(paths, '/');\n resolved = resolved.replace(/\\/+/g, '/');\n if (!resolved.startsWith('/')) {\n resolved = '/' + resolved;\n }\n return resolved;\n};\nexport const getRoutes = (routesMaps: any): any[] => {\n if (isEmpty(routesMaps)) return [];\n const groupRotes = groupBy(routesMaps, 'parentId');\n const { root, ...otherRoutes } = groupRotes;\n const mapRoutes = (routes: any[], parentPath = '/'): any[] => {\n return routes.map((itemRoute) => {\n const { id, path, ...restRoute } = itemRoute;\n const itemPath =\n path.indexOf('/**') == 0 ? path : resolvePath(parentPath, path);\n if (has(otherRoutes, id))\n return {\n ...restRoute,\n id,\n children: mapRoutes(otherRoutes[id], itemPath),\n path: itemPath,\n };\n return { ...restRoute, path: itemPath, id };\n });\n };\n return mapRoutes(root);\n};\n","import {\n requestInstance,\n InternalAxiosRequestConfig,\n userStore,\n globalStore,\n initDynamicLang,\n} from './core';\nimport type { GlobalOptions } from './core/store/type';\nimport { getLocaleKey } from './core/utils';\nimport { uniqueId, get, isEmpty } from 'lodash-es';\n\nconst TraceIdKey = 'X-G-TRACE-ID';\n\nexport const useRequestMicroSevices = (microServiceMap?: any) => {\n return (config: InternalAxiosRequestConfig) => {\n const { url = '', serviceId } = config;\n const serviceIdMap: any = {};\n Object.keys(microServiceMap).forEach((key) => {\n microServiceMap[key as keyof typeof microServiceMap].forEach(\n (module: any) => {\n serviceIdMap[module] = key;\n },\n );\n });\n const urlMap: any = {};\n Object.keys(microServiceMap).forEach((key) => {\n urlMap[key] = key;\n });\n const suffix = '.api';\n //传入拼接的url\n let newUrl = suffix ? `${url}${suffix}` : url;\n if (serviceId) {\n newUrl = `/${urlMap[serviceId]}${newUrl}`;\n } else {\n const [, urlPrefix] = newUrl.split('/');\n newUrl = serviceIdMap[urlPrefix]\n ? `/${serviceIdMap[urlPrefix]}${newUrl}`\n : newUrl;\n }\n delete config.serviceId;\n config.url = newUrl;\n return config;\n };\n};\nexport const useRequestHeader =\n (userLanguage: string) => (config: InternalAxiosRequestConfig) => {\n const TRACE_ID = uniqueId(TraceIdKey);\n config.headers = {\n ...config.headers,\n [TraceIdKey]: TRACE_ID,\n needHtmlEscape: 'false',\n userLanguage,\n ...userStore.userIdentity,\n } as any;\n return config;\n };\nexport interface MainOptions extends GlobalOptions {\n microServiceMap?: any;\n locale?: string;\n dynamicLangCallback?: () => void;\n}\n\nexport default async ({\n microServiceMap,\n dynamicLangCallback,\n ...globalOptions\n}: MainOptions) => {\n requestInstance.interceptors.request.use(\n useRequestMicroSevices(microServiceMap),\n );\n await globalStore.findPlantform();\n const locale = getLocaleKey();\n requestInstance.interceptors.request.use(useRequestHeader(locale));\n\n await initDynamicLang(locale);\n await dynamicLangCallback?.();\n const res = await globalStore.init(globalOptions);\n return res;\n};\n"],"names":["instance","axios","get","CodeListStoreInstance","ParameterStoreInstance","i18nNext","genSizeMapToken","getAlphaColor","generateColorPalettes","generateNeutralColorPalettes","genFontSizes","derivative","defaultAlgorithm","genCompactSizeMapToken","defaultDerivative","darkDerivative","compactDerivative","meetingDerivative","TraceIdKey","storageStore"],"mappings":"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","x_google_ignoreList":[28,30,31,32,33,34,35,36,37,38,39,40]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/core/request/InterceptorManager.ts","../src/core/request/index.ts","../src/core/cache/index.ts","../src/core/event/index.ts","../src/core/store/codelist/services.ts","../src/core/store/codelist/index.ts","../src/core/store/parameter/services.ts","../src/core/store/parameter/index.ts","../src/core/store/websocket.ts","../src/core/store/progress.ts","../src/core/store/global/services.ts","../src/core/store/storage.ts","../src/core/store/user/services.ts","../src/core/store/user/index.ts","../src/core/store/menu/index.ts","../src/core/store/login/services/base.ts","../src/core/store/login/services/sso.ts","../src/core/store/login/services/authentication.ts","../src/core/store/login/services/validate.ts","../src/core/store/login/base.ts","../src/core/store/login/sso.ts","../src/core/store/login/validate.ts","../src/core/store/login/index.ts","../src/core/store/global/index.ts","../src/core/store/companydata/services.ts","../src/core/store/companydata/index.ts","../src/core/store/index.ts","../src/core/i18n/services.ts","../node_modules/i18next/dist/esm/i18next.js","../src/core/i18n/index.ts","../node_modules/@ctrl/tinycolor/dist/module/util.js","../node_modules/@ctrl/tinycolor/dist/module/conversion.js","../node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","../node_modules/@ctrl/tinycolor/dist/module/format-input.js","../node_modules/@ctrl/tinycolor/dist/module/index.js","../node_modules/@ctrl/tinycolor/dist/module/readability.js","../node_modules/@ctrl/tinycolor/dist/module/to-ms-filter.js","../node_modules/@ctrl/tinycolor/dist/module/from-ratio.js","../node_modules/@ctrl/tinycolor/dist/module/random.js","../node_modules/@ant-design/colors/es/generate.js","../node_modules/@ant-design/colors/es/index.js","../src/core/theme/algorithm/shared/genControlHeight.ts","../src/core/theme/algorithm/shared/genSizeMapToken.ts","../src/core/theme/seed.ts","../src/core/theme/utils.ts","../src/core/theme/algorithm/shared/genColorMapToken.ts","../src/core/theme/algorithm/shared/genRadius.ts","../src/core/theme/algorithm/shared/genCommonMapToken.ts","../src/core/theme/algorithm/default/colors.ts","../src/core/theme/algorithm/shared/genFontSizes.ts","../src/core/theme/algorithm/shared/genFontMapToken.ts","../src/core/theme/algorithm/default/index.ts","../src/core/theme/algorithm/dark/colors.ts","../src/core/theme/algorithm/dark/index.ts","../src/core/theme/algorithm/compact/genCompactSizeMapToken.ts","../src/core/theme/algorithm/compact/index.ts","../src/core/theme/algorithm/meeting/colors.ts","../src/core/theme/algorithm/meeting/index.ts","../src/core/theme/algorithm/util/getAlphaColor.ts","../src/core/theme/algorithm/util/alias.ts","../src/core/theme/alias/index.ts","../src/core/theme/interface/presetColors.ts","../src/core/theme/index.ts","../src/core/microservices/index.ts","../src/core/utils/locale.ts","../src/core/utils/route.ts","../src/main.ts"],"sourcesContent":["import { GantServerOptions } from './interface';\nimport { forEach } from 'lodash-es';\nclass InterceptorManager<V> {\n handlers: any[];\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(\n fulfilled?:\n | ((value: V, options?: GantServerOptions) => V | Promise<V>)\n | null,\n rejected?: ((error: any, options?: GantServerOptions) => any) | null,\n ) {\n this.handlers.push({\n fulfilled,\n rejected,\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id: number) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn: any) {\n forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","import axios from 'axios';\nimport type { AxiosResponse, AxiosInterceptorManager } from 'axios';\nimport {\n GantAxiosRequestConfig,\n GantServerOptions,\n InternalAxiosRequestConfig,\n} from './interface';\nimport InterceptorManager from './InterceptorManager';\nexport * from './interface';\n\nconst instance = axios.create({});\nconst responseInterceptor = new InterceptorManager<AxiosResponse>();\n\ntype RequestMethodType = <T = any>(\n url: string,\n config?: GantAxiosRequestConfig,\n options?: GantServerOptions,\n) => Promise<T>;\n\ntype Request = {\n <T = any>(\n url: string,\n config: GantAxiosRequestConfig,\n options?: GantServerOptions,\n ): Promise<T>;\n} & {\n post: RequestMethodType;\n get: RequestMethodType;\n put: RequestMethodType;\n delete: RequestMethodType;\n};\nconst defaultOptions = {\n showSuccess: false,\n successMessage: '',\n showWarning: false,\n showError: true,\n getParams: false,\n isStream: false,\n dangerParse: false,\n};\nconst requestInterceptor: RequestMethodType = function (\n url,\n config,\n optionsProp,\n) {\n const options = { ...defaultOptions, ...optionsProp };\n const { getParams, isStream } = options;\n const responseInterceptorChain: any[] = [];\n\n responseInterceptor.forEach(function pushResponseInterceptors(\n interceptor: any,\n ) {\n responseInterceptorChain.push(interceptor);\n });\n\n let promise = instance.request<any, AxiosResponse>({\n method: 'post',\n ...config,\n url,\n });\n let i = 0;\n while (i < responseInterceptorChain.length) {\n const fulfilled = responseInterceptorChain[i]?.fulfilled;\n const rejected = responseInterceptorChain[i]?.rejected;\n promise = promise\n .then((res: any) => {\n if (typeof fulfilled == 'function') return fulfilled(res, options);\n return res;\n })\n .catch((reject: any) => {\n if (typeof rejected == 'function') return rejected(reject, options);\n return Promise.reject(reject);\n });\n i++;\n }\n return promise.then((res: AxiosResponse) => {\n const { data: serveData } = res;\n return getParams ? res : isStream ? serveData : serveData.data;\n });\n};\n\nconst request = requestInterceptor as Request;\n\n//兼容写法\n(\n ['post', 'get', 'put', 'delete'] as ('post' | 'get' | 'put' | 'delete')[]\n).forEach((method) => {\n request[method] = function namedRequest(url, config, ...options) {\n return request(url, { ...config, method }, ...options);\n } as RequestMethodType;\n});\n\nexport default request;\nexport const requestInstance = {\n ...instance,\n interceptors: {\n request: instance.interceptors\n .request as AxiosInterceptorManager<InternalAxiosRequestConfig>,\n response: responseInterceptor,\n },\n};\n","// 缓存类\nclass CacheItem {\n constructor(namespace: string) {\n this.cache[namespace] = {};\n }\n private cache: { [key: string]: any } = {};\n get(key: string) {\n return this.cache[key];\n }\n set(key: string, value: any) {\n this.cache[key] = value;\n return this.cache[key];\n }\n}\n\nclass proxyCacheConstructor {\n private static instance: proxyCacheConstructor | null = null;\n private store: { [key: string]: CacheItem } = {};\n public static getInstance() {\n if (!this.instance) {\n this.instance = new proxyCacheConstructor();\n }\n return this.instance;\n }\n public namespace(namespace: string) {\n this.store[namespace] = new CacheItem(namespace);\n return this.store[namespace];\n }\n}\n\nconst expireCache = proxyCacheConstructor.getInstance();\n\nexport interface CacheD<T> {\n (key: string, value?: T): void | T;\n get: (key: string) => T;\n set: (key: string, value: T) => void;\n}\n\nexport default expireCache;\n","import mitt from 'mitt';\n\nconst emitter = mitt();\n\nexport default emitter;\n","import request from '@core/request';\n\nexport function findAllCodeListApi() {\n return request('/codeList/findAll', {\n data: {},\n serviceId: 'fwPlatform',\n });\n}\n","import { findAllCodeListApi } from './services';\nimport { groupBy, find, reduce } from 'lodash-es';\n\nexport interface CodeTypeGroup {\n codeTypeId: string;\n id: string;\n isGroup: boolean;\n name: string;\n type: string;\n typeName: string;\n value: string;\n}\n\nexport interface CodeTypeChild extends CodeTypeGroup {\n groupId: string;\n}\n\nexport type CodeTypeItem = CodeTypeChild | CodeTypeGroup;\nexport type CodeList = CodeTypeItem[];\nexport type CodeValue = Record<string, any>;\nexport type CodeMaps = { [name: string]: CodeList };\n\nclass CodeListStore {\n codeLists: CodeList = [];\n codeMaps: CodeMaps = {};\n async findAllCodeList() {\n const res = await findAllCodeListApi();\n const data = res || [];\n const dataMap = groupBy(data, 'type');\n this.codeLists = data;\n this.codeMaps = dataMap;\n }\n getCodeLocaleList = (codeType: string) => {\n return [...this.codeMaps?.[codeType]] || [];\n };\n getCodeLocaleName = (codeType: string, value: string) => {\n const codeList = this.getCodeLocaleList(codeType);\n function getName(value: string): string {\n const code = find(codeList, (item: any) => item.value === String(value));\n return code?.name || '';\n }\n if (Array.isArray(value)) {\n const text = reduce(\n value,\n (res = '', value = '') => res + ',' + getName(value),\n '',\n );\n return text.slice(1, text.length);\n } else if (String(value).indexOf(',') >= 0) {\n const str = value.replace('[', '').replace(']', '');\n const valueArr = str.split(',');\n const text = reduce(\n valueArr,\n (res = '', value = '') => res + ',' + getName(value),\n '',\n );\n return text.slice(1, text.length);\n } else {\n return getName(value);\n }\n };\n}\n\nconst codeListStoreInstance = new CodeListStore();\nexport const getCodeLocaleList = codeListStoreInstance.getCodeLocaleList;\nexport const getCodeLocaleName = codeListStoreInstance.getCodeLocaleName;\nexport default codeListStoreInstance;\n","import request from '@core/request';\n//获取系统参数\nexport function findSystemParameterApi() {\n return request(\n '/parameter/findAll',\n {\n serviceId: 'fwPlatform',\n data: {},\n },\n {\n showError: false,\n },\n );\n}\n","import { findSystemParameterApi } from './services';\nimport { keyBy, pick } from 'lodash-es';\n\nexport interface ParameterItem {\n catalog: string;\n description: string;\n id: string;\n name: string;\n optCounter: number;\n type: string;\n value: string;\n}\n\nexport type ParameterList = ParameterItem[];\nexport type ParameterMaps = { [name: string]: ParameterItem };\n\nclass ParameterStoreClass {\n parameterList: ParameterList = [];\n parameterMap: ParameterMaps = {};\n findAllParameters= async()=>{\n const res = await findSystemParameterApi();\n const data = res || [];\n const dataMap: any = keyBy(data, 'name');\n this.parameterList = data;\n this.parameterMap = dataMap;\n }\n /**\n * 获取系统参数,可以一次指定获取多个参数(传入数组)\n * @param name {string | string[]} 需要获取到的参数的key\n * @returns 返回根据key查询到一个参数对象\n */\n getSystemParameterByName =(name: string | string[])=> {\n if (typeof name === 'string') return this.parameterMap[name];\n return pick(this.parameterMap, name);\n }\n}\n\nconst parameterStoreInstance = new ParameterStoreClass();\n\nexport default parameterStoreInstance;\n","import { uniqueId, get, omit } from \"lodash-es\";\nimport emitter from \"@core/event\";\n//计算最终的WebSocketUrl\nconst pingMsg = \"ping\"; //客户端心跳信息\nconst pongMsg = \"pong\"; //服务端心跳信息\nconst reconnectTimeout = 10000;\nconst pingPongTimeout = 10000; //发送的心跳的间隔时间\nexport interface WEBSOCKETRECROD {\n id: string;\n recipientType: string;\n recipientCode: string;\n title?: string;\n status?: \"01\" | \"00\";\n senderName?: string;\n senderTime?: string;\n content: string;\n linkUri?: string;\n linkName?: string;\n progress?: number;\n}\nexport const WS_CONTENT_SUCCESS = \"WS_CONTENT_SUCCESS\";\nexport const WS_CONTENT_ERROR = \"WS_CONTENT_ERROR\";\nexport const WS_CONTENT_CLOSE = \"WS_CONTENT_CLOSE\";\nconst getWebSocketUrl = (userLoginName: string) => {\n const suffix = \"notification-ws\";\n const paramStr = `userLoginName=${userLoginName}`;\n const { host, protocol, port, hostname } = window.location;\n //是否是https\n const isHttps = protocol.includes(\"https\");\n //ws协议\n let wsProtocol = isHttps ? \"wss\" : \"ws\";\n //默认是host\n let wsHost: string = host;\n //如果不是是https并且有端口号时,ws端口就是web端口+1\n if (!isHttps && port) {\n let newhost = parseInt(port);\n wsHost = `${hostname}:${newhost}`;\n }\n const wsAddress = `${wsProtocol}://${wsHost}/${suffix}?${paramStr}`;\n return wsAddress;\n};\n\ntype GantWebSocketOptions = {\n disReconnect?: boolean;\n repeatLimit?: null | undefined | number;\n};\nexport class GantWebSocket {\n RECIPIENT_TYPE_ALL = \"all\"; // 所有用户均可收到的消息类型【公告等消息】\n RECIPIENT_TYPE_USER = \"user\"; // 某个用户可以收到【用户通知】\n RECIPIENT_TYPE_OBSERVER = \"obsvr\"; // 某个观察者可以收到【接口处理进度】\n RECIPIENT_TYPE_CONNECTION = \"conn\"; // 某个连接成功接收到【ws连接专用】\n //链接地址\n private webSocketUrl: string = \"\";\n // WebSocket\n private ws: WebSocket | null = null;\n //重链次数\n private repeat = 0;\n // 链接状态\n private connectLoading = false;\n\n //禁止重链\n private disReconnect = false;\n\n private pingTimeoutFn: null | NodeJS.Timeout = null;\n private pongTimeoutFn: null | NodeJS.Timeout = null;\n private reconnectFn: null | NodeJS.Timeout = null;\n\n //是否限制次数\n private repeatLimit: null | undefined | number = 2;\n\n //链接标识\n connectionId: string = \"\";\n private userLoginName: string = \"\";\n\n private eventStack: {\n [name: string]: {\n type: \"recipientType\" | \"message\";\n recipientType: string[];\n event: (data: WEBSOCKETRECROD) => void;\n };\n } = {};\n constructor() {}\n\n init = (userLoginName: string, options?: GantWebSocketOptions) => {\n this.userLoginName = userLoginName;\n this.webSocketUrl = getWebSocketUrl(userLoginName);\n this.disReconnect = get(options, \"disReconnect\", false);\n this.repeatLimit = get(options, \"repeatLimit\", 20);\n this.createWebSocket();\n };\n createWebSocket = () => {\n this.connectLoading = true;\n try {\n this.ws = new WebSocket(this.webSocketUrl);\n this.registerEvent();\n } catch (error) {\n this.ws = null;\n this.reconnect();\n } finally {\n this.connectLoading = false;\n }\n };\n //重新链接\n reconnect = () => {\n if (this.reconnectFn) clearTimeout(this.reconnectFn);\n if (!!this.repeatLimit && this.repeatLimit <= this.repeat) return;\n if (this.connectLoading || this.disReconnect || this.ws) return;\n this.repeat++;\n this.reconnectFn = setTimeout(() => {\n this.createWebSocket();\n }, reconnectTimeout);\n };\n //链接状态检查\n heartCheck = () => {\n this.repeat = 0;\n if (this.disReconnect) return;\n this.pingTimeoutFn = setTimeout(() => {\n const msg = `{\"userLoginName\":\"${this.userLoginName}\",\"connectionId\":\"${this.connectionId}\",\"content\":\"${pingMsg}\"}`;\n this.ws?.send(msg);\n this.pongTimeoutFn = setTimeout(() => {\n this.ws?.close();\n }, pingPongTimeout);\n }, pingPongTimeout);\n };\n\n heartReset = () => {\n if (this.pingTimeoutFn) {\n clearTimeout(this.pingTimeoutFn);\n this.pingTimeoutFn = null;\n }\n if (this.pongTimeoutFn) {\n clearTimeout(this.pongTimeoutFn);\n this.pongTimeoutFn = null;\n }\n };\n\n //主动断开连接\n disconnect = () => {\n this.heartReset();\n this.ws?.readyState == 1 && this.ws?.close();\n this.ws = null;\n };\n\n //注册事件\n registerEvent = () => {\n if (!this.ws) return;\n this.ws.onopen = () => {\n this.heartCheck();\n };\n this.ws.onmessage = (e) => {\n this.heartReset();\n this.heartCheck();\n const dataStr = e.data;\n try {\n //忽略心跳回复信息\n if (\n dataStr == pongMsg ||\n JSON.parse(dataStr).content == pingMsg ||\n JSON.parse(dataStr).content == pongMsg\n )\n return;\n const wsdata: WEBSOCKETRECROD = JSON.parse(dataStr);\n const data = {\n ...wsdata,\n senderTime: wsdata.senderTime,\n };\n emitter.emit(WS_CONTENT_SUCCESS, data);\n Object.keys(this.eventStack).map((eventId) => {\n const itemEevent = this.eventStack[eventId];\n const isIncludes = itemEevent.recipientType?.includes(\n data.recipientType\n );\n if (isIncludes) itemEevent?.event?.(data);\n });\n //存储服务端连接成功后的第一次响应返回的标识id\n if (data.recipientType == this.RECIPIENT_TYPE_CONNECTION) {\n this.connectionId = data.recipientCode;\n return;\n }\n } catch (err) {\n console.warn(\"received error!!!\", err);\n }\n };\n this.ws.onerror = () => {\n this.heartReset();\n this.reconnect();\n emitter.emit(WS_CONTENT_ERROR);\n };\n this.ws.onclose = () => {\n console.warn(\"webSocket close\");\n this.ws = null;\n this.heartReset();\n this.reconnect();\n emitter.emit(WS_CONTENT_CLOSE);\n };\n };\n\n addTypeListener = (\n type: string | string[],\n event: (data: WEBSOCKETRECROD) => void\n ) => {\n const eventType = Array.isArray(type) ? type : [type];\n const id = uniqueId();\n this.eventStack[id] = {\n recipientType: eventType,\n type: \"recipientType\",\n event,\n };\n return id;\n };\n removeListener = (id: string | string[]) => {\n this.eventStack = omit(this.eventStack, id);\n };\n}\nconst websocket = new GantWebSocket();\nexport default websocket;\n","import websocket, { WEBSOCKETRECROD } from './websocket';\nimport request from '@core/request';\nimport { uniqueId, omit, isEmpty } from 'lodash-es';\nimport emitter from '@core/event';\nconst { RECIPIENT_TYPE_OBSERVER } = websocket;\nexport interface ProgressOptions {\n type?: string;\n options?: any;\n data?: WEBSOCKETRECROD;\n}\nexport const PROGRESS_UPDEDATE = 'PROGRESS_UPDEDATE';\nexport class GantProgress {\n websocketId: string;\n private progressObserver: { [id: string]: ProgressOptions } = {};\n constructor() {\n this.websocketId = websocket.addTypeListener(\n RECIPIENT_TYPE_OBSERVER,\n this.progressEvent,\n );\n }\n progressEvent(data: WEBSOCKETRECROD) {\n Object.keys(this.progressObserver).map((id) => {\n const itemObserver = this.progressObserver[id];\n if (data?.recipientCode === itemObserver.type) {\n this.progressObserver[id] = {\n ...itemObserver,\n data: data,\n };\n }\n });\n this.updedataProgress();\n }\n\n updedataProgress() {\n const newProgress: ProgressOptions[] = [];\n Object.keys(this.progressObserver).map((id) => {\n const itemObserver = this.progressObserver[id];\n if (!isEmpty(itemObserver?.data)) newProgress.push(itemObserver);\n });\n emitter.emit(PROGRESS_UPDEDATE, newProgress);\n }\n\n addProgressListener(type: string, options?: any) {\n const id = uniqueId();\n this.progressObserver[id] = {\n type: type,\n options,\n };\n return id;\n }\n removeProgressListener(id: string) {\n this.progressObserver = omit(this.progressObserver, id);\n this.updedataProgress();\n }\n async requestProgress(\n url: string,\n options?: {\n params?: any;\n success?: (params: any) => void;\n error?: (error: any) => void;\n headers?: any;\n getParams?: boolean;\n },\n ) {\n if (!websocket.connectionId && !options?.headers?.connectionId)\n return console.error(`WebSocket no link established`);\n const observerId = new Date().getDate() + '';\n const progressId = this.addProgressListener(observerId);\n try {\n const response = await request.post(\n url,\n {\n headers: {\n observerId,\n connectionId: websocket.connectionId,\n ...options?.headers,\n },\n data: options?.params,\n },\n {\n getParams: options?.getParams,\n },\n );\n options?.success?.(response);\n } catch (error) {\n console.error('--->', error);\n options?.error?.(error);\n }\n this.removeProgressListener(progressId);\n }\n}\n\nconst Progress = new GantProgress();\nexport default Progress;\n","import request from '@core/request';\nexport async function findUserAggregateInfoApi() {\n return request('/security/findUserAggregateInfo', {\n method: 'POST',\n });\n}\n\n// 获取平台信息\nexport function getPlatformAggregateInfoApi() {\n return request(\n '/platformManage/getPlatformAggregateInfo',\n {\n method: 'POST',\n },\n { showError: false },\n );\n}\n","// 默认缓存期限为7天\nconst DEFAULT_CACHE_TIME = 60 * 60 * 24 * 7;\n\n/**\n * 创建本地缓存对象\n * @param {string=} prefixKey -\n * @param {Object} [storage=localStorage] - sessionStorage | localStorage\n */\nexport const createStorage = ({\n prefixKey = '',\n storage = localStorage,\n} = {}) => {\n /**\n * 本地缓存类\n * @class Storage\n */\n const StorageClass = class {\n storage = storage;\n prefixKey?: string = prefixKey;\n\n getKey(key: string) {\n return `${this.prefixKey}${key}`.toUpperCase();\n }\n\n /**\n * @description 设置缓存\n * @param {string} key 缓存键\n * @param {*} value 缓存值\n * @param expire\n */\n set(key: string, value: any, expire: number | null = DEFAULT_CACHE_TIME) {\n const stringData = JSON.stringify({\n value,\n expire: expire !== null ? new Date().getTime() + expire * 1000 : null,\n });\n this.storage.setItem(this.getKey(key), stringData);\n }\n\n /**\n * 读取缓存\n * @param {string} key 缓存键\n * @param {*=} def 默认值\n */\n get(key: string, def: any = null) {\n const item = this.storage.getItem(this.getKey(key));\n if (item) {\n try {\n const data = JSON.parse(item);\n const { value, expire } = data;\n // 在有效期内直接返回\n if (expire === null || expire >= Date.now()) {\n return value;\n }\n this.remove(key);\n } catch (e) {\n console.error(e);\n return def;\n }\n }\n return def;\n }\n\n /**\n * 从缓存删除某项\n * @param {string} key\n */\n remove(key: string) {\n this.storage.removeItem(this.getKey(key));\n }\n\n /**\n * 清空所有缓存\n * @memberOf Cache\n */\n clear(): void {\n this.storage.clear();\n }\n\n /**\n * 设置cookie\n * @param {string} name cookie 名称\n * @param {*} value cookie 值\n * @param {number=} expire 过期时间\n * 如果过期时间未设置,默认关闭浏览器自动删除\n * @example\n */\n setCookie(\n name: string,\n value: any,\n expire: number | null = DEFAULT_CACHE_TIME,\n ) {\n document.cookie = `${this.getKey(name)}=${value}; Max-Age=${expire}`;\n }\n\n /**\n * 根据名字获取cookie值\n * @param name\n */\n getCookie(name: string): string {\n const cookieArr = document.cookie.split('; ');\n for (let i = 0, length = cookieArr.length; i < length; i++) {\n const kv = cookieArr[i].split('=');\n if (kv[0] === this.getKey(name)) {\n return kv[1];\n }\n }\n return '';\n }\n\n /**\n * 根据名字删除指定的cookie\n * @param {string} key\n */\n removeCookie(key: string) {\n this.setCookie(key, 1, -1);\n }\n\n /**\n * 清空cookie,使所有cookie失效\n */\n clearCookie(): void {\n const keys = document.cookie.match(/[^ =;]+(?==)/g);\n if (keys) {\n for (let i = keys.length; i--; ) {\n document.cookie = keys[i] + '=0;expire=' + new Date(0).toUTCString();\n }\n }\n }\n };\n return new StorageClass();\n};\n\nexport const storage = createStorage();\n","import request, { GantServerOptions } from \"@core/request\";\n//公司定制化数据接口\nexport async function setUserDataApi(params: any, options?: GantServerOptions) {\n return request(\n \"/accountUserSelf/setUserData\",\n {\n data: params,\n serviceId: \"fwSecurity\",\n },\n options\n );\n}\n\n//获取公司定制化信息\nexport async function getUserDataApi(params: any) {\n return request(\"/accountUserSelf/getUserData\", {\n data: params,\n serviceId: \"fwSecurity\",\n });\n}\n//删除公司定制化信息\nexport async function delUserDataApi(params: any, options?: GantServerOptions) {\n return request(\n \"/accountUserSelf/delUserData\",\n {\n data: params,\n serviceId: \"fwSecurity\",\n },\n options\n );\n}\n\nexport async function getUserByIdApi(userId: string) {\n return request(\"/security/getUserById\", {\n method: \"POST\",\n data: { id: userId },\n serviceId: \"fwSecurity\",\n });\n}\n\nexport async function getUserByUserLoginNameApi(userLoginName: string) {\n return request(\"/security/getUserByUserLoginName\", {\n method: \"POST\",\n data: { userLoginName: userLoginName },\n serviceId: \"fwSecurity\",\n });\n}\n","import { findIndex, get, isEmpty, isPlainObject, omit } from \"lodash-es\";\nimport { storage } from \"../storage\";\nimport { UserIdentityType, User } from \"../type\";\nimport {\n getUserDataApi,\n setUserDataApi,\n delUserDataApi,\n getUserByIdApi,\n getUserByUserLoginNameApi,\n} from \"./services\";\n\nexport default class UserStore {\n userIdentity = {} as UserIdentityType; //用户身份信息\n currentUser = {} as User; //当前用户信息\n isSuperAdmin = false;\n roles: string[] = []; //用户所属角色\n functions: string[] = []; //用户授权功能点\n delegations: any[] = []; //用户代理信息\n userSetting: { [type: string]: any } = {};\n users: User[] = [];\n getUserIdentity(): UserIdentityType {\n if (!isEmpty(this.userIdentity)) return this.userIdentity;\n const localUserIdentity = storage?.get(\"userIdentity\");\n return localUserIdentity ? localUserIdentity : ({} as UserIdentityType);\n }\n setUserIdentity(identity: Partial<UserIdentityType>) {\n this.userIdentity = {\n ...this.userIdentity,\n ...identity,\n };\n storage.set(\"userIdentity\", this.userIdentity);\n return this.userIdentity;\n }\n clearUserIdentity() {\n storage.remove(\"userIdentity\");\n this.userIdentity = {} as UserIdentityType;\n }\n setUserAggregateInfo = ({\n delegations,\n roles,\n functions,\n isSuperAdmin,\n currentUser,\n }: any) => {\n this.delegations = delegations;\n this.roles = roles;\n this.functions = functions;\n this.isSuperAdmin = isSuperAdmin;\n this.currentUser = currentUser;\n };\n getUserSettingType = (dataType: string) => {\n const userId = this.currentUser.id;\n return `${userId}-${dataType}`;\n };\n getUserSetting = async (dataType: string) => {\n const key = this.getUserSettingType(dataType);\n const userId = this.currentUser.id;\n if (!!this.userSetting[key]) {\n return this.userSetting[key];\n }\n const res = await getUserDataApi({ dataType, dataId: userId+dataType });\n const bigData = res?.bigData ? JSON.parse(res.bigData) : undefined;\n this.userSetting[key] = bigData;\n return bigData;\n };\n updateUserSetting = async (dataType: string, data: any) => {\n const key = this.getUserSettingType(dataType);\n const userId = this.currentUser.id;\n await setUserDataApi({\n dataType,\n dataId: userId+dataType,\n bigData: JSON.stringify(data),\n });\n this.userSetting[key] = data;\n return data;\n };\n removeUserSetting = async (dataType: string) => {\n const key = this.getUserSettingType(dataType);\n const userId = this.currentUser.id;\n await delUserDataApi({ dataType, dataId: userId });\n delete this.userSetting[key];\n };\n getUserInfo = async (userId: string, userLoginName?: boolean) => {\n const index = findIndex(this.users, (itemUser) =>\n userLoginName ? itemUser.userLoginName === userId : itemUser.id === userId\n );\n if (index > -1) return get(this.users, `[${index}]`);\n const userInfo = userLoginName\n ? await getUserByUserLoginNameApi(userId)\n : await getUserByIdApi(userId);\n isPlainObject(userInfo) && this.users.push(userInfo);\n return userInfo;\n };\n}\n","import {\n isEmpty,\n groupBy,\n omit,\n cloneDeep,\n mapValues,\n uniqBy,\n remove,\n includes,\n} from 'lodash-es';\nimport { ServerMenuData, ServerMenuMap, ServerMenu } from '../type';\nimport emitter from '@core/event';\nimport { storage } from '../storage';\nexport const httpsRegexp =\n /^https?:\\/\\/(([a-zA-Z0-9_-])+(\\.)?)*(:\\d+)?(\\/((\\.)?(\\?)?=?&?[a-zA-Z0-9_-](\\?)?)*)*$/i;\nexport const httpRegexp =\n /^https?:\\/\\/(([a-zA-Z0-9_-])+(\\.)?)*(:\\d+)?(\\/((\\.)?(\\?)?=?&?[a-zA-Z0-9_-](\\?)?)*)*$/i;\n\nconst getItemPath = (path: string) => {\n if (httpsRegexp.test(path) || httpRegexp.test(path)) return path;\n return path?.indexOf('/') === 0 ? path : '/' + path;\n};\n\nexport const MENU_HISTORY_UPDATE = 'MENU_HISTORY_UPDATE';\nexport const MENU_BREADCRUMBS_UPDATE = 'MENU_BREADCRUMBS_UPDATE';\n\nexport default class MenuStore {\n menuDataMaps: ServerMenuMap = {};\n menuData: ServerMenuData = [];\n menuPathMaps: { [name: string]: string } = {};\n breadcrumbs: any[] = [];\n menuHistorys = [] as { pathname: string; name: string }[];\n userId?: string;\n constructor() {}\n addListenerMenuHistorys = (listener: (...args: any[]) => void) => {\n emitter.on(MENU_HISTORY_UPDATE, listener);\n };\n\n removeListenerMenuHistorys = (listener: (...args: any[]) => void) => {\n return emitter.off(MENU_HISTORY_UPDATE, listener);\n };\n addListenerBreadcrumbs = (listener: (...args: any[]) => void) => {\n return emitter.on(MENU_BREADCRUMBS_UPDATE, listener);\n };\n removeListenerBreadcrumbs = (listener: (...args: any[]) => void) => {\n return emitter.off(MENU_BREADCRUMBS_UPDATE, listener);\n };\n getTreeMenuData = (\n data: ServerMenuData,\n childrenGroup: {\n [name: string]: ServerMenuData;\n },\n parentPath?: string,\n ) => {\n return data\n .map((item) => {\n const { id, path, leaf } = item;\n const childrenData = childrenGroup[id];\n const newItem: ServerMenu = {\n ...item,\n key: id,\n path: parentPath ? parentPath + getItemPath(path) : getItemPath(path),\n };\n if (!!childrenData && !leaf) {\n const children = this.getTreeMenuData(\n childrenData,\n childrenGroup,\n newItem.path,\n );\n newItem.children = children;\n }\n this.menuDataMaps[newItem.path] = newItem;\n return newItem;\n })\n .sort((a, b) => a.seqNum - b.seqNum);\n };\n init = (menuData: ServerMenuData, userId: string) => {\n const cloneMenuData = cloneDeep(menuData);\n if (isEmpty(cloneMenuData)) return;\n const groupObj = groupBy(cloneMenuData, 'parentResourceId');\n const { ROOT, ...childrenGroup } = groupObj;\n this.menuData = this.getTreeMenuData(ROOT, childrenGroup);\n this.menuData = [...this.menuData];\n const menuPathMaps = mapValues(this.menuDataMaps, 'name');\n this.updateMenuMaps(menuPathMaps);\n this.initMenuHistorys(userId);\n return;\n };\n updateMenuMaps = (menuPathMaps: any) => {\n this.menuPathMaps = { ...this.menuPathMaps, ...menuPathMaps };\n const historys = this.menuHistorys;\n const newHistorys = historys.map((item) => {\n const itemName = this.menuPathMaps[item.pathname];\n return {\n pathname: item.pathname,\n name: itemName ? itemName : item.name,\n };\n });\n const newBreadcrumbs = this.breadcrumbs.map((item) => {\n const itemName = this.menuPathMaps[item.pathname];\n return {\n ...item,\n name: itemName ? itemName : item.name,\n };\n });\n this.updatehistorys(newHistorys);\n this.updateBreadcrumbs(newBreadcrumbs);\n };\n\n liseterHistorys = (pathname: string) => {\n let historys = this.menuHistorys;\n if (\n !this.menuDataMaps[pathname]?.leaf ||\n historys.some((item) => item.pathname === pathname)\n )\n return;\n historys = [{ pathname, name: this.menuPathMaps[pathname] }, ...historys];\n this.updatehistorys(historys);\n };\n\n updatehistorys = (historys: { pathname: string; name: string }[]) => {\n if (!this.userId) return;\n const newHistorys = historys.map((item) => {\n return {\n ...item,\n name: item.name ? item.name : this.menuPathMaps[item.pathname],\n };\n });\n this.menuHistorys = newHistorys;\n this.menuHistorys = uniqBy(this.menuHistorys, 'pathname');\n emitter.emit(MENU_HISTORY_UPDATE, this.menuHistorys);\n storage.set(`${this.userId}-menu-history`, this.menuHistorys);\n };\n initMenuHistorys = (userId: string) => {\n this.userId = userId;\n const historys = storage.get(`${userId}-menu-history`, this.menuHistorys);\n this.updatehistorys(historys);\n };\n liseterBreadcrumbs = (pathname: string) => {\n const array = pathname.split('/');\n let index = 1;\n const breadcrumbs: any[] = [];\n const current = { pathname, name: this.menuPathMaps[pathname] };\n while (index < array.length) {\n const itemPathname = array.slice(0, index).join('/');\n if (!!this.menuPathMaps[itemPathname])\n breadcrumbs.push({\n name: this.menuPathMaps[itemPathname],\n pathname: itemPathname,\n });\n index++;\n }\n breadcrumbs.push(current);\n this.updateBreadcrumbs(breadcrumbs);\n };\n updateBreadcrumbs = (breadcrumbs: any[]) => {\n this.breadcrumbs = breadcrumbs;\n this.breadcrumbs = uniqBy(this.breadcrumbs, 'pathname');\n emitter.emit(MENU_BREADCRUMBS_UPDATE, breadcrumbs);\n };\n}\n","import request from '@core/request';\nimport { AccountLoginParams } from './types';\n//获取登录方式\n// 获取登录方式\nexport function getLoginMethodApi() {\n return request('/authentication/getLoginMethod', {\n serviceId: 'fwSecurity',\n });\n}\n\n// 检查登录状态\nexport function checkTokenApi() {\n return request(\n '/authentication/checkToken',\n {\n serviceId: 'fwSecurity',\n },\n { showError: false },\n );\n}\n\nexport function accountLoginApi(params: AccountLoginParams) {\n return request('/authentication/login', {\n data: params,\n serviceId: 'fwSecurity',\n });\n}\n\n// 登出\nexport function accountLogoutApi() {\n return request('/authentication/logout', {\n data: {},\n serviceId: 'fwSecurity',\n });\n}\n\n// 进入代理\nexport function delegateLoginApi(params: any) {\n return request('/delegateAuth/delegateLogin', {\n data: params,\n serviceId: 'fwSecurity',\n });\n}\n\n// 退出代理\nexport function delegateLogoutApi(params: any) {\n return request('/delegateAuth/delegateLogout', {\n data: params,\n serviceId: 'fwSecurity',\n });\n}\n","import request from '@core/request';\n// 检测三方是否配置sso登录\nexport function checkAuthConfigApi() {\n return request('/ssoAuthConfig/checkOnlyRedirect', {}, { showError: false });\n}\n// 验证ssoToken并转换为甘棠Token, 写入到Cookie中\nexport function ssoLoginApi(params: any) {\n const { ssoTokenType, ssoToken } = params;\n return request(\n `/authentication/ssoLogin?tokenType=${ssoTokenType}&token=${ssoToken}`,\n {\n serviceId: 'fwSecurity',\n },\n );\n}\n","import request from '@core/request';\nimport { BeforeLoginCheckCodeParams } from './types';\n\n// 登录之后校验二次验证码\nexport function beforeLoginCheckCodeApi(payload: BeforeLoginCheckCodeParams) {\n return request('/authentication/beforeLoginCheckCode', {\n method: 'POST',\n data: {\n ...payload,\n },\n serviceId: 'fwSecurity',\n });\n}\n// 检测登录密码是否需要重置\nexport function checkPasswordApi() {\n return request(\n '/security/checkPasswordUpdateTime',\n { data: {} },\n { showError: false },\n );\n}\n\n// 提取token\nexport function extractTokenApi() {\n return request('/authentication/extractToken', { data: {} });\n}\n\n// 恢复token\nexport function refactorTokenApi(tokenValue: string) {\n return request('/authentication/refactorToken', {\n data: { value: tokenValue },\n });\n}\n","import request from '@core/request';\nimport { CaptchaCheckParams } from './types';\n\n//获取验证码\nexport function getValidateCodeApi(params = {}) {\n return request('/authentication/getValidateCode', {\n data: params,\n serviceId: 'fwSecurity',\n });\n}\n\n//获取滑块验证码\nexport function sliderVerificationCodeApi() {\n return request('/authentication/sliderVerificationCode', {\n method: 'POST',\n serviceId: 'fwSecurity',\n });\n}\n\n//校验滑块验证码\nexport function checkCaptchaApi(payload: CaptchaCheckParams) {\n return request('/authentication/checkCaptcha', {\n method: 'POST',\n data: {\n ...payload,\n },\n serviceId: 'fwSecurity',\n });\n}\n","import { LoginResultData } from \"../type\";\nimport {\n accountLoginApi,\n accountLogoutApi,\n BaseLoginParams,\n getLoginMethodApi,\n checkPasswordApi,\n extractTokenApi,\n refactorTokenApi,\n checkTokenApi,\n} from \"./services\";\nexport type LoginErrorType =\n | \"passwordError\"\n | \"validateError\"\n | \"passwordExpiration\"\n | \"SLIDER_VERIFICATION_LOGIN\";\n\nexport default class BaseLogin {\n loginPathname?: string;\n BASE: string = \"/\";\n get baseLoginPathname() {\n return `${this.BASE}${this.loginPathname?.replace(\"/\", \"\")}`;\n }\n tokenValue: string = \"\";\n\n get isLoginPathname() {\n const pathname = window.location.pathname;\n return this.baseLoginPathname == pathname;\n }\n\n getRealPath = (pathname: string) => {\n return `${this.BASE}${pathname.replace(\"/\", \"\")}`;\n };\n\n chekToken = async () => {\n const res = await checkTokenApi();\n if (!!res && this.isLoginPathname) window.location.replace(this.BASE);\n return res;\n };\n\n getLoginMethod = async () => {\n return getLoginMethodApi();\n };\n\n redirectBaseLogin = async () => {\n const pathname = window.location.pathname;\n const url = window.location.href;\n if (this.isLoginPathname) return true;\n const urlParams = new URLSearchParams();\n if (pathname !== this.BASE && pathname !== \"/\")\n urlParams.append(\"redirectUrl\", url);\n const searchString = decodeURIComponent(urlParams.toString());\n window.location.replace(\n `${this.baseLoginPathname}${\n !!searchString ? \"?\" + decodeURIComponent(urlParams.toString()) : \"\"\n }`\n );\n return false;\n };\n\n checkPassword = async () => {\n const res = await checkPasswordApi();\n if (res === \"noPass\") {\n // 临时清除token,待修改完密码后恢复\n this.tokenValue = await extractTokenApi();\n return false;\n }\n return true;\n };\n\n refactorToken = async () => {\n await refactorTokenApi(this.tokenValue);\n };\n\n login = async (params: BaseLoginParams) => {\n const res = await this.baseLogin(params);\n if (res.error) return res;\n return res;\n };\n\n private baseLogin = async (params: BaseLoginParams) => {\n const result: {\n error?: LoginErrorType;\n data?: LoginResultData;\n } = {\n error: undefined,\n data: undefined,\n };\n try {\n //其他登录方式未补充完\n const res = await accountLoginApi(params);\n const { userToken, traceId } = res;\n if (userToken) {\n result.data = res;\n const checked = await this.checkPassword();\n if (!checked) result.error = \"passwordExpiration\";\n return result;\n }\n //traceId 需要第三方验证 //验证码之后的由业务自行判断\n if (traceId) {\n result.data = res;\n result.error = \"SLIDER_VERIFICATION_LOGIN\";\n return result;\n }\n result.error = \"passwordError\";\n return result;\n } catch (err) {\n result.error = \"validateError\";\n return result;\n }\n };\n\n loginSuccess = () => {\n const params = new URLSearchParams(window.location.search);\n let url = params.get(\"redirectUrl\");\n if (url) window.location.href = url;\n else window.location.replace(this.BASE);\n };\n baseLoginOut = async () => {\n const params = new URLSearchParams();\n const url = window.location.href;\n if (window.location.pathname !== this.BASE)\n params.append(\"redirectUrl\", url);\n await accountLogoutApi();\n window.location.replace(`${this.baseLoginPathname}?${params.toString()}`);\n };\n}\n","import { SSOConfigType } from \"../type\";\nimport { checkAuthConfigApi } from \"./services\";\n\nconst defaultSsoConfig = {\n sso: false,\n ssoUrlSearchParams: [\"ticket\"],\n ssoCheckTokenUrl: \"\",\n ssoSuccessUrlkey: \"successUrl\",\n ssoLoginUrl: window.location.origin + \"/fwSecurity/ssoAuth/login.api\",\n ssologinOutUrl: window.location.origin + \"fwSecurity/ssoAuth/logout.api\",\n};\n\nexport default class SSOLogin {\n init(ssoConfig?: SSOConfigType) {\n this.ssoConfig = { ...this.ssoConfig, ...ssoConfig };\n }\n private ssoConfig: Required<SSOConfigType> = defaultSsoConfig;\n\n isSso = async (ssoCallback?: () => boolean) => {\n if (!this.ssoConfig.sso) return false;\n let sso = false;\n try {\n sso = await checkAuthConfigApi();\n } catch (error) {\n console.error(\"sso\", error);\n }\n if (ssoCallback) {\n sso = await ssoCallback();\n }\n return !!sso;\n };\n\n ssoLogin = () => {\n //在检测cookie中是否包含userIdentity信息\n const { ssoSuccessUrlkey, ssoUrlSearchParams, ssoLoginUrl } =\n this.ssoConfig;\n const params = new URLSearchParams(window.location.search.slice(1));\n const ssoParams = new URLSearchParams();\n const url = window.location.href;\n ssoParams.append(ssoSuccessUrlkey, encodeURIComponent(url));\n ssoUrlSearchParams.map((key) => {\n const value = params.get(key);\n if (value) ssoParams.append(key, value);\n });\n //待补充sso检测\n window.location.href = `${ssoLoginUrl}?${ssoParams.toString()}`;\n\n return false;\n };\n\n ssoLoginOut = () => {\n window.location.href = this.ssoConfig.ssologinOutUrl;\n };\n}\n","import {\n getValidateCodeApi,\n sliderVerificationCodeApi,\n checkCaptchaApi,\n GetValidateCodeParams,\n CaptchaCheckParams,\n} from './services';\nexport default class ValidateLogin {\n getValidateCodeImage = (params: GetValidateCodeParams) => {\n return getValidateCodeApi(params);\n };\n sliderVerificationCodeImage = () => {\n return sliderVerificationCodeApi();\n };\n checkCaptcha = (params: CaptchaCheckParams) => {\n return checkCaptchaApi(params);\n };\n}\n","import BaseLogin from \"./base\";\nimport SSOLogin from \"./sso\";\nimport ValidateLogin from \"./validate\";\nimport {\n BeforeLoginCheckCodeParams,\n beforeLoginCheckCodeApi,\n} from \"./services\";\nimport type { LOGIN_CONFIG } from \"../../../cli/interfaces\";\nexport default class LoginStore extends BaseLogin {\n ssoLogin: SSOLogin;\n validate: ValidateLogin;\n noCheckPermissionsPath?: string[] = [];\n ssoCallback?: () => boolean;\n constructor() {\n super();\n this.ssoLogin = new SSOLogin();\n this.validate = new ValidateLogin();\n }\n init = (\n loginConfig?: LOGIN_CONFIG,\n base = \"/\",\n ssoCallback?: () => boolean\n ) => {\n this.BASE = base;\n this.ssoCallback = ssoCallback;\n this.noCheckPermissionsPath = loginConfig?.noCheckPermissionsPath;\n this.ssoLogin.init(loginConfig);\n this.loginPathname = loginConfig?.loginPathname || \"/login\";\n };\n isNoLoginRequiredPage = () => {\n const pathname = window.location.pathname;\n const isNoLogin = this.noCheckPermissionsPath?.some((itemPath) => {\n return this.getRealPath(itemPath) == pathname;\n });\n return isNoLogin;\n };\n loginOut = async () => {\n const isSSO = await this.ssoLogin.isSso(this.ssoCallback);\n if (isSSO) this.ssoLogin.ssoLoginOut();\n await this.baseLoginOut();\n };\n loginAuthentication = async (params: BeforeLoginCheckCodeParams) => {\n await beforeLoginCheckCodeApi(params);\n this.loginSuccess();\n return;\n };\n redirectLogin = async () => {\n if (this.isNoLoginRequiredPage()) return true;\n const isSSO = await this.ssoLogin.isSso(this.ssoCallback);\n if (isSSO) {\n this.ssoLogin.ssoLogin();\n return false;\n }\n if (this.isLoginPathname) return true;\n return await this.redirectBaseLogin();\n };\n}\n","import {\n findUserAggregateInfoApi,\n getPlatformAggregateInfoApi,\n} from \"./services\";\nimport CodeListStoreInstance from \"../codelist\";\nimport ParameterStoreInstance from \"../parameter\";\nimport websocket from \"../websocket\";\nimport UserStore from \"../user\";\nimport MenuStore from \"../menu\";\nimport LoginStore from \"../login\";\nimport {\n UserAggregateInfo,\n Language,\n ProductInfo,\n ServerMenuData,\n GlobalOptions,\n} from \"../type\";\nimport { isEmpty } from \"lodash-es\";\nclass GlobalStoreClass {\n //无需登录验证的页面\n userStore: UserStore;\n menuStore: MenuStore;\n loginStore: LoginStore;\n isSuperAdmin: boolean = false;\n loginCallback?: () => void;\n constructor() {\n this.userStore = new UserStore();\n this.menuStore = new MenuStore();\n this.loginStore = new LoginStore();\n }\n platformLanguages: Language[] = [];\n productInfo: ProductInfo = {\n isProdEnv: false,\n productName: \"\",\n };\n get isPrd() {\n return this.productInfo?.isProdEnv;\n }\n get userInfo() {\n return this.userStore.currentUser;\n }\n\n get menuData() {\n return this.menuStore.menuData;\n }\n\n findPlantform = async () => {\n const res = await getPlatformAggregateInfoApi();\n this.platformLanguages = res.platformLanguages;\n this.productInfo = res.productInfo;\n };\n getAggregateInfo = async (\n menus?: ServerMenuData | ((res: UserAggregateInfo) => ServerMenuData)\n ) => {\n const res: UserAggregateInfo = await findUserAggregateInfoApi();\n\n const { user: currentUser, startMenus, isSuperAdmin, ...restInfo } = res;\n\n this.userStore.setUserAggregateInfo({ ...restInfo, currentUser });\n\n this.isSuperAdmin = isSuperAdmin;\n\n const localeMenus = typeof menus == \"function\" ? await menus(res) : menus;\n\n this.menuStore.init(\n isEmpty(localeMenus) ? startMenus : localeMenus,\n currentUser.id\n );\n };\n init = async (options: GlobalOptions) => {\n const { base = \"/\", menuData, loginSuccessCallback, ssoCallback,websocket:_startwebsocket=true } = options;\n this.loginStore.init(options?.loginConfig, base, ssoCallback);\n try {\n //检查token\n const res = await this.loginStore.chekToken();\n if (res) {\n //登录状态下获取聚合信息 保存header\n this.userStore.setUserIdentity(res);\n await this.getAggregateInfo(menuData);\n await CodeListStoreInstance.findAllCodeList();\n await ParameterStoreInstance.findAllParameters();\n //websocket注册\n if(_startwebsocket) websocket.init(this.userStore.currentUser.userLoginName);\n await loginSuccessCallback?.();\n return true;\n }\n //未登录情况下跳转到登录\n return await this.loginStore.redirectLogin();\n } catch (error) {\n console.error(error);\n }\n return false;\n };\n}\n\nconst globalStore = new GlobalStoreClass();\n\nexport default globalStore;\n","import request from '@core/request';\nexport type CompanyDataParams = {\n dataType: string;\n dataId: string;\n bigData?: string;\n};\n\n//公司定制化数据接口\nexport async function setCompanyDataApi(params: CompanyDataParams) {\n return request('/companyData/setCompanyData', {\n data: params,\n serviceId: 'fwSecurity',\n });\n}\n\n//获取公司定制化信息\nexport async function getCompanyDataApi(params: CompanyDataParams) {\n return request('/companyData/getCompanyData', {\n data: params,\n serviceId: 'fwSecurity',\n });\n}\n\n//删除公司定制化信息\nexport async function delCompanyDataApi(params: CompanyDataParams) {\n return request('/companyData/delCompanyData', {\n data: params,\n serviceId: 'fwSecurity',\n });\n}\n","const companyVersion = 'company-v1';\nimport {\n getCompanyDataApi,\n setCompanyDataApi,\n delCompanyDataApi,\n} from './services';\nclass CompanyData {\n data: any = {};\n getCompanyDataType = (dataType: string) => {\n return `${companyVersion}-${dataType}`;\n };\n getCompanyData = async (dataType: string) => {\n const key = this.getCompanyDataType(dataType);\n if (!!this.data[key]) {\n return this.data[key];\n }\n const res = await getCompanyDataApi({ dataType, dataId: companyVersion });\n const bigData = res?.bigData ? JSON.parse(res.bigData) : undefined;\n this.data[key] = bigData;\n };\n updateCompanyData = async (dataType: string, data: any) => {\n const key = this.getCompanyDataType(dataType);\n await setCompanyDataApi({\n dataType,\n dataId: companyVersion,\n bigData: JSON.stringify(data),\n });\n this.data[key] = data;\n return data;\n };\n removeCompanyData = async (dataType: string) => {\n const key = this.getCompanyDataType(dataType);\n await delCompanyDataApi({ dataType, dataId: companyVersion });\n delete this.data[key];\n };\n}\n\nexport default new CompanyData();\n","import CodeListStoreInstance from './codelist';\nimport ParameterStoreInstance from './parameter';\nimport websocket from './websocket';\nimport progress from './progress';\nimport globalStore from './global';\nimport companydataStore from './companydata';\nimport { storage as storageStore } from './storage';\nexport type * from './type';\n\nconst codeListStore = CodeListStoreInstance;\nconst parameterStore = ParameterStoreInstance;\nconst userStore = globalStore.userStore;\nconst loginStore = globalStore.loginStore;\nconst menuStore = globalStore.menuStore;\n\nexport {\n globalStore,\n codeListStore,\n parameterStore,\n websocket,\n progress,\n userStore,\n loginStore,\n menuStore,\n companydataStore,\n storageStore,\n};\nexport { MENU_HISTORY_UPDATE, MENU_BREADCRUMBS_UPDATE } from './menu';\nexport { PROGRESS_UPDEDATE } from './progress';\nexport {\n WS_CONTENT_CLOSE,\n WS_CONTENT_ERROR,\n WS_CONTENT_SUCCESS,\n} from './websocket';\n","import request from '@core/request';\n\nexport const getFWPluginContentByPluginKeyApi = (value: string) => {\n return request('/langPluginContent/getFWPluginContentByPluginKey', {\n method: 'post',\n data: { value: value },\n serviceId: 'fwPlatform',\n });\n};\n","const consoleLogger = {\n type: 'logger',\n log(args) {\n this.output('log', args);\n },\n warn(args) {\n this.output('warn', args);\n },\n error(args) {\n this.output('error', args);\n },\n output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\nclass Logger {\n constructor(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.init(concreteLogger, options);\n }\n init(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.forward(args, 'log', '', true);\n }\n warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return this.forward(args, 'warn', '', true);\n }\n error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return this.forward(args, 'error', '');\n }\n deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = `${prefix}${this.prefix} ${args[0]}`;\n return this.logger[lvl](args);\n }\n create(moduleName) {\n return new Logger(this.logger, {\n ...{\n prefix: `${this.prefix}:${moduleName}:`\n },\n ...this.options\n });\n }\n clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n}\nvar baseLogger = new Logger();\n\nclass EventEmitter {\n constructor() {\n this.observers = {};\n }\n on(events, listener) {\n events.split(' ').forEach(event => {\n if (!this.observers[event]) this.observers[event] = new Map();\n const numListeners = this.observers[event].get(listener) || 0;\n this.observers[event].set(listener, numListeners + 1);\n });\n return this;\n }\n off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event].delete(listener);\n }\n emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (this.observers[event]) {\n const cloned = Array.from(this.observers[event].entries());\n cloned.forEach(_ref => {\n let [observer, numTimesAdded] = _ref;\n for (let i = 0; i < numTimesAdded; i++) {\n observer(...args);\n }\n });\n }\n if (this.observers['*']) {\n const cloned = Array.from(this.observers['*'].entries());\n cloned.forEach(_ref2 => {\n let [observer, numTimesAdded] = _ref2;\n for (let i = 0; i < numTimesAdded; i++) {\n observer.apply(observer, [event, ...args]);\n }\n });\n }\n }\n}\n\nfunction defer() {\n let res;\n let rej;\n const promise = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(m => {\n if (s[m]) t[m] = s[m];\n });\n}\nconst lastOfPathSeparatorRegExp = /###/g;\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(lastOfPathSeparatorRegExp, '.') : key;\n }\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n const stack = typeof path !== 'string' ? path : path.split('.');\n let stackIndex = 0;\n while (stackIndex < stack.length - 1) {\n if (canNotTraverseDeeper()) return {};\n const key = cleanKey(stack[stackIndex]);\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n ++stackIndex;\n }\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack[stackIndex])\n };\n}\nfunction setPath(object, path, newValue) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n if (obj !== undefined || path.length === 1) {\n obj[k] = newValue;\n return;\n }\n let e = path[path.length - 1];\n let p = path.slice(0, path.length - 1);\n let last = getLastOfPath(object, p, Object);\n while (last.obj === undefined && p.length) {\n e = `${p[p.length - 1]}.${e}`;\n p = p.slice(0, p.length - 1);\n last = getLastOfPath(object, p, Object);\n if (last && last.obj && typeof last.obj[`${last.k}.${e}`] !== 'undefined') {\n last.obj = undefined;\n }\n }\n last.obj[`${last.k}.${e}`] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n const {\n obj,\n k\n } = getLastOfPath(object, path);\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n const value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (const prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, s => _entityMap[s]);\n }\n return data;\n}\nclass RegExpCache {\n constructor(capacity) {\n this.capacity = capacity;\n this.regExpMap = new Map();\n this.regExpQueue = [];\n }\n getRegExp(pattern) {\n const regExpFromCache = this.regExpMap.get(pattern);\n if (regExpFromCache !== undefined) {\n return regExpFromCache;\n }\n const regExpNew = new RegExp(pattern);\n if (this.regExpQueue.length === this.capacity) {\n this.regExpMap.delete(this.regExpQueue.shift());\n }\n this.regExpMap.set(pattern, regExpNew);\n this.regExpQueue.push(pattern);\n return regExpNew;\n }\n}\nconst chars = [' ', ',', '?', '!', ';'];\nconst looksLikeObjectPathRegExpCache = new RegExpCache(20);\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n const possibleChars = chars.filter(c => nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0);\n if (possibleChars.length === 0) return true;\n const r = looksLikeObjectPathRegExpCache.getRegExp(`(${possibleChars.map(c => c === '?' ? '\\\\?' : c).join('|')})`);\n let matched = !r.test(key);\n if (!matched) {\n const ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n}\nfunction deepFind(obj, path) {\n let keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n const tokens = path.split(keySeparator);\n let current = obj;\n for (let i = 0; i < tokens.length;) {\n if (!current || typeof current !== 'object') {\n return undefined;\n }\n let next;\n let nextPath = '';\n for (let j = i; j < tokens.length; ++j) {\n if (j !== i) {\n nextPath += keySeparator;\n }\n nextPath += tokens[j];\n next = current[nextPath];\n if (next !== undefined) {\n if (['string', 'number', 'boolean'].indexOf(typeof next) > -1 && j < tokens.length - 1) {\n continue;\n }\n i += j - i + 1;\n break;\n }\n }\n current = next;\n }\n return current;\n}\nfunction getCleanedCode(code) {\n if (code && code.indexOf('_') > 0) return code.replace('_', '-');\n return code;\n}\n\nclass ResourceStore extends EventEmitter {\n constructor(data) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n super();\n this.data = data || {};\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n if (this.options.ignoreJSONStructure === undefined) {\n this.options.ignoreJSONStructure = true;\n }\n }\n addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n removeNamespaces(ns) {\n const index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n getResource(lng, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n let path;\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n } else {\n path = [lng, ns];\n if (key) {\n if (Array.isArray(key)) {\n path.push(...key);\n } else if (typeof key === 'string' && keySeparator) {\n path.push(...key.split(keySeparator));\n } else {\n path.push(key);\n }\n }\n }\n const result = getPath(this.data, path);\n if (!result && !ns && !key && lng.indexOf('.') > -1) {\n lng = path[0];\n ns = path[1];\n key = path.slice(2).join('.');\n }\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n addResource(lng, ns, key, value) {\n let options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n addResources(lng, ns, resources) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n for (const m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n addResourceBundle(lng, ns, resources, deep, overwrite) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false,\n skipCopy: false\n };\n let path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n let pack = getPath(this.data, path) || {};\n if (!options.skipCopy) resources = JSON.parse(JSON.stringify(resources));\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = {\n ...pack,\n ...resources\n };\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return {\n ...{},\n ...this.getResource(lng, ns)\n };\n return this.getResource(lng, ns);\n }\n getDataByLanguage(lng) {\n return this.data[lng];\n }\n hasLanguageSomeTranslations(lng) {\n const data = this.getDataByLanguage(lng);\n const n = data && Object.keys(data) || [];\n return !!n.find(v => data[v] && Object.keys(data[v]).length > 0);\n }\n toJSON() {\n return this.data;\n }\n}\n\nvar postProcessor = {\n processors: {},\n addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle(processors, value, key, options, translator) {\n processors.forEach(processor => {\n if (this.processors[processor]) value = this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nconst checkedLoadedFor = {};\nclass Translator extends EventEmitter {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n super();\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, this);\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n this.logger = baseLogger.create('translator');\n }\n changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n exists(key) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n if (key === undefined || key === null) {\n return false;\n }\n const resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n extractFromKey(key, options) {\n let nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let namespaces = options.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n const m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key,\n namespaces\n };\n }\n const parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key,\n namespaces\n };\n }\n translate(keys, options, lastKey) {\n if (typeof options !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof options === 'object') options = {\n ...options\n };\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n const returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], options);\n const namespace = namespaces[namespaces.length - 1];\n const lng = options.lng || this.language;\n const appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n const nsSeparator = options.nsSeparator || this.options.nsSeparator;\n if (returnDetails) {\n return {\n res: `${namespace}${nsSeparator}${key}`,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return `${namespace}${nsSeparator}${key}`;\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, options);\n let res = resolved && resolved.res;\n const resUsedKey = resolved && resolved.usedKey || key;\n const resExactUsedKey = resolved && resolved.exactUsedKey || key;\n const resType = Object.prototype.toString.apply(res);\n const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n const joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n const r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, {\n ...options,\n ns: namespaces\n }) : `key '${key} (${this.language})' returned an object instead of string.`;\n if (returnDetails) {\n resolved.res = r;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n const resTypeIsArray = resType === '[object Array]';\n const copy = resTypeIsArray ? [] : {};\n const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (const m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n copy[m] = this.translate(deepKey, {\n ...options,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n let usedDefault = false;\n let usedKey = false;\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const hasDefaultValue = Translator.hasDefaultValue(options);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n const defaultValueSuffixOrdinalFallback = options.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, {\n ordinal: false\n }) : '';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const defaultValue = needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] || options[`defaultValue${defaultValueSuffix}`] || options[`defaultValue${defaultValueSuffixOrdinalFallback}`] || options.defaultValue;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n const missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n const resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n const updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n const fk = this.resolve(key, {\n ...options,\n keySeparator: false\n });\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n let lngs = [];\n const fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (let i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n const send = (l, k, specificDefaultValue) => {\n const defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (this.options.missingKeyHandler) {\n this.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (this.backendConnector && this.backendConnector.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n this.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(language => {\n const suffixes = this.pluralResolver.getSuffixes(language, options);\n if (needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] && suffixes.indexOf(`${this.options.pluralSeparator}zero`) < 0) {\n suffixes.push(`${this.options.pluralSeparator}zero`);\n }\n suffixes.forEach(suffix => {\n send([language], key + suffix, options[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = `${namespace}:${key}`;\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}:${key}` : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n if (returnDetails) {\n resolved.res = res;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, options, resolved, lastKey) {\n var _this = this;\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...options\n }, options.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init({\n ...options,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...options.interpolation\n }\n }\n });\n const skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n let nestBef;\n if (skipOnVariables) {\n const nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n let data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = resolved.usedLng;\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`);\n return null;\n }\n return _this.translate(...args, key);\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n const postProcess = options.postProcess || this.options.postProcess;\n const postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n i18nResolved: {\n ...resolved,\n usedParams: this.getUsedParamsDetails(options)\n },\n ...options\n } : options, this);\n }\n return res;\n }\n resolve(keys) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let found;\n let usedKey;\n let exactUsedKey;\n let usedLng;\n let usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(k => {\n if (this.isValidLookup(found)) return;\n const extracted = this.extractFromKey(k, options);\n const key = extracted.key;\n usedKey = key;\n let namespaces = extracted.namespaces;\n if (this.options.fallbackNS) namespaces = namespaces.concat(this.options.fallbackNS);\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n const codes = options.lngs ? options.lngs : this.languageUtils.toResolveHierarchy(options.lng || this.language, options.fallbackLng);\n namespaces.forEach(ns => {\n if (this.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils && this.utils.hasLoadedNamespace && !this.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[`${codes[0]}-${ns}`] = true;\n this.logger.warn(`key \"${usedKey}\" for languages \"${codes.join(', ')}\" won't get resolved as namespace \"${usedNS}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(code => {\n if (this.isValidLookup(found)) return;\n usedLng = code;\n const finalKeys = [key];\n if (this.i18nFormat && this.i18nFormat.addLookupKeys) {\n this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, options.count, options);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator}${options.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n let possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!this.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = this.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey,\n exactUsedKey,\n usedLng,\n usedNS\n };\n }\n isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n getResource(code, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n getUsedParamsDetails() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const optionsKeys = ['defaultValue', 'ordinal', 'context', 'replace', 'lng', 'lngs', 'fallbackLng', 'ns', 'keySeparator', 'nsSeparator', 'returnObjects', 'returnDetails', 'joinArrays', 'postProcess', 'interpolation'];\n const useOptionsReplaceForData = options.replace && typeof options.replace !== 'string';\n let data = useOptionsReplaceForData ? options.replace : options;\n if (useOptionsReplaceForData && typeof options.count !== 'undefined') {\n data.count = options.count;\n }\n if (this.options.interpolation.defaultVariables) {\n data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n }\n if (!useOptionsReplaceForData) {\n data = {\n ...data\n };\n for (const key of optionsKeys) {\n delete data[key];\n }\n }\n return data;\n }\n static hasDefaultValue(options) {\n const prefix = 'defaultValue';\n for (const option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n}\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nclass LanguageUtil {\n constructor(options) {\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return null;\n const p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return code;\n const p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n const specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n let p = code.split('-');\n if (this.options.lowerCaseLng) {\n p = p.map(part => part.toLowerCase());\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n return p.join('-');\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n getBestMatchFromCodes(codes) {\n if (!codes) return null;\n let found;\n codes.forEach(code => {\n if (found) return;\n const cleanedLng = this.formatLanguageCode(code);\n if (!this.options.supportedLngs || this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(code => {\n if (found) return;\n const lngOnly = this.getLanguagePartFromCode(code);\n if (this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = this.options.supportedLngs.find(supportedLng => {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf('-') > 0 && lngOnly.indexOf('-') < 0 && supportedLng.substring(0, supportedLng.indexOf('-')) === lngOnly) return supportedLng;\n if (supportedLng.indexOf(lngOnly) === 0 && lngOnly.length > 1) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks.default || [];\n let found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks.default;\n return found || [];\n }\n toResolveHierarchy(code, fallbackCode) {\n const fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n const codes = [];\n const addCode = c => {\n if (!c) return;\n if (this.isSupportedCode(c)) {\n codes.push(c);\n } else {\n this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`);\n }\n };\n if (typeof code === 'string' && (code.indexOf('-') > -1 || code.indexOf('_') > -1)) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(fc => {\n if (codes.indexOf(fc) < 0) addCode(this.formatLanguageCode(fc));\n });\n return codes;\n }\n}\n\nlet sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nlet _rulesPluralsTypes = {\n 1: function (n) {\n return Number(n > 1);\n },\n 2: function (n) {\n return Number(n != 1);\n },\n 3: function (n) {\n return 0;\n },\n 4: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function (n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function (n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function (n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function (n) {\n return Number(n >= 2);\n },\n 10: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function (n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function (n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function (n) {\n return Number(n !== 0);\n },\n 14: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function (n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function (n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function (n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function (n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function (n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nconst nonIntlVersions = ['v1', 'v2', 'v3'];\nconst intlVersions = ['v4'];\nconst suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nfunction createRules() {\n const rules = {};\n sets.forEach(set => {\n set.lngs.forEach(l => {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\nclass PluralResolver {\n constructor(languageUtils) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n if ((!this.options.compatibilityJSON || intlVersions.includes(this.options.compatibilityJSON)) && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n this.rules = createRules();\n }\n addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n getRule(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(getCleanedCode(code === 'dev' ? 'en' : code), {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch (err) {\n return;\n }\n }\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n needsPlural(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n return rule && rule.numbers.length > 1;\n }\n getPluralFormsOfKey(code, key) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (!rule) {\n return [];\n }\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort((pluralCategory1, pluralCategory2) => suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2]).map(pluralCategory => `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${pluralCategory}`);\n }\n return rule.numbers.map(number => this.getSuffix(code, number, options));\n }\n getSuffix(code, count) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const rule = this.getRule(code, options);\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n }\n return this.getSuffixRetroCompatible(rule, count);\n }\n this.logger.warn(`no plural rule found for: ${code}`);\n return '';\n }\n getSuffixRetroCompatible(rule, count) {\n const idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n let suffix = rule.numbers[idx];\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n const returnSuffix = () => this.options.prepend && suffix.toString() ? this.options.prepend + suffix.toString() : suffix.toString();\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return `_plural_${suffix.toString()}`;\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n shouldUseIntlApi() {\n return !nonIntlVersions.includes(this.options.compatibilityJSON);\n }\n}\n\nfunction deepFindWithDefaults(data, defaultData, key) {\n let keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';\n let ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n let path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && typeof key === 'string') {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n}\nclass Interpolator {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options.interpolation && options.interpolation.format || (value => value);\n this.init(options);\n }\n init() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n const iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n reset() {\n if (this.options) this.init(this.options);\n }\n resetRegExp() {\n const getOrResetRegExp = (existingRegExp, pattern) => {\n if (existingRegExp && existingRegExp.source === pattern) {\n existingRegExp.lastIndex = 0;\n return existingRegExp;\n }\n return new RegExp(pattern, 'g');\n };\n this.regexp = getOrResetRegExp(this.regexp, `${this.prefix}(.+?)${this.suffix}`);\n this.regexpUnescape = getOrResetRegExp(this.regexpUnescape, `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`);\n this.nestingRegexp = getOrResetRegExp(this.nestingRegexp, `${this.nestingPrefix}(.+?)${this.nestingSuffix}`);\n }\n interpolate(str, data, lng, options) {\n let match;\n let value;\n let replaces;\n const defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n const handleFormat = key => {\n if (key.indexOf(this.formatSeparator) < 0) {\n const path = deepFindWithDefaults(data, defaultData, key, this.options.keySeparator, this.options.ignoreJSONStructure);\n return this.alwaysFormat ? this.format(path, undefined, lng, {\n ...options,\n ...data,\n interpolationkey: key\n }) : path;\n }\n const p = key.split(this.formatSeparator);\n const k = p.shift().trim();\n const f = p.join(this.formatSeparator).trim();\n return this.format(deepFindWithDefaults(data, defaultData, k, this.options.keySeparator, this.options.ignoreJSONStructure), f, lng, {\n ...options,\n ...data,\n interpolationkey: k\n });\n };\n this.resetRegExp();\n const missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n const skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n const todos = [{\n regex: this.regexpUnescape,\n safeValue: val => regexSafe(val)\n }, {\n regex: this.regexp,\n safeValue: val => this.escapeValue ? regexSafe(this.escape(val)) : regexSafe(val)\n }];\n todos.forEach(todo => {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n const matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n const temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`);\n value = '';\n }\n } else if (typeof value !== 'string' && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n const safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n nest(str, fc) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let match;\n let value;\n let clonedOptions;\n function handleHasOptions(key, inheritedOptions) {\n const sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n const c = key.split(new RegExp(`${sep}[ ]*{`));\n let optionsString = `{${c[1]}`;\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n const matchedSingleQuotes = optionsString.match(/'/g);\n const matchedDoubleQuotes = optionsString.match(/\"/g);\n if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = {\n ...inheritedOptions,\n ...clonedOptions\n };\n } catch (e) {\n this.logger.warn(`failed parsing options string in nesting for key ${key}`, e);\n return `${key}${sep}${optionsString}`;\n }\n if (clonedOptions.defaultValue && clonedOptions.defaultValue.indexOf(this.prefix) > -1) delete clonedOptions.defaultValue;\n return key;\n }\n while (match = this.nestingRegexp.exec(str)) {\n let formatters = [];\n clonedOptions = {\n ...options\n };\n clonedOptions = clonedOptions.replace && typeof clonedOptions.replace !== 'string' ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n let doReduce = false;\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n const r = match[1].split(this.formatSeparator).map(elem => elem.trim());\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n if (!value) {\n this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);\n value = '';\n }\n if (doReduce) {\n value = formatters.reduce((v, f) => this.format(v, f, options.lng, {\n ...options,\n interpolationkey: match[1].trim()\n }), value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n}\n\nfunction parseFormatStr(formatStr) {\n let formatName = formatStr.toLowerCase().trim();\n const formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n const p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n const optStr = p[1].substring(0, p[1].length - 1);\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n const opts = optStr.split(';');\n opts.forEach(opt => {\n if (!opt) return;\n const [key, ...rest] = opt.split(':');\n const val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;\n if (val === 'false') formatOptions[key.trim()] = false;\n if (val === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);\n });\n }\n }\n return {\n formatName,\n formatOptions\n };\n}\nfunction createCachedFormatter(fn) {\n const cache = {};\n return function invokeFormatter(val, lng, options) {\n const key = lng + JSON.stringify(options);\n let formatter = cache[key];\n if (!formatter) {\n formatter = fn(getCleanedCode(lng), options);\n cache[key] = formatter;\n }\n return formatter(val);\n };\n}\nclass Formatter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n this.init(options);\n }\n init(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n const iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n format(value, format, lng) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const formats = format.split(this.formatSeparator);\n const result = formats.reduce((mem, f) => {\n const {\n formatName,\n formatOptions\n } = parseFormatStr(f);\n if (this.formats[formatName]) {\n let formatted = mem;\n try {\n const valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n const l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = this.formats[formatName](mem, l, {\n ...formatOptions,\n ...options,\n ...valOptions\n });\n } catch (error) {\n this.logger.warn(error);\n }\n return formatted;\n } else {\n this.logger.warn(`there was no format function for ${formatName}`);\n }\n return mem;\n }, value);\n return result;\n }\n}\n\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\nclass Connector extends EventEmitter {\n constructor(backend, store, services) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n super();\n this.backend = backend;\n this.store = store;\n this.services = services;\n this.languageUtils = services.languageUtils;\n this.options = options;\n this.logger = baseLogger.create('backendConnector');\n this.waitingReads = [];\n this.maxParallelReads = options.maxParallelReads || 10;\n this.readingCalls = 0;\n this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n this.state = {};\n this.queue = [];\n if (this.backend && this.backend.init) {\n this.backend.init(services, options.backend, options);\n }\n }\n queueLoad(languages, namespaces, options, callback) {\n const toLoad = {};\n const pending = {};\n const toLoadLanguages = {};\n const toLoadNamespaces = {};\n languages.forEach(lng => {\n let hasAllNamespaces = true;\n namespaces.forEach(ns => {\n const name = `${lng}|${ns}`;\n if (!options.reload && this.store.hasResourceBundle(lng, ns)) {\n this.state[name] = 2;\n } else if (this.state[name] < 0) ; else if (this.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n this.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n loaded(name, err, data) {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (data) {\n this.store.addResourceBundle(lng, ns, data, undefined, undefined, {\n skipCopy: true\n });\n }\n this.state[name] = err ? -1 : 2;\n const loaded = {};\n this.queue.forEach(q => {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(l => {\n if (!loaded[l]) loaded[l] = {};\n const loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(n => {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(q => !q.done);\n }\n read(lng, ns, fcName) {\n let tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n let wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n let callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng,\n ns,\n fcName,\n tried,\n wait,\n callback\n });\n return;\n }\n this.readingCalls++;\n const resolver = (err, data) => {\n this.readingCalls--;\n if (this.waitingReads.length > 0) {\n const next = this.waitingReads.shift();\n this.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < this.maxRetries) {\n setTimeout(() => {\n this.read.call(this, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n const fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n const r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(data => resolver(null, data)).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n prepareLoading(languages, namespaces) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let callback = arguments.length > 3 ? arguments[3] : undefined;\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n const toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(name => {\n this.loadOne(name);\n });\n }\n load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n loadOne(name) {\n let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, (err, data) => {\n if (err) this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`, err);\n if (!err && data) this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`, data);\n this.loaded(name, err, data);\n });\n }\n saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n let clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : () => {};\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(`did not save key \"${key}\" as the namespace \"${namespace}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend && this.backend.create) {\n const opts = {\n ...options,\n isUpdate\n };\n const fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n let r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(data => clb(null, data)).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n}\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: false,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n let ret = {};\n if (typeof args[1] === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n const options = args[3] || args[2];\n Object.keys(options).forEach(key => {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: value => value,\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n return options;\n}\n\nfunction noop() {}\nfunction bindMemberFunctions(inst) {\n const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(mem => {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\nclass I18n extends EventEmitter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n super();\n this.options = transformOptions(options);\n this.services = {};\n this.logger = baseLogger;\n this.modules = {\n external: []\n };\n bindMemberFunctions(this);\n if (callback && !this.isInitialized && !options.isClone) {\n if (!this.options.initImmediate) {\n this.init(options, callback);\n return this;\n }\n setTimeout(() => {\n this.init(options, callback);\n }, 0);\n }\n }\n init() {\n var _this = this;\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n this.isInitializing = true;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n const defOpts = get();\n this.options = {\n ...defOpts,\n ...this.options,\n ...transformOptions(options)\n };\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation\n };\n }\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n let formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n const lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n const s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n _this.emit(event, ...args);\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n _this.emit(event, ...args);\n });\n this.modules.external.forEach(m => {\n if (m.init) m.init(this);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n const storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(fcName => {\n this[fcName] = function () {\n return _this.store[fcName](...arguments);\n };\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = function () {\n _this.store[fcName](...arguments);\n return _this;\n };\n });\n const deferred = defer();\n const load = () => {\n const finish = (err, t) => {\n this.isInitializing = false;\n if (this.isInitialized && !this.initializedStoreOnce) this.logger.warn('init: i18next is already initialized. You should call init just once!');\n this.isInitialized = true;\n if (!this.options.isClone) this.logger.log('initialized', this.options);\n this.emit('initialized', this.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (this.languages && this.options.compatibilityAPI !== 'v1' && !this.isInitialized) return finish(null, this.t.bind(this));\n this.changeLanguage(this.options.lng, finish);\n };\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n loadResources(language) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n let usedCallback = callback;\n const usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode' && (!this.options.preload || this.options.preload.length === 0)) return usedCallback();\n const toLoad = [];\n const append = lng => {\n if (!lng) return;\n if (lng === 'cimode') return;\n const lngs = this.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(l => {\n if (l === 'cimode') return;\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n const fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(l => append(l));\n } else {\n append(usedLng);\n }\n if (this.options.preload) {\n this.options.preload.forEach(l => append(l));\n }\n this.services.backendConnector.load(toLoad, this.options.ns, e => {\n if (!e && !this.resolvedLanguage && this.language) this.setResolvedLanguage(this.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n reloadResources(lngs, ns, callback) {\n const deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, err => {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (let li = 0; li < this.languages.length; li++) {\n const lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n changeLanguage(lng, callback) {\n var _this2 = this;\n this.isLanguageChangingTo = lng;\n const deferred = defer();\n this.emit('languageChanging', lng);\n const setLngProps = l => {\n this.language = l;\n this.languages = this.services.languageUtils.toResolveHierarchy(l);\n this.resolvedLanguage = undefined;\n this.setResolvedLanguage(l);\n };\n const done = (err, l) => {\n if (l) {\n setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve(function () {\n return _this2.t(...arguments);\n });\n if (callback) callback(err, function () {\n return _this2.t(...arguments);\n });\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const l = typeof lngs === 'string' ? lngs : this.services.languageUtils.getBestMatchFromCodes(lngs);\n if (l) {\n if (!this.language) {\n setLngProps(l);\n }\n if (!this.translator.language) this.translator.changeLanguage(l);\n if (this.services.languageDetector && this.services.languageDetector.cacheUserLanguage) this.services.languageDetector.cacheUserLanguage(l);\n }\n this.loadResources(l, err => {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n getFixedT(lng, ns, keyPrefix) {\n var _this3 = this;\n const fixedT = function (key, opts) {\n let options;\n if (typeof opts !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n options = _this3.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = {\n ...opts\n };\n }\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n const keySeparator = _this3.options.keySeparator || '.';\n let resultKey;\n if (options.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => `${options.keyPrefix}${keySeparator}${k}`);\n } else {\n resultKey = options.keyPrefix ? `${options.keyPrefix}${keySeparator}${key}` : key;\n }\n return _this3.t(resultKey, options);\n };\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n t() {\n return this.translator && this.translator.translate(...arguments);\n }\n exists() {\n return this.translator && this.translator.exists(...arguments);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n const lng = options.lng || this.resolvedLanguage || this.languages[0];\n const fallbackLng = this.options ? this.options.fallbackLng : false;\n const lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = this.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 2;\n };\n if (options.precheck) {\n const preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n loadNamespaces(ns, callback) {\n const deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(n => {\n if (this.options.ns.indexOf(n) < 0) this.options.ns.push(n);\n });\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n loadLanguages(lngs, callback) {\n const deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n const preloaded = this.options.preload || [];\n const newLngs = lngs.filter(lng => preloaded.indexOf(lng) < 0);\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n const rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n const languageUtils = this.services && this.services.languageUtils || new LanguageUtil(get());\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n cloneInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n const forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) delete options.forkResourceStore;\n const mergedOptions = {\n ...this.options,\n ...options,\n ...{\n isClone: true\n }\n };\n const clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n const membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(m => {\n clone[m] = this[m];\n });\n clone.services = {\n ...this.services\n };\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n if (forkResourceStore) {\n clone.store = new ResourceStore(this.store.data, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n clone.translator = new Translator(clone.services, mergedOptions);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n clone.emit(event, ...args);\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n}\nconst instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nconst createInstance = instance.createInstance;\nconst dir = instance.dir;\nconst init = instance.init;\nconst loadResources = instance.loadResources;\nconst reloadResources = instance.reloadResources;\nconst use = instance.use;\nconst changeLanguage = instance.changeLanguage;\nconst getFixedT = instance.getFixedT;\nconst t = instance.t;\nconst exists = instance.exists;\nconst setDefaultNamespace = instance.setDefaultNamespace;\nconst hasLoadedNamespace = instance.hasLoadedNamespace;\nconst loadNamespaces = instance.loadNamespaces;\nconst loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","import { get, find } from 'lodash-es';\nimport { getFWPluginContentByPluginKeyApi } from './services';\nimport i18nNext, { InitOptions, Callback } from 'i18next';\nlet languageMaps: any = {};\nexport const initDynamicLang = async (\n language: string,\n options?: {\n i18n?: boolean;\n i18nInitOptions?: InitOptions;\n i18nCallback?: Callback;\n },\n) => {\n const res = await getFWPluginContentByPluginKeyApi(language);\n languageMaps = res;\n let tr = defaultTr;\n if (options?.i18n) {\n await i18nNext.init(options?.i18nInitOptions || {}, options?.i18nCallback);\n tr = (key: string, agrs?: string[], type: 'fe' | 'workflow' = 'fe') => {\n const obj: any = {};\n agrs?.map((value, index) => {\n obj[`${index}`] = value;\n });\n return i18nNext.t(key, obj) as string;\n };\n }\n (window as any)['tr'] = tr;\n return options?.i18n ? i18nNext : null;\n};\n\nconst defaultTr = (\n key: string,\n agrs?: string[],\n type: 'fe' | 'workflow' = 'fe',\n) => {\n let value = get(languageMaps, `${type}.${key}`, key);\n if (!value) value = key;\n\n function replaceVariablesInString(str: string, arr?: string[]) {\n return str.replace(/\\${(\\d+)}/g, function (match, index) {\n const arrIndex = parseInt(index);\n return arr?.[arrIndex] !== undefined ? arr[arrIndex] : match;\n });\n }\n return replaceVariablesInString(value, agrs);\n};\n\nexport const tr = (\n key: string,\n agrs?: string[],\n type: 'fe' | 'workflow' = 'fe',\n) => {\n return (window as any)['tr'](key, agrs, type);\n};\n","/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nexport function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\n * @hidden\n */\nexport function isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nexport function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nexport function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n) {\n if (n <= 1) {\n return \"\".concat(Number(n) * 100, \"%\");\n }\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\n","import { bound01, pad2 } from './util.js';\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * <http://www.w3.org/TR/css3-color/>\n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nexport function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, l: l };\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nexport function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nexport function rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n pad2(convertDecimalToHex(a)),\n ];\n // Return a 4 character hex if possible\n if (allow4Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1)) &&\n hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nexport function rgbaToArgbHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n return hex.join('');\n}\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\n","// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexport var names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\nimport { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb, } from './conversion.js';\nimport { names } from './css-color-names.js';\nimport { boundAlpha, convertToPercentage } from './util.js';\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nexport function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = 'hsv';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n}\n// <http://www.w3.org/TR/css3-values/#integers>\nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// <http://www.w3.org/TR/css3-values/#number-value>\nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\".concat(CSS_NUMBER, \")|(?:\").concat(CSS_INTEGER, \")\");\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nexport function stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex6.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n match = matchers.hex4.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n a: convertHexToDecimal(match[4] + match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex3.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nexport function isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n","import { numberInputToObject, rgbaToHex, rgbToHex, rgbToHsl, rgbToHsv } from './conversion.js';\nimport { names } from './css-color-names.js';\nimport { inputToRGB } from './format-input';\nimport { bound01, boundAlpha, clamp01 } from './util.js';\nvar TinyColor = /** @class */ (function () {\n function TinyColor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n var _a;\n // If input is already a tinycolor, return itself\n if (color instanceof TinyColor) {\n // eslint-disable-next-line no-constructor-return\n return color;\n }\n if (typeof color === 'number') {\n color = numberInputToObject(color);\n }\n this.originalInput = color;\n var rgb = inputToRGB(color);\n this.originalInput = color;\n this.r = rgb.r;\n this.g = rgb.g;\n this.b = rgb.b;\n this.a = rgb.a;\n this.roundA = Math.round(100 * this.a) / 100;\n this.format = (_a = opts.format) !== null && _a !== void 0 ? _a : rgb.format;\n this.gradientType = opts.gradientType;\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this.r < 1) {\n this.r = Math.round(this.r);\n }\n if (this.g < 1) {\n this.g = Math.round(this.g);\n }\n if (this.b < 1) {\n this.b = Math.round(this.b);\n }\n this.isValid = rgb.ok;\n }\n TinyColor.prototype.isDark = function () {\n return this.getBrightness() < 128;\n };\n TinyColor.prototype.isLight = function () {\n return !this.isDark();\n };\n /**\n * Returns the perceived brightness of the color, from 0-255.\n */\n TinyColor.prototype.getBrightness = function () {\n // http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n };\n /**\n * Returns the perceived luminance of a color, from 0-1.\n */\n TinyColor.prototype.getLuminance = function () {\n // http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var R;\n var G;\n var B;\n var RsRGB = rgb.r / 255;\n var GsRGB = rgb.g / 255;\n var BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) {\n R = RsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n }\n if (GsRGB <= 0.03928) {\n G = GsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n }\n if (BsRGB <= 0.03928) {\n B = BsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n }\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n };\n /**\n * Returns the alpha value of a color, from 0-1.\n */\n TinyColor.prototype.getAlpha = function () {\n return this.a;\n };\n /**\n * Sets the alpha value on the current color.\n *\n * @param alpha - The new alpha value. The accepted range is 0-1.\n */\n TinyColor.prototype.setAlpha = function (alpha) {\n this.a = boundAlpha(alpha);\n this.roundA = Math.round(100 * this.a) / 100;\n return this;\n };\n /**\n * Returns whether the color is monochrome.\n */\n TinyColor.prototype.isMonochrome = function () {\n var s = this.toHsl().s;\n return s === 0;\n };\n /**\n * Returns the object as a HSVA object.\n */\n TinyColor.prototype.toHsv = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this.a };\n };\n /**\n * Returns the hsva values interpolated into a string with the following format:\n * \"hsva(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHsvString = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n var h = Math.round(hsv.h * 360);\n var s = Math.round(hsv.s * 100);\n var v = Math.round(hsv.v * 100);\n return this.a === 1 ? \"hsv(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%)\") : \"hsva(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a HSLA object.\n */\n TinyColor.prototype.toHsl = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this.a };\n };\n /**\n * Returns the hsla values interpolated into a string with the following format:\n * \"hsla(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHslString = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n var h = Math.round(hsl.h * 360);\n var s = Math.round(hsl.s * 100);\n var l = Math.round(hsl.l * 100);\n return this.a === 1 ? \"hsl(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%)\") : \"hsla(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the hex value of the color.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHex = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return rgbToHex(this.r, this.g, this.b, allow3Char);\n };\n /**\n * Returns the hex value of the color -with a # prefixed.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHexString = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return '#' + this.toHex(allow3Char);\n };\n /**\n * Returns the hex 8 value of the color.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8 = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return rgbaToHex(this.r, this.g, this.b, this.a, allow4Char);\n };\n /**\n * Returns the hex 8 value of the color -with a # prefixed.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8String = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return '#' + this.toHex8(allow4Char);\n };\n /**\n * Returns the shorter hex value of the color depends on its alpha -with a # prefixed.\n * @param allowShortChar will shorten hex value to 3 or 4 char if possible\n */\n TinyColor.prototype.toHexShortString = function (allowShortChar) {\n if (allowShortChar === void 0) { allowShortChar = false; }\n return this.a === 1 ? this.toHexString(allowShortChar) : this.toHex8String(allowShortChar);\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toRgb = function () {\n return {\n r: Math.round(this.r),\n g: Math.round(this.g),\n b: Math.round(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA values interpolated into a string with the following format:\n * \"RGBA(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toRgbString = function () {\n var r = Math.round(this.r);\n var g = Math.round(this.g);\n var b = Math.round(this.b);\n return this.a === 1 ? \"rgb(\".concat(r, \", \").concat(g, \", \").concat(b, \")\") : \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toPercentageRgb = function () {\n var fmt = function (x) { return \"\".concat(Math.round(bound01(x, 255) * 100), \"%\"); };\n return {\n r: fmt(this.r),\n g: fmt(this.g),\n b: fmt(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA relative values interpolated into a string\n */\n TinyColor.prototype.toPercentageRgbString = function () {\n var rnd = function (x) { return Math.round(bound01(x, 255) * 100); };\n return this.a === 1\n ? \"rgb(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%)\")\n : \"rgba(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%, \").concat(this.roundA, \")\");\n };\n /**\n * The 'real' name of the color -if there is one.\n */\n TinyColor.prototype.toName = function () {\n if (this.a === 0) {\n return 'transparent';\n }\n if (this.a < 1) {\n return false;\n }\n var hex = '#' + rgbToHex(this.r, this.g, this.b, false);\n for (var _i = 0, _a = Object.entries(names); _i < _a.length; _i++) {\n var _b = _a[_i], key = _b[0], value = _b[1];\n if (hex === value) {\n return key;\n }\n }\n return false;\n };\n TinyColor.prototype.toString = function (format) {\n var formatSet = Boolean(format);\n format = format !== null && format !== void 0 ? format : this.format;\n var formattedString = false;\n var hasAlpha = this.a < 1 && this.a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format.startsWith('hex') || format === 'name');\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === 'name' && this.a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === 'rgb') {\n formattedString = this.toRgbString();\n }\n if (format === 'prgb') {\n formattedString = this.toPercentageRgbString();\n }\n if (format === 'hex' || format === 'hex6') {\n formattedString = this.toHexString();\n }\n if (format === 'hex3') {\n formattedString = this.toHexString(true);\n }\n if (format === 'hex4') {\n formattedString = this.toHex8String(true);\n }\n if (format === 'hex8') {\n formattedString = this.toHex8String();\n }\n if (format === 'name') {\n formattedString = this.toName();\n }\n if (format === 'hsl') {\n formattedString = this.toHslString();\n }\n if (format === 'hsv') {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n };\n TinyColor.prototype.toNumber = function () {\n return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b);\n };\n TinyColor.prototype.clone = function () {\n return new TinyColor(this.toString());\n };\n /**\n * Lighten the color a given amount. Providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.lighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Brighten the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.brighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var rgb = this.toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return new TinyColor(rgb);\n };\n /**\n * Darken the color a given amount, from 0 to 100.\n * Providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.darken = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Mix the color with pure white, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.tint = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('white', amount);\n };\n /**\n * Mix the color with pure black, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.shade = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('black', amount);\n };\n /**\n * Desaturate the color a given amount, from 0 to 100.\n * Providing 100 will is the same as calling greyscale\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.desaturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Saturate the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.saturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Completely desaturates a color into greyscale.\n * Same as calling `desaturate(100)`\n */\n TinyColor.prototype.greyscale = function () {\n return this.desaturate(100);\n };\n /**\n * Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n * Values outside of this range will be wrapped into this range.\n */\n TinyColor.prototype.spin = function (amount) {\n var hsl = this.toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return new TinyColor(hsl);\n };\n /**\n * Mix the current color a given amount with another color, from 0 to 100.\n * 0 means no mixing (return current color).\n */\n TinyColor.prototype.mix = function (color, amount) {\n if (amount === void 0) { amount = 50; }\n var rgb1 = this.toRgb();\n var rgb2 = new TinyColor(color).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a,\n };\n return new TinyColor(rgba);\n };\n TinyColor.prototype.analogous = function (results, slices) {\n if (results === void 0) { results = 6; }\n if (slices === void 0) { slices = 30; }\n var hsl = this.toHsl();\n var part = 360 / slices;\n var ret = [this];\n for (hsl.h = (hsl.h - ((part * results) >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(new TinyColor(hsl));\n }\n return ret;\n };\n /**\n * taken from https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js\n */\n TinyColor.prototype.complement = function () {\n var hsl = this.toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return new TinyColor(hsl);\n };\n TinyColor.prototype.monochromatic = function (results) {\n if (results === void 0) { results = 6; }\n var hsv = this.toHsv();\n var h = hsv.h;\n var s = hsv.s;\n var v = hsv.v;\n var res = [];\n var modification = 1 / results;\n while (results--) {\n res.push(new TinyColor({ h: h, s: s, v: v }));\n v = (v + modification) % 1;\n }\n return res;\n };\n TinyColor.prototype.splitcomplement = function () {\n var hsl = this.toHsl();\n var h = hsl.h;\n return [\n this,\n new TinyColor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }),\n new TinyColor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l }),\n ];\n };\n /**\n * Compute how the color would appear on a background\n */\n TinyColor.prototype.onBackground = function (background) {\n var fg = this.toRgb();\n var bg = new TinyColor(background).toRgb();\n var alpha = fg.a + bg.a * (1 - fg.a);\n return new TinyColor({\n r: (fg.r * fg.a + bg.r * bg.a * (1 - fg.a)) / alpha,\n g: (fg.g * fg.a + bg.g * bg.a * (1 - fg.a)) / alpha,\n b: (fg.b * fg.a + bg.b * bg.a * (1 - fg.a)) / alpha,\n a: alpha,\n });\n };\n /**\n * Alias for `polyad(3)`\n */\n TinyColor.prototype.triad = function () {\n return this.polyad(3);\n };\n /**\n * Alias for `polyad(4)`\n */\n TinyColor.prototype.tetrad = function () {\n return this.polyad(4);\n };\n /**\n * Get polyad colors, like (for 1, 2, 3, 4, 5, 6, 7, 8, etc...)\n * monad, dyad, triad, tetrad, pentad, hexad, heptad, octad, etc...\n */\n TinyColor.prototype.polyad = function (n) {\n var hsl = this.toHsl();\n var h = hsl.h;\n var result = [this];\n var increment = 360 / n;\n for (var i = 1; i < n; i++) {\n result.push(new TinyColor({ h: (h + i * increment) % 360, s: hsl.s, l: hsl.l }));\n }\n return result;\n };\n /**\n * compare color vs current color\n */\n TinyColor.prototype.equals = function (color) {\n return this.toRgbString() === new TinyColor(color).toRgbString();\n };\n return TinyColor;\n}());\nexport { TinyColor };\n// kept for backwards compatability with v1\nexport function tinycolor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n return new TinyColor(color, opts);\n}\n","import { TinyColor } from './index.js';\n// Readability Functions\n// ---------------------\n// <http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef (WCAG Version 2)\n/**\n * AKA `contrast`\n *\n * Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2)\n */\nexport function readability(color1, color2) {\n var c1 = new TinyColor(color1);\n var c2 = new TinyColor(color2);\n return ((Math.max(c1.getLuminance(), c2.getLuminance()) + 0.05) /\n (Math.min(c1.getLuminance(), c2.getLuminance()) + 0.05));\n}\n/**\n * Ensure that foreground and background color combinations meet WCAG2 guidelines.\n * The third argument is an object.\n * the 'level' property states 'AA' or 'AAA' - if missing or invalid, it defaults to 'AA';\n * the 'size' property states 'large' or 'small' - if missing or invalid, it defaults to 'small'.\n * If the entire object is absent, isReadable defaults to {level:\"AA\",size:\"small\"}.\n *\n * Example\n * ```ts\n * new TinyColor().isReadable('#000', '#111') => false\n * new TinyColor().isReadable('#000', '#111', { level: 'AA', size: 'large' }) => false\n * ```\n */\nexport function isReadable(color1, color2, wcag2) {\n var _a, _b;\n if (wcag2 === void 0) { wcag2 = { level: 'AA', size: 'small' }; }\n var readabilityLevel = readability(color1, color2);\n switch (((_a = wcag2.level) !== null && _a !== void 0 ? _a : 'AA') + ((_b = wcag2.size) !== null && _b !== void 0 ? _b : 'small')) {\n case 'AAsmall':\n case 'AAAlarge':\n return readabilityLevel >= 4.5;\n case 'AAlarge':\n return readabilityLevel >= 3;\n case 'AAAsmall':\n return readabilityLevel >= 7;\n default:\n return false;\n }\n}\n/**\n * Given a base color and a list of possible foreground or background\n * colors for that base, returns the most readable color.\n * Optionally returns Black or White if the most readable color is unreadable.\n *\n * @param baseColor - the base color.\n * @param colorList - array of colors to pick the most readable one from.\n * @param args - and object with extra arguments\n *\n * Example\n * ```ts\n * new TinyColor().mostReadable('#123', ['#124\", \"#125'], { includeFallbackColors: false }).toHexString(); // \"#112255\"\n * new TinyColor().mostReadable('#123', ['#124\", \"#125'],{ includeFallbackColors: true }).toHexString(); // \"#ffffff\"\n * new TinyColor().mostReadable('#a8015a', [\"#faf3f3\"], { includeFallbackColors:true, level: 'AAA', size: 'large' }).toHexString(); // \"#faf3f3\"\n * new TinyColor().mostReadable('#a8015a', [\"#faf3f3\"], { includeFallbackColors:true, level: 'AAA', size: 'small' }).toHexString(); // \"#ffffff\"\n * ```\n */\nexport function mostReadable(baseColor, colorList, args) {\n if (args === void 0) { args = { includeFallbackColors: false, level: 'AA', size: 'small' }; }\n var bestColor = null;\n var bestScore = 0;\n var includeFallbackColors = args.includeFallbackColors, level = args.level, size = args.size;\n for (var _i = 0, colorList_1 = colorList; _i < colorList_1.length; _i++) {\n var color = colorList_1[_i];\n var score = readability(baseColor, color);\n if (score > bestScore) {\n bestScore = score;\n bestColor = new TinyColor(color);\n }\n }\n if (isReadable(baseColor, bestColor, { level: level, size: size }) || !includeFallbackColors) {\n return bestColor;\n }\n args.includeFallbackColors = false;\n return mostReadable(baseColor, ['#fff', '#000'], args);\n}\n","import { rgbaToArgbHex } from './conversion.js';\nimport { TinyColor } from './index.js';\n/**\n * Returns the color represented as a Microsoft filter for use in old versions of IE.\n */\nexport function toMsFilter(firstColor, secondColor) {\n var color = new TinyColor(firstColor);\n var hex8String = '#' + rgbaToArgbHex(color.r, color.g, color.b, color.a);\n var secondHex8String = hex8String;\n var gradientType = color.gradientType ? 'GradientType = 1, ' : '';\n if (secondColor) {\n var s = new TinyColor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s.r, s.g, s.b, s.a);\n }\n return \"progid:DXImageTransform.Microsoft.gradient(\".concat(gradientType, \"startColorstr=\").concat(hex8String, \",endColorstr=\").concat(secondHex8String, \")\");\n}\n","import { TinyColor } from './index.js';\nimport { convertToPercentage } from './util.js';\n/**\n * If input is an object, force 1 into \"1.0\" to handle ratios properly\n * String input requires \"1.0\" as input, so 1 will be treated as 1\n */\nexport function fromRatio(ratio, opts) {\n var newColor = {\n r: convertToPercentage(ratio.r),\n g: convertToPercentage(ratio.g),\n b: convertToPercentage(ratio.b),\n };\n if (ratio.a !== undefined) {\n newColor.a = Number(ratio.a);\n }\n return new TinyColor(newColor, opts);\n}\n/** old random function */\nexport function legacyRandom() {\n return new TinyColor({\n r: Math.random(),\n g: Math.random(),\n b: Math.random(),\n });\n}\n","/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\n// randomColor by David Merfield under the CC0 license\n// https://github.com/davidmerfield/randomColor/\nimport { TinyColor } from './index.js';\nexport function random(options) {\n if (options === void 0) { options = {}; }\n // Check if we need to generate multiple colors\n if (options.count !== undefined &&\n options.count !== null) {\n var totalColors = options.count;\n var colors = [];\n options.count = undefined;\n while (totalColors > colors.length) {\n // Since we're generating multiple colors,\n // incremement the seed. Otherwise we'd just\n // generate the same color each time...\n options.count = null;\n if (options.seed) {\n options.seed += 1;\n }\n colors.push(random(options));\n }\n options.count = totalColors;\n return colors;\n }\n // First we pick a hue (H)\n var h = pickHue(options.hue, options.seed);\n // Then use H to determine saturation (S)\n var s = pickSaturation(h, options);\n // Then use S and H to determine brightness (B).\n var v = pickBrightness(h, s, options);\n var res = { h: h, s: s, v: v };\n if (options.alpha !== undefined) {\n res.a = options.alpha;\n }\n // Then we return the HSB color in the desired format\n return new TinyColor(res);\n}\nfunction pickHue(hue, seed) {\n var hueRange = getHueRange(hue);\n var res = randomWithin(hueRange, seed);\n // Instead of storing red as two seperate ranges,\n // we group them, using negative numbers\n if (res < 0) {\n res = 360 + res;\n }\n return res;\n}\nfunction pickSaturation(hue, options) {\n if (options.hue === 'monochrome') {\n return 0;\n }\n if (options.luminosity === 'random') {\n return randomWithin([0, 100], options.seed);\n }\n var saturationRange = getColorInfo(hue).saturationRange;\n var sMin = saturationRange[0];\n var sMax = saturationRange[1];\n switch (options.luminosity) {\n case 'bright':\n sMin = 55;\n break;\n case 'dark':\n sMin = sMax - 10;\n break;\n case 'light':\n sMax = 55;\n break;\n default:\n break;\n }\n return randomWithin([sMin, sMax], options.seed);\n}\nfunction pickBrightness(H, S, options) {\n var bMin = getMinimumBrightness(H, S);\n var bMax = 100;\n switch (options.luminosity) {\n case 'dark':\n bMax = bMin + 20;\n break;\n case 'light':\n bMin = (bMax + bMin) / 2;\n break;\n case 'random':\n bMin = 0;\n bMax = 100;\n break;\n default:\n break;\n }\n return randomWithin([bMin, bMax], options.seed);\n}\nfunction getMinimumBrightness(H, S) {\n var lowerBounds = getColorInfo(H).lowerBounds;\n for (var i = 0; i < lowerBounds.length - 1; i++) {\n var s1 = lowerBounds[i][0];\n var v1 = lowerBounds[i][1];\n var s2 = lowerBounds[i + 1][0];\n var v2 = lowerBounds[i + 1][1];\n if (S >= s1 && S <= s2) {\n var m = (v2 - v1) / (s2 - s1);\n var b = v1 - m * s1;\n return m * S + b;\n }\n }\n return 0;\n}\nfunction getHueRange(colorInput) {\n var num = parseInt(colorInput, 10);\n if (!Number.isNaN(num) && num < 360 && num > 0) {\n return [num, num];\n }\n if (typeof colorInput === 'string') {\n var namedColor = bounds.find(function (n) { return n.name === colorInput; });\n if (namedColor) {\n var color = defineColor(namedColor);\n if (color.hueRange) {\n return color.hueRange;\n }\n }\n var parsed = new TinyColor(colorInput);\n if (parsed.isValid) {\n var hue = parsed.toHsv().h;\n return [hue, hue];\n }\n }\n return [0, 360];\n}\nfunction getColorInfo(hue) {\n // Maps red colors to make picking hue easier\n if (hue >= 334 && hue <= 360) {\n hue -= 360;\n }\n for (var _i = 0, bounds_1 = bounds; _i < bounds_1.length; _i++) {\n var bound = bounds_1[_i];\n var color = defineColor(bound);\n if (color.hueRange && hue >= color.hueRange[0] && hue <= color.hueRange[1]) {\n return color;\n }\n }\n throw Error('Color not found');\n}\nfunction randomWithin(range, seed) {\n if (seed === undefined) {\n return Math.floor(range[0] + Math.random() * (range[1] + 1 - range[0]));\n }\n // Seeded random algorithm from http://indiegamr.com/generate-repeatable-random-numbers-in-js/\n var max = range[1] || 1;\n var min = range[0] || 0;\n seed = (seed * 9301 + 49297) % 233280;\n var rnd = seed / 233280.0;\n return Math.floor(min + rnd * (max - min));\n}\nfunction defineColor(bound) {\n var sMin = bound.lowerBounds[0][0];\n var sMax = bound.lowerBounds[bound.lowerBounds.length - 1][0];\n var bMin = bound.lowerBounds[bound.lowerBounds.length - 1][1];\n var bMax = bound.lowerBounds[0][1];\n return {\n name: bound.name,\n hueRange: bound.hueRange,\n lowerBounds: bound.lowerBounds,\n saturationRange: [sMin, sMax],\n brightnessRange: [bMin, bMax],\n };\n}\n/**\n * @hidden\n */\nexport var bounds = [\n {\n name: 'monochrome',\n hueRange: null,\n lowerBounds: [\n [0, 0],\n [100, 0],\n ],\n },\n {\n name: 'red',\n hueRange: [-26, 18],\n lowerBounds: [\n [20, 100],\n [30, 92],\n [40, 89],\n [50, 85],\n [60, 78],\n [70, 70],\n [80, 60],\n [90, 55],\n [100, 50],\n ],\n },\n {\n name: 'orange',\n hueRange: [19, 46],\n lowerBounds: [\n [20, 100],\n [30, 93],\n [40, 88],\n [50, 86],\n [60, 85],\n [70, 70],\n [100, 70],\n ],\n },\n {\n name: 'yellow',\n hueRange: [47, 62],\n lowerBounds: [\n [25, 100],\n [40, 94],\n [50, 89],\n [60, 86],\n [70, 84],\n [80, 82],\n [90, 80],\n [100, 75],\n ],\n },\n {\n name: 'green',\n hueRange: [63, 178],\n lowerBounds: [\n [30, 100],\n [40, 90],\n [50, 85],\n [60, 81],\n [70, 74],\n [80, 64],\n [90, 50],\n [100, 40],\n ],\n },\n {\n name: 'blue',\n hueRange: [179, 257],\n lowerBounds: [\n [20, 100],\n [30, 86],\n [40, 80],\n [50, 74],\n [60, 60],\n [70, 52],\n [80, 44],\n [90, 39],\n [100, 35],\n ],\n },\n {\n name: 'purple',\n hueRange: [258, 282],\n lowerBounds: [\n [20, 100],\n [30, 87],\n [40, 79],\n [50, 70],\n [60, 65],\n [70, 59],\n [80, 52],\n [90, 45],\n [100, 42],\n ],\n },\n {\n name: 'pink',\n hueRange: [283, 334],\n lowerBounds: [\n [20, 100],\n [30, 90],\n [40, 86],\n [60, 84],\n [80, 80],\n [90, 75],\n [100, 73],\n ],\n },\n];\n","import { inputToRGB, rgbToHex, rgbToHsv } from '@ctrl/tinycolor';\nvar hueStep = 2; // 色相阶梯\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\nvar lightColorCount = 5; // 浅色数量,主色上\nvar darkColorCount = 4; // 深色数量,主色下\n// 暗色主题颜色映射关系表\nvar darkColorMap = [{\n index: 7,\n opacity: 0.15\n}, {\n index: 6,\n opacity: 0.25\n}, {\n index: 5,\n opacity: 0.3\n}, {\n index: 5,\n opacity: 0.45\n}, {\n index: 5,\n opacity: 0.65\n}, {\n index: 5,\n opacity: 0.85\n}, {\n index: 4,\n opacity: 0.9\n}, {\n index: 3,\n opacity: 0.95\n}, {\n index: 2,\n opacity: 0.97\n}, {\n index: 1,\n opacity: 0.98\n}];\n// Wrapper function ported from TinyColor.prototype.toHsv\n// Keep it here because of `hsv.h * 360`\nfunction toHsv(_ref) {\n var r = _ref.r,\n g = _ref.g,\n b = _ref.b;\n var hsv = rgbToHsv(r, g, b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v\n };\n}\n\n// Wrapper function ported from TinyColor.prototype.toHexString\n// Keep it here because of the prefix `#`\nfunction toHex(_ref2) {\n var r = _ref2.r,\n g = _ref2.g,\n b = _ref2.b;\n return \"#\".concat(rgbToHex(r, g, b, false));\n}\n\n// Wrapper function ported from TinyColor.prototype.mix, not treeshakable.\n// Amount in range [0, 1]\n// Assume color1 & color2 has no alpha, since the following src code did so.\nfunction mix(rgb1, rgb2, amount) {\n var p = amount / 100;\n var rgb = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b\n };\n return rgb;\n}\nfunction getHue(hsv, i, light) {\n var hue;\n // 根据色相不同,色相转向不同\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n return hue;\n}\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n var saturation;\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n }\n // 边界值修正\n if (saturation > 1) {\n saturation = 1;\n }\n // 第一格的 s 限制在 0.06-0.1 之间\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n return Number(saturation.toFixed(2));\n}\nfunction getValue(hsv, i, light) {\n var value;\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n if (value > 1) {\n value = 1;\n }\n return Number(value.toFixed(2));\n}\nexport default function generate(color) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var patterns = [];\n var pColor = inputToRGB(color);\n for (var i = lightColorCount; i > 0; i -= 1) {\n var hsv = toHsv(pColor);\n var colorString = toHex(inputToRGB({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n }));\n patterns.push(colorString);\n }\n patterns.push(toHex(pColor));\n for (var _i = 1; _i <= darkColorCount; _i += 1) {\n var _hsv = toHsv(pColor);\n var _colorString = toHex(inputToRGB({\n h: getHue(_hsv, _i),\n s: getSaturation(_hsv, _i),\n v: getValue(_hsv, _i)\n }));\n patterns.push(_colorString);\n }\n\n // dark theme patterns\n if (opts.theme === 'dark') {\n return darkColorMap.map(function (_ref3) {\n var index = _ref3.index,\n opacity = _ref3.opacity;\n var darkColorString = toHex(mix(inputToRGB(opts.backgroundColor || '#141414'), inputToRGB(patterns[index]), opacity * 100));\n return darkColorString;\n });\n }\n return patterns;\n}","import generate from \"./generate\";\nvar presetPrimaryColors = {\n red: '#F5222D',\n volcano: '#FA541C',\n orange: '#FA8C16',\n gold: '#FAAD14',\n yellow: '#FADB14',\n lime: '#A0D911',\n green: '#52C41A',\n cyan: '#13C2C2',\n blue: '#1677FF',\n geekblue: '#2F54EB',\n purple: '#722ED1',\n magenta: '#EB2F96',\n grey: '#666666'\n};\nvar presetPalettes = {};\nvar presetDarkPalettes = {};\nObject.keys(presetPrimaryColors).forEach(function (key) {\n presetPalettes[key] = generate(presetPrimaryColors[key]);\n presetPalettes[key].primary = presetPalettes[key][5];\n\n // dark presetPalettes\n presetDarkPalettes[key] = generate(presetPrimaryColors[key], {\n theme: 'dark',\n backgroundColor: '#141414'\n });\n presetDarkPalettes[key].primary = presetDarkPalettes[key][5];\n});\nvar red = presetPalettes.red;\nvar volcano = presetPalettes.volcano;\nvar gold = presetPalettes.gold;\nvar orange = presetPalettes.orange;\nvar yellow = presetPalettes.yellow;\nvar lime = presetPalettes.lime;\nvar green = presetPalettes.green;\nvar cyan = presetPalettes.cyan;\nvar blue = presetPalettes.blue;\nvar geekblue = presetPalettes.geekblue;\nvar purple = presetPalettes.purple;\nvar magenta = presetPalettes.magenta;\nvar grey = presetPalettes.grey;\nvar gray = presetPalettes.grey;\nexport { generate, presetPalettes, presetDarkPalettes, presetPrimaryColors, red, volcano, orange, gold, yellow, lime, green, cyan, blue, geekblue, purple, magenta, grey, gray };","import type { HeightMapToken, SeedToken } from '../../interface';\n\nconst genControlHeight = (token: SeedToken): HeightMapToken => {\n const { controlHeight } = token;\n\n return {\n controlHeightSM: controlHeight * 0.75,\n controlHeightXS: controlHeight * 0.5,\n controlHeightLG: controlHeight * 1.25,\n };\n};\n\nexport default genControlHeight;\n","import type { SeedToken, SizeMapToken } from '../../interface';\n\nexport default function genSizeMapToken(token: SeedToken): SizeMapToken {\n const { sizeUnit, sizeStep } = token;\n\n return {\n sizeXXL: sizeUnit * (sizeStep + 8), // 48\n sizeXL: sizeUnit * (sizeStep + 4), // 32\n sizeLG: sizeUnit * (sizeStep + 2), // 24\n sizeMD: sizeUnit * (sizeStep + 1), // 20\n sizeMS: sizeUnit * sizeStep, // 16\n size: sizeUnit * sizeStep, // 16\n sizeSM: sizeUnit * (sizeStep - 1), // 12\n sizeXS: sizeUnit * (sizeStep - 2), // 8\n sizeXXS: sizeUnit * (sizeStep - 3), // 4\n };\n}\n","import type { PresetColorType, SeedToken } from './interface';\n\nexport const defaultPresetColors: PresetColorType = {\n blue: '#1677ff',\n purple: '#722ED1',\n cyan: '#13C2C2',\n green: '#52C41A',\n magenta: '#EB2F96',\n pink: '#eb2f96',\n red: '#F5222D',\n orange: '#FA8C16',\n yellow: '#FADB14',\n volcano: '#FA541C',\n geekblue: '#2F54EB',\n gold: '#FAAD14',\n lime: '#A0D911',\n};\n\nconst seedToken: SeedToken = {\n // preset color palettes\n ...defaultPresetColors,\n\n // Color\n colorPrimary: '#1677ff',\n colorSuccess: '#52c41a',\n colorWarning: '#faad14',\n colorError: '#ff4d4f',\n colorInfo: '#1677ff',\n colorLink: '',\n colorTextBase: '',\n\n colorBgBase: '',\n\n // Font\n fontFamily: `microsoft yahei,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif`,\n fontFamilyCode: `'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace`,\n fontWeight: 400,\n fontSize: 12,\n\n // Line\n lineWidth: 1,\n lineType: 'solid',\n\n // Motion\n motionUnit: 0.1,\n motionBase: 0,\n motionEaseOutCirc: 'cubic-bezier(0.08, 0.82, 0.17, 1)',\n motionEaseInOutCirc: 'cubic-bezier(0.78, 0.14, 0.15, 0.86)',\n motionEaseOut: 'cubic-bezier(0.215, 0.61, 0.355, 1)',\n motionEaseInOut: 'cubic-bezier(0.645, 0.045, 0.355, 1)',\n motionEaseOutBack: 'cubic-bezier(0.12, 0.4, 0.29, 1.46)',\n motionEaseInBack: 'cubic-bezier(0.71, -0.46, 0.88, 0.6)',\n motionEaseInQuint: 'cubic-bezier(0.755, 0.05, 0.855, 0.06)',\n motionEaseOutQuint: 'cubic-bezier(0.23, 1, 0.32, 1)',\n\n // Radius\n borderRadius: 6,\n\n // Size\n sizeUnit: 4,\n sizeStep: 4,\n sizePopupArrow: 16,\n\n // Control Base\n controlHeight: 32,\n\n // zIndex\n zIndexBase: 0,\n zIndexPopupBase: 1000,\n\n // opacity\n opacity: 1,\n\n // Wireframe\n wireframe: false,\n\n // Motion\n motion: true,\n //布局相关\n layoutHeaderHeight: 50,\n layoutSiderWidth: 200,\n layoutIconSize: 24,\n layoutNavHeight: 40,\n //渐变色\n gradientColors: ['rgba(0, 64, 237,0.3)', 'rgba(0, 229, 237,0.3)'],\n};\nexport default seedToken;\n","import { mapValues, isObject, toLower } from 'lodash-es';\nimport { TinyColor } from '@ctrl/tinycolor';\n/**\n * Sums the passed percentage to the R, G or B of a HEX color\n * @param {string} color The color to change\n * @param {number} amount The amount to change the color by\n * @returns {string} The processed part of the color\n */\nfunction addLight(color: string, amount: number) {\n const cc = parseInt(color, 16) + amount;\n const c = cc > 255 ? 255 : cc;\n return c.toString(16).length > 1 ? c.toString(16) : `0${c.toString(16)}`;\n}\n\n/**\n * Lightens a 6 char HEX color according to the passed percentage\n * @param {string} color The color to change\n * @param {number} amount The amount to change the color by\n * @returns {string} The processed color represented as HEX\n */\nexport function lighten(color: string, amount: number) {\n color = color.indexOf('#') >= 0 ? color.substring(1, color.length) : color;\n amount = Math.trunc((255 * amount) / 100);\n return `#${addLight(color.substring(0, 2), amount)}${addLight(\n color.substring(2, 4),\n amount,\n )}${addLight(color.substring(4, 6), amount)}`;\n}\n\nexport function getTokenCssVar(data: any, prefix?: string) {\n if (typeof data !== 'object' || Array.isArray(data)) return;\n const tokenCss: any = {};\n mapValues(data, (itemValue, name) => {\n const varName = prefix ? '--' + `${prefix}-` + name : '--' + name;\n const value =\n typeof itemValue === 'number' &&\n !['lineheight', 'opacity', 'weight'].some((key) =>\n toLower(name).includes(key),\n )\n ? itemValue + 'px'\n : itemValue;\n if (isObject(itemValue)) return getTokenCssVar(value, name);\n tokenCss[varName] = value;\n });\n return tokenCss;\n}\n\nexport const getAlphaColor = (baseColor: string, alpha: number) => {\n return new TinyColor(baseColor).setAlpha(alpha).toRgbString();\n};\n\nexport const getDarkenSolidColor = (baseColor: string, brightness: number) => {\n const instance = new TinyColor(baseColor);\n return instance.darken(brightness).toHexString();\n};\nexport const getLightenSolidColor = (baseColor: string, brightness: number) => {\n const instance = new TinyColor(baseColor);\n return instance.lighten(brightness).toHexString();\n};\n\nexport const getBackgroundColor = (baseColor: string, bgBaseColor: string) => {\n const color = new TinyColor(baseColor);\n return color.onBackground(bgBaseColor).toRgbString();\n};\n","import { TinyColor } from '@ctrl/tinycolor';\nimport type { ColorMapToken, SeedToken } from '../../interface';\nimport type {\n GenerateColorMap,\n GenerateNeutralColorMap,\n GenerateGradientColorMap,\n} from '../ColorMap';\nimport { getBackgroundColor, getAlphaColor } from '../../utils';\nimport { get } from 'lodash';\n\nexport const generateGradientColorPalettes: GenerateGradientColorMap = (\n bgBaseColor: string,\n gradientColors: string[],\n) => {\n return gradientColors.map(item=> getBackgroundColor(item as string, bgBaseColor));\n};\n\ninterface PaletteGenerators {\n generateColorPalettes: GenerateColorMap;\n generateNeutralColorPalettes: GenerateNeutralColorMap;\n}\n\nexport default function genColorMapToken(\n seed: SeedToken,\n { generateColorPalettes, generateNeutralColorPalettes }: PaletteGenerators,\n): ColorMapToken {\n const {\n colorSuccess: colorSuccessBase,\n colorWarning: colorWarningBase,\n colorError: colorErrorBase,\n colorInfo: colorInfoBase,\n colorPrimary: colorPrimaryBase,\n colorBgBase,\n colorTextBase,\n } = seed;\n\n const primaryColors = generateColorPalettes(colorPrimaryBase);\n const successColors = generateColorPalettes(colorSuccessBase);\n const warningColors = generateColorPalettes(colorWarningBase);\n const errorColors = generateColorPalettes(colorErrorBase);\n const infoColors = generateColorPalettes(colorInfoBase);\n const neutralColors = generateNeutralColorPalettes(\n colorBgBase,\n colorTextBase,\n );\n\n const gradientColors = generateGradientColorPalettes(\n neutralColors.colorBgBase,\n seed.gradientColors as any,\n );\n\n // Color Link\n const colorLink = seed.colorLink || seed.colorInfo;\n const linkColors = generateColorPalettes(colorLink);\n\n return {\n ...neutralColors,\n gradientColors,\n colorPrimaryBg: primaryColors[1],\n colorPrimaryBgHover: primaryColors[2],\n colorPrimaryBorder: primaryColors[3],\n colorPrimaryBorderHover: primaryColors[4],\n colorPrimaryHover: primaryColors[5],\n colorPrimary: primaryColors[6],\n colorPrimaryActive: primaryColors[7],\n colorPrimaryTextHover: primaryColors[8],\n colorPrimaryText: primaryColors[9],\n colorPrimaryTextActive: primaryColors[10],\n\n colorSuccessBg: successColors[1],\n colorSuccessBgHover: successColors[2],\n colorSuccessBorder: successColors[3],\n colorSuccessBorderHover: successColors[4],\n colorSuccessHover: successColors[4],\n colorSuccess: successColors[6],\n colorSuccessActive: successColors[7],\n colorSuccessTextHover: successColors[8],\n colorSuccessText: successColors[9],\n colorSuccessTextActive: successColors[10],\n\n colorErrorBg: errorColors[1],\n colorErrorBgHover: errorColors[2],\n colorErrorBorder: errorColors[3],\n colorErrorBorderHover: errorColors[4],\n colorErrorHover: errorColors[5],\n colorError: errorColors[6],\n colorErrorActive: errorColors[7],\n colorErrorTextHover: errorColors[8],\n colorErrorText: errorColors[9],\n colorErrorTextActive: errorColors[10],\n\n colorWarningBg: warningColors[1],\n colorWarningBgHover: warningColors[2],\n colorWarningBorder: warningColors[3],\n colorWarningBorderHover: warningColors[4],\n colorWarningHover: warningColors[4],\n colorWarning: warningColors[6],\n colorWarningActive: warningColors[7],\n colorWarningTextHover: warningColors[8],\n colorWarningText: warningColors[9],\n colorWarningTextActive: warningColors[10],\n\n colorInfoBg: infoColors[1],\n colorInfoBgHover: infoColors[2],\n colorInfoBorder: infoColors[3],\n colorInfoBorderHover: infoColors[4],\n colorInfoHover: infoColors[4],\n colorInfo: infoColors[6],\n colorInfoActive: infoColors[7],\n colorInfoTextHover: infoColors[8],\n colorInfoText: infoColors[9],\n colorInfoTextActive: infoColors[10],\n\n colorLinkHover: linkColors[4],\n colorLink: linkColors[6],\n colorLinkActive: linkColors[7],\n\n colorBgMask: new TinyColor('#000').setAlpha(0.45).toRgbString(),\n colorWhite: '#fff',\n };\n}\n","import type { MapToken } from '../../interface';\n\nconst genRadius = (\n radiusBase: number,\n): Pick<\n MapToken,\n | 'borderRadiusXS'\n | 'borderRadiusSM'\n | 'borderRadiusLG'\n | 'borderRadius'\n | 'borderRadiusOuter'\n | 'borderRadiusXL'\n | 'borderRadiusXXL'\n> => {\n let radiusLG = radiusBase;\n let radiusSM = radiusBase;\n let radiusXS = radiusBase;\n let radiusXL = radiusBase;\n let radiusXXL = radiusBase;\n let radiusOuter = radiusBase;\n\n // radiusLG\n if (radiusBase < 6 && radiusBase >= 5) {\n radiusLG = radiusBase + 1;\n } else if (radiusBase < 16 && radiusBase >= 6) {\n radiusLG = radiusBase + 2;\n } else if (radiusBase >= 16) {\n radiusLG = 16;\n }\n\n // radiusSM\n if (radiusBase < 7 && radiusBase >= 5) {\n radiusSM = 4;\n } else if (radiusBase < 8 && radiusBase >= 7) {\n radiusSM = 5;\n } else if (radiusBase < 14 && radiusBase >= 8) {\n radiusSM = 6;\n } else if (radiusBase < 16 && radiusBase >= 14) {\n radiusSM = 7;\n } else if (radiusBase >= 16) {\n radiusSM = 8;\n }\n\n // radiusXS\n if (radiusBase < 6 && radiusBase >= 2) {\n radiusXS = 1;\n } else if (radiusBase >= 6) {\n radiusXS = 2;\n }\n\n // radiusOuter\n if (radiusBase > 4 && radiusBase < 8) {\n radiusOuter = 4;\n } else if (radiusBase >= 8) {\n radiusOuter = 6;\n }\n\n radiusXL = radiusLG > 0 ? radiusLG + 4 : radiusLG;\n radiusXXL = radiusLG > 0 ? radiusLG + 8 : radiusLG;\n\n\n return {\n borderRadius: radiusBase > 16 ? 16 : radiusBase,\n borderRadiusXS: radiusXS,\n borderRadiusSM: radiusSM,\n borderRadiusLG: radiusLG,\n borderRadiusXL: radiusXL,\n borderRadiusXXL: radiusXXL,\n borderRadiusOuter: radiusOuter,\n };\n};\n\nexport default genRadius;\n","import type { CommonMapToken, SeedToken } from '../../interface';\nimport genRadius from './genRadius';\n\nexport default function genCommonMapToken(token: SeedToken): CommonMapToken {\n const {\n motionUnit,\n motionBase,\n borderRadius,\n lineWidth,\n opacity,\n layoutHeaderHeight,\n } = token;\n\n return {\n // motion\n motionDurationFast: `${(motionBase + motionUnit).toFixed(1)}s`,\n motionDurationMid: `${(motionBase + motionUnit * 2).toFixed(1)}s`,\n motionDurationSlow: `${(motionBase + motionUnit * 3).toFixed(1)}s`,\n\n // line\n lineWidthBold: lineWidth + 1,\n\n // radius\n ...genRadius(borderRadius),\n opacityImage: opacity,\n opacity1: opacity * 0.8,\n opacity2: opacity * 0.6,\n };\n}\n","import { generate } from '@ant-design/colors';\nimport type {\n GenerateColorMap,\n GenerateNeutralColorMap,\n GenerateGradientColorMap,\n} from '../ColorMap';\nimport {\n getAlphaColor,\n getDarkenSolidColor,\n getBackgroundColor,\n} from '../../utils';\nimport { TinyColor } from '@ctrl/tinycolor';\n\nexport const generateColorPalettes: GenerateColorMap = (baseColor: string) => {\n const colors = generate(baseColor);\n return {\n 1: colors[0],\n 2: colors[1],\n 3: colors[2],\n 4: colors[3],\n 5: colors[4],\n 6: colors[5],\n 7: colors[6],\n 8: colors[4],\n 9: colors[5],\n 10: colors[6],\n // 8: colors[7],\n // 9: colors[8],\n // 10: colors[9],\n };\n};\n\nexport const generateNeutralColorPalettes: GenerateNeutralColorMap = (\n bgBaseColor: string,\n textBaseColor: string,\n) => {\n let colorBgBase = bgBaseColor || '#fff';\n let colorTextBase = textBaseColor || '#000';\n\n colorBgBase = new TinyColor(colorBgBase).lighten()\n ? colorBgBase\n : new TinyColor(colorBgBase).lighten(100).toRgbString();\n colorTextBase = new TinyColor(colorTextBase).isDark()\n ? colorTextBase\n : new TinyColor(colorTextBase).darken(100).toRgbString();\n\n return {\n colorBgBase,\n colorTextBase,\n\n // colorText: getAlphaColor(colorTextBase, 0.88),\n // colorTextSecondary: getAlphaColor(colorTextBase, 0.65),\n // colorTextTertiary: getAlphaColor(colorTextBase, 0.45),\n // colorTextQuaternary: getAlphaColor(colorTextBase, 0.25),\n\n colorFill: getAlphaColor(colorTextBase, 0.15),\n colorFillSecondary: getAlphaColor(colorTextBase, 0.06),\n colorFillTertiary: getAlphaColor(colorTextBase, 0.04),\n colorFillQuaternary: getAlphaColor(colorTextBase, 0.02),\n\n colorBgLayout: getDarkenSolidColor(colorBgBase, 4),\n colorBgContainer: getDarkenSolidColor(colorBgBase, 0),\n colorBgElevated: getDarkenSolidColor(colorBgBase, 0),\n colorBgSpotlight: getAlphaColor(colorTextBase, 0.85),\n\n colorBorder: getDarkenSolidColor(colorBgBase, 15),\n colorBorderSecondary: getDarkenSolidColor(colorBgBase, 6),\n\n colorText: '#333',\n colorTextSecondary: '#666',\n colorTextTertiary: '#999',\n colorTextQuaternary: '#999',\n\n\n };\n};\n","// https://zhuanlan.zhihu.com/p/32746810\nexport default function getFontSizes(base: number) {\n const fontSizes = new Array(10).fill(null).map((_, index) => {\n const i = index - 1;\n const baseSize = base * 2.71828 ** (i / 5);\n const intSize = index > 1 ? Math.floor(baseSize) : Math.ceil(baseSize);\n\n // Convert to even\n return Math.floor(intSize / 2) * 2;\n });\n\n fontSizes[1] = base;\n\n return fontSizes.map((size) => {\n const height = size + 8;\n\n return {\n size,\n lineHeight: height / size,\n };\n });\n}\n","import type { FontMapToken } from '../../interface';\nimport genFontSizes from './genFontSizes';\n\nconst genFontMapToken = (fontSize: number): FontMapToken => {\n const fontSizePairs = genFontSizes(fontSize);\n const fontSizes = fontSizePairs.map((pair) => pair.size);\n const lineHeights = fontSizePairs.map((pair) => pair.lineHeight);\n\n return {\n fontSizeSM: fontSizes[0],\n fontSize: fontSizes[1],\n fontSizeLG: fontSizes[2],\n fontSizeXL: fontSizes[3],\n\n fontSizeHeading1: fontSizes[6],\n fontSizeHeading2: fontSizes[5],\n fontSizeHeading3: fontSizes[4],\n fontSizeHeading4: fontSizes[3],\n fontSizeHeading5: fontSizes[2],\n\n lineHeight: lineHeights[1],\n lineHeightLG: lineHeights[2],\n lineHeightSM: lineHeights[0],\n\n lineHeightHeading1: lineHeights[6],\n lineHeightHeading2: lineHeights[5],\n lineHeightHeading3: lineHeights[4],\n lineHeightHeading4: lineHeights[3],\n lineHeightHeading5: lineHeights[2],\n };\n};\n\nexport default genFontMapToken;\n","import { generate } from '@ant-design/colors';\nimport genControlHeight from '../shared/genControlHeight';\nimport genSizeMapToken from '../shared/genSizeMapToken';\nimport type {\n ColorPalettes,\n LegacyColorPalettes,\n MapToken,\n PresetColorType,\n SeedToken,\n} from '../../interface';\nimport { defaultPresetColors } from '../../seed';\nimport genColorMapToken from '../shared/genColorMapToken';\nimport genCommonMapToken from '../shared/genCommonMapToken';\nimport { generateColorPalettes, generateNeutralColorPalettes } from './colors';\nimport genFontMapToken from '../shared/genFontMapToken';\n\nexport default function derivative(token: SeedToken): MapToken {\n const colorPalettes = (\n Object.keys(defaultPresetColors) as (keyof PresetColorType)[]\n )\n .map((colorKey: keyof PresetColorType) => {\n const colors = generate(token[colorKey]);\n\n return new Array(10).fill(1).reduce((prev, _, i) => {\n prev[`${colorKey}-${i + 1}`] = colors[i];\n prev[`${colorKey}${i + 1}`] = colors[i];\n return prev;\n }, {}) as ColorPalettes & LegacyColorPalettes;\n })\n .reduce(\n (prev, cur) => {\n prev = {\n ...prev,\n ...cur,\n };\n return prev;\n },\n {} as ColorPalettes & LegacyColorPalettes,\n );\n\n return {\n ...token,\n ...colorPalettes,\n // Colors\n ...genColorMapToken(token, {\n generateColorPalettes,\n generateNeutralColorPalettes,\n }),\n // Font\n ...genFontMapToken(token.fontSize),\n // Size\n ...genSizeMapToken(token),\n // Height\n ...genControlHeight(token),\n // Others\n ...genCommonMapToken(token),\n };\n}\n","import { generate } from '@ant-design/colors';\nimport type { GenerateColorMap, GenerateNeutralColorMap } from '../ColorMap';\nimport { getAlphaColor, getLightenSolidColor } from '../../utils';\nimport { TinyColor } from '@ctrl/tinycolor';\nexport const generateColorPalettes: GenerateColorMap = (baseColor: string) => {\n const colors = generate(baseColor, { theme: 'dark' });\n return {\n 1: colors[0],\n 2: colors[1],\n 3: colors[2],\n 4: colors[3],\n 5: colors[6],\n 6: colors[5],\n 7: colors[4],\n 8: colors[6],\n 9: colors[5],\n 10: colors[4],\n // 8: colors[9],\n // 9: colors[8],\n // 10: colors[7],\n };\n};\n\nexport const generateNeutralColorPalettes: GenerateNeutralColorMap = (\n bgBaseColor: string,\n textBaseColor: string,\n) => {\n let colorBgBase = bgBaseColor || '#000';\n let colorTextBase = textBaseColor || '#fff';\n\n colorBgBase = new TinyColor(colorBgBase).isDark()\n ? colorBgBase\n : new TinyColor(colorBgBase).darken(100).toRgbString();\n colorTextBase = new TinyColor(colorTextBase).isLight()\n ? colorTextBase\n : new TinyColor(colorTextBase).lighten(100).toRgbString();\n\n return {\n colorBgBase,\n colorTextBase,\n\n\n colorText: getAlphaColor(colorTextBase, 0.85),\n colorTextSecondary: getAlphaColor(colorTextBase, 0.65),\n colorTextTertiary: getAlphaColor(colorTextBase, 0.35),\n colorTextQuaternary: getAlphaColor(colorTextBase, 0.35),\n\n colorFill: getAlphaColor(colorTextBase, 0.18),\n colorFillSecondary: getAlphaColor(colorTextBase, 0.12),\n colorFillTertiary: getAlphaColor(colorTextBase, 0.08),\n colorFillQuaternary: getAlphaColor(colorTextBase, 0.04),\n\n colorBgElevated: getLightenSolidColor(colorBgBase, 12),\n colorBgContainer: getLightenSolidColor(colorBgBase, 8),\n colorBgLayout: getLightenSolidColor(colorBgBase, 0),\n colorBgSpotlight: getLightenSolidColor(colorBgBase, 26),\n\n colorBorder: getLightenSolidColor(colorBgBase, 26),\n colorBorderSecondary: getLightenSolidColor(colorBgBase, 19),\n };\n};\n","import { generate } from '@ant-design/colors';\nimport type {\n DerivativeFunc,\n ColorPalettes,\n LegacyColorPalettes,\n MapToken,\n PresetColorType,\n SeedToken,\n AliasToken,\n} from '../../interface';\nimport { defaultPresetColors } from '../../seed';\nimport genColorMapToken from '../shared/genColorMapToken';\nimport { generateColorPalettes, generateNeutralColorPalettes } from './colors';\nimport defaultAlgorithm from '../default';\n\nconst derivative: DerivativeFunc<SeedToken, MapToken> = (\n token,\n mapToken,\n) => {\n const colorPalettes = (\n Object.keys(defaultPresetColors) as (keyof PresetColorType)[]\n )\n .map((colorKey: keyof PresetColorType) => {\n const colors = generate(token[colorKey], { theme: 'dark' });\n\n return new Array(10).fill(1).reduce((prev, _, i) => {\n prev[`${colorKey}-${i + 1}`] = colors[i];\n prev[`${colorKey}${i + 1}`] = colors[i];\n return prev;\n }, {}) as ColorPalettes;\n })\n .reduce(\n (prev, cur) => {\n prev = {\n ...prev,\n ...cur,\n };\n return prev;\n },\n {} as ColorPalettes & LegacyColorPalettes,\n );\n\n const mergedMapToken = mapToken ?? defaultAlgorithm(token);\n\n return {\n ...mergedMapToken,\n\n // Dark tokens\n ...colorPalettes,\n // Colors\n ...genColorMapToken(token, {\n generateColorPalettes,\n generateNeutralColorPalettes,\n }),\n };\n};\n\nexport default derivative;\n","import type { SeedToken, SizeMapToken } from '../../interface';\n\nexport default function genSizeMapToken(token: SeedToken): SizeMapToken {\n const { sizeUnit, sizeStep } = token;\n\n const compactSizeStep = sizeStep - 2;\n\n return {\n sizeXXL: sizeUnit * (compactSizeStep + 10),\n sizeXL: sizeUnit * (compactSizeStep + 6),\n sizeLG: sizeUnit * (compactSizeStep + 2),\n sizeMD: sizeUnit * (compactSizeStep + 2),\n sizeMS: sizeUnit * (compactSizeStep + 1),\n size: sizeUnit * compactSizeStep,\n sizeSM: sizeUnit * compactSizeStep,\n sizeXS: sizeUnit * (compactSizeStep - 1),\n sizeXXS: sizeUnit * (compactSizeStep - 1),\n };\n}\n","import genControlHeight from '../shared/genControlHeight';\nimport type {\n DerivativeFunc,\n MapToken,\n SeedToken,\n AliasToken,\n} from '../../interface';\nimport defaultAlgorithm from '../default';\nimport genCompactSizeMapToken from './genCompactSizeMapToken';\nimport genFontMapToken from '../shared/genFontMapToken';\n\nconst derivative: DerivativeFunc<SeedToken, MapToken> = (token, mapToken) => {\n const mergedMapToken = mapToken ?? defaultAlgorithm(token);\n\n const fontSize = mergedMapToken.fontSizeSM; // Smaller size font-size as base\n const controlHeight = mergedMapToken.controlHeight - 4;\n\n return {\n ...mergedMapToken,\n ...genCompactSizeMapToken(mapToken ?? token),\n\n // font\n ...genFontMapToken(fontSize),\n\n // controlHeight\n controlHeight,\n ...genControlHeight({ ...mergedMapToken, controlHeight }),\n };\n};\n\nexport default derivative;\n","import { getAlphaColor, getDarkenSolidColor } from '../../utils';\n\nexport const generateMettingNeutralColorPalettes = (\n bgBaseColor: string,\n textBaseColor: string,\n) => {\n const colorBgBase = bgBaseColor || '#fff';\n const colorTextBase = textBaseColor || '#000';\n\n return {\n colorBgBase,\n colorTextBase,\n\n colorText: getAlphaColor(colorTextBase, 0.9),\n colorTextSecondary: getAlphaColor(colorTextBase, 0.8),\n colorTextTertiary: getAlphaColor(colorTextBase, 0.7),\n colorTextQuaternary: getAlphaColor(colorTextBase, 0.6),\n\n colorFill: getAlphaColor(colorTextBase, 0.3),\n colorFillSecondary: getAlphaColor(colorTextBase, 0.2),\n colorFillTertiary: getAlphaColor(colorTextBase, 0.1),\n colorFillQuaternary: getAlphaColor(colorTextBase, 0.06),\n\n colorBgLayout: getDarkenSolidColor(colorBgBase, 6),\n colorBgContainer: getDarkenSolidColor(colorBgBase, 0),\n colorBgElevated: getDarkenSolidColor(colorBgBase, 0),\n colorBgSpotlight: getAlphaColor(colorTextBase, 1),\n\n colorBorder: getDarkenSolidColor(colorBgBase, 30),\n colorBorderSecondary: getDarkenSolidColor(colorBgBase, 12),\n };\n};\n","import { generate } from '@ant-design/colors';\nimport type {\n ColorPalettes,\n LegacyColorPalettes,\n MapToken,\n PresetColorType,\n SeedToken,\n} from '../../interface';\nimport { defaultPresetColors } from '../../seed';\nimport defaultAlgorithm from '../default';\nimport { generateMettingNeutralColorPalettes } from './colors';\n\nexport default function derivative(\n token: SeedToken,\n mapToken: MapToken,\n): MapToken {\n const mergedMapToken = mapToken ?? defaultAlgorithm(token);\n const colorPalettes = (\n Object.keys(defaultPresetColors) as (keyof PresetColorType)[]\n )\n .map((colorKey: keyof PresetColorType) => {\n const colors = generate(token[colorKey]);\n\n return new Array(10).fill(1).reduce((prev, _, i) => {\n prev[`${colorKey}-${i + 1}`] = colors[i];\n prev[`${colorKey}${i + 1}`] = colors[i];\n return prev;\n }, {}) as ColorPalettes & LegacyColorPalettes;\n })\n .reduce(\n (prev, cur) => {\n prev = {\n ...prev,\n ...cur,\n };\n return prev;\n },\n {} as ColorPalettes & LegacyColorPalettes,\n );\n const { fontSize, colorBgBase, colorTextBase } = mergedMapToken;\n\n return {\n ...mergedMapToken,\n\n ...colorPalettes,\n\n // Colors\n ...generateMettingNeutralColorPalettes(colorBgBase, colorTextBase),\n // Font\n fontSizeSM: fontSize ,\n fontSize: fontSize + 2,\n fontSizeLG: fontSize + 3,\n fontSizeXL: fontSize + 4,\n };\n}\n","import { TinyColor } from '@ctrl/tinycolor';\n\nfunction isStableColor(color: number): boolean {\n return color >= 0 && color <= 255;\n}\n\nfunction getAlphaColor(frontColor: string, backgroundColor: string): string {\n const { r: fR, g: fG, b: fB, a: originAlpha } = new TinyColor(frontColor).toRgb();\n if (originAlpha < 1) {\n return frontColor;\n }\n\n const { r: bR, g: bG, b: bB } = new TinyColor(backgroundColor).toRgb();\n\n for (let fA = 0.01; fA <= 1; fA += 0.01) {\n const r = Math.round((fR - bR * (1 - fA)) / fA);\n const g = Math.round((fG - bG * (1 - fA)) / fA);\n const b = Math.round((fB - bB * (1 - fA)) / fA);\n if (isStableColor(r) && isStableColor(g) && isStableColor(b)) {\n return new TinyColor({ r, g, b, a: Math.round(fA * 100) / 100 }).toRgbString();\n }\n }\n\n // fallback\n /* istanbul ignore next */\n return new TinyColor({ r: fR, g: fG, b: fB, a: 1 }).toRgbString();\n}\n\nexport default getAlphaColor;\n","import { TinyColor } from '@ctrl/tinycolor';\nimport type { AliasToken, MapToken, SeedToken } from '../../interface';\nimport seedToken from '../../seed';\nimport getAlphaColor from './getAlphaColor';\n\n/** Raw merge of `@ant-design/cssinjs` token. Which need additional process */\ntype RawMergedToken = MapToken & { override: Partial<AliasToken> };\n\n/**\n * Seed (designer) > Derivative (designer) > Alias (developer).\n *\n * Merge seed & derivative & override token and generate alias token for developer.\n */\nexport default function formatToken(derivativeToken: RawMergedToken): AliasToken {\n const { override, ...restToken } = derivativeToken;\n const overrideTokens = { ...override };\n\n Object.keys(seedToken).forEach((token) => {\n delete overrideTokens[token as keyof SeedToken];\n });\n\n const mergedToken = {\n ...restToken,\n ...overrideTokens,\n };\n\n const screenXS = 480;\n const screenSM = 576;\n const screenMD = 768;\n const screenLG = 992;\n const screenXL = 1200;\n const screenXXL = 1600;\n\n // Motion\n if (mergedToken.motion === false) {\n const fastDuration = '0s';\n mergedToken.motionDurationFast = fastDuration;\n mergedToken.motionDurationMid = fastDuration;\n mergedToken.motionDurationSlow = fastDuration;\n }\n\n // Generate alias token\n const aliasToken: AliasToken = {\n ...mergedToken,\n\n // ============== Background ============== //\n colorFillContent: mergedToken.colorFillSecondary,\n colorFillContentHover: mergedToken.colorFill,\n colorFillAlter: mergedToken.colorFillQuaternary,\n colorBgContainerDisabled: mergedToken.colorFillTertiary,\n\n // ============== Split ============== //\n colorBorderBg: mergedToken.colorBgContainer,\n colorSplit: getAlphaColor(mergedToken.colorBorderSecondary, mergedToken.colorBgContainer),\n\n // ============== Text ============== //\n colorTextPlaceholder: mergedToken.colorTextQuaternary,\n colorTextDisabled: mergedToken.colorTextQuaternary,\n colorTextHeading: mergedToken.colorText,\n colorTextLabel: mergedToken.colorTextSecondary,\n colorTextDescription: mergedToken.colorTextTertiary,\n colorTextLightSolid: mergedToken.colorWhite,\n colorHighlight: mergedToken.colorError,\n colorBgTextHover: mergedToken.colorFillSecondary,\n colorBgTextActive: mergedToken.colorFill,\n\n colorIcon: mergedToken.colorTextTertiary,\n colorIconHover: mergedToken.colorText,\n\n colorErrorOutline: getAlphaColor(mergedToken.colorErrorBg, mergedToken.colorBgContainer),\n colorWarningOutline: getAlphaColor(mergedToken.colorWarningBg, mergedToken.colorBgContainer),\n\n // Font\n fontSizeIcon: mergedToken.fontSizeSM,\n\n // Line\n lineWidthFocus: mergedToken.lineWidth * 2,\n\n // Control\n lineWidth: mergedToken.lineWidth,\n controlOutlineWidth: mergedToken.lineWidth * 2,\n // Checkbox size and expand icon size\n controlInteractiveSize: mergedToken.controlHeight / 2,\n\n controlItemBgHover: mergedToken.colorFillTertiary,\n controlItemBgActive: mergedToken.colorPrimaryBg,\n controlItemBgActiveHover: mergedToken.colorPrimaryBgHover,\n controlItemBgActiveDisabled: mergedToken.colorFill,\n controlTmpOutline: mergedToken.colorFillQuaternary,\n controlOutline: getAlphaColor(mergedToken.colorPrimaryBg, mergedToken.colorBgContainer),\n\n lineType: mergedToken.lineType,\n borderRadius: mergedToken.borderRadius,\n borderRadiusXS: mergedToken.borderRadiusXS,\n borderRadiusSM: mergedToken.borderRadiusSM,\n borderRadiusLG: mergedToken.borderRadiusLG,\n\n fontWeightStrong: 700,\n\n opacityLoading: 0.65,\n\n linkDecoration: 'none',\n linkHoverDecoration: 'none',\n linkFocusDecoration: 'none',\n\n controlPaddingHorizontal: 12,\n controlPaddingHorizontalSM: 8,\n\n paddingXXS: mergedToken.sizeXXS,\n paddingXS: mergedToken.sizeXS,\n paddingSM: mergedToken.sizeSM,\n padding: mergedToken.size,\n paddingMD: mergedToken.sizeMD,\n paddingLG: mergedToken.sizeLG,\n paddingXL: mergedToken.sizeXL,\n\n paddingContentHorizontalLG: mergedToken.sizeLG,\n paddingContentVerticalLG: mergedToken.sizeMS,\n paddingContentHorizontal: mergedToken.sizeMS,\n paddingContentVertical: mergedToken.sizeSM,\n paddingContentHorizontalSM: mergedToken.size,\n paddingContentVerticalSM: mergedToken.sizeXS,\n\n marginXXS: mergedToken.sizeXXS,\n marginXS: mergedToken.sizeXS,\n marginSM: mergedToken.sizeSM,\n margin: mergedToken.size,\n marginMD: mergedToken.sizeMD,\n marginLG: mergedToken.sizeLG,\n marginXL: mergedToken.sizeXL,\n marginXXL: mergedToken.sizeXXL,\n\n boxShadow: `\n 0 1px 2px 0 rgba(0, 0, 0, 0.04),\n 0 1px 8px -1px rgba(0, 0, 0, 0.03),\n 0 2px 4px 0 rgba(0, 0, 0, 0.02)\n `,\n boxShadowSecondary: `\n 0 1px 2px 0 rgba(0, 0, 0, 0.04),\n 0 1px 8px -1px rgba(0, 0, 0, 0.03),\n 0 2px 4px 0 rgba(0, 0, 0, 0.02)\n `,\n boxShadowTertiary: `\n 0 1px 2px 0 rgba(0, 0, 0, 0.04),\n 0 1px 8px -1px rgba(0, 0, 0, 0.03),\n 0 2px 4px 0 rgba(0, 0, 0, 0.02)\n `,\n\n screenXS,\n screenXSMin: screenXS,\n screenXSMax: screenSM - 1,\n screenSM,\n screenSMMin: screenSM,\n screenSMMax: screenMD - 1,\n screenMD,\n screenMDMin: screenMD,\n screenMDMax: screenLG - 1,\n screenLG,\n screenLGMin: screenLG,\n screenLGMax: screenXL - 1,\n screenXL,\n screenXLMin: screenXL,\n screenXLMax: screenXXL - 1,\n screenXXL,\n screenXXLMin: screenXXL,\n\n boxShadowPopoverArrow: '2px 2px 5px rgba(0, 0, 0, 0.05)',\n boxShadowCard: `0px 0px 10px 0px rgba(0, 0, 0, 0.1)`,\n boxShadowDrawerRight: `\n -6px 0 16px 0 rgba(0, 0, 0, 0.04),\n -3px 0 6px -4px rgba(0, 0, 0, 0.03),\n -9px 0 28px 8px rgba(0, 0, 0, 0.02)\n `,\n boxShadowDrawerLeft: `\n 6px 0 16px 0 rgba(0, 0, 0, 0.04),\n 3px 0 6px -4px rgba(0, 0, 0, 0.03),\n 9px 0 28px 8px rgba(0, 0, 0, 0.02)\n `,\n boxShadowDrawerUp: `\n 6px 0 16px 0 rgba(0, 0, 0, 0.04),\n 3px 0 6px -4px rgba(0, 0, 0, 0.03),\n 9px 0 28px 8px rgba(0, 0, 0, 0.02)\n `,\n boxShadowDrawerDown: `\n 0 -6px 16px 0 rgba(0, 0, 0, 0.04),\n 0 -3px 6px -4px rgba(0, 0, 0, 0.03),\n 0 -9px 28px 8px rgba(0, 0, 0, 0.02)\n `,\n boxShadowTabsOverflowLeft: `\n 6px 0 16px 0 rgba(0, 0, 0, 0.04),\n 3px 0 6px -4px rgba(0, 0, 0, 0.03),\n 9px 0 28px 8px rgba(0, 0, 0, 0.02)\n `,\n boxShadowTabsOverflowRight: `\n -6px 0 16px 0 rgba(0, 0, 0, 0.04),\n -3px 0 6px -4px rgba(0, 0, 0, 0.03),\n -9px 0 28px 8px rgba(0, 0, 0, 0.02)\n `,\n boxShadowTabsOverflowTop: `\n 6px 0 16px 0 rgba(0, 0, 0, 0.04),\n 3px 0 6px -4px rgba(0, 0, 0, 0.03),\n 9px 0 28px 8px rgba(0, 0, 0, 0.02)\n `,\n boxShadowTabsOverflowBottom: `\n 0 -6px 16px 0 rgba(0, 0, 0, 0.04),\n 0 -3px 6px -4px rgba(0, 0, 0, 0.03),\n 0 -9px 28px 8px rgba(0, 0, 0, 0.02)\n `,\n // boxShadowCard: `\n // 0 1px 2px -2px ${new TinyColor('rgba(0, 0, 0, 0.16)').toRgbString()},\n // 0 3px 6px 0 ${new TinyColor('rgba(0, 0, 0, 0.12)').toRgbString()},\n // 0 5px 12px 4px ${new TinyColor('rgba(0, 0, 0, 0.09)').toRgbString()}\n // `,\n // boxShadowDrawerRight: `\n // -6px 0 16px 0 rgba(0, 0, 0, 0.08),\n // -3px 0 6px -4px rgba(0, 0, 0, 0.12),\n // -9px 0 28px 8px rgba(0, 0, 0, 0.05)\n // `,\n // boxShadowDrawerLeft: `\n // 6px 0 16px 0 rgba(0, 0, 0, 0.08),\n // 3px 0 6px -4px rgba(0, 0, 0, 0.12),\n // 9px 0 28px 8px rgba(0, 0, 0, 0.05)\n // `,\n // boxShadowDrawerUp: `\n // 0 6px 16px 0 rgba(0, 0, 0, 0.08),\n // 0 3px 6px -4px rgba(0, 0, 0, 0.12),\n // 0 9px 28px 8px rgba(0, 0, 0, 0.05)\n // `,\n // boxShadowDrawerDown: `\n // 0 -6px 16px 0 rgba(0, 0, 0, 0.08),\n // 0 -3px 6px -4px rgba(0, 0, 0, 0.12),\n // 0 -9px 28px 8px rgba(0, 0, 0, 0.05)\n // `,\n // boxShadowTabsOverflowLeft: 'inset 10px 0 8px -8px rgba(0, 0, 0, 0.08)',\n // boxShadowTabsOverflowRight: 'inset -10px 0 8px -8px rgba(0, 0, 0, 0.08)',\n // boxShadowTabsOverflowTop: 'inset 0 10px 8px -8px rgba(0, 0, 0, 0.08)',\n // boxShadowTabsOverflowBottom: 'inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08)',\n\n // Override AliasToken\n ...overrideTokens,\n };\n\n return aliasToken;\n}\n","import defaultDerivative from '../algorithm/default';\nimport darkDerivative from '../algorithm/dark';\nimport compactDerivative from '../algorithm/compact';\nimport meetingDerivative from '../algorithm/meeting';\nimport seedToken from '../seed';\nimport type { ThemeType, MapToken, AliasToken, SeedToken } from '../interface';\nimport formatToken from '../algorithm/util/alias';\nimport { mergeWith, omit, pick } from 'lodash-es';\n\nconst getAliasToken = (\n token: Partial<AliasToken> = seedToken,\n type: ThemeType = 'default',\n) => {\n let seed = pick(token, Object.keys(seedToken)) as SeedToken;\n seed = mergeWith(seedToken, seed);\n const defaultMapToken: MapToken = defaultDerivative(seed);\n const defaultToken = omit(token, Object.keys(seedToken));\n let mapToken;\n\n switch (type) {\n case 'dark':\n mapToken = darkDerivative(seed, defaultMapToken);\n break;\n case 'compact':\n mapToken = compactDerivative(seed, defaultMapToken);\n break;\n case 'meeting':\n mapToken = meetingDerivative(seed, defaultMapToken);\n break;\n default:\n mapToken = defaultMapToken;\n break;\n }\n return formatToken({ ...mapToken, override: defaultToken });\n};\n\nexport default getAliasToken;\n","export const PresetColors = [\n 'blue',\n 'purple',\n 'cyan',\n 'green',\n 'magenta',\n 'pink',\n 'red',\n 'orange',\n 'yellow',\n 'volcano',\n 'geekblue',\n 'lime',\n 'gold',\n] as const;\n\nexport type PresetColorKey = (typeof PresetColors)[number];\n\nexport type PresetColorType = Record<PresetColorKey, string>;\n\ntype ColorPaletteKeyIndex = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;\n\nexport type LegacyColorPalettes = {\n /**\n * @deprecated\n */\n [key in `${keyof PresetColorType}-${ColorPaletteKeyIndex}`]: string;\n};\n\nexport type ColorPalettes = {\n [key in `${keyof PresetColorType}${ColorPaletteKeyIndex}`]: string;\n};\n","import getAliasToken from './alias';\nexport { default as seed } from './seed';\nexport { default as defaultAlgorithm } from './algorithm/default';\nexport { default as darkAlgorithm } from './algorithm/dark';\nexport { default as compactAlgorithm } from './algorithm/compact';\nexport { default as formatAliasToken } from './algorithm/util/alias';\nexport { getAliasToken };\nexport * from './interface';\nexport * from './utils';\nconst token = getAliasToken();\nexport default token;\n","/**\n * 异常处理程序\n */\nimport { get } from 'lodash-es';\nexport const TraceIdKey = 'x-g-trace-id';\nexport const StateKey = 'x-g-process-result';\n\nlet microServiceMap: any = {};\nexport const setMicroServiceMap = (map: any) => {\n microServiceMap = { ...microServiceMap, ...map };\n};\n\nexport const getTraceId = (response: any) =>\n get(response, 'headers', TraceIdKey) ||\n get(response, 'config.headers', TraceIdKey);\n\nexport const getMicroSevicesUrl = (url: string, serviceId?: string) => {\n const serviceIdMap: any = {};\n Object.keys(microServiceMap).forEach((key) => {\n microServiceMap[key as keyof typeof microServiceMap].forEach(\n (module: any) => {\n serviceIdMap[module] = key;\n },\n );\n });\n\n const urlMap: any = {};\n Object.keys(microServiceMap).forEach((key) => {\n urlMap[key] = key;\n });\n const suffix = '.api';\n //传入拼接的url\n let newUrl = suffix ? `${url}${suffix}` : url;\n if (serviceId) {\n newUrl = `/${urlMap[serviceId]}${newUrl}`;\n } else {\n const [, urlPrefix] = newUrl.split('/');\n newUrl = serviceIdMap[urlPrefix]\n ? `/${serviceIdMap[urlPrefix]}${newUrl}`\n : newUrl;\n }\n return newUrl;\n};\n","import { globalStore, storageStore } from '../store';\nimport { find, get } from 'lodash-es';\n\nconst LOCALE_VERSION = 'LOCALE-v1';\nexport const getAntdLocaleKey = (localeKey: string) => {\n if (localeKey === 'en') return 'en-US';\n return localeKey;\n};\n\nexport const getLocaleKey = () => {\n let key = storageStore.get(LOCALE_VERSION);\n if (!!key) return key;\n const defaultLoacle = find(globalStore?.platformLanguages, {\n isDefault: true,\n });\n return get(defaultLoacle, 'locale', 'zh_CN');\n};\n\nexport const setLocaleKey = (locale: string) => {\n storageStore.set(LOCALE_VERSION, locale);\n location.reload();\n return locale;\n};\n","import { isEmpty, groupBy, has, join } from 'lodash-es';\nconst resolvePath = (...paths) => {\n let resolved = join(paths, '/');\n resolved = resolved.replace(/\\/+/g, '/');\n if (!resolved.startsWith('/')) {\n resolved = '/' + resolved;\n }\n return resolved;\n};\nexport const getRoutes = (routesMaps: any): any[] => {\n if (isEmpty(routesMaps)) return [];\n const groupRotes = groupBy(routesMaps, 'parentId');\n const { root, ...otherRoutes } = groupRotes;\n const mapRoutes = (routes: any[], parentPath = '/'): any[] => {\n return routes.map((itemRoute) => {\n const { id, path, ...restRoute } = itemRoute;\n const itemPath =\n path.indexOf('/**') == 0 ? path : resolvePath(parentPath, path);\n if (has(otherRoutes, id))\n return {\n ...restRoute,\n id,\n children: mapRoutes(otherRoutes[id], itemPath),\n path: itemPath,\n };\n return { ...restRoute, path: itemPath, id };\n });\n };\n return mapRoutes(root);\n};\n","import {\n requestInstance,\n InternalAxiosRequestConfig,\n userStore,\n globalStore,\n initDynamicLang,\n} from './core';\nimport type { GlobalOptions } from './core/store/type';\nimport { getLocaleKey } from './core/utils';\nimport { uniqueId, get, isEmpty } from 'lodash-es';\n\nconst TraceIdKey = 'X-G-TRACE-ID';\n\nexport const useRequestMicroSevices = (microServiceMap?: any) => {\n return (config: InternalAxiosRequestConfig) => {\n const { url = '', serviceId } = config;\n const serviceIdMap: any = {};\n Object.keys(microServiceMap).forEach((key) => {\n microServiceMap[key as keyof typeof microServiceMap].forEach(\n (module: any) => {\n serviceIdMap[module] = key;\n },\n );\n });\n const urlMap: any = {};\n Object.keys(microServiceMap).forEach((key) => {\n urlMap[key] = key;\n });\n const suffix = '.api';\n //传入拼接的url\n let newUrl = suffix ? `${url}${suffix}` : url;\n if (serviceId) {\n newUrl = `/${urlMap[serviceId]}${newUrl}`;\n } else {\n const [, urlPrefix] = newUrl.split('/');\n newUrl = serviceIdMap[urlPrefix]\n ? `/${serviceIdMap[urlPrefix]}${newUrl}`\n : newUrl;\n }\n delete config.serviceId;\n config.url = newUrl;\n return config;\n };\n};\nexport const useRequestHeader =\n (userLanguage: string) => (config: InternalAxiosRequestConfig) => {\n const TRACE_ID = uniqueId(TraceIdKey);\n config.headers = {\n ...config.headers,\n [TraceIdKey]: TRACE_ID,\n needHtmlEscape: 'false',\n userLanguage,\n ...userStore.userIdentity,\n } as any;\n return config;\n };\nexport interface MainOptions extends GlobalOptions {\n microServiceMap?: any;\n locale?: string;\n dynamicLangCallback?: () => void;\n}\n\nexport default async ({\n microServiceMap,\n dynamicLangCallback,\n ...globalOptions\n}: MainOptions) => {\n requestInstance.interceptors.request.use(\n useRequestMicroSevices(microServiceMap),\n );\n await globalStore.findPlantform();\n const locale = getLocaleKey();\n requestInstance.interceptors.request.use(useRequestHeader(locale));\n\n await initDynamicLang(locale);\n await dynamicLangCallback?.();\n const res = await globalStore.init(globalOptions);\n return res;\n};\n"],"names":["instance","axios","get","CodeListStoreInstance","ParameterStoreInstance","i18nNext","genSizeMapToken","getAlphaColor","generateColorPalettes","generateNeutralColorPalettes","genFontSizes","derivative","defaultAlgorithm","genCompactSizeMapToken","defaultDerivative","darkDerivative","compactDerivative","meetingDerivative","TraceIdKey","storageStore"],"mappings":"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","x_google_ignoreList":[28,30,31,32,33,34,35,36,37,38,39,40]}
|