@keymanapp/common-types 18.0.16-alpha → 18.0.18-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 (147) hide show
  1. package/build/src/consts/virtual-key-constants.js +222 -221
  2. package/build/src/consts/virtual-key-constants.js.map +1 -1
  3. package/build/src/keyman-touch-layout/keyman-touch-layout-file-reader.js +73 -72
  4. package/build/src/keyman-touch-layout/keyman-touch-layout-file-reader.js.map +1 -1
  5. package/build/src/keyman-touch-layout/keyman-touch-layout-file-writer.js +121 -120
  6. package/build/src/keyman-touch-layout/keyman-touch-layout-file-writer.js.map +1 -1
  7. package/build/src/keyman-touch-layout/keyman-touch-layout-file.js +55 -54
  8. package/build/src/keyman-touch-layout/keyman-touch-layout-file.js.map +1 -1
  9. package/build/src/kmx/element-string.d.ts.map +1 -1
  10. package/build/src/kmx/element-string.js +126 -120
  11. package/build/src/kmx/element-string.js.map +1 -1
  12. package/build/src/kmx/keyman-targets.js +80 -79
  13. package/build/src/kmx/keyman-targets.js.map +1 -1
  14. package/build/src/kmx/kmx-builder.js +190 -189
  15. package/build/src/kmx/kmx-builder.js.map +1 -1
  16. package/build/src/kmx/kmx-file-reader.js +135 -134
  17. package/build/src/kmx/kmx-file-reader.js.map +1 -1
  18. package/build/src/kmx/kmx-plus-builder/build-disp.js +28 -27
  19. package/build/src/kmx/kmx-plus-builder/build-disp.js.map +1 -1
  20. package/build/src/kmx/kmx-plus-builder/build-elem.js +90 -89
  21. package/build/src/kmx/kmx-plus-builder/build-elem.js.map +1 -1
  22. package/build/src/kmx/kmx-plus-builder/build-keys.js +108 -107
  23. package/build/src/kmx/kmx-plus-builder/build-keys.js.map +1 -1
  24. package/build/src/kmx/kmx-plus-builder/build-layr.js +102 -101
  25. package/build/src/kmx/kmx-plus-builder/build-layr.js.map +1 -1
  26. package/build/src/kmx/kmx-plus-builder/build-list.js +67 -66
  27. package/build/src/kmx/kmx-plus-builder/build-list.js.map +1 -1
  28. package/build/src/kmx/kmx-plus-builder/build-loca.js +22 -21
  29. package/build/src/kmx/kmx-plus-builder/build-loca.js.map +1 -1
  30. package/build/src/kmx/kmx-plus-builder/build-meta.js +23 -22
  31. package/build/src/kmx/kmx-plus-builder/build-meta.js.map +1 -1
  32. package/build/src/kmx/kmx-plus-builder/build-sect.js +16 -15
  33. package/build/src/kmx/kmx-plus-builder/build-sect.js.map +1 -1
  34. package/build/src/kmx/kmx-plus-builder/build-strs.js +47 -46
  35. package/build/src/kmx/kmx-plus-builder/build-strs.js.map +1 -1
  36. package/build/src/kmx/kmx-plus-builder/build-tran.js +70 -69
  37. package/build/src/kmx/kmx-plus-builder/build-tran.js.map +1 -1
  38. package/build/src/kmx/kmx-plus-builder/build-uset.js +61 -60
  39. package/build/src/kmx/kmx-plus-builder/build-uset.js.map +1 -1
  40. package/build/src/kmx/kmx-plus-builder/build-vars.js +49 -48
  41. package/build/src/kmx/kmx-plus-builder/build-vars.js.map +1 -1
  42. package/build/src/kmx/kmx-plus-builder/builder-section.js +5 -4
  43. package/build/src/kmx/kmx-plus-builder/builder-section.js.map +1 -1
  44. package/build/src/kmx/kmx-plus-builder/kmx-plus-builder.js +138 -137
  45. package/build/src/kmx/kmx-plus-builder/kmx-plus-builder.js.map +1 -1
  46. package/build/src/kmx/kmx-plus.d.ts +3 -2
  47. package/build/src/kmx/kmx-plus.d.ts.map +1 -1
  48. package/build/src/kmx/kmx-plus.js +831 -823
  49. package/build/src/kmx/kmx-plus.js.map +1 -1
  50. package/build/src/kmx/kmx.d.ts.map +1 -1
  51. package/build/src/kmx/kmx.js +303 -299
  52. package/build/src/kmx/kmx.js.map +1 -1
  53. package/build/src/kmx/string-list.js +89 -88
  54. package/build/src/kmx/string-list.js.map +1 -1
  55. package/build/src/kpj/keyman-developer-project.js +196 -195
  56. package/build/src/kpj/keyman-developer-project.js.map +1 -1
  57. package/build/src/kpj/kpj-file-reader.js +120 -119
  58. package/build/src/kpj/kpj-file-reader.js.map +1 -1
  59. package/build/src/kpj/kpj-file.js +13 -12
  60. package/build/src/kpj/kpj-file.js.map +1 -1
  61. package/build/src/kvk/kvk-file-reader.js +38 -37
  62. package/build/src/kvk/kvk-file-reader.js.map +1 -1
  63. package/build/src/kvk/kvk-file-writer.js +78 -77
  64. package/build/src/kvk/kvk-file-writer.js.map +1 -1
  65. package/build/src/kvk/kvk-file.js +91 -90
  66. package/build/src/kvk/kvk-file.js.map +1 -1
  67. package/build/src/kvk/kvks-file-reader.js +176 -175
  68. package/build/src/kvk/kvks-file-reader.js.map +1 -1
  69. package/build/src/kvk/kvks-file-writer.js +107 -106
  70. package/build/src/kvk/kvks-file-writer.js.map +1 -1
  71. package/build/src/kvk/kvks-file.js +12 -11
  72. package/build/src/kvk/kvks-file.js.map +1 -1
  73. package/build/src/kvk/visual-keyboard.js +76 -75
  74. package/build/src/kvk/visual-keyboard.js.map +1 -1
  75. package/build/src/ldml-keyboard/ldml-keyboard-testdata-xml.js +22 -21
  76. package/build/src/ldml-keyboard/ldml-keyboard-testdata-xml.js.map +1 -1
  77. package/build/src/ldml-keyboard/ldml-keyboard-xml-reader.js +410 -409
  78. package/build/src/ldml-keyboard/ldml-keyboard-xml-reader.js.map +1 -1
  79. package/build/src/ldml-keyboard/ldml-keyboard-xml.js +58 -57
  80. package/build/src/ldml-keyboard/ldml-keyboard-xml.js.map +1 -1
  81. package/build/src/ldml-keyboard/pattern-parser.js +491 -490
  82. package/build/src/ldml-keyboard/pattern-parser.js.map +1 -1
  83. package/build/src/ldml-keyboard/unicodeset-parser-api.js +30 -29
  84. package/build/src/ldml-keyboard/unicodeset-parser-api.js.map +1 -1
  85. package/build/src/main.js +35 -34
  86. package/build/src/main.js.map +1 -1
  87. package/build/src/package/kmp-json-file.js +4 -3
  88. package/build/src/package/kmp-json-file.js.map +1 -1
  89. package/build/src/package/kps-file.js +18 -17
  90. package/build/src/package/kps-file.js.map +1 -1
  91. package/build/src/schema-validators.js +28 -27
  92. package/build/src/schema-validators.js.map +1 -1
  93. package/build/src/schemas/displaymap.schema.js +38 -37
  94. package/build/src/schemas/displaymap.schema.js.map +1 -1
  95. package/build/src/schemas/displaymap.schema.validator.mjs +267 -266
  96. package/build/src/schemas/displaymap.schema.validator.mjs.map +1 -1
  97. package/build/src/schemas/keyboard_info.schema.js +101 -100
  98. package/build/src/schemas/keyboard_info.schema.js.map +1 -1
  99. package/build/src/schemas/keyboard_info.schema.validator.mjs +1161 -1160
  100. package/build/src/schemas/keyboard_info.schema.validator.mjs.map +1 -1
  101. package/build/src/schemas/keyman-touch-layout.clean.spec.js +154 -153
  102. package/build/src/schemas/keyman-touch-layout.clean.spec.js.map +1 -1
  103. package/build/src/schemas/keyman-touch-layout.clean.spec.validator.mjs +1095 -1094
  104. package/build/src/schemas/keyman-touch-layout.clean.spec.validator.mjs.map +1 -1
  105. package/build/src/schemas/keyman-touch-layout.spec.js +143 -142
  106. package/build/src/schemas/keyman-touch-layout.spec.js.map +1 -1
  107. package/build/src/schemas/keyman-touch-layout.spec.validator.mjs +1437 -1436
  108. package/build/src/schemas/keyman-touch-layout.spec.validator.mjs.map +1 -1
  109. package/build/src/schemas/kmp.schema.js +356 -355
  110. package/build/src/schemas/kmp.schema.js.map +1 -1
  111. package/build/src/schemas/kmp.schema.validator.mjs +1628 -1627
  112. package/build/src/schemas/kmp.schema.validator.mjs.map +1 -1
  113. package/build/src/schemas/kpj-9.0.schema.js +134 -133
  114. package/build/src/schemas/kpj-9.0.schema.js.map +1 -1
  115. package/build/src/schemas/kpj-9.0.schema.validator.mjs +656 -655
  116. package/build/src/schemas/kpj-9.0.schema.validator.mjs.map +1 -1
  117. package/build/src/schemas/kpj.schema.js +132 -131
  118. package/build/src/schemas/kpj.schema.js.map +1 -1
  119. package/build/src/schemas/kpj.schema.validator.mjs +516 -515
  120. package/build/src/schemas/kpj.schema.validator.mjs.map +1 -1
  121. package/build/src/schemas/kvks.schema.js +185 -184
  122. package/build/src/schemas/kvks.schema.js.map +1 -1
  123. package/build/src/schemas/kvks.schema.validator.mjs +626 -625
  124. package/build/src/schemas/kvks.schema.validator.mjs.map +1 -1
  125. package/build/src/schemas/ldml-keyboard3.schema.js +699 -698
  126. package/build/src/schemas/ldml-keyboard3.schema.js.map +1 -1
  127. package/build/src/schemas/ldml-keyboard3.schema.validator.mjs +3118 -3117
  128. package/build/src/schemas/ldml-keyboard3.schema.validator.mjs.map +1 -1
  129. package/build/src/schemas/ldml-keyboardtest3.schema.js +228 -227
  130. package/build/src/schemas/ldml-keyboardtest3.schema.js.map +1 -1
  131. package/build/src/schemas/ldml-keyboardtest3.schema.validator.mjs +745 -744
  132. package/build/src/schemas/ldml-keyboardtest3.schema.validator.mjs.map +1 -1
  133. package/build/src/schemas.js +26 -25
  134. package/build/src/schemas.js.map +1 -1
  135. package/build/src/util/common-events.js +29 -28
  136. package/build/src/util/common-events.js.map +1 -1
  137. package/build/src/util/compiler-interfaces.js +381 -380
  138. package/build/src/util/compiler-interfaces.js.map +1 -1
  139. package/build/src/util/errors.js +8 -7
  140. package/build/src/util/errors.js.map +1 -1
  141. package/build/src/util/file-types.js +143 -142
  142. package/build/src/util/file-types.js.map +1 -1
  143. package/build/src/util/util.d.ts +4 -0
  144. package/build/src/util/util.d.ts.map +1 -1
  145. package/build/src/util/util.js +369 -362
  146. package/build/src/util/util.js.map +1 -1
  147. package/package.json +2 -2
@@ -1,121 +1,122 @@
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]="24b28ff1-7508-5d81-bcb7-adf68fec2d54")}catch(e){}}();
2
- ;
3
- export class TouchLayoutFileWriter {
4
- options;
5
- constructor(options) {
6
- this.options = { ...options };
7
- }
8
- /**
9
- * Writes the touch layout to a .keyman-touch-layout JSON file
10
- * @param source TouchLayoutFile
11
- * @returns Uint8Array, the .keyman-touch-layout file
12
- */
13
- write(source) {
14
- const output = this.toJSONString(source);
15
- const encoder = new TextEncoder();
16
- return encoder.encode(output);
17
- }
18
- /**
19
- * Gets the output as a JSON string
20
- */
21
- toJSONString(source) {
22
- return JSON.stringify(source, null, this.options?.formatted ? 2 : undefined);
23
- }
24
- /**
25
- * Compiles the touch layout file into a KeymanWeb-compatible JSON-style
26
- * object string. In the future, this may be optimized to remove unnecessary
27
- * quoting of property names, and remove unused properties, as this string
28
- * is embedded into .js code.
29
- * @param source
30
- * @returns string
31
- */
32
- compile(source) {
33
- return this.toJSONString(this.fixup(source));
34
- }
35
- fixup(source) {
36
- // Deep copy the source
37
- source = JSON.parse(JSON.stringify(source));
38
- // Fixup pad, width and sp to string types, as that's what KeymanWeb
39
- // currently expects
40
- const fixupKey = (key) => {
41
- if (Object.hasOwn(key, 'pad')) {
42
- if (key.pad == 0) {
43
- delete key.pad;
44
- }
45
- else {
46
- key.pad = key.pad.toString();
47
- }
48
- }
49
- if (Object.hasOwn(key, 'sp')) {
50
- if (key.sp == 0) {
51
- delete key.sp;
52
- }
53
- else {
54
- key.sp = key.sp.toString();
55
- }
56
- }
57
- if (Object.hasOwn(key, 'width')) {
58
- if (key.width == 0) {
59
- delete key.width;
60
- }
61
- else {
62
- key.width = key.width.toString();
63
- }
64
- }
65
- if (Object.hasOwn(key, 'text') && key.text === '')
66
- delete key.text;
67
- if (Object.hasOwn(key, 'id') && key.id === '')
68
- delete key.id;
69
- if (Object.hasOwn(key, 'hint') && key.hint === '')
70
- delete key.hint;
71
- if (Object.hasOwn(key, 'default') && key.default === false)
72
- delete key.default;
73
- };
74
- const fixupPlatform = (platform) => {
75
- // font and fontsize are eliminated if nullish:
76
- if (Object.hasOwn(platform, 'font') && platform.font == '')
77
- delete platform.font;
78
- if (Object.hasOwn(platform, 'fontsize') && platform.fontsize == '')
79
- delete platform.fontsize;
80
- // displayUnderlying is always written out by kmcomp, so we do the same for kmc:
81
- platform.displayUnderlying = !!platform.displayUnderlying;
82
- for (let layer of platform.layer) {
83
- for (let row of layer.row) {
84
- // this matches the old spec for touch layout files
85
- row.id = row.id.toString();
86
- for (let key of row.key) {
87
- fixupKey(key);
88
- if (key.sk) {
89
- for (let sk of key.sk) {
90
- fixupKey(sk);
91
- }
92
- }
93
- if (key.multitap) {
94
- for (let sk of key.multitap) {
95
- fixupKey(sk);
96
- }
97
- }
98
- if (key.flick) {
99
- for (let id of Object.keys(key.flick)) {
100
- fixupKey(key.flick[id]);
101
- }
102
- }
103
- }
104
- }
105
- }
106
- };
107
- if (source.desktop) {
108
- fixupPlatform(source.desktop);
109
- }
110
- if (source.phone) {
111
- fixupPlatform(source.phone);
112
- }
113
- if (source.tablet) {
114
- fixupPlatform(source.tablet);
115
- }
116
- return source;
117
- }
118
- }
119
- ;
120
- //# debugId=24b28ff1-7508-5d81-bcb7-adf68fec2d54
1
+
2
+ !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]="b9a4bb06-b063-5801-a838-d161b00e96e8")}catch(e){}}();
3
+ ;
4
+ export class TouchLayoutFileWriter {
5
+ options;
6
+ constructor(options) {
7
+ this.options = { ...options };
8
+ }
9
+ /**
10
+ * Writes the touch layout to a .keyman-touch-layout JSON file
11
+ * @param source TouchLayoutFile
12
+ * @returns Uint8Array, the .keyman-touch-layout file
13
+ */
14
+ write(source) {
15
+ const output = this.toJSONString(source);
16
+ const encoder = new TextEncoder();
17
+ return encoder.encode(output);
18
+ }
19
+ /**
20
+ * Gets the output as a JSON string
21
+ */
22
+ toJSONString(source) {
23
+ return JSON.stringify(source, null, this.options?.formatted ? 2 : undefined);
24
+ }
25
+ /**
26
+ * Compiles the touch layout file into a KeymanWeb-compatible JSON-style
27
+ * object string. In the future, this may be optimized to remove unnecessary
28
+ * quoting of property names, and remove unused properties, as this string
29
+ * is embedded into .js code.
30
+ * @param source
31
+ * @returns string
32
+ */
33
+ compile(source) {
34
+ return this.toJSONString(this.fixup(source));
35
+ }
36
+ fixup(source) {
37
+ // Deep copy the source
38
+ source = JSON.parse(JSON.stringify(source));
39
+ // Fixup pad, width and sp to string types, as that's what KeymanWeb
40
+ // currently expects
41
+ const fixupKey = (key) => {
42
+ if (Object.hasOwn(key, 'pad')) {
43
+ if (key.pad == 0) {
44
+ delete key.pad;
45
+ }
46
+ else {
47
+ key.pad = key.pad.toString();
48
+ }
49
+ }
50
+ if (Object.hasOwn(key, 'sp')) {
51
+ if (key.sp == 0) {
52
+ delete key.sp;
53
+ }
54
+ else {
55
+ key.sp = key.sp.toString();
56
+ }
57
+ }
58
+ if (Object.hasOwn(key, 'width')) {
59
+ if (key.width == 0) {
60
+ delete key.width;
61
+ }
62
+ else {
63
+ key.width = key.width.toString();
64
+ }
65
+ }
66
+ if (Object.hasOwn(key, 'text') && key.text === '')
67
+ delete key.text;
68
+ if (Object.hasOwn(key, 'id') && key.id === '')
69
+ delete key.id;
70
+ if (Object.hasOwn(key, 'hint') && key.hint === '')
71
+ delete key.hint;
72
+ if (Object.hasOwn(key, 'default') && key.default === false)
73
+ delete key.default;
74
+ };
75
+ const fixupPlatform = (platform) => {
76
+ // font and fontsize are eliminated if nullish:
77
+ if (Object.hasOwn(platform, 'font') && platform.font == '')
78
+ delete platform.font;
79
+ if (Object.hasOwn(platform, 'fontsize') && platform.fontsize == '')
80
+ delete platform.fontsize;
81
+ // displayUnderlying is always written out by kmcomp, so we do the same for kmc:
82
+ platform.displayUnderlying = !!platform.displayUnderlying;
83
+ for (let layer of platform.layer) {
84
+ for (let row of layer.row) {
85
+ // this matches the old spec for touch layout files
86
+ row.id = row.id.toString();
87
+ for (let key of row.key) {
88
+ fixupKey(key);
89
+ if (key.sk) {
90
+ for (let sk of key.sk) {
91
+ fixupKey(sk);
92
+ }
93
+ }
94
+ if (key.multitap) {
95
+ for (let sk of key.multitap) {
96
+ fixupKey(sk);
97
+ }
98
+ }
99
+ if (key.flick) {
100
+ for (let id of Object.keys(key.flick)) {
101
+ fixupKey(key.flick[id]);
102
+ }
103
+ }
104
+ }
105
+ }
106
+ }
107
+ };
108
+ if (source.desktop) {
109
+ fixupPlatform(source.desktop);
110
+ }
111
+ if (source.phone) {
112
+ fixupPlatform(source.phone);
113
+ }
114
+ if (source.tablet) {
115
+ fixupPlatform(source.tablet);
116
+ }
117
+ return source;
118
+ }
119
+ }
120
+ ;
121
121
  //# sourceMappingURL=keyman-touch-layout-file-writer.js.map
122
+ //# debugId=b9a4bb06-b063-5801-a838-d161b00e96e8
@@ -1 +1 @@
1
- {"debug_id":"24b28ff1-7508-5d81-bcb7-adf68fec2d54","file":"keyman-touch-layout-file-writer.js","mappings":"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","names":[],"sourceRoot":"","sources":["../../../src/keyman-touch-layout/keyman-touch-layout-file-writer.ts"],"version":3}
1
+ {"version":3,"file":"keyman-touch-layout-file-writer.js","sources":["../../../src/keyman-touch-layout/keyman-touch-layout-file-writer.ts"],"sourceRoot":"","names":[],"mappings":";;AAIC,CAAC;AAEF,MAAM,OAAO,qBAAqB;IAEhC,OAAO,CAA+B;IAEtC,YAAY,OAAsC;QAChD,IAAI,CAAC,OAAO,GAAG,EAAC,GAAG,OAAO,EAAC,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,MAAuB;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACI,YAAY,CAAC,MAAuB;QACzC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/E,CAAC;IAED;;;;;;;OAOG;IACI,OAAO,CAAC,MAAuB;QACpC,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/C,CAAC;IAEM,KAAK,CAAC,MAAuB;QAClC,uBAAuB;QACvB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAE5C,oEAAoE;QACpE,oBAAoB;QAEpB,MAAM,QAAQ,GAAG,CAAC,GAAuC,EAAE,EAAE;YAC3D,IAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE;gBAC5B,IAAG,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE;oBACf,OAAO,GAAG,CAAC,GAAG,CAAC;iBAChB;qBACI;oBACF,GAAG,CAAC,GAAW,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;iBACvC;aACF;YACD,IAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE;gBAC3B,IAAG,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE;oBACd,OAAO,GAAG,CAAC,EAAE,CAAC;iBACf;qBACI;oBACF,GAAG,CAAC,EAAU,GAAG,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;iBACrC;aACF;YACD,IAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE;gBAC9B,IAAG,GAAG,CAAC,KAAK,IAAI,CAAC,EAAE;oBACjB,OAAO,GAAG,CAAC,KAAK,CAAC;iBAClB;qBACI;oBACF,GAAG,CAAC,KAAa,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;iBAC3C;aACF;YACD,IAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,EAAE;gBAAE,OAAO,GAAG,CAAC,IAAI,CAAC;YAClE,IAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAY,GAAG,CAAC,EAAE,KAAK,EAAE;gBAAE,OAAO,GAAG,CAAC,EAAE,CAAC;YACpE,IAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAU,GAAI,CAAC,IAAI,KAAK,EAAE;gBAAE,OAAa,GAAI,CAAC,IAAI,CAAC;YAChF,IAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAU,GAAI,CAAC,OAAO,KAAK,KAAK;gBAAE,OAAa,GAAI,CAAC,OAAO,CAAC;QAC9F,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,CAAC,QAA6B,EAAE,EAAE;YACtD,+CAA+C;YAC/C,IAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,IAAI,IAAI,EAAE;gBAAE,OAAO,QAAQ,CAAC,IAAI,CAAC;YAC/E,IAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,QAAQ,IAAI,EAAE;gBAAE,OAAO,QAAQ,CAAC,QAAQ,CAAC;YAC3F,gFAAgF;YAChF,QAAQ,CAAC,iBAAiB,GAAG,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAE1D,KAAI,IAAI,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAE;gBAC/B,KAAI,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE;oBACxB,mDAAmD;oBAClD,GAAG,CAAC,EAAU,GAAG,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;oBACpC,KAAI,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE;wBACtB,QAAQ,CAAC,GAAG,CAAC,CAAC;wBACd,IAAG,GAAG,CAAC,EAAE,EAAE;4BACT,KAAI,IAAI,EAAE,IAAI,GAAG,CAAC,EAAE,EAAE;gCACpB,QAAQ,CAAC,EAAE,CAAC,CAAC;6BACd;yBACF;wBACD,IAAG,GAAG,CAAC,QAAQ,EAAE;4BACf,KAAI,IAAI,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE;gCAC1B,QAAQ,CAAC,EAAE,CAAC,CAAC;6BACd;yBACF;wBACD,IAAG,GAAG,CAAC,KAAK,EAAE;4BACZ,KAAI,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gCACpC,QAAQ,CAAE,GAAG,CAAC,KAAa,CAAC,EAAE,CAAsB,CAAC,CAAC;6BACvD;yBACF;qBACF;iBACF;aACF;QACH,CAAC,CAAC;QAEF,IAAG,MAAM,CAAC,OAAO,EAAE;YACjB,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SAC/B;QACD,IAAG,MAAM,CAAC,KAAK,EAAE;YACf,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAC7B;QACD,IAAG,MAAM,CAAC,MAAM,EAAE;YAChB,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SAC9B;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAAA,CAAC","debug_id":"b9a4bb06-b063-5801-a838-d161b00e96e8"}
@@ -1,55 +1,56 @@
1
- //
2
- // .keyman-touch-layout JSON format
3
- //
4
- // Follows /common/schemas/keyman-touch-layout/keyman-touch-layout.spec.json for
5
- // reading and
6
- // /common/schemas/keyman-touch-layout/keyman-touch-layout.clean.spec.json for
7
- // writing
8
- //
9
- !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]="66b5a160-8b91-53c1-b976-975603523a3c")}catch(e){}}();
10
- ;
11
- ;
12
- ;
13
- ;
14
- /**
15
- * Denotes private-use identifiers that should be considered 'reserved'.
16
- */
17
- export const PRIVATE_USE_IDS = [
18
- /**
19
- * Private-use identifiers used by KeymanWeb for the default multitap-into-caps-layer key
20
- * for keyboards with a caps layer while not defining multitaps on shift.
21
- */
22
- 'T_*_MT_SHIFT_TO_SHIFT',
23
- 'T_*_MT_SHIFT_TO_CAPS',
24
- 'T_*_MT_SHIFT_TO_DEFAULT'
25
- ];
26
- ;
27
- export var TouchLayoutKeySp;
28
- (function (TouchLayoutKeySp) {
29
- TouchLayoutKeySp[TouchLayoutKeySp["normal"] = 0] = "normal";
30
- /** A 'frame' key, such as Shift or Enter, which is styled accordingly; uses
31
- * the 'KeymanwebOsk' font on KeymanWeb */
32
- TouchLayoutKeySp[TouchLayoutKeySp["special"] = 1] = "special";
33
- /** A 'frame' key, such as Shift or Enter, which is styled accordingly and is
34
- * highlighted to indicate it is active, such as the shift key on a shift
35
- * layer; uses the 'KeymanwebOsk' font on KeymanWeb */
36
- TouchLayoutKeySp[TouchLayoutKeySp["specialActive"] = 2] = "specialActive";
37
- /** **KeymanWeb runtime private use:** a variant of `special` with the
38
- * keyboard font rather than 'KeymanwebOsk' font */
39
- TouchLayoutKeySp[TouchLayoutKeySp["customSpecial"] = 3] = "customSpecial";
40
- /** **KeymanWeb runtime private use:** a variant of `specialActive` with the
41
- * keyboard font rather than 'KeymanwebOsk' font. */
42
- TouchLayoutKeySp[TouchLayoutKeySp["customSpecialActive"] = 4] = "customSpecialActive";
43
- /** A styling signal to indicate that the key may have 'deadkey' type
44
- * behaviour. */
45
- TouchLayoutKeySp[TouchLayoutKeySp["deadkey"] = 8] = "deadkey";
46
- /** A key which is rendered as a blank keycap, blocks any interaction */
47
- TouchLayoutKeySp[TouchLayoutKeySp["blank"] = 9] = "blank";
48
- /** Renders the key only as a gap or spacer, blocks any interaction */
49
- TouchLayoutKeySp[TouchLayoutKeySp["spacer"] = 10] = "spacer";
50
- })(TouchLayoutKeySp || (TouchLayoutKeySp = {}));
51
- ;
52
- ;
53
- ;
54
- //# debugId=66b5a160-8b91-53c1-b976-975603523a3c
1
+ //
2
+ // .keyman-touch-layout JSON format
3
+ //
4
+ // Follows /common/schemas/keyman-touch-layout/keyman-touch-layout.spec.json for
5
+ // reading and
6
+ // /common/schemas/keyman-touch-layout/keyman-touch-layout.clean.spec.json for
7
+ // writing
8
+ //
9
+
10
+ !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]="b4c48ff5-d670-5b0e-9950-0650d8df58d8")}catch(e){}}();
11
+ ;
12
+ ;
13
+ ;
14
+ ;
15
+ /**
16
+ * Denotes private-use identifiers that should be considered 'reserved'.
17
+ */
18
+ export const PRIVATE_USE_IDS = [
19
+ /**
20
+ * Private-use identifiers used by KeymanWeb for the default multitap-into-caps-layer key
21
+ * for keyboards with a caps layer while not defining multitaps on shift.
22
+ */
23
+ 'T_*_MT_SHIFT_TO_SHIFT',
24
+ 'T_*_MT_SHIFT_TO_CAPS',
25
+ 'T_*_MT_SHIFT_TO_DEFAULT'
26
+ ];
27
+ ;
28
+ export var TouchLayoutKeySp;
29
+ (function (TouchLayoutKeySp) {
30
+ TouchLayoutKeySp[TouchLayoutKeySp["normal"] = 0] = "normal";
31
+ /** A 'frame' key, such as Shift or Enter, which is styled accordingly; uses
32
+ * the 'KeymanwebOsk' font on KeymanWeb */
33
+ TouchLayoutKeySp[TouchLayoutKeySp["special"] = 1] = "special";
34
+ /** A 'frame' key, such as Shift or Enter, which is styled accordingly and is
35
+ * highlighted to indicate it is active, such as the shift key on a shift
36
+ * layer; uses the 'KeymanwebOsk' font on KeymanWeb */
37
+ TouchLayoutKeySp[TouchLayoutKeySp["specialActive"] = 2] = "specialActive";
38
+ /** **KeymanWeb runtime private use:** a variant of `special` with the
39
+ * keyboard font rather than 'KeymanwebOsk' font */
40
+ TouchLayoutKeySp[TouchLayoutKeySp["customSpecial"] = 3] = "customSpecial";
41
+ /** **KeymanWeb runtime private use:** a variant of `specialActive` with the
42
+ * keyboard font rather than 'KeymanwebOsk' font. */
43
+ TouchLayoutKeySp[TouchLayoutKeySp["customSpecialActive"] = 4] = "customSpecialActive";
44
+ /** A styling signal to indicate that the key may have 'deadkey' type
45
+ * behaviour. */
46
+ TouchLayoutKeySp[TouchLayoutKeySp["deadkey"] = 8] = "deadkey";
47
+ /** A key which is rendered as a blank keycap, blocks any interaction */
48
+ TouchLayoutKeySp[TouchLayoutKeySp["blank"] = 9] = "blank";
49
+ /** Renders the key only as a gap or spacer, blocks any interaction */
50
+ TouchLayoutKeySp[TouchLayoutKeySp["spacer"] = 10] = "spacer";
51
+ })(TouchLayoutKeySp || (TouchLayoutKeySp = {}));
52
+ ;
53
+ ;
54
+ ;
55
55
  //# sourceMappingURL=keyman-touch-layout-file.js.map
56
+ //# debugId=b4c48ff5-d670-5b0e-9950-0650d8df58d8
@@ -1 +1 @@
1
- {"debug_id":"66b5a160-8b91-53c1-b976-975603523a3c","file":"keyman-touch-layout-file.js","mappings":";AAAA,EAAE;AACF,mCAAmC;AACnC,EAAE;AACF,gFAAgF;AAChF,cAAc;AACd,8EAA8E;AAC9E,UAAU;AACV,EAAE;AAMD,CAAC;AAYD,CAAC;AAOD,CAAC;AAOD,CAAC;AAOF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B;;;OAGG;IACH,uBAAuB;IACvB,sBAAsB;IACtB,yBAAyB;CACjB,CAAC;AAqBV,CAAC;AAEF,MAAM,CAAN,IAAkB,gBAsBjB;AAtBD,WAAkB,gBAAgB;IAChC,2DAAQ,CAAA;IACR;+CAC2C;IAC3C,6DAAS,CAAA;IACT;;2DAEuD;IACvD,yEAAe,CAAA;IACf;wDACoD;IACpD,yEAAe,CAAA;IACf;yDACqD;IACrD,qFAAqB,CAAA;IACrB;qBACiB;IACjB,6DAAS,CAAA;IACT,wEAAwE;IACxE,yDAAO,CAAA;IACP,sEAAsE;IACtE,4DAAS,CAAA;AACX,CAAC,EAtBiB,gBAAgB,KAAhB,gBAAgB,QAsBjC;AAAA,CAAC;AAgBD,CAAC;AAWD,CAAC","names":[],"sourceRoot":"","sources":["../../../src/keyman-touch-layout/keyman-touch-layout-file.ts"],"version":3}
1
+ {"version":3,"file":"keyman-touch-layout-file.js","sources":["../../../src/keyman-touch-layout/keyman-touch-layout-file.ts"],"sourceRoot":"","names":[],"mappings":"AAAA,EAAE;AACF,mCAAmC;AACnC,EAAE;AACF,gFAAgF;AAChF,cAAc;AACd,8EAA8E;AAC9E,UAAU;AACV,EAAE;;;AAMD,CAAC;AAYD,CAAC;AAOD,CAAC;AAOD,CAAC;AAOF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B;;;OAGG;IACH,uBAAuB;IACvB,sBAAsB;IACtB,yBAAyB;CACjB,CAAC;AAqBV,CAAC;AAEF,MAAM,CAAN,IAAkB,gBAsBjB;AAtBD,WAAkB,gBAAgB;IAChC,2DAAQ,CAAA;IACR;+CAC2C;IAC3C,6DAAS,CAAA;IACT;;2DAEuD;IACvD,yEAAe,CAAA;IACf;wDACoD;IACpD,yEAAe,CAAA;IACf;yDACqD;IACrD,qFAAqB,CAAA;IACrB;qBACiB;IACjB,6DAAS,CAAA;IACT,wEAAwE;IACxE,yDAAO,CAAA;IACP,sEAAsE;IACtE,4DAAS,CAAA;AACX,CAAC,EAtBiB,gBAAgB,KAAhB,gBAAgB,QAsBjC;AAAA,CAAC;AAgBD,CAAC;AAWD,CAAC","debug_id":"b4c48ff5-d670-5b0e-9950-0650d8df58d8"}
@@ -1 +1 @@
1
- {"version":3,"file":"element-string.d.ts","sourceRoot":"","sources":["../../../src/kmx/element-string.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIvE,oBAAY,gBAAgB;IAC1B,IAAI,IAAI;IACR,IAAgC;IAChC,aAAkD;IAClD,OAAsC;CACvC;AAGD,qBAAa,WAAW;IACtB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,CAAC,CAAC,EAAE,WAAW;CAMvB;AAGD,qBAAa,aAAc,SAAQ,KAAK,CAAC,WAAW,CAAC;IACnD;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAI,aAAa;IA4ExK,OAAO,CAAC,CAAC,EAAE,aAAa,GAAG,OAAO;CAWnC"}
1
+ {"version":3,"file":"element-string.d.ts","sourceRoot":"","sources":["../../../src/kmx/element-string.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIvE,oBAAY,gBAAgB;IAC1B,IAAI,IAAI;IACR,IAAgC;IAChC,aAAkD;IAClD,OAAsC;CACvC;AAGD,qBAAa,WAAW;IACtB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,CAAC,CAAC,EAAE,WAAW;CAMvB;AAGD,qBAAa,aAAc,SAAQ,KAAK,CAAC,WAAW,CAAC;IACnD;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAI,aAAa;IAiFxK,OAAO,CAAC,CAAC,EAAE,aAAa,GAAG,OAAO;CAWnC"}