solid-panes 3.5.24-8a906923 → 3.5.24-8cc643d9

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.
@@ -97,22 +97,22 @@ var humanReadablePane = {
97
97
 
98
98
  if (ct === 'text/markdown') {
99
99
  markdownHtml();
100
- } else {
100
+ } else if (ct !== 'text/html') {
101
101
  // get with authenticated fetch
102
- console.log("humanReadablePane: ".concat(ct));
103
-
104
102
  kb.fetcher._fetch(subject.uri).then(function (response) {
105
- return response.arrayBuffer();
106
- }).then(function (resp) {
107
- var myBlob = new Blob([resp], {
108
- type: ct
109
- });
110
- var objectURL = URL.createObjectURL(myBlob);
103
+ return response.blob();
104
+ }).then(function (blob) {
105
+ var objectURL = URL.createObjectURL(blob);
111
106
  frame.setAttribute('src', objectURL); // w640 h480 //
112
107
 
113
108
  frame.setAttribute('class', 'doc');
114
109
  frame.setAttribute('style', "border: 1px solid; padding: 1em; height:120em; width:80em; resize: both; overflow: auto;");
115
110
  });
111
+ } else {
112
+ frame.setAttribute('src', subject.uri); // allow-same-origin
113
+
114
+ frame.setAttribute('class', 'doc');
115
+ frame.setAttribute('style', 'resize = both; height:120em; width:80em;');
116
116
  } // @@ Note below - if we set ANY sandbox, then Chrome and Safari won't display it if it is PDF.
117
117
  // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe
118
118
  // You can't have any sandbox and allow plugins.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/humanReadablePane.js"],"names":["humanReadablePane","icon","icons","originalIconBase","name","label","subject","context","kb","session","store","allowed","hasContentTypeIn","x","displayables","cts","fetcher","getHeader","j","length","k","indexOf","hasContentTypeIn2","t","findTypeURIs","Util","mediaTypeClass","uri","ns","link","render","myDocument","dom","div","createElement","doc","ct","console","log","setAttribute","element","frame","markdownHtml","webOperation","then","response","markdownText","responseText","lines","Math","min","split","res","marked","parse","innerHTML","_fetch","arrayBuffer","resp","myBlob","Blob","type","objectURL","URL","createObjectURL","tr","appendChild"],"mappings":";;;;;;;AAKA;;AACA;;AACA;;AAPA;AACA;AACA;AACA;AACA;AAKA,IAAMA,iBAAiB,GAAG;AACxBC,EAAAA,IAAI,EAAEC,eAAMC,gBAAN,GAAyB,6BADP;AAGxBC,EAAAA,IAAI,EAAE,eAHkB;AAKxBC,EAAAA,KAAK,EAAE,eAAUC,OAAV,EAAmBC,OAAnB,EAA4B;AACjC,QAAMC,EAAE,GAAGD,OAAO,CAACE,OAAR,CAAgBC,KAA3B,CADiC,CAGjC;;AAEA,QAAMC,OAAO,GAAG,CACd,YADc,EAEd,WAFc,EAGd,eAHc,EAId,uBAJc,EAKd,WALc,EAMd,YANc,EAOd,iBAPc,EAQd,WARc,CAAhB;;AAWA,QAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAUJ,EAAV,EAAcK,CAAd,EAAiBC,YAAjB,EAA+B;AACtD,UAAMC,GAAG,GAAGP,EAAE,CAACQ,OAAH,CAAWC,SAAX,CAAqBJ,CAArB,EAAwB,cAAxB,CAAZ;;AACA,UAAIE,GAAJ,EAAS;AACP,aAAK,IAAIG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,GAAG,CAACI,MAAxB,EAAgCD,CAAC,EAAjC,EAAqC;AACnC,eAAK,IAAIE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGN,YAAY,CAACK,MAAjC,EAAyCC,CAAC,EAA1C,EAA8C;AAC5C,gBAAIL,GAAG,CAACG,CAAD,CAAH,CAAOG,OAAP,CAAeP,YAAY,CAACM,CAAD,CAA3B,KAAmC,CAAvC,EAA0C;AACxC,qBAAO,IAAP;AACD;AACF;AACF;AACF;;AACD,aAAO,KAAP;AACD,KAZD,CAhBiC,CA8BjC;;;AACA,QAAME,iBAAiB,GAAG,SAApBA,iBAAoB,CAAUd,EAAV,EAAcK,CAAd,EAAiBC,YAAjB,EAA+B;AACvD,UAAMS,CAAC,GAAGf,EAAE,CAACgB,YAAH,CAAgBlB,OAAhB,CAAV;;AACA,WAAK,IAAIc,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGN,YAAY,CAACK,MAAjC,EAAyCC,CAAC,EAA1C,EAA8C;AAC5C,YAAIK,aAAKC,cAAL,CAAoBZ,YAAY,CAACM,CAAD,CAAhC,EAAqCO,GAArC,IAA4CJ,CAAhD,EAAmD;AACjD,iBAAO,IAAP;AACD;AACF;;AACD,aAAO,KAAP;AACD,KARD;;AAUA,QAAI,CAACjB,OAAO,CAACqB,GAAb,EAAkB,OAAO,IAAP,CAzCe,CAyCH;;AAE9B,QAAMJ,CAAC,GAAGf,EAAE,CAACgB,YAAH,CAAgBlB,OAAhB,CAAV;AACA,QAAIiB,CAAC,CAACK,YAAGC,IAAH,CAAQ,SAAR,EAAmBF,GAApB,CAAL,EAA+B,OAAO,MAAP;;AAE/B,QACEf,gBAAgB,CAACJ,EAAD,EAAKF,OAAL,EAAcK,OAAd,CAAhB,IACAW,iBAAiB,CAACd,EAAD,EAAKF,OAAL,EAAcK,OAAd,CAFnB,EAGE;AACA,aAAO,MAAP;AACD;;AAED,WAAO,IAAP;AACD,GA3DuB;AA6DxBmB,EAAAA,MAAM,EAAE,gBAAUxB,OAAV,EAAmBC,OAAnB,EAA4B;AAClC,QAAMwB,UAAU,GAAGxB,OAAO,CAACyB,GAA3B;AACA,QAAMC,GAAG,GAAGF,UAAU,CAACG,aAAX,CAAyB,KAAzB,CAAZ;AACA,QAAM1B,EAAE,GAAGD,OAAO,CAACE,OAAR,CAAgBC,KAA3B;AAEA,QAAMK,GAAG,GAAGP,EAAE,CAACQ,OAAH,CAAWC,SAAX,CAAqBX,OAAO,CAAC6B,GAAR,EAArB,EAAoC,cAApC,CAAZ;AACA,QAAMC,EAAE,GAAGrB,GAAG,GAAGA,GAAG,CAAC,CAAD,CAAN,GAAY,IAA1B;;AACA,QAAIqB,EAAJ,EAAQ;AACNC,MAAAA,OAAO,CAACC,GAAR,CAAY,4BAA4BF,EAAxC;AACD,KAFD,MAEO;AACLC,MAAAA,OAAO,CAACC,GAAR,CAAY,0CAAZ;AACD,KAXiC,CAalC;;;AACAL,IAAAA,GAAG,CAACM,YAAJ,CAAiB,OAAjB,EAA0B,SAA1B;AACA,QAAMC,OAAO,GAAGJ,EAAE,KAAK,eAAP,GAAyB,KAAzB,GAAiC,QAAjD;AACA,QAAMK,KAAK,GAAGV,UAAU,CAACG,aAAX,CAAyBM,OAAzB,CAAd,CAhBkC,CAkBlC;;AACA,QAAME,YAAY,GAAG,SAAfA,YAAe,GAAY;AAC/BlC,MAAAA,EAAE,CAACQ,OAAH,CAAW2B,YAAX,CAAwB,KAAxB,EAA+BrC,OAAO,CAACqB,GAAvC,EAA4CiB,IAA5C,CAAiD,UAAAC,QAAQ,EAAI;AAC3D,YAAMC,YAAY,GAAGD,QAAQ,CAACE,YAA9B;AACA,YAAMC,KAAK,GAAGC,IAAI,CAACC,GAAL,CAAS,EAAT,EAAaJ,YAAY,CAACK,KAAb,CAAmB,IAAnB,EAAyBhC,MAAzB,GAAkC,CAA/C,CAAd;;AACA,YAAMiC,GAAG,GAAGC,eAAOC,KAAP,CAAaR,YAAb,CAAZ;;AACAL,QAAAA,KAAK,CAACc,SAAN,GAAkBH,GAAlB;AACAX,QAAAA,KAAK,CAACF,YAAN,CAAmB,OAAnB,EAA4B,KAA5B;AACAE,QAAAA,KAAK,CAACF,YAAN,CAAmB,OAAnB,qDAAwES,KAAxE;AACD,OAPD;AAQD,KATD;;AAWA,QAAIZ,EAAE,KAAK,eAAX,EAA4B;AAC1BM,MAAAA,YAAY;AACb,KAFD,MAEO;AACL;AACAL,MAAAA,OAAO,CAACC,GAAR,8BAAkCF,EAAlC;;AACA5B,MAAAA,EAAE,CAACQ,OAAH,CAAWwC,MAAX,CAAkBlD,OAAO,CAACqB,GAA1B,EACGiB,IADH,CACQ,UAASC,QAAT,EAAmB;AACvB,eAAOA,QAAQ,CAACY,WAAT,EAAP;AACD,OAHH,EAIGb,IAJH,CAIQ,UAASc,IAAT,EAAe;AACnB,YAAMC,MAAM,GAAG,IAAIC,IAAJ,CAAS,CAACF,IAAD,CAAT,EAAiB;AAACG,UAAAA,IAAI,EAAEzB;AAAP,SAAjB,CAAf;AACA,YAAM0B,SAAS,GAAGC,GAAG,CAACC,eAAJ,CAAoBL,MAApB,CAAlB;AACAlB,QAAAA,KAAK,CAACF,YAAN,CAAmB,KAAnB,EAA0BuB,SAA1B,EAHmB,CAGkB;;AACrCrB,QAAAA,KAAK,CAACF,YAAN,CAAmB,OAAnB,EAA4B,KAA5B;AACAE,QAAAA,KAAK,CAACF,YAAN,CAAmB,OAAnB;AACD,OAVH;AAWD,KA9CiC,CA+ClC;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;;;AACA,QAAM0B,EAAE,GAAGlC,UAAU,CAACG,aAAX,CAAyB,IAAzB,CAAX;AACA+B,IAAAA,EAAE,CAACC,WAAH,CAAezB,KAAf;AACAR,IAAAA,GAAG,CAACiC,WAAJ,CAAgBD,EAAhB;AACA,WAAOhC,GAAP;AACD;AA1HuB,CAA1B;eA6HejC,iB,EACf","sourcesContent":["/* Human-readable Pane\n **\n ** This outline pane contains the document contents for an HTML document\n ** This is for peeking at a page, because the user might not want to leave the data browser.\n */\nimport { icons, ns } from 'solid-ui'\nimport { Util } from 'rdflib'\nimport { marked } from 'marked'\n\nconst humanReadablePane = {\n icon: icons.originalIconBase + 'tango/22-text-x-generic.png',\n\n name: 'humanReadable',\n\n label: function (subject, context) {\n const kb = context.session.store\n\n // See also the source pane, which has lower precedence.\n\n const allowed = [\n 'text/plain',\n 'text/html',\n 'text/markdown',\n 'application/xhtml+xml',\n 'image/png',\n 'image/jpeg',\n 'application/pdf',\n 'video/mp4'\n ]\n\n const hasContentTypeIn = function (kb, x, displayables) {\n const cts = kb.fetcher.getHeader(x, 'content-type')\n if (cts) {\n for (let j = 0; j < cts.length; j++) {\n for (let k = 0; k < displayables.length; k++) {\n if (cts[j].indexOf(displayables[k]) >= 0) {\n return true\n }\n }\n }\n }\n return false\n }\n\n // This data could come from a fetch OR from ldp container\n const hasContentTypeIn2 = function (kb, x, displayables) {\n const t = kb.findTypeURIs(subject)\n for (let k = 0; k < displayables.length; k++) {\n if (Util.mediaTypeClass(displayables[k]).uri in t) {\n return true\n }\n }\n return false\n }\n\n if (!subject.uri) return null // no bnodes\n\n const t = kb.findTypeURIs(subject)\n if (t[ns.link('WebPage').uri]) return 'view'\n\n if (\n hasContentTypeIn(kb, subject, allowed) ||\n hasContentTypeIn2(kb, subject, allowed)\n ) {\n return 'View'\n }\n\n return null\n },\n\n render: function (subject, context) {\n const myDocument = context.dom\n const div = myDocument.createElement('div')\n const kb = context.session.store\n\n const cts = kb.fetcher.getHeader(subject.doc(), 'content-type')\n const ct = cts ? cts[0] : null\n if (ct) {\n console.log('humanReadablePane: c-t:' + ct)\n } else {\n console.log('humanReadablePane: unknown content-type?')\n }\n\n // @@ When we can, use CSP to turn off scripts within the iframe\n div.setAttribute('class', 'docView')\n const element = ct === 'text/markdown' ? 'DIV' : 'IFRAME'\n const frame = myDocument.createElement(element)\n\n // render markdown to html\n const markdownHtml = function () {\n kb.fetcher.webOperation('GET', subject.uri).then(response => {\n const markdownText = response.responseText\n const lines = Math.min(30, markdownText.split(/\\n/).length + 5)\n const res = marked.parse(markdownText)\n frame.innerHTML = res\n frame.setAttribute('class', 'doc')\n frame.setAttribute('style', `border: 1px solid; padding: 1em; height: ${lines}em; width: 800px; resize: both; overflow: auto;`)\n })\n }\n\n if (ct === 'text/markdown') {\n markdownHtml()\n } else {\n // get with authenticated fetch\n console.log(`humanReadablePane: ${ct}`)\n kb.fetcher._fetch(subject.uri)\n .then(function(response) {\n return response.arrayBuffer()\n })\n .then(function(resp) {\n const myBlob = new Blob([resp], {type: ct})\n const objectURL = URL.createObjectURL(myBlob)\n frame.setAttribute('src', objectURL) // w640 h480 //\n frame.setAttribute('class', 'doc')\n frame.setAttribute('style', `border: 1px solid; padding: 1em; height:120em; width:80em; resize: both; overflow: auto;`)\n })\n }\n // @@ Note below - if we set ANY sandbox, then Chrome and Safari won't display it if it is PDF.\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe\n // You can't have any sandbox and allow plugins.\n // We could sandbox only HTML files I suppose.\n // HTML5 bug: https://lists.w3.org/Archives/Public/public-html/2011Jun/0330.html\n\n // iframe.setAttribute('sandbox', 'allow-same-origin allow-forms'); // allow-scripts ?? no documents should be static\n\n // iframe.setAttribute('height', '480')\n // iframe.setAttribute('width', '640')\n const tr = myDocument.createElement('TR')\n tr.appendChild(frame)\n div.appendChild(tr)\n return div\n }\n}\n\nexport default humanReadablePane\n// ends\n"],"file":"humanReadablePane.js"}
1
+ {"version":3,"sources":["../src/humanReadablePane.js"],"names":["humanReadablePane","icon","icons","originalIconBase","name","label","subject","context","kb","session","store","allowed","hasContentTypeIn","x","displayables","cts","fetcher","getHeader","j","length","k","indexOf","hasContentTypeIn2","t","findTypeURIs","Util","mediaTypeClass","uri","ns","link","render","myDocument","dom","div","createElement","doc","ct","console","log","setAttribute","element","frame","markdownHtml","webOperation","then","response","markdownText","responseText","lines","Math","min","split","res","marked","parse","innerHTML","_fetch","blob","objectURL","URL","createObjectURL","tr","appendChild"],"mappings":"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","sourcesContent":["/* Human-readable Pane\n **\n ** This outline pane contains the document contents for an HTML document\n ** This is for peeking at a page, because the user might not want to leave the data browser.\n */\nimport { icons, ns } from 'solid-ui'\nimport { Util } from 'rdflib'\nimport { marked } from 'marked'\n\nconst humanReadablePane = {\n icon: icons.originalIconBase + 'tango/22-text-x-generic.png',\n\n name: 'humanReadable',\n\n label: function (subject, context) {\n const kb = context.session.store\n\n // See also the source pane, which has lower precedence.\n\n const allowed = [\n 'text/plain',\n 'text/html',\n 'text/markdown',\n 'application/xhtml+xml',\n 'image/png',\n 'image/jpeg',\n 'application/pdf',\n 'video/mp4'\n ]\n\n const hasContentTypeIn = function (kb, x, displayables) {\n const cts = kb.fetcher.getHeader(x, 'content-type')\n if (cts) {\n for (let j = 0; j < cts.length; j++) {\n for (let k = 0; k < displayables.length; k++) {\n if (cts[j].indexOf(displayables[k]) >= 0) {\n return true\n }\n }\n }\n }\n return false\n }\n\n // This data could come from a fetch OR from ldp container\n const hasContentTypeIn2 = function (kb, x, displayables) {\n const t = kb.findTypeURIs(subject)\n for (let k = 0; k < displayables.length; k++) {\n if (Util.mediaTypeClass(displayables[k]).uri in t) {\n return true\n }\n }\n return false\n }\n\n if (!subject.uri) return null // no bnodes\n\n const t = kb.findTypeURIs(subject)\n if (t[ns.link('WebPage').uri]) return 'view'\n\n if (\n hasContentTypeIn(kb, subject, allowed) ||\n hasContentTypeIn2(kb, subject, allowed)\n ) {\n return 'View'\n }\n\n return null\n },\n\n render: function (subject, context) {\n const myDocument = context.dom\n const div = myDocument.createElement('div')\n const kb = context.session.store\n\n const cts = kb.fetcher.getHeader(subject.doc(), 'content-type')\n const ct = cts ? cts[0] : null\n if (ct) {\n console.log('humanReadablePane: c-t:' + ct)\n } else {\n console.log('humanReadablePane: unknown content-type?')\n }\n\n // @@ When we can, use CSP to turn off scripts within the iframe\n div.setAttribute('class', 'docView')\n const element = ct === 'text/markdown' ? 'DIV' : 'IFRAME'\n const frame = myDocument.createElement(element)\n\n // render markdown to html\n const markdownHtml = function () {\n kb.fetcher.webOperation('GET', subject.uri).then(response => {\n const markdownText = response.responseText\n const lines = Math.min(30, markdownText.split(/\\n/).length + 5)\n const res = marked.parse(markdownText)\n frame.innerHTML = res\n frame.setAttribute('class', 'doc')\n frame.setAttribute('style', `border: 1px solid; padding: 1em; height: ${lines}em; width: 800px; resize: both; overflow: auto;`)\n })\n }\n\n if (ct === 'text/markdown') {\n markdownHtml()\n } else if (ct !== 'text/html') {\n // get with authenticated fetch\n kb.fetcher._fetch(subject.uri)\n .then(function(response) {\n return response.blob()\n })\n .then(function(blob) {\n const objectURL = URL.createObjectURL(blob)\n frame.setAttribute('src', objectURL) // w640 h480 //\n frame.setAttribute('class', 'doc')\n frame.setAttribute('style', `border: 1px solid; padding: 1em; height:120em; width:80em; resize: both; overflow: auto;`)\n })\n } else {\n frame.setAttribute('src', subject.uri) // allow-same-origin\n frame.setAttribute('class', 'doc')\n frame.setAttribute('style', 'resize = both; height:120em; width:80em;')\n }\n // @@ Note below - if we set ANY sandbox, then Chrome and Safari won't display it if it is PDF.\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe\n // You can't have any sandbox and allow plugins.\n // We could sandbox only HTML files I suppose.\n // HTML5 bug: https://lists.w3.org/Archives/Public/public-html/2011Jun/0330.html\n\n // iframe.setAttribute('sandbox', 'allow-same-origin allow-forms'); // allow-scripts ?? no documents should be static\n\n // iframe.setAttribute('height', '480')\n // iframe.setAttribute('width', '640')\n const tr = myDocument.createElement('TR')\n tr.appendChild(frame)\n div.appendChild(tr)\n return div\n }\n}\n\nexport default humanReadablePane\n// ends\n"],"file":"humanReadablePane.js"}
@@ -5,8 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports["default"] = void 0;
7
7
  var _default = {
8
- buildTime: "2022-04-28T10:34:00Z",
9
- commit: "8a90692338371e1f37492c25efdebc9cbab5589c",
8
+ buildTime: "2022-04-29T09:32:12Z",
9
+ commit: "8cc643d983e9488dffa5186a17dfdc4259d08dab",
10
10
  npmInfo: {
11
11
  'solid-panes': '3.5.24',
12
12
  npm: '6.14.16',
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/versionInfo.ts"],"names":["buildTime","commit","npmInfo","npm","ares","brotli","cldr","icu","llhttp","modules","napi","nghttp2","node","openssl","tz","unicode","uv","v8","zlib"],"mappings":";;;;;;eAAe;AACfA,EAAAA,SAAS,EAAE,sBADI;AAEfC,EAAAA,MAAM,EAAE,0CAFO;AAGfC,EAAAA,OAAO,EACP;AACE,mBAAe,QADjB;AAEEC,IAAAA,GAAG,EAAE,SAFP;AAGEC,IAAAA,IAAI,EAAE,QAHR;AAIEC,IAAAA,MAAM,EAAE,OAJV;AAKEC,IAAAA,IAAI,EAAE,MALR;AAMEC,IAAAA,GAAG,EAAE,MANP;AAOEC,IAAAA,MAAM,EAAE,OAPV;AAQEC,IAAAA,OAAO,EAAE,IARX;AASEC,IAAAA,IAAI,EAAE,GATR;AAUEC,IAAAA,OAAO,EAAE,QAVX;AAWEC,IAAAA,IAAI,EAAE,SAXR;AAYEC,IAAAA,OAAO,EAAE,QAZX;AAaEC,IAAAA,EAAE,EAAE,QAbN;AAcEC,IAAAA,OAAO,EAAE,MAdX;AAeEC,IAAAA,EAAE,EAAE,QAfN;AAgBEC,IAAAA,EAAE,EAAE,oBAhBN;AAiBEC,IAAAA,IAAI,EAAE;AAjBR;AAJe,C","sourcesContent":["export default {\nbuildTime: \"2022-04-28T10:34:00Z\",\ncommit: \"8a90692338371e1f37492c25efdebc9cbab5589c\",\nnpmInfo:\n{\n 'solid-panes': '3.5.24',\n npm: '6.14.16',\n ares: '1.18.1',\n brotli: '1.0.9',\n cldr: '40.0',\n icu: '70.1',\n llhttp: '2.1.4',\n modules: '83',\n napi: '8',\n nghttp2: '1.42.0',\n node: '14.19.1',\n openssl: '1.1.1n',\n tz: '2021a3',\n unicode: '14.0',\n uv: '1.42.0',\n v8: '8.4.371.23-node.85',\n zlib: '1.2.11'\n}\n};\n"],"file":"versionInfo.js"}
1
+ {"version":3,"sources":["../src/versionInfo.ts"],"names":["buildTime","commit","npmInfo","npm","ares","brotli","cldr","icu","llhttp","modules","napi","nghttp2","node","openssl","tz","unicode","uv","v8","zlib"],"mappings":";;;;;;eAAe;AACfA,EAAAA,SAAS,EAAE,sBADI;AAEfC,EAAAA,MAAM,EAAE,0CAFO;AAGfC,EAAAA,OAAO,EACP;AACE,mBAAe,QADjB;AAEEC,IAAAA,GAAG,EAAE,SAFP;AAGEC,IAAAA,IAAI,EAAE,QAHR;AAIEC,IAAAA,MAAM,EAAE,OAJV;AAKEC,IAAAA,IAAI,EAAE,MALR;AAMEC,IAAAA,GAAG,EAAE,MANP;AAOEC,IAAAA,MAAM,EAAE,OAPV;AAQEC,IAAAA,OAAO,EAAE,IARX;AASEC,IAAAA,IAAI,EAAE,GATR;AAUEC,IAAAA,OAAO,EAAE,QAVX;AAWEC,IAAAA,IAAI,EAAE,SAXR;AAYEC,IAAAA,OAAO,EAAE,QAZX;AAaEC,IAAAA,EAAE,EAAE,QAbN;AAcEC,IAAAA,OAAO,EAAE,MAdX;AAeEC,IAAAA,EAAE,EAAE,QAfN;AAgBEC,IAAAA,EAAE,EAAE,oBAhBN;AAiBEC,IAAAA,IAAI,EAAE;AAjBR;AAJe,C","sourcesContent":["export default {\nbuildTime: \"2022-04-29T09:32:12Z\",\ncommit: \"8cc643d983e9488dffa5186a17dfdc4259d08dab\",\nnpmInfo:\n{\n 'solid-panes': '3.5.24',\n npm: '6.14.16',\n ares: '1.18.1',\n brotli: '1.0.9',\n cldr: '40.0',\n icu: '70.1',\n llhttp: '2.1.4',\n modules: '83',\n napi: '8',\n nghttp2: '1.42.0',\n node: '14.19.1',\n openssl: '1.1.1n',\n tz: '2021a3',\n unicode: '14.0',\n uv: '1.42.0',\n v8: '8.4.371.23-node.85',\n zlib: '1.2.11'\n}\n};\n"],"file":"versionInfo.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "solid-panes",
3
- "version": "3.5.24-8a906923",
3
+ "version": "3.5.24-8cc643d9",
4
4
  "description": "Solid-compatible Panes: applets and views for the mashlib and databrowser",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -100,20 +100,22 @@ const humanReadablePane = {
100
100
 
101
101
  if (ct === 'text/markdown') {
102
102
  markdownHtml()
103
- } else {
103
+ } else if (ct !== 'text/html') {
104
104
  // get with authenticated fetch
105
- console.log(`humanReadablePane: ${ct}`)
106
105
  kb.fetcher._fetch(subject.uri)
107
106
  .then(function(response) {
108
- return response.arrayBuffer()
107
+ return response.blob()
109
108
  })
110
- .then(function(resp) {
111
- const myBlob = new Blob([resp], {type: ct})
112
- const objectURL = URL.createObjectURL(myBlob)
109
+ .then(function(blob) {
110
+ const objectURL = URL.createObjectURL(blob)
113
111
  frame.setAttribute('src', objectURL) // w640 h480 //
114
112
  frame.setAttribute('class', 'doc')
115
113
  frame.setAttribute('style', `border: 1px solid; padding: 1em; height:120em; width:80em; resize: both; overflow: auto;`)
116
114
  })
115
+ } else {
116
+ frame.setAttribute('src', subject.uri) // allow-same-origin
117
+ frame.setAttribute('class', 'doc')
118
+ frame.setAttribute('style', 'resize = both; height:120em; width:80em;')
117
119
  }
118
120
  // @@ Note below - if we set ANY sandbox, then Chrome and Safari won't display it if it is PDF.
119
121
  // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe
@@ -1,6 +1,6 @@
1
1
  export default {
2
- buildTime: "2022-04-28T10:34:00Z",
3
- commit: "8a90692338371e1f37492c25efdebc9cbab5589c",
2
+ buildTime: "2022-04-29T09:32:12Z",
3
+ commit: "8cc643d983e9488dffa5186a17dfdc4259d08dab",
4
4
  npmInfo:
5
5
  {
6
6
  'solid-panes': '3.5.24',