solid-panes 3.5.12 → 3.5.13-alpha

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.
@@ -12,7 +12,7 @@ jobs:
12
12
  node-version:
13
13
  - 12.x
14
14
  - 14.x
15
- - 15.x
15
+ - 16.x
16
16
  steps:
17
17
  - uses: actions/checkout@v2
18
18
  - name: Use Node.js ${{ matrix.node-version }}
package/README.md CHANGED
@@ -48,6 +48,10 @@ to new users.
48
48
 
49
49
  Volunteers are always welcome!
50
50
 
51
+ ## Documentation
52
+ - [Visual Language](https://solid.github.io/solid-panes/Documentation/VisualLanguage.html)
53
+ - [Conventions](./Documentation/conventions.md)
54
+
51
55
  ## Development
52
56
  To get started, make sure you have Node.js installed (for instance
53
57
  through https://github.com/nvm-sh/nvm), and:
@@ -1 +1 @@
1
- {"version":3,"file":"dashboardPane.d.ts","sourceRoot":"","sources":["../../src/dashboard/dashboardPane.ts"],"names":[],"mappings":"AAGA,OAAO,EAAsB,cAAc,EAAE,MAAM,eAAe,CAAA;AAElE,eAAO,MAAM,aAAa,EAAE,cAoC3B,CAAA;AAsCD,eAAe,aAAa,CAAA"}
1
+ {"version":3,"file":"dashboardPane.d.ts","sourceRoot":"","sources":["../../src/dashboard/dashboardPane.ts"],"names":[],"mappings":"AAGA,OAAO,EAAsB,cAAc,EAAE,MAAM,eAAe,CAAA;AAElE,eAAO,MAAM,aAAa,EAAE,cAqC3B,CAAA;AAuCD,eAAe,aAAa,CAAA"}
@@ -13,6 +13,8 @@ var dashboardPane = {
13
13
  icon: _solidUi.icons.iconBase + 'noun_547570.svg',
14
14
  name: 'dashboard',
15
15
  label: function label(subject) {
16
+ console.log();
17
+
16
18
  if (subject.uri === subject.site().uri) {
17
19
  return 'Dashboard';
18
20
  }
@@ -47,8 +49,10 @@ var dashboardPane = {
47
49
  exports.dashboardPane = dashboardPane;
48
50
 
49
51
  function buildPage(container, webId, context, subject) {
50
- // console.log('build page')
51
- if (webId && webId.site().uri === subject.site().uri) {
52
+ // if uri then SolidOS is a browse.html web app
53
+ var uri = new URL(window.location.href).searchParams.get('uri');
54
+
55
+ if (webId && (uri || webId.site().uri === subject.site().uri)) {
52
56
  return buildDashboard(container, context);
53
57
  }
54
58
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/dashboard/dashboardPane.ts"],"names":["dashboardPane","icon","icons","iconBase","name","label","subject","uri","site","render","context","console","log","dom","container","createElement","runBuildPage","innerHTML","buildPage","authn","currentUser","authSession","onLogin","onSessionRestore","webId","buildDashboard","buildHomePage","outliner","getOutliner","getDashboard","then","dashboard","appendChild","wrapper","document","shadow","attachShadow","mode","link","rel","href","store","fetcher","homepage"],"mappings":";;;;;;;AAAA;;AAEA;;AAGO,IAAMA,aAA6B,GAAG;AAC3CC,EAAAA,IAAI,EAAEC,eAAMC,QAAN,GAAiB,iBADoB;AAE3CC,EAAAA,IAAI,EAAE,WAFqC;AAG3CC,EAAAA,KAAK,EAAE,eAAAC,OAAO,EAAI;AAChB,QAAIA,OAAO,CAACC,GAAR,KAAgBD,OAAO,CAACE,IAAR,GAAeD,GAAnC,EAAwC;AACtC,aAAO,WAAP;AACD;;AACD,WAAO,IAAP;AACD,GAR0C;AAS3CE,EAAAA,MAAM,EAAE,gBAACH,OAAD,EAAUI,OAAV,EAAsB;AAC5BC,IAAAA,OAAO,CAACC,GAAR,CAAY,uBAAZ;AACA,QAAMC,GAAG,GAAGH,OAAO,CAACG,GAApB;AACA,QAAMC,SAAS,GAAGD,GAAG,CAACE,aAAJ,CAAkB,KAAlB,CAAlB;;AACA,QAAMC,YAAY,GAAG,SAAfA,YAAe,GAAM;AACzBF,MAAAA,SAAS,CAACG,SAAV,GAAsB,EAAtB;AACAC,MAAAA,SAAS,CACPJ,SADO,EAEPK,eAAMC,WAAN,MAAuB,IAFhB,EAGPV,OAHO,EAIPJ,OAJO,CAAT;AAMD,KARD;;AAUAa,mBAAME,WAAN,CAAkBC,OAAlB,CAA0B,YAAM;AAC9B;AACAN,MAAAA,YAAY;AACb,KAHD;;AAIAG,mBAAME,WAAN,CAAkBE,gBAAlB,CAAmC,YAAM;AACvC;AACAP,MAAAA,YAAY;AACb,KAHD,EAlB4B,CAsB5B;;;AACAA,IAAAA,YAAY;AAEZ,WAAOF,SAAP;AACD;AAnC0C,CAAtC;;;AAsCP,SAASI,SAAT,CACEJ,SADF,EAEEU,KAFF,EAGEd,OAHF,EAIEJ,OAJF,EAKE;AACA;AACA,MAAIkB,KAAK,IAAIA,KAAK,CAAChB,IAAN,GAAaD,GAAb,KAAqBD,OAAO,CAACE,IAAR,GAAeD,GAAjD,EAAsD;AACpD,WAAOkB,cAAc,CAACX,SAAD,EAAYJ,OAAZ,CAArB;AACD;;AACD,SAAOgB,aAAa,CAACZ,SAAD,EAAYR,OAAZ,CAApB;AACD;;AAED,SAASmB,cAAT,CAAyBX,SAAzB,EAAiDJ,OAAjD,EAA8E;AAC5E;AACA;AACA,MAAMiB,QAAa,GAAGjB,OAAO,CAACkB,WAAR,CAAoBlB,OAAO,CAACG,GAA5B,CAAtB;AACAc,EAAAA,QAAQ,CACLE,YADH,GAEGC,IAFH,CAEQ,UAACC,SAAD;AAAA,WAA4BjB,SAAS,CAACkB,WAAV,CAAsBD,SAAtB,CAA5B;AAAA,GAFR;AAGD;;AAED,SAASL,aAAT,CAAwBZ,SAAxB,EAAgDR,OAAhD,EAAoE;AAClE;AACA,MAAM2B,OAAO,GAAGC,QAAQ,CAACnB,aAAT,CAAuB,KAAvB,CAAhB;AACAD,EAAAA,SAAS,CAACkB,WAAV,CAAsBC,OAAtB;AACA,MAAME,MAAM,GAAGF,OAAO,CAACG,YAAR,CAAqB;AAAEC,IAAAA,IAAI,EAAE;AAAR,GAArB,CAAf;AACA,MAAMC,IAAI,GAAGJ,QAAQ,CAACnB,aAAT,CAAuB,MAAvB,CAAb;AACAuB,EAAAA,IAAI,CAACC,GAAL,GAAW,YAAX;AACAD,EAAAA,IAAI,CAACE,IAAL,GAAY,+BAAZ;AACAL,EAAAA,MAAM,CAACH,WAAP,CAAmBM,IAAnB;AACA,kCAAiBhC,OAAjB,EAA0BmC,cAA1B,EAAiCA,eAAMC,OAAvC,EAA2DZ,IAA3D,CAAgE,UAAAa,QAAQ;AAAA,WACtER,MAAM,CAACH,WAAP,CAAmBW,QAAnB,CADsE;AAAA,GAAxE;AAGD;;eAEc3C,a","sourcesContent":["import { authn, icons, store } from 'solid-ui'\nimport { Fetcher, NamedNode } from 'rdflib'\nimport { generateHomepage } from './homepage'\nimport { DataBrowserContext, PaneDefinition } from 'pane-registry'\n\nexport const dashboardPane: PaneDefinition = {\n icon: icons.iconBase + 'noun_547570.svg',\n name: 'dashboard',\n label: subject => {\n if (subject.uri === subject.site().uri) {\n return 'Dashboard'\n }\n return null\n },\n render: (subject, context) => {\n console.log('Dashboard Pane Render')\n const dom = context.dom\n const container = dom.createElement('div')\n const runBuildPage = () => {\n container.innerHTML = ''\n buildPage(\n container,\n authn.currentUser() || null,\n context,\n subject\n )\n }\n\n authn.authSession.onLogin(() => {\n // console.log('On Login')\n runBuildPage()\n })\n authn.authSession.onSessionRestore(() => {\n // console.log('On Session Restore')\n runBuildPage()\n })\n // console.log('Initial Load')\n runBuildPage()\n\n return container\n }\n}\n\nfunction buildPage (\n container: HTMLElement,\n webId: NamedNode | null,\n context: DataBrowserContext,\n subject: NamedNode\n) {\n // console.log('build page')\n if (webId && webId.site().uri === subject.site().uri) {\n return buildDashboard(container, context)\n }\n return buildHomePage(container, subject)\n}\n\nfunction buildDashboard (container: HTMLElement, context: DataBrowserContext) {\n // console.log('build dashboard')\n // @@ TODO get a proper type\n const outliner: any = context.getOutliner(context.dom)\n outliner\n .getDashboard()\n .then((dashboard: HTMLElement) => container.appendChild(dashboard))\n}\n\nfunction buildHomePage (container: HTMLElement, subject: NamedNode) {\n // console.log('build home page')\n const wrapper = document.createElement('div')\n container.appendChild(wrapper)\n const shadow = wrapper.attachShadow({ mode: 'open' })\n const link = document.createElement('link')\n link.rel = 'stylesheet'\n link.href = '/common/css/bootstrap.min.css'\n shadow.appendChild(link)\n generateHomepage(subject, store, store.fetcher as Fetcher).then(homepage =>\n shadow.appendChild(homepage)\n )\n}\n\nexport default dashboardPane\n"],"file":"dashboardPane.js"}
1
+ {"version":3,"sources":["../../src/dashboard/dashboardPane.ts"],"names":["dashboardPane","icon","icons","iconBase","name","label","subject","console","log","uri","site","render","context","dom","container","createElement","runBuildPage","innerHTML","buildPage","authn","currentUser","authSession","onLogin","onSessionRestore","webId","URL","window","location","href","searchParams","get","buildDashboard","buildHomePage","outliner","getOutliner","getDashboard","then","dashboard","appendChild","wrapper","document","shadow","attachShadow","mode","link","rel","store","fetcher","homepage"],"mappings":";;;;;;;AAAA;;AAEA;;AAGO,IAAMA,aAA6B,GAAG;AAC3CC,EAAAA,IAAI,EAAEC,eAAMC,QAAN,GAAiB,iBADoB;AAE3CC,EAAAA,IAAI,EAAE,WAFqC;AAG3CC,EAAAA,KAAK,EAAE,eAAAC,OAAO,EAAI;AAChBC,IAAAA,OAAO,CAACC,GAAR;;AACA,QAAIF,OAAO,CAACG,GAAR,KAAgBH,OAAO,CAACI,IAAR,GAAeD,GAAnC,EAAwC;AACtC,aAAO,WAAP;AACD;;AACD,WAAO,IAAP;AACD,GAT0C;AAU3CE,EAAAA,MAAM,EAAE,gBAACL,OAAD,EAAUM,OAAV,EAAsB;AAC5BL,IAAAA,OAAO,CAACC,GAAR,CAAY,uBAAZ;AACA,QAAMK,GAAG,GAAGD,OAAO,CAACC,GAApB;AACA,QAAMC,SAAS,GAAGD,GAAG,CAACE,aAAJ,CAAkB,KAAlB,CAAlB;;AACA,QAAMC,YAAY,GAAG,SAAfA,YAAe,GAAM;AACzBF,MAAAA,SAAS,CAACG,SAAV,GAAsB,EAAtB;AACAC,MAAAA,SAAS,CACPJ,SADO,EAEPK,eAAMC,WAAN,MAAuB,IAFhB,EAGPR,OAHO,EAIPN,OAJO,CAAT;AAMD,KARD;;AAUAa,mBAAME,WAAN,CAAkBC,OAAlB,CAA0B,YAAM;AAC9B;AACAN,MAAAA,YAAY;AACb,KAHD;;AAIAG,mBAAME,WAAN,CAAkBE,gBAAlB,CAAmC,YAAM;AACvC;AACAP,MAAAA,YAAY;AACb,KAHD,EAlB4B,CAsB5B;;;AACAA,IAAAA,YAAY;AAEZ,WAAOF,SAAP;AACD;AApC0C,CAAtC;;;AAuCP,SAASI,SAAT,CACEJ,SADF,EAEEU,KAFF,EAGEZ,OAHF,EAIEN,OAJF,EAKE;AACA;AACA,MAAMG,GAAG,GAAI,IAAIgB,GAAJ,CAAQC,MAAM,CAACC,QAAP,CAAgBC,IAAxB,CAAD,CAAgCC,YAAhC,CAA6CC,GAA7C,CAAiD,KAAjD,CAAZ;;AACA,MAAIN,KAAK,KAAKf,GAAG,IAAIe,KAAK,CAACd,IAAN,GAAaD,GAAb,KAAqBH,OAAO,CAACI,IAAR,GAAeD,GAAhD,CAAT,EAA+D;AAC7D,WAAOsB,cAAc,CAACjB,SAAD,EAAYF,OAAZ,CAArB;AACD;;AACD,SAAOoB,aAAa,CAAClB,SAAD,EAAYR,OAAZ,CAApB;AACD;;AAED,SAASyB,cAAT,CAAyBjB,SAAzB,EAAiDF,OAAjD,EAA8E;AAC5E;AACA;AACA,MAAMqB,QAAa,GAAGrB,OAAO,CAACsB,WAAR,CAAoBtB,OAAO,CAACC,GAA5B,CAAtB;AACAoB,EAAAA,QAAQ,CACLE,YADH,GAEGC,IAFH,CAEQ,UAACC,SAAD;AAAA,WAA4BvB,SAAS,CAACwB,WAAV,CAAsBD,SAAtB,CAA5B;AAAA,GAFR;AAGD;;AAED,SAASL,aAAT,CAAwBlB,SAAxB,EAAgDR,OAAhD,EAAoE;AAClE;AACA,MAAMiC,OAAO,GAAGC,QAAQ,CAACzB,aAAT,CAAuB,KAAvB,CAAhB;AACAD,EAAAA,SAAS,CAACwB,WAAV,CAAsBC,OAAtB;AACA,MAAME,MAAM,GAAGF,OAAO,CAACG,YAAR,CAAqB;AAAEC,IAAAA,IAAI,EAAE;AAAR,GAArB,CAAf;AACA,MAAMC,IAAI,GAAGJ,QAAQ,CAACzB,aAAT,CAAuB,MAAvB,CAAb;AACA6B,EAAAA,IAAI,CAACC,GAAL,GAAW,YAAX;AACAD,EAAAA,IAAI,CAAChB,IAAL,GAAY,+BAAZ;AACAa,EAAAA,MAAM,CAACH,WAAP,CAAmBM,IAAnB;AACA,kCAAiBtC,OAAjB,EAA0BwC,cAA1B,EAAiCA,eAAMC,OAAvC,EAA2DX,IAA3D,CAAgE,UAAAY,QAAQ;AAAA,WACtEP,MAAM,CAACH,WAAP,CAAmBU,QAAnB,CADsE;AAAA,GAAxE;AAGD;;eAEchD,a","sourcesContent":["import { authn, icons, store } from 'solid-ui'\nimport { Fetcher, NamedNode } from 'rdflib'\nimport { generateHomepage } from './homepage'\nimport { DataBrowserContext, PaneDefinition } from 'pane-registry'\n\nexport const dashboardPane: PaneDefinition = {\n icon: icons.iconBase + 'noun_547570.svg',\n name: 'dashboard',\n label: subject => {\n console.log()\n if (subject.uri === subject.site().uri) {\n return 'Dashboard'\n }\n return null\n },\n render: (subject, context) => {\n console.log('Dashboard Pane Render')\n const dom = context.dom\n const container = dom.createElement('div')\n const runBuildPage = () => {\n container.innerHTML = ''\n buildPage(\n container,\n authn.currentUser() || null,\n context,\n subject\n )\n }\n\n authn.authSession.onLogin(() => {\n // console.log('On Login')\n runBuildPage()\n })\n authn.authSession.onSessionRestore(() => {\n // console.log('On Session Restore')\n runBuildPage()\n })\n // console.log('Initial Load')\n runBuildPage()\n\n return container\n }\n}\n\nfunction buildPage (\n container: HTMLElement,\n webId: NamedNode | null,\n context: DataBrowserContext,\n subject: NamedNode\n) {\n // if uri then SolidOS is a browse.html web app\n const uri = (new URL(window.location.href)).searchParams.get('uri')\n if (webId && (uri || webId.site().uri === subject.site().uri)) {\n return buildDashboard(container, context)\n }\n return buildHomePage(container, subject)\n}\n\nfunction buildDashboard (container: HTMLElement, context: DataBrowserContext) {\n // console.log('build dashboard')\n // @@ TODO get a proper type\n const outliner: any = context.getOutliner(context.dom)\n outliner\n .getDashboard()\n .then((dashboard: HTMLElement) => container.appendChild(dashboard))\n}\n\nfunction buildHomePage (container: HTMLElement, subject: NamedNode) {\n // console.log('build home page')\n const wrapper = document.createElement('div')\n container.appendChild(wrapper)\n const shadow = wrapper.attachShadow({ mode: 'open' })\n const link = document.createElement('link')\n link.rel = 'stylesheet'\n link.href = '/common/css/bootstrap.min.css'\n shadow.appendChild(link)\n generateHomepage(subject, store, store.fetcher as Fetcher).then(homepage =>\n shadow.appendChild(homepage)\n )\n}\n\nexport default dashboardPane\n"],"file":"dashboardPane.js"}
package/lib/form/pane.js CHANGED
@@ -73,7 +73,7 @@ module.exports = {
73
73
  box.appendChild(heading);
74
74
 
75
75
  if (form.uri) {
76
- var formStore = $rdf.Util.uri.document(form);
76
+ var formStore = $rdf.Util.uri.document(form.uri);
77
77
 
78
78
  if (formStore.uri !== form.uri) {
79
79
  // The form is a hash-type URI
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/form/pane.js"],"names":["UI","require","$rdf","ns","module","exports","icon","icons","iconBase","name","audience","solid","label","subject","n","widgets","formsFor","length","log","debug","render","context","kb","session","store","dom","mention","complain","message","style","pre","createElement","setAttribute","box","appendChild","textContent","complainIfBad","ok","body","me","authn","currentUser","ws","each","ui","renderFormsFor","fetcher","nowOrWhenFetched","uri","forms","i","form","heading","formStore","Util","document","e","editFormButton","anchor","utils","appendForm","docuri","docpart","updater","editable","doc","any","sym","link","docs","docList","statementsMatching","forEach","st","why","undefined","d","push","sort","_followeach","path","oo","res","concat","slice","date","foobarbaz","selectWorkspace","activities","space","j","act","subjectDoc2","start","cal","value","end"],"mappings":";;AAAA;AACA;AACA;AACA;AAEA,IAAMA,EAAE,GAAGC,OAAO,CAAC,UAAD,CAAlB;;AACA,IAAMC,IAAI,GAAGD,OAAO,CAAC,QAAD,CAApB;;AACA,IAAME,EAAE,GAAGH,EAAE,CAACG,EAAd;AAEAC,MAAM,CAACC,OAAP,GAAiB;AACfC,EAAAA,IAAI,EAAEN,EAAE,CAACO,KAAH,CAASC,QAAT,GAAoB,iBADX;AAGfC,EAAAA,IAAI,EAAE,MAHS;AAKfC,EAAAA,QAAQ,EAAE,CAACP,EAAE,CAACQ,KAAH,CAAS,WAAT,CAAD,CALK;AAOf;AACAC,EAAAA,KAAK,EAAE,eAAUC,OAAV,EAAmB;AACxB,QAAMC,CAAC,GAAGd,EAAE,CAACe,OAAH,CAAWC,QAAX,CAAoBH,OAApB,EAA6BI,MAAvC;AACAjB,IAAAA,EAAE,CAACkB,GAAH,CAAOC,KAAP,CAAa,0BAA0BN,OAA1B,GAAoC,IAApC,GAA2CC,CAAxD;AACA,QAAI,CAACA,CAAL,EAAQ,OAAO,IAAP;AACR,WAAO,KAAKA,CAAL,GAAS,QAAhB;AACD,GAbc;AAefM,EAAAA,MAAM,EAAE,gBAAUP,OAAV,EAAmBQ,OAAnB,EAA4B;AAClC,QAAMC,EAAE,GAAGD,OAAO,CAACE,OAAR,CAAgBC,KAA3B;AACA,QAAMC,GAAG,GAAGJ,OAAO,CAACI,GAApB;;AAEA,QAAMC,OAAO,GAAG,SAASC,QAAT,CAAmBC,OAAnB,EAA4BC,KAA5B,EAAmC;AACjD,UAAMC,GAAG,GAAGL,GAAG,CAACM,aAAJ,CAAkB,GAAlB,CAAZ;AACAD,MAAAA,GAAG,CAACE,YAAJ,CAAiB,OAAjB,EAA0BH,KAAK,IAAI,sCAAnC;AACAI,MAAAA,GAAG,CAACC,WAAJ,CAAgBJ,GAAhB,EAAqBK,WAArB,GAAmCP,OAAnC;AACA,aAAOE,GAAP;AACD,KALD;;AAOA,QAAMH,QAAQ,GAAG,SAASA,QAAT,CAAmBC,OAAnB,EAA4BC,KAA5B,EAAmC;AAClDH,MAAAA,OAAO,CAACE,OAAD,EAAU,OAAV,EAAmBC,KAAK,IAAI,sCAA5B,CAAP;AACD,KAFD;;AAIA,QAAMO,aAAa,GAAG,SAAhBA,aAAgB,CAAUC,EAAV,EAAcC,IAAd,EAAoB;AACxC,UAAID,EAAJ,EAAQ,CACN;AACA;AACD,OAHD,MAGOV,QAAQ,CAAC,yCAAyCW,IAA1C,CAAR;AACR,KALD,CAfkC,CAsBlC;AACA;AACA;AAEA;;;AAEA,QAAMC,EAAE,GAAGvC,EAAE,CAACwC,KAAH,CAASC,WAAT,EAAX;AAEA,QAAMR,GAAG,GAAGR,GAAG,CAACM,aAAJ,CAAkB,KAAlB,CAAZ;AACAE,IAAAA,GAAG,CAACD,YAAJ,CAAiB,OAAjB,EAA0B,UAA1B;;AAEA,QAAI,CAACO,EAAL,EAAS;AACPb,MAAAA,OAAO,CACL,mDACE,iEADF,GAEE,6BAHG,CAAP;AAKD,KAND,MAMO;AACL,UAAMgB,EAAE,GAAGpB,EAAE,CAACqB,IAAH,CAAQJ,EAAR,EAAYpC,EAAE,CAACyC,EAAH,CAAM,WAAN,CAAZ,CAAX;;AACA,UAAIF,EAAE,CAACzB,MAAH,KAAc,CAAlB,EAAqB;AACnBS,QAAAA,OAAO,CACL,qDACE,sDADF,GAEE,yDAHG,CAAP;AAKD,OAND,MAMO,CACL;AACD;AACF,KAlDiC,CAoDlC;;;AAEA,QAAMmB,cAAc,GAAG,SAAjBA,cAAiB,CAAUrB,KAAV,EAAiBX,OAAjB,EAA0B;AAC/CS,MAAAA,EAAE,CAACwB,OAAH,CAAWC,gBAAX,CAA4BvB,KAAK,CAACwB,GAAlC,EAAuCnC,OAAvC,EAAgD,UAAUwB,EAAV,EAAcC,IAAd,EAAoB;AAClE,YAAI,CAACD,EAAL,EAAS,OAAOV,QAAQ,CAAC,uBAAuBH,KAAK,CAACwB,GAA7B,GAAmC,IAAnC,GAA0CV,IAA3C,CAAf,CADyD,CAGlE;;AAEA,YAAMW,KAAK,GAAGjD,EAAE,CAACe,OAAH,CAAWC,QAAX,CAAoBH,OAApB,CAAd,CALkE,CAOlE;;AACA,aAAK,IAAIqC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGD,KAAK,CAAChC,MAA1B,EAAkCiC,CAAC,EAAnC,EAAuC;AACrC,cAAMC,IAAI,GAAGF,KAAK,CAACC,CAAD,CAAlB;AACA,cAAME,OAAO,GAAG3B,GAAG,CAACM,aAAJ,CAAkB,IAAlB,CAAhB;AACAE,UAAAA,GAAG,CAACC,WAAJ,CAAgBkB,OAAhB;;AACA,cAAID,IAAI,CAACH,GAAT,EAAc;AACZ,gBAAMK,SAAS,GAAGnD,IAAI,CAACoD,IAAL,CAAUN,GAAV,CAAcO,QAAd,CAAuBJ,IAAvB,CAAlB;;AACA,gBAAIE,SAAS,CAACL,GAAV,KAAkBG,IAAI,CAACH,GAA3B,EAAgC;AAC9B;AACA,kBAAMQ,CAAC,GAAGvB,GAAG,CAACC,WAAJ,CACRlC,EAAE,CAACe,OAAH,CAAW0C,cAAX,CACEhC,GADF,EAEEQ,GAFF,EAGEkB,IAHF,EAIEE,SAJF,EAKEjB,aALF,CADQ,CAAV;AASAoB,cAAAA,CAAC,CAACxB,YAAF,CAAe,OAAf,EAAwB,eAAxB;AACD;AACF;;AACD,cAAM0B,MAAM,GAAGjC,GAAG,CAACM,aAAJ,CAAkB,GAAlB,CAAf;AACA2B,UAAAA,MAAM,CAAC1B,YAAP,CAAoB,MAApB,EAA4BmB,IAAI,CAACH,GAAjC;AACAI,UAAAA,OAAO,CAAClB,WAAR,CAAoBwB,MAApB;AACAA,UAAAA,MAAM,CAACvB,WAAP,GAAqBnC,EAAE,CAAC2D,KAAH,CAAS/C,KAAT,CAAeuC,IAAf,EAAqB,IAArB,CAArB;AAEA;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEUnD,UAAAA,EAAE,CAACe,OAAH,CAAW6C,UAAX,CACEnC,GADF,EAEEQ,GAFF,EAGE,EAHF,EAIEpB,OAJF,EAKEsC,IALF,EAME3B,KANF,EAOEY,aAPF;AASD;AACF,OAtDD,EAD+C,CAuD5C;AACJ,KAxDD,CAtDkC,CA8GhC;AAEF;AAEA;;;AAEA,QAAIZ,KAAK,GAAG,IAAZ,CApHkC,CAsHlC;;AACA,QAAMqC,MAAM,GAAG3D,IAAI,CAACoD,IAAL,CAAUN,GAAV,CAAcc,OAAd,CAAsBjD,OAAO,CAACmC,GAA9B,CAAf;;AACA,QAAInC,OAAO,CAACmC,GAAR,KAAgBa,MAAhB,IAA0BvC,EAAE,CAACyC,OAAH,CAAWC,QAAX,CAAoBH,MAApB,EAA4BvC,EAA5B,CAA9B,EAA+D;AAC7DE,MAAAA,KAAK,GAAGX,OAAO,CAACoD,GAAR,EAAR;AACD,KA1HiC,CA0HhC;;;AAEFzC,IAAAA,KAAK,GAAGA,KAAK,IAAIF,EAAE,CAAC4C,GAAH,CAAO5C,EAAE,CAAC6C,GAAH,CAAON,MAAP,CAAP,EAAuB1D,EAAE,CAACiE,IAAH,CAAQ,iBAAR,CAAvB,CAAjB,CA5HkC,CA8HlC;;AACA,QAAI,CAAC5C,KAAL,EAAY;AACV,UAAM6C,IAAI,GAAG,EAAb;AACA,UAAMC,OAAO,GAAG,EAAhB;AACA9C,MAAAA,KAAK,CAAC+C,kBAAN,CAAyB1D,OAAzB,EAAkC2D,OAAlC,CAA0C,UAAUC,EAAV,EAAc;AACtDJ,QAAAA,IAAI,CAACI,EAAE,CAACC,GAAH,CAAO1B,GAAR,CAAJ,GAAmB,CAAnB;AACD,OAFD;AAGAxB,MAAAA,KAAK,CACF+C,kBADH,CACsBI,SADtB,EACiCA,SADjC,EAC4C9D,OAD5C,EAEG2D,OAFH,CAEW,UAAUC,EAAV,EAAc;AACrBJ,QAAAA,IAAI,CAACI,EAAE,CAACC,GAAH,CAAO1B,GAAR,CAAJ,GAAmB,CAAnB;AACD,OAJH;;AAKA,WAAK,IAAM4B,CAAX,IAAgBP,IAAhB;AAAsBC,QAAAA,OAAO,CAACO,IAAR,CAAaR,IAAI,CAACO,CAAD,CAAjB,EAAsBA,CAAtB;AAAtB;;AACAN,MAAAA,OAAO,CAACQ,IAAR;;AACA,WAAK,IAAI5B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGoB,OAAO,CAACrD,MAA5B,EAAoCiC,CAAC,EAArC,EAAyC;AACvC,YAAMF,GAAG,GAAGsB,OAAO,CAACpB,CAAD,CAAP,CAAW,CAAX,CAAZ;;AACA,YAAIF,GAAG,IAAIxB,KAAK,CAACuC,OAAN,CAAcC,QAAd,CAAuBhB,GAAvB,CAAX,EAAwC;AACtCxB,UAAAA,KAAK,GAAGA,KAAK,CAAC2C,GAAN,CAAUnB,GAAV,CAAR;AACA;AACD;AACF;AACF,KAnJiC,CAqJlC;AACA;;;AACA,QAAM+B,WAAW,GAAG,SAAdA,WAAc,CAAUzD,EAAV,EAAcT,OAAd,EAAuBmE,IAAvB,EAA6B;AAC/C,UAAIA,IAAI,CAAC/D,MAAL,KAAgB,CAApB,EAAuB,OAAO,CAACJ,OAAD,CAAP;AACvB,UAAMoE,EAAE,GAAG3D,EAAE,CAACqB,IAAH,CAAQ9B,OAAR,EAAiBmE,IAAI,CAAC,CAAD,CAArB,CAAX;AACA,UAAIE,GAAG,GAAG,EAAV;;AACA,WAAK,IAAIhC,EAAC,GAAG,CAAb,EAAgBA,EAAC,GAAG+B,EAAE,CAAChE,MAAvB,EAA+BiC,EAAC,EAAhC,EAAoC;AAClCgC,QAAAA,GAAG,GAAGA,GAAG,CAACC,MAAJ,CAAWJ,WAAW,CAACzD,EAAD,EAAK2D,EAAE,CAAC/B,EAAD,CAAP,EAAY8B,IAAI,CAACI,KAAL,CAAW,CAAX,CAAZ,CAAtB,CAAN;AACD;;AACD,aAAOF,GAAP;AACD,KARD;;AAUA,QAAMG,IAAI,GAAG,MAAb,CAjKkC,CAiKd;;AAEpB,QAAI7D,KAAJ,EAAW;AACT;AACAqB,MAAAA,cAAc,CAACrB,KAAD,EAAQX,OAAR,CAAd;AACD,KAHD,MAGO;AACLc,MAAAA,QAAQ,CAAC,0CAA0Cd,OAAO,CAACmC,GAAlD,GAAwD,IAAzD,CAAR;AACA,UAAMsC,SAAS,GAAGtF,EAAE,CAACwC,KAAH,CAAS+C,eAAT,CAAyB9D,GAAzB,EAA8B,UAAUiB,EAAV,EAAc;AAC5DhB,QAAAA,OAAO,CAAC,4BAA4BgB,EAA7B,CAAP;AAEA,YAAM8C,UAAU,GAAGhE,KAAK,CAACmB,IAAN,CAAWgC,SAAX,EAAsBxE,EAAE,CAACsF,KAAH,CAAS,WAAT,CAAtB,EAA6C/C,EAA7C,CAAnB;;AACA,aAAK,IAAIgD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,UAAU,CAACvE,MAA/B,EAAuCyE,CAAC,EAAxC,EAA4C;AAC1C,cAAMC,GAAG,GAAGH,UAAU,CAACE,CAAD,CAAtB;AAEA,cAAME,WAAW,GAAGpE,KAAK,CAAC0C,GAAN,CAAUxB,EAAV,EAAcvC,EAAE,CAACsF,KAAH,CAAS,OAAT,CAAd,CAApB;AACA,cAAMI,KAAK,GAAGrE,KAAK,CAAC0C,GAAN,CAAUxB,EAAV,EAAcvC,EAAE,CAAC2F,GAAH,CAAO,SAAP,CAAd,EAAiCC,KAAjC,EAAd;AACA,cAAMC,GAAG,GAAGxE,KAAK,CAAC0C,GAAN,CAAUxB,EAAV,EAAcvC,EAAE,CAAC2F,GAAH,CAAO,OAAP,CAAd,EAA+BC,KAA/B,EAAZ;;AACA,cAAIH,WAAW,IAAIC,KAAf,IAAwBG,GAAxB,IAA+BH,KAAK,IAAIR,IAAxC,IAAgDW,GAAG,GAAGX,IAA1D,EAAgE;AAC9DxC,YAAAA,cAAc,CAAC+C,WAAD,EAAc/E,OAAd,CAAd;AACA;AACD,WAHD,MAGO;AACLc,YAAAA,QAAQ,CAAC,oDAAoDgE,GAArD,CAAR;AACD;AACF;AACF,OAjBiB,CAAlB;AAkBA1D,MAAAA,GAAG,CAACC,WAAJ,CAAgBoD,SAAhB;AACD;;AAED,WAAOrD,GAAP;AACD;AA7Mc,CAAjB","sourcesContent":["/*\n ** Pane for running existing forms for any object\n **\n */\n\nconst UI = require('solid-ui')\nconst $rdf = require('rdflib')\nconst ns = UI.ns\n\nmodule.exports = {\n icon: UI.icons.iconBase + 'noun_122196.svg',\n\n name: 'form',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve this pane?\n label: function (subject) {\n const n = UI.widgets.formsFor(subject).length\n UI.log.debug('Form pane: forms for ' + subject + ': ' + n)\n if (!n) return null\n return '' + n + ' forms'\n },\n\n render: function (subject, context) {\n const kb = context.session.store\n const dom = context.dom\n\n const mention = function complain (message, style) {\n const pre = dom.createElement('p')\n pre.setAttribute('style', style || 'color: grey; background-color: white')\n box.appendChild(pre).textContent = message\n return pre\n }\n\n const complain = function complain (message, style) {\n mention(message, 'style', style || 'color: grey; background-color: #fdd;')\n }\n\n const complainIfBad = function (ok, body) {\n if (ok) {\n // setModifiedDate(store, kb, store);\n // rerender(box); // Deleted forms at the moment\n } else complain('Sorry, failed to save your change:\\n' + body)\n }\n\n // The question of where to store this data about subject\n // This in general needs a whole lot more thought\n // and it connects to the discoverbility through links\n\n // const t = kb.findTypeURIs(subject)\n\n const me = UI.authn.currentUser()\n\n const box = dom.createElement('div')\n box.setAttribute('class', 'formPane')\n\n if (!me) {\n mention(\n 'You are not logged in. If you log in and have ' +\n 'workspaces then you would be able to select workspace in which ' +\n 'to put this new information'\n )\n } else {\n const ws = kb.each(me, ns.ui('workspace'))\n if (ws.length === 0) {\n mention(\n \"You don't seem to have any workspaces defined. \" +\n 'A workspace is a place on the web (http://..) or in ' +\n 'the file system (file:///) to store application data.\\n'\n )\n } else {\n // @@\n }\n }\n\n // Render forms using a given store\n\n const renderFormsFor = function (store, subject) {\n kb.fetcher.nowOrWhenFetched(store.uri, subject, function (ok, body) {\n if (!ok) return complain('Cannot load store ' + store.uri + ': ' + body)\n\n // Render the forms\n\n const forms = UI.widgets.formsFor(subject)\n\n // complain('Form for editing this form:');\n for (let i = 0; i < forms.length; i++) {\n const form = forms[i]\n const heading = dom.createElement('h4')\n box.appendChild(heading)\n if (form.uri) {\n const formStore = $rdf.Util.uri.document(form)\n if (formStore.uri !== form.uri) {\n // The form is a hash-type URI\n const e = box.appendChild(\n UI.widgets.editFormButton(\n dom,\n box,\n form,\n formStore,\n complainIfBad\n )\n )\n e.setAttribute('style', 'float: right;')\n }\n }\n const anchor = dom.createElement('a')\n anchor.setAttribute('href', form.uri)\n heading.appendChild(anchor)\n anchor.textContent = UI.utils.label(form, true)\n\n /* Keep tis as a reminder to let a New one have its URI given by user\n mention(\"Where will this information be stored?\")\n const ele = dom.createElement('input');\n box.appendChild(ele);\n ele.setAttribute('type', 'text');\n ele.setAttribute('size', '72');\n ele.setAttribute('maxlength', '1024');\n ele.setAttribute('style', 'font-size: 80%; color:#222;');\n ele.value = store.uri\n */\n\n UI.widgets.appendForm(\n dom,\n box,\n {},\n subject,\n form,\n store,\n complainIfBad\n )\n }\n }) // end: when store loded\n } // renderFormsFor\n\n // Figure out what store\n\n // Which places are editable and have stuff about the subject?\n\n let store = null\n\n // 1. The document URI of the subject itself\n const docuri = $rdf.Util.uri.docpart(subject.uri)\n if (subject.uri !== docuri && kb.updater.editable(docuri, kb)) {\n store = subject.doc()\n } // an editable data file with hash\n\n store = store || kb.any(kb.sym(docuri), ns.link('annotationStore'))\n\n // 2. where stuff is already stored\n if (!store) {\n const docs = {}\n const docList = []\n store.statementsMatching(subject).forEach(function (st) {\n docs[st.why.uri] = 1\n })\n store\n .statementsMatching(undefined, undefined, subject)\n .forEach(function (st) {\n docs[st.why.uri] = 2\n })\n for (const d in docs) docList.push(docs[d], d)\n docList.sort()\n for (let i = 0; i < docList.length; i++) {\n const uri = docList[i][1]\n if (uri && store.updater.editable(uri)) {\n store = store.sym(uri)\n break\n }\n }\n }\n\n // 3. In a workspace store\n // @@ TODO: Can probably remove _followeach (not done this time because the commit is a very safe refactor)\n const _followeach = function (kb, subject, path) {\n if (path.length === 0) return [subject]\n const oo = kb.each(subject, path[0])\n let res = []\n for (let i = 0; i < oo.length; i++) {\n res = res.concat(_followeach(kb, oo[i], path.slice(1)))\n }\n return res\n }\n\n const date = '2014' // @@@@@@@@@@@@ pass as parameter\n\n if (store) {\n // mention(\"@@ Ok, we have a store <\" + store.uri + \">.\");\n renderFormsFor(store, subject)\n } else {\n complain('No suitable store is known, to edit <' + subject.uri + '>.')\n const foobarbaz = UI.authn.selectWorkspace(dom, function (ws) {\n mention('Workspace selected OK: ' + ws)\n\n const activities = store.each(undefined, ns.space('workspace'), ws)\n for (let j = 0; j < activities.length; j++) {\n const act = activities[j]\n\n const subjectDoc2 = store.any(ws, ns.space('store'))\n const start = store.any(ws, ns.cal('dtstart')).value()\n const end = store.any(ws, ns.cal('dtend')).value()\n if (subjectDoc2 && start && end && start <= date && end > date) {\n renderFormsFor(subjectDoc2, subject)\n break\n } else {\n complain('Note no suitable annotation store in activity: ' + act)\n }\n }\n })\n box.appendChild(foobarbaz)\n }\n\n return box\n }\n}\n"],"file":"pane.js"}
1
+ {"version":3,"sources":["../../src/form/pane.js"],"names":["UI","require","$rdf","ns","module","exports","icon","icons","iconBase","name","audience","solid","label","subject","n","widgets","formsFor","length","log","debug","render","context","kb","session","store","dom","mention","complain","message","style","pre","createElement","setAttribute","box","appendChild","textContent","complainIfBad","ok","body","me","authn","currentUser","ws","each","ui","renderFormsFor","fetcher","nowOrWhenFetched","uri","forms","i","form","heading","formStore","Util","document","e","editFormButton","anchor","utils","appendForm","docuri","docpart","updater","editable","doc","any","sym","link","docs","docList","statementsMatching","forEach","st","why","undefined","d","push","sort","_followeach","path","oo","res","concat","slice","date","foobarbaz","selectWorkspace","activities","space","j","act","subjectDoc2","start","cal","value","end"],"mappings":"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","sourcesContent":["/*\n ** Pane for running existing forms for any object\n **\n */\n\nconst UI = require('solid-ui')\nconst $rdf = require('rdflib')\nconst ns = UI.ns\n\nmodule.exports = {\n icon: UI.icons.iconBase + 'noun_122196.svg',\n\n name: 'form',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve this pane?\n label: function (subject) {\n const n = UI.widgets.formsFor(subject).length\n UI.log.debug('Form pane: forms for ' + subject + ': ' + n)\n if (!n) return null\n return '' + n + ' forms'\n },\n\n render: function (subject, context) {\n const kb = context.session.store\n const dom = context.dom\n\n const mention = function complain (message, style) {\n const pre = dom.createElement('p')\n pre.setAttribute('style', style || 'color: grey; background-color: white')\n box.appendChild(pre).textContent = message\n return pre\n }\n\n const complain = function complain (message, style) {\n mention(message, 'style', style || 'color: grey; background-color: #fdd;')\n }\n\n const complainIfBad = function (ok, body) {\n if (ok) {\n // setModifiedDate(store, kb, store);\n // rerender(box); // Deleted forms at the moment\n } else complain('Sorry, failed to save your change:\\n' + body)\n }\n\n // The question of where to store this data about subject\n // This in general needs a whole lot more thought\n // and it connects to the discoverbility through links\n\n // const t = kb.findTypeURIs(subject)\n\n const me = UI.authn.currentUser()\n\n const box = dom.createElement('div')\n box.setAttribute('class', 'formPane')\n\n if (!me) {\n mention(\n 'You are not logged in. If you log in and have ' +\n 'workspaces then you would be able to select workspace in which ' +\n 'to put this new information'\n )\n } else {\n const ws = kb.each(me, ns.ui('workspace'))\n if (ws.length === 0) {\n mention(\n \"You don't seem to have any workspaces defined. \" +\n 'A workspace is a place on the web (http://..) or in ' +\n 'the file system (file:///) to store application data.\\n'\n )\n } else {\n // @@\n }\n }\n\n // Render forms using a given store\n\n const renderFormsFor = function (store, subject) {\n kb.fetcher.nowOrWhenFetched(store.uri, subject, function (ok, body) {\n if (!ok) return complain('Cannot load store ' + store.uri + ': ' + body)\n\n // Render the forms\n\n const forms = UI.widgets.formsFor(subject)\n\n // complain('Form for editing this form:');\n for (let i = 0; i < forms.length; i++) {\n const form = forms[i]\n const heading = dom.createElement('h4')\n box.appendChild(heading)\n if (form.uri) {\n const formStore = $rdf.Util.uri.document(form.uri)\n if (formStore.uri !== form.uri) {\n // The form is a hash-type URI\n const e = box.appendChild(\n UI.widgets.editFormButton(\n dom,\n box,\n form,\n formStore,\n complainIfBad\n )\n )\n e.setAttribute('style', 'float: right;')\n }\n }\n const anchor = dom.createElement('a')\n anchor.setAttribute('href', form.uri)\n heading.appendChild(anchor)\n anchor.textContent = UI.utils.label(form, true)\n\n /* Keep tis as a reminder to let a New one have its URI given by user\n mention(\"Where will this information be stored?\")\n const ele = dom.createElement('input');\n box.appendChild(ele);\n ele.setAttribute('type', 'text');\n ele.setAttribute('size', '72');\n ele.setAttribute('maxlength', '1024');\n ele.setAttribute('style', 'font-size: 80%; color:#222;');\n ele.value = store.uri\n */\n\n UI.widgets.appendForm(\n dom,\n box,\n {},\n subject,\n form,\n store,\n complainIfBad\n )\n }\n }) // end: when store loded\n } // renderFormsFor\n\n // Figure out what store\n\n // Which places are editable and have stuff about the subject?\n\n let store = null\n\n // 1. The document URI of the subject itself\n const docuri = $rdf.Util.uri.docpart(subject.uri)\n if (subject.uri !== docuri && kb.updater.editable(docuri, kb)) {\n store = subject.doc()\n } // an editable data file with hash\n\n store = store || kb.any(kb.sym(docuri), ns.link('annotationStore'))\n\n // 2. where stuff is already stored\n if (!store) {\n const docs = {}\n const docList = []\n store.statementsMatching(subject).forEach(function (st) {\n docs[st.why.uri] = 1\n })\n store\n .statementsMatching(undefined, undefined, subject)\n .forEach(function (st) {\n docs[st.why.uri] = 2\n })\n for (const d in docs) docList.push(docs[d], d)\n docList.sort()\n for (let i = 0; i < docList.length; i++) {\n const uri = docList[i][1]\n if (uri && store.updater.editable(uri)) {\n store = store.sym(uri)\n break\n }\n }\n }\n\n // 3. In a workspace store\n // @@ TODO: Can probably remove _followeach (not done this time because the commit is a very safe refactor)\n const _followeach = function (kb, subject, path) {\n if (path.length === 0) return [subject]\n const oo = kb.each(subject, path[0])\n let res = []\n for (let i = 0; i < oo.length; i++) {\n res = res.concat(_followeach(kb, oo[i], path.slice(1)))\n }\n return res\n }\n\n const date = '2014' // @@@@@@@@@@@@ pass as parameter\n\n if (store) {\n // mention(\"@@ Ok, we have a store <\" + store.uri + \">.\");\n renderFormsFor(store, subject)\n } else {\n complain('No suitable store is known, to edit <' + subject.uri + '>.')\n const foobarbaz = UI.authn.selectWorkspace(dom, function (ws) {\n mention('Workspace selected OK: ' + ws)\n\n const activities = store.each(undefined, ns.space('workspace'), ws)\n for (let j = 0; j < activities.length; j++) {\n const act = activities[j]\n\n const subjectDoc2 = store.any(ws, ns.space('store'))\n const start = store.any(ws, ns.cal('dtstart')).value()\n const end = store.any(ws, ns.cal('dtend')).value()\n if (subjectDoc2 && start && end && start <= date && end > date) {\n renderFormsFor(subjectDoc2, subject)\n break\n } else {\n complain('Note no suitable annotation store in activity: ' + act)\n }\n }\n })\n box.appendChild(foobarbaz)\n }\n\n return box\n }\n}\n"],"file":"pane.js"}
@@ -1,22 +1,28 @@
1
1
  "use strict";
2
2
 
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _solidUi = require("solid-ui");
9
+
10
+ var _rdflib = require("rdflib");
11
+
12
+ var _marked = require("marked");
13
+
3
14
  /* Human-readable Pane
4
15
  **
5
16
  ** This outline pane contains the document contents for an HTML document
6
17
  ** This is for peeking at a page, because the user might not want to leave the data browser.
7
18
  */
8
- var UI = require('solid-ui');
9
-
10
- var $rdf = require('rdflib');
11
-
12
- module.exports = {
13
- icon: UI.icons.originalIconBase + 'tango/22-text-x-generic.png',
19
+ var humanReadablePane = {
20
+ icon: _solidUi.icons.originalIconBase + 'tango/22-text-x-generic.png',
14
21
  name: 'humanReadable',
15
22
  label: function label(subject, context) {
16
- var kb = context.session.store;
17
- var ns = UI.ns; // See also the source pane, which has lower precedence.
23
+ var kb = context.session.store; // See also the source pane, which has lower precedence.
18
24
 
19
- var allowed = ['text/plain', 'text/html', 'application/xhtml+xml', 'image/png', 'image/jpeg', 'application/pdf', 'video/mp4'];
25
+ var allowed = ['text/plain', 'text/html', 'text/markdown', 'application/xhtml+xml', 'image/png', 'image/jpeg', 'application/pdf', 'video/mp4'];
20
26
 
21
27
  var hasContentTypeIn = function hasContentTypeIn(kb, x, displayables) {
22
28
  var cts = kb.fetcher.getHeader(x, 'content-type');
@@ -39,7 +45,7 @@ module.exports = {
39
45
  var t = kb.findTypeURIs(subject);
40
46
 
41
47
  for (var k = 0; k < displayables.length; k++) {
42
- if ($rdf.Util.mediaTypeClass(displayables[k]).uri in t) {
48
+ if (_rdflib.Util.mediaTypeClass(displayables[k]).uri in t) {
43
49
  return true;
44
50
  }
45
51
  }
@@ -50,7 +56,7 @@ module.exports = {
50
56
  if (!subject.uri) return null; // no bnodes
51
57
 
52
58
  var t = kb.findTypeURIs(subject);
53
- if (t[ns.link('WebPage').uri]) return 'view';
59
+ if (t[_solidUi.ns.link('WebPage').uri]) return 'view';
54
60
 
55
61
  if (hasContentTypeIn(kb, subject, allowed) || hasContentTypeIn2(kb, subject, allowed)) {
56
62
  return 'View';
@@ -61,13 +67,7 @@ module.exports = {
61
67
  render: function render(subject, context) {
62
68
  var myDocument = context.dom;
63
69
  var div = myDocument.createElement('div');
64
- var kb = context.session.store; // @@ When we can, use CSP to turn off scripts within the iframe
65
-
66
- div.setAttribute('class', 'docView');
67
- var iframe = myDocument.createElement('IFRAME');
68
- iframe.setAttribute('src', subject.uri); // allow-same-origin
69
-
70
- iframe.setAttribute('class', 'doc');
70
+ var kb = context.session.store;
71
71
  var cts = kb.fetcher.getHeader(subject.doc(), 'content-type');
72
72
  var ct = cts ? cts[0] : null;
73
73
 
@@ -75,21 +75,53 @@ module.exports = {
75
75
  console.log('humanReadablePane: c-t:' + ct);
76
76
  } else {
77
77
  console.log('humanReadablePane: unknown content-type?');
78
+ } // @@ When we can, use CSP to turn off scripts within the iframe
79
+
80
+
81
+ div.setAttribute('class', 'docView');
82
+ var element = ct === 'text/markdown' ? 'DIV' : 'IFRAME';
83
+ var frame = myDocument.createElement(element); // let dataUri
84
+ // render markdown to html
85
+
86
+ var markdownHtml = function markdownHtml() {
87
+ kb.fetcher.webOperation('GET', subject.uri).then(function (response) {
88
+ var markdownText = response.responseText;
89
+ var lines = Math.min(30, markdownText.split(/\n/).length + 5);
90
+
91
+ var res = _marked.marked.parse(markdownText); // dataUri = 'data:text/html;charset=utf-8,' + encodeURIComponent(res)
92
+ // iframe.setAttribute('src', dataUri)
93
+
94
+
95
+ frame.innerHTML = res;
96
+ frame.setAttribute('class', 'doc');
97
+ frame.setAttribute('style', "border: 1px solid; padding: 1em; height: ".concat(lines, "em; width: 800px; resize: both; overflow: auto;"));
98
+ });
99
+ };
100
+
101
+ if (ct === 'text/markdown') {
102
+ markdownHtml();
103
+ } else {
104
+ frame.setAttribute('src', subject.uri); // allow-same-origin
105
+
106
+ frame.setAttribute('class', 'doc');
107
+ frame.setAttribute('style', 'resize = both; height:120em; width:80em;');
78
108
  } // @@ Note below - if we set ANY sandbox, then Chrome and Safari won't display it if it is PDF.
79
109
  // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe
80
110
  // You can;'t have any sandbox and allow plugins.
81
111
  // We could sandbox only HTML files I suppose.
82
112
  // HTML5 bug: https://lists.w3.org/Archives/Public/public-html/2011Jun/0330.html
83
113
  // iframe.setAttribute('sandbox', 'allow-same-origin allow-forms'); // allow-scripts ?? no documents should be static
84
-
85
-
86
- iframe.setAttribute('style', 'resize = both; height: 120em; width:80em;'); // iframe.setAttribute('height', '480')
114
+ // iframe.setAttribute('height', '480')
87
115
  // iframe.setAttribute('width', '640')
88
116
 
117
+
89
118
  var tr = myDocument.createElement('TR');
90
- tr.appendChild(iframe);
119
+ tr.appendChild(frame);
91
120
  div.appendChild(tr);
92
121
  return div;
93
122
  }
94
- }; // ends
123
+ };
124
+ var _default = humanReadablePane; // ends
125
+
126
+ exports["default"] = _default;
95
127
  //# sourceMappingURL=humanReadablePane.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/humanReadablePane.js"],"names":["UI","require","$rdf","module","exports","icon","icons","originalIconBase","name","label","subject","context","kb","session","store","ns","allowed","hasContentTypeIn","x","displayables","cts","fetcher","getHeader","j","length","k","indexOf","hasContentTypeIn2","t","findTypeURIs","Util","mediaTypeClass","uri","link","render","myDocument","dom","div","createElement","setAttribute","iframe","doc","ct","console","log","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 */\nconst UI = require('solid-ui')\nconst $rdf = require('rdflib')\n\nmodule.exports = {\n icon: UI.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 const ns = UI.ns\n\n // See also the source pane, which has lower precedence.\n\n const allowed = [\n 'text/plain',\n 'text/html',\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 ($rdf.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 // @@ When we can, use CSP to turn off scripts within the iframe\n div.setAttribute('class', 'docView')\n const iframe = myDocument.createElement('IFRAME')\n iframe.setAttribute('src', subject.uri) // allow-same-origin\n iframe.setAttribute('class', 'doc')\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 // @@ 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('style', 'resize = both; height: 120em; width:80em;')\n // iframe.setAttribute('height', '480')\n // iframe.setAttribute('width', '640')\n const tr = myDocument.createElement('TR')\n tr.appendChild(iframe)\n div.appendChild(tr)\n return div\n }\n}\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","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,CAiBlC;AAEA;;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,CAH2D,CAI3D;AACA;;;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,OATD;AAUD,KAXD;;AAaA,QAAIZ,EAAE,KAAK,eAAX,EAA4B;AAC1BM,MAAAA,YAAY;AACb,KAFD,MAEO;AACLD,MAAAA,KAAK,CAACF,YAAN,CAAmB,KAAnB,EAA0BjC,OAAO,CAACqB,GAAlC,EADK,CACkC;;AACvCc,MAAAA,KAAK,CAACF,YAAN,CAAmB,OAAnB,EAA4B,KAA5B;AACAE,MAAAA,KAAK,CAACF,YAAN,CAAmB,OAAnB,EAA4B,0CAA5B;AACD,KAvCiC,CAyClC;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;;;AACA,QAAMiB,EAAE,GAAGzB,UAAU,CAACG,aAAX,CAAyB,IAAzB,CAAX;AACAsB,IAAAA,EAAE,CAACC,WAAH,CAAehB,KAAf;AACAR,IAAAA,GAAG,CAACwB,WAAJ,CAAgBD,EAAhB;AACA,WAAOvB,GAAP;AACD;AApHuB,CAA1B;eAuHejC,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 // let dataUri\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 // dataUri = 'data:text/html;charset=utf-8,' + encodeURIComponent(res)\n // iframe.setAttribute('src', dataUri)\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 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\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"}
package/lib/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
4
 
5
5
  /*
6
6
  Microblog pane
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
@@ -487,7 +487,7 @@ function _default(context) {
487
487
 
488
488
  _getPods = function _getPods3() {
489
489
  _getPods = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() {
490
- var addPodRoot, _addPodRoot, addPodRootFromUrl, _addPodRootFromUrl, pods;
490
+ var addPodRoot, _addPodRoot, addPodRootFromUrl, _addPodRootFromUrl, pods, uri, podUrl;
491
491
 
492
492
  return regeneratorRuntime.wrap(function _callee4$(_context4) {
493
493
  while (1) {
@@ -597,27 +597,30 @@ function _default(context) {
597
597
  case 13:
598
598
  pods = kb.each(me, ns.space('storage'), null, me.doc());
599
599
  _context4.prev = 14;
600
- _context4.next = 17;
601
- return addPodRootFromUrl(window.location.href.substring(0, window.location.href.lastIndexOf('/') + 1));
600
+ // if uri then SolidOS is a browse.html web app
601
+ uri = new URL(window.location.href).searchParams.get('uri');
602
+ podUrl = uri || window.location.href;
603
+ _context4.next = 19;
604
+ return addPodRootFromUrl(podUrl.substring(0, podUrl.lastIndexOf('/') + 1));
602
605
 
603
- case 17:
604
- _context4.next = 22;
606
+ case 19:
607
+ _context4.next = 24;
605
608
  break;
606
609
 
607
- case 19:
608
- _context4.prev = 19;
610
+ case 21:
611
+ _context4.prev = 21;
609
612
  _context4.t1 = _context4["catch"](14);
610
613
  console.error('cannot load container', _context4.t1);
611
614
 
612
- case 22:
615
+ case 24:
613
616
  if (pods.length) {
614
- _context4.next = 24;
617
+ _context4.next = 26;
615
618
  break;
616
619
  }
617
620
 
618
621
  return _context4.abrupt("return", []);
619
622
 
620
- case 24:
623
+ case 26:
621
624
  return _context4.abrupt("return", pods.map(function (pod, index) {
622
625
  function split(item) {
623
626
  return item.uri.split('//')[1].slice(0, -1);
@@ -633,12 +636,12 @@ function _default(context) {
633
636
  };
634
637
  }));
635
638
 
636
- case 25:
639
+ case 27:
637
640
  case "end":
638
641
  return _context4.stop();
639
642
  }
640
643
  }
641
- }, _callee4, null, [[4, 9], [14, 19]]);
644
+ }, _callee4, null, [[4, 9], [14, 21]]);
642
645
  }));
643
646
  return _getPods.apply(this, arguments);
644
647
  };
@@ -699,10 +702,12 @@ function _default(context) {
699
702
  var options,
700
703
  dashboardContainer,
701
704
  outlineContainer,
702
- tab,
705
+ _tab,
703
706
  dashboard,
707
+ tab,
704
708
  closeDashboard,
705
709
  _args7 = arguments;
710
+
706
711
  return regeneratorRuntime.wrap(function _callee7$(_context8) {
707
712
  while (1) {
708
713
  switch (_context8.prev = _context8.next) {
@@ -723,14 +728,15 @@ function _default(context) {
723
728
 
724
729
  outlineContainer.style.display = 'none';
725
730
  dashboardContainer.style.display = 'inherit';
726
- tab = dashboardContainer.querySelector("[data-global-pane-name=\"".concat(options.pane, "\"]"));
731
+ _tab = dashboardContainer.querySelector("[data-global-pane-name=\"".concat(options.pane, "\"]"));
727
732
 
728
- if (!tab) {
733
+ if (!_tab) {
729
734
  _context8.next = 11;
730
735
  break;
731
736
  }
732
737
 
733
- tab.click();
738
+ _tab.click();
739
+
734
740
  return _context8.abrupt("return");
735
741
 
736
742
  case 11:
@@ -750,8 +756,13 @@ function _default(context) {
750
756
 
751
757
  outlineContainer.style.display = 'none';
752
758
  dashboardContainer.appendChild(dashboard);
759
+ tab = dashboardContainer.querySelector("[data-global-pane-name=\"".concat(options.pane, "\"]"));
760
+
761
+ if (tab) {
762
+ tab.click();
763
+ }
753
764
 
754
- case 18:
765
+ case 20:
755
766
  case "end":
756
767
  return _context8.stop();
757
768
  }