Документация для разработчиков
Темная тема

Панель действий

Расширение ui.actions-bar задает стили для компоновки панели действий. Оно управляет выравниванием, отступами и расположением секций, таких как счетчики ui.counterpanel и навигационные панели ui.navigationpanel, а также кнопками действий в правой части.

Подключение

JS (ES6)

import { RightButtons } from 'ui.actions-bar';

const options = {
    buttonsContainer: document.getElementById('buttons-container'),
    collapsable: true
};

const rightButtons = new RightButtons(options);
rightButtons.init();

JS (ES5)

var RightButtons = require('ui.actions-bar').RightButtons;

var options = {
    buttonsContainer: document.getElementById('buttons-container'),
    collapsable: true
};

var rightButtons = new RightButtons(options);
rightButtons.init();

PHP

<?php
use Bitrix\UI\Buttons\Button;
use Bitrix\UI\Buttons\Color;
use Bitrix\UI\Buttons\Size;
use Bitrix\UI\Extension;

// Подключаем необходимое расширение
Extension::load('ui.buttons');

// Создаем кнопку через API
$button = Button::create([
    'text' => 'Новая кнопка',
    'color' => Color::SUCCESS,
    'size' => Size::SMALL,
    'useAirDesign' => true
]);

// Получаем HTML-код кнопки
$buttonHtml = $button->render();
?>
<div id="buttons-container">
    <?php echo $buttonHtml; ?>
</div>
<script>
    var options = {
        buttonsContainer: document.getElementById('buttons-container'),
        collapsable: true
    };

    var rightButtons = new BX.ActionsBar.RightButtons(options);
    rightButtons.init();
 
// Рекомендуется вызывать rightButtons.init() сразу после рендера контейнера с кнопками,
// это позволит избежать визуальных дерганий кнопок при рендере страницы.
</script>

Использование класса RightButtons не является обязательным. Он предназначен только для автоматического сжатия кнопок при недостатке места. Можно подключить расширение ui.actions-bar и использовать его стили для компоновки панели без дополнительной логики.


Использование с ui.counterpanel и ui.navigationpanel

Расширение ui.actions-bar позволяет располагать счетчик ui.counterpanel и навигационную панель ui.navigationpanel, используя специальные CSS-классы:

  • ui-actions-bar — основной контейнер панели. Обозначен красной рамкой на изображении ниже.
  • ui-actions-bar__panel — контейнеры для счетчиков ui.counterpanel и навигационной панели ui.navigationpanel. Обозначены синими рамками.
  • ui-actions-bar__buttons — контейнер для кнопок. Обозначен зеленой рамкой.

Пример структуры:

<div class="ui-actions-bar">
    <div class="ui-actions-bar__panel --wide">
       <div class="ui-counterpanel">... </div>
    </div>
    <div class="ui-actions-bar__buttons>
       <button class="ui-btn">Кнопка 1</button>
       <button class="ui-btn">Кнопка 2</button>
    </div>
</div>

Расширение управляет выравниванием, отступами и гибкостью между секциями. Оно также позволяет расширить одну из секций на всю доступную ширину с помощью класса --wide.


Класс RightButtons

Класс RightButtons управляет кнопками в правой части панели. При недостатке места он не скрывает кнопки, а сжимает их с помощью API кнопок: текст убирает и оставляет только иконку. Это позволяет сохранить видимость кнопки, но уменьшить занимаемое пространство.

RightButtons может влиять на внешний вид старых кнопок. Он автоматически приводит их к новому стилю, что может быть нежелательным побочным эффектом. Если нужно сохранить прежний внешний вид кнопок, не используйте RightButtons.

Методы класса

МетодОписаниеПараметрыВозвращаемое значение
init(): voidИнициализирует компонент, создает наблюдателей за изменением размера и содержимого контейнера

Параметры конструктора RightButtonsOptions

Параметр
тип
ОписаниеОбяз.
buttonsContainer
HTMLElement
DOM-элемент, содержащий кнопкиДа
collapsable
boolean
Флаг указывает, нужно ли включить автоматическое сжатие кнопок при недостатке местаНет

Примеры использования

Простой пример с контейнером и кнопками

const options = {
    buttonsContainer: document.getElementById('buttons-container'),
    collapsable: true
};

const rightButtons = new RightButtons(options);
rightButtons.init();

Пример с динамическим добавлением кнопки через API

import { Button, ButtonColor, ButtonSize } from 'ui.buttons';

const button = new Button({
    text: 'Новая кнопка',
    color: ButtonColor.DEFAULT,
    size: ButtonSize.SMALL,
    useAirDesign: true
});

const buttonElement = button.render();
document.getElementById('buttons-container').appendChild(buttonElement);

// После добавления кнопки, необходимо перезапустить инициализацию
rightButtons.init();

Дополнительная информация

  • Расширение использует ResizeObserver и MutationObserver для отслеживания изменений в DOM и автоматического управления кнопками.


© «Битрикс», 2001-2025, «1С-Битрикс», 2025