div-state

Содержит наборы состояний для визуальных элементов и переключается между ними.

JSON

{
  type*: "state",
  accessibility: {
    description: "string",
    hint: "string",
    mode: "string",
    mute_after_action: "bool_int",
    state_description: "string",
    type: "string"
  },
  alignment_horizontal: "string",
  alignment_vertical: "string",
  alpha: "number",
  background: [ div-background, ... ],
  border: {
    corner_radius: "int",
    corners_radius: {
      bottom-left: "int",
      bottom-right: "int",
      top-left: "int",
      top-right: "int"
    },
    has_shadow: "bool_int",
    shadow: {
      alpha: "number",
      blur: "int",
      color: "string",
      offset*: {
        x*: {
          unit: "string",
          value*: "number"
        },
        y*: {
          unit: "string",
          value*: "number"
        }
      }
    },
    stroke: {
      color*: "string",
      unit: "string",
      width: "int"
    }
  },
  column_span: "int",
  default_state_id: "string",
  disappear_actions: [
    {
      disappear_duration: "int",
      download_callbacks: {
        on_fail_actions: [
          {
            download_callbacks: div-download-callbacks,
            is_enabled: "bool_int",
            log_id*: "string",
            log_url: "string",
            menu_items: [
              {
                action: div-action,
                actions: [ div-action, ... ],
                text*: "string"
              },
              ...
            ],
            payload: "object",
            referer: "string",
            target: "string",
            typed: div-action-typed,
            url: "string"
          },
          ...
        ],
        on_success_actions: [
          {
            download_callbacks: div-download-callbacks,
            is_enabled: "bool_int",
            log_id*: "string",
            log_url: "string",
            menu_items: [
              {
                action: div-action,
                actions: [ div-action, ... ],
                text*: "string"
              },
              ...
            ],
            payload: "object",
            referer: "string",
            target: "string",
            typed: div-action-typed,
            url: "string"
          },
          ...
        ]
      },
      is_enabled: "bool_int",
      log_id*: "string",
      log_limit: "int",
      payload: "object",
      referer: "string",
      typed: div-action-typed,
      url: "string",
      visibility_percentage: "int"
    },
    ...
  ],
  div_id: "string",
  extensions: [
    {
      id*: "string",
      params: "object"
    },
    ...
  ],
  focus: {
    background: [ div-background, ... ],
    border: {
      corner_radius: "int",
      corners_radius: {
        bottom-left: "int",
        bottom-right: "int",
        top-left: "int",
        top-right: "int"
      },
      has_shadow: "bool_int",
      shadow: {
        alpha: "number",
        blur: "int",
        color: "string",
        offset*: {
          x*: {
            unit: "string",
            value*: "number"
          },
          y*: {
            unit: "string",
            value*: "number"
          }
        }
      },
      stroke: {
        color*: "string",
        unit: "string",
        width: "int"
      }
    },
    next_focus_ids: {
      down: "string",
      forward: "string",
      left: "string",
      right: "string",
      up: "string"
    },
    on_blur: [
      {
        download_callbacks: {
          on_fail_actions: [ div-action, ... ],
          on_success_actions: [ div-action, ... ]
        },
        is_enabled: "bool_int",
        log_id*: "string",
        log_url: "string",
        menu_items: [
          {
            action: div-action,
            actions: [ div-action, ... ],
            text*: "string"
          },
          ...
        ],
        payload: "object",
        referer: "string",
        target: "string",
        typed: div-action-typed,
        url: "string"
      },
      ...
    ],
    on_focus: [
      {
        download_callbacks: {
          on_fail_actions: [ div-action, ... ],
          on_success_actions: [ div-action, ... ]
        },
        is_enabled: "bool_int",
        log_id*: "string",
        log_url: "string",
        menu_items: [
          {
            action: div-action,
            actions: [ div-action, ... ],
            text*: "string"
          },
          ...
        ],
        payload: "object",
        referer: "string",
        target: "string",
        typed: div-action-typed,
        url: "string"
      },
      ...
    ]
  },
  height: div-size,
  id: "string",
  margins: {
    bottom: "int",
    end: "int",
    left: "int",
    right: "int",
    start: "int",
    top: "int",
    unit: "string"
  },
  paddings: {
    bottom: "int",
    end: "int",
    left: "int",
    right: "int",
    start: "int",
    top: "int",
    unit: "string"
  },
  row_span: "int",
  selected_actions: [
    {
      download_callbacks: {
        on_fail_actions: [ div-action, ... ],
        on_success_actions: [ div-action, ... ]
      },
      is_enabled: "bool_int",
      log_id*: "string",
      log_url: "string",
      menu_items: [
        {
          action: div-action,
          actions: [ div-action, ... ],
          text*: "string"
        },
        ...
      ],
      payload: "object",
      referer: "string",
      target: "string",
      typed: div-action-typed,
      url: "string"
    },
    ...
  ],
  state_id_variable: "string",
  states*: [
    {
      animation_in: {
        duration: "int",
        end_value: "number",
        interpolator: "string",
        items: [ div-animation, ... ],
        name*: "string",
        repeat: div-count,
        start_delay: "int",
        start_value: "number"
      },
      animation_out: {
        duration: "int",
        end_value: "number",
        interpolator: "string",
        items: [ div-animation, ... ],
        name*: "string",
        repeat: div-count,
        start_delay: "int",
        start_value: "number"
      },
      div: div,
      state_id*: "string",
      swipe_out_actions: [
        {
          download_callbacks: {
            on_fail_actions: [ div-action, ... ],
            on_success_actions: [ div-action, ... ]
          },
          is_enabled: "bool_int",
          log_id*: "string",
          log_url: "string",
          menu_items: [
            {
              action: div-action,
              actions: [ div-action, ... ],
              text*: "string"
            },
            ...
          ],
          payload: "object",
          referer: "string",
          target: "string",
          typed: div-action-typed,
          url: "string"
        },
        ...
      ]
    },
    ...
  ],
  tooltips: [
    {
      animation_in: {
        duration: "int",
        end_value: "number",
        interpolator: "string",
        items: [ div-animation, ... ],
        name*: "string",
        repeat: div-count,
        start_delay: "int",
        start_value: "number"
      },
      animation_out: {
        duration: "int",
        end_value: "number",
        interpolator: "string",
        items: [ div-animation, ... ],
        name*: "string",
        repeat: div-count,
        start_delay: "int",
        start_value: "number"
      },
      div*: div,
      duration: "int",
      id*: "string",
      offset: {
        x*: {
          unit: "string",
          value*: "number"
        },
        y*: {
          unit: "string",
          value*: "number"
        }
      },
      position*: "string"
    },
    ...
  ],
  transform: {
    pivot_x: div-pivot,
    pivot_y: div-pivot,
    rotation: "number"
  },
  transition_animation_selector: "string",
  transition_change: div-change-transition,
  transition_in: div-appearance-transition,
  transition_out: div-appearance-transition,
  transition_triggers: [ "string", ... ],
  visibility: "string",
  visibility_action: {
    download_callbacks: {
      on_fail_actions: [
        {
          download_callbacks: div-download-callbacks,
          is_enabled: "bool_int",
          log_id*: "string",
          log_url: "string",
          menu_items: [
            {
              action: div-action,
              actions: [ div-action, ... ],
              text*: "string"
            },
            ...
          ],
          payload: "object",
          referer: "string",
          target: "string",
          typed: div-action-typed,
          url: "string"
        },
        ...
      ],
      on_success_actions: [
        {
          download_callbacks: div-download-callbacks,
          is_enabled: "bool_int",
          log_id*: "string",
          log_url: "string",
          menu_items: [
            {
              action: div-action,
              actions: [ div-action, ... ],
              text*: "string"
            },
            ...
          ],
          payload: "object",
          referer: "string",
          target: "string",
          typed: div-action-typed,
          url: "string"
        },
        ...
      ]
    },
    is_enabled: "bool_int",
    log_id*: "string",
    log_limit: "int",
    payload: "object",
    referer: "string",
    typed: div-action-typed,
    url: "string",
    visibility_duration: "int",
    visibility_percentage: "int"
  },
  visibility_actions: [
    {
      download_callbacks: {
        on_fail_actions: [
          {
            download_callbacks: div-download-callbacks,
            is_enabled: "bool_int",
            log_id*: "string",
            log_url: "string",
            menu_items: [
              {
                action: div-action,
                actions: [ div-action, ... ],
                text*: "string"
              },
              ...
            ],
            payload: "object",
            referer: "string",
            target: "string",
            typed: div-action-typed,
            url: "string"
          },
          ...
        ],
        on_success_actions: [
          {
            download_callbacks: div-download-callbacks,
            is_enabled: "bool_int",
            log_id*: "string",
            log_url: "string",
            menu_items: [
              {
                action: div-action,
                actions: [ div-action, ... ],
                text*: "string"
              },
              ...
            ],
            payload: "object",
            referer: "string",
            target: "string",
            typed: div-action-typed,
            url: "string"
          },
          ...
        ]
      },
      is_enabled: "bool_int",
      log_id*: "string",
      log_limit: "int",
      payload: "object",
      referer: "string",
      typed: div-action-typed,
      url: "string",
      visibility_duration: "int",
      visibility_percentage: "int"
    },
    ...
  ],
  width: div-size
}

Параметры

ПараметрыОписание
accessibility

object

Настройки доступности.

Значение имеет тип div-accessibility.

alignment_horizontal

string

Горизонтальное выравнивание элемента внутри родительского.

Возможные значения: left, center, right, start, end.

alignment_vertical

string

Вертикальное выравнивание элемента внутри родительского.

Возможные значения: top, center, bottom, baseline.

alpha

number

Устанавливает прозрачность всего элемента: 0 — полностью прозрачный, 1 — непрозрачный.

Ограничение для значения x: x >= 0.0 && x <= 1.0.

Значение по умолчанию: 1.0.

background

array

Фон элемента. Может содержать несколько слоев.

Массив должен быть непустым.

border

object

Рамка элемента.

Значение имеет тип div-border.

column_span

int

Объединяет ячейки в столбце элемента grid.

Ограничение для значения x: x >= 0.

default_state_id

string

Идентификатор состояния, которое будет выставлено по умолчанию. Если параметр не задан, то будет выставлено первое состояние из states.

disappear_actions

array

Действия при исчезновении элемента с экрана.

Массив должен быть непустым.

div_id

string

Параметр устарел.

Идентификатор элемента. Параметр устарел, используйте id.

extensions

array

Расширения для дополнительной обработки элемента. Список расширений см. в разделе Кастомизация.

Массив должен быть непустым.

focus

object

Параметры при фокусировке на элементе или потере фокуса.

Значение имеет тип div-focus.

height

object

Высота элемента. Для Android: если в этом или в дочернем элементе есть текст, укажите высоту в sp, чтобы элемент масштабировался вместе с текстом. Подробнее о единицах измерения размера в разделе Верстка внутри карточки.

Значение имеет тип div-size.

Значение по умолчанию: {"type": "wrap_content"}.

Список возможных значений:
  • div-fixed-size
  • div-match-parent-size
  • div-wrap-content-size
  • id

    string

    Идентификатор элемента. На iOS используется в качестве accessibilityIdentifier.

    margins

    object

    Внешние отступы от рамки элемента.

    Значение имеет тип div-edge-insets.

    paddings

    object

    Внутренние отступы от рамки элемента.

    Значение имеет тип div-edge-insets.

    row_span

    int

    Объединяет ячейки в строке элемента grid.

    Ограничение для значения x: x >= 0.

    selected_actions

    array

    Список действий, которые будут выполнены при выборе элемента в пейджере.

    Массив должен быть непустым.

    state_id_variable

    string

    Имя переменной, в которой хранится идентификатор текущего состояния. Если изменится значение переменной, то и активное состояние будет изменено. Переменная имеет приоритет над параметром default_state_id.

    states

    array

    Обязательный параметр.

    Состояния. Каждый элемент может иметь несколько состояний с разной версткой. Переход между состояниями осуществляется с помощью специальной схемы элемента action.

    Массив должен быть непустым.

    tooltips

    array

    Привязанные к элементу всплывающие подсказки. Подсказка может быть показана по div-action://show_tooltip?id=, скрыта по div-action://hide_tooltip?id=, где id — id подсказки.

    Массив должен быть непустым.

    transform

    object

    Применяет к элементу переданное преобразование. Тот контент, который не поместится в исходную область просмотра, будет обрезан.

    Значение имеет тип div-transform.

    transition_animation_selector

    string

    Параметр устарел.

    Определяет, при каких событиях сработают анимации переходов. Вместо него используйте transition_triggers.

    Возможные значения: none, data_change, state_change, any_change.

    Значение по умолчанию: state_change.

    transition_change

    object

    Анимация изменения. Воспроизводится при изменении положения или размера элемента в новой верстке.

    Значение имеет тип div-change-transition.

    Список возможных значений:
  • div-change-set-transition
  • div-change-bounds-transition
  • transition_in

    object

    Анимация появления. Воспроизводится при появлении элемента с новым id. Подробнее о концепции переходов в разделе Анимация перехода.

    Значение имеет тип div-appearance-transition.

    transition_out

    object

    Анимация исчезания. Воспроизводится при исчезании элемента в новой верстке.

    Значение имеет тип div-appearance-transition.

    transition_triggers

    array

    Триггеры запуска анимации. Значение по умолчанию: [state_change, visibility_change].

    Массив должен быть непустым.

    type

    string

    Обязательный параметр.

    Значение всегда должно равняться state.

    visibility

    string

    Видимость элемента.

    Возможные значения: visible, invisible, gone.

    Значение по умолчанию: visible.

    visibility_action

    object

    Трекинг видимости одного элемента. Не используется, если задан параметр visibility_actions.

    Значение имеет тип div-visibility-action.

    visibility_actions

    array

    Действия при появлении элемента на экране.

    Массив должен быть непустым.

    width

    object

    Ширина элемента.

    Значение имеет тип div-size.

    Значение по умолчанию: {"type": "match_parent"}.

    Список возможных значений:
  • div-fixed-size
  • div-match-parent-size
  • div-wrap-content-size
  • ПараметрыОписание
    accessibility

    object

    Настройки доступности.

    Значение имеет тип div-accessibility.

    alignment_horizontal

    string

    Горизонтальное выравнивание элемента внутри родительского.

    Возможные значения: left, center, right, start, end.

    alignment_vertical

    string

    Вертикальное выравнивание элемента внутри родительского.

    Возможные значения: top, center, bottom, baseline.

    alpha

    number

    Устанавливает прозрачность всего элемента: 0 — полностью прозрачный, 1 — непрозрачный.

    Ограничение для значения x: x >= 0.0 && x <= 1.0.

    Значение по умолчанию: 1.0.

    background

    array

    Фон элемента. Может содержать несколько слоев.

    Массив должен быть непустым.

    border

    object

    Рамка элемента.

    Значение имеет тип div-border.

    column_span

    int

    Объединяет ячейки в столбце элемента grid.

    Ограничение для значения x: x >= 0.

    default_state_id

    string

    Идентификатор состояния, которое будет выставлено по умолчанию. Если параметр не задан, то будет выставлено первое состояние из states.

    disappear_actions

    array

    Действия при исчезновении элемента с экрана.

    Массив должен быть непустым.

    div_id

    string

    Параметр устарел.

    Идентификатор элемента. Параметр устарел, используйте id.

    extensions

    array

    Расширения для дополнительной обработки элемента. Список расширений см. в разделе Кастомизация.

    Массив должен быть непустым.

    focus

    object

    Параметры при фокусировке на элементе или потере фокуса.

    Значение имеет тип div-focus.

    height

    object

    Высота элемента. Для Android: если в этом или в дочернем элементе есть текст, укажите высоту в sp, чтобы элемент масштабировался вместе с текстом. Подробнее о единицах измерения размера в разделе Верстка внутри карточки.

    Значение имеет тип div-size.

    Значение по умолчанию: {"type": "wrap_content"}.

    Список возможных значений:
  • div-fixed-size
  • div-match-parent-size
  • div-wrap-content-size
  • id

    string

    Идентификатор элемента. На iOS используется в качестве accessibilityIdentifier.

    margins

    object

    Внешние отступы от рамки элемента.

    Значение имеет тип div-edge-insets.

    paddings

    object

    Внутренние отступы от рамки элемента.

    Значение имеет тип div-edge-insets.

    row_span

    int

    Объединяет ячейки в строке элемента grid.

    Ограничение для значения x: x >= 0.

    selected_actions

    array

    Список действий, которые будут выполнены при выборе элемента в пейджере.

    Массив должен быть непустым.

    state_id_variable

    string

    Имя переменной, в которой хранится идентификатор текущего состояния. Если изменится значение переменной, то и активное состояние будет изменено. Переменная имеет приоритет над параметром default_state_id.

    states

    array

    Обязательный параметр.

    Состояния. Каждый элемент может иметь несколько состояний с разной версткой. Переход между состояниями осуществляется с помощью специальной схемы элемента action.

    Массив должен быть непустым.

    tooltips

    array

    Привязанные к элементу всплывающие подсказки. Подсказка может быть показана по div-action://show_tooltip?id=, скрыта по div-action://hide_tooltip?id=, где id — id подсказки.

    Массив должен быть непустым.

    transform

    object

    Применяет к элементу переданное преобразование. Тот контент, который не поместится в исходную область просмотра, будет обрезан.

    Значение имеет тип div-transform.

    transition_animation_selector

    string

    Параметр устарел.

    Определяет, при каких событиях сработают анимации переходов. Вместо него используйте transition_triggers.

    Возможные значения: none, data_change, state_change, any_change.

    Значение по умолчанию: state_change.

    transition_change

    object

    Анимация изменения. Воспроизводится при изменении положения или размера элемента в новой верстке.

    Значение имеет тип div-change-transition.

    Список возможных значений:
  • div-change-set-transition
  • div-change-bounds-transition
  • transition_in

    object

    Анимация появления. Воспроизводится при появлении элемента с новым id. Подробнее о концепции переходов в разделе Анимация перехода.

    Значение имеет тип div-appearance-transition.

    transition_out

    object

    Анимация исчезания. Воспроизводится при исчезании элемента в новой верстке.

    Значение имеет тип div-appearance-transition.

    transition_triggers

    array

    Триггеры запуска анимации. Значение по умолчанию: [state_change, visibility_change].

    Массив должен быть непустым.

    type

    string

    Обязательный параметр.

    Значение всегда должно равняться state.

    visibility

    string

    Видимость элемента.

    Возможные значения: visible, invisible, gone.

    Значение по умолчанию: visible.

    visibility_action

    object

    Трекинг видимости одного элемента. Не используется, если задан параметр visibility_actions.

    Значение имеет тип div-visibility-action.

    visibility_actions

    array

    Действия при появлении элемента на экране.

    Массив должен быть непустым.

    width

    object

    Ширина элемента.

    Значение имеет тип div-size.

    Значение по умолчанию: {"type": "match_parent"}.

    Список возможных значений:
  • div-fixed-size
  • div-match-parent-size
  • div-wrap-content-size
  • state

    ПараметрыОписание
    animation_in

    object

    Параметр устарел.

    Анимация появления состояния. Вместо него используйте transition_in.

    Значение имеет тип div-animation.

    Доступные платформы: Android, iOS.

    animation_out

    object

    Параметр устарел.

    Анимация исчезания состояния. Вместо него используйте transition_out.

    Значение имеет тип div-animation.

    Доступные платформы: Android, iOS.

    div

    object

    Содержимое. Если параметр отсутствует, то состояние не будет отображаться.

    Значение имеет тип div.

    state_id

    string

    Обязательный параметр.

    Идентификатор состояния. Должен быть уникальным на одном уровне иерархии.

    swipe_out_actions

    array

    Параметр устарел.

    Действия при смахивании состояния по горизонтали.

    Массив должен быть непустым.

    Доступные платформы: Android.

    ПараметрыОписание
    animation_in

    object

    Параметр устарел.

    Анимация появления состояния. Вместо него используйте transition_in.

    Значение имеет тип div-animation.

    Доступные платформы: Android, iOS.

    animation_out

    object

    Параметр устарел.

    Анимация исчезания состояния. Вместо него используйте transition_out.

    Значение имеет тип div-animation.

    Доступные платформы: Android, iOS.

    div

    object

    Содержимое. Если параметр отсутствует, то состояние не будет отображаться.

    Значение имеет тип div.

    state_id

    string

    Обязательный параметр.

    Идентификатор состояния. Должен быть уникальным на одном уровне иерархии.

    swipe_out_actions

    array

    Параметр устарел.

    Действия при смахивании состояния по горизонтали.

    Массив должен быть непустым.

    Доступные платформы: Android.