<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<control xmlns="http://www.sap.com/sap.ui.library.xsd">
    <name>MultiInput</name>
    <derived/>
    <author>SAP SE</author>
    <documentation>&lt;h3&gt;Overview&lt;/h3&gt;
A multi-input field allows the user to enter multiple values, which are displayed as {@link sap.m.Token tokens}.
You can enable auto-complete suggestions or value help to help the user choose the correct entry. You can define
validator functions to define what token values are accepted.

&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt; New valid tokens are created, when the user presses Enter, selects a value from the suggestions drop-down, or when the focus leaves the field.&lt;/li&gt;
&lt;li&gt; When multiple values are copied and pasted in the field, separate tokens are created for each of them.&lt;/li&gt;
&lt;li&gt; When a single value is copied and pasted in the field, it is shown as a text value, as further editing might be required before it is converted into a token.&lt;/li&gt;
&lt;li&gt; Provide meaningful labels for all input fields. Do not use the placeholder as a replacement for the label.&lt;/li&gt;
&lt;li&gt; The &lt;code&gt;showValueHelp&lt;/code&gt; property is overwritten and after initialization of the control, its value becomes &lt;code&gt;truthy&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Usage&lt;/h3&gt;
&lt;h4&gt;When to use:&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt; You need to provide the value help option to help users select or search multiple business objects.&lt;/li&gt;
&lt;li&gt; The dataset to choose from is expected to increase over time (for example, to more than 200 values).&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;When not to use:&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt; When you need to select only one value.&lt;/li&gt;
&lt;li&gt; When you want the user to select from a predefined set of options. Use {@link sap.m.MultiComboBox} instead.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Responsive Behavior&lt;/h3&gt;
If there are many tokens, the control shows only the last selected tokens that fit and for the others a label &lt;i&gt;N-more&lt;/i&gt; is provided.
In case the length of the last selected token is exceeding the width of the control, only a label &lt;i&gt;N-Items&lt;/i&gt; is shown.
In both cases, pressing on the label will show the tokens in a popup.
&lt;u&gt;On Phones:&lt;/u&gt;
&lt;ul&gt;
&lt;li&gt; Only the last entered token is displayed.&lt;/li&gt;
&lt;li&gt; A new full-screen dialog opens where the auto-complete suggestions can be selected.&lt;/li&gt;
&lt;li&gt; You can review the tokens by tapping on the token or the input field.&lt;/li&gt;
&lt;/ul&gt;
&lt;u&gt; On Tablets:&lt;/u&gt;
&lt;ul&gt;
&lt;li&gt; The auto-complete suggestions appear below or above the multi-input field.&lt;/li&gt;
&lt;li&gt; You can review the tokens by swiping them to the left or right.&lt;/li&gt;
&lt;/ul&gt;
&lt;u&gt;On Desktop:&lt;/u&gt;
&lt;ul&gt;
&lt;li&gt; The auto-complete suggestions appear below or above the multi-input field.&lt;/li&gt;
&lt;li&gt; You can review the tokens by pressing the right or left arrows on the keyboard.&lt;/li&gt;
&lt;li&gt; You can select single tokens or a range of tokens and you can copy/cut/delete them.&lt;/li&gt;
&lt;/ul&gt;</documentation>
    <baseType>sap.m/Input</baseType>
    <properties>
        <property name="enableMultiLineMode" type="sap.ui.core/boolean" defaultValue="false" group="Behavior" since="1.28">
            <documentation>If set to true, the MultiInput will be displayed in multi-line display mode.
In multi-line display mode, all tokens can be fully viewed and easily edited in the MultiInput.
The default value is false.
&lt;b&gt;Note:&lt;/b&gt; This property does not take effect on smartphones or when the editable property is set to false.
&lt;b&gt;Caution:&lt;/b&gt; Do not enable multi-line mode in tables and forms.</documentation>
            <deprecation since="1.58">Replaced with N-more/N-items labels, which work in all cases.</deprecation>
        </property>
        <property name="maxTokens" type="sap.ui.core/int" group="Behavior" since="1.36">
            <documentation>The max number of tokens that is allowed in MultiInput.</documentation>
        </property>
    </properties>
    <events>
        <event name="tokenChange" allowPreventDefault="false">
            <documentation>Fired when the tokens aggregation changed (add / remove token)</documentation>
            <deprecation since="1.46">Please use the new event tokenUpdate.</deprecation>
            <parameters>
                <parameter name="type" type="sap.ui.core/string">
                    <documentation>Type of tokenChange event.
There are four TokenChange types: "added", "removed", "removedAll", "tokensChanged".
Use sap.m.Tokenizer.TokenChangeType.Added for "added", sap.m.Tokenizer.TokenChangeType.Removed for "removed", sap.m.Tokenizer.TokenChangeType.RemovedAll for "removedAll" and sap.m.Tokenizer.TokenChangeType.TokensChanged for "tokensChanged".</documentation>
                </parameter>
                <parameter name="token" type="sap.m/Token">
                    <documentation>The added token or removed token.
This parameter is used when tokenChange type is "added" or "removed".</documentation>
                </parameter>
                <parameter name="tokens" type="sap.m/Token[]">
                    <documentation>The array of removed tokens.
This parameter is used when tokenChange type is "removedAll".</documentation>
                </parameter>
                <parameter name="addedTokens" type="sap.m/Token[]">
                    <documentation>The array of tokens that are added.
This parameter is used when tokenChange type is "tokenChanged".</documentation>
                </parameter>
                <parameter name="removedTokens" type="sap.m/Token[]">
                    <documentation>The array of tokens that are removed.
This parameter is used when tokenChange type is "tokenChanged".</documentation>
                </parameter>
            </parameters>
        </event>
        <event name="tokenUpdate" since="1.46" allowPreventDefault="true">
            <documentation>Fired when the tokens aggregation changed due to a user interaction (add / remove token)</documentation>
            <parameters>
                <parameter name="type" type="sap.ui.core/string">
                    <documentation>Type of tokenChange event.
There are two TokenUpdate types: "added", "removed"
Use sap.m.Tokenizer.TokenUpdateType.Added for "added" and sap.m.Tokenizer.TokenUpdateType.Removed for "removed".</documentation>
                </parameter>
                <parameter name="addedTokens" type="sap.m/Token[]">
                    <documentation>The array of tokens that are added.
This parameter is used when tokenUpdate type is "added".</documentation>
                </parameter>
                <parameter name="removedTokens" type="sap.m/Token[]">
                    <documentation>The array of tokens that are removed.
This parameter is used when tokenUpdate type is "removed".</documentation>
                </parameter>
            </parameters>
        </event>
    </events>
    <aggregations>
        <aggregation name="tokens" type="sap.m/Token" cardinality="0..n">
            <documentation>The currently displayed tokens</documentation>
        </aggregation>
        <aggregation name="tokenizer" type="sap.m/Tokenizer" cardinality="0..1" visibility="hidden">
            <documentation>The tokenizer which displays the tokens</documentation>
        </aggregation>
    </aggregations>
</control>
