We are currently working on a Angular 4 project. Our idea is that the user can change the View with input, checkbox and other user controls. We want to solve this with drag and drop so that the user can reorder the controls. We tried it already with dragula but we did not found a solution for loading and saving the setting. So I hope now that anyone has found a solution for our requirement.
If you want to save the layout, you could create a table containing your controls like so
let controls = [
{ order: 0, type: 'text', model: 'fullName' },
// ...
];
This way, you can then store it, and when the user loads the page, you can create a form with the FormBuilder, and place them on the view with the order.
Would that solve your requirement ?