// Initializes Sortable on elements marked with [data-sortable] // Allows options via JSON in data attribute: data-sortable='{"animation":150}' const sortableElements: NodeListOf = document.querySelectorAll('[data-sortable]') if (sortableElements.length) { sortableElements.forEach(function (element: HTMLElement) { let options: Record = {} try { const rawOptions = element.getAttribute('data-sortable') options = rawOptions ? JSON.parse(rawOptions) : {} } catch (e) { // ignore invalid JSON } if (window.Sortable) { // eslint-disable-next-line no-new new window.Sortable(element, options) } }) }