@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,99 @@
1
+ import { constants } from "@keymanapp/ldml-keyboard-constants";
2
+ import { StrsItem } from "../kmx-plus.js";
3
+ import { build_strs_index } from "./build-strs.js";
4
+ ;
5
+ ;
6
+ ;
7
+ ;
8
+ ;
9
+ export function build_layr(kmxplus, sect_strs, sect_list) {
10
+ if (!kmxplus.layr?.lists) {
11
+ return null; // if there aren't any layers at all (which should be an invalid keyboard)
12
+ }
13
+ let layr = {
14
+ ident: constants.hex_section_id(constants.section.layr),
15
+ size: constants.length_layr,
16
+ _offset: 0,
17
+ listCount: kmxplus.layr.lists.length,
18
+ layerCount: 0,
19
+ rowCount: 0,
20
+ keyCount: 0,
21
+ lists: [],
22
+ layers: [],
23
+ rows: [],
24
+ keys: []
25
+ };
26
+ layr.lists = kmxplus.layr.lists.map((list) => {
27
+ const blist = {
28
+ hardware: list.hardware,
29
+ layer: null,
30
+ _layers: list.layers,
31
+ count: list.layers.length,
32
+ minDeviceWidth: list.minDeviceWidth,
33
+ };
34
+ return blist;
35
+ });
36
+ // now sort the lists
37
+ layr.lists.sort((a, b) => {
38
+ if (a.hardware < b.hardware) {
39
+ return -1;
40
+ }
41
+ else if (a.hardware > b.hardware) {
42
+ return 1;
43
+ }
44
+ if (a.minDeviceWidth < b.minDeviceWidth) {
45
+ return -1;
46
+ }
47
+ else if (a.minDeviceWidth > b.minDeviceWidth) {
48
+ return 1;
49
+ }
50
+ else {
51
+ return 0; // same
52
+ }
53
+ });
54
+ // Now allocate the layers, rows, and keys
55
+ layr.lists.forEach((list) => {
56
+ list.layer = layr.layers.length; // index to first layer in list
57
+ const blayers = list._layers.map((layer) => {
58
+ const blayer = {
59
+ _id: layer.id.value,
60
+ id: build_strs_index(sect_strs, layer.id),
61
+ mod: layer.mod,
62
+ row: null,
63
+ _rows: layer.rows,
64
+ count: layer.rows.length, // number of rows
65
+ };
66
+ return blayer;
67
+ });
68
+ // sort the new layers
69
+ blayers.sort((a, b) => StrsItem.binaryStringCompare(a._id, b._id));
70
+ blayers.forEach((layer) => {
71
+ layer.row = layr.rows.length; // index to first row in list
72
+ layer._rows.forEach((row) => {
73
+ const brow = {
74
+ key: layr.keys.length,
75
+ count: row.keys.length,
76
+ };
77
+ row.keys.forEach((key) => {
78
+ const bkey = {
79
+ key: build_strs_index(sect_strs, key),
80
+ };
81
+ layr.keys.push(bkey);
82
+ });
83
+ layr.rows.push(brow);
84
+ });
85
+ layr.layers.push(layer);
86
+ });
87
+ });
88
+ layr.layerCount = layr.layers.length;
89
+ layr.rowCount = layr.rows.length;
90
+ layr.keyCount = layr.keys.length;
91
+ let offset = constants.length_layr +
92
+ (constants.length_layr_list * layr.listCount) +
93
+ (constants.length_layr_entry * layr.layerCount) +
94
+ (constants.length_layr_row * layr.rowCount) +
95
+ (constants.length_layr_key * layr.keyCount);
96
+ layr.size = offset;
97
+ return layr;
98
+ }
99
+ //# sourceMappingURL=build-layr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-layr.js","sourceRoot":"","sources":["../../../../src/kmx/kmx-plus-builder/build-layr.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAmC,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAgB,MAAM,iBAAiB,CAAC;AAiBhE,CAAC;AAYD,CAAC;AAQD,CAAC;AAOD,CAAC;AAcD,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,OAAoB,EAAE,SAAuB,EAAE,SAAuB;IAC/F,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE;QACxB,OAAO,IAAI,CAAC,CAAE,0EAA0E;KACzF;IAED,IAAI,IAAI,GAAiB;QACvB,KAAK,EAAE,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;QACvD,IAAI,EAAE,SAAS,CAAC,WAAW;QAC3B,OAAO,EAAE,CAAC;QACV,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;QACpC,UAAU,EAAE,CAAC;QACb,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC;QACX,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,EAAE;KACT,CAAC;IAEF,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3C,MAAM,KAAK,GAAsB;YAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YACzB,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IACH,qBAAqB;IACrB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACvB,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,EAAE;YAC3B,OAAO,CAAC,CAAC,CAAC;SACX;aAAM,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,EAAE;YAClC,OAAO,CAAC,CAAC;SACV;QACD,IAAI,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,cAAc,EAAE;YACvC,OAAO,CAAC,CAAC,CAAC;SACX;aAAM,IAAI,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,cAAc,EAAE;YAC9C,OAAO,CAAC,CAAC;SACV;aAAM;YACL,OAAO,CAAC,CAAC,CAAC,OAAO;SAClB;IACH,CAAC,CAAC,CAAC;IACH,0CAA0C;IAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,+BAA+B;QAChE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACzC,MAAM,MAAM,GAAuB;gBACjC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK;gBACnB,EAAE,EAAE,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;gBACzC,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,GAAG,EAAE,IAAI;gBACT,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB;aAC5C,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,sBAAsB;QACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACxB,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,6BAA6B;YAC3D,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC1B,MAAM,IAAI,GAAqB;oBAC7B,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;oBACrB,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM;iBACvB,CAAC;gBACF,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBACvB,MAAM,IAAI,GAAqB;wBAC7B,GAAG,EAAE,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC;qBACtC,CAAC;oBACF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAEjC,IAAI,MAAM,GAAG,SAAS,CAAC,WAAW;QAChC,CAAC,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7C,CAAC,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC;QAC/C,CAAC,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3C,CAAC,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;IACnB,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { List, ListItem } from "../kmx-plus.js";
2
+ import { BUILDER_STRS } from "./build-strs.js";
3
+ import { BUILDER_SECTION } from "./builder-section.js";
4
+ /**
5
+ * A list entry.
6
+ */
7
+ interface BUILDER_LIST_LIST {
8
+ index: number;
9
+ count: number;
10
+ _value: ListItem;
11
+ }
12
+ interface BUILDER_LIST_INDEX {
13
+ str: number;
14
+ _value: string;
15
+ }
16
+ /**
17
+ * Builder for the 'list' section
18
+ */
19
+ export interface BUILDER_LIST extends BUILDER_SECTION {
20
+ listCount: number;
21
+ indexCount: number;
22
+ lists: BUILDER_LIST_LIST[];
23
+ indices: BUILDER_LIST_INDEX[];
24
+ }
25
+ export declare function build_list(source_list: List, sect_strs: BUILDER_STRS): BUILDER_LIST;
26
+ /**
27
+ * Returns the index into the list, analagous to build_strs_index
28
+ * @param sect_strs
29
+ * @param value
30
+ * @returns
31
+ */
32
+ export declare function build_list_index(sect_list: BUILDER_LIST, value: ListItem): number;
33
+ export {};
34
+ //# sourceMappingURL=build-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-list.d.ts","sourceRoot":"","sources":["../../../../src/kmx/kmx-plus-builder/build-list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAoB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAMvD;;GAEG;AACH,UAAU,iBAAiB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,QAAQ,CAAC;CAClB;AAED,UAAU,kBAAkB;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,eAAe;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B;AAED,wBAAgB,UAAU,CAAC,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,GAAG,YAAY,CA2CnF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,UAUxE"}
@@ -0,0 +1,62 @@
1
+ import { constants } from "@keymanapp/ldml-keyboard-constants";
2
+ import { ListItem } from "../kmx-plus.js";
3
+ import { build_strs_index } from "./build-strs.js";
4
+ ;
5
+ ;
6
+ ;
7
+ export function build_list(source_list, sect_strs) {
8
+ if (!source_list?.lists?.length) {
9
+ // there's always the null list
10
+ return null;
11
+ }
12
+ let result = {
13
+ ident: constants.hex_section_id(constants.section.list),
14
+ size: 0,
15
+ _offset: 0,
16
+ listCount: source_list.lists.length,
17
+ indexCount: 0,
18
+ lists: [],
19
+ indices: [],
20
+ };
21
+ result.lists = source_list.lists.map(array => {
22
+ let list = {
23
+ index: result.indices.length,
24
+ count: array.length,
25
+ _value: array
26
+ };
27
+ array.forEach((i) => {
28
+ let index = {
29
+ // Get the final string index
30
+ str: build_strs_index(sect_strs, i.value),
31
+ _value: i.value.value, // unwrap the actual string value
32
+ };
33
+ result.indices.push(index); // increment the indexCount
34
+ result.indexCount++;
35
+ });
36
+ return list;
37
+ });
38
+ // Sort the lists.
39
+ result.lists.sort((a, b) => a._value.compareTo(b._value));
40
+ let offset = constants.length_list +
41
+ (constants.length_list_item * result.listCount) +
42
+ (constants.length_list_index * result.indexCount);
43
+ result.size = offset;
44
+ return result;
45
+ }
46
+ /**
47
+ * Returns the index into the list, analagous to build_strs_index
48
+ * @param sect_strs
49
+ * @param value
50
+ * @returns
51
+ */
52
+ export function build_list_index(sect_list, value) {
53
+ if (!(value instanceof ListItem)) {
54
+ throw new Error('unexpected value ' + value);
55
+ }
56
+ let result = sect_list.lists.findIndex(v => v._value === value);
57
+ if (result < 0) {
58
+ throw new Error('unexpectedly missing ListItem ' + value); // TODO-LDML: it's an array of strs
59
+ }
60
+ return result;
61
+ }
62
+ //# sourceMappingURL=build-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-list.js","sourceRoot":"","sources":["../../../../src/kmx/kmx-plus-builder/build-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAQ,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAgB,MAAM,iBAAiB,CAAC;AAchE,CAAC;AAKD,CAAC;AAUD,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,WAAiB,EAAE,SAAuB;IACnE,IAAG,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE;QAC9B,+BAA+B;QAC/B,OAAO,IAAI,CAAC;KACb;IAED,IAAI,MAAM,GAAiB;QACzB,KAAK,EAAE,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;QACvD,IAAI,EAAE,CAAC;QACP,OAAO,EAAE,CAAC;QACV,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM;QACnC,UAAU,EAAE,CAAC;QACb,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,EAAE;KACZ,CAAC;IAEF,MAAM,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QAC3C,IAAI,IAAI,GAAuB;YAC7B,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;YAC5B,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,MAAM,EAAE,KAAK;SACd,CAAC;QACF,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAClB,IAAI,KAAK,GAAwB;gBAC/B,6BAA6B;gBAC7B,GAAG,EAAE,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC;gBACzC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,iCAAiC;aACzD,CAAC;YACF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,2BAA2B;YACvD,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,kBAAkB;IAClB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAEzD,IAAI,MAAM,GAAG,SAAS,CAAC,WAAW;QAChC,CAAC,SAAS,CAAC,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC;QAC/C,CAAC,SAAS,CAAC,iBAAiB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC;IAErB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAuB,EAAE,KAAe;IACvE,IAAG,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAE,KAAK,CAAC,CAAC;KAC7C;IAED,IAAI,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;IAChE,IAAG,MAAM,GAAG,CAAC,EAAE;QACb,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,KAAK,CAAC,CAAC,CAAC,mCAAmC;KAC/F;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { KMXPlusData } from "../kmx-plus.js";
2
+ import { BUILDER_STRS } from "./build-strs.js";
3
+ import { BUILDER_SECTION } from "./builder-section.js";
4
+ /**
5
+ * Builder for the 'loca' section
6
+ */
7
+ export interface BUILDER_LOCA extends BUILDER_SECTION {
8
+ count: number;
9
+ items: number[];
10
+ }
11
+ export declare function build_loca(kmxplus: KMXPlusData, sect_strs: BUILDER_STRS): BUILDER_LOCA;
12
+ //# sourceMappingURL=build-loca.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-loca.d.ts","sourceRoot":"","sources":["../../../../src/kmx/kmx-plus-builder/build-loca.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAoB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,eAAe;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,GAAG,YAAY,CActF"}
@@ -0,0 +1,20 @@
1
+ /* ------------------------------------------------------------------
2
+ * loca section
3
+ ------------------------------------------------------------------ */
4
+ import { constants } from "@keymanapp/ldml-keyboard-constants";
5
+ import { build_strs_index } from "./build-strs.js";
6
+ ;
7
+ export function build_loca(kmxplus, sect_strs) {
8
+ let loca = {
9
+ ident: constants.hex_section_id(constants.section.loca),
10
+ size: constants.length_loca + constants.length_loca_item * kmxplus.loca.locales.length,
11
+ _offset: 0,
12
+ count: kmxplus.loca.locales.length,
13
+ items: []
14
+ };
15
+ for (let item of kmxplus.loca.locales) {
16
+ loca.items.push(build_strs_index(sect_strs, item));
17
+ }
18
+ return loca;
19
+ }
20
+ //# sourceMappingURL=build-loca.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-loca.js","sourceRoot":"","sources":["../../../../src/kmx/kmx-plus-builder/build-loca.ts"],"names":[],"mappings":"AACA;;wEAEwE;AAExE,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAgB,MAAM,iBAAiB,CAAC;AAShE,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,OAAoB,EAAE,SAAuB;IACtE,IAAI,IAAI,GAAiB;QACvB,KAAK,EAAE,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;QACvD,IAAI,EAAE,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM;QACtF,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM;QAClC,KAAK,EAAE,EAAE;KACV,CAAC;IAEF,KAAI,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE;QACpC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;KACpD;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { KMXPlusData } from "../kmx-plus.js";
2
+ import { BUILDER_STRS } from "./build-strs.js";
3
+ import { BUILDER_SECTION } from "./builder-section.js";
4
+ /**
5
+ * Builder for the 'meta' section
6
+ */
7
+ export interface BUILDER_META extends BUILDER_SECTION {
8
+ author: number;
9
+ conform: number;
10
+ layout: number;
11
+ normalization: number;
12
+ indicator: number;
13
+ version: number;
14
+ settings: number;
15
+ }
16
+ export declare function build_meta(kmxplus: KMXPlusData, sect_strs: BUILDER_STRS): BUILDER_META;
17
+ //# sourceMappingURL=build-meta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-meta.d.ts","sourceRoot":"","sources":["../../../../src/kmx/kmx-plus-builder/build-meta.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAoB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,eAAe;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,GAAG,YAAY,CAatF"}
@@ -0,0 +1,21 @@
1
+ /* ------------------------------------------------------------------
2
+ * meta section
3
+ ------------------------------------------------------------------ */
4
+ import { constants } from "@keymanapp/ldml-keyboard-constants";
5
+ import { build_strs_index } from "./build-strs.js";
6
+ ;
7
+ export function build_meta(kmxplus, sect_strs) {
8
+ return {
9
+ ident: constants.hex_section_id(constants.section.meta),
10
+ size: constants.length_meta,
11
+ _offset: 0,
12
+ author: build_strs_index(sect_strs, kmxplus.meta.author),
13
+ conform: build_strs_index(sect_strs, kmxplus.meta.conform),
14
+ layout: build_strs_index(sect_strs, kmxplus.meta.layout),
15
+ normalization: build_strs_index(sect_strs, kmxplus.meta.normalization),
16
+ indicator: build_strs_index(sect_strs, kmxplus.meta.indicator),
17
+ version: build_strs_index(sect_strs, kmxplus.meta.version),
18
+ settings: kmxplus.meta.settings ?? 0,
19
+ };
20
+ }
21
+ //# sourceMappingURL=build-meta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-meta.js","sourceRoot":"","sources":["../../../../src/kmx/kmx-plus-builder/build-meta.ts"],"names":[],"mappings":"AACA;;wEAEwE;AAExE,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAgB,MAAM,iBAAiB,CAAC;AAchE,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,OAAoB,EAAE,SAAuB;IACtE,OAAO;QACL,KAAK,EAAE,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;QACvD,IAAI,EAAE,SAAS,CAAC,WAAW;QAC3B,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QACxD,OAAO,EAAE,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;QAC1D,MAAM,EAAE,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QACxD,aAAa,EAAE,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;QACtE,SAAS,EAAE,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;QAC9D,OAAO,EAAE,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;QAC1D,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC;KACrC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { KMXPlusData } from "../kmx-plus.js";
2
+ import { BUILDER_STRS } from "./build-strs.js";
3
+ import { BUILDER_SECTION } from "./builder-section.js";
4
+ /**
5
+ * Builder for the 'name' section
6
+ */
7
+ export interface BUILDER_NAME extends BUILDER_SECTION {
8
+ count: number;
9
+ items: number[];
10
+ }
11
+ export declare function build_name(kmxplus: KMXPlusData, sect_strs: BUILDER_STRS): BUILDER_NAME;
12
+ //# sourceMappingURL=build-name.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-name.d.ts","sourceRoot":"","sources":["../../../../src/kmx/kmx-plus-builder/build-name.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAoB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,eAAe;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,GAAG,YAAY,CAkBtF"}
@@ -0,0 +1,23 @@
1
+ /* ------------------------------------------------------------------
2
+ * name section
3
+ ------------------------------------------------------------------ */
4
+ import { constants } from "@keymanapp/ldml-keyboard-constants";
5
+ import { build_strs_index } from "./build-strs.js";
6
+ ;
7
+ export function build_name(kmxplus, sect_strs) {
8
+ if (!kmxplus.name.names.length) {
9
+ return null;
10
+ }
11
+ let name = {
12
+ ident: constants.hex_section_id(constants.section.name),
13
+ size: constants.length_name + constants.length_name_item * kmxplus.name.names.length,
14
+ _offset: 0,
15
+ count: kmxplus.name.names.length,
16
+ items: []
17
+ };
18
+ for (let item of kmxplus.name.names) {
19
+ name.items.push(build_strs_index(sect_strs, item));
20
+ }
21
+ return name;
22
+ }
23
+ //# sourceMappingURL=build-name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-name.js","sourceRoot":"","sources":["../../../../src/kmx/kmx-plus-builder/build-name.ts"],"names":[],"mappings":"AACA;;wEAEwE;AAExE,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAgB,MAAM,iBAAiB,CAAC;AAShE,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,OAAoB,EAAE,SAAuB;IACtE,IAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;QAC7B,OAAO,IAAI,CAAC;KACb;IAED,IAAI,IAAI,GAAiB;QACvB,KAAK,EAAE,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;QACvD,IAAI,EAAE,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;QACpF,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;QAChC,KAAK,EAAE,EAAE;KACV,CAAC;IAEF,KAAI,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE;QAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;KACpD;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { KMXPlusData } from "../kmx-plus.js";
2
+ import { BUILDER_ELEM } from "./build-elem.js";
3
+ import { BUILDER_STRS } from "./build-strs.js";
4
+ import { BUILDER_SECTION } from "./builder-section.js";
5
+ interface BUILDER_ORDR_ITEM {
6
+ elements: number;
7
+ before: number;
8
+ }
9
+ export interface BUILDER_ORDR extends BUILDER_SECTION {
10
+ count: number;
11
+ items: BUILDER_ORDR_ITEM[];
12
+ }
13
+ /**
14
+ * Builder for the 'ordr' section
15
+ */
16
+ export declare function build_ordr(kmxplus: KMXPlusData, sect_strs: BUILDER_STRS, sect_elem: BUILDER_ELEM): BUILDER_ORDR;
17
+ export {};
18
+ //# sourceMappingURL=build-ordr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-ordr.d.ts","sourceRoot":"","sources":["../../../../src/kmx/kmx-plus-builder/build-ordr.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAoB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAMvD,UAAU,iBAAiB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAa,SAAQ,eAAe;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,iBAAiB,EAAE,CAAC;CAC3B;AAED;;EAEE;AACF,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,GAAG,YAAY,CAqB/G"}
@@ -0,0 +1,27 @@
1
+ import { constants } from "@keymanapp/ldml-keyboard-constants";
2
+ import { build_elem_index } from "./build-elem.js";
3
+ ;
4
+ ;
5
+ /**
6
+ * Builder for the 'ordr' section
7
+ */
8
+ export function build_ordr(kmxplus, sect_strs, sect_elem) {
9
+ if (!kmxplus.ordr?.items.length) {
10
+ return null;
11
+ }
12
+ let ordr = {
13
+ ident: constants.hex_section_id(constants.section.ordr),
14
+ size: constants.length_ordr + constants.length_ordr_item * kmxplus.ordr.items.length,
15
+ _offset: 0,
16
+ count: kmxplus.ordr.items.length,
17
+ items: []
18
+ };
19
+ for (let item of kmxplus.ordr.items) {
20
+ ordr.items.push({
21
+ elements: build_elem_index(sect_elem, item.elements),
22
+ before: build_elem_index(sect_elem, item.before)
23
+ });
24
+ }
25
+ return ordr;
26
+ }
27
+ //# sourceMappingURL=build-ordr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-ordr.js","sourceRoot":"","sources":["../../../../src/kmx/kmx-plus-builder/build-ordr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAgB,MAAM,iBAAiB,CAAC;AAWhE,CAAC;AAKD,CAAC;AAEF;;EAEE;AACF,MAAM,UAAU,UAAU,CAAC,OAAoB,EAAE,SAAuB,EAAE,SAAuB;IAChG,IAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE;QAC9B,OAAO,IAAI,CAAC;KACb;IAED,IAAI,IAAI,GAAiB;QACvB,KAAK,EAAE,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;QACvD,IAAI,EAAE,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;QACpF,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;QAChC,KAAK,EAAE,EAAE;KACV,CAAC;IAEF,KAAI,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE;QAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACf,QAAQ,EAAE,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC;YACpD,MAAM,EAAE,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;SAChD,CAAC,CAAC;KACJ;IAED,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { BUILDER_SECTION } from "./builder-section.js";
2
+ interface BUILDER_SECT_ITEM {
3
+ sect: number;
4
+ offset: number;
5
+ }
6
+ /**
7
+ * Builder for the 'sect' (Section table of contents) section
8
+ */
9
+ export interface BUILDER_SECT extends BUILDER_SECTION {
10
+ total: number;
11
+ count: number;
12
+ items: BUILDER_SECT_ITEM[];
13
+ }
14
+ export declare function build_sect(): BUILDER_SECT;
15
+ export {};
16
+ //# sourceMappingURL=build-sect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-sect.d.ts","sourceRoot":"","sources":["../../../../src/kmx/kmx-plus-builder/build-sect.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAMvD,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,eAAe;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,iBAAiB,EAAE,CAAC;CAC5B;AAEH,wBAAgB,UAAU,IAAI,YAAY,CASzC"}
@@ -0,0 +1,14 @@
1
+ import { constants } from "@keymanapp/ldml-keyboard-constants";
2
+ ;
3
+ ;
4
+ export function build_sect() {
5
+ return {
6
+ ident: constants.hex_section_id(constants.section.sect),
7
+ size: 0,
8
+ _offset: 0,
9
+ total: 0,
10
+ count: 0,
11
+ items: [], // finalized later
12
+ };
13
+ }
14
+ //# sourceMappingURL=build-sect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-sect.js","sourceRoot":"","sources":["../../../../src/kmx/kmx-plus-builder/build-sect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAU9D,CAAC;AASC,CAAC;AAEJ,MAAM,UAAU,UAAU;IACxB,OAAO;QACL,KAAK,EAAE,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;QACvD,IAAI,EAAE,CAAC;QACP,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,EAAE,EAAE,kBAAkB;KAC9B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { Strs, StrsItem } from "../kmx-plus.js";
2
+ import { BUILDER_SECTION } from "./builder-section.js";
3
+ interface BUILDER_STRS_ITEM {
4
+ offset: number;
5
+ length: number;
6
+ _value: string;
7
+ }
8
+ /**
9
+ * Builder for the 'strs' section
10
+ */
11
+ export interface BUILDER_STRS extends BUILDER_SECTION {
12
+ count: number;
13
+ items: BUILDER_STRS_ITEM[];
14
+ }
15
+ export declare function build_strs(source_strs: Strs): BUILDER_STRS;
16
+ export declare function build_strs_index(sect_strs: BUILDER_STRS, value: StrsItem): number;
17
+ export {};
18
+ //# sourceMappingURL=build-strs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-strs.d.ts","sourceRoot":"","sources":["../../../../src/kmx/kmx-plus-builder/build-strs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAMvD,UAAU,iBAAiB;IAGzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,eAAe;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,iBAAiB,EAAE,CAAC;CAC5B;AAED,wBAAgB,UAAU,CAAC,WAAW,EAAE,IAAI,GAAG,YAAY,CAqB1D;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,UAUxE"}
@@ -0,0 +1,34 @@
1
+ import { constants } from "@keymanapp/ldml-keyboard-constants";
2
+ import { StrsItem } from "../kmx-plus.js";
3
+ ;
4
+ ;
5
+ export function build_strs(source_strs) {
6
+ let result = {
7
+ ident: constants.hex_section_id(constants.section.strs),
8
+ size: 0,
9
+ _offset: 0,
10
+ count: source_strs.strings.length,
11
+ items: [], // filled below
12
+ };
13
+ result.items = source_strs.strings.map(item => { return { _value: item.value, length: item.value.length, offset: 0 }; });
14
+ result.items.sort((a, b) => StrsItem.binaryStringCompare(a._value, b._value));
15
+ let offset = constants.length_strs + constants.length_strs_item * result.count;
16
+ // TODO: consider padding
17
+ for (let item of result.items) {
18
+ item.offset = offset;
19
+ offset += item.length * 2 + 2; /* UTF-16 code units + sizeof null terminator */
20
+ }
21
+ result.size = offset;
22
+ return result;
23
+ }
24
+ export function build_strs_index(sect_strs, value) {
25
+ if (!(value instanceof StrsItem)) {
26
+ throw new Error('unexpected value ' + value);
27
+ }
28
+ let result = sect_strs.items.findIndex(v => v._value === value.value);
29
+ if (result < 0) {
30
+ throw new Error('unexpectedly missing StrsItem ' + value.value);
31
+ }
32
+ return result;
33
+ }
34
+ //# sourceMappingURL=build-strs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-strs.js","sourceRoot":"","sources":["../../../../src/kmx/kmx-plus-builder/build-strs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAQ,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAa/C,CAAC;AAQD,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,WAAiB;IAC1C,IAAI,MAAM,GAAiB;QACzB,KAAK,EAAE,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;QACvD,IAAI,EAAE,CAAC;QACP,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM;QACjC,KAAK,EAAE,EAAE,EAAE,eAAe;KAC3B,CAAC;IAEF,MAAM,CAAC,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,EAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAE7E,IAAI,MAAM,GAAG,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC;IAC/E,yBAAyB;IACzB,KAAI,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,gDAAgD;KAChF;IACD,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC;IAErB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAAuB,EAAE,KAAe;IACvE,IAAG,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAE,KAAK,CAAC,CAAC;KAC7C;IAED,IAAI,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC;IACtE,IAAG,MAAM,GAAG,CAAC,EAAE;QACb,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAC/D;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { Bksp, Finl, Tran } from "../kmx-plus.js";
2
+ import { BUILDER_ELEM } from "./build-elem.js";
3
+ import { BUILDER_STRS } from "./build-strs.js";
4
+ import { BUILDER_SECTION } from "./builder-section.js";
5
+ interface BUILDER_TRAN_ITEM {
6
+ from: number;
7
+ to: number;
8
+ before: number;
9
+ flags: number;
10
+ }
11
+ export interface BUILDER_TRAN extends BUILDER_SECTION {
12
+ count: number;
13
+ items: BUILDER_TRAN_ITEM[];
14
+ }
15
+ /**
16
+ * Builder for the 'tran', 'finl', and 'bksp' sections, all of which use the BUILDER_TRAN layout
17
+ */
18
+ export declare function build_tran(source_tran: Tran | Finl | Bksp, sect_strs: BUILDER_STRS, sect_elem: BUILDER_ELEM): BUILDER_TRAN;
19
+ export {};
20
+ //# sourceMappingURL=build-tran.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-tran.d.ts","sourceRoot":"","sources":["../../../../src/kmx/kmx-plus-builder/build-tran.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAoB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAoB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAMvD,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAa,SAAQ,eAAe;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,iBAAiB,EAAE,CAAC;CAC3B;AAED;;EAEE;AACF,wBAAgB,UAAU,CAAC,WAAW,EAAE,IAAI,GAAC,IAAI,GAAC,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,GAAG,YAAY,CAuBtH"}
@@ -0,0 +1,30 @@
1
+ import { constants } from "@keymanapp/ldml-keyboard-constants";
2
+ import { build_elem_index } from "./build-elem.js";
3
+ import { build_strs_index } from "./build-strs.js";
4
+ ;
5
+ ;
6
+ /**
7
+ * Builder for the 'tran', 'finl', and 'bksp' sections, all of which use the BUILDER_TRAN layout
8
+ */
9
+ export function build_tran(source_tran, sect_strs, sect_elem) {
10
+ if (!source_tran?.items.length) {
11
+ return null;
12
+ }
13
+ let tran = {
14
+ ident: constants.hex_section_id(source_tran.id),
15
+ size: constants.length_tran + constants.length_tran_item * source_tran.items.length,
16
+ _offset: 0,
17
+ count: source_tran.items.length,
18
+ items: []
19
+ };
20
+ for (let item of source_tran.items) {
21
+ tran.items.push({
22
+ from: build_elem_index(sect_elem, item.from),
23
+ to: build_strs_index(sect_strs, item.to),
24
+ before: build_elem_index(sect_elem, item.before),
25
+ flags: item.flags
26
+ });
27
+ }
28
+ return tran;
29
+ }
30
+ //# sourceMappingURL=build-tran.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-tran.js","sourceRoot":"","sources":["../../../../src/kmx/kmx-plus-builder/build-tran.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAgB,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAgB,MAAM,iBAAiB,CAAC;AAYhE,CAAC;AAKD,CAAC;AAEF;;EAEE;AACF,MAAM,UAAU,UAAU,CAAC,WAA2B,EAAE,SAAuB,EAAE,SAAuB;IACvG,IAAG,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,EAAE;QAC7B,OAAO,IAAI,CAAC;KACb;IAED,IAAI,IAAI,GAAiB;QACvB,KAAK,EAAE,SAAS,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/C,IAAI,EAAE,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,gBAAgB,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM;QACnF,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM;QAC/B,KAAK,EAAE,EAAE;KACV,CAAC;IAEF,KAAI,IAAI,IAAI,IAAI,WAAW,CAAC,KAAK,EAAE;QACjC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC;YAC5C,EAAE,EAAE,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC;YACxC,MAAM,EAAE,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;YAChD,KAAK,EAAE,IAAI,CAAC,KAAK;SACjB,CAAC,CAAC;KACJ;IAED,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { KMXPlusData } from "../kmx-plus.js";
2
+ import { BUILDER_SECTION } from './builder-section.js';
3
+ /**
4
+ * Builder for the 'vkey' section
5
+ */
6
+ interface BUILDER_VKEY_ITEM {
7
+ vkey: number;
8
+ target: number;
9
+ }
10
+ export interface BUILDER_VKEY extends BUILDER_SECTION {
11
+ count: number;
12
+ items: BUILDER_VKEY_ITEM[];
13
+ }
14
+ export declare function build_vkey(kmxplus: KMXPlusData): BUILDER_VKEY;
15
+ export {};
16
+ //# sourceMappingURL=build-vkey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-vkey.d.ts","sourceRoot":"","sources":["../../../../src/kmx/kmx-plus-builder/build-vkey.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAMvD;;GAEG;AACH,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAa,SAAQ,eAAe;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,iBAAiB,EAAE,CAAC;CAC5B;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,YAAY,CAqB7D"}
@@ -0,0 +1,23 @@
1
+ import { constants } from '@keymanapp/ldml-keyboard-constants';
2
+ ;
3
+ ;
4
+ export function build_vkey(kmxplus) {
5
+ if (!kmxplus.vkey.vkeys.length) {
6
+ return null;
7
+ }
8
+ let vkey = {
9
+ ident: constants.hex_section_id(constants.section.vkey),
10
+ size: constants.length_vkey + constants.length_vkey_item * kmxplus.vkey.vkeys.length,
11
+ _offset: 0,
12
+ count: kmxplus.vkey.vkeys.length,
13
+ items: []
14
+ };
15
+ for (let item of kmxplus.vkey.vkeys) {
16
+ vkey.items.push({
17
+ vkey: item.vkey,
18
+ target: item.target
19
+ });
20
+ }
21
+ return vkey;
22
+ }
23
+ //# sourceMappingURL=build-vkey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-vkey.js","sourceRoot":"","sources":["../../../../src/kmx/kmx-plus-builder/build-vkey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAc9D,CAAC;AAKD,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,OAAoB;IAC7C,IAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;QAC7B,OAAO,IAAI,CAAC;KACb;IAED,IAAI,IAAI,GAAiB;QACvB,KAAK,EAAE,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;QACvD,IAAI,EAAE,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;QACpF,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;QAChC,KAAK,EAAE,EAAE;KACV,CAAC;IAEF,KAAI,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE;QAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;KACJ;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,6 @@
1
+ export interface BUILDER_SECTION {
2
+ ident: number;
3
+ size: number;
4
+ _offset: number;
5
+ }
6
+ //# sourceMappingURL=builder-section.d.ts.map