mirror of
https://github.com/seigler/awesome-dash-platform
synced 2025-07-27 06:36:08 +00:00
63 lines
1.3 KiB
JavaScript
63 lines
1.3 KiB
JavaScript
const lunr = require('lunr')
|
|
const idx = lunr.Index.load(window.idx)
|
|
const search = document.getElementById('search')
|
|
|
|
const cards = Array.from(document.querySelectorAll('.Card'))
|
|
.sort((a, b) => {
|
|
const aId = parseInt(a.dataset.ref)
|
|
const bId = parseInt(b.dataset.ref)
|
|
|
|
if (aId < bId) {
|
|
return -1
|
|
}
|
|
if (aId > bId) {
|
|
return 1
|
|
}
|
|
|
|
return 0
|
|
})
|
|
|
|
// function randomizr () {
|
|
// const cards = document.querySelector('.CardContainer')
|
|
// for (var i = cards.children.length; i >= 0; i--) {
|
|
// cards.appendChild(cards.children[Math.random() * i | 0])
|
|
// }
|
|
// }
|
|
|
|
function update (display) {
|
|
cards.forEach((c) => {
|
|
if (display.indexOf(c.dataset.ref) >= 0) {
|
|
c.classList.remove('dn')
|
|
c.classList.add('dib')
|
|
} else {
|
|
c.classList.add('dn')
|
|
c.classList.remove('dib')
|
|
}
|
|
})
|
|
}
|
|
|
|
// randomizr()
|
|
|
|
if (search) {
|
|
search.classList.remove('dn')
|
|
const input = search.querySelector('input')
|
|
|
|
input.addEventListener('keyup', () => {
|
|
let search = input.value
|
|
|
|
if (search === '') {
|
|
cards.forEach((c) => c.classList.remove('dn'))
|
|
return
|
|
}
|
|
|
|
if (!search.endsWith('*')) {
|
|
search = `${search} ${search}*`
|
|
}
|
|
|
|
try {
|
|
update(idx.search(search).map(s => s.ref))
|
|
} catch (e) {
|
|
console.log(e)
|
|
}
|
|
})
|
|
}
|