<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<control xmlns="http://www.sap.com/sap.ui.library.xsd">
    <name>HTML</name>
    <derived/>
    <author>SAP SE</author>
    <documentation>Embeds standard HTML in an SAPUI5 control tree.

Security Hint: By default, the HTML content (property 'content') is not sanitized and therefore
open to XSS attacks. Applications that want to show user defined input in an HTML control, should
either sanitize the content on their own or activate automatic sanitizing through the
{@link #setSanitizeContent sanitizeContent} property.

Although this control inherits the &lt;code&gt;tooltip&lt;/code&gt; aggregation/property and the
&lt;code&gt;hasStyleClass&lt;/code&gt;, &lt;code&gt;addStyleClass&lt;/code&gt;, &lt;code&gt;removeStyleClass&lt;/code&gt; and
&lt;code&gt;toggleStyleClass&lt;/code&gt; methods from its base class, it doesn't support them.
Instead, the defined HTML content can contain a tooltip (title attribute) or custom CSS classes.

For further hints about usage restrictions for this control, see also the documentation of the
&lt;code&gt;content&lt;/code&gt; property.</documentation>
    <baseType>sap.ui.core/Control</baseType>
    <properties>
        <property name="content" type="sap.ui.core/string" group="Misc">
            <documentation>HTML content to be displayed, defined as a string.

The content is converted to DOM nodes with a call to &lt;code&gt;new jQuery(content)&lt;/code&gt;, so any
restrictions for the jQuery constructor apply to the content of the HTML control as well.

Some of these restrictions (there might be others!) are:
&lt;ul&gt;
&lt;li&gt;the content must be enclosed in tags, pure text is not supported. &lt;/li&gt;
&lt;li&gt;if the content contains script tags, they will be executed but they will not appear in the
    resulting DOM tree. When the contained code tries to find the corresponding script tag,
    it will fail.&lt;/li&gt;
&lt;/ul&gt;

Please consider to consult the jQuery documentation as well.

The HTML control currently doesn't prevent the usage of multiple root nodes in its DOM content
(e.g. &lt;code&gt;setContent("&amp;lt;div/&gt;&amp;lt;div/&gt;")&lt;/code&gt;), but this is not a guaranteed feature.
The accepted content might be restricted to single root nodes in future versions.
To notify applications about this fact, a warning is written in the log when multiple root nodes are used.

When changing the content dynamically, ensure that the ID of the root node remains the same as the HTML
control's ID. Otherwise it cannot be guaranteed that certain lifecycle events take place.</documentation>
        </property>
        <property name="preferDOM" type="sap.ui.core/boolean" defaultValue="true" group="Misc">
            <documentation>Whether existing DOM content is preferred over the given content string.

There are two scenarios where this flag is relevant (when set to true):
&lt;ul&gt;
&lt;li&gt;for the initial rendering: when an HTML control is added to a UIArea for the first time
    and if the root node of that UIArea contained DOM content with the same id as the HTML
    control, then that content will be used for rendering instead of any specified string
    content&lt;/li&gt;
&lt;li&gt;any follow-up rendering: when an HTML control is rendered for the second or any later
    time and the preferDOM flag is set, then the DOM from the first rendering is preserved
    and not replaced by the string content&lt;/li&gt;
&lt;/ul&gt;

As preserving the existing DOM is the most common use case of the HTML control, the default value is true.</documentation>
        </property>
        <property name="sanitizeContent" type="sap.ui.core/boolean" defaultValue="false" group="Misc">
            <documentation>Whether to run the HTML sanitizer once the content (HTML markup) is applied or not.

To configure the set of allowed URLs, you can use the {@link jQuery.sap.addUrlWhitelist whitelist API}.</documentation>
        </property>
        <property name="visible" type="sap.ui.core/boolean" defaultValue="true" group="Appearance">
            <documentation>Specifies whether the control is visible. Invisible controls are not rendered.</documentation>
        </property>
    </properties>
    <events>
        <event name="afterRendering" allowPreventDefault="false">
            <documentation>Fired after the HTML control has been rendered. Allows to manipulate the resulting DOM.

When the control doesn't have string content and no preserved DOM existed for this control,
then this event will fire, but there won't be a DOM node for this control.</documentation>
            <parameters>
                <parameter name="isPreservedDOM" type="sap.ui.core/boolean">
                    <documentation>Whether the current DOM of the control has been preserved (true) or not (e.g.
rendered from content property or it is an empty HTML control).</documentation>
                </parameter>
            </parameters>
        </event>
    </events>
</control>
