@testgorilla/tgo-typing-test 1.0.0 → 2.0.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 (134) hide show
  1. package/.eslintrc.json +46 -0
  2. package/jest.config.ts +21 -0
  3. package/ng-package.json +15 -0
  4. package/package.json +7 -22
  5. package/project.json +36 -0
  6. package/src/lib/components/tgo-typing-replay-input/tgo-typing-replay-input.component.html +30 -0
  7. package/src/lib/components/tgo-typing-replay-input/tgo-typing-replay-input.component.spec.ts +250 -0
  8. package/src/lib/components/tgo-typing-replay-input/tgo-typing-replay-input.component.ts +47 -0
  9. package/src/lib/components/tgo-typing-test/tgo-typing-test.component.html +72 -0
  10. package/src/lib/components/tgo-typing-test/tgo-typing-test.component.spec.ts +699 -0
  11. package/src/lib/components/tgo-typing-test/tgo-typing-test.component.ts +287 -0
  12. package/src/lib/helpers/config.ts +28 -0
  13. package/src/lib/helpers/constants/default-config.ts +103 -0
  14. package/src/lib/helpers/controllers/input-controller.ts +710 -0
  15. package/src/lib/helpers/controllers/quotes-controller.ts +183 -0
  16. package/src/lib/helpers/observables/banner-event.ts +18 -0
  17. package/src/lib/helpers/observables/config-event.ts +31 -0
  18. package/src/lib/helpers/observables/timer-event.ts +18 -0
  19. package/src/lib/helpers/states/active-page.ts +9 -0
  20. package/src/lib/helpers/states/composition.ts +29 -0
  21. package/src/lib/helpers/states/page-transition.ts +9 -0
  22. package/src/lib/helpers/states/slow-timer.ts +16 -0
  23. package/src/lib/helpers/states/test-active.ts +9 -0
  24. package/src/lib/helpers/states/time.ts +13 -0
  25. package/src/lib/helpers/test/caps-warning.ts +50 -0
  26. package/src/lib/helpers/test/caret.ts +92 -0
  27. package/src/lib/helpers/test/custom-text.ts +73 -0
  28. package/src/lib/helpers/test/english-punctuation.ts +38 -0
  29. package/src/lib/helpers/test/focus.ts +39 -0
  30. package/src/lib/helpers/test/manual-restart-tracker.ts +13 -0
  31. package/src/lib/helpers/test/out-of-focus.ts +19 -0
  32. package/src/lib/helpers/test/replay.ts +265 -0
  33. package/src/lib/helpers/test/test-input.ts +320 -0
  34. package/src/lib/helpers/test/test-logic.ts +1039 -0
  35. package/src/lib/helpers/test/test-state.ts +17 -0
  36. package/src/lib/helpers/test/test-stats.ts +442 -0
  37. package/src/lib/helpers/test/test-timer.ts +209 -0
  38. package/src/lib/helpers/test/test-ui.ts +370 -0
  39. package/src/lib/helpers/test/test-words.ts +72 -0
  40. package/src/lib/helpers/test/timer-progress.ts +16 -0
  41. package/src/lib/helpers/test/tts.ts +42 -0
  42. package/src/lib/helpers/test/weak-spot.ts +74 -0
  43. package/src/lib/helpers/test/wordset.ts +109 -0
  44. package/src/lib/styles/animations.scss +101 -0
  45. package/src/lib/styles/caret.scss +108 -0
  46. package/src/lib/styles/core.scss +498 -0
  47. package/src/lib/styles/index.scss +19 -0
  48. package/src/lib/styles/inputs.scss +290 -0
  49. package/src/lib/styles/popups.scss +1311 -0
  50. package/src/lib/styles/test.scss +1008 -0
  51. package/src/lib/styles/z_media-queries.scss +848 -0
  52. package/src/lib/types/types.d.ts +731 -0
  53. package/src/lib/utils/misc.ts +776 -0
  54. package/src/test-setup.ts +20 -0
  55. package/tsconfig.json +16 -0
  56. package/tsconfig.lib.json +14 -0
  57. package/tsconfig.lib.prod.json +9 -0
  58. package/tsconfig.spec.json +11 -0
  59. package/esm2022/index.mjs +0 -3
  60. package/esm2022/lib/components/tgo-typing-replay-input/tgo-typing-replay-input.component.mjs +0 -45
  61. package/esm2022/lib/components/tgo-typing-test/tgo-typing-test.component.mjs +0 -299
  62. package/esm2022/lib/helpers/config.mjs +0 -24
  63. package/esm2022/lib/helpers/constants/default-config.mjs +0 -103
  64. package/esm2022/lib/helpers/controllers/input-controller.mjs +0 -586
  65. package/esm2022/lib/helpers/controllers/quotes-controller.mjs +0 -118
  66. package/esm2022/lib/helpers/observables/config-event.mjs +0 -16
  67. package/esm2022/lib/helpers/observables/timer-event.mjs +0 -16
  68. package/esm2022/lib/helpers/states/active-page.mjs +0 -8
  69. package/esm2022/lib/helpers/states/composition.mjs +0 -20
  70. package/esm2022/lib/helpers/states/page-transition.mjs +0 -8
  71. package/esm2022/lib/helpers/states/slow-timer.mjs +0 -15
  72. package/esm2022/lib/helpers/states/test-active.mjs +0 -8
  73. package/esm2022/lib/helpers/states/time.mjs +0 -11
  74. package/esm2022/lib/helpers/test/caps-warning.mjs +0 -50
  75. package/esm2022/lib/helpers/test/caret.mjs +0 -80
  76. package/esm2022/lib/helpers/test/custom-text.mjs +0 -59
  77. package/esm2022/lib/helpers/test/english-punctuation.mjs +0 -29
  78. package/esm2022/lib/helpers/test/focus.mjs +0 -35
  79. package/esm2022/lib/helpers/test/manual-restart-tracker.mjs +0 -11
  80. package/esm2022/lib/helpers/test/out-of-focus.mjs +0 -14
  81. package/esm2022/lib/helpers/test/replay.mjs +0 -217
  82. package/esm2022/lib/helpers/test/test-input.mjs +0 -264
  83. package/esm2022/lib/helpers/test/test-logic.mjs +0 -927
  84. package/esm2022/lib/helpers/test/test-state.mjs +0 -13
  85. package/esm2022/lib/helpers/test/test-stats.mjs +0 -342
  86. package/esm2022/lib/helpers/test/test-timer.mjs +0 -207
  87. package/esm2022/lib/helpers/test/test-ui.mjs +0 -341
  88. package/esm2022/lib/helpers/test/test-words.mjs +0 -69
  89. package/esm2022/lib/helpers/test/timer-progress.mjs +0 -15
  90. package/esm2022/lib/helpers/test/weak-spot.mjs +0 -65
  91. package/esm2022/lib/helpers/test/wordset.mjs +0 -100
  92. package/esm2022/lib/utils/misc.mjs +0 -673
  93. package/esm2022/testgorilla-tgo-typing-test.mjs +0 -5
  94. package/fesm2022/testgorilla-tgo-typing-test.mjs +0 -4707
  95. package/fesm2022/testgorilla-tgo-typing-test.mjs.map +0 -1
  96. package/lib/components/tgo-typing-replay-input/tgo-typing-replay-input.component.d.ts +0 -14
  97. package/lib/components/tgo-typing-test/tgo-typing-test.component.d.ts +0 -54
  98. package/lib/helpers/config.d.ts +0 -98
  99. package/lib/helpers/constants/default-config.d.ts +0 -3
  100. package/lib/helpers/controllers/input-controller.d.ts +0 -16
  101. package/lib/helpers/controllers/quotes-controller.d.ts +0 -20
  102. package/lib/helpers/observables/config-event.d.ts +0 -5
  103. package/lib/helpers/observables/timer-event.d.ts +0 -4
  104. package/lib/helpers/states/active-page.d.ts +0 -2
  105. package/lib/helpers/states/composition.d.ts +0 -10
  106. package/lib/helpers/states/page-transition.d.ts +0 -2
  107. package/lib/helpers/states/slow-timer.d.ts +0 -3
  108. package/lib/helpers/states/test-active.d.ts +0 -2
  109. package/lib/helpers/states/time.d.ts +0 -3
  110. package/lib/helpers/test/caps-warning.d.ts +0 -5
  111. package/lib/helpers/test/caret.d.ts +0 -11
  112. package/lib/helpers/test/custom-text.d.ts +0 -16
  113. package/lib/helpers/test/english-punctuation.d.ts +0 -3
  114. package/lib/helpers/test/focus.d.ts +0 -7
  115. package/lib/helpers/test/manual-restart-tracker.d.ts +0 -3
  116. package/lib/helpers/test/out-of-focus.d.ts +0 -4
  117. package/lib/helpers/test/replay.d.ts +0 -20
  118. package/lib/helpers/test/test-input.d.ts +0 -86
  119. package/lib/helpers/test/test-logic.d.ts +0 -25
  120. package/lib/helpers/test/test-state.d.ts +0 -7
  121. package/lib/helpers/test/test-stats.d.ts +0 -92
  122. package/lib/helpers/test/test-timer.d.ts +0 -6
  123. package/lib/helpers/test/test-ui.d.ts +0 -27
  124. package/lib/helpers/test/test-words.d.ts +0 -23
  125. package/lib/helpers/test/timer-progress.d.ts +0 -3
  126. package/lib/helpers/test/weak-spot.d.ts +0 -3
  127. package/lib/helpers/test/wordset.d.ts +0 -7
  128. package/lib/utils/misc.d.ts +0 -81
  129. /package/{assets → src/assets}/typing-test-languages/english.json +0 -0
  130. /package/{assets → src/assets}/typing-test-languages/english_punctuation.json +0 -0
  131. /package/{assets → src/assets}/typing-test-languages/quotes/english_version_1.json +0 -0
  132. /package/{assets → src/assets}/typing-test-languages/quotes/english_version_2.json +0 -0
  133. /package/{assets → src/assets}/typing-test-languages/quotes/filtered_sources.json +0 -0
  134. /package/{index.d.ts → src/index.ts} +0 -0
@@ -1,118 +0,0 @@
1
- import { subscribe } from '../observables/config-event';
2
- import { shuffle } from '../../utils/misc';
3
- const defaultQuoteCollection = {
4
- quotes: [],
5
- length: 0,
6
- language: null,
7
- groups: [],
8
- };
9
- function normalizeLanguage(language) {
10
- return language.replace(/_\d*k$/g, '');
11
- }
12
- class QuotesController {
13
- quoteCollection = defaultQuoteCollection;
14
- quoteQueue = [];
15
- queueIndex = 0;
16
- async getQuotes(language, testVersion, quoteLengths) {
17
- const normalizedLanguage = normalizeLanguage(language);
18
- if (this.quoteCollection.language !== normalizedLanguage) {
19
- try {
20
- const data = await fetch(`/../assets/typing-test-languages/quotes/${normalizedLanguage}_version_${testVersion}.json`).then(res => res.json());
21
- const filteredSources = await fetch(`/../assets/typing-test-languages/quotes/filtered_sources.json`).then(res => res.json());
22
- if (data.quotes === undefined || data.quotes.length === 0) {
23
- return defaultQuoteCollection;
24
- }
25
- this.quoteCollection = {
26
- quotes: [],
27
- length: data.quotes.length,
28
- groups: [],
29
- language: data.language,
30
- };
31
- // Transform JSON Quote schema to MonkeyTypes Quote schema
32
- data.quotes.forEach((quote) => {
33
- const monkeyTypeQuote = {
34
- text: quote.text,
35
- source: quote.source,
36
- length: quote.length,
37
- id: quote.id,
38
- language: data.language,
39
- group: 0,
40
- };
41
- this.quoteCollection.quotes.push(monkeyTypeQuote);
42
- });
43
- if (filteredSources) {
44
- this.quoteCollection.quotes = this.quoteCollection.quotes.filter(quote => filteredSources.sources.includes(quote.source));
45
- }
46
- data.groups.forEach((quoteGroup, groupIndex) => {
47
- const lower = quoteGroup[0];
48
- const upper = quoteGroup[1];
49
- this.quoteCollection.groups[groupIndex] = this.quoteCollection.quotes.filter(quote => {
50
- if (quote.length >= lower && quote.length <= upper) {
51
- quote.group = groupIndex;
52
- return true;
53
- }
54
- return false;
55
- });
56
- });
57
- if (quoteLengths !== undefined) {
58
- this.updateQuoteQueue(quoteLengths);
59
- }
60
- }
61
- catch (e) {
62
- if (!defaultQuoteCollection.quotes.length) {
63
- throw e;
64
- }
65
- return defaultQuoteCollection;
66
- }
67
- }
68
- return this.quoteCollection;
69
- }
70
- getQuoteById(id) {
71
- const targetQuote = this.quoteCollection.quotes.find((quote) => {
72
- return quote.id === id;
73
- });
74
- return targetQuote;
75
- }
76
- updateQuoteQueue(quoteGroups) {
77
- this.quoteQueue = [];
78
- quoteGroups.forEach(group => {
79
- if (group < 0) {
80
- return;
81
- }
82
- this.quoteCollection.groups[group]?.forEach(quote => {
83
- this.quoteQueue.push(quote);
84
- });
85
- });
86
- shuffle(this.quoteQueue);
87
- this.queueIndex = 0;
88
- }
89
- getRandomQuote() {
90
- if (this.quoteQueue.length === 0) {
91
- return null;
92
- }
93
- if (this.queueIndex >= this.quoteQueue.length) {
94
- this.queueIndex = 0;
95
- shuffle(this.quoteQueue);
96
- }
97
- const randomQuote = this.quoteQueue[this.queueIndex];
98
- this.queueIndex += 1;
99
- return randomQuote;
100
- }
101
- getCurrentQuote() {
102
- if (this.quoteQueue.length === 0) {
103
- return null;
104
- }
105
- return this.quoteQueue[this.queueIndex];
106
- }
107
- resetQuotes() {
108
- this.quoteCollection = defaultQuoteCollection;
109
- }
110
- }
111
- const quoteController = new QuotesController();
112
- subscribe((key, newValue) => {
113
- if (key === 'quoteLength') {
114
- quoteController.updateQuoteQueue(newValue);
115
- }
116
- });
117
- export default quoteController;
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVvdGVzLWNvbnRyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90Z28tdHlwaW5nLXRlc3Qvc3JjL2xpYi9oZWxwZXJzL2NvbnRyb2xsZXJzL3F1b3Rlcy1jb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUEyQjNDLE1BQU0sc0JBQXNCLEdBQW9CO0lBQzlDLE1BQU0sRUFBRSxFQUFFO0lBQ1YsTUFBTSxFQUFFLENBQUM7SUFDVCxRQUFRLEVBQUUsSUFBSTtJQUNkLE1BQU0sRUFBRSxFQUFFO0NBQ1gsQ0FBQztBQUVGLFNBQVMsaUJBQWlCLENBQUMsUUFBZ0I7SUFDekMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRUQsTUFBTSxnQkFBZ0I7SUFDWixlQUFlLEdBQW9CLHNCQUFzQixDQUFDO0lBRTFELFVBQVUsR0FBd0IsRUFBRSxDQUFDO0lBQ3JDLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFFdkIsS0FBSyxDQUFDLFNBQVMsQ0FDYixRQUFnQixFQUNoQixXQUFtQixFQUNuQixZQUF1QjtRQUV2QixNQUFNLGtCQUFrQixHQUFHLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXZELElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEtBQUssa0JBQWtCLEVBQUUsQ0FBQztZQUN6RCxJQUFJLENBQUM7Z0JBQ0gsTUFBTSxJQUFJLEdBQWMsTUFBTSxLQUFLLENBQ2pDLDJDQUEyQyxrQkFBa0IsWUFBWSxXQUFXLE9BQU8sQ0FDNUYsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FB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QU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNqQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGVBQWUsR0FBRyxzQkFBc0IsQ0FBQztJQUNoRCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLGVBQWUsR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUM7QUFFL0MsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxFQUFFO0lBQzFCLElBQUksR0FBRyxLQUFLLGFBQWEsRUFBRSxDQUFDO1FBQzFCLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFvQixDQUFDLENBQUM7SUFDekQsQ0FBQztBQUNILENBQUMsQ0FBQyxDQUFDO0FBRUgsZUFBZSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdWJzY3JpYmUgfSBmcm9tICcuLi9vYnNlcnZhYmxlcy9jb25maWctZXZlbnQnO1xuaW1wb3J0IHsgc2h1ZmZsZSB9IGZyb20gJy4uLy4uL3V0aWxzL21pc2MnO1xuaW1wb3J0IHsgTW9ua2V5VHlwZXMgfSBmcm9tICcuLi8uLi90eXBlcy90eXBlcyc7XG5cbmludGVyZmFjZSBRdW90ZSB7XG4gIHRleHQ6IHN0cmluZztcbiAgc291cmNlOiBzdHJpbmc7XG4gIGxlbmd0aDogbnVtYmVyO1xuICBpZDogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgUXVvdGVEYXRhIHtcbiAgbGFuZ3VhZ2U6IHN0cmluZztcbiAgcXVvdGVzOiBRdW90ZVtdO1xuICBncm91cHM6IG51bWJlcltdW107XG59XG5cbmludGVyZmFjZSBRdW90ZUNvbGxlY3Rpb24ge1xuICBxdW90ZXM6IE1vbmtleVR5cGVzLlF1b3RlW107XG4gIGxlbmd0aDogbnVtYmVyO1xuICBsYW5ndWFnZTogc3RyaW5nIHwgbnVsbDtcbiAgZ3JvdXBzOiBNb25rZXlUeXBlcy5RdW90ZVtdW107XG59XG5cbmludGVyZmFjZSBGaWx0ZXJlZFNvdXJjZXMge1xuICBzb3VyY2VzOiBzdHJpbmdbXTtcbn1cblxuY29uc3QgZGVmYXVsdFF1b3RlQ29sbGVjdGlvbjogUXVvdGVDb2xsZWN0aW9uID0ge1xuICBxdW90ZXM6IFtdLFxuICBsZW5ndGg6IDAsXG4gIGxhbmd1YWdlOiBudWxsLFxuICBncm91cHM6IFtdLFxufTtcblxuZnVuY3Rpb24gbm9ybWFsaXplTGFuZ3VhZ2UobGFuZ3VhZ2U6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBsYW5ndWFnZS5yZXBsYWNlKC9fXFxkKmskL2csICcnKTtcbn1cblxuY2xhc3MgUXVvdGVzQ29udHJvbGxlciB7XG4gIHByaXZhdGUgcXVvdGVDb2xsZWN0aW9uOiBRdW90ZUNvbGxlY3Rpb24gPSBkZWZhdWx0UXVvdGVDb2xsZWN0aW9uO1xuXG4gIHByaXZhdGUgcXVvdGVRdWV1ZTogTW9ua2V5VHlwZXMuUXVvdGVbXSA9IFtdO1xuICBwcml2YXRlIHF1ZXVlSW5kZXggPSAwO1xuXG4gIGFzeW5jIGdldFF1b3RlcyhcbiAgICBsYW5ndWFnZTogc3RyaW5nLFxuICAgIHRlc3RWZXJzaW9uOiBudW1iZXIsXG4gICAgcXVvdGVMZW5ndGhzPzogbnVtYmVyW11cbiAgKTogUHJvbWlzZTxRdW90ZUNvbGxlY3Rpb24+IHtcbiAgICBjb25zdCBub3JtYWxpemVkTGFuZ3VhZ2UgPSBub3JtYWxpemVMYW5ndWFnZShsYW5ndWFnZSk7XG5cbiAgICBpZiAodGhpcy5xdW90ZUNvbGxlY3Rpb24ubGFuZ3VhZ2UgIT09IG5vcm1hbGl6ZWRMYW5ndWFnZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZGF0YTogUXVvdGVEYXRhID0gYXdhaXQgZmV0Y2goXG4gICAgICAgICAgYC8uLi9hc3NldHMvdHlwaW5nLXRlc3QtbGFuZ3VhZ2VzL3F1b3Rlcy8ke25vcm1hbGl6ZWRMYW5ndWFnZX1fdmVyc2lvbl8ke3Rlc3RWZXJzaW9ufS5qc29uYFxuICAgICAgICApLnRoZW4ocmVzID0+IHJlcy5qc29uKCkpO1xuXG4gICAgICAgIGNvbnN0IGZpbHRlcmVkU291cmNlczogRmlsdGVyZWRTb3VyY2VzID0gYXdhaXQgZmV0Y2goXG4gICAgICAgICAgYC8uLi9hc3NldHMvdHlwaW5nLXRlc3QtbGFuZ3VhZ2VzL3F1b3Rlcy9maWx0ZXJlZF9zb3VyY2VzLmpzb25gXG4gICAgICAgICkudGhlbihyZXMgPT4gcmVzLmpzb24oKSk7XG5cbiAgICAgICAgaWYgKGRhdGEucXVvdGVzID09PSB1bmRlZmluZWQgfHwgZGF0YS5xdW90ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIGRlZmF1bHRRdW90ZUNvbGxlY3Rpb247XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnF1b3RlQ29sbGVjdGlvbiA9IHtcbiAgICAgICAgICBxdW90ZXM6IFtdLFxuICAgICAgICAgIGxlbmd0aDogZGF0YS5xdW90ZXMubGVuZ3RoLFxuICAgICAgICAgIGdyb3VwczogW10sXG4gICAgICAgICAgbGFuZ3VhZ2U6IGRhdGEubGFuZ3VhZ2UsXG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gVHJhbnNmb3JtIEpTT04gUXVvdGUgc2NoZW1hIHRvIE1vbmtleVR5cGVzIFF1b3RlIHNjaGVtYVxuICAgICAgICBkYXRhLnF1b3Rlcy5mb3JFYWNoKChxdW90ZTogUXVvdGUpID0+IHtcbiAgICAgICAgICBjb25zdCBtb25rZXlUeXBlUXVvdGU6IE1vbmtleVR5cGVzLlF1b3RlID0ge1xuICAgICAgICAgICAgdGV4dDogcXVvdGUudGV4dCxcbiAgICAgICAgICAgIHNvdXJjZTogcXVvdGUuc291cmNlLFxuICAgICAgICAgICAgbGVuZ3RoOiBxdW90ZS5sZW5ndGgsXG4gICAgICAgICAgICBpZDogcXVvdGUuaWQsXG4gICAgICAgICAgICBsYW5ndWFnZTogZGF0YS5sYW5ndWFnZSxcbiAgICAgICAgICAgIGdyb3VwOiAwLFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICB0aGlzLnF1b3RlQ29sbGVjdGlvbi5xdW90ZXMucHVzaChtb25rZXlUeXBlUXVvdGUpO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoZmlsdGVyZWRTb3VyY2VzKSB7XG4gICAgICAgICAgdGhpcy5xdW90ZUNvbGxlY3Rpb24ucXVvdGVzID0gdGhpcy5xdW90ZUNvbGxlY3Rpb24ucXVvdGVzLmZpbHRlcihxdW90ZSA9PlxuICAgICAgICAgICAgZmlsdGVyZWRTb3VyY2VzLnNvdXJjZXMuaW5jbHVkZXMocXVvdGUuc291cmNlKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBkYXRhLmdyb3Vwcy5mb3JFYWNoKChxdW90ZUdyb3VwLCBncm91cEluZGV4KSA9PiB7XG4gICAgICAgICAgY29uc3QgbG93ZXIgPSBxdW90ZUdyb3VwWzBdO1xuICAgICAgICAgIGNvbnN0IHVwcGVyID0gcXVvdGVHcm91cFsxXTtcblxuICAgICAgICAgIHRoaXMucXVvdGVDb2xsZWN0aW9uLmdyb3Vwc1tncm91cEluZGV4XSA9IHRoaXMucXVvdGVDb2xsZWN0aW9uLnF1b3Rlcy5maWx0ZXIocXVvdGUgPT4ge1xuICAgICAgICAgICAgaWYgKHF1b3RlLmxlbmd0aCA+PSBsb3dlciAmJiBxdW90ZS5sZW5ndGggPD0gdXBwZXIpIHtcbiAgICAgICAgICAgICAgcXVvdGUuZ3JvdXAgPSBncm91cEluZGV4O1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHF1b3RlTGVuZ3RocyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVRdW90ZVF1ZXVlKHF1b3RlTGVuZ3Rocyk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgaWYgKCFkZWZhdWx0UXVvdGVDb2xsZWN0aW9uLnF1b3Rlcy5sZW5ndGgpIHtcbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkZWZhdWx0UXVvdGVDb2xsZWN0aW9uO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnF1b3RlQ29sbGVjdGlvbjtcbiAgfVxuXG4gIGdldFF1b3RlQnlJZChpZDogbnVtYmVyKTogTW9ua2V5VHlwZXMuUXVvdGUgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHRhcmdldFF1b3RlID0gdGhpcy5xdW90ZUNvbGxlY3Rpb24ucXVvdGVzLmZpbmQoKHF1b3RlOiBNb25rZXlUeXBlcy5RdW90ZSkgPT4ge1xuICAgICAgcmV0dXJuIHF1b3RlLmlkID09PSBpZDtcbiAgICB9KTtcblxuICAgIHJldHVybiB0YXJnZXRRdW90ZTtcbiAgfVxuXG4gIHVwZGF0ZVF1b3RlUXVldWUocXVvdGVHcm91cHM6IG51bWJlcltdKTogdm9pZCB7XG4gICAgdGhpcy5xdW90ZVF1ZXVlID0gW107XG5cbiAgICBxdW90ZUdyb3Vwcy5mb3JFYWNoKGdyb3VwID0+IHtcbiAgICAgIGlmIChncm91cCA8IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5xdW90ZUNvbGxlY3Rpb24uZ3JvdXBzW2dyb3VwXT8uZm9yRWFjaChxdW90ZSA9PiB7XG4gICAgICAgIHRoaXMucXVvdGVRdWV1ZS5wdXNoKHF1b3RlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgc2h1ZmZsZSh0aGlzLnF1b3RlUXVldWUpO1xuICAgIHRoaXMucXVldWVJbmRleCA9IDA7XG4gIH1cblxuICBnZXRSYW5kb21RdW90ZSgpOiBNb25rZXlUeXBlcy5RdW90ZSB8IG51bGwge1xuICAgIGlmICh0aGlzLnF1b3RlUXVldWUubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5xdWV1ZUluZGV4ID49IHRoaXMucXVvdGVRdWV1ZS5sZW5ndGgpIHtcbiAgICAgIHRoaXMucXVldWVJbmRleCA9IDA7XG4gICAgICBzaHVmZmxlKHRoaXMucXVvdGVRdWV1ZSk7XG4gICAgfVxuXG4gICAgY29uc3QgcmFuZG9tUXVvdGUgPSB0aGlzLnF1b3RlUXVldWVbdGhpcy5xdWV1ZUluZGV4XTtcblxuICAgIHRoaXMucXVldWVJbmRleCArPSAxO1xuXG4gICAgcmV0dXJuIHJhbmRvbVF1b3RlO1xuICB9XG5cbiAgZ2V0Q3VycmVudFF1b3RlKCk6IE1vbmtleVR5cGVzLlF1b3RlIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMucXVvdGVRdWV1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnF1b3RlUXVldWVbdGhpcy5xdWV1ZUluZGV4XTtcbiAgfVxuXG4gIHJlc2V0UXVvdGVzKCkge1xuICAgIHRoaXMucXVvdGVDb2xsZWN0aW9uID0gZGVmYXVsdFF1b3RlQ29sbGVjdGlvbjtcbiAgfVxufVxuXG5jb25zdCBxdW90ZUNvbnRyb2xsZXIgPSBuZXcgUXVvdGVzQ29udHJvbGxlcigpO1xuXG5zdWJzY3JpYmUoKGtleSwgbmV3VmFsdWUpID0+IHtcbiAgaWYgKGtleSA9PT0gJ3F1b3RlTGVuZ3RoJykge1xuICAgIHF1b3RlQ29udHJvbGxlci51cGRhdGVRdW90ZVF1ZXVlKG5ld1ZhbHVlIGFzIG51bWJlcltdKTtcbiAgfVxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IHF1b3RlQ29udHJvbGxlcjtcbiJdfQ==
@@ -1,16 +0,0 @@
1
- const subscribers = [];
2
- export function subscribe(fn) {
3
- subscribers.push(fn);
4
- }
5
- export function dispatch(key, newValue, nosave, previousValue, fullConfig) {
6
- subscribers.forEach(fn => {
7
- try {
8
- fn(key, newValue, nosave, previousValue, fullConfig);
9
- }
10
- catch (e) {
11
- console.error('Config event subscriber threw an error');
12
- console.error(e);
13
- }
14
- });
15
- }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGdvLXR5cGluZy10ZXN0L3NyYy9saWIvaGVscGVycy9vYnNlcnZhYmxlcy9jb25maWctZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsTUFBTSxXQUFXLEdBQXdCLEVBQUUsQ0FBQztBQUU1QyxNQUFNLFVBQVUsU0FBUyxDQUFDLEVBQXFCO0lBQzdDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDdkIsQ0FBQztBQUVELE1BQU0sVUFBVSxRQUFRLENBQ3RCLEdBQVcsRUFDWCxRQUFtQyxFQUNuQyxNQUFnQixFQUNoQixhQUF3QyxFQUN4QyxVQUErQjtJQUUvQixXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1FBQ3ZCLElBQUksQ0FBQztZQUNILEVBQUUsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLHdDQUF3QyxDQUFDLENBQUM7WUFDeEQsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9ua2V5VHlwZXMgfSBmcm9tICcuLi8uLi90eXBlcy90eXBlcyc7XG50eXBlIFN1YnNjcmliZUZ1bmN0aW9uID0gKFxuICBrZXk6IHN0cmluZyxcbiAgbmV3VmFsdWU/OiBNb25rZXlUeXBlcy5Db25maWdWYWx1ZXMsXG4gIG5vc2F2ZT86IGJvb2xlYW4sXG4gIHByZXZpb3VzVmFsdWU/OiBNb25rZXlUeXBlcy5Db25maWdWYWx1ZXMsXG4gIGZ1bGxDb25maWc/OiBNb25rZXlUeXBlcy5Db25maWdcbikgPT4gdm9pZDtcblxuY29uc3Qgc3Vic2NyaWJlcnM6IFN1YnNjcmliZUZ1bmN0aW9uW10gPSBbXTtcblxuZXhwb3J0IGZ1bmN0aW9uIHN1YnNjcmliZShmbjogU3Vic2NyaWJlRnVuY3Rpb24pOiB2b2lkIHtcbiAgc3Vic2NyaWJlcnMucHVzaChmbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaXNwYXRjaChcbiAga2V5OiBzdHJpbmcsXG4gIG5ld1ZhbHVlPzogTW9ua2V5VHlwZXMuQ29uZmlnVmFsdWVzLFxuICBub3NhdmU/OiBib29sZWFuLFxuICBwcmV2aW91c1ZhbHVlPzogTW9ua2V5VHlwZXMuQ29uZmlnVmFsdWVzLFxuICBmdWxsQ29uZmlnPzogTW9ua2V5VHlwZXMuQ29uZmlnXG4pOiB2b2lkIHtcbiAgc3Vic2NyaWJlcnMuZm9yRWFjaChmbiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGZuKGtleSwgbmV3VmFsdWUsIG5vc2F2ZSwgcHJldmlvdXNWYWx1ZSwgZnVsbENvbmZpZyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcignQ29uZmlnIGV2ZW50IHN1YnNjcmliZXIgdGhyZXcgYW4gZXJyb3InKTtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==
@@ -1,16 +0,0 @@
1
- const subscribers = [];
2
- export function subscribe(fn) {
3
- subscribers.push(fn);
4
- }
5
- export function dispatch(key, value, value2) {
6
- subscribers.forEach((fn) => {
7
- try {
8
- fn(key, value, value2);
9
- }
10
- catch (e) {
11
- console.error("Timer event subscriber threw an error");
12
- console.error(e);
13
- }
14
- });
15
- }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXItZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90Z28tdHlwaW5nLXRlc3Qvc3JjL2xpYi9oZWxwZXJzL29ic2VydmFibGVzL3RpbWVyLWV2ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sV0FBVyxHQUF3QixFQUFFLENBQUM7QUFFNUMsTUFBTSxVQUFVLFNBQVMsQ0FBQyxFQUFxQjtJQUM3QyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3ZCLENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFDLEdBQVcsRUFBRSxLQUFjLEVBQUUsTUFBZTtJQUNuRSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7UUFDekIsSUFBSSxDQUFDO1lBQ0gsRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDekIsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7WUFDdkQsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsidHlwZSBTdWJzY3JpYmVGdW5jdGlvbiA9IChrZXk6IHN0cmluZywgdmFsdWU/OiBzdHJpbmcsIHZhbHVlMj86IHN0cmluZykgPT4gdm9pZDtcblxuY29uc3Qgc3Vic2NyaWJlcnM6IFN1YnNjcmliZUZ1bmN0aW9uW10gPSBbXTtcblxuZXhwb3J0IGZ1bmN0aW9uIHN1YnNjcmliZShmbjogU3Vic2NyaWJlRnVuY3Rpb24pOiB2b2lkIHtcbiAgc3Vic2NyaWJlcnMucHVzaChmbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaXNwYXRjaChrZXk6IHN0cmluZywgdmFsdWU/OiBzdHJpbmcsIHZhbHVlMj86IHN0cmluZyk6IHZvaWQge1xuICBzdWJzY3JpYmVycy5mb3JFYWNoKChmbikgPT4ge1xuICAgIHRyeSB7XG4gICAgICBmbihrZXksIHZhbHVlLCB2YWx1ZTIpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJUaW1lciBldmVudCBzdWJzY3JpYmVyIHRocmV3IGFuIGVycm9yXCIpO1xuICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICB9XG4gIH0pO1xufVxuIl19
@@ -1,8 +0,0 @@
1
- let activePage = 'test';
2
- export function get() {
3
- return activePage;
4
- }
5
- export function set(active) {
6
- activePage = active;
7
- }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLXBhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90Z28tdHlwaW5nLXRlc3Qvc3JjL2xpYi9oZWxwZXJzL3N0YXRlcy9hY3RpdmUtcGFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxJQUFJLFVBQVUsR0FBRyxNQUFNLENBQUM7QUFFeEIsTUFBTSxVQUFVLEdBQUc7SUFDakIsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQztBQUVELE1BQU0sVUFBVSxHQUFHLENBQUMsTUFBYztJQUNoQyxVQUFVLEdBQUcsTUFBTSxDQUFDO0FBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJsZXQgYWN0aXZlUGFnZSA9ICd0ZXN0JztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldCgpOiBzdHJpbmcge1xuICByZXR1cm4gYWN0aXZlUGFnZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldChhY3RpdmU6IHN0cmluZyk6IHZvaWQge1xuICBhY3RpdmVQYWdlID0gYWN0aXZlO1xufVxuIl19
@@ -1,20 +0,0 @@
1
- const compositionState = {
2
- composing: false,
3
- startPos: -1,
4
- };
5
- export function get() {
6
- return compositionState;
7
- }
8
- export function getComposing() {
9
- return compositionState.composing;
10
- }
11
- export function getStartPos() {
12
- return compositionState.startPos;
13
- }
14
- export function setComposing(isComposing) {
15
- compositionState.composing = isComposing;
16
- }
17
- export function setStartPos(pos) {
18
- compositionState.startPos = pos;
19
- }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90Z28tdHlwaW5nLXRlc3Qvc3JjL2xpYi9oZWxwZXJzL3N0YXRlcy9jb21wb3NpdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLGdCQUFnQixHQUFHO0lBQ3ZCLFNBQVMsRUFBRSxLQUFLO0lBQ2hCLFFBQVEsRUFBRSxDQUFDLENBQUM7Q0FDYixDQUFDO0FBRUYsTUFBTSxVQUFVLEdBQUc7SUFDakIsT0FBTyxnQkFBZ0IsQ0FBQztBQUMxQixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVk7SUFDMUIsT0FBTyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUM7QUFDcEMsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXO0lBQ3pCLE9BQU8sZ0JBQWdCLENBQUMsUUFBUSxDQUFDO0FBQ25DLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLFdBQW9CO0lBQy9DLGdCQUFnQixDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUM7QUFDM0MsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsR0FBVztJQUNyQyxnQkFBZ0IsQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDO0FBQ2xDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbnRlcmZhY2UgQ29tcG9zaXRpb25TdGF0ZSB7XG4gIGNvbXBvc2luZzogYm9vbGVhbjtcbiAgc3RhcnRQb3M6IG51bWJlcjtcbn1cblxuY29uc3QgY29tcG9zaXRpb25TdGF0ZSA9IHtcbiAgY29tcG9zaW5nOiBmYWxzZSxcbiAgc3RhcnRQb3M6IC0xLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldCgpOiBDb21wb3NpdGlvblN0YXRlIHtcbiAgcmV0dXJuIGNvbXBvc2l0aW9uU3RhdGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb21wb3NpbmcoKTogYm9vbGVhbiB7XG4gIHJldHVybiBjb21wb3NpdGlvblN0YXRlLmNvbXBvc2luZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YXJ0UG9zKCk6IG51bWJlciB7XG4gIHJldHVybiBjb21wb3NpdGlvblN0YXRlLnN0YXJ0UG9zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0Q29tcG9zaW5nKGlzQ29tcG9zaW5nOiBib29sZWFuKTogdm9pZCB7XG4gIGNvbXBvc2l0aW9uU3RhdGUuY29tcG9zaW5nID0gaXNDb21wb3Npbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRTdGFydFBvcyhwb3M6IG51bWJlcik6IHZvaWQge1xuICBjb21wb3NpdGlvblN0YXRlLnN0YXJ0UG9zID0gcG9zO1xufVxuIl19
@@ -1,8 +0,0 @@
1
- let transition = true;
2
- export function set(val) {
3
- transition = val;
4
- }
5
- export function get() {
6
- return transition;
7
- }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS10cmFuc2l0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGdvLXR5cGluZy10ZXN0L3NyYy9saWIvaGVscGVycy9zdGF0ZXMvcGFnZS10cmFuc2l0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQztBQUV0QixNQUFNLFVBQVUsR0FBRyxDQUFDLEdBQVk7SUFDOUIsVUFBVSxHQUFHLEdBQUcsQ0FBQztBQUNuQixDQUFDO0FBRUQsTUFBTSxVQUFVLEdBQUc7SUFDakIsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImxldCB0cmFuc2l0aW9uID0gdHJ1ZTtcblxuZXhwb3J0IGZ1bmN0aW9uIHNldCh2YWw6IGJvb2xlYW4pOiB2b2lkIHtcbiAgdHJhbnNpdGlvbiA9IHZhbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldCgpOiBib29sZWFuIHtcbiAgcmV0dXJuIHRyYW5zaXRpb247XG59XG4iXX0=
@@ -1,15 +0,0 @@
1
- let slowTimer = false;
2
- export function set() {
3
- if (slowTimer)
4
- return;
5
- slowTimer = true;
6
- console.error('Slow timer, disabling animations');
7
- // Notifications.add("Slow timer detected", -1, 5);
8
- }
9
- export function clear() {
10
- slowTimer = false;
11
- }
12
- export function get() {
13
- return slowTimer;
14
- }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xvdy10aW1lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3Rnby10eXBpbmctdGVzdC9zcmMvbGliL2hlbHBlcnMvc3RhdGVzL3Nsb3ctdGltZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO0FBRXRCLE1BQU0sVUFBVSxHQUFHO0lBQ2pCLElBQUksU0FBUztRQUFFLE9BQU87SUFDdEIsU0FBUyxHQUFHLElBQUksQ0FBQztJQUNqQixPQUFPLENBQUMsS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7SUFDbEQsbURBQW1EO0FBQ3JELENBQUM7QUFFRCxNQUFNLFVBQVUsS0FBSztJQUNuQixTQUFTLEdBQUcsS0FBSyxDQUFDO0FBQ3BCLENBQUM7QUFFRCxNQUFNLFVBQVUsR0FBRztJQUNqQixPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsibGV0IHNsb3dUaW1lciA9IGZhbHNlO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0KCk6IHZvaWQge1xuICBpZiAoc2xvd1RpbWVyKSByZXR1cm47XG4gIHNsb3dUaW1lciA9IHRydWU7XG4gIGNvbnNvbGUuZXJyb3IoJ1Nsb3cgdGltZXIsIGRpc2FibGluZyBhbmltYXRpb25zJyk7XG4gIC8vIE5vdGlmaWNhdGlvbnMuYWRkKFwiU2xvdyB0aW1lciBkZXRlY3RlZFwiLCAtMSwgNSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhcigpOiB2b2lkIHtcbiAgc2xvd1RpbWVyID0gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXQoKTogYm9vbGVhbiB7XG4gIHJldHVybiBzbG93VGltZXI7XG59XG4iXX0=
@@ -1,8 +0,0 @@
1
- let testActive = false;
2
- export function get() {
3
- return testActive;
4
- }
5
- export function set(active) {
6
- testActive = active;
7
- }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1hY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90Z28tdHlwaW5nLXRlc3Qvc3JjL2xpYi9oZWxwZXJzL3N0YXRlcy90ZXN0LWFjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUM7QUFFdkIsTUFBTSxVQUFVLEdBQUc7SUFDakIsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQztBQUVELE1BQU0sVUFBVSxHQUFHLENBQUMsTUFBZTtJQUNqQyxVQUFVLEdBQUcsTUFBTSxDQUFDO0FBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJsZXQgdGVzdEFjdGl2ZSA9IGZhbHNlO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0KCk6IGJvb2xlYW4ge1xuICByZXR1cm4gdGVzdEFjdGl2ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldChhY3RpdmU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgdGVzdEFjdGl2ZSA9IGFjdGl2ZTtcbn1cbiJdfQ==
@@ -1,11 +0,0 @@
1
- let time = 0;
2
- export function get() {
3
- return time;
4
- }
5
- export function set(active) {
6
- time = active;
7
- }
8
- export function increment() {
9
- time++;
10
- }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3Rnby10eXBpbmctdGVzdC9zcmMvbGliL2hlbHBlcnMvc3RhdGVzL3RpbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDO0FBRWIsTUFBTSxVQUFVLEdBQUc7SUFDakIsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxNQUFjO0lBQ2hDLElBQUksR0FBRyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELE1BQU0sVUFBVSxTQUFTO0lBQ3ZCLElBQUksRUFBRSxDQUFDO0FBQ1QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImxldCB0aW1lID0gMDtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldCgpOiBudW1iZXIge1xuICByZXR1cm4gdGltZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldChhY3RpdmU6IG51bWJlcik6IHZvaWQge1xuICB0aW1lID0gYWN0aXZlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5jcmVtZW50KCk6IHZvaWQge1xuICB0aW1lKys7XG59XG4iXX0=
@@ -1,50 +0,0 @@
1
- import { BehaviorSubject } from 'rxjs';
2
- import Config from '../../helpers/config';
3
- export let capsState = false;
4
- export const showCaps = new BehaviorSubject(false);
5
- function show() {
6
- showCaps.next(true);
7
- }
8
- function hide() {
9
- showCaps.next(false);
10
- }
11
- export function capsKeydown(event) {
12
- if (event.getModifierState('CapsLock')) {
13
- capsState = true;
14
- }
15
- else {
16
- capsState = false;
17
- }
18
- try {
19
- if (Config.capsLockWarning && capsState) {
20
- show();
21
- }
22
- else {
23
- hide();
24
- }
25
- }
26
- catch {
27
- console.error('Error showing caps warning');
28
- }
29
- }
30
- export function capsKeyup(event) {
31
- // filthy fix but optional chaining refuses to work
32
- if (event.getModifierState('CapsLock')) {
33
- capsState = true;
34
- }
35
- else {
36
- capsState = false;
37
- }
38
- try {
39
- if (Config.capsLockWarning && capsState) {
40
- show();
41
- }
42
- else {
43
- hide();
44
- }
45
- }
46
- catch {
47
- console.error('Error showing caps warning');
48
- }
49
- }
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fwcy13YXJuaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGdvLXR5cGluZy10ZXN0L3NyYy9saWIvaGVscGVycy90ZXN0L2NhcHMtd2FybmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sTUFBTSxNQUFNLHNCQUFzQixDQUFDO0FBQzFDLE1BQU0sQ0FBQyxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7QUFFN0IsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0FBRTVELFNBQVMsSUFBSTtJQUNYLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdEIsQ0FBQztBQUVELFNBQVMsSUFBSTtJQUNYLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDdkIsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsS0FBb0I7SUFDOUMsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUN2QyxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7U0FBTSxDQUFDO1FBQ04sU0FBUyxHQUFHLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0gsSUFBSSxNQUFNLENBQUMsZUFBZSxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ3hDLElBQUksRUFBRSxDQUFDO1FBQ1QsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLEVBQUUsQ0FBQztRQUNULENBQUM7SUFDSCxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQzlDLENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxLQUFvQjtJQUM1QyxtREFBbUQ7SUFDbkQsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUN2QyxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7U0FBTSxDQUFDO1FBQ04sU0FBUyxHQUFHLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0gsSUFBSSxNQUFNLENBQUMsZUFBZSxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ3hDLElBQUksRUFBRSxDQUFDO1FBQ1QsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLEVBQUUsQ0FBQztRQUNULENBQUM7SUFDSCxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQzlDLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgQ29uZmlnIGZyb20gJy4uLy4uL2hlbHBlcnMvY29uZmlnJztcbmV4cG9ydCBsZXQgY2Fwc1N0YXRlID0gZmFsc2U7XG5cbmV4cG9ydCBjb25zdCBzaG93Q2FwcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG5mdW5jdGlvbiBzaG93KCk6IHZvaWQge1xuICBzaG93Q2Fwcy5uZXh0KHRydWUpO1xufVxuXG5mdW5jdGlvbiBoaWRlKCk6IHZvaWQge1xuICBzaG93Q2Fwcy5uZXh0KGZhbHNlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhcHNLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gIGlmIChldmVudC5nZXRNb2RpZmllclN0YXRlKCdDYXBzTG9jaycpKSB7XG4gICAgY2Fwc1N0YXRlID0gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICBjYXBzU3RhdGUgPSBmYWxzZTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgaWYgKENvbmZpZy5jYXBzTG9ja1dhcm5pbmcgJiYgY2Fwc1N0YXRlKSB7XG4gICAgICBzaG93KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGhpZGUoKTtcbiAgICB9XG4gIH0gY2F0Y2gge1xuICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHNob3dpbmcgY2FwcyB3YXJuaW5nJyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhcHNLZXl1cChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAvLyBmaWx0aHkgZml4IGJ1dCBvcHRpb25hbCBjaGFpbmluZyByZWZ1c2VzIHRvIHdvcmtcbiAgaWYgKGV2ZW50LmdldE1vZGlmaWVyU3RhdGUoJ0NhcHNMb2NrJykpIHtcbiAgICBjYXBzU3RhdGUgPSB0cnVlO1xuICB9IGVsc2Uge1xuICAgIGNhcHNTdGF0ZSA9IGZhbHNlO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBpZiAoQ29uZmlnLmNhcHNMb2NrV2FybmluZyAmJiBjYXBzU3RhdGUpIHtcbiAgICAgIHNob3coKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaGlkZSgpO1xuICAgIH1cbiAgfSBjYXRjaCB7XG4gICAgY29uc29sZS5lcnJvcignRXJyb3Igc2hvd2luZyBjYXBzIHdhcm5pbmcnKTtcbiAgfVxufVxuIl19
@@ -1,80 +0,0 @@
1
- import * as Misc from '../../utils/misc';
2
- import Config from '../config';
3
- import * as TestInput from './test-input';
4
- import * as SlowTimer from '../states/slow-timer';
5
- import { BehaviorSubject } from 'rxjs';
6
- export let caretAnimating = true;
7
- export const caretShow = new BehaviorSubject(true);
8
- export const caretAnimation = new BehaviorSubject('caretFlashSmooth');
9
- export const caretLeft = new BehaviorSubject(0);
10
- export const caretTop = new BehaviorSubject(0);
11
- export function stopAnimation() {
12
- if (caretAnimating === true) {
13
- caretAnimation.next('none');
14
- caretAnimating = false;
15
- }
16
- }
17
- export function startAnimation() {
18
- if (caretAnimating === false) {
19
- if (Config.smoothCaret && !SlowTimer.get()) {
20
- caretAnimation.next('caretFlashSmooth');
21
- }
22
- else {
23
- caretAnimation.next('caretFlashHard');
24
- }
25
- caretAnimating = true;
26
- }
27
- }
28
- export function hide() {
29
- caretShow.next(false);
30
- }
31
- export async function updatePosition() {
32
- let caretWidth = Math.round(document.querySelector('#caret')?.getBoundingClientRect().width ?? 0);
33
- if (['block', 'outline', 'underline'].includes(Config.caretStyle)) {
34
- caretWidth /= 3;
35
- }
36
- const inputLen = TestInput.input.current.length;
37
- let currentLetterIndex = inputLen - 1;
38
- if (currentLetterIndex == -1) {
39
- currentLetterIndex = 0;
40
- }
41
- const currentWordNodeList = document?.querySelector('#words .active')?.querySelectorAll('letter');
42
- if (!currentWordNodeList)
43
- return;
44
- let currentLetter = currentWordNodeList[currentLetterIndex];
45
- if (inputLen > currentWordNodeList.length) {
46
- currentLetter = currentWordNodeList[currentWordNodeList.length - 1];
47
- }
48
- const currentLanguage = await Misc.getCurrentLanguage(Config.language);
49
- const isLanguageLeftToRight = currentLanguage.leftToRight;
50
- const currentLetterPosLeft = isLanguageLeftToRight
51
- ? currentLetter.offsetLeft
52
- : currentLetter.offsetLeft + (currentLetter.getBoundingClientRect().width ?? 0);
53
- const currentLetterPosTop = currentLetter.offsetTop;
54
- const letterHeight = currentLetter.getBoundingClientRect().height;
55
- let newTop = 0;
56
- let newLeft = 0;
57
- newTop = currentLetterPosTop - Math.round(letterHeight / 5);
58
- if (inputLen == 0) {
59
- newLeft = isLanguageLeftToRight
60
- ? currentLetterPosLeft - caretWidth / 2
61
- : currentLetterPosLeft + caretWidth / 2;
62
- }
63
- else {
64
- newLeft = isLanguageLeftToRight
65
- ? currentLetterPosLeft +
66
- currentLetter.getBoundingClientRect().width -
67
- caretWidth / 2
68
- : currentLetterPosLeft -
69
- currentLetter.getBoundingClientRect().width +
70
- caretWidth / 2;
71
- }
72
- caretTop.next(newTop);
73
- caretLeft.next(newLeft);
74
- }
75
- export function show() {
76
- caretShow.next(true);
77
- updatePosition();
78
- startAnimation();
79
- }
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90Z28tdHlwaW5nLXRlc3Qvc3JjL2xpYi9oZWxwZXJzL3Rlc3QvY2FyZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLElBQUksTUFBTSxrQkFBa0IsQ0FBQztBQUN6QyxPQUFPLE1BQU0sTUFBTSxXQUFXLENBQUM7QUFDL0IsT0FBTyxLQUFLLFNBQVMsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxLQUFLLFNBQVMsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZDLE1BQU0sQ0FBQyxJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUM7QUFDakMsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO0FBQzVELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBUyxrQkFBa0IsQ0FBQyxDQUFDO0FBQzlFLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztBQUN4RCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7QUFFdkQsTUFBTSxVQUFVLGFBQWE7SUFDM0IsSUFBSSxjQUFjLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDNUIsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QixjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWM7SUFDNUIsSUFBSSxjQUFjLEtBQUssS0FBSyxFQUFFLENBQUM7UUFDN0IsSUFBSSxNQUFNLENBQUMsV0FBVyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFD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QixhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxLQUFnQjtnQkFDdkQsVUFBVSxHQUFHLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0QixTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzFCLENBQUM7QUFFRCxNQUFNLFVBQVUsSUFBSTtJQUNsQixTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLGNBQWMsRUFBRSxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBNaXNjIGZyb20gJy4uLy4uL3V0aWxzL21pc2MnO1xuaW1wb3J0IENvbmZpZyBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0ICogYXMgVGVzdElucHV0IGZyb20gJy4vdGVzdC1pbnB1dCc7XG5pbXBvcnQgKiBhcyBTbG93VGltZXIgZnJvbSAnLi4vc3RhdGVzL3Nsb3ctdGltZXInO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBsZXQgY2FyZXRBbmltYXRpbmcgPSB0cnVlO1xuZXhwb3J0IGNvbnN0IGNhcmV0U2hvdyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG5leHBvcnQgY29uc3QgY2FyZXRBbmltYXRpb24gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJ2NhcmV0Rmxhc2hTbW9vdGgnKTtcbmV4cG9ydCBjb25zdCBjYXJldExlZnQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG5leHBvcnQgY29uc3QgY2FyZXRUb3AgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBzdG9wQW5pbWF0aW9uKCk6IHZvaWQge1xuICBpZiAoY2FyZXRBbmltYXRpbmcgPT09IHRydWUpIHtcbiAgICBjYXJldEFuaW1hdGlvbi5uZXh0KCdub25lJyk7XG4gICAgY2FyZXRBbmltYXRpbmcgPSBmYWxzZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RhcnRBbmltYXRpb24oKTogdm9pZCB7XG4gIGlmIChjYXJldEFuaW1hdGluZyA9PT0gZmFsc2UpIHtcbiAgICBpZiAoQ29uZmlnLnNtb290aENhcmV0ICYmICFTbG93VGltZXIuZ2V0KCkpIHtcbiAgICAgIGNhcmV0QW5pbWF0aW9uLm5leHQoJ2NhcmV0Rmxhc2hTbW9vdGgnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2FyZXRBbmltYXRpb24ubmV4dCgnY2FyZXRGbGFzaEhhcmQnKTtcbiAgICB9XG4gICAgY2FyZXRBbmltYXRpbmcgPSB0cnVlO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoaWRlKCk6IHZvaWQge1xuICBjYXJldFNob3cubmV4dChmYWxzZSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1cGRhdGVQb3NpdGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgbGV0IGNhcmV0V2lkdGggPSBNYXRoLnJvdW5kKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNjYXJldCcpPy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCA/PyAwKTtcblxuICBpZiAoWydibG9jaycsICdvdXRsaW5lJywgJ3VuZGVybGluZSddLmluY2x1ZGVzKENvbmZpZy5jYXJldFN0eWxlKSkge1xuICAgIGNhcmV0V2lkdGggLz0gMztcbiAgfVxuXG4gIGNvbnN0IGlucHV0TGVuID0gVGVzdElucHV0LmlucHV0LmN1cnJlbnQubGVuZ3RoO1xuXG4gIGxldCBjdXJyZW50TGV0dGVySW5kZXggPSBpbnB1dExlbiAtIDE7XG4gIGlmIChjdXJyZW50TGV0dGVySW5kZXggPT0gLTEpIHtcbiAgICBjdXJyZW50TGV0dGVySW5kZXggPSAwO1xuICB9XG5cbiAgY29uc3QgY3VycmVudFdvcmROb2RlTGlzdCA9IGRvY3VtZW50Py5xdWVyeVNlbGVjdG9yKCcjd29yZHMgLmFjdGl2ZScpPy5xdWVyeVNlbGVjdG9yQWxsKCdsZXR0ZXInKTtcblxuICBpZiAoIWN1cnJlbnRXb3JkTm9kZUxpc3QpIHJldHVybjtcblxuICBsZXQgY3VycmVudExldHRlcjogSFRNTEVsZW1lbnQgPSBjdXJyZW50V29yZE5vZGVMaXN0W2N1cnJlbnRMZXR0ZXJJbmRleF0gYXMgSFRNTEVsZW1lbnQ7XG4gIGlmIChpbnB1dExlbiA+IGN1cnJlbnRXb3JkTm9kZUxpc3QubGVuZ3RoKSB7XG4gICAgY3VycmVudExldHRlciA9IGN1cnJlbnRXb3JkTm9kZUxpc3RbY3VycmVudFdvcmROb2RlTGlzdC5sZW5ndGggLSAxXSBhcyBIVE1MRWxlbWVudDtcbiAgfVxuXG4gIGNvbnN0IGN1cnJlbnRMYW5ndWFnZSA9IGF3YWl0IE1pc2MuZ2V0Q3VycmVudExhbmd1YWdlKENvbmZpZy5sYW5ndWFnZSk7XG4gIGNvbnN0IGlzTGFuZ3VhZ2VMZWZ0VG9SaWdodCA9IGN1cnJlbnRMYW5ndWFnZS5sZWZ0VG9SaWdodDtcbiAgY29uc3QgY3VycmVudExldHRlclBvc0xlZnQgPSBpc0xhbmd1YWdlTGVmdFRvUmlnaHRcbiAgICA/IGN1cnJlbnRMZXR0ZXIub2Zmc2V0TGVmdFxuICAgIDogY3VycmVudExldHRlci5vZmZzZXRMZWZ0ICsgKGN1cnJlbnRMZXR0ZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggPz8gMCk7XG4gIGNvbnN0IGN1cnJlbnRMZXR0ZXJQb3NUb3AgPSBjdXJyZW50TGV0dGVyLm9mZnNldFRvcDtcbiAgY29uc3QgbGV0dGVySGVpZ2h0ID0gY3VycmVudExldHRlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQgYXMgbnVtYmVyO1xuICBsZXQgbmV3VG9wID0gMDtcbiAgbGV0IG5ld0xlZnQgPSAwO1xuXG4gIG5ld1RvcCA9IGN1cnJlbnRMZXR0ZXJQb3NUb3AgLSBNYXRoLnJvdW5kKGxldHRlckhlaWdodCAvIDUpO1xuXG4gIGlmIChpbnB1dExlbiA9PSAwKSB7XG4gICAgbmV3TGVmdCA9IGlzTGFuZ3VhZ2VMZWZ0VG9SaWdodFxuICAgICAgPyBjdXJyZW50TGV0dGVyUG9zTGVmdCAtIGNhcmV0V2lkdGggLyAyXG4gICAgICA6IGN1cnJlbnRMZXR0ZXJQb3NMZWZ0ICsgY2FyZXRXaWR0aCAvIDI7XG4gIH0gZWxzZSB7XG4gICAgbmV3TGVmdCA9IGlzTGFuZ3VhZ2VMZWZ0VG9SaWdodFxuICAgICAgPyBjdXJyZW50TGV0dGVyUG9zTGVmdCArXG4gICAgICAgIChjdXJyZW50TGV0dGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIGFzIG51bWJlcikgLVxuICAgICAgICBjYXJldFdpZHRoIC8gMlxuICAgICAgOiBjdXJyZW50TGV0dGVyUG9zTGVmdCAtXG4gICAgICAgIChjdXJyZW50TGV0dGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIGFzIG51bWJlcikgK1xuICAgICAgICBjYXJldFdpZHRoIC8gMjtcbiAgfVxuXG4gIGNhcmV0VG9wLm5leHQobmV3VG9wKTtcbiAgY2FyZXRMZWZ0Lm5leHQobmV3TGVmdCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzaG93KCk6IHZvaWQge1xuICBjYXJldFNob3cubmV4dCh0cnVlKTtcbiAgdXBkYXRlUG9zaXRpb24oKTtcbiAgc3RhcnRBbmltYXRpb24oKTtcbn1cbiJdfQ==
@@ -1,59 +0,0 @@
1
- export let text = [
2
- "The",
3
- "quick",
4
- "brown",
5
- "fox",
6
- "jumps",
7
- "over",
8
- "the",
9
- "lazy",
10
- "dog",
11
- ];
12
- export let isWordRandom = false;
13
- export let isTimeRandom = false;
14
- export let word = -1;
15
- export let time = -1;
16
- export let delimiter = " ";
17
- export function setText(txt) {
18
- text = txt;
19
- }
20
- export function setIsWordRandom(val) {
21
- isWordRandom = val;
22
- }
23
- export function setIsTimeRandom(val) {
24
- isTimeRandom = val;
25
- }
26
- export function setTime(val) {
27
- time = val;
28
- }
29
- export function setWord(val) {
30
- word = val;
31
- }
32
- export function setDelimiter(val) {
33
- delimiter = val;
34
- }
35
- export function getCustomText(name) {
36
- const customText = getCustomTextObject();
37
- return customText[name].split(/ +/);
38
- }
39
- export function setCustomText(name, text) {
40
- const customText = getCustomTextObject();
41
- if (typeof text === "string")
42
- customText[name] = text;
43
- else
44
- customText[name] = text.join(" ");
45
- window.localStorage.setItem("customText", JSON.stringify(customText));
46
- }
47
- export function deleteCustomText(name) {
48
- const customText = getCustomTextObject();
49
- if (customText[name])
50
- delete customText[name];
51
- window.localStorage.setItem("customText", JSON.stringify(customText));
52
- }
53
- function getCustomTextObject() {
54
- return JSON.parse(window.localStorage.getItem("customText") ?? "{}");
55
- }
56
- export function getCustomTextNames() {
57
- return Object.keys(getCustomTextObject());
58
- }
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90Z28tdHlwaW5nLXRlc3Qvc3JjL2xpYi9oZWxwZXJzL3Rlc3QvY3VzdG9tLXRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLElBQUksSUFBSSxHQUFHO0lBQ2hCLEtBQUs7SUFDTCxPQUFPO0lBQ1AsT0FBTztJQUNQLEtBQUs7SUFDTCxPQUFPO0lBQ1AsTUFBTTtJQUNOLEtBQUs7SUFDTCxNQUFNO0lBQ04sS0FBSztDQUNOLENBQUM7QUFDRixNQUFNLENBQUMsSUFBSSxZQUFZLEdBQUcsS0FBSyxDQUFDO0FBQ2hDLE1BQU0sQ0FBQyxJQUFJLFlBQVksR0FBRyxLQUFLLENBQUM7QUFDaEMsTUFBTSxDQUFDLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3JCLE1BQU0sQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNyQixNQUFNLENBQUMsSUFBSSxTQUFTLEdBQUcsR0FBRyxDQUFDO0FBRTNCLE1BQU0sVUFBVSxPQUFPLENBQUMsR0FBYTtJQUNuQyxJQUFJLEdBQUcsR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQUMsR0FBWTtJQUMxQyxZQUFZLEdBQUcsR0FBRyxDQUFDO0FBQ3JCLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLEdBQVk7SUFDMUMsWUFBWSxHQUFHLEdBQUcsQ0FBQztBQUNyQixDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBQyxHQUFXO0lBQ2pDLElBQUksR0FBRyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBQyxHQUFXO0lBQ2pDLElBQUksR0FBRyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxHQUFXO0lBQ3RDLFNBQVMsR0FBRyxHQUFHLENBQUM7QUFDbEIsQ0FBQztBQUlELE1BQU0sVUFBVSxhQUFhLENBQUMsSUFBWTtJQUN4QyxNQUFNLFVBQVUsR0FBRyxtQkFBbUIsRUFBRSxDQUFDO0lBRXpDLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxJQUFZLEVBQUUsSUFBdUI7SUFDakUsTUFBTSxVQUFVLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQztJQUV6QyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVE7UUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDOztRQUNqRCxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUV2QyxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBQ3hFLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsSUFBWTtJQUMzQyxNQUFNLFVBQVUsR0FBRyxtQkFBbUIsRUFBRSxDQUFDO0lBRXpDLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQztRQUFFLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTlDLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDeEUsQ0FBQztBQUVELFNBQVMsbUJBQW1CO0lBQzFCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztBQUN2RSxDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQjtJQUNoQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO0FBQzVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgbGV0IHRleHQgPSBbXG4gIFwiVGhlXCIsXG4gIFwicXVpY2tcIixcbiAgXCJicm93blwiLFxuICBcImZveFwiLFxuICBcImp1bXBzXCIsXG4gIFwib3ZlclwiLFxuICBcInRoZVwiLFxuICBcImxhenlcIixcbiAgXCJkb2dcIixcbl07XG5leHBvcnQgbGV0IGlzV29yZFJhbmRvbSA9IGZhbHNlO1xuZXhwb3J0IGxldCBpc1RpbWVSYW5kb20gPSBmYWxzZTtcbmV4cG9ydCBsZXQgd29yZCA9IC0xO1xuZXhwb3J0IGxldCB0aW1lID0gLTE7XG5leHBvcnQgbGV0IGRlbGltaXRlciA9IFwiIFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0VGV4dCh0eHQ6IHN0cmluZ1tdKTogdm9pZCB7XG4gIHRleHQgPSB0eHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRJc1dvcmRSYW5kb20odmFsOiBib29sZWFuKTogdm9pZCB7XG4gIGlzV29yZFJhbmRvbSA9IHZhbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldElzVGltZVJhbmRvbSh2YWw6IGJvb2xlYW4pOiB2b2lkIHtcbiAgaXNUaW1lUmFuZG9tID0gdmFsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0VGltZSh2YWw6IG51bWJlcik6IHZvaWQge1xuICB0aW1lID0gdmFsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0V29yZCh2YWw6IG51bWJlcik6IHZvaWQge1xuICB3b3JkID0gdmFsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0RGVsaW1pdGVyKHZhbDogc3RyaW5nKTogdm9pZCB7XG4gIGRlbGltaXRlciA9IHZhbDtcbn1cblxudHlwZSBDdXN0b21UZXh0T2JqZWN0ID0gUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEN1c3RvbVRleHQobmFtZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICBjb25zdCBjdXN0b21UZXh0ID0gZ2V0Q3VzdG9tVGV4dE9iamVjdCgpO1xuXG4gIHJldHVybiBjdXN0b21UZXh0W25hbWVdLnNwbGl0KC8gKy8pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0Q3VzdG9tVGV4dChuYW1lOiBzdHJpbmcsIHRleHQ6IHN0cmluZyB8IHN0cmluZ1tdKTogdm9pZCB7XG4gIGNvbnN0IGN1c3RvbVRleHQgPSBnZXRDdXN0b21UZXh0T2JqZWN0KCk7XG5cbiAgaWYgKHR5cGVvZiB0ZXh0ID09PSBcInN0cmluZ1wiKSBjdXN0b21UZXh0W25hbWVdID0gdGV4dDtcbiAgZWxzZSBjdXN0b21UZXh0W25hbWVdID0gdGV4dC5qb2luKFwiIFwiKTtcblxuICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJjdXN0b21UZXh0XCIsIEpTT04uc3RyaW5naWZ5KGN1c3RvbVRleHQpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlbGV0ZUN1c3RvbVRleHQobmFtZTogc3RyaW5nKTogdm9pZCB7XG4gIGNvbnN0IGN1c3RvbVRleHQgPSBnZXRDdXN0b21UZXh0T2JqZWN0KCk7XG5cbiAgaWYgKGN1c3RvbVRleHRbbmFtZV0pIGRlbGV0ZSBjdXN0b21UZXh0W25hbWVdO1xuXG4gIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcImN1c3RvbVRleHRcIiwgSlNPTi5zdHJpbmdpZnkoY3VzdG9tVGV4dCkpO1xufVxuXG5mdW5jdGlvbiBnZXRDdXN0b21UZXh0T2JqZWN0KCk6IEN1c3RvbVRleHRPYmplY3Qge1xuICByZXR1cm4gSlNPTi5wYXJzZSh3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjdXN0b21UZXh0XCIpID8/IFwie31cIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDdXN0b21UZXh0TmFtZXMoKTogc3RyaW5nW10ge1xuICByZXR1cm4gT2JqZWN0LmtleXMoZ2V0Q3VzdG9tVGV4dE9iamVjdCgpKTtcbn1cbiJdfQ==
@@ -1,29 +0,0 @@
1
- let pairsList = [];
2
- export async function getList() {
3
- if (pairsList.length === 0) {
4
- return fetch("/../assets/typing-test-languages/english_punctuation.json")
5
- .then(res => res.json())
6
- .then(json => {
7
- pairsList = json;
8
- return pairsList;
9
- });
10
- }
11
- return pairsList;
12
- }
13
- // Check if word is in the group of pairs so it can be replaced
14
- export async function check(word) {
15
- const list = await getList();
16
- if (list.find((a) => word.match(RegExp(`^([\\W]*${a[0]}[\\W]*)$`, "gi"))) ===
17
- undefined) {
18
- return false;
19
- }
20
- return true;
21
- }
22
- export async function replace(word) {
23
- const list = await getList();
24
- const replacement = list.find((a) => word.match(RegExp(`^([\\W]*${a[0]}[\\W]*)$`, "gi")));
25
- return replacement
26
- ? word.replace(RegExp(`^(?:([\\W]*)(${replacement[0]})([\\W]*))$`, "gi"), replacement[1])
27
- : word;
28
- }
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5nbGlzaC1wdW5jdHVhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3Rnby10eXBpbmctdGVzdC9zcmMvbGliL2hlbHBlcnMvdGVzdC9lbmdsaXNoLXB1bmN0dWF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLElBQUksU0FBUyxHQUFhLEVBQUUsQ0FBQztBQUU3QixNQUFNLENBQUMsS0FBSyxVQUFVLE9BQU87SUFDM0IsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzNCLE9BQU8sS0FBSyxDQUFDLDJEQUEyRCxDQUFDO2FBQ3BFLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDWCxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ2pCLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRCwrREFBK0Q7QUFDL0QsTUFBTSxDQUFDLEtBQUssVUFBVSxLQUFLLENBQUMsSUFBWTtJQUN0QyxNQUFNLElBQUksR0FBRyxNQUFNLE9BQU8sRUFBRSxDQUFDO0lBQzdCLElBQ0UsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLFNBQVMsRUFDVCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxPQUFPLENBQUMsSUFBWTtJQUN4QyxNQUFNLElBQUksR0FBRyxNQUFNLE9BQU8sRUFBRSxDQUFDO0lBQzdCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQ3BELENBQUM7SUFDRixPQUFPLFdBQVc7UUFDaEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQ1YsTUFBTSxDQUFDLGdCQUFnQixXQUFXLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsRUFDekQsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmO1FBQ0gsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNYLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJsZXQgcGFpcnNMaXN0OiBzdHJpbmdbXSA9IFtdO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0TGlzdCgpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gIGlmIChwYWlyc0xpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGZldGNoKFwiLy4uL2Fzc2V0cy90eXBpbmctdGVzdC1sYW5ndWFnZXMvZW5nbGlzaF9wdW5jdHVhdGlvbi5qc29uXCIpXG4gICAgICAgIC50aGVuKHJlcyA9PiByZXMuanNvbigpKVxuICAgICAgICAudGhlbihqc29uID0+IHtcbiAgICAgICAgICBwYWlyc0xpc3QgPSBqc29uO1xuICAgICAgICAgIHJldHVybiBwYWlyc0xpc3Q7XG4gICAgICAgIH0pO1xuICB9XG4gIHJldHVybiBwYWlyc0xpc3Q7XG59XG5cbi8vIENoZWNrIGlmIHdvcmQgaXMgaW4gdGhlIGdyb3VwIG9mIHBhaXJzIHNvIGl0IGNhbiBiZSByZXBsYWNlZFxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNoZWNrKHdvcmQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCBsaXN0ID0gYXdhaXQgZ2V0TGlzdCgpO1xuICBpZiAoXG4gICAgbGlzdC5maW5kKChhKSA9PiB3b3JkLm1hdGNoKFJlZ0V4cChgXihbXFxcXFddKiR7YVswXX1bXFxcXFddKikkYCwgXCJnaVwiKSkpID09PVxuICAgIHVuZGVmaW5lZFxuICApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXBsYWNlKHdvcmQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IGxpc3QgPSBhd2FpdCBnZXRMaXN0KCk7XG4gIGNvbnN0IHJlcGxhY2VtZW50ID0gbGlzdC5maW5kKChhKSA9PlxuICAgIHdvcmQubWF0Y2goUmVnRXhwKGBeKFtcXFxcV10qJHthWzBdfVtcXFxcV10qKSRgLCBcImdpXCIpKVxuICApO1xuICByZXR1cm4gcmVwbGFjZW1lbnRcbiAgICA/IHdvcmQucmVwbGFjZShcbiAgICAgICAgUmVnRXhwKGBeKD86KFtcXFxcV10qKSgke3JlcGxhY2VtZW50WzBdfSkoW1xcXFxXXSopKSRgLCBcImdpXCIpLFxuICAgICAgICByZXBsYWNlbWVudFsxXVxuICAgICAgKVxuICAgIDogd29yZDtcbn1cbiJdfQ==
@@ -1,35 +0,0 @@
1
- import * as Caret from './caret';
2
- const unfocusPx = 3;
3
- let state = false;
4
- let middle;
5
- let capsWarning;
6
- export function setMiddleElement(middleElem) {
7
- middle = middleElem;
8
- }
9
- export function setCapsWarningElement(capsWarningElem) {
10
- capsWarning = capsWarningElem;
11
- }
12
- export function set(foc, withCursor = false) {
13
- if (foc && !state) {
14
- state = true;
15
- Caret.stopAnimation();
16
- middle.classList.add('focus');
17
- capsWarning.classList.add('focus');
18
- }
19
- else if (!foc && state) {
20
- state = false;
21
- Caret.startAnimation();
22
- middle.classList.remove('focus');
23
- capsWarning.classList.remove('focus');
24
- }
25
- }
26
- export function mousemove(event) {
27
- if (!state)
28
- return;
29
- // To avoid mouse/desk vibration from creating a flashy effect, we'll unfocus @ >5px instead of >0px
30
- if (middle.classList.contains('focus') &&
31
- (event.movementX > unfocusPx || event.movementY > unfocusPx)) {
32
- set(false);
33
- }
34
- }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90Z28tdHlwaW5nLXRlc3Qvc3JjL2xpYi9oZWxwZXJzL3Rlc3QvZm9jdXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEtBQUssTUFBTSxTQUFTLENBQUM7QUFFakMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDO0FBQ3BCLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQztBQUNsQixJQUFJLE1BQW1CLENBQUM7QUFDeEIsSUFBSSxXQUF3QixDQUFDO0FBRTdCLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxVQUF1QjtJQUN0RCxNQUFNLEdBQUcsVUFBVSxDQUFDO0FBQ3RCLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQUMsZUFBNEI7SUFDaEUsV0FBVyxHQUFHLGVBQWUsQ0FBQztBQUNoQyxDQUFDO0FBRUQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFZLEVBQUUsVUFBVSxHQUFHLEtBQUs7SUFDbEQsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNsQixLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2IsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlCLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7U0FBTSxJQUFJLENBQUMsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pCLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDZCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEMsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQStDO0lBQ3ZFLElBQUksQ0FBQyxLQUFLO1FBQUUsT0FBTztJQUNuQixvR0FBb0c7SUFDcEcsSUFDRSxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFDbEMsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLFNBQVMsSUFBSSxLQUFLLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxFQUM1RCxDQUFDO1FBQ0QsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2IsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBDYXJldCBmcm9tICcuL2NhcmV0JztcblxuY29uc3QgdW5mb2N1c1B4ID0gMztcbmxldCBzdGF0ZSA9IGZhbHNlO1xubGV0IG1pZGRsZTogSFRNTEVsZW1lbnQ7XG5sZXQgY2Fwc1dhcm5pbmc6IEhUTUxFbGVtZW50O1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0TWlkZGxlRWxlbWVudChtaWRkbGVFbGVtOiBIVE1MRWxlbWVudCkge1xuICBtaWRkbGUgPSBtaWRkbGVFbGVtO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0Q2Fwc1dhcm5pbmdFbGVtZW50KGNhcHNXYXJuaW5nRWxlbTogSFRNTEVsZW1lbnQpIHtcbiAgY2Fwc1dhcm5pbmcgPSBjYXBzV2FybmluZ0VsZW07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXQoZm9jOiBib29sZWFuLCB3aXRoQ3Vyc29yID0gZmFsc2UpOiB2b2lkIHtcbiAgaWYgKGZvYyAmJiAhc3RhdGUpIHtcbiAgICBzdGF0ZSA9IHRydWU7XG4gICAgQ2FyZXQuc3RvcEFuaW1hdGlvbigpO1xuICAgIG1pZGRsZS5jbGFzc0xpc3QuYWRkKCdmb2N1cycpO1xuICAgIGNhcHNXYXJuaW5nLmNsYXNzTGlzdC5hZGQoJ2ZvY3VzJyk7XG4gIH0gZWxzZSBpZiAoIWZvYyAmJiBzdGF0ZSkge1xuICAgIHN0YXRlID0gZmFsc2U7XG4gICAgQ2FyZXQuc3RhcnRBbmltYXRpb24oKTtcbiAgICBtaWRkbGUuY2xhc3NMaXN0LnJlbW92ZSgnZm9jdXMnKTtcbiAgICBjYXBzV2FybmluZy5jbGFzc0xpc3QucmVtb3ZlKCdmb2N1cycpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb3VzZW1vdmUoZXZlbnQ6IHsgbW92ZW1lbnRYOiBudW1iZXI7IG1vdmVtZW50WTogbnVtYmVyIH0pIHtcbiAgaWYgKCFzdGF0ZSkgcmV0dXJuO1xuICAvLyBUbyBhdm9pZCBtb3VzZS9kZXNrIHZpYnJhdGlvbiBmcm9tIGNyZWF0aW5nIGEgZmxhc2h5IGVmZmVjdCwgd2UnbGwgdW5mb2N1cyBAID41cHggaW5zdGVhZCBvZiA+MHB4XG4gIGlmIChcbiAgICBtaWRkbGUuY2xhc3NMaXN0LmNvbnRhaW5zKCdmb2N1cycpICYmXG4gICAgKGV2ZW50Lm1vdmVtZW50WCA+IHVuZm9jdXNQeCB8fCBldmVudC5tb3ZlbWVudFkgPiB1bmZvY3VzUHgpXG4gICkge1xuICAgIHNldChmYWxzZSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,11 +0,0 @@
1
- let state = false;
2
- export function set() {
3
- state = true;
4
- }
5
- export function reset() {
6
- state = false;
7
- }
8
- export function get() {
9
- return state;
10
- }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFudWFsLXJlc3RhcnQtdHJhY2tlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3Rnby10eXBpbmctdGVzdC9zcmMvbGliL2hlbHBlcnMvdGVzdC9tYW51YWwtcmVzdGFydC10cmFja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQztBQUVsQixNQUFNLFVBQVUsR0FBRztJQUNqQixLQUFLLEdBQUcsSUFBSSxDQUFDO0FBQ2YsQ0FBQztBQUVELE1BQU0sVUFBVSxLQUFLO0lBQ25CLEtBQUssR0FBRyxLQUFLLENBQUM7QUFDaEIsQ0FBQztBQUVELE1BQU0sVUFBVSxHQUFHO0lBQ2pCLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImxldCBzdGF0ZSA9IGZhbHNlO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0KCk6IHZvaWQge1xuICBzdGF0ZSA9IHRydWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNldCgpOiB2b2lkIHtcbiAgc3RhdGUgPSBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldCgpOiBib29sZWFuIHtcbiAgcmV0dXJuIHN0YXRlO1xufVxuIl19
@@ -1,14 +0,0 @@
1
- import { BehaviorSubject } from 'rxjs';
2
- import * as Misc from '../../utils/misc';
3
- const outOfFocusTimeouts = [];
4
- export const outOfFocusShow = new BehaviorSubject(false);
5
- export function hide() {
6
- outOfFocusShow.next(false);
7
- Misc.clearTimeouts(outOfFocusTimeouts);
8
- }
9
- export function show() {
10
- outOfFocusTimeouts.push(setTimeout(() => {
11
- outOfFocusShow.next(true);
12
- }, 1000));
13
- }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0LW9mLWZvY3VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGdvLXR5cGluZy10ZXN0L3NyYy9saWIvaGVscGVycy90ZXN0L291dC1vZi1mb2N1cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sS0FBSyxJQUFJLE1BQU0sa0JBQWtCLENBQUM7QUFFekMsTUFBTSxrQkFBa0IsR0FBZ0MsRUFBRSxDQUFDO0FBRTNELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztBQUVsRSxNQUFNLFVBQVUsSUFBSTtJQUNsQixjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRUQsTUFBTSxVQUFVLElBQUk7SUFDbEIsa0JBQWtCLENBQUMsSUFBSSxDQUNyQixVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQ1QsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCAqIGFzIE1pc2MgZnJvbSAnLi4vLi4vdXRpbHMvbWlzYyc7XG5cbmNvbnN0IG91dE9mRm9jdXNUaW1lb3V0czogKG51bWJlciB8IE5vZGVKUy5UaW1lb3V0KVtdID0gW107XG5cbmV4cG9ydCBjb25zdCBvdXRPZkZvY3VzU2hvdyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG5leHBvcnQgZnVuY3Rpb24gaGlkZSgpOiB2b2lkIHtcbiAgb3V0T2ZGb2N1c1Nob3cubmV4dChmYWxzZSk7XG4gIE1pc2MuY2xlYXJUaW1lb3V0cyhvdXRPZkZvY3VzVGltZW91dHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hvdygpOiB2b2lkIHtcbiAgb3V0T2ZGb2N1c1RpbWVvdXRzLnB1c2goXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBvdXRPZkZvY3VzU2hvdy5uZXh0KHRydWUpO1xuICAgIH0sIDEwMDApXG4gICk7XG59XG4iXX0=