{"ast":null,"code":"import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport hash from '@emotion/hash';\nimport { useContext } from 'react';\nimport StyleContext, { ATTR_TOKEN, CSS_IN_JS_INSTANCE } from \"../StyleContext\";\nimport { flattenToken, memoResult, token2key } from \"../util\";\nimport useGlobalCache from \"./useGlobalCache\";\nvar EMPTY_OVERRIDE = {};\n\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.\nvar hashPrefix = process.env.NODE_ENV !== 'production' ? 'css-dev-only-do-not-override' : 'css';\nvar 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    var styles = document.querySelectorAll(\"style[\".concat(ATTR_TOKEN, \"=\\\"\").concat(key, \"\\\"]\"));\n    styles.forEach(function (style) {\n      if (style[CSS_IN_JS_INSTANCE] === instanceId) {\n        var _style$parentNode;\n        (_style$parentNode = style.parentNode) === null || _style$parentNode === void 0 ? void 0 : _style$parentNode.removeChild(style);\n      }\n    });\n  }\n}\nvar TOKEN_THRESHOLD = 0;\n\n// Remove will check current keys first\nfunction cleanTokenStyle(tokenKey, instanceId) {\n  tokenKeys.set(tokenKey, (tokenKeys.get(tokenKey) || 0) - 1);\n  var tokenKeyList = Array.from(tokenKeys.keys());\n  var cleanableKeyList = tokenKeyList.filter(function (key) {\n    var count = tokenKeys.get(key) || 0;\n    return count <= 0;\n  });\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(function (key) {\n      removeStyleTags(key, instanceId);\n      tokenKeys.delete(key);\n    });\n  }\n}\nexport var getComputedToken = function getComputedToken(originToken, overrideToken, theme, format) {\n  var derivativeToken = theme.getDerivativeToken(originToken);\n\n  // Merge with override\n  var mergedDerivativeToken = _objectSpread(_objectSpread({}, derivativeToken), overrideToken);\n\n  // Format if needed\n  if (format) {\n    mergedDerivativeToken = format(mergedDerivativeToken);\n  }\n  return mergedDerivativeToken;\n};\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) {\n  var option = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  var _useContext = useContext(StyleContext),\n    instanceId = _useContext.cache.instanceId;\n  var _option$salt = option.salt,\n    salt = _option$salt === void 0 ? '' : _option$salt,\n    _option$override = option.override,\n    override = _option$override === void 0 ? EMPTY_OVERRIDE : _option$override,\n    formatToken = option.formatToken,\n    compute = option.getComputedToken;\n\n  // Basic - We do basic cache here\n  var mergedToken = memoResult(function () {\n    return Object.assign.apply(Object, [{}].concat(_toConsumableArray(tokens)));\n  }, tokens);\n  var tokenStr = flattenToken(mergedToken);\n  var overrideTokenStr = flattenToken(override);\n  var cachedToken = useGlobalCache('token', [salt, theme.id, tokenStr, overrideTokenStr], function () {\n    var mergedDerivativeToken = compute ? compute(mergedToken, override, theme) : getComputedToken(mergedToken, override, theme, formatToken);\n\n    // Optimize for `useStyleRegister` performance\n    var tokenKey = token2key(mergedDerivativeToken, salt);\n    mergedDerivativeToken._tokenKey = tokenKey;\n    recordCleanToken(tokenKey);\n    var hashId = \"\".concat(hashPrefix, \"-\").concat(hash(tokenKey));\n    mergedDerivativeToken._hashId = hashId; // Not used\n\n    return [mergedDerivativeToken, hashId];\n  }, function (cache) {\n    // Remove token will remove all related style\n    cleanTokenStyle(cache[0]._tokenKey, instanceId);\n  });\n  return cachedToken;\n}","map":{"version":3,"names":["_toConsumableArray","_objectSpread","hash","useContext","StyleContext","ATTR_TOKEN","CSS_IN_JS_INSTANCE","flattenToken","memoResult","token2key","useGlobalCache","EMPTY_OVERRIDE","hashPrefix","process","env","NODE_ENV","tokenKeys","Map","recordCleanToken","tokenKey","set","get","removeStyleTags","key","instanceId","document","styles","querySelectorAll","concat","forEach","style","_style$parentNode","parentNode","removeChild","TOKEN_THRESHOLD","cleanTokenStyle","tokenKeyList","Array","from","keys","cleanableKeyList","filter","count","length","delete","getComputedToken","originToken","overrideToken","theme","format","derivativeToken","getDerivativeToken","mergedDerivativeToken","useCacheToken","tokens","option","arguments","undefined","_useContext","cache","_option$salt","salt","_option$override","override","formatToken","compute","mergedToken","Object","assign","apply","tokenStr","overrideTokenStr","cachedToken","id","_tokenKey","hashId","_hashId"],"sources":["/Users/chrishaack/UC_Trains_Voice/react-demo/node_modules/@ant-design/cssinjs/es/hooks/useCacheToken.js"],"sourcesContent":["import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport hash from '@emotion/hash';\nimport { useContext } from 'react';\nimport StyleContext, { ATTR_TOKEN, CSS_IN_JS_INSTANCE } from \"../StyleContext\";\nimport { flattenToken, memoResult, token2key } from \"../util\";\nimport useGlobalCache from \"./useGlobalCache\";\nvar EMPTY_OVERRIDE = {};\n\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.\nvar hashPrefix = process.env.NODE_ENV !== 'production' ? 'css-dev-only-do-not-override' : 'css';\nvar 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    var styles = document.querySelectorAll(\"style[\".concat(ATTR_TOKEN, \"=\\\"\").concat(key, \"\\\"]\"));\n    styles.forEach(function (style) {\n      if (style[CSS_IN_JS_INSTANCE] === instanceId) {\n        var _style$parentNode;\n        (_style$parentNode = style.parentNode) === null || _style$parentNode === void 0 ? void 0 : _style$parentNode.removeChild(style);\n      }\n    });\n  }\n}\nvar TOKEN_THRESHOLD = 0;\n\n// Remove will check current keys first\nfunction cleanTokenStyle(tokenKey, instanceId) {\n  tokenKeys.set(tokenKey, (tokenKeys.get(tokenKey) || 0) - 1);\n  var tokenKeyList = Array.from(tokenKeys.keys());\n  var cleanableKeyList = tokenKeyList.filter(function (key) {\n    var count = tokenKeys.get(key) || 0;\n    return count <= 0;\n  });\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(function (key) {\n      removeStyleTags(key, instanceId);\n      tokenKeys.delete(key);\n    });\n  }\n}\nexport var getComputedToken = function getComputedToken(originToken, overrideToken, theme, format) {\n  var derivativeToken = theme.getDerivativeToken(originToken);\n\n  // Merge with override\n  var mergedDerivativeToken = _objectSpread(_objectSpread({}, derivativeToken), overrideToken);\n\n  // Format if needed\n  if (format) {\n    mergedDerivativeToken = format(mergedDerivativeToken);\n  }\n  return mergedDerivativeToken;\n};\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) {\n  var option = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  var _useContext = useContext(StyleContext),\n    instanceId = _useContext.cache.instanceId;\n  var _option$salt = option.salt,\n    salt = _option$salt === void 0 ? '' : _option$salt,\n    _option$override = option.override,\n    override = _option$override === void 0 ? EMPTY_OVERRIDE : _option$override,\n    formatToken = option.formatToken,\n    compute = option.getComputedToken;\n\n  // Basic - We do basic cache here\n  var mergedToken = memoResult(function () {\n    return Object.assign.apply(Object, [{}].concat(_toConsumableArray(tokens)));\n  }, tokens);\n  var tokenStr = flattenToken(mergedToken);\n  var overrideTokenStr = flattenToken(override);\n  var cachedToken = useGlobalCache('token', [salt, theme.id, tokenStr, overrideTokenStr], function () {\n    var mergedDerivativeToken = compute ? compute(mergedToken, override, theme) : getComputedToken(mergedToken, override, theme, formatToken);\n\n    // Optimize for `useStyleRegister` performance\n    var tokenKey = token2key(mergedDerivativeToken, salt);\n    mergedDerivativeToken._tokenKey = tokenKey;\n    recordCleanToken(tokenKey);\n    var hashId = \"\".concat(hashPrefix, \"-\").concat(hash(tokenKey));\n    mergedDerivativeToken._hashId = hashId; // Not used\n\n    return [mergedDerivativeToken, hashId];\n  }, function (cache) {\n    // Remove token will remove all related style\n    cleanTokenStyle(cache[0]._tokenKey, instanceId);\n  });\n  return cachedToken;\n}"],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}