Встроенные вспомогательные функции

Набор встроенных вспомогательных функций для шаблонизатора. Предоставляют функционал для работы с массивами, форматированием, функциями, строками, объектами, медиа, CSS-классами, условной логикой, математической логикой, операциями сравнения.

Работа с массивами

at

Описание

Сигнатура

Возвращает элемент массива по указанному индексу.

{{at array index}}

Параметры

Параметр

Тип

Описание

array

Array

Исходный массив.

index

Number

Индекс элемента (начиная с 0).

Примеры
{{!-- Данные: { items: ["яблоко", "банан", "вишня"] } --}}

{{at items 0}}
{{!-- Результат: "яблоко" --}}

{{at items 2}}
{{!-- Результат: "вишня" --}}

first

Описание

Сигнатура

Возвращает первый элемент массива.

{{first array}}

Параметры

Параметр

Тип

Описание

array

Array

Исходный массив.

Примеры
{{!-- Данные: { colors: ["красный", "зелёный", "синий"] } --}}

{{first colors}}
{{!-- Результат: "красный" --}}

{{!-- Пустой массив --}}
{{first emptyArray}}
{{!-- Результат: undefined --}}

join

Описание

Сигнатура

Объединяет элементы массива в строку с указанным разделителем.

{{join array separator}}

Параметры

Параметр

Тип

Описание

array

Array

Исходный массив.

separator

String

Разделитель между элементами (по умолчанию ",").

Примеры

{{!-- Данные: { tags: ["js", "react", "node"] } --}}

{{join tags ", "}}
{{!-- Результат: "js, react, node" --}}

{{join tags " | "}}
{{!-- Результат: "js | react | node" --}}

{{join tags ""}}
{{!-- Результат: "jsreactnode" --}}

last

Описание

Сигнатура

Возвращает последний элемент массива.

{{last array}}

Параметры

Параметр

Тип

Описание

array

Array

Исходный массив.

Примеры

{{!-- Данные: { steps: ["Корзина", "Доставка", "Оплата", "Подтверждение"] } --}}

{{last steps}}
{{!-- Результат: "Подтверждение" --}}

{{!-- Пустой массив --}}
{{last emptyArray}}
{{!-- Результат: undefined --}}

length

Описание

Сигнатура

Возвращает количество элементов в массиве.

{{length array}}

Параметры

Параметр

Тип

Описание

array

Array

Исходный массив.

Примеры

{{!-- Данные: { cart: ["item1", "item2", "item3"] } --}}

{{length cart}}
{{!-- Результат: 3 --}}

{{length emptyArray}}
{{!-- Результат: 0 --}}

{{length undefined}}
{{!-- Результат: 0 --}}

slice

Описание

Сигнатура

Возвращает подмассив — срез от начального до конечного индекса.

{{slice array start end}}

Параметры

Параметр

Тип

Описание

array

Array

Исходный массив.

start

Number

Начальный индекс (включительно).

end

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

Описание

Сигнатура

Форматирует дату в указанный строковый формат.

{{formatDate date format}}

Параметры

Параметр

Тип

Описание

date

Date, String, Number

Дата (ISO-строка, timestamp, объект Date).

format

String

Строка формата.

Токены формата

Токен

Описание

DD

День (с ведущим нулем).

D

День.

MM

Месяц (число).

MMMM

Месяц (название).

YYYY

Год (4 цифры).

YY

Год (2 цифры).

HH

Часы (24 часа).

mm

Минуты.

ss

Секунды.

Примеры

{{!-- Данные: { 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

Описание

Сигнатура

Преобразует переносы строк (\n) в HTML-теги <br>.

{{formatLineBreaks text}}

Параметры

Параметр

Тип

Описание

text

String

Текст с символами переноса строки (\n).

Примеры
{{!-- Данные: { description: "Первая строка\nВторая строка\nТретья строка" } --}}

{{formatLineBreaks description}}
{{!-- Результат: "Первая строка<br>Вторая строка<br>Третья строка" --}}

formatPhoneNumber

Описание

Сигнатура

Форматирует номер телефона в читаемый вид.

{{formatPhoneNumber phone}}

Параметры

Параметр

Тип

Описание

phone

String

Номер телефона.

Примеры
{{!-- Данные: { phone: "79001234567" } --}}

{{formatPhoneNumber phone}}
{{!-- Результат: "8 (900) 123-45-67" --}}

{{formatPhoneNumber "88001234567"}}
{{!-- Результат: "8 (800) 123-45-67" --}}

formatPrice

Описание

Сигнатура

Форматирует число как цену с разделителями разрядов и символом валюты.

{{formatPrice value currency}}

Параметры

Параметр

Тип

Описание

value

Number

Числовое значение цены.

currency

String

Код валюты (необязательный, по умолчанию )

Примеры

{{!-- Данные: { price: 1499.9, oldPrice: 2999, shipping: 0 } --}}

{{formatPrice price}}
{{!-- Результат: "1 499,90 ₽" --}}

{{formatPrice oldPrice}}
{{!-- Результат: "2 999 ₽" --}}

{{formatPrice price "USD"}}
{{!-- Результат: "$1,499.90" --}}

pluralize

Описание

Сигнатура

Возвращает правильную форму слова в зависимости от числа.

{{pluralize count one few many}}

Параметры

Параметр

Тип

Описание

count

Number

Число, определяющее форму слова.

one

String

Форма для 1 (1 товар).

few

String

Форма для 2–4 (3 товара).

many

String

Форма для 5–20, 0 (5 товаров).

Правила выбора формы

count

Окончание

Форма

Пример

1

one

1-я

1 товар.

2-4

few

2-я

3 товара.

5-20

many

3-я

5 товаров.

21

one

1-я

21 товар.

22-24

few

2-я

22 товара.

25-30

many

3-я

25 товаров.

111-119

many

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

Описание

Сигнатура

Преобразует переносы строк (\n) в HTML-теги <br>.

{{formatLineBreaks text}}

Параметры

Параметр

Тип

Описание

text

String

Текст с символами переноса строки (\n)

Примеры

{{!-- Данные: { description: "Первая строка\nВторая строка\nТретья строка" } --}}

{{formatLineBreaks description}}
{{!-- Результат: "Первая строка<br>Вторая строка<br>Третья строка" --}}

formatPhoneNumber

Описание

Сигнатура

Форматирует номер телефона в читаемый вид.

{{formatPhoneNumber phone}}

Параметры

Параметр

Тип

Описание

phone

String

Номер телефона.

Примеры

{{!-- Данные: { phone: "79001234567" } --}}

{{formatPhoneNumber phone}}
{{!-- Результат: "8 (900) 123-45-67" --}}

{{formatPhoneNumber "88001234567"}}
{{!-- Результат: "8 (800) 123-45-67" --}}

formatPrice

Описание

Сигнатура

Форматирует число как цену с разделителями разрядов и символом валюты.

{{formatPrice value currency}}

Параметры

Параметр

Тип

Описание

value

Number

Числовое значение цены.

currency

String

Код валюты (необязательный, по умолчанию ).

Примеры
{{!-- Данные: { price: 1499.9, oldPrice: 2999, shipping: 0 } --}}

{{formatPrice price}}
{{!-- Результат: "1 499,90 ₽" --}}

{{formatPrice oldPrice}}
{{!-- Результат: "2 999 ₽" --}}

{{formatPrice price "USD"}}
{{!-- Результат: "$1,499.90" --}}

pluralize

Описание

Сигнатура

Возвращает правильную форму слова в зависимости от числа.

{{pluralize count one few many}}

Параметры

Параметр

Тип

Описание

count

Number

Первое значение.

one

String

Форма для 1 (1 товар).

few

String

Форма для 2–4 (3 товара).

many

String

Форма для 5–20, 0 (5 товаров).

Правила выбора формы

count

Окончание

Форма

Пример

1

one

1-я

1 товар.

2-4

few

2-я

3 товара.

5-20

many

3-я

5 товаров.

21

one

1-я

21 товар.

22-24

few

2-я

22 товара.

25-30

many

3-я

25 товаров.

111-119

many

3-я

111 товаров.

Примеры

{{count}} {{pluralize 5 "товар" "товара" "товаров"}}
{{!-- Результат: "5 товаров" --}}

{{count}} {{pluralize 1 "товар" "товара" "товаров"}}
{{!-- Результат: "1 товар" --}}

{{count}} {{pluralize 3 "товар" "товара" "товаров"}}
{{!-- Результат: "3 товара" --}}

{{count}} {{pluralize 21 "товар" "товара" "товаров"}}
{{!-- Результат: "21 товар" --}}

{{count}} {{pluralize 0 "товар" "товара" "товаров"}}
{{!-- Результат: "0 товаров" --}}

Работа с функциями

bind

Описание

Сигнатура

Привязывает аргументы к функции, создавая новую функцию с предустановленными параметрами (частичное применение).

{{bind helper arg1 arg2 ...}}

Параметры

Параметр

Тип

Описание

helper

Function

Хелпер или функция для привязки.

arg1..N

any

Аргументы, которые будут предустановлены.

Примеры

<ya-kit-button on-press={{(bind controller.onClick "shopping cart")}}>
   Кнопка
<ya-kit-button>

compose

Описание

Сигнатура

Создает композицию функций — результат одной функции передается как вход следующей. Выполнение справа налево (как математическая композиция f(g(x))).

{{compose fn1 fn2 fn3 ...}}

Параметры

Параметр

Тип

Описание

fn1..N

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

Описание

Сигнатура

Преобразует всю строку в нижний регистр.

{{lower value}}

Параметры

Параметр

Тип

Описание

value

String

Исходная строка.

Примеры
{{lower "HELLO WORLD"}}
{{!-- Результат: "hello world" --}}

{{lower "iPhone 15 Pro"}}
{{!-- Результат: "iphone 15 pro" --}}

{{lower "МОСКВА"}}
{{!-- Результат: "москва" --}}

lowerFirst

Описание

Сигнатура

Преобразует первый символ строки в нижний регистр. Остальные символы не изменяются.

{{lowerFirst value}}

Параметры

Параметр

Тип

Описание

value

String

Исходная строка.

Примеры
{{lowerFirst "Hello World"}}
{{!-- Результат: "hello World" --}}

{{lowerFirst "ProductCard"}}
{{!-- Результат: "productCard" --}}

{{lowerFirst "ACTIVE"}}
{{!-- Результат: "aCTIVE" --}}

{{lowerFirst "a"}}
{{!-- Результат: "a" --}}

upper

Описание

Сигнатура

Преобразует всю строку в верхний регистр.

{{upper value}}

Параметры

Параметр

Тип

Описание

value

String

Исходная строка.

Примеры
{{upper "hello world"}}
{{!-- Результат: "HELLO WORLD" --}}

{{upper "iPhone"}}
{{!-- Результат: "IPHONE" --}}

{{upper "москва"}}
{{!-- Результат: "МОСКВА" --}}

upperFirst

Описание

Сигнатура

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

{{upperFirst value}}

Параметры

Параметр

Тип

Описание

value

String

Исходная строка.

Примеры
{{upperFirst "hello world"}}
{{!-- Результат: "Hello world" --}}

{{upperFirst "iPhone"}}
{{!-- Результат: "IPhone" --}}

{{upperFirst "active"}}
{{!-- Результат: "Active" --}}

{{upperFirst "a"}}
{{!-- Результат: "A" --}}

startsWith

Описание

Сигнатура

Проверяет, начинается ли строка с указанной подстроки.

{{startsWith string prefix}}

Параметры

Параметр

Тип

Описание

string

String

Исходная строка.

prefix

String

Подстрока для проверки.

Примеры
{{startsWith "hello world" "hello"}}
{{!-- Результат: true --}}

{{startsWith "hello world" "world"}}
{{!-- Результат: false --}}

{{startsWith "/catalog/phones" "/catalog"}}
{{!-- Результат: true --}}

endsWith

Описание

Сигнатура

Проверяет, заканчивается ли строка указанной подстрокой.

{{endsWith string suffix}}

Параметры

Параметр

Тип

Описание

string

String

Исходная строка.

suffix

String

Подстрока для проверки.

Примеры

{{endsWith "hello world" "world"}}
{{!-- Результат: true --}}

{{endsWith "hello world" "hello"}}
{{!-- Результат: false --}}

{{endsWith "image.png" ".png"}}
{{!-- Результат: true --}}

includes

Описание

Сигнатура

Проверяет, содержит ли строка указанную подстроку.

{{includes string substring}}

Параметры

Параметр

Тип

Описание

string

String

Исходная строка.

substring

String

Подстрока для поиска.

Примеры
{{includes "hello world" "world"}}
{{!-- Результат: true --}}

{{includes "hello world" "xyz"}}
{{!-- Результат: false --}}

{{includes "Доставка бесплатная" "бесплатн"}}
{{!-- Результат: true --}}

padStart

Описание

Сигнатура

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

{{padStart value length char}}

Параметры

Параметр

Тип

Описание

value

String

Исходная строка.

length

Number

Желаемая длина результата.

char

String

Символ для заполнения (по умолчанию " ").

Примеры
{{padStart "5" 2 "0"}}
{{!-- Результат: "05" --}}

{{padStart "42" 5 "0"}}
{{!-- Результат: "00042" --}}

{{padStart "hi" 10 "."}}
{{!-- Результат: "........hi" --}}

{{padStart "hello" 3 "0"}}
{{!-- Результат: "hello" (строка длиннее — без изменений) --}}  

padEnd

Описание

Сигнатура

Дополняет строку указанным символом в конце до заданной длины.

{{padEnd value length char}}

Параметры

Параметр

Тип

Описание

value

String

Исходная строка.

length

Number

Желаемая длина результата.

char

String

Символ для заполнения (по умолчанию " ").

Примеры
{{padEnd "hi" 10 "."}}
{{!-- Результат: "hi........" --}}

{{padEnd "100" 6 "0"}}
{{!-- Результат: "100000" --}}

{{padEnd "hello" 3 "."}}
{{!-- Результат: "hello" (строка длиннее — без изменений) --}}

Работа с объектами

get

Описание

Сигнатура

Получает значение из объекта по указанному пути. Поддерживает вложенность через точечную нотацию.

{{get object path}}

Параметры

Параметр

Тип

Описание

object

Object

Исходный объект.

path

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-строку. Аналог JSON.stringify.
Используется при отладке.

{{stringify value}}

Параметры

Параметр

Тип

Описание

value

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

Описание

Сигнатура

Фильтрует массив изображений.

{{filterImages media}}

Параметры

Параметр

Тип

Описание

media

Array

Массив ImageModel.

Примеры

{{!-- Фильтрация изображений --}}
{{#each (filterImages images) as |image|}}
    <ya-kit-image src="{{image.src}}"  />
{{/each}}

Работа с CSS-классами

cn

Описание

Сигнатура

Формирует строку CSS-классов. Объединяет переданные классы, отфильтровывая falsy-значения.

{{cn class1 class2 ...classN}}

Параметры

Параметр

Тип

Описание

class1..N

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-класс для заданного соотношения сторон контейнера. Применяется для изображений, видео и медиа-блоков.

{{skinAspectRatio ratio}}

Параметры

Параметр

Тип

Описание

ratio

AspectRatio

Соотношение сторон.

Допустимые значения ratio

Значение

Пропорция

Типичное использование

3:4

Вертикальное.

Портретные фото, карточки товаров.

1:1

Квадрат.

Аватары, иконки.

4:3

Классическое.

Фотографии, превью.

16:9

Широкоформатное.

Видео, баннеры.

2:1

Панорамное.

Широкие баннеры.

5:2

Ультраширокое.

Промо-секции.

7:2

Ультраширокое.

Хедер-баннеры.

7:3

Широкое.

Баннеры среднего формата.

5:1

Полоса.

Тонкие промо-полосы.

7:1

Узкая полоса.

Разделители.

fit-screen

По экрану.

Полноэкранные секции.

Примеры
{{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-класс фона для секции или блока.

{{skinBackground color}}

Параметры

Параметр

Тип

Описание

color

BackgroundSkin

Тип фона.

Допустимые значения color

Значение

Описание

none

Без фона (прозрачный).

primary

Основной цвет фона.

secondary

Вторичный цвет фона.

neutral

Нейтральный фон.

Примеры

{{skinBackground "primary"}}
{{!-- Результат: "skin_background_primary" --}}

{{skinBackground "none"}}
{{!-- Результат: "skin_background_none" --}}

Примечание

Класс только определяет CSS переменную --ys-current-skin-fill, для применения фона укажите стиль.

background-color: var(--ys-current-skin-fill)

skinBorderColor

Описание

Сигнатура

Возвращает CSS-класс цвета обводки для блока.

{{skinBorderColor color}}

Параметры

Параметр

Тип

Описание

color

BorderSkin

Тип обводки.

Допустимые значения color

Значение

Описание

none

Без обводки.

primary

Обводка основным цветом.

secondary

Обводка вторичным цветом.

Примеры

{{skinBorderColor "primary"}}
{{!-- Результат: "skin_border_primary" --}}

{{skinBorderColor "none"}}
{{!-- Результат: "skin_border_none" --}}

{{skinBorderColor "secondary"}}
{{!-- Результат: "skin_border_secondary" --}}

skinRounded

Описание

Сигнатура

Возвращает CSS-класс скругления углов. Учитывает степень скругления и тип скругления из глобальных настроек.

{{skinRounded rounded}}

Параметры

Параметр

Тип

Описание

rounded

RoundedSkin

Степень скругления.

Допустимые значения rounded

Значение

Описание

0

Без скругления.

25

Минимальное.

50

Малое.

75

Среднее малое.

100

Среднее.

150

Среднее большое.

200

Большое.

250

Очень большое.

999

Максимальное (круг).

Примеры
{{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

Описание

Сигнатура

Возвращает одно из двух значений в зависимости от условия. Тернарный оператор в виде хелпера.

{{when condition trueValue falseValue}}

Параметры

Параметр

Тип

Описание

condition

any

Условие (truthy / falsy).

trueValue

any

Значение, если условие истинно.

falseValue

any

Значение, если условие ложно (необязательный).

Примеры

{{!-- Данные: { isActive: true, stock: 0, user: null } --}}

{{if isActive "Активен" "Неактивен"}}
{{!-- Результат: "Активен" --}}

{{if stock "В наличии" "Нет в наличии"}}
{{!-- Результат: "Нет в наличии" --}}

{{if user user.name "Гость"}}
{{!-- Результат: "Гость" --}}

unless

Описание

Сигнатура

Возвращает значение, если условие ложно. Инверсия {{if}}.

{{unless condition falseValue trueValue}}

Параметры

Параметр

Тип

Описание

condition

any

Условие (truthy / falsy).

falseValue

any

Значение, если условие ложно.

trueValue

any

Значение, если условие истинно (необязательный).

Примеры
{{!-- Данные: { isLoggedIn: false, hasErrors: false } --}}

{{unless isLoggedIn "Войдите в аккаунт"}}
{{!-- Результат: "Войдите в аккаунт" --}}

{{unless hasErrors "Ошибок нет" "Есть ошибки"}}
{{!-- Результат: "Ошибок нет" --}}

not

Описание

Сигнатура

Инвертирует булево значение. Логическое отрицание.

{{not value}}

Параметры

Параметр

Тип

Описание

value

any

Значение для инверсии.

Примеры

{{!-- Данные: { isHidden: true, isLoading: true, isValid: false } --}}

{{not isHidden}}
{{!-- Результат: false --}}

{{not isValid}}
{{!-- Результат: true --}}

and

Описание

Сигнатура

Логическое И. Возвращает true, если все аргументы truthy, иначе false.

{{and value1 value2 ...valueN}}

Параметры

Параметр

Тип

Описание

value1..N

any

Значения для проверки.

Примеры
{{!-- Данные: { isLoggedIn: true, isAdmin: true, hasPermission: false } --}}

{{and isLoggedIn isAdmin}}
{{!-- Результат: true --}}

{{and isLoggedIn hasPermission}}
{{!-- Результат: false --}}

{{and isLoggedIn isAdmin hasPermission}}
{{!-- Результат: false --}}

or

Описание

Сигнатура

Логическое ИЛИ. Возвращает false, если все аргументы falsy, иначе true.

{{or value1 value2 ...valueN}}

Параметры

Параметр

Тип

Описание

value1..N

any

Значения для проверки.

value2

Number

Второе значение.

Примеры
{{!-- Данные: { isModerator: true, isAdmin: true } --}}

{{or isModerator isAdmin}}
{{!-- Результат: true --}}

Математическая логика

add

Описание

Сигнатура

Сумма двух чисел.

{{add value1 value2}}

Параметры

Параметр

Тип

Описание

value1

Number

Первое слагаемое.

value2

Number

Второе слагаемое.

Примеры
{{add 5 3}}
{{!-- Результат: 8 --}}

{{add price tax}}
{{!-- Результат: price + tax --}}

{{add -10 25}}
{{!-- Результат: 15 --}}

{{add 0.1 0.2}}
{{!-- Результат: 0.3 --}}

subtract

Описание

Сигнатура

Разница двух чисел.

{{subtract value1 value2}}

Параметры

Параметр

Тип

Описание

value1

Number

Уменьшаемое.

value2

Number

Вычитаемое.

Примеры
{{subtract 10 3}}
{{!-- Результат: 7 --}}

{{subtract price discount}}
{{!-- Результат: price - discount --}}

{{subtract 0 5}}
{{!-- Результат: -5 --}}

multiply

Описание

Сигнатура

Умножение двух чисел.

{{multiply value1 value2}}

Параметры

Параметр

Тип

Описание

value1

Number

Первый множитель.

value2

Number

Второй множитель.

Примеры
{{multiply 5 3}}
{{!-- Результат: 15 --}}

{{multiply price quantity}}
{{!-- Результат: price * quantity --}}

{{multiply 0.5 200}}
{{!-- Результат: 100 --}}

divide

Описание

Сигнатура

Деление двух чисел.

{{divide value1 value2}}

Параметры

Параметр

Тип

Описание

value1

Number

Делимое.

value2

Number

Делитель.

Примеры

{{divide 10 2}}
{{!-- Результат: 5... --}}

{{divide total quantity}}
{{!-- Результат: total / quantity --}}

max

Описание

Сигнатура

Возвращает наибольшее из переданных чисел.

{{max value1 value2 ...valueN}}

Параметры

Параметр

Тип

Описание

value1..N

Number

Числа для сравнения.

Примеры
{{max 5 10 3}}
{{!-- Результат: 10 --}}

{{max price minPrice}}
{{!-- Результат: большее из двух --}}

{{max -5 -10 -1}}
{{!-- Результат: -1 --}}

min

Описание

Сигнатура

Возвращает наименьшее из переданных чисел.

{{min value1 value2 ...valueN}}

Параметры

Параметр

Тип

Описание

value1..N

Number

Числа для сравнения.

Примеры
{{min 5 10 3}}
{{!-- Результат: 3 --}}

{{min stock maxPerOrder}}
{{!-- Результат: меньшее из двух --}}

ceil

Описание

Сигнатура

Округляет число вверх до ближайшего целого.

{{ceil value}}

Параметры

Параметр

Тип

Описание

value

Number

Число для округления.

Примеры

{{ceil 4.2}}
{{!-- Результат: 5 --}}

{{ceil 7.0}}
{{!-- Результат: 7 --}}

floor

Описание

Сигнатура

Округляет число вниз до ближайшего целого.

{{floor value}}

Параметры

Параметр

Тип

Описание

value

Number

Число для округления.

Примеры
{{floor 4.9}}
{{!-- Результат: 4 --}}

{{floor 7.0}}
{{!-- Результат: 7 --}}

round

Описание

Сигнатура

Математическое округление чисел

{{round value}}

Параметры

Параметр

Тип

Описание

value

Number

Число для округления.

Примеры

{{round 4.567}}
{{!-- Результат: 5 --}}

{{round 4.467}}
{{!-- Результат: 4 --}}

ratio

Описание

Сигнатура

Вычисляет процентное соотношение одного числа от другого.

{{ratio value total}}

Параметры

Параметр

Тип

Описание

value

Number

Числитель.

total

Number

Знаменатель.

Примеры
{{ratio 25 100}}
{{!-- Результат: 0.25 --}}

{{ratio 1 3}}
{{!-- Результат: 0.333... --}}

{{ratio 750 1000}}
{{!-- Результат: 0.75 --}}

{{ratio 0 100}}
{{!-- Результат: 0 --}}

Операции сравнения

eql

Описание

Сигнатура

Проверяет строгое равенство двух значений.

{{eql value1 value2}}

Параметры

Параметр

Тип

Описание

value1

any

Первое значение.

value2

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

Описание

Сигнатура

Проверяет строгое неравенство двух значений.

{{notEql value1 value2}}

Параметры

Параметр

Тип

Описание

value1

any

Первое значение.

value2

any

Второе значение.

Примеры
{{!-- Данные: { status: "draft", role: "user" } --}}

{{#if (notEql status "active")}}
    <span class="badge badge--gray">Неактивен</span>
{{/if}}

{{#if (notEql role "admin")}}
    <p>У вас нет прав администратора</p>
{{/if}}

gt

Описание

Сигнатура

Проверяет что первое значение строго больше второго.

{{gt value1 value2}}

Параметры

Параметр

Тип

Описание

value1

Number

Первое значение.

value2

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

Описание

Сигнатура

Проверяет что первое значение больше или равно второму.

{{gte value1 value2}}

Параметры

Параметр

Тип

Описание

value1

Number

Первое значение.

value2

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

Описание

Сигнатура

Проверяет что первое значение строго меньше второго.

{{lt value1 value2}}

Параметры

Параметр

Тип

Описание

value1

Number

Первое значение.

value2

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

Описание

Сигнатура

Проверяет что первое значение меньше или равно второму.

{{lte value1 value2}}

Параметры

Параметр

Тип

Описание

value1

Number

Первое значение.

value2

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}}

Обратиться в службу поддержки

Написать в чат

Написать письмо