internal.js 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.DesignTokenProvider = void 0;
  7. Object.defineProperty(exports, "PresetColors", {
  8. enumerable: true,
  9. get: function () {
  10. return _interface.PresetColors;
  11. }
  12. });
  13. exports.defaultConfig = void 0;
  14. Object.defineProperty(exports, "genComponentStyleHook", {
  15. enumerable: true,
  16. get: function () {
  17. return _genComponentStyleHook.default;
  18. }
  19. });
  20. exports.globalDesignTokenApi = void 0;
  21. Object.defineProperty(exports, "mergeToken", {
  22. enumerable: true,
  23. get: function () {
  24. return _statistic.merge;
  25. }
  26. });
  27. Object.defineProperty(exports, "statistic", {
  28. enumerable: true,
  29. get: function () {
  30. return _statistic.statistic;
  31. }
  32. });
  33. Object.defineProperty(exports, "statisticToken", {
  34. enumerable: true,
  35. get: function () {
  36. return _statistic.default;
  37. }
  38. });
  39. exports.useDesignTokenProvider = exports.useDesignTokenInject = void 0;
  40. Object.defineProperty(exports, "useStyleRegister", {
  41. enumerable: true,
  42. get: function () {
  43. return _cssinjs.useStyleRegister;
  44. }
  45. });
  46. exports.useToken = useToken;
  47. var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
  48. var _cssinjs = require("../_util/cssinjs");
  49. var _version = _interopRequireDefault(require("../version"));
  50. var _interface = require("./interface");
  51. var _default = _interopRequireDefault(require("./themes/default"));
  52. var _seed = _interopRequireDefault(require("./themes/seed"));
  53. var _alias = _interopRequireDefault(require("./util/alias"));
  54. var _genComponentStyleHook = _interopRequireDefault(require("./util/genComponentStyleHook"));
  55. var _statistic = _interopRequireWildcard(require("./util/statistic"));
  56. var _type = require("../_util/type");
  57. var _vue = require("vue");
  58. function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
  59. 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; }
  60. const defaultTheme = (0, _cssinjs.createTheme)(_default.default);
  61. // ================================ Context =================================
  62. // To ensure snapshot stable. We disable hashed in test env.
  63. const defaultConfig = exports.defaultConfig = {
  64. token: _seed.default,
  65. hashed: true
  66. };
  67. //defaultConfig
  68. const DesignTokenContextKey = Symbol('DesignTokenContext');
  69. const globalDesignTokenApi = exports.globalDesignTokenApi = (0, _vue.shallowRef)();
  70. const useDesignTokenProvider = value => {
  71. (0, _vue.provide)(DesignTokenContextKey, value);
  72. (0, _vue.watch)(value, () => {
  73. globalDesignTokenApi.value = (0, _vue.unref)(value);
  74. (0, _vue.triggerRef)(globalDesignTokenApi);
  75. }, {
  76. immediate: true,
  77. deep: true
  78. });
  79. };
  80. exports.useDesignTokenProvider = useDesignTokenProvider;
  81. const useDesignTokenInject = () => {
  82. return (0, _vue.inject)(DesignTokenContextKey, (0, _vue.computed)(() => globalDesignTokenApi.value || defaultConfig));
  83. };
  84. exports.useDesignTokenInject = useDesignTokenInject;
  85. const DesignTokenProvider = exports.DesignTokenProvider = (0, _vue.defineComponent)({
  86. props: {
  87. value: (0, _type.objectType)()
  88. },
  89. setup(props, _ref) {
  90. let {
  91. slots
  92. } = _ref;
  93. useDesignTokenProvider((0, _vue.computed)(() => props.value));
  94. return () => {
  95. var _a;
  96. return (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots);
  97. };
  98. }
  99. });
  100. // ================================== Hook ==================================
  101. function useToken() {
  102. const designTokenContext = (0, _vue.inject)(DesignTokenContextKey, (0, _vue.computed)(() => globalDesignTokenApi.value || defaultConfig));
  103. const salt = (0, _vue.computed)(() => `${_version.default}-${designTokenContext.value.hashed || ''}`);
  104. const mergedTheme = (0, _vue.computed)(() => designTokenContext.value.theme || defaultTheme);
  105. const cacheToken = (0, _cssinjs.useCacheToken)(mergedTheme, (0, _vue.computed)(() => [_seed.default, designTokenContext.value.token]), (0, _vue.computed)(() => ({
  106. salt: salt.value,
  107. override: (0, _extends2.default)({
  108. override: designTokenContext.value.token
  109. }, designTokenContext.value.components),
  110. formatToken: _alias.default
  111. })));
  112. return [mergedTheme, (0, _vue.computed)(() => cacheToken.value[0]), (0, _vue.computed)(() => designTokenContext.value.hashed ? cacheToken.value[1] : '')];
  113. }