40 lines
1.5 KiB
JavaScript
40 lines
1.5 KiB
JavaScript
"use strict";
|
|
|
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.default = void 0;
|
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
var _warning = require("rc-util/lib/warning");
|
|
var uuid = 0;
|
|
|
|
/**
|
|
* Theme with algorithms to derive tokens from design tokens.
|
|
* Use `createTheme` first which will help to manage the theme instance cache.
|
|
*/
|
|
var Theme = /*#__PURE__*/function () {
|
|
function Theme(derivatives) {
|
|
(0, _classCallCheck2.default)(this, Theme);
|
|
(0, _defineProperty2.default)(this, "derivatives", void 0);
|
|
(0, _defineProperty2.default)(this, "id", void 0);
|
|
this.derivatives = Array.isArray(derivatives) ? derivatives : [derivatives];
|
|
this.id = uuid;
|
|
if (derivatives.length === 0) {
|
|
(0, _warning.warning)(derivatives.length > 0, '[Ant Design CSS-in-JS] Theme should have at least one derivative function.');
|
|
}
|
|
uuid += 1;
|
|
}
|
|
(0, _createClass2.default)(Theme, [{
|
|
key: "getDerivativeToken",
|
|
value: function getDerivativeToken(token) {
|
|
return this.derivatives.reduce(function (result, derivative) {
|
|
return derivative(token, result);
|
|
}, undefined);
|
|
}
|
|
}]);
|
|
return Theme;
|
|
}();
|
|
exports.default = Theme; |