UNPKG

antd

Version:

An enterprise-class UI design language and React components implementation

134 lines (133 loc) 4.48 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import _defineProperty from "@babel/runtime/helpers/esm/defineProperty"; import { genComponentStyleHook, mergeToken } from '../../theme'; // ============================== Row-Shared ============================== var genGridRowStyle = function genGridRowStyle(token) { var componentCls = token.componentCls; return _defineProperty({}, componentCls, { display: 'flex', flexFlow: 'row wrap', minWidth: 0, '&::before, &::after': { display: 'flex' }, '&-no-wrap': { flexWrap: 'nowrap' }, // The origin of the X-axis '&-start': { justifyContent: 'flex-start' }, // The center of the X-axis '&-center': { justifyContent: 'center' }, // The opposite of the X-axis '&-end': { justifyContent: 'flex-end' }, '&-space-between': { justifyContent: 'space-between' }, '&-space-around ': { justifyContent: 'space-around' }, // Align at the top '&-top': { alignItems: 'flex-start' }, // Align at the center '&-middle': { alignItems: 'center' }, '&-bottom': { alignItems: 'flex-end' } }); }; // ============================== Col-Shared ============================== var genGridColStyle = function genGridColStyle(token) { var componentCls = token.componentCls; return _defineProperty({}, componentCls, { position: 'relative', maxWidth: '100%', // Prevent columns from collapsing when empty minHeight: 1 }); }; var genLoopGridColumnsStyle = function genLoopGridColumnsStyle(token, sizeCls) { var componentCls = token.componentCls, gridColumns = token.gridColumns; var gridColumnsStyle = {}; for (var i = gridColumns; i >= 0; i--) { if (i === 0) { gridColumnsStyle["" + componentCls + sizeCls + "-" + i] = { display: 'none' }; gridColumnsStyle[componentCls + "-push-" + i] = { insetInlineStart: 'auto' }; gridColumnsStyle[componentCls + "-pull-" + i] = { insetInlineEnd: 'auto' }; gridColumnsStyle["" + componentCls + sizeCls + "-push-" + i] = { insetInlineStart: 'auto' }; gridColumnsStyle["" + componentCls + sizeCls + "-pull-" + i] = { insetInlineEnd: 'auto' }; gridColumnsStyle["" + componentCls + sizeCls + "-offset-" + i] = { marginInlineEnd: 0 }; gridColumnsStyle["" + componentCls + sizeCls + "-order-" + i] = { order: 0 }; } else { gridColumnsStyle["" + componentCls + sizeCls + "-" + i] = { display: 'block', flex: "0 0 " + i / gridColumns * 100 + "%", maxWidth: i / gridColumns * 100 + "%" }; gridColumnsStyle["" + componentCls + sizeCls + "-push-" + i] = { insetInlineStart: i / gridColumns * 100 + "%" }; gridColumnsStyle["" + componentCls + sizeCls + "-pull-" + i] = { insetInlineEnd: i / gridColumns * 100 + "%" }; gridColumnsStyle["" + componentCls + sizeCls + "-offset-" + i] = { marginInlineStart: i / gridColumns * 100 + "%" }; gridColumnsStyle["" + componentCls + sizeCls + "-order-" + i] = { order: i }; } } return gridColumnsStyle; }; var genGridStyle = function genGridStyle(token, sizeCls) { return genLoopGridColumnsStyle(token, sizeCls); }; var genGridMediaStyle = function genGridMediaStyle(token, screenSize, sizeCls) { return _defineProperty({}, "@media (min-width: " + screenSize + "px)", _extends({}, genGridStyle(token, sizeCls))); }; // ============================== Export ============================== export var useRowStyle = genComponentStyleHook('Grid', function (token) { return [genGridRowStyle(token)]; }); export var useColStyle = genComponentStyleHook('Grid', function (token) { var gridToken = mergeToken(token, { gridColumns: 24 // Row is divided into 24 parts in Grid }); var gridMediaSizesMap = { '-sm': gridToken.screenSMMin, '-md': gridToken.screenMDMin, '-lg': gridToken.screenLGMin, '-xl': gridToken.screenXLMin, '-xxl': gridToken.screenXXLMin }; return [genGridColStyle(gridToken), genGridStyle(gridToken, ''), genGridStyle(gridToken, '-xs'), Object.keys(gridMediaSizesMap).map(function (key) { return genGridMediaStyle(gridToken, gridMediaSizesMap[key], key); }).reduce(function (pre, cur) { return _extends(_extends({}, pre), cur); }, {})]; });