@keymanapp/common-types 17.0.85-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 (248) hide show
  1. package/build/src/consts/virtual-key-constants.d.ts +131 -0
  2. package/build/src/consts/virtual-key-constants.d.ts.map +1 -0
  3. package/build/src/consts/virtual-key-constants.js +245 -0
  4. package/build/src/consts/virtual-key-constants.js.map +1 -0
  5. package/build/src/import/techpreview/cldr_info.json +5 -0
  6. package/build/src/import/techpreview/keys-Latn-implied.xml +80 -0
  7. package/build/src/import/techpreview/keys-Zyyy-currency.xml +22 -0
  8. package/build/src/import/techpreview/keys-Zyyy-punctuation.xml +46 -0
  9. package/build/src/keyman-touch-layout/keyman-touch-layout-file-reader.d.ts +7 -0
  10. package/build/src/keyman-touch-layout/keyman-touch-layout-file-reader.d.ts.map +1 -0
  11. package/build/src/keyman-touch-layout/keyman-touch-layout-file-reader.js +74 -0
  12. package/build/src/keyman-touch-layout/keyman-touch-layout-file-reader.js.map +1 -0
  13. package/build/src/keyman-touch-layout/keyman-touch-layout-file-writer.d.ts +24 -0
  14. package/build/src/keyman-touch-layout/keyman-touch-layout-file-writer.d.ts.map +1 -0
  15. package/build/src/keyman-touch-layout/keyman-touch-layout-file-writer.js +75 -0
  16. package/build/src/keyman-touch-layout/keyman-touch-layout-file-writer.js.map +1 -0
  17. package/build/src/keyman-touch-layout/keyman-touch-layout-file.d.ts +76 -0
  18. package/build/src/keyman-touch-layout/keyman-touch-layout-file.d.ts.map +1 -0
  19. package/build/src/keyman-touch-layout/keyman-touch-layout-file.js +26 -0
  20. package/build/src/keyman-touch-layout/keyman-touch-layout-file.js.map +1 -0
  21. package/build/src/keyman-touch-layout.clean.spec.json +170 -0
  22. package/build/src/kmx/element-string.d.ts +19 -0
  23. package/build/src/kmx/element-string.d.ts.map +1 -0
  24. package/build/src/kmx/element-string.js +72 -0
  25. package/build/src/kmx/element-string.js.map +1 -0
  26. package/build/src/kmx/kmx-builder.d.ts +77 -0
  27. package/build/src/kmx/kmx-builder.d.ts.map +1 -0
  28. package/build/src/kmx/kmx-builder.js +193 -0
  29. package/build/src/kmx/kmx-builder.js.map +1 -0
  30. package/build/src/kmx/kmx-plus-builder/build-disp.d.ts +18 -0
  31. package/build/src/kmx/kmx-plus-builder/build-disp.d.ts.map +1 -0
  32. package/build/src/kmx/kmx-plus-builder/build-disp.js +25 -0
  33. package/build/src/kmx/kmx-plus-builder/build-disp.js.map +1 -0
  34. package/build/src/kmx/kmx-plus-builder/build-elem.d.ts +26 -0
  35. package/build/src/kmx/kmx-plus-builder/build-elem.d.ts.map +1 -0
  36. package/build/src/kmx/kmx-plus-builder/build-elem.js +78 -0
  37. package/build/src/kmx/kmx-plus-builder/build-elem.js.map +1 -0
  38. package/build/src/kmx/kmx-plus-builder/build-keys.d.ts +60 -0
  39. package/build/src/kmx/kmx-plus-builder/build-keys.d.ts.map +1 -0
  40. package/build/src/kmx/kmx-plus-builder/build-keys.js +107 -0
  41. package/build/src/kmx/kmx-plus-builder/build-keys.js.map +1 -0
  42. package/build/src/kmx/kmx-plus-builder/build-layr.d.ts +54 -0
  43. package/build/src/kmx/kmx-plus-builder/build-layr.d.ts.map +1 -0
  44. package/build/src/kmx/kmx-plus-builder/build-layr.js +99 -0
  45. package/build/src/kmx/kmx-plus-builder/build-layr.js.map +1 -0
  46. package/build/src/kmx/kmx-plus-builder/build-list.d.ts +34 -0
  47. package/build/src/kmx/kmx-plus-builder/build-list.d.ts.map +1 -0
  48. package/build/src/kmx/kmx-plus-builder/build-list.js +62 -0
  49. package/build/src/kmx/kmx-plus-builder/build-list.js.map +1 -0
  50. package/build/src/kmx/kmx-plus-builder/build-loca.d.ts +12 -0
  51. package/build/src/kmx/kmx-plus-builder/build-loca.d.ts.map +1 -0
  52. package/build/src/kmx/kmx-plus-builder/build-loca.js +20 -0
  53. package/build/src/kmx/kmx-plus-builder/build-loca.js.map +1 -0
  54. package/build/src/kmx/kmx-plus-builder/build-meta.d.ts +17 -0
  55. package/build/src/kmx/kmx-plus-builder/build-meta.d.ts.map +1 -0
  56. package/build/src/kmx/kmx-plus-builder/build-meta.js +21 -0
  57. package/build/src/kmx/kmx-plus-builder/build-meta.js.map +1 -0
  58. package/build/src/kmx/kmx-plus-builder/build-name.d.ts +12 -0
  59. package/build/src/kmx/kmx-plus-builder/build-name.d.ts.map +1 -0
  60. package/build/src/kmx/kmx-plus-builder/build-name.js +23 -0
  61. package/build/src/kmx/kmx-plus-builder/build-name.js.map +1 -0
  62. package/build/src/kmx/kmx-plus-builder/build-ordr.d.ts +18 -0
  63. package/build/src/kmx/kmx-plus-builder/build-ordr.d.ts.map +1 -0
  64. package/build/src/kmx/kmx-plus-builder/build-ordr.js +27 -0
  65. package/build/src/kmx/kmx-plus-builder/build-ordr.js.map +1 -0
  66. package/build/src/kmx/kmx-plus-builder/build-sect.d.ts +16 -0
  67. package/build/src/kmx/kmx-plus-builder/build-sect.d.ts.map +1 -0
  68. package/build/src/kmx/kmx-plus-builder/build-sect.js +14 -0
  69. package/build/src/kmx/kmx-plus-builder/build-sect.js.map +1 -0
  70. package/build/src/kmx/kmx-plus-builder/build-strs.d.ts +18 -0
  71. package/build/src/kmx/kmx-plus-builder/build-strs.d.ts.map +1 -0
  72. package/build/src/kmx/kmx-plus-builder/build-strs.js +34 -0
  73. package/build/src/kmx/kmx-plus-builder/build-strs.js.map +1 -0
  74. package/build/src/kmx/kmx-plus-builder/build-tran.d.ts +20 -0
  75. package/build/src/kmx/kmx-plus-builder/build-tran.d.ts.map +1 -0
  76. package/build/src/kmx/kmx-plus-builder/build-tran.js +30 -0
  77. package/build/src/kmx/kmx-plus-builder/build-tran.js.map +1 -0
  78. package/build/src/kmx/kmx-plus-builder/build-vkey.d.ts +16 -0
  79. package/build/src/kmx/kmx-plus-builder/build-vkey.d.ts.map +1 -0
  80. package/build/src/kmx/kmx-plus-builder/build-vkey.js +23 -0
  81. package/build/src/kmx/kmx-plus-builder/build-vkey.js.map +1 -0
  82. package/build/src/kmx/kmx-plus-builder/builder-section.d.ts +6 -0
  83. package/build/src/kmx/kmx-plus-builder/builder-section.d.ts.map +1 -0
  84. package/build/src/kmx/kmx-plus-builder/builder-section.js +3 -0
  85. package/build/src/kmx/kmx-plus-builder/builder-section.js.map +1 -0
  86. package/build/src/kmx/kmx-plus-builder/kmx-plus-builder.d.ts +47 -0
  87. package/build/src/kmx/kmx-plus-builder/kmx-plus-builder.d.ts.map +1 -0
  88. package/build/src/kmx/kmx-plus-builder/kmx-plus-builder.js +143 -0
  89. package/build/src/kmx/kmx-plus-builder/kmx-plus-builder.js.map +1 -0
  90. package/build/src/kmx/kmx-plus.d.ts +259 -0
  91. package/build/src/kmx/kmx-plus.d.ts.map +1 -0
  92. package/build/src/kmx/kmx-plus.js +594 -0
  93. package/build/src/kmx/kmx-plus.js.map +1 -0
  94. package/build/src/kmx/kmx.d.ts +166 -0
  95. package/build/src/kmx/kmx.d.ts.map +1 -0
  96. package/build/src/kmx/kmx.js +271 -0
  97. package/build/src/kmx/kmx.js.map +1 -0
  98. package/build/src/kmx/string-list.d.ts +29 -0
  99. package/build/src/kmx/string-list.d.ts.map +1 -0
  100. package/build/src/kmx/string-list.js +75 -0
  101. package/build/src/kmx/string-list.js.map +1 -0
  102. package/build/src/kpj/keyman-developer-project.d.ts +58 -0
  103. package/build/src/kpj/keyman-developer-project.d.ts.map +1 -0
  104. package/build/src/kpj/keyman-developer-project.js +141 -0
  105. package/build/src/kpj/keyman-developer-project.js.map +1 -0
  106. package/build/src/kpj/kpj-file-reader.d.ts +17 -0
  107. package/build/src/kpj/kpj-file-reader.d.ts.map +1 -0
  108. package/build/src/kpj/kpj-file-reader.js +92 -0
  109. package/build/src/kpj/kpj-file-reader.js.map +1 -0
  110. package/build/src/kpj/kpj-file.d.ts +39 -0
  111. package/build/src/kpj/kpj-file.d.ts.map +1 -0
  112. package/build/src/kpj/kpj-file.js +11 -0
  113. package/build/src/kpj/kpj-file.js.map +1 -0
  114. package/build/src/kpj.schema.json +127 -0
  115. package/build/src/kvk/kvk-file-reader.d.ts +5 -0
  116. package/build/src/kvk/kvk-file-reader.d.ts.map +1 -0
  117. package/build/src/kvk/kvk-file-reader.js +35 -0
  118. package/build/src/kvk/kvk-file-reader.js.map +1 -0
  119. package/build/src/kvk/kvk-file-writer.d.ts +20 -0
  120. package/build/src/kvk/kvk-file-writer.d.ts.map +1 -0
  121. package/build/src/kvk/kvk-file-writer.js +67 -0
  122. package/build/src/kvk/kvk-file-writer.js.map +1 -0
  123. package/build/src/kvk/kvk-file.d.ts +64 -0
  124. package/build/src/kvk/kvk-file.d.ts.map +1 -0
  125. package/build/src/kvk/kvk-file.js +63 -0
  126. package/build/src/kvk/kvk-file.js.map +1 -0
  127. package/build/src/kvk/kvks-file-reader.d.ts +30 -0
  128. package/build/src/kvk/kvks-file-reader.d.ts.map +1 -0
  129. package/build/src/kvk/kvks-file-reader.js +154 -0
  130. package/build/src/kvk/kvks-file-reader.js.map +1 -0
  131. package/build/src/kvk/kvks-file-writer.d.ts +6 -0
  132. package/build/src/kvk/kvks-file-writer.d.ts.map +1 -0
  133. package/build/src/kvk/kvks-file-writer.js +99 -0
  134. package/build/src/kvk/kvks-file-writer.js.map +1 -0
  135. package/build/src/kvk/kvks-file.d.ts +44 -0
  136. package/build/src/kvk/kvks-file.d.ts.map +1 -0
  137. package/build/src/kvk/kvks-file.js +10 -0
  138. package/build/src/kvk/kvks-file.js.map +1 -0
  139. package/build/src/kvk/visual-keyboard.d.ts +35 -0
  140. package/build/src/kvk/visual-keyboard.d.ts.map +1 -0
  141. package/build/src/kvk/visual-keyboard.js +61 -0
  142. package/build/src/kvk/visual-keyboard.js.map +1 -0
  143. package/build/src/kvks.schema.json +182 -0
  144. package/build/src/ldml-keyboard/ldml-keyboard-testdata-xml.d.ts +56 -0
  145. package/build/src/ldml-keyboard/ldml-keyboard-testdata-xml.d.ts.map +1 -0
  146. package/build/src/ldml-keyboard/ldml-keyboard-testdata-xml.js +20 -0
  147. package/build/src/ldml-keyboard/ldml-keyboard-testdata-xml.js.map +1 -0
  148. package/build/src/ldml-keyboard/ldml-keyboard-xml-reader.d.ts +91 -0
  149. package/build/src/ldml-keyboard/ldml-keyboard-xml-reader.d.ts.map +1 -0
  150. package/build/src/ldml-keyboard/ldml-keyboard-xml-reader.js +370 -0
  151. package/build/src/ldml-keyboard/ldml-keyboard-xml-reader.js.map +1 -0
  152. package/build/src/ldml-keyboard/ldml-keyboard-xml.d.ts +143 -0
  153. package/build/src/ldml-keyboard/ldml-keyboard-xml.d.ts.map +1 -0
  154. package/build/src/ldml-keyboard/ldml-keyboard-xml.js +34 -0
  155. package/build/src/ldml-keyboard/ldml-keyboard-xml.js.map +1 -0
  156. package/build/src/ldml-keyboard.schema.json +634 -0
  157. package/build/src/ldml-keyboardtest.schema.json +221 -0
  158. package/build/src/main.d.ts +21 -0
  159. package/build/src/main.d.ts.map +1 -0
  160. package/build/src/main.js +20 -0
  161. package/build/src/main.js.map +1 -0
  162. package/build/src/util/common-events.d.ts +49 -0
  163. package/build/src/util/common-events.d.ts.map +1 -0
  164. package/build/src/util/common-events.js +29 -0
  165. package/build/src/util/common-events.js.map +1 -0
  166. package/build/src/util/compiler-interfaces.d.ts +51 -0
  167. package/build/src/util/compiler-interfaces.d.ts.map +1 -0
  168. package/build/src/util/compiler-interfaces.js +33 -0
  169. package/build/src/util/compiler-interfaces.js.map +1 -0
  170. package/build/src/util/util.d.ts +17 -0
  171. package/build/src/util/util.d.ts.map +1 -0
  172. package/build/src/util/util.js +67 -0
  173. package/build/src/util/util.js.map +1 -0
  174. package/build/tsconfig.tsbuildinfo +1 -0
  175. package/build.sh +86 -0
  176. package/package.json +58 -0
  177. package/src/consts/virtual-key-constants.ts +257 -0
  178. package/src/keyman-touch-layout/keyman-touch-layout-file-reader.ts +81 -0
  179. package/src/keyman-touch-layout/keyman-touch-layout-file-writer.ts +84 -0
  180. package/src/keyman-touch-layout/keyman-touch-layout-file.ts +87 -0
  181. package/src/kmx/element-string.ts +79 -0
  182. package/src/kmx/kmx-builder.ts +287 -0
  183. package/src/kmx/kmx-plus-builder/build-disp.ts +46 -0
  184. package/src/kmx/kmx-plus-builder/build-elem.ts +103 -0
  185. package/src/kmx/kmx-plus-builder/build-keys.ts +175 -0
  186. package/src/kmx/kmx-plus-builder/build-layr.ts +154 -0
  187. package/src/kmx/kmx-plus-builder/build-list.ts +95 -0
  188. package/src/kmx/kmx-plus-builder/build-loca.ts +34 -0
  189. package/src/kmx/kmx-plus-builder/build-meta.ts +37 -0
  190. package/src/kmx/kmx-plus-builder/build-name.ts +37 -0
  191. package/src/kmx/kmx-plus-builder/build-ordr.ts +45 -0
  192. package/src/kmx/kmx-plus-builder/build-sect.ts +31 -0
  193. package/src/kmx/kmx-plus-builder/build-strs.ts +58 -0
  194. package/src/kmx/kmx-plus-builder/build-tran.ts +50 -0
  195. package/src/kmx/kmx-plus-builder/build-vkey.ts +43 -0
  196. package/src/kmx/kmx-plus-builder/builder-section.ts +6 -0
  197. package/src/kmx/kmx-plus-builder/kmx-plus-builder.ts +190 -0
  198. package/src/kmx/kmx-plus.ts +692 -0
  199. package/src/kmx/kmx.ts +360 -0
  200. package/src/kmx/string-list.ts +74 -0
  201. package/src/kpj/keyman-developer-project.ts +155 -0
  202. package/src/kpj/kpj-file-reader.ts +103 -0
  203. package/src/kpj/kpj-file.ts +52 -0
  204. package/src/kvk/kvk-file-reader.ts +34 -0
  205. package/src/kvk/kvk-file-writer.ts +72 -0
  206. package/src/kvk/kvk-file.ts +122 -0
  207. package/src/kvk/kvks-file-reader.ts +164 -0
  208. package/src/kvk/kvks-file-writer.ts +113 -0
  209. package/src/kvk/kvks-file.ts +53 -0
  210. package/src/kvk/visual-keyboard.ts +80 -0
  211. package/src/ldml-keyboard/ldml-keyboard-testdata-xml.ts +74 -0
  212. package/src/ldml-keyboard/ldml-keyboard-xml-reader.ts +387 -0
  213. package/src/ldml-keyboard/ldml-keyboard-xml.ts +177 -0
  214. package/src/main.ts +27 -0
  215. package/src/restructure.d.ts +2 -0
  216. package/src/util/common-events.ts +50 -0
  217. package/src/util/compiler-interfaces.ts +54 -0
  218. package/src/util/util.ts +68 -0
  219. package/test/fixtures/import-minimal.xml +8 -0
  220. package/test/fixtures/import-minimal1.xml +11 -0
  221. package/test/fixtures/import-minimal2.xml +11 -0
  222. package/test/fixtures/import-symbols.xml +13 -0
  223. package/test/fixtures/invalid-conforms-to.xml +19 -0
  224. package/test/fixtures/invalid-import-base.xml +16 -0
  225. package/test/fixtures/invalid-import-path.xml +16 -0
  226. package/test/fixtures/invalid-import-readfail.xml +16 -0
  227. package/test/fixtures/invalid-import-wrongroot.xml +16 -0
  228. package/test/fixtures/invalid-structure-per-dtd.xml +8 -0
  229. package/test/fixtures/keyman-touch-layout/khmer_angkor.keyman-touch-layout +1950 -0
  230. package/test/fixtures/keyman-touch-layout/legacy.keyman-touch-layout +36 -0
  231. package/test/fixtures/kpj/khmer_angkor.kpj +187 -0
  232. package/test/fixtures/kvk/khmer_angkor.kvk +0 -0
  233. package/test/fixtures/kvk/khmer_angkor.kvks +206 -0
  234. package/test/fixtures/test-fr.xml +22 -0
  235. package/test/helpers/index.ts +39 -0
  236. package/test/helpers/reader-callback-test.ts +199 -0
  237. package/test/keyman-touch-layout/test-keyman-touch-layout-file-reader.ts +71 -0
  238. package/test/keyman-touch-layout/test-keyman-touch-layout-round-trip.ts +35 -0
  239. package/test/kpj/test-kpj-file-reader.ts +123 -0
  240. package/test/kvk/test-kvk-file.ts +15 -0
  241. package/test/kvk/test-kvk-round-trip.ts +87 -0
  242. package/test/kvk/test-kvk-utils.ts +24 -0
  243. package/test/kvk/test-kvks-file.ts +45 -0
  244. package/test/ldml-keyboard/test-ldml-keyboard-testdata-reader.ts +51 -0
  245. package/test/ldml-keyboard/test-ldml-keyboard-xml-reader.ts +131 -0
  246. package/test/tsconfig.json +21 -0
  247. package/test/util/test-unescape.ts +38 -0
  248. package/tsconfig.json +17 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder-section.d.ts","sourceRoot":"","sources":["../../../../src/kmx/kmx-plus-builder/builder-section.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,3 @@
1
+ ;
2
+ export {};
3
+ //# sourceMappingURL=builder-section.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder-section.js","sourceRoot":"","sources":["../../../../src/kmx/kmx-plus-builder/builder-section.ts"],"names":[],"mappings":"AAKA,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { KMXPlusFile } from "../kmx-plus.js";
2
+ import { BUILDER_SECT } from './build-sect.js';
3
+ import { BUILDER_DISP } from './build-disp.js';
4
+ import { BUILDER_ELEM } from './build-elem.js';
5
+ import { BUILDER_KEYS } from './build-keys.js';
6
+ import { BUILDER_LAYR } from './build-layr.js';
7
+ import { BUILDER_LIST } from './build-list.js';
8
+ import { BUILDER_LOCA } from './build-loca.js';
9
+ import { BUILDER_META } from './build-meta.js';
10
+ import { BUILDER_NAME } from './build-name.js';
11
+ import { BUILDER_ORDR } from './build-ordr.js';
12
+ import { BUILDER_STRS } from './build-strs.js';
13
+ import { BUILDER_TRAN } from './build-tran.js';
14
+ import { BUILDER_VKEY } from './build-vkey.js';
15
+ type BUILDER_BKSP = BUILDER_TRAN;
16
+ type BUILDER_FINL = BUILDER_TRAN;
17
+ type SectionBuilders = {
18
+ sect?: BUILDER_SECT;
19
+ bksp?: BUILDER_BKSP;
20
+ disp?: BUILDER_DISP;
21
+ elem?: BUILDER_ELEM;
22
+ finl?: BUILDER_FINL;
23
+ keys?: BUILDER_KEYS;
24
+ layr?: BUILDER_LAYR;
25
+ list?: BUILDER_LIST;
26
+ loca?: BUILDER_LOCA;
27
+ meta?: BUILDER_META;
28
+ name?: BUILDER_NAME;
29
+ ordr?: BUILDER_ORDR;
30
+ strs?: BUILDER_STRS;
31
+ tran?: BUILDER_TRAN;
32
+ vkey?: BUILDER_VKEY;
33
+ };
34
+ export default class KMXPlusBuilder {
35
+ private file;
36
+ sect: SectionBuilders;
37
+ constructor(file: KMXPlusFile, _writeDebug: boolean);
38
+ compile(): Uint8Array;
39
+ private build;
40
+ private finalize_sect;
41
+ private finalize_sect_item;
42
+ private emitSection;
43
+ private emitStrings;
44
+ private emitElements;
45
+ }
46
+ export {};
47
+ //# sourceMappingURL=kmx-plus-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kmx-plus-builder.d.ts","sourceRoot":"","sources":["../../../../src/kmx/kmx-plus-builder/kmx-plus-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,OAAO,EAAE,YAAY,EAAc,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAc,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAc,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAc,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAc,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAc,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAc,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAc,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAc,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAc,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAc,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAc,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAc,MAAM,iBAAiB,CAAC;AAE3D,KAAK,YAAY,GAAG,YAAY,CAAC;AACjC,KAAK,YAAY,GAAG,YAAY,CAAC;AAEjC,KAAK,eAAe,GAAG;IAErB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC,OAAO,CAAC,IAAI,CAAc;IAG1B,IAAI,EAAG,eAAe,CAEpB;gBAEU,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO;IAK5C,OAAO,IAAI,UAAU;IA0B5B,OAAO,CAAC,KAAK;IA+Bb,OAAO,CAAC,aAAa;IAkCrB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,YAAY;CAWrB"}
@@ -0,0 +1,143 @@
1
+ import * as r from 'restructure';
2
+ import { constants } from '@keymanapp/ldml-keyboard-constants';
3
+ import { build_sect } from './build-sect.js';
4
+ import { build_disp } from './build-disp.js';
5
+ import { build_elem } from './build-elem.js';
6
+ import { build_keys } from './build-keys.js';
7
+ import { build_layr } from './build-layr.js';
8
+ import { build_list } from './build-list.js';
9
+ import { build_loca } from './build-loca.js';
10
+ import { build_meta } from './build-meta.js';
11
+ import { build_name } from './build-name.js';
12
+ import { build_ordr } from './build-ordr.js';
13
+ import { build_strs } from './build-strs.js';
14
+ import { build_tran } from './build-tran.js';
15
+ import { build_vkey } from './build-vkey.js';
16
+ export default class KMXPlusBuilder {
17
+ file;
18
+ //private writeDebug: boolean;
19
+ sect = {};
20
+ constructor(file, _writeDebug) {
21
+ this.file = file;
22
+ //this.writeDebug = _writeDebug;
23
+ }
24
+ compile() {
25
+ const fileSize = this.build();
26
+ let file = new Uint8Array(fileSize);
27
+ this.emitSection(file, this.file.COMP_PLUS_SECT, this.sect.sect);
28
+ // Keep the rest of these in order.
29
+ this.emitSection(file, this.file.COMP_PLUS_BKSP, this.sect.bksp);
30
+ this.emitSection(file, this.file.COMP_PLUS_DISP, this.sect.disp);
31
+ this.emitSection(file, this.file.COMP_PLUS_ELEM, this.sect.elem);
32
+ this.emitElements(file);
33
+ this.emitSection(file, this.file.COMP_PLUS_FINL, this.sect.finl);
34
+ this.emitSection(file, this.file.COMP_PLUS_KEYS, this.sect.keys);
35
+ this.emitSection(file, this.file.COMP_PLUS_LAYR, this.sect.layr);
36
+ this.emitSection(file, this.file.COMP_PLUS_LIST, this.sect.list);
37
+ this.emitSection(file, this.file.COMP_PLUS_LOCA, this.sect.loca);
38
+ this.emitSection(file, this.file.COMP_PLUS_META, this.sect.meta);
39
+ this.emitSection(file, this.file.COMP_PLUS_NAME, this.sect.name);
40
+ this.emitSection(file, this.file.COMP_PLUS_ORDR, this.sect.ordr);
41
+ this.emitSection(file, this.file.COMP_PLUS_STRS, this.sect.strs);
42
+ this.emitStrings(file);
43
+ this.emitSection(file, this.file.COMP_PLUS_TRAN, this.sect.tran);
44
+ this.emitSection(file, this.file.COMP_PLUS_VKEY, this.sect.vkey);
45
+ return file;
46
+ }
47
+ build() {
48
+ // Required sections: sect, strs, loca, meta
49
+ // We must prepare the strs, list, and elem sections early so that other sections can
50
+ // reference them. However, they will be emitted in alpha order.
51
+ this.sect.strs = build_strs(this.file.kmxplus.strs);
52
+ this.sect.list = build_list(this.file.kmxplus.list, this.sect.strs);
53
+ this.sect.elem = build_elem(this.file.kmxplus.elem, this.sect.strs);
54
+ const build_bksp = build_tran;
55
+ const build_finl = build_tran;
56
+ this.sect.bksp = build_bksp(this.file.kmxplus.bksp, this.sect.strs, this.sect.elem);
57
+ this.sect.disp = build_disp(this.file.kmxplus, this.sect.strs);
58
+ this.sect.finl = build_finl(this.file.kmxplus.finl, this.sect.strs, this.sect.elem);
59
+ this.sect.keys = build_keys(this.file.kmxplus, this.sect.strs, this.sect.list);
60
+ this.sect.layr = build_layr(this.file.kmxplus, this.sect.strs, this.sect.list);
61
+ this.sect.loca = build_loca(this.file.kmxplus, this.sect.strs);
62
+ this.sect.meta = build_meta(this.file.kmxplus, this.sect.strs);
63
+ this.sect.name = build_name(this.file.kmxplus, this.sect.strs);
64
+ this.sect.ordr = build_ordr(this.file.kmxplus, this.sect.strs, this.sect.elem);
65
+ this.sect.tran = build_tran(this.file.kmxplus.tran, this.sect.strs, this.sect.elem);
66
+ this.sect.vkey = build_vkey(this.file.kmxplus);
67
+ // Finalize the sect (index) section
68
+ this.sect.sect = build_sect();
69
+ this.finalize_sect(); // must be done last
70
+ return this.sect.sect.total;
71
+ }
72
+ finalize_sect() {
73
+ // 'sect' section
74
+ this.sect.sect.count = 0;
75
+ Object.keys(constants.section).forEach((sectstr) => {
76
+ const sect = constants.section[sectstr];
77
+ if (this.sect[sect] && sect !== 'sect') {
78
+ this.sect.sect.count++;
79
+ }
80
+ });
81
+ this.sect.sect.size = constants.length_sect + constants.length_sect_item * this.sect.sect.count;
82
+ let offset = this.sect.sect.size;
83
+ // Note: in order! Everyone's here except 'sect' which is at offset 0
84
+ offset = this.finalize_sect_item(this.sect.bksp, offset);
85
+ offset = this.finalize_sect_item(this.sect.disp, offset);
86
+ offset = this.finalize_sect_item(this.sect.elem, offset);
87
+ offset = this.finalize_sect_item(this.sect.finl, offset);
88
+ offset = this.finalize_sect_item(this.sect.keys, offset);
89
+ offset = this.finalize_sect_item(this.sect.layr, offset);
90
+ offset = this.finalize_sect_item(this.sect.list, offset);
91
+ offset = this.finalize_sect_item(this.sect.loca, offset);
92
+ offset = this.finalize_sect_item(this.sect.meta, offset);
93
+ offset = this.finalize_sect_item(this.sect.name, offset);
94
+ offset = this.finalize_sect_item(this.sect.ordr, offset);
95
+ offset = this.finalize_sect_item(this.sect.strs, offset);
96
+ offset = this.finalize_sect_item(this.sect.tran, offset);
97
+ offset = this.finalize_sect_item(this.sect.vkey, offset);
98
+ this.sect.sect.total = offset;
99
+ }
100
+ finalize_sect_item(sect, offset) {
101
+ if (!sect) {
102
+ // Don't include null sections
103
+ return offset;
104
+ }
105
+ sect._offset = offset;
106
+ this.sect.sect.items.push({ sect: sect.ident, offset: offset });
107
+ return offset + sect.size;
108
+ }
109
+ emitSection(file, comp, sect) {
110
+ if (sect) {
111
+ const buf = comp.toBuffer(sect);
112
+ if (buf.length > sect.size) {
113
+ // buf.length may be < sect.size if there is a variable part (i.e. elem)
114
+ throw new RangeError(`Internal Error: Section ${constants.str_section_id(sect.ident)} claimed size ${sect.size} but produced buffer of size ${buf.length}.`);
115
+ }
116
+ file.set(buf, sect._offset);
117
+ }
118
+ }
119
+ emitStrings(file) {
120
+ for (let item of this.sect.strs.items) {
121
+ if (item._value === '') {
122
+ // We have a special case for the zero-length string
123
+ let sbuf = r.uint16le;
124
+ file.set(sbuf.toBuffer(0), item.offset + this.sect.strs._offset);
125
+ }
126
+ else {
127
+ let sbuf = new r.String(null, 'utf16le');
128
+ file.set(sbuf.toBuffer(item._value), item.offset + this.sect.strs._offset);
129
+ }
130
+ }
131
+ }
132
+ emitElements(file) {
133
+ if (this.sect.elem) {
134
+ for (let str of this.sect.elem.strings) {
135
+ if (str.items.length > 0) {
136
+ let COMP_PLUS_ELEM_ELEMENTS = new r.Array(this.file.COMP_PLUS_ELEM_ELEMENT, str.items.length);
137
+ file.set(COMP_PLUS_ELEM_ELEMENTS.toBuffer(str.items), str.offset + this.sect.elem._offset);
138
+ }
139
+ }
140
+ }
141
+ }
142
+ }
143
+ //# sourceMappingURL=kmx-plus-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kmx-plus-builder.js","sourceRoot":"","sources":["../../../../src/kmx/kmx-plus-builder/kmx-plus-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,aAAa,CAAC;AAEjC,OAAO,EAAE,SAAS,EAAgB,MAAM,oCAAoC,CAAC;AAE7E,OAAO,EAAgB,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAgB,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAgB,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAgB,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAgB,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAgB,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAgB,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAgB,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAgB,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAgB,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAgB,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAgB,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAgB,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAwB3D,MAAM,CAAC,OAAO,OAAO,cAAc;IACzB,IAAI,CAAc;IAC1B,8BAA8B;IAE9B,IAAI,GAAqB,EAExB,CAAC;IAEF,YAAY,IAAiB,EAAE,WAAoB;QACjD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,gCAAgC;IAClC,CAAC;IAEM,OAAO;QACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,IAAI,GAAe,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;QAEhD,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,mCAAmC;QACnC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,cAA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"}
@@ -0,0 +1,259 @@
1
+ import { ElementString } from './element-string.js';
2
+ import { ListItem } from './string-list.js';
3
+ import { KMXFile } from './kmx.js';
4
+ export declare class Section {
5
+ }
6
+ export declare class GlobalSections {
7
+ strs: Strs;
8
+ elem: Elem;
9
+ list: List;
10
+ }
11
+ export declare class Sect extends Section {
12
+ }
13
+ export declare class Elem extends Section {
14
+ strings: ElementString[];
15
+ constructor(strs: Strs);
16
+ allocElementString(strs: Strs, source: string, order?: string, tertiary?: string, tertiary_base?: string, prebase?: string): ElementString;
17
+ }
18
+ export declare class Loca extends Section {
19
+ locales: StrsItem[];
20
+ }
21
+ export declare enum KeyboardSettings {
22
+ none = 0,
23
+ fallback,
24
+ transformFailure,
25
+ transformPartial
26
+ }
27
+ export declare enum Meta_NormalizationForm {
28
+ NFC = "NFC",
29
+ NFD = "NFD",
30
+ other = "other"
31
+ }
32
+ export declare class Meta extends Section {
33
+ author: StrsItem;
34
+ conform: StrsItem;
35
+ layout: StrsItem;
36
+ normalization: StrsItem;
37
+ indicator: StrsItem;
38
+ version: StrsItem;
39
+ settings: KeyboardSettings;
40
+ }
41
+ export declare class Name extends Section {
42
+ names: StrsItem[];
43
+ }
44
+ export declare class OrdrItem {
45
+ elements: ElementString;
46
+ before: ElementString;
47
+ }
48
+ export declare class Ordr extends Section {
49
+ items: OrdrItem[];
50
+ }
51
+ /**
52
+ * A string item in memory. This will be replaced with an index
53
+ * into the string table at finalization.
54
+ */
55
+ export declare class StrsItem {
56
+ readonly value: string;
57
+ constructor(value: string);
58
+ compareTo(o: StrsItem): number;
59
+ static binaryStringCompare(a: string, b: string): number;
60
+ }
61
+ export declare class Strs extends Section {
62
+ strings: StrsItem[];
63
+ /**
64
+ * Allocate a StrsItem given the string, unescaping if necessary.
65
+ * @param s escaped string
66
+ * @returns
67
+ */
68
+ allocAndUnescapeString(s?: string): StrsItem;
69
+ /**
70
+ * Allocate a StrsItem given the string.
71
+ * @param s string
72
+ * @returns
73
+ */
74
+ allocString(s?: string): StrsItem;
75
+ }
76
+ export declare enum TranItemFlags {
77
+ none = 0,
78
+ error
79
+ }
80
+ export declare class TranItem extends Section {
81
+ from: ElementString;
82
+ to: StrsItem;
83
+ before: ElementString;
84
+ flags: TranItemFlags;
85
+ }
86
+ export declare class Tran extends Section {
87
+ items: TranItem[];
88
+ get id(): import("@keymanapp/ldml-keyboard-constants").SectionIdent;
89
+ }
90
+ export declare class Bksp extends Tran {
91
+ get id(): import("@keymanapp/ldml-keyboard-constants").SectionIdent;
92
+ }
93
+ export declare class BkspItem extends TranItem {
94
+ }
95
+ export type BkspItemFlags = TranItemFlags;
96
+ export declare const BkspItemFlags: typeof TranItemFlags;
97
+ export declare class Finl extends Tran {
98
+ get id(): import("@keymanapp/ldml-keyboard-constants").SectionIdent;
99
+ }
100
+ export declare class FinlItem extends TranItem {
101
+ }
102
+ export type FinlItemFlags = TranItemFlags;
103
+ export declare const FinlItemFlags: typeof TranItemFlags;
104
+ export declare class VkeyItem {
105
+ vkey: number;
106
+ target: number;
107
+ }
108
+ export declare class Vkey extends Section {
109
+ vkeys: VkeyItem[];
110
+ }
111
+ export declare class DispItem {
112
+ to: StrsItem;
113
+ display: StrsItem;
114
+ }
115
+ export declare class Disp extends Section {
116
+ baseCharacter: StrsItem;
117
+ disps: DispItem[];
118
+ }
119
+ /**
120
+ * In-memory `<layers>`
121
+ */
122
+ export declare class LayrList {
123
+ hardware: number;
124
+ layers: LayrEntry[];
125
+ minDeviceWidth: number;
126
+ }
127
+ /**
128
+ * In-memory `<layer>`
129
+ */
130
+ export declare class LayrEntry {
131
+ id: StrsItem;
132
+ mod: number;
133
+ rows: LayrRow[];
134
+ }
135
+ /**
136
+ * In-memory `<row>`
137
+ */
138
+ export declare class LayrRow {
139
+ keys: StrsItem[];
140
+ }
141
+ export declare class Layr extends Section {
142
+ lists: LayrList[];
143
+ }
144
+ export declare class KeysKeys {
145
+ flags: number;
146
+ flicks: string;
147
+ id: StrsItem;
148
+ longPress: ListItem;
149
+ longPressDefault: StrsItem;
150
+ multiTap: ListItem;
151
+ switch: StrsItem;
152
+ to: StrsItem;
153
+ width: number;
154
+ }
155
+ export declare class KeysKmap {
156
+ vkey: number;
157
+ mod: number;
158
+ key: string;
159
+ }
160
+ export declare class KeysFlicks {
161
+ flicks: KeysFlick[];
162
+ id: StrsItem;
163
+ compareTo(b: KeysFlicks): number;
164
+ constructor(id: StrsItem);
165
+ }
166
+ export declare class KeysFlick {
167
+ directions: ListItem;
168
+ flags: number;
169
+ to: StrsItem;
170
+ }
171
+ export declare class Keys extends Section {
172
+ keys: KeysKeys[];
173
+ flicks: KeysFlicks[];
174
+ kmap: KeysKmap[];
175
+ constructor(strs: Strs);
176
+ }
177
+ export declare class List extends Section {
178
+ /**
179
+ * Allocate a list from a space-separated list of items.
180
+ * Note that passing undefined or null or `''` will
181
+ * end up being the same as the empty list `[]`
182
+ * @param strs Strs section for allocation
183
+ * @param s space-separated list of items
184
+ * @returns a List object
185
+ */
186
+ allocListFromSpaces(strs: Strs, s?: string): ListItem;
187
+ allocListFromEscapedSpaces(strs: Strs, s?: string): ListItem;
188
+ /**
189
+ * Return a List object referring to the string list.
190
+ * Note that a falsy list, or a list containing only an empty string
191
+ * `['']` will be stored as an empty list `[]`.
192
+ * @param strs Strs section for allocation
193
+ * @param s string list to allocate
194
+ * @returns
195
+ */
196
+ allocList(strs: Strs, s?: string[]): ListItem;
197
+ constructor(strs: Strs);
198
+ lists: ListItem[];
199
+ }
200
+ export { ListItem as ListItem };
201
+ export interface KMXPlusData {
202
+ sect?: Strs;
203
+ bksp?: Bksp;
204
+ disp?: Disp;
205
+ elem?: Elem;
206
+ finl?: Finl;
207
+ keys?: Keys;
208
+ layr?: Layr;
209
+ list?: List;
210
+ loca?: Loca;
211
+ meta?: Meta;
212
+ name?: Name;
213
+ ordr?: Ordr;
214
+ strs?: Strs;
215
+ tran?: Tran;
216
+ vkey?: Vkey;
217
+ }
218
+ export declare class KMXPlusFile extends KMXFile {
219
+ readonly COMP_PLUS_SECT_ITEM: any;
220
+ readonly COMP_PLUS_SECT: any;
221
+ readonly COMP_PLUS_BKSP_ITEM: any;
222
+ readonly COMP_PLUS_BKSP: any;
223
+ readonly COMP_PLUS_DISP_ITEM: any;
224
+ readonly COMP_PLUS_DISP: any;
225
+ readonly COMP_PLUS_ELEM_ELEMENT: any;
226
+ readonly COMP_PLUS_ELEM_STRING: any;
227
+ readonly COMP_PLUS_ELEM: any;
228
+ readonly COMP_PLUS_FINL_ITEM: any;
229
+ readonly COMP_PLUS_FINL: any;
230
+ readonly COMP_PLUS_LAYR_ENTRY: any;
231
+ readonly COMP_PLUS_LAYR_KEY: any;
232
+ readonly COMP_PLUS_LAYR_LIST: any;
233
+ readonly COMP_PLUS_LAYR_ROW: any;
234
+ readonly COMP_PLUS_LAYR: any;
235
+ readonly COMP_PLUS_KEYS_FLICK: any;
236
+ readonly COMP_PLUS_KEYS_FLICKS: any;
237
+ readonly COMP_PLUS_KEYS_KEY: any;
238
+ readonly COMP_PLUS_KEYS_KMAP: any;
239
+ readonly COMP_PLUS_KEYS: any;
240
+ readonly COMP_PLUS_LIST_LIST: any;
241
+ readonly COMP_PLUS_LIST_INDEX: any;
242
+ readonly COMP_PLUS_LIST: any;
243
+ readonly COMP_PLUS_LOCA_ITEM: any;
244
+ readonly COMP_PLUS_LOCA: any;
245
+ readonly COMP_PLUS_META: any;
246
+ readonly COMP_PLUS_NAME_ITEM: any;
247
+ readonly COMP_PLUS_NAME: any;
248
+ readonly COMP_PLUS_ORDR_ITEM: any;
249
+ readonly COMP_PLUS_ORDR: any;
250
+ readonly COMP_PLUS_STRS_ITEM: any;
251
+ readonly COMP_PLUS_STRS: any;
252
+ readonly COMP_PLUS_TRAN_ITEM: any;
253
+ readonly COMP_PLUS_TRAN: any;
254
+ readonly COMP_PLUS_VKEY_ITEM: any;
255
+ readonly COMP_PLUS_VKEY: any;
256
+ kmxplus: KMXPlusData;
257
+ constructor();
258
+ }
259
+ //# sourceMappingURL=kmx-plus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kmx-plus.d.ts","sourceRoot":"","sources":["../../../src/kmx/kmx-plus.ts"],"names":[],"mappings":"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"}