You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

41 lines
1.3 KiB

  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.mergeClasses = undefined;
  6. var _forOwn2 = require('lodash/forOwn');
  7. var _forOwn3 = _interopRequireDefault(_forOwn2);
  8. var _cloneDeep2 = require('lodash/cloneDeep');
  9. var _cloneDeep3 = _interopRequireDefault(_cloneDeep2);
  10. var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
  11. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  12. var mergeClasses = exports.mergeClasses = function mergeClasses(classes) {
  13. var activeNames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
  14. var styles = classes.default && (0, _cloneDeep3.default)(classes.default) || {};
  15. activeNames.map(function (name) {
  16. var toMerge = classes[name];
  17. if (toMerge) {
  18. (0, _forOwn3.default)(toMerge, function (value, key) {
  19. if (!styles[key]) {
  20. styles[key] = {};
  21. }
  22. styles[key] = _extends({}, styles[key], toMerge[key]);
  23. });
  24. }
  25. return name;
  26. });
  27. return styles;
  28. };
  29. exports.default = mergeClasses;