Встроенные вспомогательные функции
Набор встроенных вспомогательных функций для шаблонизатора. Предоставляют функционал для работы с массивами, форматированием, функциями, строками, объектами, медиа, CSS-классами, условной логикой, математической логикой, операциями сравнения.
Работа с массивами
at
|
Описание |
Сигнатура |
|
Возвращает элемент массива по указанному индексу. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
Array |
Исходный массив. |
|
|
Number |
Индекс элемента (начиная с 0). |
Примеры
{{!-- Данные: { items: ["яблоко", "банан", "вишня"] } --}}
{{at items 0}}
{{!-- Результат: "яблоко" --}}
{{at items 2}}
{{!-- Результат: "вишня" --}}
first
|
Описание |
Сигнатура |
|
Возвращает первый элемент массива. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
Array |
Исходный массив. |
Примеры
{{!-- Данные: { colors: ["красный", "зелёный", "синий"] } --}}
{{first colors}}
{{!-- Результат: "красный" --}}
{{!-- Пустой массив --}}
{{first emptyArray}}
{{!-- Результат: undefined --}}
join
|
Описание |
Сигнатура |
|
Объединяет элементы массива в строку с указанным разделителем. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
Array |
Исходный массив. |
|
|
String |
Разделитель между элементами (по умолчанию |
Примеры
{{!-- Данные: { tags: ["js", "react", "node"] } --}}
{{join tags ", "}}
{{!-- Результат: "js, react, node" --}}
{{join tags " | "}}
{{!-- Результат: "js | react | node" --}}
{{join tags ""}}
{{!-- Результат: "jsreactnode" --}}
last
|
Описание |
Сигнатура |
|
Возвращает последний элемент массива. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
Array |
Исходный массив. |
Примеры
{{!-- Данные: { steps: ["Корзина", "Доставка", "Оплата", "Подтверждение"] } --}}
{{last steps}}
{{!-- Результат: "Подтверждение" --}}
{{!-- Пустой массив --}}
{{last emptyArray}}
{{!-- Результат: undefined --}}
length
|
Описание |
Сигнатура |
|
Возвращает количество элементов в массиве. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
Array |
Исходный массив. |
Примеры
{{!-- Данные: { cart: ["item1", "item2", "item3"] } --}}
{{length cart}}
{{!-- Результат: 3 --}}
{{length emptyArray}}
{{!-- Результат: 0 --}}
{{length undefined}}
{{!-- Результат: 0 --}}
slice
|
Описание |
Сигнатура |
|
Возвращает подмассив — срез от начального до конечного индекса. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
Array |
Исходный массив. |
|
|
Number |
Начальный индекс (включительно). |
|
|
Number |
Конечный индекс (не включительно, необязательный). |
Примеры
{{!-- Данные: { items: ["a", "b", "c", "d", "e"] } --}}
{{slice items 0 3}}
{{!-- Результат: ["a", "b", "c"] --}}
{{slice items 2}}
{{!-- Результат: ["c", "d", "e"] --}}
{{slice items -2}}
{{!-- Результат: ["d", "e"] --}}
{{slice items 1 -1}}
{{!-- Результат: ["b", "c", "d"] --}}
Работа с форматированием
formatDate
|
Описание |
Сигнатура |
|
Форматирует дату в указанный строковый формат. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
Date, String, Number |
Дата (ISO-строка, timestamp, объект Date). |
|
|
String |
Строка формата. |
Токены формата
|
Токен |
Описание |
|
|
День (с ведущим нулем). |
|
|
День. |
|
|
Месяц (число). |
|
|
Месяц (название). |
|
|
Год (4 цифры). |
|
|
Год (2 цифры). |
|
|
Часы (24 часа). |
|
|
Минуты. |
|
|
Секунды. |
Примеры
{{!-- Данные: { createdAt: "2024-03-15T14:30:00Z" } --}}
{{formatDate createdAt "DD.MM.YYYY"}}
{{!-- Результат: "15.03.2024" --}}
{{formatDate createdAt "D MMMM YYYY"}}
{{!-- Результат: "15 марта 2024" --}}
{{formatDate createdAt "DD.MM.YYYY HH:mm"}}
{{!-- Результат: "15.03.2024 14:30" --}}
{{formatDate createdAt "HH:mm:ss"}}
{{!-- Результат: "14:30:00" --}}
{{formatDate createdAt "YYYY"}}
{{!-- Результат: "2024" --}}
formatLineBreaks
|
Описание |
Сигнатура |
|
Преобразует переносы строк ( |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
String |
Текст с символами переноса строки ( |
Примеры
{{!-- Данные: { description: "Первая строка\nВторая строка\nТретья строка" } --}}
{{formatLineBreaks description}}
{{!-- Результат: "Первая строка<br>Вторая строка<br>Третья строка" --}}
formatPhoneNumber
|
Описание |
Сигнатура |
|
Форматирует номер телефона в читаемый вид. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
String |
Номер телефона. |
Примеры
{{!-- Данные: { phone: "79001234567" } --}}
{{formatPhoneNumber phone}}
{{!-- Результат: "8 (900) 123-45-67" --}}
{{formatPhoneNumber "88001234567"}}
{{!-- Результат: "8 (800) 123-45-67" --}}
formatPrice
|
Описание |
Сигнатура |
|
Форматирует число как цену с разделителями разрядов и символом валюты. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
Number |
Числовое значение цены. |
|
|
String |
Код валюты (необязательный, по умолчанию |
Примеры
{{!-- Данные: { price: 1499.9, oldPrice: 2999, shipping: 0 } --}}
{{formatPrice price}}
{{!-- Результат: "1 499,90 ₽" --}}
{{formatPrice oldPrice}}
{{!-- Результат: "2 999 ₽" --}}
{{formatPrice price "USD"}}
{{!-- Результат: "$1,499.90" --}}
pluralize
|
Описание |
Сигнатура |
|
Возвращает правильную форму слова в зависимости от числа. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
Number |
Число, определяющее форму слова. |
|
|
String |
Форма для 1 (1 товар). |
|
|
String |
Форма для 2–4 (3 товара). |
|
|
String |
Форма для 5–20, 0 (5 товаров). |
Правила выбора формы
|
count |
Окончание |
Форма |
Пример |
|
1 |
|
1-я |
1 товар. |
|
2-4 |
|
2-я |
3 товара. |
|
5-20 |
|
3-я |
5 товаров. |
|
21 |
|
1-я |
21 товар. |
|
22-24 |
|
2-я |
22 товара. |
|
25-30 |
|
3-я |
25 товаров. |
|
111-119 |
|
3-я |
111 товаров. |
Примеры
{{!-- Данные: { createdAt: "2024-03-15T14:30:00Z" } --}}
{{formatDate createdAt "DD.MM.YYYY"}}
{{!-- Результат: "15.03.2024" --}}
{{formatDate createdAt "D MMMM YYYY"}}
{{!-- Результат: "15 марта 2024" --}}
{{formatDate createdAt "DD.MM.YYYY HH:mm"}}
{{!-- Результат: "15.03.2024 14:30" --}}
{{formatDate createdAt "HH:mm:ss"}}
{{!-- Результат: "14:30:00" --}}
{{formatDate createdAt "YYYY"}}
{{!-- Результат: "2024" --}}
formatLineBreaks
|
Описание |
Сигнатура |
|
Преобразует переносы строк ( |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
String |
Текст с символами переноса строки ( |
Примеры
{{!-- Данные: { description: "Первая строка\nВторая строка\nТретья строка" } --}}
{{formatLineBreaks description}}
{{!-- Результат: "Первая строка<br>Вторая строка<br>Третья строка" --}}
formatPhoneNumber
|
Описание |
Сигнатура |
|
Форматирует номер телефона в читаемый вид. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
String |
Номер телефона. |
Примеры
{{!-- Данные: { phone: "79001234567" } --}}
{{formatPhoneNumber phone}}
{{!-- Результат: "8 (900) 123-45-67" --}}
{{formatPhoneNumber "88001234567"}}
{{!-- Результат: "8 (800) 123-45-67" --}}
formatPrice
|
Описание |
Сигнатура |
|
Форматирует число как цену с разделителями разрядов и символом валюты. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
Number |
Числовое значение цены. |
|
|
String |
Код валюты (необязательный, по умолчанию |
Примеры
{{!-- Данные: { price: 1499.9, oldPrice: 2999, shipping: 0 } --}}
{{formatPrice price}}
{{!-- Результат: "1 499,90 ₽" --}}
{{formatPrice oldPrice}}
{{!-- Результат: "2 999 ₽" --}}
{{formatPrice price "USD"}}
{{!-- Результат: "$1,499.90" --}}
pluralize
|
Описание |
Сигнатура |
|
Возвращает правильную форму слова в зависимости от числа. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
Number |
Первое значение. |
|
|
String |
Форма для 1 (1 товар). |
|
|
String |
Форма для 2–4 (3 товара). |
|
|
String |
Форма для 5–20, 0 (5 товаров). |
Правила выбора формы
|
count |
Окончание |
Форма |
Пример |
|
1 |
|
1-я |
1 товар. |
|
2-4 |
|
2-я |
3 товара. |
|
5-20 |
|
3-я |
5 товаров. |
|
21 |
|
1-я |
21 товар. |
|
22-24 |
|
2-я |
22 товара. |
|
25-30 |
|
3-я |
25 товаров. |
|
111-119 |
|
3-я |
111 товаров. |
Примеры
{{count}} {{pluralize 5 "товар" "товара" "товаров"}}
{{!-- Результат: "5 товаров" --}}
{{count}} {{pluralize 1 "товар" "товара" "товаров"}}
{{!-- Результат: "1 товар" --}}
{{count}} {{pluralize 3 "товар" "товара" "товаров"}}
{{!-- Результат: "3 товара" --}}
{{count}} {{pluralize 21 "товар" "товара" "товаров"}}
{{!-- Результат: "21 товар" --}}
{{count}} {{pluralize 0 "товар" "товара" "товаров"}}
{{!-- Результат: "0 товаров" --}}
Работа с функциями
bind
|
Описание |
Сигнатура |
|
Привязывает аргументы к функции, создавая новую функцию с предустановленными параметрами (частичное применение). |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
Function |
Хелпер или функция для привязки. |
|
|
any |
Аргументы, которые будут предустановлены. |
Примеры
<ya-kit-button on-press={{(bind controller.onClick "shopping cart")}}>
Кнопка
<ya-kit-button>
compose
|
Описание |
Сигнатура |
|
Создает композицию функций — результат одной функции передается как вход следующей. Выполнение справа налево (как математическая композиция |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
Function |
Функции/хелперы для композиции (выполняются справа налево). |
Порядок выполнения
{{compose f g h}}
Эквивалент: (x) => f(g(h(x)))
x → h(x) → g(result) → f(result) → итог
↑ ↑ ↑
fn3 fn2 fn1
(первая) (вторая) (последняя)
Примеры
<ya-kit-button on-press={{(bind func1 func2)}}>
Кнопка
<ya-kit-button>
Работа со строками
lower
|
Описание |
Сигнатура |
|
Преобразует всю строку в нижний регистр. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
String |
Исходная строка. |
Примеры
{{lower "HELLO WORLD"}}
{{!-- Результат: "hello world" --}}
{{lower "iPhone 15 Pro"}}
{{!-- Результат: "iphone 15 pro" --}}
{{lower "МОСКВА"}}
{{!-- Результат: "москва" --}}
lowerFirst
|
Описание |
Сигнатура |
|
Преобразует первый символ строки в нижний регистр. Остальные символы не изменяются. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
String |
Исходная строка. |
Примеры
{{lowerFirst "Hello World"}}
{{!-- Результат: "hello World" --}}
{{lowerFirst "ProductCard"}}
{{!-- Результат: "productCard" --}}
{{lowerFirst "ACTIVE"}}
{{!-- Результат: "aCTIVE" --}}
{{lowerFirst "a"}}
{{!-- Результат: "a" --}}
upper
|
Описание |
Сигнатура |
|
Преобразует всю строку в верхний регистр. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
String |
Исходная строка. |
Примеры
{{upper "hello world"}}
{{!-- Результат: "HELLO WORLD" --}}
{{upper "iPhone"}}
{{!-- Результат: "IPHONE" --}}
{{upper "москва"}}
{{!-- Результат: "МОСКВА" --}}
upperFirst
|
Описание |
Сигнатура |
|
Преобразует первый символ строки в верхний регистр. Остальные символы не изменяются. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
String |
Исходная строка. |
Примеры
{{upperFirst "hello world"}}
{{!-- Результат: "Hello world" --}}
{{upperFirst "iPhone"}}
{{!-- Результат: "IPhone" --}}
{{upperFirst "active"}}
{{!-- Результат: "Active" --}}
{{upperFirst "a"}}
{{!-- Результат: "A" --}}
startsWith
|
Описание |
Сигнатура |
|
Проверяет, начинается ли строка с указанной подстроки. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
String |
Исходная строка. |
|
|
String |
Подстрока для проверки. |
Примеры
{{startsWith "hello world" "hello"}}
{{!-- Результат: true --}}
{{startsWith "hello world" "world"}}
{{!-- Результат: false --}}
{{startsWith "/catalog/phones" "/catalog"}}
{{!-- Результат: true --}}
endsWith
|
Описание |
Сигнатура |
|
Проверяет, заканчивается ли строка указанной подстрокой. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
String |
Исходная строка. |
|
|
String |
Подстрока для проверки. |
Примеры
{{endsWith "hello world" "world"}}
{{!-- Результат: true --}}
{{endsWith "hello world" "hello"}}
{{!-- Результат: false --}}
{{endsWith "image.png" ".png"}}
{{!-- Результат: true --}}
includes
|
Описание |
Сигнатура |
|
Проверяет, содержит ли строка указанную подстроку. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
String |
Исходная строка. |
|
|
String |
Подстрока для поиска. |
Примеры
{{includes "hello world" "world"}}
{{!-- Результат: true --}}
{{includes "hello world" "xyz"}}
{{!-- Результат: false --}}
{{includes "Доставка бесплатная" "бесплатн"}}
{{!-- Результат: true --}}
padStart
|
Описание |
Сигнатура |
|
Дополняет строку указанным символом в начале до заданной длины. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
String |
Исходная строка. |
|
|
Number |
Желаемая длина результата. |
|
|
String |
Символ для заполнения (по умолчанию |
Примеры
{{padStart "5" 2 "0"}}
{{!-- Результат: "05" --}}
{{padStart "42" 5 "0"}}
{{!-- Результат: "00042" --}}
{{padStart "hi" 10 "."}}
{{!-- Результат: "........hi" --}}
{{padStart "hello" 3 "0"}}
{{!-- Результат: "hello" (строка длиннее — без изменений) --}}
padEnd
|
Описание |
Сигнатура |
|
Дополняет строку указанным символом в конце до заданной длины. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
String |
Исходная строка. |
|
|
Number |
Желаемая длина результата. |
|
|
String |
Символ для заполнения (по умолчанию |
Примеры
{{padEnd "hi" 10 "."}}
{{!-- Результат: "hi........" --}}
{{padEnd "100" 6 "0"}}
{{!-- Результат: "100000" --}}
{{padEnd "hello" 3 "."}}
{{!-- Результат: "hello" (строка длиннее — без изменений) --}}
Работа с объектами
get
|
Описание |
Сигнатура |
|
Получает значение из объекта по указанному пути. Поддерживает вложенность через точечную нотацию. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
Object |
Исходный объект. |
|
|
String |
Путь к свойству (вложенность через |
Примеры
{{!-- Данные: {
user: {
name: "Иван",
address: {
city: "Москва",
geo: { lat: 55.75, lng: 37.61 }
}
}
} --}}
{{!-- Простой доступ --}}
{{get user "name"}}
{{!-- Результат: "Иван" --}}
{{!-- Вложенный путь --}}
{{get user "address.city"}}
{{!-- Результат: "Москва" --}}
{{!-- Глубокая вложенность --}}
{{get user "address.geo.lat"}}
{{!-- Результат: 55.75 --}}
stringify
|
Описание |
Сигнатура |
|
Сериализует значение в JSON-строку. Аналог |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
any |
Значение для сериализации в JSON. |
Примеры
{{!-- Данные: {
product: { name: "iPhone", price: 999, inStock: true },
tags: ["electronics", "phone", "apple"],
count: 42,
isActive: true
} --}}
{{!-- Объект --}}
{{stringify product}}
{{!-- Результат: '{"name":"iPhone","price":999,"inStock":true}' --}}
{{!-- Массив --}}
{{stringify tags}}
{{!-- Результат: '["electronics","phone","apple"]' --}}
{{!-- Примитивы --}}
{{stringify count}}
{{!-- Результат: '42' --}}
{{stringify isActive}}
{{!-- Результат: 'true' --}}
{{stringify "hello"}}
{{!-- Результат: '"hello"' --}}
Работа с медиа
filterImages
|
Описание |
Сигнатура |
|
Фильтрует массив изображений. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
Array |
Массив ImageModel. |
Примеры
{{!-- Фильтрация изображений --}}
{{#each (filterImages images) as |image|}}
<ya-kit-image src="{{image.src}}" />
{{/each}}
Работа с CSS-классами
cn
|
Описание |
Сигнатура |
|
Формирует строку CSS-классов. Объединяет переданные классы, отфильтровывая falsy-значения. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
String / Boolean |
Имена классов или falsy-значения для пропуска. |
Примеры
{{cn "card" "card--active"}}
{{!-- Результат: "card card--active" --}}
{{cn "button" (when isPrimary "button--primary") (when isLarge "button--large")}}
{{!-- isPrimary: true, isLarge: false --}}
{{!-- Результат: "button button--primary" --}}
{{cn "header" false undefined "header--sticky"}}
{{!-- Результат: "header header--sticky" --}}
skinAspectRatio
|
Описание |
Сигнатура |
|
Возвращает CSS-класс для заданного соотношения сторон контейнера. Применяется для изображений, видео и медиа-блоков. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
AspectRatio |
Соотношение сторон. |
Допустимые значения ratio
|
Значение |
Пропорция |
Типичное использование |
|
|
Вертикальное. |
Портретные фото, карточки товаров. |
|
|
Квадрат. |
Аватары, иконки. |
|
|
Классическое. |
Фотографии, превью. |
|
|
Широкоформатное. |
Видео, баннеры. |
|
|
Панорамное. |
Широкие баннеры. |
|
|
Ультраширокое. |
Промо-секции. |
|
|
Ультраширокое. |
Хедер-баннеры. |
|
|
Широкое. |
Баннеры среднего формата. |
|
|
Полоса. |
Тонкие промо-полосы. |
|
|
Узкая полоса. |
Разделители. |
|
|
По экрану. |
Полноэкранные секции. |
Примеры
{{skinAspectRatio "16:9"}}
{{!-- Результат: ".skin_aspect-ratio_16:9" --}}
{{skinAspectRatio "1:1"}}
{{!-- Результат: ".skin_aspect-ratio_1:1" --}}
{{skinAspectRatio "fit-screen"}}
{{!-- Результат: ".skin_aspect-ratio_fit-screen" --}}
skinBackground
|
Описание |
Сигнатура |
|
Возвращает CSS-класс фона для секции или блока. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
BackgroundSkin |
Тип фона. |
Допустимые значения color
|
Значение |
Описание |
|
|
Без фона (прозрачный). |
|
|
Основной цвет фона. |
|
|
Вторичный цвет фона. |
|
|
Нейтральный фон. |
Примеры
{{skinBackground "primary"}}
{{!-- Результат: "skin_background_primary" --}}
{{skinBackground "none"}}
{{!-- Результат: "skin_background_none" --}}
Примечание
Класс только определяет CSS переменную --ys-current-skin-fill, для применения фона укажите стиль.
background-color: var(--ys-current-skin-fill)
skinBorderColor
|
Описание |
Сигнатура |
|
Возвращает CSS-класс цвета обводки для блока. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
BorderSkin |
Тип обводки. |
Допустимые значения color
|
Значение |
Описание |
|
|
Без обводки. |
|
|
Обводка основным цветом. |
|
|
Обводка вторичным цветом. |
Примеры
{{skinBorderColor "primary"}}
{{!-- Результат: "skin_border_primary" --}}
{{skinBorderColor "none"}}
{{!-- Результат: "skin_border_none" --}}
{{skinBorderColor "secondary"}}
{{!-- Результат: "skin_border_secondary" --}}
skinRounded
|
Описание |
Сигнатура |
|
Возвращает CSS-класс скругления углов. Учитывает степень скругления и тип скругления из глобальных настроек. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
RoundedSkin |
Степень скругления. |
Допустимые значения rounded
|
Значение |
Описание |
|
|
Без скругления. |
|
|
Минимальное. |
|
|
Малое. |
|
|
Среднее малое. |
|
|
Среднее. |
|
|
Среднее большое. |
|
|
Большое. |
|
|
Очень большое. |
|
|
Максимальное (круг). |
Примеры
{{skinRounded "100"}}
{{!-- Результат: "skin_border-radius-normal_100" --}}
{{skinRounded "0"}}
{{!-- Результат: "skin_border-radius-sharp_0" --}}
{{skinRounded "999"}}
{{!-- Результат: "skin_border-radius-soft_999" --}}
Примечание
Класс только определяет CSS переменную --ys-current-skin-border-radius. Для применения скругления укажите стили.
border-radius: var(--ys-current-skin-border-radius)
Условная логика
if
|
Описание |
Сигнатура |
|
Возвращает одно из двух значений в зависимости от условия. Тернарный оператор в виде хелпера. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
any |
Условие ( |
|
|
any |
Значение, если условие истинно. |
|
|
any |
Значение, если условие ложно (необязательный). |
Примеры
{{!-- Данные: { isActive: true, stock: 0, user: null } --}}
{{if isActive "Активен" "Неактивен"}}
{{!-- Результат: "Активен" --}}
{{if stock "В наличии" "Нет в наличии"}}
{{!-- Результат: "Нет в наличии" --}}
{{if user user.name "Гость"}}
{{!-- Результат: "Гость" --}}
unless
|
Описание |
Сигнатура |
|
Возвращает значение, если условие ложно. Инверсия |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
any |
Условие ( |
|
|
any |
Значение, если условие ложно. |
|
|
any |
Значение, если условие истинно (необязательный). |
Примеры
{{!-- Данные: { isLoggedIn: false, hasErrors: false } --}}
{{unless isLoggedIn "Войдите в аккаунт"}}
{{!-- Результат: "Войдите в аккаунт" --}}
{{unless hasErrors "Ошибок нет" "Есть ошибки"}}
{{!-- Результат: "Ошибок нет" --}}
not
|
Описание |
Сигнатура |
|
Инвертирует булево значение. Логическое отрицание. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
any |
Значение для инверсии. |
Примеры
{{!-- Данные: { isHidden: true, isLoading: true, isValid: false } --}}
{{not isHidden}}
{{!-- Результат: false --}}
{{not isValid}}
{{!-- Результат: true --}}
and
|
Описание |
Сигнатура |
|
Логическое И. Возвращает |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
any |
Значения для проверки. |
Примеры
{{!-- Данные: { isLoggedIn: true, isAdmin: true, hasPermission: false } --}}
{{and isLoggedIn isAdmin}}
{{!-- Результат: true --}}
{{and isLoggedIn hasPermission}}
{{!-- Результат: false --}}
{{and isLoggedIn isAdmin hasPermission}}
{{!-- Результат: false --}}
or
|
Описание |
Сигнатура |
|
Логическое ИЛИ. Возвращает |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
any |
Значения для проверки. |
|
|
Number |
Второе значение. |
Примеры
{{!-- Данные: { isModerator: true, isAdmin: true } --}}
{{or isModerator isAdmin}}
{{!-- Результат: true --}}
Математическая логика
add
|
Описание |
Сигнатура |
|
Сумма двух чисел. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
Number |
Первое слагаемое. |
|
|
Number |
Второе слагаемое. |
Примеры
{{add 5 3}}
{{!-- Результат: 8 --}}
{{add price tax}}
{{!-- Результат: price + tax --}}
{{add -10 25}}
{{!-- Результат: 15 --}}
{{add 0.1 0.2}}
{{!-- Результат: 0.3 --}}
subtract
|
Описание |
Сигнатура |
|
Разница двух чисел. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
Number |
Уменьшаемое. |
|
|
Number |
Вычитаемое. |
Примеры
{{subtract 10 3}}
{{!-- Результат: 7 --}}
{{subtract price discount}}
{{!-- Результат: price - discount --}}
{{subtract 0 5}}
{{!-- Результат: -5 --}}
multiply
|
Описание |
Сигнатура |
|
Умножение двух чисел. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
Number |
Первый множитель. |
|
|
Number |
Второй множитель. |
Примеры
{{multiply 5 3}}
{{!-- Результат: 15 --}}
{{multiply price quantity}}
{{!-- Результат: price * quantity --}}
{{multiply 0.5 200}}
{{!-- Результат: 100 --}}
divide
|
Описание |
Сигнатура |
|
Деление двух чисел. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
Number |
Делимое. |
|
|
Number |
Делитель. |
Примеры
{{divide 10 2}}
{{!-- Результат: 5... --}}
{{divide total quantity}}
{{!-- Результат: total / quantity --}}
max
|
Описание |
Сигнатура |
|
Возвращает наибольшее из переданных чисел. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
Number |
Числа для сравнения. |
Примеры
{{max 5 10 3}}
{{!-- Результат: 10 --}}
{{max price minPrice}}
{{!-- Результат: большее из двух --}}
{{max -5 -10 -1}}
{{!-- Результат: -1 --}}
min
|
Описание |
Сигнатура |
|
Возвращает наименьшее из переданных чисел. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
Number |
Числа для сравнения. |
Примеры
{{min 5 10 3}}
{{!-- Результат: 3 --}}
{{min stock maxPerOrder}}
{{!-- Результат: меньшее из двух --}}
ceil
|
Описание |
Сигнатура |
|
Округляет число вверх до ближайшего целого. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
Number |
Число для округления. |
Примеры
{{ceil 4.2}}
{{!-- Результат: 5 --}}
{{ceil 7.0}}
{{!-- Результат: 7 --}}
floor
|
Описание |
Сигнатура |
|
Округляет число вниз до ближайшего целого. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
Number |
Число для округления. |
Примеры
{{floor 4.9}}
{{!-- Результат: 4 --}}
{{floor 7.0}}
{{!-- Результат: 7 --}}
round
|
Описание |
Сигнатура |
|
Математическое округление чисел |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
Number |
Число для округления. |
Примеры
{{round 4.567}}
{{!-- Результат: 5 --}}
{{round 4.467}}
{{!-- Результат: 4 --}}
ratio
|
Описание |
Сигнатура |
|
Вычисляет процентное соотношение одного числа от другого. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
Number |
Числитель. |
|
|
Number |
Знаменатель. |
Примеры
{{ratio 25 100}}
{{!-- Результат: 0.25 --}}
{{ratio 1 3}}
{{!-- Результат: 0.333... --}}
{{ratio 750 1000}}
{{!-- Результат: 0.75 --}}
{{ratio 0 100}}
{{!-- Результат: 0 --}}
Операции сравнения
eql
|
Описание |
Сигнатура |
|
Проверяет строгое равенство двух значений. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
any |
Первое значение. |
|
|
any |
Второе значение. |
Примеры
{{!-- Данные: { status: "active", role: "admin", count: 5 } --}}
{{#if (eql status "active")}}
<span class="badge badge--green">Активен</span>
{{/if}}
{{#if (eql count 5)}}
<p>Ровно 5 элементов</p>
{{/if}}
notEql
|
Описание |
Сигнатура |
|
Проверяет строгое неравенство двух значений. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
any |
Первое значение. |
|
|
any |
Второе значение. |
Примеры
{{!-- Данные: { status: "draft", role: "user" } --}}
{{#if (notEql status "active")}}
<span class="badge badge--gray">Неактивен</span>
{{/if}}
{{#if (notEql role "admin")}}
<p>У вас нет прав администратора</p>
{{/if}}
gt
|
Описание |
Сигнатура |
|
Проверяет что первое значение строго больше второго. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
Number |
Первое значение. |
|
|
Number |
Второе значение. |
Примеры
{{!-- Данные: { price: 1500, discount: 20, rating: 4.5 } --}}
{{#if (gt price 1000)}}
<p>Дорогой товар</p>
{{/if}}
{{#if (gt discount 0)}}
<span class="sale-badge">-{{discount}}%</span>
{{/if}}
{{#if (gt rating 4)}}
<span>⭐ Высокий рейтинг</span>
{{/if}}
gte
|
Описание |
Сигнатура |
|
Проверяет что первое значение больше или равно второму. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
Number |
Первое значение. |
|
|
Number |
Второе значение. |
Примеры
{{!-- Данные: { age: 18, stock: 0, score: 60 } --}}
{{#if (gte age 18)}}
<p>Доступ разрешён</p>
{{else}}
<p>Только для лиц старше 18</p>
{{/if}}
{{#if (gte stock 1)}}
<button>В корзину</button>
{{else}}
<button disabled>Нет в наличии</button>
{{/if}}
{{#if (gte score 60)}}
<span class="passed">Тест пройден</span>
{{else}}
<span class="failed">Тест не пройден</span>
{{/if}}
lt
|
Описание |
Сигнатура |
|
Проверяет что первое значение строго меньше второго. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
Number |
Первое значение. |
|
|
Number |
Второе значение. |
Примеры
{{!-- Данные: { stock: 3, daysLeft: 2, temperature: -5 } --}}
{{#if (lt stock 5)}}
<span class="low-stock">Осталось мало: {{stock}} шт.</span>
{{/if}}
{{#if (lt daysLeft 3)}}
<span class="urgent">Срочно! Осталось {{daysLeft}} дня</span>
{{/if}}
{{#if (lt temperature 0)}}
<span>🥶 Ниже нуля</span>
{{/if}}
lte
|
Описание |
Сигнатура |
|
Проверяет что первое значение меньше или равно второму. |
|
Параметры
|
Параметр |
Тип |
Описание |
|
|
Number |
Первое значение. |
|
|
Number |
Второе значение. |
Примеры
{{!-- Данные: { quantity: 10, maxPerOrder: 10, floor: 1 } --}}
{{#if (lte quantity maxPerOrder)}}
<button>Добавить в корзину</button>
{{else}}
<p>Максимум {{maxPerOrder}} шт. в одном заказе</p>
{{/if}}
{{#if (lte floor 0)}}
<span>Подвальный / цокольный этаж</span>
{{/if}}