@keymanapp/kmc-ldml 17.0.104-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 (81) hide show
  1. package/build/src/compiler/compiler-options.d.ts +11 -0
  2. package/build/src/compiler/compiler-options.d.ts.map +1 -0
  3. package/build/src/compiler/compiler-options.js +3 -0
  4. package/build/src/compiler/compiler-options.js.map +1 -0
  5. package/build/src/compiler/compiler.d.ts +38 -0
  6. package/build/src/compiler/compiler.d.ts.map +1 -0
  7. package/build/src/compiler/compiler.js +144 -0
  8. package/build/src/compiler/compiler.js.map +1 -0
  9. package/build/src/compiler/disp.d.ts +10 -0
  10. package/build/src/compiler/disp.d.ts.map +1 -0
  11. package/build/src/compiler/disp.js +37 -0
  12. package/build/src/compiler/disp.js.map +1 -0
  13. package/build/src/compiler/keymanweb-compiler.d.ts +16 -0
  14. package/build/src/compiler/keymanweb-compiler.d.ts.map +1 -0
  15. package/build/src/compiler/keymanweb-compiler.js +96 -0
  16. package/build/src/compiler/keymanweb-compiler.js.map +1 -0
  17. package/build/src/compiler/keys.d.ts +26 -0
  18. package/build/src/compiler/keys.d.ts.map +1 -0
  19. package/build/src/compiler/keys.js +207 -0
  20. package/build/src/compiler/keys.js.map +1 -0
  21. package/build/src/compiler/layr.d.ts +10 -0
  22. package/build/src/compiler/layr.d.ts.map +1 -0
  23. package/build/src/compiler/layr.js +79 -0
  24. package/build/src/compiler/layr.js.map +1 -0
  25. package/build/src/compiler/loca.d.ts +16 -0
  26. package/build/src/compiler/loca.d.ts.map +1 -0
  27. package/build/src/compiler/loca.js +58 -0
  28. package/build/src/compiler/loca.js.map +1 -0
  29. package/build/src/compiler/messages.d.ts +93 -0
  30. package/build/src/compiler/messages.d.ts.map +1 -0
  31. package/build/src/compiler/messages.js +54 -0
  32. package/build/src/compiler/messages.js.map +1 -0
  33. package/build/src/compiler/meta.d.ts +12 -0
  34. package/build/src/compiler/meta.d.ts.map +1 -0
  35. package/build/src/compiler/meta.js +58 -0
  36. package/build/src/compiler/meta.js.map +1 -0
  37. package/build/src/compiler/metadata-compiler.d.ts +13 -0
  38. package/build/src/compiler/metadata-compiler.d.ts.map +1 -0
  39. package/build/src/compiler/metadata-compiler.js +47 -0
  40. package/build/src/compiler/metadata-compiler.js.map +1 -0
  41. package/build/src/compiler/name.d.ts +10 -0
  42. package/build/src/compiler/name.d.ts.map +1 -0
  43. package/build/src/compiler/name.js +20 -0
  44. package/build/src/compiler/name.js.map +1 -0
  45. package/build/src/compiler/ordr.d.ts +12 -0
  46. package/build/src/compiler/ordr.d.ts.map +1 -0
  47. package/build/src/compiler/ordr.js +35 -0
  48. package/build/src/compiler/ordr.js.map +1 -0
  49. package/build/src/compiler/section-compiler.d.ts +12 -0
  50. package/build/src/compiler/section-compiler.d.ts.map +1 -0
  51. package/build/src/compiler/section-compiler.js +22 -0
  52. package/build/src/compiler/section-compiler.js.map +1 -0
  53. package/build/src/compiler/touch-layout-compiler.d.ts +8 -0
  54. package/build/src/compiler/touch-layout-compiler.d.ts.map +1 -0
  55. package/build/src/compiler/touch-layout-compiler.js +87 -0
  56. package/build/src/compiler/touch-layout-compiler.js.map +1 -0
  57. package/build/src/compiler/tran.d.ts +41 -0
  58. package/build/src/compiler/tran.d.ts.map +1 -0
  59. package/build/src/compiler/tran.js +102 -0
  60. package/build/src/compiler/tran.js.map +1 -0
  61. package/build/src/compiler/visual-keyboard-compiler.d.ts +7 -0
  62. package/build/src/compiler/visual-keyboard-compiler.d.ts.map +1 -0
  63. package/build/src/compiler/visual-keyboard-compiler.js +51 -0
  64. package/build/src/compiler/visual-keyboard-compiler.js.map +1 -0
  65. package/build/src/compiler/vkey.d.ts +10 -0
  66. package/build/src/compiler/vkey.d.ts.map +1 -0
  67. package/build/src/compiler/vkey.js +59 -0
  68. package/build/src/compiler/vkey.js.map +1 -0
  69. package/build/src/kpj.schema.json +127 -0
  70. package/build/src/kvks.schema.json +182 -0
  71. package/build/src/ldml-keyboard.schema.json +702 -0
  72. package/build/src/ldml-keyboardtest.schema.json +221 -0
  73. package/build/src/main.d.ts +9 -0
  74. package/build/src/main.d.ts.map +1 -0
  75. package/build/src/main.js +8 -0
  76. package/build/src/main.js.map +1 -0
  77. package/build/src/util/util.d.ts +32 -0
  78. package/build/src/util/util.d.ts.map +1 -0
  79. package/build/src/util/util.js +85 -0
  80. package/build/src/util/util.js.map +1 -0
  81. package/package.json +71 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/compiler/keys.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { KMXPlus } from '@keymanapp/common-types';
2
+ import { SectionCompiler } from "./section-compiler.js";
3
+ import GlobalSections = KMXPlus.GlobalSections;
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: GlobalSections): Layr;
9
+ }
10
+ //# sourceMappingURL=layr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layr.d.ts","sourceRoot":"","sources":["../../../src/compiler/layr.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAIxD,OAAO,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;AAC/C,OAAO,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAK3B,qBAAa,YAAa,SAAQ,eAAe;IAE/C,IAAW,EAAE,8DAEZ;IAEM,QAAQ;IAwCR,OAAO,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CA2B/C"}
@@ -0,0 +1,79 @@
1
+ import { constants } from '@keymanapp/ldml-keyboard-constants';
2
+ import { KMXPlus } from '@keymanapp/common-types';
3
+ import { CompilerMessages } from './messages.js';
4
+ import { SectionCompiler } from "./section-compiler.js";
5
+ import { translateLayerAttrToModifier, validModifier } from '../util/util.js';
6
+ var Layr = KMXPlus.Layr;
7
+ export class LayrCompiler extends SectionCompiler {
8
+ get id() {
9
+ return constants.section.layr;
10
+ }
11
+ validate() {
12
+ let valid = true;
13
+ let totalLayerCount = 0;
14
+ let hardwareLayers = 0;
15
+ // let touchLayers = 0;
16
+ this.keyboard.layers?.forEach((layers) => {
17
+ const { form } = layers;
18
+ if (form === 'touch') {
19
+ // touchLayers++;
20
+ // multiple touch layers are OK
21
+ totalLayerCount += layers.layer?.length;
22
+ // TODO-LDML: check that widths are distinct
23
+ }
24
+ else {
25
+ // hardware
26
+ hardwareLayers++;
27
+ if (hardwareLayers > 1) {
28
+ valid = false;
29
+ this.callbacks.reportMessage(CompilerMessages.Error_ExcessHardware({ form }));
30
+ }
31
+ else if (!constants.layr_list_hardware_map.get(form)) {
32
+ valid = false;
33
+ this.callbacks.reportMessage(CompilerMessages.Error_InvalidHardware({ form }));
34
+ }
35
+ }
36
+ layers.layer.forEach((layer) => {
37
+ const { modifier, id } = layer;
38
+ totalLayerCount++;
39
+ if (!validModifier(modifier)) {
40
+ this.callbacks.reportMessage(CompilerMessages.Error_InvalidModifier({ modifier, layer: id }));
41
+ valid = false;
42
+ }
43
+ });
44
+ });
45
+ if (totalLayerCount === 0) { // TODO-LDML: does not validate touch layers yet
46
+ // no layers seen anywhere
47
+ valid = false;
48
+ this.callbacks.reportMessage(CompilerMessages.Error_MustBeAtLeastOneLayerElement());
49
+ }
50
+ return valid;
51
+ }
52
+ compile(sections) {
53
+ const sect = new Layr();
54
+ sect.lists = this.keyboard.layers.map((layers) => {
55
+ const hardware = constants.layr_list_hardware_map.get(layers.form);
56
+ // Already validated in validate
57
+ const list = {
58
+ hardware,
59
+ minDeviceWidth: layers.minDeviceWidth || 0,
60
+ layers: layers.layer.map((layer) => {
61
+ const entry = {
62
+ id: sections.strs.allocString(layer.id),
63
+ mod: translateLayerAttrToModifier(layer),
64
+ rows: layer.row.map((row) => {
65
+ const erow = {
66
+ keys: row.keys.split(' ').map((id) => sections.strs.allocString(id)),
67
+ };
68
+ return erow;
69
+ }),
70
+ };
71
+ return entry;
72
+ }),
73
+ };
74
+ return list;
75
+ });
76
+ return sect;
77
+ }
78
+ }
79
+ //# sourceMappingURL=layr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layr.js","sourceRoot":"","sources":["../../../src/compiler/layr.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { KMXPlus } from '@keymanapp/common-types';
2
+ import { SectionCompiler } from "./section-compiler.js";
3
+ import GlobalSections = KMXPlus.GlobalSections;
4
+ import Loca = KMXPlus.Loca;
5
+ export declare class LocaCompiler extends SectionCompiler {
6
+ get id(): import("@keymanapp/ldml-keyboard-constants").SectionIdent;
7
+ /**
8
+ *
9
+ * @param keyboard
10
+ * @returns list of BCP 47 tags in the keyboard xml, potentially with invalid or repeated entries
11
+ */
12
+ private getLocales;
13
+ validate(): boolean;
14
+ compile(sections: GlobalSections): Loca;
15
+ }
16
+ //# sourceMappingURL=loca.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loca.d.ts","sourceRoot":"","sources":["../../../src/compiler/loca.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;AAC/C,OAAO,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAG3B,qBAAa,YAAa,SAAQ,eAAe;IAE/C,IAAW,EAAE,8DAEZ;IAED;;;;OAIG;IACH,OAAO,CAAC,UAAU,CAE+F;IAE1G,QAAQ,IAAI,OAAO;IAkBnB,OAAO,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CA0B/C"}
@@ -0,0 +1,58 @@
1
+ import { constants } from "@keymanapp/ldml-keyboard-constants";
2
+ import { KMXPlus } from '@keymanapp/common-types';
3
+ import { SectionCompiler } from "./section-compiler.js";
4
+ import { CompilerMessages } from "./messages.js";
5
+ var Loca = KMXPlus.Loca;
6
+ export class LocaCompiler extends SectionCompiler {
7
+ get id() {
8
+ return constants.section.loca;
9
+ }
10
+ /**
11
+ *
12
+ * @param keyboard
13
+ * @returns list of BCP 47 tags in the keyboard xml, potentially with invalid or repeated entries
14
+ */
15
+ getLocales = (keyboard) => [keyboard.locale].concat(Array.isArray(keyboard.locales?.locale) ? keyboard.locales.locale.map(v => v.id) : []);
16
+ validate() {
17
+ let valid = true;
18
+ const locales = this.getLocales(this.keyboard);
19
+ for (let tag of locales) {
20
+ try {
21
+ new Intl.Locale(tag);
22
+ }
23
+ catch (e) {
24
+ if (e instanceof RangeError) {
25
+ this.callbacks.reportMessage(CompilerMessages.Error_InvalidLocale({ tag }));
26
+ valid = false;
27
+ }
28
+ else {
29
+ throw e;
30
+ }
31
+ }
32
+ }
33
+ return valid;
34
+ }
35
+ compile(sections) {
36
+ let result = new Loca();
37
+ // This also minimizes locales according to Remove Likely Subtags algorithm:
38
+ // https://www.unicode.org/reports/tr35/#Likely_Subtags
39
+ const sourceLocales = this.getLocales(this.keyboard);
40
+ const locales = sourceLocales.map((sourceLocale) => {
41
+ const locale = new Intl.Locale(sourceLocale).minimize().toString();
42
+ if (locale != sourceLocale) {
43
+ this.callbacks.reportMessage(CompilerMessages.Hint_LocaleIsNotMinimalAndClean({ sourceLocale, locale }));
44
+ }
45
+ return locale;
46
+ });
47
+ // TODO: remove `as any` cast: (Intl as any): ts lib version we have doesn't
48
+ // yet include `getCanonicalLocales` but node 16 does include it so we can
49
+ // safely use it. Also well supported in modern browsers.
50
+ const canonicalLocales = Intl.getCanonicalLocales(locales);
51
+ result.locales = canonicalLocales.map(locale => sections.strs.allocString(locale));
52
+ if (result.locales.length < locales.length) {
53
+ this.callbacks.reportMessage(CompilerMessages.Hint_OneOrMoreRepeatedLocales());
54
+ }
55
+ return result;
56
+ }
57
+ }
58
+ //# sourceMappingURL=loca.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loca.js","sourceRoot":"","sources":["../../../src/compiler/loca.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAgB,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGjD,IAAO,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAG3B,MAAM,OAAO,YAAa,SAAQ,eAAe;IAE/C,IAAW,EAAE;QACX,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACK,UAAU,GAChB,CAAC,QAAoB,EAAE,EAAE,CACzB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAE1G,QAAQ;QACb,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/C,KAAI,IAAI,GAAG,IAAI,OAAO,EAAE;YACtB,IAAI;gBACF,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aACtB;YAAC,OAAM,CAAC,EAAE;gBACT,IAAG,CAAC,YAAY,UAAU,EAAE;oBAC1B,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,EAAC,GAAG,EAAC,CAAC,CAAC,CAAC;oBAC1E,KAAK,GAAG,KAAK,CAAC;iBACf;qBAAM;oBACL,MAAM,CAAC,CAAC;iBACT;aACF;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,OAAO,CAAC,QAAwB;QACrC,IAAI,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QAExB,4EAA4E;QAC5E,uDAAuD;QACvD,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,YAAoB,EAAE,EAAE;YACzD,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC;YACnE,IAAG,MAAM,IAAI,YAAY,EAAE;gBACzB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,+BAA+B,CAAC,EAAC,YAAY,EAAE,MAAM,EAAC,CAAC,CAAC,CAAC;aACxG;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,4EAA4E;QAC5E,0EAA0E;QAC1E,yDAAyD;QACzD,MAAM,gBAAgB,GAAI,IAAY,CAAC,mBAAmB,CAAC,OAAO,CAAa,CAAC;QAChF,MAAM,CAAC,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QAEnF,IAAG,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE;YACzC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,6BAA6B,EAAE,CAAC,CAAC;SAChF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -0,0 +1,93 @@
1
+ export declare class CompilerMessages {
2
+ static Error_InvalidNormalization: (o: {
3
+ form: string;
4
+ }) => import("@keymanapp/common-types").CompilerEvent;
5
+ static ERROR_InvalidNormalization: number;
6
+ static Error_InvalidLocale: (o: {
7
+ tag: string;
8
+ }) => import("@keymanapp/common-types").CompilerEvent;
9
+ static ERROR_InvalidLocale: number;
10
+ static Error_HardwareLayerHasTooManyRows: () => import("@keymanapp/common-types").CompilerEvent;
11
+ static ERROR_HardwareLayerHasTooManyRows: number;
12
+ static Error_RowOnHardwareLayerHasTooManyKeys: (o: {
13
+ row: number;
14
+ hardware: string;
15
+ modifier: string;
16
+ }) => import("@keymanapp/common-types").CompilerEvent;
17
+ static ERROR_RowOnHardwareLayerHasTooManyKeys: number;
18
+ static Error_KeyNotFoundInKeyBag: (o: {
19
+ keyId: string;
20
+ col: number;
21
+ row: number;
22
+ layer: string;
23
+ form: string;
24
+ }) => import("@keymanapp/common-types").CompilerEvent;
25
+ static ERROR_KeyNotFoundInKeyBag: number;
26
+ static Hint_OneOrMoreRepeatedLocales: () => import("@keymanapp/common-types").CompilerEvent;
27
+ static HINT_OneOrMoreRepeatedLocales: number;
28
+ static Error_InvalidFile: (o: {
29
+ errorText: string;
30
+ }) => import("@keymanapp/common-types").CompilerEvent;
31
+ static ERROR_InvalidFile: number;
32
+ static Hint_LocaleIsNotMinimalAndClean: (o: {
33
+ sourceLocale: string;
34
+ locale: string;
35
+ }) => import("@keymanapp/common-types").CompilerEvent;
36
+ static HINT_LocaleIsNotMinimalAndClean: number;
37
+ static Error_VkeyIsNotValid: (o: {
38
+ vkey: string;
39
+ }) => import("@keymanapp/common-types").CompilerEvent;
40
+ static ERROR_VkeyIsNotValid: number;
41
+ static Hint_VkeyIsRedundant: (o: {
42
+ vkey: string;
43
+ }) => import("@keymanapp/common-types").CompilerEvent;
44
+ static HINT_VkeyIsRedundant: number;
45
+ static Error_VkeyIsRepeated: (o: {
46
+ vkey: string;
47
+ }) => import("@keymanapp/common-types").CompilerEvent;
48
+ static ERROR_VkeyIsRepeated: number;
49
+ static Info_MultipleVkeysHaveSameTarget: (o: {
50
+ vkey: string;
51
+ }) => import("@keymanapp/common-types").CompilerEvent;
52
+ static INFO_MultipleVkeysHaveSameTarget: number;
53
+ static Error_InvalidVersion: (o: {
54
+ version: string;
55
+ }) => import("@keymanapp/common-types").CompilerEvent;
56
+ static ERROR_InvalidVersion: number;
57
+ static Error_MustBeAtLeastOneLayerElement: () => import("@keymanapp/common-types").CompilerEvent;
58
+ static ERROR_MustBeAtLeastOneLayerElement: number;
59
+ static Fatal_SectionCompilerFailed: (o: {
60
+ sect: string;
61
+ }) => import("@keymanapp/common-types").CompilerEvent;
62
+ static FATAL_SectionCompilerFailed: number;
63
+ static Error_DisplayIsRepeated: (o: {
64
+ to: string;
65
+ }) => import("@keymanapp/common-types").CompilerEvent;
66
+ static ERROR_DisplayIsRepeated: number;
67
+ static Error_KeyMissingToGapOrSwitch: (o: {
68
+ keyId: string;
69
+ }) => import("@keymanapp/common-types").CompilerEvent;
70
+ static ERROR_KeyMissingToGapOrSwitch: number;
71
+ static Error_ExcessHardware: (o: {
72
+ form: string;
73
+ }) => import("@keymanapp/common-types").CompilerEvent;
74
+ static ERROR_ExcessHardware: number;
75
+ static Error_InvalidHardware: (o: {
76
+ form: string;
77
+ }) => import("@keymanapp/common-types").CompilerEvent;
78
+ /**
79
+ * Note: may not hit this due to XML validation.
80
+ */
81
+ static ERROR_InvalidHardware: number;
82
+ static Error_InvalidModifier: (o: {
83
+ layer: string;
84
+ modifier: string;
85
+ }) => import("@keymanapp/common-types").CompilerEvent;
86
+ static ERROR_InvalidModifier: number;
87
+ static Error_MissingFlicks: (o: {
88
+ flicks: string;
89
+ id: string;
90
+ }) => import("@keymanapp/common-types").CompilerEvent;
91
+ static ERROR_MissingFlicks: number;
92
+ }
93
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/compiler/messages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { CompilerErrorNamespace, CompilerErrorSeverity, CompilerMessageSpec as m } from "@keymanapp/common-types";
2
+ const SevInfo = CompilerErrorSeverity.Info | CompilerErrorNamespace.LdmlKeyboardCompiler;
3
+ const SevHint = CompilerErrorSeverity.Hint | CompilerErrorNamespace.LdmlKeyboardCompiler;
4
+ // const SevWarn = CompilerErrorSeverity.Warn | CompilerErrorNamespace.KeyboardCompiler;
5
+ const SevError = CompilerErrorSeverity.Error | CompilerErrorNamespace.LdmlKeyboardCompiler;
6
+ const SevFatal = CompilerErrorSeverity.Fatal | CompilerErrorNamespace.LdmlKeyboardCompiler;
7
+ export class CompilerMessages {
8
+ static Error_InvalidNormalization = (o) => m(this.ERROR_InvalidNormalization, `Invalid normalization form '${o.form}`);
9
+ static ERROR_InvalidNormalization = SevError | 0x0001;
10
+ static Error_InvalidLocale = (o) => m(this.ERROR_InvalidLocale, `Invalid BCP 47 locale form '${o.tag}'`);
11
+ static ERROR_InvalidLocale = SevError | 0x0002;
12
+ static Error_HardwareLayerHasTooManyRows = () => m(this.ERROR_HardwareLayerHasTooManyRows, `'hardware' layer has too many rows`);
13
+ static ERROR_HardwareLayerHasTooManyRows = SevError | 0x0003;
14
+ static Error_RowOnHardwareLayerHasTooManyKeys = (o) => m(this.ERROR_RowOnHardwareLayerHasTooManyKeys, `Row #${o.row} on 'hardware' ${o.hardware} layer for modifier ${o.modifier || 'none'} has too many keys`);
15
+ static ERROR_RowOnHardwareLayerHasTooManyKeys = SevError | 0x0004;
16
+ static Error_KeyNotFoundInKeyBag = (o) => m(this.ERROR_KeyNotFoundInKeyBag, `Key '${o.keyId}' in position #${o.col} on row #${o.row} of layer ${o.layer}, form '${o.form}' not found in key bag`);
17
+ static ERROR_KeyNotFoundInKeyBag = SevError | 0x0005;
18
+ static Hint_OneOrMoreRepeatedLocales = () => m(this.HINT_OneOrMoreRepeatedLocales, `After minimization, one or more locales is repeated and has been removed`);
19
+ static HINT_OneOrMoreRepeatedLocales = SevHint | 0x0006;
20
+ static Error_InvalidFile = (o) => m(this.ERROR_InvalidFile, `The source file has an invalid structure: ${o.errorText}`);
21
+ static ERROR_InvalidFile = SevError | 0x0007;
22
+ static Hint_LocaleIsNotMinimalAndClean = (o) => m(this.HINT_LocaleIsNotMinimalAndClean, `Locale '${o.sourceLocale}' is not minimal or correctly formatted and should be '${o.locale}'`);
23
+ static HINT_LocaleIsNotMinimalAndClean = SevHint | 0x0008;
24
+ static Error_VkeyIsNotValid = (o) => m(this.ERROR_VkeyIsNotValid, `Virtual key '${o.vkey}' is not found in the CLDR VKey Enum table.`);
25
+ static ERROR_VkeyIsNotValid = SevError | 0x0009;
26
+ static Hint_VkeyIsRedundant = (o) => m(this.HINT_VkeyIsRedundant, `Virtual key '${o.vkey}' is mapped to itself, which is redundant.`);
27
+ static HINT_VkeyIsRedundant = SevHint | 0x000A;
28
+ static Error_VkeyIsRepeated = (o) => m(this.ERROR_VkeyIsRepeated, `Virtual key '${o.vkey}' has more than one vkey entry.`);
29
+ static ERROR_VkeyIsRepeated = SevError | 0x000B;
30
+ static Info_MultipleVkeysHaveSameTarget = (o) => m(this.INFO_MultipleVkeysHaveSameTarget, `Target virtual key '${o.vkey}' has multiple source mappings, which may be an error.`);
31
+ static INFO_MultipleVkeysHaveSameTarget = SevInfo | 0x000C;
32
+ static Error_InvalidVersion = (o) => m(this.ERROR_InvalidVersion, `Version number '${o.version}' must be a semantic version format string.`);
33
+ static ERROR_InvalidVersion = SevError | 0x000D;
34
+ static Error_MustBeAtLeastOneLayerElement = () => m(this.ERROR_MustBeAtLeastOneLayerElement, `The source file must contain at least one layer element.`);
35
+ static ERROR_MustBeAtLeastOneLayerElement = SevError | 0x000E;
36
+ static Fatal_SectionCompilerFailed = (o) => m(this.FATAL_SectionCompilerFailed, `The compiler for '${o.sect}' failed unexpectedly.`);
37
+ static FATAL_SectionCompilerFailed = SevFatal | 0x000F;
38
+ static Error_DisplayIsRepeated = (o) => m(this.ERROR_DisplayIsRepeated, `display to='${o.to}' has more than one display entry.`);
39
+ static ERROR_DisplayIsRepeated = SevError | 0x0010;
40
+ static Error_KeyMissingToGapOrSwitch = (o) => m(this.ERROR_KeyMissingToGapOrSwitch, `key id='${o.keyId}' must have either to=, gap=, or switch=.`);
41
+ static ERROR_KeyMissingToGapOrSwitch = SevError | 0x0011;
42
+ static Error_ExcessHardware = (o) => m(this.ERROR_ExcessHardware, `layers form=${o.form}: Can only have one non-'touch' element`);
43
+ static ERROR_ExcessHardware = SevError | 0x0012;
44
+ static Error_InvalidHardware = (o) => m(this.ERROR_InvalidHardware, `layers has invalid value form=${o.form}`);
45
+ /**
46
+ * Note: may not hit this due to XML validation.
47
+ */
48
+ static ERROR_InvalidHardware = SevError | 0x0013;
49
+ static Error_InvalidModifier = (o) => m(this.ERROR_InvalidModifier, `layer has invalid modifier='${o.modifier}' on layer id=${o.layer}`);
50
+ static ERROR_InvalidModifier = SevError | 0x0014;
51
+ static Error_MissingFlicks = (o) => m(this.ERROR_MissingFlicks, `key id=${o.id} refers to missing flicks=${o.flicks}`);
52
+ static ERROR_MissingFlicks = SevError | 0x0015;
53
+ }
54
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/compiler/messages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { KMXPlus } from '@keymanapp/common-types';
2
+ import { SectionCompiler } from "./section-compiler.js";
3
+ import GlobalSections = KMXPlus.GlobalSections;
4
+ import Meta = KMXPlus.Meta;
5
+ export declare class MetaCompiler extends SectionCompiler {
6
+ get id(): import("@keymanapp/ldml-keyboard-constants").SectionIdent;
7
+ validate(): boolean;
8
+ private validateVersion;
9
+ private validateNormalization;
10
+ compile(sections: GlobalSections): Meta;
11
+ }
12
+ //# sourceMappingURL=meta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/compiler/meta.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAIlD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;AAC/C,OAAO,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAI3B,qBAAa,YAAa,SAAQ,eAAe;IAE/C,IAAW,EAAE,8DAEZ;IAEM,QAAQ,IAAI,OAAO;IAS1B,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,qBAAqB;IAUtB,OAAO,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CAc/C"}
@@ -0,0 +1,58 @@
1
+ import { constants } from "@keymanapp/ldml-keyboard-constants";
2
+ import { KMXPlus } from '@keymanapp/common-types';
3
+ import { isValidEnumValue } from "../util/util.js";
4
+ import { CompilerMessages } from "./messages.js";
5
+ import { SectionCompiler } from "./section-compiler.js";
6
+ import semver from "semver";
7
+ var Meta = KMXPlus.Meta;
8
+ var Meta_NormalizationForm = KMXPlus.Meta_NormalizationForm;
9
+ var KeyboardSettings = KMXPlus.KeyboardSettings;
10
+ export class MetaCompiler extends SectionCompiler {
11
+ get id() {
12
+ return constants.section.meta;
13
+ }
14
+ validate() {
15
+ let valid = true;
16
+ valid &&= this.validateNormalization(this.keyboard.info?.normalization);
17
+ valid &&= this.validateVersion(this.keyboard.version?.number);
18
+ return valid;
19
+ }
20
+ validateVersion(versionNumber) {
21
+ if (versionNumber !== undefined) {
22
+ if (versionNumber.match(/^[=v]/i)) {
23
+ // semver ignores a preceding '=' or 'v'
24
+ this.callbacks.reportMessage(CompilerMessages.Error_InvalidVersion({ version: versionNumber }));
25
+ return false;
26
+ }
27
+ if (!semver.parse(versionNumber, { loose: false })) {
28
+ this.callbacks.reportMessage(CompilerMessages.Error_InvalidVersion({ version: versionNumber }));
29
+ return false;
30
+ }
31
+ }
32
+ return true;
33
+ }
34
+ validateNormalization(normalization) {
35
+ if (normalization !== undefined) {
36
+ if (!isValidEnumValue(Meta_NormalizationForm, normalization)) {
37
+ this.callbacks.reportMessage(CompilerMessages.Error_InvalidNormalization({ form: normalization }));
38
+ return false;
39
+ }
40
+ }
41
+ return true;
42
+ }
43
+ compile(sections) {
44
+ let result = new Meta();
45
+ result.author = sections.strs.allocString(this.keyboard.info?.author);
46
+ result.conform = sections.strs.allocString(this.keyboard.conformsTo);
47
+ result.layout = sections.strs.allocString(this.keyboard.info?.layout);
48
+ result.normalization = sections.strs.allocString(this.keyboard.info?.normalization);
49
+ result.indicator = sections.strs.allocString(this.keyboard.info?.indicator);
50
+ result.version = sections.strs.allocString(this.keyboard.version?.number ?? "0.0.0");
51
+ result.settings =
52
+ (this.keyboard.settings?.fallback == "omit" ? KeyboardSettings.fallback : 0) |
53
+ (this.keyboard.settings?.transformFailure == "omit" ? KeyboardSettings.transformFailure : 0) |
54
+ (this.keyboard.settings?.transformPartial == "hide" ? KeyboardSettings.transformPartial : 0);
55
+ return result;
56
+ }
57
+ }
58
+ //# sourceMappingURL=meta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta.js","sourceRoot":"","sources":["../../../src/compiler/meta.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { KMX, KMXPlus } from '@keymanapp/common-types';
2
+ import CompilerOptions from "./compiler-options.js";
3
+ import KMXPlusData = KMXPlus.KMXPlusData;
4
+ import KEYBOARD = KMX.KEYBOARD;
5
+ export default class KMXPlusMetadataCompiler {
6
+ /**
7
+ * Look for metadata fields in the KMXPlus data and copy them
8
+ * through to the relevant KMX stores
9
+ * @param kmxplus const KMXPlusData
10
+ */
11
+ static addKmxMetadata(kmxplus: KMXPlusData, keyboard: KEYBOARD, options: CompilerOptions): void;
12
+ }
13
+ //# sourceMappingURL=metadata-compiler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-compiler.d.ts","sourceRoot":"","sources":["../../../src/compiler/metadata-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,eAAe,MAAM,uBAAuB,CAAC;AAGpD,OAAO,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;AAEzC,OAAO,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;AAE/B,MAAM,CAAC,OAAO,OAAO,uBAAuB;IAC1C;;;;OAIG;WACW,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI;CA0CvG"}
@@ -0,0 +1,47 @@
1
+ import { KMX } from '@keymanapp/common-types';
2
+ import KEYMAN_VERSION from "@keymanapp/keyman-version";
3
+ var KMXFile = KMX.KMXFile;
4
+ export default class KMXPlusMetadataCompiler {
5
+ /**
6
+ * Look for metadata fields in the KMXPlus data and copy them
7
+ * through to the relevant KMX stores
8
+ * @param kmxplus const KMXPlusData
9
+ */
10
+ static addKmxMetadata(kmxplus, keyboard, options) {
11
+ // Order of stores is not significant by kmx spec, but kmxplus compiler will
12
+ // always store according to dwSystemID binary order for non-zero
13
+ // dwSystemID, then by dpName binary order, and finally by dpString binary
14
+ // order
15
+ // TSS_NAME = 7
16
+ // TSS_COMPILEDVERSION = 20
17
+ // TSS_KEYBOARDVERSION = 36
18
+ // TSS_TARGETS = 38
19
+ // TSS_NAME: User friendly name of keyboard
20
+ keyboard.stores.push({
21
+ dpName: '&NAME',
22
+ dpString: kmxplus.name?.names?.[0]?.value ?? 'unknown',
23
+ dwSystemID: KMXFile.TSS_NAME
24
+ });
25
+ if (options.addCompilerVersion) {
26
+ // TSS_COMPILEDVERSION: version of the compiler
27
+ keyboard.stores.push({
28
+ dpName: '',
29
+ dpString: KEYMAN_VERSION.VERSION_WITH_TAG,
30
+ dwSystemID: KMXFile.TSS_COMPILEDVERSION
31
+ });
32
+ }
33
+ // TSS_KEYBOARDVERSION: Version of the keyboard, should be semver
34
+ keyboard.stores.push({
35
+ dpName: '&KEYBOARDVERSION',
36
+ dpString: kmxplus.meta?.version?.value ?? '1.0',
37
+ dwSystemID: KMXFile.TSS_KEYBOARDVERSION
38
+ });
39
+ // TSS_TARGETS: which platforms are supported
40
+ keyboard.stores.push({
41
+ dpName: '&TARGETS',
42
+ dpString: 'desktop',
43
+ dwSystemID: KMXFile.TSS_TARGETS
44
+ });
45
+ }
46
+ }
47
+ //# sourceMappingURL=metadata-compiler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-compiler.js","sourceRoot":"","sources":["../../../src/compiler/metadata-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAW,MAAM,yBAAyB,CAAC;AAEvD,OAAO,cAAc,MAAM,2BAA2B,CAAC;AAGvD,IAAO,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;AAG7B,MAAM,CAAC,OAAO,OAAO,uBAAuB;IAC1C;;;;OAIG;IACI,MAAM,CAAC,cAAc,CAAC,OAAoB,EAAE,QAAkB,EAAE,OAAwB;QAC7F,4EAA4E;QAC5E,iEAAiE;QACjE,0EAA0E;QAC1E,QAAQ;QAER,eAAe;QACf,2BAA2B;QAC3B,2BAA2B;QAC3B,mBAAmB;QAEnB,2CAA2C;QAC3C,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;YACnB,MAAM,EAAE,OAAO;YACf,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,SAAS;YACtD,UAAU,EAAE,OAAO,CAAC,QAAQ;SAC7B,CAAC,CAAC;QAEH,IAAG,OAAO,CAAC,kBAAkB,EAAE;YAC7B,+CAA+C;YAC/C,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;gBACnB,MAAM,EAAE,EAAE;gBACV,QAAQ,EAAE,cAAc,CAAC,gBAAgB;gBACzC,UAAU,EAAE,OAAO,CAAC,mBAAmB;aACxC,CAAC,CAAC;SACJ;QAED,iEAAiE;QACjE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;YACnB,MAAM,EAAE,kBAAkB;YAC1B,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK;YAC/C,UAAU,EAAE,OAAO,CAAC,mBAAmB;SACxC,CAAC,CAAC;QAEH,6CAA6C;QAC7C,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;YACnB,MAAM,EAAE,UAAU;YAClB,QAAQ,EAAE,SAAS;YACnB,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC,CAAC,CAAC;IACL,CAAC;CAEF"}
@@ -0,0 +1,10 @@
1
+ import { KMXPlus } from '@keymanapp/common-types';
2
+ import { SectionCompiler } from "./section-compiler.js";
3
+ import GlobalSections = KMXPlus.GlobalSections;
4
+ import Name = KMXPlus.Name;
5
+ export declare class NameCompiler extends SectionCompiler {
6
+ get id(): import("@keymanapp/ldml-keyboard-constants").SectionIdent;
7
+ validate(): boolean;
8
+ compile(sections: GlobalSections): Name;
9
+ }
10
+ //# sourceMappingURL=name.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"name.d.ts","sourceRoot":"","sources":["../../../src/compiler/name.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;AAC/C,OAAO,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAE3B,qBAAa,YAAa,SAAQ,eAAe;IAE/C,IAAW,EAAE,8DAEZ;IAEM,QAAQ,IAAI,OAAO;IAMnB,OAAO,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CAK/C"}
@@ -0,0 +1,20 @@
1
+ import { constants } from "@keymanapp/ldml-keyboard-constants";
2
+ import { KMXPlus } from '@keymanapp/common-types';
3
+ import { SectionCompiler } from "./section-compiler.js";
4
+ var Name = KMXPlus.Name;
5
+ export class NameCompiler extends SectionCompiler {
6
+ get id() {
7
+ return constants.section.name;
8
+ }
9
+ validate() {
10
+ let valid = true;
11
+ valid = (this.keyboard.names?.name?.length ?? 0) > 0;
12
+ return valid;
13
+ }
14
+ compile(sections) {
15
+ let result = new Name();
16
+ result.names = this.keyboard.names?.name?.map(v => sections.strs.allocString(v.value)) ?? [];
17
+ return result;
18
+ }
19
+ }
20
+ //# sourceMappingURL=name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"name.js","sourceRoot":"","sources":["../../../src/compiler/name.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,IAAO,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAE3B,MAAM,OAAO,YAAa,SAAQ,eAAe;IAE/C,IAAW,EAAE;QACX,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;IAChC,CAAC;IAEM,QAAQ;QACb,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,KAAK,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACrD,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,OAAO,CAAC,QAAwB;QACrC,IAAI,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7F,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -0,0 +1,12 @@
1
+ import { KMXPlus } from '@keymanapp/common-types';
2
+ import { SectionCompiler } from "./section-compiler.js";
3
+ import GlobalSections = KMXPlus.GlobalSections;
4
+ import Ordr = KMXPlus.Ordr;
5
+ export declare class OrdrCompiler extends SectionCompiler {
6
+ get id(): import("@keymanapp/ldml-keyboard-constants").SectionIdent;
7
+ validate(): boolean;
8
+ private compileReorder;
9
+ private compileReorders;
10
+ compile(sections: GlobalSections): Ordr;
11
+ }
12
+ //# sourceMappingURL=ordr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ordr.d.ts","sourceRoot":"","sources":["../../../src/compiler/ordr.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAgB,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;AAC/C,OAAO,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAK3B,qBAAa,YAAa,SAAQ,eAAe;IAE/C,IAAW,EAAE,8DAEZ;IAEM,QAAQ,IAAI,OAAO;IAO1B,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,eAAe;IAYhB,OAAO,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CAG/C"}
@@ -0,0 +1,35 @@
1
+ import { constants } from "@keymanapp/ldml-keyboard-constants";
2
+ import { KMXPlus } from '@keymanapp/common-types';
3
+ import { SectionCompiler } from "./section-compiler.js";
4
+ var Ordr = KMXPlus.Ordr;
5
+ var OrdrItem = KMXPlus.OrdrItem;
6
+ export class OrdrCompiler extends SectionCompiler {
7
+ get id() {
8
+ return constants.section.ordr;
9
+ }
10
+ validate() {
11
+ let valid = true;
12
+ // TODO-LDML: linting here should check for identical before+from, but this involves a double-parse which is ugly
13
+ // TODO-LDML: unicodesets means that either we fully parse them and verify conflicting rules or the linting is imperfect
14
+ return valid;
15
+ }
16
+ compileReorder(sections, reorder) {
17
+ let result = new OrdrItem();
18
+ result.elements = sections.elem.allocElementString(sections.strs, reorder.from, reorder.order, reorder.tertiary, reorder.tertiary_base, reorder.prebase);
19
+ result.before = sections.elem.allocElementString(sections.strs, reorder.before);
20
+ return result;
21
+ }
22
+ compileReorders(sections, reorders) {
23
+ let result = new Ordr();
24
+ if (reorders?.reorder) {
25
+ for (let reorder of reorders.reorder) {
26
+ result.items.push(this.compileReorder(sections, reorder));
27
+ }
28
+ }
29
+ return result;
30
+ }
31
+ compile(sections) {
32
+ return this.compileReorders(sections, this.keyboard.reorders);
33
+ }
34
+ }
35
+ //# sourceMappingURL=ordr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ordr.js","sourceRoot":"","sources":["../../../src/compiler/ordr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAgB,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,IAAO,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAC3B,IAAO,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;AAInC,MAAM,OAAO,YAAa,SAAQ,eAAe;IAE/C,IAAW,EAAE;QACX,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;IAChC,CAAC;IAEM,QAAQ;QACb,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,iHAAiH;QACjH,wHAAwH;QACxH,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,cAAc,CAAC,QAAwB,EAAE,OAAkB;QACjE,IAAI,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACzJ,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAChF,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,eAAe,CAAC,QAAwB,EAAE,QAAoB;QACpE,IAAI,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QAExB,IAAG,QAAQ,EAAE,OAAO,EAAE;YACpB,KAAI,IAAI,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE;gBACnC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;aAC3D;SACF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,OAAO,CAAC,QAAwB;QACrC,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChE,CAAC;CACF"}