123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.useRowStyle = exports.useColStyle = exports.prepareRowComponentToken = exports.prepareColComponentToken = exports.getMediaSize = void 0;
- var _cssinjs = require("@ant-design/cssinjs");
- var _internal = require("../../theme/internal");
- // ============================== Row-Shared ==============================
- const genGridRowStyle = token => {
- const {
- componentCls
- } = token;
- return {
- // Grid system
- [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'
- },
- '&-space-evenly': {
- justifyContent: 'space-evenly'
- },
- // Align at the top
- '&-top': {
- alignItems: 'flex-start'
- },
- // Align at the center
- '&-middle': {
- alignItems: 'center'
- },
- '&-bottom': {
- alignItems: 'flex-end'
- }
- }
- };
- };
- // ============================== Col-Shared ==============================
- const genGridColStyle = token => {
- const {
- componentCls
- } = token;
- return {
- // Grid system
- [componentCls]: {
- position: 'relative',
- maxWidth: '100%',
- // Prevent columns from collapsing when empty
- minHeight: 1
- }
- };
- };
- const genLoopGridColumnsStyle = (token, sizeCls) => {
- const {
- prefixCls,
- componentCls,
- gridColumns
- } = token;
- const gridColumnsStyle = {};
- for (let 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}`] = {
- marginInlineStart: 0
- };
- gridColumnsStyle[`${componentCls}${sizeCls}-order-${i}`] = {
- order: 0
- };
- } else {
- gridColumnsStyle[`${componentCls}${sizeCls}-${i}`] = [
- // https://github.com/ant-design/ant-design/issues/44456
- // Form set `display: flex` on Col which will override `display: block`.
- // Let's get it from css variable to support override.
- {
- ['--ant-display']: 'block',
- // Fallback to display if variable not support
- display: 'block'
- }, {
- display: 'var(--ant-display)',
- 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
- };
- }
- }
- // Flex CSS Var
- gridColumnsStyle[`${componentCls}${sizeCls}-flex`] = {
- flex: `var(--${prefixCls}${sizeCls}-flex)`
- };
- return gridColumnsStyle;
- };
- const genGridStyle = (token, sizeCls) => genLoopGridColumnsStyle(token, sizeCls);
- const genGridMediaStyle = (token, screenSize, sizeCls) => ({
- [`@media (min-width: ${(0, _cssinjs.unit)(screenSize)})`]: Object.assign({}, genGridStyle(token, sizeCls))
- });
- const prepareRowComponentToken = () => ({});
- exports.prepareRowComponentToken = prepareRowComponentToken;
- const prepareColComponentToken = () => ({});
- // ============================== Export ==============================
- exports.prepareColComponentToken = prepareColComponentToken;
- const useRowStyle = exports.useRowStyle = (0, _internal.genStyleHooks)('Grid', genGridRowStyle, prepareRowComponentToken);
- const getMediaSize = token => {
- const mediaSizesMap = {
- xs: token.screenXSMin,
- sm: token.screenSMMin,
- md: token.screenMDMin,
- lg: token.screenLGMin,
- xl: token.screenXLMin,
- xxl: token.screenXXLMin
- };
- return mediaSizesMap;
- };
- exports.getMediaSize = getMediaSize;
- const useColStyle = exports.useColStyle = (0, _internal.genStyleHooks)('Grid', token => {
- const gridToken = (0, _internal.mergeToken)(token, {
- gridColumns: 24 // Row is divided into 24 parts in Grid
- });
- const gridMediaSizesMap = getMediaSize(gridToken);
- delete gridMediaSizesMap.xs;
- return [genGridColStyle(gridToken), genGridStyle(gridToken, ''), genGridStyle(gridToken, '-xs'), Object.keys(gridMediaSizesMap).map(key => genGridMediaStyle(gridToken, gridMediaSizesMap[key], `-${key}`)).reduce((pre, cur) => Object.assign(Object.assign({}, pre), cur), {})];
- }, prepareColComponentToken);
|