@dodona/papyros 4.0.7 → 4.1.1

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 (168) hide show
  1. package/dist/assets/__vite-browser-external-9wXp6ZBx.js +1 -0
  2. package/dist/assets/__vite-browser-external-BIHI7g3E.js +1 -0
  3. package/dist/assets/index-C1AWjGcU.js +2202 -0
  4. package/dist/assets/manifest-BaVmi6rC.json +15 -0
  5. package/dist/assets/python_package.tar.gz-B8aMWvGt.load_by_url +0 -0
  6. package/dist/assets/worker-BhABRh01.js +5 -0
  7. package/dist/assets/worker-C2Ju1j5g.js +110 -0
  8. package/dist/index.html +26 -0
  9. package/dist/manifest.json +15 -0
  10. package/dist/robots.txt +3 -0
  11. package/package.json +25 -25
  12. package/dist/Library.d.ts +0 -11
  13. package/dist/Library.js +0 -11
  14. package/dist/Library.js.map +0 -1
  15. package/dist/ProgrammingLanguage.d.ts +0 -7
  16. package/dist/ProgrammingLanguage.js +0 -9
  17. package/dist/ProgrammingLanguage.js.map +0 -1
  18. package/dist/backend/Backend.d.ts +0 -92
  19. package/dist/backend/Backend.js +0 -79
  20. package/dist/backend/Backend.js.map +0 -1
  21. package/dist/backend/workers/javascript/JavaScriptWorker.d.ts +0 -39
  22. package/dist/backend/workers/javascript/JavaScriptWorker.js +0 -158
  23. package/dist/backend/workers/javascript/JavaScriptWorker.js.map +0 -1
  24. package/dist/backend/workers/javascript/worker.d.ts +0 -1
  25. package/dist/backend/workers/javascript/worker.js +0 -5
  26. package/dist/backend/workers/javascript/worker.js.map +0 -1
  27. package/dist/backend/workers/python/PythonWorker.d.ts +0 -32
  28. package/dist/backend/workers/python/PythonWorker.js +0 -117
  29. package/dist/backend/workers/python/PythonWorker.js.map +0 -1
  30. package/dist/backend/workers/python/python_package.tar.gz.load_by_url +0 -0
  31. package/dist/backend/workers/python/worker.d.ts +0 -1
  32. package/dist/backend/workers/python/worker.js +0 -5
  33. package/dist/backend/workers/python/worker.js.map +0 -1
  34. package/dist/communication/BackendEvent.d.ts +0 -33
  35. package/dist/communication/BackendEvent.js +0 -18
  36. package/dist/communication/BackendEvent.js.map +0 -1
  37. package/dist/communication/BackendEventQueue.d.ts +0 -59
  38. package/dist/communication/BackendEventQueue.js +0 -96
  39. package/dist/communication/BackendEventQueue.js.map +0 -1
  40. package/dist/communication/BackendManager.d.ts +0 -68
  41. package/dist/communication/BackendManager.js +0 -99
  42. package/dist/communication/BackendManager.js.map +0 -1
  43. package/dist/communication/InputServiceWorker.d.ts +0 -1
  44. package/dist/communication/InputServiceWorker.js +0 -37
  45. package/dist/communication/InputServiceWorker.js.map +0 -1
  46. package/dist/communication/InputWorker.d.ts +0 -22
  47. package/dist/communication/InputWorker.js +0 -63
  48. package/dist/communication/InputWorker.js.map +0 -1
  49. package/dist/frontend/components/CodeRunner.d.ts +0 -9
  50. package/dist/frontend/components/CodeRunner.js +0 -60
  51. package/dist/frontend/components/CodeRunner.js.map +0 -1
  52. package/dist/frontend/components/Debugger.d.ts +0 -7
  53. package/dist/frontend/components/Debugger.js +0 -75
  54. package/dist/frontend/components/Debugger.js.map +0 -1
  55. package/dist/frontend/components/Input.d.ts +0 -13
  56. package/dist/frontend/components/Input.js +0 -60
  57. package/dist/frontend/components/Input.js.map +0 -1
  58. package/dist/frontend/components/Output.d.ts +0 -14
  59. package/dist/frontend/components/Output.js +0 -157
  60. package/dist/frontend/components/Output.js.map +0 -1
  61. package/dist/frontend/components/PapyrosElement.d.ts +0 -8
  62. package/dist/frontend/components/PapyrosElement.js +0 -24
  63. package/dist/frontend/components/PapyrosElement.js.map +0 -1
  64. package/dist/frontend/components/app/App.d.ts +0 -24
  65. package/dist/frontend/components/app/App.js +0 -207
  66. package/dist/frontend/components/app/App.js.map +0 -1
  67. package/dist/frontend/components/app/ExamplePicker.d.ts +0 -7
  68. package/dist/frontend/components/app/ExamplePicker.js +0 -36
  69. package/dist/frontend/components/app/ExamplePicker.js.map +0 -1
  70. package/dist/frontend/components/app/LanguagePicker.d.ts +0 -7
  71. package/dist/frontend/components/app/LanguagePicker.js +0 -33
  72. package/dist/frontend/components/app/LanguagePicker.js.map +0 -1
  73. package/dist/frontend/components/app/ProgrammingLanguagePicker.d.ts +0 -7
  74. package/dist/frontend/components/app/ProgrammingLanguagePicker.js +0 -38
  75. package/dist/frontend/components/app/ProgrammingLanguagePicker.js.map +0 -1
  76. package/dist/frontend/components/app/examples/JavaScriptExamples.d.ts +0 -5
  77. package/dist/frontend/components/app/examples/JavaScriptExamples.js +0 -16
  78. package/dist/frontend/components/app/examples/JavaScriptExamples.js.map +0 -1
  79. package/dist/frontend/components/app/examples/PythonExamples.d.ts +0 -14
  80. package/dist/frontend/components/app/examples/PythonExamples.js +0 -163
  81. package/dist/frontend/components/app/examples/PythonExamples.js.map +0 -1
  82. package/dist/frontend/components/app/themes/ThemePicker.d.ts +0 -11
  83. package/dist/frontend/components/app/themes/ThemePicker.js +0 -48
  84. package/dist/frontend/components/app/themes/ThemePicker.js.map +0 -1
  85. package/dist/frontend/components/app/themes/ThemedButton.d.ts +0 -9
  86. package/dist/frontend/components/app/themes/ThemedButton.js +0 -53
  87. package/dist/frontend/components/app/themes/ThemedButton.js.map +0 -1
  88. package/dist/frontend/components/code_mirror/BatchInputEditor.d.ts +0 -8
  89. package/dist/frontend/components/code_mirror/BatchInputEditor.js +0 -51
  90. package/dist/frontend/components/code_mirror/BatchInputEditor.js.map +0 -1
  91. package/dist/frontend/components/code_mirror/CodeEditor.d.ts +0 -24
  92. package/dist/frontend/components/code_mirror/CodeEditor.js +0 -200
  93. package/dist/frontend/components/code_mirror/CodeEditor.js.map +0 -1
  94. package/dist/frontend/components/code_mirror/CodeMirrorEditor.d.ts +0 -22
  95. package/dist/frontend/components/code_mirror/CodeMirrorEditor.js +0 -111
  96. package/dist/frontend/components/code_mirror/CodeMirrorEditor.js.map +0 -1
  97. package/dist/frontend/components/code_mirror/Extensions.d.ts +0 -15
  98. package/dist/frontend/components/code_mirror/Extensions.js +0 -164
  99. package/dist/frontend/components/code_mirror/Extensions.js.map +0 -1
  100. package/dist/frontend/components/code_mirror/MaterialTheme.d.ts +0 -5
  101. package/dist/frontend/components/code_mirror/MaterialTheme.js +0 -115
  102. package/dist/frontend/components/code_mirror/MaterialTheme.js.map +0 -1
  103. package/dist/frontend/components/code_runner/ButtonLint.d.ts +0 -9
  104. package/dist/frontend/components/code_runner/ButtonLint.js +0 -72
  105. package/dist/frontend/components/code_runner/ButtonLint.js.map +0 -1
  106. package/dist/frontend/components/code_runner/Code.d.ts +0 -7
  107. package/dist/frontend/components/code_runner/Code.js +0 -48
  108. package/dist/frontend/components/code_runner/Code.js.map +0 -1
  109. package/dist/frontend/components/code_runner/RunState.d.ts +0 -7
  110. package/dist/frontend/components/code_runner/RunState.js +0 -41
  111. package/dist/frontend/components/code_runner/RunState.js.map +0 -1
  112. package/dist/frontend/components/input/BatchInput.d.ts +0 -9
  113. package/dist/frontend/components/input/BatchInput.js +0 -53
  114. package/dist/frontend/components/input/BatchInput.js.map +0 -1
  115. package/dist/frontend/components/input/InteractiveInput.d.ts +0 -13
  116. package/dist/frontend/components/input/InteractiveInput.js +0 -71
  117. package/dist/frontend/components/input/InteractiveInput.js.map +0 -1
  118. package/dist/frontend/state/Constants.d.ts +0 -38
  119. package/dist/frontend/state/Constants.js +0 -111
  120. package/dist/frontend/state/Constants.js.map +0 -1
  121. package/dist/frontend/state/Debugger.d.ts +0 -23
  122. package/dist/frontend/state/Debugger.js +0 -86
  123. package/dist/frontend/state/Debugger.js.map +0 -1
  124. package/dist/frontend/state/Examples.d.ts +0 -11
  125. package/dist/frontend/state/Examples.js +0 -36
  126. package/dist/frontend/state/Examples.js.map +0 -1
  127. package/dist/frontend/state/I18n.d.ts +0 -16
  128. package/dist/frontend/state/I18n.js +0 -75
  129. package/dist/frontend/state/I18n.js.map +0 -1
  130. package/dist/frontend/state/InputOutput.d.ts +0 -64
  131. package/dist/frontend/state/InputOutput.js +0 -146
  132. package/dist/frontend/state/InputOutput.js.map +0 -1
  133. package/dist/frontend/state/Papyros.d.ts +0 -40
  134. package/dist/frontend/state/Papyros.js +0 -115
  135. package/dist/frontend/state/Papyros.js.map +0 -1
  136. package/dist/frontend/state/Runner.d.ts +0 -123
  137. package/dist/frontend/state/Runner.js +0 -372
  138. package/dist/frontend/state/Runner.js.map +0 -1
  139. package/dist/frontend/state/Test.d.ts +0 -10
  140. package/dist/frontend/state/Test.js +0 -43
  141. package/dist/frontend/state/Test.js.map +0 -1
  142. package/dist/frontend/state/Translations.d.ts +0 -178
  143. package/dist/frontend/state/Translations.js +0 -187
  144. package/dist/frontend/state/Translations.js.map +0 -1
  145. package/dist/frontend/state/themes/blue-dark.d.ts +0 -2
  146. package/dist/frontend/state/themes/blue-dark.js +0 -56
  147. package/dist/frontend/state/themes/blue-dark.js.map +0 -1
  148. package/dist/frontend/state/themes/blue-light.d.ts +0 -2
  149. package/dist/frontend/state/themes/blue-light.js +0 -56
  150. package/dist/frontend/state/themes/blue-light.js.map +0 -1
  151. package/dist/frontend/state/themes/green-dark.d.ts +0 -2
  152. package/dist/frontend/state/themes/green-dark.js +0 -56
  153. package/dist/frontend/state/themes/green-dark.js.map +0 -1
  154. package/dist/frontend/state/themes/green-light.d.ts +0 -2
  155. package/dist/frontend/state/themes/green-light.js +0 -56
  156. package/dist/frontend/state/themes/green-light.js.map +0 -1
  157. package/dist/frontend/state/themes/red-dark.d.ts +0 -2
  158. package/dist/frontend/state/themes/red-dark.js +0 -56
  159. package/dist/frontend/state/themes/red-dark.js.map +0 -1
  160. package/dist/frontend/state/themes/red-light.d.ts +0 -2
  161. package/dist/frontend/state/themes/red-light.js +0 -56
  162. package/dist/frontend/state/themes/red-light.js.map +0 -1
  163. package/dist/util/Logging.d.ts +0 -15
  164. package/dist/util/Logging.js +0 -30
  165. package/dist/util/Logging.js.map +0 -1
  166. package/dist/util/Util.d.ts +0 -8
  167. package/dist/util/Util.js +0 -48
  168. package/dist/util/Util.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"RunState.js","sourceRoot":"","sources":["../../../../src/frontend/components/code_runner/RunState.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAa,IAAI,EAAkB,MAAM,KAAK,CAAC;AAC3D,OAAO,0CAA0C,CAAC;AAG3C,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,cAAc;IAC1C,MAAM,KAAK,MAAM;QACb,OAAO,GAAG,CAAA;;;;;;;;;;SAUT,CAAC;IACN,CAAC;IAEkB,MAAM;QACrB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY;YAAE,OAAO,IAAI,CAAA,EAAE,CAAC;QAErD,OAAO,IAAI,CAAA;cACL,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK;YAC1C,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,IAAI,CAAA,+DAA+D;cACvE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY;SACrC,CAAC;IACN,CAAC;CACJ,CAAA;AAzBY,UAAU;IADtB,aAAa,CAAC,aAAa,CAAC;GAChB,UAAU,CAyBtB"}
@@ -1,9 +0,0 @@
1
- import { CSSResult, TemplateResult } from "lit";
2
- import "../code_mirror/BatchInputEditor";
3
- import { PapyrosElement } from "../PapyrosElement";
4
- export declare class BatchInput extends PapyrosElement {
5
- static get styles(): CSSResult;
6
- get usedLines(): number | undefined;
7
- get placeholder(): string;
8
- protected render(): TemplateResult;
9
- }
@@ -1,53 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { customElement } from "lit/decorators.js";
8
- import { css, html } from "lit";
9
- import "../code_mirror/BatchInputEditor";
10
- import { RunState } from "../../state/Runner";
11
- import { PapyrosElement } from "../PapyrosElement";
12
- let BatchInput = class BatchInput extends PapyrosElement {
13
- static get styles() {
14
- return css `
15
- :host {
16
- width: 100%;
17
- height: 100%;
18
- overflow: auto;
19
- display: block;
20
- }
21
- `;
22
- }
23
- get usedLines() {
24
- if (this.papyros.debugger.active && this.papyros.debugger.debugUsedInputs !== undefined) {
25
- return this.papyros.debugger.debugUsedInputs;
26
- }
27
- return this.papyros.io.inputs.length;
28
- }
29
- get placeholder() {
30
- if (this.papyros.io.prompt) {
31
- return this.papyros.io.prompt;
32
- }
33
- return this.t("Papyros.input_placeholder.batch");
34
- }
35
- render() {
36
- return html `
37
- <p-batch-input-editor
38
- .value=${this.papyros.io.inputBuffer}
39
- .usedLines=${this.usedLines}
40
- .readOnly=${this.papyros.debugger.active && this.papyros.runner.state === RunState.Ready}
41
- .placeholder=${this.placeholder}
42
- .translations=${this.papyros.i18n.getTranslations("CodeMirror")}
43
- .theme=${this.papyros.constants.CodeMirrorTheme}
44
- @change=${(e) => (this.papyros.io.inputBuffer = e.detail)}
45
- ></p-batch-input-editor>
46
- `;
47
- }
48
- };
49
- BatchInput = __decorate([
50
- customElement("p-batch-input")
51
- ], BatchInput);
52
- export { BatchInput };
53
- //# sourceMappingURL=BatchInput.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BatchInput.js","sourceRoot":"","sources":["../../../../src/frontend/components/input/BatchInput.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,GAAG,EAAa,IAAI,EAAkB,MAAM,KAAK,CAAC;AAC3D,OAAO,iCAAiC,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAG5C,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,cAAc;IAC1C,MAAM,KAAK,MAAM;QACb,OAAO,GAAG,CAAA;;;;;;;SAOT,CAAC;IACN,CAAC;IAED,IAAI,SAAS;QACT,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YACtF,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;QACjD,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;IACzC,CAAC;IAED,IAAI,WAAW;QACX,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC;QAClC,CAAC;QACD,OAAO,IAAI,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAEkB,MAAM;QACrB,OAAO,IAAI,CAAA;;yBAEM,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW;6BACvB,IAAI,CAAC,SAAS;4BACf,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK;+BACzE,IAAI,CAAC,WAAW;gCACf,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;yBACtD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,eAAe;0BACrC,CAAC,CAAc,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;;SAE7E,CAAC;IACN,CAAC;CACJ,CAAA;AAvCY,UAAU;IADtB,aAAa,CAAC,eAAe,CAAC;GAClB,UAAU,CAuCtB"}
@@ -1,13 +0,0 @@
1
- import { Ref } from "lit/directives/ref.js";
2
- import { CSSResult, PropertyValues, TemplateResult } from "lit";
3
- import { PapyrosElement } from "../PapyrosElement";
4
- import "@material/web/textfield/outlined-text-field";
5
- import "@material/web/button/outlined-button";
6
- export declare class InteractiveInput extends PapyrosElement {
7
- value: string;
8
- inputRef: Ref<HTMLInputElement>;
9
- static get styles(): CSSResult;
10
- provideInput(): void;
11
- protected updated(_changedProperties: PropertyValues): void;
12
- protected render(): TemplateResult;
13
- }
@@ -1,71 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { customElement, property } from "lit/decorators.js";
8
- import { createRef, ref } from "lit/directives/ref.js";
9
- import { css, html } from "lit";
10
- import { PapyrosElement } from "../PapyrosElement";
11
- import "@material/web/textfield/outlined-text-field";
12
- import "@material/web/button/outlined-button";
13
- let InteractiveInput = class InteractiveInput extends PapyrosElement {
14
- constructor() {
15
- super(...arguments);
16
- this.value = "";
17
- this.inputRef = createRef();
18
- }
19
- static get styles() {
20
- return css `
21
- :host {
22
- width: 100%;
23
- display: flex;
24
- gap: 0.5rem;
25
- }
26
-
27
- md-outlined-text-field {
28
- flex-grow: 1;
29
- }
30
- `;
31
- }
32
- provideInput() {
33
- this.papyros.io.provideInput(this.value);
34
- this.value = "";
35
- }
36
- updated(_changedProperties) {
37
- super.updated(_changedProperties);
38
- if (this.papyros.io.awaitingInput) {
39
- this.inputRef.value.focus();
40
- }
41
- }
42
- render() {
43
- return html `
44
- <md-outlined-text-field
45
- type="text"
46
- .value=${this.value}
47
- @input=${(e) => (this.value = e.target.value)}
48
- @keydown=${(e) => {
49
- if (e.key === "Enter") {
50
- e.preventDefault();
51
- this.provideInput();
52
- }
53
- }}
54
- placeholder=${this.papyros.io.prompt || this.t("Papyros.input_placeholder.interactive")}
55
- ?disabled=${!this.papyros.io.awaitingInput}
56
- ${ref(this.inputRef)}
57
- ></md-outlined-text-field>
58
- <md-outlined-button @click=${() => this.provideInput()} ?disabled=${!this.papyros.io.awaitingInput}>
59
- ${this.t("Papyros.enter")}
60
- </md-outlined-button>
61
- `;
62
- }
63
- };
64
- __decorate([
65
- property({ state: true })
66
- ], InteractiveInput.prototype, "value", void 0);
67
- InteractiveInput = __decorate([
68
- customElement("p-interactive-input")
69
- ], InteractiveInput);
70
- export { InteractiveInput };
71
- //# sourceMappingURL=InteractiveInput.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InteractiveInput.js","sourceRoot":"","sources":["../../../../src/frontend/components/input/InteractiveInput.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAO,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,GAAG,EAAa,IAAI,EAAkC,MAAM,KAAK,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,6CAA6C,CAAC;AACrD,OAAO,sCAAsC,CAAC;AAGvC,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,cAAc;IAA7C;;QACwB,UAAK,GAAW,EAAE,CAAC;QAC9C,aAAQ,GAA0B,SAAS,EAAE,CAAC;IAiDlD,CAAC;IA/CG,MAAM,KAAK,MAAM;QACb,OAAO,GAAG,CAAA;;;;;;;;;;SAUT,CAAC;IACN,CAAC;IAED,YAAY;QACR,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACpB,CAAC;IAEkB,OAAO,CAAC,kBAAkC;QACzD,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC,KAAM,CAAC,KAAK,EAAE,CAAC;QACjC,CAAC;IACL,CAAC;IAEkB,MAAM;QACrB,OAAO,IAAI,CAAA;;;yBAGM,IAAI,CAAC,KAAK;yBACV,CAAC,CAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,GAAI,CAAC,CAAC,MAA2B,CAAC,KAAK,CAAC;2BAC/D,CAAC,CAAgB,EAAE,EAAE;YAC5B,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;gBACpB,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,IAAI,CAAC,YAAY,EAAE,CAAC;YACxB,CAAC;QACL,CAAC;8BACa,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,uCAAuC,CAAC;4BAC3E,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,aAAa;kBACxC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;;yCAEK,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,aAAa;kBAC5F,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC;;SAEhC,CAAC;IACN,CAAC;CACJ,CAAA;AAlD8B;IAA1B,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;+CAAoB;AADrC,gBAAgB;IAD5B,aAAa,CAAC,qBAAqB,CAAC;GACxB,gBAAgB,CAmD5B"}
@@ -1,38 +0,0 @@
1
- import { State } from "@dodona/lit-state";
2
- import { CSSResult } from "lit";
3
- import { Extension } from "@codemirror/state";
4
- export type ThemeOption = {
5
- theme: CSSResult;
6
- dark: boolean;
7
- name: string;
8
- };
9
- export declare class Constants extends State {
10
- /**
11
- * The maximum length of the output (in lines).
12
- * Default is 1000 lines.
13
- * If the output exceeds this length, it will be truncated.
14
- * Overflowing output will be downloadable.
15
- */
16
- maxOutputLength: number;
17
- /**
18
- * The maximum number of debug frames
19
- * Default is 10000 frames.
20
- * If the number of frames exceeds this limit, execution will be stopped.
21
- */
22
- maxDebugFrames: number;
23
- icons: {
24
- debug: import("lit-html").TemplateResult<1>;
25
- run: import("lit-html").TemplateResult<1>;
26
- doctest: import("lit-html").TemplateResult<1>;
27
- stop: import("lit-html").TemplateResult<1>;
28
- stopDebug: import("lit-html").TemplateResult<1>;
29
- info: import("lit-html").TemplateResult<1>;
30
- help: import("lit-html").TemplateResult<1>;
31
- };
32
- indentationSize: number;
33
- CodeMirrorTheme: Extension;
34
- themes: Record<string, ThemeOption>;
35
- private _activeThemeName;
36
- get activeTheme(): ThemeOption;
37
- set activeTheme(value: ThemeOption);
38
- }
@@ -1,111 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { State, stateProperty } from "@dodona/lit-state";
8
- import { RunMode } from "../../backend/Backend";
9
- import { html } from "lit";
10
- import { material } from "../components/code_mirror/MaterialTheme";
11
- import blueLight from "./themes/blue-light";
12
- import blueDark from "./themes/blue-dark";
13
- import greenLight from "./themes/green-light";
14
- import greenDark from "./themes/green-dark";
15
- import redLight from "./themes/red-light";
16
- import redDark from "./themes/red-dark";
17
- export class Constants extends State {
18
- constructor() {
19
- super(...arguments);
20
- /**
21
- * The maximum length of the output (in lines).
22
- * Default is 1000 lines.
23
- * If the output exceeds this length, it will be truncated.
24
- * Overflowing output will be downloadable.
25
- */
26
- this.maxOutputLength = 1000;
27
- /**
28
- * The maximum number of debug frames
29
- * Default is 10000 frames.
30
- * If the number of frames exceeds this limit, execution will be stopped.
31
- */
32
- this.maxDebugFrames = 10000;
33
- this.icons = {
34
- [RunMode.Debug]: html ` <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
35
- <path
36
- d="M19 7H16.19C15.74 6.2 15.12 5.5 14.37 5L16 3.41L14.59 2L12.42 4.17C11.96 4.06 11.5 4 11 4S10.05 4.06 9.59 4.17L7.41 2L6 3.41L7.62 5C6.87 5.5 6.26 6.21 5.81 7H3V9H5.09C5.03 9.33 5 9.66 5 10V11H3V13H5V14C5 14.34 5.03 14.67 5.09 15H3V17H5.81C7.26 19.5 10.28 20.61 13 19.65V19C13 18.43 13.09 17.86 13.25 17.31C12.59 17.76 11.8 18 11 18C8.79 18 7 16.21 7 14V10C7 7.79 8.79 6 11 6S15 7.79 15 10V14C15 14.19 15 14.39 14.95 14.58C15.54 14.04 16.24 13.62 17 13.35V13H19V11H17V10C17 9.66 16.97 9.33 16.91 9H19V7M13 9V11H9V9H13M13 13V15H9V13H13M17 16V22L22 19L17 16Z"
37
- />
38
- </svg>`,
39
- [RunMode.Run]: html ` <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
40
- <path d="M8,5.14V19.14L19,12.14L8,5.14Z" />
41
- </svg>`,
42
- [RunMode.Doctest]: html ` <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
43
- <path d="M8,5.14V19.14L19,12.14L8,5.14Z" />
44
- </svg>`,
45
- stop: html ` <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
46
- <path d="M18,18H6V6H18V18Z" />
47
- </svg>`,
48
- stopDebug: html ` <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
49
- <path
50
- d="M19 7H16.19C15.74 6.2 15.12 5.5 14.37 5L16 3.41L14.59 2L12.42 4.17C11.96 4.06 11.5 4 11 4S10.05 4.06 9.59 4.17L7.41 2L6 3.41L7.62 5C6.87 5.5 6.26 6.21 5.81 7H3V9H5.09C5.03 9.33 5 9.66 5 10V11H3V13H5V14C5 14.34 5.03 14.67 5.09 15H3V17H5.81C7.26 19.5 10.28 20.61 13 19.65V19C13 18.43 13.09 17.86 13.25 17.31C12.59 17.76 11.8 18 11 18C8.79 18 7 16.21 7 14V10C7 7.79 8.79 6 11 6S15 7.79 15 10V14C15 14.19 15 14.39 14.95 14.58C15.54 14.04 16.24 13.62 17 13.35V13H19V11H17V10C17 9.66 16.97 9.33 16.91 9H19V7M13 9V11H9V9H13M13 13V15H9V13H13M16 16H22V22H16V16Z"
51
- />
52
- </svg>`,
53
- info: html `
54
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960" fill="currentColor">
55
- <path
56
- d="M440-280h80v-240h-80v240Zm40-320q17 0 28.5-11.5T520-640q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640q0 17 11.5 28.5T480-600Zm0 520q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z"
57
- />
58
- </svg>
59
- `,
60
- help: html `
61
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960" fill="currentColor">
62
- <path
63
- d="M478-240q21 0 35.5-14.5T528-290q0-21-14.5-35.5T478-340q-21 0-35.5 14.5T428-290q0 21 14.5 35.5T478-240Zm-36-154h74q0-33 7.5-52t42.5-52q26-26 41-49.5t15-56.5q0-56-41-86t-97-30q-57 0-92.5 30T342-618l66 26q5-18 22.5-39t53.5-21q32 0 48 17.5t16 38.5q0 20-12 37.5T506-526q-44 39-54 59t-10 73Zm38 314q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z"
64
- />
65
- </svg>
66
- `,
67
- };
68
- this.indentationSize = 4;
69
- this.CodeMirrorTheme = material;
70
- this.themes = {
71
- "Blue Light": { theme: blueLight, dark: false, name: "Blue Light" },
72
- "Blue Dark": { theme: blueDark, dark: true, name: "Blue Dark" },
73
- "Green Light": { theme: greenLight, dark: false, name: "Green Light" },
74
- "Green Dark": { theme: greenDark, dark: true, name: "Green Dark" },
75
- "Red Light": { theme: redLight, dark: false, name: "Red Light" },
76
- "Red Dark": { theme: redDark, dark: true, name: "Red Dark" },
77
- };
78
- this._activeThemeName = "Blue Light";
79
- }
80
- get activeTheme() {
81
- return this.themes[this._activeThemeName];
82
- }
83
- set activeTheme(value) {
84
- this._activeThemeName = value.name;
85
- }
86
- }
87
- __decorate([
88
- stateProperty
89
- ], Constants.prototype, "maxOutputLength", void 0);
90
- __decorate([
91
- stateProperty
92
- ], Constants.prototype, "maxDebugFrames", void 0);
93
- __decorate([
94
- stateProperty
95
- ], Constants.prototype, "icons", void 0);
96
- __decorate([
97
- stateProperty
98
- ], Constants.prototype, "indentationSize", void 0);
99
- __decorate([
100
- stateProperty
101
- ], Constants.prototype, "CodeMirrorTheme", void 0);
102
- __decorate([
103
- stateProperty
104
- ], Constants.prototype, "themes", void 0);
105
- __decorate([
106
- stateProperty
107
- ], Constants.prototype, "_activeThemeName", void 0);
108
- __decorate([
109
- stateProperty
110
- ], Constants.prototype, "activeTheme", null);
111
- //# sourceMappingURL=Constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Constants.js","sourceRoot":"","sources":["../../../src/frontend/state/Constants.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAa,MAAM,KAAK,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,yCAAyC,CAAC;AAEnE,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAC5C,OAAO,QAAQ,MAAM,oBAAoB,CAAC;AAC1C,OAAO,UAAU,MAAM,sBAAsB,CAAC;AAC9C,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAC5C,OAAO,QAAQ,MAAM,oBAAoB,CAAC;AAC1C,OAAO,OAAO,MAAM,mBAAmB,CAAC;AAQxC,MAAM,OAAO,SAAU,SAAQ,KAAK;IAApC;;QACI;;;;;WAKG;QAEH,oBAAe,GAAW,IAAI,CAAC;QAC/B;;;;WAIG;QAEH,mBAAc,GAAW,KAAK,CAAC;QAG/B,UAAK,GAAG;YACJ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,CAAA;;;;eAId;YACP,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,CAAA;;eAEZ;YACP,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,CAAA;;eAEhB;YACP,IAAI,EAAE,IAAI,CAAA;;eAEH;YACP,SAAS,EAAE,IAAI,CAAA;;;;eAIR;YACP,IAAI,EAAE,IAAI,CAAA;;;;;;SAMT;YACD,IAAI,EAAE,IAAI,CAAA;;;;;;SAMT;SACJ,CAAC;QAGF,oBAAe,GAAW,CAAC,CAAC;QAG5B,oBAAe,GAAc,QAAQ,CAAC;QAGtC,WAAM,GAAgC;YAClC,YAAY,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE;YACnE,WAAW,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE;YAC/D,aAAa,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE;YACtE,YAAY,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE;YAClE,WAAW,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE;YAChE,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE;SAC/D,CAAC;QAGM,qBAAgB,GAAW,YAAY,CAAC;IAUpD,CAAC;IAPG,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,WAAW,CAAC,KAAkB;QAC9B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC;IACvC,CAAC;CACJ;AAzEG;IADC,aAAa;kDACiB;AAO/B;IADC,aAAa;iDACiB;AAG/B;IADC,aAAa;wCAmCZ;AAGF;IADC,aAAa;kDACc;AAG5B;IADC,aAAa;kDACwB;AAGtC;IADC,aAAa;yCAQZ;AAGM;IADP,aAAa;mDACkC;AAGhD;IADC,aAAa;4CAGb"}
@@ -1,23 +0,0 @@
1
- import { Frame } from "@dodona/trace-component/dist/trace_types";
2
- import { State } from "@dodona/lit-state";
3
- import { Papyros } from "./Papyros";
4
- export type FrameState = {
5
- line: number;
6
- outputs: number;
7
- inputs: number;
8
- };
9
- export declare class Debugger extends State {
10
- private papyros;
11
- private frameStates;
12
- activeFrame: number | undefined;
13
- trace: Frame[];
14
- private _active;
15
- set active(active: boolean);
16
- get active(): boolean;
17
- constructor(papyros: Papyros);
18
- reset(): void;
19
- get activeFrameState(): FrameState | undefined;
20
- get debugLine(): number | undefined;
21
- get debugOutputs(): number | undefined;
22
- get debugUsedInputs(): number | undefined;
23
- }
@@ -1,86 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { BackendManager } from "../../communication/BackendManager";
8
- import { BackendEventType } from "../../communication/BackendEvent";
9
- import { State, stateProperty } from "@dodona/lit-state";
10
- export class Debugger extends State {
11
- set active(active) {
12
- this._active = active;
13
- this.reset();
14
- }
15
- get active() {
16
- return this._active;
17
- }
18
- constructor(papyros) {
19
- super();
20
- this.frameStates = [];
21
- this.activeFrame = undefined;
22
- this.trace = [];
23
- this._active = false;
24
- this.papyros = papyros;
25
- this.reset();
26
- BackendManager.subscribe(BackendEventType.Start, () => {
27
- this.reset();
28
- });
29
- BackendManager.subscribe(BackendEventType.Frame, (e) => {
30
- var _a;
31
- (_a = this.activeFrame) !== null && _a !== void 0 ? _a : (this.activeFrame = 0);
32
- const frame = JSON.parse(e.data);
33
- const frameState = {
34
- line: frame.line,
35
- outputs: this.papyros.io.output.length,
36
- inputs: this.papyros.io.inputs.length,
37
- };
38
- this.frameStates = [...this.frameStates, frameState];
39
- this.trace = [...this.trace, frame];
40
- if (this.frameStates.length >= this.papyros.constants.maxDebugFrames) {
41
- this.papyros.runner.stop();
42
- }
43
- });
44
- }
45
- reset() {
46
- this.frameStates = [];
47
- this.currentOutputs = 0;
48
- this.currentInputs = 0;
49
- this.activeFrame = undefined;
50
- this.trace = [];
51
- }
52
- get activeFrameState() {
53
- if (this.activeFrame === undefined) {
54
- return undefined;
55
- }
56
- return this.frameStates[this.activeFrame];
57
- }
58
- get debugLine() {
59
- var _a;
60
- return (_a = this.activeFrameState) === null || _a === void 0 ? void 0 : _a.line;
61
- }
62
- get debugOutputs() {
63
- var _a;
64
- return (_a = this.activeFrameState) === null || _a === void 0 ? void 0 : _a.outputs;
65
- }
66
- get debugUsedInputs() {
67
- var _a;
68
- return (_a = this.activeFrameState) === null || _a === void 0 ? void 0 : _a.inputs;
69
- }
70
- }
71
- __decorate([
72
- stateProperty
73
- ], Debugger.prototype, "frameStates", void 0);
74
- __decorate([
75
- stateProperty
76
- ], Debugger.prototype, "activeFrame", void 0);
77
- __decorate([
78
- stateProperty
79
- ], Debugger.prototype, "trace", void 0);
80
- __decorate([
81
- stateProperty
82
- ], Debugger.prototype, "_active", void 0);
83
- __decorate([
84
- stateProperty
85
- ], Debugger.prototype, "active", null);
86
- //# sourceMappingURL=Debugger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Debugger.js","sourceRoot":"","sources":["../../../src/frontend/state/Debugger.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import { State } from "@dodona/lit-state";
2
- import { ProgrammingLanguage } from "../../ProgrammingLanguage";
3
- import { Papyros } from "./Papyros";
4
- export declare class Examples extends State {
5
- papyros: Papyros;
6
- private examples;
7
- constructor(papyros: Papyros);
8
- setExamples(language: ProgrammingLanguage, examples: Record<string, string>): void;
9
- get names(): Array<string>;
10
- getExampleCode(name: string): string;
11
- }
@@ -1,36 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { State, StateMap, stateProperty } from "@dodona/lit-state";
8
- import { ProgrammingLanguage } from "../../ProgrammingLanguage";
9
- import { JAVASCRIPT_EXAMPLES } from "../components/app/examples/JavaScriptExamples";
10
- import { PYTHON_EXAMPLES } from "../components/app/examples/PythonExamples";
11
- export class Examples extends State {
12
- constructor(papyros) {
13
- super();
14
- this.examples = new StateMap();
15
- this.papyros = papyros;
16
- this.setExamples(ProgrammingLanguage.JavaScript, JAVASCRIPT_EXAMPLES);
17
- this.setExamples(ProgrammingLanguage.Python, PYTHON_EXAMPLES);
18
- }
19
- setExamples(language, examples) {
20
- this.examples.set(language, examples);
21
- }
22
- get names() {
23
- var _a;
24
- const language = this.papyros.runner.programmingLanguage;
25
- return Object.keys((_a = this.examples.get(language)) !== null && _a !== void 0 ? _a : {});
26
- }
27
- getExampleCode(name) {
28
- var _a, _b;
29
- const language = this.papyros.runner.programmingLanguage;
30
- return (_b = (_a = this.examples.get(language)) === null || _a === void 0 ? void 0 : _a[name]) !== null && _b !== void 0 ? _b : "";
31
- }
32
- }
33
- __decorate([
34
- stateProperty
35
- ], Examples.prototype, "examples", void 0);
36
- //# sourceMappingURL=Examples.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Examples.js","sourceRoot":"","sources":["../../../src/frontend/state/Examples.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAE5E,MAAM,OAAO,QAAS,SAAQ,KAAK;IAK/B,YAAY,OAAgB;QACxB,KAAK,EAAE,CAAC;QAHJ,aAAQ,GAAG,IAAI,QAAQ,EAA+C,CAAC;QAI3E,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;QACtE,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAClE,CAAC;IAEM,WAAW,CAAC,QAA6B,EAAE,QAAgC;QAC9E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,IAAW,KAAK;;QACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC;QACzD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,mCAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;IAEM,cAAc,CAAC,IAAY;;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC;QACzD,OAAO,MAAA,MAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,0CAAG,IAAI,CAAC,mCAAI,EAAE,CAAC;IACrD,CAAC;CACJ;AAtBW;IADP,aAAa;0CACiE"}
@@ -1,16 +0,0 @@
1
- import { State } from "@dodona/lit-state";
2
- export type Translations = {
3
- [key: string]: string | Translations;
4
- };
5
- export declare class I18n extends State {
6
- private readonly polyglot;
7
- private readonly translations;
8
- private _locale;
9
- get availableLocales(): string[];
10
- setTranslations(locale: string, translations: Translations): void;
11
- set locale(locale: string);
12
- get locale(): string;
13
- t(phrase: string, options?: Record<string, any>): string;
14
- getTranslations(key?: string): Translations | undefined;
15
- constructor();
16
- }
@@ -1,75 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { State, StateMap, stateProperty } from "@dodona/lit-state";
8
- import Polyglot from "node-polyglot";
9
- import { DUTCH_TRANSLATION, ENGLISH_TRANSLATION } from "./Translations";
10
- export class I18n extends State {
11
- get availableLocales() {
12
- return [...this.translations.keys()];
13
- }
14
- setTranslations(locale, translations) {
15
- this.translations.set(locale, translations);
16
- if (this.locale === locale) {
17
- this.dispatchStateEvent("t");
18
- this.polyglot.replace(this.translations.get(locale));
19
- }
20
- }
21
- set locale(locale) {
22
- if (this.translations.has(locale)) {
23
- this.dispatchStateEvent("t");
24
- this._locale = locale;
25
- this.polyglot.locale(locale);
26
- this.polyglot.replace(this.translations.get(locale));
27
- }
28
- else {
29
- throw new Error(`Locale ${locale} not loaded`);
30
- }
31
- }
32
- get locale() {
33
- return this._locale;
34
- }
35
- t(phrase, options) {
36
- this.recordRead("t");
37
- return this.polyglot.t(phrase, options);
38
- }
39
- getTranslations(key) {
40
- if (!this.translations.has(this.locale)) {
41
- return undefined;
42
- }
43
- if (!key) {
44
- return this.translations.get(this.locale);
45
- }
46
- const keys = key.split(".");
47
- let record = this.translations.get(this.locale);
48
- for (const k of keys) {
49
- if (typeof record === "string" || !(k in record)) {
50
- return undefined;
51
- }
52
- record = record[k];
53
- }
54
- if (typeof record === "string") {
55
- return undefined;
56
- }
57
- return record;
58
- }
59
- constructor() {
60
- super();
61
- this.polyglot = new Polyglot();
62
- this.translations = new StateMap();
63
- this._locale = "en";
64
- this.polyglot.locale(this.locale);
65
- this.setTranslations("en", ENGLISH_TRANSLATION);
66
- this.setTranslations("nl", DUTCH_TRANSLATION);
67
- }
68
- }
69
- __decorate([
70
- stateProperty
71
- ], I18n.prototype, "_locale", void 0);
72
- __decorate([
73
- stateProperty
74
- ], I18n.prototype, "locale", null);
75
- //# sourceMappingURL=I18n.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"I18n.js","sourceRoot":"","sources":["../../../src/frontend/state/I18n.ts"],"names":[],"mappings":"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"}