97 lines
4.3 KiB
JavaScript
97 lines
4.3 KiB
JavaScript
"use strict";
|
|
|
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.extract = exports.default = exports.CSS_VAR_PREFIX = void 0;
|
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
var _dynamicCSS = require("rc-util/lib/Dom/dynamicCSS");
|
|
var _react = require("react");
|
|
var _StyleContext = _interopRequireWildcard(require("../StyleContext"));
|
|
var _util = require("../util");
|
|
var _cssVariables = require("../util/css-variables");
|
|
var _useGlobalCache = _interopRequireDefault(require("./useGlobalCache"));
|
|
var _useStyleRegister = require("./useStyleRegister");
|
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
var CSS_VAR_PREFIX = exports.CSS_VAR_PREFIX = 'cssVar';
|
|
var useCSSVarRegister = function useCSSVarRegister(config, fn) {
|
|
var key = config.key,
|
|
prefix = config.prefix,
|
|
unitless = config.unitless,
|
|
ignore = config.ignore,
|
|
token = config.token,
|
|
_config$scope = config.scope,
|
|
scope = _config$scope === void 0 ? '' : _config$scope;
|
|
var _useContext = (0, _react.useContext)(_StyleContext.default),
|
|
instanceId = _useContext.cache.instanceId,
|
|
container = _useContext.container;
|
|
var tokenKey = token._tokenKey;
|
|
var stylePath = [].concat((0, _toConsumableArray2.default)(config.path), [key, scope, tokenKey]);
|
|
var cache = (0, _useGlobalCache.default)(CSS_VAR_PREFIX, stylePath, function () {
|
|
var originToken = fn();
|
|
var _transformToken = (0, _cssVariables.transformToken)(originToken, key, {
|
|
prefix: prefix,
|
|
unitless: unitless,
|
|
ignore: ignore,
|
|
scope: scope
|
|
}),
|
|
_transformToken2 = (0, _slicedToArray2.default)(_transformToken, 2),
|
|
mergedToken = _transformToken2[0],
|
|
cssVarsStr = _transformToken2[1];
|
|
var styleId = (0, _useStyleRegister.uniqueHash)(stylePath, cssVarsStr);
|
|
return [mergedToken, cssVarsStr, styleId, key];
|
|
}, function (_ref) {
|
|
var _ref2 = (0, _slicedToArray2.default)(_ref, 3),
|
|
styleId = _ref2[2];
|
|
if (_util.isClientSide) {
|
|
(0, _dynamicCSS.removeCSS)(styleId, {
|
|
mark: _StyleContext.ATTR_MARK,
|
|
attachTo: container
|
|
});
|
|
}
|
|
}, function (_ref3) {
|
|
var _ref4 = (0, _slicedToArray2.default)(_ref3, 3),
|
|
cssVarsStr = _ref4[1],
|
|
styleId = _ref4[2];
|
|
if (!cssVarsStr) {
|
|
return;
|
|
}
|
|
var style = (0, _dynamicCSS.updateCSS)(cssVarsStr, styleId, {
|
|
mark: _StyleContext.ATTR_MARK,
|
|
prepend: 'queue',
|
|
attachTo: container,
|
|
priority: -999
|
|
});
|
|
style[_StyleContext.CSS_IN_JS_INSTANCE] = instanceId;
|
|
|
|
// Used for `useCacheToken` to remove on batch when token removed
|
|
style.setAttribute(_StyleContext.ATTR_TOKEN, key);
|
|
});
|
|
return cache;
|
|
};
|
|
var extract = exports.extract = function extract(cache, effectStyles, options) {
|
|
var _cache = (0, _slicedToArray2.default)(cache, 4),
|
|
styleStr = _cache[1],
|
|
styleId = _cache[2],
|
|
cssVarKey = _cache[3];
|
|
var _ref5 = options || {},
|
|
plain = _ref5.plain;
|
|
if (!styleStr) {
|
|
return null;
|
|
}
|
|
var order = -999;
|
|
|
|
// ====================== Style ======================
|
|
// Used for rc-util
|
|
var sharedAttrs = {
|
|
'data-rc-order': 'prependQueue',
|
|
'data-rc-priority': "".concat(order)
|
|
};
|
|
var styleText = (0, _util.toStyleStr)(styleStr, cssVarKey, styleId, sharedAttrs, plain);
|
|
return [order, styleId, styleText];
|
|
};
|
|
var _default = exports.default = useCSSVarRegister; |