<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<control xmlns="http://www.sap.com/sap.ui.library.xsd">
    <name>Column</name>
    <derived/>
    <documentation>The column allows you to define column specific properties that will be applied when rendering the table.</documentation>
    <baseType>sap.ui.core/Element</baseType>
    <properties>
        <property name="width" type="sap.ui.core/CSSSize" group="Dimension">
            <documentation>Width of the column in CSS units.
Default value is &lt;code&gt;auto&lt;/code&gt;, see &lt;a href="https://www.w3.org/TR/CSS2/tables.html#width-layout"&gt;&lt;/a&gt;
&lt;p&gt;Minimal column width is device-dependent, for example on desktop devices the column will not be smaller than 48px.
&lt;p&gt;This property can be changed by the user or by the application configuration/personalization.
&lt;p&gt;If a user adjusts the column width manually, the resulting value is always set in pixels.
In addition, other columns with width &lt;code&gt;auto&lt;/code&gt; get a fixed minimum width and do not shrink after the resizing.</documentation>
        </property>
        <property name="minWidth" type="sap.ui.core/int" defaultValue="0" group="Dimension" since="1.44.1">
            <documentation>Defines the minimum width of a column in pixels.
&lt;p&gt;This property only has an effect if the given column width is flexible, for example with width &lt;code&gt;auto&lt;/code&gt;.
&lt;p&gt;This property only influences the automatic behavior. If a user adjusts the column width manually, the column width can become
smaller.
&lt;p&gt;Minimal column width is device-dependent, for example on desktop devices the column will not be smaller than 48px.</documentation>
        </property>
        <property name="flexible" type="sap.ui.core/boolean" defaultValue="true" group="Behavior">
            <documentation>If the table is wider than the sum of widths of the visible columns, the columns will be
resized proportionally to their widths that were set originally. If set to false, the column will be displayed in the
original width. If all columns are set to not be flexible, an extra "dummy" column will be
created at the end of the table.</documentation>
            <deprecation since="1.44">this property has no effect. Use the property &lt;code&gt;minWidth&lt;/code&gt; in combination with the property
&lt;code&gt;width="auto"&lt;/code&gt; instead.</deprecation>
        </property>
        <property name="resizable" type="sap.ui.core/boolean" defaultValue="true" group="Behavior">
            <documentation>If set to true, the column can be resized either using the resize bar (by mouse) or using
the keyboard (SHIFT + Left/Right Arrow keys)</documentation>
        </property>
        <property name="hAlign" type="sap.ui.core/HorizontalAlign" defaultValue="Begin" group="Appearance">
            <documentation>Horizontal alignment of the column content. Controls with a text align do not inherit
the horizontal alignment. You have to set the text align directly on the template.</documentation>
        </property>
        <property name="sorted" type="sap.ui.core/boolean" defaultValue="false" group="Appearance">
            <documentation>Indicates if the column is sorted. This property only controls if a sort indicator is displayed in the
column header - it does not trigger the sort function. The column can be sorted using {@link sap.ui.table.Table#sort}.</documentation>
        </property>
        <property name="sortOrder" type="sap.ui.table/SortOrder" defaultValue="Ascending" group="Appearance">
            <documentation>This property indicates the sort direction (Ascending or Descending). The corresponding icon will be
rendered if the property &lt;code&gt;sorted&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;</documentation>
        </property>
        <property name="sortProperty" type="sap.ui.core/string" group="Behavior">
            <documentation>Specifies the binding property on which the column will sort.
Since the column template may have composite bindings, it's not possible to figure out on which binding
property the sort shall be applied. Therefore the binding property for sorting must be specified.
For example, if the first name and last name are displayed in the same column, only one of the two can be defined as
&lt;code&gt;sortProperty&lt;/code&gt;.

A column menu entry for sorting can only be generated if the &lt;code&gt;sortProperty&lt;/code&gt; is set.</documentation>
        </property>
        <property name="filtered" type="sap.ui.core/boolean" defaultValue="false" group="Appearance">
            <documentation>Indicates if the column is filtered. This property only controls if a filter indicator is displayed in the
column header - it does not trigger the filter function. The column can be filtered using {@link sap.ui.table.Table#filter}.</documentation>
        </property>
        <property name="filterProperty" type="sap.ui.core/string" group="Behavior">
            <documentation>Specifies the binding property on which the column shall be filtered.
Since the column template may have composite bindings, it's not possible to figure out on which binding
property the filter shall be applied. Therefore the binding property for filtering must be specified.
For example, if the first name and last name are displayed in the same column, only one of the two can be defined as
&lt;code&gt;filterProperty&lt;/code&gt;.

A column menu entry for filtering can only be generated if the &lt;code&gt;filterProperty&lt;/code&gt; is set. The
default menu entry is a text input field.</documentation>
        </property>
        <property name="filterValue" type="sap.ui.core/string" group="Behavior">
            <documentation>Specifies the value of the filter as string (will be converted into the proper data type). It is possible
to provide a filterOperator as string, as shown here:
&lt;pre&gt;
&amp;gt; 50
&amp;lt; 100
&amp;gt;= 150
&amp;lt;= 200
= 250
!= 300
*something    ends with
something*    starts with
*something*   contains
some..thing   between
50..100       between
&lt;/pre&gt;</documentation>
        </property>
        <property name="filterOperator" type="sap.ui.core/string" group="Behavior">
            <documentation>Filter operator to use when filtering this column.</documentation>
        </property>
        <property name="defaultFilterOperator" type="sap.ui.core/string" group="Behavior">
            <documentation>If this property is set, the default filter operator of the column is overridden.
By default &lt;code&gt;Contains&lt;/code&gt; is used for string and &lt;code&gt;EQ&lt;/code&gt; for other types. A valid
&lt;code&gt;sap.ui.model.FilterOperator&lt;/code&gt; needs to be passed.</documentation>
        </property>
        <property name="filterType" type="sap.ui.core/any" group="Misc" since="1.9.2">
            <documentation>Type of filter. It is used to transform the search term into the specified type and should be the same as
defined in the binding for the column template.
Default value is &lt;code&gt;sap.ui.model.type.String&lt;/code&gt;.
It can be set to the class name of the type,
e.g.: &lt;code&gt;sap.ui.model.type.Date&lt;/code&gt;,
or an expression similar to the binding syntax,
e.g.: &lt;code&gt;"\{type: 'sap.ui.model.type.Date', formatOptions: \{UTC: true\}, constraints: \{\} \}"&lt;/code&gt;.
Here the escaping is mandatory to avoid handling by the binding parser.
As an alternative, a function can be passed that takes over the conversion. This cannot be done in the
XMLView, use {@link #setFilterType} instead.</documentation>
        </property>
        <property name="grouped" type="sap.ui.core/boolean" defaultValue="false" group="Appearance">
            <documentation>Indicates if the column is grouped.</documentation>
        </property>
        <property name="visible" type="sap.ui.core/boolean" defaultValue="true" group="Appearance">
            <documentation>Invisible controls are not rendered.</documentation>
        </property>
        <property name="name" type="sap.ui.core/string" group="Appearance" since="1.11.1">
            <documentation>The name of the column which is used in the column visibility menu item as text.
If not set as a fallback the column menu tries to get the text from the nested Label.</documentation>
        </property>
        <property name="showFilterMenuEntry" type="sap.ui.core/boolean" defaultValue="true" group="Appearance" since="1.13.0">
            <documentation>Defines if the filter menu entry is displayed</documentation>
        </property>
        <property name="showSortMenuEntry" type="sap.ui.core/boolean" defaultValue="true" group="Appearance" since="1.13.0">
            <documentation>Defines if the sort menu entries are displayed</documentation>
        </property>
        <property name="headerSpan" type="sap.ui.core/any" defaultValue="1" group="Behavior">
            <documentation>If this property is set, a span is applied for the header. When moving columns, all columns
which are part of the header will be moved. The &lt;code&gt;headerSpan&lt;/code&gt; can be either an integer or an array of
integers (if you use the multi header feature of the table). If you only specify an integer, this span is
applied for all header rows, with multiple integers you can specify a separate span for each header row.
&lt;b&gt;Note:&lt;/b&gt; Only columns with a span equal to 1 can have a column menu. When setting a column to fixed, all
columns which are part of the header with the greatest span will be set to fixed.</documentation>
        </property>
        <property name="autoResizable" type="sap.ui.core/boolean" defaultValue="false" group="Behavior" since="1.21.1">
            <documentation>Enables auto-resizing of the column on double clicking the resize bar. The width is determined on the widest
currently displayed content. It does not consider rows which are currently not scrolled into view.
Currently only implemented to work with the following controls:
&lt;code&gt;sap.m.Text, sap.m.Label, sap.m.Link, sap.m.Input,
sap.ui.commons.TextView, sap.ui.commons.Label, sap.ui.commons.Link and sap.ui.commons.TextField,
sap.ui.commons.Checkbox, sap.m.CheckBox&lt;/code&gt;</documentation>
        </property>
    </properties>
    <events>
        <event name="columnMenuOpen" since="1.33.0" allowPreventDefault="true">
            <documentation>Fires before the column menu is opened.</documentation>
            <parameters>
                <parameter name="menu" type="sap.ui.unified/Menu">
                    <documentation>Refence to the selected &lt;code&gt;menu&lt;/code&gt; instance to be opened.</documentation>
                </parameter>
            </parameters>
        </event>
    </events>
    <aggregations default="label">
        <aggregation name="label" type="sap.ui.core/Control" cardinality="0..1">
            <documentation>Label of the column which is displayed in the column header. This aggregation is for the standard behavior,
where you only want to display one single row header. If a string is supplied, a default label control will be
created. Which control this is depends on the loaded libraries.</documentation>
        </aggregation>
        <aggregation name="multiLabels" type="sap.ui.core/Control" since="1.13.1" cardinality="0..n">
            <documentation>Labels of the column which are displayed in the column header. Define a control for
each header row in the table. Use this aggregation if you want to use multiple headers per column.</documentation>
        </aggregation>
        <aggregation name="template" type="sap.ui.core/Control" cardinality="0..1">
            <documentation>Template (cell renderer) of this column.
A template is decoupled from the column. Each time the template's properties or aggregations have been changed, the template has to be
applied again via &lt;code&gt;setTemplate&lt;/code&gt; for the changes to take effect.
If a string is defined, a default text control will be created with its text property bound to the value of the string. The default
template depends on the libraries loaded.
If there is no template, the column will not be rendered in the table.
The set of supported controls is limited. See section "{@link topic:148892ff9aea4a18b912829791e38f3e Tables: Which One Should I
Choose?}" in the documentation for more details. While it is technically possible to also use other controls, doing so might lead to
issues with regards to scrolling, alignment, condensed mode, screen reader support, and keyboard support.</documentation>
        </aggregation>
        <aggregation name="creationTemplate" type="sap.ui.core/Control" cardinality="0..1" visibility="hidden"/>
        <aggregation name="menu" type="sap.ui.unified/Menu" cardinality="0..1">
            <documentation>The menu used by the column. By default the {@link sap.ui.table.ColumnMenu} is used.

&lt;b&gt;Note:&lt;/b&gt; Applications must not use or change the default &lt;code&gt;sap.ui.table.ColumnMenu&lt;/code&gt; of
a column in any way or create own instances of &lt;code&gt;sap.ui.table.ColumnMenu&lt;/code&gt;.
To add a custom menu to a column, use the aggregation &lt;code&gt;menu&lt;/code&gt; with a new instance of
&lt;code&gt;sap.ui.unified.Menu&lt;/code&gt;.</documentation>
        </aggregation>
    </aggregations>
    <methods>
        <method name="toggleSort">
            <documentation>Toggles the sort order of the column.</documentation>
            <deprecation since="1.5.1">Please use the function "sap.ui.Table.prototype.sort".</deprecation>
        </method>
        <method name="sort" type="sap.ui.table/Column">
            <documentation>Sorts the current column ascending or descending.</documentation>
            <deprecation since="1.5.1">Please use the function "sap.ui.Table.prototype.sort".</deprecation>
            <parameters>
                <parameter name="descending" type="sap.ui.core/boolean">
                    <documentation>Sort order of the column (if undefined the default will be ascending)</documentation>
                </parameter>
            </parameters>
        </method>
    </methods>
</control>
