示例#1
0
        /// <summary>
        /// Creates the new fill rule on the current flex definition.
        /// </summary>
        /// <returns>Next rule reference.</returns>
        public IFluentFlexAll WithFill()
        {
            currentFlexDefinition      = CreateDefinition();
            currentFlexDefinition.Fill = true;
            Dirty();

            return(this);
        }
示例#2
0
        /// <summary>
        /// Applies the order rule to the current flex definition.
        /// </summary>
        /// <param name="order">Order to be apply.</param>
        /// <returns>Next rule reference.</returns>
        public IFluentFlexAll WithOrder(FlexOrder order)
        {
            currentFlexDefinition       = GetDefinition();
            currentFlexDefinition.Order = order;
            Dirty();

            return(this);
        }
示例#3
0
        /// <inheritdoc/>
        public IFluentFlexAll If(bool condition)
        {
            currentFlexDefinition           = GetDefinition();
            currentFlexDefinition.Condition = condition;
            Dirty();

            return(this);
        }
示例#4
0
        /// <summary>
        /// Creates the new order rule on the current flex definition.
        /// </summary>
        /// <returns>Next rule reference.</returns>
        public IFluentFlexOrderNumber WithOrder()
        {
            currentFlexDefinition       = CreateDefinition();
            currentFlexDefinition.Order = FlexOrder.Default;
            Dirty();

            return(this);
        }
示例#5
0
        /// <summary>
        /// Applies the direction rule to the current flex definition.
        /// </summary>
        /// <param name="direction">Direction to be apply.</param>
        /// <returns>Next rule reference.</returns>
        public IFluentFlexAll WithDirection(FlexDirection direction)
        {
            currentFlexDefinition           = CreateDefinition();
            currentFlexDefinition.Direction = direction;
            Dirty();

            return(this);
        }
示例#6
0
        /// <summary>
        /// Creates the new grow or shrink rule on the current flex definition.
        /// </summary>
        /// <returns>Next rule reference.</returns>
        public IFluentFlexGrowShrinkSize WithGrowShrink(FlexGrowShrink growShrink)
        {
            currentFlexDefinition            = CreateDefinition();
            currentFlexDefinition.GrowShrink = growShrink;
            Dirty();

            return(this);
        }
示例#7
0
        /// <summary>
        /// Applies the align-content rule to the current flex definition.
        /// </summary>
        /// <param name="alignContent">Align-content to be apply.</param>
        /// <returns>Next rule reference.</returns>
        public IFluentFlexAll WithAlignContent(FlexAlignContent alignContent)
        {
            currentFlexDefinition = GetDefinition();
            currentFlexDefinition.AlignContent = alignContent;
            Dirty();

            return(this);
        }
示例#8
0
        /// <summary>
        /// Applies the grow or shrink size rule to the current flex definition.
        /// </summary>
        /// <param name="growShrinkSize">Grow or shrink size to be apply.</param>
        /// <returns>Next rule reference.</returns>
        public IFluentFlexAll WithGrowShrinkSize(FlexGrowShrinkSize growShrinkSize)
        {
            currentFlexDefinition = GetDefinition();
            currentFlexDefinition.GrowShrinkSize = growShrinkSize;
            Dirty();

            return(this);
        }
示例#9
0
        /// <summary>
        /// Applies the align-self rule to the current flex definition.
        /// </summary>
        /// <param name="alignSelf">Align-self to be apply.</param>
        /// <returns>Next rule reference.</returns>
        public IFluentFlexAll WithAlignSelf(FlexAlignSelf alignSelf)
        {
            currentFlexDefinition           = GetDefinition();
            currentFlexDefinition.AlignSelf = alignSelf;
            Dirty();

            return(this);
        }
示例#10
0
        /// <summary>
        /// Creates the new align-content rule on the current flex definition.
        /// </summary>
        /// <returns>Next rule reference.</returns>
        public IFluentFlexAlignContentPosition WithAlignContent()
        {
            currentFlexDefinition = CreateDefinition();
            currentFlexDefinition.AlignContent = FlexAlignContent.Default;
            Dirty();

            return(this);
        }
示例#11
0
        /// <summary>
        /// Applies the align-items rule to the current flex definition.
        /// </summary>
        /// <param name="alignItems">Align-items to be apply.</param>
        /// <returns>Next rule reference.</returns>
        public IFluentFlexAll WithAlignItems(FlexAlignItems alignItems)
        {
            currentFlexDefinition            = GetDefinition();
            currentFlexDefinition.AlignItems = alignItems;
            Dirty();

            return(this);
        }
示例#12
0
        /// <summary>
        /// Creates the new align-self rule on the current flex definition.
        /// </summary>
        /// <returns>Next rule reference.</returns>
        public IFluentFlexAlignSelfPosition WithAlignSelf()
        {
            currentFlexDefinition           = CreateDefinition();
            currentFlexDefinition.AlignSelf = FlexAlignSelf.Default;
            Dirty();

            return(this);
        }
示例#13
0
        /// <summary>
        /// Applies the justify-content rule to the current flex definition.
        /// </summary>
        /// <param name="justifyContent">Justify-content to be apply.</param>
        /// <returns>Next rule reference.</returns>
        public IFluentFlexAll WithJustifyContent(FlexJustifyContent justifyContent)
        {
            currentFlexDefinition = GetDefinition();
            currentFlexDefinition.JustifyContent = justifyContent;
            Dirty();

            return(this);
        }
示例#14
0
        /// <summary>
        /// Creates the new align-items rule on the current flex definition.
        /// </summary>
        /// <returns>Next rule reference.</returns>
        public IFluentFlexAlignItemsPosition WithAlignItems()
        {
            currentFlexDefinition            = CreateDefinition();
            currentFlexDefinition.AlignItems = FlexAlignItems.Default;
            Dirty();

            return(this);
        }
示例#15
0
        /// <summary>
        /// Creates the new justify-content rule on the current flex definition.
        /// </summary>
        /// <returns>Next rule reference.</returns>
        public IFluentFlexJustifyContentPositions WithJustifyContent()
        {
            currentFlexDefinition = CreateDefinition();
            currentFlexDefinition.JustifyContent = FlexJustifyContent.Default;
            Dirty();

            return(this);
        }
示例#16
0
        /// <summary>
        /// Creates the new wrap rule on the current flex definition.
        /// </summary>
        /// <returns>Next rule reference.</returns>
        public IFluentFlexAll WithWrap(FlexWrap wrap)
        {
            currentFlexDefinition      = CreateDefinition();
            currentFlexDefinition.Wrap = wrap;
            Dirty();

            return(this);
        }
示例#17
0
        /// <summary>
        /// Applies the breakpoint rule to the current flex definition.
        /// </summary>
        /// <param name="breakpoint">Breakpoint to be apply.</param>
        /// <returns>Next rule reference.</returns>
        public IFluentFlexAll WithBreakpoint(Breakpoint breakpoint)
        {
            currentFlexDefinition            = GetDefinition();
            currentFlexDefinition.Breakpoint = breakpoint;
            Dirty();

            return(this);
        }
示例#18
0
        /// <summary>
        /// Gets the current flex definition.
        /// </summary>
        /// <returns>Current definition or new if none was found.</returns>
        private FlexDefinition GetDefinition()
        {
            if (currentFlexDefinition == null)
            {
                currentFlexDefinition = CreateDefinition();
            }

            return(currentFlexDefinition);
        }
示例#19
0
        /// <summary>
        /// Creates the new flex definition.
        /// </summary>
        /// <returns>The newly created flex definition.</returns>
        private FlexDefinition CreateDefinition()
        {
            rules ??= new();

            var flexDefinition = new FlexDefinition();

            if (rules.TryGetValue(currentFlexType, out var rule))
            {
                rule.Add(flexDefinition);
            }
            else
            {
                rules.Add(currentFlexType, new() { flexDefinition });
            }

            return(flexDefinition);
        }