@keymanapp/common-types 18.0.17-alpha → 18.0.19-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,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":";;AAAA,OAAO,OAAO,EAAE,EAAoB,6BAA6B,EAAE,0BAA0B,EAAuC,MAAM,eAAe,CAAC;AAG1J,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC;;;;OAIG;IACH,KAAK,CAAC,MAAsB;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,GAAG,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAe,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACnE,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,MAAsB;QAClC;;;;;;WAMG;QACH,MAAM,0BAA0B,GAAG,UAAU,CAAC;QAC9C,MAAM,MAAM,GAAqB;YAC/B,MAAM,EAAE;gBACN,UAAU,EAAE,6BAA6B;gBACzC,OAAO,EAAE,0BAA0B;gBACnC,kBAAkB,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC;gBAClC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK;gBAC1B,QAAQ,EAAC;oBACP,KAAK,EAAE,0BAA0B;oBACjC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI;oBACjC,IAAI,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC;iBACrB;gBACD,WAAW,EAAC;oBACV,KAAK,EAAE,0BAA0B;oBACjC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI;oBACpC,IAAI,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC;iBACrB;aACF;YACD,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;YAC5B,IAAI,EAAC,EAAE;SACR,CAAC;QAEF,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACnF,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAE/E,KAAI,IAAI,SAAS,IAAI,MAAM,CAAC,IAAI,EAAE;YAChC,MAAM,SAAS,GAAoB;gBACjC,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;gBACzB,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC9D,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;aACjE,CAAC;YACF,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YACrD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC7B;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;OAOG;IACM,SAAS,CAAC,GAAuB,EAAE,KAAa;QACvD,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3B,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC;IAClB,CAAC;CACF;AAAA,CAAC","debug_id":"b28e7768-a70e-5800-ac1c-fc8d641d5d44"}