@dodona/papyros 2.3.0-beta.4 → 2.3.0-beta.5

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.
@@ -1,3 +1,37 @@
1
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
2
+ var useValue = arguments.length > 2;
3
+ for (var i = 0; i < initializers.length; i++) {
4
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
5
+ }
6
+ return useValue ? value : void 0;
7
+ };
8
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
9
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
10
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
11
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
12
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
13
+ var _, done = false;
14
+ for (var i = decorators.length - 1; i >= 0; i--) {
15
+ var context = {};
16
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
17
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
18
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
19
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
20
+ if (kind === "accessor") {
21
+ if (result === void 0) continue;
22
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
23
+ if (_ = accept(result.get)) descriptor.get = _;
24
+ if (_ = accept(result.set)) descriptor.set = _;
25
+ if (_ = accept(result.init)) initializers.unshift(_);
26
+ }
27
+ else if (_ = accept(result)) {
28
+ if (kind === "field") initializers.unshift(_);
29
+ else descriptor[key] = _;
30
+ }
31
+ }
32
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
33
+ done = true;
34
+ };
1
35
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
36
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
37
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -56,287 +90,312 @@ class ButtonArray extends Array {
56
90
  }
57
91
  }
58
92
  }
93
+ /*
94
+ * class function decorator that adds a delay,
95
+ * so that the function is only called after the delay has passed
96
+ *
97
+ * If it is called again before the delay has passed, the previous call is cancelled
98
+ */
99
+ function delay(delay) {
100
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
101
+ return function (original, context) {
102
+ let timeout;
103
+ return function (...args) {
104
+ clearTimeout(timeout);
105
+ timeout = setTimeout(() => original.apply(this, args), delay);
106
+ };
107
+ };
108
+ }
59
109
  /**
60
110
  * Helper component to manage and visualize the current RunState
61
111
  */
62
- export class CodeRunner extends Renderable {
63
- /**
64
- * Construct a new RunStateManager with the given listeners
65
- * @param {ProgrammingLanguage} programmingLanguage The language to use
66
- * @param {InputMode} inputMode The input mode to use
67
- */
68
- constructor(programmingLanguage, inputMode) {
69
- super();
70
- // True while running or viewing with debugger
71
- this._debugMode = false;
72
- this.programmingLanguage = programmingLanguage;
73
- this.editor = new CodeEditor(() => {
74
- if (this.state === RunState.Ready) {
75
- this.runCode();
112
+ let CodeRunner = (() => {
113
+ var _a;
114
+ let _classSuper = Renderable;
115
+ let _instanceExtraInitializers = [];
116
+ let _renderButtons_decorators;
117
+ return _a = class CodeRunner extends _classSuper {
118
+ /**
119
+ * Construct a new RunStateManager with the given listeners
120
+ * @param {ProgrammingLanguage} programmingLanguage The language to use
121
+ * @param {InputMode} inputMode The input mode to use
122
+ */
123
+ constructor(programmingLanguage, inputMode) {
124
+ super();
125
+ /**
126
+ * The currently used programming language
127
+ */
128
+ this.programmingLanguage = (__runInitializers(this, _instanceExtraInitializers), void 0);
129
+ // True while running or viewing with debugger
130
+ this._debugMode = false;
131
+ this.programmingLanguage = programmingLanguage;
132
+ this.editor = new CodeEditor(() => {
133
+ if (this.state === RunState.Ready) {
134
+ this.runCode();
135
+ }
136
+ });
137
+ this.inputManager = new InputManager((input) => __awaiter(this, void 0, void 0, function* () {
138
+ const backend = yield this.backend;
139
+ backend.writeMessage(input);
140
+ this.setState(RunState.Running);
141
+ }), inputMode);
142
+ this.outputManager = new OutputManager();
143
+ this.backend = Promise.resolve({});
144
+ this.userButtons = new ButtonArray();
145
+ this.runButtons = new ButtonArray();
146
+ this.updateRunButtons([RunMode.Debug]);
147
+ this.editor.onChange({
148
+ onChange: (code) => __awaiter(this, void 0, void 0, function* () {
149
+ const backend = yield this.backend;
150
+ const modes = yield backend.workerProxy.runModes(code);
151
+ this.updateRunButtons(modes);
152
+ this.renderButtons();
153
+ }),
154
+ delay: DEFAULT_EDITOR_DELAY
155
+ });
156
+ BackendManager.subscribe(BackendEventType.Input, () => this.setState(RunState.AwaitingInput));
157
+ this.loadingPackages = [];
158
+ BackendManager.subscribe(BackendEventType.Loading, e => this.onLoad(e));
159
+ BackendManager.subscribe(BackendEventType.Start, e => this.onStart(e));
160
+ BackendManager.subscribe(BackendEventType.Stop, () => this.stop());
161
+ this.previousState = RunState.Ready;
162
+ this.runStartTime = new Date().getTime();
163
+ this.state = RunState.Ready;
164
+ this.traceViewer = new Debugger();
76
165
  }
77
- });
78
- this.inputManager = new InputManager((input) => __awaiter(this, void 0, void 0, function* () {
79
- const backend = yield this.backend;
80
- backend.writeMessage(input);
81
- this.setState(RunState.Running);
82
- }), inputMode);
83
- this.outputManager = new OutputManager();
84
- this.backend = Promise.resolve({});
85
- this.userButtons = new ButtonArray();
86
- this.runButtons = new ButtonArray();
87
- this.updateRunButtons([RunMode.Debug]);
88
- this.editor.onChange({
89
- onChange: (code) => __awaiter(this, void 0, void 0, function* () {
90
- const backend = yield this.backend;
91
- const modes = yield backend.workerProxy.runModes(code);
92
- this.updateRunButtons(modes);
166
+ set debugMode(debugMode) {
167
+ this._debugMode = debugMode;
93
168
  this.renderButtons();
94
- }),
95
- delay: DEFAULT_EDITOR_DELAY
96
- });
97
- BackendManager.subscribe(BackendEventType.Input, () => this.setState(RunState.AwaitingInput));
98
- this.loadingPackages = [];
99
- BackendManager.subscribe(BackendEventType.Loading, e => this.onLoad(e));
100
- BackendManager.subscribe(BackendEventType.Start, e => this.onStart(e));
101
- BackendManager.subscribe(BackendEventType.Stop, () => this.stop());
102
- this.previousState = RunState.Ready;
103
- this.runStartTime = new Date().getTime();
104
- this.state = RunState.Ready;
105
- this.traceViewer = new Debugger();
106
- }
107
- set debugMode(debugMode) {
108
- this._debugMode = debugMode;
109
- this.renderButtons();
110
- if (this.inputManager.getInputMode() === InputMode.Batch) {
111
- const handler = this.inputManager.inputHandler;
112
- handler.debugMode = debugMode;
113
- }
114
- this.outputManager.debugMode = debugMode;
115
- this.editor.debugMode = debugMode;
116
- if (!this._debugMode) {
117
- this.traceViewer.reset();
118
- this.outputManager.reset();
119
- this.inputManager.inputHandler.reset();
120
- }
121
- this.dispatchEvent(new CustomEvent("debug-mode", { detail: debugMode }));
122
- }
123
- get debugMode() {
124
- return this._debugMode;
125
- }
126
- /**
127
- * Stops the current run and resets the state of the program
128
- * Regular and debug output is cleared
129
- * @return {Promise<void>} Returns when the program has been reset
130
- */
131
- reset() {
132
- return __awaiter(this, void 0, void 0, function* () {
133
- if (![RunState.Ready, RunState.Loading].includes(this.state)) {
134
- yield this.stop();
169
+ if (this.inputManager.getInputMode() === InputMode.Batch) {
170
+ const handler = this.inputManager.inputHandler;
171
+ handler.debugMode = debugMode;
172
+ }
173
+ this.outputManager.debugMode = debugMode;
174
+ this.editor.debugMode = debugMode;
175
+ if (!this._debugMode) {
176
+ this.traceViewer.reset();
177
+ this.outputManager.reset();
178
+ this.inputManager.inputHandler.reset();
179
+ }
180
+ this.dispatchEvent(new CustomEvent("debug-mode", { detail: debugMode }));
135
181
  }
136
- this.debugMode = false;
137
- this.inputManager.inputHandler.reset();
138
- this.outputManager.reset();
139
- this.traceViewer.reset();
140
- });
141
- }
142
- updateRunButtons(modes) {
143
- this.runButtons = new ButtonArray();
144
- this.addRunButton(RunMode.Run, "btn-primary");
145
- modes.forEach(m => this.addRunButton(m));
146
- }
147
- addRunButton(mode, classNames = "btn-secondary") {
148
- const id = addPapyrosPrefix(mode) + "-code-btn";
149
- this.runButtons.add({
150
- id: id,
151
- buttonText: t(`Papyros.run_modes.${mode}`),
152
- classNames,
153
- icon: MODE_ICONS[mode]
154
- }, () => this.runCode(mode));
155
- }
156
- /**
157
- * Start the backend to enable running code
158
- */
159
- start() {
160
- return __awaiter(this, void 0, void 0, function* () {
161
- this.setState(RunState.Loading);
162
- const backend = BackendManager.getBackend(this.programmingLanguage);
163
- this.editor.setProgrammingLanguage(this.programmingLanguage);
164
- // Use a Promise to immediately enable running while downloading
165
- // eslint-disable-next-line no-async-promise-executor
166
- this.backend = new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
167
- const workerProxy = backend.workerProxy;
168
- yield workerProxy
169
- // Allow passing messages between worker and main thread
170
- .launch(proxy((e) => BackendManager.publish(e)), proxy(() => {
171
- this.outputManager.onOverflow(null);
172
- }));
173
- this.editor.setLintingSource((view) => __awaiter(this, void 0, void 0, function* () {
174
- const workerDiagnostics = yield workerProxy.lintCode(this.editor.getCode());
175
- return workerDiagnostics.map(d => {
176
- const fromline = view.state.doc.line(d.lineNr);
177
- const toLine = view.state.doc.line(d.endLineNr);
178
- const from = Math.min(fromline.from + d.columnNr, fromline.to);
179
- const to = Math.min(toLine.from + d.endColumnNr, toLine.to);
180
- return Object.assign(Object.assign({}, d), { from: from, to: to });
182
+ get debugMode() {
183
+ return this._debugMode;
184
+ }
185
+ /**
186
+ * Stops the current run and resets the state of the program
187
+ * Regular and debug output is cleared
188
+ * @return {Promise<void>} Returns when the program has been reset
189
+ */
190
+ reset() {
191
+ return __awaiter(this, void 0, void 0, function* () {
192
+ if (![RunState.Ready, RunState.Loading].includes(this.state)) {
193
+ yield this.stop();
194
+ }
195
+ this.debugMode = false;
196
+ this.inputManager.inputHandler.reset();
197
+ this.outputManager.reset();
198
+ this.traceViewer.reset();
199
+ });
200
+ }
201
+ updateRunButtons(modes) {
202
+ this.runButtons = new ButtonArray();
203
+ this.addRunButton(RunMode.Run, "btn-primary");
204
+ modes.forEach(m => this.addRunButton(m));
205
+ }
206
+ addRunButton(mode, classNames = "btn-secondary") {
207
+ const id = addPapyrosPrefix(mode) + "-code-btn";
208
+ this.runButtons.add({
209
+ id: id,
210
+ buttonText: t(`Papyros.run_modes.${mode}`),
211
+ classNames,
212
+ icon: MODE_ICONS[mode]
213
+ }, () => this.runCode(mode));
214
+ }
215
+ /**
216
+ * Start the backend to enable running code
217
+ */
218
+ start() {
219
+ return __awaiter(this, void 0, void 0, function* () {
220
+ this.setState(RunState.Loading);
221
+ const backend = BackendManager.getBackend(this.programmingLanguage);
222
+ this.editor.setProgrammingLanguage(this.programmingLanguage);
223
+ // Use a Promise to immediately enable running while downloading
224
+ // eslint-disable-next-line no-async-promise-executor
225
+ this.backend = new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
226
+ const workerProxy = backend.workerProxy;
227
+ yield workerProxy
228
+ // Allow passing messages between worker and main thread
229
+ .launch(proxy((e) => BackendManager.publish(e)), proxy(() => {
230
+ this.outputManager.onOverflow(null);
231
+ }));
232
+ this.editor.setLintingSource((view) => __awaiter(this, void 0, void 0, function* () {
233
+ const workerDiagnostics = yield workerProxy.lintCode(this.editor.getCode());
234
+ return workerDiagnostics.map(d => {
235
+ const fromline = view.state.doc.line(d.lineNr);
236
+ const toLine = view.state.doc.line(d.endLineNr);
237
+ const from = Math.min(fromline.from + d.columnNr, fromline.to);
238
+ const to = Math.min(toLine.from + d.endColumnNr, toLine.to);
239
+ return Object.assign(Object.assign({}, d), { from: from, to: to });
240
+ });
241
+ }));
242
+ return resolve(backend);
243
+ }));
244
+ this.editor.focus();
245
+ this.setState(RunState.Ready);
246
+ });
247
+ }
248
+ /**
249
+ * Interrupt the currently running code
250
+ * @return {Promise<void>} Returns when the code has been interrupted
251
+ */
252
+ stop() {
253
+ return __awaiter(this, void 0, void 0, function* () {
254
+ this.setState(RunState.Stopping);
255
+ BackendManager.publish({
256
+ type: BackendEventType.End,
257
+ data: "User cancelled run", contentType: "text/plain"
181
258
  });
182
- }));
183
- return resolve(backend);
184
- }));
185
- this.editor.focus();
186
- this.setState(RunState.Ready);
187
- });
188
- }
189
- /**
190
- * Interrupt the currently running code
191
- * @return {Promise<void>} Returns when the code has been interrupted
192
- */
193
- stop() {
194
- return __awaiter(this, void 0, void 0, function* () {
195
- this.setState(RunState.Stopping);
196
- BackendManager.publish({
197
- type: BackendEventType.End,
198
- data: "User cancelled run", contentType: "text/plain"
199
- });
200
- const backend = yield this.backend;
201
- yield backend.interrupt();
202
- while (this.state === RunState.Stopping) {
203
- yield new Promise(resolve => setTimeout(resolve, 100));
259
+ const backend = yield this.backend;
260
+ yield backend.interrupt();
261
+ while (this.state === RunState.Stopping) {
262
+ yield new Promise(resolve => setTimeout(resolve, 100));
263
+ }
264
+ });
204
265
  }
205
- });
206
- }
207
- /**
208
- * Set the used programming language to the given one to allow editing and running code
209
- * @param {ProgrammingLanguage} programmingLanguage The language to use
210
- */
211
- setProgrammingLanguage(programmingLanguage) {
212
- return __awaiter(this, void 0, void 0, function* () {
213
- if (this.programmingLanguage !== programmingLanguage) { // Expensive, so ensure it is needed
214
- yield this.backend.then(b => b.interrupt());
215
- this.programmingLanguage = programmingLanguage;
216
- yield this.start();
266
+ /**
267
+ * Set the used programming language to the given one to allow editing and running code
268
+ * @param {ProgrammingLanguage} programmingLanguage The language to use
269
+ */
270
+ setProgrammingLanguage(programmingLanguage) {
271
+ return __awaiter(this, void 0, void 0, function* () {
272
+ if (this.programmingLanguage !== programmingLanguage) { // Expensive, so ensure it is needed
273
+ yield this.backend.then(b => b.interrupt());
274
+ this.programmingLanguage = programmingLanguage;
275
+ yield this.start();
276
+ }
277
+ });
217
278
  }
218
- });
219
- }
220
- provideFiles(inlinedFiles, hrefFiles) {
221
- return __awaiter(this, void 0, void 0, function* () {
222
- const fileNames = [...Object.keys(inlinedFiles), ...Object.keys(hrefFiles)];
223
- if (fileNames.length === 0) {
224
- return;
279
+ provideFiles(inlinedFiles, hrefFiles) {
280
+ return __awaiter(this, void 0, void 0, function* () {
281
+ const fileNames = [...Object.keys(inlinedFiles), ...Object.keys(hrefFiles)];
282
+ if (fileNames.length === 0) {
283
+ return;
284
+ }
285
+ BackendManager.publish({ type: BackendEventType.Loading, data: JSON.stringify({
286
+ modules: fileNames,
287
+ status: "loading"
288
+ }) });
289
+ const backend = yield this.backend;
290
+ yield backend.workerProxy.provideFiles(inlinedFiles, hrefFiles);
291
+ });
225
292
  }
226
- BackendManager.publish({ type: BackendEventType.Loading, data: JSON.stringify({
227
- modules: fileNames,
228
- status: "loading"
229
- }) });
230
- const backend = yield this.backend;
231
- yield backend.workerProxy.provideFiles(inlinedFiles, hrefFiles);
232
- });
233
- }
234
- /**
235
- * @return {ProgrammingLanguage} The current programming language
236
- */
237
- getProgrammingLanguage() {
238
- return this.programmingLanguage;
239
- }
240
- /**
241
- * Show or hide the spinning circle, representing a running animation
242
- * @param {boolean} show Whether to show the spinner
243
- */
244
- showSpinner(show) {
245
- getElement(STATE_SPINNER_ID).style.display = show ? "" : "none";
246
- }
247
- /**
248
- * Show the current state of the program to the user
249
- * @param {RunState} state The current state of the run
250
- * @param {string} message Optional message to indicate the state
251
- */
252
- setState(state, message) {
253
- var _a;
254
- const stateElement = getElement(APPLICATION_STATE_TEXT_ID);
255
- stateElement.innerText = message || t(`Papyros.states.${state}`);
256
- (_a = stateElement.parentElement) === null || _a === void 0 ? void 0 : _a.classList.toggle("show", stateElement.innerText.length > 0);
257
- if (state !== this.state) {
258
- this.previousState = this.state;
259
- this.state = state;
260
- }
261
- this.showSpinner(this.state !== RunState.Ready);
262
- this.renderButtons();
263
- }
264
- /**
265
- * @return {RunState} The state of the current run
266
- */
267
- getState() {
268
- return this.state;
269
- }
270
- /**
271
- * Remove a button from the internal button list. Requires a re-render to update
272
- * @param {string} id Identifier of the button to remove
273
- */
274
- removeButton(id) {
275
- this.userButtons.remove(id);
276
- this.renderButtons(this.userButtons, CODE_BUTTONS_WRAPPER_ID);
277
- }
278
- /**
279
- * Add a button to display to the user
280
- * @param {ButtonOptions} options Options for rendering the button
281
- * @param {function} onClick Listener for click events on the button
282
- */
283
- addButton(options, onClick) {
284
- this.userButtons.add(options, onClick);
285
- this.renderButtons(this.userButtons, CODE_BUTTONS_WRAPPER_ID);
286
- }
287
- /**
288
- * Generate a button that the user can click to process code
289
- * Can either run the code or interrupt it if already running
290
- * @return {DynamicButton} A list of buttons to interact with the code according to the current state
291
- */
292
- getCodeActionButtons() {
293
- if (this.state === RunState.Ready) {
294
- if (this.debugMode) {
295
- return [{
296
- id: "stop-debug-btn",
297
- buttonHTML: renderButton({
298
- id: "stop-debug-btn",
299
- buttonText: t("Papyros.debug.stop"),
300
- classNames: "btn-secondary",
301
- icon: DEBUG_STOP_ICON
302
- }),
303
- onClick: () => this.debugMode = false
304
- }];
293
+ /**
294
+ * @return {ProgrammingLanguage} The current programming language
295
+ */
296
+ getProgrammingLanguage() {
297
+ return this.programmingLanguage;
305
298
  }
306
- else {
307
- return this.runButtons;
299
+ /**
300
+ * Show or hide the spinning circle, representing a running animation
301
+ * @param {boolean} show Whether to show the spinner
302
+ */
303
+ showSpinner(show) {
304
+ getElement(STATE_SPINNER_ID).style.display = show ? "" : "none";
308
305
  }
309
- }
310
- else {
311
- return [{
312
- id: STOP_BTN_ID,
313
- buttonHTML: renderButton({
314
- id: STOP_BTN_ID,
315
- buttonText: t("Papyros.stop"),
316
- classNames: "btn-danger",
317
- icon: "<i class=\"mdi mdi-stop\"></i>"
318
- }),
319
- onClick: () => this.stop()
320
- }];
321
- }
322
- }
323
- /**
324
- * Specific helper method to render only the buttons required by the user
325
- * @param {DynamicButton[]} buttons The buttons to render
326
- * @param {string} id The id of the element to render the buttons in
327
- */
328
- renderButtons(buttons = undefined, id = RUN_BUTTONS_WRAPPER_ID) {
329
- const btns = buttons || this.getCodeActionButtons();
330
- getElement(id).innerHTML =
331
- btns.map(b => b.buttonHTML).join("\n");
332
- // Buttons are freshly added to the DOM, so attach listeners now
333
- btns.forEach(b => addListener(b.id, b.onClick, "click"));
334
- }
335
- _render(options) {
336
- appendClasses(options.statusPanelOptions,
337
- // eslint-disable-next-line max-len
338
- "_tw-border-solid _tw-border-gray-200 _tw-border-b-2 dark:_tw-border-dark-mode-content");
339
- const rendered = renderWithOptions(options.statusPanelOptions, `
306
+ /**
307
+ * Show the current state of the program to the user
308
+ * @param {RunState} state The current state of the run
309
+ * @param {string} message Optional message to indicate the state
310
+ */
311
+ setState(state, message) {
312
+ var _b;
313
+ const stateElement = getElement(APPLICATION_STATE_TEXT_ID);
314
+ stateElement.innerText = message || t(`Papyros.states.${state}`);
315
+ (_b = stateElement.parentElement) === null || _b === void 0 ? void 0 : _b.classList.toggle("show", stateElement.innerText.length > 0);
316
+ if (state !== this.state) {
317
+ this.previousState = this.state;
318
+ this.state = state;
319
+ }
320
+ this.showSpinner(this.state !== RunState.Ready);
321
+ this.renderButtons();
322
+ }
323
+ /**
324
+ * @return {RunState} The state of the current run
325
+ */
326
+ getState() {
327
+ return this.state;
328
+ }
329
+ /**
330
+ * Remove a button from the internal button list. Requires a re-render to update
331
+ * @param {string} id Identifier of the button to remove
332
+ */
333
+ removeButton(id) {
334
+ this.userButtons.remove(id);
335
+ this.renderButtons(this.userButtons, CODE_BUTTONS_WRAPPER_ID);
336
+ }
337
+ /**
338
+ * Add a button to display to the user
339
+ * @param {ButtonOptions} options Options for rendering the button
340
+ * @param {function} onClick Listener for click events on the button
341
+ */
342
+ addButton(options, onClick) {
343
+ this.userButtons.add(options, onClick);
344
+ this.renderButtons(this.userButtons, CODE_BUTTONS_WRAPPER_ID);
345
+ }
346
+ /**
347
+ * Generate a button that the user can click to process code
348
+ * Can either run the code or interrupt it if already running
349
+ * @return {DynamicButton} A list of buttons to interact with the code according to the current state
350
+ */
351
+ getCodeActionButtons() {
352
+ if (this.state === RunState.Ready) {
353
+ if (this.debugMode) {
354
+ return [{
355
+ id: "stop-debug-btn",
356
+ buttonHTML: renderButton({
357
+ id: "stop-debug-btn",
358
+ buttonText: t("Papyros.debug.stop"),
359
+ classNames: "btn-secondary",
360
+ icon: DEBUG_STOP_ICON
361
+ }),
362
+ onClick: () => this.debugMode = false
363
+ }];
364
+ }
365
+ else {
366
+ return this.runButtons;
367
+ }
368
+ }
369
+ else {
370
+ return [{
371
+ id: STOP_BTN_ID,
372
+ buttonHTML: renderButton({
373
+ id: STOP_BTN_ID,
374
+ buttonText: t("Papyros.stop"),
375
+ classNames: "btn-danger",
376
+ icon: "<i class=\"mdi mdi-stop\"></i>"
377
+ }),
378
+ onClick: () => this.stop()
379
+ }];
380
+ }
381
+ }
382
+ /**
383
+ * Specific helper method to render only the buttons required by the user
384
+ * @param {DynamicButton[]} buttons The buttons to render
385
+ * @param {string} id The id of the element to render the buttons in
386
+ */
387
+ renderButtons(buttons = undefined, id = RUN_BUTTONS_WRAPPER_ID) {
388
+ const btns = buttons || this.getCodeActionButtons();
389
+ getElement(id).innerHTML =
390
+ btns.map(b => b.buttonHTML).join("\n");
391
+ // Buttons are freshly added to the DOM, so attach listeners now
392
+ btns.forEach(b => addListener(b.id, b.onClick, "click"));
393
+ }
394
+ _render(options) {
395
+ appendClasses(options.statusPanelOptions,
396
+ // eslint-disable-next-line max-len
397
+ "_tw-border-solid _tw-border-gray-200 _tw-border-b-2 dark:_tw-border-dark-mode-content");
398
+ const rendered = renderWithOptions(options.statusPanelOptions, `
340
399
  <div style="position: relative">
341
400
  <div class="papyros-state-card cm-panels">
342
401
  ${renderSpinningCircle(STATE_SPINNER_ID, "_tw-border-gray-200 _tw-border-b-red-500")}
@@ -349,123 +408,133 @@ export class CodeRunner extends Renderable {
349
408
  <div id="${CODE_BUTTONS_WRAPPER_ID}">
350
409
  </div>
351
410
  </div>`);
352
- this.setState(this.state);
353
- this.renderButtons(this.userButtons, CODE_BUTTONS_WRAPPER_ID);
354
- this.inputManager.render(options.inputOptions);
355
- this.outputManager.render(options.outputOptions);
356
- this.editor.render(options.codeEditorOptions);
357
- this.editor.setPanel(rendered);
358
- // Set language again to update the placeholder
359
- this.editor.setProgrammingLanguage(this.programmingLanguage);
360
- this.traceViewer.render(options.traceOptions);
361
- return rendered;
362
- }
363
- /**
364
- * Execute the code in the editor
365
- * @param {RunMode} mode The mode to run with
366
- * @return {Promise<void>} Promise of running the code
367
- */
368
- runCode(mode) {
369
- return __awaiter(this, void 0, void 0, function* () {
370
- this.debugMode = mode === RunMode.Debug;
371
- const code = this.editor.getCode();
372
- // Setup pre-run
373
- this.setState(RunState.Loading);
374
- // Ensure we go back to Loading after finishing any remaining installs
375
- this.previousState = RunState.Loading;
376
- BackendManager.publish({
377
- type: BackendEventType.Start,
378
- data: "StartClicked", contentType: "text/plain"
379
- });
380
- let interrupted = false;
381
- let terminated = false;
382
- const backend = yield this.backend;
383
- this.runStartTime = new Date().getTime();
384
- try {
385
- yield backend.call(backend.workerProxy.runCode, code, mode);
411
+ this.setState(this.state);
412
+ this.renderButtons(this.userButtons, CODE_BUTTONS_WRAPPER_ID);
413
+ this.inputManager.render(options.inputOptions);
414
+ this.outputManager.render(options.outputOptions);
415
+ this.editor.render(options.codeEditorOptions);
416
+ this.editor.setPanel(rendered);
417
+ // Set language again to update the placeholder
418
+ this.editor.setProgrammingLanguage(this.programmingLanguage);
419
+ this.traceViewer.render(options.traceOptions);
420
+ return rendered;
386
421
  }
387
- catch (error) {
388
- if (error.type === "InterruptError") {
389
- // Error signaling forceful interrupt
390
- interrupted = true;
391
- terminated = true;
392
- }
393
- else {
422
+ /**
423
+ * Execute the code in the editor
424
+ * @param {RunMode} mode The mode to run with
425
+ * @return {Promise<void>} Promise of running the code
426
+ */
427
+ runCode(mode) {
428
+ return __awaiter(this, void 0, void 0, function* () {
429
+ this.debugMode = mode === RunMode.Debug;
430
+ const code = this.editor.getCode();
431
+ // Setup pre-run
432
+ this.setState(RunState.Loading);
433
+ // Ensure we go back to Loading after finishing any remaining installs
434
+ this.previousState = RunState.Loading;
394
435
  BackendManager.publish({
395
- type: BackendEventType.Error,
396
- data: JSON.stringify(error),
397
- contentType: "text/json"
436
+ type: BackendEventType.Start,
437
+ data: "StartClicked", contentType: "text/plain"
398
438
  });
399
- BackendManager.publish({
400
- type: BackendEventType.End,
401
- data: "RunError", contentType: "text/plain"
439
+ let interrupted = false;
440
+ let terminated = false;
441
+ const backend = yield this.backend;
442
+ this.runStartTime = new Date().getTime();
443
+ try {
444
+ yield backend.call(backend.workerProxy.runCode, code, mode);
445
+ }
446
+ catch (error) {
447
+ if (error.type === "InterruptError") {
448
+ // Error signaling forceful interrupt
449
+ interrupted = true;
450
+ terminated = true;
451
+ }
452
+ else {
453
+ BackendManager.publish({
454
+ type: BackendEventType.Error,
455
+ data: JSON.stringify(error),
456
+ contentType: "text/json"
457
+ });
458
+ BackendManager.publish({
459
+ type: BackendEventType.End,
460
+ data: "RunError", contentType: "text/plain"
461
+ });
462
+ }
463
+ }
464
+ finally {
465
+ if (this.state === RunState.Stopping) {
466
+ // Was interrupted, End message already published
467
+ interrupted = true;
468
+ }
469
+ if (terminated) {
470
+ yield this.start();
471
+ }
472
+ else if (yield backend.workerProxy.hasOverflow()) {
473
+ this.outputManager.onOverflow(() => __awaiter(this, void 0, void 0, function* () {
474
+ const backend = yield this.backend;
475
+ const overflowResults = (yield backend.workerProxy.getOverflow())
476
+ .map(e => e.data).join("");
477
+ downloadResults(overflowResults, "overflow-results.txt");
478
+ }));
479
+ }
480
+ this.setState(RunState.Ready, t(interrupted ? "Papyros.interrupted" : "Papyros.finished", { time: (new Date().getTime() - this.runStartTime) / 1000 }));
481
+ }
482
+ });
483
+ }
484
+ /**
485
+ * Callback to handle loading events
486
+ * @param {BackendEvent} e The loading event
487
+ */
488
+ onLoad(e) {
489
+ const loadingData = parseData(e.data, e.contentType);
490
+ if (loadingData.status === "loading") {
491
+ loadingData.modules.forEach(m => {
492
+ if (!this.loadingPackages.includes(m)) {
493
+ this.loadingPackages.push(m);
494
+ }
402
495
  });
403
496
  }
404
- }
405
- finally {
406
- if (this.state === RunState.Stopping) {
407
- // Was interrupted, End message already published
408
- interrupted = true;
497
+ else if (loadingData.status === "loaded") {
498
+ loadingData.modules.forEach(m => {
499
+ const index = this.loadingPackages.indexOf(m);
500
+ if (index !== -1) {
501
+ this.loadingPackages.splice(index, 1);
502
+ }
503
+ });
409
504
  }
410
- if (terminated) {
411
- yield this.start();
505
+ else { // failed
506
+ // If it is a true module, an Exception will be raised when running
507
+ // So this does not need to be handled here, as it is often an incomplete package-name
508
+ // that causes micropip to not find the correct wheel
509
+ this.loadingPackages = [];
412
510
  }
413
- else if (yield backend.workerProxy.hasOverflow()) {
414
- this.outputManager.onOverflow(() => __awaiter(this, void 0, void 0, function* () {
415
- const backend = yield this.backend;
416
- const overflowResults = (yield backend.workerProxy.getOverflow())
417
- .map(e => e.data).join("");
418
- downloadResults(overflowResults, "overflow-results.txt");
419
- }));
511
+ if (this.loadingPackages.length > 0) {
512
+ const packageMessage = t("Papyros.loading", {
513
+ // limit amount of package names shown
514
+ packages: this.loadingPackages.slice(0, 3).join(", ")
515
+ });
516
+ this.setState(RunState.Loading, packageMessage);
420
517
  }
421
- this.setState(RunState.Ready, t(interrupted ? "Papyros.interrupted" : "Papyros.finished", { time: (new Date().getTime() - this.runStartTime) / 1000 }));
422
- }
423
- });
424
- }
425
- /**
426
- * Callback to handle loading events
427
- * @param {BackendEvent} e The loading event
428
- */
429
- onLoad(e) {
430
- const loadingData = parseData(e.data, e.contentType);
431
- if (loadingData.status === "loading") {
432
- loadingData.modules.forEach(m => {
433
- if (!this.loadingPackages.includes(m)) {
434
- this.loadingPackages.push(m);
518
+ else {
519
+ this.setState(this.previousState);
435
520
  }
436
- });
437
- }
438
- else if (loadingData.status === "loaded") {
439
- loadingData.modules.forEach(m => {
440
- const index = this.loadingPackages.indexOf(m);
441
- if (index !== -1) {
442
- this.loadingPackages.splice(index, 1);
521
+ }
522
+ onStart(e) {
523
+ const startData = parseData(e.data, e.contentType);
524
+ if (startData.includes("RunCode")) {
525
+ this.runStartTime = new Date().getTime();
526
+ this.setState(RunState.Running);
443
527
  }
444
- });
445
- }
446
- else { // failed
447
- // If it is a true module, an Exception will be raised when running
448
- // So this does not need to be handled here, as it is often an incomplete package-name
449
- // that causes micropip to not find the correct wheel
450
- this.loadingPackages = [];
451
- }
452
- if (this.loadingPackages.length > 0) {
453
- const packageMessage = t("Papyros.loading", {
454
- // limit amount of package names shown
455
- packages: this.loadingPackages.slice(0, 3).join(", ")
456
- });
457
- this.setState(RunState.Loading, packageMessage);
458
- }
459
- else {
460
- this.setState(this.previousState);
461
- }
462
- }
463
- onStart(e) {
464
- const startData = parseData(e.data, e.contentType);
465
- if (startData.includes("RunCode")) {
466
- this.runStartTime = new Date().getTime();
467
- this.setState(RunState.Running);
468
- }
469
- }
470
- }
528
+ }
529
+ },
530
+ (() => {
531
+ var _b;
532
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create((_b = _classSuper[Symbol.metadata]) !== null && _b !== void 0 ? _b : null) : void 0;
533
+ _renderButtons_decorators = [delay(100)];
534
+ __esDecorate(_a, null, _renderButtons_decorators, { kind: "method", name: "renderButtons", static: false, private: false, access: { has: obj => "renderButtons" in obj, get: obj => obj.renderButtons }, metadata: _metadata }, null, _instanceExtraInitializers);
535
+ if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
536
+ })(),
537
+ _a;
538
+ })();
539
+ export { CodeRunner };
471
540
  //# sourceMappingURL=CodeRunner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CodeRunner.js","sourceRoot":"","sources":["../src/CodeRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CodeRunner.js","sourceRoot":"","sources":["../src/CodeRunner.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dodona/papyros",
3
- "version": "2.3.0-beta.4",
3
+ "version": "2.3.0-beta.5",
4
4
  "private": false,
5
5
  "homepage": ".",
6
6
  "devDependencies": {
@@ -8,8 +8,8 @@
8
8
  "@types/i18n-js": "^3.8.9",
9
9
  "@types/jest": "^29.5.10",
10
10
  "@types/serviceworker": "^0.0.83",
11
- "@typescript-eslint/eslint-plugin": "^6.9.0",
12
- "@typescript-eslint/parser": "^6.9.0",
11
+ "@typescript-eslint/eslint-plugin": "^7.0.1",
12
+ "@typescript-eslint/parser": "^7.0.1",
13
13
  "autoprefixer": "^10.4.16",
14
14
  "css-loader": "^6.8.1",
15
15
  "eslint": "^8.52.0",
@@ -30,7 +30,7 @@
30
30
  "typescript": "^5.2.2",
31
31
  "webpack": "^5.89.0",
32
32
  "webpack-cli": "^5.1.4",
33
- "webpack-dev-server": "^4.15.1",
33
+ "webpack-dev-server": "^5.0.2",
34
34
  "worker-loader": "^3.0.8"
35
35
  },
36
36
  "dependencies": {
@@ -51,7 +51,7 @@
51
51
  "comsync": "^0.0.9",
52
52
  "escape-html": "^1.0.3",
53
53
  "file-loader": "^6.2.0",
54
- "i18n-js": "4.4.0",
54
+ "i18n-js": "4.4.3",
55
55
  "pyodide": "^0.22.0",
56
56
  "pyodide-worker-runner": "1.3.2",
57
57
  "sync-message": "^0.0.12"