mirror of
https://github.com/He4eT/tabswitcher.git
synced 2026-05-04 17:07:23 +00:00
36 lines
826 B
JavaScript
36 lines
826 B
JavaScript
const labels = {
|
|
/* tabId: label, */
|
|
}
|
|
|
|
const lettersOrder = 'lkjhyuionm'
|
|
|
|
const digits2label = (digits) => [...digits]
|
|
.map((digit) => lettersOrder[digit])
|
|
.join('')
|
|
|
|
const label2digits = (label) => [...label]
|
|
.map((letter) => [...lettersOrder].findIndex((x) => x === letter))
|
|
.join('')
|
|
|
|
/* */
|
|
|
|
export const id2label = (id, tabs) => {
|
|
if (!labels[id]) {
|
|
const label = Object.keys(labels).length
|
|
labels[id] = String(label)
|
|
}
|
|
|
|
const keyLength = String(tabs?.length).length
|
|
const digits = String(labels[id]).padStart(keyLength, 0)
|
|
return digits2label(digits)
|
|
}
|
|
|
|
export const label2id = (label) => {
|
|
const paddedDigits = label2digits(label)
|
|
const digits = String(parseInt(paddedDigits))
|
|
|
|
const [key] = Object.entries(labels)
|
|
.find(([_, value]) => value === digits)
|
|
|
|
return parseInt(key)
|
|
}
|