UNPKG

@graffy/common

Version:

Common libraries that used by various Graffy modules.

56 lines (47 loc) 1.2 kB
"use strict"; exports.__esModule = true; exports.keyStep = keyStep; exports.keyBefore = keyBefore; exports.keyAfter = keyAfter; 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 }; } } 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"; } 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'; }