@keymanapp/common-types
Version:
Keyman Developer keyboard file types
40 lines (38 loc) • 1.81 kB
JavaScript
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="a6025f3e-714f-5262-9d8c-891e1bc17f16")}catch(e){}}();
import KVKFile, { BUILDER_KVK_HEADER_IDENTIFIER, BUILDER_KVK_HEADER_VERSION } from "./kvk-file.js";
import { VisualKeyboard } from "./visual-keyboard.js";
export default class KvkFileReader {
read(source) {
let binary;
let kvk = new KVKFile();
binary = kvk.KVK_FILE.fromBuffer(source);
if (binary.header.identifier != BUILDER_KVK_HEADER_IDENTIFIER ||
binary.header.version != BUILDER_KVK_HEADER_VERSION) {
return null;
}
let result = new VisualKeyboard();
result.header.version = binary.header.version;
result.header.flags = binary.header.flags;
result.header.associatedKeyboard = binary.header.associatedKeyboard.str;
result.header.ansiFont.name = binary.header.ansiFont.name.str;
result.header.ansiFont.size = binary.header.ansiFont.size;
result.header.unicodeFont.name = binary.header.unicodeFont.name.str;
result.header.unicodeFont.size = binary.header.unicodeFont.size;
for (let binaryKey of binary.keys) {
let key = {
flags: binaryKey.flags,
vkey: binaryKey.vkey,
shift: binaryKey.shift,
text: binaryKey.text.str
};
if (binaryKey.bitmapSize) {
key.bitmap = new Uint8Array(binaryKey.bitmapData);
}
result.keys.push(key);
}
return result;
}
}
;
//# sourceMappingURL=kvk-file-reader.js.map
//# debugId=a6025f3e-714f-5262-9d8c-891e1bc17f16