<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<control xmlns="http://www.sap.com/sap.ui.library.xsd">
    <name>calendar/Month</name>
    <derived/>
    <documentation>renders a month with ItemNavigation
This is used inside the calendar. Not for stand alone usage
If used inside the calendar the properties and aggregation are directly taken from the parent
(To not duplicate and sync DateRanges and so on...)</documentation>
    <since>1.28.0</since>
    <baseType>sap.ui.core/Control</baseType>
    <properties>
        <property name="date" type="sap.ui.core/object" group="Data">
            <documentation>A date as JavaScript Date object.
The month including this date is rendered and this date is focused initially (if no other focus is set).</documentation>
        </property>
        <property name="intervalSelection" type="sap.ui.core/boolean" defaultValue="false" group="Behavior">
            <documentation>If set, interval selection is allowed</documentation>
        </property>
        <property name="singleSelection" type="sap.ui.core/boolean" defaultValue="true" group="Behavior">
            <documentation>If set, only a single date or interval, if intervalSelection is enabled, can be selected</documentation>
        </property>
        <property name="showHeader" type="sap.ui.core/boolean" defaultValue="false" group="Appearance">
            <documentation>If set, a header with the month name is shown</documentation>
        </property>
        <property name="firstDayOfWeek" type="sap.ui.core/int" defaultValue="-1" group="Appearance" since="1.28.9">
            <documentation>If set, the first day of the displayed week is this day. Valid values are 0 to 6.
If not a valid value is set, the default of the used locale is used.</documentation>
        </property>
        <property name="nonWorkingDays" type="sap.ui.core/int[]" group="Appearance" since="1.28.9">
            <documentation>If set, the provided weekdays are displayed as non-working days.
Valid values inside the array are 0 to 6.
If not set, the weekend defined in the locale settings is displayed as non-working days.</documentation>
        </property>
        <property name="primaryCalendarType" type="sap.ui.core/CalendarType" group="Appearance" since="1.34.0">
            <documentation>If set, the calendar type is used for display.
If not set, the calendar type of the global configuration is used.</documentation>
        </property>
        <property name="secondaryCalendarType" type="sap.ui.core/CalendarType" group="Appearance" since="1.34.0">
            <documentation>If set, the days are also displayed in this calendar type
If not set, the dates are only displayed in the primary calendar type</documentation>
        </property>
        <property name="width" type="sap.ui.core/CSSSize" group="Dimension" since="1.38.0">
            <documentation>Width of Month</documentation>
        </property>
        <property name="showWeekNumbers" type="sap.ui.core/boolean" defaultValue="true" group="Appearance" since="1.48">
            <documentation>Determines whether the week numbers in the months are displayed.

&lt;b&gt;Note:&lt;/b&gt; For Islamic calendars, the week numbers are not displayed
regardless of what is set to this property.</documentation>
        </property>
    </properties>
    <events>
        <event name="select" allowPreventDefault="false">
            <documentation>Date selection changed</documentation>
        </event>
        <event name="focus" allowPreventDefault="false">
            <documentation>Date focus changed</documentation>
            <parameters>
                <parameter name="date" type="sap.ui.core/object">
                    <documentation>focused date</documentation>
                </parameter>
                <parameter name="otherMonth" type="sap.ui.core/boolean">
                    <documentation>focused date is in an other month that the displayed one</documentation>
                </parameter>
                <parameter name="restoreOldDate" type="sap.ui.core/boolean">
                    <documentation>focused date is set to the same as before (date in other month clicked)</documentation>
                </parameter>
            </parameters>
        </event>
        <event name="weekNumberSelect" since="1.60" allowPreventDefault="true">
            <documentation>Fired when a week number selection is changed. By default, choosing the week number will select the corresponding week.
If the week has already been selected, choosing the week number will deselect it.

The default behavior can be prevented using the &lt;code&gt;preventDefault&lt;/code&gt; method.

&lt;b&gt;Note:&lt;/b&gt; Works for Gregorian calendars only and when &lt;code&gt;intervalSelection&lt;/code&gt; is set to &lt;code&gt;true&lt;/code&gt;.</documentation>
            <parameters>
                <parameter name="weekNumber" type="sap.ui.core/int">
                    <documentation>The selected week number.</documentation>
                </parameter>
                <parameter name="weekDays" type="sap.ui.unified/DateRange">
                    <documentation>The days of the corresponding week that are selected or deselected.

&lt;b&gt;Note:&lt;/b&gt; Will be set to &lt;code&gt;null&lt;/code&gt; if that week is being deselected.</documentation>
                </parameter>
            </parameters>
        </event>
    </events>
    <aggregations>
        <aggregation name="selectedDates" type="sap.ui.unified/DateRange" cardinality="0..n">
            <documentation>Date Ranges for selected dates of the DatePicker</documentation>
        </aggregation>
        <aggregation name="specialDates" type="sap.ui.unified/DateTypeRange" cardinality="0..n">
            <documentation>&lt;code&gt;DateRange&lt;/code&gt; with type to visualize special days in the Calendar.

&lt;b&gt;Note:&lt;/b&gt; If one day is assigned to more than one DateTypeRange, only the first one
will be used. The only exception is when one of the types is
&lt;code&gt;NonWorking&lt;/code&gt;, then you can have both &lt;code&gt;NonWorking&lt;/code&gt;
and the other type.
For example, you can have &lt;code&gt;NonWorking&lt;/code&gt; + &lt;code&gt;Type01&lt;/code&gt;
but you can't have &lt;code&gt;Type01&lt;/code&gt; + &lt;code&gt;Type02&lt;/code&gt;.</documentation>
        </aggregation>
        <aggregation name="disabledDates" type="sap.ui.unified/DateRange" since="1.38.0" cardinality="0..n">
            <documentation>Date Ranges for disabled dates</documentation>
        </aggregation>
    </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).</documentation>
        </association>
        <association name="legend" type="sap.ui.unified/CalendarLegend" cardinality="0..1" since="1.38.5">
            <documentation>Association to the &lt;code&gt;CalendarLegend&lt;/code&gt; explaining the colors of the &lt;code&gt;specialDates&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>
    <methods>
        <method name="displayDate" type="sap.ui.unified/calendar/Month">
            <documentation>displays the month of a given date without setting the focus</documentation>
            <parameters>
                <parameter name="date" type="sap.ui.core/object">
                    <documentation>JavaScript date object for focused date.</documentation>
                </parameter>
            </parameters>
        </method>
        <method name="checkDateFocusable" type="sap.ui.core/boolean">
            <documentation>checks if a date is focusable in the current rendered output.
So if not rendered or in other month it is not focusable.</documentation>
            <parameters>
                <parameter name="date" type="sap.ui.core/object">
                    <documentation>JavaScript date object for focused date.</documentation>
                </parameter>
            </parameters>
        </method>
    </methods>
</control>
