vue-efko-data-view 1.0.1 → 1.0.3
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/dist/data-view.cjs.js +4 -4
- package/dist/data-view.cjs.js.map +1 -1
- package/dist/data-view.es.js +1388 -1329
- package/dist/data-view.es.js.map +1 -1
- package/dist/dataview/DataView.vue.d.ts +2 -2
- package/dist/dataview/table/ui/table-cell/TableBodyCell.vue.d.ts +10 -0
- package/dist/index.d.ts +1 -0
- package/dist/style.css +1 -1
- package/package.json +5 -1
package/dist/data-view.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-view.es.js","sources":["../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../node_modules/efko-ui-library/es/_util/cssinjs/Cache.js","../node_modules/efko-ui-library/es/_util/type.js","../node_modules/efko-ui-library/es/_util/cssinjs/StyleContext.js","../node_modules/efko-ui-library/es/_util/cssinjs/hooks/useHMR.js","../node_modules/efko-ui-library/es/_util/cssinjs/hooks/useGlobalCache.js","../node_modules/efko-ui-library/es/_util/cssinjs/theme/ThemeCache.js","../node_modules/efko-ui-library/es/vc-util/warning.js","../node_modules/efko-ui-library/es/_util/warning.js","../node_modules/efko-ui-library/es/_util/cssinjs/theme/Theme.js","../node_modules/efko-ui-library/es/_util/cssinjs/theme/createTheme.js","../node_modules/efko-ui-library/es/_util/cssinjs/util.js","../node_modules/efko-ui-library/es/_util/cssinjs/hooks/useCacheToken.js","../node_modules/efko-ui-library/es/version/version.js","../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/@ant-design/colors/dist/index.esm.js","../node_modules/efko-ui-library/es/theme/themes/shared/genControlHeight.js","../node_modules/efko-ui-library/es/theme/themes/shared/genSizeMapToken.js","../node_modules/efko-ui-library/es/theme/themes/seed.js","../node_modules/efko-ui-library/es/theme/themes/shared/genColorMapToken.js","../node_modules/efko-ui-library/es/theme/themes/shared/genRadius.js","../node_modules/efko-ui-library/es/theme/themes/shared/genCommonMapToken.js","../node_modules/efko-ui-library/es/theme/themes/default/colorAlgorithm.js","../node_modules/efko-ui-library/es/theme/themes/default/colors.js","../node_modules/efko-ui-library/es/theme/themes/shared/genFontSizes.js","../node_modules/efko-ui-library/es/theme/themes/shared/genFontMapToken.js","../node_modules/efko-ui-library/es/theme/themes/default/index.js","../node_modules/efko-ui-library/es/theme/util/getAlphaColor.js","../node_modules/efko-ui-library/es/theme/util/alias.js","../node_modules/efko-ui-library/es/theme/internal.js","../dataview/table/ui/filter/FilterTagCloud.vue","../dataview/table/ui/table-cell/TableCellStatus.vue","../dataview/card/ui/CardCellActions.vue","../dataview/card/TheCard.vue","../dataview/lazyload/LazyLoadTrigger.vue","../dataview/card/CardGrid.vue","../dataview/table/enum/table.ts","../dataview/ui/TheSelect.vue","../dataview/table/ui/filter/FilterDropdown.vue","../dataview/table/ui/table-cell/TableCellActions.vue","../dataview/table/TheTable.vue","../dataview/table/ui/ColumnSettingsDrawer.vue","../dataview/card/FilterInput.vue","../dataview/card/CardFiltersDrawer.vue","../dataview/card/CardFiltersModal.vue","../dataview/table/ui/ColumnSettingsDrawer.ts","../dataview/DataView.vue","../dataview/lazyload/LazyLoadContainer.vue"],"sourcesContent":["function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };\n","const SPLIT = '%';\nclass Entity {\n constructor(instanceId) {\n /** @private Internal cache map. Do not access this directly */\n this.cache = new Map();\n this.instanceId = instanceId;\n }\n get(keys) {\n return this.cache.get(Array.isArray(keys) ? keys.join(SPLIT) : keys) || null;\n }\n update(keys, valueFn) {\n const path = Array.isArray(keys) ? keys.join(SPLIT) : keys;\n const prevValue = this.cache.get(path);\n const nextValue = valueFn(prevValue);\n if (nextValue === null) {\n this.cache.delete(path);\n } else {\n this.cache.set(path, nextValue);\n }\n }\n}\nexport default Entity;","// https://stackoverflow.com/questions/46176165/ways-to-get-string-literal-type-of-array-values-without-enum-overhead\nexport const tuple = (...args) => args;\nexport const tupleNum = (...args) => args;\nexport const withInstall = comp => {\n const c = comp;\n c.install = function (app) {\n app.component(c.displayName || c.name, comp);\n };\n return comp;\n};\nexport function eventType() {\n return {\n type: [Function, Array]\n };\n}\nexport function objectType(defaultVal) {\n return {\n type: Object,\n default: defaultVal\n };\n}\nexport function booleanType(defaultVal) {\n return {\n type: Boolean,\n default: defaultVal\n };\n}\nexport function functionType(defaultVal) {\n return {\n type: Function,\n default: defaultVal\n };\n}\nexport function anyType(defaultVal, required) {\n const type = {\n validator: () => true,\n default: defaultVal\n };\n return required ? type : type;\n}\nexport function vNodeType() {\n return {\n validator: () => true\n };\n}\nexport function arrayType(defaultVal) {\n return {\n type: Array,\n default: defaultVal\n };\n}\nexport function stringType(defaultVal) {\n return {\n type: String,\n default: defaultVal\n };\n}\nexport function someType(types, defaultVal) {\n return types ? {\n type: types,\n default: defaultVal\n } : anyType(defaultVal);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { provide, defineComponent, unref, inject, watch, shallowRef, getCurrentInstance } from 'vue';\nimport CacheEntity from './Cache';\nimport { arrayType, booleanType, objectType, someType, stringType, withInstall } from '../type';\nexport const ATTR_TOKEN = 'data-token-hash';\nexport const ATTR_MARK = 'data-css-hash';\nexport const ATTR_CACHE_PATH = 'data-cache-path';\n// Mark css-in-js instance in style element\nexport const CSS_IN_JS_INSTANCE = '__cssinjs_instance__';\nexport function createCache() {\n const cssinjsInstanceId = Math.random().toString(12).slice(2);\n // Tricky SSR: Move all inline style to the head.\n // PS: We do not recommend tricky mode.\n if (typeof document !== 'undefined' && document.head && document.body) {\n const styles = document.body.querySelectorAll(`style[${ATTR_MARK}]`) || [];\n const {\n firstChild\n } = document.head;\n Array.from(styles).forEach(style => {\n style[CSS_IN_JS_INSTANCE] = style[CSS_IN_JS_INSTANCE] || cssinjsInstanceId;\n // Not force move if no head\n // Not force move if no head\n if (style[CSS_IN_JS_INSTANCE] === cssinjsInstanceId) {\n document.head.insertBefore(style, firstChild);\n }\n });\n // Deduplicate of moved styles\n const styleHash = {};\n Array.from(document.querySelectorAll(`style[${ATTR_MARK}]`)).forEach(style => {\n var _a;\n const hash = style.getAttribute(ATTR_MARK);\n if (styleHash[hash]) {\n if (style[CSS_IN_JS_INSTANCE] === cssinjsInstanceId) {\n (_a = style.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(style);\n }\n } else {\n styleHash[hash] = true;\n }\n });\n }\n return new CacheEntity(cssinjsInstanceId);\n}\nconst StyleContextKey = Symbol('StyleContextKey');\n// fix: https://github.com/vueComponent/ant-design-vue/issues/7023\nconst getCache = () => {\n var _a, _b, _c;\n const instance = getCurrentInstance();\n let cache;\n if (instance && instance.appContext) {\n const globalCache = (_c = (_b = (_a = instance.appContext) === null || _a === void 0 ? void 0 : _a.config) === null || _b === void 0 ? void 0 : _b.globalProperties) === null || _c === void 0 ? void 0 : _c.__ANTDV_CSSINJS_CACHE__;\n if (globalCache) {\n cache = globalCache;\n } else {\n cache = createCache();\n if (instance.appContext.config.globalProperties) {\n instance.appContext.config.globalProperties.__ANTDV_CSSINJS_CACHE__ = cache;\n }\n }\n } else {\n cache = createCache();\n }\n return cache;\n};\nconst defaultStyleContext = {\n cache: createCache(),\n defaultCache: true,\n hashPriority: 'low'\n};\n// fix: https://github.com/vueComponent/ant-design-vue/issues/6912\nexport const useStyleInject = () => {\n const cache = getCache();\n return inject(StyleContextKey, shallowRef(_extends(_extends({}, defaultStyleContext), {\n cache\n })));\n};\nexport const useStyleProvider = props => {\n const parentContext = useStyleInject();\n const context = shallowRef(_extends(_extends({}, defaultStyleContext), {\n cache: createCache()\n }));\n watch([() => unref(props), parentContext], () => {\n const mergedContext = _extends({}, parentContext.value);\n const propsValue = unref(props);\n Object.keys(propsValue).forEach(key => {\n const value = propsValue[key];\n if (propsValue[key] !== undefined) {\n mergedContext[key] = value;\n }\n });\n const {\n cache\n } = propsValue;\n mergedContext.cache = mergedContext.cache || createCache();\n mergedContext.defaultCache = !cache && parentContext.value.defaultCache;\n context.value = mergedContext;\n }, {\n immediate: true\n });\n provide(StyleContextKey, context);\n return context;\n};\nexport const styleProviderProps = () => ({\n autoClear: booleanType(),\n /** @private Test only. Not work in production. */\n mock: stringType(),\n /**\n * Only set when you need ssr to extract style on you own.\n * If not provided, it will auto create <style /> on the end of Provider in server side.\n */\n cache: objectType(),\n /** Tell children that this context is default generated context */\n defaultCache: booleanType(),\n /** Use `:where` selector to reduce hashId css selector priority */\n hashPriority: stringType(),\n /** Tell cssinjs where to inject style in */\n container: someType(),\n /** Component wil render inline `<style />` for fallback in SSR. Not recommend. */\n ssrInline: booleanType(),\n /** Transform css before inject in document. Please note that `transformers` do not support dynamic update */\n transformers: arrayType(),\n /**\n * Linters to lint css before inject in document.\n * Styles will be linted after transforming.\n * Please note that `linters` do not support dynamic update.\n */\n linters: arrayType()\n});\nexport const StyleProvider = withInstall(defineComponent({\n name: 'AStyleProvider',\n inheritAttrs: false,\n props: styleProviderProps(),\n setup(props, {\n slots\n }) {\n useStyleProvider(props);\n return () => {\n var _a;\n return (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots);\n };\n }\n}));\nexport default {\n useStyleInject,\n useStyleProvider,\n StyleProvider\n};","function useProdHMR() {\n return false;\n}\nlet webpackHMR = false;\nfunction useDevHMR() {\n return webpackHMR;\n}\nexport default process.env.NODE_ENV === 'production' ? useProdHMR : useDevHMR;\n// Webpack `module.hot.accept` do not support any deps update trigger\n// We have to hack handler to force mark as HRM\nif (process.env.NODE_ENV !== 'production' && typeof module !== 'undefined' && module && module.hot && typeof window !== 'undefined') {\n const win = window;\n if (typeof win.webpackHotUpdate === 'function') {\n const originWebpackHotUpdate = win.webpackHotUpdate;\n win.webpackHotUpdate = (...args) => {\n webpackHMR = true;\n setTimeout(() => {\n webpackHMR = false;\n }, 0);\n return originWebpackHotUpdate(...args);\n };\n }\n}","import { useStyleInject } from '../StyleContext';\nimport useHMR from './useHMR';\nimport { onBeforeUnmount, watch, watchEffect, shallowRef } from 'vue';\nexport default function useClientCache(prefix, keyPath, cacheFn, onCacheRemove) {\n const styleContext = useStyleInject();\n const fullPathStr = shallowRef('');\n const res = shallowRef();\n watchEffect(() => {\n fullPathStr.value = [prefix, ...keyPath.value].join('%');\n });\n const HMRUpdate = useHMR();\n const clearCache = pathStr => {\n styleContext.value.cache.update(pathStr, prevCache => {\n const [times = 0, cache] = prevCache || [];\n const nextCount = times - 1;\n if (nextCount === 0) {\n onCacheRemove === null || onCacheRemove === void 0 ? void 0 : onCacheRemove(cache, false);\n return null;\n }\n return [times - 1, cache];\n });\n };\n watch(fullPathStr, (newStr, oldStr) => {\n if (oldStr) clearCache(oldStr);\n // Create cache\n styleContext.value.cache.update(newStr, prevCache => {\n const [times = 0, cache] = prevCache || [];\n // HMR should always ignore cache since developer may change it\n let tmpCache = cache;\n if (process.env.NODE_ENV !== 'production' && cache && HMRUpdate) {\n onCacheRemove === null || onCacheRemove === void 0 ? void 0 : onCacheRemove(tmpCache, HMRUpdate);\n tmpCache = null;\n }\n const mergedCache = tmpCache || cacheFn();\n return [times + 1, mergedCache];\n });\n res.value = styleContext.value.cache.get(fullPathStr.value)[1];\n }, {\n immediate: true\n });\n onBeforeUnmount(() => {\n clearCache(fullPathStr.value);\n });\n return res;\n}","export function sameDerivativeOption(left, right) {\n if (left.length !== right.length) {\n return false;\n }\n for (let i = 0; i < left.length; i++) {\n if (left[i] !== right[i]) {\n return false;\n }\n }\n return true;\n}\nclass ThemeCache {\n constructor() {\n this.cache = new Map();\n this.keys = [];\n this.cacheCallTimes = 0;\n }\n size() {\n return this.keys.length;\n }\n internalGet(derivativeOption, updateCallTimes = false) {\n let cache = {\n map: this.cache\n };\n derivativeOption.forEach(derivative => {\n var _a;\n if (!cache) {\n cache = undefined;\n } else {\n cache = (_a = cache === null || cache === void 0 ? void 0 : cache.map) === null || _a === void 0 ? void 0 : _a.get(derivative);\n }\n });\n if ((cache === null || cache === void 0 ? void 0 : cache.value) && updateCallTimes) {\n cache.value[1] = this.cacheCallTimes++;\n }\n return cache === null || cache === void 0 ? void 0 : cache.value;\n }\n get(derivativeOption) {\n var _a;\n return (_a = this.internalGet(derivativeOption, true)) === null || _a === void 0 ? void 0 : _a[0];\n }\n has(derivativeOption) {\n return !!this.internalGet(derivativeOption);\n }\n set(derivativeOption, value) {\n // New cache\n if (!this.has(derivativeOption)) {\n if (this.size() + 1 > ThemeCache.MAX_CACHE_SIZE + ThemeCache.MAX_CACHE_OFFSET) {\n const [targetKey] = this.keys.reduce((result, key) => {\n const [, callTimes] = result;\n if (this.internalGet(key)[1] < callTimes) {\n return [key, this.internalGet(key)[1]];\n }\n return result;\n }, [this.keys[0], this.cacheCallTimes]);\n this.delete(targetKey);\n }\n this.keys.push(derivativeOption);\n }\n let cache = this.cache;\n derivativeOption.forEach((derivative, index) => {\n if (index === derivativeOption.length - 1) {\n cache.set(derivative, {\n value: [value, this.cacheCallTimes++]\n });\n } else {\n const cacheValue = cache.get(derivative);\n if (!cacheValue) {\n cache.set(derivative, {\n map: new Map()\n });\n } else if (!cacheValue.map) {\n cacheValue.map = new Map();\n }\n cache = cache.get(derivative).map;\n }\n });\n }\n deleteByPath(currentCache, derivatives) {\n var _a;\n const cache = currentCache.get(derivatives[0]);\n if (derivatives.length === 1) {\n if (!cache.map) {\n currentCache.delete(derivatives[0]);\n } else {\n currentCache.set(derivatives[0], {\n map: cache.map\n });\n }\n return (_a = cache.value) === null || _a === void 0 ? void 0 : _a[0];\n }\n const result = this.deleteByPath(cache.map, derivatives.slice(1));\n if ((!cache.map || cache.map.size === 0) && !cache.value) {\n currentCache.delete(derivatives[0]);\n }\n return result;\n }\n delete(derivativeOption) {\n // If cache exists\n if (this.has(derivativeOption)) {\n this.keys = this.keys.filter(item => !sameDerivativeOption(item, derivativeOption));\n return this.deleteByPath(this.cache, derivativeOption);\n }\n return undefined;\n }\n}\nThemeCache.MAX_CACHE_SIZE = 20;\nThemeCache.MAX_CACHE_OFFSET = 5;\nexport default ThemeCache;","/* eslint-disable no-console */\nlet warned = {};\nexport function warning(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.error(`Warning: ${message}`);\n }\n}\nexport function note(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.warn(`Note: ${message}`);\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nexport default warningOnce;\n/* eslint-enable */","import vcWarning, { resetWarned } from '../vc-util/warning';\nexport { resetWarned };\nexport function noop() {}\n// eslint-disable-next-line import/no-mutable-exports\nlet warning = noop;\nif (process.env.NODE_ENV !== 'production') {\n warning = (valid, component, message) => {\n vcWarning(valid, `[ant-design-vue: ${component}] ${message}`);\n // StrictMode will inject console which will not throw warning in React 17.\n if (process.env.NODE_ENV === 'test') {\n resetWarned();\n }\n };\n}\nexport default warning;","import warning from '../../warning';\nlet uuid = 0;\n/**\n * Theme with algorithms to derive tokens from design tokens.\n * Use `createTheme` first which will help to manage the theme instance cache.\n */\nexport default class Theme {\n constructor(derivatives) {\n this.derivatives = Array.isArray(derivatives) ? derivatives : [derivatives];\n this.id = uuid;\n if (derivatives.length === 0) {\n warning(derivatives.length > 0, '[Efko дизайн Vue CSS-in-JS] Theme should have at least one derivative function.');\n }\n uuid += 1;\n }\n getDerivativeToken(token) {\n return this.derivatives.reduce((result, derivative) => derivative(token, result), undefined);\n }\n}","import ThemeCache from './ThemeCache';\nimport Theme from './Theme';\nconst cacheThemes = new ThemeCache();\n/**\n * Same as new Theme, but will always return same one if `derivative` not changed.\n */\nexport default function createTheme(derivatives) {\n const derivativeArr = Array.isArray(derivatives) ? derivatives : [derivatives];\n // Create new theme if not exist\n if (!cacheThemes.has(derivativeArr)) {\n cacheThemes.set(derivativeArr, new Theme(derivativeArr));\n }\n // Get theme from cache and return\n return cacheThemes.get(derivativeArr);\n}","import hash from '@emotion/hash';\nimport { removeCSS, updateCSS } from '../../vc-util/Dom/dynamicCSS';\nimport canUseDom from '../canUseDom';\nimport { Theme } from './theme';\n// Create a cache here to avoid always loop generate\nconst flattenTokenCache = new WeakMap();\nexport function flattenToken(token) {\n let str = flattenTokenCache.get(token) || '';\n if (!str) {\n Object.keys(token).forEach(key => {\n const value = token[key];\n str += key;\n if (value instanceof Theme) {\n str += value.id;\n } else if (value && typeof value === 'object') {\n str += flattenToken(value);\n } else {\n str += value;\n }\n });\n // Put in cache\n flattenTokenCache.set(token, str);\n }\n return str;\n}\n/**\n * Convert derivative token to key string\n */\nexport function token2key(token, salt) {\n return hash(`${salt}_${flattenToken(token)}`);\n}\nconst randomSelectorKey = `random-${Date.now()}-${Math.random()}`.replace(/\\./g, '');\n// Magic `content` for detect selector support\nconst checkContent = '_bAmBoO_';\nfunction supportSelector(styleStr, handleElement, supportCheck) {\n var _a, _b;\n if (canUseDom()) {\n updateCSS(styleStr, randomSelectorKey);\n const ele = document.createElement('div');\n ele.style.position = 'fixed';\n ele.style.left = '0';\n ele.style.top = '0';\n handleElement === null || handleElement === void 0 ? void 0 : handleElement(ele);\n document.body.appendChild(ele);\n if (process.env.NODE_ENV !== 'production') {\n ele.innerHTML = 'Test';\n ele.style.zIndex = '9999999';\n }\n const support = supportCheck ? supportCheck(ele) : (_a = getComputedStyle(ele).content) === null || _a === void 0 ? void 0 : _a.includes(checkContent);\n (_b = ele.parentNode) === null || _b === void 0 ? void 0 : _b.removeChild(ele);\n removeCSS(randomSelectorKey);\n return support;\n }\n return false;\n}\nlet canLayer = undefined;\nexport function supportLayer() {\n if (canLayer === undefined) {\n canLayer = supportSelector(`@layer ${randomSelectorKey} { .${randomSelectorKey} { content: \"${checkContent}\"!important; } }`, ele => {\n ele.className = randomSelectorKey;\n });\n }\n return canLayer;\n}\nlet canWhere = undefined;\nexport function supportWhere() {\n if (canWhere === undefined) {\n canWhere = supportSelector(`:where(.${randomSelectorKey}) { content: \"${checkContent}\"!important; }`, ele => {\n ele.className = randomSelectorKey;\n });\n }\n return canWhere;\n}\nlet canLogic = undefined;\nexport function supportLogicProps() {\n if (canLogic === undefined) {\n canLogic = supportSelector(`.${randomSelectorKey} { inset-block: 93px !important; }`, ele => {\n ele.className = randomSelectorKey;\n }, ele => getComputedStyle(ele).bottom === '93px');\n }\n return canLogic;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport hash from '@emotion/hash';\nimport { ATTR_TOKEN, CSS_IN_JS_INSTANCE, useStyleInject } from '../StyleContext';\nimport useGlobalCache from './useGlobalCache';\nimport { flattenToken, token2key } from '../util';\nimport { ref, computed } from 'vue';\nconst EMPTY_OVERRIDE = {};\nconst isProduction = process.env.NODE_ENV === 'production';\n// nuxt generate when NODE_ENV is prerender\nconst isPrerender = process.env.NODE_ENV === 'prerender';\n// Generate different prefix to make user selector break in production env.\n// This helps developer not to do style override directly on the hash id.\nconst hashPrefix = !isProduction && !isPrerender ? 'css-dev-only-do-not-override' : 'css';\nconst tokenKeys = new Map();\nfunction recordCleanToken(tokenKey) {\n tokenKeys.set(tokenKey, (tokenKeys.get(tokenKey) || 0) + 1);\n}\nfunction removeStyleTags(key, instanceId) {\n if (typeof document !== 'undefined') {\n const styles = document.querySelectorAll(`style[${ATTR_TOKEN}=\"${key}\"]`);\n styles.forEach(style => {\n var _a;\n if (style[CSS_IN_JS_INSTANCE] === instanceId) {\n (_a = style.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(style);\n }\n });\n }\n}\nconst TOKEN_THRESHOLD = 0;\n// Remove will check current keys first\nfunction cleanTokenStyle(tokenKey, instanceId) {\n tokenKeys.set(tokenKey, (tokenKeys.get(tokenKey) || 0) - 1);\n const tokenKeyList = Array.from(tokenKeys.keys());\n const cleanableKeyList = tokenKeyList.filter(key => {\n const count = tokenKeys.get(key) || 0;\n return count <= 0;\n });\n // Should keep tokens under threshold for not to insert style too often\n if (tokenKeyList.length - cleanableKeyList.length > TOKEN_THRESHOLD) {\n cleanableKeyList.forEach(key => {\n removeStyleTags(key, instanceId);\n tokenKeys.delete(key);\n });\n }\n}\nexport const getComputedToken = (originToken, overrideToken, theme, format) => {\n const derivativeToken = theme.getDerivativeToken(originToken);\n // Merge with override\n let mergedDerivativeToken = _extends(_extends({}, derivativeToken), overrideToken);\n // Format if needed\n if (format) {\n mergedDerivativeToken = format(mergedDerivativeToken);\n }\n return mergedDerivativeToken;\n};\n/**\n * Cache theme derivative token as global shared one\n * @param theme Theme entity\n * @param tokens List of tokens, used for cache. Please do not dynamic generate object directly\n * @param option Additional config\n * @returns Call Theme.getDerivativeToken(tokenObject) to get token\n */\nexport default function useCacheToken(theme, tokens, option = ref({})) {\n const style = useStyleInject();\n // Basic - We do basic cache here\n const mergedToken = computed(() => _extends({}, ...tokens.value));\n const tokenStr = computed(() => flattenToken(mergedToken.value));\n const overrideTokenStr = computed(() => flattenToken(option.value.override || EMPTY_OVERRIDE));\n const cachedToken = useGlobalCache('token', computed(() => [option.value.salt || '', theme.value.id, tokenStr.value, overrideTokenStr.value]), () => {\n const {\n salt = '',\n override = EMPTY_OVERRIDE,\n formatToken,\n getComputedToken: compute\n } = option.value;\n const mergedDerivativeToken = compute ? compute(mergedToken.value, override, theme.value) : getComputedToken(mergedToken.value, override, theme.value, formatToken);\n // Optimize for `useStyleRegister` performance\n const tokenKey = token2key(mergedDerivativeToken, salt);\n mergedDerivativeToken._tokenKey = tokenKey;\n recordCleanToken(tokenKey);\n const hashId = `${hashPrefix}-${hash(tokenKey)}`;\n mergedDerivativeToken._hashId = hashId; // Not used\n return [mergedDerivativeToken, hashId];\n }, cache => {\n var _a;\n // Remove token will remove all related style\n cleanTokenStyle(cache[0]._tokenKey, (_a = style.value) === null || _a === void 0 ? void 0 : _a.cache.instanceId);\n });\n return cachedToken;\n}","export default '1.7.0';","/**\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 { inputToRGB, rgbToHex, rgbToHsv } from '@ctrl/tinycolor';\n\nvar hueStep = 2; // 色相阶梯\n\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\n\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\n\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\n\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\n\nvar lightColorCount = 5; // 浅色数量,主色上\n\nvar darkColorCount = 4; // 深色数量,主色下\n// 暗色主题颜色映射关系表\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}]; // Wrapper function ported from TinyColor.prototype.toHsv\n// Keep it here because of `hsv.h * 360`\n\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} // Wrapper function ported from TinyColor.prototype.toHexString\n// Keep it here because of the prefix `#`\n\n\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} // 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.\n\n\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}\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\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n\n return hue;\n}\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\n var saturation;\n\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\n if (saturation > 1) {\n saturation = 1;\n } // 第一格的 s 限制在 0.06-0.1 之间\n\n\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n\n return Number(saturation.toFixed(2));\n}\n\nfunction getValue(hsv, i, light) {\n var value;\n\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n\n if (value > 1) {\n value = 1;\n }\n\n return Number(value.toFixed(2));\n}\n\nfunction generate(color) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var patterns = [];\n var pColor = inputToRGB(color);\n\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\n patterns.push(toHex(pColor));\n\n for (var _i = 1; _i <= darkColorCount; _i += 1) {\n var _hsv = toHsv(pColor);\n\n var _colorString = toHex(inputToRGB({\n h: getHue(_hsv, _i),\n s: getSaturation(_hsv, _i),\n v: getValue(_hsv, _i)\n }));\n\n patterns.push(_colorString);\n } // dark theme patterns\n\n\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\n return patterns;\n}\n\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: '#1890FF',\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]; // dark presetPalettes\n\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;\n\nexport { blue, cyan, geekblue, generate, gold, green, grey, lime, magenta, orange, presetDarkPalettes, presetPalettes, presetPrimaryColors, purple, red, volcano, yellow };\n","const genControlHeight = token => {\n const {\n controlHeight\n } = token;\n return {\n controlHeightSM: controlHeight * 0.75,\n controlHeightXS: controlHeight * 0.5,\n controlHeightLG: controlHeight * 1.25\n };\n};\nexport default genControlHeight;","export default function genSizeMapToken(token) {\n const {\n sizeUnit,\n sizeStep\n } = token;\n return {\n sizeXXL: sizeUnit * (sizeStep + 8),\n // 48\n sizeXL: sizeUnit * (sizeStep + 4),\n // 32\n sizeLG: sizeUnit * (sizeStep + 2),\n // 24\n sizeMD: sizeUnit * (sizeStep + 1),\n // 20\n sizeMS: sizeUnit * sizeStep,\n // 16\n size: sizeUnit * sizeStep,\n // 16\n sizeSM: sizeUnit * (sizeStep - 1),\n // 12\n sizeXS: sizeUnit * (sizeStep - 2),\n // 8\n sizeXXS: sizeUnit * (sizeStep - 3) // 4\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport const defaultPresetColors = {\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};\nconst seedToken = _extends(_extends({}, defaultPresetColors), {\n // Color\n colorPrimary: '#1677ff',\n colorSuccess: '#52c41a',\n colorWarning: '#faad14',\n colorError: '#ff4d4f',\n colorInfo: '#1677ff',\n colorTextBase: '',\n colorBgBase: '',\n // Font\n fontFamily: `-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,\n'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',\n'Noto Color Emoji'`,\n fontSize: 14,\n // Line\n lineWidth: 1,\n lineType: 'solid',\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 // Radius\n borderRadius: 6,\n // Size\n sizeUnit: 4,\n sizeStep: 4,\n sizePopupArrow: 16,\n // Control Base\n controlHeight: 32,\n // zIndex\n zIndexBase: 0,\n zIndexPopupBase: 1000,\n // Image\n opacityImage: 1,\n // Wireframe\n wireframe: false\n});\nexport default seedToken;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { TinyColor } from '@ctrl/tinycolor';\nexport default function genColorMapToken(seed, {\n generateColorPalettes,\n generateNeutralColorPalettes\n}) {\n const {\n colorSuccess: colorSuccessBase,\n colorWarning: colorWarningBase,\n colorError: colorErrorBase,\n colorInfo: colorInfoBase,\n colorPrimary: colorPrimaryBase,\n colorBgBase,\n colorTextBase\n } = seed;\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(colorBgBase, colorTextBase);\n return _extends(_extends({}, neutralColors), {\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 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 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 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 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 colorBgMask: new TinyColor('#000').setAlpha(0.45).toRgbString(),\n colorWhite: '#fff'\n });\n}","const genRadius = radiusBase => {\n let radiusLG = radiusBase;\n let radiusSM = radiusBase;\n let radiusXS = radiusBase;\n let radiusOuter = radiusBase;\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 // 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 // radiusXS\n if (radiusBase < 6 && radiusBase >= 2) {\n radiusXS = 1;\n } else if (radiusBase >= 6) {\n radiusXS = 2;\n }\n // radiusOuter\n if (radiusBase > 4 && radiusBase < 8) {\n radiusOuter = 4;\n } else if (radiusBase >= 8) {\n radiusOuter = 6;\n }\n return {\n borderRadius: radiusBase > 16 ? 16 : radiusBase,\n borderRadiusXS: radiusXS,\n borderRadiusSM: radiusSM,\n borderRadiusLG: radiusLG,\n borderRadiusOuter: radiusOuter\n };\n};\nexport default genRadius;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport genRadius from './genRadius';\nexport default function genCommonMapToken(token) {\n const {\n motionUnit,\n motionBase,\n borderRadius,\n lineWidth\n } = token;\n return _extends({\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 // line\n lineWidthBold: lineWidth + 1\n }, genRadius(borderRadius));\n}","import { TinyColor } from '@ctrl/tinycolor';\nexport const getAlphaColor = (baseColor, alpha) => new TinyColor(baseColor).setAlpha(alpha).toRgbString();\nexport const getSolidColor = (baseColor, brightness) => {\n const instance = new TinyColor(baseColor);\n return instance.darken(brightness).toHexString();\n};","import { generate } from '@ant-design/colors';\nimport { getAlphaColor, getSolidColor } from './colorAlgorithm';\nexport const generateColorPalettes = baseColor => {\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};\nexport const generateNeutralColorPalettes = (bgBaseColor, textBaseColor) => {\n const colorBgBase = bgBaseColor || '#fff';\n const colorTextBase = textBaseColor || '#000';\n return {\n colorBgBase,\n colorTextBase,\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 colorFill: getAlphaColor(colorTextBase, 0.15),\n colorFillSecondary: getAlphaColor(colorTextBase, 0.06),\n colorFillTertiary: getAlphaColor(colorTextBase, 0.04),\n colorFillQuaternary: getAlphaColor(colorTextBase, 0.02),\n colorBgLayout: getSolidColor(colorBgBase, 4),\n colorBgContainer: getSolidColor(colorBgBase, 0),\n colorBgElevated: getSolidColor(colorBgBase, 0),\n colorBgSpotlight: getAlphaColor(colorTextBase, 0.85),\n colorBorder: getSolidColor(colorBgBase, 15),\n colorBorderSecondary: getSolidColor(colorBgBase, 6)\n };\n};","// https://zhuanlan.zhihu.com/p/32746810\nexport default function getFontSizes(base) {\n const fontSizes = new Array(10).fill(null).map((_, index) => {\n const i = index - 1;\n const baseSize = base * Math.pow(2.71828, i / 5);\n const intSize = index > 1 ? Math.floor(baseSize) : Math.ceil(baseSize);\n // Convert to even\n return Math.floor(intSize / 2) * 2;\n });\n fontSizes[1] = base;\n return fontSizes.map(size => {\n const height = size + 8;\n return {\n size,\n lineHeight: height / size\n };\n });\n}","import genFontSizes from './genFontSizes';\nconst genFontMapToken = fontSize => {\n const fontSizePairs = genFontSizes(fontSize);\n const fontSizes = fontSizePairs.map(pair => pair.size);\n const lineHeights = fontSizePairs.map(pair => pair.lineHeight);\n return {\n fontSizeSM: fontSizes[0],\n fontSize: fontSizes[1],\n fontSizeLG: fontSizes[2],\n fontSizeXL: fontSizes[3],\n fontSizeHeading1: fontSizes[6],\n fontSizeHeading2: fontSizes[5],\n fontSizeHeading3: fontSizes[4],\n fontSizeHeading4: fontSizes[3],\n fontSizeHeading5: fontSizes[2],\n lineHeight: lineHeights[1],\n lineHeightLG: lineHeights[2],\n lineHeightSM: lineHeights[0],\n lineHeightHeading1: lineHeights[6],\n lineHeightHeading2: lineHeights[5],\n lineHeightHeading3: lineHeights[4],\n lineHeightHeading4: lineHeights[3],\n lineHeightHeading5: lineHeights[2]\n };\n};\nexport default genFontMapToken;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { generate } from '@ant-design/colors';\nimport genControlHeight from '../shared/genControlHeight';\nimport genSizeMapToken from '../shared/genSizeMapToken';\nimport { defaultPresetColors } from '../seed';\nimport genColorMapToken from '../shared/genColorMapToken';\nimport genCommonMapToken from '../shared/genCommonMapToken';\nimport { generateColorPalettes, generateNeutralColorPalettes } from './colors';\nimport genFontMapToken from '../shared/genFontMapToken';\nexport default function derivative(token) {\n const colorPalettes = Object.keys(defaultPresetColors).map(colorKey => {\n const colors = generate(token[colorKey]);\n return new Array(10).fill(1).reduce((prev, _, i) => {\n prev[`${colorKey}-${i + 1}`] = colors[i];\n return prev;\n }, {});\n }).reduce((prev, cur) => {\n prev = _extends(_extends({}, prev), cur);\n return prev;\n }, {});\n return _extends(_extends(_extends(_extends(_extends(_extends(_extends({}, token), colorPalettes), genColorMapToken(token, {\n generateColorPalettes,\n generateNeutralColorPalettes\n })), genFontMapToken(token.fontSize)), genSizeMapToken(token)), genControlHeight(token)), genCommonMapToken(token));\n}","import { TinyColor } from '@ctrl/tinycolor';\nfunction isStableColor(color) {\n return color >= 0 && color <= 255;\n}\nfunction getAlphaColor(frontColor, backgroundColor) {\n const {\n r: fR,\n g: fG,\n b: fB,\n a: originAlpha\n } = new TinyColor(frontColor).toRgb();\n if (originAlpha < 1) {\n return frontColor;\n }\n const {\n r: bR,\n g: bG,\n b: bB\n } = new TinyColor(backgroundColor).toRgb();\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({\n r,\n g,\n b,\n a: Math.round(fA * 100) / 100\n }).toRgbString();\n }\n }\n // fallback\n /* istanbul ignore next */\n return new TinyColor({\n r: fR,\n g: fG,\n b: fB,\n a: 1\n }).toRgbString();\n}\nexport default getAlphaColor;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { TinyColor } from '@ctrl/tinycolor';\nimport getAlphaColor from './getAlphaColor';\nimport seedToken from '../themes/seed';\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) {\n const {\n override\n } = derivativeToken,\n restToken = __rest(derivativeToken, [\"override\"]);\n const overrideTokens = _extends({}, override);\n Object.keys(seedToken).forEach(token => {\n delete overrideTokens[token];\n });\n const mergedToken = _extends(_extends({}, restToken), overrideTokens);\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 const screenXXXL = 2000;\n // Generate alias token\n const aliasToken = _extends(_extends(_extends({}, mergedToken), {\n colorLink: mergedToken.colorInfoText,\n colorLinkHover: mergedToken.colorInfoHover,\n colorLinkActive: mergedToken.colorInfoActive,\n // ============== Background ============== //\n colorFillContent: mergedToken.colorFillSecondary,\n colorFillContentHover: mergedToken.colorFill,\n colorFillAlter: mergedToken.colorFillQuaternary,\n colorBgContainerDisabled: mergedToken.colorFillTertiary,\n // ============== Split ============== //\n colorBorderBg: mergedToken.colorBgContainer,\n colorSplit: getAlphaColor(mergedToken.colorBorderSecondary, mergedToken.colorBgContainer),\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 colorIcon: mergedToken.colorTextTertiary,\n colorIconHover: mergedToken.colorText,\n colorErrorOutline: getAlphaColor(mergedToken.colorErrorBg, mergedToken.colorBgContainer),\n colorWarningOutline: getAlphaColor(mergedToken.colorWarningBg, mergedToken.colorBgContainer),\n /** Custom colors (efko) */\n colorLogo: mergedToken.colorLogo,\n colorSelectedMenu: mergedToken.colorSelectedMenu,\n mainBgColor: mergedToken.mainBgColor,\n // Font\n fontSizeIcon: mergedToken.fontSizeSM,\n // Control\n lineWidth: mergedToken.lineWidth,\n controlOutlineWidth: mergedToken.lineWidth * 2,\n // Checkbox size and expand icon size\n controlInteractiveSize: mergedToken.controlHeight / 2,\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 lineType: mergedToken.lineType,\n borderRadius: mergedToken.borderRadius,\n borderRadiusXS: mergedToken.borderRadiusXS,\n borderRadiusSM: mergedToken.borderRadiusSM,\n borderRadiusLG: mergedToken.borderRadiusLG,\n fontWeightStrong: 600,\n opacityLoading: 0.65,\n linkDecoration: 'none',\n linkHoverDecoration: 'none',\n linkFocusDecoration: 'none',\n controlPaddingHorizontal: 12,\n controlPaddingHorizontalSM: 8,\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 paddingContentHorizontalLG: mergedToken.sizeLG,\n paddingContentVerticalLG: mergedToken.sizeMS,\n paddingContentHorizontal: mergedToken.sizeMS,\n paddingContentVertical: mergedToken.sizeSM,\n paddingContentHorizontalSM: mergedToken.size,\n paddingContentVerticalSM: mergedToken.sizeXS,\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 boxShadow: `\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 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 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 screenXXLMax: screenXXXL - 1,\n screenXXXL,\n screenXXXLMin: screenXXXL,\n // FIXME: component box-shadow, should be removed\n boxShadowPopoverArrow: '3px 3px 7px rgba(0, 0, 0, 0.1)',\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 }), overrideTokens);\n return aliasToken;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createTheme, useCacheToken, useStyleRegister } from '../_util/cssinjs';\nimport version from '../version';\nimport { PresetColors } from './interface';\nimport defaultDerivative from './themes/default';\nimport defaultSeedToken from './themes/seed';\nimport formatToken from './util/alias';\nimport genComponentStyleHook from './util/genComponentStyleHook';\nimport statisticToken, { merge as mergeToken, statistic } from './util/statistic';\nimport { objectType } from '../_util/type';\nimport { triggerRef, unref, defineComponent, provide, computed, inject, watch, shallowRef } from 'vue';\nconst defaultTheme = createTheme(defaultDerivative);\nexport {\n// colors\nPresetColors,\n// Statistic\nstatistic, statisticToken, mergeToken,\n// hooks\nuseStyleRegister, genComponentStyleHook };\n// ================================ Context =================================\n// To ensure snapshot stable. We disable hashed in test env.\nexport const defaultConfig = {\n token: defaultSeedToken,\n hashed: true\n};\n//defaultConfig\nconst DesignTokenContextKey = Symbol('DesignTokenContext');\nexport const globalDesignTokenApi = shallowRef();\nexport const useDesignTokenProvider = value => {\n provide(DesignTokenContextKey, value);\n watch(value, () => {\n globalDesignTokenApi.value = unref(value);\n triggerRef(globalDesignTokenApi);\n }, {\n immediate: true,\n deep: true\n });\n};\nexport const useDesignTokenInject = () => {\n return inject(DesignTokenContextKey, computed(() => globalDesignTokenApi.value || defaultConfig));\n};\nexport const DesignTokenProvider = defineComponent({\n props: {\n value: objectType()\n },\n setup(props, {\n slots\n }) {\n useDesignTokenProvider(computed(() => props.value));\n return () => {\n var _a;\n return (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots);\n };\n }\n});\n// ================================== Hook ==================================\nexport function useToken() {\n const designTokenContext = inject(DesignTokenContextKey, computed(() => globalDesignTokenApi.value || defaultConfig));\n const salt = computed(() => `${version}-${designTokenContext.value.hashed || ''}`);\n const mergedTheme = computed(() => designTokenContext.value.theme || defaultTheme);\n const cacheToken = useCacheToken(mergedTheme, computed(() => [defaultSeedToken, designTokenContext.value.token]), computed(() => ({\n salt: salt.value,\n override: _extends({\n override: designTokenContext.value.token\n }, designTokenContext.value.components),\n formatToken\n })));\n return [mergedTheme, computed(() => cacheToken.value[0]), computed(() => designTokenContext.value.hashed ? cacheToken.value[1] : '')];\n}","<template>\n <div class=\"d-flex flex-wrap tag-cloud\">\n <div class=\"d-flex flex-wrap\">\n <template\n v-for=\"[filterKey, filterValue] in Object.entries(filters)\"\n :key=\"filterKey\"\n >\n <a-tag\n v-for=\"value in parseFilterValues(filterValue)\"\n :key=\"value.key\"\n class=\"filter-tag\"\n :closable=\"true\"\n :style=\"tagStyle\"\n @close=\"() => removeFilter(filterKey, filterValue, value.original)\"\n >\n {{ value.label }}\n </a-tag>\n </template>\n </div>\n <a-button v-if=\"hasFilters\" type=\"link\" @click=\"clearAllFilters\">\n Очистить все\n </a-button>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from 'vue';\nimport { useToken } from 'efko-ui-library/es/theme/internal';\nimport type {\n FilterItem,\n FilterValue,\n} from '../../interface/table.d';\n\nconst props = defineProps<{\n filters: Partial<Record<string, FilterValue>>,\n}>();\n\nconst emit = defineEmits<{(event: 'update:filters', value: Partial<Record<string, FilterValue>>): void,\n (\n event: 'remove',\n key: string,\n filterValue: FilterValue | undefined,\n valueToRemove: FilterItem\n ): void,\n (event: 'clear'): void,\n}>();\n\nconst [, token] = useToken();\nconst tagStyle = computed(() => ({\n color: token.value.colorSelectedMenu,\n borderColor: token.value.colorBorderSecondary,\n backgroundColor: token.value.mainBgColor || token.value.colorPrimaryBg,\n}));\n\nconst hasValidFilter = (value: FilterValue | undefined): boolean => {\n if (value === null || value === undefined) {\n return false;\n }\n if (Array.isArray(value)) {\n return value.length > 0;\n }\n return Boolean(value);\n};\n\nconst hasFilters = computed(() => Object.values(props.filters).some(hasValidFilter));\n\nfunction hasNameField(obj: unknown): obj is { name: string } {\n return (\n typeof obj === 'object'\n && obj !== null\n && 'name' in obj\n && typeof (obj as { name: unknown }).name === 'string'\n );\n}\n\nconst formatFilterItem = (\n item: FilterItem,\n): { key: string, label: string, original: FilterItem } => {\n if (typeof item === 'string') {\n return {\n key: item,\n label: item,\n original: item,\n };\n }\n if (Array.isArray(item)) {\n if (\n item.length === 2\n && typeof item[0] === 'string'\n && typeof item[1] === 'string'\n ) {\n const intervalLabel = `${item[0]} - ${item[1]}`;\n return {\n key: intervalLabel,\n label: intervalLabel,\n original: item,\n };\n }\n const joinedLabel = item.join(', ');\n return {\n key: joinedLabel,\n label: joinedLabel,\n original: item,\n };\n }\n\n if (hasNameField(item)) {\n const nameLabel = item.name;\n return {\n key: nameLabel,\n label: nameLabel,\n original: item,\n };\n }\n const jsonLabel = JSON.stringify(item);\n return {\n key: jsonLabel,\n label: jsonLabel,\n original: item,\n };\n};\n\nconst parseFilterValues = (\n value: FilterValue | undefined,\n): { key: string, label: string, original: FilterItem }[] => {\n if (value === undefined || value === null) {\n return [];\n }\n if (Array.isArray(value)) {\n return value.map((item: FilterItem) => formatFilterItem(item));\n }\n return [\n formatFilterItem(value),\n ];\n};\n\nconst isFilterItemEqual = (a: FilterItem, b: FilterItem): boolean => {\n if (typeof a === 'string' || typeof b === 'string') {\n return a === b;\n }\n return JSON.stringify(a) === JSON.stringify(b);\n};\n\nconst removeFilter = (\n key: string,\n fullValue: FilterValue | undefined,\n itemToRemove: FilterItem,\n): void => {\n if (Array.isArray(fullValue)) {\n const updated = fullValue.filter(\n (value: FilterItem) => !isFilterItemEqual(value, itemToRemove),\n );\n emit('update:filters', {\n ...props.filters,\n [key]: updated,\n });\n } else {\n emit('update:filters', {\n ...props.filters,\n [key]: null,\n });\n }\n emit('remove', key, fullValue, itemToRemove);\n};\n\nconst clearAllFilters = (): void => {\n emit('update:filters', {});\n emit('clear');\n};\n</script>\n\n<style scoped>\n.tag-cloud {\n display: flex;\n flex-wrap: wrap;\n}\n.filter-tag {\n padding: 5px 10px;\n border-radius: 10px;\n font-size: 14px;\n font-weight: 600;\n margin: 4px;\n}\n</style>\n","<template>\n <div class=\"d-flex align-items-center justify-content-center fs-5\">\n <check-circle-two-tone\n v-if=\"!Boolean(value)\"\n two-tone-color=\"#4ade80\"\n />\n <check-circle-two-tone\n v-else\n two-tone-color=\"#bfbfbf\"\n />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { CheckCircleTwoTone } from '@ant-design/icons-vue';\n\ndefineProps<{\n value: unknown,\n}>();\n</script>\n","<template>\n <div class=\"flex items-center justify-center gap-2\">\n <a-tooltip v-if=\"canEdit === false\" title=\"Смотреть\">\n <a-button :icon=\"h(EyeOutlined)\" @click=\"editHandler(record)\" />\n </a-tooltip>\n\n <template v-if=\"canEdit !== false\">\n <a-tooltip v-if=\"editAction !== false\" title=\"Редактировать\">\n <a-button :icon=\"h(EditOutlined)\" @click=\"editHandler(record)\" />\n </a-tooltip>\n\n <a-tooltip :title=\"record.deletedAt ? 'Восстановить' : 'Удалить'\">\n <a-button\n :icon=\"h(record.deletedAt ? RedoOutlined : DeleteOutlined)\"\n @click=\"\n record.deletedAt ? restoreHandler(record) : deleteHandler(record)\n \"\n />\n </a-tooltip>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { h } from 'vue';\n\nimport {\n EditOutlined,\n DeleteOutlined,\n RedoOutlined,\n EyeOutlined,\n} from '@ant-design/icons-vue';\n\ninterface TableRecord {\n deletedAt?: string | null,\n [key: string]: unknown,\n}\n\nconst props = defineProps<{\n record: TableRecord,\n canEdit?: boolean,\n editAction?: boolean,\n}>();\n\nconst emit = defineEmits<{(event: 'edit' | 'delete' | 'restore', record: TableRecord): void,\n}>();\n\nconst canEdit = props.canEdit ?? true;\nconst editAction = props.editAction ?? true;\n\nconst deleteHandler = (record: TableRecord): void => emit('delete', record);\nconst restoreHandler = (record: TableRecord): void => emit('restore', record);\nconst editHandler = (record: TableRecord): void => emit('edit', record);\n</script>\n","<template>\n <a-card\n :loading=\"loading\"\n :bordered=\"false\"\n class=\"data-card bg-white rounded-3 shadow-sm\"\n >\n <template #title>\n <div class=\"data-card__header\">\n <slot name=\"title\" />\n </div>\n </template>\n\n <div class=\"data-card__body\">\n <slot name=\"body\" :record=\"record\" :columns=\"columns\">\n <div\n v-for=\"column in columns\"\n :key=\"column.dataIndex\"\n class=\"data-card__row\"\n >\n <span class=\"data-card__label\">\n {{ column.title }}:\n </span>\n\n <span class=\"data-card__value\">\n <span v-if=\"column.dataIndex === 'deletedAt'\">\n <table-cell-status :value=\"record.deletedAt\" />\n </span>\n\n <template v-else-if=\"Array.isArray(recordValue(column))\">\n <template v-if=\"column.tag === true\">\n <a-tag\n v-for=\"(item, index) in recordArray(column)\"\n :key=\"index\"\n class=\"me-1 mb-1\"\n >\n {{ typeof item === 'object' ? getNameOrEmpty(item) : item }}\n </a-tag>\n </template>\n\n <template v-else>\n <span\n v-for=\"(item, index) in recordArray(column)\"\n :key=\"index\"\n >\n <template v-if=\"typeof item === 'object'\">\n {{ getNameOrEmpty(item) }}\n </template>\n\n <template v-else>\n {{ item }}\n </template>\n\n <template v-if=\"index < recordArray(column).length - 1\">\n ,\n </template>\n </span>\n </template>\n </template>\n\n <span v-else-if=\"typeof recordValue(column) === 'boolean'\">\n <table-cell-status :value=\"!Boolean(recordValue(column))\" />\n </span>\n\n <span v-else-if=\"recordValue(column) !== null && typeof recordValue(column) === 'object'\">\n {{ getNameOrEmpty(recordValue(column)) }}\n </span>\n\n <span v-else-if=\"column.tag === true\">\n <a-tag>{{ recordValue(column) }}</a-tag>\n </span>\n\n <span v-else>\n {{ recordValue(column) }}\n </span>\n </span>\n </div>\n </slot>\n </div>\n\n <div v-if=\"$slots.footer\" class=\"data-card__footer\">\n <slot name=\"footer\" :record=\"record\" :columns=\"columns\" />\n </div>\n\n <template v-if=\"showActionsColumn\" #actions>\n <card-cell-actions\n :record=\"record\"\n :can-edit=\"canEdit\"\n :edit-action=\"editAction\"\n @edit=\"editHandler\"\n @delete=\"deleteHandler\"\n @restore=\"restoreHandler\"\n />\n </template>\n </a-card>\n</template>\n\n<script lang=\"ts\" setup>\nimport TableCellStatus from '../table/ui/table-cell/TableCellStatus.vue';\nimport CardCellActions from './ui/CardCellActions.vue';\n\nimport type { ColumnConfig } from '../table/interface/table.d';\nimport type { TableRecord } from './TheCard.d';\n\nconst props = defineProps<{\n loading: boolean,\n record: TableRecord,\n columns: ColumnConfig[],\n canEdit?: boolean,\n editAction?: boolean,\n showActionsColumn?: boolean,\n}>();\n\nconst recordValue = (column: ColumnConfig): unknown =>\n (props.record as Record<string, unknown>)[String(column.dataIndex)];\n\nconst recordArray = (column: ColumnConfig): unknown[] => {\n const value = recordValue(column);\n return Array.isArray(value) ? value : [];\n};\n\nconst getNameOrEmpty = (value: unknown): string => {\n if (value === null || typeof value !== 'object') {\n return '';\n }\n if ('name' in (value as Record<string, unknown>)) {\n const name = (value as { name?: unknown }).name;\n return typeof name === 'string' ? name : '';\n }\n return '';\n};\n\nconst emit = defineEmits<{(e: 'delete' | 'restore' | 'edit', record: TableRecord): void,\n}>();\n\nconst canEdit = props.canEdit ?? true;\nconst editAction = props.editAction ?? true;\nconst showActionsColumn = props.showActionsColumn ?? true;\n\nconst deleteHandler = (record: TableRecord): void => emit('delete', record);\nconst restoreHandler = (record: TableRecord): void => emit('restore', record);\nconst editHandler = (record: TableRecord): void => emit('edit', record);\n</script>\n\n<style scoped>\n.data-card {\n transition: box-shadow 0.18s ease-out, transform 0.18s ease-out;\n}\n\n.data-card:hover {\n transform: translateY(-2px);\n box-shadow: 0 12px 30px rgba(33, 37, 41, 0.08);\n}\n\n.data-card__header {\n display: flex;\n align-items: center;\n min-height: 32px;\n}\n\n.data-card__body {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.data-card__row {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n padding: 2px 0;\n}\n\n.data-card__label {\n flex: 0 0 auto;\n font-weight: 500;\n font-size: 12px;\n color: #6c757d;\n}\n\n.data-card__value {\n flex: 1 1 auto;\n font-size: 13px;\n word-break: break-word;\n}\n\n.data-card__footer {\n display: flex;\n justify-content: flex-end;\n margin-top: 12px;\n}\n</style>\n","<template>\n <div\n ref=\"container\"\n style=\"height: 1px\"\n class=\"d-flex align-items-center justify-content-center pb-5 pt-5\"\n >\n <a-spin :spinning=\"loading\" />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n ref,\n onMounted,\n onBeforeUnmount,\n} from 'vue';\n\nconst props = withDefaults(\n defineProps<{\n onIntersect:() => void,\n threshold?: number,\n once?: boolean,\n loading: boolean,\n }>(),\n {\n threshold: 0.1,\n once: false,\n },\n);\n\nconst container = ref<HTMLElement | null>(null);\nlet observer: IntersectionObserver | null = null;\n\nconst handleIntersection = (entries: IntersectionObserverEntry[]): void => {\n const entry = entries[0];\n if (entry.isIntersecting) {\n props.onIntersect?.();\n if (props.once && observer) {\n observer.disconnect();\n }\n }\n};\n\nonMounted(() => {\n observer = new IntersectionObserver(handleIntersection, {\n threshold: props.threshold,\n });\n if (container.value) {\n observer.observe(container.value);\n }\n});\n\nonBeforeUnmount(() => {\n if (observer) observer.disconnect();\n});\n</script>\n","<template>\n <div class=\"d-flex flex-column gap-4\">\n <div :class=\"gridClass\">\n <the-card\n v-for=\"(record, index) in internalData\"\n :key=\"String(record.id ?? `card-${index}`)\"\n :loading=\"loading\"\n :record=\"record\"\n :columns=\"preparedColumns\"\n :can-edit=\"canEdit\"\n :edit-action=\"editAction\"\n :show-actions-column=\"showActionsColumn\"\n @edit=\"(rec) => emit('edit', rec)\"\n @delete=\"(rec) => emit('delete', rec)\"\n @restore=\"(rec) => emit('restore', rec)\"\n >\n <template v-if=\"$slots.titleCard\" #title>\n <slot\n name=\"titleCard\"\n :record=\"record\"\n :columns=\"preparedColumns\"\n />\n </template>\n\n <template v-if=\"$slots.bodyCard\" #body=\"{ record: bodyRecord, columns: bodyColumns }\">\n <slot\n name=\"bodyCard\"\n :record=\"bodyRecord\"\n :columns=\"bodyColumns\"\n />\n </template>\n\n <template v-if=\"$slots.footerCard\" #footer=\"{ record: footerRecord, columns: footerColumns }\">\n <slot\n name=\"footerCard\"\n :record=\"footerRecord\"\n :columns=\"footerColumns\"\n />\n </template>\n </the-card>\n </div>\n\n <LazyLoadTrigger\n v-if=\"pagination && !isLastPage\"\n :loading=\"loading\"\n :once=\"false\"\n :on-intersect=\"loadNextPage\"\n />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n ref, computed, watch, onMounted,\n} from 'vue';\nimport autoAnimate from '@formkit/auto-animate';\nimport TheCard from './TheCard.vue';\nimport type { ColumnConfig, Meta } from '../table/interface/table.d';\nimport type { TableRecord } from './TheCard.d';\nimport LazyLoadTrigger from '../lazyload/LazyLoadTrigger.vue';\n\nconst props = defineProps<{\n loading: boolean,\n columns: ColumnConfig[],\n dataSource: TableRecord[],\n cardLayout: 'grid' | 'row',\n canEdit: boolean,\n editAction: boolean,\n showActionsColumn?: boolean,\n pagination: boolean,\n meta: Meta | undefined,\n}>();\n\nconst emit = defineEmits<{(event: 'delete' | 'restore' | 'edit', record: Record<string, unknown>): void,\n (event: 'pageChange', page: number): void,\n (event: 'sizeChange', page: number, size: number): void,\n}>();\n\nonMounted(() => {\n const container = document.querySelector<HTMLElement>('.card-grid');\n if (container !== null) {\n autoAnimate(container);\n }\n});\n\nconst gridClass = computed(\n () => (props.cardLayout === 'row'\n ? 'card-grid card-grid--row'\n : 'card-grid card-grid--grid'),\n);\n\nconst preparedColumns = computed(() => props.columns);\n\nconst internalData = ref<TableRecord[]>([]);\n\nconst mergeData = (): void => {\n if (props.meta?.currentPage === 1) {\n internalData.value = [\n ...props.dataSource,\n ];\n return;\n }\n\n const existingIds = new Set(internalData.value.map((record: Record<string, unknown>) => record.id));\n const toAdd = props.dataSource.filter((record: TableRecord) => !existingIds.has(record.id));\n internalData.value.push(...toAdd);\n};\n\nmergeData();\n\nwatch(() => [\n props.dataSource,\n props.meta?.currentPage,\n], mergeData, {\n deep: true,\n});\n\nconst isLastPage = computed(() => {\n if (props.meta === undefined) {\n return true;\n }\n return (\n props.meta.currentPage * props.meta.pageSize\n >= props.meta.total\n );\n});\n\nconst loadNextPage = (): void => {\n if (props.loading || isLastPage.value || !props.meta) {\n return;\n }\n emit('pageChange', props.meta.currentPage + 1);\n};\n</script>\n\n<style scoped>\n.card-grid {\n display: grid;\n gap: 24px;\n}\n\n.card-grid--row {\n grid-template-columns: minmax(0, 1fr);\n}\n\n.card-grid--grid {\n grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\n}\n</style>\n","export const PAGE_SIZE_SMALL = '10';\nexport const PAGE_SIZE_MEDIUM = '20';\nexport const PAGE_SIZE_LARGE = '50';\nexport const PAGE_SIZE_EXTRA_LARGE = '100';\nexport const PAGE_SIZE_ULTRA = '1000';\nexport const DEFAULT_PAGE_NUMBER = 1;\n\nexport const DEFAULT_PAGE_SIZE = PAGE_SIZE_SMALL;\n\nexport enum FilterMode {\n SEARCH = 'search',\n SELECT = 'select',\n DATE = 'date',\n}\n\nexport enum PageSizes {\n SMALL = '10',\n MEDIUM = '20',\n LARGE = '50',\n EXTRA_LARGE = '100',\n ULTRA = '1000'\n}\n\nexport const PAGE_SIZE_OPTIONS = [\n PageSizes.SMALL,\n PageSizes.MEDIUM,\n PageSizes.LARGE,\n PageSizes.EXTRA_LARGE,\n];\n\nexport enum SkipSizes {\n NONE = 0,\n SMALL = 10,\n MEDIUM = 20,\n LARGE = 50\n}\n\nexport enum TableDefaults {\n DEFAULT_CURRENT_PAGE = 1\n}\n\nexport enum TableSortOrder {\n ASCEND = 'ascend',\n DESCEND = 'descend'\n}\n\nexport enum SortOrder {\n ASC = 'asc',\n DESC = 'desc',\n}\n","<template>\n <VueMultiselect\n v-bind=\"$attrs\"\n class=\"filter-select\"\n :modelValue=\"modelValue\"\n @update:modelValue=\"$emit('update:modelValue', $event)\"\n label=\"name\"\n value-prop=\"id\"\n >\n <template #nooptions>\n <a-empty :image=\"simpleImage\" />\n </template>\n </VueMultiselect>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport VueMultiselect from '@vueform/multiselect';\nimport { Empty } from 'efko-ui-library';\n\nexport default defineComponent({\n name: 'MultiselectWrapper',\n components: { VueMultiselect },\n props: {\n modelValue: {\n type: [Array, String, Number, Object, Boolean, null],\n default: null,\n },\n },\n emits: ['update:modelValue'],\n data() {\n return { simpleImage: Empty.PRESENTED_IMAGE_SIMPLE };\n },\n});\n</script>\n\n<style scoped>\n.filter-select :deep(.multiselect-placeholder) {\n font-size: 12px;\n}\n</style>\n","<template>\n <div class=\"d-flex align-items-center gap-2 p-2\">\n <component\n v-bind=\"componentProps\"\n :is=\"filterComponent\"\n v-model:value=\"localValue\"\n v-model=\"localValue\"\n :placeholder=\"placeholder\"\n style=\"min-width: 240px; max-width: 300px; font-size: 14px\"\n object\n />\n <a-button type=\"primary\" size=\"small\" @click=\"handleApply\">\n Добавить\n </a-button>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed, ref,\n} from 'vue';\nimport Multiselect from '../../../ui/TheSelect.vue';\nimport { FilterMode } from '../../enum/table';\n\ntype FilterValue =\n | string\n | number\n | boolean\n | object\n | (string | number | boolean | object)[]\n | null;\n\nconst props = defineProps<{\n placeholder: string,\n filterMode?: FilterMode,\n componentProps?: Record<string, unknown>,\n}>();\n\nconst emit = defineEmits<{(event: 'update:modelValue', value: FilterValue): void,\n (event: 'apply'): void,\n}>();\n\nconst filterComponent = computed(() => {\n if (props.filterMode === FilterMode.SEARCH) {\n return 'a-input';\n }\n\n if (props.filterMode === FilterMode.SELECT) {\n return Multiselect;\n }\n\n if (props.filterMode === FilterMode.DATE) {\n return 'a-range-picker';\n }\n\n return null;\n});\n\nconst localValue = ref(null);\n\nconst handleApply = (): void => {\n emit('update:modelValue', localValue.value);\n emit('apply');\n};\n</script>\n","<template>\n <div class=\"d-flex align-items-center justify-content-center gap-2\">\n <a-tooltip v-if=\"props.canEdit === false\" title=\"Смотреть\">\n <a-button :icon=\"h(EyeOutlined)\" @click=\"editHandler(record)\" />\n </a-tooltip>\n\n <template v-if=\"canEdit !== false\">\n <a-tooltip v-if=\"props.editAction !== false\" title=\"Редактировать\">\n <a-button :icon=\"h(EditOutlined)\" @click=\"editHandler(record)\" />\n </a-tooltip>\n\n <a-tooltip v-if=\"deleteAction !== false\" :title=\"record.isDeleted ? 'Восстановить' : 'Удалить'\">\n <a-button\n :icon=\"h(record.isDeleted ? RedoOutlined : DeleteOutlined)\"\n @click=\"\n record.isDeleted ? restoreHandler(record) : deleteHandler(record)\n \"\n />\n </a-tooltip>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { h } from 'vue';\n\nimport {\n EditOutlined,\n DeleteOutlined,\n RedoOutlined,\n EyeOutlined,\n} from '@ant-design/icons-vue';\n\ninterface TableRecord {\n name?: string,\n isDeleted?: string | null,\n}\n\nconst props = defineProps<{\n record: TableRecord,\n canEdit: boolean,\n editAction: boolean,\n deleteAction: boolean,\n}>();\n\nconst emit = defineEmits<{(event: 'edit' | 'delete' | 'restore', record: TableRecord): void,\n}>();\n\nconst deleteHandler = (record: TableRecord): void => {\n emit('delete', record);\n};\n\nconst restoreHandler = (record: TableRecord): void => {\n emit('restore', record);\n};\n\nconst editHandler = (record: TableRecord): void => {\n emit('edit', record);\n};\n</script>\n","<template>\n <div>\n <a-table\n bordered\n table-layout=\"fixed\"\n class=\"the-table\"\n :loading=\"loading\"\n :columns=\"computedColumns\"\n :data-source=\"dataSource\"\n :row-key=\"(record: Record<string, unknown>) => record.id\"\n :pagination=\"false\"\n :scroll=\"{ x: 'max-content'}\"\n :row-class-name=\"rowClassName\"\n @change=\"onTableChange\"\n @resize-column=\"resizeColumn\"\n >\n <template #title>\n <div class=\"d-flex align-items-center justify-content-between\">\n <div class=\"d-flex align-items-center gap-2\">\n <a-badge dot :count=\"hiddenColumnCount\">\n <a-button\n class=\"d-flex align-items-center justify-content-center p-2\"\n @click=\"$emit('openColumnDrawer')\"\n >\n <Icon name=\"solar:settings-outline\" class=\"fs-5\" />\n </a-button>\n </a-badge>\n\n <a-button\n v-if=\"showFilterButton\"\n class=\"d-flex align-items-center justify-content-center p-2\"\n @click=\"$emit('openFilterDrawer')\"\n >\n <Icon name=\"ant-design:filter-outlined\" class=\"fs-5\" />\n </a-button>\n </div>\n\n <slot name=\"title\" />\n </div>\n </template>\n\n <template\n v-for=\"column in filterableColumns\"\n :key=\"String(column.dataIndex)\"\n #[`filter${String(column.dataIndex)}Dropdown`]\n >\n <filter-dropdown\n v-model=\"inputFilters[column.dataIndex]\"\n :filter-mode=\"column.filterMode\"\n :component-props=\"column.componentProps\"\n :placeholder=\"column.title\"\n @update:model-value=\"(value) => applyFilter(column.dataIndex, value)\"\n />\n </template>\n\n <template #bodyCell=\"{ column, record }\">\n <slot name=\"bodyCell\" :column=\"column\" :record=\"record\">\n <a-skeleton\n v-if=\"loading\"\n :active=\"true\"\n :loading=\"true\"\n :title=\"false\"\n :paragraph=\"{ rows: 1 }\"\n />\n\n <template v-else>\n <span v-if=\"column.dataIndex === 'isDeleted'\">\n <table-cell-status :value=\"record.isDeleted\" />\n </span>\n <span v-else-if=\"Array.isArray(record[column.dataIndex])\">\n <template v-if=\"column.tag === true\">\n <a-tag\n v-for=\"(item, index) in record[column.dataIndex]\"\n :key=\"index\"\n :style=\"tagStyle\"\n class=\"me-1 mb-1\"\n >\n {{ typeof item === 'object' ? (item?.name || '') : item }}\n </a-tag>\n </template>\n\n <template v-else>\n <span\n v-for=\"(item, index) in record[column.dataIndex]\"\n :key=\"index\"\n >\n <template v-if=\"typeof item === 'object'\">\n {{ item.name }}\n </template>\n\n <template v-else>\n {{ item }}\n </template>\n\n <template v-if=\"index < record[column.dataIndex].length - 1\">\n ,\n </template>\n </span>\n </template>\n </span>\n <span v-else-if=\"typeof record[column.dataIndex] === 'boolean'\">\n <table-cell-status :value=\"!record[column.dataIndex]\" />\n </span>\n <span v-else-if=\"typeof record[column.dataIndex] === 'object'\">\n {{ record[column.dataIndex]?.name || \"\" }}\n </span>\n <span v-else-if=\"column.tag === true\">\n <a-tag :style=\"tagStyle\">{{ record[column.dataIndex] }}</a-tag>\n </span>\n\n <span v-else>{{ record[column.dataIndex] }}</span>\n </template>\n </slot>\n </template>\n\n <template #actionColumn=\"{ record }\">\n <slot name=\"actionColumn\" :record=\"record\">\n <table-cell-actions\n :edit-action=\"editAction\"\n :delete-action=\"deleteAction\"\n :can-edit=\"canEdit\"\n :record=\"record\"\n @edit=\"() => $emit('edit', record)\"\n @delete=\"() => $emit('delete', record)\"\n @restore=\"() => $emit('restore', record)\"\n />\n </slot>\n </template>\n </a-table>\n\n <a-pagination\n v-if=\"pagination\"\n class=\"mt-4 text-end\"\n :current=\"meta?.currentPage\"\n :page-size=\"meta?.pageSize\"\n :total=\"meta?.total\"\n :show-total=\"(total: string) => `Всего ${total} элементов`\"\n :page-size-options=\"meta?.pageSizeOptions\"\n :show-size-changer=\"true\"\n @change=\"(page: number) => $emit('pageChange', page)\"\n @show-size-change=\"(page: number, size: number) => $emit('sizeChange', page, size)\"\n />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n ref, computed, watch, onMounted,\n} from 'vue';\nimport autoAnimate from '@formkit/auto-animate';\nimport { isEqual } from 'lodash';\n\nimport { TableSortOrder } from './enum/table';\nimport FilterDropdown from './ui/filter/FilterDropdown.vue';\nimport TableCellStatus from './ui/table-cell/TableCellStatus.vue';\nimport TableCellActions from './ui/table-cell/TableCellActions.vue';\nimport type {\n ColumnConfig,\n FilterItem,\n FilterValue,\n Meta,\n SortPayload,\n} from './interface/table.d';\nimport type { TableRecord } from '../card/TheCard.d';\nimport { useToken } from 'efko-ui-library/es/theme/internal';\n\nconst [, token] = useToken();\n\ntype TableColumnDefinition = Record<string, unknown> & ColumnConfig & {\n slots?: Record<string, string>;\n};\n\nconst props = defineProps<{\n loading: boolean,\n pagination: boolean,\n columns: ColumnConfig[],\n dataSource: TableRecord[],\n filterValues?: Partial<Record<string, FilterValue>>,\n meta: Meta | undefined,\n canEdit: boolean,\n editAction: boolean,\n deleteAction: boolean,\n showActionsColumn?: boolean,\n columnsVisibility: Record<string, boolean>,\n disableColumnFilterDropdowns?: boolean,\n showFilterButton?: boolean,\n}>();\n\nconst emit = defineEmits<{(event: 'update:filterValues',\n values: Partial<Record<string, FilterValue>>,\n ): void,\n (event: 'filterApply', payload: { key: string, value: FilterItem[] }): void,\n (event: 'restore' | 'edit' | 'delete', record: Record<string, unknown>): void,\n (event: 'sortChange', payload: SortPayload): void,\n (event: 'pageChange', page: number): void,\n (event: 'sizeChange', page: number, pageSize: number): void,\n (event: 'openColumnDrawer'): void,\n (event: 'openFilterDrawer'): void,\n}>();\n\nconst showFilterButton = computed<boolean>(() => props.showFilterButton === true);\n\nconst localFilterValues = ref<Partial<Record<string, FilterValue>>>(\n props.filterValues || {},\n);\nconst localColumns = ref<ColumnConfig[]>([\n ...props.columns,\n]);\nconst inputFilters = ref<Record<string, unknown | null>>({});\n\nconst filterableColumns = computed(() => {\n if (props.disableColumnFilterDropdowns === true) {\n return [];\n }\n\n return localColumns.value.filter(\n (column: ColumnConfig) => column.filterable,\n );\n});\n\nconst computedColumns = computed(() => {\n const visible = localColumns.value.filter((column: ColumnConfig) => {\n if (column.filterOnly) {\n return false;\n }\n\n const key = column.key || String(column.dataIndex);\n return props.columnsVisibility[key] !== false;\n });\n\n const result: TableColumnDefinition[] = visible.map((column: ColumnConfig) => {\n const { headerAlign, cellAlign, ...rest } = column;\n\n return {\n ...rest,\n sorter: Boolean(rest.sortable),\n sortDirections: rest.sortable\n ? [\n TableSortOrder.ASCEND,\n TableSortOrder.DESCEND,\n ]\n : undefined,\n customHeaderCell: (): { style: { textAlign: string } } | undefined => (headerAlign ? {\n style: {\n textAlign: headerAlign,\n },\n } : undefined),\n customCell: (): { style: { textAlign: string } } | undefined => (cellAlign ? {\n style: {\n textAlign: cellAlign,\n },\n } : undefined),\n customFilterDropdown: Boolean(rest.filterable),\n slots: rest.filterable\n ? {\n filterDropdown: `filter${String(rest.dataIndex)}Dropdown`,\n }\n : undefined,\n } as TableColumnDefinition;\n });\n\n if (\n props.showActionsColumn !== false\n && props.columnsVisibility.actions !== false\n ) {\n result.push({\n title: 'Действия',\n key: 'actions',\n dataIndex: 'actions' as keyof TableRecord,\n width: 100,\n slots: {\n customRender: 'actionColumn',\n },\n } as TableColumnDefinition);\n }\n\n return result;\n});\n\nconst hiddenColumnCount = computed(\n () => Object.keys(props.columnsVisibility).filter(\n (key: string) => props.columnsVisibility[key] === false,\n ).length,\n);\n\nconst tagStyle = computed(() => ({\n color: token.value.colorSelectedMenu,\n borderColor: token.value.colorBorderSecondary,\n backgroundColor: token.value.mainBgColor || token.value.colorPrimaryBg,\n}));\n\nconst applyFilter = (key: string, newValue: unknown): void => {\n const prev = localFilterValues.value[key];\n\n if (newValue === null) {\n const next = { ...localFilterValues.value, [key]: null };\n inputFilters.value[key] = null;\n emit('filterApply', { key, value: [] });\n emit('update:filterValues', next);\n localFilterValues.value = next;\n return;\n }\n\n if (isEqual(prev, newValue)) {\n inputFilters.value[key] = null;\n return;\n }\n const next = { ...localFilterValues.value, [key]: newValue as FilterItem };\n\n emit('filterApply', { key, value: [newValue as FilterItem] }); // массив из одного для совместимости\n emit('update:filterValues', next);\n\n localFilterValues.value = next;\n inputFilters.value[key] = null;\n};\n\nconst rowClassName = (record: Record<string, unknown>): string => (record.isGroup ? 'parent-row' : '');\n\nconst onTableChange = (\n _pagination: unknown,\n _filters: unknown,\n sorter: { columnKey?: string, order?: TableSortOrder | null },\n): void => {\n emit('sortChange', {\n columnKey: sorter.columnKey || '',\n order: sorter.order || null,\n });\n};\n\nconst resizeColumn = (width: number, col: ColumnConfig): void => {\n const key = col.key || String(col.dataIndex);\n const index = localColumns.value.findIndex(\n (column: ColumnConfig) => (column.key || String(column.dataIndex)) === key,\n );\n if (index === -1) {\n return;\n }\n localColumns.value.splice(index, 1, {\n ...col,\n width,\n });\n};\n\nwatch(\n () => props.filterValues,\n (newVal: Partial<Record<string, FilterValue>> | undefined) => {\n localFilterValues.value = newVal || {};\n },\n);\n\nwatch(\n () => props.columns,\n (newColumns: ColumnConfig[]) => {\n localColumns.value = [\n ...newColumns,\n ];\n },\n {\n immediate: true,\n },\n);\n\nonMounted(() => {\n const tbody = document.querySelector<HTMLElement>('.the-table tbody');\n if (tbody !== null) {\n autoAnimate(tbody);\n }\n});\n</script>\n","<template>\n <a-drawer\n v-model:open=\"drawerOpen\"\n title=\"Настройки представления\"\n placement=\"right\"\n >\n <section class=\"mb-4\">\n <h3 class=\"fw-bold fs-6 mb-2\">Отображение колонок</h3>\n\n <div class=\"d-flex flex-column gap-1\">\n <div v-for=\"col in columns\" :key=\"col.key ?? col.dataIndex\">\n <a-checkbox\n v-model:checked=\"visibility[col.key ?? col.dataIndex]\"\n :disabled=\"isCardMode\"\n class=\"d-flex\"\n >\n {{ col.title }}\n </a-checkbox>\n </div>\n </div>\n </section>\n\n <section>\n <h3 class=\"fw-bold fs-6 mb-2\">Вид</h3>\n\n <a-radio-group\n v-model:value=\"localViewMode\"\n button-style=\"solid\"\n class=\"mb-3\"\n :disabled=\"disabledViewMode\"\n >\n <a-radio value=\"table\">Таблица</a-radio>\n <a-radio value=\"grid\">Карточки</a-radio>\n </a-radio-group>\n\n <a-radio-group\n v-model:value=\"localCardLayout\"\n button-style=\"solid\"\n :disabled=\"!isCardMode\"\n >\n <a-radio-button value=\"grid\">\n <AppstoreOutlined class=\"me-2\" />Сетка\n </a-radio-button>\n\n <a-radio-button value=\"row\">\n <PicCenterOutlined class=\"me-2\" />Строка\n </a-radio-button>\n </a-radio-group>\n </section>\n </a-drawer>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n ref, watch, computed, reactive,\n} from 'vue';\nimport { AppstoreOutlined, PicCenterOutlined } from '@ant-design/icons-vue';\nimport type { ColumnConfig } from '../interface/table.d';\nimport { CardLayout, ViewMode } from './ColumnSettingsDrawer';\n\nconst props = defineProps<{\n visible: boolean,\n columns: ColumnConfig[],\n modelValue: Record<string, boolean>,\n showActionsColumn?: boolean,\n disableViewMode?: boolean,\n viewMode: ViewMode,\n cardLayout: CardLayout,\n}>();\n\nconst emit = defineEmits<{(e: 'update:visible', value: boolean): void,\n (e: 'update:modelValue', value: Record<string, boolean>): void,\n (e: 'update:viewMode', value: ViewMode): void,\n (e: 'update:cardLayout', value: CardLayout): void,\n}>();\n\nconst drawerOpen = ref(props.visible);\nconst localViewMode = ref(props.viewMode);\nconst localCardLayout = ref(props.cardLayout);\nconst visibility = reactive<Record<string, boolean>>({\n ...props.modelValue,\n});\n\nconst isCardMode = computed(() => localViewMode.value === 'grid');\nconst disabledViewMode = props.disableViewMode || false;\n\nwatch(\n () => props.visible,\n (value: boolean) => {\n drawerOpen.value = value;\n },\n);\n\nwatch(drawerOpen, (value: boolean) => {\n emit('update:visible', value);\n});\n\nwatch(\n () => props.viewMode,\n (mode: ViewMode) => {\n localViewMode.value = mode;\n },\n);\n\nwatch(localViewMode, (mode: ViewMode) => {\n emit('update:viewMode', mode);\n});\n\nwatch(\n () => props.cardLayout,\n (layout: CardLayout) => {\n localCardLayout.value = layout;\n },\n);\n\nwatch(localCardLayout, (layout: CardLayout) => {\n emit('update:cardLayout', layout);\n});\n\nwatch(\n () => props.modelValue,\n (view: Record<string, boolean>) => Object.assign(visibility, view),\n {\n deep: true,\n },\n);\n\nwatch(visibility, (view: Record<string, boolean>) => emit('update:modelValue', {\n ...view,\n}), {\n deep: true,\n});\n\nif (props.showActionsColumn && visibility.actions === undefined) {\n visibility.actions = true;\n}\n</script>\n","<template>\n <component\n v-bind=\"componentProps\"\n :is=\"inputComponent\"\n v-model:value=\"inputValue\"\n v-model=\"inputValue\"\n :placeholder=\"placeholder\"\n class=\"w-100 small\"\n />\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed, ref, watch,\n} from 'vue';\nimport Multiselect from '../ui/TheSelect.vue';\nimport { FilterMode } from '../table/enum/table';\n\ntype Mode = 'search' | 'select' | 'date'\ntype Value =\n | string\n | number\n | boolean\n | object\n | (string | number | boolean | object)[]\n | null\n | undefined\n\nconst props = defineProps<{\n modelValue: Value,\n filterMode?: Mode,\n componentProps?: Record<string, unknown>,\n placeholder: string,\n}>();\n\nconst emit = defineEmits<{(event:'update:modelValue', value:Value): void }>();\n\nconst inputComponent = computed(() => {\n if (props.filterMode === FilterMode.SEARCH) {\n return 'a-input';\n }\n if (props.filterMode === FilterMode.SELECT) {\n return Multiselect;\n }\n if (props.filterMode === FilterMode.DATE) {\n return 'a-range-picker';\n }\n return 'a-input';\n});\n\nconst inputValue = ref<Value>(props.modelValue);\n\nwatch(() => props.modelValue, (value: Value) => {\n inputValue.value = value;\n});\nwatch(inputValue, (value: Value) => emit('update:modelValue', value));\n</script>\n","<template>\n <a-drawer\n v-model:open=\"drawerOpen\"\n placement=\"right\"\n width=\"360\"\n title=\"Фильтры\"\n body-style=\"padding: 24px\"\n >\n <section\n v-for=\"column in filterableColumns\"\n :key=\"columnKey(column)\"\n class=\"mb-4 d-flex flex-column gap-2\"\n >\n <span class=\"small fw-medium\">{{ column.title }}</span>\n\n <filter-input\n v-model=\"draft[columnKey(column)]\"\n :filter-mode=\"column.filterMode\"\n :component-props=\"column.componentProps\"\n :placeholder=\"column.title\"\n />\n </section>\n\n <div class=\"d-flex flex-column gap-2 mt-2\">\n <a-button block @click=\"resetFilters\">\n Сбросить\n </a-button>\n <a-button\n type=\"primary\"\n block\n :disabled=\"!hasModifications\"\n @click=\"applyFilters\"\n >\n Применить\n </a-button>\n </div>\n </a-drawer>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n ref, reactive, watch, computed,\n} from 'vue';\nimport { isEqual } from 'lodash';\nimport FilterInput from './FilterInput.vue';\nimport type {\n ColumnConfig,\n FilterItem,\n FilterValue,\n} from '../table/interface/table.d';\n\nconst props = defineProps<{\n visible: boolean,\n columns: ColumnConfig[],\n filterValues: Record<string, FilterValue | undefined>,\n}>();\n\nconst emit = defineEmits<{(event: 'update:visible', value: boolean): void,\n (\n event: 'update:filterValues',\n value: Record<string, FilterValue | undefined>,\n ): void,\n (event: 'filterApply', payload: { key: string, value: FilterItem[] }): void,\n}>();\n\nconst drawerOpen = ref(props.visible);\nconst draft = reactive<Record<string, FilterValue | undefined>>({\n ...props.filterValues,\n});\n\nconst columnKey = (column: ColumnConfig): string | number => column.key ?? String(column.dataIndex);\n\nconst toArray = (val: FilterValue | undefined): FilterItem[] => {\n if (Array.isArray(val)) {\n return val as FilterItem[];\n }\n if (val !== null && val !== undefined) {\n return [val as FilterItem];\n }\n return [];\n};\n\nconst valueIsEmpty = (val: FilterValue | undefined): boolean => {\n if (val === null || val === undefined) {\n return true;\n }\n if (Array.isArray(val)) {\n return val.length === 0;\n }\n if (typeof val === 'string') {\n return val.trim() === '';\n }\n return false;\n};\n\nconst filterableColumns = computed(() => props.columns.filter((column: ColumnConfig) => column.filterable));\n\nconst hasModifications = computed(() => Object.keys(draft).some(\n (key: string) => !isEqual(draft[key], props.filterValues[key]),\n));\n\nconst syncDraft = (values: Record<string, FilterValue | undefined>): void => {\n Object.keys(draft).forEach((key: string) => {\n delete draft[key];\n });\n Object.assign(draft, values);\n};\n\nwatch(\n () => props.visible,\n (view: boolean) => {\n drawerOpen.value = view;\n if (view) {\n syncDraft(props.filterValues);\n }\n },\n);\nwatch(drawerOpen, (view: boolean) => {\n emit('update:visible', view);\n});\n\nwatch(\n () => props.filterValues,\n (newVal: Record<string, FilterValue | undefined>) => {\n syncDraft(newVal);\n },\n {\n deep: true,\n },\n);\n\nconst applyFilters = (): void => {\n const updated: Record<string, FilterValue | undefined> = {\n ...props.filterValues,\n };\n\n Object.entries(draft).forEach(([key, candidate]) => {\n if (valueIsEmpty(candidate)) {\n updated[key] = null;\n emit('filterApply', {\n key,\n value: [],\n });\n return;\n }\n updated[key] = candidate as FilterValue;\n emit('filterApply', {\n key,\n value: toArray(candidate as FilterValue),\n });\n });\n\n emit('update:filterValues', updated);\n drawerOpen.value = false;\n};\n\nconst resetFilters = (): void => {\n Object.keys(draft).forEach((key: string) => {\n delete draft[key];\n });\n\n const cleared: Record<string, FilterValue | undefined> = {};\n emit('update:filterValues', cleared);\n};\n</script>\n\n<style scoped>\nspan {\n line-height: 1;\n}\n</style>\n","<template>\n <a-modal\n v-model:visible=\"modalOpen\"\n title=\"Фильтры\"\n destroy-on-close\n :ok-text=\"'Применить'\"\n :cancel-text=\"'Сбросить'\"\n :ok-button-props=\"{ disabled: !hasModifications }\"\n @ok=\"applyFilters\"\n @cancel=\"handleCancel\"\n >\n <section\n v-for=\"column in filterableColumns\"\n :key=\"columnKey(column)\"\n class=\"mb-4 d-flex flex-column gap-2\"\n >\n <span class=\"small fw-medium\">{{ column.title }}</span>\n\n <filter-input\n v-model=\"draft[columnKey(column)]\"\n :filter-mode=\"column.filterMode\"\n :component-props=\"column.componentProps\"\n :placeholder=\"column.title\"\n />\n </section>\n </a-modal>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n ref, reactive, watch, computed,\n} from 'vue';\nimport { isEqual } from 'lodash';\nimport FilterInput from './FilterInput.vue';\nimport type {\n ColumnConfig,\n FilterItem,\n FilterValue,\n} from '../table/interface/table.d';\n\nconst props = defineProps<{\n visible: boolean,\n columns: ColumnConfig[],\n filterValues: Record<string, FilterValue | undefined>,\n}>();\n\nconst emit = defineEmits<{(event: 'update:visible', value: boolean): void,\n (\n event: 'update:filterValues',\n value: Record<string, FilterValue | undefined>,\n ): void,\n (event: 'filterApply', payload: { key: string, value: FilterItem[] }): void,\n}>();\n\nconst modalOpen = ref(props.visible);\nconst draft = reactive<Record<string, FilterValue | undefined>>({\n ...props.filterValues,\n});\n\nconst columnKey = (column: ColumnConfig): string | number => column.key ?? String(column.dataIndex);\n\nconst toArray = (val: FilterValue | undefined): FilterItem[] => {\n if (Array.isArray(val)) {\n return val as FilterItem[];\n }\n if (val !== null && val !== undefined) {\n return [val as FilterItem];\n }\n return [];\n};\n\nconst valueIsEmpty = (val: FilterValue | undefined): boolean => {\n if (val === null || val === undefined) {\n return true;\n }\n if (Array.isArray(val)) {\n return val.length === 0;\n }\n if (typeof val === 'string') {\n return val.trim() === '';\n }\n return false;\n};\n\nconst filterableColumns = computed(\n () => props.columns.filter((column: ColumnConfig) => column.filterable),\n);\n\nconst hasModifications = computed(() => Object.keys(draft).some(\n (key: string) => !isEqual(draft[key], props.filterValues[key]),\n));\n\nconst syncDraft = (values: Record<string, FilterValue | undefined>): void => {\n Object.keys(draft).forEach((key: string) => {\n delete draft[key];\n });\n Object.assign(draft, values);\n};\n\nwatch(\n () => props.visible,\n (view: boolean) => {\n modalOpen.value = view;\n if (view) {\n syncDraft(props.filterValues);\n }\n },\n);\nwatch(modalOpen, (view: boolean) => {\n emit('update:visible', view);\n});\n\nwatch(\n () => props.filterValues,\n (newVal: Record<string, FilterValue | undefined>) => {\n syncDraft(newVal);\n },\n {\n deep: true,\n },\n);\n\nconst applyFilters = (): void => {\n const updated: Record<string, FilterValue | undefined> = {\n ...props.filterValues,\n };\n\n Object.entries(draft).forEach(([key, candidate]) => {\n if (valueIsEmpty(candidate)) {\n updated[key] = null;\n emit('filterApply', {\n key,\n value: [],\n });\n return;\n }\n updated[key] = candidate as FilterValue;\n emit('filterApply', {\n key,\n value: toArray(candidate as FilterValue),\n });\n });\n\n emit('update:filterValues', updated);\n modalOpen.value = false;\n};\n\nconst handleCancel = (): void => {\n modalOpen.value = false;\n};\n</script>\n\n<style scoped>\nspan {\n line-height: 1;\n}\n</style>\n","export enum ViewMode {\n Table = 'table',\n Grid = 'grid',\n}\nexport enum CardLayout {\n Grid = 'grid',\n Row = 'row',\n}\n","<template>\n <div ref=\"tagCloudContainer\">\n <filter-tag-cloud\n :filters=\"activeFilters\"\n @update:filters=\"updateFilters\"\n @remove=\"removeFilter\"\n @clear=\"clearFilters\"\n />\n </div>\n\n <template v-if=\"isCardMode\">\n <div class=\"d-flex justify-content-between align-items-center gap-2 mb-2\">\n <div class=\"d-flex align-items-center gap-1\">\n <a-badge dot :count=\"hiddenColumnCount\">\n <a-button\n class=\"d-flex align-items-center justify-content-center p-2\"\n @click=\"isColumnDrawerOpen = true\"\n >\n <Icon name=\"solar:settings-outline\" class=\"fs-5\" />\n </a-button>\n </a-badge>\n <a-button\n class=\"d-flex align-items-center justify-content-center p-2\"\n @click=\"isFilterDrawerOpen = true\"\n >\n <Icon name=\"ant-design:filter-outlined\" class=\"fs-5\" />\n </a-button>\n </div>\n\n <slot name=\"headerCardContainer\" />\n <slot name=\"title\" />\n </div>\n\n <card-grid\n v-if=\"isCardMode\"\n :loading=\"loading\"\n :columns=\"columns\"\n :data-source=\"dataSource\"\n :card-layout=\"cardLayout\"\n :can-edit=\"canEdit\"\n :edit-action=\"editAction\"\n :show-actions-column=\"showActionsColumn\"\n :pagination=\"pagination\"\n :meta=\"meta\"\n @restore=\"(r) => emit('restore', r)\"\n @edit=\"(r) => emit('edit', r)\"\n @delete=\"(r) => emit('delete', r)\"\n @page-change=\"(p) => emit('pageChange', p)\"\n @size-change=\"(p, s) => emit('sizeChange', p, s)\"\n >\n <template v-if=\"$slots.titleCard\" #titleCard=\"p\">\n <slot name=\"titleCard\" v-bind=\"p\" />\n </template>\n\n <template v-if=\"$slots.body\" #bodyCard=\"p\">\n <slot name=\"body\" v-bind=\"p\" />\n </template>\n\n <template v-if=\"$slots.footer\" #footerCard=\"p\">\n <slot name=\"footer\" v-bind=\"p\" />\n </template>\n </card-grid>\n </template>\n\n <data-table\n v-else\n :loading=\"loading\"\n :pagination=\"pagination\"\n :columns=\"columns\"\n :data-source=\"dataSource\"\n :filter-values=\"activeFilters\"\n :meta=\"meta\"\n :can-edit=\"canEdit\"\n :edit-action=\"editAction\"\n :delete-action=\"deleteAction\"\n :show-actions-column=\"showActionsColumn\"\n :columns-visibility=\"columnVisibility\"\n :disable-column-filter-dropdowns=\"props.disableColumnFilterDropdowns === true\"\n :show-filter-button=\"props.enableTableFilterDrawer === true\"\n @open-column-drawer=\"isColumnDrawerOpen = true\"\n @open-filter-drawer=\"isFilterDrawerOpen = true\"\n @update:filter-values=\"updateFilters\"\n @filter-apply=\"(payload) => emit('filterApply', payload)\"\n @restore=\"(record) => emit('restore', record)\"\n @edit=\"(record) => emit('edit', record)\"\n @delete=\"(record) => emit('delete', record)\"\n @sort-change=\"(payload) => emit('sortChange', payload)\"\n @page-change=\"(page) => emit('pageChange', page)\"\n @size-change=\"(page, size) => emit('sizeChange', page, size)\"\n >\n <template #title>\n <slot name=\"title\" />\n </template>\n <template #bodyCell=\"p\"><slot name=\"bodyCell\" v-bind=\"p\" /></template>\n <template #actionColumn=\"p\"><slot name=\"actionColumn\" v-bind=\"p\" /></template>\n </data-table>\n\n <slot\n name=\"filtersDrawer\"\n :visible=\"isFilterDrawerOpen\"\n :set-visible=\"(value: boolean) => { isFilterDrawerOpen = value; }\"\n :filters=\"activeFilters\"\n :update-filters=\"updateFilters\"\n :emit-filter-apply=\"emitFilterApply\"\n >\n <card-filters-modal\n v-if=\"props.useFilterModal === true\"\n v-model:visible=\"isFilterDrawerOpen\"\n :columns=\"columns\"\n :filter-values=\"activeFilters\"\n @update:filter-values=\"updateFilters\"\n @filter-apply=\"(payload) => emit('filterApply', payload)\"\n />\n <card-filters-drawer\n v-else\n v-model:visible=\"isFilterDrawerOpen\"\n :columns=\"columns\"\n :filter-values=\"activeFilters\"\n @update:filter-values=\"updateFilters\"\n @filter-apply=\"(payload) => emit('filterApply', payload)\"\n />\n </slot>\n\n <column-settings-drawer\n v-model:visible=\"isColumnDrawerOpen\"\n v-model:model-value=\"columnVisibility\"\n v-model:view-mode=\"currentViewMode\"\n v-model:card-layout=\"cardLayout\"\n :columns=\"columns\"\n :show-actions-column=\"showActionsColumn\"\n :disable-view-mode=\"disableViewMode\"\n />\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n ref, watch, computed, onMounted,\n} from 'vue';\nimport { isEqual } from 'lodash';\nimport autoAnimate from '@formkit/auto-animate';\n\nimport FilterTagCloud from './table/ui/filter/FilterTagCloud.vue';\nimport CardGrid from './card/CardGrid.vue';\nimport DataTable from './table/TheTable.vue';\nimport ColumnSettingsDrawer from './table/ui/ColumnSettingsDrawer.vue';\nimport CardFiltersDrawer from './card/CardFiltersDrawer.vue';\nimport CardFiltersModal from './card/CardFiltersModal.vue';\nimport type {\n ColumnConfig,\n FilterItem,\n FilterValue,\n Meta,\n SortPayload,\n} from './table/interface/table.d';\nimport { CardLayout, ViewMode } from './table/ui/ColumnSettingsDrawer';\nimport type { FilterValues } from './DataView.d';\nimport type { TableRecord } from './card/TheCard.d';\n\nconst props = withDefaults(\n defineProps<{\n viewMode?: ViewMode;\n loading: boolean;\n pagination?: boolean;\n columns: ColumnConfig[];\n dataSource: TableRecord[];\n filterValues?: Partial<Record<string, FilterValue>>;\n meta?: Meta;\n canEdit?: boolean;\n editAction?: boolean;\n deleteAction?: boolean;\n showActionsColumn?: boolean;\n disableViewMode?: boolean;\n enableTableFilterDrawer?: boolean;\n disableColumnFilterDropdowns?: boolean;\n useFilterModal?: boolean;\n }>(),\n {\n pagination: false,\n canEdit: true,\n editAction: true,\n deleteAction: true,\n showActionsColumn: true,\n disableViewMode: false,\n enableTableFilterDrawer: false,\n disableColumnFilterDropdowns: false,\n useFilterModal: false,\n },\n);\n\nconst emit = defineEmits<{(e: 'update:viewMode', value: ViewMode): void,\n (e: 'update:filterValues', value: Partial<Record<string, FilterValue>>): void,\n (e: 'filterApply', payload: { key: string, value: FilterItem[] }): void,\n (e: 'edit' | 'delete' | 'restore', record: Record<string, unknown>): void,\n (e: 'sortChange', payload: SortPayload): void,\n (e: 'pageChange', page: number): void,\n (e: 'sizeChange', page: number, pageSize: number): void,\n}>();\n\nconst currentViewMode = ref<ViewMode>(props.viewMode || ViewMode.Table);\nconst isCardMode = computed(() => currentViewMode?.value === ViewMode.Grid);\nconst cardLayout = ref<CardLayout>(CardLayout.Grid);\nconst activeFilters = ref<Partial<Record<string, FilterValue>>>(\n props.filterValues || {},\n);\n\nconst tagCloudContainer = ref<HTMLElement | null>(null);\n\nconst updateFilters = (filters: Partial<Record<string, FilterValue>>): void => {\n activeFilters.value = filters;\n emit('update:filterValues', filters);\n};\n\nconst removeFilter = (\n key: string,\n value: FilterValue | undefined,\n target: FilterItem,\n): void => {\n const next = {\n ...activeFilters.value,\n };\n\n if (value === undefined) {\n updateFilters(next);\n return;\n }\n\n if (Array.isArray(value)) {\n next[key] = value.filter((item: FilterItem) => !isEqual(item, target));\n updateFilters(next);\n return;\n }\n\n if (isEqual(value, target)) {\n next[key] = [];\n updateFilters(next);\n return;\n }\n\n next[key] = [\nvalue as FilterItem,\n ];\n updateFilters(next);\n};\n\nconst clearFilters = (): void => updateFilters({});\n\nconst emitFilterApply = (payload: { key: string; value: FilterItem[] }): void => {\n emit('filterApply', payload);\n};\n\nconst isFilterDrawerOpen = ref(false);\nconst isColumnDrawerOpen = ref(false);\n\nconst columnVisibility = ref<Record<string, boolean>>({});\n\nconst hiddenColumnCount = computed(() => (currentViewMode.value === 'table'\n ? Object.keys(columnVisibility.value).filter(\n (key: string) => columnVisibility.value[key] === false,\n ).length\n : 0));\n\nconst initVisibility = (cols: ColumnConfig[]): void => {\n cols.forEach((col: ColumnConfig) => {\n const key = col.key ?? String(col.dataIndex);\n if (columnVisibility.value[key] === undefined) {\n columnVisibility.value[key] = true;\n }\n });\n\n if (props.showActionsColumn && columnVisibility.value.actions === undefined) {\n columnVisibility.value.actions = true;\n }\n};\n\nwatch(\n () => props.filterValues,\n (value: FilterValues) => {\n activeFilters.value = value || {};\n },\n);\n\nwatch(\n () => props.viewMode,\n (mode: ViewMode | undefined) => {\n if (mode !== undefined) {\n currentViewMode.value = mode;\n }\n },\n);\n\nwatch(() => props.columns, initVisibility);\n\nwatch(currentViewMode, (mode: ViewMode) => emit('update:viewMode', mode));\n\nonMounted(() => initVisibility(props.columns));\n\nonMounted(() => {\n if (tagCloudContainer.value) {\n autoAnimate(tagCloudContainer.value);\n }\n});\n</script>\n","<template>\n <div ref=\"container\">\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n ref,\n onMounted,\n onBeforeUnmount,\n} from 'vue';\n\nconst props = withDefaults(\n defineProps<{\n onIntersect?:() => void,\n threshold?: number,\n once?: boolean,\n rootMargin?: string,\n }>(),\n {\n threshold: 0.1,\n once: false,\n rootMargin: '0px',\n },\n);\n\nconst container = ref<HTMLElement | null>(null);\nlet observer: IntersectionObserver | null = null;\n\nconst handleIntersection = (entries: IntersectionObserverEntry[]): void => {\n const entry = entries[0];\n if (entry.isIntersecting && props.onIntersect) {\n props.onIntersect();\n if (props.once && observer) {\n observer.disconnect();\n }\n }\n};\n\nonMounted(() => {\n observer = new IntersectionObserver(handleIntersection, {\n threshold: props.threshold,\n rootMargin: props.rootMargin,\n });\n\n if (container.value) {\n observer.observe(container.value);\n }\n});\n\nonBeforeUnmount(() => {\n observer?.disconnect();\n});\n</script>\n"],"names":["_extends","n","e","r","murmur2","str","h","k","i","len","SPLIT","Entity","instanceId","keys","valueFn","path","prevValue","nextValue","withInstall","comp","c","app","objectType","defaultVal","booleanType","anyType","required","type","arrayType","stringType","someType","types","ATTR_TOKEN","ATTR_MARK","CSS_IN_JS_INSTANCE","createCache","cssinjsInstanceId","styles","firstChild","style","styleHash","_a","hash","CacheEntity","StyleContextKey","getCache","_b","_c","instance","getCurrentInstance","cache","globalCache","defaultStyleContext","useStyleInject","inject","shallowRef","useStyleProvider","props","parentContext","context","watch","unref","mergedContext","propsValue","key","value","provide","styleProviderProps","defineComponent","slots","useProdHMR","webpackHMR","useDevHMR","useHMR","win","originWebpackHotUpdate","args","useClientCache","prefix","keyPath","cacheFn","onCacheRemove","styleContext","fullPathStr","res","watchEffect","HMRUpdate","clearCache","pathStr","prevCache","times","newStr","oldStr","tmpCache","mergedCache","onBeforeUnmount","sameDerivativeOption","left","right","ThemeCache","derivativeOption","updateCallTimes","derivative","targetKey","result","callTimes","index","cacheValue","currentCache","derivatives","item","warned","warning","valid","message","resetWarned","call","method","warningOnce","noop","component","vcWarning","uuid","Theme","token","cacheThemes","createTheme","derivativeArr","flattenTokenCache","flattenToken","token2key","salt","EMPTY_OVERRIDE","isProduction","isPrerender","hashPrefix","tokenKeys","recordCleanToken","tokenKey","removeStyleTags","TOKEN_THRESHOLD","cleanTokenStyle","tokenKeyList","cleanableKeyList","getComputedToken","originToken","overrideToken","theme","format","derivativeToken","mergedDerivativeToken","useCacheToken","tokens","option","ref","mergedToken","computed","tokenStr","overrideTokenStr","useGlobalCache","override","formatToken","compute","hashId","version","bound01","max","isOnePointZero","isPercent","isPercentage","clamp01","val","boundAlpha","a","convertToPercentage","pad2","rgbToRgb","g","b","rgbToHsl","min","s","l","d","hue2rgb","p","q","hslToRgb","rgbToHsv","v","hsvToRgb","f","t","mod","rgbToHex","allow3Char","hex","rgbaToHex","allow4Char","convertDecimalToHex","convertHexToDecimal","parseIntFromHex","numberInputToObject","color","names","inputToRGB","rgb","ok","stringInputToObject","isValidCSSUnit","CSS_INTEGER","CSS_NUMBER","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","matchers","named","match","TinyColor","opts","R","G","B","RsRGB","GsRGB","BsRGB","alpha","hsv","hsl","allowShortChar","fmt","x","rnd","_i","formatSet","formattedString","hasAlpha","needsAlphaFormat","amount","hue","rgb1","rgb2","rgba","results","slices","part","ret","modification","background","fg","bg","increment","hueStep","saturationStep","saturationStep2","brightnessStep1","brightnessStep2","lightColorCount","darkColorCount","darkColorMap","toHsv","_ref","toHex","_ref2","mix","getHue","light","getSaturation","saturation","getValue","generate","patterns","pColor","colorString","_hsv","_colorString","_ref3","opacity","darkColorString","presetPrimaryColors","presetPalettes","presetDarkPalettes","genControlHeight","controlHeight","genSizeMapToken","sizeUnit","sizeStep","defaultPresetColors","seedToken","genColorMapToken","seed","generateColorPalettes","generateNeutralColorPalettes","colorSuccessBase","colorWarningBase","colorErrorBase","colorInfoBase","colorPrimaryBase","colorBgBase","colorTextBase","primaryColors","successColors","warningColors","errorColors","infoColors","neutralColors","genRadius","radiusBase","radiusLG","radiusSM","radiusXS","radiusOuter","genCommonMapToken","motionUnit","motionBase","borderRadius","lineWidth","getAlphaColor","baseColor","getSolidColor","brightness","colors","bgBaseColor","textBaseColor","getFontSizes","base","fontSizes","_","baseSize","intSize","size","height","genFontMapToken","fontSize","fontSizePairs","genFontSizes","pair","lineHeights","colorPalettes","colorKey","prev","cur","isStableColor","frontColor","backgroundColor","fR","fG","fB","originAlpha","bR","bG","bB","fA","__rest","restToken","overrideTokens","screenXS","screenSM","screenMD","screenLG","screenXL","screenXXL","screenXXXL","defaultTheme","defaultDerivative","defaultConfig","defaultSeedToken","DesignTokenContextKey","globalDesignTokenApi","useDesignTokenProvider","triggerRef","useToken","designTokenContext","mergedTheme","cacheToken","__props","emit","__emit","tagStyle","hasValidFilter","hasFilters","hasNameField","obj","formatFilterItem","intervalLabel","joinedLabel","nameLabel","jsonLabel","parseFilterValues","isFilterItemEqual","removeFilter","fullValue","itemToRemove","updated","clearAllFilters","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_Fragment","_renderList","filterKey","filterValue","_createBlock","_component_a_tag","_createTextVNode","_toDisplayString","_component_a_button","_cache","_unref","CheckCircleTwoTone","canEdit","editAction","deleteHandler","record","restoreHandler","editHandler","_component_a_tooltip","_createVNode","EyeOutlined","$event","EditOutlined","RedoOutlined","DeleteOutlined","recordValue","column","recordArray","getNameOrEmpty","name","showActionsColumn","_component_a_card","_renderSlot","_ctx","_hoisted_3","_hoisted_4","_hoisted_5","TableCellStatus","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","$slots","_hoisted_10","CardCellActions","container","observer","handleIntersection","entries","onMounted","_component_a_spin","autoAnimate","gridClass","preparedColumns","internalData","mergeData","existingIds","toAdd","isLastPage","loadNextPage","TheCard","rec","bodyRecord","bodyColumns","footerRecord","footerColumns","LazyLoadTrigger","PAGE_SIZE_SMALL","PAGE_SIZE_MEDIUM","PAGE_SIZE_LARGE","PAGE_SIZE_EXTRA_LARGE","PAGE_SIZE_ULTRA","DEFAULT_PAGE_NUMBER","DEFAULT_PAGE_SIZE","FilterMode","PageSizes","PAGE_SIZE_OPTIONS","SkipSizes","TableDefaults","TableSortOrder","SortOrder","_sfc_main$9","VueMultiselect","Empty","_component_VueMultiselect","_mergeProps","_withCtx","_component_a_empty","filterComponent","Multiselect","localValue","handleApply","_resolveDynamicComponent","showFilterButton","localFilterValues","localColumns","inputFilters","filterableColumns","computedColumns","headerAlign","cellAlign","rest","hiddenColumnCount","applyFilter","newValue","next","isEqual","rowClassName","onTableChange","_pagination","_filters","sorter","resizeColumn","width","col","newVal","newColumns","tbody","_component_a_table","_component_a_badge","$emit","_component_Icon","_component_a_skeleton","TableCellActions","FilterDropdown","_component_a_pagination","total","_d","page","drawerOpen","localViewMode","localCardLayout","visibility","reactive","isCardMode","disabledViewMode","mode","layout","view","_component_a_drawer","_component_a_checkbox","_component_a_radio_group","_component_a_radio","_component_a_radio_button","AppstoreOutlined","PicCenterOutlined","inputComponent","inputValue","draft","columnKey","toArray","valueIsEmpty","hasModifications","syncDraft","values","applyFilters","candidate","resetFilters","FilterInput","modalOpen","handleCancel","_component_a_modal","ViewMode","CardLayout","currentViewMode","cardLayout","activeFilters","tagCloudContainer","updateFilters","filters","target","clearFilters","emitFilterApply","payload","isFilterDrawerOpen","isColumnDrawerOpen","columnVisibility","initVisibility","cols","FilterTagCloud","CardGrid","DataTable","CardFiltersModal","CardFiltersDrawer","ColumnSettingsDrawer"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34]}
|
|
1
|
+
{"version":3,"file":"data-view.es.js","sources":["../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../node_modules/efko-ui-library/es/_util/cssinjs/Cache.js","../node_modules/efko-ui-library/es/_util/type.js","../node_modules/efko-ui-library/es/_util/cssinjs/StyleContext.js","../node_modules/efko-ui-library/es/_util/cssinjs/hooks/useHMR.js","../node_modules/efko-ui-library/es/_util/cssinjs/hooks/useGlobalCache.js","../node_modules/efko-ui-library/es/_util/cssinjs/theme/ThemeCache.js","../node_modules/efko-ui-library/es/vc-util/warning.js","../node_modules/efko-ui-library/es/_util/warning.js","../node_modules/efko-ui-library/es/_util/cssinjs/theme/Theme.js","../node_modules/efko-ui-library/es/_util/cssinjs/theme/createTheme.js","../node_modules/efko-ui-library/es/_util/cssinjs/util.js","../node_modules/efko-ui-library/es/_util/cssinjs/hooks/useCacheToken.js","../node_modules/efko-ui-library/es/version/version.js","../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/@ant-design/colors/dist/index.esm.js","../node_modules/efko-ui-library/es/theme/themes/shared/genControlHeight.js","../node_modules/efko-ui-library/es/theme/themes/shared/genSizeMapToken.js","../node_modules/efko-ui-library/es/theme/themes/seed.js","../node_modules/efko-ui-library/es/theme/themes/shared/genColorMapToken.js","../node_modules/efko-ui-library/es/theme/themes/shared/genRadius.js","../node_modules/efko-ui-library/es/theme/themes/shared/genCommonMapToken.js","../node_modules/efko-ui-library/es/theme/themes/default/colorAlgorithm.js","../node_modules/efko-ui-library/es/theme/themes/default/colors.js","../node_modules/efko-ui-library/es/theme/themes/shared/genFontSizes.js","../node_modules/efko-ui-library/es/theme/themes/shared/genFontMapToken.js","../node_modules/efko-ui-library/es/theme/themes/default/index.js","../node_modules/efko-ui-library/es/theme/util/getAlphaColor.js","../node_modules/efko-ui-library/es/theme/util/alias.js","../node_modules/efko-ui-library/es/theme/internal.js","../dataview/table/ui/filter/FilterTagCloud.vue","../dataview/table/ui/table-cell/TableCellStatus.vue","../dataview/card/ui/CardCellActions.vue","../dataview/card/TheCard.vue","../dataview/lazyload/LazyLoadTrigger.vue","../dataview/card/CardGrid.vue","../dataview/table/enum/table.ts","../dataview/ui/TheSelect.vue","../dataview/table/ui/filter/FilterDropdown.vue","../dataview/table/ui/table-cell/TableCellActions.vue","../dataview/table/ui/table-cell/TableBodyCell.vue","../dataview/table/TheTable.vue","../dataview/table/ui/ColumnSettingsDrawer.vue","../dataview/card/FilterInput.vue","../dataview/card/CardFiltersDrawer.vue","../dataview/card/CardFiltersModal.vue","../dataview/table/ui/ColumnSettingsDrawer.ts","../dataview/DataView.vue","../dataview/lazyload/LazyLoadContainer.vue"],"sourcesContent":["function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };\n","const SPLIT = '%';\nclass Entity {\n constructor(instanceId) {\n /** @private Internal cache map. Do not access this directly */\n this.cache = new Map();\n this.instanceId = instanceId;\n }\n get(keys) {\n return this.cache.get(Array.isArray(keys) ? keys.join(SPLIT) : keys) || null;\n }\n update(keys, valueFn) {\n const path = Array.isArray(keys) ? keys.join(SPLIT) : keys;\n const prevValue = this.cache.get(path);\n const nextValue = valueFn(prevValue);\n if (nextValue === null) {\n this.cache.delete(path);\n } else {\n this.cache.set(path, nextValue);\n }\n }\n}\nexport default Entity;","// https://stackoverflow.com/questions/46176165/ways-to-get-string-literal-type-of-array-values-without-enum-overhead\nexport const tuple = (...args) => args;\nexport const tupleNum = (...args) => args;\nexport const withInstall = comp => {\n const c = comp;\n c.install = function (app) {\n app.component(c.displayName || c.name, comp);\n };\n return comp;\n};\nexport function eventType() {\n return {\n type: [Function, Array]\n };\n}\nexport function objectType(defaultVal) {\n return {\n type: Object,\n default: defaultVal\n };\n}\nexport function booleanType(defaultVal) {\n return {\n type: Boolean,\n default: defaultVal\n };\n}\nexport function functionType(defaultVal) {\n return {\n type: Function,\n default: defaultVal\n };\n}\nexport function anyType(defaultVal, required) {\n const type = {\n validator: () => true,\n default: defaultVal\n };\n return required ? type : type;\n}\nexport function vNodeType() {\n return {\n validator: () => true\n };\n}\nexport function arrayType(defaultVal) {\n return {\n type: Array,\n default: defaultVal\n };\n}\nexport function stringType(defaultVal) {\n return {\n type: String,\n default: defaultVal\n };\n}\nexport function someType(types, defaultVal) {\n return types ? {\n type: types,\n default: defaultVal\n } : anyType(defaultVal);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { provide, defineComponent, unref, inject, watch, shallowRef, getCurrentInstance } from 'vue';\nimport CacheEntity from './Cache';\nimport { arrayType, booleanType, objectType, someType, stringType, withInstall } from '../type';\nexport const ATTR_TOKEN = 'data-token-hash';\nexport const ATTR_MARK = 'data-css-hash';\nexport const ATTR_CACHE_PATH = 'data-cache-path';\n// Mark css-in-js instance in style element\nexport const CSS_IN_JS_INSTANCE = '__cssinjs_instance__';\nexport function createCache() {\n const cssinjsInstanceId = Math.random().toString(12).slice(2);\n // Tricky SSR: Move all inline style to the head.\n // PS: We do not recommend tricky mode.\n if (typeof document !== 'undefined' && document.head && document.body) {\n const styles = document.body.querySelectorAll(`style[${ATTR_MARK}]`) || [];\n const {\n firstChild\n } = document.head;\n Array.from(styles).forEach(style => {\n style[CSS_IN_JS_INSTANCE] = style[CSS_IN_JS_INSTANCE] || cssinjsInstanceId;\n // Not force move if no head\n // Not force move if no head\n if (style[CSS_IN_JS_INSTANCE] === cssinjsInstanceId) {\n document.head.insertBefore(style, firstChild);\n }\n });\n // Deduplicate of moved styles\n const styleHash = {};\n Array.from(document.querySelectorAll(`style[${ATTR_MARK}]`)).forEach(style => {\n var _a;\n const hash = style.getAttribute(ATTR_MARK);\n if (styleHash[hash]) {\n if (style[CSS_IN_JS_INSTANCE] === cssinjsInstanceId) {\n (_a = style.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(style);\n }\n } else {\n styleHash[hash] = true;\n }\n });\n }\n return new CacheEntity(cssinjsInstanceId);\n}\nconst StyleContextKey = Symbol('StyleContextKey');\n// fix: https://github.com/vueComponent/ant-design-vue/issues/7023\nconst getCache = () => {\n var _a, _b, _c;\n const instance = getCurrentInstance();\n let cache;\n if (instance && instance.appContext) {\n const globalCache = (_c = (_b = (_a = instance.appContext) === null || _a === void 0 ? void 0 : _a.config) === null || _b === void 0 ? void 0 : _b.globalProperties) === null || _c === void 0 ? void 0 : _c.__ANTDV_CSSINJS_CACHE__;\n if (globalCache) {\n cache = globalCache;\n } else {\n cache = createCache();\n if (instance.appContext.config.globalProperties) {\n instance.appContext.config.globalProperties.__ANTDV_CSSINJS_CACHE__ = cache;\n }\n }\n } else {\n cache = createCache();\n }\n return cache;\n};\nconst defaultStyleContext = {\n cache: createCache(),\n defaultCache: true,\n hashPriority: 'low'\n};\n// fix: https://github.com/vueComponent/ant-design-vue/issues/6912\nexport const useStyleInject = () => {\n const cache = getCache();\n return inject(StyleContextKey, shallowRef(_extends(_extends({}, defaultStyleContext), {\n cache\n })));\n};\nexport const useStyleProvider = props => {\n const parentContext = useStyleInject();\n const context = shallowRef(_extends(_extends({}, defaultStyleContext), {\n cache: createCache()\n }));\n watch([() => unref(props), parentContext], () => {\n const mergedContext = _extends({}, parentContext.value);\n const propsValue = unref(props);\n Object.keys(propsValue).forEach(key => {\n const value = propsValue[key];\n if (propsValue[key] !== undefined) {\n mergedContext[key] = value;\n }\n });\n const {\n cache\n } = propsValue;\n mergedContext.cache = mergedContext.cache || createCache();\n mergedContext.defaultCache = !cache && parentContext.value.defaultCache;\n context.value = mergedContext;\n }, {\n immediate: true\n });\n provide(StyleContextKey, context);\n return context;\n};\nexport const styleProviderProps = () => ({\n autoClear: booleanType(),\n /** @private Test only. Not work in production. */\n mock: stringType(),\n /**\n * Only set when you need ssr to extract style on you own.\n * If not provided, it will auto create <style /> on the end of Provider in server side.\n */\n cache: objectType(),\n /** Tell children that this context is default generated context */\n defaultCache: booleanType(),\n /** Use `:where` selector to reduce hashId css selector priority */\n hashPriority: stringType(),\n /** Tell cssinjs where to inject style in */\n container: someType(),\n /** Component wil render inline `<style />` for fallback in SSR. Not recommend. */\n ssrInline: booleanType(),\n /** Transform css before inject in document. Please note that `transformers` do not support dynamic update */\n transformers: arrayType(),\n /**\n * Linters to lint css before inject in document.\n * Styles will be linted after transforming.\n * Please note that `linters` do not support dynamic update.\n */\n linters: arrayType()\n});\nexport const StyleProvider = withInstall(defineComponent({\n name: 'AStyleProvider',\n inheritAttrs: false,\n props: styleProviderProps(),\n setup(props, {\n slots\n }) {\n useStyleProvider(props);\n return () => {\n var _a;\n return (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots);\n };\n }\n}));\nexport default {\n useStyleInject,\n useStyleProvider,\n StyleProvider\n};","function useProdHMR() {\n return false;\n}\nlet webpackHMR = false;\nfunction useDevHMR() {\n return webpackHMR;\n}\nexport default process.env.NODE_ENV === 'production' ? useProdHMR : useDevHMR;\n// Webpack `module.hot.accept` do not support any deps update trigger\n// We have to hack handler to force mark as HRM\nif (process.env.NODE_ENV !== 'production' && typeof module !== 'undefined' && module && module.hot && typeof window !== 'undefined') {\n const win = window;\n if (typeof win.webpackHotUpdate === 'function') {\n const originWebpackHotUpdate = win.webpackHotUpdate;\n win.webpackHotUpdate = (...args) => {\n webpackHMR = true;\n setTimeout(() => {\n webpackHMR = false;\n }, 0);\n return originWebpackHotUpdate(...args);\n };\n }\n}","import { useStyleInject } from '../StyleContext';\nimport useHMR from './useHMR';\nimport { onBeforeUnmount, watch, watchEffect, shallowRef } from 'vue';\nexport default function useClientCache(prefix, keyPath, cacheFn, onCacheRemove) {\n const styleContext = useStyleInject();\n const fullPathStr = shallowRef('');\n const res = shallowRef();\n watchEffect(() => {\n fullPathStr.value = [prefix, ...keyPath.value].join('%');\n });\n const HMRUpdate = useHMR();\n const clearCache = pathStr => {\n styleContext.value.cache.update(pathStr, prevCache => {\n const [times = 0, cache] = prevCache || [];\n const nextCount = times - 1;\n if (nextCount === 0) {\n onCacheRemove === null || onCacheRemove === void 0 ? void 0 : onCacheRemove(cache, false);\n return null;\n }\n return [times - 1, cache];\n });\n };\n watch(fullPathStr, (newStr, oldStr) => {\n if (oldStr) clearCache(oldStr);\n // Create cache\n styleContext.value.cache.update(newStr, prevCache => {\n const [times = 0, cache] = prevCache || [];\n // HMR should always ignore cache since developer may change it\n let tmpCache = cache;\n if (process.env.NODE_ENV !== 'production' && cache && HMRUpdate) {\n onCacheRemove === null || onCacheRemove === void 0 ? void 0 : onCacheRemove(tmpCache, HMRUpdate);\n tmpCache = null;\n }\n const mergedCache = tmpCache || cacheFn();\n return [times + 1, mergedCache];\n });\n res.value = styleContext.value.cache.get(fullPathStr.value)[1];\n }, {\n immediate: true\n });\n onBeforeUnmount(() => {\n clearCache(fullPathStr.value);\n });\n return res;\n}","export function sameDerivativeOption(left, right) {\n if (left.length !== right.length) {\n return false;\n }\n for (let i = 0; i < left.length; i++) {\n if (left[i] !== right[i]) {\n return false;\n }\n }\n return true;\n}\nclass ThemeCache {\n constructor() {\n this.cache = new Map();\n this.keys = [];\n this.cacheCallTimes = 0;\n }\n size() {\n return this.keys.length;\n }\n internalGet(derivativeOption, updateCallTimes = false) {\n let cache = {\n map: this.cache\n };\n derivativeOption.forEach(derivative => {\n var _a;\n if (!cache) {\n cache = undefined;\n } else {\n cache = (_a = cache === null || cache === void 0 ? void 0 : cache.map) === null || _a === void 0 ? void 0 : _a.get(derivative);\n }\n });\n if ((cache === null || cache === void 0 ? void 0 : cache.value) && updateCallTimes) {\n cache.value[1] = this.cacheCallTimes++;\n }\n return cache === null || cache === void 0 ? void 0 : cache.value;\n }\n get(derivativeOption) {\n var _a;\n return (_a = this.internalGet(derivativeOption, true)) === null || _a === void 0 ? void 0 : _a[0];\n }\n has(derivativeOption) {\n return !!this.internalGet(derivativeOption);\n }\n set(derivativeOption, value) {\n // New cache\n if (!this.has(derivativeOption)) {\n if (this.size() + 1 > ThemeCache.MAX_CACHE_SIZE + ThemeCache.MAX_CACHE_OFFSET) {\n const [targetKey] = this.keys.reduce((result, key) => {\n const [, callTimes] = result;\n if (this.internalGet(key)[1] < callTimes) {\n return [key, this.internalGet(key)[1]];\n }\n return result;\n }, [this.keys[0], this.cacheCallTimes]);\n this.delete(targetKey);\n }\n this.keys.push(derivativeOption);\n }\n let cache = this.cache;\n derivativeOption.forEach((derivative, index) => {\n if (index === derivativeOption.length - 1) {\n cache.set(derivative, {\n value: [value, this.cacheCallTimes++]\n });\n } else {\n const cacheValue = cache.get(derivative);\n if (!cacheValue) {\n cache.set(derivative, {\n map: new Map()\n });\n } else if (!cacheValue.map) {\n cacheValue.map = new Map();\n }\n cache = cache.get(derivative).map;\n }\n });\n }\n deleteByPath(currentCache, derivatives) {\n var _a;\n const cache = currentCache.get(derivatives[0]);\n if (derivatives.length === 1) {\n if (!cache.map) {\n currentCache.delete(derivatives[0]);\n } else {\n currentCache.set(derivatives[0], {\n map: cache.map\n });\n }\n return (_a = cache.value) === null || _a === void 0 ? void 0 : _a[0];\n }\n const result = this.deleteByPath(cache.map, derivatives.slice(1));\n if ((!cache.map || cache.map.size === 0) && !cache.value) {\n currentCache.delete(derivatives[0]);\n }\n return result;\n }\n delete(derivativeOption) {\n // If cache exists\n if (this.has(derivativeOption)) {\n this.keys = this.keys.filter(item => !sameDerivativeOption(item, derivativeOption));\n return this.deleteByPath(this.cache, derivativeOption);\n }\n return undefined;\n }\n}\nThemeCache.MAX_CACHE_SIZE = 20;\nThemeCache.MAX_CACHE_OFFSET = 5;\nexport default ThemeCache;","/* eslint-disable no-console */\nlet warned = {};\nexport function warning(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.error(`Warning: ${message}`);\n }\n}\nexport function note(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.warn(`Note: ${message}`);\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nexport default warningOnce;\n/* eslint-enable */","import vcWarning, { resetWarned } from '../vc-util/warning';\nexport { resetWarned };\nexport function noop() {}\n// eslint-disable-next-line import/no-mutable-exports\nlet warning = noop;\nif (process.env.NODE_ENV !== 'production') {\n warning = (valid, component, message) => {\n vcWarning(valid, `[ant-design-vue: ${component}] ${message}`);\n // StrictMode will inject console which will not throw warning in React 17.\n if (process.env.NODE_ENV === 'test') {\n resetWarned();\n }\n };\n}\nexport default warning;","import warning from '../../warning';\nlet uuid = 0;\n/**\n * Theme with algorithms to derive tokens from design tokens.\n * Use `createTheme` first which will help to manage the theme instance cache.\n */\nexport default class Theme {\n constructor(derivatives) {\n this.derivatives = Array.isArray(derivatives) ? derivatives : [derivatives];\n this.id = uuid;\n if (derivatives.length === 0) {\n warning(derivatives.length > 0, '[Efko дизайн Vue CSS-in-JS] Theme should have at least one derivative function.');\n }\n uuid += 1;\n }\n getDerivativeToken(token) {\n return this.derivatives.reduce((result, derivative) => derivative(token, result), undefined);\n }\n}","import ThemeCache from './ThemeCache';\nimport Theme from './Theme';\nconst cacheThemes = new ThemeCache();\n/**\n * Same as new Theme, but will always return same one if `derivative` not changed.\n */\nexport default function createTheme(derivatives) {\n const derivativeArr = Array.isArray(derivatives) ? derivatives : [derivatives];\n // Create new theme if not exist\n if (!cacheThemes.has(derivativeArr)) {\n cacheThemes.set(derivativeArr, new Theme(derivativeArr));\n }\n // Get theme from cache and return\n return cacheThemes.get(derivativeArr);\n}","import hash from '@emotion/hash';\nimport { removeCSS, updateCSS } from '../../vc-util/Dom/dynamicCSS';\nimport canUseDom from '../canUseDom';\nimport { Theme } from './theme';\n// Create a cache here to avoid always loop generate\nconst flattenTokenCache = new WeakMap();\nexport function flattenToken(token) {\n let str = flattenTokenCache.get(token) || '';\n if (!str) {\n Object.keys(token).forEach(key => {\n const value = token[key];\n str += key;\n if (value instanceof Theme) {\n str += value.id;\n } else if (value && typeof value === 'object') {\n str += flattenToken(value);\n } else {\n str += value;\n }\n });\n // Put in cache\n flattenTokenCache.set(token, str);\n }\n return str;\n}\n/**\n * Convert derivative token to key string\n */\nexport function token2key(token, salt) {\n return hash(`${salt}_${flattenToken(token)}`);\n}\nconst randomSelectorKey = `random-${Date.now()}-${Math.random()}`.replace(/\\./g, '');\n// Magic `content` for detect selector support\nconst checkContent = '_bAmBoO_';\nfunction supportSelector(styleStr, handleElement, supportCheck) {\n var _a, _b;\n if (canUseDom()) {\n updateCSS(styleStr, randomSelectorKey);\n const ele = document.createElement('div');\n ele.style.position = 'fixed';\n ele.style.left = '0';\n ele.style.top = '0';\n handleElement === null || handleElement === void 0 ? void 0 : handleElement(ele);\n document.body.appendChild(ele);\n if (process.env.NODE_ENV !== 'production') {\n ele.innerHTML = 'Test';\n ele.style.zIndex = '9999999';\n }\n const support = supportCheck ? supportCheck(ele) : (_a = getComputedStyle(ele).content) === null || _a === void 0 ? void 0 : _a.includes(checkContent);\n (_b = ele.parentNode) === null || _b === void 0 ? void 0 : _b.removeChild(ele);\n removeCSS(randomSelectorKey);\n return support;\n }\n return false;\n}\nlet canLayer = undefined;\nexport function supportLayer() {\n if (canLayer === undefined) {\n canLayer = supportSelector(`@layer ${randomSelectorKey} { .${randomSelectorKey} { content: \"${checkContent}\"!important; } }`, ele => {\n ele.className = randomSelectorKey;\n });\n }\n return canLayer;\n}\nlet canWhere = undefined;\nexport function supportWhere() {\n if (canWhere === undefined) {\n canWhere = supportSelector(`:where(.${randomSelectorKey}) { content: \"${checkContent}\"!important; }`, ele => {\n ele.className = randomSelectorKey;\n });\n }\n return canWhere;\n}\nlet canLogic = undefined;\nexport function supportLogicProps() {\n if (canLogic === undefined) {\n canLogic = supportSelector(`.${randomSelectorKey} { inset-block: 93px !important; }`, ele => {\n ele.className = randomSelectorKey;\n }, ele => getComputedStyle(ele).bottom === '93px');\n }\n return canLogic;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport hash from '@emotion/hash';\nimport { ATTR_TOKEN, CSS_IN_JS_INSTANCE, useStyleInject } from '../StyleContext';\nimport useGlobalCache from './useGlobalCache';\nimport { flattenToken, token2key } from '../util';\nimport { ref, computed } from 'vue';\nconst EMPTY_OVERRIDE = {};\nconst isProduction = process.env.NODE_ENV === 'production';\n// nuxt generate when NODE_ENV is prerender\nconst isPrerender = process.env.NODE_ENV === 'prerender';\n// Generate different prefix to make user selector break in production env.\n// This helps developer not to do style override directly on the hash id.\nconst hashPrefix = !isProduction && !isPrerender ? 'css-dev-only-do-not-override' : 'css';\nconst tokenKeys = new Map();\nfunction recordCleanToken(tokenKey) {\n tokenKeys.set(tokenKey, (tokenKeys.get(tokenKey) || 0) + 1);\n}\nfunction removeStyleTags(key, instanceId) {\n if (typeof document !== 'undefined') {\n const styles = document.querySelectorAll(`style[${ATTR_TOKEN}=\"${key}\"]`);\n styles.forEach(style => {\n var _a;\n if (style[CSS_IN_JS_INSTANCE] === instanceId) {\n (_a = style.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(style);\n }\n });\n }\n}\nconst TOKEN_THRESHOLD = 0;\n// Remove will check current keys first\nfunction cleanTokenStyle(tokenKey, instanceId) {\n tokenKeys.set(tokenKey, (tokenKeys.get(tokenKey) || 0) - 1);\n const tokenKeyList = Array.from(tokenKeys.keys());\n const cleanableKeyList = tokenKeyList.filter(key => {\n const count = tokenKeys.get(key) || 0;\n return count <= 0;\n });\n // Should keep tokens under threshold for not to insert style too often\n if (tokenKeyList.length - cleanableKeyList.length > TOKEN_THRESHOLD) {\n cleanableKeyList.forEach(key => {\n removeStyleTags(key, instanceId);\n tokenKeys.delete(key);\n });\n }\n}\nexport const getComputedToken = (originToken, overrideToken, theme, format) => {\n const derivativeToken = theme.getDerivativeToken(originToken);\n // Merge with override\n let mergedDerivativeToken = _extends(_extends({}, derivativeToken), overrideToken);\n // Format if needed\n if (format) {\n mergedDerivativeToken = format(mergedDerivativeToken);\n }\n return mergedDerivativeToken;\n};\n/**\n * Cache theme derivative token as global shared one\n * @param theme Theme entity\n * @param tokens List of tokens, used for cache. Please do not dynamic generate object directly\n * @param option Additional config\n * @returns Call Theme.getDerivativeToken(tokenObject) to get token\n */\nexport default function useCacheToken(theme, tokens, option = ref({})) {\n const style = useStyleInject();\n // Basic - We do basic cache here\n const mergedToken = computed(() => _extends({}, ...tokens.value));\n const tokenStr = computed(() => flattenToken(mergedToken.value));\n const overrideTokenStr = computed(() => flattenToken(option.value.override || EMPTY_OVERRIDE));\n const cachedToken = useGlobalCache('token', computed(() => [option.value.salt || '', theme.value.id, tokenStr.value, overrideTokenStr.value]), () => {\n const {\n salt = '',\n override = EMPTY_OVERRIDE,\n formatToken,\n getComputedToken: compute\n } = option.value;\n const mergedDerivativeToken = compute ? compute(mergedToken.value, override, theme.value) : getComputedToken(mergedToken.value, override, theme.value, formatToken);\n // Optimize for `useStyleRegister` performance\n const tokenKey = token2key(mergedDerivativeToken, salt);\n mergedDerivativeToken._tokenKey = tokenKey;\n recordCleanToken(tokenKey);\n const hashId = `${hashPrefix}-${hash(tokenKey)}`;\n mergedDerivativeToken._hashId = hashId; // Not used\n return [mergedDerivativeToken, hashId];\n }, cache => {\n var _a;\n // Remove token will remove all related style\n cleanTokenStyle(cache[0]._tokenKey, (_a = style.value) === null || _a === void 0 ? void 0 : _a.cache.instanceId);\n });\n return cachedToken;\n}","export default '1.7.0';","/**\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 { inputToRGB, rgbToHex, rgbToHsv } from '@ctrl/tinycolor';\n\nvar hueStep = 2; // 色相阶梯\n\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\n\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\n\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\n\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\n\nvar lightColorCount = 5; // 浅色数量,主色上\n\nvar darkColorCount = 4; // 深色数量,主色下\n// 暗色主题颜色映射关系表\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}]; // Wrapper function ported from TinyColor.prototype.toHsv\n// Keep it here because of `hsv.h * 360`\n\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} // Wrapper function ported from TinyColor.prototype.toHexString\n// Keep it here because of the prefix `#`\n\n\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} // 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.\n\n\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}\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\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n\n return hue;\n}\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\n var saturation;\n\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\n if (saturation > 1) {\n saturation = 1;\n } // 第一格的 s 限制在 0.06-0.1 之间\n\n\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n\n return Number(saturation.toFixed(2));\n}\n\nfunction getValue(hsv, i, light) {\n var value;\n\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n\n if (value > 1) {\n value = 1;\n }\n\n return Number(value.toFixed(2));\n}\n\nfunction generate(color) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var patterns = [];\n var pColor = inputToRGB(color);\n\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\n patterns.push(toHex(pColor));\n\n for (var _i = 1; _i <= darkColorCount; _i += 1) {\n var _hsv = toHsv(pColor);\n\n var _colorString = toHex(inputToRGB({\n h: getHue(_hsv, _i),\n s: getSaturation(_hsv, _i),\n v: getValue(_hsv, _i)\n }));\n\n patterns.push(_colorString);\n } // dark theme patterns\n\n\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\n return patterns;\n}\n\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: '#1890FF',\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]; // dark presetPalettes\n\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;\n\nexport { blue, cyan, geekblue, generate, gold, green, grey, lime, magenta, orange, presetDarkPalettes, presetPalettes, presetPrimaryColors, purple, red, volcano, yellow };\n","const genControlHeight = token => {\n const {\n controlHeight\n } = token;\n return {\n controlHeightSM: controlHeight * 0.75,\n controlHeightXS: controlHeight * 0.5,\n controlHeightLG: controlHeight * 1.25\n };\n};\nexport default genControlHeight;","export default function genSizeMapToken(token) {\n const {\n sizeUnit,\n sizeStep\n } = token;\n return {\n sizeXXL: sizeUnit * (sizeStep + 8),\n // 48\n sizeXL: sizeUnit * (sizeStep + 4),\n // 32\n sizeLG: sizeUnit * (sizeStep + 2),\n // 24\n sizeMD: sizeUnit * (sizeStep + 1),\n // 20\n sizeMS: sizeUnit * sizeStep,\n // 16\n size: sizeUnit * sizeStep,\n // 16\n sizeSM: sizeUnit * (sizeStep - 1),\n // 12\n sizeXS: sizeUnit * (sizeStep - 2),\n // 8\n sizeXXS: sizeUnit * (sizeStep - 3) // 4\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport const defaultPresetColors = {\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};\nconst seedToken = _extends(_extends({}, defaultPresetColors), {\n // Color\n colorPrimary: '#1677ff',\n colorSuccess: '#52c41a',\n colorWarning: '#faad14',\n colorError: '#ff4d4f',\n colorInfo: '#1677ff',\n colorTextBase: '',\n colorBgBase: '',\n // Font\n fontFamily: `-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,\n'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',\n'Noto Color Emoji'`,\n fontSize: 14,\n // Line\n lineWidth: 1,\n lineType: 'solid',\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 // Radius\n borderRadius: 6,\n // Size\n sizeUnit: 4,\n sizeStep: 4,\n sizePopupArrow: 16,\n // Control Base\n controlHeight: 32,\n // zIndex\n zIndexBase: 0,\n zIndexPopupBase: 1000,\n // Image\n opacityImage: 1,\n // Wireframe\n wireframe: false\n});\nexport default seedToken;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { TinyColor } from '@ctrl/tinycolor';\nexport default function genColorMapToken(seed, {\n generateColorPalettes,\n generateNeutralColorPalettes\n}) {\n const {\n colorSuccess: colorSuccessBase,\n colorWarning: colorWarningBase,\n colorError: colorErrorBase,\n colorInfo: colorInfoBase,\n colorPrimary: colorPrimaryBase,\n colorBgBase,\n colorTextBase\n } = seed;\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(colorBgBase, colorTextBase);\n return _extends(_extends({}, neutralColors), {\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 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 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 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 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 colorBgMask: new TinyColor('#000').setAlpha(0.45).toRgbString(),\n colorWhite: '#fff'\n });\n}","const genRadius = radiusBase => {\n let radiusLG = radiusBase;\n let radiusSM = radiusBase;\n let radiusXS = radiusBase;\n let radiusOuter = radiusBase;\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 // 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 // radiusXS\n if (radiusBase < 6 && radiusBase >= 2) {\n radiusXS = 1;\n } else if (radiusBase >= 6) {\n radiusXS = 2;\n }\n // radiusOuter\n if (radiusBase > 4 && radiusBase < 8) {\n radiusOuter = 4;\n } else if (radiusBase >= 8) {\n radiusOuter = 6;\n }\n return {\n borderRadius: radiusBase > 16 ? 16 : radiusBase,\n borderRadiusXS: radiusXS,\n borderRadiusSM: radiusSM,\n borderRadiusLG: radiusLG,\n borderRadiusOuter: radiusOuter\n };\n};\nexport default genRadius;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport genRadius from './genRadius';\nexport default function genCommonMapToken(token) {\n const {\n motionUnit,\n motionBase,\n borderRadius,\n lineWidth\n } = token;\n return _extends({\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 // line\n lineWidthBold: lineWidth + 1\n }, genRadius(borderRadius));\n}","import { TinyColor } from '@ctrl/tinycolor';\nexport const getAlphaColor = (baseColor, alpha) => new TinyColor(baseColor).setAlpha(alpha).toRgbString();\nexport const getSolidColor = (baseColor, brightness) => {\n const instance = new TinyColor(baseColor);\n return instance.darken(brightness).toHexString();\n};","import { generate } from '@ant-design/colors';\nimport { getAlphaColor, getSolidColor } from './colorAlgorithm';\nexport const generateColorPalettes = baseColor => {\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};\nexport const generateNeutralColorPalettes = (bgBaseColor, textBaseColor) => {\n const colorBgBase = bgBaseColor || '#fff';\n const colorTextBase = textBaseColor || '#000';\n return {\n colorBgBase,\n colorTextBase,\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 colorFill: getAlphaColor(colorTextBase, 0.15),\n colorFillSecondary: getAlphaColor(colorTextBase, 0.06),\n colorFillTertiary: getAlphaColor(colorTextBase, 0.04),\n colorFillQuaternary: getAlphaColor(colorTextBase, 0.02),\n colorBgLayout: getSolidColor(colorBgBase, 4),\n colorBgContainer: getSolidColor(colorBgBase, 0),\n colorBgElevated: getSolidColor(colorBgBase, 0),\n colorBgSpotlight: getAlphaColor(colorTextBase, 0.85),\n colorBorder: getSolidColor(colorBgBase, 15),\n colorBorderSecondary: getSolidColor(colorBgBase, 6)\n };\n};","// https://zhuanlan.zhihu.com/p/32746810\nexport default function getFontSizes(base) {\n const fontSizes = new Array(10).fill(null).map((_, index) => {\n const i = index - 1;\n const baseSize = base * Math.pow(2.71828, i / 5);\n const intSize = index > 1 ? Math.floor(baseSize) : Math.ceil(baseSize);\n // Convert to even\n return Math.floor(intSize / 2) * 2;\n });\n fontSizes[1] = base;\n return fontSizes.map(size => {\n const height = size + 8;\n return {\n size,\n lineHeight: height / size\n };\n });\n}","import genFontSizes from './genFontSizes';\nconst genFontMapToken = fontSize => {\n const fontSizePairs = genFontSizes(fontSize);\n const fontSizes = fontSizePairs.map(pair => pair.size);\n const lineHeights = fontSizePairs.map(pair => pair.lineHeight);\n return {\n fontSizeSM: fontSizes[0],\n fontSize: fontSizes[1],\n fontSizeLG: fontSizes[2],\n fontSizeXL: fontSizes[3],\n fontSizeHeading1: fontSizes[6],\n fontSizeHeading2: fontSizes[5],\n fontSizeHeading3: fontSizes[4],\n fontSizeHeading4: fontSizes[3],\n fontSizeHeading5: fontSizes[2],\n lineHeight: lineHeights[1],\n lineHeightLG: lineHeights[2],\n lineHeightSM: lineHeights[0],\n lineHeightHeading1: lineHeights[6],\n lineHeightHeading2: lineHeights[5],\n lineHeightHeading3: lineHeights[4],\n lineHeightHeading4: lineHeights[3],\n lineHeightHeading5: lineHeights[2]\n };\n};\nexport default genFontMapToken;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { generate } from '@ant-design/colors';\nimport genControlHeight from '../shared/genControlHeight';\nimport genSizeMapToken from '../shared/genSizeMapToken';\nimport { defaultPresetColors } from '../seed';\nimport genColorMapToken from '../shared/genColorMapToken';\nimport genCommonMapToken from '../shared/genCommonMapToken';\nimport { generateColorPalettes, generateNeutralColorPalettes } from './colors';\nimport genFontMapToken from '../shared/genFontMapToken';\nexport default function derivative(token) {\n const colorPalettes = Object.keys(defaultPresetColors).map(colorKey => {\n const colors = generate(token[colorKey]);\n return new Array(10).fill(1).reduce((prev, _, i) => {\n prev[`${colorKey}-${i + 1}`] = colors[i];\n return prev;\n }, {});\n }).reduce((prev, cur) => {\n prev = _extends(_extends({}, prev), cur);\n return prev;\n }, {});\n return _extends(_extends(_extends(_extends(_extends(_extends(_extends({}, token), colorPalettes), genColorMapToken(token, {\n generateColorPalettes,\n generateNeutralColorPalettes\n })), genFontMapToken(token.fontSize)), genSizeMapToken(token)), genControlHeight(token)), genCommonMapToken(token));\n}","import { TinyColor } from '@ctrl/tinycolor';\nfunction isStableColor(color) {\n return color >= 0 && color <= 255;\n}\nfunction getAlphaColor(frontColor, backgroundColor) {\n const {\n r: fR,\n g: fG,\n b: fB,\n a: originAlpha\n } = new TinyColor(frontColor).toRgb();\n if (originAlpha < 1) {\n return frontColor;\n }\n const {\n r: bR,\n g: bG,\n b: bB\n } = new TinyColor(backgroundColor).toRgb();\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({\n r,\n g,\n b,\n a: Math.round(fA * 100) / 100\n }).toRgbString();\n }\n }\n // fallback\n /* istanbul ignore next */\n return new TinyColor({\n r: fR,\n g: fG,\n b: fB,\n a: 1\n }).toRgbString();\n}\nexport default getAlphaColor;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { TinyColor } from '@ctrl/tinycolor';\nimport getAlphaColor from './getAlphaColor';\nimport seedToken from '../themes/seed';\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) {\n const {\n override\n } = derivativeToken,\n restToken = __rest(derivativeToken, [\"override\"]);\n const overrideTokens = _extends({}, override);\n Object.keys(seedToken).forEach(token => {\n delete overrideTokens[token];\n });\n const mergedToken = _extends(_extends({}, restToken), overrideTokens);\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 const screenXXXL = 2000;\n // Generate alias token\n const aliasToken = _extends(_extends(_extends({}, mergedToken), {\n colorLink: mergedToken.colorInfoText,\n colorLinkHover: mergedToken.colorInfoHover,\n colorLinkActive: mergedToken.colorInfoActive,\n // ============== Background ============== //\n colorFillContent: mergedToken.colorFillSecondary,\n colorFillContentHover: mergedToken.colorFill,\n colorFillAlter: mergedToken.colorFillQuaternary,\n colorBgContainerDisabled: mergedToken.colorFillTertiary,\n // ============== Split ============== //\n colorBorderBg: mergedToken.colorBgContainer,\n colorSplit: getAlphaColor(mergedToken.colorBorderSecondary, mergedToken.colorBgContainer),\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 colorIcon: mergedToken.colorTextTertiary,\n colorIconHover: mergedToken.colorText,\n colorErrorOutline: getAlphaColor(mergedToken.colorErrorBg, mergedToken.colorBgContainer),\n colorWarningOutline: getAlphaColor(mergedToken.colorWarningBg, mergedToken.colorBgContainer),\n /** Custom colors (efko) */\n colorLogo: mergedToken.colorLogo,\n colorSelectedMenu: mergedToken.colorSelectedMenu,\n mainBgColor: mergedToken.mainBgColor,\n // Font\n fontSizeIcon: mergedToken.fontSizeSM,\n // Control\n lineWidth: mergedToken.lineWidth,\n controlOutlineWidth: mergedToken.lineWidth * 2,\n // Checkbox size and expand icon size\n controlInteractiveSize: mergedToken.controlHeight / 2,\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 lineType: mergedToken.lineType,\n borderRadius: mergedToken.borderRadius,\n borderRadiusXS: mergedToken.borderRadiusXS,\n borderRadiusSM: mergedToken.borderRadiusSM,\n borderRadiusLG: mergedToken.borderRadiusLG,\n fontWeightStrong: 600,\n opacityLoading: 0.65,\n linkDecoration: 'none',\n linkHoverDecoration: 'none',\n linkFocusDecoration: 'none',\n controlPaddingHorizontal: 12,\n controlPaddingHorizontalSM: 8,\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 paddingContentHorizontalLG: mergedToken.sizeLG,\n paddingContentVerticalLG: mergedToken.sizeMS,\n paddingContentHorizontal: mergedToken.sizeMS,\n paddingContentVertical: mergedToken.sizeSM,\n paddingContentHorizontalSM: mergedToken.size,\n paddingContentVerticalSM: mergedToken.sizeXS,\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 boxShadow: `\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 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 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 screenXXLMax: screenXXXL - 1,\n screenXXXL,\n screenXXXLMin: screenXXXL,\n // FIXME: component box-shadow, should be removed\n boxShadowPopoverArrow: '3px 3px 7px rgba(0, 0, 0, 0.1)',\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 }), overrideTokens);\n return aliasToken;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createTheme, useCacheToken, useStyleRegister } from '../_util/cssinjs';\nimport version from '../version';\nimport { PresetColors } from './interface';\nimport defaultDerivative from './themes/default';\nimport defaultSeedToken from './themes/seed';\nimport formatToken from './util/alias';\nimport genComponentStyleHook from './util/genComponentStyleHook';\nimport statisticToken, { merge as mergeToken, statistic } from './util/statistic';\nimport { objectType } from '../_util/type';\nimport { triggerRef, unref, defineComponent, provide, computed, inject, watch, shallowRef } from 'vue';\nconst defaultTheme = createTheme(defaultDerivative);\nexport {\n// colors\nPresetColors,\n// Statistic\nstatistic, statisticToken, mergeToken,\n// hooks\nuseStyleRegister, genComponentStyleHook };\n// ================================ Context =================================\n// To ensure snapshot stable. We disable hashed in test env.\nexport const defaultConfig = {\n token: defaultSeedToken,\n hashed: true\n};\n//defaultConfig\nconst DesignTokenContextKey = Symbol('DesignTokenContext');\nexport const globalDesignTokenApi = shallowRef();\nexport const useDesignTokenProvider = value => {\n provide(DesignTokenContextKey, value);\n watch(value, () => {\n globalDesignTokenApi.value = unref(value);\n triggerRef(globalDesignTokenApi);\n }, {\n immediate: true,\n deep: true\n });\n};\nexport const useDesignTokenInject = () => {\n return inject(DesignTokenContextKey, computed(() => globalDesignTokenApi.value || defaultConfig));\n};\nexport const DesignTokenProvider = defineComponent({\n props: {\n value: objectType()\n },\n setup(props, {\n slots\n }) {\n useDesignTokenProvider(computed(() => props.value));\n return () => {\n var _a;\n return (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots);\n };\n }\n});\n// ================================== Hook ==================================\nexport function useToken() {\n const designTokenContext = inject(DesignTokenContextKey, computed(() => globalDesignTokenApi.value || defaultConfig));\n const salt = computed(() => `${version}-${designTokenContext.value.hashed || ''}`);\n const mergedTheme = computed(() => designTokenContext.value.theme || defaultTheme);\n const cacheToken = useCacheToken(mergedTheme, computed(() => [defaultSeedToken, designTokenContext.value.token]), computed(() => ({\n salt: salt.value,\n override: _extends({\n override: designTokenContext.value.token\n }, designTokenContext.value.components),\n formatToken\n })));\n return [mergedTheme, computed(() => cacheToken.value[0]), computed(() => designTokenContext.value.hashed ? cacheToken.value[1] : '')];\n}","<template>\n <div class=\"flex flex-wrap tag-cloud\">\n <div class=\"flex flex-wrap\">\n <template\n v-for=\"[filterKey, filterValue] in Object.entries(filters)\"\n :key=\"filterKey\"\n >\n <a-tag\n v-for=\"value in parseFilterValues(filterValue)\"\n :key=\"value.key\"\n class=\"filter-tag\"\n :closable=\"true\"\n :style=\"tagStyle\"\n @close=\"() => removeFilter(filterKey, filterValue, value.original)\"\n >\n {{ value.label }}\n </a-tag>\n </template>\n </div>\n <a-button v-if=\"hasFilters\" type=\"link\" @click=\"clearAllFilters\">\n Очистить все\n </a-button>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from 'vue';\nimport { useToken } from 'efko-ui-library/es/theme/internal';\nimport type {\n FilterItem,\n FilterValue,\n} from '../../interface/table.d';\n\nconst props = defineProps<{\n filters: Partial<Record<string, FilterValue>>,\n}>();\n\nconst emit = defineEmits<{(event: 'update:filters', value: Partial<Record<string, FilterValue>>): void,\n (\n event: 'remove',\n key: string,\n filterValue: FilterValue | undefined,\n valueToRemove: FilterItem\n ): void,\n (event: 'clear'): void,\n}>();\n\nconst [, token] = useToken();\n\nconst tagStyle = computed(() => {\n console.log(token);\n return {\n color: token.value.colorSelectedMenu,\n borderColor: token.value.colorBorderSecondary,\n backgroundColor: token.value.mainBgColor || token.value.colorPrimaryBg,\n }\n});\n\nconst hasValidFilter = (value: FilterValue | undefined): boolean => {\n if (value === null || value === undefined) {\n return false;\n }\n if (Array.isArray(value)) {\n return value.length > 0;\n }\n return Boolean(value);\n};\n\nconst hasFilters = computed(() => Object.values(props.filters).some(hasValidFilter));\n\nfunction hasNameField(obj: unknown): obj is { name: string } {\n return (\n typeof obj === 'object'\n && obj !== null\n && 'name' in obj\n && typeof (obj as { name: unknown }).name === 'string'\n );\n}\n\nconst formatFilterItem = (\n item: FilterItem,\n): { key: string, label: string, original: FilterItem } => {\n if (typeof item === 'string') {\n return {\n key: item,\n label: item,\n original: item,\n };\n }\n if (Array.isArray(item)) {\n if (\n item.length === 2\n && typeof item[0] === 'string'\n && typeof item[1] === 'string'\n ) {\n const intervalLabel = `${item[0]} - ${item[1]}`;\n return {\n key: intervalLabel,\n label: intervalLabel,\n original: item,\n };\n }\n const joinedLabel = item.join(', ');\n return {\n key: joinedLabel,\n label: joinedLabel,\n original: item,\n };\n }\n\n if (hasNameField(item)) {\n const nameLabel = item.name;\n return {\n key: nameLabel,\n label: nameLabel,\n original: item,\n };\n }\n const jsonLabel = JSON.stringify(item);\n return {\n key: jsonLabel,\n label: jsonLabel,\n original: item,\n };\n};\n\nconst parseFilterValues = (\n value: FilterValue | undefined,\n): { key: string, label: string, original: FilterItem }[] => {\n if (value === undefined || value === null) {\n return [];\n }\n if (Array.isArray(value)) {\n return value.map((item: FilterItem) => formatFilterItem(item));\n }\n return [\n formatFilterItem(value),\n ];\n};\n\nconst isFilterItemEqual = (a: FilterItem, b: FilterItem): boolean => {\n if (typeof a === 'string' || typeof b === 'string') {\n return a === b;\n }\n return JSON.stringify(a) === JSON.stringify(b);\n};\n\nconst removeFilter = (\n key: string,\n fullValue: FilterValue | undefined,\n itemToRemove: FilterItem,\n): void => {\n if (Array.isArray(fullValue)) {\n const updated = fullValue.filter(\n (value: FilterItem) => !isFilterItemEqual(value, itemToRemove),\n );\n emit('update:filters', {\n ...props.filters,\n [key]: updated,\n });\n } else {\n emit('update:filters', {\n ...props.filters,\n [key]: null,\n });\n }\n emit('remove', key, fullValue, itemToRemove);\n};\n\nconst clearAllFilters = (): void => {\n emit('update:filters', {});\n emit('clear');\n};\n</script>\n\n<style scoped>\n.tag-cloud {\n display: flex;\n flex-wrap: wrap;\n}\n.filter-tag {\n padding: 5px 10px;\n border-radius: 10px;\n font-size: 14px;\n font-weight: 600;\n margin: 4px;\n}\n</style>\n","<template>\n <div class=\"flex items-center justify-center text-lg\">\n <check-circle-two-tone\n v-if=\"!Boolean(value)\"\n two-tone-color=\"#4ade80\"\n />\n <check-circle-two-tone\n v-else\n two-tone-color=\"#bfbfbf\"\n />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { CheckCircleTwoTone } from '@ant-design/icons-vue';\n\ndefineProps<{\n value: unknown,\n}>();\n</script>\n","<template>\n <div class=\"flex items-center justify-center gap-2\">\n <a-tooltip v-if=\"canEdit === false\" title=\"Смотреть\">\n <a-button :icon=\"h(EyeOutlined)\" @click=\"editHandler(record)\" />\n </a-tooltip>\n\n <template v-if=\"canEdit !== false\">\n <a-tooltip v-if=\"editAction !== false\" title=\"Редактировать\">\n <a-button :icon=\"h(EditOutlined)\" @click=\"editHandler(record)\" />\n </a-tooltip>\n\n <a-tooltip :title=\"record.deletedAt ? 'Восстановить' : 'Удалить'\">\n <a-button\n :icon=\"h(record.deletedAt ? RedoOutlined : DeleteOutlined)\"\n @click=\"\n record.deletedAt ? restoreHandler(record) : deleteHandler(record)\n \"\n />\n </a-tooltip>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { h } from 'vue';\n\nimport {\n EditOutlined,\n DeleteOutlined,\n RedoOutlined,\n EyeOutlined,\n} from '@ant-design/icons-vue';\n\ninterface TableRecord {\n deletedAt?: string | null,\n [key: string]: unknown,\n}\n\nconst props = defineProps<{\n record: TableRecord,\n canEdit?: boolean,\n editAction?: boolean,\n}>();\n\nconst emit = defineEmits<{(event: 'edit' | 'delete' | 'restore', record: TableRecord): void,\n}>();\n\nconst canEdit = props.canEdit ?? true;\nconst editAction = props.editAction ?? true;\n\nconst deleteHandler = (record: TableRecord): void => emit('delete', record);\nconst restoreHandler = (record: TableRecord): void => emit('restore', record);\nconst editHandler = (record: TableRecord): void => emit('edit', record);\n</script>\n","<template>\n <a-card\n :loading=\"loading\"\n :bordered=\"false\"\n class=\"data-card bg-white rounded-3 shadow-sm\"\n >\n <template #title>\n <div class=\"data-card__header\">\n <slot name=\"title\" />\n </div>\n </template>\n\n <div class=\"data-card__body\">\n <slot name=\"body\" :record=\"record\" :columns=\"columns\">\n <div\n v-for=\"column in columns\"\n :key=\"column.dataIndex\"\n class=\"data-card__row\"\n >\n <span class=\"data-card__label\">\n {{ column.title }}:\n </span>\n\n <span class=\"data-card__value\">\n <span v-if=\"column.dataIndex === 'deletedAt'\">\n <table-cell-status :value=\"record.deletedAt\" />\n </span>\n\n <template v-else-if=\"Array.isArray(recordValue(column))\">\n <template v-if=\"column.tag === true\">\n <a-tag\n v-for=\"item in tagItems(column)\"\n :key=\"item.key\"\n class=\"mr-1 mb-1\"\n >\n {{ item.label }}\n </a-tag>\n </template>\n\n <template v-else>\n <span\n v-for=\"(item, index) in displayItems(column)\"\n :key=\"index\"\n >\n {{ item }}\n\n <template v-if=\"index < displayItems(column).length - 1\">\n ,\n </template>\n </span>\n </template>\n </template>\n\n <span v-else-if=\"typeof recordValue(column) === 'boolean'\">\n <table-cell-status :value=\"!Boolean(recordValue(column))\" />\n </span>\n\n <span v-else-if=\"recordValue(column) !== null && typeof recordValue(column) === 'object'\">\n {{ getNameOrEmpty(recordValue(column)) }}\n </span>\n\n <span v-else-if=\"column.tag === true\">\n <a-tag v-if=\"!isEmptyTagValue(recordValue(column))\">\n {{ recordValue(column) }}\n </a-tag>\n </span>\n\n <span v-else>\n {{ recordValue(column) }}\n </span>\n </span>\n </div>\n </slot>\n </div>\n\n <div v-if=\"$slots.footer\" class=\"data-card__footer\">\n <slot name=\"footer\" :record=\"record\" :columns=\"columns\" />\n </div>\n\n <template v-if=\"showActionsColumn\" #actions>\n <card-cell-actions\n :record=\"record\"\n :can-edit=\"canEdit\"\n :edit-action=\"editAction\"\n @edit=\"editHandler\"\n @delete=\"deleteHandler\"\n @restore=\"restoreHandler\"\n />\n </template>\n </a-card>\n</template>\n\n<script lang=\"ts\" setup>\nimport TableCellStatus from '../table/ui/table-cell/TableCellStatus.vue';\nimport CardCellActions from './ui/CardCellActions.vue';\n\nimport type { ColumnConfig } from '../table/interface/table.d';\nimport type { TableRecord } from './TheCard.d';\n\nconst props = defineProps<{\n loading: boolean,\n record: TableRecord,\n columns: ColumnConfig[],\n canEdit?: boolean,\n editAction?: boolean,\n showActionsColumn?: boolean,\n}>();\n\nconst recordValue = (column: ColumnConfig): unknown =>\n (props.record as Record<string, unknown>)[String(column.dataIndex)];\n\nconst recordArray = (column: ColumnConfig): unknown[] => {\n const value = recordValue(column);\n return Array.isArray(value) ? value : [];\n};\n\nconst getNameOrEmpty = (value: unknown): string => {\n if (value === null || typeof value !== 'object') {\n return '';\n }\n if ('name' in (value as Record<string, unknown>)) {\n const name = (value as { name?: unknown }).name;\n return typeof name === 'string' ? name : '';\n }\n return '';\n};\n\nconst isEmptyTagValue = (value: unknown): boolean => {\n if (value === null || value === undefined) {\n return true;\n }\n if (typeof value === 'string') {\n return value.trim().length === 0;\n }\n return false;\n};\n\nconst normalizeItemLabel = (item: unknown): string => {\n if (item === null || item === undefined) {\n return '';\n }\n if (typeof item === 'string') {\n return item.trim();\n }\n if (typeof item === 'object') {\n return getNameOrEmpty(item);\n }\n return String(item);\n};\n\nconst displayItems = (column: ColumnConfig): string[] => {\n const value = recordValue(column);\n if (!Array.isArray(value)) {\n return [];\n }\n return value\n .map((item) => normalizeItemLabel(item))\n .filter((label) => label.trim().length > 0);\n};\n\nconst tagItems = (column: ColumnConfig): { key: string; label: string }[] =>\n displayItems(column).map((label, index) => ({\n key: `${label}-${index}`,\n label,\n }));\n\nconst emit = defineEmits<{(e: 'delete' | 'restore' | 'edit', record: TableRecord): void,\n}>();\n\nconst canEdit = props.canEdit ?? true;\nconst editAction = props.editAction ?? true;\nconst showActionsColumn = props.showActionsColumn ?? true;\n\nconst deleteHandler = (record: TableRecord): void => emit('delete', record);\nconst restoreHandler = (record: TableRecord): void => emit('restore', record);\nconst editHandler = (record: TableRecord): void => emit('edit', record);\n</script>\n\n<style scoped>\n.data-card {\n transition: box-shadow 0.18s ease-out, transform 0.18s ease-out;\n}\n\n.data-card:hover {\n transform: translateY(-2px);\n box-shadow: 0 12px 30px rgba(33, 37, 41, 0.08);\n}\n\n.data-card__header {\n display: flex;\n align-items: center;\n min-height: 32px;\n}\n\n.data-card__body {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.data-card__row {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n padding: 2px 0;\n}\n\n.data-card__label {\n flex: 0 0 auto;\n font-weight: 500;\n font-size: 12px;\n color: #6c757d;\n}\n\n.data-card__value {\n flex: 1 1 auto;\n font-size: 13px;\n word-break: break-word;\n}\n\n.data-card__footer {\n display: flex;\n justify-content: flex-end;\n margin-top: 12px;\n}\n</style>\n","<template>\n <div class=\"efko-dataview\">\n <div\n ref=\"container\"\n style=\"height: 1px\"\n class=\"flex items-center justify-center py-5\"\n >\n <a-spin :spinning=\"loading\" />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n ref,\n onMounted,\n onBeforeUnmount,\n} from 'vue';\n\nconst props = withDefaults(\n defineProps<{\n onIntersect:() => void,\n threshold?: number,\n once?: boolean,\n loading: boolean,\n }>(),\n {\n threshold: 0.1,\n once: false,\n },\n);\n\nconst container = ref<HTMLElement | null>(null);\nlet observer: IntersectionObserver | null = null;\n\nconst handleIntersection = (entries: IntersectionObserverEntry[]): void => {\n const entry = entries[0];\n if (entry.isIntersecting) {\n props.onIntersect?.();\n if (props.once && observer) {\n observer.disconnect();\n }\n }\n};\n\nonMounted(() => {\n observer = new IntersectionObserver(handleIntersection, {\n threshold: props.threshold,\n });\n if (container.value) {\n observer.observe(container.value);\n }\n});\n\nonBeforeUnmount(() => {\n if (observer) observer.disconnect();\n});\n</script>\n","<template>\n <div class=\"efko-dataview\">\n <div class=\"flex flex-col gap-4\">\n <div :class=\"gridClass\">\n <the-card\n v-for=\"(record, index) in internalData\"\n :key=\"String(record.id ?? `card-${index}`)\"\n :loading=\"loading\"\n :record=\"record\"\n :columns=\"preparedColumns\"\n :can-edit=\"canEdit\"\n :edit-action=\"editAction\"\n :show-actions-column=\"showActionsColumn\"\n @edit=\"(rec) => emit('edit', rec)\"\n @delete=\"(rec) => emit('delete', rec)\"\n @restore=\"(rec) => emit('restore', rec)\"\n >\n <template v-if=\"$slots.titleCard\" #title>\n <slot\n name=\"titleCard\"\n :record=\"record\"\n :columns=\"preparedColumns\"\n />\n </template>\n\n <template v-if=\"$slots.bodyCard\" #body=\"{ record: bodyRecord, columns: bodyColumns }\">\n <slot\n name=\"bodyCard\"\n :record=\"bodyRecord\"\n :columns=\"bodyColumns\"\n />\n </template>\n\n <template v-if=\"$slots.footerCard\" #footer=\"{ record: footerRecord, columns: footerColumns }\">\n <slot\n name=\"footerCard\"\n :record=\"footerRecord\"\n :columns=\"footerColumns\"\n />\n </template>\n </the-card>\n </div>\n\n <LazyLoadTrigger\n v-if=\"pagination && !isLastPage\"\n :loading=\"loading\"\n :once=\"false\"\n :on-intersect=\"loadNextPage\"\n />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n ref, computed, watch, onMounted,\n} from 'vue';\nimport autoAnimate from '@formkit/auto-animate';\nimport TheCard from './TheCard.vue';\nimport type { ColumnConfig, Meta } from '../table/interface/table.d';\nimport type { TableRecord } from './TheCard.d';\nimport LazyLoadTrigger from '../lazyload/LazyLoadTrigger.vue';\n\nconst props = defineProps<{\n loading: boolean,\n columns: ColumnConfig[],\n dataSource: TableRecord[],\n cardLayout: 'grid' | 'row',\n canEdit: boolean,\n editAction: boolean,\n showActionsColumn?: boolean,\n pagination: boolean,\n meta: Meta | undefined,\n}>();\n\nconst emit = defineEmits<{(event: 'delete' | 'restore' | 'edit', record: Record<string, unknown>): void,\n (event: 'pageChange', page: number): void,\n (event: 'sizeChange', page: number, size: number): void,\n}>();\n\nonMounted(() => {\n const container = document.querySelector<HTMLElement>('.card-grid');\n if (container !== null) {\n autoAnimate(container);\n }\n});\n\nconst gridClass = computed(\n () => (props.cardLayout === 'row'\n ? 'card-grid card-grid--row'\n : 'card-grid card-grid--grid'),\n);\n\nconst preparedColumns = computed(() => props.columns);\n\nconst internalData = ref<TableRecord[]>([]);\n\nconst mergeData = (): void => {\n if (props.meta?.currentPage === 1) {\n internalData.value = [\n ...props.dataSource,\n ];\n return;\n }\n\n const existingIds = new Set(internalData.value.map((record: Record<string, unknown>) => record.id));\n const toAdd = props.dataSource.filter((record: TableRecord) => !existingIds.has(record.id));\n internalData.value.push(...toAdd);\n};\n\nmergeData();\n\nwatch(() => [\n props.dataSource,\n props.meta?.currentPage,\n], mergeData, {\n deep: true,\n});\n\nconst isLastPage = computed(() => {\n if (props.meta === undefined) {\n return true;\n }\n return (\n props.meta.currentPage * props.meta.pageSize\n >= props.meta.total\n );\n});\n\nconst loadNextPage = (): void => {\n if (props.loading || isLastPage.value || !props.meta) {\n return;\n }\n emit('pageChange', props.meta.currentPage + 1);\n};\n</script>\n\n<style scoped>\n.card-grid {\n display: grid;\n gap: 24px;\n}\n\n.card-grid--row {\n grid-template-columns: minmax(0, 1fr);\n}\n\n.card-grid--grid {\n grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\n}\n</style>\n","export const PAGE_SIZE_SMALL = '10';\nexport const PAGE_SIZE_MEDIUM = '20';\nexport const PAGE_SIZE_LARGE = '50';\nexport const PAGE_SIZE_EXTRA_LARGE = '100';\nexport const PAGE_SIZE_ULTRA = '1000';\nexport const DEFAULT_PAGE_NUMBER = 1;\n\nexport const DEFAULT_PAGE_SIZE = PAGE_SIZE_SMALL;\n\nexport enum FilterMode {\n SEARCH = 'search',\n SELECT = 'select',\n DATE = 'date',\n}\n\nexport enum PageSizes {\n SMALL = '10',\n MEDIUM = '20',\n LARGE = '50',\n EXTRA_LARGE = '100',\n ULTRA = '1000'\n}\n\nexport const PAGE_SIZE_OPTIONS = [\n PageSizes.SMALL,\n PageSizes.MEDIUM,\n PageSizes.LARGE,\n PageSizes.EXTRA_LARGE,\n];\n\nexport enum SkipSizes {\n NONE = 0,\n SMALL = 10,\n MEDIUM = 20,\n LARGE = 50\n}\n\nexport enum TableDefaults {\n DEFAULT_CURRENT_PAGE = 1\n}\n\nexport enum TableSortOrder {\n ASCEND = 'ascend',\n DESCEND = 'descend'\n}\n\nexport enum SortOrder {\n ASC = 'asc',\n DESC = 'desc',\n}\n","<template>\n <VueMultiselect\n v-bind=\"$attrs\"\n class=\"filter-select\"\n :modelValue=\"modelValue\"\n @update:modelValue=\"$emit('update:modelValue', $event)\"\n label=\"name\"\n value-prop=\"id\"\n >\n <template #nooptions>\n <a-empty :image=\"simpleImage\" />\n </template>\n </VueMultiselect>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport VueMultiselect from '@vueform/multiselect';\nimport { Empty } from 'efko-ui-library';\n\nexport default defineComponent({\n name: 'MultiselectWrapper',\n components: { VueMultiselect },\n props: {\n modelValue: {\n type: [Array, String, Number, Object, Boolean, null],\n default: null,\n },\n },\n emits: ['update:modelValue'],\n data() {\n return { simpleImage: Empty.PRESENTED_IMAGE_SIMPLE };\n },\n});\n</script>\n\n<style scoped>\n.filter-select :deep(.multiselect-placeholder) {\n font-size: 12px;\n}\n</style>\n","<template>\n <div class=\"efko-dataview\">\n <div class=\"flex items-center gap-2 p-2\">\n <component\n v-bind=\"componentProps\"\n :is=\"filterComponent\"\n v-model:value=\"localValue\"\n v-model=\"localValue\"\n :placeholder=\"placeholder\"\n style=\"min-width: 240px; max-width: 300px; font-size: 14px\"\n object\n />\n <a-button type=\"primary\" size=\"small\" @click=\"handleApply\">\n Добавить\n </a-button>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed, ref,\n} from 'vue';\nimport Multiselect from '../../../ui/TheSelect.vue';\nimport { FilterMode } from '../../enum/table';\n\ntype FilterValue =\n | string\n | number\n | boolean\n | object\n | (string | number | boolean | object)[]\n | null;\n\nconst props = defineProps<{\n placeholder: string,\n filterMode?: FilterMode,\n componentProps?: Record<string, unknown>,\n}>();\n\nconst emit = defineEmits<{(event: 'update:modelValue', value: FilterValue): void,\n (event: 'apply'): void,\n}>();\n\nconst filterComponent = computed(() => {\n if (props.filterMode === FilterMode.SEARCH) {\n return 'a-input';\n }\n\n if (props.filterMode === FilterMode.SELECT) {\n return Multiselect;\n }\n\n if (props.filterMode === FilterMode.DATE) {\n return 'a-range-picker';\n }\n\n return null;\n});\n\nconst localValue = ref(null);\n\nconst handleApply = (): void => {\n emit('update:modelValue', localValue.value);\n emit('apply');\n};\n</script>\n","<template>\n <div class=\"flex items-center justify-center gap-2\">\n <a-tooltip v-if=\"props.canEdit === false\" title=\"Смотреть\">\n <a-button :icon=\"h(EyeOutlined)\" @click=\"editHandler(record)\" />\n </a-tooltip>\n\n <template v-if=\"canEdit !== false\">\n <a-tooltip v-if=\"props.editAction !== false\" title=\"Редактировать\">\n <a-button :icon=\"h(EditOutlined)\" @click=\"editHandler(record)\" />\n </a-tooltip>\n\n <a-tooltip v-if=\"deleteAction !== false\" :title=\"record.isDeleted ? 'Восстановить' : 'Удалить'\">\n <a-button\n :icon=\"h(record.isDeleted ? RedoOutlined : DeleteOutlined)\"\n @click=\"\n record.isDeleted ? restoreHandler(record) : deleteHandler(record)\n \"\n />\n </a-tooltip>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { h } from 'vue';\n\nimport {\n EditOutlined,\n DeleteOutlined,\n RedoOutlined,\n EyeOutlined,\n} from '@ant-design/icons-vue';\n\ninterface TableRecord {\n name?: string,\n isDeleted?: string | null,\n}\n\nconst props = defineProps<{\n record: TableRecord,\n canEdit: boolean,\n editAction: boolean,\n deleteAction: boolean,\n}>();\n\nconst emit = defineEmits<{(event: 'edit' | 'delete' | 'restore', record: TableRecord): void,\n}>();\n\nconst deleteHandler = (record: TableRecord): void => {\n emit('delete', record);\n};\n\nconst restoreHandler = (record: TableRecord): void => {\n emit('restore', record);\n};\n\nconst editHandler = (record: TableRecord): void => {\n emit('edit', record);\n};\n</script>\n","<template>\n <a-skeleton\n v-if=\"loading\"\n :active=\"true\"\n :loading=\"true\"\n :title=\"false\"\n :paragraph=\"{ rows: 1 }\"\n />\n\n <template v-else>\n <span v-if=\"column.dataIndex === 'isDeleted'\">\n <table-cell-status :value=\"(record as any).isDeleted\" />\n </span>\n\n <span v-else-if=\"Array.isArray(cellValue)\">\n <template v-if=\"column.tag === true\">\n <a-tag\n v-for=\"item in tagItems\"\n :key=\"item.key\"\n :style=\"tagStyle\"\n class=\"mr-1 mb-1\"\n >\n {{ item.label }}\n </a-tag>\n </template>\n\n <template v-else>\n <span v-for=\"(item, index) in displayItems\" :key=\"index\">\n {{ item }}\n <template v-if=\"index < displayItems.length - 1\">, </template>\n </span>\n </template>\n </span>\n\n <span v-else-if=\"typeof cellValue === 'boolean'\">\n <table-cell-status :value=\"!Boolean(cellValue)\" />\n </span>\n\n <span v-else-if=\"cellValue !== null && typeof cellValue === 'object'\">\n {{ getNameOrEmpty(cellValue) }}\n </span>\n\n <span v-else-if=\"column.tag === true\">\n <a-tag v-if=\"hasTagValue\" :style=\"tagStyle\">\n {{ String(cellValue) }}\n </a-tag>\n <template v-else />\n </span>\n\n <span v-else>{{ cellValue }}</span>\n </template>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from 'vue';\nimport type { CSSProperties } from 'vue';\n\nimport TableCellStatus from './TableCellStatus.vue';\nimport type { ColumnConfig } from '../../interface/table.d';\n\nconst props = defineProps<{\n loading: boolean;\n column: ColumnConfig;\n record: Record<string, unknown>;\n tagStyle?: CSSProperties;\n}>();\n\nconst cellValue = computed<unknown>(() => props.record[String(props.column.dataIndex)]);\n\nconst isEmptyTagValue = (value: unknown): boolean => {\n if (value === null || value === undefined) {\n return true;\n }\n if (typeof value === 'string') {\n return value.trim().length === 0;\n }\n return false;\n};\n\nconst getNameOrEmpty = (value: unknown): string => {\n if (value === null || typeof value !== 'object') {\n return '';\n }\n if ('name' in (value as Record<string, unknown>)) {\n const nameValue = (value as { name?: unknown }).name;\n return typeof nameValue === 'string' ? nameValue : '';\n }\n return '';\n};\n\nconst normalizeItemLabel = (item: unknown): string => {\n if (item === null || item === undefined) {\n return '';\n }\n if (typeof item === 'string') {\n return item.trim();\n }\n if (typeof item === 'object') {\n return getNameOrEmpty(item);\n }\n return String(item);\n};\n\nconst displayItems = computed<string[]>(() => {\n const value = cellValue.value;\n if (!Array.isArray(value)) {\n return [];\n }\n return value\n .map((item) => normalizeItemLabel(item))\n .filter((label) => label.trim().length > 0);\n});\n\nconst tagItems = computed<{ key: string; label: string }[]>(() =>\n displayItems.value.map((label, index) => ({\n key: `${label}-${index}`,\n label,\n })));\n\nconst hasTagValue = computed(() => !isEmptyTagValue(cellValue.value));\n</script>\n","<template>\n <div class=\"efko-dataview\">\n <a-table\n bordered\n table-layout=\"fixed\"\n class=\"the-table\"\n :loading=\"loading\"\n :columns=\"computedColumns\"\n :data-source=\"dataSource\"\n :row-key=\"(record: Record<string, unknown>) => record.id\"\n :pagination=\"false\"\n :scroll=\"{ x: 'max-content'}\"\n :row-class-name=\"rowClassName\"\n @change=\"onTableChange\"\n @resize-column=\"resizeColumn\"\n >\n <template #title>\n <div class=\"flex items-center justify-between\">\n <div class=\"flex items-center gap-2\">\n <a-badge dot :count=\"hiddenColumnCount\">\n <a-button\n class=\"flex items-center justify-center p-2\"\n @click=\"$emit('openColumnDrawer')\"\n >\n <Icon name=\"solar:settings-outline\" class=\"text-lg\" />\n </a-button>\n </a-badge>\n\n <a-button\n v-if=\"showFilterButton\"\n class=\"flex items-center justify-center p-2\"\n @click=\"$emit('openFilterDrawer')\"\n >\n <Icon name=\"ant-design:filter-outlined\" class=\"text-lg\" />\n </a-button>\n </div>\n\n <slot name=\"title\" />\n </div>\n </template>\n\n <template\n v-for=\"column in filterableColumns\"\n :key=\"String(column.dataIndex)\"\n #[`filter${String(column.dataIndex)}Dropdown`]\n >\n <filter-dropdown\n v-model=\"inputFilters[column.dataIndex]\"\n :filter-mode=\"column.filterMode\"\n :component-props=\"column.componentProps\"\n :placeholder=\"column.title\"\n @update:model-value=\"(value) => applyFilter(column, value)\"\n />\n </template>\n\n <template #bodyCell=\"{ column, record }\">\n <slot name=\"bodyCell\" :column=\"column\" :record=\"record\">\n <table-body-cell\n :loading=\"loading\"\n :column=\"column\"\n :record=\"record\"\n :tag-style=\"tagStyle\"\n />\n </slot>\n </template>\n\n <template #actionColumn=\"{ record }\">\n <slot name=\"actionColumn\" :record=\"record\">\n <table-cell-actions\n :edit-action=\"editAction\"\n :delete-action=\"deleteAction\"\n :can-edit=\"canEdit\"\n :record=\"record\"\n @edit=\"() => $emit('edit', record)\"\n @delete=\"() => $emit('delete', record)\"\n @restore=\"() => $emit('restore', record)\"\n />\n </slot>\n </template>\n </a-table>\n\n <a-pagination\n v-if=\"pagination\"\n class=\"mt-4 text-right\"\n :current=\"meta?.currentPage\"\n :page-size=\"meta?.pageSize\"\n :total=\"meta?.total\"\n :show-total=\"(total: string) => `Всего ${total} элементов`\"\n :page-size-options=\"meta?.pageSizeOptions\"\n :show-size-changer=\"true\"\n @change=\"(page: number) => $emit('pageChange', page)\"\n @show-size-change=\"(page: number, size: number) => $emit('sizeChange', page, size)\"\n />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n ref, computed, watch, onMounted,\n} from 'vue';\nimport autoAnimate from '@formkit/auto-animate';\nimport { isEqual } from 'lodash';\n\nimport { FilterMode, TableSortOrder } from './enum/table';\nimport FilterDropdown from './ui/filter/FilterDropdown.vue';\nimport TableCellActions from './ui/table-cell/TableCellActions.vue';\nimport TableBodyCell from './ui/table-cell/TableBodyCell.vue';\nimport type {\n ColumnConfig,\n FilterItem,\n FilterValue,\n Meta,\n SortPayload,\n} from './interface/table.d';\nimport type { TableRecord } from '../card/TheCard.d';\nimport { useToken } from 'efko-ui-library/es/theme/internal';\n\nconst [, token] = useToken();\n\ntype TableColumnDefinition = Record<string, unknown> & ColumnConfig & {\n slots?: Record<string, string>;\n};\n\nconst props = defineProps<{\n loading: boolean,\n pagination: boolean,\n columns: ColumnConfig[],\n dataSource: TableRecord[],\n filterValues?: Partial<Record<string, FilterValue>>,\n meta: Meta | undefined,\n canEdit: boolean,\n editAction: boolean,\n deleteAction: boolean,\n showActionsColumn?: boolean,\n columnsVisibility: Record<string, boolean>,\n disableColumnFilterDropdowns?: boolean,\n showFilterButton?: boolean,\n}>();\n\nconst emit = defineEmits<{(event: 'update:filterValues',\n values: Partial<Record<string, FilterValue>>,\n ): void,\n (event: 'filterApply', payload: { key: string, value: FilterItem[] }): void,\n (event: 'restore' | 'edit' | 'delete', record: Record<string, unknown>): void,\n (event: 'sortChange', payload: SortPayload): void,\n (event: 'pageChange', page: number): void,\n (event: 'sizeChange', page: number, pageSize: number): void,\n (event: 'openColumnDrawer'): void,\n (event: 'openFilterDrawer'): void,\n}>();\n\nconst showFilterButton = computed<boolean>(() => props.showFilterButton === true);\n\nconst localFilterValues = ref<Partial<Record<string, FilterValue>>>(\n props.filterValues || {},\n);\nconst localColumns = ref<ColumnConfig[]>([\n ...props.columns,\n]);\nconst inputFilters = ref<Record<string, unknown | null>>({});\n\nconst filterableColumns = computed(() => {\n if (props.disableColumnFilterDropdowns === true) {\n return [];\n }\n\n return localColumns.value.filter(\n (column: ColumnConfig) => column.filterable,\n );\n});\n\nconst computedColumns = computed(() => {\n const visible = localColumns.value.filter((column: ColumnConfig) => {\n if (column.filterOnly) {\n return false;\n }\n\n const key = column.key || String(column.dataIndex);\n return props.columnsVisibility[key] !== false;\n });\n\n const result: TableColumnDefinition[] = visible.map((column: ColumnConfig) => {\n const { headerAlign, cellAlign, ...rest } = column;\n\n return {\n ...rest,\n sorter: Boolean(rest.sortable),\n sortDirections: rest.sortable\n ? [\n TableSortOrder.ASCEND,\n TableSortOrder.DESCEND,\n ]\n : undefined,\n customHeaderCell: (): { style: { textAlign: string } } | undefined => (headerAlign ? {\n style: {\n textAlign: headerAlign,\n },\n } : undefined),\n customCell: (): { style: { textAlign: string } } | undefined => (cellAlign ? {\n style: {\n textAlign: cellAlign,\n },\n } : undefined),\n customFilterDropdown: Boolean(rest.filterable),\n slots: rest.filterable\n ? {\n filterDropdown: `filter${String(rest.dataIndex)}Dropdown`,\n }\n : undefined,\n } as TableColumnDefinition;\n });\n\n if (\n props.showActionsColumn !== false\n && props.columnsVisibility.actions !== false\n ) {\n result.push({\n title: 'Действия',\n key: 'actions',\n dataIndex: 'actions' as keyof TableRecord,\n width: 100,\n slots: {\n customRender: 'actionColumn',\n },\n } as TableColumnDefinition);\n }\n\n return result;\n});\n\nconst hiddenColumnCount = computed(\n () => Object.keys(props.columnsVisibility).filter(\n (key: string) => props.columnsVisibility[key] === false,\n ).length,\n);\n\nconst tagStyle = computed(() => ({\n color: token.value.colorSelectedMenu,\n borderColor: token.value.colorBorderSecondary,\n backgroundColor: token.value.mainBgColor || token.value.colorPrimaryBg,\n}));\n\nconst getFilterArray = (key: string): FilterItem[] => {\n const value = localFilterValues.value[key];\n if (Array.isArray(value)) {\n return value;\n }\n if (value !== null && value !== undefined) {\n return [value];\n }\n return [];\n};\n\nconst setFilterValue = (key: string, value: FilterItem[] | FilterItem | null): void => {\n const next = { ...localFilterValues.value };\n\n if (value === null) {\n next[key] = null;\n emit('filterApply', { key, value: [] });\n } else if (Array.isArray(value)) {\n const compact = value.filter((v) => v !== null && v !== undefined);\n if (compact.length === 0) {\n next[key] = null;\n emit('filterApply', { key, value: [] });\n } else if (compact.length === 1) {\n next[key] = compact[0];\n emit('filterApply', { key, value: compact });\n } else {\n next[key] = compact;\n emit('filterApply', { key, value: compact });\n }\n } else {\n next[key] = value;\n emit('filterApply', { key, value: [value] });\n }\n\n emit('update:filterValues', next);\n localFilterValues.value = next;\n inputFilters.value[key] = null;\n};\n\nconst applyFilter = (column: ColumnConfig, newValue: unknown): void => {\n const key = String(column.dataIndex);\n\n if (newValue === null || newValue === undefined) {\n inputFilters.value[key] = null;\n return;\n }\n\n if (column.filterMode === FilterMode.SELECT) {\n const current = getFilterArray(key);\n\n if (Array.isArray(newValue)) {\n const unique: FilterItem[] = [];\n (newValue as unknown[]).forEach((candidate) => {\n if (unique.some((item) => isEqual(item, candidate))) {\n return;\n }\n unique.push(candidate as FilterItem);\n });\n\n const same =\n unique.length === current.length\n && unique.every((item) => current.some((c) => isEqual(c, item)));\n\n if (!same) {\n setFilterValue(key, unique);\n } else {\n inputFilters.value[key] = null;\n }\n\n return;\n }\n\n if (current.some((item) => isEqual(item, newValue))) {\n inputFilters.value[key] = null;\n return;\n }\n\n setFilterValue(key, [\n ...current,\n newValue as FilterItem,\n ]);\n return;\n }\n\n const prev = localFilterValues.value[key];\n if (isEqual(prev, newValue)) {\n inputFilters.value[key] = null;\n return;\n }\n\n setFilterValue(key, newValue as FilterItem);\n};\n\nconst rowClassName = (record: Record<string, unknown>): string => (record.isGroup ? 'parent-row' : '');\n\nconst onTableChange = (\n _pagination: unknown,\n _filters: unknown,\n sorter: { columnKey?: string, order?: TableSortOrder | null },\n): void => {\n emit('sortChange', {\n columnKey: sorter.columnKey || '',\n order: sorter.order || null,\n });\n};\n\nconst resizeColumn = (width: number, col: ColumnConfig): void => {\n const key = col.key || String(col.dataIndex);\n const index = localColumns.value.findIndex(\n (column: ColumnConfig) => (column.key || String(column.dataIndex)) === key,\n );\n if (index === -1) {\n return;\n }\n localColumns.value.splice(index, 1, {\n ...col,\n width,\n });\n};\n\nwatch(\n () => props.filterValues,\n (newVal: Partial<Record<string, FilterValue>> | undefined) => {\n localFilterValues.value = newVal || {};\n },\n);\n\nwatch(\n () => props.columns,\n (newColumns: ColumnConfig[]) => {\n localColumns.value = [\n ...newColumns,\n ];\n },\n {\n immediate: true,\n },\n);\n\nonMounted(() => {\n const tbody = document.querySelector<HTMLElement>('.the-table tbody');\n if (tbody !== null) {\n autoAnimate(tbody);\n }\n});\n</script>\n","<template>\n <a-drawer\n v-model:open=\"drawerOpen\"\n class=\"efko-dataview\"\n title=\"Настройки представления\"\n placement=\"right\"\n >\n <section class=\"mb-4\">\n <h3 class=\"font-bold text-base mb-2\">Отображение колонок</h3>\n\n <div class=\"flex flex-col gap-1\">\n <div v-for=\"col in columns\" :key=\"col.key ?? col.dataIndex\">\n <a-checkbox\n v-model:checked=\"visibility[col.key ?? col.dataIndex]\"\n :disabled=\"isCardMode\"\n class=\"flex\"\n >\n {{ col.title }}\n </a-checkbox>\n </div>\n </div>\n </section>\n\n <section>\n <h3 class=\"font-bold text-base mb-2\">Вид</h3>\n\n <a-radio-group\n v-model:value=\"localViewMode\"\n button-style=\"solid\"\n class=\"mb-3\"\n :disabled=\"disabledViewMode\"\n >\n <a-radio value=\"table\">Таблица</a-radio>\n <a-radio value=\"grid\">Карточки</a-radio>\n </a-radio-group>\n\n <a-radio-group\n v-model:value=\"localCardLayout\"\n button-style=\"solid\"\n :disabled=\"!isCardMode\"\n >\n <a-radio-button value=\"grid\">\n <AppstoreOutlined class=\"mr-2\" />Сетка\n </a-radio-button>\n\n <a-radio-button value=\"row\">\n <PicCenterOutlined class=\"mr-2\" />Строка\n </a-radio-button>\n </a-radio-group>\n </section>\n </a-drawer>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n ref, watch, computed, reactive,\n} from 'vue';\nimport { AppstoreOutlined, PicCenterOutlined } from '@ant-design/icons-vue';\nimport type { ColumnConfig } from '../interface/table.d';\nimport { CardLayout, ViewMode } from './ColumnSettingsDrawer';\n\nconst props = defineProps<{\n visible: boolean,\n columns: ColumnConfig[],\n modelValue: Record<string, boolean>,\n showActionsColumn?: boolean,\n disableViewMode?: boolean,\n viewMode: ViewMode,\n cardLayout: CardLayout,\n}>();\n\nconst emit = defineEmits<{(e: 'update:visible', value: boolean): void,\n (e: 'update:modelValue', value: Record<string, boolean>): void,\n (e: 'update:viewMode', value: ViewMode): void,\n (e: 'update:cardLayout', value: CardLayout): void,\n}>();\n\nconst drawerOpen = ref(props.visible);\nconst localViewMode = ref(props.viewMode);\nconst localCardLayout = ref(props.cardLayout);\nconst visibility = reactive<Record<string, boolean>>({\n ...props.modelValue,\n});\n\nconst isCardMode = computed(() => localViewMode.value === 'grid');\nconst disabledViewMode = props.disableViewMode || false;\n\nwatch(\n () => props.visible,\n (value: boolean) => {\n drawerOpen.value = value;\n },\n);\n\nwatch(drawerOpen, (value: boolean) => {\n emit('update:visible', value);\n});\n\nwatch(\n () => props.viewMode,\n (mode: ViewMode) => {\n localViewMode.value = mode;\n },\n);\n\nwatch(localViewMode, (mode: ViewMode) => {\n emit('update:viewMode', mode);\n});\n\nwatch(\n () => props.cardLayout,\n (layout: CardLayout) => {\n localCardLayout.value = layout;\n },\n);\n\nwatch(localCardLayout, (layout: CardLayout) => {\n emit('update:cardLayout', layout);\n});\n\nwatch(\n () => props.modelValue,\n (view: Record<string, boolean>) => Object.assign(visibility, view),\n {\n deep: true,\n },\n);\n\nwatch(visibility, (view: Record<string, boolean>) => emit('update:modelValue', {\n ...view,\n}), {\n deep: true,\n});\n\nif (props.showActionsColumn && visibility.actions === undefined) {\n visibility.actions = true;\n}\n</script>\n","<template>\n <component\n v-bind=\"componentProps\"\n :is=\"inputComponent\"\n v-model:value=\"inputValue\"\n v-model=\"inputValue\"\n :placeholder=\"placeholder\"\n class=\"w-full text-sm\"\n />\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed, ref, watch,\n} from 'vue';\nimport Multiselect from '../ui/TheSelect.vue';\nimport { FilterMode } from '../table/enum/table';\n\ntype Mode = 'search' | 'select' | 'date'\ntype Value =\n | string\n | number\n | boolean\n | object\n | (string | number | boolean | object)[]\n | null\n | undefined\n\nconst props = defineProps<{\n modelValue: Value,\n filterMode?: Mode,\n componentProps?: Record<string, unknown>,\n placeholder: string,\n}>();\n\nconst emit = defineEmits<{(event:'update:modelValue', value:Value): void }>();\n\nconst inputComponent = computed(() => {\n if (props.filterMode === FilterMode.SEARCH) {\n return 'a-input';\n }\n if (props.filterMode === FilterMode.SELECT) {\n return Multiselect;\n }\n if (props.filterMode === FilterMode.DATE) {\n return 'a-range-picker';\n }\n return 'a-input';\n});\n\nconst inputValue = ref<Value>(props.modelValue);\n\nwatch(() => props.modelValue, (value: Value) => {\n inputValue.value = value;\n});\nwatch(inputValue, (value: Value) => emit('update:modelValue', value));\n</script>\n","<template>\n <a-drawer\n v-model:open=\"drawerOpen\"\n class=\"efko-dataview\"\n placement=\"right\"\n width=\"360\"\n title=\"Фильтры\"\n body-style=\"padding: 24px\"\n >\n <section\n v-for=\"column in filterableColumns\"\n :key=\"columnKey(column)\"\n class=\"mb-4 flex flex-col gap-2\"\n >\n <span class=\"text-sm font-medium\">{{ column.title }}</span>\n\n <filter-input\n v-model=\"draft[columnKey(column)]\"\n :filter-mode=\"column.filterMode\"\n :component-props=\"column.componentProps\"\n :placeholder=\"column.title\"\n />\n </section>\n\n <div class=\"mt-2 flex flex-col gap-2\">\n <a-button block @click=\"resetFilters\">\n Сбросить\n </a-button>\n <a-button\n type=\"primary\"\n block\n :disabled=\"!hasModifications\"\n @click=\"applyFilters\"\n >\n Применить\n </a-button>\n </div>\n </a-drawer>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n ref, reactive, watch, computed,\n} from 'vue';\nimport { isEqual } from 'lodash';\nimport FilterInput from './FilterInput.vue';\nimport type {\n ColumnConfig,\n FilterItem,\n FilterValue,\n} from '../table/interface/table.d';\n\nconst props = defineProps<{\n visible: boolean,\n columns: ColumnConfig[],\n filterValues: Record<string, FilterValue | undefined>,\n}>();\n\nconst emit = defineEmits<{(event: 'update:visible', value: boolean): void,\n (\n event: 'update:filterValues',\n value: Record<string, FilterValue | undefined>,\n ): void,\n (event: 'filterApply', payload: { key: string, value: FilterItem[] }): void,\n}>();\n\nconst drawerOpen = ref(props.visible);\nconst draft = reactive<Record<string, FilterValue | undefined>>({\n ...props.filterValues,\n});\n\nconst columnKey = (column: ColumnConfig): string | number => column.key ?? String(column.dataIndex);\n\nconst toArray = (val: FilterValue | undefined): FilterItem[] => {\n if (Array.isArray(val)) {\n return val as FilterItem[];\n }\n if (val !== null && val !== undefined) {\n return [val as FilterItem];\n }\n return [];\n};\n\nconst valueIsEmpty = (val: FilterValue | undefined): boolean => {\n if (val === null || val === undefined) {\n return true;\n }\n if (Array.isArray(val)) {\n return val.length === 0;\n }\n if (typeof val === 'string') {\n return val.trim() === '';\n }\n return false;\n};\n\nconst filterableColumns = computed(() => props.columns.filter((column: ColumnConfig) => column.filterable));\n\nconst hasModifications = computed(() => Object.keys(draft).some(\n (key: string) => !isEqual(draft[key], props.filterValues[key]),\n));\n\nconst syncDraft = (values: Record<string, FilterValue | undefined>): void => {\n Object.keys(draft).forEach((key: string) => {\n delete draft[key];\n });\n Object.assign(draft, values);\n};\n\nwatch(\n () => props.visible,\n (view: boolean) => {\n drawerOpen.value = view;\n if (view) {\n syncDraft(props.filterValues);\n }\n },\n);\nwatch(drawerOpen, (view: boolean) => {\n emit('update:visible', view);\n});\n\nwatch(\n () => props.filterValues,\n (newVal: Record<string, FilterValue | undefined>) => {\n syncDraft(newVal);\n },\n {\n deep: true,\n },\n);\n\nconst applyFilters = (): void => {\n const updated: Record<string, FilterValue | undefined> = {\n ...props.filterValues,\n };\n\n Object.entries(draft).forEach(([key, candidate]) => {\n if (valueIsEmpty(candidate)) {\n updated[key] = null;\n emit('filterApply', {\n key,\n value: [],\n });\n return;\n }\n updated[key] = candidate as FilterValue;\n emit('filterApply', {\n key,\n value: toArray(candidate as FilterValue),\n });\n });\n\n emit('update:filterValues', updated);\n drawerOpen.value = false;\n};\n\nconst resetFilters = (): void => {\n Object.keys(draft).forEach((key: string) => {\n delete draft[key];\n });\n\n const cleared: Record<string, FilterValue | undefined> = {};\n emit('update:filterValues', cleared);\n};\n</script>\n\n<style scoped>\nspan {\n line-height: 1;\n}\n</style>\n","<template>\n <a-modal\n v-model:visible=\"modalOpen\"\n class=\"efko-dataview\"\n title=\"Фильтры\"\n destroy-on-close\n :ok-text=\"'Применить'\"\n :cancel-text=\"'Сбросить'\"\n :ok-button-props=\"{ disabled: !hasModifications }\"\n @ok=\"applyFilters\"\n @cancel=\"handleCancel\"\n >\n <section\n v-for=\"column in filterableColumns\"\n :key=\"columnKey(column)\"\n class=\"mb-4 flex flex-col gap-2\"\n >\n <span class=\"text-sm font-medium\">{{ column.title }}</span>\n\n <filter-input\n v-model=\"draft[columnKey(column)]\"\n :filter-mode=\"column.filterMode\"\n :component-props=\"column.componentProps\"\n :placeholder=\"column.title\"\n />\n </section>\n </a-modal>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n ref, reactive, watch, computed,\n} from 'vue';\nimport { isEqual } from 'lodash';\nimport FilterInput from './FilterInput.vue';\nimport type {\n ColumnConfig,\n FilterItem,\n FilterValue,\n} from '../table/interface/table.d';\n\nconst props = defineProps<{\n visible: boolean,\n columns: ColumnConfig[],\n filterValues: Record<string, FilterValue | undefined>,\n}>();\n\nconst emit = defineEmits<{(event: 'update:visible', value: boolean): void,\n (\n event: 'update:filterValues',\n value: Record<string, FilterValue | undefined>,\n ): void,\n (event: 'filterApply', payload: { key: string, value: FilterItem[] }): void,\n}>();\n\nconst modalOpen = ref(props.visible);\nconst draft = reactive<Record<string, FilterValue | undefined>>({\n ...props.filterValues,\n});\n\nconst columnKey = (column: ColumnConfig): string | number => column.key ?? String(column.dataIndex);\n\nconst toArray = (val: FilterValue | undefined): FilterItem[] => {\n if (Array.isArray(val)) {\n return val as FilterItem[];\n }\n if (val !== null && val !== undefined) {\n return [val as FilterItem];\n }\n return [];\n};\n\nconst valueIsEmpty = (val: FilterValue | undefined): boolean => {\n if (val === null || val === undefined) {\n return true;\n }\n if (Array.isArray(val)) {\n return val.length === 0;\n }\n if (typeof val === 'string') {\n return val.trim() === '';\n }\n return false;\n};\n\nconst filterableColumns = computed(\n () => props.columns.filter((column: ColumnConfig) => column.filterable),\n);\n\nconst hasModifications = computed(() => Object.keys(draft).some(\n (key: string) => !isEqual(draft[key], props.filterValues[key]),\n));\n\nconst syncDraft = (values: Record<string, FilterValue | undefined>): void => {\n Object.keys(draft).forEach((key: string) => {\n delete draft[key];\n });\n Object.assign(draft, values);\n};\n\nwatch(\n () => props.visible,\n (view: boolean) => {\n modalOpen.value = view;\n if (view) {\n syncDraft(props.filterValues);\n }\n },\n);\nwatch(modalOpen, (view: boolean) => {\n emit('update:visible', view);\n});\n\nwatch(\n () => props.filterValues,\n (newVal: Record<string, FilterValue | undefined>) => {\n syncDraft(newVal);\n },\n {\n deep: true,\n },\n);\n\nconst applyFilters = (): void => {\n const updated: Record<string, FilterValue | undefined> = {\n ...props.filterValues,\n };\n\n Object.entries(draft).forEach(([key, candidate]) => {\n if (valueIsEmpty(candidate)) {\n updated[key] = null;\n emit('filterApply', {\n key,\n value: [],\n });\n return;\n }\n updated[key] = candidate as FilterValue;\n emit('filterApply', {\n key,\n value: toArray(candidate as FilterValue),\n });\n });\n\n emit('update:filterValues', updated);\n modalOpen.value = false;\n};\n\nconst handleCancel = (): void => {\n modalOpen.value = false;\n};\n</script>\n\n<style scoped>\nspan {\n line-height: 1;\n}\n</style>\n","export enum ViewMode {\n Table = 'table',\n Grid = 'grid',\n}\nexport enum CardLayout {\n Grid = 'grid',\n Row = 'row',\n}\n","<template>\n <div class=\"efko-dataview\">\n <div ref=\"tagCloudContainer\">\n <filter-tag-cloud\n :filters=\"activeFilters\"\n @update:filters=\"updateFilters\"\n @remove=\"removeFilter\"\n @clear=\"clearFilters\"\n />\n </div>\n\n <template v-if=\"isCardMode\">\n <div class=\"flex items-center justify-between gap-2 mb-2\">\n <div class=\"flex items-center gap-1\">\n <a-badge dot :count=\"hiddenColumnCount\">\n <a-button\n class=\"flex items-center justify-center p-2\"\n @click=\"isColumnDrawerOpen = true\"\n >\n <Icon name=\"solar:settings-outline\" class=\"text-lg\" />\n </a-button>\n </a-badge>\n <a-button\n class=\"flex items-center justify-center p-2\"\n @click=\"isFilterDrawerOpen = true\"\n >\n <Icon name=\"ant-design:filter-outlined\" class=\"text-lg\" />\n </a-button>\n </div>\n\n <slot name=\"headerCardContainer\" />\n <slot name=\"title\" />\n </div>\n\n <card-grid\n v-if=\"isCardMode\"\n :loading=\"loading\"\n :columns=\"columns\"\n :data-source=\"dataSource\"\n :card-layout=\"cardLayout\"\n :can-edit=\"canEdit\"\n :edit-action=\"editAction\"\n :show-actions-column=\"showActionsColumn\"\n :pagination=\"pagination\"\n :meta=\"meta\"\n @restore=\"(r) => emit('restore', r)\"\n @edit=\"(r) => emit('edit', r)\"\n @delete=\"(r) => emit('delete', r)\"\n @page-change=\"(p) => emit('pageChange', p)\"\n @size-change=\"(p, s) => emit('sizeChange', p, s)\"\n >\n <template v-if=\"$slots.titleCard\" #titleCard=\"p\">\n <slot name=\"titleCard\" v-bind=\"p\" />\n </template>\n\n <template v-if=\"$slots.body\" #bodyCard=\"p\">\n <slot name=\"body\" v-bind=\"p\" />\n </template>\n\n <template v-if=\"$slots.footer\" #footerCard=\"p\">\n <slot name=\"footer\" v-bind=\"p\" />\n </template>\n </card-grid>\n </template>\n\n <data-table\n v-else\n :loading=\"loading\"\n :pagination=\"pagination\"\n :columns=\"columns\"\n :data-source=\"dataSource\"\n :filter-values=\"activeFilters\"\n :meta=\"meta\"\n :can-edit=\"canEdit\"\n :edit-action=\"editAction\"\n :delete-action=\"deleteAction\"\n :show-actions-column=\"showActionsColumn\"\n :columns-visibility=\"columnVisibility\"\n :disable-column-filter-dropdowns=\"props.disableColumnFilterDropdowns === true\"\n :show-filter-button=\"props.enableTableFilterDrawer === true\"\n @open-column-drawer=\"isColumnDrawerOpen = true\"\n @open-filter-drawer=\"isFilterDrawerOpen = true\"\n @update:filter-values=\"updateFilters\"\n @filter-apply=\"(payload) => emit('filterApply', payload)\"\n @restore=\"(record) => emit('restore', record)\"\n @edit=\"(record) => emit('edit', record)\"\n @delete=\"(record) => emit('delete', record)\"\n @sort-change=\"(payload) => emit('sortChange', payload)\"\n @page-change=\"(page) => emit('pageChange', page)\"\n @size-change=\"(page, size) => emit('sizeChange', page, size)\"\n >\n <template #title>\n <slot name=\"title\" />\n </template>\n <template #bodyCell=\"p\"><slot name=\"bodyCell\" v-bind=\"p\" /></template>\n <template #actionColumn=\"p\"><slot name=\"actionColumn\" v-bind=\"p\" /></template>\n </data-table>\n\n <slot\n name=\"filtersDrawer\"\n :visible=\"isFilterDrawerOpen\"\n :set-visible=\"(value: boolean) => { isFilterDrawerOpen = value; }\"\n :filters=\"activeFilters\"\n :update-filters=\"updateFilters\"\n :emit-filter-apply=\"emitFilterApply\"\n >\n <card-filters-modal\n v-if=\"props.useFilterModal === true\"\n v-model:visible=\"isFilterDrawerOpen\"\n :columns=\"columns\"\n :filter-values=\"activeFilters\"\n @update:filter-values=\"updateFilters\"\n @filter-apply=\"(payload) => emit('filterApply', payload)\"\n />\n <card-filters-drawer\n v-else\n v-model:visible=\"isFilterDrawerOpen\"\n :columns=\"columns\"\n :filter-values=\"activeFilters\"\n @update:filter-values=\"updateFilters\"\n @filter-apply=\"(payload) => emit('filterApply', payload)\"\n />\n </slot>\n\n <column-settings-drawer\n v-model:visible=\"isColumnDrawerOpen\"\n v-model:model-value=\"columnVisibility\"\n v-model:view-mode=\"currentViewMode\"\n v-model:card-layout=\"cardLayout\"\n :columns=\"columns\"\n :show-actions-column=\"showActionsColumn\"\n :disable-view-mode=\"disableViewMode\"\n />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n ref, watch, computed, onMounted,\n} from 'vue';\nimport { isEqual } from 'lodash';\nimport autoAnimate from '@formkit/auto-animate';\n\nimport FilterTagCloud from './table/ui/filter/FilterTagCloud.vue';\nimport CardGrid from './card/CardGrid.vue';\nimport DataTable from './table/TheTable.vue';\nimport ColumnSettingsDrawer from './table/ui/ColumnSettingsDrawer.vue';\nimport CardFiltersDrawer from './card/CardFiltersDrawer.vue';\nimport CardFiltersModal from './card/CardFiltersModal.vue';\nimport type {\n ColumnConfig,\n FilterItem,\n FilterValue,\n Meta,\n SortPayload,\n} from './table/interface/table.d';\nimport { CardLayout, ViewMode } from './table/ui/ColumnSettingsDrawer';\nimport type { FilterValues } from './DataView.d';\nimport type { TableRecord } from './card/TheCard.d';\n\nconst props = withDefaults(\n defineProps<{\n viewMode?: ViewMode;\n loading: boolean;\n pagination?: boolean;\n columns: ColumnConfig[];\n dataSource: TableRecord[];\n filterValues?: Partial<Record<string, FilterValue>>;\n meta?: Meta;\n canEdit?: boolean;\n editAction?: boolean;\n deleteAction?: boolean;\n showActionsColumn?: boolean;\n disableViewMode?: boolean;\n enableTableFilterDrawer?: boolean;\n disableColumnFilterDropdowns?: boolean;\n useFilterModal?: boolean;\n }>(),\n {\n pagination: false,\n canEdit: true,\n editAction: true,\n deleteAction: true,\n showActionsColumn: true,\n disableViewMode: false,\n enableTableFilterDrawer: false,\n disableColumnFilterDropdowns: false,\n useFilterModal: false,\n },\n);\n\nconst emit = defineEmits<{(e: 'update:viewMode', value: ViewMode): void,\n (e: 'update:filterValues', value: Partial<Record<string, FilterValue>>): void,\n (e: 'filterApply', payload: { key: string, value: FilterItem[] }): void,\n (e: 'edit' | 'delete' | 'restore', record: Record<string, unknown>): void,\n (e: 'sortChange', payload: SortPayload): void,\n (e: 'pageChange', page: number): void,\n (e: 'sizeChange', page: number, pageSize: number): void,\n}>();\n\nconst currentViewMode = ref<ViewMode>(props.viewMode || ViewMode.Table);\nconst isCardMode = computed(() => currentViewMode?.value === ViewMode.Grid);\nconst cardLayout = ref<CardLayout>(CardLayout.Grid);\nconst activeFilters = ref<Partial<Record<string, FilterValue>>>(\n props.filterValues || {},\n);\n\nconst tagCloudContainer = ref<HTMLElement | null>(null);\n\nconst updateFilters = (filters: Partial<Record<string, FilterValue>>): void => {\n activeFilters.value = filters;\n emit('update:filterValues', filters);\n};\n\nconst removeFilter = (\n key: string,\n value: FilterValue | undefined,\n target: FilterItem,\n): void => {\n const next = { ...activeFilters.value };\n\n if (value === undefined) {\n return;\n }\n\n if (Array.isArray(value)) {\n const remaining = value.filter((item: FilterItem) => !isEqual(item, target));\n if (remaining.length === 0) {\n next[key] = null;\n } else if (remaining.length === 1) {\n next[key] = remaining[0];\n } else {\n next[key] = remaining;\n }\n updateFilters(next);\n return;\n }\n\n if (isEqual(value, target)) {\n next[key] = null;\n updateFilters(next);\n }\n};\n\nconst clearFilters = (): void => updateFilters({});\n\nconst emitFilterApply = (payload: { key: string; value: FilterItem[] }): void => {\n emit('filterApply', payload);\n};\n\nconst isFilterDrawerOpen = ref(false);\nconst isColumnDrawerOpen = ref(false);\n\nconst columnVisibility = ref<Record<string, boolean>>({});\n\nconst hiddenColumnCount = computed(() => (currentViewMode.value === 'table'\n ? Object.keys(columnVisibility.value).filter(\n (key: string) => columnVisibility.value[key] === false,\n ).length\n : 0));\n\nconst initVisibility = (cols: ColumnConfig[]): void => {\n cols.forEach((col: ColumnConfig) => {\n const key = col.key ?? String(col.dataIndex);\n if (columnVisibility.value[key] === undefined) {\n columnVisibility.value[key] = true;\n }\n });\n\n if (props.showActionsColumn && columnVisibility.value.actions === undefined) {\n columnVisibility.value.actions = true;\n }\n};\n\nwatch(\n () => props.filterValues,\n (value: FilterValues) => {\n activeFilters.value = value || {};\n },\n);\n\nwatch(\n () => props.viewMode,\n (mode: ViewMode | undefined) => {\n if (mode !== undefined) {\n currentViewMode.value = mode;\n }\n },\n);\n\nwatch(() => props.columns, initVisibility);\n\nwatch(currentViewMode, (mode: ViewMode) => emit('update:viewMode', mode));\n\nonMounted(() => initVisibility(props.columns));\n\nonMounted(() => {\n if (tagCloudContainer.value) {\n autoAnimate(tagCloudContainer.value);\n }\n});\n</script>\n","<template>\n <div ref=\"container\">\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n ref,\n onMounted,\n onBeforeUnmount,\n} from 'vue';\n\nconst props = withDefaults(\n defineProps<{\n onIntersect?:() => void,\n threshold?: number,\n once?: boolean,\n rootMargin?: string,\n }>(),\n {\n threshold: 0.1,\n once: false,\n rootMargin: '0px',\n },\n);\n\nconst container = ref<HTMLElement | null>(null);\nlet observer: IntersectionObserver | null = null;\n\nconst handleIntersection = (entries: IntersectionObserverEntry[]): void => {\n const entry = entries[0];\n if (entry.isIntersecting && props.onIntersect) {\n props.onIntersect();\n if (props.once && observer) {\n observer.disconnect();\n }\n }\n};\n\nonMounted(() => {\n observer = new IntersectionObserver(handleIntersection, {\n threshold: props.threshold,\n rootMargin: props.rootMargin,\n });\n\n if (container.value) {\n observer.observe(container.value);\n }\n});\n\nonBeforeUnmount(() => {\n observer?.disconnect();\n});\n</script>\n"],"names":["_extends","n","e","r","murmur2","str","h","k","i","len","SPLIT","Entity","instanceId","keys","valueFn","path","prevValue","nextValue","withInstall","comp","c","app","objectType","defaultVal","booleanType","anyType","required","type","arrayType","stringType","someType","types","ATTR_TOKEN","ATTR_MARK","CSS_IN_JS_INSTANCE","createCache","cssinjsInstanceId","styles","firstChild","style","styleHash","_a","hash","CacheEntity","StyleContextKey","getCache","_b","_c","instance","getCurrentInstance","cache","globalCache","defaultStyleContext","useStyleInject","inject","shallowRef","useStyleProvider","props","parentContext","context","watch","unref","mergedContext","propsValue","key","value","provide","styleProviderProps","defineComponent","slots","useProdHMR","webpackHMR","useDevHMR","useHMR","win","originWebpackHotUpdate","args","useClientCache","prefix","keyPath","cacheFn","onCacheRemove","styleContext","fullPathStr","res","watchEffect","HMRUpdate","clearCache","pathStr","prevCache","times","newStr","oldStr","tmpCache","mergedCache","onBeforeUnmount","sameDerivativeOption","left","right","ThemeCache","derivativeOption","updateCallTimes","derivative","targetKey","result","callTimes","index","cacheValue","currentCache","derivatives","item","warned","warning","valid","message","resetWarned","call","method","warningOnce","noop","component","vcWarning","uuid","Theme","token","cacheThemes","createTheme","derivativeArr","flattenTokenCache","flattenToken","token2key","salt","EMPTY_OVERRIDE","isProduction","isPrerender","hashPrefix","tokenKeys","recordCleanToken","tokenKey","removeStyleTags","TOKEN_THRESHOLD","cleanTokenStyle","tokenKeyList","cleanableKeyList","getComputedToken","originToken","overrideToken","theme","format","derivativeToken","mergedDerivativeToken","useCacheToken","tokens","option","ref","mergedToken","computed","tokenStr","overrideTokenStr","useGlobalCache","override","formatToken","compute","hashId","version","bound01","max","isOnePointZero","isPercent","isPercentage","clamp01","val","boundAlpha","a","convertToPercentage","pad2","rgbToRgb","g","b","rgbToHsl","min","s","l","d","hue2rgb","p","q","hslToRgb","rgbToHsv","v","hsvToRgb","f","t","mod","rgbToHex","allow3Char","hex","rgbaToHex","allow4Char","convertDecimalToHex","convertHexToDecimal","parseIntFromHex","numberInputToObject","color","names","inputToRGB","rgb","ok","stringInputToObject","isValidCSSUnit","CSS_INTEGER","CSS_NUMBER","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","matchers","named","match","TinyColor","opts","R","G","B","RsRGB","GsRGB","BsRGB","alpha","hsv","hsl","allowShortChar","fmt","x","rnd","_i","formatSet","formattedString","hasAlpha","needsAlphaFormat","amount","hue","rgb1","rgb2","rgba","results","slices","part","ret","modification","background","fg","bg","increment","hueStep","saturationStep","saturationStep2","brightnessStep1","brightnessStep2","lightColorCount","darkColorCount","darkColorMap","toHsv","_ref","toHex","_ref2","mix","getHue","light","getSaturation","saturation","getValue","generate","patterns","pColor","colorString","_hsv","_colorString","_ref3","opacity","darkColorString","presetPrimaryColors","presetPalettes","presetDarkPalettes","genControlHeight","controlHeight","genSizeMapToken","sizeUnit","sizeStep","defaultPresetColors","seedToken","genColorMapToken","seed","generateColorPalettes","generateNeutralColorPalettes","colorSuccessBase","colorWarningBase","colorErrorBase","colorInfoBase","colorPrimaryBase","colorBgBase","colorTextBase","primaryColors","successColors","warningColors","errorColors","infoColors","neutralColors","genRadius","radiusBase","radiusLG","radiusSM","radiusXS","radiusOuter","genCommonMapToken","motionUnit","motionBase","borderRadius","lineWidth","getAlphaColor","baseColor","getSolidColor","brightness","colors","bgBaseColor","textBaseColor","getFontSizes","base","fontSizes","_","baseSize","intSize","size","height","genFontMapToken","fontSize","fontSizePairs","genFontSizes","pair","lineHeights","colorPalettes","colorKey","prev","cur","isStableColor","frontColor","backgroundColor","fR","fG","fB","originAlpha","bR","bG","bB","fA","__rest","restToken","overrideTokens","screenXS","screenSM","screenMD","screenLG","screenXL","screenXXL","screenXXXL","defaultTheme","defaultDerivative","defaultConfig","defaultSeedToken","DesignTokenContextKey","globalDesignTokenApi","useDesignTokenProvider","triggerRef","useToken","designTokenContext","mergedTheme","cacheToken","__props","emit","__emit","tagStyle","hasValidFilter","hasFilters","hasNameField","obj","formatFilterItem","intervalLabel","joinedLabel","nameLabel","jsonLabel","parseFilterValues","isFilterItemEqual","removeFilter","fullValue","itemToRemove","updated","clearAllFilters","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_Fragment","_renderList","filterKey","filterValue","_createBlock","_component_a_tag","_createTextVNode","_toDisplayString","_component_a_button","_cache","_unref","CheckCircleTwoTone","canEdit","editAction","deleteHandler","record","restoreHandler","editHandler","_component_a_tooltip","_createVNode","EyeOutlined","$event","EditOutlined","RedoOutlined","DeleteOutlined","recordValue","column","getNameOrEmpty","name","isEmptyTagValue","normalizeItemLabel","displayItems","label","tagItems","showActionsColumn","_component_a_card","_renderSlot","_ctx","_hoisted_3","_hoisted_4","_hoisted_5","TableCellStatus","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","$slots","_hoisted_10","CardCellActions","container","observer","handleIntersection","entries","onMounted","_component_a_spin","autoAnimate","gridClass","preparedColumns","internalData","mergeData","existingIds","toAdd","isLastPage","loadNextPage","TheCard","rec","bodyRecord","bodyColumns","footerRecord","footerColumns","LazyLoadTrigger","PAGE_SIZE_SMALL","PAGE_SIZE_MEDIUM","PAGE_SIZE_LARGE","PAGE_SIZE_EXTRA_LARGE","PAGE_SIZE_ULTRA","DEFAULT_PAGE_NUMBER","DEFAULT_PAGE_SIZE","FilterMode","PageSizes","PAGE_SIZE_OPTIONS","SkipSizes","TableDefaults","TableSortOrder","SortOrder","_sfc_main$a","VueMultiselect","Empty","_component_VueMultiselect","_mergeProps","_withCtx","_component_a_empty","filterComponent","Multiselect","localValue","handleApply","_resolveDynamicComponent","cellValue","nameValue","hasTagValue","_component_a_skeleton","showFilterButton","localFilterValues","localColumns","inputFilters","filterableColumns","computedColumns","headerAlign","cellAlign","rest","hiddenColumnCount","getFilterArray","setFilterValue","next","compact","applyFilter","newValue","current","unique","candidate","isEqual","rowClassName","onTableChange","_pagination","_filters","sorter","resizeColumn","width","col","newVal","newColumns","tbody","_component_a_table","_component_a_badge","$emit","_component_Icon","TableBodyCell","TableCellActions","FilterDropdown","_component_a_pagination","total","_d","page","drawerOpen","localViewMode","localCardLayout","visibility","reactive","isCardMode","disabledViewMode","mode","layout","view","_component_a_drawer","_component_a_checkbox","_component_a_radio_group","_component_a_radio","_component_a_radio_button","AppstoreOutlined","PicCenterOutlined","inputComponent","inputValue","draft","columnKey","toArray","valueIsEmpty","hasModifications","syncDraft","values","applyFilters","resetFilters","FilterInput","modalOpen","handleCancel","_component_a_modal","ViewMode","CardLayout","currentViewMode","cardLayout","activeFilters","tagCloudContainer","updateFilters","filters","target","remaining","clearFilters","emitFilterApply","payload","isFilterDrawerOpen","isColumnDrawerOpen","columnVisibility","initVisibility","cols","FilterTagCloud","CardGrid","DataTable","CardFiltersModal","CardFiltersDrawer","ColumnSettingsDrawer"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34]}
|