utils.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.justifyContentValues = exports.flexWrapValues = exports.default = exports.alignItemsValues = void 0;
  7. var _classnames = _interopRequireDefault(require("classnames"));
  8. const flexWrapValues = exports.flexWrapValues = ['wrap', 'nowrap', 'wrap-reverse'];
  9. const justifyContentValues = exports.justifyContentValues = ['flex-start', 'flex-end', 'start', 'end', 'center', 'space-between', 'space-around', 'space-evenly', 'stretch', 'normal', 'left', 'right'];
  10. const alignItemsValues = exports.alignItemsValues = ['center', 'start', 'end', 'flex-start', 'flex-end', 'self-start', 'self-end', 'baseline', 'normal', 'stretch'];
  11. const genClsWrap = (prefixCls, props) => {
  12. const wrap = props.wrap === true ? 'wrap' : props.wrap;
  13. return {
  14. [`${prefixCls}-wrap-${wrap}`]: wrap && flexWrapValues.includes(wrap)
  15. };
  16. };
  17. const genClsAlign = (prefixCls, props) => {
  18. const alignCls = {};
  19. alignItemsValues.forEach(cssKey => {
  20. alignCls[`${prefixCls}-align-${cssKey}`] = props.align === cssKey;
  21. });
  22. alignCls[`${prefixCls}-align-stretch`] = !props.align && !!props.vertical;
  23. return alignCls;
  24. };
  25. const genClsJustify = (prefixCls, props) => {
  26. const justifyCls = {};
  27. justifyContentValues.forEach(cssKey => {
  28. justifyCls[`${prefixCls}-justify-${cssKey}`] = props.justify === cssKey;
  29. });
  30. return justifyCls;
  31. };
  32. function createFlexClassNames(prefixCls, props) {
  33. return (0, _classnames.default)(Object.assign(Object.assign(Object.assign({}, genClsWrap(prefixCls, props)), genClsAlign(prefixCls, props)), genClsJustify(prefixCls, props)));
  34. }
  35. var _default = exports.default = createFlexClassNames;