UNPKG

5.54 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports.default = exports.colProps = void 0;
9
10var _vue = require("vue");
11
12var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
14var _extends3 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
16var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
17
18var _classNames2 = _interopRequireDefault(require("../_util/classNames"));
19
20var _useConfigInject2 = _interopRequireDefault(require("../_util/hooks/useConfigInject"));
21
22var _context = require("./context");
23
24function parseFlex(flex) {
25 if (typeof flex === 'number') {
26 return "".concat(flex, " ").concat(flex, " auto");
27 }
28
29 if (/^\d+(\.\d+)?(px|em|rem|%)$/.test(flex)) {
30 return "0 0 ".concat(flex);
31 }
32
33 return flex;
34}
35
36var colProps = function colProps() {
37 return {
38 span: [String, Number],
39 order: [String, Number],
40 offset: [String, Number],
41 push: [String, Number],
42 pull: [String, Number],
43 xs: {
44 type: [String, Number, Object]
45 },
46 sm: {
47 type: [String, Number, Object]
48 },
49 md: {
50 type: [String, Number, Object]
51 },
52 lg: {
53 type: [String, Number, Object]
54 },
55 xl: {
56 type: [String, Number, Object]
57 },
58 xxl: {
59 type: [String, Number, Object]
60 },
61 xxxl: {
62 type: [String, Number, Object]
63 },
64 prefixCls: String,
65 flex: [String, Number]
66 };
67};
68
69exports.colProps = colProps;
70
71var _default = (0, _vue.defineComponent)({
72 name: 'ACol',
73 props: colProps(),
74 setup: function setup(props, _ref) {
75 var slots = _ref.slots;
76
77 var _useInjectRow = (0, _context.useInjectRow)(),
78 gutter = _useInjectRow.gutter,
79 supportFlexGap = _useInjectRow.supportFlexGap,
80 wrap = _useInjectRow.wrap;
81
82 var _useConfigInject = (0, _useConfigInject2.default)('col', props),
83 prefixCls = _useConfigInject.prefixCls,
84 direction = _useConfigInject.direction;
85
86 var classes = (0, _vue.computed)(function () {
87 var _classNames;
88
89 var span = props.span,
90 order = props.order,
91 offset = props.offset,
92 push = props.push,
93 pull = props.pull;
94 var pre = prefixCls.value;
95 var sizeClassObj = {};
96 ['xs', 'sm', 'md', 'lg', 'xl', 'xxl', 'xxxl'].forEach(function (size) {
97 var _extends2;
98
99 var sizeProps = {};
100 var propSize = props[size];
101
102 if (typeof propSize === 'number') {
103 sizeProps.span = propSize;
104 } else if ((0, _typeof2.default)(propSize) === 'object') {
105 sizeProps = propSize || {};
106 }
107
108 sizeClassObj = (0, _extends3.default)((0, _extends3.default)({}, sizeClassObj), (_extends2 = {}, (0, _defineProperty2.default)(_extends2, "".concat(pre, "-").concat(size, "-").concat(sizeProps.span), sizeProps.span !== undefined), (0, _defineProperty2.default)(_extends2, "".concat(pre, "-").concat(size, "-order-").concat(sizeProps.order), sizeProps.order || sizeProps.order === 0), (0, _defineProperty2.default)(_extends2, "".concat(pre, "-").concat(size, "-offset-").concat(sizeProps.offset), sizeProps.offset || sizeProps.offset === 0), (0, _defineProperty2.default)(_extends2, "".concat(pre, "-").concat(size, "-push-").concat(sizeProps.push), sizeProps.push || sizeProps.push === 0), (0, _defineProperty2.default)(_extends2, "".concat(pre, "-").concat(size, "-pull-").concat(sizeProps.pull), sizeProps.pull || sizeProps.pull === 0), (0, _defineProperty2.default)(_extends2, "".concat(pre, "-rtl"), direction.value === 'rtl'), _extends2));
109 });
110 return (0, _classNames2.default)(pre, (_classNames = {}, (0, _defineProperty2.default)(_classNames, "".concat(pre, "-").concat(span), span !== undefined), (0, _defineProperty2.default)(_classNames, "".concat(pre, "-order-").concat(order), order), (0, _defineProperty2.default)(_classNames, "".concat(pre, "-offset-").concat(offset), offset), (0, _defineProperty2.default)(_classNames, "".concat(pre, "-push-").concat(push), push), (0, _defineProperty2.default)(_classNames, "".concat(pre, "-pull-").concat(pull), pull), _classNames), sizeClassObj);
111 });
112 var mergedStyle = (0, _vue.computed)(function () {
113 var flex = props.flex;
114 var gutterVal = gutter.value;
115 var style = {}; // Horizontal gutter use padding
116
117 if (gutterVal && gutterVal[0] > 0) {
118 var horizontalGutter = "".concat(gutterVal[0] / 2, "px");
119 style.paddingLeft = horizontalGutter;
120 style.paddingRight = horizontalGutter;
121 } // Vertical gutter use padding when gap not support
122
123
124 if (gutterVal && gutterVal[1] > 0 && !supportFlexGap.value) {
125 var verticalGutter = "".concat(gutterVal[1] / 2, "px");
126 style.paddingTop = verticalGutter;
127 style.paddingBottom = verticalGutter;
128 }
129
130 if (flex) {
131 style.flex = parseFlex(flex); // Hack for Firefox to avoid size issue
132 // https://github.com/ant-design/ant-design/pull/20023#issuecomment-564389553
133
134 if (wrap.value === false && !style.minWidth) {
135 style.minWidth = 0;
136 }
137 }
138
139 return style;
140 });
141 return function () {
142 var _a;
143
144 return (0, _vue.createVNode)("div", {
145 "class": classes.value,
146 "style": mergedStyle.value
147 }, [(_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots)]);
148 };
149 }
150});
151
152exports.default = _default;
\No newline at end of file