All Downloads are FREE. Search and download functionalities are using the official Maven repository.

divkit.dsl.Custom.kt Maven / Gradle / Ivy

Go to download

DivKit is an open source Server-Driven UI (SDUI) framework. SDUI is a an emerging technique that leverage the server to build the user interfaces of their mobile app.

There is a newer version: 30.19.0
Show newest version
@file:Suppress(
    "unused",
    "UNUSED_PARAMETER",
)

package divkit.dsl

import com.fasterxml.jackson.annotation.JsonAnyGetter
import com.fasterxml.jackson.annotation.JsonIgnore
import com.fasterxml.jackson.annotation.JsonValue
import divkit.dsl.annotation.*
import divkit.dsl.core.*
import divkit.dsl.scope.*
import kotlin.Any
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List
import kotlin.collections.Map

/**
 * Custom element. It is delegated to a host application to create native elements depending on the platform.
 * 
 * Can be created using the method [custom].
 * 
 * Required parameters: `type, custom_type`.
 */
@Generated
class Custom internal constructor(
    @JsonIgnore
    val properties: Properties,
) : Div {
    @JsonAnyGetter
    internal fun getJsonProperties(): Map = properties.mergeWith(
        mapOf("type" to "custom")
    )

    operator fun plus(additive: Properties): Custom = Custom(
        Properties(
            accessibility = additive.accessibility ?: properties.accessibility,
            alignmentHorizontal = additive.alignmentHorizontal ?: properties.alignmentHorizontal,
            alignmentVertical = additive.alignmentVertical ?: properties.alignmentVertical,
            alpha = additive.alpha ?: properties.alpha,
            background = additive.background ?: properties.background,
            border = additive.border ?: properties.border,
            columnSpan = additive.columnSpan ?: properties.columnSpan,
            customProps = additive.customProps ?: properties.customProps,
            customType = additive.customType ?: properties.customType,
            disappearActions = additive.disappearActions ?: properties.disappearActions,
            extensions = additive.extensions ?: properties.extensions,
            focus = additive.focus ?: properties.focus,
            height = additive.height ?: properties.height,
            id = additive.id ?: properties.id,
            items = additive.items ?: properties.items,
            layoutProvider = additive.layoutProvider ?: properties.layoutProvider,
            margins = additive.margins ?: properties.margins,
            paddings = additive.paddings ?: properties.paddings,
            reuseId = additive.reuseId ?: properties.reuseId,
            rowSpan = additive.rowSpan ?: properties.rowSpan,
            selectedActions = additive.selectedActions ?: properties.selectedActions,
            tooltips = additive.tooltips ?: properties.tooltips,
            transform = additive.transform ?: properties.transform,
            transitionChange = additive.transitionChange ?: properties.transitionChange,
            transitionIn = additive.transitionIn ?: properties.transitionIn,
            transitionOut = additive.transitionOut ?: properties.transitionOut,
            transitionTriggers = additive.transitionTriggers ?: properties.transitionTriggers,
            variables = additive.variables ?: properties.variables,
            visibility = additive.visibility ?: properties.visibility,
            visibilityAction = additive.visibilityAction ?: properties.visibilityAction,
            visibilityActions = additive.visibilityActions ?: properties.visibilityActions,
            width = additive.width ?: properties.width,
        )
    )

    class Properties internal constructor(
        /**
         * Accessibility settings.
         */
        val accessibility: Property?,
        /**
         * Horizontal alignment of an element inside the parent element.
         */
        val alignmentHorizontal: Property?,
        /**
         * Vertical alignment of an element inside the parent element.
         */
        val alignmentVertical: Property?,
        /**
         * Sets transparency of the entire element: `0` — completely transparent, `1` — opaque.
         * Default value: `1.0`.
         */
        val alpha: Property?,
        /**
         * Element background. It can contain multiple layers.
         */
        val background: Property>?,
        /**
         * Element stroke.
         */
        val border: Property?,
        /**
         * Merges cells in a column of the [grid](div-grid.md) element.
         */
        val columnSpan: Property?,
        /**
         * Element data for a host application.
         */
        val customProps: Property>?,
        /**
         * Subtype of an element for a host application.
         */
        val customType: Property?,
        /**
         * Actions when an element disappears from the screen.
         */
        val disappearActions: Property>?,
        /**
         * Extensions for additional processing of an element. The list of extensions is given in  [DivExtension](../../extensions).
         */
        val extensions: Property>?,
        /**
         * Parameters when focusing on an element or losing focus.
         */
        val focus: Property?,
        /**
         * Element height. For Android: if there is text in this or in a child element, specify height in `sp` to scale the element together with the text. To learn more about units of size measurement, see [Layout inside the card](../../layout).
         * Default value: `{"type": "wrap_content"}`.
         */
        val height: Property?,
        /**
         * Element ID. It must be unique within the root element. It is used as `accessibilityIdentifier` on iOS.
         */
        val id: Property?,
        /**
         * Nested elements.
         */
        val items: Property>?,
        /**
         * Provides element real size values after a layout cycle.
         */
        val layoutProvider: Property?,
        /**
         * External margins from the element stroke.
         */
        val margins: Property?,
        /**
         * Internal margins from the element stroke.
         */
        val paddings: Property?,
        /**
         * Id for the div structure. Used for more optimal reuse of blocks. See [reusing blocks](../../reuse/reuse.md)
         */
        val reuseId: Property?,
        /**
         * Merges cells in a string of the [grid](div-grid.md) element.
         */
        val rowSpan: Property?,
        /**
         * List of [actions](div-action.md) to be executed when selecting an element in [pager](div-pager.md).
         */
        val selectedActions: Property>?,
        /**
         * Tooltips linked to an element. A tooltip can be shown by `div-action://show_tooltip?id=`, hidden by `div-action://hide_tooltip?id=` where `id` — tooltip id.
         */
        val tooltips: Property>?,
        /**
         * Applies the passed transformation to the element. Content that doesn't fit into the original view area is cut off.
         */
        val transform: Property?,
        /**
         * Change animation. It is played when the position or size of an element changes in the new layout.
         */
        val transitionChange: Property?,
        /**
         * Appearance animation. It is played when an element with a new ID appears. To learn more about the concept of transitions, see [Animated transitions](../../interaction#animation/transition-animation).
         */
        val transitionIn: Property?,
        /**
         * Disappearance animation. It is played when an element disappears in the new layout.
         */
        val transitionOut: Property?,
        /**
         * Animation starting triggers. Default value: `[state_change, visibility_change]`.
         */
        val transitionTriggers: Property>>?,
        /**
         * Definition of variables that can be used within this element. These variables, defined in the array, can only be used inside this element and its children.
         */
        val variables: Property>?,
        /**
         * Element visibility.
         * Default value: `visible`.
         */
        val visibility: Property?,
        /**
         * Tracking visibility of a single element. Not used if the `visibility_actions` parameter is set.
         */
        val visibilityAction: Property?,
        /**
         * Actions when an element appears on the screen.
         */
        val visibilityActions: Property>?,
        /**
         * Element width.
         * Default value: `{"type": "match_parent"}`.
         */
        val width: Property?,
    ) {
        internal fun mergeWith(properties: Map): Map {
            val result = mutableMapOf()
            result.putAll(properties)
            result.tryPutProperty("accessibility", accessibility)
            result.tryPutProperty("alignment_horizontal", alignmentHorizontal)
            result.tryPutProperty("alignment_vertical", alignmentVertical)
            result.tryPutProperty("alpha", alpha)
            result.tryPutProperty("background", background)
            result.tryPutProperty("border", border)
            result.tryPutProperty("column_span", columnSpan)
            result.tryPutProperty("custom_props", customProps)
            result.tryPutProperty("custom_type", customType)
            result.tryPutProperty("disappear_actions", disappearActions)
            result.tryPutProperty("extensions", extensions)
            result.tryPutProperty("focus", focus)
            result.tryPutProperty("height", height)
            result.tryPutProperty("id", id)
            result.tryPutProperty("items", items)
            result.tryPutProperty("layout_provider", layoutProvider)
            result.tryPutProperty("margins", margins)
            result.tryPutProperty("paddings", paddings)
            result.tryPutProperty("reuse_id", reuseId)
            result.tryPutProperty("row_span", rowSpan)
            result.tryPutProperty("selected_actions", selectedActions)
            result.tryPutProperty("tooltips", tooltips)
            result.tryPutProperty("transform", transform)
            result.tryPutProperty("transition_change", transitionChange)
            result.tryPutProperty("transition_in", transitionIn)
            result.tryPutProperty("transition_out", transitionOut)
            result.tryPutProperty("transition_triggers", transitionTriggers)
            result.tryPutProperty("variables", variables)
            result.tryPutProperty("visibility", visibility)
            result.tryPutProperty("visibility_action", visibilityAction)
            result.tryPutProperty("visibility_actions", visibilityActions)
            result.tryPutProperty("width", width)
            return result
        }
    }
}

/**
 * @param accessibility Accessibility settings.
 * @param alignmentHorizontal Horizontal alignment of an element inside the parent element.
 * @param alignmentVertical Vertical alignment of an element inside the parent element.
 * @param alpha Sets transparency of the entire element: `0` — completely transparent, `1` — opaque.
 * @param background Element background. It can contain multiple layers.
 * @param border Element stroke.
 * @param columnSpan Merges cells in a column of the [grid](div-grid.md) element.
 * @param customProps Element data for a host application.
 * @param customType Subtype of an element for a host application.
 * @param disappearActions Actions when an element disappears from the screen.
 * @param extensions Extensions for additional processing of an element. The list of extensions is given in  [DivExtension](../../extensions).
 * @param focus Parameters when focusing on an element or losing focus.
 * @param height Element height. For Android: if there is text in this or in a child element, specify height in `sp` to scale the element together with the text. To learn more about units of size measurement, see [Layout inside the card](../../layout).
 * @param id Element ID. It must be unique within the root element. It is used as `accessibilityIdentifier` on iOS.
 * @param items Nested elements.
 * @param layoutProvider Provides element real size values after a layout cycle.
 * @param margins External margins from the element stroke.
 * @param paddings Internal margins from the element stroke.
 * @param reuseId Id for the div structure. Used for more optimal reuse of blocks. See [reusing blocks](../../reuse/reuse.md)
 * @param rowSpan Merges cells in a string of the [grid](div-grid.md) element.
 * @param selectedActions List of [actions](div-action.md) to be executed when selecting an element in [pager](div-pager.md).
 * @param tooltips Tooltips linked to an element. A tooltip can be shown by `div-action://show_tooltip?id=`, hidden by `div-action://hide_tooltip?id=` where `id` — tooltip id.
 * @param transform Applies the passed transformation to the element. Content that doesn't fit into the original view area is cut off.
 * @param transitionChange Change animation. It is played when the position or size of an element changes in the new layout.
 * @param transitionIn Appearance animation. It is played when an element with a new ID appears. To learn more about the concept of transitions, see [Animated transitions](../../interaction#animation/transition-animation).
 * @param transitionOut Disappearance animation. It is played when an element disappears in the new layout.
 * @param transitionTriggers Animation starting triggers. Default value: `[state_change, visibility_change]`.
 * @param variables Definition of variables that can be used within this element. These variables, defined in the array, can only be used inside this element and its children.
 * @param visibility Element visibility.
 * @param visibilityAction Tracking visibility of a single element. Not used if the `visibility_actions` parameter is set.
 * @param visibilityActions Actions when an element appears on the screen.
 * @param width Element width.
 */
@Generated
fun DivScope.custom(
    `use named arguments`: Guard = Guard.instance,
    accessibility: Accessibility? = null,
    alignmentHorizontal: AlignmentHorizontal? = null,
    alignmentVertical: AlignmentVertical? = null,
    alpha: Double? = null,
    background: List? = null,
    border: Border? = null,
    columnSpan: Int? = null,
    customProps: Map? = null,
    customType: String? = null,
    disappearActions: List? = null,
    extensions: List? = null,
    focus: Focus? = null,
    height: Size? = null,
    id: String? = null,
    items: List
? = null, layoutProvider: LayoutProvider? = null, margins: EdgeInsets? = null, paddings: EdgeInsets? = null, reuseId: String? = null, rowSpan: Int? = null, selectedActions: List? = null, tooltips: List? = null, transform: Transform? = null, transitionChange: ChangeTransition? = null, transitionIn: AppearanceTransition? = null, transitionOut: AppearanceTransition? = null, transitionTriggers: List>? = null, variables: List? = null, visibility: Visibility? = null, visibilityAction: VisibilityAction? = null, visibilityActions: List? = null, width: Size? = null, ): Custom = Custom( Custom.Properties( accessibility = valueOrNull(accessibility), alignmentHorizontal = valueOrNull(alignmentHorizontal), alignmentVertical = valueOrNull(alignmentVertical), alpha = valueOrNull(alpha), background = valueOrNull(background), border = valueOrNull(border), columnSpan = valueOrNull(columnSpan), customProps = valueOrNull(customProps), customType = valueOrNull(customType), disappearActions = valueOrNull(disappearActions), extensions = valueOrNull(extensions), focus = valueOrNull(focus), height = valueOrNull(height), id = valueOrNull(id), items = valueOrNull(items), layoutProvider = valueOrNull(layoutProvider), margins = valueOrNull(margins), paddings = valueOrNull(paddings), reuseId = valueOrNull(reuseId), rowSpan = valueOrNull(rowSpan), selectedActions = valueOrNull(selectedActions), tooltips = valueOrNull(tooltips), transform = valueOrNull(transform), transitionChange = valueOrNull(transitionChange), transitionIn = valueOrNull(transitionIn), transitionOut = valueOrNull(transitionOut), transitionTriggers = valueOrNull(transitionTriggers), variables = valueOrNull(variables), visibility = valueOrNull(visibility), visibilityAction = valueOrNull(visibilityAction), visibilityActions = valueOrNull(visibilityActions), width = valueOrNull(width), ) ) /** * @param accessibility Accessibility settings. * @param alignmentHorizontal Horizontal alignment of an element inside the parent element. * @param alignmentVertical Vertical alignment of an element inside the parent element. * @param alpha Sets transparency of the entire element: `0` — completely transparent, `1` — opaque. * @param background Element background. It can contain multiple layers. * @param border Element stroke. * @param columnSpan Merges cells in a column of the [grid](div-grid.md) element. * @param customProps Element data for a host application. * @param customType Subtype of an element for a host application. * @param disappearActions Actions when an element disappears from the screen. * @param extensions Extensions for additional processing of an element. The list of extensions is given in [DivExtension](../../extensions). * @param focus Parameters when focusing on an element or losing focus. * @param height Element height. For Android: if there is text in this or in a child element, specify height in `sp` to scale the element together with the text. To learn more about units of size measurement, see [Layout inside the card](../../layout). * @param id Element ID. It must be unique within the root element. It is used as `accessibilityIdentifier` on iOS. * @param items Nested elements. * @param layoutProvider Provides element real size values after a layout cycle. * @param margins External margins from the element stroke. * @param paddings Internal margins from the element stroke. * @param reuseId Id for the div structure. Used for more optimal reuse of blocks. See [reusing blocks](../../reuse/reuse.md) * @param rowSpan Merges cells in a string of the [grid](div-grid.md) element. * @param selectedActions List of [actions](div-action.md) to be executed when selecting an element in [pager](div-pager.md). * @param tooltips Tooltips linked to an element. A tooltip can be shown by `div-action://show_tooltip?id=`, hidden by `div-action://hide_tooltip?id=` where `id` — tooltip id. * @param transform Applies the passed transformation to the element. Content that doesn't fit into the original view area is cut off. * @param transitionChange Change animation. It is played when the position or size of an element changes in the new layout. * @param transitionIn Appearance animation. It is played when an element with a new ID appears. To learn more about the concept of transitions, see [Animated transitions](../../interaction#animation/transition-animation). * @param transitionOut Disappearance animation. It is played when an element disappears in the new layout. * @param transitionTriggers Animation starting triggers. Default value: `[state_change, visibility_change]`. * @param variables Definition of variables that can be used within this element. These variables, defined in the array, can only be used inside this element and its children. * @param visibility Element visibility. * @param visibilityAction Tracking visibility of a single element. Not used if the `visibility_actions` parameter is set. * @param visibilityActions Actions when an element appears on the screen. * @param width Element width. */ @Generated fun DivScope.customProps( `use named arguments`: Guard = Guard.instance, accessibility: Accessibility? = null, alignmentHorizontal: AlignmentHorizontal? = null, alignmentVertical: AlignmentVertical? = null, alpha: Double? = null, background: List? = null, border: Border? = null, columnSpan: Int? = null, customProps: Map? = null, customType: String? = null, disappearActions: List? = null, extensions: List? = null, focus: Focus? = null, height: Size? = null, id: String? = null, items: List
? = null, layoutProvider: LayoutProvider? = null, margins: EdgeInsets? = null, paddings: EdgeInsets? = null, reuseId: String? = null, rowSpan: Int? = null, selectedActions: List? = null, tooltips: List? = null, transform: Transform? = null, transitionChange: ChangeTransition? = null, transitionIn: AppearanceTransition? = null, transitionOut: AppearanceTransition? = null, transitionTriggers: List>? = null, variables: List? = null, visibility: Visibility? = null, visibilityAction: VisibilityAction? = null, visibilityActions: List? = null, width: Size? = null, ) = Custom.Properties( accessibility = valueOrNull(accessibility), alignmentHorizontal = valueOrNull(alignmentHorizontal), alignmentVertical = valueOrNull(alignmentVertical), alpha = valueOrNull(alpha), background = valueOrNull(background), border = valueOrNull(border), columnSpan = valueOrNull(columnSpan), customProps = valueOrNull(customProps), customType = valueOrNull(customType), disappearActions = valueOrNull(disappearActions), extensions = valueOrNull(extensions), focus = valueOrNull(focus), height = valueOrNull(height), id = valueOrNull(id), items = valueOrNull(items), layoutProvider = valueOrNull(layoutProvider), margins = valueOrNull(margins), paddings = valueOrNull(paddings), reuseId = valueOrNull(reuseId), rowSpan = valueOrNull(rowSpan), selectedActions = valueOrNull(selectedActions), tooltips = valueOrNull(tooltips), transform = valueOrNull(transform), transitionChange = valueOrNull(transitionChange), transitionIn = valueOrNull(transitionIn), transitionOut = valueOrNull(transitionOut), transitionTriggers = valueOrNull(transitionTriggers), variables = valueOrNull(variables), visibility = valueOrNull(visibility), visibilityAction = valueOrNull(visibilityAction), visibilityActions = valueOrNull(visibilityActions), width = valueOrNull(width), ) /** * @param accessibility Accessibility settings. * @param alignmentHorizontal Horizontal alignment of an element inside the parent element. * @param alignmentVertical Vertical alignment of an element inside the parent element. * @param alpha Sets transparency of the entire element: `0` — completely transparent, `1` — opaque. * @param background Element background. It can contain multiple layers. * @param border Element stroke. * @param columnSpan Merges cells in a column of the [grid](div-grid.md) element. * @param customProps Element data for a host application. * @param customType Subtype of an element for a host application. * @param disappearActions Actions when an element disappears from the screen. * @param extensions Extensions for additional processing of an element. The list of extensions is given in [DivExtension](../../extensions). * @param focus Parameters when focusing on an element or losing focus. * @param height Element height. For Android: if there is text in this or in a child element, specify height in `sp` to scale the element together with the text. To learn more about units of size measurement, see [Layout inside the card](../../layout). * @param id Element ID. It must be unique within the root element. It is used as `accessibilityIdentifier` on iOS. * @param items Nested elements. * @param layoutProvider Provides element real size values after a layout cycle. * @param margins External margins from the element stroke. * @param paddings Internal margins from the element stroke. * @param reuseId Id for the div structure. Used for more optimal reuse of blocks. See [reusing blocks](../../reuse/reuse.md) * @param rowSpan Merges cells in a string of the [grid](div-grid.md) element. * @param selectedActions List of [actions](div-action.md) to be executed when selecting an element in [pager](div-pager.md). * @param tooltips Tooltips linked to an element. A tooltip can be shown by `div-action://show_tooltip?id=`, hidden by `div-action://hide_tooltip?id=` where `id` — tooltip id. * @param transform Applies the passed transformation to the element. Content that doesn't fit into the original view area is cut off. * @param transitionChange Change animation. It is played when the position or size of an element changes in the new layout. * @param transitionIn Appearance animation. It is played when an element with a new ID appears. To learn more about the concept of transitions, see [Animated transitions](../../interaction#animation/transition-animation). * @param transitionOut Disappearance animation. It is played when an element disappears in the new layout. * @param transitionTriggers Animation starting triggers. Default value: `[state_change, visibility_change]`. * @param variables Definition of variables that can be used within this element. These variables, defined in the array, can only be used inside this element and its children. * @param visibility Element visibility. * @param visibilityAction Tracking visibility of a single element. Not used if the `visibility_actions` parameter is set. * @param visibilityActions Actions when an element appears on the screen. * @param width Element width. */ @Generated fun TemplateScope.customRefs( `use named arguments`: Guard = Guard.instance, accessibility: ReferenceProperty? = null, alignmentHorizontal: ReferenceProperty? = null, alignmentVertical: ReferenceProperty? = null, alpha: ReferenceProperty? = null, background: ReferenceProperty>? = null, border: ReferenceProperty? = null, columnSpan: ReferenceProperty? = null, customProps: ReferenceProperty>? = null, customType: ReferenceProperty? = null, disappearActions: ReferenceProperty>? = null, extensions: ReferenceProperty>? = null, focus: ReferenceProperty? = null, height: ReferenceProperty? = null, id: ReferenceProperty? = null, items: ReferenceProperty>? = null, layoutProvider: ReferenceProperty? = null, margins: ReferenceProperty? = null, paddings: ReferenceProperty? = null, reuseId: ReferenceProperty? = null, rowSpan: ReferenceProperty? = null, selectedActions: ReferenceProperty>? = null, tooltips: ReferenceProperty>? = null, transform: ReferenceProperty? = null, transitionChange: ReferenceProperty? = null, transitionIn: ReferenceProperty? = null, transitionOut: ReferenceProperty? = null, transitionTriggers: ReferenceProperty>>? = null, variables: ReferenceProperty>? = null, visibility: ReferenceProperty? = null, visibilityAction: ReferenceProperty? = null, visibilityActions: ReferenceProperty>? = null, width: ReferenceProperty? = null, ) = Custom.Properties( accessibility = accessibility, alignmentHorizontal = alignmentHorizontal, alignmentVertical = alignmentVertical, alpha = alpha, background = background, border = border, columnSpan = columnSpan, customProps = customProps, customType = customType, disappearActions = disappearActions, extensions = extensions, focus = focus, height = height, id = id, items = items, layoutProvider = layoutProvider, margins = margins, paddings = paddings, reuseId = reuseId, rowSpan = rowSpan, selectedActions = selectedActions, tooltips = tooltips, transform = transform, transitionChange = transitionChange, transitionIn = transitionIn, transitionOut = transitionOut, transitionTriggers = transitionTriggers, variables = variables, visibility = visibility, visibilityAction = visibilityAction, visibilityActions = visibilityActions, width = width, ) /** * @param accessibility Accessibility settings. * @param alignmentHorizontal Horizontal alignment of an element inside the parent element. * @param alignmentVertical Vertical alignment of an element inside the parent element. * @param alpha Sets transparency of the entire element: `0` — completely transparent, `1` — opaque. * @param background Element background. It can contain multiple layers. * @param border Element stroke. * @param columnSpan Merges cells in a column of the [grid](div-grid.md) element. * @param customProps Element data for a host application. * @param customType Subtype of an element for a host application. * @param disappearActions Actions when an element disappears from the screen. * @param extensions Extensions for additional processing of an element. The list of extensions is given in [DivExtension](../../extensions). * @param focus Parameters when focusing on an element or losing focus. * @param height Element height. For Android: if there is text in this or in a child element, specify height in `sp` to scale the element together with the text. To learn more about units of size measurement, see [Layout inside the card](../../layout). * @param id Element ID. It must be unique within the root element. It is used as `accessibilityIdentifier` on iOS. * @param items Nested elements. * @param layoutProvider Provides element real size values after a layout cycle. * @param margins External margins from the element stroke. * @param paddings Internal margins from the element stroke. * @param reuseId Id for the div structure. Used for more optimal reuse of blocks. See [reusing blocks](../../reuse/reuse.md) * @param rowSpan Merges cells in a string of the [grid](div-grid.md) element. * @param selectedActions List of [actions](div-action.md) to be executed when selecting an element in [pager](div-pager.md). * @param tooltips Tooltips linked to an element. A tooltip can be shown by `div-action://show_tooltip?id=`, hidden by `div-action://hide_tooltip?id=` where `id` — tooltip id. * @param transform Applies the passed transformation to the element. Content that doesn't fit into the original view area is cut off. * @param transitionChange Change animation. It is played when the position or size of an element changes in the new layout. * @param transitionIn Appearance animation. It is played when an element with a new ID appears. To learn more about the concept of transitions, see [Animated transitions](../../interaction#animation/transition-animation). * @param transitionOut Disappearance animation. It is played when an element disappears in the new layout. * @param transitionTriggers Animation starting triggers. Default value: `[state_change, visibility_change]`. * @param variables Definition of variables that can be used within this element. These variables, defined in the array, can only be used inside this element and its children. * @param visibility Element visibility. * @param visibilityAction Tracking visibility of a single element. Not used if the `visibility_actions` parameter is set. * @param visibilityActions Actions when an element appears on the screen. * @param width Element width. */ @Generated fun Custom.override( `use named arguments`: Guard = Guard.instance, accessibility: Accessibility? = null, alignmentHorizontal: AlignmentHorizontal? = null, alignmentVertical: AlignmentVertical? = null, alpha: Double? = null, background: List? = null, border: Border? = null, columnSpan: Int? = null, customProps: Map? = null, customType: String? = null, disappearActions: List? = null, extensions: List? = null, focus: Focus? = null, height: Size? = null, id: String? = null, items: List
? = null, layoutProvider: LayoutProvider? = null, margins: EdgeInsets? = null, paddings: EdgeInsets? = null, reuseId: String? = null, rowSpan: Int? = null, selectedActions: List? = null, tooltips: List? = null, transform: Transform? = null, transitionChange: ChangeTransition? = null, transitionIn: AppearanceTransition? = null, transitionOut: AppearanceTransition? = null, transitionTriggers: List>? = null, variables: List? = null, visibility: Visibility? = null, visibilityAction: VisibilityAction? = null, visibilityActions: List? = null, width: Size? = null, ): Custom = Custom( Custom.Properties( accessibility = valueOrNull(accessibility) ?: properties.accessibility, alignmentHorizontal = valueOrNull(alignmentHorizontal) ?: properties.alignmentHorizontal, alignmentVertical = valueOrNull(alignmentVertical) ?: properties.alignmentVertical, alpha = valueOrNull(alpha) ?: properties.alpha, background = valueOrNull(background) ?: properties.background, border = valueOrNull(border) ?: properties.border, columnSpan = valueOrNull(columnSpan) ?: properties.columnSpan, customProps = valueOrNull(customProps) ?: properties.customProps, customType = valueOrNull(customType) ?: properties.customType, disappearActions = valueOrNull(disappearActions) ?: properties.disappearActions, extensions = valueOrNull(extensions) ?: properties.extensions, focus = valueOrNull(focus) ?: properties.focus, height = valueOrNull(height) ?: properties.height, id = valueOrNull(id) ?: properties.id, items = valueOrNull(items) ?: properties.items, layoutProvider = valueOrNull(layoutProvider) ?: properties.layoutProvider, margins = valueOrNull(margins) ?: properties.margins, paddings = valueOrNull(paddings) ?: properties.paddings, reuseId = valueOrNull(reuseId) ?: properties.reuseId, rowSpan = valueOrNull(rowSpan) ?: properties.rowSpan, selectedActions = valueOrNull(selectedActions) ?: properties.selectedActions, tooltips = valueOrNull(tooltips) ?: properties.tooltips, transform = valueOrNull(transform) ?: properties.transform, transitionChange = valueOrNull(transitionChange) ?: properties.transitionChange, transitionIn = valueOrNull(transitionIn) ?: properties.transitionIn, transitionOut = valueOrNull(transitionOut) ?: properties.transitionOut, transitionTriggers = valueOrNull(transitionTriggers) ?: properties.transitionTriggers, variables = valueOrNull(variables) ?: properties.variables, visibility = valueOrNull(visibility) ?: properties.visibility, visibilityAction = valueOrNull(visibilityAction) ?: properties.visibilityAction, visibilityActions = valueOrNull(visibilityActions) ?: properties.visibilityActions, width = valueOrNull(width) ?: properties.width, ) ) /** * @param accessibility Accessibility settings. * @param alignmentHorizontal Horizontal alignment of an element inside the parent element. * @param alignmentVertical Vertical alignment of an element inside the parent element. * @param alpha Sets transparency of the entire element: `0` — completely transparent, `1` — opaque. * @param background Element background. It can contain multiple layers. * @param border Element stroke. * @param columnSpan Merges cells in a column of the [grid](div-grid.md) element. * @param customProps Element data for a host application. * @param customType Subtype of an element for a host application. * @param disappearActions Actions when an element disappears from the screen. * @param extensions Extensions for additional processing of an element. The list of extensions is given in [DivExtension](../../extensions). * @param focus Parameters when focusing on an element or losing focus. * @param height Element height. For Android: if there is text in this or in a child element, specify height in `sp` to scale the element together with the text. To learn more about units of size measurement, see [Layout inside the card](../../layout). * @param id Element ID. It must be unique within the root element. It is used as `accessibilityIdentifier` on iOS. * @param items Nested elements. * @param layoutProvider Provides element real size values after a layout cycle. * @param margins External margins from the element stroke. * @param paddings Internal margins from the element stroke. * @param reuseId Id for the div structure. Used for more optimal reuse of blocks. See [reusing blocks](../../reuse/reuse.md) * @param rowSpan Merges cells in a string of the [grid](div-grid.md) element. * @param selectedActions List of [actions](div-action.md) to be executed when selecting an element in [pager](div-pager.md). * @param tooltips Tooltips linked to an element. A tooltip can be shown by `div-action://show_tooltip?id=`, hidden by `div-action://hide_tooltip?id=` where `id` — tooltip id. * @param transform Applies the passed transformation to the element. Content that doesn't fit into the original view area is cut off. * @param transitionChange Change animation. It is played when the position or size of an element changes in the new layout. * @param transitionIn Appearance animation. It is played when an element with a new ID appears. To learn more about the concept of transitions, see [Animated transitions](../../interaction#animation/transition-animation). * @param transitionOut Disappearance animation. It is played when an element disappears in the new layout. * @param transitionTriggers Animation starting triggers. Default value: `[state_change, visibility_change]`. * @param variables Definition of variables that can be used within this element. These variables, defined in the array, can only be used inside this element and its children. * @param visibility Element visibility. * @param visibilityAction Tracking visibility of a single element. Not used if the `visibility_actions` parameter is set. * @param visibilityActions Actions when an element appears on the screen. * @param width Element width. */ @Generated fun Custom.defer( `use named arguments`: Guard = Guard.instance, accessibility: ReferenceProperty? = null, alignmentHorizontal: ReferenceProperty? = null, alignmentVertical: ReferenceProperty? = null, alpha: ReferenceProperty? = null, background: ReferenceProperty>? = null, border: ReferenceProperty? = null, columnSpan: ReferenceProperty? = null, customProps: ReferenceProperty>? = null, customType: ReferenceProperty? = null, disappearActions: ReferenceProperty>? = null, extensions: ReferenceProperty>? = null, focus: ReferenceProperty? = null, height: ReferenceProperty? = null, id: ReferenceProperty? = null, items: ReferenceProperty>? = null, layoutProvider: ReferenceProperty? = null, margins: ReferenceProperty? = null, paddings: ReferenceProperty? = null, reuseId: ReferenceProperty? = null, rowSpan: ReferenceProperty? = null, selectedActions: ReferenceProperty>? = null, tooltips: ReferenceProperty>? = null, transform: ReferenceProperty? = null, transitionChange: ReferenceProperty? = null, transitionIn: ReferenceProperty? = null, transitionOut: ReferenceProperty? = null, transitionTriggers: ReferenceProperty>>? = null, variables: ReferenceProperty>? = null, visibility: ReferenceProperty? = null, visibilityAction: ReferenceProperty? = null, visibilityActions: ReferenceProperty>? = null, width: ReferenceProperty? = null, ): Custom = Custom( Custom.Properties( accessibility = accessibility ?: properties.accessibility, alignmentHorizontal = alignmentHorizontal ?: properties.alignmentHorizontal, alignmentVertical = alignmentVertical ?: properties.alignmentVertical, alpha = alpha ?: properties.alpha, background = background ?: properties.background, border = border ?: properties.border, columnSpan = columnSpan ?: properties.columnSpan, customProps = customProps ?: properties.customProps, customType = customType ?: properties.customType, disappearActions = disappearActions ?: properties.disappearActions, extensions = extensions ?: properties.extensions, focus = focus ?: properties.focus, height = height ?: properties.height, id = id ?: properties.id, items = items ?: properties.items, layoutProvider = layoutProvider ?: properties.layoutProvider, margins = margins ?: properties.margins, paddings = paddings ?: properties.paddings, reuseId = reuseId ?: properties.reuseId, rowSpan = rowSpan ?: properties.rowSpan, selectedActions = selectedActions ?: properties.selectedActions, tooltips = tooltips ?: properties.tooltips, transform = transform ?: properties.transform, transitionChange = transitionChange ?: properties.transitionChange, transitionIn = transitionIn ?: properties.transitionIn, transitionOut = transitionOut ?: properties.transitionOut, transitionTriggers = transitionTriggers ?: properties.transitionTriggers, variables = variables ?: properties.variables, visibility = visibility ?: properties.visibility, visibilityAction = visibilityAction ?: properties.visibilityAction, visibilityActions = visibilityActions ?: properties.visibilityActions, width = width ?: properties.width, ) ) /** * @param alignmentHorizontal Horizontal alignment of an element inside the parent element. * @param alignmentVertical Vertical alignment of an element inside the parent element. * @param alpha Sets transparency of the entire element: `0` — completely transparent, `1` — opaque. * @param columnSpan Merges cells in a column of the [grid](div-grid.md) element. * @param reuseId Id for the div structure. Used for more optimal reuse of blocks. See [reusing blocks](../../reuse/reuse.md) * @param rowSpan Merges cells in a string of the [grid](div-grid.md) element. * @param visibility Element visibility. */ @Generated fun Custom.evaluate( `use named arguments`: Guard = Guard.instance, alignmentHorizontal: ExpressionProperty? = null, alignmentVertical: ExpressionProperty? = null, alpha: ExpressionProperty? = null, columnSpan: ExpressionProperty? = null, reuseId: ExpressionProperty? = null, rowSpan: ExpressionProperty? = null, visibility: ExpressionProperty? = null, ): Custom = Custom( Custom.Properties( accessibility = properties.accessibility, alignmentHorizontal = alignmentHorizontal ?: properties.alignmentHorizontal, alignmentVertical = alignmentVertical ?: properties.alignmentVertical, alpha = alpha ?: properties.alpha, background = properties.background, border = properties.border, columnSpan = columnSpan ?: properties.columnSpan, customProps = properties.customProps, customType = properties.customType, disappearActions = properties.disappearActions, extensions = properties.extensions, focus = properties.focus, height = properties.height, id = properties.id, items = properties.items, layoutProvider = properties.layoutProvider, margins = properties.margins, paddings = properties.paddings, reuseId = reuseId ?: properties.reuseId, rowSpan = rowSpan ?: properties.rowSpan, selectedActions = properties.selectedActions, tooltips = properties.tooltips, transform = properties.transform, transitionChange = properties.transitionChange, transitionIn = properties.transitionIn, transitionOut = properties.transitionOut, transitionTriggers = properties.transitionTriggers, variables = properties.variables, visibility = visibility ?: properties.visibility, visibilityAction = properties.visibilityAction, visibilityActions = properties.visibilityActions, width = properties.width, ) ) /** * @param accessibility Accessibility settings. * @param alignmentHorizontal Horizontal alignment of an element inside the parent element. * @param alignmentVertical Vertical alignment of an element inside the parent element. * @param alpha Sets transparency of the entire element: `0` — completely transparent, `1` — opaque. * @param background Element background. It can contain multiple layers. * @param border Element stroke. * @param columnSpan Merges cells in a column of the [grid](div-grid.md) element. * @param customProps Element data for a host application. * @param customType Subtype of an element for a host application. * @param disappearActions Actions when an element disappears from the screen. * @param extensions Extensions for additional processing of an element. The list of extensions is given in [DivExtension](../../extensions). * @param focus Parameters when focusing on an element or losing focus. * @param height Element height. For Android: if there is text in this or in a child element, specify height in `sp` to scale the element together with the text. To learn more about units of size measurement, see [Layout inside the card](../../layout). * @param id Element ID. It must be unique within the root element. It is used as `accessibilityIdentifier` on iOS. * @param items Nested elements. * @param layoutProvider Provides element real size values after a layout cycle. * @param margins External margins from the element stroke. * @param paddings Internal margins from the element stroke. * @param reuseId Id for the div structure. Used for more optimal reuse of blocks. See [reusing blocks](../../reuse/reuse.md) * @param rowSpan Merges cells in a string of the [grid](div-grid.md) element. * @param selectedActions List of [actions](div-action.md) to be executed when selecting an element in [pager](div-pager.md). * @param tooltips Tooltips linked to an element. A tooltip can be shown by `div-action://show_tooltip?id=`, hidden by `div-action://hide_tooltip?id=` where `id` — tooltip id. * @param transform Applies the passed transformation to the element. Content that doesn't fit into the original view area is cut off. * @param transitionChange Change animation. It is played when the position or size of an element changes in the new layout. * @param transitionIn Appearance animation. It is played when an element with a new ID appears. To learn more about the concept of transitions, see [Animated transitions](../../interaction#animation/transition-animation). * @param transitionOut Disappearance animation. It is played when an element disappears in the new layout. * @param transitionTriggers Animation starting triggers. Default value: `[state_change, visibility_change]`. * @param variables Definition of variables that can be used within this element. These variables, defined in the array, can only be used inside this element and its children. * @param visibility Element visibility. * @param visibilityAction Tracking visibility of a single element. Not used if the `visibility_actions` parameter is set. * @param visibilityActions Actions when an element appears on the screen. * @param width Element width. */ @Generated fun Component.override( `use named arguments`: Guard = Guard.instance, accessibility: Accessibility? = null, alignmentHorizontal: AlignmentHorizontal? = null, alignmentVertical: AlignmentVertical? = null, alpha: Double? = null, background: List? = null, border: Border? = null, columnSpan: Int? = null, customProps: Map? = null, customType: String? = null, disappearActions: List? = null, extensions: List? = null, focus: Focus? = null, height: Size? = null, id: String? = null, items: List
? = null, layoutProvider: LayoutProvider? = null, margins: EdgeInsets? = null, paddings: EdgeInsets? = null, reuseId: String? = null, rowSpan: Int? = null, selectedActions: List? = null, tooltips: List? = null, transform: Transform? = null, transitionChange: ChangeTransition? = null, transitionIn: AppearanceTransition? = null, transitionOut: AppearanceTransition? = null, transitionTriggers: List>? = null, variables: List? = null, visibility: Visibility? = null, visibilityAction: VisibilityAction? = null, visibilityActions: List? = null, width: Size? = null, ): Component = Component( template = template, properties = Custom.Properties( accessibility = valueOrNull(accessibility), alignmentHorizontal = valueOrNull(alignmentHorizontal), alignmentVertical = valueOrNull(alignmentVertical), alpha = valueOrNull(alpha), background = valueOrNull(background), border = valueOrNull(border), columnSpan = valueOrNull(columnSpan), customProps = valueOrNull(customProps), customType = valueOrNull(customType), disappearActions = valueOrNull(disappearActions), extensions = valueOrNull(extensions), focus = valueOrNull(focus), height = valueOrNull(height), id = valueOrNull(id), items = valueOrNull(items), layoutProvider = valueOrNull(layoutProvider), margins = valueOrNull(margins), paddings = valueOrNull(paddings), reuseId = valueOrNull(reuseId), rowSpan = valueOrNull(rowSpan), selectedActions = valueOrNull(selectedActions), tooltips = valueOrNull(tooltips), transform = valueOrNull(transform), transitionChange = valueOrNull(transitionChange), transitionIn = valueOrNull(transitionIn), transitionOut = valueOrNull(transitionOut), transitionTriggers = valueOrNull(transitionTriggers), variables = valueOrNull(variables), visibility = valueOrNull(visibility), visibilityAction = valueOrNull(visibilityAction), visibilityActions = valueOrNull(visibilityActions), width = valueOrNull(width), ).mergeWith(properties) ) /** * @param accessibility Accessibility settings. * @param alignmentHorizontal Horizontal alignment of an element inside the parent element. * @param alignmentVertical Vertical alignment of an element inside the parent element. * @param alpha Sets transparency of the entire element: `0` — completely transparent, `1` — opaque. * @param background Element background. It can contain multiple layers. * @param border Element stroke. * @param columnSpan Merges cells in a column of the [grid](div-grid.md) element. * @param customProps Element data for a host application. * @param customType Subtype of an element for a host application. * @param disappearActions Actions when an element disappears from the screen. * @param extensions Extensions for additional processing of an element. The list of extensions is given in [DivExtension](../../extensions). * @param focus Parameters when focusing on an element or losing focus. * @param height Element height. For Android: if there is text in this or in a child element, specify height in `sp` to scale the element together with the text. To learn more about units of size measurement, see [Layout inside the card](../../layout). * @param id Element ID. It must be unique within the root element. It is used as `accessibilityIdentifier` on iOS. * @param items Nested elements. * @param layoutProvider Provides element real size values after a layout cycle. * @param margins External margins from the element stroke. * @param paddings Internal margins from the element stroke. * @param reuseId Id for the div structure. Used for more optimal reuse of blocks. See [reusing blocks](../../reuse/reuse.md) * @param rowSpan Merges cells in a string of the [grid](div-grid.md) element. * @param selectedActions List of [actions](div-action.md) to be executed when selecting an element in [pager](div-pager.md). * @param tooltips Tooltips linked to an element. A tooltip can be shown by `div-action://show_tooltip?id=`, hidden by `div-action://hide_tooltip?id=` where `id` — tooltip id. * @param transform Applies the passed transformation to the element. Content that doesn't fit into the original view area is cut off. * @param transitionChange Change animation. It is played when the position or size of an element changes in the new layout. * @param transitionIn Appearance animation. It is played when an element with a new ID appears. To learn more about the concept of transitions, see [Animated transitions](../../interaction#animation/transition-animation). * @param transitionOut Disappearance animation. It is played when an element disappears in the new layout. * @param transitionTriggers Animation starting triggers. Default value: `[state_change, visibility_change]`. * @param variables Definition of variables that can be used within this element. These variables, defined in the array, can only be used inside this element and its children. * @param visibility Element visibility. * @param visibilityAction Tracking visibility of a single element. Not used if the `visibility_actions` parameter is set. * @param visibilityActions Actions when an element appears on the screen. * @param width Element width. */ @Generated fun Component.defer( `use named arguments`: Guard = Guard.instance, accessibility: ReferenceProperty? = null, alignmentHorizontal: ReferenceProperty? = null, alignmentVertical: ReferenceProperty? = null, alpha: ReferenceProperty? = null, background: ReferenceProperty>? = null, border: ReferenceProperty? = null, columnSpan: ReferenceProperty? = null, customProps: ReferenceProperty>? = null, customType: ReferenceProperty? = null, disappearActions: ReferenceProperty>? = null, extensions: ReferenceProperty>? = null, focus: ReferenceProperty? = null, height: ReferenceProperty? = null, id: ReferenceProperty? = null, items: ReferenceProperty>? = null, layoutProvider: ReferenceProperty? = null, margins: ReferenceProperty? = null, paddings: ReferenceProperty? = null, reuseId: ReferenceProperty? = null, rowSpan: ReferenceProperty? = null, selectedActions: ReferenceProperty>? = null, tooltips: ReferenceProperty>? = null, transform: ReferenceProperty? = null, transitionChange: ReferenceProperty? = null, transitionIn: ReferenceProperty? = null, transitionOut: ReferenceProperty? = null, transitionTriggers: ReferenceProperty>>? = null, variables: ReferenceProperty>? = null, visibility: ReferenceProperty? = null, visibilityAction: ReferenceProperty? = null, visibilityActions: ReferenceProperty>? = null, width: ReferenceProperty? = null, ): Component = Component( template = template, properties = Custom.Properties( accessibility = accessibility, alignmentHorizontal = alignmentHorizontal, alignmentVertical = alignmentVertical, alpha = alpha, background = background, border = border, columnSpan = columnSpan, customProps = customProps, customType = customType, disappearActions = disappearActions, extensions = extensions, focus = focus, height = height, id = id, items = items, layoutProvider = layoutProvider, margins = margins, paddings = paddings, reuseId = reuseId, rowSpan = rowSpan, selectedActions = selectedActions, tooltips = tooltips, transform = transform, transitionChange = transitionChange, transitionIn = transitionIn, transitionOut = transitionOut, transitionTriggers = transitionTriggers, variables = variables, visibility = visibility, visibilityAction = visibilityAction, visibilityActions = visibilityActions, width = width, ).mergeWith(properties) ) /** * @param alignmentHorizontal Horizontal alignment of an element inside the parent element. * @param alignmentVertical Vertical alignment of an element inside the parent element. * @param alpha Sets transparency of the entire element: `0` — completely transparent, `1` — opaque. * @param columnSpan Merges cells in a column of the [grid](div-grid.md) element. * @param reuseId Id for the div structure. Used for more optimal reuse of blocks. See [reusing blocks](../../reuse/reuse.md) * @param rowSpan Merges cells in a string of the [grid](div-grid.md) element. * @param visibility Element visibility. */ @Generated fun Component.evaluate( `use named arguments`: Guard = Guard.instance, alignmentHorizontal: ExpressionProperty? = null, alignmentVertical: ExpressionProperty? = null, alpha: ExpressionProperty? = null, columnSpan: ExpressionProperty? = null, reuseId: ExpressionProperty? = null, rowSpan: ExpressionProperty? = null, visibility: ExpressionProperty? = null, ): Component = Component( template = template, properties = Custom.Properties( accessibility = null, alignmentHorizontal = alignmentHorizontal, alignmentVertical = alignmentVertical, alpha = alpha, background = null, border = null, columnSpan = columnSpan, customProps = null, customType = null, disappearActions = null, extensions = null, focus = null, height = null, id = null, items = null, layoutProvider = null, margins = null, paddings = null, reuseId = reuseId, rowSpan = rowSpan, selectedActions = null, tooltips = null, transform = null, transitionChange = null, transitionIn = null, transitionOut = null, transitionTriggers = null, variables = null, visibility = visibility, visibilityAction = null, visibilityActions = null, width = null, ).mergeWith(properties) ) @Generated operator fun Component.plus(additive: Custom.Properties): Component = Component( template = template, properties = additive.mergeWith(properties) ) @Generated fun Custom.asList() = listOf(this)




© 2015 - 2024 Weber Informatics LLC | Privacy Policy