<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<control xmlns="http://www.sap.com/sap.ui.library.xsd">
    <name>GridContainer</name>
    <derived/>
    <author>SAP SE</author>
    <documentation>A layout container control used for aligning items with various sizes in a simple grid.

&lt;h3&gt;Overview&lt;/h3&gt;

The control is used to align tiles, cards and other controls in configuration, such as a home page or a dashboard.
It represents a grid layout with specific row and column sizes, in which the items can take any number of rows and columns.

The number of columns and rows each item takes can be configured with the use of the &lt;code&gt;{@link sap.f.GridContainerItemLayoutData}&lt;/code&gt;.

All rows have the same height and all columns have the same width. Their sizes can be configured with the use of the &lt;code&gt;layout&lt;/code&gt; aggregation and &lt;code&gt;{@link sap.f.GridContainerSettings}&lt;/code&gt;.

&lt;h3&gt;Usage&lt;/h3&gt;

&lt;i&gt;When to use&lt;/i&gt;
&lt;ul&gt;
&lt;li&gt;For aligning home page and dashboard items like Tiles and Cards in a simple grid system with equally sized rows and columns.&lt;/li&gt;
&lt;/ul&gt;

&lt;i&gt;When not to use&lt;/i&gt;
&lt;ul&gt;
&lt;li&gt;If a more complex layout grid system, where columns and rows may vary in size, is needed.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Example:&lt;/h3&gt;
&lt;pre&gt;
&amp;lt;f:GridContainer&amp;gt;
	&amp;lt;f:layout&amp;gt;
		&amp;lt;f:GridContainerSettings rowSize=&amp;quot;5rem&amp;quot; columnSize=&amp;quot;5rem&amp;quot; gap=&amp;quot;1rem&amp;quot; /&amp;gt;
	&amp;lt;/f:layout&amp;gt;
	&amp;lt;f:layoutS&amp;gt;
		&amp;lt;f:GridContainerSettings rowSize=&amp;quot;4rem&amp;quot; columnSize=&amp;quot;4rem&amp;quot; gap=&amp;quot;0.5rem&amp;quot; /&amp;gt;
	&amp;lt;/f:layoutS&amp;gt;
	&amp;lt;f:items&amp;gt;
		&amp;lt;GenericTile header=&amp;quot;Sales Fulfillment&amp;quot;&amp;gt;
			&amp;lt;layoutData&amp;gt;
				&amp;lt;f:GridContainerItemLayoutData rows=&amp;quot;2&amp;quot; columns=&amp;quot;2&amp;quot; /&amp;gt;
			&amp;lt;/layoutData&amp;gt;
		&amp;lt;/GenericTile&amp;gt;
		&amp;lt;w:Card manifest=&amp;quot;url-to-manifest&amp;quot;&amp;gt;
			&amp;lt;w:layoutData&amp;gt;
				&amp;lt;f:GridContainerItemLayoutData rows=&amp;quot;6&amp;quot; columns=&amp;quot;3&amp;quot; /&amp;gt;
			&amp;lt;/w:layoutData&amp;gt;
		&amp;lt;/w:Card&amp;gt;
		&amp;lt;Panel&amp;gt;
			&amp;lt;layoutData&amp;gt;
				&amp;lt;f:GridContainerItemLayoutData columns=&amp;quot;4&amp;quot; /&amp;gt;
			&amp;lt;/layoutData&amp;gt;
			&amp;lt;Text text=&amp;quot;Sales information&amp;quot; /&amp;gt;
		&amp;lt;/Panel&amp;gt;
	&amp;lt;/f:items&amp;gt;
&amp;lt;/f:GridContainer&amp;gt;
&lt;/pre&gt;

&lt;h3&gt;Drag and drop:&lt;/h3&gt;
Drag and drop is enabled for the &lt;code&gt;GridContainer&lt;/code&gt; with enhanced visualization and interaction, better suited for grid items. This is configured by using the &lt;code&gt;{@link sap.f.dnd.GridDropInfo}&lt;/code&gt;.

Similar to the &lt;code&gt;{@link sap.ui.core.dnd.DropInfo}&lt;/code&gt;, &lt;code&gt;{@link sap.f.dnd.GridDropInfo}&lt;/code&gt; has to be added to the &lt;code&gt;dragDropConfig&lt;/code&gt; aggregation, by using &lt;code&gt;{@link sap.ui.core.Element#addDragDropConfig}&lt;/code&gt;.

Both &lt;code&gt;{@link sap.ui.core.dnd.DropInfo}&lt;/code&gt; and &lt;code&gt;{@link sap.f.dnd.GridDropInfo}&lt;/code&gt; can be used to configure drag and drop.
The difference is that the &lt;code&gt;{@link sap.f.dnd.GridDropInfo}&lt;/code&gt; will provide a drop indicator, which mimics the size of the dragged item and shows the potential drop position inside the grid.</documentation>
    <since>1.65</since>
    <baseType>sap.ui.core/Control</baseType>
    <properties>
        <property name="width" type="sap.ui.core/CSSSize" defaultValue="" group="Appearance">
            <documentation>Defines the width of the control.</documentation>
        </property>
        <property name="containerQuery" type="sap.ui.core/boolean" defaultValue="false" group="Behavior">
            <documentation>If set to &lt;code&gt;true&lt;/code&gt; the current range (large, medium or small) is defined by the size of the
container surrounding the &lt;code&gt;GridContainer&lt;/code&gt;, instead of the device screen size (media Query).</documentation>
        </property>
        <property name="snapToRow" type="sap.ui.core/boolean" defaultValue="false" group="Appearance">
            <documentation>Should the items stretch to fill the rows that they occupy, or not.

If set to &lt;code&gt;true&lt;/code&gt; the items will stretch.</documentation>
        </property>
        <property name="allowDenseFill" type="sap.ui.core/boolean" defaultValue="false" group="Appearance">
            <documentation>Increases the density when arranging the items. Smaller items will take up all of the available space, ignoring their order.

&lt;b&gt;Note:&lt;/b&gt; The order of the items is ignored. An item which is normally at the bottom, can appear on top.</documentation>
            <developmentState state="experimental" since="1.66">Disclaimer: this property is in a beta state - incompatible API changes may be done before its official public release. Use at your own discretion.</developmentState>
        </property>
        <property name="inlineBlockLayout" type="sap.ui.core/boolean" defaultValue="false" group="Appearance">
            <documentation>Makes the grid items act like an inline-block elements. They will be arranged in rows with height equal to the highest item in the row.

&lt;b&gt;Note:&lt;/b&gt; If set to &lt;code&gt;true&lt;/code&gt; the properties &lt;code&gt;rowSize&lt;/code&gt; for grid layout, and &lt;code&gt;minRows&lt;/code&gt; and &lt;code&gt;rows&lt;/code&gt; per item will be ignored.

&lt;b&gt;Note:&lt;/b&gt; Not supported in IE11, Edge 15.</documentation>
            <developmentState state="experimental" since="1.66">Disclaimer: this property is in a beta state - incompatible API changes may be done before its official public release. Use at your own discretion.</developmentState>
        </property>
    </properties>
    <events>
        <event name="layoutChange" allowPreventDefault="false">
            <documentation>Fired when the currently active GridSettings change.</documentation>
            <parameters>
                <parameter name="layout" type="sap.ui.core/string">
                    <documentation>The name of the newly active layout.</documentation>
                </parameter>
            </parameters>
        </event>
    </events>
    <aggregations default="items">
        <aggregation name="items" type="sap.ui.core/Control" cardinality="0..n">
            <documentation>The items contained by the control.</documentation>
        </aggregation>
        <aggregation name="layout" type="sap.f/GridContainerSettings" cardinality="0..1">
            <documentation>The sap.f.GridContainerSettings applied if no settings are provided for a specific size.

If no layout is given, a default layout will be used. See the default values for &lt;code&gt;sap.f.GridContainerSettings&lt;/code&gt;.

&lt;b&gt;Note:&lt;/b&gt; It is not possible to reuse the same instance of &lt;code&gt;GridContainerSettings&lt;/code&gt; for several layouts. New instance has to be created for each of them. This is caused by the fact that one object can exist in only a single aggregation.</documentation>
        </aggregation>
        <aggregation name="layoutXS" type="sap.f/GridContainerSettings" cardinality="0..1">
            <documentation>The sap.f.GridContainerSettings applied for size "XS". Range: up to 374px.</documentation>
            <developmentState state="experimental" since="1.71">Disclaimer: this property is in a beta state - incompatible API changes may be done before its official public release. Use at your own discretion.</developmentState>
        </aggregation>
        <aggregation name="layoutS" type="sap.f/GridContainerSettings" cardinality="0..1">
            <documentation>The sap.f.GridContainerSettings applied for size "S". Range: 375px - 599px.</documentation>
        </aggregation>
        <aggregation name="layoutM" type="sap.f/GridContainerSettings" cardinality="0..1">
            <documentation>The sap.f.GridContainerSettings applied for size "M". Range: 600px - 1023px.</documentation>
        </aggregation>
        <aggregation name="layoutL" type="sap.f/GridContainerSettings" cardinality="0..1">
            <documentation>The sap.f.GridContainerSettings applied for size "L". Range: 1023px - 1439px.</documentation>
        </aggregation>
        <aggregation name="layoutXL" type="sap.f/GridContainerSettings" cardinality="0..1">
            <documentation>The sap.f.GridContainerSettings applied for size "XL". Range: from 1440px.</documentation>
        </aggregation>
        <aggregation name="_defaultLayout" type="sap.f/GridContainerSettings" cardinality="0..1" visibility="hidden">
            <documentation>Default sap.f.GridContainerSettings</documentation>
        </aggregation>
    </aggregations>
</control>
