@keymanapp/common-types 17.0.155-alpha → 17.0.157-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (246) hide show
  1. package/build/src/consts/virtual-key-constants.d.ts +144 -138
  2. package/build/src/consts/virtual-key-constants.d.ts.map +1 -1
  3. package/build/src/consts/virtual-key-constants.js +258 -252
  4. package/build/src/consts/virtual-key-constants.js.map +1 -1
  5. package/build/src/keyman-touch-layout/keyman-touch-layout-file-reader.d.ts +8 -7
  6. package/build/src/keyman-touch-layout/keyman-touch-layout-file-reader.d.ts.map +1 -1
  7. package/build/src/keyman-touch-layout/keyman-touch-layout-file-reader.js +76 -74
  8. package/build/src/keyman-touch-layout/keyman-touch-layout-file-reader.js.map +1 -1
  9. package/build/src/keyman-touch-layout/keyman-touch-layout-file-writer.d.ts +31 -24
  10. package/build/src/keyman-touch-layout/keyman-touch-layout-file-writer.d.ts.map +1 -1
  11. package/build/src/keyman-touch-layout/keyman-touch-layout-file-writer.js +119 -75
  12. package/build/src/keyman-touch-layout/keyman-touch-layout-file-writer.js.map +1 -1
  13. package/build/src/keyman-touch-layout/keyman-touch-layout-file.d.ts +78 -76
  14. package/build/src/keyman-touch-layout/keyman-touch-layout-file.d.ts.map +1 -1
  15. package/build/src/keyman-touch-layout/keyman-touch-layout-file.js +28 -26
  16. package/build/src/keyman-touch-layout/keyman-touch-layout-file.js.map +1 -1
  17. package/build/src/kmx/element-string.d.ts +26 -24
  18. package/build/src/kmx/element-string.d.ts.map +1 -1
  19. package/build/src/kmx/element-string.js +121 -119
  20. package/build/src/kmx/element-string.js.map +1 -1
  21. package/build/src/kmx/keyman-targets.d.ts +23 -0
  22. package/build/src/kmx/keyman-targets.d.ts.map +1 -0
  23. package/build/src/kmx/keyman-targets.js +80 -0
  24. package/build/src/kmx/keyman-targets.js.map +1 -0
  25. package/build/src/kmx/kmx-builder.d.ts +35 -33
  26. package/build/src/kmx/kmx-builder.d.ts.map +1 -1
  27. package/build/src/kmx/kmx-builder.js +190 -188
  28. package/build/src/kmx/kmx-builder.js.map +1 -1
  29. package/build/src/kmx/kmx-file-reader.d.ts +16 -7
  30. package/build/src/kmx/kmx-file-reader.d.ts.map +1 -1
  31. package/build/src/kmx/kmx-file-reader.js +135 -38
  32. package/build/src/kmx/kmx-file-reader.js.map +1 -1
  33. package/build/src/kmx/kmx-plus-builder/build-disp.d.ts +20 -18
  34. package/build/src/kmx/kmx-plus-builder/build-disp.d.ts.map +1 -1
  35. package/build/src/kmx/kmx-plus-builder/build-disp.js +27 -25
  36. package/build/src/kmx/kmx-plus-builder/build-disp.js.map +1 -1
  37. package/build/src/kmx/kmx-plus-builder/build-elem.d.ts +31 -29
  38. package/build/src/kmx/kmx-plus-builder/build-elem.d.ts.map +1 -1
  39. package/build/src/kmx/kmx-plus-builder/build-elem.js +90 -88
  40. package/build/src/kmx/kmx-plus-builder/build-elem.js.map +1 -1
  41. package/build/src/kmx/kmx-plus-builder/build-keys.d.ts +60 -58
  42. package/build/src/kmx/kmx-plus-builder/build-keys.d.ts.map +1 -1
  43. package/build/src/kmx/kmx-plus-builder/build-keys.js +109 -107
  44. package/build/src/kmx/kmx-plus-builder/build-keys.js.map +1 -1
  45. package/build/src/kmx/kmx-plus-builder/build-layr.d.ts +56 -54
  46. package/build/src/kmx/kmx-plus-builder/build-layr.d.ts.map +1 -1
  47. package/build/src/kmx/kmx-plus-builder/build-layr.js +101 -99
  48. package/build/src/kmx/kmx-plus-builder/build-layr.js.map +1 -1
  49. package/build/src/kmx/kmx-plus-builder/build-list.d.ts +38 -36
  50. package/build/src/kmx/kmx-plus-builder/build-list.d.ts.map +1 -1
  51. package/build/src/kmx/kmx-plus-builder/build-list.js +67 -65
  52. package/build/src/kmx/kmx-plus-builder/build-list.js.map +1 -1
  53. package/build/src/kmx/kmx-plus-builder/build-loca.d.ts +14 -12
  54. package/build/src/kmx/kmx-plus-builder/build-loca.d.ts.map +1 -1
  55. package/build/src/kmx/kmx-plus-builder/build-loca.js +22 -20
  56. package/build/src/kmx/kmx-plus-builder/build-loca.js.map +1 -1
  57. package/build/src/kmx/kmx-plus-builder/build-meta.d.ts +19 -17
  58. package/build/src/kmx/kmx-plus-builder/build-meta.d.ts.map +1 -1
  59. package/build/src/kmx/kmx-plus-builder/build-meta.js +23 -21
  60. package/build/src/kmx/kmx-plus-builder/build-meta.js.map +1 -1
  61. package/build/src/kmx/kmx-plus-builder/build-name.d.ts +14 -12
  62. package/build/src/kmx/kmx-plus-builder/build-name.d.ts.map +1 -1
  63. package/build/src/kmx/kmx-plus-builder/build-name.js +25 -23
  64. package/build/src/kmx/kmx-plus-builder/build-name.js.map +1 -1
  65. package/build/src/kmx/kmx-plus-builder/build-sect.d.ts +18 -16
  66. package/build/src/kmx/kmx-plus-builder/build-sect.d.ts.map +1 -1
  67. package/build/src/kmx/kmx-plus-builder/build-sect.js +16 -14
  68. package/build/src/kmx/kmx-plus-builder/build-sect.js.map +1 -1
  69. package/build/src/kmx/kmx-plus-builder/build-strs.d.ts +25 -23
  70. package/build/src/kmx/kmx-plus-builder/build-strs.d.ts.map +1 -1
  71. package/build/src/kmx/kmx-plus-builder/build-strs.js +47 -45
  72. package/build/src/kmx/kmx-plus-builder/build-strs.js.map +1 -1
  73. package/build/src/kmx/kmx-plus-builder/build-tran.d.ts +35 -33
  74. package/build/src/kmx/kmx-plus-builder/build-tran.d.ts.map +1 -1
  75. package/build/src/kmx/kmx-plus-builder/build-tran.js +70 -68
  76. package/build/src/kmx/kmx-plus-builder/build-tran.js.map +1 -1
  77. package/build/src/kmx/kmx-plus-builder/build-uset.d.ts +33 -31
  78. package/build/src/kmx/kmx-plus-builder/build-uset.d.ts.map +1 -1
  79. package/build/src/kmx/kmx-plus-builder/build-uset.js +61 -59
  80. package/build/src/kmx/kmx-plus-builder/build-uset.js.map +1 -1
  81. package/build/src/kmx/kmx-plus-builder/build-vars.d.ts +24 -22
  82. package/build/src/kmx/kmx-plus-builder/build-vars.d.ts.map +1 -1
  83. package/build/src/kmx/kmx-plus-builder/build-vars.js +49 -47
  84. package/build/src/kmx/kmx-plus-builder/build-vars.js.map +1 -1
  85. package/build/src/kmx/kmx-plus-builder/build-vkey.d.ts +18 -16
  86. package/build/src/kmx/kmx-plus-builder/build-vkey.d.ts.map +1 -1
  87. package/build/src/kmx/kmx-plus-builder/build-vkey.js +25 -23
  88. package/build/src/kmx/kmx-plus-builder/build-vkey.js.map +1 -1
  89. package/build/src/kmx/kmx-plus-builder/builder-section.d.ts +12 -10
  90. package/build/src/kmx/kmx-plus-builder/builder-section.d.ts.map +1 -1
  91. package/build/src/kmx/kmx-plus-builder/builder-section.js +5 -3
  92. package/build/src/kmx/kmx-plus-builder/builder-section.js.map +1 -1
  93. package/build/src/kmx/kmx-plus-builder/kmx-plus-builder.d.ts +49 -47
  94. package/build/src/kmx/kmx-plus-builder/kmx-plus-builder.d.ts.map +1 -1
  95. package/build/src/kmx/kmx-plus-builder/kmx-plus-builder.js +146 -144
  96. package/build/src/kmx/kmx-plus-builder/kmx-plus-builder.js.map +1 -1
  97. package/build/src/kmx/kmx-plus.d.ts +331 -329
  98. package/build/src/kmx/kmx-plus.d.ts.map +1 -1
  99. package/build/src/kmx/kmx-plus.js +835 -833
  100. package/build/src/kmx/kmx-plus.js.map +1 -1
  101. package/build/src/kmx/kmx.d.ts +235 -209
  102. package/build/src/kmx/kmx.d.ts.map +1 -1
  103. package/build/src/kmx/kmx.js +299 -276
  104. package/build/src/kmx/kmx.js.map +1 -1
  105. package/build/src/kmx/string-list.d.ts +36 -34
  106. package/build/src/kmx/string-list.d.ts.map +1 -1
  107. package/build/src/kmx/string-list.js +85 -83
  108. package/build/src/kmx/string-list.js.map +1 -1
  109. package/build/src/kpj/keyman-developer-project.d.ts +74 -63
  110. package/build/src/kpj/keyman-developer-project.d.ts.map +1 -1
  111. package/build/src/kpj/keyman-developer-project.js +165 -146
  112. package/build/src/kpj/keyman-developer-project.js.map +1 -1
  113. package/build/src/kpj/kpj-file-reader.d.ts +21 -19
  114. package/build/src/kpj/kpj-file-reader.d.ts.map +1 -1
  115. package/build/src/kpj/kpj-file-reader.js +110 -96
  116. package/build/src/kpj/kpj-file-reader.js.map +1 -1
  117. package/build/src/kpj/kpj-file.d.ts +41 -39
  118. package/build/src/kpj/kpj-file.d.ts.map +1 -1
  119. package/build/src/kpj/kpj-file.js +13 -11
  120. package/build/src/kpj/kpj-file.js.map +1 -1
  121. package/build/src/kvk/kvk-file-reader.d.ts +7 -5
  122. package/build/src/kvk/kvk-file-reader.d.ts.map +1 -1
  123. package/build/src/kvk/kvk-file-reader.js +38 -35
  124. package/build/src/kvk/kvk-file-reader.js.map +1 -1
  125. package/build/src/kvk/kvk-file-writer.d.ts +22 -20
  126. package/build/src/kvk/kvk-file-writer.d.ts.map +1 -1
  127. package/build/src/kvk/kvk-file-writer.js +78 -67
  128. package/build/src/kvk/kvk-file-writer.js.map +1 -1
  129. package/build/src/kvk/kvk-file.d.ts +68 -65
  130. package/build/src/kvk/kvk-file.d.ts.map +1 -1
  131. package/build/src/kvk/kvk-file.js +67 -64
  132. package/build/src/kvk/kvk-file.js.map +1 -1
  133. package/build/src/kvk/kvks-file-reader.d.ts +26 -23
  134. package/build/src/kvk/kvks-file-reader.d.ts.map +1 -1
  135. package/build/src/kvk/kvks-file-reader.js +179 -151
  136. package/build/src/kvk/kvks-file-reader.js.map +1 -1
  137. package/build/src/kvk/kvks-file-writer.d.ts +9 -6
  138. package/build/src/kvk/kvks-file-writer.d.ts.map +1 -1
  139. package/build/src/kvk/kvks-file-writer.js +107 -98
  140. package/build/src/kvk/kvks-file-writer.js.map +1 -1
  141. package/build/src/kvk/kvks-file.d.ts +46 -44
  142. package/build/src/kvk/kvks-file.d.ts.map +1 -1
  143. package/build/src/kvk/kvks-file.js +12 -10
  144. package/build/src/kvk/kvks-file.js.map +1 -1
  145. package/build/src/kvk/visual-keyboard.d.ts +47 -35
  146. package/build/src/kvk/visual-keyboard.d.ts.map +1 -1
  147. package/build/src/kvk/visual-keyboard.js +73 -61
  148. package/build/src/kvk/visual-keyboard.js.map +1 -1
  149. package/build/src/ldml-keyboard/ldml-keyboard-testdata-xml.d.ts +58 -56
  150. package/build/src/ldml-keyboard/ldml-keyboard-testdata-xml.d.ts.map +1 -1
  151. package/build/src/ldml-keyboard/ldml-keyboard-testdata-xml.js +22 -20
  152. package/build/src/ldml-keyboard/ldml-keyboard-testdata-xml.js.map +1 -1
  153. package/build/src/ldml-keyboard/ldml-keyboard-xml-reader.d.ts +97 -95
  154. package/build/src/ldml-keyboard/ldml-keyboard-xml-reader.d.ts.map +1 -1
  155. package/build/src/ldml-keyboard/ldml-keyboard-xml-reader.js +387 -385
  156. package/build/src/ldml-keyboard/ldml-keyboard-xml-reader.js.map +1 -1
  157. package/build/src/ldml-keyboard/ldml-keyboard-xml.d.ts +163 -161
  158. package/build/src/ldml-keyboard/ldml-keyboard-xml.d.ts.map +1 -1
  159. package/build/src/ldml-keyboard/ldml-keyboard-xml.js +41 -39
  160. package/build/src/ldml-keyboard/ldml-keyboard-xml.js.map +1 -1
  161. package/build/src/ldml-keyboard/pattern-parser.d.ts +138 -136
  162. package/build/src/ldml-keyboard/pattern-parser.d.ts.map +1 -1
  163. package/build/src/ldml-keyboard/pattern-parser.js +245 -243
  164. package/build/src/ldml-keyboard/pattern-parser.js.map +1 -1
  165. package/build/src/ldml-keyboard/unicodeset-parser-api.d.ts +40 -38
  166. package/build/src/ldml-keyboard/unicodeset-parser-api.d.ts.map +1 -1
  167. package/build/src/ldml-keyboard/unicodeset-parser-api.js +30 -28
  168. package/build/src/ldml-keyboard/unicodeset-parser-api.js.map +1 -1
  169. package/build/src/main.d.ts +36 -29
  170. package/build/src/main.d.ts.map +1 -1
  171. package/build/src/main.js +35 -28
  172. package/build/src/main.js.map +1 -1
  173. package/build/src/osk/osk.d.ts +25 -0
  174. package/build/src/osk/osk.d.ts.map +1 -0
  175. package/build/src/osk/osk.js +89 -0
  176. package/build/src/osk/osk.js.map +1 -0
  177. package/build/src/package/kmp-json-file.d.ts +69 -68
  178. package/build/src/package/kmp-json-file.d.ts.map +1 -1
  179. package/build/src/package/kmp-json-file.js +4 -2
  180. package/build/src/package/kmp-json-file.js.map +1 -1
  181. package/build/src/package/kps-file.d.ts +100 -98
  182. package/build/src/package/kps-file.d.ts.map +1 -1
  183. package/build/src/package/kps-file.js +18 -16
  184. package/build/src/package/kps-file.js.map +1 -1
  185. package/build/src/schemas/displaymap.schema.d.ts +60 -0
  186. package/build/src/schemas/displaymap.schema.d.ts.map +1 -0
  187. package/build/src/schemas/displaymap.schema.js +38 -0
  188. package/build/src/schemas/displaymap.schema.js.map +1 -0
  189. package/build/src/schemas/keyman-touch-layout.clean.spec.d.ts +230 -0
  190. package/build/src/schemas/keyman-touch-layout.clean.spec.d.ts.map +1 -0
  191. package/build/src/schemas/keyman-touch-layout.clean.spec.js +154 -0
  192. package/build/src/schemas/keyman-touch-layout.clean.spec.js.map +1 -0
  193. package/build/src/schemas/keyman-touch-layout.spec.d.ts +229 -0
  194. package/build/src/schemas/keyman-touch-layout.spec.d.ts.map +1 -0
  195. package/build/src/schemas/keyman-touch-layout.spec.js +142 -0
  196. package/build/src/schemas/keyman-touch-layout.spec.js.map +1 -0
  197. package/build/src/schemas/kpj-9.0.schema.d.ts +155 -0
  198. package/build/src/schemas/kpj-9.0.schema.d.ts.map +1 -0
  199. package/build/src/schemas/kpj-9.0.schema.js +134 -0
  200. package/build/src/schemas/kpj-9.0.schema.js.map +1 -0
  201. package/build/src/schemas/kpj.schema.d.ts +121 -0
  202. package/build/src/schemas/kpj.schema.d.ts.map +1 -0
  203. package/build/src/schemas/kpj.schema.js +128 -0
  204. package/build/src/schemas/kpj.schema.js.map +1 -0
  205. package/build/src/schemas/kvks.schema.d.ts +163 -0
  206. package/build/src/schemas/kvks.schema.d.ts.map +1 -0
  207. package/build/src/schemas/kvks.schema.js +185 -0
  208. package/build/src/schemas/kvks.schema.js.map +1 -0
  209. package/build/src/schemas/ldml-keyboard.schema.d.ts +634 -0
  210. package/build/src/schemas/ldml-keyboard.schema.d.ts.map +1 -0
  211. package/build/src/schemas/ldml-keyboard.schema.js +705 -0
  212. package/build/src/schemas/ldml-keyboard.schema.js.map +1 -0
  213. package/build/src/schemas/ldml-keyboardtest.schema.d.ts +191 -0
  214. package/build/src/schemas/ldml-keyboardtest.schema.d.ts.map +1 -0
  215. package/build/src/schemas/ldml-keyboardtest.schema.js +224 -0
  216. package/build/src/schemas/ldml-keyboardtest.schema.js.map +1 -0
  217. package/build/src/schemas.d.ts +1757 -0
  218. package/build/src/schemas.d.ts.map +1 -0
  219. package/build/src/schemas.js +22 -0
  220. package/build/src/schemas.js.map +1 -0
  221. package/build/src/util/common-events.d.ts +51 -49
  222. package/build/src/util/common-events.d.ts.map +1 -1
  223. package/build/src/util/common-events.js +31 -29
  224. package/build/src/util/common-events.js.map +1 -1
  225. package/build/src/util/compiler-interfaces.d.ts +296 -136
  226. package/build/src/util/compiler-interfaces.d.ts.map +1 -1
  227. package/build/src/util/compiler-interfaces.js +294 -104
  228. package/build/src/util/compiler-interfaces.js.map +1 -1
  229. package/build/src/util/errors.d.ts +8 -0
  230. package/build/src/util/errors.d.ts.map +1 -0
  231. package/build/src/util/errors.js +8 -0
  232. package/build/src/util/errors.js.map +1 -0
  233. package/build/src/util/file-types.d.ts +98 -0
  234. package/build/src/util/file-types.d.ts.map +1 -0
  235. package/build/src/util/file-types.js +117 -0
  236. package/build/src/util/file-types.js.map +1 -0
  237. package/build/src/util/util.d.ts +32 -30
  238. package/build/src/util/util.d.ts.map +1 -1
  239. package/build/src/util/util.js +98 -96
  240. package/build/src/util/util.js.map +1 -1
  241. package/package.json +23 -4
  242. package/build/src/keyman-touch-layout.clean.spec.json +0 -170
  243. package/build/src/kpj.schema.json +0 -127
  244. package/build/src/kvks.schema.json +0 -182
  245. package/build/src/ldml-keyboard.schema.json +0 -702
  246. package/build/src/ldml-keyboardtest.schema.json +0 -221
@@ -1,64 +1,67 @@
1
- import * as r from 'restructure';
2
- //
3
- // Binary backing structures for .kvk format
4
- // matching VisualKeyboardSaverBinary.pas
5
- //
6
- export const BUILDER_KVK_HEADER_IDENTIFIER = 0x464B564B; // 'KVKF', little-endian
7
- export const KVK_HEADER_IDENTIFIER_BYTES = [0x4B, 0x56, 0x4B, 0x46];
8
- export const BUILDER_KVK_HEADER_VERSION = 0x0600; // Keyman 6.0
9
- ;
10
- ;
11
- export const BUILDER_KVK_FONT_Size = 8; // size of fixed elements of BUILDER_KVK_FONT
12
- ;
13
- ;
14
- ;
15
- export const BUILDER_KVK_KEY_Size = 9; // size of fixed elements of BUILDER_KVK_KEY
16
- ;
17
- ;
18
- export const BUILDER_KVK_HEADER_Size = 9 + BUILDER_KVK_FONT_Size + BUILDER_KVK_FONT_Size; // size of fixed elements of BUILDER_KVK_HEADER
19
- ;
20
- export default class KVKFile {
21
- KVK_HEADER;
22
- KVK_KEY;
23
- KVK_KEYS;
24
- KVK_FONT;
25
- KVK_FILE;
26
- KVK_STRING;
27
- constructor() {
28
- //
29
- // Binary restructure definitions matching VisualKeyboardSaverBinary.pas
30
- // TODO: move binaries to separate kvk-file.ts
31
- //
32
- this.KVK_STRING = new r.Struct({
33
- len: r.int16le,
34
- str: new r.String(null, 'utf16le')
35
- });
36
- this.KVK_FONT = new r.Struct({
37
- name: this.KVK_STRING,
38
- size: r.int32le,
39
- color: r.uint32le
40
- });
41
- this.KVK_KEY = new r.Struct({
42
- flags: r.uint8,
43
- shift: r.uint16le,
44
- vkey: r.uint16le,
45
- text: this.KVK_STRING,
46
- bitmap: r.uint32le // always 00 00 00 00 for now
47
- });
48
- this.KVK_HEADER = new r.Struct({
49
- identifier: r.uint32le,
50
- version: r.uint32le,
51
- flags: r.uint8,
52
- associatedKeyboard: this.KVK_STRING,
53
- ansiFont: this.KVK_FONT,
54
- unicodeFont: this.KVK_FONT
55
- });
56
- this.KVK_FILE = new r.Struct({
57
- header: this.KVK_HEADER,
58
- keyCount: r.uint32le,
59
- keys: new r.Array(this.KVK_KEY, 'keyCount')
60
- });
61
- }
62
- }
63
- ;
64
- //# sourceMappingURL=kvk-file.js.map
1
+ !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]="0e7bdc3e-196a-5d13-9abe-2fbf92df4148")}catch(e){}}();
2
+ import * as r from 'restructure';
3
+ //
4
+ // Binary backing structures for .kvk format
5
+ // matching VisualKeyboardSaverBinary.pas
6
+ //
7
+ export const BUILDER_KVK_HEADER_IDENTIFIER = 0x464B564B; // 'KVKF', little-endian
8
+ export const KVK_HEADER_IDENTIFIER_BYTES = [0x4B, 0x56, 0x4B, 0x46];
9
+ export const BUILDER_KVK_HEADER_VERSION = 0x0600; // Keyman 6.0
10
+ ;
11
+ ;
12
+ export const BUILDER_KVK_FONT_Size = 8; // size of fixed elements of BUILDER_KVK_FONT
13
+ ;
14
+ ;
15
+ ;
16
+ export const BUILDER_KVK_KEY_Size = 9; // size of fixed elements of BUILDER_KVK_KEY
17
+ ;
18
+ ;
19
+ export const BUILDER_KVK_HEADER_Size = 9 + BUILDER_KVK_FONT_Size + BUILDER_KVK_FONT_Size; // size of fixed elements of BUILDER_KVK_HEADER
20
+ ;
21
+ export default class KVKFile {
22
+ KVK_HEADER;
23
+ KVK_KEY;
24
+ KVK_KEYS;
25
+ KVK_FONT;
26
+ KVK_FILE;
27
+ KVK_STRING;
28
+ constructor() {
29
+ //
30
+ // Binary restructure definitions matching VisualKeyboardSaverBinary.pas
31
+ // TODO: move binaries to separate kvk-file.ts
32
+ //
33
+ this.KVK_STRING = new r.Struct({
34
+ len: r.int16le,
35
+ str: new r.String(null, 'utf16le')
36
+ });
37
+ this.KVK_FONT = new r.Struct({
38
+ name: this.KVK_STRING,
39
+ size: r.int32le,
40
+ color: r.uint32le
41
+ });
42
+ this.KVK_KEY = new r.Struct({
43
+ flags: r.uint8,
44
+ shift: r.uint16le,
45
+ vkey: r.uint16le,
46
+ text: this.KVK_STRING,
47
+ bitmapSize: r.uint32le,
48
+ bitmapData: new r.Array(r.uint8, 'bitmapSize')
49
+ });
50
+ this.KVK_HEADER = new r.Struct({
51
+ identifier: r.uint32le,
52
+ version: r.uint32le,
53
+ flags: r.uint8,
54
+ associatedKeyboard: this.KVK_STRING,
55
+ ansiFont: this.KVK_FONT,
56
+ unicodeFont: this.KVK_FONT
57
+ });
58
+ this.KVK_FILE = new r.Struct({
59
+ header: this.KVK_HEADER,
60
+ keyCount: r.uint32le,
61
+ keys: new r.Array(this.KVK_KEY, 'keyCount')
62
+ });
63
+ }
64
+ }
65
+ ;
66
+ //# debugId=0e7bdc3e-196a-5d13-9abe-2fbf92df4148
67
+ //# sourceMappingURL=kvk-file.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"kvk-file.js","sourceRoot":"","sources":["../../../src/kvk/kvk-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,aAAa,CAAC;AACjC,EAAE;AACF,4CAA4C;AAC5C,yCAAyC;AACzC,EAAE;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG,UAAU,CAAC,CAAC,wBAAwB;AACjF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACpE,MAAM,CAAC,MAAM,0BAA0B,GAAM,MAAM,CAAC,CAAK,aAAa;AAKrE,CAAC;AAMD,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,CAAC,6CAA6C;AAKpF,CAAC;AAWD,CAAC;AAQD,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,CAAC,4CAA4C;AAOlF,CAAC;AASD,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAAG,qBAAqB,GAAG,qBAAqB,CAAC,CAAC,+CAA+C;AAMxI,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,OAAO;IACnB,UAAU,CAAM;IAChB,OAAO,CAAM;IACb,QAAQ,CAAM;IACd,QAAQ,CAAM;IACd,QAAQ,CAAM;IACd,UAAU,CAAM;IAEvB;QACE,EAAE;QACF,wEAAwE;QACxE,8CAA8C;QAC9C,EAAE;QAEF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC;YAC7B,GAAG,EAAE,CAAC,CAAC,OAAO;YACd,GAAG,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC;SACnC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC;YAC3B,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,IAAI,EAAE,CAAC,CAAC,OAAO;YACf,KAAK,EAAE,CAAC,CAAC,QAAQ;SAClB,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC;YAC1B,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,KAAK,EAAE,CAAC,CAAC,QAAQ;YACjB,IAAI,EAAE,CAAC,CAAC,QAAQ;YAChB,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,6BAA6B;SACjD,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC;YAC7B,UAAU,EAAE,CAAC,CAAC,QAAQ;YACtB,OAAO,EAAE,CAAC,CAAC,QAAQ;YACnB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,kBAAkB,EAAE,IAAI,CAAC,UAAU;YACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,QAAQ;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC;YAC3B,MAAM,EAAE,IAAI,CAAC,UAAU;YACvB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC;SAC5C,CAAC,CAAC;IAEL,CAAC;CACF;AAAA,CAAC"}
1
+ {"debug_id":"0e7bdc3e-196a-5d13-9abe-2fbf92df4148","file":"kvk-file.js","mappings":";AAAA,OAAO,KAAK,CAAC,MAAM,aAAa,CAAC;AACjC,EAAE;AACF,4CAA4C;AAC5C,yCAAyC;AACzC,EAAE;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG,UAAU,CAAC,CAAC,wBAAwB;AACjF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACpE,MAAM,CAAC,MAAM,0BAA0B,GAAM,MAAM,CAAC,CAAK,aAAa;AAKrE,CAAC;AAMD,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,CAAC,6CAA6C;AAKpF,CAAC;AAWD,CAAC;AASD,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,CAAC,4CAA4C;AAOlF,CAAC;AASD,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAAG,qBAAqB,GAAG,qBAAqB,CAAC,CAAC,+CAA+C;AAMxI,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,OAAO;IACnB,UAAU,CAAM;IAChB,OAAO,CAAM;IACb,QAAQ,CAAM;IACd,QAAQ,CAAM;IACd,QAAQ,CAAM;IACd,UAAU,CAAM;IAEvB;QACE,EAAE;QACF,wEAAwE;QACxE,8CAA8C;QAC9C,EAAE;QAEF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC;YAC7B,GAAG,EAAE,CAAC,CAAC,OAAO;YACd,GAAG,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC;SACnC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC;YAC3B,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,IAAI,EAAE,CAAC,CAAC,OAAO;YACf,KAAK,EAAE,CAAC,CAAC,QAAQ;SAClB,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC;YAC1B,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,KAAK,EAAE,CAAC,CAAC,QAAQ;YACjB,IAAI,EAAE,CAAC,CAAC,QAAQ;YAChB,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,UAAU,EAAE,CAAC,CAAC,QAAQ;YACtB,UAAU,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,YAAY,CAAC;SAC/C,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC;YAC7B,UAAU,EAAE,CAAC,CAAC,QAAQ;YACtB,OAAO,EAAE,CAAC,CAAC,QAAQ;YACnB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,kBAAkB,EAAE,IAAI,CAAC,UAAU;YACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,QAAQ;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC;YAC3B,MAAM,EAAE,IAAI,CAAC,UAAU;YACvB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC;SAC5C,CAAC,CAAC;IAEL,CAAC;CACF;AAAA,CAAC","names":[],"sourceRoot":"","sources":["../../../src/kvk/kvk-file.ts"],"version":3}
@@ -1,23 +1,26 @@
1
- import KVKSourceFile from './kvks-file.js';
2
- import { VisualKeyboard, VisualKeyboardShiftState } from './visual-keyboard.js';
3
- export default class KVKSFileReader {
4
- read(file: Uint8Array): KVKSourceFile;
5
- private cleanupFlags;
6
- /**
7
- * The only element that allows spaces is <key>. Remove
8
- * all other empty whitespace-only values.
9
- * @param root
10
- * @param source
11
- */
12
- private cleanupUnderscore;
13
- validate(source: KVKSourceFile, schemaBuffer: Uint8Array): void;
14
- transform(source: KVKSourceFile, invalidVkeys?: string[]): VisualKeyboard;
15
- /**
16
- * xml2js will not place single-entry objects into arrays.
17
- * Easiest way to fix this is to box them ourselves as needed
18
- * @param source KVKSourceFile
19
- */
20
- private boxArrays;
21
- kvksShiftToKvkShift(shift: string): VisualKeyboardShiftState;
22
- }
23
- //# sourceMappingURL=kvks-file-reader.d.ts.map
1
+ !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]="312e2e15-9b49-5e82-98b1-4d7caeff36b4")}catch(e){}}();
2
+ import KVKSourceFile from './kvks-file.js';
3
+ import { VisualKeyboard, VisualKeyboardShiftState } from './visual-keyboard.js';
4
+ export default class KVKSFileReader {
5
+ read(file: Uint8Array): KVKSourceFile;
6
+ private cleanupFlags;
7
+ /**
8
+ * The only element that allows spaces is <key>. Remove
9
+ * all other empty whitespace-only values.
10
+ * @param root
11
+ * @param source
12
+ */
13
+ private cleanupUnderscore;
14
+ validate(source: KVKSourceFile): void;
15
+ transform(source: KVKSourceFile, invalidVkeys?: string[]): VisualKeyboard;
16
+ private base64ToArray;
17
+ /**
18
+ * xml2js will not place single-entry objects into arrays.
19
+ * Easiest way to fix this is to box them ourselves as needed
20
+ * @param source KVKSourceFile
21
+ */
22
+ private boxArrays;
23
+ kvksShiftToKvkShift(shift: string): VisualKeyboardShiftState;
24
+ }
25
+ //# debugId=312e2e15-9b49-5e82-98b1-4d7caeff36b4
26
+ //# sourceMappingURL=kvks-file-reader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"kvks-file-reader.d.ts","sourceRoot":"","sources":["../../../src/kvk/kvks-file-reader.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,gBAAgB,CAAC;AAI3C,OAAO,EAAE,cAAc,EAAwG,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAItL,MAAM,CAAC,OAAO,OAAO,cAAc;IAC1B,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,aAAa;IA4B5C,OAAO,CAAC,YAAY;IAMpB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAoBlB,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,GAAG,IAAI;IAQ/D,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,cAAc;IAyDhF;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAYV,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,wBAAwB;CAWpE"}
1
+ {"debug_id":"312e2e15-9b49-5e82-98b1-4d7caeff36b4","file":"kvks-file-reader.d.ts","mappings":";AACA,OAAO,aAAa,MAAM,gBAAgB,CAAC;AAI3C,OAAO,EAAoB,cAAc,EAAwG,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAMxM,MAAM,CAAC,OAAO,OAAO,cAAc;IAC1B,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,aAAa;IAoC5C,OAAO,CAAC,YAAY;IAMpB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IA0BlB,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAOrC,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,cAAc;IA+DhF,OAAO,CAAC,aAAa;IASrB;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAYV,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,wBAAwB;CAWpE","names":[],"sourceRoot":"","sources":["../../../src/kvk/kvks-file-reader.ts"],"version":3}
@@ -1,151 +1,179 @@
1
- import * as xml2js from 'xml2js';
2
- import { default as AjvModule } from 'ajv';
3
- const Ajv = AjvModule.default; // The actual expected Ajv type.
4
- import { boxXmlArray } from '../util/util.js';
5
- import { VisualKeyboardLegalShiftStates } from './visual-keyboard.js';
6
- import { USVirtualKeyCodes } from '../consts/virtual-key-constants.js';
7
- import { BUILDER_KVK_HEADER_VERSION } from './kvk-file.js';
8
- export default class KVKSFileReader {
9
- read(file) {
10
- let source;
11
- const parser = new xml2js.Parser({
12
- explicitArray: false,
13
- mergeAttrs: false,
14
- includeWhiteChars: true,
15
- normalize: false,
16
- emptyTag: {}
17
- // Why "as any"? xml2js is broken:
18
- // https://github.com/Leonidas-from-XIV/node-xml2js/issues/648 means
19
- // that an old version of `emptyTag` is used which doesn't support
20
- // functions, but DefinitelyTyped is requiring use of function or a
21
- // string. See also notes at
22
- // https://github.com/DefinitelyTyped/DefinitelyTyped/pull/59259#issuecomment-1254405470
23
- // An alternative fix would be to pull xml2js directly from github
24
- // rather than using the version tagged on npmjs.com.
25
- });
26
- parser.parseString(file, (e, r) => { if (e) {
27
- throw e;
28
- } ; source = r; });
29
- if (source) {
30
- source = this.boxArrays(source);
31
- this.cleanupFlags(source);
32
- this.cleanupUnderscore('visualkeyboard', source.visualkeyboard);
33
- }
34
- return source;
35
- }
36
- cleanupFlags(source) {
37
- if (source.visualkeyboard?.header?.flags === '') {
38
- source.visualkeyboard.header.flags = {};
39
- }
40
- }
41
- /**
42
- * The only element that allows spaces is <key>. Remove
43
- * all other empty whitespace-only values.
44
- * @param root
45
- * @param source
46
- */
47
- cleanupUnderscore(root, source) {
48
- if (root != 'key') {
49
- if (source?.['_']?.trim() === '') {
50
- delete source['_'];
51
- }
52
- }
53
- for (let key of Object.keys(source)) {
54
- if (Array.isArray(source[key])) {
55
- for (let item of source[key]) {
56
- if (typeof (item) === 'object') {
57
- this.cleanupUnderscore(key, item);
58
- }
59
- }
60
- }
61
- else if (typeof source[key] === 'object') {
62
- this.cleanupUnderscore(key, source[key]);
63
- }
64
- }
65
- }
66
- validate(source, schemaBuffer) {
67
- const schema = JSON.parse(new TextDecoder().decode(schemaBuffer));
68
- const ajv = new Ajv();
69
- if (!ajv.validate(schema, source)) {
70
- throw new Error(ajv.errorsText());
71
- }
72
- }
73
- transform(source, invalidVkeys) {
74
- // NOTE: at this point, the xml should have been validated
75
- // and matched the schema result so we can assume properties exist
76
- let result = {
77
- header: {
78
- version: BUILDER_KVK_HEADER_VERSION,
79
- flags: 0,
80
- ansiFont: { name: "Arial", size: -12, color: 0xFF000008 },
81
- unicodeFont: { name: "Arial", size: -12, color: 0xFF000008 },
82
- associatedKeyboard: source.visualkeyboard?.header?.kbdname,
83
- underlyingLayout: source.visualkeyboard?.header?.layout,
84
- },
85
- keys: []
86
- };
87
- if (source.visualkeyboard?.header?.flags?.displayunderlying !== undefined) {
88
- result.header.flags |= 2 /* VisualKeyboardHeaderFlags.kvkhDisplayUnderlying */;
89
- }
90
- if (source.visualkeyboard?.header?.flags?.key102 !== undefined) {
91
- result.header.flags |= 1 /* VisualKeyboardHeaderFlags.kvkh102 */;
92
- }
93
- if (source.visualkeyboard?.header?.flags?.usealtgr !== undefined) {
94
- result.header.flags |= 8 /* VisualKeyboardHeaderFlags.kvkhAltGr */;
95
- }
96
- if (source.visualkeyboard?.header?.flags?.useunderlying !== undefined) {
97
- result.header.flags |= 4 /* VisualKeyboardHeaderFlags.kvkhUseUnderlying */;
98
- }
99
- for (let encoding of source.visualkeyboard.encoding) {
100
- let isUnicode = (encoding.$?.name == 'unicode'), font = isUnicode ? result.header.unicodeFont : result.header.ansiFont;
101
- font.name = encoding.$?.fontname;
102
- font.size = parseInt(encoding.$?.fontsize, 10);
103
- for (let layer of encoding.layer) {
104
- let shift = this.kvksShiftToKvkShift(layer.$?.shift);
105
- for (let sourceKey of layer.key) {
106
- let vkey = USVirtualKeyCodes[sourceKey.$?.vkey];
107
- if (!vkey) {
108
- if (typeof invalidVkeys !== 'undefined') {
109
- invalidVkeys.push(sourceKey.$?.vkey);
110
- }
111
- continue;
112
- }
113
- let key = {
114
- flags: isUnicode ? 2 /* VisualKeyboardKeyFlags.kvkkUnicode */ : 0,
115
- shift: shift,
116
- text: sourceKey._ ?? '',
117
- vkey: vkey
118
- };
119
- result.keys.push(key);
120
- }
121
- }
122
- }
123
- return result;
124
- }
125
- /**
126
- * xml2js will not place single-entry objects into arrays.
127
- * Easiest way to fix this is to box them ourselves as needed
128
- * @param source KVKSourceFile
129
- */
130
- boxArrays(source) {
131
- boxXmlArray(source.visualkeyboard, 'encoding');
132
- for (let encoding of source.visualkeyboard.encoding) {
133
- boxXmlArray(encoding, 'layer');
134
- for (let layer of encoding.layer) {
135
- boxXmlArray(layer, 'key');
136
- }
137
- }
138
- return source;
139
- }
140
- kvksShiftToKvkShift(shift) {
141
- shift = shift.toUpperCase();
142
- // TODO-LDML(lowpri): make a map of this?
143
- for (let state of VisualKeyboardLegalShiftStates) {
144
- if (state.name == shift) {
145
- return state.shift;
146
- }
147
- }
148
- return 0;
149
- }
150
- }
151
- //# sourceMappingURL=kvks-file-reader.js.map
1
+ !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]="1a55509d-c9dd-5b75-9449-1f491b14cb82")}catch(e){}}();
2
+ import * as xml2js from 'xml2js';
3
+ import { default as AjvModule } from 'ajv';
4
+ const Ajv = AjvModule.default; // The actual expected Ajv type.
5
+ import { boxXmlArray } from '../util/util.js';
6
+ import { DEFAULT_KVK_FONT, VisualKeyboardLegalShiftStates } from './visual-keyboard.js';
7
+ import { USVirtualKeyCodes } from '../consts/virtual-key-constants.js';
8
+ import { BUILDER_KVK_HEADER_VERSION, KVK_HEADER_IDENTIFIER_BYTES } from './kvk-file.js';
9
+ import Schemas from '../schemas.js';
10
+ export default class KVKSFileReader {
11
+ read(file) {
12
+ let source;
13
+ const parser = new xml2js.Parser({
14
+ explicitArray: false,
15
+ mergeAttrs: false,
16
+ includeWhiteChars: true,
17
+ normalize: false,
18
+ emptyTag: {}
19
+ // Why "as any"? xml2js is broken:
20
+ // https://github.com/Leonidas-from-XIV/node-xml2js/issues/648 means
21
+ // that an old version of `emptyTag` is used which doesn't support
22
+ // functions, but DefinitelyTyped is requiring use of function or a
23
+ // string. See also notes at
24
+ // https://github.com/DefinitelyTyped/DefinitelyTyped/pull/59259#issuecomment-1254405470
25
+ // An alternative fix would be to pull xml2js directly from github
26
+ // rather than using the version tagged on npmjs.com.
27
+ });
28
+ parser.parseString(file, (e, r) => {
29
+ if (e) {
30
+ if (file.byteLength > 4 && file.subarray(0, 3).every((v, i) => v == KVK_HEADER_IDENTIFIER_BYTES[i])) {
31
+ throw new Error('File appears to be a binary .kvk file', { cause: e });
32
+ }
33
+ throw e;
34
+ }
35
+ ;
36
+ source = r;
37
+ });
38
+ if (source) {
39
+ source = this.boxArrays(source);
40
+ this.cleanupFlags(source);
41
+ this.cleanupUnderscore('visualkeyboard', source.visualkeyboard);
42
+ }
43
+ return source;
44
+ }
45
+ cleanupFlags(source) {
46
+ if (source.visualkeyboard?.header?.flags === '') {
47
+ source.visualkeyboard.header.flags = {};
48
+ }
49
+ }
50
+ /**
51
+ * The only element that allows spaces is <key>. Remove
52
+ * all other empty whitespace-only values.
53
+ * @param root
54
+ * @param source
55
+ */
56
+ cleanupUnderscore(root, source) {
57
+ if (root != 'key') {
58
+ if (source?.['_']?.trim() === '') {
59
+ delete source['_'];
60
+ }
61
+ }
62
+ else {
63
+ // If key text is pure whitespace, replace with empty string,
64
+ // which matches kmcomp reader
65
+ if (source?.['_']?.match(/^( +)$/)) {
66
+ source['_'] = '';
67
+ }
68
+ }
69
+ for (let key of Object.keys(source)) {
70
+ if (Array.isArray(source[key])) {
71
+ for (let item of source[key]) {
72
+ if (typeof (item) === 'object') {
73
+ this.cleanupUnderscore(key, item);
74
+ }
75
+ }
76
+ }
77
+ else if (typeof source[key] === 'object') {
78
+ this.cleanupUnderscore(key, source[key]);
79
+ }
80
+ }
81
+ }
82
+ validate(source) {
83
+ const ajv = new Ajv();
84
+ if (!ajv.validate(Schemas.kvks, source)) {
85
+ throw new Error(ajv.errorsText());
86
+ }
87
+ }
88
+ transform(source, invalidVkeys) {
89
+ // NOTE: at this point, the xml should have been validated
90
+ // and matched the schema result so we can assume properties exist
91
+ let result = {
92
+ header: {
93
+ version: BUILDER_KVK_HEADER_VERSION,
94
+ flags: 0,
95
+ ansiFont: { ...DEFAULT_KVK_FONT },
96
+ unicodeFont: { ...DEFAULT_KVK_FONT },
97
+ associatedKeyboard: source.visualkeyboard?.header?.kbdname,
98
+ underlyingLayout: source.visualkeyboard?.header?.layout,
99
+ },
100
+ keys: []
101
+ };
102
+ if (source.visualkeyboard?.header?.flags?.displayunderlying !== undefined) {
103
+ result.header.flags |= 2 /* VisualKeyboardHeaderFlags.kvkhDisplayUnderlying */;
104
+ }
105
+ if (source.visualkeyboard?.header?.flags?.key102 !== undefined) {
106
+ result.header.flags |= 1 /* VisualKeyboardHeaderFlags.kvkh102 */;
107
+ }
108
+ if (source.visualkeyboard?.header?.flags?.usealtgr !== undefined) {
109
+ result.header.flags |= 8 /* VisualKeyboardHeaderFlags.kvkhAltGr */;
110
+ }
111
+ if (source.visualkeyboard?.header?.flags?.useunderlying !== undefined) {
112
+ result.header.flags |= 4 /* VisualKeyboardHeaderFlags.kvkhUseUnderlying */;
113
+ }
114
+ for (let encoding of source.visualkeyboard.encoding) {
115
+ let isUnicode = (encoding.$?.name == 'unicode'), font = isUnicode ? result.header.unicodeFont : result.header.ansiFont;
116
+ font.name = encoding.$?.fontname ?? DEFAULT_KVK_FONT.name;
117
+ font.size = parseInt(encoding.$?.fontsize ?? DEFAULT_KVK_FONT.size.toString(), 10);
118
+ for (let layer of encoding.layer) {
119
+ let shift = this.kvksShiftToKvkShift(layer.$?.shift);
120
+ for (let sourceKey of layer.key) {
121
+ let vkey = USVirtualKeyCodes[sourceKey.$?.vkey];
122
+ if (!vkey) {
123
+ if (typeof invalidVkeys !== 'undefined') {
124
+ invalidVkeys.push(sourceKey.$?.vkey);
125
+ }
126
+ continue;
127
+ }
128
+ let key = {
129
+ flags: (isUnicode ? 2 /* VisualKeyboardKeyFlags.kvkkUnicode */ : 0) |
130
+ (sourceKey.bitmap ? 1 /* VisualKeyboardKeyFlags.kvkkBitmap */ : 0),
131
+ shift: shift,
132
+ text: sourceKey.bitmap ? '' : (sourceKey._ ?? ''),
133
+ vkey: vkey
134
+ };
135
+ if (sourceKey.bitmap) {
136
+ key.bitmap = this.base64ToArray(sourceKey.bitmap);
137
+ }
138
+ result.keys.push(key);
139
+ }
140
+ }
141
+ }
142
+ return result;
143
+ }
144
+ base64ToArray(source) {
145
+ const binary = atob(source);
146
+ const bytes = new Uint8Array(binary.length);
147
+ for (let i = 0; i < binary.length; i++) {
148
+ bytes[i] = binary.charCodeAt(i);
149
+ }
150
+ return bytes;
151
+ }
152
+ /**
153
+ * xml2js will not place single-entry objects into arrays.
154
+ * Easiest way to fix this is to box them ourselves as needed
155
+ * @param source KVKSourceFile
156
+ */
157
+ boxArrays(source) {
158
+ boxXmlArray(source.visualkeyboard, 'encoding');
159
+ for (let encoding of source.visualkeyboard.encoding) {
160
+ boxXmlArray(encoding, 'layer');
161
+ for (let layer of encoding.layer) {
162
+ boxXmlArray(layer, 'key');
163
+ }
164
+ }
165
+ return source;
166
+ }
167
+ kvksShiftToKvkShift(shift) {
168
+ shift = shift.toUpperCase();
169
+ // TODO-LDML(lowpri): make a map of this?
170
+ for (let state of VisualKeyboardLegalShiftStates) {
171
+ if (state.name == shift) {
172
+ return state.shift;
173
+ }
174
+ }
175
+ return 0;
176
+ }
177
+ }
178
+ //# debugId=1a55509d-c9dd-5b75-9449-1f491b14cb82
179
+ //# sourceMappingURL=kvks-file-reader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"kvks-file-reader.js","sourceRoot":"","sources":["../../../src/kvk/kvks-file-reader.ts"],"names":[],"mappings":"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"}
1
+ {"debug_id":"1a55509d-c9dd-5b75-9449-1f491b14cb82","file":"kvks-file-reader.js","mappings":"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","names":[],"sourceRoot":"","sources":["../../../src/kvk/kvks-file-reader.ts"],"version":3}
@@ -1,6 +1,9 @@
1
- import { VisualKeyboard, VisualKeyboardShiftState } from './visual-keyboard.js';
2
- export default class KVKSFileWriter {
3
- write(vk: VisualKeyboard): string;
4
- kvkShiftToKvksShift(shift: VisualKeyboardShiftState): string;
5
- }
6
- //# sourceMappingURL=kvks-file-writer.d.ts.map
1
+ !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]="d03fe555-9acb-5e03-bcc0-880ce5e99172")}catch(e){}}();
2
+ import { VisualKeyboard, VisualKeyboardShiftState } from './visual-keyboard.js';
3
+ export default class KVKSFileWriter {
4
+ write(vk: VisualKeyboard): string;
5
+ private arrayToBase64;
6
+ kvkShiftToKvksShift(shift: VisualKeyboardShiftState): string;
7
+ }
8
+ //# debugId=d03fe555-9acb-5e03-bcc0-880ce5e99172
9
+ //# sourceMappingURL=kvks-file-writer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"kvks-file-writer.d.ts","sourceRoot":"","sources":["../../../src/kvk/kvks-file-writer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAqF,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGnK,MAAM,CAAC,OAAO,OAAO,cAAc;IAC1B,KAAK,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM;IAgGjC,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,GAAG,MAAM;CASpE"}
1
+ {"debug_id":"d03fe555-9acb-5e03-bcc0-880ce5e99172","file":"kvks-file-writer.d.ts","mappings":";AAEA,OAAO,EAAE,cAAc,EAAqF,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGnK,MAAM,CAAC,OAAO,OAAO,cAAc;IAC1B,KAAK,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM;IAmGxC,OAAO,CAAC,aAAa;IAMd,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,GAAG,MAAM;CASpE","names":[],"sourceRoot":"","sources":["../../../src/kvk/kvks-file-writer.ts"],"version":3}