UNPKG

@keymanapp/common-types

Version:

Keyman Developer keyboard file types

40 lines (38 loc) 1.81 kB
!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