@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.
- package/dist/assets/__vite-browser-external-9wXp6ZBx.js +1 -0
- package/dist/assets/__vite-browser-external-BIHI7g3E.js +1 -0
- package/dist/assets/index-C1AWjGcU.js +2202 -0
- package/dist/assets/manifest-BaVmi6rC.json +15 -0
- package/dist/assets/python_package.tar.gz-B8aMWvGt.load_by_url +0 -0
- package/dist/assets/worker-BhABRh01.js +5 -0
- package/dist/assets/worker-C2Ju1j5g.js +110 -0
- package/dist/index.html +26 -0
- package/dist/manifest.json +15 -0
- package/dist/robots.txt +3 -0
- package/package.json +25 -25
- package/dist/Library.d.ts +0 -11
- package/dist/Library.js +0 -11
- package/dist/Library.js.map +0 -1
- package/dist/ProgrammingLanguage.d.ts +0 -7
- package/dist/ProgrammingLanguage.js +0 -9
- package/dist/ProgrammingLanguage.js.map +0 -1
- package/dist/backend/Backend.d.ts +0 -92
- package/dist/backend/Backend.js +0 -79
- package/dist/backend/Backend.js.map +0 -1
- package/dist/backend/workers/javascript/JavaScriptWorker.d.ts +0 -39
- package/dist/backend/workers/javascript/JavaScriptWorker.js +0 -158
- package/dist/backend/workers/javascript/JavaScriptWorker.js.map +0 -1
- package/dist/backend/workers/javascript/worker.d.ts +0 -1
- package/dist/backend/workers/javascript/worker.js +0 -5
- package/dist/backend/workers/javascript/worker.js.map +0 -1
- package/dist/backend/workers/python/PythonWorker.d.ts +0 -32
- package/dist/backend/workers/python/PythonWorker.js +0 -117
- package/dist/backend/workers/python/PythonWorker.js.map +0 -1
- package/dist/backend/workers/python/python_package.tar.gz.load_by_url +0 -0
- package/dist/backend/workers/python/worker.d.ts +0 -1
- package/dist/backend/workers/python/worker.js +0 -5
- package/dist/backend/workers/python/worker.js.map +0 -1
- package/dist/communication/BackendEvent.d.ts +0 -33
- package/dist/communication/BackendEvent.js +0 -18
- package/dist/communication/BackendEvent.js.map +0 -1
- package/dist/communication/BackendEventQueue.d.ts +0 -59
- package/dist/communication/BackendEventQueue.js +0 -96
- package/dist/communication/BackendEventQueue.js.map +0 -1
- package/dist/communication/BackendManager.d.ts +0 -68
- package/dist/communication/BackendManager.js +0 -99
- package/dist/communication/BackendManager.js.map +0 -1
- package/dist/communication/InputServiceWorker.d.ts +0 -1
- package/dist/communication/InputServiceWorker.js +0 -37
- package/dist/communication/InputServiceWorker.js.map +0 -1
- package/dist/communication/InputWorker.d.ts +0 -22
- package/dist/communication/InputWorker.js +0 -63
- package/dist/communication/InputWorker.js.map +0 -1
- package/dist/frontend/components/CodeRunner.d.ts +0 -9
- package/dist/frontend/components/CodeRunner.js +0 -60
- package/dist/frontend/components/CodeRunner.js.map +0 -1
- package/dist/frontend/components/Debugger.d.ts +0 -7
- package/dist/frontend/components/Debugger.js +0 -75
- package/dist/frontend/components/Debugger.js.map +0 -1
- package/dist/frontend/components/Input.d.ts +0 -13
- package/dist/frontend/components/Input.js +0 -60
- package/dist/frontend/components/Input.js.map +0 -1
- package/dist/frontend/components/Output.d.ts +0 -14
- package/dist/frontend/components/Output.js +0 -157
- package/dist/frontend/components/Output.js.map +0 -1
- package/dist/frontend/components/PapyrosElement.d.ts +0 -8
- package/dist/frontend/components/PapyrosElement.js +0 -24
- package/dist/frontend/components/PapyrosElement.js.map +0 -1
- package/dist/frontend/components/app/App.d.ts +0 -24
- package/dist/frontend/components/app/App.js +0 -207
- package/dist/frontend/components/app/App.js.map +0 -1
- package/dist/frontend/components/app/ExamplePicker.d.ts +0 -7
- package/dist/frontend/components/app/ExamplePicker.js +0 -36
- package/dist/frontend/components/app/ExamplePicker.js.map +0 -1
- package/dist/frontend/components/app/LanguagePicker.d.ts +0 -7
- package/dist/frontend/components/app/LanguagePicker.js +0 -33
- package/dist/frontend/components/app/LanguagePicker.js.map +0 -1
- package/dist/frontend/components/app/ProgrammingLanguagePicker.d.ts +0 -7
- package/dist/frontend/components/app/ProgrammingLanguagePicker.js +0 -38
- package/dist/frontend/components/app/ProgrammingLanguagePicker.js.map +0 -1
- package/dist/frontend/components/app/examples/JavaScriptExamples.d.ts +0 -5
- package/dist/frontend/components/app/examples/JavaScriptExamples.js +0 -16
- package/dist/frontend/components/app/examples/JavaScriptExamples.js.map +0 -1
- package/dist/frontend/components/app/examples/PythonExamples.d.ts +0 -14
- package/dist/frontend/components/app/examples/PythonExamples.js +0 -163
- package/dist/frontend/components/app/examples/PythonExamples.js.map +0 -1
- package/dist/frontend/components/app/themes/ThemePicker.d.ts +0 -11
- package/dist/frontend/components/app/themes/ThemePicker.js +0 -48
- package/dist/frontend/components/app/themes/ThemePicker.js.map +0 -1
- package/dist/frontend/components/app/themes/ThemedButton.d.ts +0 -9
- package/dist/frontend/components/app/themes/ThemedButton.js +0 -53
- package/dist/frontend/components/app/themes/ThemedButton.js.map +0 -1
- package/dist/frontend/components/code_mirror/BatchInputEditor.d.ts +0 -8
- package/dist/frontend/components/code_mirror/BatchInputEditor.js +0 -51
- package/dist/frontend/components/code_mirror/BatchInputEditor.js.map +0 -1
- package/dist/frontend/components/code_mirror/CodeEditor.d.ts +0 -24
- package/dist/frontend/components/code_mirror/CodeEditor.js +0 -200
- package/dist/frontend/components/code_mirror/CodeEditor.js.map +0 -1
- package/dist/frontend/components/code_mirror/CodeMirrorEditor.d.ts +0 -22
- package/dist/frontend/components/code_mirror/CodeMirrorEditor.js +0 -111
- package/dist/frontend/components/code_mirror/CodeMirrorEditor.js.map +0 -1
- package/dist/frontend/components/code_mirror/Extensions.d.ts +0 -15
- package/dist/frontend/components/code_mirror/Extensions.js +0 -164
- package/dist/frontend/components/code_mirror/Extensions.js.map +0 -1
- package/dist/frontend/components/code_mirror/MaterialTheme.d.ts +0 -5
- package/dist/frontend/components/code_mirror/MaterialTheme.js +0 -115
- package/dist/frontend/components/code_mirror/MaterialTheme.js.map +0 -1
- package/dist/frontend/components/code_runner/ButtonLint.d.ts +0 -9
- package/dist/frontend/components/code_runner/ButtonLint.js +0 -72
- package/dist/frontend/components/code_runner/ButtonLint.js.map +0 -1
- package/dist/frontend/components/code_runner/Code.d.ts +0 -7
- package/dist/frontend/components/code_runner/Code.js +0 -48
- package/dist/frontend/components/code_runner/Code.js.map +0 -1
- package/dist/frontend/components/code_runner/RunState.d.ts +0 -7
- package/dist/frontend/components/code_runner/RunState.js +0 -41
- package/dist/frontend/components/code_runner/RunState.js.map +0 -1
- package/dist/frontend/components/input/BatchInput.d.ts +0 -9
- package/dist/frontend/components/input/BatchInput.js +0 -53
- package/dist/frontend/components/input/BatchInput.js.map +0 -1
- package/dist/frontend/components/input/InteractiveInput.d.ts +0 -13
- package/dist/frontend/components/input/InteractiveInput.js +0 -71
- package/dist/frontend/components/input/InteractiveInput.js.map +0 -1
- package/dist/frontend/state/Constants.d.ts +0 -38
- package/dist/frontend/state/Constants.js +0 -111
- package/dist/frontend/state/Constants.js.map +0 -1
- package/dist/frontend/state/Debugger.d.ts +0 -23
- package/dist/frontend/state/Debugger.js +0 -86
- package/dist/frontend/state/Debugger.js.map +0 -1
- package/dist/frontend/state/Examples.d.ts +0 -11
- package/dist/frontend/state/Examples.js +0 -36
- package/dist/frontend/state/Examples.js.map +0 -1
- package/dist/frontend/state/I18n.d.ts +0 -16
- package/dist/frontend/state/I18n.js +0 -75
- package/dist/frontend/state/I18n.js.map +0 -1
- package/dist/frontend/state/InputOutput.d.ts +0 -64
- package/dist/frontend/state/InputOutput.js +0 -146
- package/dist/frontend/state/InputOutput.js.map +0 -1
- package/dist/frontend/state/Papyros.d.ts +0 -40
- package/dist/frontend/state/Papyros.js +0 -115
- package/dist/frontend/state/Papyros.js.map +0 -1
- package/dist/frontend/state/Runner.d.ts +0 -123
- package/dist/frontend/state/Runner.js +0 -372
- package/dist/frontend/state/Runner.js.map +0 -1
- package/dist/frontend/state/Test.d.ts +0 -10
- package/dist/frontend/state/Test.js +0 -43
- package/dist/frontend/state/Test.js.map +0 -1
- package/dist/frontend/state/Translations.d.ts +0 -178
- package/dist/frontend/state/Translations.js +0 -187
- package/dist/frontend/state/Translations.js.map +0 -1
- package/dist/frontend/state/themes/blue-dark.d.ts +0 -2
- package/dist/frontend/state/themes/blue-dark.js +0 -56
- package/dist/frontend/state/themes/blue-dark.js.map +0 -1
- package/dist/frontend/state/themes/blue-light.d.ts +0 -2
- package/dist/frontend/state/themes/blue-light.js +0 -56
- package/dist/frontend/state/themes/blue-light.js.map +0 -1
- package/dist/frontend/state/themes/green-dark.d.ts +0 -2
- package/dist/frontend/state/themes/green-dark.js +0 -56
- package/dist/frontend/state/themes/green-dark.js.map +0 -1
- package/dist/frontend/state/themes/green-light.d.ts +0 -2
- package/dist/frontend/state/themes/green-light.js +0 -56
- package/dist/frontend/state/themes/green-light.js.map +0 -1
- package/dist/frontend/state/themes/red-dark.d.ts +0 -2
- package/dist/frontend/state/themes/red-dark.js +0 -56
- package/dist/frontend/state/themes/red-dark.js.map +0 -1
- package/dist/frontend/state/themes/red-light.d.ts +0 -2
- package/dist/frontend/state/themes/red-light.js +0 -56
- package/dist/frontend/state/themes/red-light.js.map +0 -1
- package/dist/util/Logging.d.ts +0 -15
- package/dist/util/Logging.js +0 -30
- package/dist/util/Logging.js.map +0 -1
- package/dist/util/Util.d.ts +0 -8
- package/dist/util/Util.js +0 -48
- 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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"}
|