@dodona/papyros 4.2.2 → 4.4.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.
@@ -1 +1 @@
1
- var e=((e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports))(((e,t)=>{(function(n,r){typeof e==`object`&&typeof t==`object`?t.exports=r():typeof define==`function`&&define.amd?define([],r):typeof e==`object`?e.syncMessage=r():n.syncMessage=r()})(self,(function(){return(()=>{var e={d:(t,n)=>{for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{typeof Symbol<`u`&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:`Module`}),Object.defineProperty(e,`__esModule`,{value:!0})}},t={};e.r(t),e.d(t,{isServiceWorkerRequest:()=>a,serviceWorkerFetchListener:()=>o,asyncSleep:()=>s,ServiceWorkerError:()=>c,writeMessageAtomics:()=>l,writeMessageServiceWorker:()=>u,writeMessage:()=>d,makeChannel:()=>f,makeAtomicsChannel:()=>p,makeServiceWorkerChannel:()=>m,readMessage:()=>g,syncSleep:()=>_,uuidv4:()=>v});var n=function(e,t,n,r){return new(n||=Promise)((function(i,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}c((r=r.apply(e,t||[])).next())}))};let r=`__SyncMessageServiceWorkerInput__`,i=`__sync-message-v2__`;function a(e){return typeof e!=`string`&&(e=e.request.url),e.includes(r)}function o(){let e={},t={};return r=>{let{url:o}=r.request;return!!a(o)&&(r.respondWith(function(){return n(this,void 0,void 0,(function*(){function n(e){return new Response(JSON.stringify({message:e,version:i}),{status:200})}if(o.endsWith(`/read`)){let{messageId:i,timeout:a}=yield r.request.json();if(i in e){let t=e[i];return delete e[i],n(t)}return yield new Promise((e=>{t[i]=e,setTimeout((function(){delete t[i],e(new Response(``,{status:408}))}),a)}))}if(o.endsWith(`/write`)){let{message:i,messageId:a}=yield r.request.json(),o=t[a];return o?(o(n(i)),delete t[a]):e[a]=i,n({early:!o})}if(o.endsWith(`/version`))return new Response(i,{status:200})}))}()),!0)}}function s(e){return new Promise((t=>setTimeout(t,e)))}class c extends Error{constructor(e,t){super(`Received status ${t} from ${e}. Ensure the service worker is registered and active.`),this.url=e,this.status=t,this.type=`ServiceWorkerError`,Object.setPrototypeOf(this,c.prototype)}}function l(e,t){let n=new TextEncoder().encode(JSON.stringify(t)),{data:r,meta:i}=e;if(n.length>r.length)throw Error(`Message is too big, increase bufferSize when making channel.`);r.set(n,0),Atomics.store(i,0,n.length),Atomics.store(i,1,1),Atomics.notify(i,1)}function u(e,t,r){return n(this,void 0,void 0,(function*(){yield navigator.serviceWorker.ready;let n=e.baseUrl+`/write`,a=Date.now();for(;;){let o=yield fetch(n,{method:`POST`,body:JSON.stringify({message:t,messageId:r})});if(o.status===200&&(yield o.json()).version===i)return;if(!(Date.now()-a<e.timeout))throw new c(n,o.status);yield s(100)}}))}function d(e,t,r){return n(this,void 0,void 0,(function*(){e.type===`atomics`?l(e,t):yield u(e,t,r)}))}function f(e={}){return typeof SharedArrayBuffer<`u`?p(e.atomics):`serviceWorker`in navigator?m(e.serviceWorker):null}function p({bufferSize:e}={}){return{type:`atomics`,data:new Uint8Array(new SharedArrayBuffer(e||131072)),meta:new Int32Array(new SharedArrayBuffer(2*Int32Array.BYTES_PER_ELEMENT))}}function m(e={}){return{type:`serviceWorker`,baseUrl:(e.scope||`/`)+r,timeout:e.timeout||5e3}}function h(e,t){return e>0?+e:t}function g(e,t,{checkInterrupt:n,checkTimeout:r,timeout:a}={}){let o=performance.now();r=h(r,n?100:5e3);let s=h(a,1/0),l;if(e.type===`atomics`){let{data:t,meta:n}=e;l=()=>{if(Atomics.wait(n,1,0,r)===`timed-out`)return null;{let e=Atomics.exchange(n,0,0),r=t.slice(0,e);Atomics.store(n,1,0);let i=new TextDecoder().decode(r);return JSON.parse(i)}}}else l=()=>{let n=new XMLHttpRequest,a=e.baseUrl+`/read`;n.open(`POST`,a,!1);let s={messageId:t,timeout:r};n.send(JSON.stringify(s));let{status:l}=n;if(l===408)return null;if(l===200){let e=JSON.parse(n.responseText);return e.version===i?e.message:null}if(performance.now()-o<e.timeout)return null;throw new c(a,l)};for(;;){let e=s-(performance.now()-o);if(e<=0)return null;r=Math.min(r,e);let t=l();if(t!==null)return t;if(n?.())return null}}function _(e,t){if(e=h(e,0))if(typeof SharedArrayBuffer<`u`){let t=new Int32Array(new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT));t[0]=0,Atomics.wait(t,0,0,e)}else g(t,`sleep ${e} ${v()}`,{timeout:e})}let v;return v=`randomUUID`in crypto?function(){return crypto.randomUUID()}:function(){return`10000000-1000-4000-8000-100000000000`.replace(/[018]/g,(e=>{let t=Number(e);return(t^crypto.getRandomValues(new Uint8Array(1))[0]&15>>t/4).toString(16)}))},t})()}))}))(),t=new class{constructor(t=``){this.hostName=t,this.syncMessageListener=(0,e.serviceWorkerFetchListener)()}async handleInputRequest(e){if(this.syncMessageListener(e))return!0;let t=e.request.url;return this.hostName&&t.includes(this.hostName)?(e.respondWith(fetch(e.request).then(e=>{let t=new Headers(e.headers);return t.set(`Cross-Origin-Embedder-Policy`,`require-corp`),t.set(`Cross-Origin-Opener-Policy`,`same-origin`),t.set(`Cross-Origin-Resource-Policy`,`cross-origin`),new Response(e.body,{status:e.status||200,statusText:e.statusText,headers:t})})),!0):!1}}(``);addEventListener(`fetch`,async function(e){await t.handleInputRequest(e)}),addEventListener(`install`,function(e){e.waitUntil(skipWaiting())}),addEventListener(`activate`,function(e){e.waitUntil(clients.claim())});
1
+ var e=((e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports))(((e,t)=>{(function(n,r){typeof e==`object`&&typeof t==`object`?t.exports=r():typeof define==`function`&&define.amd?define([],r):typeof e==`object`?e.syncMessage=r():n.syncMessage=r()})(self,(function(){return(()=>{var e={d:(t,n)=>{for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{typeof Symbol<`u`&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:`Module`}),Object.defineProperty(e,`__esModule`,{value:!0})}},t={};e.r(t),e.d(t,{isServiceWorkerRequest:()=>a,serviceWorkerFetchListener:()=>o,asyncSleep:()=>s,ServiceWorkerError:()=>c,writeMessageAtomics:()=>l,writeMessageServiceWorker:()=>u,writeMessage:()=>d,makeChannel:()=>f,makeAtomicsChannel:()=>p,makeServiceWorkerChannel:()=>m,readMessage:()=>g,syncSleep:()=>_,uuidv4:()=>v});var n=function(e,t,n,r){return new(n||=Promise)((function(i,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}c((r=r.apply(e,t||[])).next())}))};let r=`__SyncMessageServiceWorkerInput__`,i=`__sync-message-v2__`;function a(e){return typeof e!=`string`&&(e=e.request.url),e.includes(r)}function o(){let e={},t={};return r=>{let{url:o}=r.request;return!!a(o)&&(r.respondWith(function(){return n(this,void 0,void 0,(function*(){function n(e){return new Response(JSON.stringify({message:e,version:i}),{status:200})}if(o.endsWith(`/read`)){let{messageId:i,timeout:a}=yield r.request.json();if(i in e){let t=e[i];return delete e[i],n(t)}return yield new Promise((e=>{t[i]=e,setTimeout((function(){delete t[i],e(new Response(``,{status:408}))}),a)}))}if(o.endsWith(`/write`)){let{message:i,messageId:a}=yield r.request.json(),o=t[a];return o?(o(n(i)),delete t[a]):e[a]=i,n({early:!o})}if(o.endsWith(`/version`))return new Response(i,{status:200})}))}()),!0)}}function s(e){return new Promise((t=>setTimeout(t,e)))}class c extends Error{constructor(e,t){super(`Received status ${t} from ${e}. Ensure the service worker is registered and active.`),this.url=e,this.status=t,this.type=`ServiceWorkerError`,Object.setPrototypeOf(this,c.prototype)}}function l(e,t){let n=new TextEncoder().encode(JSON.stringify(t)),{data:r,meta:i}=e;if(n.length>r.length)throw Error(`Message is too big, increase bufferSize when making channel.`);r.set(n,0),Atomics.store(i,0,n.length),Atomics.store(i,1,1),Atomics.notify(i,1)}function u(e,t,r){return n(this,void 0,void 0,(function*(){yield navigator.serviceWorker.ready;let n=e.baseUrl+`/write`,a=Date.now();for(;;){let o=yield fetch(n,{method:`POST`,body:JSON.stringify({message:t,messageId:r})});if(o.status===200&&(yield o.json()).version===i)return;if(!(Date.now()-a<e.timeout))throw new c(n,o.status);yield s(100)}}))}function d(e,t,r){return n(this,void 0,void 0,(function*(){e.type===`atomics`?l(e,t):yield u(e,t,r)}))}function f(e={}){return typeof SharedArrayBuffer<`u`?p(e.atomics):`serviceWorker`in navigator?m(e.serviceWorker):null}function p({bufferSize:e}={}){return{type:`atomics`,data:new Uint8Array(new SharedArrayBuffer(e||131072)),meta:new Int32Array(new SharedArrayBuffer(2*Int32Array.BYTES_PER_ELEMENT))}}function m(e={}){return{type:`serviceWorker`,baseUrl:(e.scope||`/`)+r,timeout:e.timeout||5e3}}function h(e,t){return e>0?+e:t}function g(e,t,{checkInterrupt:n,checkTimeout:r,timeout:a}={}){let o=performance.now();r=h(r,n?100:5e3);let s=h(a,1/0),l;if(e.type===`atomics`){let{data:t,meta:n}=e;l=()=>{if(Atomics.wait(n,1,0,r)===`timed-out`)return null;{let e=Atomics.exchange(n,0,0),r=t.slice(0,e);Atomics.store(n,1,0);let i=new TextDecoder().decode(r);return JSON.parse(i)}}}else l=()=>{let n=new XMLHttpRequest,a=e.baseUrl+`/read`;n.open(`POST`,a,!1);let s={messageId:t,timeout:r};n.send(JSON.stringify(s));let{status:l}=n;if(l===408)return null;if(l===200){let e=JSON.parse(n.responseText);return e.version===i?e.message:null}if(performance.now()-o<e.timeout)return null;throw new c(a,l)};for(;;){let e=s-(performance.now()-o);if(e<=0)return null;r=Math.min(r,e);let t=l();if(t!==null)return t;if(n?.())return null}}function _(e,t){if(e=h(e,0))if(typeof SharedArrayBuffer<`u`){let t=new Int32Array(new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT));t[0]=0,Atomics.wait(t,0,0,e)}else g(t,`sleep ${e} ${v()}`,{timeout:e})}let v;return v=`randomUUID`in crypto?function(){return crypto.randomUUID()}:function(){return`10000000-1000-4000-8000-100000000000`.replace(/[018]/g,(e=>{let t=Number(e);return(t^crypto.getRandomValues(new Uint8Array(1))[0]&15>>t/4).toString(16)}))},t})()}))}))(),t=new class{constructor(t=``){this.hostName=t,this.syncMessageListener=(0,e.serviceWorkerFetchListener)()}async handleInputRequest(e){if(this.syncMessageListener(e))return!0;let t=e.request.url;return this.hostName&&t.includes(this.hostName)?(e.respondWith(fetch(e.request).then(e=>{let t=new Headers(e.headers);return t.set(`Cross-Origin-Embedder-Policy`,`require-corp`),t.set(`Cross-Origin-Opener-Policy`,`same-origin`),t.set(`Cross-Origin-Resource-Policy`,`cross-origin`),new Response(e.body,{status:e.status||200,statusText:e.statusText,headers:t})})),!0):!1}}(``);addEventListener(`fetch`,async function(e){await t.handleInputRequest(e)}),addEventListener(`install`,function(e){e.waitUntil(skipWaiting())}),addEventListener(`activate`,function(e){e.waitUntil(clients.claim())});
@@ -13,7 +13,8 @@ export declare enum BackendEventType {
13
13
  Frame = "frame",
14
14
  FrameChange = "frame-change",
15
15
  Stop = "stop",
16
- Files = "files"
16
+ Files = "files",
17
+ Turtle = "turtle"
17
18
  }
18
19
  /**
19
20
  * Interface for events used for communication between threads
@@ -15,5 +15,6 @@ export var BackendEventType;
15
15
  BackendEventType["FrameChange"] = "frame-change";
16
16
  BackendEventType["Stop"] = "stop";
17
17
  BackendEventType["Files"] = "files";
18
+ BackendEventType["Turtle"] = "turtle";
18
19
  })(BackendEventType || (BackendEventType = {}));
19
20
  //# sourceMappingURL=BackendEvent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BackendEvent.js","sourceRoot":"","sources":["../../src/communication/BackendEvent.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,gBAaX;AAbD,WAAY,gBAAgB;IACxB,mCAAe,CAAA;IACf,+BAAW,CAAA;IACX,mCAAe,CAAA;IACf,qCAAiB,CAAA;IACjB,mCAAe,CAAA;IACf,mCAAe,CAAA;IACf,2CAAuB,CAAA;IACvB,uCAAmB,CAAA;IACnB,mCAAe,CAAA;IACf,gDAA4B,CAAA;IAC5B,iCAAa,CAAA;IACb,mCAAe,CAAA;AACnB,CAAC,EAbW,gBAAgB,KAAhB,gBAAgB,QAa3B"}
1
+ {"version":3,"file":"BackendEvent.js","sourceRoot":"","sources":["../../src/communication/BackendEvent.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,gBAcX;AAdD,WAAY,gBAAgB;IACxB,mCAAe,CAAA;IACf,+BAAW,CAAA;IACX,mCAAe,CAAA;IACf,qCAAiB,CAAA;IACjB,mCAAe,CAAA;IACf,mCAAe,CAAA;IACf,2CAAuB,CAAA;IACvB,uCAAmB,CAAA;IACnB,mCAAe,CAAA;IACf,gDAA4B,CAAA;IAC5B,iCAAa,CAAA;IACb,mCAAe,CAAA;IACf,qCAAiB,CAAA;AACrB,CAAC,EAdW,gBAAgB,KAAhB,gBAAgB,QAc3B"}
@@ -16,5 +16,7 @@ export declare class CodeRunner extends PapyrosElement {
16
16
  private onDrop;
17
17
  private upsertFile;
18
18
  private readAndAddFile;
19
+ private filenameFromUrl;
20
+ private fetchAndAddUrl;
19
21
  protected render(): TemplateResult;
20
22
  }
@@ -4,23 +4,35 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
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
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
8
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
9
+ return new (P || (P = Promise))(function (resolve, reject) {
10
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
11
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
12
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
13
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
14
+ });
15
+ };
7
16
  import { customElement, state } from "lit/decorators.js";
8
17
  import { PapyrosElement } from "./PapyrosElement";
9
18
  import { css, html } from "lit";
10
19
  import { createRef, ref } from "lit/directives/ref.js";
11
20
  import { CODE_TAB } from "../state/InputOutput";
21
+ import { isValidFileName } from "../../util/Util";
12
22
  import "./code_runner/Code";
13
23
  import "./code_runner/RunState";
14
24
  import "./code_runner/ButtonLint";
15
25
  import "./EditorTabs";
16
26
  import "./FileViewer";
17
27
  const TEXT_MIME_PATTERNS = ["text/", "application/json", "application/xml", "application/javascript"];
18
- function isTextFile(file) {
19
- if (!file.type) {
28
+ function isTextMimeType(mime) {
29
+ if (!mime) {
20
30
  // No MIME type — assume text
21
31
  return true;
22
32
  }
23
- return TEXT_MIME_PATTERNS.some((prefix) => file.type.startsWith(prefix));
33
+ // Strip parameters like "; charset=utf-8" before matching
34
+ const base = mime.split(";")[0].trim().toLowerCase();
35
+ return TEXT_MIME_PATTERNS.some((prefix) => base.startsWith(prefix));
24
36
  }
25
37
  function arrayBufferToBase64(buffer) {
26
38
  const bytes = new Uint8Array(buffer);
@@ -52,15 +64,24 @@ let CodeRunner = class CodeRunner extends PapyrosElement {
52
64
  this.dragOver = false;
53
65
  };
54
66
  this.onDrop = (e) => {
55
- var _a;
56
67
  e.preventDefault();
57
68
  e.stopPropagation();
58
69
  this.dragOver = false;
59
- if (this.papyros.debugger.active || !((_a = e.dataTransfer) === null || _a === void 0 ? void 0 : _a.files.length))
70
+ if (this.papyros.debugger.active || !e.dataTransfer)
60
71
  return;
61
72
  for (const file of Array.from(e.dataTransfer.files)) {
62
73
  this.readAndAddFile(file);
63
74
  }
75
+ if (e.dataTransfer.types.includes("text/uri-list")) {
76
+ const uriList = e.dataTransfer.getData("text/uri-list");
77
+ const urls = uriList
78
+ .split(/\r?\n/)
79
+ .map((line) => line.trim())
80
+ .filter((line) => line && !line.startsWith("#"));
81
+ for (const url of urls) {
82
+ void this.fetchAndAddUrl(url);
83
+ }
84
+ }
64
85
  };
65
86
  }
66
87
  static get styles() {
@@ -136,7 +157,7 @@ let CodeRunner = class CodeRunner extends PapyrosElement {
136
157
  }
137
158
  readAndAddFile(file) {
138
159
  const reader = new FileReader();
139
- if (isTextFile(file)) {
160
+ if (isTextMimeType(file.type)) {
140
161
  reader.onload = () => {
141
162
  this.upsertFile(file.name, reader.result, false);
142
163
  };
@@ -149,6 +170,45 @@ let CodeRunner = class CodeRunner extends PapyrosElement {
149
170
  reader.readAsArrayBuffer(file);
150
171
  }
151
172
  }
173
+ filenameFromUrl(url) {
174
+ var _a;
175
+ const segments = url.pathname.split("/").filter((s) => s.length > 0);
176
+ let candidate = (_a = segments[segments.length - 1]) !== null && _a !== void 0 ? _a : "";
177
+ try {
178
+ candidate = decodeURIComponent(candidate);
179
+ }
180
+ catch (_b) {
181
+ // Leave as-is if decoding fails
182
+ }
183
+ if (isValidFileName(candidate))
184
+ return candidate;
185
+ if (isValidFileName(url.hostname))
186
+ return url.hostname;
187
+ return "download";
188
+ }
189
+ fetchAndAddUrl(rawUrl) {
190
+ return __awaiter(this, void 0, void 0, function* () {
191
+ try {
192
+ const url = new URL(rawUrl);
193
+ const response = yield fetch(url);
194
+ if (!response.ok) {
195
+ throw new Error(`HTTP ${response.status} ${response.statusText}`);
196
+ }
197
+ const name = this.filenameFromUrl(url);
198
+ const contentType = response.headers.get("Content-Type");
199
+ if (isTextMimeType(contentType)) {
200
+ this.upsertFile(name, yield response.text(), false);
201
+ }
202
+ else {
203
+ this.upsertFile(name, arrayBufferToBase64(yield response.arrayBuffer()), true);
204
+ }
205
+ }
206
+ catch (err) {
207
+ console.warn("Failed to fetch dropped URL:", rawUrl, err);
208
+ alert(this.t("Papyros.url_fetch_error", { url: rawUrl }));
209
+ }
210
+ });
211
+ }
152
212
  render() {
153
213
  const files = this.papyros.debugger.active ? this.papyros.debugger.debugFiles : this.papyros.io.files;
154
214
  const activeTab = this.papyros.io.activeEditorTab;
@@ -1 +1 @@
1
- {"version":3,"file":"CodeRunner.js","sourceRoot":"","sources":["../../../src/frontend/components/CodeRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CodeRunner.js","sourceRoot":"","sources":["../../../src/frontend/components/CodeRunner.ts"],"names":[],"mappings":"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"}
@@ -10,5 +10,7 @@ export declare class Output extends PapyrosElement {
10
10
  get showOverflowWarning(): boolean;
11
11
  get downloadOverflowUrl(): string;
12
12
  get renderedOutputs(): TemplateResult[];
13
+ private get showTurtleTab();
14
+ private renderTabs;
13
15
  protected render(): TemplateResult;
14
16
  }
@@ -6,8 +6,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { customElement } from "lit/decorators.js";
8
8
  import { css, html } from "lit";
9
- import { OutputType } from "../state/InputOutput";
9
+ import { OutputType, OUTPUT_TAB, TURTLE_TAB } from "../state/InputOutput";
10
10
  import { PapyrosElement } from "./PapyrosElement";
11
+ import { tabButtonStyles } from "./shared-styles";
11
12
  import "@material/web/icon/icon";
12
13
  let Output = class Output extends PapyrosElement {
13
14
  static get styles() {
@@ -15,8 +16,32 @@ let Output = class Output extends PapyrosElement {
15
16
  :host {
16
17
  width: 100%;
17
18
  height: 100%;
19
+ display: flex;
20
+ flex-direction: column;
21
+ }
22
+
23
+ .tabs {
24
+ display: flex;
25
+ flex-direction: row;
26
+ gap: 0.25rem;
27
+ padding-top: 0.25rem;
28
+ flex-shrink: 0;
29
+ position: relative;
30
+ z-index: 1;
31
+ }
32
+
33
+ .content {
34
+ flex: 1;
18
35
  overflow: auto;
19
- display: block;
36
+ container-type: size;
37
+ padding: 0.75rem;
38
+ background-color: var(--md-sys-color-surface-container-highest);
39
+ }
40
+
41
+ .content.turtle {
42
+ margin-top: -1px;
43
+ padding: 0;
44
+ background-color: transparent;
20
45
  }
21
46
 
22
47
  img {
@@ -26,6 +51,18 @@ let Output = class Output extends PapyrosElement {
26
51
  margin: 0.5rem 0;
27
52
  }
28
53
 
54
+ img.turtle,
55
+ .turtle-placeholder {
56
+ width: min(100cqw, 100cqh);
57
+ height: min(100cqw, 100cqh);
58
+ max-width: 100%;
59
+ max-height: 100%;
60
+ margin: 0;
61
+ box-sizing: border-box;
62
+ background-color: var(--md-sys-color-surface-container-highest);
63
+ border: 1px solid var(--md-sys-color-outline-variant);
64
+ }
65
+
29
66
  pre {
30
67
  font-family: monospace;
31
68
  margin: 0;
@@ -43,6 +80,8 @@ let Output = class Output extends PapyrosElement {
43
80
  md-icon {
44
81
  vertical-align: bottom;
45
82
  }
83
+
84
+ ${tabButtonStyles}
46
85
  `;
47
86
  }
48
87
  get maxOutputLength() {
@@ -62,7 +101,7 @@ let Output = class Output extends PapyrosElement {
62
101
  }
63
102
  get downloadOverflowUrl() {
64
103
  const blob = new Blob(this.overflow.map((o) => {
65
- if (o.type === OutputType.img) {
104
+ if (o.type === OutputType.img || o.type === OutputType.turtle) {
66
105
  return `[Image output of type ${o.contentType} omitted]\n`;
67
106
  }
68
107
  else if (o.type === OutputType.stdout) {
@@ -94,13 +133,28 @@ let Output = class Output extends PapyrosElement {
94
133
  return URL.createObjectURL(blob);
95
134
  }
96
135
  get renderedOutputs() {
97
- return this.outputs.map((o) => {
98
- var _a;
136
+ let outputsToRender;
137
+ if (this.papyros.io.activeOutputTab === TURTLE_TAB) {
138
+ // Latest snapshot within this.outputs (which is sliced by the debugger's current
139
+ // step via maxOutputLength) — so stepping the debugger shows the drawing build up.
140
+ const lastIdx = this.outputs.findLastIndex((o) => o.type === OutputType.turtle);
141
+ outputsToRender = lastIdx >= 0 ? [this.outputs[lastIdx]] : [];
142
+ }
143
+ else {
144
+ outputsToRender = this.outputs.filter((o) => o.type !== OutputType.turtle);
145
+ }
146
+ return outputsToRender.map((o) => {
147
+ var _a, _b, _c;
99
148
  if (o.type === OutputType.stdout) {
100
149
  return html `${o.content}`;
101
150
  }
102
151
  else if (o.type === OutputType.img) {
103
- return html `<img src="data:${o.contentType}, ${o.content}"></img>`;
152
+ const mimeType = (_a = o.contentType) !== null && _a !== void 0 ? _a : "image/png";
153
+ return html `<img src="data:${mimeType},${o.content}"></img>`;
154
+ }
155
+ else if (o.type === OutputType.turtle) {
156
+ const mimeType = (_b = o.contentType) !== null && _b !== void 0 ? _b : "image/svg+xml;base64";
157
+ return html `<img class="turtle" src="data:${mimeType},${o.content}"></img>`;
104
158
  }
105
159
  else if (o.type === OutputType.stderr) {
106
160
  if (typeof o.content === "string") {
@@ -115,7 +169,7 @@ let Output = class Output extends PapyrosElement {
115
169
  <md-icon title="${errorObject.traceback}">
116
170
  ${this.papyros.constants.icons.info}
117
171
  </md-icon> `,
118
- html `<span class="where">${(_a = errorObject.where) === null || _a === void 0 ? void 0 : _a.trim()}</span> `,
172
+ html `<span class="where">${(_c = errorObject.where) === null || _c === void 0 ? void 0 : _c.trim()}</span> `,
119
173
  ];
120
174
  if (errorObject.what) {
121
175
  errorHTML.push(html `<span class="what">${errorObject.what.trim()}</span> `);
@@ -131,22 +185,57 @@ let Output = class Output extends PapyrosElement {
131
185
  }
132
186
  });
133
187
  }
188
+ get showTurtleTab() {
189
+ return this.papyros.io.hasTurtleOutput || this.papyros.io.activeOutputTab === TURTLE_TAB;
190
+ }
191
+ renderTabs() {
192
+ const activeTab = this.papyros.io.activeOutputTab;
193
+ return html `
194
+ <div class="tabs">
195
+ <button
196
+ class=${activeTab === OUTPUT_TAB ? "active" : ""}
197
+ @click=${() => this.papyros.io.selectOutputTab(OUTPUT_TAB)}
198
+ >
199
+ ${this.t("Papyros.output_tab_output")}
200
+ </button>
201
+ ${this.showTurtleTab
202
+ ? html `
203
+ <button
204
+ class=${activeTab === TURTLE_TAB ? "active" : ""}
205
+ @click=${() => this.papyros.io.selectOutputTab(TURTLE_TAB)}
206
+ >
207
+ ${this.t("Papyros.output_tab_turtle")}
208
+ </button>
209
+ `
210
+ : html ``}
211
+ </div>
212
+ `;
213
+ }
134
214
  render() {
135
- if (this.outputs.length === 0) {
136
- return html `<pre class="place-holder">${this.t("Papyros.output_placeholder")}</pre>`;
137
- }
215
+ const activeTab = this.papyros.io.activeOutputTab;
216
+ const rendered = this.renderedOutputs;
217
+ const showPlaceholder = activeTab === OUTPUT_TAB && rendered.length === 0;
218
+ const showTurtlePlaceholder = activeTab === TURTLE_TAB && rendered.length === 0;
219
+ const showOverflow = activeTab === OUTPUT_TAB && this.showOverflowWarning;
138
220
  return html `
139
- <pre>${this.renderedOutputs}</pre>
140
- ${this.showOverflowWarning
221
+ ${this.renderTabs()}
222
+ <div class="content ${activeTab === TURTLE_TAB ? "turtle" : ""}">
223
+ ${showPlaceholder
224
+ ? html `<pre class="place-holder">${this.t("Papyros.output_placeholder")}</pre>`
225
+ : showTurtlePlaceholder
226
+ ? html `<div class="turtle-placeholder"></div>`
227
+ : html `<pre>${rendered}</pre>`}
228
+ ${showOverflow
141
229
  ? html `
142
- <p>
143
- ${this.t("Papyros.output_overflow")}
144
- <a href="${this.downloadOverflowUrl}" download="papyros_output.txt">
145
- ${this.t("Papyros.output_overflow_download")}
146
- </a>
147
- </p>
148
- `
230
+ <p>
231
+ ${this.t("Papyros.output_overflow")}
232
+ <a href="${this.downloadOverflowUrl}" download="papyros_output.txt">
233
+ ${this.t("Papyros.output_overflow_download")}
234
+ </a>
235
+ </p>
236
+ `
149
237
  : html ``}
238
+ </div>
150
239
  `;
151
240
  }
152
241
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Output.js","sourceRoot":"","sources":["../../../src/frontend/components/Output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Output.js","sourceRoot":"","sources":["../../../src/frontend/components/Output.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ export declare const PYTHON_EXAMPLES: {
7
7
  Erroneous: string;
8
8
  Unicode: string;
9
9
  Files: string;
10
+ Turtle: string;
10
11
  Matplotlib: string;
11
12
  Sleep: string;
12
13
  Overflow: string;
@@ -116,6 +116,14 @@ for _ in range(10):
116
116
  with open("names.txt", "r") as in_file:
117
117
  for line in in_file:
118
118
  print(line.rstrip())
119
+ `,
120
+ Turtle: `import turtle
121
+
122
+ colors = ['red', 'orange', 'yellow', 'green', 'blue', 'purple']
123
+ for i in range(360):
124
+ turtle.pencolor(colors[i % 6])
125
+ turtle.forward(i * 0.5)
126
+ turtle.left(59)
119
127
  `,
120
128
  Matplotlib: `import matplotlib.pyplot as plt
121
129
  import networkx as nx
@@ -1 +1 @@
1
- {"version":3,"file":"PythonExamples.js","sourceRoot":"","sources":["../../../../../src/frontend/components/app/examples/PythonExamples.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,eAAe,EAAE,wBAAwB;IACzC,KAAK,EAAE;yBACc;IACrB,SAAS,EAAE;;;yCAG0B;IACrC,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDb;IACG,KAAK,EAAE;;;;;;;;;;;;;;;CAeV;IACG,SAAS,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+Bd;IACG,OAAO,EAAE;;;;CAIZ;IACG,KAAK,EAAE;;;;;;;CAOV;IACG,UAAU,EAAE;;;;;;;;;;;;;;;;;;CAkBf;IACG,KAAK,EAAE;;;;;;;;CAQV;IACG,QAAQ,EAAE;;;;;;;;CAQb;IACG,SAAS,EAAE;;;;CAId;CACA,CAAC"}
1
+ {"version":3,"file":"PythonExamples.js","sourceRoot":"","sources":["../../../../../src/frontend/components/app/examples/PythonExamples.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,eAAe,EAAE,wBAAwB;IACzC,KAAK,EAAE;yBACc;IACrB,SAAS,EAAE;;;yCAG0B;IACrC,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDb;IACG,KAAK,EAAE;;;;;;;;;;;;;;;CAeV;IACG,SAAS,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+Bd;IACG,OAAO,EAAE;;;;CAIZ;IACG,KAAK,EAAE;;;;;;;CAOV;IACG,MAAM,EAAE;;;;;;;CAOX;IACG,UAAU,EAAE;;;;;;;;;;;;;;;;;;CAkBf;IACG,KAAK,EAAE;;;;;;;;CAQV;IACG,QAAQ,EAAE;;;;;;;;CAQb;IACG,SAAS,EAAE;;;;CAId;CACA,CAAC"}
@@ -32,7 +32,8 @@ export interface FriendlyError {
32
32
  export declare enum OutputType {
33
33
  stdout = "stdout",
34
34
  stderr = "stderr",
35
- img = "img"
35
+ img = "img",
36
+ turtle = "turtle"
36
37
  }
37
38
  export type OutputEntry = {
38
39
  type: OutputType;
@@ -49,13 +50,19 @@ export interface FileEntry {
49
50
  binary: boolean;
50
51
  }
51
52
  export declare const CODE_TAB = "code";
53
+ export declare const OUTPUT_TAB = "output";
54
+ export declare const TURTLE_TAB = "turtle";
55
+ export type OutputTab = typeof OUTPUT_TAB | typeof TURTLE_TAB;
52
56
  export declare function parseFileEntries(data: string, contentType?: string): FileEntry[];
53
57
  export declare class InputOutput extends State {
54
58
  private papyros;
55
59
  inputs: string[];
56
60
  output: OutputEntry[];
61
+ hasTurtleOutput: boolean;
57
62
  files: FileEntry[];
58
63
  activeEditorTab: string;
64
+ activeOutputTab: OutputTab;
65
+ outputTabManuallySet: boolean;
59
66
  prompt: string;
60
67
  awaitingInput: boolean;
61
68
  inputMode: InputMode;
@@ -66,6 +73,8 @@ export declare class InputOutput extends State {
66
73
  constructor(papyros: Papyros);
67
74
  logError(error: FriendlyError | string): void;
68
75
  logImage(imageData: string, contentType?: string): void;
76
+ logTurtle(imageData: string, contentType?: string): void;
77
+ selectOutputTab(tab: OutputTab): void;
69
78
  logOutput(output: string): void;
70
79
  provideInput(input: string): void;
71
80
  removeFile(name: string): void;
@@ -15,6 +15,7 @@ export var OutputType;
15
15
  OutputType["stdout"] = "stdout";
16
16
  OutputType["stderr"] = "stderr";
17
17
  OutputType["img"] = "img";
18
+ OutputType["turtle"] = "turtle";
18
19
  })(OutputType || (OutputType = {}));
19
20
  export var InputMode;
20
21
  (function (InputMode) {
@@ -22,6 +23,8 @@ export var InputMode;
22
23
  InputMode["interactive"] = "interactive";
23
24
  })(InputMode || (InputMode = {}));
24
25
  export const CODE_TAB = "code";
26
+ export const OUTPUT_TAB = "output";
27
+ export const TURTLE_TAB = "turtle";
25
28
  export function parseFileEntries(data, contentType) {
26
29
  const parsed = parseData(data, contentType);
27
30
  return Object.entries(parsed).map(([name, { content, binary }]) => ({ name, content, binary }));
@@ -50,8 +53,11 @@ export class InputOutput extends State {
50
53
  super();
51
54
  this.inputs = [];
52
55
  this.output = [];
56
+ this.hasTurtleOutput = false;
53
57
  this.files = [];
54
58
  this.activeEditorTab = CODE_TAB;
59
+ this.activeOutputTab = OUTPUT_TAB;
60
+ this.outputTabManuallySet = false;
55
61
  this.prompt = "";
56
62
  this.awaitingInput = false;
57
63
  this.inputMode = InputMode.interactive;
@@ -61,13 +67,17 @@ export class InputOutput extends State {
61
67
  BackendManager.subscribe(BackendEventType.Start, () => this.reset());
62
68
  BackendManager.subscribe(BackendEventType.Output, (e) => {
63
69
  const data = parseData(e.data, e.contentType);
64
- if (e.contentType && e.contentType.startsWith("img")) {
70
+ if (e.contentType && e.contentType.startsWith("image/")) {
65
71
  this.logImage(data, e.contentType);
66
72
  }
67
73
  else {
68
74
  this.logOutput(data);
69
75
  }
70
76
  });
77
+ BackendManager.subscribe(BackendEventType.Turtle, (e) => {
78
+ const data = parseData(e.data, e.contentType);
79
+ this.logTurtle(data, e.contentType);
80
+ });
71
81
  BackendManager.subscribe(BackendEventType.Error, (e) => {
72
82
  const data = parseData(e.data, e.contentType);
73
83
  this.logError(data);
@@ -82,6 +92,11 @@ export class InputOutput extends State {
82
92
  });
83
93
  BackendManager.subscribe(BackendEventType.End, () => {
84
94
  this.awaitingInput = false;
95
+ // If the finished run produced no turtle output, drop the (stale) Turtle tab
96
+ // selection so the tab bar hides. A manual selection is preserved.
97
+ if (this.activeOutputTab === TURTLE_TAB && !this.hasTurtleOutput && !this.outputTabManuallySet) {
98
+ this.activeOutputTab = OUTPUT_TAB;
99
+ }
85
100
  });
86
101
  BackendManager.subscribe(BackendEventType.Files, (e) => {
87
102
  this.files = parseFileEntries(e.data, e.contentType);
@@ -99,9 +114,21 @@ export class InputOutput extends State {
99
114
  }
100
115
  this.output = [...this.output, { type: OutputType.stderr, content: error }];
101
116
  }
102
- logImage(imageData, contentType = "img/png") {
117
+ logImage(imageData, contentType = "image/png") {
103
118
  this.output = [...this.output, { type: OutputType.img, content: imageData, contentType }];
104
119
  }
120
+ logTurtle(imageData, contentType = "image/svg+xml;base64") {
121
+ const isFirstSnapshot = !this.hasTurtleOutput;
122
+ this.output = [...this.output, { type: OutputType.turtle, content: imageData, contentType }];
123
+ this.hasTurtleOutput = true;
124
+ if (isFirstSnapshot && this.activeOutputTab === OUTPUT_TAB && !this.outputTabManuallySet) {
125
+ this.activeOutputTab = TURTLE_TAB;
126
+ }
127
+ }
128
+ selectOutputTab(tab) {
129
+ this.activeOutputTab = tab;
130
+ this.outputTabManuallySet = true;
131
+ }
105
132
  logOutput(output) {
106
133
  // lines have been merged to limit the number of events
107
134
  // we split them again here, to simplify overflow detection
@@ -164,9 +191,13 @@ export class InputOutput extends State {
164
191
  reset() {
165
192
  this.inputs = [];
166
193
  this.output = [];
194
+ this.hasTurtleOutput = false;
167
195
  this.prompt = "";
168
196
  this.awaitingInput = false;
169
197
  this.activeEditorTab = CODE_TAB;
198
+ // activeOutputTab is intentionally preserved across reruns: resetting it would make
199
+ // the tab bar flicker (Turtle → Output → Turtle) as a turtle rerun progresses. It is
200
+ // pruned back to OUTPUT_TAB on End when no turtle output was produced.
170
201
  }
171
202
  }
172
203
  __decorate([
@@ -175,12 +206,21 @@ __decorate([
175
206
  __decorate([
176
207
  stateProperty
177
208
  ], InputOutput.prototype, "output", void 0);
209
+ __decorate([
210
+ stateProperty
211
+ ], InputOutput.prototype, "hasTurtleOutput", void 0);
178
212
  __decorate([
179
213
  stateProperty
180
214
  ], InputOutput.prototype, "files", void 0);
181
215
  __decorate([
182
216
  stateProperty
183
217
  ], InputOutput.prototype, "activeEditorTab", void 0);
218
+ __decorate([
219
+ stateProperty
220
+ ], InputOutput.prototype, "activeOutputTab", void 0);
221
+ __decorate([
222
+ stateProperty
223
+ ], InputOutput.prototype, "outputTabManuallySet", void 0);
184
224
  __decorate([
185
225
  stateProperty
186
226
  ], InputOutput.prototype, "prompt", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"InputOutput.js","sourceRoot":"","sources":["../../../src/frontend/state/InputOutput.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InputOutput.js","sourceRoot":"","sources":["../../../src/frontend/state/InputOutput.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAgC1D,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IAClB,+BAAiB,CAAA;IACjB,+BAAiB,CAAA;IACjB,yBAAW,CAAA;IACX,+BAAiB,CAAA;AACrB,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB;AAQD,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACjB,4BAAe,CAAA;IACf,wCAA2B,CAAA;AAC/B,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;AAQD,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE/B,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC;AACnC,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC;AAGnC,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,WAAoB;IAC/D,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,WAAW,CAAyD,CAAC;IACpG,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AACpG,CAAC;AAED,MAAM,OAAO,WAAY,SAAQ,KAAK;IA0BlC,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,WAAW,CAAC,KAAa;QACzB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAClG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;YAChF,IAAI,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC;IACL,CAAC;IACD,IAAY,gBAAgB;QACxB,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5C,OAAO,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,YAAY,OAAgB;QACxB,KAAK,EAAE,CAAC;QA5CZ,WAAM,GAAa,EAAE,CAAC;QAEtB,WAAM,GAAkB,EAAE,CAAC;QAE3B,oBAAe,GAAY,KAAK,CAAC;QAEjC,UAAK,GAAgB,EAAE,CAAC;QAExB,oBAAe,GAAW,QAAQ,CAAC;QAEnC,oBAAe,GAAc,UAAU,CAAC;QAExC,yBAAoB,GAAY,KAAK,CAAC;QAEtC,WAAM,GAAW,EAAE,CAAC;QAEpB,kBAAa,GAAY,KAAK,CAAC;QAE/B,cAAS,GAAc,SAAS,CAAC,WAAW,CAAC;QAGrC,iBAAY,GAAW,EAAE,CAAC;QAwB9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,cAAc,CAAC,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACrE,cAAc,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;YACpD,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;YAC9C,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;QACL,CAAC,CAAC,CAAC;QACH,cAAc,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;YACpD,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;YAC9C,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QACH,cAAc,CAAC,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE;YACnD,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;YAC9C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,cAAc,CAAC,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE;YACnD,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,KAAK,EAAE,CAAC;gBAC5E,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBACzC,OAAO;YACX,CAAC;YAED,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,cAAc,CAAC,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE;YAChD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,6EAA6E;YAC7E,mEAAmE;YACnE,IAAI,IAAI,CAAC,eAAe,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC7F,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;YACtC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,cAAc,CAAC,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE;YACnD,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,QAAQ,CAAC,KAA6B;;QACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,QAAQ,CAAC,kCAAkC,CAAC,EAAE,CAAC;gBACrD,IAAI,CAAC,OAAO,CAAC,YAAY,CACrB,IAAI,uBAAuB,CAAC,oDAAoD,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CACtG,CAAC;YACN,CAAC;QACL,CAAC;aAAM,IAAI,MAAA,KAAK,CAAC,SAAS,0CAAE,QAAQ,CAAC,kCAAkC,CAAC,EAAE,CAAC;YACvE,IAAI,CAAC,OAAO,CAAC,YAAY,CACrB,IAAI,uBAAuB,CAAC,oDAAoD,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CACtG,CAAC;QACN,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAChF,CAAC;IAEM,QAAQ,CAAC,SAAiB,EAAE,cAAsB,WAAW;QAChE,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;IAC9F,CAAC;IAEM,SAAS,CAAC,SAAiB,EAAE,cAAsB,sBAAsB;QAC5E,MAAM,eAAe,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC;QAC9C,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;QAC7F,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,eAAe,IAAI,IAAI,CAAC,eAAe,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACvF,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;QACtC,CAAC;IACL,CAAC;IAEM,eAAe,CAAC,GAAc;QACjC,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;IACrC,CAAC;IAEM,SAAS,CAAC,MAAc;QAC3B,uDAAuD;QACvD,2DAA2D;QAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,GAAG;gBACV,GAAG,IAAI,CAAC,MAAM;gBACd,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;gBACxF,EAAE,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;aAChE,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACjF,CAAC;IACL,CAAC;IAEM,YAAY,CAAC,KAAa;QAC7B,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC/B,CAAC;IAEM,UAAU,CAAC,IAAY;QAC1B,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;YAChC,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC3D,CAAC;IAEM,OAAO,CAAC,IAAY,EAAE,UAAkB,EAAE,EAAE,SAAkB,KAAK;QACtE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACpE,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,iBAAiB,CAAC,IAAY,EAAE,OAAe,EAAE,MAAe;QACnE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,iCAAM,CAAC,KAAE,OAAO,EAAE,MAAM,IAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1F,CAAC;IAEM,UAAU,CAAC,OAAe,EAAE,OAAe;QAC9C,IACI,CAAC,eAAe,CAAC,OAAO,CAAC;YACzB,OAAO,KAAK,OAAO;YACnB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;YAC3C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,EAC5C,CAAC;YACC,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,iCAAM,CAAC,KAAE,IAAI,EAAE,OAAO,IAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvF,IAAI,IAAI,CAAC,eAAe,KAAK,OAAO,EAAE,CAAC;YACnC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;QACnC,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,UAAU,CAAC,IAAY,EAAE,OAAe,EAAE,MAAe;QAC5D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAClD,CAAC;IACL,CAAC;IAEM,WAAW;QACd,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACrB,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;QAChC,oFAAoF;QACpF,qFAAqF;QACrF,uEAAuE;IAC3E,CAAC;CACJ;AAtMG;IADC,aAAa;2CACQ;AAEtB;IADC,aAAa;2CACa;AAE3B;IADC,aAAa;oDACmB;AAEjC;IADC,aAAa;0CACU;AAExB;IADC,aAAa;oDACqB;AAEnC;IADC,aAAa;oDAC0B;AAExC;IADC,aAAa;yDACwB;AAEtC;IADC,aAAa;2CACM;AAEpB;IADC,aAAa;kDACiB;AAE/B;IADC,aAAa;8CAC+B;AAGrC;IADP,aAAa;iDACoB;AAElC;IADC,aAAa;8CAGb"}
@@ -43,6 +43,7 @@ export declare const ENGLISH_TRANSLATION: {
43
43
  no_output: string;
44
44
  service_worker_error: string;
45
45
  launch_error: string;
46
+ url_fetch_error: string;
46
47
  loading: string;
47
48
  run_modes: {
48
49
  doctest: string;
@@ -75,6 +76,8 @@ export declare const ENGLISH_TRANSLATION: {
75
76
  files_download: string;
76
77
  files_binary: string;
77
78
  files_empty: string;
79
+ output_tab_output: string;
80
+ output_tab_turtle: string;
78
81
  };
79
82
  CodeMirror: {
80
83
  "Go to line": string;
@@ -135,6 +138,7 @@ export declare const DUTCH_TRANSLATION: {
135
138
  no_output: string;
136
139
  service_worker_error: string;
137
140
  launch_error: string;
141
+ url_fetch_error: string;
138
142
  loading: string;
139
143
  run_modes: {
140
144
  doctest: string;
@@ -167,6 +171,8 @@ export declare const DUTCH_TRANSLATION: {
167
171
  files_download: string;
168
172
  files_binary: string;
169
173
  files_empty: string;
174
+ output_tab_output: string;
175
+ output_tab_turtle: string;
170
176
  };
171
177
  CodeMirror: {
172
178
  "Control character": string;
@@ -45,6 +45,7 @@ export const ENGLISH_TRANSLATION = {
45
45
  no_output: "The code did not produce any output.",
46
46
  service_worker_error: "The service worker failed to load.",
47
47
  launch_error: "Papyros failed to load. Do you want to reload?",
48
+ url_fetch_error: "Failed to fetch URL: %{url}",
48
49
  loading: "Loading %{packages}.",
49
50
  run_modes: {
50
51
  doctest: "Run doctests",
@@ -77,6 +78,8 @@ export const ENGLISH_TRANSLATION = {
77
78
  files_download: "Download",
78
79
  files_binary: "Binary file",
79
80
  files_empty: "Empty file",
81
+ output_tab_output: "Output",
82
+ output_tab_turtle: "Turtle",
80
83
  },
81
84
  CodeMirror: {
82
85
  // @codemirror/search
@@ -139,6 +142,7 @@ export const DUTCH_TRANSLATION = {
139
142
  no_output: "De code produceerde geen uitvoer.",
140
143
  service_worker_error: "Er liep iets fout bij het laden van de service worker.",
141
144
  launch_error: "Er liep iets fout bij het laden van Papyros. Wil je herladen?",
145
+ url_fetch_error: "Kon URL niet ophalen: %{url}",
142
146
  loading: "Bezig met het installeren van %{packages}.",
143
147
  run_modes: {
144
148
  doctest: "Doctests uitvoeren",
@@ -171,6 +175,8 @@ export const DUTCH_TRANSLATION = {
171
175
  files_download: "Downloaden",
172
176
  files_binary: "Binair bestand",
173
177
  files_empty: "Leeg bestand",
178
+ output_tab_output: "Uitvoer",
179
+ output_tab_turtle: "Turtle",
174
180
  },
175
181
  CodeMirror: {
176
182
  // @codemirror/view
@@ -1 +1 @@
1
- {"version":3,"file":"Translations.js","sourceRoot":"","sources":["../../../src/frontend/state/Translations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Translations.js","sourceRoot":"","sources":["../../../src/frontend/state/Translations.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,6EAA6E;AAE7E,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAC/B,OAAO,EAAE;QACL,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,MAAM;QACZ,gBAAgB,EAAE,2EAA2E;QAC7F,KAAK,EAAE,OAAO;QACd,iBAAiB,EAAE;YACf,WAAW,EAAE,uCAAuC;YACpD,KAAK,EACD,iDAAiD,GAAG,iDAAiD;SAC5G;QACD,cAAc,EAAE,2EAA2E;QAC3F,MAAM,EAAE,QAAQ;QAChB,kBAAkB,EAAE,2CAA2C;QAC/D,iBAAiB,EAAE,uCAAuC;QAC1D,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,4BAA4B;QACtC,WAAW,EAAE,kCAAkC;QAC/C,MAAM,EAAE;YACJ,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,SAAS;YAClB,cAAc,EAAE,gBAAgB;YAChC,KAAK,EAAE,EAAE;SACZ;QACD,oBAAoB,EAAE,sBAAsB;QAC5C,qBAAqB,EAAE;YACnB,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,YAAY;SAC3B;QACD,OAAO,EAAE;YACL,EAAE,EAAE,SAAS;YACb,EAAE,EAAE,YAAY;SACnB;QACD,oBAAoB,EAAE;YAClB,WAAW,EAAE,4BAA4B;YACzC,KAAK,EAAE,uBAAuB;SACjC;QACD,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,UAAU;QACpB,SAAS,EAAE,WAAW;QACtB,eAAe,EAAE,kDAAkD;QACnE,wBAAwB,EAAE,qCAAqC;QAC/D,SAAS,EAAE,sCAAsC;QACjD,oBAAoB,EAAE,oCAAoC;QAC1D,YAAY,EAAE,gDAAgD;QAC9D,eAAe,EAAE,6BAA6B;QAC9C,OAAO,EAAE,sBAAsB;QAC/B,SAAS,EAAE;YACP,OAAO,EAAE,cAAc;YACvB,KAAK,EAAE,OAAO;YACd,GAAG,EAAE,KAAK;SACb;QACD,UAAU,EAAE,2CAA2C;QACvD,sBAAsB,EAAE,iEAAiE;QACzF,QAAQ,EAAE;YACN,KAAK,EAAE,4CAA4C;YACnD,MAAM,EAAE,uHAAuH;YAC/H,MAAM,EAAE,gMAAgM;SAC3M;QACD,MAAM,EAAE;YACJ,SAAS,EAAE;gBACP,WAAW,EAAE,iDAAiD;gBAC9D,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,QAAQ;aACnB;SACJ;QACD,KAAK,EAAE;YACH,IAAI,EAAE,gBAAgB;SACzB;QACD,eAAe,EAAE,MAAM;QACvB,cAAc,EAAE,aAAa;QAC7B,kBAAkB,EAAE,4CAA4C;QAChE,eAAe,EAAE,aAAa;QAC9B,QAAQ,EAAE,UAAU;QACpB,oBAAoB,EAAE,gBAAgB;QACtC,cAAc,EAAE,UAAU;QAC1B,YAAY,EAAE,aAAa;QAC3B,WAAW,EAAE,YAAY;QACzB,iBAAiB,EAAE,QAAQ;QAC3B,iBAAiB,EAAE,QAAQ;KAC9B;IACD,UAAU,EAAE;QACR,qBAAqB;QACrB,YAAY,EAAE,YAAY;QAC1B,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,UAAU;QACpB,GAAG,EAAE,KAAK;QACV,YAAY,EAAE,YAAY;QAC1B,OAAO,EAAE,SAAS;QAClB,aAAa,EAAE,aAAa;QAC5B,KAAK,EAAE,SAAS;KACnB;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC7B,OAAO,EAAE;QACL,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,MAAM;QACZ,gBAAgB,EAAE,wFAAwF;QAC1G,KAAK,EAAE,QAAQ;QACf,iBAAiB,EAAE;YACf,WAAW,EAAE,iCAAiC;YAC9C,KAAK,EACD,4DAA4D;gBAC5D,+DAA+D;SACtE;QACD,cAAc,EAAE,4EAA4E;QAC5F,MAAM,EAAE,SAAS;QACjB,kBAAkB,EAAE,mCAAmC;QACvD,iBAAiB,EAAE,uCAAuC;QAC1D,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE;YACJ,OAAO,EAAE,mBAAmB;YAC5B,QAAQ,EAAE,iBAAiB;YAC3B,OAAO,EAAE,eAAe;YACxB,cAAc,EAAE,2BAA2B;YAC3C,KAAK,EAAE,EAAE;SACZ;QACD,QAAQ,EAAE,8BAA8B;QACxC,WAAW,EAAE,+BAA+B;QAC5C,oBAAoB,EAAE,iBAAiB;QACvC,qBAAqB,EAAE;YACnB,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,YAAY;SAC3B;QACD,OAAO,EAAE;YACL,EAAE,EAAE,SAAS;YACb,EAAE,EAAE,YAAY;SACnB;QACD,oBAAoB,EAAE;YAClB,WAAW,EAAE,mCAAmC;YAChD,KAAK,EAAE,uBAAuB;SACjC;QACD,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,aAAa;QACvB,SAAS,EAAE,eAAe;QAC1B,eAAe,EAAE,oEAAoE;QACrF,wBAAwB,EAAE,2CAA2C;QACrE,SAAS,EAAE,mCAAmC;QAC9C,oBAAoB,EAAE,wDAAwD;QAC9E,YAAY,EAAE,+DAA+D;QAC7E,eAAe,EAAE,8BAA8B;QAC/C,OAAO,EAAE,4CAA4C;QACrD,SAAS,EAAE;YACP,OAAO,EAAE,oBAAoB;YAC7B,KAAK,EAAE,UAAU;YACjB,GAAG,EAAE,WAAW;SACnB;QACD,UAAU,EAAE,yCAAyC;QACrD,sBAAsB,EAAE,uEAAuE;QAC/F,QAAQ,EAAE;YACN,KAAK,EAAE,+BAA+B;YACtC,MAAM,EAAE,iHAAiH;YACzH,MAAM,EAAE,+PAA+P;SAC1Q;QACD,MAAM,EAAE;YACJ,SAAS,EAAE;gBACP,WAAW,EAAE,kDAAkD;gBAC/D,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,WAAW;aACtB;SACJ;QACD,KAAK,EAAE;YACH,IAAI,EAAE,eAAe;SACxB;QACD,eAAe,EAAE,MAAM;QACvB,cAAc,EAAE,qBAAqB;QACrC,kBAAkB,EAAE,oDAAoD;QACxE,eAAe,EAAE,mBAAmB;QACpC,QAAQ,EAAE,mBAAmB;QAC7B,oBAAoB,EAAE,oBAAoB;QAC1C,cAAc,EAAE,YAAY;QAC5B,YAAY,EAAE,gBAAgB;QAC9B,WAAW,EAAE,cAAc;QAC3B,iBAAiB,EAAE,SAAS;QAC5B,iBAAiB,EAAE,QAAQ;KAC9B;IACD,UAAU,EAAE;QACR,mBAAmB;QACnB,mBAAmB,EAAE,kBAAkB;QACvC,mBAAmB;QACnB,cAAc,EAAE,mBAAmB;QACnC,gBAAgB,EAAE,oBAAoB;QACtC,EAAE,EAAE,KAAK;QACT,aAAa,EAAE,iBAAiB;QAChC,MAAM,EAAE,YAAY;QACpB,WAAW,EAAE,iBAAiB;QAC9B,aAAa,EAAE,kBAAkB;QACjC,qBAAqB;QACrB,YAAY,EAAE,mBAAmB;QACjC,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,QAAQ;QAClB,GAAG,EAAE,MAAM;QACX,YAAY,EAAE,qBAAqB;QACnC,OAAO,EAAE,WAAW;QACpB,aAAa,EAAE,iBAAiB;QAChC,KAAK,EAAE,SAAS;QAChB,eAAe,EAAE,sBAAsB;QACvC,SAAS,EAAE,UAAU;QACrB,mBAAmB;QACnB,WAAW,EAAE,WAAW;QACxB,gBAAgB,EAAE,gBAAgB;KACrC;CACJ,CAAC"}
@@ -2,7 +2,7 @@ export declare function isValidFileName(name: string): boolean;
2
2
  export declare function debounce<T extends (...args: any[]) => void>(fn: T, delay: number): T;
3
3
  /**
4
4
  * Parse the data contained within a PapyrosEvent using its contentType
5
- * Supported content types are: text/plain, text/json, img/png;base64
5
+ * Supported content types are: text/plain, text/json, image/png;base64
6
6
  * @param {string} data The data to parse
7
7
  * @param {string} contentType The content type of the data
8
8
  * @return {any} The parsed data
package/dist/util/Util.js CHANGED
@@ -16,7 +16,7 @@ export function debounce(fn, delay) {
16
16
  }
17
17
  /**
18
18
  * Parse the data contained within a PapyrosEvent using its contentType
19
- * Supported content types are: text/plain, text/json, img/png;base64
19
+ * Supported content types are: text/plain, text/json, image/png;base64
20
20
  * @param {string} data The data to parse
21
21
  * @param {string} contentType The content type of the data
22
22
  * @return {any} The parsed data
@@ -44,9 +44,10 @@ export function parseData(data, contentType) {
44
44
  }
45
45
  break;
46
46
  }
47
- case "img": {
47
+ case "image": {
48
48
  switch (specificType) {
49
- case "png;base64": {
49
+ case "png;base64":
50
+ case "svg+xml;base64": {
50
51
  return data;
51
52
  }
52
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Util.js","sourceRoot":"","sources":["../../src/util/Util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEhD,MAAM,UAAU,eAAe,CAAC,IAAY;IACxC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,QAAQ,CAAqC,EAAK,EAAE,KAAa;IAC7E,IAAI,KAAgD,CAAC;IACrD,OAAO,CAAC,CAAC,GAAG,IAAmB,EAAE,EAAE;QAC/B,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC,CAAM,CAAC;AACZ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,WAAoB;IACxD,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxD,QAAQ,QAAQ,EAAE,CAAC;QACf,KAAK,MAAM,CAAC,CAAC,CAAC;YACV,QAAQ,YAAY,EAAE,CAAC;gBACnB,KAAK,OAAO,CAAC,CAAC,CAAC;oBACX,OAAO,IAAI,CAAC;gBAChB,CAAC;gBACD,KAAK,MAAM,CAAC,CAAC,CAAC;oBACV,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;gBACD,KAAK,SAAS,CAAC,CAAC,CAAC;oBACb,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC1B,CAAC;gBACD,KAAK,OAAO,CAAC,CAAC,CAAC;oBACX,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;YACL,CAAC;YACD,MAAM;QACV,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACT,QAAQ,YAAY,EAAE,CAAC;gBACnB,KAAK,YAAY,CAAC,CAAC,CAAC;oBAChB,OAAO,IAAI,CAAC;gBAChB,CAAC;YACL,CAAC;YACD,MAAM;QACV,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACjB,uFAAuF;YACvF,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IACD,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,2BAA2B,WAAW,EAAE,CAAC,CAAC;IACxE,OAAO,IAAI,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"Util.js","sourceRoot":"","sources":["../../src/util/Util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEhD,MAAM,UAAU,eAAe,CAAC,IAAY;IACxC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,QAAQ,CAAqC,EAAK,EAAE,KAAa;IAC7E,IAAI,KAAgD,CAAC;IACrD,OAAO,CAAC,CAAC,GAAG,IAAmB,EAAE,EAAE;QAC/B,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC,CAAM,CAAC;AACZ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,WAAoB;IACxD,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxD,QAAQ,QAAQ,EAAE,CAAC;QACf,KAAK,MAAM,CAAC,CAAC,CAAC;YACV,QAAQ,YAAY,EAAE,CAAC;gBACnB,KAAK,OAAO,CAAC,CAAC,CAAC;oBACX,OAAO,IAAI,CAAC;gBAChB,CAAC;gBACD,KAAK,MAAM,CAAC,CAAC,CAAC;oBACV,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;gBACD,KAAK,SAAS,CAAC,CAAC,CAAC;oBACb,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC1B,CAAC;gBACD,KAAK,OAAO,CAAC,CAAC,CAAC;oBACX,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;YACL,CAAC;YACD,MAAM;QACV,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACX,QAAQ,YAAY,EAAE,CAAC;gBACnB,KAAK,YAAY,CAAC;gBAClB,KAAK,gBAAgB,CAAC,CAAC,CAAC;oBACpB,OAAO,IAAI,CAAC;gBAChB,CAAC;YACL,CAAC;YACD,MAAM;QACV,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACjB,uFAAuF;YACvF,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IACD,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,2BAA2B,WAAW,EAAE,CAAC,CAAC;IACxE,OAAO,IAAI,CAAC;AAChB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dodona/papyros",
3
- "version": "4.2.2",
3
+ "version": "4.4.1",
4
4
  "private": false,
5
5
  "homepage": ".",
6
6
  "dependencies": {
@@ -31,7 +31,7 @@
31
31
  "@types/i18n-js": "^4.0.1",
32
32
  "@types/node": "^25.0.3",
33
33
  "@types/node-polyglot": "^2.5.0",
34
- "@types/serviceworker": "^0.0.194",
34
+ "@types/serviceworker": "^0.0.196",
35
35
  "@vitest/browser": "^4.0.6",
36
36
  "@vitest/browser-playwright": "^4.0.6",
37
37
  "eslint": "^10.0.2",
@@ -42,7 +42,7 @@
42
42
  "globals": "^17.3.0",
43
43
  "playwright": "^1.55.1",
44
44
  "prettier": "^3.6.2",
45
- "typescript": "^5.2.2",
45
+ "typescript": "^6.0.3",
46
46
  "typescript-eslint": "^8.21.0",
47
47
  "vite": "^8.0.3",
48
48
  "vitest": "^4.0.6"