This reactive component wraps the Sortable JS library (https://github.com/SortableJS/Sortable)
Simply drag the SortableList widget on to your page and specify the widget id of your list container, and all children will autmatically be sortable and draggable to other lists that are associated with their own SortableList widget. Use the Options parameter of the widget to further control the lists' behavior.
The component exposes most of the library's functionality, while still allowing the flexibility to extend the functionality using JavaScript blocks if need be.
The structure attributes and public client actions have descriptions explaining what they do, and full documentation for the JS library is available on the Sortable JS GitHub page.
Now you can lock specific rows to drag and drop using the class .no-drag
In this example, you can lock the row depending on the flag value IsMandatory, you just need to adapt to your scenario.