123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- "use strict";
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.default = useToken;
- exports.unitless = exports.ignore = exports.getComputedToken = void 0;
- var _react = _interopRequireDefault(require("react"));
- var _cssinjs = require("@ant-design/cssinjs");
- var _version = _interopRequireDefault(require("../version"));
- var _context = require("./context");
- var _seed = _interopRequireDefault(require("./themes/seed"));
- var _alias = _interopRequireDefault(require("./util/alias"));
- var __rest = void 0 && (void 0).__rest || function (s, e) {
- var t = {};
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
- if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
- }
- return t;
- };
- const unitless = exports.unitless = {
- lineHeight: true,
- lineHeightSM: true,
- lineHeightLG: true,
- lineHeightHeading1: true,
- lineHeightHeading2: true,
- lineHeightHeading3: true,
- lineHeightHeading4: true,
- lineHeightHeading5: true,
- opacityLoading: true,
- fontWeightStrong: true,
- zIndexPopupBase: true,
- zIndexBase: true,
- opacityImage: true
- };
- const ignore = exports.ignore = {
- motionBase: true,
- motionUnit: true
- };
- const preserve = {
- screenXS: true,
- screenXSMin: true,
- screenXSMax: true,
- screenSM: true,
- screenSMMin: true,
- screenSMMax: true,
- screenMD: true,
- screenMDMin: true,
- screenMDMax: true,
- screenLG: true,
- screenLGMin: true,
- screenLGMax: true,
- screenXL: true,
- screenXLMin: true,
- screenXLMax: true,
- screenXXL: true,
- screenXXLMin: true
- };
- const getComputedToken = (originToken, overrideToken, theme) => {
- const derivativeToken = theme.getDerivativeToken(originToken);
- const {
- override
- } = overrideToken,
- components = __rest(overrideToken, ["override"]);
- // Merge with override
- let mergedDerivativeToken = Object.assign(Object.assign({}, derivativeToken), {
- override
- });
- // Format if needed
- mergedDerivativeToken = (0, _alias.default)(mergedDerivativeToken);
- if (components) {
- Object.entries(components).forEach(([key, value]) => {
- const {
- theme: componentTheme
- } = value,
- componentTokens = __rest(value, ["theme"]);
- let mergedComponentToken = componentTokens;
- if (componentTheme) {
- mergedComponentToken = getComputedToken(Object.assign(Object.assign({}, mergedDerivativeToken), componentTokens), {
- override: componentTokens
- }, componentTheme);
- }
- mergedDerivativeToken[key] = mergedComponentToken;
- });
- }
- return mergedDerivativeToken;
- };
- // ================================== Hook ==================================
- exports.getComputedToken = getComputedToken;
- function useToken() {
- const {
- token: rootDesignToken,
- hashed,
- theme,
- override,
- cssVar
- } = _react.default.useContext(_context.DesignTokenContext);
- const salt = `${_version.default}-${hashed || ''}`;
- const mergedTheme = theme || _context.defaultTheme;
- const [token, hashId, realToken] = (0, _cssinjs.useCacheToken)(mergedTheme, [_seed.default, rootDesignToken], {
- salt,
- override,
- getComputedToken,
- // formatToken will not be consumed after 1.15.0 with getComputedToken.
- // But token will break if @ant-design/cssinjs is under 1.15.0 without it
- formatToken: _alias.default,
- cssVar: cssVar && {
- prefix: cssVar.prefix,
- key: cssVar.key,
- unitless,
- ignore,
- preserve
- }
- });
- return [mergedTheme, realToken, hashed ? hashId : '', token, cssVar];
- }
|