@graffy/common
Version:
Common libraries that used by various Graffy modules.
56 lines (47 loc) • 1.2 kB
JavaScript
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';
}
;