Sha256: cc34cb2192f48b6b1ccb0d1651b4436e7778dfe90ca6f700c3f667ee36acbb40
Contents?: true
Size: 1.24 KB
Versions: 7
Compression:
Stored size: 1.24 KB
Contents
function bindTableLinks() { const keycodes = { space: 32, enter: 13 } function visitDataUrl(event) { /** @type {HTMLTableRowElement} */ const target = event.target.classList.contains("js-table-row") ? event.target : event.target.closest('.js-table-row') if (!target) { return } if (event.type === "click" || event.keyCode === keycodes.space || event.keyCode === keycodes.enter) { if (event.target.href) { return } const dataUrl = target.getAttribute("data-url") const selection = window.getSelection().toString() if (selection.length === 0 && dataUrl) { const delegate = target.querySelector(`[href="${dataUrl}"]`) if (delegate) { delegate.click() } else { window.location = dataUrl } } } } const tables = [...document.getElementsByTagName("table")] tables.forEach( /** @type {HTMLTableElement} */ (table) => { table.addEventListener("click", visitDataUrl) table.addEventListener("keydown", visitDataUrl) }) } <%- if options[:skip_turbolinks] -%> $(document).ready(function () { <%- else -%> document.addEventListener('turbolinks:load', function () { <%- end -%> bindTableLinks() })
Version data entries
7 entries across 7 versions & 1 rubygems