UNPKG

@graffy/common

Version:

Common libraries that used by various Graffy modules.

47 lines (42 loc) 1.09 kB
export function keyStep(key) { if (key === '') return { key: key, step: 1 }; if (key === "\uFFFF") return { key: key, step: -1 }; var l = key.length - 1; switch (key.charCodeAt(l)) { case 0: return { key: key.substr(0, l), step: 1 }; case 0xffff: return { key: key.substr(0, l - 1) + String.fromCharCode(key.charCodeAt(l - 1) + 1), step: -1 }; default: return { key: key, step: 0 }; } } export function keyBefore(key) { if (key === '' || key === "\uFFFF" || key === '\0' || key === "\0\uFFFF") { return key; } var l = key.length - 1; return key.charCodeAt(l) === 0 ? key.substr(0, l) : key.substr(0, l) + String.fromCharCode(key.charCodeAt(l) - 1) + "\uFFFF"; } export function keyAfter(key) { if (key === '' || key === "\uFFFF" || key === '\0' || key === "\0\uFFFF") { return key; } var l = key.length - 1; return key.charCodeAt(l) === 0xffff ? key.substr(0, l - 1) + String.fromCharCode(key.charCodeAt(l - 1) + 1) : key + '\0'; }