<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<control xmlns="http://www.sap.com/sap.ui.library.xsd">
    <name>CalendarRow</name>
    <derived/>
    <documentation>A calendar row with a header and appointments. The Appointments will be placed in the defined interval.</documentation>
    <since>1.34.0</since>
    <baseType>sap.ui.core/Control</baseType>
    <properties>
        <property name="startDate" type="sap.ui.core/object" group="Data">
            <documentation>Start date, as JavaScript Date object, of the row. As default, the current date is used.</documentation>
        </property>
        <property name="intervals" type="sap.ui.core/int" defaultValue="12" group="Appearance">
            <documentation>Number of displayed intervals. The size of the intervals is defined with &lt;code&gt;intervalType&lt;/code&gt;</documentation>
        </property>
        <property name="intervalType" type="sap.ui.unified/CalendarIntervalType" defaultValue="Hour" group="Appearance">
            <documentation>Type of the intervals of the row. The default is one hour.</documentation>
        </property>
        <property name="showSubIntervals" type="sap.ui.core/boolean" defaultValue="false" group="Appearance">
            <documentation>If set, subintervals are shown.

If the interval type is &lt;code&gt;Hour&lt;/code&gt;, quarter hours are shown.

If the interval type is &lt;code&gt;Day&lt;/code&gt;, hours are shown.

If the interval type is &lt;code&gt;Month&lt;/code&gt;, days are shown.</documentation>
        </property>
        <property name="showIntervalHeaders" type="sap.ui.core/boolean" defaultValue="true" group="Appearance">
            <documentation>If set, interval headers are shown like specified in &lt;code&gt;showEmptyIntervalHeaders&lt;/code&gt;.

If not set, no interval headers are shown even if &lt;code&gt;intervalHeaders&lt;/code&gt; are assigned.</documentation>
        </property>
        <property name="showEmptyIntervalHeaders" type="sap.ui.core/boolean" defaultValue="true" group="Appearance" since="1.38.0">
            <documentation>If set, interval headers are shown even if no &lt;code&gt;intervalHeaders&lt;/code&gt; are assigned to the visible time frame.

If not set, no interval headers are shown if no &lt;code&gt;intervalHeaders&lt;/code&gt; are assigned.

&lt;b&gt;Note:&lt;/b&gt; This property is only used if &lt;code&gt;showIntervalHeaders&lt;/code&gt; is set to true.</documentation>
        </property>
        <property name="nonWorkingDays" type="sap.ui.core/int[]" group="Misc">
            <documentation>If set, the provided weekdays are displayed as non-working days.
Valid values inside the array are 0 to 6. (Other values will just be ignored.)

If not set, the weekend defined in the locale settings is displayed as non-working days.

&lt;b&gt;Note:&lt;/b&gt; The non working days are only visualized if &lt;code&gt;intervalType&lt;/code&gt; is set to day.</documentation>
        </property>
        <property name="nonWorkingHours" type="sap.ui.core/int[]" group="Misc">
            <documentation>If set, the provided hours are displayed as non-working hours.
Valid values inside the array are 0 to 23. (Other values will just be ignored.)

&lt;b&gt;Note:&lt;/b&gt; The non working hours are only visualized if &lt;code&gt;intervalType&lt;/code&gt; is set to hour.</documentation>
        </property>
        <property name="width" type="sap.ui.core/CSSSize" group="Dimension">
            <documentation>Width of the row</documentation>
        </property>
        <property name="height" type="sap.ui.core/CSSSize" group="Dimension">
            <documentation>Height of the row</documentation>
        </property>
        <property name="checkResize" type="sap.ui.core/boolean" defaultValue="true" group="Behavior">
            <documentation>If set, the &lt;code&gt;CalendarRow&lt;/code&gt; checks for resize by itself.

If a lot of &lt;code&gt;CalendarRow&lt;/code&gt; controls are used in one container control (like &lt;code&gt;PlanningCalendar&lt;/code&gt;).
the resize checks should be done only by this container control. Then the container control should
call &lt;code&gt;handleResize&lt;/code&gt; of the &lt;code&gt;CalendarRow&lt;/code&gt; if a resize happens.</documentation>
        </property>
        <property name="updateCurrentTime" type="sap.ui.core/boolean" defaultValue="true" group="Behavior">
            <documentation>If set the &lt;code&gt;CalendarRow&lt;/code&gt; triggers a periodic update to visualize the current time.

If a lot of &lt;code&gt;CalendarRow&lt;/code&gt; controls are used in one container control (like &lt;code&gt;PlanningCalendar&lt;/code&gt;)
the periodic update should be triggered only by this container control. Then the container control should
call &lt;code&gt;updateCurrentTimeVisualization&lt;/code&gt; of the &lt;code&gt;CalendarRow&lt;/code&gt; to update the visualization.</documentation>
        </property>
        <property name="groupAppointmentsMode" type="sap.ui.unified/GroupAppointmentsMode" defaultValue="Collapsed" group="Appearance">
            <documentation>Defines the mode in which the overlapping appointments are displayed.

&lt;b&gt;Note:&lt;/b&gt; This property takes effect, only if the &lt;code&gt;intervalType&lt;/code&gt; of the current calendar view
is set to &lt;code&gt;sap.ui.unified.CalendarIntervalType.Month&lt;/code&gt;. On phone devices this property is ignored,
and the default value is applied.</documentation>
        </property>
        <property name="appointmentsReducedHeight" type="sap.ui.core/boolean" defaultValue="false" group="Appearance" since="1.38.0">
            <documentation>If set the appointments without text (only title) are rendered with a smaller height.

&lt;b&gt;Note:&lt;/b&gt; On phone devices this property is ignored, appointments are always rendered in full height
to allow touching.</documentation>
        </property>
        <property name="appointmentsVisualization" type="sap.ui.unified/CalendarAppointmentVisualization" defaultValue="Standard" group="Appearance" since="1.40.0">
            <documentation>Defines the visualization of the &lt;code&gt;CalendarAppoinment&lt;/code&gt;

&lt;b&gt;Note:&lt;/b&gt; The real visualization depends on the used theme.</documentation>
        </property>
    </properties>
    <events>
        <event name="select" allowPreventDefault="false">
            <documentation>Fired if an appointment was selected</documentation>
            <parameters>
                <parameter name="appointment" type="sap.ui.unified/CalendarAppointment">
                    <documentation>selected appointment</documentation>
                </parameter>
                <parameter name="appointments" type="sap.ui.unified/CalendarAppointment[]">
                    <documentation>selected appointments in case a group appointment is selected</documentation>
                </parameter>
                <parameter name="multiSelect" type="sap.ui.core/boolean">
                    <documentation>If set, the appointment was selected by multiple selection (e.g. shift + mouse click).
So more than the current appointment could be selected.</documentation>
                </parameter>
                <parameter name="domRefId" type="sap.ui.core/string" since="1.50">
                    <documentation>Gives the ID of the DOM element of the clicked appointment</documentation>
                </parameter>
            </parameters>
        </event>
        <event name="startDateChange" allowPreventDefault="false">
            <documentation>&lt;code&gt;startDate&lt;/code&gt; was changed while navigating in &lt;code&gt;CalendarRow&lt;/code&gt;</documentation>
        </event>
        <event name="leaveRow" allowPreventDefault="false">
            <documentation>The &lt;code&gt;CalendarRow&lt;/code&gt; should be left while navigating. (Arrow up or arrow down.)
The caller should determine the next control to be focused</documentation>
            <parameters>
                <parameter name="type" type="sap.ui.core/string">
                    <documentation>The type of the event that triggers this &lt;code&gt;leaveRow&lt;/code&gt;</documentation>
                </parameter>
            </parameters>
        </event>
        <event name="intervalSelect" since="1.38.0" allowPreventDefault="false">
            <documentation>Fired if an interval was selected</documentation>
            <parameters>
                <parameter name="startDate" type="sap.ui.core/object">
                    <documentation>Interval start date as JavaScript date object</documentation>
                </parameter>
                <parameter name="endDate" type="sap.ui.core/object">
                    <documentation>Interval end date as JavaScript date object</documentation>
                </parameter>
                <parameter name="subInterval" type="sap.ui.core/boolean">
                    <documentation>If set, the selected interval is a subinterval</documentation>
                </parameter>
            </parameters>
        </event>
    </events>
    <aggregations>
        <aggregation name="appointments" type="sap.ui.unified/CalendarAppointment" cardinality="0..n">
            <documentation>Appointments to be displayed in the row. Appointments outside the visible time frame are not rendered.

&lt;b&gt;Note:&lt;/b&gt; For performance reasons, only appointments in the visible time range or nearby should be assigned.</documentation>
        </aggregation>
        <aggregation name="intervalHeaders" type="sap.ui.unified/CalendarAppointment" cardinality="0..n">
            <documentation>Appointments to be displayed in the top of the intervals. The &lt;code&gt;intervalHeaders&lt;/code&gt; are used to visualize
public holidays and similar things.

Appointments outside the visible time frame are not rendered.

The &lt;code&gt;intervalHeaders&lt;/code&gt; always fill whole intervals. If they are shorter than one interval, they are not displayed.

&lt;b&gt;Note:&lt;/b&gt; For performance reasons, only appointments in the visible time range or nearby should be assigned.</documentation>
        </aggregation>
        <aggregation name="groupAppointments" type="sap.ui.unified/CalendarAppointment" cardinality="0..n" visibility="hidden"/>
    </aggregations>
    <associations>
        <association name="ariaLabelledBy" type="sap.ui.core/Control" cardinality="0..n">
            <documentation>Association to controls / IDs which label this control (see WAI-ARIA attribute aria-labelledby).

&lt;b&gt;Note&lt;/b&gt; These labels are also assigned to the appointments.</documentation>
        </association>
        <association name="legend" type="sap.ui.unified/CalendarLegend" cardinality="0..1" since="1.40.0">
            <documentation>Association to the &lt;code&gt;CalendarLegend&lt;/code&gt; explaining the colors of the &lt;code&gt;Appointments&lt;/code&gt;.

&lt;b&gt;Note&lt;/b&gt; The legend does not have to be rendered but must exist, and all required types must be assigned.</documentation>
        </association>
    </associations>
</control>
