<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<control xmlns="http://www.sap.com/sap.ui.library.xsd">
    <name>Calendar</name>
    <derived/>
    <documentation>Basic Calendar.
This calendar is used for DatePickers</documentation>
    <since>1.22.0</since>
    <baseType>sap.ui.core/Control</baseType>
    <properties>
        <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="months" type="sap.ui.core/int" defaultValue="1" group="Appearance" since="1.28.0">
            <documentation>Determines the number of months displayed.

As of version 1.50, the duplicated dates are not displayed if there are
multiple months.

&lt;b&gt;Note:&lt;/b&gt; On phones, only one month is displayed.</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.

&lt;b&gt;Note:&lt;/b&gt; Keep in mind that this property sets only weekly-recurring days
as non-working. If you need specific dates or dates ranges, such as national
holidays, use the &lt;code&gt;specialDates&lt;/code&gt; aggregation to set them.
Both the non-working days (from property) and dates (from aggregation) are
visualized the same.</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 Calendar

&lt;b&gt;Note:&lt;/b&gt; There is a theme depending minimum width, so the calendar can not be set smaller.</documentation>
        </property>
        <property name="minDate" type="sap.ui.core/object" group="Misc" since="1.38.0">
            <documentation>Minimum date that can be shown and selected in the Calendar. This must be a JavaScript date object.

&lt;b&gt;Note:&lt;/b&gt; if the date is inside of a month the complete month is displayed,
but dates outside the valid range can not be selected.

&lt;b&gt;Note:&lt;/b&gt; If the &lt;code&gt;minDate&lt;/code&gt; is set to be after the &lt;code&gt;maxDate&lt;/code&gt;,
the &lt;code&gt;maxDate&lt;/code&gt; is set to the end of the month of the &lt;code&gt;minDate&lt;/code&gt;.</documentation>
        </property>
        <property name="maxDate" type="sap.ui.core/object" group="Misc" since="1.38.0">
            <documentation>Maximum date that can be shown and selected in the Calendar. This must be a JavaScript date object.

&lt;b&gt;Note:&lt;/b&gt; if the date is inside of a month the complete month is displayed,
but dates outside the valid range can not be selected.

&lt;b&gt;Note:&lt;/b&gt; If the &lt;code&gt;maxDate&lt;/code&gt; is set to be before the &lt;code&gt;minDate&lt;/code&gt;,
the &lt;code&gt;minDate&lt;/code&gt; is set to the begin of the month of the &lt;code&gt;maxDate&lt;/code&gt;.</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="cancel" allowPreventDefault="false">
            <documentation>Date selection was cancelled</documentation>
        </event>
        <event name="startDateChange" since="1.34.0" allowPreventDefault="false">
            <documentation>&lt;code&gt;startDate&lt;/code&gt; was changed while navigation in &lt;code&gt;Calendar&lt;/code&gt;

Use &lt;code&gt;getStartDate&lt;/code&gt; function to determine the current start date</documentation>
        </event>
        <event name="weekNumberSelect" since="1.56" allowPreventDefault="true">
            <documentation>Week number selection changed. By default, clicking on the week number will select the corresponding week.
If the week has already been selected, clicking 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 'true'.</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.</documentation>
                </parameter>
            </parameters>
        </event>
    </events>
    <aggregations>
        <aggregation name="selectedDates" type="sap.ui.unified/DateRange" cardinality="0..n">
            <documentation>Dates or date ranges for selected dates.

To set a single date (instead of a range), set only the &lt;code&gt;startDate&lt;/code&gt; property
of the {@link sap.ui.unified.DateRange} class.</documentation>
        </aggregation>
        <aggregation name="specialDates" type="sap.ui.unified/DateTypeRange" since="1.24.0" cardinality="0..n">
            <documentation>Dates or date ranges with type, to visualize special days in the &lt;code&gt;Calendar&lt;/code&gt;.
If one day is assigned to more than one Type, only the first one will be used.

To set a single date (instead of a range), set only the &lt;code&gt;startDate&lt;/code&gt; property
of the {@link sap.ui.unified.DateRange} class.

&lt;b&gt;Note:&lt;/b&gt; Keep in mind that the &lt;code&gt;NonWorking&lt;/code&gt; type is for marking specific
dates or date ranges as non-working, where if you need a weekly-reccuring non-working days
(weekend), you should use the &lt;code&gt;nonWorkingDays&lt;/code&gt; property. Both the non-working
days (from property) and dates (from aggregation) are visualized the same.</documentation>
        </aggregation>
        <aggregation name="disabledDates" type="sap.ui.unified/DateRange" since="1.38.0" cardinality="0..n">
            <documentation>Dates or date ranges for disabled dates.

To set a single date (instead of a range), set only the &lt;code&gt;startDate&lt;/code&gt; property
of the {@link sap.ui.unified.DateRange} class.</documentation>
        </aggregation>
        <aggregation name="header" type="sap.ui.unified/calendar/Header" cardinality="0..1" visibility="hidden">
            <documentation>Hidden, for internal use only.</documentation>
        </aggregation>
        <aggregation name="secondMonthHeader" type="sap.ui.unified/calendar/Header" cardinality="0..1" visibility="hidden"/>
        <aggregation name="month" type="sap.ui.unified/calendar/Month" cardinality="0..n" visibility="hidden"/>
        <aggregation name="monthPicker" type="sap.ui.unified/calendar/MonthPicker" cardinality="0..1" visibility="hidden"/>
        <aggregation name="yearPicker" type="sap.ui.unified/calendar/YearPicker" cardinality="0..1" visibility="hidden"/>
        <aggregation name="yearRangePicker" type="sap.ui.unified/calendar/YearPicker" cardinality="0..1" visibility="hidden"/>
    </aggregations>
    <associations>
        <association name="ariaLabelledBy" type="sap.ui.core/Control" cardinality="0..n" since="1.28.0">
            <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="focusDate" type="sap.ui.unified/Calendar">
            <documentation>Sets the focused date of the calendar.</documentation>
            <parameters>
                <parameter name="date" type="any">
                    <documentation>JavaScript date object for focused date.</documentation>
                </parameter>
            </parameters>
        </method>
        <method name="displayDate" type="sap.ui.unified/Calendar" since="1.28.0">
            <documentation>Displays a date in the calendar but doesn't set the focus.</documentation>
            <parameters>
                <parameter name="date" type="any">
                    <documentation>JavaScript date object for focused date.</documentation>
                </parameter>
            </parameters>
        </method>
        <method name="getStartDate" type="any" since="1.34.1">
            <documentation>Returns the first day of the displayed month.

There might be some days of the previous month shown, but they can not be focused.</documentation>
        </method>
    </methods>
</control>
