puzzle-lib 1.3.0 → 1.6.0

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 (180) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +38 -39
  3. package/build/src/Braille/BrailleCharacter.d.ts +15 -15
  4. package/build/src/Braille/BrailleCharacter.js +38 -37
  5. package/build/src/Braille/BrailleCharacter.js.map +1 -1
  6. package/build/src/Braille/BrailleData.d.ts +6 -6
  7. package/build/src/Braille/BrailleData.js +65 -64
  8. package/build/src/Braille/BrailleData.js.map +1 -1
  9. package/build/src/Braille/BrailleDot.d.ts +9 -9
  10. package/build/src/Braille/BrailleDot.js +13 -12
  11. package/build/src/Braille/BrailleDot.js.map +1 -1
  12. package/build/src/Braille/BrailleEncoding.d.ts +54 -54
  13. package/build/src/Braille/BrailleEncoding.js +65 -64
  14. package/build/src/Braille/BrailleEncoding.js.map +1 -1
  15. package/build/src/Braille/BrailleStream.d.ts +18 -18
  16. package/build/src/Braille/BrailleStream.js +75 -74
  17. package/build/src/Braille/BrailleStream.js.map +1 -1
  18. package/build/src/Cipher/AutoKeyString.d.ts +4 -4
  19. package/build/src/Cipher/AutoKeyString.js +34 -33
  20. package/build/src/Cipher/AutoKeyString.js.map +1 -1
  21. package/build/src/Cipher/CaesarString.d.ts +8 -8
  22. package/build/src/Cipher/CaesarString.js +31 -30
  23. package/build/src/Cipher/CaesarString.js.map +1 -1
  24. package/build/src/Cipher/CaesarUtils.d.ts +13 -13
  25. package/build/src/Cipher/CaesarUtils.js +57 -56
  26. package/build/src/Cipher/CaesarUtils.js.map +1 -1
  27. package/build/src/Cipher/KeyedCipherStringBase.d.ts +12 -12
  28. package/build/src/Cipher/KeyedCipherStringBase.js +28 -27
  29. package/build/src/Cipher/KeyedCipherStringBase.js.map +1 -1
  30. package/build/src/Cipher/VigenereString.d.ts +4 -4
  31. package/build/src/Cipher/VigenereString.js +21 -20
  32. package/build/src/Cipher/VigenereString.js.map +1 -1
  33. package/build/src/Common/CharacterImage.d.ts +6 -6
  34. package/build/src/Common/CharacterImage.js +10 -9
  35. package/build/src/Common/CharacterImage.js.map +1 -1
  36. package/build/src/Common/EncodingCategory.d.ts +8 -8
  37. package/build/src/Common/EncodingCategory.js +12 -11
  38. package/build/src/Common/EncodingCategory.js.map +1 -1
  39. package/build/src/Common/EncodingCharacterBase.d.ts +23 -23
  40. package/build/src/Common/EncodingCharacterBase.js +52 -51
  41. package/build/src/Common/EncodingCharacterBase.js.map +1 -1
  42. package/build/src/Common/EncodingDataBase.d.ts +7 -7
  43. package/build/src/Common/EncodingDataBase.js +29 -28
  44. package/build/src/Common/EncodingDataBase.js.map +1 -1
  45. package/build/src/Common/EncodingEntry.d.ts +8 -8
  46. package/build/src/Common/EncodingEntry.js +14 -13
  47. package/build/src/Common/EncodingEntry.js.map +1 -1
  48. package/build/src/Common/EncodingLookupResult.d.ts +6 -6
  49. package/build/src/Common/EncodingLookupResult.js +13 -12
  50. package/build/src/Common/EncodingLookupResult.js.map +1 -1
  51. package/build/src/Common/Helpers.d.ts +4 -4
  52. package/build/src/Common/Helpers.js +16 -15
  53. package/build/src/Common/Helpers.js.map +1 -1
  54. package/build/src/Common/InlineSvg.d.ts +7 -7
  55. package/build/src/Common/InlineSvg.js +14 -13
  56. package/build/src/Common/InlineSvg.js.map +1 -1
  57. package/build/src/Conversion/CharacterAutoConvert.d.ts +10 -7
  58. package/build/src/Conversion/CharacterAutoConvert.js +88 -80
  59. package/build/src/Conversion/CharacterAutoConvert.js.map +1 -1
  60. package/build/src/Conversion/CharacterConversion.d.ts +8 -8
  61. package/build/src/Conversion/CharacterConversion.js +50 -49
  62. package/build/src/Conversion/CharacterConversion.js.map +1 -1
  63. package/build/src/Conversion/CharacterEncoding.d.ts +9 -8
  64. package/build/src/Conversion/CharacterEncoding.js +13 -11
  65. package/build/src/Conversion/CharacterEncoding.js.map +1 -1
  66. package/build/src/Conversion/CharacterTableEntry.d.ts +10 -10
  67. package/build/src/Conversion/CharacterTableEntry.js +19 -18
  68. package/build/src/Conversion/CharacterTableEntry.js.map +1 -1
  69. package/build/src/Conversion/SignificantFigures.d.ts +7 -7
  70. package/build/src/Conversion/SignificantFigures.js +50 -49
  71. package/build/src/Conversion/SignificantFigures.js.map +1 -1
  72. package/build/src/Conversion/StringAutoConvert.d.ts +6 -6
  73. package/build/src/Conversion/StringAutoConvert.js +46 -45
  74. package/build/src/Conversion/StringAutoConvert.js.map +1 -1
  75. package/build/src/Morse/MorseCharacter.d.ts +22 -22
  76. package/build/src/Morse/MorseCharacter.js +96 -95
  77. package/build/src/Morse/MorseCharacter.js.map +1 -1
  78. package/build/src/Morse/MorseData.d.ts +6 -6
  79. package/build/src/Morse/MorseData.js +70 -69
  80. package/build/src/Morse/MorseData.js.map +1 -1
  81. package/build/src/Morse/MorseEncoding.d.ts +59 -59
  82. package/build/src/Morse/MorseEncoding.js +94 -93
  83. package/build/src/Morse/MorseEncoding.js.map +1 -1
  84. package/build/src/Morse/MorseString.d.ts +10 -10
  85. package/build/src/Morse/MorseString.js +66 -65
  86. package/build/src/Morse/MorseString.js.map +1 -1
  87. package/build/src/Nato/NatoCharacter.d.ts +5 -5
  88. package/build/src/Nato/NatoCharacter.js +10 -9
  89. package/build/src/Nato/NatoCharacter.js.map +1 -1
  90. package/build/src/Nato/NatoData.d.ts +7 -7
  91. package/build/src/Nato/NatoData.js +51 -50
  92. package/build/src/Nato/NatoData.js.map +1 -1
  93. package/build/src/NavalFlags/NavalFlags.d.ts +7 -7
  94. package/build/src/NavalFlags/NavalFlags.js +52 -50
  95. package/build/src/NavalFlags/NavalFlags.js.map +1 -1
  96. package/build/src/Resistor/Resistor.d.ts +24 -24
  97. package/build/src/Resistor/Resistor.js +86 -85
  98. package/build/src/Resistor/Resistor.js.map +1 -1
  99. package/build/src/Resistor/ResistorColorEntry.d.ts +12 -12
  100. package/build/src/Resistor/ResistorColorEntry.js +31 -30
  101. package/build/src/Resistor/ResistorColorEntry.js.map +1 -1
  102. package/build/src/Semaphore/SemaphoreCharacter.d.ts +20 -20
  103. package/build/src/Semaphore/SemaphoreCharacter.js +75 -74
  104. package/build/src/Semaphore/SemaphoreCharacter.js.map +1 -1
  105. package/build/src/Semaphore/SemaphoreData.d.ts +6 -6
  106. package/build/src/Semaphore/SemaphoreData.js +53 -52
  107. package/build/src/Semaphore/SemaphoreData.js.map +1 -1
  108. package/build/src/Semaphore/SemaphoreDegrees.d.ts +5 -5
  109. package/build/src/Semaphore/SemaphoreDegrees.js +26 -25
  110. package/build/src/Semaphore/SemaphoreDegrees.js.map +1 -1
  111. package/build/src/Semaphore/SemaphoreDirection.d.ts +11 -11
  112. package/build/src/Semaphore/SemaphoreDirection.js +15 -14
  113. package/build/src/Semaphore/SemaphoreDirection.js.map +1 -1
  114. package/build/src/Semaphore/SemaphoreEncoding.d.ts +40 -40
  115. package/build/src/Semaphore/SemaphoreEncoding.js +47 -46
  116. package/build/src/Semaphore/SemaphoreEncoding.js.map +1 -1
  117. package/build/src/Semaphore/SemaphoreStream.d.ts +17 -17
  118. package/build/src/Semaphore/SemaphoreStream.js +72 -71
  119. package/build/src/Semaphore/SemaphoreStream.js.map +1 -1
  120. package/build/src/WordSearch/Point.d.ts +4 -4
  121. package/build/src/WordSearch/Point.js +2 -2
  122. package/build/src/WordSearch/Result.d.ts +6 -6
  123. package/build/src/WordSearch/Result.js +10 -9
  124. package/build/src/WordSearch/Result.js.map +1 -1
  125. package/build/src/WordSearch/WordSearchDirection.d.ts +6 -6
  126. package/build/src/WordSearch/WordSearchDirection.js +10 -9
  127. package/build/src/WordSearch/WordSearchDirection.js.map +1 -1
  128. package/build/src/WordSearch/WordSearchSolver.d.ts +27 -18
  129. package/build/src/WordSearch/WordSearchSolver.js +222 -171
  130. package/build/src/WordSearch/WordSearchSolver.js.map +1 -1
  131. package/build/src/index.d.ts +35 -35
  132. package/build/src/index.js +72 -70
  133. package/build/src/index.js.map +1 -1
  134. package/package.json +40 -39
  135. package/src/Braille/BrailleCharacter.ts +49 -0
  136. package/src/Braille/BrailleData.ts +131 -0
  137. package/src/Braille/BrailleDot.ts +9 -0
  138. package/src/Braille/BrailleEncoding.ts +144 -0
  139. package/src/Braille/BrailleStream.ts +87 -0
  140. package/src/Cipher/AutoKeyString.ts +35 -0
  141. package/src/Cipher/CaesarString.ts +38 -0
  142. package/src/Cipher/CaesarUtils.ts +69 -0
  143. package/src/Cipher/KeyedCipherStringBase.ts +35 -0
  144. package/src/Cipher/VigenereString.ts +21 -0
  145. package/src/Common/CharacterImage.ts +11 -0
  146. package/src/Common/EncodingCategory.ts +10 -0
  147. package/src/Common/EncodingCharacterBase.ts +72 -0
  148. package/src/Common/EncodingDataBase.ts +31 -0
  149. package/src/Common/EncodingEntry.ts +17 -0
  150. package/src/Common/EncodingLookupResult.ts +10 -0
  151. package/src/Common/Helpers.ts +13 -0
  152. package/src/Common/InlineSvg.ts +15 -0
  153. package/src/Conversion/CharacterAutoConvert.ts +108 -0
  154. package/src/Conversion/CharacterConversion.ts +89 -0
  155. package/src/Conversion/CharacterEncoding.ts +9 -0
  156. package/src/Conversion/CharacterTableEntry.ts +23 -0
  157. package/src/Conversion/SignificantFigures.ts +55 -0
  158. package/src/Conversion/StringAutoConvert.ts +56 -0
  159. package/src/Morse/MorseCharacter.ts +112 -0
  160. package/src/Morse/MorseData.ts +143 -0
  161. package/src/Morse/MorseEncoding.ts +98 -0
  162. package/src/Morse/MorseString.ts +106 -0
  163. package/src/Nato/NatoCharacter.ts +9 -0
  164. package/src/Nato/NatoData.ts +49 -0
  165. package/src/NavalFlags/LICENSE +7 -0
  166. package/src/NavalFlags/NavalFlags.ts +293 -0
  167. package/src/Resistor/Resistor.ts +135 -0
  168. package/src/Resistor/ResistorColorEntry.ts +43 -0
  169. package/src/Semaphore/SemaphoreCharacter.ts +107 -0
  170. package/src/Semaphore/SemaphoreData.ts +58 -0
  171. package/src/Semaphore/SemaphoreDegrees.ts +26 -0
  172. package/src/Semaphore/SemaphoreDirection.ts +11 -0
  173. package/src/Semaphore/SemaphoreEncoding.ts +48 -0
  174. package/src/Semaphore/SemaphoreStream.ts +89 -0
  175. package/src/WordSearch/Point.ts +4 -0
  176. package/src/WordSearch/Result.ts +10 -0
  177. package/src/WordSearch/WordSearchDirection.ts +6 -0
  178. package/src/WordSearch/WordSearchSolver.ts +271 -0
  179. package/src/index.ts +38 -0
  180. package/src/trie-prefix-tree.d.ts +70 -0
@@ -1,19 +1,20 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- class CharacterTableEntry {
4
- constructor(character, value, maxValue) {
5
- this.character = character;
6
- this.binary = CharacterTableEntry.getValue(value, 2, maxValue);
7
- this.ternary = CharacterTableEntry.getValue(value, 3, maxValue);
8
- this.octal = CharacterTableEntry.getValue(value, 8, maxValue);
9
- this.decimal = CharacterTableEntry.getValue(value, 10, maxValue);
10
- this.hexadecimal = CharacterTableEntry.getValue(value, 16, maxValue);
11
- }
12
- static getValue(value, base, maxValue) {
13
- return value
14
- .toString(base)
15
- .padStart(Math.ceil(Math.log(maxValue) / Math.log(base)), '0');
16
- }
17
- }
18
- exports.CharacterTableEntry = CharacterTableEntry;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CharacterTableEntry = void 0;
4
+ class CharacterTableEntry {
5
+ constructor(character, value, maxValue) {
6
+ this.character = character;
7
+ this.binary = CharacterTableEntry.getValue(value, 2, maxValue);
8
+ this.ternary = CharacterTableEntry.getValue(value, 3, maxValue);
9
+ this.octal = CharacterTableEntry.getValue(value, 8, maxValue);
10
+ this.decimal = CharacterTableEntry.getValue(value, 10, maxValue);
11
+ this.hexadecimal = CharacterTableEntry.getValue(value, 16, maxValue);
12
+ }
13
+ static getValue(value, base, maxValue) {
14
+ return value
15
+ .toString(base)
16
+ .padStart(Math.ceil(Math.log(maxValue) / Math.log(base)), '0');
17
+ }
18
+ }
19
+ exports.CharacterTableEntry = CharacterTableEntry;
19
20
  //# sourceMappingURL=CharacterTableEntry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CharacterTableEntry.js","sourceRoot":"","sources":["../../../src/Conversion/CharacterTableEntry.ts"],"names":[],"mappings":";;AAAA,MAAa,mBAAmB;IAc9B,YAAY,SAAiB,EAAE,KAAa,EAAE,QAAgB;QAC5D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,GAAG,mBAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QAChE,IAAI,CAAC,KAAK,GAAG,mBAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC9D,IAAI,CAAC,OAAO,GAAG,mBAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;QACjE,IAAI,CAAC,WAAW,GAAG,mBAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;IACvE,CAAC;IApBO,MAAM,CAAC,QAAQ,CAAC,KAAa,EAAE,IAAY,EAAE,QAAgB;QACnE,OAAO,KAAK;aACT,QAAQ,CAAC,IAAI,CAAC;aACd,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACnE,CAAC;CAiBF;AAtBD,kDAsBC"}
1
+ {"version":3,"file":"CharacterTableEntry.js","sourceRoot":"","sources":["../../../src/Conversion/CharacterTableEntry.ts"],"names":[],"mappings":";;;AAAA,MAAa,mBAAmB;IAc9B,YAAY,SAAiB,EAAE,KAAa,EAAE,QAAgB;QAC5D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,GAAG,mBAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QAChE,IAAI,CAAC,KAAK,GAAG,mBAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC9D,IAAI,CAAC,OAAO,GAAG,mBAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;QACjE,IAAI,CAAC,WAAW,GAAG,mBAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;IACvE,CAAC;IApBO,MAAM,CAAC,QAAQ,CAAC,KAAa,EAAE,IAAY,EAAE,QAAgB;QACnE,OAAO,KAAK;aACT,QAAQ,CAAC,IAAI,CAAC;aACd,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACnE,CAAC;CAiBF;AAtBD,kDAsBC"}
@@ -1,7 +1,7 @@
1
- export declare class SignificantFigures {
2
- static ceil(num: number, sigFigs: number): number;
3
- static floor(num: number, sigFigs: number): number;
4
- static round(num: number, sigFigs: number): number;
5
- private static roundInternal;
6
- private static getFactor;
7
- }
1
+ export declare class SignificantFigures {
2
+ static ceil(num: number, sigFigs: number): number;
3
+ static floor(num: number, sigFigs: number): number;
4
+ static round(num: number, sigFigs: number): number;
5
+ private static roundInternal;
6
+ private static getFactor;
7
+ }
@@ -1,50 +1,51 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- class SignificantFigures {
4
- static ceil(num, sigFigs) {
5
- return this.roundInternal(Math.ceil, num, sigFigs);
6
- }
7
- static floor(num, sigFigs) {
8
- return this.roundInternal(Math.floor, num, sigFigs);
9
- }
10
- static round(num, sigFigs) {
11
- return this.roundInternal(Math.round, num, sigFigs);
12
- }
13
- static roundInternal(func, num, sigFigs) {
14
- if (num === 0) {
15
- return num;
16
- }
17
- if (sigFigs <= 0) {
18
- throw new RangeError('sigFigs value must be positive');
19
- }
20
- const factor = this.getFactor(num, sigFigs);
21
- if (factor > 0) {
22
- return func(num / factor) * factor;
23
- }
24
- else if (factor < 0) {
25
- const absFactor = Math.abs(factor);
26
- return func(num * absFactor) / absFactor;
27
- }
28
- else {
29
- return num;
30
- }
31
- }
32
- static getFactor(num, sigFigs) {
33
- const absNum = Math.abs(num);
34
- let digits = 0;
35
- if (absNum < 1) {
36
- digits = -sigFigs;
37
- }
38
- else {
39
- digits = Math.ceil(Math.log(absNum) / Math.log(10)) - sigFigs;
40
- }
41
- if (digits < 0) {
42
- return -Math.pow(10, Math.abs(digits));
43
- }
44
- else {
45
- return Math.pow(10, digits);
46
- }
47
- }
48
- }
49
- exports.SignificantFigures = SignificantFigures;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SignificantFigures = void 0;
4
+ class SignificantFigures {
5
+ static ceil(num, sigFigs) {
6
+ return this.roundInternal(Math.ceil, num, sigFigs);
7
+ }
8
+ static floor(num, sigFigs) {
9
+ return this.roundInternal(Math.floor, num, sigFigs);
10
+ }
11
+ static round(num, sigFigs) {
12
+ return this.roundInternal(Math.round, num, sigFigs);
13
+ }
14
+ static roundInternal(func, num, sigFigs) {
15
+ if (num === 0) {
16
+ return num;
17
+ }
18
+ if (sigFigs <= 0) {
19
+ throw new RangeError('sigFigs value must be positive');
20
+ }
21
+ const factor = this.getFactor(num, sigFigs);
22
+ if (factor > 0) {
23
+ return func(num / factor) * factor;
24
+ }
25
+ else if (factor < 0) {
26
+ const absFactor = Math.abs(factor);
27
+ return func(num * absFactor) / absFactor;
28
+ }
29
+ else {
30
+ return num;
31
+ }
32
+ }
33
+ static getFactor(num, sigFigs) {
34
+ const absNum = Math.abs(num);
35
+ let digits = 0;
36
+ if (absNum < 1) {
37
+ digits = -sigFigs;
38
+ }
39
+ else {
40
+ digits = Math.ceil(Math.log(absNum) / Math.log(10)) - sigFigs;
41
+ }
42
+ if (digits < 0) {
43
+ return -Math.pow(10, Math.abs(digits));
44
+ }
45
+ else {
46
+ return Math.pow(10, digits);
47
+ }
48
+ }
49
+ }
50
+ exports.SignificantFigures = SignificantFigures;
50
51
  //# sourceMappingURL=SignificantFigures.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SignificantFigures.js","sourceRoot":"","sources":["../../../src/Conversion/SignificantFigures.ts"],"names":[],"mappings":";;AAAA,MAAa,kBAAkB;IAC7B,MAAM,CAAC,IAAI,CAAC,GAAW,EAAE,OAAe;QACtC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAW,EAAE,OAAe;QACvC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAW,EAAE,OAAe;QACvC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAEO,MAAM,CAAC,aAAa,CAC1B,IAA6B,EAC7B,GAAW,EACX,OAAe;QAEf,IAAI,GAAG,KAAK,CAAC,EAAE;YACb,OAAO,GAAG,CAAC;SACZ;QAED,IAAI,OAAO,IAAI,CAAC,EAAE;YAChB,MAAM,IAAI,UAAU,CAAC,gCAAgC,CAAC,CAAC;SACxD;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAE5C,IAAI,MAAM,GAAG,CAAC,EAAE;YACd,OAAO,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;SACpC;aAAM,IAAI,MAAM,GAAG,CAAC,EAAE;YACrB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACnC,OAAO,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;SAC1C;aAAM;YACL,OAAO,GAAG,CAAC;SACZ;IACH,CAAC;IAEO,MAAM,CAAC,SAAS,CAAC,GAAW,EAAE,OAAe;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,IAAI,MAAM,GAAG,CAAC,EAAE;YACd,MAAM,GAAG,CAAC,OAAO,CAAC;SACnB;aAAM;YACL,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC;SAC/D;QAED,IAAI,MAAM,GAAG,CAAC,EAAE;YACd,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;SACxC;aAAM;YACL,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;SAC7B;IACH,CAAC;CACF;AAtDD,gDAsDC"}
1
+ {"version":3,"file":"SignificantFigures.js","sourceRoot":"","sources":["../../../src/Conversion/SignificantFigures.ts"],"names":[],"mappings":";;;AAAA,MAAa,kBAAkB;IAC7B,MAAM,CAAC,IAAI,CAAC,GAAW,EAAE,OAAe;QACtC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAW,EAAE,OAAe;QACvC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAW,EAAE,OAAe;QACvC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAEO,MAAM,CAAC,aAAa,CAC1B,IAA6B,EAC7B,GAAW,EACX,OAAe;QAEf,IAAI,GAAG,KAAK,CAAC,EAAE;YACb,OAAO,GAAG,CAAC;SACZ;QAED,IAAI,OAAO,IAAI,CAAC,EAAE;YAChB,MAAM,IAAI,UAAU,CAAC,gCAAgC,CAAC,CAAC;SACxD;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAE5C,IAAI,MAAM,GAAG,CAAC,EAAE;YACd,OAAO,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;SACpC;aAAM,IAAI,MAAM,GAAG,CAAC,EAAE;YACrB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACnC,OAAO,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;SAC1C;aAAM;YACL,OAAO,GAAG,CAAC;SACZ;IACH,CAAC;IAEO,MAAM,CAAC,SAAS,CAAC,GAAW,EAAE,OAAe;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,IAAI,MAAM,GAAG,CAAC,EAAE;YACd,MAAM,GAAG,CAAC,OAAO,CAAC;SACnB;aAAM;YACL,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC;SAC/D;QAED,IAAI,MAAM,GAAG,CAAC,EAAE;YACd,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;SACxC;aAAM;YACL,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;SAC7B;IACH,CAAC;CACF;AAtDD,gDAsDC"}
@@ -1,6 +1,6 @@
1
- import { CharacterEncoding } from './CharacterEncoding';
2
- export declare class StringAutoConvert {
3
- static convertString(input: string, homogeneous: boolean): string;
4
- static determineStringEncoding(input: string): CharacterEncoding;
5
- static splitString(input: string): string[];
6
- }
1
+ import { CharacterEncoding } from './CharacterEncoding';
2
+ export declare class StringAutoConvert {
3
+ static convertString(input: string, homogeneous: boolean): string;
4
+ static determineStringEncoding(input: string): CharacterEncoding;
5
+ static splitString(input: string): string[];
6
+ }
@@ -1,46 +1,47 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const CharacterAutoConvert_1 = require("./CharacterAutoConvert");
4
- const CharacterEncoding_1 = require("./CharacterEncoding");
5
- class StringAutoConvert {
6
- static convertString(input, homogeneous) {
7
- const split = this.splitString(input);
8
- if (homogeneous) {
9
- const encoding = this.determineStringEncoding(input);
10
- return split.reduce((result, letter) => result + CharacterAutoConvert_1.CharacterAutoConvert.convertCharacter(letter, encoding), '');
11
- }
12
- else {
13
- return split.reduce((result, letter) => result + CharacterAutoConvert_1.CharacterAutoConvert.convertCharacter(letter), '');
14
- }
15
- }
16
- static determineStringEncoding(input) {
17
- const encodingCount = {};
18
- const parsed = this.splitString(input);
19
- const encodingKeys = [];
20
- for (const letter of parsed) {
21
- const charEncoding = CharacterAutoConvert_1.CharacterAutoConvert.determineCharacterEncoding(letter);
22
- if (!encodingCount[charEncoding]) {
23
- encodingCount[charEncoding] = 1;
24
- encodingKeys.push(charEncoding);
25
- }
26
- else {
27
- encodingCount[charEncoding] = encodingCount[charEncoding] + 1;
28
- }
29
- }
30
- let maxCount = 0;
31
- let maxEncoding;
32
- maxEncoding = CharacterEncoding_1.CharacterEncoding.None;
33
- for (const encoding of encodingKeys) {
34
- if (encodingCount[encoding] > maxCount) {
35
- maxCount = encodingCount[encoding];
36
- maxEncoding = encoding;
37
- }
38
- }
39
- return maxEncoding;
40
- }
41
- static splitString(input) {
42
- return input.split(' ').filter(item => item !== '');
43
- }
44
- }
45
- exports.StringAutoConvert = StringAutoConvert;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StringAutoConvert = void 0;
4
+ const CharacterAutoConvert_1 = require("./CharacterAutoConvert");
5
+ const CharacterEncoding_1 = require("./CharacterEncoding");
6
+ class StringAutoConvert {
7
+ static convertString(input, homogeneous) {
8
+ const split = this.splitString(input);
9
+ if (homogeneous) {
10
+ const encoding = this.determineStringEncoding(input);
11
+ return split.reduce((result, letter) => result + CharacterAutoConvert_1.CharacterAutoConvert.convertCharacter(letter, encoding), '');
12
+ }
13
+ else {
14
+ return split.reduce((result, letter) => result + CharacterAutoConvert_1.CharacterAutoConvert.convertCharacter(letter), '');
15
+ }
16
+ }
17
+ static determineStringEncoding(input) {
18
+ const encodingCount = {};
19
+ const parsed = this.splitString(input);
20
+ const encodingKeys = [];
21
+ for (const letter of parsed) {
22
+ const charEncoding = CharacterAutoConvert_1.CharacterAutoConvert.determineCharacterEncoding(letter);
23
+ if (!encodingCount[charEncoding]) {
24
+ encodingCount[charEncoding] = 1;
25
+ encodingKeys.push(charEncoding);
26
+ }
27
+ else {
28
+ encodingCount[charEncoding] = encodingCount[charEncoding] + 1;
29
+ }
30
+ }
31
+ let maxCount = 0;
32
+ let maxEncoding;
33
+ maxEncoding = CharacterEncoding_1.CharacterEncoding.None;
34
+ for (const encoding of encodingKeys) {
35
+ if (encodingCount[encoding] > maxCount) {
36
+ maxCount = encodingCount[encoding];
37
+ maxEncoding = encoding;
38
+ }
39
+ }
40
+ return maxEncoding;
41
+ }
42
+ static splitString(input) {
43
+ return input.split(' ').filter(item => item !== '');
44
+ }
45
+ }
46
+ exports.StringAutoConvert = StringAutoConvert;
46
47
  //# sourceMappingURL=StringAutoConvert.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StringAutoConvert.js","sourceRoot":"","sources":["../../../src/Conversion/StringAutoConvert.ts"],"names":[],"mappings":";;AAAA,iEAA4D;AAC5D,2DAAsD;AAEtD,MAAa,iBAAiB;IAC5B,MAAM,CAAC,aAAa,CAAC,KAAa,EAAE,WAAoB;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEtC,IAAI,WAAW,EAAE;YACf,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;YACrD,OAAO,KAAK,CAAC,MAAM,CACjB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CACjB,MAAM,GAAG,2CAAoB,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,EAClE,EAAE,CACH,CAAC;SACH;aAAM;YACL,OAAO,KAAK,CAAC,MAAM,CACjB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CACjB,MAAM,GAAG,2CAAoB,CAAC,gBAAgB,CAAC,MAAM,CAAC,EACxD,EAAE,CACH,CAAC;SACH;IACH,CAAC;IAED,MAAM,CAAC,uBAAuB,CAAC,KAAa;QAC1C,MAAM,aAAa,GAA8B,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,YAAY,GAAa,EAAE,CAAC;QAElC,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE;YAC3B,MAAM,YAAY,GAAG,2CAAoB,CAAC,0BAA0B,CAClE,MAAM,CACP,CAAC;YACF,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE;gBAChC,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBAChC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aACjC;iBAAM;gBACL,aAAa,CAAC,YAAY,CAAC,GAAG,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;aAC/D;SACF;QAED,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,WAAmB,CAAC;QACxB,WAAW,GAAG,qCAAiB,CAAC,IAAI,CAAC;QAErC,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE;YACnC,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,QAAQ,EAAE;gBACtC,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACnC,WAAW,GAAG,QAAQ,CAAC;aACxB;SACF;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,KAAa;QAC9B,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;CACF;AArDD,8CAqDC"}
1
+ {"version":3,"file":"StringAutoConvert.js","sourceRoot":"","sources":["../../../src/Conversion/StringAutoConvert.ts"],"names":[],"mappings":";;;AAAA,iEAA4D;AAC5D,2DAAsD;AAEtD,MAAa,iBAAiB;IAC5B,MAAM,CAAC,aAAa,CAAC,KAAa,EAAE,WAAoB;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEtC,IAAI,WAAW,EAAE;YACf,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;YACrD,OAAO,KAAK,CAAC,MAAM,CACjB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CACjB,MAAM,GAAG,2CAAoB,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,EAClE,EAAE,CACH,CAAC;SACH;aAAM;YACL,OAAO,KAAK,CAAC,MAAM,CACjB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CACjB,MAAM,GAAG,2CAAoB,CAAC,gBAAgB,CAAC,MAAM,CAAC,EACxD,EAAE,CACH,CAAC;SACH;IACH,CAAC;IAED,MAAM,CAAC,uBAAuB,CAAC,KAAa;QAC1C,MAAM,aAAa,GAA8B,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,YAAY,GAAa,EAAE,CAAC;QAElC,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE;YAC3B,MAAM,YAAY,GAChB,2CAAoB,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;YAC1D,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE;gBAChC,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBAChC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aACjC;iBAAM;gBACL,aAAa,CAAC,YAAY,CAAC,GAAG,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;aAC/D;SACF;QAED,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,WAAmB,CAAC;QACxB,WAAW,GAAG,qCAAiB,CAAC,IAAI,CAAC;QAErC,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE;YACnC,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,QAAQ,EAAE;gBACtC,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACnC,WAAW,GAAG,QAAQ,CAAC;aACxB;SACF;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,KAAa;QAC9B,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;CACF;AApDD,8CAoDC"}
@@ -1,22 +1,22 @@
1
- import { EncodingCategory } from '../Common/EncodingCategory';
2
- import { EncodingCharacterBase } from '../Common/EncodingCharacterBase';
3
- import { MorseEncoding } from './MorseEncoding';
4
- export declare class MorseCharacter extends EncodingCharacterBase<MorseEncoding> {
5
- static readonly DOT: string;
6
- static readonly DASH: string;
7
- static readonly RESERVED_DIVIDER: string;
8
- static toMorseString(encoding: MorseEncoding): string;
9
- static parseMorseString(morse: string): MorseEncoding;
10
- private _morse;
11
- constructor(str?: string, category?: EncodingCategory);
12
- get morseString(): string;
13
- set morseString(value: string);
14
- backspace(): void;
15
- dot(): void;
16
- dash(): void;
17
- invertDotsAndDashes(): void;
18
- reverse(): void;
19
- protected onClear(): void;
20
- protected onEmpty(): boolean;
21
- protected getEncoding(): MorseEncoding;
22
- }
1
+ import { EncodingCategory } from '../Common/EncodingCategory';
2
+ import { EncodingCharacterBase } from '../Common/EncodingCharacterBase';
3
+ import { MorseEncoding } from './MorseEncoding';
4
+ export declare class MorseCharacter extends EncodingCharacterBase<MorseEncoding> {
5
+ static readonly DOT: string;
6
+ static readonly DASH: string;
7
+ static readonly RESERVED_DIVIDER: string;
8
+ static toMorseString(encoding: MorseEncoding): string;
9
+ static parseMorseString(morse: string): MorseEncoding;
10
+ private _morse;
11
+ constructor(str?: string, category?: EncodingCategory);
12
+ get morseString(): string;
13
+ set morseString(value: string);
14
+ backspace(): void;
15
+ dot(): void;
16
+ dash(): void;
17
+ invertDotsAndDashes(): void;
18
+ reverse(): void;
19
+ protected onClear(): void;
20
+ protected onEmpty(): boolean;
21
+ protected getEncoding(): MorseEncoding;
22
+ }
@@ -1,96 +1,97 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const EncodingCategory_1 = require("../Common/EncodingCategory");
4
- const EncodingCharacterBase_1 = require("../Common/EncodingCharacterBase");
5
- const Helpers_1 = require("../Common/Helpers");
6
- const MorseData_1 = require("./MorseData");
7
- const MorseEncoding_1 = require("./MorseEncoding");
8
- const MORSE_BITMASK = MorseEncoding_1.MorseEncoding.Dot | MorseEncoding_1.MorseEncoding.Dash;
9
- class MorseCharacter extends EncodingCharacterBase_1.EncodingCharacterBase {
10
- constructor(str = '', category = EncodingCategory_1.EncodingCategory.All) {
11
- super(MorseData_1.MorseData.instance, category);
12
- this._morse = str;
13
- }
14
- static toMorseString(encoding) {
15
- let morseChars = '';
16
- while (encoding !== MorseEncoding_1.MorseEncoding.None) {
17
- if ((encoding & MORSE_BITMASK) === MorseEncoding_1.MorseEncoding.Dot) {
18
- morseChars += MorseCharacter.DOT;
19
- }
20
- else if ((encoding & MORSE_BITMASK) === MorseEncoding_1.MorseEncoding.Dash) {
21
- morseChars += MorseCharacter.DASH;
22
- }
23
- else {
24
- throw new Error('Invalid morse bits');
25
- }
26
- encoding >>>= 2;
27
- }
28
- return morseChars;
29
- }
30
- static parseMorseString(morse) {
31
- let bits = MorseEncoding_1.MorseEncoding.None;
32
- for (let i = morse.length - 1; i >= 0; i--) {
33
- const ch = morse[i];
34
- if (ch === MorseCharacter.DOT) {
35
- bits |= MorseEncoding_1.MorseEncoding.Dot;
36
- }
37
- else if (ch === MorseCharacter.DASH) {
38
- bits |= MorseEncoding_1.MorseEncoding.Dash;
39
- }
40
- else {
41
- throw new Error('Invalid morse character');
42
- }
43
- bits <<= 2;
44
- }
45
- bits >>>= 2;
46
- return bits;
47
- }
48
- get morseString() {
49
- return this._morse;
50
- }
51
- set morseString(value) {
52
- this._morse = value;
53
- this.invalidateLookup();
54
- }
55
- backspace() {
56
- if (this._morse.length > 0) {
57
- this._morse = this._morse.substring(0, this._morse.length - 1);
58
- this.invalidateLookup();
59
- }
60
- }
61
- dot() {
62
- this._morse += MorseCharacter.DOT;
63
- this.invalidateLookup();
64
- }
65
- dash() {
66
- this._morse += MorseCharacter.DASH;
67
- this.invalidateLookup();
68
- }
69
- invertDotsAndDashes() {
70
- // Replace dots with a placeholder, dashes with dots, then placeholders with dashes
71
- Helpers_1.Helpers.assert(this._morse.indexOf(MorseCharacter.RESERVED_DIVIDER) < 0);
72
- this._morse = this._morse
73
- .replace(/\./g, 'A')
74
- .replace(/-/g, MorseCharacter.DOT)
75
- .replace(/A/g, MorseCharacter.DASH);
76
- }
77
- reverse() {
78
- this._morse = this._morse.split('').reverse().join('');
79
- }
80
- onClear() {
81
- this._morse = '';
82
- this.invalidateLookup();
83
- }
84
- onEmpty() {
85
- return this._morse.length === 0;
86
- }
87
- getEncoding() {
88
- return MorseCharacter.parseMorseString(this._morse);
89
- }
90
- }
91
- exports.MorseCharacter = MorseCharacter;
92
- MorseCharacter.DOT = '.';
93
- MorseCharacter.DASH = '-';
94
- // Character which may not appear in morse and is reserved for use by this class
95
- MorseCharacter.RESERVED_DIVIDER = 'A';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MorseCharacter = void 0;
4
+ const EncodingCategory_1 = require("../Common/EncodingCategory");
5
+ const EncodingCharacterBase_1 = require("../Common/EncodingCharacterBase");
6
+ const Helpers_1 = require("../Common/Helpers");
7
+ const MorseData_1 = require("./MorseData");
8
+ const MorseEncoding_1 = require("./MorseEncoding");
9
+ const MORSE_BITMASK = MorseEncoding_1.MorseEncoding.Dot | MorseEncoding_1.MorseEncoding.Dash;
10
+ class MorseCharacter extends EncodingCharacterBase_1.EncodingCharacterBase {
11
+ constructor(str = '', category = EncodingCategory_1.EncodingCategory.All) {
12
+ super(MorseData_1.MorseData.instance, category);
13
+ this._morse = str;
14
+ }
15
+ static toMorseString(encoding) {
16
+ let morseChars = '';
17
+ while (encoding !== MorseEncoding_1.MorseEncoding.None) {
18
+ if ((encoding & MORSE_BITMASK) === MorseEncoding_1.MorseEncoding.Dot) {
19
+ morseChars += MorseCharacter.DOT;
20
+ }
21
+ else if ((encoding & MORSE_BITMASK) === MorseEncoding_1.MorseEncoding.Dash) {
22
+ morseChars += MorseCharacter.DASH;
23
+ }
24
+ else {
25
+ throw new Error('Invalid morse bits');
26
+ }
27
+ encoding >>>= 2;
28
+ }
29
+ return morseChars;
30
+ }
31
+ static parseMorseString(morse) {
32
+ let bits = MorseEncoding_1.MorseEncoding.None;
33
+ for (let i = morse.length - 1; i >= 0; i--) {
34
+ const ch = morse[i];
35
+ if (ch === MorseCharacter.DOT) {
36
+ bits |= MorseEncoding_1.MorseEncoding.Dot;
37
+ }
38
+ else if (ch === MorseCharacter.DASH) {
39
+ bits |= MorseEncoding_1.MorseEncoding.Dash;
40
+ }
41
+ else {
42
+ throw new Error('Invalid morse character');
43
+ }
44
+ bits <<= 2;
45
+ }
46
+ bits >>>= 2;
47
+ return bits;
48
+ }
49
+ get morseString() {
50
+ return this._morse;
51
+ }
52
+ set morseString(value) {
53
+ this._morse = value;
54
+ this.invalidateLookup();
55
+ }
56
+ backspace() {
57
+ if (this._morse.length > 0) {
58
+ this._morse = this._morse.substring(0, this._morse.length - 1);
59
+ this.invalidateLookup();
60
+ }
61
+ }
62
+ dot() {
63
+ this._morse += MorseCharacter.DOT;
64
+ this.invalidateLookup();
65
+ }
66
+ dash() {
67
+ this._morse += MorseCharacter.DASH;
68
+ this.invalidateLookup();
69
+ }
70
+ invertDotsAndDashes() {
71
+ // Replace dots with a placeholder, dashes with dots, then placeholders with dashes
72
+ Helpers_1.Helpers.assert(this._morse.indexOf(MorseCharacter.RESERVED_DIVIDER) < 0);
73
+ this._morse = this._morse
74
+ .replace(/\./g, 'A')
75
+ .replace(/-/g, MorseCharacter.DOT)
76
+ .replace(/A/g, MorseCharacter.DASH);
77
+ }
78
+ reverse() {
79
+ this._morse = this._morse.split('').reverse().join('');
80
+ }
81
+ onClear() {
82
+ this._morse = '';
83
+ this.invalidateLookup();
84
+ }
85
+ onEmpty() {
86
+ return this._morse.length === 0;
87
+ }
88
+ getEncoding() {
89
+ return MorseCharacter.parseMorseString(this._morse);
90
+ }
91
+ }
92
+ exports.MorseCharacter = MorseCharacter;
93
+ MorseCharacter.DOT = '.';
94
+ MorseCharacter.DASH = '-';
95
+ // Character which may not appear in morse and is reserved for use by this class
96
+ MorseCharacter.RESERVED_DIVIDER = 'A';
96
97
  //# sourceMappingURL=MorseCharacter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MorseCharacter.js","sourceRoot":"","sources":["../../../src/Morse/MorseCharacter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MorseCharacter.js","sourceRoot":"","sources":["../../../src/Morse/MorseCharacter.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { EncodingDataBase } from '../Common/EncodingDataBase';
2
- import { MorseEncoding } from './MorseEncoding';
3
- export declare class MorseData extends EncodingDataBase<MorseEncoding> {
4
- static readonly instance: MorseData;
5
- constructor();
6
- }
1
+ import { EncodingDataBase } from '../Common/EncodingDataBase';
2
+ import { MorseEncoding } from './MorseEncoding';
3
+ export declare class MorseData extends EncodingDataBase<MorseEncoding> {
4
+ static readonly instance: MorseData;
5
+ constructor();
6
+ }