Sortable-список и Drag and Drop для Angular | ng-hub-ui-sortable

Sortable-список и утилиты drag-and-drop для Angular для массивов, интеграции с FormArray, рабочих процессов на Signals и связанных списков.

Справочник API

Вот полный контракт sortable: всё, что можно привязать, прослушать, спроецировать и тематизировать, собрано в одном месте. Подключите то, что нужно, и оформите так, как хотите — это standalone и дружит с сигналами.

Входные свойства

Настройте sortable с помощью 13 входных свойств. Привязывайте их, как любой @Input в Angular.

ИмяТипПо умолчаниюОписание
hubSortableОбязательноT[] | FormArray | WritableSignal<T[]>Данные, привязанные к сортируемому контейнеру: обычный массив, реактивный `FormArray` или записываемый сигнал. Остаётся синхронизированным с операциями перетаскивания.
optionsOptionsПолный объект опций SortableJS. Любую опцию SortableJS также можно привязать напрямую как отдельный input (например `handle`, `animation` или `group`).
autoUpdateArraybooleantrueПри `true` (по умолчанию) директива автоматически изменяет привязанный массив после каждого перетаскивания. Установите `false` для ручного управления и обновляйте массив самостоятельно.
cloneFunction(item: T) => TФункция для клонирования элемента, когда группа настроена в режиме `pull: 'clone'`.
containerstringCSS-селектор вложенного элемента, который должен стать сортируемым, когда хост оборачивает реальный список.
groupOptions['group']Имя группы или объект конфигурации для соединения нескольких списков и управления тем, какие из них могут отдавать или получать элементы.
sortbooleanВключает или отключает изменение порядка элементов внутри списка.
handlestringCSS-селектор элемента внутри каждого пункта, который запускает перетаскивание, оставляя остальное интерактивным.
draggablestringCSS-селектор, ограничивающий, какие дочерние элементы можно перетаскивать.
filterstring | ((event, target, sortable) => boolean)CSS-селектор (или предикат), отмечающий элементы, которые нельзя перетаскивать.
disabledbooleanОтключает поведение сортировки без удаления директивы.
animationnumberДлительность анимации переупорядочивания в миллисекундах.
ghostClassstringCSS-класс, применяемый к заполнителю, отображаемому во время перетаскивания.

События

Реагируйте на то, что делает sortable, — 13 событий, к которым можно подключить вашу логику.

ИмяТипОписание
initSortableВозникает после создания базового экземпляра SortableJS.
startSortableEventВозникает в начале операции перетаскивания.
endSortableEventВозникает в конце операции перетаскивания, независимо от результата.
addSortableEventВозникает, когда элемент перемещается в этот список из другого.
updateSortableEventВозникает, когда элемент меняет позицию внутри того же списка.
sortEventSortableEventВозникает при любом изменении порядка списка (после `add` или `update`).
removeSortableEventВозникает, когда элемент покидает этот список в направлении другого.
filterEventSortableEventВозникает при попытке перетащить отфильтрованный (неперетаскиваемый) элемент.
changeSortableEventВозникает, когда список изменяется из-за добавления или удаления.
chooseSortableEventВозникает при выборе элемента (нажатие указателя).
unchooseSortableEventВозникает, когда элемент отпускают без перетаскивания.
cloneSortableEventВозникает при клонировании элемента в режиме клонирования.
moveSortableMoveEventPayloadВозникает непрерывно во время перетаскивания; возвращаемое значение может определять, разрешено ли перемещение.

Шаблоны

Шаблоны пока не задокументированы.

CSS-переменные

CSS-переменные пока не задокументированы.

Стилизация и тематизация

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