Контроллеры
- <ya-kit-blog-detail-controller />
- <ya-kit-blog-listing-controller />
- <ya-kit-breadcrumbs-controller />
- <ya-kit-boundary-controller />
- <ya-kit-categories-controller />
- <ya-kit-collections-listing-controller />
- <ya-kit-company-controller />
- <ya-kit-carousel-controller />
- <ya-kit-countdown-controller />
- <ya-kit-delivery-options-controller />
- <ya-kit-discount-ladder-controller />
- <ya-kit-drag-controller />
- <ya-kit-email-subscription-controller />
- <ya-kit-gifts-controller />
- <ya-kit-gift-slot-controller />
- <ya-kit-gift-snippet-controller />
- <ya-kit-featured-blog-controller />
- <ya-kit-featured-products-controller />
- <ya-kit-favourite-products-controller />
- <ya-kit-field-controller />
- <ya-kit-infinite-scroll-controller />
- <ya-kit-intersection-controller />
- <ya-kit-location-controller />
- <ya-kit-menu-controller />
- <ya-kit-metrika-controller />
- <ya-kit-product-detail-controller />
- <ya-kit-products-listing-controller />
- <ya-kit-product-feedback-listing-controller />
- <ya-kit-product-feedback-media-list-controller />
- <ya-kit-product-feedback-viewer-controller />
- <ya-kit-product-snippet-controller />
- <ya-kit-promocode-controller />
- <ya-kit-products-filters-controller />
- <ya-kit-resize-controller />
- <ya-kit-self-pickup-controller />
- <ya-kit-shopping-cart-controller />
- <ya-kit-shopping-cart-bundle-controller />
- <ya-kit-toggle-controller />
- <ya-kit-user-controller />
- <ya-kit-value-controller />
- Обратиться в службу поддержки
Контроллеры — это вспомогательные компоненты, которые отвечают за получение, подготовку и предоставление данных из одного или нескольких источников.
<ya-kit-blog-detail-controller />
Вспомогательный компонент для загрузки статьи и размещения ее в контексте шаблона.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны загруженные данные. |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
|
Да |
|
|
|
Загруженная модель с данными или |
Нет |
Связанные модели: BlogModel.
<ya-kit-blog-listing-controller />
Вспомогательный компонент для загрузки списка статей.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны загруженные данные. |
|
per-page |
|
Количество карточек на странице. |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
|
Да |
|
|
|
Загруженная модель с данными. |
Нет |
|
|
|
Текущее количество товара в корзине пользователя. |
Да |
|
|
|
Функция обновления активной страницы. |
Да |
Связанные модели: BlogListingModel.
<ya-kit-breadcrumbs-controller />
Вспомогательный компонент для загрузки данных о хлебных крошек и размещения их в контексте шаблона. Компонент автоматически извлекает информацию о хлебных крошках и предоставляет ее дочерним компонентам через контекст.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны загруженные данные. |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
|
Да |
|
|
|
Массив загруженных моделей с данными. |
Нет |
Связанные модели: BreadcrumbModel.
<ya-kit-boundary-controller />
Вспомогательный компонент для автоматического отслеживания положения элемента относительно страницы и области просмотра.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны загруженные данные. |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
Информация о границах отслеживаемого элемента. |
Нет |
|
|
|
Относительные координаты центра в долях от размеров |
Нет |
|
|
|
Абсолютные координаты центра элемента относительно документа. |
Нет |
|
|
|
Ширина области просмотра браузера. |
Нет |
|
|
|
Высота области просмотра браузера. |
Нет |
|
|
|
React ref‑ссылка на DOM‑элемент для отслеживания положения. |
Да |
Пример использования
<ya-kit-boundary-controller as="controller">
<div ref="{{controller.elementRef}}">
{{#with controller.center.relative}}
<div class="img_wrapper {{if (lte y 0.85) 'active'}}">
<ya-kit-image src="{{settings.images.left}}" class="img img--left" />
<ya-kit-image src="{{settings.images.right}}" class="img img--right" />
</div>
{{/with}}
</div>
</ya-kit-boundary-controller>
Связанные модели: DOMBoundaryRectModel, PointModel.
<ya-kit-categories-controller />
Вспомогательный компонент для загрузки данных о дереве категорий и размещения их в контексте шаблона.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны загруженные данные. |
|
include‑images |
|
Включить/исключить из ответа изображения. |
Примечание
Включение в ответ изображений увеличит время загрузки данных.
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
|
Да |
|
|
|
Список загруженных категорий вместе с дочерними. |
Нет |
Связанные модели: CategoryModel.
<ya-kit-collections-listing-controller />
Вспомогательный компонент для загрузки данных о коллекциях и размещения их в контексте шаблона.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны загруженные данные. |
|
source |
|
Источник данных:
По умолчанию |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
|
Да |
|
|
|
Список загруженных коллекций. |
Нет |
Связанные модели: CollectionModel.
<ya-kit-company-controller />
Вспомогательный компонент для загрузки данных о компании из настроек и размещения их в контексте шаблона. Компонент автоматически извлекает информацию о компании и предоставляет ее дочерним компонентам через контекст.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны загруженные данные. |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
|
Да |
|
|
|
Загруженная модель с данными или |
Нет |
Связанные модели: CompanyModel.
<ya-kit-carousel-controller />
Вспомогательный компонент для кастомизации логики работы <ya-kit-carousel />.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны загруженные данные. |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
Признак доступности кнопки перехода к предыдущему слайду. |
Да |
|
|
|
Признак доступности кнопки перехода к следующему слайду. |
Да |
|
|
|
Функция, которая вызывается при прокрутке карусели. |
Да |
|
|
|
Функция перехода на предыдущий слайд. |
Да |
|
|
|
Функция перехода на следующий слайд. |
Да |
Пример использования
<ya-kit-carousel-controller as="controller">
<ya-kit-button is-disabled={{not controller.controls.isPrevEnabled}} on-press={{controller.onPrevSlide}}>Назад</ya-kit-button>
<ya-kit-button is-disabled={{not controller.controls.isNextEnabled}} on-press={{controller.onNextSlide}}>Вперед</ya-kit-button>
<ya-kit-carousel controller={{controller}}>
<!-- … -->
</ya-kit-carousel>
</ya-kit-carousel-controller>
Связанные компоненты: ya-kit-carousel.
<ya-kit-countdown-controller />
Вспомогательный компонент для обратного отсчета до указанной даты.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте для доступа к загруженным данным. |
|
date |
|
Целевая дата окончания отсчета (в формате ISO 8601). |
|
on-complete |
|
Функция вызываемая по окончании времени. |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
Признак завершения отсчета: |
Да |
|
|
|
Оставшееся время до целевой даты, разбитое на составляющие. |
Нет |
Пример использования
<ya-kit-countdown-controller date="2026-08-08T12:00:00.000Z" as="controller">
<ya-kit-h-stack gap="500">
<ya-kit-v-stack gap="25" align-items="center">
<ya-kit-text size="5xl" weight="bold">{{padStart controller.timeLeft.days 2 0}}</ya-kit-text>
<ya-kit-text color="secondary">Дней</ya-kit-text>
</ya-kit-v-stack>
<ya-kit-v-stack gap="25" align-items="center">
<ya-kit-text size="5xl" weight="bold">{{padStart controller.timeLeft.hours 2 0}}</ya-kit-text>
<ya-kit-text color="secondary">Часов</ya-kit-text>
</ya-kit-v-stack>
<ya-kit-v-stack gap="25" align-items="center">
<ya-kit-text size="5xl" weight="bold">{{padStart controller.timeLeft.minutes 2 0}}</ya-kit-text>
<ya-kit-text color="secondary">Минут</ya-kit-text>
</ya-kit-v-stack>
<ya-kit-v-stack gap="25" align-items="center">
<ya-kit-text size="5xl" weight="bold">{{padStart controller.timeLeft.seconds 2 0}}</ya-kit-text>
<ya-kit-text color="secondary">Секунд</ya-kit-text>
</ya-kit-v-stack>
</ya-kit-h-stack>
</ya-kit-countdown-controller>
Связанные модели: TimeLeftModel.
<ya-kit-delivery-options-controller />
Вспомогательный компонент для загрузки доступных опций доставки.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны загруженные данные. |
|
location |
|
Текущая локация пользователя |
|
product |
|
Выбранный вариант продукта |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
|
Да |
|
|
|
Загруженная модель с данными. |
Нет |
Связанные модели: RegionModel, ProductVariantModel, DeliveryOptionModel.
<ya-kit-discount-ladder-controller />
Вспомогательный компонент для загрузки данных о лестнице скидок и списка участвующих в акции вариантов товаров. Размещает данные в контексте шаблона, управляет пагинацией и сортировкой. Сам компонент ничего не отображает.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны данные контроллера. По умолчанию — |
|
per-page |
|
Количество вариантов товаров на странице. Положительное целое число. |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
|
Да |
|
|
|
Модель с данными лестницы скидок, списком товаров, количеством товаров акции в корзине, пагинацией и сортировкой. Всегда содержит объект. При отсутствии данных акции |
Да |
|
|
|
Функция обновления активной страницы. Изменяет параметр |
Да |
|
|
|
Функция обновления сортировки. Принимает |
Да |
|
|
|
Возвращает ссылку на указанную страницу списка с сохранением остальных параметров URL. Самостоятельно переход не выполняет. Используется в атрибуте |
Да |
Примечание
Контроллер самостоятельно загружает данные корзины — оборачивать его в ya-kit-shopping-cart-controller не требуется. Перед отображением информации об акции проверяйте наличие model.discountLadder. Этот контроллер не предназначен для добавления товаров в корзину.
Пример использования
<ya-kit-discount-ladder-controller as="ladder" per-page="24">
{{#if ladder.isLoading}}
<ya-kit-text>Загрузка...</ya-kit-text>
{{else}}
{{#if ladder.model.discountLadder}}
<ya-kit-v-stack gap="300">
<ya-kit-text size="xl" weight="bold">
{{ladder.model.discountLadder.title}}
</ya-kit-text>
<ya-kit-text>
Товаров по акции в корзине: {{ladder.model.productsQuantity}}
</ya-kit-text>
<ya-kit-products-sorting
value="{{ladder.model.sorting.value}}"
options="{{ladder.model.sorting.options}}"
on-change="{{ladder.onSortingChange}}"
/>
<ya-kit-v-stack gap="200">
{{#each ladder.model.items as |product|}}
<a href="{{product.url}}">{{product.name}}</a>
{{else}}
<ya-kit-text>Товары не найдены</ya-kit-text>
{{/each}}
</ya-kit-v-stack>
<ya-kit-pagination
current="{{ladder.model.pagination.current}}"
total="{{ladder.model.pagination.total}}"
on-page-change="{{ladder.onPageChange}}"
get-page-url="{{ladder.getPageUrl}}"
/>
</ya-kit-v-stack>
{{/if}}
{{/if}}
</ya-kit-discount-ladder-controller>
Связанные модели: DiscountLadderModel.
Связанные компоненты: ya-kit-products-sorting, ya-kit-pagination.
<ya-kit-drag-controller />
Вспомогательный компонент для реализации функциональности перетаскивания с отслеживанием позиции и прогресса. Поддерживает ограничение движения по осям, вычисление прогресса и работу как с мышью, так и с touch‑событиями.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны загруженные данные. |
|
is‑disabled |
|
Отключает возможность перетаскивания. |
|
axis |
|
Ограничение движения по осям:
По умолчанию |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
Текущая позиция перетаскиваемого элемента относительно контейнера. До первого перемещения — |
Нет |
|
|
|
Прогресс горизонтального перемещения от 0 до 1. До первого перемещения — |
Нет |
|
|
|
Прогресс вертикального перемещения от 0 до 1. До первого перемещения — |
Нет |
|
|
|
Индикатор, указывающий, активно ли перетаскивание в данный момент. |
Да |
|
|
|
React ref‑ссылка на перетаскиваемый DOM‑элемент для отслеживания позиций. |
Да |
|
|
|
React ref‑ссылка на контейнер, определяющий границы перемещения. |
Да |
Связанные примеры: До/После.
<ya-kit-email-subscription-controller />
Вспомогательный компонент для управления формой подписки на почтовую рассылку.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны загруженные данные. |
|
enable-agreement |
|
Включает/отключает обязательное согласие пользователя. |
|
promocode |
|
Промокод, который будет отправлен при подписке. |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
|
Да |
|
|
|
Загруженная модель с данными или |
Да |
|
|
|
Обработчик изменения адреса электронной почты. |
Да |
|
|
|
Обработчик изменения значения признака согласия. |
Да |
|
|
|
Валидирует и отправляет форму подписки на сервер. |
Да |
Связанные модели: PromocodeModel, EmailSubscriptionModel.
<ya-kit-gifts-controller />
Вспомогательный компонент для загрузки вариантов выбранного подарка и размещения их в контексте шаблона. Используется на экране или во всплывающем окне выбора конкретного варианта подарка.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны загруженные данные. По умолчанию — |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
|
Да |
|
|
|
Список вариантов подарка для выбора или |
Нет |
|
|
|
Загружает варианты активного подарка. |
Да |
Связанные модели: GiftVariantOption.
<ya-kit-gift-slot-controller />
Вспомогательный компонент для отображения слота подарка в шаблоне. Добавляет к слоту обработчик выбора и использует данные о слотах из giftSlots контроллера корзины.
|
Название |
Тип |
Описание |
|
slot |
|
Слот подарка (один элемент массива |
|
as |
|
Имя ключа в контексте, под которым будут доступны данные слота. По умолчанию — |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
Модель слота подарка, включающая следующие поля:
|
Да |
|
|
|
Активирует подарок текущего слота (используя |
Да |
Связанные модели: GiftSlot.
<ya-kit-gift-snippet-controller />
Вспомогательный компонент для одного варианта подарка (сниппета). Размещает вариант в контексте шаблона вместе с обработчиками выбора, удаления и смены подарка.
|
Название |
Тип |
Описание |
|
gift |
|
Вариант подарка. Обязательный параметр. |
|
as |
|
Имя ключа в контексте, под которым будут доступны данные варианта. По умолчанию — |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
Модель варианта подарка, включающая следующие поля:
|
Да |
|
|
|
Выбирает данный вариант подарка (используя |
Да |
|
|
|
Удаляет выбранный подарок из корзины (используя |
Да |
|
|
|
Активирует подарок этого варианта и подгружает его варианты. |
Да |
Связанные модели: GiftVariantOption.
<ya-kit-featured-blog-controller />
Вспомогательный компонент для загрузки статей и размещения их в контексте шаблона. Компонент поддерживает фильтрацию по тегам и ограничение количества загружаемых статей.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны загруженные данные. |
|
tags |
|
Массив тегов для фильтрации статей. Если не указано, загружаются статьи без фильтрации. |
|
count |
|
Количество статей для загрузки. |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
|
Да |
|
|
|
Загруженная модель с данными или |
Нет |
Связанные модели: BlogModel.
<ya-kit-featured-products-controller />
Вспомогательный компонент для загрузки коллекции товаров из различных источников данных и размещения их в контексте шаблона. Компонент поддерживает загрузку товаров из категорий, коллекций, релевантных товаров и недавно просмотренных товаров.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны загруженные данные. |
|
data-source |
|
Объект с информацией об источнике данных товаров |
|
count |
|
Количество товаров для загрузки. |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
|
Да |
|
|
|
Загруженная модель с данными или |
Нет |
Связанные модели: ProductSnippetModel.
<ya-kit-favourite-products-controller />
Вспомогательный компонент для загрузки списка избранных товаров.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны загруженные данные. |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
|
Да |
|
|
|
Загруженная модель с данными. |
Нет |
Связанные модели: FavouriteProductsListingModel.
<ya-kit-field-controller />
Вспомогательный компонент для управления состоянием и логикой работы полей.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны загруженные данные. |
|
value |
|
Значение поля. Если указано, поле становится контролируемым (controlled). |
|
isDisabled |
|
Признак, который делает поле неактивным и недоступным для взаимодействия с пользователем. |
|
onChange |
|
Обработчик изменения значения поля. |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
Текущее значение поля. Тип зависит от параметра поля. |
Да |
|
|
|
Признак недоступности поля. |
Да |
|
|
|
Признак наведения курсора мыши на поле. |
Да |
|
|
|
Признак фокуса на поле (пользователь активировал поле через клик или Tab). |
Да |
|
|
|
Признак видимости фокуса (активируется при навигации с клавиатуры). |
Да |
|
|
|
Метод установки нового значения поля. |
Да |
|
|
|
Обработчик события наведения курсора. |
Да |
|
|
|
Обработчик события ухода курсора с поля. |
Да |
|
|
|
Обработчик получения фокуса полем. |
Да |
|
|
|
Обработчик потери фокуса полем. |
Да |
|
|
|
Обработчик получения фокуса в фазе захвата. |
Да |
|
|
|
Обработчик потери фокуса в фазе захвата. |
Да |
|
|
|
Обработчик изменения значения поля. |
Да |
Условия работы интерактивных свойств полей
Интерактивные свойства полей (такие как состояния isHovered, isFocused, isFocusVisible) требуют подключения соответствующих обработчиков событий:
-
onMouseEnter/onMouseLeave— для отслеживания наведения курсора; -
onFocus/onBlur— для управления фокусом; -
onFocusCapture/onBlurCapture— для управления захватом фокуса.
Без реализации этих обработчиков указанные признаки интерактивности не обновятся.
Пример использования
<ya-kit-value-controller initial-value="text" as="controller">
<ya-kit-field-controller value="{{controller.value}}" on-change="{{controller.onChange}}" as="field">
<input
type="text"
class="input {{if field.isFocused 'focused'}}"
value="{{controller.value}}"
on-change="{{field.onChange}}"
on-focus="{{field.onFocus}}"
on-blur="{{field.onBlur}}"
/>
</ya-kit-field-controller>
</ya-kit-value-controller>
<ya-kit-value-controller initial-value="{{true}}" as="controller">
<ya-kit-field-controller value="{{controller.value}}" on-change="{{controller.onChange}}" as="field">
<label class="custom-checkbox">
<input type="checkbox" checked="{{field.value}}" on-change="{{field.onChange}}">
<span class="checkmark"></span>
Subscribe to newsletter
</label>
</ya-kit-field-controller>
</ya-kit-value-controller>
<ya-kit-infinite-scroll-controller />
Вспомогательный контроллер автоматической догрузки списка. Вызывает переданный обработчик, когда элемент-маркер попадает в область отслеживания окна браузера или заданного контейнера. Подходит в том числе для списков, первая порция которых целиком помещается на экране.
|
Название |
Тип |
Описание |
|
as |
|
Необязательное. Имя ключа в контексте, под которым доступны ссылки на маркер и контейнер. По умолчанию |
|
on-load-more |
|
Обязательное. Обработчик загрузки следующей порции данных. Вызывается без аргументов. |
|
is-enabled |
|
Обязательное. Разрешает автоматическую догрузку. Передавайте |
|
data-length |
|
Обязательное. Количество элементов во всем накопленном списке, а не размер одной страницы. Изменение значения разрешает следующий вызов обработчика и запускает повторную проверку маркера. |
|
root-margin |
|
Необязательное. Расстояние предварительной догрузки: одно значение в пикселях, например Справа, снизу и слева используется указанное расстояние. По умолчанию Сокращенная запись из нескольких CSS-значений не поддерживается. |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
Callback ref для элемента-маркера. Передайте в атрибут |
Да |
|
|
|
Функция, которую нужно передать в |
Да |
Поведение догрузки
После вызова on-load-more повторные вызовы блокируются до изменения data-length. Переключение is-enabled не снимает блокировку. Если после добавления данных маркер остается в области отслеживания и догрузка разрешена, контроллер может повторно вызвать on-load-more без дополнительной прокрутки.
Контроллер не хранит список, состояние загрузки или ошибку. После ошибки повторный запрос следует запускать отдельно, например кнопкой контроллера данных. Обязательного родительского контроллера нет: обработчик и условия догрузки передаются атрибутами.
Пример использования
В примере предполагается, что контекст уже содержит list: loadNextPage — обработчик загрузки, items — накопленный массив, canLoadMore — признак наличия следующей страницы при отсутствии загрузки и ошибки. Это условные имена данных примера, а не поля, которые создает контроллер.
<ya-kit-infinite-scroll-controller
as="loader"
on-load-more="{{list.loadNextPage}}"
is-enabled="{{list.canLoadMore}}"
data-length="{{list.items.length}}"
>
<ya-kit-each of="{{list.items}}" as="item">
<div>{{item.title}}</div>
</ya-kit-each>
<div ref="{{loader.elementRef}}" style="height: 1px;"></div>
</ya-kit-infinite-scroll-controller>
Для прокрутки внутри собственного контейнера оберните список и маркер в элемент с ограниченной высотой и передайте ему containerRef:
<ya-kit-infinite-scroll-controller
as="loader"
on-load-more="{{list.loadNextPage}}"
is-enabled="{{list.canLoadMore}}"
data-length="{{list.items.length}}"
root-margin="300px"
>
<div ref="{{loader.containerRef}}" style="max-height: 400px; overflow: auto;">
<ya-kit-each of="{{list.items}}" as="item">
<div>{{item.title}}</div>
</ya-kit-each>
<div ref="{{loader.elementRef}}" style="height: 1px;"></div>
</div>
</ya-kit-infinite-scroll-controller>
<ya-kit-intersection-controller />
Вспомогательный компонент для отслеживания пересечения элемента с viewport или родительским контейнером с использованием Intersection Observer API. Предоставляет детальную информацию о видимости элемента и его позиции в области просмотра.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны загруженные данные. |
|
threshold |
|
Пороговое значение площади элемента — минимальный размер, при котором элемент считается видимым. |
|
threshold-step |
|
Интервал между значениями в массиве threshold — определяет частоту срабатывания callback IntersectionObserver при изменении видимости элемента. |
|
root-margin |
|
CSS‑подобное свойство — задает расширение или сужение области отслеживания на указанное расстояние. |
|
trigger-once |
|
Признак видимости элемента — указывает, находится ли элемент в области видимости в данный момент. |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
Признак, указывающий, находится ли элемент в области видимости в данный момент. |
Да |
|
|
|
Доля видимой части элемента — от 0 до 1. Точность зависит от настройки |
Да |
|
|
|
Текущий статус пересечения элемента:
|
Да |
|
|
|
React ref‑ссылка на отслеживаемый элемент. |
Да |
|
|
|
React ref‑ссылка на контейнер для отслеживания. Если не установлен, используется viewport браузера. |
Да |
<ya-kit-location-controller />
Вспомогательный компонент для загрузки и выбора текущего региона пользователя.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны загруженные данные. |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
|
Да |
|
|
|
Загруженная модель с данными или |
Нет |
|
|
|
Функция для выбора новой локации пользователя. |
Да |
Связанные модели: RegionModel.
<ya-kit-menu-controller />
Вспомогательный компонент для загрузки модели меню и размещения их в контексте шаблона. Компонент автоматически извлекает данные меню по указанным идентификаторам и предоставляет их дочерним компонентам через контекст.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны загруженные данные. |
|
menu |
|
Идентификатор меню или массив идентификаторов для загрузки. |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
|
Да |
|
|
|
Загруженная модель с данными или |
Нет |
Пример использования
<ya-kit-menu-controller menu="{{settings.menu}}" as="controller">
{{#if controller.model}}
<ya-kit-text size="xl">{{controller.model.title}}</ya-kit-text>
<div class="menu__items">
{{#each controller.model.items as |item|}}
<ya-kit-link to="{{item.url}}">{{item.title}}</ya-kit-link>
{{/each}}
</div>
{{/if}}
</ya-kit-menu-controller>
Данный пример загрузит и выведет первый уровень меню.
Связанные модели: MenuModel, MenuItemModel.
<ya-kit-metrika-controller />
Вспомогательный компонент для отправки событий с параметрами в Метрику методом reachGoal.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны загруженные данные. |
|
goal |
|
Название события. |
|
strategy |
|
Стратегия отправки события:
По умолчанию |
|
…params |
|
Параметры события — любые кастомные поля, которые могут быть полезны для детализации события. |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
Функция для отправки события с параметрами, переданными компоненту. |
Да |
<ya-kit-product-detail-controller />
Вспомогательный компонент для загрузки карточки товара и размещения их в контексте шаблона.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны загруженные данные. |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
|
Да |
|
|
|
Загруженная модель с данными или |
Нет |
|
|
|
Функция выбора нового варианта товара. |
Да |
|
|
|
Функция добавления текущего варианта товара в корзину. |
Да |
|
|
|
Функция изменения количества текущего варианта товара в корзине. |
Да |
|
|
|
Функция удаления текущего варианта товара из корзины. |
Да |
Связанные модели: ProductDetailModel.
<ya-kit-products-listing-controller />
Вспомогательный компонент для загрузки списка товаров.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны загруженные данные. |
|
per-page |
|
Количество карточек на странице. |
|
on-filters-did-changed |
|
Функция вызываемая при обновлении фильтров. |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
|
Да |
|
|
|
Загруженная модель с данными. |
Нет |
|
|
|
Текущее количество товара в корзине пользователя. |
Да |
|
|
|
Функция обновления активной страницы. |
Да |
|
|
|
Функция обновления выставленных фильтров. |
Да |
Связанные модели: ProductsListingModel.
<ya-kit-product-feedback-listing-controller />
Контроллер списка отзывов о текущем варианте товара. Загружает отзывы постранично, управляет сортировкой и фильтром через URL и открывает отзыв или медиаленту в просмотрщике.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны данные контроллера. По умолчанию: |
|
per-page |
|
Необязательное. Размер порции отзывов: положительное целое число или его строковая запись, например, Если вы задали корректное значение, загрузка начнется с первой страницы без использования готового превью отзывов карточки товара. Следующие страницы загрузятся с размером порции из ответа API. Если атрибут не передан или значение некорректно, сохраняется стандартная логика, в том числе использование превью при наличии. Изменение размера порции сбрасывает состояние контроллера. |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
Загруженные отзывы. До завершения первой загрузки содержит пустой массив. |
Да |
|
|
|
Общее количество отзывов в текущей выборке. |
Да |
|
|
|
Индекс активной карточки в списке отзывов. |
Да |
|
|
|
Сводная информация об отзывах. Равна |
Да |
|
|
|
Доступные фильтры отзывов. |
Да |
|
|
|
Текущая сортировка из параметра |
Да |
|
|
|
Slug активного фильтра из URL. Равен |
Да |
|
|
|
Признак первой загрузки, смены условий или загрузки следующей страницы. |
Да |
|
|
|
Показывает, есть ли еще незагруженные отзывы. |
Да |
|
|
|
Показывает, завершился ли последний запрос ошибкой. Уже загруженные отзывы сохраняются. |
Да |
|
|
|
Функция загрузки следующей страницы или повторного выполнения запроса после ошибки. |
Да |
|
|
|
Функция изменения активной карточки. Заранее загружает следующую страницу при приближении к концу списка. |
Да |
|
|
|
Функция изменения сортировки и синхронизации параметра |
Да |
|
|
|
Функция изменения фильтра и синхронизации параметра |
Да |
|
|
|
Функция открытия переданного отзыва в просмотрщике. |
Да |
|
|
|
Функция открытия выбранного медиа или общей медиаленты, если передан |
Да |
Пример использования
<ya-kit-product-feedback-listing-controller as="feedbacks" per-page="10">
{{#if feedbacks.isLoading}}
<ya-kit-skeleton height="240" />
{{else}}
{{#each feedbacks.items as |feedback|}}
<ya-kit-product-feedback-card feedback={{feedback}} />
{{/each}}
{{/if}}
</ya-kit-product-feedback-listing-controller>
Связанные модели
Связанные компоненты
<ya-kit-product-feedback-media-list-controller />
Контроллер общей медиаленты отзывов текущего варианта товара. Запускает первую загрузку при монтировании и предоставляет данные для построения собственной галереи.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны данные контроллера. По умолчанию |
Важно
Контроллер должен находиться внутри ya-kit-product-feedback-listing-controller.
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
Загруженные медиа из отзывов. До завершения первой загрузки содержит пустой массив. |
Да |
|
|
|
Общее количество медиа в отзывах. |
Да |
|
|
|
Признак первой загрузки или загрузки следующей страницы. |
Да |
|
|
|
Показывает, есть ли еще незагруженные медиа. |
Да |
|
|
|
Последний запрос завершился ошибкой. |
Да |
|
|
|
Загружает следующую страницу или повторяет запрос после ошибки. |
Да |
Пример использования
<ya-kit-product-feedback-listing-controller>
<ya-kit-product-feedback-media-list-controller as="mediaList">
{{#each mediaList.items as |item|}}
<ya-kit-product-feedback-media-tile media={{item.media}} />
{{/each}}
</ya-kit-product-feedback-media-list-controller>
</ya-kit-product-feedback-listing-controller>
Связанные модели:
Связанные контроллеры:
Связанные компоненты:
<ya-kit-product-feedback-viewer-controller />
Контроллер просмотрщика отзывов и медиа. Предоставляет состояние открытого drawer, выбранный отзыв, медиаленту и обработчиков навигации.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны данные контроллера. По умолчанию |
Важно
Контроллер должен находиться внутри ya-kit-product-feedback-listing-controller.
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
Открыт ли просмотрщик отзывов. |
Да |
|
|
|
Отзыв, связанный с текущим экраном. Равен |
Да |
|
|
|
Медиа текущего отзыва или общей медиаленты. При закрытом просмотрщике содержит пустой массив. |
Да |
|
|
|
Индекс выбранного медиа. |
Да |
|
|
|
Загружается ли общая медиалента. |
Да |
|
|
|
Завершилась ли загрузка общей медиаленты ошибкой. |
Да |
|
|
|
Выбирает медиа по индексу. |
Да |
|
|
|
Повторяет загрузку медиаленты после ошибки. |
Да |
|
|
|
Закрывает просмотрщик и синхронизирует историю браузера. |
Да |
Пример использования
<ya-kit-product-feedback-listing-controller>
<ya-kit-product-feedback-viewer-controller as='viewer'>
{{#if viewer.isOpen}}
<ya-kit-text>Медиа {{add viewer.currentIndex 1}} из {{length viewer.items}}</ya-kit-text>
{{/if}}
</ya-kit-product-feedback-viewer-controller>
</ya-kit-product-feedback-listing-controller>
Связанные модели:
Связанные контроллеры:
<ya-kit-product-snippet-controller />
Вспомогательный компонент для работы с отдельными сниппетами товаров.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны загруженные данные. |
|
product |
|
Массив тегов для фильтрации статей. Если не указано, загружаются статьи без фильтрации. |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
|
Да |
|
|
|
Загруженная модель с данными. |
Нет |
|
|
Текущее количество товара в корзине пользователя. |
Да |
|
|
Функция обновления количества товара в корзине. |
Да |
|
|
Функция удаления товара из корзины. |
Да |
|
|
Функция добавления товара в корзину. |
Да |
|
|
Функция добавления/удаления товара в избранном. |
Да |
Связанные модели: ProductVariantModel.
<ya-kit-promocode-controller />
Вспомогательный компонент для загрузки данных о промокоде и размещения их в контексте шаблона.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны загруженные данные. |
|
promocode‑id |
|
Идентификатор промокода для загрузки. |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
|
Да |
|
|
|
Загруженная модель с данными или |
Нет |
Связанные модели: PromocodeModel.
<ya-kit-products-filters-controller />
Вспомогательный компонент для управления состоянием и логикой работы формы фильтров продуктов.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны загруженные данные. |
|
schema |
|
Модель фильтров, определяющая структуру. |
|
initial-value |
|
Объект с текущими примененными фильтрами. |
|
on-submit |
|
Обработчик отправки формы. |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
Массив дескрипторов полей, описывающих структуру и состояние каждого поля фильтра. |
Да |
|
|
|
Признак изменения значений формы относительно начальных. |
Да |
|
|
|
Признак состояния отправки формы. |
Да |
|
|
|
Обработчик сброса формы к начальным значениям. |
Да |
|
|
|
Обработчик отправки формы, принимает текущие значения формы. |
Да |
Пример использования
<ya-kit-products-filters-controller
as="controller"
schema="{{listing.model.filters.schema}}"
initial-value="{{listing.model.filters.values}}"
on-submit="{{listing.onFiltersChange}}"
>
<ya-kit-v-stack gap="200" align-items="stretch">
{{#each controller.fields as |field|}}
{{#if (eql field.type "RANGE")}}
<ya-kit-form-control key="{{field.name}}" label="{{field.title}}">
<ya-kit-h-stack gap="100">
<ya-kit-input placeholder="от" value="{{field.value.min}}" aria-label="{{field.title}}, от" on-change="{{field.onMinChange}}" />
<ya-kit-input placeholder="до" value="{{field.value.max}}" aria-label="{{field.title}}, до" on-change="{{field.onMaxChange}}" />
</ya-kit-h-stack>
</ya-kit-form-control>
{{elseif (eql field.type "MULTIPLE")}}
<ya-kit-form-control key="{{field.name}}" label="{{field.title}}">
<ya-kit-checkbox-group value="{{field.value}}" aria-label="{{field.title}}" on-change="{{field.onChange}}">
<ya-kit-v-stack gap="100">
{{#each field.options as |option|}}
<ya-kit-form-control-label label="{{option.label}}" aria-label="{{option.title}}">
<ya-kit-checkbox value="{{option.value}}" aria-label="{{option.label}}" />
</ya-kit-form-control-label>
{{/each}}
</ya-kit-v-stack>
</ya-kit-checkbox-group>
</ya-kit-form-control>
{{elseif (eql field.type "SINGLE")}}
<ya-kit-form-control key="{{field.name}}" label="{{field.title}}">
<ya-kit-radio-group value="{{field.value}}" on-change="{{field.onChange}}">
<ya-kit-v-stack gap="100">
{{#each field.options as |option|}}
<ya-kit-form-control-label label="{{option.label}}">
<ya-kit-radio value="{{option.value}}" aria-label="{{option.label}}" />
</ya-kit-form-control-label>
{{/each}}
</ya-kit-v-stack>
</ya-kit-radio-group>
</ya-kit-form-control>
{{elseif (eql field.type "BOOLEAN")}}
<ya-kit-form-control-label label="{{field.title}}">
<ya-kit-checkbox is-selected="{{field.value}}" aria-label="{{field.title}}" on-change="{{field.onChange}}" />
</ya-kit-form-control-label>
{{/if}}
{{/each}}
<ya-kit-h-stack gap="200">
<ya-kit-button color="primary" on-press="{{controller.onFormSubmit}}">Применить</ya-kit-button>
<ya-kit-button color="neutral" on-press="{{controller.onFormReset}}">Сбросить</ya-kit-button>
</ya-kit-h-stack>
</ya-kit-v-stack>
</ya-kit-products-filters-controller>
Связанные модели: ProductFilterModel.
<ya-kit-resize-controller />
Вспомогательный компонент для автоматического отслеживания размеров элемента с использованием ResizeObserver API. Предоставляет информацию о ширине и высоте элемента в реальном времени при изменении его размеров.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны загруженные данные. |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
Ширина отслеживаемого элемента или null до первого измерения. |
Нет. |
|
|
|
Высота отслеживаемого элемента или null до первого измерения. |
Нет. |
<ya-kit-self-pickup-controller />
Вспомогательный компонент для загрузки доступных точек самовывоза заказа.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны загруженные данные. |
|
location |
|
Текущая локация пользователя. |
|
product |
|
Выбранный вариант продукта. |
|
quantity |
|
Необходимо количество. |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
|
Да |
|
|
|
Загруженная модель с данными. |
Нет |
Связанные модели: RegionModel, ProductVariantModel, SelfPickupModel.
<ya-kit-shopping-cart-controller />
Примечание
Кастомные секции пока не поддерживают наборы товаров. Для отображения корзины используется стандартная секция.
Вспомогательный компонент для загрузки данных о корзине и размещения их в контексте шаблона. Компонент автоматически извлекает информацию о компании и предоставляет ее дочерним компонентам через контекст.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны загруженные данные. |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
|
Да |
|
|
|
Загруженная модель с данными корзины или |
Нет |
Связанные модели: ShoppingCartModel.
<ya-kit-shopping-cart-bundle-controller />
Вспомогательный компонент для одного бандла (набора товаров). Размещает бандл в контексте шаблона вместе с обработчиками изменения количества и удаления из корзины.
|
Название |
Тип |
Описание |
|
bundle |
|
Модель бандла — обязательный параметр. |
|
as |
|
Имя ключа в контексте, под которым будут доступны данные бандла. По умолчанию — |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
Модель бандла, включающая следующие поля:
|
Да |
|
|
|
Список товаров бандла, включающий следующие поля для каждого товара:
|
Да |
|
|
|
Текущее количество бандлов в корзине. |
Да |
|
|
|
Максимально доступное количество бандлов. |
Да |
|
|
|
Обновляет количество бандлов в корзине. Принимает параметр |
Да |
|
|
|
Удаляет бандл из корзины (устанавливает количество в |
Да |
Связанные модели: ShoppingCartBundleModel, ShoppingCartBundleItem.
<ya-kit-toggle-controller />
Вспомогательный компонент управления скрытием/раскрытием.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны загруженные данные. |
|
initial-value |
|
Первоначальное состояние при монтировании компонента. |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
Текущее состояние компонента. |
Да |
|
|
|
Переключает состояние на противоположное. |
Да |
|
|
|
Устанавливает состояние в |
Да |
|
|
|
Устанавливает состояние в |
Да |
<ya-kit-user-controller />
Вспомогательный компонент для загрузки данных о текущем пользователе. Размещает данные в контексте шаблона. Компонент автоматически получает информацию о компании и предоставляет ее дочерним компонентам через контекст.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны загруженные данные. |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
|
Да |
|
|
|
Загруженная модель с данными или |
Нет |
|
|
|
Функция для аутентификации пользователя в системе. |
Да |
|
|
|
Функция для выхода пользователя из системы. |
Да |
|
|
|
Функция для показа модального окна для аутентификации пользователя в системе. |
Нет |
Связанные модели: UserModel, RegionModel.
<ya-kit-value-controller />
Вспомогательный компонент для хранения значений переменных.
|
Название |
Тип |
Описание |
|
as |
|
Имя ключа в контексте, под которым будут доступны загруженные данные. |
|
initial-value |
|
Первоначальное значение переменной. |
Структура добавленного объекта
|
Название |
Тип |
Описание |
Обязательное |
|
|
|
Текущее значение переменной. |
Да |
|
|
|
Выставляет новое значение переменной. |
Да |
|
|
|
Создает обработчик, который будет устанавливать указанное значение. |
Да |