@keymanapp/common-types 17.0.300-beta → 17.0.301-beta

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 (142) 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.js +126 -125
  10. package/build/src/kmx/element-string.js.map +1 -1
  11. package/build/src/kmx/keyman-targets.js +80 -79
  12. package/build/src/kmx/keyman-targets.js.map +1 -1
  13. package/build/src/kmx/kmx-builder.js +190 -189
  14. package/build/src/kmx/kmx-builder.js.map +1 -1
  15. package/build/src/kmx/kmx-file-reader.js +135 -134
  16. package/build/src/kmx/kmx-file-reader.js.map +1 -1
  17. package/build/src/kmx/kmx-plus-builder/build-disp.js +28 -27
  18. package/build/src/kmx/kmx-plus-builder/build-disp.js.map +1 -1
  19. package/build/src/kmx/kmx-plus-builder/build-elem.js +90 -89
  20. package/build/src/kmx/kmx-plus-builder/build-elem.js.map +1 -1
  21. package/build/src/kmx/kmx-plus-builder/build-keys.js +108 -107
  22. package/build/src/kmx/kmx-plus-builder/build-keys.js.map +1 -1
  23. package/build/src/kmx/kmx-plus-builder/build-layr.js +102 -101
  24. package/build/src/kmx/kmx-plus-builder/build-layr.js.map +1 -1
  25. package/build/src/kmx/kmx-plus-builder/build-list.js +67 -66
  26. package/build/src/kmx/kmx-plus-builder/build-list.js.map +1 -1
  27. package/build/src/kmx/kmx-plus-builder/build-loca.js +22 -21
  28. package/build/src/kmx/kmx-plus-builder/build-loca.js.map +1 -1
  29. package/build/src/kmx/kmx-plus-builder/build-meta.js +23 -22
  30. package/build/src/kmx/kmx-plus-builder/build-meta.js.map +1 -1
  31. package/build/src/kmx/kmx-plus-builder/build-sect.js +16 -15
  32. package/build/src/kmx/kmx-plus-builder/build-sect.js.map +1 -1
  33. package/build/src/kmx/kmx-plus-builder/build-strs.js +47 -46
  34. package/build/src/kmx/kmx-plus-builder/build-strs.js.map +1 -1
  35. package/build/src/kmx/kmx-plus-builder/build-tran.js +70 -69
  36. package/build/src/kmx/kmx-plus-builder/build-tran.js.map +1 -1
  37. package/build/src/kmx/kmx-plus-builder/build-uset.js +61 -60
  38. package/build/src/kmx/kmx-plus-builder/build-uset.js.map +1 -1
  39. package/build/src/kmx/kmx-plus-builder/build-vars.js +49 -48
  40. package/build/src/kmx/kmx-plus-builder/build-vars.js.map +1 -1
  41. package/build/src/kmx/kmx-plus-builder/builder-section.js +5 -4
  42. package/build/src/kmx/kmx-plus-builder/builder-section.js.map +1 -1
  43. package/build/src/kmx/kmx-plus-builder/kmx-plus-builder.js +138 -137
  44. package/build/src/kmx/kmx-plus-builder/kmx-plus-builder.js.map +1 -1
  45. package/build/src/kmx/kmx-plus.js +831 -830
  46. package/build/src/kmx/kmx-plus.js.map +1 -1
  47. package/build/src/kmx/kmx.d.ts.map +1 -1
  48. package/build/src/kmx/kmx.js +303 -299
  49. package/build/src/kmx/kmx.js.map +1 -1
  50. package/build/src/kmx/string-list.js +89 -88
  51. package/build/src/kmx/string-list.js.map +1 -1
  52. package/build/src/kpj/keyman-developer-project.js +196 -195
  53. package/build/src/kpj/keyman-developer-project.js.map +1 -1
  54. package/build/src/kpj/kpj-file-reader.js +120 -119
  55. package/build/src/kpj/kpj-file-reader.js.map +1 -1
  56. package/build/src/kpj/kpj-file.js +13 -12
  57. package/build/src/kpj/kpj-file.js.map +1 -1
  58. package/build/src/kvk/kvk-file-reader.js +38 -37
  59. package/build/src/kvk/kvk-file-reader.js.map +1 -1
  60. package/build/src/kvk/kvk-file-writer.js +78 -77
  61. package/build/src/kvk/kvk-file-writer.js.map +1 -1
  62. package/build/src/kvk/kvk-file.js +91 -90
  63. package/build/src/kvk/kvk-file.js.map +1 -1
  64. package/build/src/kvk/kvks-file-reader.js +176 -175
  65. package/build/src/kvk/kvks-file-reader.js.map +1 -1
  66. package/build/src/kvk/kvks-file-writer.js +107 -106
  67. package/build/src/kvk/kvks-file-writer.js.map +1 -1
  68. package/build/src/kvk/kvks-file.js +12 -11
  69. package/build/src/kvk/kvks-file.js.map +1 -1
  70. package/build/src/kvk/visual-keyboard.js +76 -75
  71. package/build/src/kvk/visual-keyboard.js.map +1 -1
  72. package/build/src/ldml-keyboard/ldml-keyboard-testdata-xml.js +22 -21
  73. package/build/src/ldml-keyboard/ldml-keyboard-testdata-xml.js.map +1 -1
  74. package/build/src/ldml-keyboard/ldml-keyboard-xml-reader.js +410 -409
  75. package/build/src/ldml-keyboard/ldml-keyboard-xml-reader.js.map +1 -1
  76. package/build/src/ldml-keyboard/ldml-keyboard-xml.js +58 -57
  77. package/build/src/ldml-keyboard/ldml-keyboard-xml.js.map +1 -1
  78. package/build/src/ldml-keyboard/pattern-parser.js +491 -490
  79. package/build/src/ldml-keyboard/pattern-parser.js.map +1 -1
  80. package/build/src/ldml-keyboard/unicodeset-parser-api.js +30 -29
  81. package/build/src/ldml-keyboard/unicodeset-parser-api.js.map +1 -1
  82. package/build/src/main.js +35 -34
  83. package/build/src/main.js.map +1 -1
  84. package/build/src/package/kmp-json-file.js +4 -3
  85. package/build/src/package/kmp-json-file.js.map +1 -1
  86. package/build/src/package/kps-file.js +18 -17
  87. package/build/src/package/kps-file.js.map +1 -1
  88. package/build/src/schema-validators.js +28 -27
  89. package/build/src/schema-validators.js.map +1 -1
  90. package/build/src/schemas/displaymap.schema.js +38 -37
  91. package/build/src/schemas/displaymap.schema.js.map +1 -1
  92. package/build/src/schemas/displaymap.schema.validator.mjs +267 -266
  93. package/build/src/schemas/displaymap.schema.validator.mjs.map +1 -1
  94. package/build/src/schemas/keyboard_info.schema.js +101 -100
  95. package/build/src/schemas/keyboard_info.schema.js.map +1 -1
  96. package/build/src/schemas/keyboard_info.schema.validator.mjs +1161 -1160
  97. package/build/src/schemas/keyboard_info.schema.validator.mjs.map +1 -1
  98. package/build/src/schemas/keyman-touch-layout.clean.spec.js +154 -153
  99. package/build/src/schemas/keyman-touch-layout.clean.spec.js.map +1 -1
  100. package/build/src/schemas/keyman-touch-layout.clean.spec.validator.mjs +1095 -1094
  101. package/build/src/schemas/keyman-touch-layout.clean.spec.validator.mjs.map +1 -1
  102. package/build/src/schemas/keyman-touch-layout.spec.js +143 -142
  103. package/build/src/schemas/keyman-touch-layout.spec.js.map +1 -1
  104. package/build/src/schemas/keyman-touch-layout.spec.validator.mjs +1437 -1436
  105. package/build/src/schemas/keyman-touch-layout.spec.validator.mjs.map +1 -1
  106. package/build/src/schemas/kmp.schema.js +356 -355
  107. package/build/src/schemas/kmp.schema.js.map +1 -1
  108. package/build/src/schemas/kmp.schema.validator.mjs +1628 -1627
  109. package/build/src/schemas/kmp.schema.validator.mjs.map +1 -1
  110. package/build/src/schemas/kpj-9.0.schema.js +134 -133
  111. package/build/src/schemas/kpj-9.0.schema.js.map +1 -1
  112. package/build/src/schemas/kpj-9.0.schema.validator.mjs +656 -655
  113. package/build/src/schemas/kpj-9.0.schema.validator.mjs.map +1 -1
  114. package/build/src/schemas/kpj.schema.js +132 -131
  115. package/build/src/schemas/kpj.schema.js.map +1 -1
  116. package/build/src/schemas/kpj.schema.validator.mjs +516 -515
  117. package/build/src/schemas/kpj.schema.validator.mjs.map +1 -1
  118. package/build/src/schemas/kvks.schema.js +185 -184
  119. package/build/src/schemas/kvks.schema.js.map +1 -1
  120. package/build/src/schemas/kvks.schema.validator.mjs +626 -625
  121. package/build/src/schemas/kvks.schema.validator.mjs.map +1 -1
  122. package/build/src/schemas/ldml-keyboard3.schema.js +699 -698
  123. package/build/src/schemas/ldml-keyboard3.schema.js.map +1 -1
  124. package/build/src/schemas/ldml-keyboard3.schema.validator.mjs +3118 -3117
  125. package/build/src/schemas/ldml-keyboard3.schema.validator.mjs.map +1 -1
  126. package/build/src/schemas/ldml-keyboardtest3.schema.js +228 -227
  127. package/build/src/schemas/ldml-keyboardtest3.schema.js.map +1 -1
  128. package/build/src/schemas/ldml-keyboardtest3.schema.validator.mjs +745 -744
  129. package/build/src/schemas/ldml-keyboardtest3.schema.validator.mjs.map +1 -1
  130. package/build/src/schemas.js +26 -25
  131. package/build/src/schemas.js.map +1 -1
  132. package/build/src/util/common-events.js +29 -28
  133. package/build/src/util/common-events.js.map +1 -1
  134. package/build/src/util/compiler-interfaces.js +381 -380
  135. package/build/src/util/compiler-interfaces.js.map +1 -1
  136. package/build/src/util/errors.js +8 -7
  137. package/build/src/util/errors.js.map +1 -1
  138. package/build/src/util/file-types.js +143 -142
  139. package/build/src/util/file-types.js.map +1 -1
  140. package/build/src/util/util.js +369 -368
  141. package/build/src/util/util.js.map +1 -1
  142. package/package.json +2 -2
@@ -1,120 +1,121 @@
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]="417ef598-d652-5484-9169-a45805033d53")}catch(e){}}();
2
- import * as xml2js from 'xml2js';
3
- import { boxXmlArray } from '../util/util.js';
4
- import { KeymanDeveloperProject, KeymanDeveloperProjectFile10, KeymanDeveloperProjectType } from './keyman-developer-project.js';
5
- import SchemaValidators from '../schema-validators.js';
6
- export class KPJFileReader {
7
- callbacks;
8
- constructor(callbacks) {
9
- this.callbacks = callbacks;
10
- }
11
- read(file) {
12
- let data;
13
- const parser = new xml2js.Parser({
14
- explicitArray: false,
15
- mergeAttrs: false,
16
- includeWhiteChars: false,
17
- normalize: false,
18
- emptyTag: ''
19
- });
20
- parser.parseString(file, (e, r) => {
21
- if (e) {
22
- throw e;
23
- }
24
- data = r;
25
- });
26
- data = this.boxArrays(data);
27
- if (data.KeymanDeveloperProject?.Files?.File?.length) {
28
- for (let file of data.KeymanDeveloperProject?.Files?.File) {
29
- // xml2js imports <Details/> as '' so we will just delete the empty string
30
- if (typeof file.Details == 'string') {
31
- delete file.Details;
32
- }
33
- }
34
- }
35
- return data;
36
- }
37
- validate(source) {
38
- if (!SchemaValidators.kpj(source)) {
39
- if (!SchemaValidators.kpj90(source)) {
40
- // If the legacy schema also does not validate, then we will only report
41
- // the errors against the modern schema
42
- throw new Error(JSON.stringify(SchemaValidators.kpj.errors));
43
- }
44
- }
45
- }
46
- boolFromString(value, def) {
47
- value = (value || '').toLowerCase();
48
- if (value === 'true')
49
- return true;
50
- if (value === 'false')
51
- return false;
52
- return def;
53
- }
54
- transform(projectFilename, source) {
55
- // NOTE: at this point, the xml should have been validated
56
- // and matched the schema result so we can assume the source
57
- // is a valid shape
58
- let project = source.KeymanDeveloperProject;
59
- let result = new KeymanDeveloperProject(projectFilename, project.Options?.Version || "1.0", this.callbacks);
60
- if (result.options.version == '2.0') {
61
- result.options.buildPath = (project.Options?.BuildPath || result.options.buildPath).replace(/\\/g, '/');
62
- result.options.sourcePath = (project.Options?.SourcePath || result.options.sourcePath).replace(/\\/g, '/');
63
- result.options.skipMetadataFiles = this.boolFromString(project.Options?.SkipMetadataFiles, false);
64
- }
65
- else {
66
- result.options.buildPath = (project.Options?.BuildPath || '').replace(/\\/g, '/');
67
- result.options.skipMetadataFiles = this.boolFromString(project.Options?.SkipMetadataFiles, true);
68
- }
69
- result.options.checkFilenameConventions = this.boolFromString(project.Options?.CheckFilenameConventions, false);
70
- result.options.compilerWarningsAsErrors = this.boolFromString(project.Options?.CompilerWarningsAsErrors, false);
71
- result.options.warnDeprecatedCode = this.boolFromString(project.Options?.WarnDeprecatedCode, true);
72
- result.options.projectType =
73
- project.Options?.ProjectType == 'keyboard' ? KeymanDeveloperProjectType.Keyboard :
74
- project.Options?.ProjectType == 'lexicalmodel' ? KeymanDeveloperProjectType.LexicalModel :
75
- KeymanDeveloperProjectType.Keyboard; // Default is keyboard if missing
76
- if (result.options.version == '1.0') {
77
- this.transformFilesVersion10(project, result);
78
- }
79
- else {
80
- result.populateFiles();
81
- }
82
- return result;
83
- }
84
- transformFilesVersion10(project, result) {
85
- let ids = {};
86
- for (let sourceFile of project.Files?.File) {
87
- let file = new KeymanDeveloperProjectFile10(sourceFile.ID || '', (sourceFile.Filepath || '').replace(/\\/g, '/'), sourceFile.FileVersion || '', this.callbacks);
88
- if (sourceFile.Details) {
89
- file.details.copyright = sourceFile.Details.Copyright;
90
- file.details.name = sourceFile.Details.Name;
91
- file.details.message = sourceFile.Details.Message;
92
- file.details.version = sourceFile.Details.Version;
93
- }
94
- if (sourceFile.ParentFileID && ids[sourceFile.ParentFileID]) {
95
- ids[sourceFile.ParentFileID].childFiles.push(file);
96
- }
97
- else {
98
- result.files.push(file);
99
- ids[file.id] = file;
100
- }
101
- }
102
- }
103
- /**
104
- * xml2js will not place single-entry objects into arrays.
105
- * Easiest way to fix this is to box them ourselves as needed
106
- * @param source KVKSourceFile
107
- */
108
- boxArrays(source) {
109
- if (!source.KeymanDeveloperProject) {
110
- return source;
111
- }
112
- if (!source.KeymanDeveloperProject.Files || typeof source.KeymanDeveloperProject.Files == 'string') {
113
- source.KeymanDeveloperProject.Files = { File: [] };
114
- }
115
- boxXmlArray(source.KeymanDeveloperProject.Files, 'File');
116
- return source;
117
- }
118
- }
119
- //# debugId=417ef598-d652-5484-9169-a45805033d53
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]="890db4ad-4195-5e6f-9925-bc4f4ce0808e")}catch(e){}}();
3
+ import * as xml2js from 'xml2js';
4
+ import { boxXmlArray } from '../util/util.js';
5
+ import { KeymanDeveloperProject, KeymanDeveloperProjectFile10, KeymanDeveloperProjectType } from './keyman-developer-project.js';
6
+ import SchemaValidators from '../schema-validators.js';
7
+ export class KPJFileReader {
8
+ callbacks;
9
+ constructor(callbacks) {
10
+ this.callbacks = callbacks;
11
+ }
12
+ read(file) {
13
+ let data;
14
+ const parser = new xml2js.Parser({
15
+ explicitArray: false,
16
+ mergeAttrs: false,
17
+ includeWhiteChars: false,
18
+ normalize: false,
19
+ emptyTag: ''
20
+ });
21
+ parser.parseString(file, (e, r) => {
22
+ if (e) {
23
+ throw e;
24
+ }
25
+ data = r;
26
+ });
27
+ data = this.boxArrays(data);
28
+ if (data.KeymanDeveloperProject?.Files?.File?.length) {
29
+ for (let file of data.KeymanDeveloperProject?.Files?.File) {
30
+ // xml2js imports <Details/> as '' so we will just delete the empty string
31
+ if (typeof file.Details == 'string') {
32
+ delete file.Details;
33
+ }
34
+ }
35
+ }
36
+ return data;
37
+ }
38
+ validate(source) {
39
+ if (!SchemaValidators.kpj(source)) {
40
+ if (!SchemaValidators.kpj90(source)) {
41
+ // If the legacy schema also does not validate, then we will only report
42
+ // the errors against the modern schema
43
+ throw new Error(JSON.stringify(SchemaValidators.kpj.errors));
44
+ }
45
+ }
46
+ }
47
+ boolFromString(value, def) {
48
+ value = (value || '').toLowerCase();
49
+ if (value === 'true')
50
+ return true;
51
+ if (value === 'false')
52
+ return false;
53
+ return def;
54
+ }
55
+ transform(projectFilename, source) {
56
+ // NOTE: at this point, the xml should have been validated
57
+ // and matched the schema result so we can assume the source
58
+ // is a valid shape
59
+ let project = source.KeymanDeveloperProject;
60
+ let result = new KeymanDeveloperProject(projectFilename, project.Options?.Version || "1.0", this.callbacks);
61
+ if (result.options.version == '2.0') {
62
+ result.options.buildPath = (project.Options?.BuildPath || result.options.buildPath).replace(/\\/g, '/');
63
+ result.options.sourcePath = (project.Options?.SourcePath || result.options.sourcePath).replace(/\\/g, '/');
64
+ result.options.skipMetadataFiles = this.boolFromString(project.Options?.SkipMetadataFiles, false);
65
+ }
66
+ else {
67
+ result.options.buildPath = (project.Options?.BuildPath || '').replace(/\\/g, '/');
68
+ result.options.skipMetadataFiles = this.boolFromString(project.Options?.SkipMetadataFiles, true);
69
+ }
70
+ result.options.checkFilenameConventions = this.boolFromString(project.Options?.CheckFilenameConventions, false);
71
+ result.options.compilerWarningsAsErrors = this.boolFromString(project.Options?.CompilerWarningsAsErrors, false);
72
+ result.options.warnDeprecatedCode = this.boolFromString(project.Options?.WarnDeprecatedCode, true);
73
+ result.options.projectType =
74
+ project.Options?.ProjectType == 'keyboard' ? KeymanDeveloperProjectType.Keyboard :
75
+ project.Options?.ProjectType == 'lexicalmodel' ? KeymanDeveloperProjectType.LexicalModel :
76
+ KeymanDeveloperProjectType.Keyboard; // Default is keyboard if missing
77
+ if (result.options.version == '1.0') {
78
+ this.transformFilesVersion10(project, result);
79
+ }
80
+ else {
81
+ result.populateFiles();
82
+ }
83
+ return result;
84
+ }
85
+ transformFilesVersion10(project, result) {
86
+ let ids = {};
87
+ for (let sourceFile of project.Files?.File) {
88
+ let file = new KeymanDeveloperProjectFile10(sourceFile.ID || '', (sourceFile.Filepath || '').replace(/\\/g, '/'), sourceFile.FileVersion || '', this.callbacks);
89
+ if (sourceFile.Details) {
90
+ file.details.copyright = sourceFile.Details.Copyright;
91
+ file.details.name = sourceFile.Details.Name;
92
+ file.details.message = sourceFile.Details.Message;
93
+ file.details.version = sourceFile.Details.Version;
94
+ }
95
+ if (sourceFile.ParentFileID && ids[sourceFile.ParentFileID]) {
96
+ ids[sourceFile.ParentFileID].childFiles.push(file);
97
+ }
98
+ else {
99
+ result.files.push(file);
100
+ ids[file.id] = file;
101
+ }
102
+ }
103
+ }
104
+ /**
105
+ * xml2js will not place single-entry objects into arrays.
106
+ * Easiest way to fix this is to box them ourselves as needed
107
+ * @param source KVKSourceFile
108
+ */
109
+ boxArrays(source) {
110
+ if (!source.KeymanDeveloperProject) {
111
+ return source;
112
+ }
113
+ if (!source.KeymanDeveloperProject.Files || typeof source.KeymanDeveloperProject.Files == 'string') {
114
+ source.KeymanDeveloperProject.Files = { File: [] };
115
+ }
116
+ boxXmlArray(source.KeymanDeveloperProject.Files, 'File');
117
+ return source;
118
+ }
119
+ }
120
120
  //# sourceMappingURL=kpj-file-reader.js.map
121
+ //# debugId=890db4ad-4195-5e6f-9925-bc4f4ce0808e
@@ -1 +1 @@
1
- {"debug_id":"417ef598-d652-5484-9169-a45805033d53","file":"kpj-file-reader.js","mappings":"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","names":[],"sourceRoot":"","sources":["../../../src/kpj/kpj-file-reader.ts"],"version":3}
1
+ {"version":3,"file":"kpj-file-reader.js","sources":["../../../src/kpj/kpj-file-reader.ts"],"sourceRoot":"","names":[],"mappings":"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","debug_id":"890db4ad-4195-5e6f-9925-bc4f4ce0808e"}
@@ -1,13 +1,14 @@
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]="4e8caa61-045d-5f71-abb8-2aec3391abad")}catch(e){}}();
2
- /*
3
- * Keyman Developer Project File
4
- */
5
- ;
6
- ;
7
- ;
8
- ;
9
- ;
10
- ;
11
- export {};
12
- //# debugId=4e8caa61-045d-5f71-abb8-2aec3391abad
1
+ /*
2
+ * Keyman Developer Project File
3
+ */
4
+
5
+ !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]="834d9296-d0ce-510c-8dae-d4720d3aea8d")}catch(e){}}();
6
+ ;
7
+ ;
8
+ ;
9
+ ;
10
+ ;
11
+ ;
12
+ export {};
13
13
  //# sourceMappingURL=kpj-file.js.map
14
+ //# debugId=834d9296-d0ce-510c-8dae-d4720d3aea8d
@@ -1 +1 @@
1
- {"debug_id":"4e8caa61-045d-5f71-abb8-2aec3391abad","file":"kpj-file.js","mappings":";AAAA;;GAEG;AAaF,CAAC;AAWD,CAAC;AAID,CAAC;AAUD,CAAC;AAMD,CAAC;AAMD,CAAC","names":[],"sourceRoot":"","sources":["../../../src/kpj/kpj-file.ts"],"version":3}
1
+ {"version":3,"file":"kpj-file.js","sources":["../../../src/kpj/kpj-file.ts"],"sourceRoot":"","names":[],"mappings":"AAAA;;GAEG;;;AAaF,CAAC;AAWD,CAAC;AAID,CAAC;AAUD,CAAC;AAMD,CAAC;AAMD,CAAC","debug_id":"834d9296-d0ce-510c-8dae-d4720d3aea8d"}
@@ -1,38 +1,39 @@
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]="811cd46a-82cc-50fa-be38-213f60e2d20c")}catch(e){}}();
2
- import KVKFile, { BUILDER_KVK_HEADER_IDENTIFIER, BUILDER_KVK_HEADER_VERSION } from "./kvk-file.js";
3
- import { VisualKeyboard } from "./visual-keyboard.js";
4
- export default class KvkFileReader {
5
- read(source) {
6
- let binary;
7
- let kvk = new KVKFile();
8
- binary = kvk.KVK_FILE.fromBuffer(source);
9
- if (binary.header.identifier != BUILDER_KVK_HEADER_IDENTIFIER ||
10
- binary.header.version != BUILDER_KVK_HEADER_VERSION) {
11
- return null;
12
- }
13
- let result = new VisualKeyboard();
14
- result.header.version = binary.header.version;
15
- result.header.flags = binary.header.flags;
16
- result.header.associatedKeyboard = binary.header.associatedKeyboard.str;
17
- result.header.ansiFont.name = binary.header.ansiFont.name.str;
18
- result.header.ansiFont.size = binary.header.ansiFont.size;
19
- result.header.unicodeFont.name = binary.header.unicodeFont.name.str;
20
- result.header.unicodeFont.size = binary.header.unicodeFont.size;
21
- for (let binaryKey of binary.keys) {
22
- let key = {
23
- flags: binaryKey.flags,
24
- vkey: binaryKey.vkey,
25
- shift: binaryKey.shift,
26
- text: binaryKey.text.str
27
- };
28
- if (binaryKey.bitmapSize) {
29
- key.bitmap = new Uint8Array(binaryKey.bitmapData);
30
- }
31
- result.keys.push(key);
32
- }
33
- return result;
34
- }
35
- }
36
- ;
37
- //# debugId=811cd46a-82cc-50fa-be38-213f60e2d20c
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]="ef77ba7c-ce82-5ac9-9804-c6503e5b6d15")}catch(e){}}();
3
+ import KVKFile, { BUILDER_KVK_HEADER_IDENTIFIER, BUILDER_KVK_HEADER_VERSION } from "./kvk-file.js";
4
+ import { VisualKeyboard } from "./visual-keyboard.js";
5
+ export default class KvkFileReader {
6
+ read(source) {
7
+ let binary;
8
+ let kvk = new KVKFile();
9
+ binary = kvk.KVK_FILE.fromBuffer(source);
10
+ if (binary.header.identifier != BUILDER_KVK_HEADER_IDENTIFIER ||
11
+ binary.header.version != BUILDER_KVK_HEADER_VERSION) {
12
+ return null;
13
+ }
14
+ let result = new VisualKeyboard();
15
+ result.header.version = binary.header.version;
16
+ result.header.flags = binary.header.flags;
17
+ result.header.associatedKeyboard = binary.header.associatedKeyboard.str;
18
+ result.header.ansiFont.name = binary.header.ansiFont.name.str;
19
+ result.header.ansiFont.size = binary.header.ansiFont.size;
20
+ result.header.unicodeFont.name = binary.header.unicodeFont.name.str;
21
+ result.header.unicodeFont.size = binary.header.unicodeFont.size;
22
+ for (let binaryKey of binary.keys) {
23
+ let key = {
24
+ flags: binaryKey.flags,
25
+ vkey: binaryKey.vkey,
26
+ shift: binaryKey.shift,
27
+ text: binaryKey.text.str
28
+ };
29
+ if (binaryKey.bitmapSize) {
30
+ key.bitmap = new Uint8Array(binaryKey.bitmapData);
31
+ }
32
+ result.keys.push(key);
33
+ }
34
+ return result;
35
+ }
36
+ }
37
+ ;
38
38
  //# sourceMappingURL=kvk-file-reader.js.map
39
+ //# debugId=ef77ba7c-ce82-5ac9-9804-c6503e5b6d15
@@ -1 +1 @@
1
- {"debug_id":"811cd46a-82cc-50fa-be38-213f60e2d20c","file":"kvk-file-reader.js","mappings":";AAAA,OAAO,OAAO,EAAE,EAAoB,6BAA6B,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AACrH,OAAO,EAAE,cAAc,EAAqB,MAAM,sBAAsB,CAAC;AAEzE,MAAM,CAAC,OAAO,OAAO,aAAa;IACzB,IAAI,CAAC,MAAkB;QAC5B,IAAI,MAAwB,CAAC;QAC7B,IAAI,GAAG,GAAG,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACzC,IAAG,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,6BAA6B;YACxD,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,0BAA0B,EAAE;YACvD,OAAO,IAAI,CAAC;SACb;QACD,IAAI,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC;QACxE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;QACpE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;QAChE,KAAI,IAAI,SAAS,IAAI,MAAM,CAAC,IAAI,EAAE;YAChC,IAAI,GAAG,GAAsB;gBAC3B,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG;aACzB,CAAC;YACF,IAAG,SAAS,CAAC,UAAU,EAAE;gBACvB,GAAG,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;aACnD;YAED,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACvB;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAAA,CAAC","names":[],"sourceRoot":"","sources":["../../../src/kvk/kvk-file-reader.ts"],"version":3}
1
+ {"version":3,"file":"kvk-file-reader.js","sources":["../../../src/kvk/kvk-file-reader.ts"],"sourceRoot":"","names":[],"mappings":";;AAAA,OAAO,OAAO,EAAE,EAAoB,6BAA6B,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AACrH,OAAO,EAAE,cAAc,EAAqB,MAAM,sBAAsB,CAAC;AAEzE,MAAM,CAAC,OAAO,OAAO,aAAa;IACzB,IAAI,CAAC,MAAkB;QAC5B,IAAI,MAAwB,CAAC;QAC7B,IAAI,GAAG,GAAG,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACzC,IAAG,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,6BAA6B;YACxD,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,0BAA0B,EAAE;YACvD,OAAO,IAAI,CAAC;SACb;QACD,IAAI,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC;QACxE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;QACpE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;QAChE,KAAI,IAAI,SAAS,IAAI,MAAM,CAAC,IAAI,EAAE;YAChC,IAAI,GAAG,GAAsB;gBAC3B,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG;aACzB,CAAC;YACF,IAAG,SAAS,CAAC,UAAU,EAAE;gBACvB,GAAG,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;aACnD;YAED,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACvB;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAAA,CAAC","debug_id":"ef77ba7c-ce82-5ac9-9804-c6503e5b6d15"}
@@ -1,78 +1,79 @@
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]="c899169f-6fb1-5a8e-91c0-b10c16e45832")}catch(e){}}();
2
- import KVKFile, { BUILDER_KVK_HEADER_IDENTIFIER, BUILDER_KVK_HEADER_VERSION } from "./kvk-file.js";
3
- export default class KvkFileWriter {
4
- /**
5
- * Writes the visual keyboard to a binary .kvk format byte array.
6
- * @param source VisualKeyboard
7
- * @returns Uint8Array, the .kvk file
8
- */
9
- write(source) {
10
- const binary = this.build(source);
11
- const kvk = new KVKFile();
12
- const file = new Uint8Array(kvk.KVK_FILE.size(binary));
13
- const data = kvk.KVK_FILE.toBuffer(binary);
14
- file.set(data, 0);
15
- return file;
16
- }
17
- build(source) {
18
- /**
19
- * The visual keyboard text color is included in .kvk files but is never
20
- * defined in .kvks files. Thus, it is always written by the legacy .kvk
21
- * binary writer VisualKeyboardSaverBinary.pas as TColor.clWindowText (SystemColor | 8),
22
- * or in DWORD form 0xFF000008, and we maintain this value for consistency
23
- * here.
24
- */
25
- const VISUAL_KEYBOARD_TEXT_COLOR = 0xFF000008;
26
- const binary = {
27
- header: {
28
- identifier: BUILDER_KVK_HEADER_IDENTIFIER,
29
- version: BUILDER_KVK_HEADER_VERSION,
30
- associatedKeyboard: { len: 0, str: '' },
31
- flags: source.header.flags,
32
- ansiFont: {
33
- color: VISUAL_KEYBOARD_TEXT_COLOR,
34
- size: source.header.ansiFont.size,
35
- name: { len: 0, str: '' }
36
- },
37
- unicodeFont: {
38
- color: VISUAL_KEYBOARD_TEXT_COLOR,
39
- size: source.header.unicodeFont.size,
40
- name: { len: 0, str: '' }
41
- },
42
- },
43
- keyCount: source.keys.length,
44
- keys: []
45
- };
46
- this.setString(binary.header.associatedKeyboard, source.header.associatedKeyboard);
47
- this.setString(binary.header.ansiFont.name, source.header.ansiFont.name);
48
- this.setString(binary.header.unicodeFont.name, source.header.unicodeFont.name);
49
- for (let sourceKey of source.keys) {
50
- const binaryKey = {
51
- flags: sourceKey.flags,
52
- vkey: sourceKey.vkey,
53
- shift: sourceKey.shift,
54
- text: { len: 0, str: '' },
55
- bitmapSize: sourceKey.bitmap ? sourceKey.bitmap.byteLength : 0,
56
- bitmapData: sourceKey.bitmap ? Array.from(sourceKey.bitmap) : []
57
- };
58
- this.setString(binaryKey.text, sourceKey.text || '');
59
- binary.keys.push(binaryKey);
60
- }
61
- return binary;
62
- }
63
- /**
64
- * Fills a kvk string from a source string. Note that the format includes both
65
- * a length word and zero termination.
66
- *
67
- * @param str
68
- * @param value
69
- * @returns number
70
- */
71
- setString(str, value) {
72
- str.len = value.length + 1;
73
- str.str = value;
74
- }
75
- }
76
- ;
77
- //# debugId=c899169f-6fb1-5a8e-91c0-b10c16e45832
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]="b28e7768-a70e-5800-ac1c-fc8d641d5d44")}catch(e){}}();
3
+ import KVKFile, { BUILDER_KVK_HEADER_IDENTIFIER, BUILDER_KVK_HEADER_VERSION } from "./kvk-file.js";
4
+ export default class KvkFileWriter {
5
+ /**
6
+ * Writes the visual keyboard to a binary .kvk format byte array.
7
+ * @param source VisualKeyboard
8
+ * @returns Uint8Array, the .kvk file
9
+ */
10
+ write(source) {
11
+ const binary = this.build(source);
12
+ const kvk = new KVKFile();
13
+ const file = new Uint8Array(kvk.KVK_FILE.size(binary));
14
+ const data = kvk.KVK_FILE.toBuffer(binary);
15
+ file.set(data, 0);
16
+ return file;
17
+ }
18
+ build(source) {
19
+ /**
20
+ * The visual keyboard text color is included in .kvk files but is never
21
+ * defined in .kvks files. Thus, it is always written by the legacy .kvk
22
+ * binary writer VisualKeyboardSaverBinary.pas as TColor.clWindowText (SystemColor | 8),
23
+ * or in DWORD form 0xFF000008, and we maintain this value for consistency
24
+ * here.
25
+ */
26
+ const VISUAL_KEYBOARD_TEXT_COLOR = 0xFF000008;
27
+ const binary = {
28
+ header: {
29
+ identifier: BUILDER_KVK_HEADER_IDENTIFIER,
30
+ version: BUILDER_KVK_HEADER_VERSION,
31
+ associatedKeyboard: { len: 0, str: '' },
32
+ flags: source.header.flags,
33
+ ansiFont: {
34
+ color: VISUAL_KEYBOARD_TEXT_COLOR,
35
+ size: source.header.ansiFont.size,
36
+ name: { len: 0, str: '' }
37
+ },
38
+ unicodeFont: {
39
+ color: VISUAL_KEYBOARD_TEXT_COLOR,
40
+ size: source.header.unicodeFont.size,
41
+ name: { len: 0, str: '' }
42
+ },
43
+ },
44
+ keyCount: source.keys.length,
45
+ keys: []
46
+ };
47
+ this.setString(binary.header.associatedKeyboard, source.header.associatedKeyboard);
48
+ this.setString(binary.header.ansiFont.name, source.header.ansiFont.name);
49
+ this.setString(binary.header.unicodeFont.name, source.header.unicodeFont.name);
50
+ for (let sourceKey of source.keys) {
51
+ const binaryKey = {
52
+ flags: sourceKey.flags,
53
+ vkey: sourceKey.vkey,
54
+ shift: sourceKey.shift,
55
+ text: { len: 0, str: '' },
56
+ bitmapSize: sourceKey.bitmap ? sourceKey.bitmap.byteLength : 0,
57
+ bitmapData: sourceKey.bitmap ? Array.from(sourceKey.bitmap) : []
58
+ };
59
+ this.setString(binaryKey.text, sourceKey.text || '');
60
+ binary.keys.push(binaryKey);
61
+ }
62
+ return binary;
63
+ }
64
+ /**
65
+ * Fills a kvk string from a source string. Note that the format includes both
66
+ * a length word and zero termination.
67
+ *
68
+ * @param str
69
+ * @param value
70
+ * @returns number
71
+ */
72
+ setString(str, value) {
73
+ str.len = value.length + 1;
74
+ str.str = value;
75
+ }
76
+ }
77
+ ;
78
78
  //# sourceMappingURL=kvk-file-writer.js.map
79
+ //# debugId=b28e7768-a70e-5800-ac1c-fc8d641d5d44
@@ -1 +1 @@
1
- {"debug_id":"c899169f-6fb1-5a8e-91c0-b10c16e45832","file":"kvk-file-writer.js","mappings":"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","names":[],"sourceRoot":"","sources":["../../../src/kvk/kvk-file-writer.ts"],"version":3}
1
+ {"version":3,"file":"kvk-file-writer.js","sources":["../../../src/kvk/kvk-file-writer.ts"],"sourceRoot":"","names":[],"mappings":"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","debug_id":"b28e7768-a70e-5800-ac1c-fc8d641d5d44"}