@keymanapp/kmc-ldml 17.0.155-alpha → 17.0.156-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 (93) hide show
  1. package/build/src/compiler/compiler.d.ts +57 -55
  2. package/build/src/compiler/compiler.d.ts.map +1 -1
  3. package/build/src/compiler/compiler.js +198 -198
  4. package/build/src/compiler/compiler.js.map +1 -1
  5. package/build/src/compiler/disp.d.ts +14 -12
  6. package/build/src/compiler/disp.d.ts.map +1 -1
  7. package/build/src/compiler/disp.js +45 -43
  8. package/build/src/compiler/disp.js.map +1 -1
  9. package/build/src/compiler/empty-compiler.d.ts +39 -37
  10. package/build/src/compiler/empty-compiler.d.ts.map +1 -1
  11. package/build/src/compiler/empty-compiler.js +71 -69
  12. package/build/src/compiler/empty-compiler.js.map +1 -1
  13. package/build/src/compiler/keymanweb-compiler.d.ts +16 -16
  14. package/build/src/compiler/keymanweb-compiler.d.ts.map +1 -1
  15. package/build/src/compiler/keymanweb-compiler.js +97 -96
  16. package/build/src/compiler/keymanweb-compiler.js.map +1 -1
  17. package/build/src/compiler/keys.d.ts +30 -28
  18. package/build/src/compiler/keys.d.ts.map +1 -1
  19. package/build/src/compiler/keys.js +240 -238
  20. package/build/src/compiler/keys.js.map +1 -1
  21. package/build/src/compiler/layr.d.ts +12 -10
  22. package/build/src/compiler/layr.d.ts.map +1 -1
  23. package/build/src/compiler/layr.js +83 -81
  24. package/build/src/compiler/layr.js.map +1 -1
  25. package/build/src/compiler/ldml-compiler-options.d.ts +10 -0
  26. package/build/src/compiler/ldml-compiler-options.d.ts.map +1 -0
  27. package/build/src/compiler/ldml-compiler-options.js +5 -0
  28. package/build/src/compiler/ldml-compiler-options.js.map +1 -0
  29. package/build/src/compiler/loca.d.ts +18 -16
  30. package/build/src/compiler/loca.d.ts.map +1 -1
  31. package/build/src/compiler/loca.js +61 -59
  32. package/build/src/compiler/loca.js.map +1 -1
  33. package/build/src/compiler/marker-tracker.d.ts +36 -34
  34. package/build/src/compiler/marker-tracker.d.ts.map +1 -1
  35. package/build/src/compiler/marker-tracker.js +75 -73
  36. package/build/src/compiler/marker-tracker.js.map +1 -1
  37. package/build/src/compiler/messages.d.ts +135 -133
  38. package/build/src/compiler/messages.d.ts.map +1 -1
  39. package/build/src/compiler/messages.js +79 -77
  40. package/build/src/compiler/messages.js.map +1 -1
  41. package/build/src/compiler/meta.d.ts +14 -12
  42. package/build/src/compiler/meta.d.ts.map +1 -1
  43. package/build/src/compiler/meta.js +60 -58
  44. package/build/src/compiler/meta.js.map +1 -1
  45. package/build/src/compiler/metadata-compiler.d.ts +15 -13
  46. package/build/src/compiler/metadata-compiler.d.ts.map +1 -1
  47. package/build/src/compiler/metadata-compiler.js +49 -47
  48. package/build/src/compiler/metadata-compiler.js.map +1 -1
  49. package/build/src/compiler/name.d.ts +12 -10
  50. package/build/src/compiler/name.d.ts.map +1 -1
  51. package/build/src/compiler/name.js +22 -20
  52. package/build/src/compiler/name.js.map +1 -1
  53. package/build/src/compiler/section-compiler.d.ts +18 -16
  54. package/build/src/compiler/section-compiler.d.ts.map +1 -1
  55. package/build/src/compiler/section-compiler.js +36 -34
  56. package/build/src/compiler/section-compiler.js.map +1 -1
  57. package/build/src/compiler/touch-layout-compiler.d.ts +10 -8
  58. package/build/src/compiler/touch-layout-compiler.d.ts.map +1 -1
  59. package/build/src/compiler/touch-layout-compiler.js +89 -87
  60. package/build/src/compiler/touch-layout-compiler.js.map +1 -1
  61. package/build/src/compiler/tran.d.ts +39 -37
  62. package/build/src/compiler/tran.d.ts.map +1 -1
  63. package/build/src/compiler/tran.js +187 -185
  64. package/build/src/compiler/tran.js.map +1 -1
  65. package/build/src/compiler/vars.d.ts +23 -21
  66. package/build/src/compiler/vars.d.ts.map +1 -1
  67. package/build/src/compiler/vars.js +221 -219
  68. package/build/src/compiler/vars.js.map +1 -1
  69. package/build/src/compiler/visual-keyboard-compiler.d.ts +9 -7
  70. package/build/src/compiler/visual-keyboard-compiler.d.ts.map +1 -1
  71. package/build/src/compiler/visual-keyboard-compiler.js +52 -54
  72. package/build/src/compiler/visual-keyboard-compiler.js.map +1 -1
  73. package/build/src/compiler/vkey.d.ts +11 -9
  74. package/build/src/compiler/vkey.d.ts.map +1 -1
  75. package/build/src/compiler/vkey.js +61 -59
  76. package/build/src/compiler/vkey.js.map +1 -1
  77. package/build/src/main.d.ts +11 -9
  78. package/build/src/main.d.ts.map +1 -1
  79. package/build/src/main.js +10 -8
  80. package/build/src/main.js.map +1 -1
  81. package/build/src/util/util.d.ts +44 -42
  82. package/build/src/util/util.d.ts.map +1 -1
  83. package/build/src/util/util.js +122 -120
  84. package/build/src/util/util.js.map +1 -1
  85. package/package.json +8 -8
  86. package/build/src/compiler/compiler-options.d.ts +0 -16
  87. package/build/src/compiler/compiler-options.d.ts.map +0 -1
  88. package/build/src/compiler/compiler-options.js +0 -6
  89. package/build/src/compiler/compiler-options.js.map +0 -1
  90. package/build/src/kpj.schema.json +0 -127
  91. package/build/src/kvks.schema.json +0 -182
  92. package/build/src/ldml-keyboard.schema.json +0 -702
  93. package/build/src/ldml-keyboardtest.schema.json +0 -221
@@ -1,28 +1,30 @@
1
- import { LDMLKeyboard, KMXPlus } from '@keymanapp/common-types';
2
- import { SectionCompiler } from "./section-compiler.js";
3
- import DependencySections = KMXPlus.DependencySections;
4
- import Keys = KMXPlus.Keys;
5
- import { MarkerTracker } from './marker-tracker.js';
6
- export declare class KeysCompiler extends SectionCompiler {
7
- static validateMarkers(keyboard: LDMLKeyboard.LKKeyboard, mt: MarkerTracker): boolean;
8
- get id(): import("@keymanapp/ldml-keyboard-constants").SectionIdent;
9
- /**
10
- *
11
- * @returns just the non-touch layers.
12
- */
13
- hardwareLayers(): LDMLKeyboard.LKLayers[];
14
- validate(): boolean;
15
- compile(sections: DependencySections): Keys;
16
- loadFlicks(sections: DependencySections, sect: Keys): void;
17
- loadKeys(sections: DependencySections, sect: Keys): void;
18
- /**
19
- * TODO-LDML: from old 'keys'
20
- * Validate for purpose of kmap
21
- * @param hardware the 'form' parameter
22
- * @param layer
23
- * @returns
24
- */
25
- private validateHardwareLayerForKmap;
26
- private compileHardwareLayerToKmap;
27
- }
28
- //# sourceMappingURL=keys.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]="fc94db28-7aad-5262-8888-a6483ed5a86e")}catch(e){}}();
2
+ import { LDMLKeyboard, KMXPlus } from '@keymanapp/common-types';
3
+ import { SectionCompiler } from "./section-compiler.js";
4
+ import DependencySections = KMXPlus.DependencySections;
5
+ import Keys = KMXPlus.Keys;
6
+ import { MarkerTracker } from './marker-tracker.js';
7
+ export declare class KeysCompiler extends SectionCompiler {
8
+ static validateMarkers(keyboard: LDMLKeyboard.LKKeyboard, mt: MarkerTracker): boolean;
9
+ get id(): import("@keymanapp/ldml-keyboard-constants").SectionIdent;
10
+ /**
11
+ *
12
+ * @returns just the non-touch layers.
13
+ */
14
+ hardwareLayers(): LDMLKeyboard.LKLayers[];
15
+ validate(): boolean;
16
+ compile(sections: DependencySections): Keys;
17
+ loadFlicks(sections: DependencySections, sect: Keys): void;
18
+ loadKeys(sections: DependencySections, sect: Keys): void;
19
+ /**
20
+ * TODO-LDML: from old 'keys'
21
+ * Validate for purpose of kmap
22
+ * @param hardware the 'form' parameter
23
+ * @param layer
24
+ * @returns
25
+ */
26
+ private validateHardwareLayerForKmap;
27
+ private compileHardwareLayerToKmap;
28
+ }
29
+ //# debugId=fc94db28-7aad-5262-8888-a6483ed5a86e
30
+ //# sourceMappingURL=keys.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/compiler/keys.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,OAAO,EAA2B,MAAM,yBAAyB,CAAC;AAEzF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;AACvD,OAAO,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAI3B,OAAO,EAAE,aAAa,EAAa,MAAM,qBAAqB,CAAC;AAE/D,qBAAa,YAAa,SAAQ,eAAe;IAC/C,MAAM,CAAC,eAAe,CACpB,QAAQ,EAAE,YAAY,CAAC,UAAU,EACjC,EAAE,EAAE,aAAa,GAChB,OAAO;IAOV,IAAW,EAAE,8DAEZ;IAED;;;OAGG;IACI,cAAc;IAId,QAAQ;IA6CR,OAAO,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAmC3C,UAAU,CAAC,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI;IA4BnD,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI;IAuDxD;;;;;;OAMG;IACH,OAAO,CAAC,4BAA4B;IA6EpC,OAAO,CAAC,0BAA0B;CA+BnC"}
1
+ {"debug_id":"fc94db28-7aad-5262-8888-a6483ed5a86e","file":"keys.d.ts","mappings":";AACA,OAAO,EAAE,YAAY,EAAE,OAAO,EAA2B,MAAM,yBAAyB,CAAC;AAEzF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;AACvD,OAAO,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAI3B,OAAO,EAAE,aAAa,EAAa,MAAM,qBAAqB,CAAC;AAE/D,qBAAa,YAAa,SAAQ,eAAe;IAC/C,MAAM,CAAC,eAAe,CACpB,QAAQ,EAAE,YAAY,CAAC,UAAU,EACjC,EAAE,EAAE,aAAa,GAChB,OAAO;IAOV,IAAW,EAAE,8DAEZ;IAED;;;OAGG;IACI,cAAc;IAId,QAAQ;IA6CR,OAAO,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAmC3C,UAAU,CAAC,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI;IA4BnD,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI;IAuDxD;;;;;;OAMG;IACH,OAAO,CAAC,4BAA4B;IA6EpC,OAAO,CAAC,0BAA0B;CA+BnC","names":[],"sourceRoot":"","sources":["../../../src/compiler/keys.ts"],"version":3}
@@ -1,238 +1,240 @@
1
- import { constants } from '@keymanapp/ldml-keyboard-constants';
2
- import { KMXPlus, Constants, MarkerParser } from '@keymanapp/common-types';
3
- import { CompilerMessages } from './messages.js';
4
- import { SectionCompiler } from "./section-compiler.js";
5
- var Keys = KMXPlus.Keys;
6
- var KeysFlicks = KMXPlus.KeysFlicks;
7
- import { allUsedKeyIdsInLayers, calculateUniqueKeys, translateLayerAttrToModifier, validModifier } from '../util/util.js';
8
- import { MarkerUse } from './marker-tracker.js';
9
- export class KeysCompiler extends SectionCompiler {
10
- static validateMarkers(keyboard, mt) {
11
- keyboard.keys?.key?.forEach(({ to }) => mt.add(MarkerUse.emit, MarkerParser.allReferences(to)));
12
- return true;
13
- }
14
- get id() {
15
- return constants.section.keys;
16
- }
17
- /**
18
- *
19
- * @returns just the non-touch layers.
20
- */
21
- hardwareLayers() {
22
- return this.keyboard.layers?.filter(({ form }) => form !== "touch");
23
- }
24
- validate() {
25
- let valid = true;
26
- // general key-level validation here, only of used keys
27
- const usedKeys = allUsedKeyIdsInLayers(this.keyboard?.layers);
28
- const uniqueKeys = calculateUniqueKeys([...this.keyboard.keys?.key]);
29
- for (let key of uniqueKeys) {
30
- const { id, flicks } = key;
31
- if (!usedKeys.has(id)) {
32
- continue; // unused key, ignore
33
- }
34
- // TODO-LDML: further key-level validation here
35
- if (!flicks) {
36
- continue; // no flicks
37
- }
38
- const flickEntry = this.keyboard.keys?.flicks?.find((x) => x.id === flicks);
39
- if (!flickEntry) {
40
- valid = false;
41
- this.callbacks.reportMessage(CompilerMessages.Error_MissingFlicks({ flicks, id }));
42
- }
43
- }
44
- // the layr compiler does more extensive validation of the layer attributes.
45
- // Kmap validation
46
- const hardwareLayers = this.hardwareLayers();
47
- if (hardwareLayers.length >= 1) {
48
- // validate all errors
49
- for (let layers of hardwareLayers) {
50
- for (let layer of layers.layer) {
51
- valid =
52
- this.validateHardwareLayerForKmap(layers.form, layer) && valid; // note: always validate even if previously invalid results found
53
- }
54
- }
55
- // TODO-LDML: } else { touch?
56
- }
57
- return valid;
58
- }
59
- compile(sections) {
60
- /* c8 ignore next 4 */
61
- if (!this.keyboard?.keys?.key && !this.keyboard?.keys?.flicks) {
62
- // short-circuit if no keys or flicks. Doesn't happen in practice due to implied import.
63
- return null;
64
- }
65
- let sect = new Keys(sections.strs);
66
- // Load the flicks first
67
- this.loadFlicks(sections, sect);
68
- // Now, load the keys
69
- this.loadKeys(sections, sect);
70
- // Finally, kmap
71
- // Use LayerMap + keys to generate compiled keys for hardware
72
- const hardwareLayers = this.hardwareLayers();
73
- /* c8 ignore next 3 */
74
- if (hardwareLayers.length > 1) {
75
- // validation should have already caught this
76
- throw Error(`Internal error: Expected 0 or 1 hardware layer, not ${hardwareLayers.length}`);
77
- }
78
- else if (hardwareLayers.length === 1) {
79
- const theLayers = hardwareLayers[0];
80
- const { form } = theLayers;
81
- for (let layer of theLayers.layer) {
82
- this.compileHardwareLayerToKmap(sections, layer, sect, form);
83
- }
84
- } // else: TODO-LDML do nothing if only touch layers
85
- return sect;
86
- }
87
- loadFlicks(sections, sect) {
88
- for (let lkflicks of this.keyboard.keys.flicks) {
89
- let flicks = new KeysFlicks(sections.strs.allocString(lkflicks.id));
90
- for (let lkflick of lkflicks.flick) {
91
- let flags = 0;
92
- const to = sections.strs.allocAndUnescapeString(lkflick.to, true);
93
- if (!to.isOneChar) {
94
- flags |= constants.keys_flick_flags_extend;
95
- }
96
- let directions = sections.list.allocListFromSpaces(sections.strs, lkflick.directions);
97
- flicks.flicks.push({
98
- directions,
99
- flags,
100
- // TODO-LDML: markers,variables
101
- to,
102
- });
103
- }
104
- sect.flicks.push(flicks);
105
- }
106
- }
107
- loadKeys(sections, sect) {
108
- const usedKeys = allUsedKeyIdsInLayers(this.keyboard?.layers);
109
- const uniqueKeys = calculateUniqueKeys([...this.keyboard.keys?.key]);
110
- for (let key of uniqueKeys) {
111
- if (!usedKeys.has(key.id)) {
112
- // TODO-LDML: linting for unused, non-implied and non-imported keys,
113
- continue; // unused key, skip
114
- }
115
- let flags = 0;
116
- const flicks = key.flicks;
117
- if (!!key.gap) {
118
- flags |= constants.keys_key_flags_gap;
119
- }
120
- if (key.transform === "no") {
121
- flags |= constants.keys_key_flags_notransform;
122
- }
123
- const id = sections.strs.allocString(key.id);
124
- const longPress = sections.list.allocListFromEscapedSpaces(sections.strs,
125
- // TODO-LDML: markers,variables
126
- key.longPress);
127
- const longPressDefault = sections.strs.allocAndUnescapeString(
128
- // TODO-LDML: markers,variables
129
- key.longPressDefault);
130
- const multiTap = sections.list.allocListFromEscapedSpaces(sections.strs,
131
- // TODO-LDML: markers,variables
132
- key.multiTap);
133
- const keySwitch = sections.strs.allocString(key.switch); // 'switch' is a reserved word
134
- const toRaw = key.to;
135
- // TODO-LDML: variables
136
- let toCooked = sections.vars.substituteMarkerString(toRaw);
137
- const to = sections.strs.allocAndUnescapeString(toCooked, true);
138
- if (!to.isOneChar) {
139
- flags |= constants.keys_key_flags_extend;
140
- }
141
- const width = Math.ceil((key.width || 1) * 10.0); // default, width=1
142
- sect.keys.push({
143
- flags,
144
- flicks,
145
- id,
146
- longPress,
147
- longPressDefault,
148
- multiTap,
149
- switch: keySwitch,
150
- to,
151
- width,
152
- });
153
- }
154
- }
155
- /**
156
- * TODO-LDML: from old 'keys'
157
- * Validate for purpose of kmap
158
- * @param hardware the 'form' parameter
159
- * @param layer
160
- * @returns
161
- */
162
- validateHardwareLayerForKmap(hardware, layer) {
163
- let valid = true;
164
- const { modifier } = layer;
165
- if (!validModifier(modifier)) {
166
- this.callbacks.reportMessage(CompilerMessages.Error_InvalidModifier({ modifier, layer: layer.id }));
167
- valid = false;
168
- }
169
- const keymap = Constants.HardwareToKeymap.get(hardware);
170
- /* c8 ignore next 5 */
171
- if (!keymap) {
172
- // not reached due to XML validation
173
- this.callbacks.reportMessage(CompilerMessages.Error_InvalidHardware({ form: hardware }));
174
- valid = false;
175
- }
176
- const uniqueKeys = calculateUniqueKeys([...this.keyboard.keys?.key]);
177
- if (layer.row.length > keymap.length) {
178
- this.callbacks.reportMessage(CompilerMessages.Error_HardwareLayerHasTooManyRows());
179
- valid = false;
180
- }
181
- for (let y = 0; y < layer.row.length && y < keymap.length; y++) {
182
- const keys = layer.row[y].keys.split(" ");
183
- if (keys.length > keymap[y].length) {
184
- this.callbacks.reportMessage(CompilerMessages.Error_RowOnHardwareLayerHasTooManyKeys({
185
- row: y + 1,
186
- hardware,
187
- modifier,
188
- }));
189
- valid = false;
190
- }
191
- let x = -1;
192
- for (let key of keys) {
193
- x++;
194
- let keydef = uniqueKeys.find((x) => x.id == key);
195
- if (!keydef) {
196
- this.callbacks.reportMessage(CompilerMessages.Error_KeyNotFoundInKeyBag({
197
- keyId: key,
198
- col: x + 1,
199
- row: y + 1,
200
- layer: layer.id,
201
- form: "hardware",
202
- }));
203
- valid = false;
204
- continue;
205
- }
206
- if (!keydef.to && !keydef.gap && !keydef.switch) {
207
- this.callbacks.reportMessage(CompilerMessages.Error_KeyMissingToGapOrSwitch({ keyId: key }));
208
- valid = false;
209
- continue;
210
- }
211
- }
212
- }
213
- return valid;
214
- }
215
- compileHardwareLayerToKmap(sections, layer, sect, hardware) {
216
- const mod = translateLayerAttrToModifier(layer);
217
- const keymap = Constants.HardwareToKeymap.get(hardware);
218
- let y = -1;
219
- for (let row of layer.row) {
220
- y++;
221
- const keys = row.keys.split(" ");
222
- let x = -1;
223
- for (let key of keys) {
224
- x++;
225
- // TODO-LDML: we already validated that the key exists, above.
226
- // So here we only need the ID?
227
- // let keydef = this.keyboard.keys?.key?.find(x => x.id == key);
228
- sect.kmap.push({
229
- vkey: keymap[y][x],
230
- mod: mod,
231
- key, // key id, to be changed into key index at finalization
232
- });
233
- }
234
- }
235
- return sect;
236
- }
237
- }
238
- //# sourceMappingURL=keys.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]="ba9b5b9f-5e86-5b2a-9cc7-30d7319a7adf")}catch(e){}}();
2
+ import { constants } from '@keymanapp/ldml-keyboard-constants';
3
+ import { KMXPlus, Constants, MarkerParser } from '@keymanapp/common-types';
4
+ import { CompilerMessages } from './messages.js';
5
+ import { SectionCompiler } from "./section-compiler.js";
6
+ var Keys = KMXPlus.Keys;
7
+ var KeysFlicks = KMXPlus.KeysFlicks;
8
+ import { allUsedKeyIdsInLayers, calculateUniqueKeys, translateLayerAttrToModifier, validModifier } from '../util/util.js';
9
+ import { MarkerUse } from './marker-tracker.js';
10
+ export class KeysCompiler extends SectionCompiler {
11
+ static validateMarkers(keyboard, mt) {
12
+ keyboard.keys?.key?.forEach(({ to }) => mt.add(MarkerUse.emit, MarkerParser.allReferences(to)));
13
+ return true;
14
+ }
15
+ get id() {
16
+ return constants.section.keys;
17
+ }
18
+ /**
19
+ *
20
+ * @returns just the non-touch layers.
21
+ */
22
+ hardwareLayers() {
23
+ return this.keyboard.layers?.filter(({ form }) => form !== "touch");
24
+ }
25
+ validate() {
26
+ let valid = true;
27
+ // general key-level validation here, only of used keys
28
+ const usedKeys = allUsedKeyIdsInLayers(this.keyboard?.layers);
29
+ const uniqueKeys = calculateUniqueKeys([...this.keyboard.keys?.key]);
30
+ for (let key of uniqueKeys) {
31
+ const { id, flicks } = key;
32
+ if (!usedKeys.has(id)) {
33
+ continue; // unused key, ignore
34
+ }
35
+ // TODO-LDML: further key-level validation here
36
+ if (!flicks) {
37
+ continue; // no flicks
38
+ }
39
+ const flickEntry = this.keyboard.keys?.flicks?.find((x) => x.id === flicks);
40
+ if (!flickEntry) {
41
+ valid = false;
42
+ this.callbacks.reportMessage(CompilerMessages.Error_MissingFlicks({ flicks, id }));
43
+ }
44
+ }
45
+ // the layr compiler does more extensive validation of the layer attributes.
46
+ // Kmap validation
47
+ const hardwareLayers = this.hardwareLayers();
48
+ if (hardwareLayers.length >= 1) {
49
+ // validate all errors
50
+ for (let layers of hardwareLayers) {
51
+ for (let layer of layers.layer) {
52
+ valid =
53
+ this.validateHardwareLayerForKmap(layers.form, layer) && valid; // note: always validate even if previously invalid results found
54
+ }
55
+ }
56
+ // TODO-LDML: } else { touch?
57
+ }
58
+ return valid;
59
+ }
60
+ compile(sections) {
61
+ /* c8 ignore next 4 */
62
+ if (!this.keyboard?.keys?.key && !this.keyboard?.keys?.flicks) {
63
+ // short-circuit if no keys or flicks. Doesn't happen in practice due to implied import.
64
+ return null;
65
+ }
66
+ let sect = new Keys(sections.strs);
67
+ // Load the flicks first
68
+ this.loadFlicks(sections, sect);
69
+ // Now, load the keys
70
+ this.loadKeys(sections, sect);
71
+ // Finally, kmap
72
+ // Use LayerMap + keys to generate compiled keys for hardware
73
+ const hardwareLayers = this.hardwareLayers();
74
+ /* c8 ignore next 3 */
75
+ if (hardwareLayers.length > 1) {
76
+ // validation should have already caught this
77
+ throw Error(`Internal error: Expected 0 or 1 hardware layer, not ${hardwareLayers.length}`);
78
+ }
79
+ else if (hardwareLayers.length === 1) {
80
+ const theLayers = hardwareLayers[0];
81
+ const { form } = theLayers;
82
+ for (let layer of theLayers.layer) {
83
+ this.compileHardwareLayerToKmap(sections, layer, sect, form);
84
+ }
85
+ } // else: TODO-LDML do nothing if only touch layers
86
+ return sect;
87
+ }
88
+ loadFlicks(sections, sect) {
89
+ for (let lkflicks of this.keyboard.keys.flicks) {
90
+ let flicks = new KeysFlicks(sections.strs.allocString(lkflicks.id));
91
+ for (let lkflick of lkflicks.flick) {
92
+ let flags = 0;
93
+ const to = sections.strs.allocAndUnescapeString(lkflick.to, true);
94
+ if (!to.isOneChar) {
95
+ flags |= constants.keys_flick_flags_extend;
96
+ }
97
+ let directions = sections.list.allocListFromSpaces(sections.strs, lkflick.directions);
98
+ flicks.flicks.push({
99
+ directions,
100
+ flags,
101
+ // TODO-LDML: markers,variables
102
+ to,
103
+ });
104
+ }
105
+ sect.flicks.push(flicks);
106
+ }
107
+ }
108
+ loadKeys(sections, sect) {
109
+ const usedKeys = allUsedKeyIdsInLayers(this.keyboard?.layers);
110
+ const uniqueKeys = calculateUniqueKeys([...this.keyboard.keys?.key]);
111
+ for (let key of uniqueKeys) {
112
+ if (!usedKeys.has(key.id)) {
113
+ // TODO-LDML: linting for unused, non-implied and non-imported keys,
114
+ continue; // unused key, skip
115
+ }
116
+ let flags = 0;
117
+ const flicks = key.flicks;
118
+ if (!!key.gap) {
119
+ flags |= constants.keys_key_flags_gap;
120
+ }
121
+ if (key.transform === "no") {
122
+ flags |= constants.keys_key_flags_notransform;
123
+ }
124
+ const id = sections.strs.allocString(key.id);
125
+ const longPress = sections.list.allocListFromEscapedSpaces(sections.strs,
126
+ // TODO-LDML: markers,variables
127
+ key.longPress);
128
+ const longPressDefault = sections.strs.allocAndUnescapeString(
129
+ // TODO-LDML: markers,variables
130
+ key.longPressDefault);
131
+ const multiTap = sections.list.allocListFromEscapedSpaces(sections.strs,
132
+ // TODO-LDML: markers,variables
133
+ key.multiTap);
134
+ const keySwitch = sections.strs.allocString(key.switch); // 'switch' is a reserved word
135
+ const toRaw = key.to;
136
+ // TODO-LDML: variables
137
+ let toCooked = sections.vars.substituteMarkerString(toRaw);
138
+ const to = sections.strs.allocAndUnescapeString(toCooked, true);
139
+ if (!to.isOneChar) {
140
+ flags |= constants.keys_key_flags_extend;
141
+ }
142
+ const width = Math.ceil((key.width || 1) * 10.0); // default, width=1
143
+ sect.keys.push({
144
+ flags,
145
+ flicks,
146
+ id,
147
+ longPress,
148
+ longPressDefault,
149
+ multiTap,
150
+ switch: keySwitch,
151
+ to,
152
+ width,
153
+ });
154
+ }
155
+ }
156
+ /**
157
+ * TODO-LDML: from old 'keys'
158
+ * Validate for purpose of kmap
159
+ * @param hardware the 'form' parameter
160
+ * @param layer
161
+ * @returns
162
+ */
163
+ validateHardwareLayerForKmap(hardware, layer) {
164
+ let valid = true;
165
+ const { modifier } = layer;
166
+ if (!validModifier(modifier)) {
167
+ this.callbacks.reportMessage(CompilerMessages.Error_InvalidModifier({ modifier, layer: layer.id }));
168
+ valid = false;
169
+ }
170
+ const keymap = Constants.HardwareToKeymap.get(hardware);
171
+ /* c8 ignore next 5 */
172
+ if (!keymap) {
173
+ // not reached due to XML validation
174
+ this.callbacks.reportMessage(CompilerMessages.Error_InvalidHardware({ form: hardware }));
175
+ valid = false;
176
+ }
177
+ const uniqueKeys = calculateUniqueKeys([...this.keyboard.keys?.key]);
178
+ if (layer.row.length > keymap.length) {
179
+ this.callbacks.reportMessage(CompilerMessages.Error_HardwareLayerHasTooManyRows());
180
+ valid = false;
181
+ }
182
+ for (let y = 0; y < layer.row.length && y < keymap.length; y++) {
183
+ const keys = layer.row[y].keys.split(" ");
184
+ if (keys.length > keymap[y].length) {
185
+ this.callbacks.reportMessage(CompilerMessages.Error_RowOnHardwareLayerHasTooManyKeys({
186
+ row: y + 1,
187
+ hardware,
188
+ modifier,
189
+ }));
190
+ valid = false;
191
+ }
192
+ let x = -1;
193
+ for (let key of keys) {
194
+ x++;
195
+ let keydef = uniqueKeys.find((x) => x.id == key);
196
+ if (!keydef) {
197
+ this.callbacks.reportMessage(CompilerMessages.Error_KeyNotFoundInKeyBag({
198
+ keyId: key,
199
+ col: x + 1,
200
+ row: y + 1,
201
+ layer: layer.id,
202
+ form: "hardware",
203
+ }));
204
+ valid = false;
205
+ continue;
206
+ }
207
+ if (!keydef.to && !keydef.gap && !keydef.switch) {
208
+ this.callbacks.reportMessage(CompilerMessages.Error_KeyMissingToGapOrSwitch({ keyId: key }));
209
+ valid = false;
210
+ continue;
211
+ }
212
+ }
213
+ }
214
+ return valid;
215
+ }
216
+ compileHardwareLayerToKmap(sections, layer, sect, hardware) {
217
+ const mod = translateLayerAttrToModifier(layer);
218
+ const keymap = Constants.HardwareToKeymap.get(hardware);
219
+ let y = -1;
220
+ for (let row of layer.row) {
221
+ y++;
222
+ const keys = row.keys.split(" ");
223
+ let x = -1;
224
+ for (let key of keys) {
225
+ x++;
226
+ // TODO-LDML: we already validated that the key exists, above.
227
+ // So here we only need the ID?
228
+ // let keydef = this.keyboard.keys?.key?.find(x => x.id == key);
229
+ sect.kmap.push({
230
+ vkey: keymap[y][x],
231
+ mod: mod,
232
+ key, // key id, to be changed into key index at finalization
233
+ });
234
+ }
235
+ }
236
+ return sect;
237
+ }
238
+ }
239
+ //# debugId=ba9b5b9f-5e86-5b2a-9cc7-30d7319a7adf
240
+ //# sourceMappingURL=keys.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/compiler/keys.ts"],"names":[],"mappings":"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"}
1
+ {"debug_id":"ba9b5b9f-5e86-5b2a-9cc7-30d7319a7adf","file":"keys.js","mappings":"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","names":[],"sourceRoot":"","sources":["../../../src/compiler/keys.ts"],"version":3}
@@ -1,10 +1,12 @@
1
- import { KMXPlus } from '@keymanapp/common-types';
2
- import { SectionCompiler } from "./section-compiler.js";
3
- import DependencySections = KMXPlus.DependencySections;
4
- import Layr = KMXPlus.Layr;
5
- export declare class LayrCompiler extends SectionCompiler {
6
- get id(): import("@keymanapp/ldml-keyboard-constants").SectionIdent;
7
- validate(): boolean;
8
- compile(sections: DependencySections): Layr;
9
- }
10
- //# sourceMappingURL=layr.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]="aafd005d-e09a-5615-9578-5487862c9dad")}catch(e){}}();
2
+ import { KMXPlus } from '@keymanapp/common-types';
3
+ import { SectionCompiler } from "./section-compiler.js";
4
+ import DependencySections = KMXPlus.DependencySections;
5
+ import Layr = KMXPlus.Layr;
6
+ export declare class LayrCompiler extends SectionCompiler {
7
+ get id(): import("@keymanapp/ldml-keyboard-constants").SectionIdent;
8
+ validate(): boolean;
9
+ compile(sections: DependencySections): Layr;
10
+ }
11
+ //# debugId=aafd005d-e09a-5615-9578-5487862c9dad
12
+ //# sourceMappingURL=layr.d.ts.map