solid-ui 2.4.21-f8053087 → 2.4.22-027fc53e

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.
Files changed (64) hide show
  1. package/README.md +23 -58
  2. package/dist/main.js +2201 -704
  3. package/dist/main.js.map +1 -1
  4. package/lib/acl/access-controller.js +2 -2
  5. package/lib/acl/access-controller.js.map +1 -1
  6. package/lib/acl/access-groups.d.ts +1 -1
  7. package/lib/acl/access-groups.js +1 -1
  8. package/lib/acl/access-groups.js.map +1 -1
  9. package/lib/acl/acl-control.d.ts +2 -2
  10. package/lib/acl/acl-control.js +5 -5
  11. package/lib/acl/acl-control.js.map +1 -1
  12. package/lib/acl/acl.d.ts +1 -1
  13. package/lib/acl/acl.js +1 -1
  14. package/lib/acl/acl.js.map +1 -1
  15. package/lib/acl/add-agent-buttons.d.ts +1 -1
  16. package/lib/acl/add-agent-buttons.js +1 -1
  17. package/lib/acl/add-agent-buttons.js.map +1 -1
  18. package/lib/acl/styles.d.ts +1 -1
  19. package/lib/acl/styles.js +1 -1
  20. package/lib/acl/styles.js.map +1 -1
  21. package/lib/chat/bookmarks.js +1 -2
  22. package/lib/chat/bookmarks.js.map +1 -1
  23. package/lib/chat/infinite.js.map +1 -1
  24. package/lib/iconBase.d.ts.map +1 -1
  25. package/lib/iconBase.js +4 -3
  26. package/lib/iconBase.js.map +1 -1
  27. package/lib/index.js +1 -1
  28. package/lib/index.js.map +1 -1
  29. package/lib/jss/index.d.ts +2 -2
  30. package/lib/jss/index.js +2 -2
  31. package/lib/jss/index.js.map +1 -1
  32. package/lib/login/login.d.ts +55 -51
  33. package/lib/login/login.d.ts.map +1 -1
  34. package/lib/login/login.js +319 -370
  35. package/lib/login/login.js.map +1 -1
  36. package/lib/participation.js +1 -1
  37. package/lib/participation.js.map +1 -1
  38. package/lib/style_multiSelect.js +67 -0
  39. package/lib/style_multiSelect.js.map +1 -0
  40. package/lib/tabs.d.ts +2 -2
  41. package/lib/tabs.d.ts.map +1 -1
  42. package/lib/tabs.js +39 -24
  43. package/lib/tabs.js.map +1 -1
  44. package/lib/utils/headerFooterHelpers.js +24 -19
  45. package/lib/utils/headerFooterHelpers.js.map +1 -1
  46. package/lib/utils/label.js +1 -1
  47. package/lib/utils/label.js.map +1 -1
  48. package/lib/versionInfo.js +7 -7
  49. package/lib/versionInfo.js.map +1 -1
  50. package/lib/widgets/buttons.d.ts.map +1 -1
  51. package/lib/widgets/buttons.js +2 -0
  52. package/lib/widgets/buttons.js.map +1 -1
  53. package/lib/widgets/error.d.ts +0 -12
  54. package/lib/widgets/error.d.ts.map +1 -1
  55. package/lib/widgets/error.js +5 -0
  56. package/lib/widgets/error.js.map +1 -1
  57. package/lib/widgets/forms/autocomplete/language.js.map +1 -1
  58. package/lib/widgets/forms/autocomplete/publicData.js +1 -1
  59. package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
  60. package/lib/widgets/forms.js +427 -161
  61. package/lib/widgets/forms.js.map +1 -1
  62. package/lib/widgets/multiSelect.js +784 -0
  63. package/lib/widgets/multiSelect.js.map +1 -0
  64. package/package.json +14 -11
package/lib/tabs.js CHANGED
@@ -116,7 +116,7 @@ var TabElement = /*#__PURE__*/function (_HTMLElement3) {
116
116
  /**
117
117
  * Use this widget to generate tabs from triples set in the global store.
118
118
  *
119
- * [Here you can see examples of the tabs](https://solid.github.io/solid-ui/examples/tabs/).
119
+ * [Here you can see examples of the tabs](https://solidos.github.io/solid-ui/examples/tabs/).
120
120
  *
121
121
  * It assumes that items to use for tabs will be in a collection by default,
122
122
  * e.g.:
@@ -278,9 +278,9 @@ function tabWidget(options) {
278
278
  var marginsPrepped = margins.concat(margins).slice(orientation, orientation + 4);
279
279
  var marginsStyle = "margin: ".concat(marginsPrepped.join(' '), ";");
280
280
  var paddingStyle = "padding: ".concat(marginsPrepped.join(' '), ";");
281
- var tabStyle = cornersStyle + "padding: 0.7em; max-width: 20em; color: ".concat(color, ";");
282
- var unselectedStyle = "".concat(tabStyle + marginsStyle, "opacity: 50%; background-color: ").concat(backgroundColor, ";");
283
- var selectedStyle = "".concat(tabStyle + marginsStyle, "background-color: ").concat(selectedColor, ";");
281
+ var tabStyle = cornersStyle + "position: relative; padding: 0.7em; max-width: 20em; color: ".concat(color, ";");
282
+ var unselectedStyle = "".concat(tabStyle + marginsStyle, " opacity: 50%; background-color: ").concat(backgroundColor, ";");
283
+ var selectedStyle = "".concat(tabStyle + marginsStyle, " background-color: ").concat(selectedColor, ";");
284
284
  var shownStyle = 'height: 100%; width: 100%;';
285
285
  var hiddenStyle = shownStyle + 'display: none;';
286
286
  rootElement.refresh = orderedSync;
@@ -296,7 +296,9 @@ function tabWidget(options) {
296
296
  var selectedTabURI = options.selectedTab.uri;
297
297
  var selectedTab1 = Array.from(tabContainer.children) // @ts-ignore
298
298
  .find(function (tab) {
299
- return tab.subject && tab.subject.uri && tab.subject.uri === selectedTabURI;
299
+ return tab.subject && // @ts-ignore
300
+ tab.subject.uri && // @ts-ignore
301
+ tab.subject.uri === selectedTabURI;
300
302
  });
301
303
  var tab = selectedTab1 || selectedTab0 || tabContainer.children[0];
302
304
  var clickMe = tab.firstChild; // @ts-ignore
@@ -311,7 +313,7 @@ function tabWidget(options) {
311
313
  function addCancelButton(tabContainer) {
312
314
  if (tabContainer.dataset.onCloseSet) {
313
315
  // @@ TODO: this is only here to make the browser tests work
314
- // Discussion at https://github.com/solid/solid-ui/pull/110#issuecomment-527080663
316
+ // Discussion at https://github.com/solidos/solid-ui/pull/110#issuecomment-527080663
315
317
  var existingCancelButton = tabContainer.querySelector('.unstyled');
316
318
  tabContainer.removeChild(existingCancelButton);
317
319
  }
@@ -338,35 +340,50 @@ function tabWidget(options) {
338
340
 
339
341
  function makeNewSlot(item) {
340
342
  var ele = dom.createElement(tabElement);
343
+ ele.setAttribute('style', unselectedStyle);
341
344
  ele.subject = item;
342
- var div = ele.appendChild(dom.createElement('div'));
343
- div.setAttribute('style', unselectedStyle);
344
- div.addEventListener('click', function (e) {
345
- if (!e.metaKey) {
346
- resetTabStyle();
347
- resetBodyStyle();
345
+ var div = ele.appendChild(dom.createElement('button'));
346
+ div.setAttribute('style', 'background: none; border: none; font: inherit; cursor: pointer');
347
+ var ellipsis = dom.createElement('button');
348
+ ellipsis.textContent = '...';
349
+ ellipsis.setAttribute('style', 'position: absolute; right: 0; bottom: 0; width: 20%; background: none; color: inherit; border: none; padding: 0; font: inherit; cursor: pointer; outline: inherit;');
350
+
351
+ div.onclick = function () {
352
+ resetTabStyle();
353
+ resetBodyStyle();
354
+ ele.setAttribute('style', selectedStyle);
355
+ if (!ele.bodyTR) return;
356
+ ele.bodyTR.setAttribute('style', shownStyle);
357
+ var bodyMain = getOrCreateContainerElement(ele);
358
+
359
+ if (options.renderMain && ele.subject && bodyMain.asSettings !== false) {
360
+ bodyMain.innerHTML = 'loading item ...' + item;
361
+ options.renderMain(bodyMain, ele.subject);
362
+ bodyMain.asSettings = false;
348
363
  }
364
+ };
349
365
 
350
- div.setAttribute('style', selectedStyle);
366
+ ellipsis.onclick = function () {
367
+ resetTabStyle();
368
+ resetBodyStyle();
369
+ ele.setAttribute('style', selectedStyle);
351
370
  if (!ele.bodyTR) return;
352
371
  ele.bodyTR.setAttribute('style', shownStyle);
353
372
  var bodyMain = getOrCreateContainerElement(ele);
354
373
 
355
- if (options.renderTabSettings && e.altKey && ele.subject && bodyMain.asSettings !== true) {
374
+ if (options.renderTabSettings && ele.subject && bodyMain.asSettings !== true) {
356
375
  bodyMain.innerHTML = 'loading settings ...' + item;
357
376
  options.renderTabSettings(bodyMain, ele.subject);
358
377
  bodyMain.asSettings = true;
359
- } else if (options.renderMain && ele.subject && bodyMain.asSettings !== false) {
360
- bodyMain.innerHTML = 'loading item ...' + item;
361
- options.renderMain(bodyMain, ele.subject);
362
- bodyMain.asSettings = false;
363
378
  }
364
- });
379
+ };
365
380
 
366
381
  if (options.renderTab) {
367
382
  options.renderTab(div, item);
383
+ ele.appendChild(ellipsis);
368
384
  } else {
369
- div.textContent = (0, _utils.label)(item);
385
+ div.innerHTML = (0, _utils.label)(item);
386
+ ele.appendChild(ellipsis);
370
387
  }
371
388
 
372
389
  return ele;
@@ -446,10 +463,8 @@ function tabWidget(options) {
446
463
 
447
464
  if (_tab.classList.contains('unstyled')) {
448
465
  continue;
449
- }
450
-
451
- if (_tab.children[0]) {
452
- _tab.children[0].setAttribute('style', unselectedStyle);
466
+ } else {
467
+ _tab.setAttribute('style', unselectedStyle);
453
468
  }
454
469
  }
455
470
  }
package/lib/tabs.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tabs.ts"],"names":["ContainerElement","HTMLElement","TabWidgetElement","TabElement","tabWidget","options","subject","dom","document","orientation","parseInt","backgroundColor","flipped","vertical","onClose","getColors","selectedColor","color","bodyMainStyle","rootElement","createElement","setAttribute","navElement","appendChild","mainElement","tabContainer","tabElement","bodyContainer","corners","cornersPrepped","concat","slice","cornersStyle","join","margins","marginsPrepped","marginsStyle","paddingStyle","tabStyle","unselectedStyle","selectedStyle","shownStyle","hiddenStyle","refresh","orderedSync","startEmpty","children","length","selectedTab","selectedTab0","Array","from","map","tab","firstChild","find","dataset","name","selectedTabURI","uri","selectedTab1","clickMe","click","addCancelButton","onCloseSet","existingCancelButton","querySelector","removeChild","extraTab","classList","add","tabCancelButton","getAttribute","getItems","items","ordered","store","the","predicate","elements","each","makeNewSlot","item","ele","div","addEventListener","e","metaKey","resetTabStyle","resetBodyStyle","bodyTR","bodyMain","getOrCreateContainerElement","renderTabSettings","altKey","asSettings","innerHTML","renderMain","renderTab","textContent","newBodyMain","slot","i","j","left","right","differ","sameTerm","insertables","newSlot","newBodyDiv","insertBefore","contains","isLight","colorBlend","a","b","mix","ca","cb","res","str","hex","res2","split","h","l","x","total"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;;;;;AAEA;AACA;AACA;IACMA,gB;;;;;;;;;;;;;;;;;;;;kDAAyBC,W;;IAoBlBC,gB;;;;;;;;;;;;;;;;;;;;;;kDAAyBD,W;AAMtC;AACA;AACA;;;;;IACME,U;;;;;;;;;;;;;;;;;;;;;kDAAmBF,W;AAKzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASG,SAAT,CAAoBC,OAApB,EAA+C;AACpD,MAAMC,OAAO,GAAGD,OAAO,CAACC,OAAxB;AACA,MAAMC,GAAG,GAAGF,OAAO,CAACE,GAAR,IAAeC,QAA3B;AACA,MAAMC,WAAW,GAAGC,QAAQ,CAACL,OAAO,CAACI,WAAR,IAAuB,GAAxB,CAA5B;AACA,MAAME,eAAe,GAAGN,OAAO,CAACM,eAAR,IAA2B,SAAnD;AACA,MAAMC,OAAO,GAAGH,WAAW,GAAG,CAA9B;AACA,MAAMI,QAAQ,GAAGJ,WAAW,GAAG,CAA/B;AACA,MAAMK,OAAO,GAAGT,OAAO,CAACS,OAAxB;;AAEA,mBAA+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","sourcesContent":["import { cancelButton } from './widgets'\nimport { label } from './utils'\nimport { NamedNode } from 'rdflib'\nimport { store } from 'solid-logic'\n\n/**\n * @ignore\n */\nclass ContainerElement extends HTMLElement {\n asSettings?: boolean\n}\n\ntype TabWidgetOptions = {\n backgroundColor?: string\n dom?: HTMLDocument\n items?: Array<NamedNode>\n onClose?: (event: Event) => void\n ordered?: boolean\n orientation?: '0' | '1' | '2' | '3'\n predicate?: NamedNode\n renderMain?: (bodyMain: HTMLElement, subject: NamedNode) => void\n renderTab?: (tabDiv: HTMLDivElement, subject: NamedNode) => void\n renderTabSettings?: (bodyMain: ContainerElement, subject: NamedNode) => void\n selectedTab?: NamedNode\n startEmpty?: boolean\n subject?: NamedNode\n}\n\nexport class TabWidgetElement extends HTMLElement {\n bodyContainer?: HTMLElement\n refresh?: () => void\n tabContainer?: HTMLElement\n}\n\n/**\n * @ignore\n */\nclass TabElement extends HTMLElement {\n bodyTR?: HTMLElement\n subject?: NamedNode\n}\n\n/**\n * Use this widget to generate tabs from triples set in the global store.\n *\n * [Here you can see examples of the tabs](https://solid.github.io/solid-ui/examples/tabs/).\n *\n * It assumes that items to use for tabs will be in a collection by default,\n * e.g.:\n *\n * ```turtle\n * :subject :predicate ( :item1 :item2 ) .\n * ```\n *\n * You can override this by setting `ordered: false`, in which case it expects\n * unordered triples:\n *\n * ```turtle\n * :subject :predicate :item1, :item 2 .\n * ```\n *\n * Triples that are not ordered in collection are in principle not sorted,\n * which means that tabs could change order every time you render the widget.\n * But in this case the widget will try to sort it in order to keep it\n * consistent.\n *\n * In both of these cases you need to define options `subject` and `predicate`\n * to tell the widget which triples it should be looking for.\n *\n * Finally you can set items manually, using the `items` option, e.g.:\n *\n * ```javascript\n * {\n * items: [\n * namedNode('https://domain.tld/#item1'),\n * namedNode('https://domain.tld/#item2')\n * ]\n * }\n * ```\n *\n * When you set items manually you do not need to set `subject` and\n * `predicate`.\n *\n * In any case you probably want to set the renderMain option to specify\n * what should be rendered for the various items, e.g.:\n *\n * ```javascript\n * {\n * renderMain: (bodyMain, subject) => {\n * bodyMain.innerHTML = renderItem(subject)\n * }\n * }\n * ```\n *\n * **Note:** `renderItem` is a custom function that you need to define yourself.\n *\n * The option `renderTabSettings` allows you to render a custom view in the\n * body container that is shown when you hold the ALT key and click on a\n * tab. It works very much like the `renderMain` option:\n *\n * ```javascript\n * {\n * renderTabSettings: (bodyMain, subject) => {\n * bodyMain.innerHTML = renderTabSettings(subject)\n * }\n * }\n * ```\n *\n * **Note:** `renderTabSettings` is a custom function that you need to define\n * yourself.\n *\n * By default the widget will try to guess the label by using the\n * [[utils.label]] function. If you want to customize this yourself, you can\n * use the `renderTab` option:\n *\n * ```javascript\n * {\n * renderTab: (tabDiv, subject) => {\n * tabDiv.innerText = renderTabText(subject)\n * }\n * }\n * ```\n *\n * **Note:** `renderTabText` is a custom function you need to define yourself.\n *\n * The option renderTab is also important if you want to set which tab should\n * be selected once the widget is rendered. By default it will simply select\n * the first tab, but you can override by setting `dataset.name` on the tab\n * and referring to the same string in `selectedTab`:\n *\n * ```javascript\n * {\n * renderTab: (tabDiv, subject) => {\n * tabDiv.dataset.name = subject.uri\n * },\n * selectedTab: item2.uri\n * }\n * ```\n *\n * You can apply a color to use for tabs and border of the container by using\n * option `background-color`. This is #ddddcc by default.\n *\n * You can override the document object that the widget uses to generate DOM\n * elements by setting the option `dom`. This is encouraged to set if you\n * intend your functionality to be used in environments that don't provide\n * a global `document` object.\n *\n * If you want to render a close button next to the tabs you can set option\n * `onClose` which takes a callback function that is triggered when the\n * button is clicked:\n *\n * ```javascript\n * {\n * onClose: (event) => {\n * // do something that hides the widget altogether\n * }\n * }\n * ```\n *\n * The option `orientation` allows you to set which side the tabs should be\n * located: `'0'` = Top, `'1'` = Left, `'2'` = Bottom, `'3'` = Right\n *\n * If you don't want to render anything in the body container by default,\n * you can set the option `startEmpty` to `true`.\n *\n * @param options\n */\nexport function tabWidget (options: TabWidgetOptions) {\n const subject = options.subject\n const dom = options.dom || document\n const orientation = parseInt(options.orientation || '0')\n const backgroundColor = options.backgroundColor || '#ddddcc'\n const flipped = orientation & 2\n const vertical = orientation & 1\n const onClose = options.onClose\n\n const [selectedColor, color] = getColors(backgroundColor)\n const bodyMainStyle = `flex: 2; width: auto; height: 100%; border: 0.1em; border-style: solid; border-color: ${selectedColor}; padding: 1em;`\n const rootElement: TabWidgetElement = dom.createElement('div') // 20200117a\n\n rootElement.setAttribute('style', 'display: flex; height: 100%; width: 100%; flex-direction: ' +\n (vertical ? 'row' : 'column') + (flipped ? '-reverse;' : ';'))\n\n const navElement = rootElement.appendChild(dom.createElement('nav'))\n navElement.setAttribute('style', 'margin: 0;')\n\n const mainElement = rootElement.appendChild(dom.createElement('main'))\n\n mainElement.setAttribute('style', 'margin: 0; width:100%; height: 100%;') // override tabbedtab.css\n const tabContainer = navElement.appendChild(dom.createElement('ul'))\n tabContainer.setAttribute('style', `\n list-style-type: none;\n display: flex;\n height: 100%;\n width: 100%;\n margin: 0;\n padding: 0;\n flex-direction: ${(vertical ? 'column' : 'row')}\n `)\n\n const tabElement = 'li'\n\n const bodyContainer = mainElement\n rootElement.tabContainer = tabContainer\n rootElement.bodyContainer = bodyContainer\n\n const corners = ['0.2em', '0.2em', '0', '0'] // top left, TR, BR, BL\n const cornersPrepped = corners.concat(corners).slice(orientation, orientation + 4)\n const cornersStyle = `border-radius: ${cornersPrepped.join(' ')};`\n\n const margins = ['0.3em', '0.3em', '0', '0.3em'] // top, right, bottom, left\n const marginsPrepped = margins.concat(margins).slice(orientation, orientation + 4)\n const marginsStyle = `margin: ${marginsPrepped.join(' ')};`\n\n const paddingStyle = `padding: ${marginsPrepped.join(' ')};`\n\n const tabStyle = cornersStyle + `padding: 0.7em; max-width: 20em; color: ${color};`\n const unselectedStyle = `${tabStyle + marginsStyle}opacity: 50%; background-color: ${backgroundColor};`\n const selectedStyle = `${tabStyle + marginsStyle}background-color: ${selectedColor};`\n const shownStyle = 'height: 100%; width: 100%;'\n const hiddenStyle = shownStyle + 'display: none;'\n rootElement.refresh = orderedSync\n orderedSync()\n\n if (!options.startEmpty && tabContainer.children.length && options.selectedTab) {\n const selectedTab0 = Array.from(tabContainer.children) // Version left for compatability with ??\n .map(tab => tab.firstChild as HTMLElement)\n .find(tab => tab.dataset.name === options.selectedTab)\n\n const selectedTabURI = options.selectedTab.uri\n const selectedTab1 = Array.from(tabContainer.children)\n // @ts-ignore\n .find(tab => (tab as TabElement).subject && (tab as TabElement).subject.uri && (tab as TabElement).subject.uri === selectedTabURI)\n\n const tab = selectedTab1 || selectedTab0 || tabContainer.children[0] as HTMLButtonElement\n const clickMe = tab.firstChild\n // @ts-ignore\n if (clickMe) clickMe.click()\n } else if (!options.startEmpty) {\n (tabContainer.children[0].firstChild as HTMLButtonElement).click() // Open first tab\n }\n return rootElement\n\n function addCancelButton (tabContainer) {\n if (tabContainer.dataset.onCloseSet) {\n // @@ TODO: this is only here to make the browser tests work\n // Discussion at https://github.com/solid/solid-ui/pull/110#issuecomment-527080663\n const existingCancelButton = tabContainer.querySelector('.unstyled')\n tabContainer.removeChild(existingCancelButton)\n }\n const extraTab = dom.createElement(tabElement)\n extraTab.classList.add('unstyled')\n const tabCancelButton = cancelButton(dom, onClose)\n tabCancelButton.setAttribute('style', tabCancelButton.getAttribute('style') + paddingStyle)\n extraTab.appendChild(tabCancelButton)\n tabContainer.appendChild(extraTab)\n tabContainer.dataset.onCloseSet = 'true'\n }\n\n function getItems (): Array<NamedNode> {\n if (options.items) return options.items\n if (options.ordered !== false) {\n // options.ordered defaults to true\n return (store.the(subject, options.predicate) as any).elements\n } else {\n return store.each(subject, options.predicate) as any\n }\n }\n\n function makeNewSlot (item: NamedNode) {\n const ele = dom.createElement(tabElement) as TabElement\n ele.subject = item\n const div = ele.appendChild(dom.createElement('div'))\n div.setAttribute('style', unselectedStyle)\n\n div.addEventListener('click', function (e) {\n if (!e.metaKey) {\n resetTabStyle()\n resetBodyStyle()\n }\n div.setAttribute('style', selectedStyle)\n if (!ele.bodyTR) return\n ele.bodyTR.setAttribute('style', shownStyle)\n const bodyMain = getOrCreateContainerElement(ele)\n if (options.renderTabSettings && e.altKey && ele.subject && bodyMain.asSettings !== true) {\n bodyMain.innerHTML = 'loading settings ...' + item\n options.renderTabSettings(bodyMain, ele.subject)\n bodyMain.asSettings = true\n } else if (options.renderMain && ele.subject && bodyMain.asSettings !== false) {\n bodyMain.innerHTML = 'loading item ...' + item\n options.renderMain(bodyMain, ele.subject)\n bodyMain.asSettings = false\n }\n })\n\n if (options.renderTab) {\n options.renderTab(div, item)\n } else {\n div.textContent = label(item)\n }\n return ele\n\n function getOrCreateContainerElement (ele: TabElement): ContainerElement {\n const bodyMain = ele.bodyTR?.children[0] as ContainerElement\n if (bodyMain) return bodyMain\n const newBodyMain = ele.bodyTR!.appendChild(dom.createElement('main'))\n newBodyMain.setAttribute('style', bodyMainStyle)\n return newBodyMain\n }\n }\n\n // @@ Use common one from utils?\n function orderedSync () {\n const items = getItems()\n let slot: TabElement, i, j, left, right\n let differ = false\n // Find how many match at each end\n for (left = 0; left < tabContainer.children.length; left++) {\n slot = tabContainer.children[left] as TabElement\n if (\n left >= items.length ||\n (slot.subject && !slot.subject.sameTerm(items[left]))\n ) {\n differ = true\n break\n }\n }\n if (!differ && items.length === tabContainer.children.length) {\n return // The two just match in order: a case to optimize for\n }\n for (right = tabContainer.children.length - 1; right >= 0; right--) {\n slot = tabContainer.children[right] as TabElement\n j = right - tabContainer.children.length + items.length\n if (slot.subject && !slot.subject.sameTerm(items[j])) {\n break\n }\n }\n // The elements left ... right in tabContainer.children do not match\n const insertables = items.slice(left, right - tabContainer.children.length + items.length + 1)\n while (right >= left) {\n // remove extra\n tabContainer.removeChild(tabContainer.children[left])\n bodyContainer.removeChild(bodyContainer.children[left])\n right -= 1\n }\n for (i = 0; i < insertables.length; i++) {\n const newSlot = makeNewSlot(insertables[i])\n const newBodyDiv = dom.createElement('div')\n newSlot.bodyTR = newBodyDiv\n if (left === tabContainer.children.length) {\n // None left of original on right\n tabContainer.appendChild(newSlot)\n bodyContainer.appendChild(newBodyDiv)\n } else {\n tabContainer.insertBefore(newSlot, tabContainer.children[left + i])\n bodyContainer.insertBefore(newBodyDiv, bodyContainer.children[left + i])\n }\n }\n if (onClose) {\n addCancelButton(tabContainer)\n }\n }\n\n function resetTabStyle () {\n for (let i = 0; i < tabContainer.children.length; i++) {\n const tab = tabContainer.children[i]\n if (tab.classList.contains('unstyled')) {\n continue\n }\n if (tab.children[0]) {\n tab.children[0].setAttribute('style', unselectedStyle)\n }\n }\n }\n\n function resetBodyStyle () {\n for (let i = 0; i < bodyContainer.children.length; i++) {\n bodyContainer.children[i].setAttribute('style', hiddenStyle)\n }\n }\n}\n\n/**\n * @internal\n */\nfunction getColors (backgroundColor: string): [string, string] {\n return isLight(backgroundColor)\n ? [colorBlend(backgroundColor, '#ffffff', 0.3), '#000000']\n : [colorBlend(backgroundColor, '#000000', 0.3), '#ffffff']\n}\n\n/**\n * @internal\n */\nfunction colorBlend (a: string, b: string, mix: number): string {\n let ca, cb, res\n let str = '#'\n const hex = '0123456789abcdef'\n for (let i = 0; i < 3; i++) {\n ca = parseInt(a.slice(i * 2 + 1, i * 2 + 3), 16)\n cb = parseInt(b.slice(i * 2 + 1, i * 2 + 3), 16)\n res = ca * (1.0 - mix) + cb * mix // @@@ rounding\n const res2 = parseInt(('' + res).split('.')[0]) // @@ ugh\n const h = parseInt(('' + res2 / 16).split('.')[0]) // @@ ugh\n const l = parseInt(('' + (res2 % 16)).split('.')[0]) // @@ ugh\n str += hex[h] + hex[l]\n }\n return str\n}\n\n/**\n * @internal\n */\nfunction isLight (x: string): boolean {\n let total = 0\n for (let i = 0; i < 3; i++) {\n total += parseInt(x.slice(i * 2 + 1, i * 2 + 3), 16)\n }\n return total > 128 * 3\n}\n"],"file":"tabs.js"}
1
+ {"version":3,"sources":["../src/tabs.ts"],"names":["ContainerElement","HTMLElement","TabWidgetElement","TabElement","tabWidget","options","subject","dom","document","orientation","parseInt","backgroundColor","flipped","vertical","onClose","getColors","selectedColor","color","bodyMainStyle","rootElement","createElement","setAttribute","navElement","appendChild","mainElement","tabContainer","tabElement","bodyContainer","corners","cornersPrepped","concat","slice","cornersStyle","join","margins","marginsPrepped","marginsStyle","paddingStyle","tabStyle","unselectedStyle","selectedStyle","shownStyle","hiddenStyle","refresh","orderedSync","startEmpty","children","length","selectedTab","selectedTab0","Array","from","map","tab","firstChild","find","dataset","name","selectedTabURI","uri","selectedTab1","clickMe","click","addCancelButton","onCloseSet","existingCancelButton","querySelector","removeChild","extraTab","classList","add","tabCancelButton","getAttribute","getItems","items","ordered","store","the","predicate","elements","each","makeNewSlot","item","ele","div","ellipsis","textContent","onclick","resetTabStyle","resetBodyStyle","bodyTR","bodyMain","getOrCreateContainerElement","renderMain","asSettings","innerHTML","renderTabSettings","renderTab","newBodyMain","slot","i","j","left","right","differ","sameTerm","insertables","newSlot","newBodyDiv","insertBefore","contains","isLight","colorBlend","a","b","mix","ca","cb","res","str","hex","res2","split","h","l","x","total"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;;;;;AAEA;AACA;AACA;IACMA,gB;;;;;;;;;;;;;;;;;;;;kDAAyBC,W;;IAoBlBC,gB;;;;;;;;;;;;;;;;;;;;;;kDAAyBD,W;AAMtC;AACA;AACA;;;;;IACME,U;;;;;;;;;;;;;;;;;;;;;kDAAmBF,W;AAKzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASG,SAAT,CAAoBC,OAApB,EAA+C;AACpD,MAAMC,OAAO,GAAGD,OAAO,CAACC,OAAxB;AACA,MAAMC,GAAG,GAAGF,OAAO,CAACE,GAAR,IAAeC,QAA3B;AACA,MAAMC,WAAW,GAAGC,QAAQ,CAACL,OAAO,CAACI,WAAR,IAAuB,GAAxB,CAA5B;AACA,MAAME,eAAe,GAAGN,OAAO,CAACM,eAAR,IAA2B,SAAnD;AACA,MAAMC,OAAO,GAAGH,WAAW,GAAG,CAA9B;AACA,MAAMI,QAAQ,GAAGJ,WAAW,GAAG,CAA/B;AACA,MAAMK,OAAO,GAAGT,OAAO,CAACS,OAAxB;;AAEA,mBAA+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","sourcesContent":["import { cancelButton } from './widgets'\nimport { label } from './utils'\nimport { NamedNode } from 'rdflib'\nimport { store } from 'solid-logic'\n\n/**\n * @ignore\n */\nclass ContainerElement extends HTMLElement {\n asSettings?: boolean\n}\n\ntype TabWidgetOptions = {\n backgroundColor?: string;\n dom?: HTMLDocument;\n items?: Array<NamedNode>;\n onClose?: (event: Event) => void;\n ordered?: boolean;\n orientation?: '0' | '1' | '2' | '3';\n predicate?: NamedNode;\n renderMain?: (bodyMain: HTMLElement, subject: NamedNode) => void;\n renderTab?: (tabDiv: HTMLButtonElement, subject: NamedNode) => void;\n renderTabSettings?: (bodyMain: ContainerElement, subject: NamedNode) => void;\n selectedTab?: NamedNode;\n startEmpty?: boolean;\n subject?: NamedNode;\n};\n\nexport class TabWidgetElement extends HTMLElement {\n bodyContainer?: HTMLElement\n refresh?: () => void\n tabContainer?: HTMLElement\n}\n\n/**\n * @ignore\n */\nclass TabElement extends HTMLElement {\n bodyTR?: HTMLElement\n subject?: NamedNode\n}\n\n/**\n * Use this widget to generate tabs from triples set in the global store.\n *\n * [Here you can see examples of the tabs](https://solidos.github.io/solid-ui/examples/tabs/).\n *\n * It assumes that items to use for tabs will be in a collection by default,\n * e.g.:\n *\n * ```turtle\n * :subject :predicate ( :item1 :item2 ) .\n * ```\n *\n * You can override this by setting `ordered: false`, in which case it expects\n * unordered triples:\n *\n * ```turtle\n * :subject :predicate :item1, :item 2 .\n * ```\n *\n * Triples that are not ordered in collection are in principle not sorted,\n * which means that tabs could change order every time you render the widget.\n * But in this case the widget will try to sort it in order to keep it\n * consistent.\n *\n * In both of these cases you need to define options `subject` and `predicate`\n * to tell the widget which triples it should be looking for.\n *\n * Finally you can set items manually, using the `items` option, e.g.:\n *\n * ```javascript\n * {\n * items: [\n * namedNode('https://domain.tld/#item1'),\n * namedNode('https://domain.tld/#item2')\n * ]\n * }\n * ```\n *\n * When you set items manually you do not need to set `subject` and\n * `predicate`.\n *\n * In any case you probably want to set the renderMain option to specify\n * what should be rendered for the various items, e.g.:\n *\n * ```javascript\n * {\n * renderMain: (bodyMain, subject) => {\n * bodyMain.innerHTML = renderItem(subject)\n * }\n * }\n * ```\n *\n * **Note:** `renderItem` is a custom function that you need to define yourself.\n *\n * The option `renderTabSettings` allows you to render a custom view in the\n * body container that is shown when you hold the ALT key and click on a\n * tab. It works very much like the `renderMain` option:\n *\n * ```javascript\n * {\n * renderTabSettings: (bodyMain, subject) => {\n * bodyMain.innerHTML = renderTabSettings(subject)\n * }\n * }\n * ```\n *\n * **Note:** `renderTabSettings` is a custom function that you need to define\n * yourself.\n *\n * By default the widget will try to guess the label by using the\n * [[utils.label]] function. If you want to customize this yourself, you can\n * use the `renderTab` option:\n *\n * ```javascript\n * {\n * renderTab: (tabDiv, subject) => {\n * tabDiv.innerText = renderTabText(subject)\n * }\n * }\n * ```\n *\n * **Note:** `renderTabText` is a custom function you need to define yourself.\n *\n * The option renderTab is also important if you want to set which tab should\n * be selected once the widget is rendered. By default it will simply select\n * the first tab, but you can override by setting `dataset.name` on the tab\n * and referring to the same string in `selectedTab`:\n *\n * ```javascript\n * {\n * renderTab: (tabDiv, subject) => {\n * tabDiv.dataset.name = subject.uri\n * },\n * selectedTab: item2.uri\n * }\n * ```\n *\n * You can apply a color to use for tabs and border of the container by using\n * option `background-color`. This is #ddddcc by default.\n *\n * You can override the document object that the widget uses to generate DOM\n * elements by setting the option `dom`. This is encouraged to set if you\n * intend your functionality to be used in environments that don't provide\n * a global `document` object.\n *\n * If you want to render a close button next to the tabs you can set option\n * `onClose` which takes a callback function that is triggered when the\n * button is clicked:\n *\n * ```javascript\n * {\n * onClose: (event) => {\n * // do something that hides the widget altogether\n * }\n * }\n * ```\n *\n * The option `orientation` allows you to set which side the tabs should be\n * located: `'0'` = Top, `'1'` = Left, `'2'` = Bottom, `'3'` = Right\n *\n * If you don't want to render anything in the body container by default,\n * you can set the option `startEmpty` to `true`.\n *\n * @param options\n */\nexport function tabWidget (options: TabWidgetOptions) {\n const subject = options.subject\n const dom = options.dom || document\n const orientation = parseInt(options.orientation || '0')\n const backgroundColor = options.backgroundColor || '#ddddcc'\n const flipped = orientation & 2\n const vertical = orientation & 1\n const onClose = options.onClose\n\n const [selectedColor, color] = getColors(backgroundColor)\n const bodyMainStyle = `flex: 2; width: auto; height: 100%; border: 0.1em; border-style: solid; border-color: ${selectedColor}; padding: 1em;`\n const rootElement: TabWidgetElement = dom.createElement('div') // 20200117a\n\n rootElement.setAttribute(\n 'style',\n 'display: flex; height: 100%; width: 100%; flex-direction: ' +\n (vertical ? 'row' : 'column') +\n (flipped ? '-reverse;' : ';')\n )\n\n const navElement = rootElement.appendChild(dom.createElement('nav'))\n navElement.setAttribute('style', 'margin: 0;')\n\n const mainElement = rootElement.appendChild(dom.createElement('main'))\n\n mainElement.setAttribute('style', 'margin: 0; width:100%; height: 100%;') // override tabbedtab.css\n const tabContainer = navElement.appendChild(dom.createElement('ul'))\n tabContainer.setAttribute(\n 'style',\n `\n list-style-type: none;\n display: flex;\n height: 100%;\n width: 100%;\n margin: 0;\n padding: 0;\n flex-direction: ${vertical ? 'column' : 'row'}\n `\n )\n\n const tabElement = 'li'\n\n const bodyContainer = mainElement\n rootElement.tabContainer = tabContainer\n rootElement.bodyContainer = bodyContainer\n\n const corners = ['0.2em', '0.2em', '0', '0'] // top left, TR, BR, BL\n const cornersPrepped = corners.concat(corners).slice(orientation, orientation + 4)\n const cornersStyle = `border-radius: ${cornersPrepped.join(' ')};`\n\n const margins = ['0.3em', '0.3em', '0', '0.3em'] // top, right, bottom, left\n const marginsPrepped = margins.concat(margins).slice(orientation, orientation + 4)\n const marginsStyle = `margin: ${marginsPrepped.join(' ')};`\n\n const paddingStyle = `padding: ${marginsPrepped.join(' ')};`\n\n const tabStyle = cornersStyle + `position: relative; padding: 0.7em; max-width: 20em; color: ${color};`\n const unselectedStyle = `${\n tabStyle + marginsStyle\n } opacity: 50%; background-color: ${backgroundColor};`\n const selectedStyle = `${tabStyle + marginsStyle} background-color: ${selectedColor};`\n const shownStyle = 'height: 100%; width: 100%;'\n const hiddenStyle = shownStyle + 'display: none;'\n rootElement.refresh = orderedSync\n orderedSync()\n\n if (!options.startEmpty && tabContainer.children.length && options.selectedTab) {\n const selectedTab0 = Array.from(tabContainer.children) // Version left for compatability with ??\n .map((tab) => tab.firstChild as HTMLElement)\n .find((tab) => tab.dataset.name === options.selectedTab)\n\n const selectedTabURI = options.selectedTab.uri\n const selectedTab1 = Array.from(tabContainer.children)\n // @ts-ignore\n .find(\n (tab) =>\n (tab as TabElement).subject &&\n // @ts-ignore\n (tab as TabElement).subject.uri &&\n // @ts-ignore\n (tab as TabElement).subject.uri === selectedTabURI\n )\n\n const tab = selectedTab1 || selectedTab0 || (tabContainer.children[0] as HTMLButtonElement)\n const clickMe = tab.firstChild\n // @ts-ignore\n if (clickMe) clickMe.click()\n } else if (!options.startEmpty) {\n (tabContainer.children[0].firstChild as HTMLButtonElement).click() // Open first tab\n }\n return rootElement\n\n function addCancelButton (tabContainer) {\n if (tabContainer.dataset.onCloseSet) {\n // @@ TODO: this is only here to make the browser tests work\n // Discussion at https://github.com/solidos/solid-ui/pull/110#issuecomment-527080663\n const existingCancelButton = tabContainer.querySelector('.unstyled')\n tabContainer.removeChild(existingCancelButton)\n }\n const extraTab = dom.createElement(tabElement)\n extraTab.classList.add('unstyled')\n const tabCancelButton = cancelButton(dom, onClose)\n tabCancelButton.setAttribute('style', tabCancelButton.getAttribute('style') + paddingStyle)\n extraTab.appendChild(tabCancelButton)\n tabContainer.appendChild(extraTab)\n tabContainer.dataset.onCloseSet = 'true'\n }\n\n function getItems (): Array<NamedNode> {\n if (options.items) return options.items\n if (options.ordered !== false) {\n // options.ordered defaults to true\n return (store.the(subject, options.predicate) as any).elements\n } else {\n return store.each(subject, options.predicate) as any\n }\n }\n\n function makeNewSlot (item: NamedNode) {\n const ele = dom.createElement(tabElement) as TabElement\n ele.setAttribute('style', unselectedStyle)\n ele.subject = item\n const div = ele.appendChild(dom.createElement('button'))\n div.setAttribute('style', 'background: none; border: none; font: inherit; cursor: pointer')\n const ellipsis = dom.createElement('button')\n ellipsis.textContent = '...'\n ellipsis.setAttribute('style', 'position: absolute; right: 0; bottom: 0; width: 20%; background: none; color: inherit; border: none; padding: 0; font: inherit; cursor: pointer; outline: inherit;')\n\n div.onclick = function () {\n resetTabStyle()\n resetBodyStyle()\n ele.setAttribute('style', selectedStyle)\n if (!ele.bodyTR) return\n ele.bodyTR.setAttribute('style', shownStyle)\n const bodyMain = getOrCreateContainerElement(ele)\n if (options.renderMain && ele.subject && bodyMain.asSettings !== false) {\n bodyMain.innerHTML = 'loading item ...' + item\n options.renderMain(bodyMain, ele.subject)\n bodyMain.asSettings = false\n }\n }\n ellipsis.onclick = function () {\n resetTabStyle()\n resetBodyStyle()\n ele.setAttribute('style', selectedStyle)\n if (!ele.bodyTR) return\n ele.bodyTR.setAttribute('style', shownStyle)\n const bodyMain = getOrCreateContainerElement(ele)\n if (options.renderTabSettings && ele.subject && bodyMain.asSettings !== true) {\n bodyMain.innerHTML = 'loading settings ...' + item\n options.renderTabSettings(bodyMain, ele.subject)\n bodyMain.asSettings = true\n }\n }\n\n if (options.renderTab) {\n options.renderTab(div, item)\n ele.appendChild(ellipsis)\n } else {\n div.innerHTML = label(item)\n ele.appendChild(ellipsis)\n }\n return ele\n\n function getOrCreateContainerElement (ele: TabElement): ContainerElement {\n const bodyMain = ele.bodyTR?.children[0] as ContainerElement\n if (bodyMain) return bodyMain\n const newBodyMain = ele.bodyTR!.appendChild(dom.createElement('main'))\n newBodyMain.setAttribute('style', bodyMainStyle)\n return newBodyMain\n }\n }\n\n // @@ Use common one from utils?\n function orderedSync () {\n const items = getItems()\n let slot: TabElement, i, j, left, right\n let differ = false\n // Find how many match at each end\n for (left = 0; left < tabContainer.children.length; left++) {\n slot = tabContainer.children[left] as TabElement\n if (left >= items.length || (slot.subject && !slot.subject.sameTerm(items[left]))) {\n differ = true\n break\n }\n }\n if (!differ && items.length === tabContainer.children.length) {\n return // The two just match in order: a case to optimize for\n }\n for (right = tabContainer.children.length - 1; right >= 0; right--) {\n slot = tabContainer.children[right] as TabElement\n j = right - tabContainer.children.length + items.length\n if (slot.subject && !slot.subject.sameTerm(items[j])) {\n break\n }\n }\n // The elements left ... right in tabContainer.children do not match\n const insertables = items.slice(left, right - tabContainer.children.length + items.length + 1)\n while (right >= left) {\n // remove extra\n tabContainer.removeChild(tabContainer.children[left])\n bodyContainer.removeChild(bodyContainer.children[left])\n right -= 1\n }\n for (i = 0; i < insertables.length; i++) {\n const newSlot = makeNewSlot(insertables[i])\n const newBodyDiv = dom.createElement('div')\n newSlot.bodyTR = newBodyDiv\n if (left === tabContainer.children.length) {\n // None left of original on right\n tabContainer.appendChild(newSlot)\n bodyContainer.appendChild(newBodyDiv)\n } else {\n tabContainer.insertBefore(newSlot, tabContainer.children[left + i])\n bodyContainer.insertBefore(newBodyDiv, bodyContainer.children[left + i])\n }\n }\n if (onClose) {\n addCancelButton(tabContainer)\n }\n }\n\n function resetTabStyle () {\n for (let i = 0; i < tabContainer.children.length; i++) {\n const tab = tabContainer.children[i]\n if (tab.classList.contains('unstyled')) {\n continue\n } else {\n tab.setAttribute('style', unselectedStyle)\n }\n }\n }\n\n function resetBodyStyle () {\n for (let i = 0; i < bodyContainer.children.length; i++) {\n bodyContainer.children[i].setAttribute('style', hiddenStyle)\n }\n }\n}\n\n/**\n * @internal\n */\nfunction getColors (backgroundColor: string): [string, string] {\n return isLight(backgroundColor)\n ? [colorBlend(backgroundColor, '#ffffff', 0.3), '#000000']\n : [colorBlend(backgroundColor, '#000000', 0.3), '#ffffff']\n}\n\n/**\n * @internal\n */\nfunction colorBlend (a: string, b: string, mix: number): string {\n let ca, cb, res\n let str = '#'\n const hex = '0123456789abcdef'\n for (let i = 0; i < 3; i++) {\n ca = parseInt(a.slice(i * 2 + 1, i * 2 + 3), 16)\n cb = parseInt(b.slice(i * 2 + 1, i * 2 + 3), 16)\n res = ca * (1.0 - mix) + cb * mix // @@@ rounding\n const res2 = parseInt(('' + res).split('.')[0]) // @@ ugh\n const h = parseInt(('' + res2 / 16).split('.')[0]) // @@ ugh\n const l = parseInt(('' + (res2 % 16)).split('.')[0]) // @@ ugh\n str += hex[h] + hex[l]\n }\n return str\n}\n\n/**\n * @internal\n */\nfunction isLight (x: string): boolean {\n let total = 0\n for (let i = 0; i < 3; i++) {\n total += parseInt(x.slice(i * 2 + 1, i * 2 + 3), 16)\n }\n return total > 128 * 3\n}\n"],"file":"tabs.js"}
@@ -126,63 +126,68 @@ function _getPodOwner() {
126
126
  podOwner = store.any(pod, _.ns.solid('owner'), null, pod) || store.any(null, _.ns.space('storage'), pod, pod);
127
127
 
128
128
  if (!podOwner) {
129
- _context.next = 30;
129
+ _context.next = 31;
130
130
  break;
131
131
  }
132
132
 
133
133
  _context.prev = 18;
134
- store.fetcher.load(podOwner.doc());
135
- _context.next = 26;
134
+ _context.next = 21;
135
+ return store.fetcher.load(podOwner.doc());
136
+
137
+ case 21:
138
+ _context.next = 27;
136
139
  break;
137
140
 
138
- case 22:
139
- _context.prev = 22;
141
+ case 23:
142
+ _context.prev = 23;
140
143
  _context.t1 = _context["catch"](18);
141
144
  console.warn('Unable to load profile of pod owner ' + podOwner);
142
145
  return _context.abrupt("return", null);
143
146
 
144
- case 26:
147
+ case 27:
145
148
  if (!store.holds(podOwner, _.ns.space('storage'), pod, podOwner.doc())) {
146
149
  console.warn("Pod owner ".concat(podOwner, " does NOT list pod ").concat(pod, " as their storage"));
147
150
  }
148
151
 
149
152
  return _context.abrupt("return", podOwner);
150
153
 
151
- case 30:
154
+ case 31:
152
155
  // pod owner not declared in pod
153
156
  // @@ TODO: This is given the structure that NSS provides
154
157
  // This is a massive guess. For old pods which don't have owner link
155
158
  guess = (0, _rdflib.sym)("".concat(pod.uri, "profile/card#me"));
156
- _context.prev = 31;
157
- // @ts-ignore LiveStore always has fetcher
158
- store.fetcher.load(guess);
159
- _context.next = 39;
160
- break;
159
+ _context.prev = 32;
160
+ _context.next = 35;
161
+ return store.fetcher.load(guess);
161
162
 
162
163
  case 35:
163
- _context.prev = 35;
164
- _context.t2 = _context["catch"](31);
164
+ _context.next = 41;
165
+ break;
166
+
167
+ case 37:
168
+ _context.prev = 37;
169
+ _context.t2 = _context["catch"](32);
165
170
  console.error('Ooops. Guessed wrong pod owner webid {$guess} : can\'t load it.');
166
171
  return _context.abrupt("return", null);
167
172
 
168
- case 39:
173
+ case 41:
169
174
  if (!store.holds(guess, _.ns.space('storage'), pod, guess.doc())) {
170
- _context.next = 42;
175
+ _context.next = 44;
171
176
  break;
172
177
  }
173
178
 
174
179
  console.warn('Using guessed pod owner webid but it links back.');
175
180
  return _context.abrupt("return", guess);
176
181
 
177
- case 42:
182
+ case 44:
178
183
  return _context.abrupt("return", null);
179
184
 
180
- case 43:
185
+ case 45:
181
186
  case "end":
182
187
  return _context.stop();
183
188
  }
184
189
  }
185
- }, _callee, null, [[0, 9], [18, 22], [31, 35]]);
190
+ }, _callee, null, [[0, 9], [18, 23], [32, 37]]);
186
191
  }));
187
192
  return _getPodOwner.apply(this, arguments);
188
193
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/headerFooterHelpers.ts"],"names":["getStyle","styleClass","type","footerStyleMap","headerStyleMap","addStyleClassToElement","element","styleClasses","forEach","style","document","head","classes","classList","add","getPod","location","origin","site","getPodOwner","pod","store","any","ns","ldp","fetcher","webOperation","uri","initFetchOptions","headers","accept","response","containerTurtle","responseText","console","error","holds","rdf","space","warn","podOwner","solid","load","doc","guess","getName","user","anyValue","vcard","foaf","throttle","func","wait","options","context","args","result","timeout","previous","later","leading","Date","now","apply","remaining","arguments","clearTimeout","trailing","setTimeout"],"mappings":"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","sourcesContent":["/*\n Copied from mashlib/src/global/metadata.ts\n */\nimport { IndexedFormula, LiveStore, NamedNode, parse, sym } from 'rdflib'\nimport { ns } from '..'\nimport { styleMap as headerStyleMap } from '../header/styleMap'\nimport { styleMap as footerStyleMap } from '../footer/styleMap'\nimport { getClasses } from '../jss'\n\n/* @ts-ignore no-console */\ntype ThrottleOptions = {\n leading?: boolean;\n throttling?: boolean;\n trailing?: boolean;\n}\n/**\n * @internal\n */\nfunction getStyle (styleClass, type?) {\n if (type && type === 'footer') {\n return footerStyleMap[styleClass]\n } else {\n return headerStyleMap[styleClass]\n }\n}\n\n/**\n * @ignore exporting this only for the unit test\n */\nexport function addStyleClassToElement (element: any, styleClasses: string[], type?: string) {\n styleClasses.forEach((styleClass) => {\n const style = getStyle(styleClass, type)\n const { classes } = getClasses(document.head, { [styleClass]: style })\n element.classList.add(classes[styleClass])\n })\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function getPod (): NamedNode {\n // @@ TODO: This is given that mashlib runs on NSS - might need to change when we want it to run on other Pod servers\n return sym(document.location.origin).site()\n}\n/**\n */\nexport async function getPodOwner (pod: NamedNode, store: LiveStore): Promise<NamedNode | null> {\n // This is a massive guess. In future\n // const podOwner = sym(`${pod.uri}profile/card#me`)\n/* eslint-disable no-console */\n try {\n // load turtle Container representation\n if (!store.any(pod, null, ns.ldp('Container'), pod)) {\n const response = await store.fetcher.webOperation('GET', pod.uri, store.fetcher.initFetchOptions(pod.uri, { headers: { accept: 'text/turtle' } }))\n const containerTurtle = response.responseText\n parse(containerTurtle as string, store, pod.uri, 'text/turtle')\n }\n } catch (err) {\n console.error('Error loading pod ' + pod + ': ' + err)\n return null\n }\n if (!store.holds(pod, ns.rdf('type'), ns.space('Storage'), pod)) {\n console.warn('Pod ' + pod + ' does not declare itself as a space:Storage')\n return null\n }\n const podOwner = store.any(pod, ns.solid('owner'), null, pod) ||\n store.any(null, ns.space('storage'), pod, pod)\n if (podOwner) {\n try {\n store.fetcher.load((podOwner as NamedNode).doc())\n } catch (err) {\n console.warn('Unable to load profile of pod owner ' + podOwner)\n return null\n }\n if (!store.holds(podOwner, ns.space('storage'), pod, (podOwner as NamedNode).doc())) {\n console.warn(`Pod owner ${podOwner} does NOT list pod ${pod} as their storage`)\n }\n return podOwner as NamedNode// Success!\n } else { // pod owner not declared in pod\n // @@ TODO: This is given the structure that NSS provides\n // This is a massive guess. For old pods which don't have owner link\n const guess = sym(`${pod.uri}profile/card#me`)\n try {\n // @ts-ignore LiveStore always has fetcher\n store.fetcher.load(guess)\n } catch (err) {\n console.error('Ooops. Guessed wrong pod owner webid {$guess} : can\\'t load it.')\n return null\n }\n if (store.holds(guess, ns.space('storage'), pod, guess.doc())) {\n console.warn('Using guessed pod owner webid but it links back.')\n return guess\n }\n return null\n }\n /* eslint-enable no-console */\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function getName (store: IndexedFormula, user: NamedNode): string {\n return store.anyValue(user, ns.vcard('fn'), null, user.doc()) ||\n store.anyValue(user, ns.foaf('name'), null, user.doc()) ||\n user.uri\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function throttle (func: Function, wait: number, options: ThrottleOptions = {}): (...args: any[]) => any {\n let context: any,\n args: any,\n result: any\n let timeout: any = null\n let previous = 0\n const later = function () {\n previous = !options.leading ? 0 : Date.now()\n timeout = null\n result = func.apply(context, args)\n if (!timeout) context = args = null\n }\n return function () {\n const now = Date.now()\n if (!previous && !options.leading) previous = now\n const remaining = wait - (now - previous)\n // @ts-ignore\n context = this\n args = arguments\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout)\n timeout = null\n }\n previous = now\n result = func.apply(context, args)\n if (!timeout) context = args = null\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining)\n }\n return result\n }\n}\n"],"file":"headerFooterHelpers.js"}
1
+ {"version":3,"sources":["../../src/utils/headerFooterHelpers.ts"],"names":["getStyle","styleClass","type","footerStyleMap","headerStyleMap","addStyleClassToElement","element","styleClasses","forEach","style","document","head","classes","classList","add","getPod","location","origin","site","getPodOwner","pod","store","any","ns","ldp","fetcher","webOperation","uri","initFetchOptions","headers","accept","response","containerTurtle","responseText","console","error","holds","rdf","space","warn","podOwner","solid","load","doc","guess","getName","user","anyValue","vcard","foaf","throttle","func","wait","options","context","args","result","timeout","previous","later","leading","Date","now","apply","remaining","arguments","clearTimeout","trailing","setTimeout"],"mappings":"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","sourcesContent":["/*\n Copied from mashlib/src/global/metadata.ts\n */\nimport { IndexedFormula, LiveStore, NamedNode, parse, sym } from 'rdflib'\nimport { ns } from '..'\nimport { styleMap as headerStyleMap } from '../header/styleMap'\nimport { styleMap as footerStyleMap } from '../footer/styleMap'\nimport { getClasses } from '../jss'\n\n/* @ts-ignore no-console */\ntype ThrottleOptions = {\n leading?: boolean;\n throttling?: boolean;\n trailing?: boolean;\n}\n/**\n * @internal\n */\nfunction getStyle (styleClass, type?) {\n if (type && type === 'footer') {\n return footerStyleMap[styleClass]\n } else {\n return headerStyleMap[styleClass]\n }\n}\n\n/**\n * @ignore exporting this only for the unit test\n */\nexport function addStyleClassToElement (element: any, styleClasses: string[], type?: string) {\n styleClasses.forEach((styleClass) => {\n const style = getStyle(styleClass, type)\n const { classes } = getClasses(document.head, { [styleClass]: style })\n element.classList.add(classes[styleClass])\n })\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function getPod (): NamedNode {\n // @@ TODO: This is given that mashlib runs on NSS - might need to change when we want it to run on other Pod servers\n return sym(document.location.origin).site()\n}\n/**\n */\nexport async function getPodOwner (pod: NamedNode, store: LiveStore): Promise<NamedNode | null> {\n // This is a massive guess. In future\n // const podOwner = sym(`${pod.uri}profile/card#me`)\n/* eslint-disable no-console */\n try {\n // load turtle Container representation\n if (!store.any(pod, null, ns.ldp('Container'), pod)) {\n const response = await store.fetcher.webOperation('GET', pod.uri, store.fetcher.initFetchOptions(pod.uri, { headers: { accept: 'text/turtle' } }))\n const containerTurtle = response.responseText\n parse(containerTurtle as string, store, pod.uri, 'text/turtle')\n }\n } catch (err) {\n console.error('Error loading pod ' + pod + ': ' + err)\n return null\n }\n if (!store.holds(pod, ns.rdf('type'), ns.space('Storage'), pod)) {\n console.warn('Pod ' + pod + ' does not declare itself as a space:Storage')\n return null\n }\n const podOwner = store.any(pod, ns.solid('owner'), null, pod) ||\n store.any(null, ns.space('storage'), pod, pod)\n if (podOwner) {\n try {\n await store.fetcher.load((podOwner as NamedNode).doc())\n } catch (err) {\n console.warn('Unable to load profile of pod owner ' + podOwner)\n return null\n }\n if (!store.holds(podOwner, ns.space('storage'), pod, (podOwner as NamedNode).doc())) {\n console.warn(`Pod owner ${podOwner} does NOT list pod ${pod} as their storage`)\n }\n return podOwner as NamedNode// Success!\n } else { // pod owner not declared in pod\n // @@ TODO: This is given the structure that NSS provides\n // This is a massive guess. For old pods which don't have owner link\n const guess = sym(`${pod.uri}profile/card#me`)\n try {\n // @ts-ignore LiveStore always has fetcher\n await store.fetcher.load(guess)\n } catch (err) {\n console.error('Ooops. Guessed wrong pod owner webid {$guess} : can\\'t load it.')\n return null\n }\n if (store.holds(guess, ns.space('storage'), pod, guess.doc())) {\n console.warn('Using guessed pod owner webid but it links back.')\n return guess\n }\n return null\n }\n /* eslint-enable no-console */\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function getName (store: IndexedFormula, user: NamedNode): string {\n return store.anyValue(user, ns.vcard('fn'), null, user.doc()) ||\n store.anyValue(user, ns.foaf('name'), null, user.doc()) ||\n user.uri\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function throttle (func: Function, wait: number, options: ThrottleOptions = {}): (...args: any[]) => any {\n let context: any,\n args: any,\n result: any\n let timeout: any = null\n let previous = 0\n const later = function () {\n previous = !options.leading ? 0 : Date.now()\n timeout = null\n result = func.apply(context, args)\n if (!timeout) context = args = null\n }\n return function () {\n const now = Date.now()\n if (!previous && !options.leading) previous = now\n const remaining = wait - (now - previous)\n // @ts-ignore\n context = this\n args = arguments\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout)\n timeout = null\n }\n previous = now\n result = func.apply(context, args)\n if (!timeout) context = args = null\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining)\n }\n return result\n }\n}\n"],"file":"headerFooterHelpers.js"}
@@ -120,6 +120,6 @@ function slice(s, suffix) {
120
120
 
121
121
  function getWellKnownLabel(thing) {
122
122
  return _solidLogic.store.any(thing, UI.ns.ui('label')) || // Prioritize ui:label
123
- _solidLogic.store.any(thing, UI.ns.link('message')) || _solidLogic.store.any(thing, UI.ns.vcard('fn')) || _solidLogic.store.any(thing, UI.ns.foaf('name')) || _solidLogic.store.any(thing, UI.ns.dct('title')) || _solidLogic.store.any(thing, UI.ns.dc('title')) || _solidLogic.store.any(thing, UI.ns.rss('title')) || _solidLogic.store.any(thing, UI.ns.contact('fullName')) || _solidLogic.store.any(thing, _solidLogic.store.sym('http://www.w3.org/2001/04/roadmap/org#name')) || _solidLogic.store.any(thing, UI.ns.cal('summary')) || _solidLogic.store.any(thing, UI.ns.foaf('nick')) || _solidLogic.store.any(thing, UI.ns.as('name')) || _solidLogic.store.any(thing, UI.ns.schema('name')) || _solidLogic.store.any(thing, UI.ns.rdfs('label'));
123
+ _solidLogic.store.any(thing, UI.ns.link('message')) || _solidLogic.store.any(thing, UI.ns.vcard('fn')) || _solidLogic.store.any(thing, UI.ns.foaf('name')) || _solidLogic.store.any(thing, UI.ns.dct('title')) || _solidLogic.store.any(thing, UI.ns.dc('title')) || _solidLogic.store.any(thing, UI.ns.rss('title')) || _solidLogic.store.any(thing, UI.ns.contact('fullName')) || _solidLogic.store.any(thing, _solidLogic.store.sym('http://www.w3.org/2001/04/roadmap/org#name')) || _solidLogic.store.any(thing, UI.ns.cal('summary')) || _solidLogic.store.any(thing, UI.ns.foaf('nick')) || _solidLogic.store.any(thing, UI.ns.as('name')) || _solidLogic.store.any(thing, UI.ns.schema('name')) || _solidLogic.store.any(thing, UI.ns.rdfs('label')) || _solidLogic.store.any(thing, _solidLogic.store.sym('http://www.w3.org/2004/02/skos/core#prefLabel'));
124
124
  }
125
125
  //# sourceMappingURL=label.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/label.ts"],"names":["UI","log","ns","rdf","label","thing","initialCap","doCap","slice","toUpperCase","cleanUp","result","i","length","toLowerCase","getWellKnownLabel","value","termType","elements","s","uri","toString","split","map","decodeURIComponent","join","e","hex","indexOf","String","fromCharCode","parseInt","hash","slash","lastIndexOf","suffix","store","any","ui","link","vcard","foaf","dct","dc","rss","contact","sym","cal","as","schema","rdfs"],"mappings":"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","sourcesContent":["import * as log from '../log'\nimport { store } from 'solid-logic'\nimport * as ns from '../ns'\nimport * as rdf from 'rdflib' // pull in first avoid cross-refs\n\nconst UI = { log, ns, rdf }\n\n// This ubiquitous function returns the best label for a thing\n//\n// The hacks in this code make a major difference to the usability\nexport function label (thing, initialCap = false): string {\n function doCap (label: string) {\n if (initialCap) {\n return label.slice(0, 1).toUpperCase() + label.slice(1)\n }\n return label\n }\n function cleanUp (label: string) {\n let result = ''\n if (label.slice(-1) === '/') label = label.slice(0, -1) // chop trailing slash\n for (let i = 0; i < label.length; i++) {\n if (label[i] === '_' || label[i] === '-') {\n result += ' '\n continue\n }\n result += label[i]\n if (\n i + 1 < label.length &&\n label[i].toUpperCase() !== label[i] &&\n label[i + 1].toLowerCase() !== label[i + 1]\n ) {\n result += ' '\n }\n }\n if (result.slice(0, 4) === 'has ') result = result.slice(4)\n return doCap(result)\n }\n\n const label = getWellKnownLabel(thing)\n\n if (label) {\n return doCap(label.value)\n }\n\n // Default to label just generated from the URI\n\n if (thing.termType === 'BlankNode') {\n return '...'\n }\n if (thing.termType === 'Collection') {\n return '(' + thing.elements.length + ')'\n }\n let s = thing.uri\n if (typeof s === 'undefined') return thing.toString() // can't be a symbol\n // s = decodeURI(s) // This can crash is random valid @ signs are presentation\n // The idea was to clean up eg URIs encoded in query strings\n // Also encoded character in what was filenames like @ [] {}\n try {\n s = s\n .split('/')\n .map(decodeURIComponent)\n .join('/') // If it is properly encoded\n } catch (e) {\n // try individual decoding of ASCII code points\n for (let i = s.length - 3; i > 0; i--) {\n const hex = '0123456789abcefABCDEF' // The while upacks multiple layers of encoding\n while (\n s[i] === '%' &&\n hex.indexOf(s[i + 1]) >= 0 &&\n hex.indexOf(s[i + 2]) >= 0\n ) {\n s =\n s.slice(0, i) +\n String.fromCharCode(parseInt(s.slice(i + 1, i + 3), 16)) +\n s.slice(i + 3)\n }\n }\n }\n\n s = slice(s, '/profile/card#me')\n s = slice(s, '#this')\n s = slice(s, '#me')\n\n const hash = s.indexOf('#')\n if (hash >= 0) return cleanUp(s.slice(hash + 1))\n\n // Eh? Why not do this? e.g. dc:title needs it only trim URIs, not rdfs:labels\n const slash = s.lastIndexOf('/', s.length - 2) // (len-2) excludes trailing slash\n if (slash >= 0 && slash < thing.uri.length) return cleanUp(s.slice(slash + 1))\n\n return doCap(decodeURIComponent(thing.uri))\n}\n\nfunction slice (s: string, suffix: string) {\n const length = suffix.length * -1\n if (s.slice(length) === suffix) {\n return s.slice(0, length)\n }\n return s\n}\n\n// Hard coded known label predicates\n// @@ TBD: Add subproperties of rdfs:label\nfunction getWellKnownLabel (thing) {\n return store.any(thing, UI.ns.ui('label')) || // Prioritize ui:label\n store.any(thing, UI.ns.link('message')) ||\n store.any(thing, UI.ns.vcard('fn')) ||\n store.any(thing, UI.ns.foaf('name')) ||\n store.any(thing, UI.ns.dct('title')) ||\n store.any(thing, UI.ns.dc('title')) ||\n store.any(thing, UI.ns.rss('title')) ||\n store.any(thing, UI.ns.contact('fullName')) ||\n store.any(thing, store.sym('http://www.w3.org/2001/04/roadmap/org#name')) ||\n store.any(thing, UI.ns.cal('summary')) ||\n store.any(thing, UI.ns.foaf('nick')) ||\n store.any(thing, UI.ns.as('name')) ||\n store.any(thing, UI.ns.schema('name')) ||\n store.any(thing, UI.ns.rdfs('label'))\n}\n"],"file":"label.js"}
1
+ {"version":3,"sources":["../../src/utils/label.ts"],"names":["UI","log","ns","rdf","label","thing","initialCap","doCap","slice","toUpperCase","cleanUp","result","i","length","toLowerCase","getWellKnownLabel","value","termType","elements","s","uri","toString","split","map","decodeURIComponent","join","e","hex","indexOf","String","fromCharCode","parseInt","hash","slash","lastIndexOf","suffix","store","any","ui","link","vcard","foaf","dct","dc","rss","contact","sym","cal","as","schema","rdfs"],"mappings":"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","sourcesContent":["import * as log from '../log'\nimport { store } from 'solid-logic'\nimport * as ns from '../ns'\nimport * as rdf from 'rdflib' // pull in first avoid cross-refs\n\nconst UI = { log, ns, rdf }\n\n// This ubiquitous function returns the best label for a thing\n//\n// The hacks in this code make a major difference to the usability\nexport function label (thing, initialCap = false): string {\n function doCap (label: string) {\n if (initialCap) {\n return label.slice(0, 1).toUpperCase() + label.slice(1)\n }\n return label\n }\n function cleanUp (label: string) {\n let result = ''\n if (label.slice(-1) === '/') label = label.slice(0, -1) // chop trailing slash\n for (let i = 0; i < label.length; i++) {\n if (label[i] === '_' || label[i] === '-') {\n result += ' '\n continue\n }\n result += label[i]\n if (\n i + 1 < label.length &&\n label[i].toUpperCase() !== label[i] &&\n label[i + 1].toLowerCase() !== label[i + 1]\n ) {\n result += ' '\n }\n }\n if (result.slice(0, 4) === 'has ') result = result.slice(4)\n return doCap(result)\n }\n\n const label = getWellKnownLabel(thing)\n\n if (label) {\n return doCap(label.value)\n }\n\n // Default to label just generated from the URI\n\n if (thing.termType === 'BlankNode') {\n return '...'\n }\n if (thing.termType === 'Collection') {\n return '(' + thing.elements.length + ')'\n }\n let s = thing.uri\n if (typeof s === 'undefined') return thing.toString() // can't be a symbol\n // s = decodeURI(s) // This can crash is random valid @ signs are presentation\n // The idea was to clean up eg URIs encoded in query strings\n // Also encoded character in what was filenames like @ [] {}\n try {\n s = s\n .split('/')\n .map(decodeURIComponent)\n .join('/') // If it is properly encoded\n } catch (e) {\n // try individual decoding of ASCII code points\n for (let i = s.length - 3; i > 0; i--) {\n const hex = '0123456789abcefABCDEF' // The while upacks multiple layers of encoding\n while (\n s[i] === '%' &&\n hex.indexOf(s[i + 1]) >= 0 &&\n hex.indexOf(s[i + 2]) >= 0\n ) {\n s =\n s.slice(0, i) +\n String.fromCharCode(parseInt(s.slice(i + 1, i + 3), 16)) +\n s.slice(i + 3)\n }\n }\n }\n\n s = slice(s, '/profile/card#me')\n s = slice(s, '#this')\n s = slice(s, '#me')\n\n const hash = s.indexOf('#')\n if (hash >= 0) return cleanUp(s.slice(hash + 1))\n\n // Eh? Why not do this? e.g. dc:title needs it only trim URIs, not rdfs:labels\n const slash = s.lastIndexOf('/', s.length - 2) // (len-2) excludes trailing slash\n if (slash >= 0 && slash < thing.uri.length) return cleanUp(s.slice(slash + 1))\n\n return doCap(decodeURIComponent(thing.uri))\n}\n\nfunction slice (s: string, suffix: string) {\n const length = suffix.length * -1\n if (s.slice(length) === suffix) {\n return s.slice(0, length)\n }\n return s\n}\n\n// Hard coded known label predicates\n// @@ TBD: Add subproperties of rdfs:label\nfunction getWellKnownLabel (thing) {\n return store.any(thing, UI.ns.ui('label')) || // Prioritize ui:label\n store.any(thing, UI.ns.link('message')) ||\n store.any(thing, UI.ns.vcard('fn')) ||\n store.any(thing, UI.ns.foaf('name')) ||\n store.any(thing, UI.ns.dct('title')) ||\n store.any(thing, UI.ns.dc('title')) ||\n store.any(thing, UI.ns.rss('title')) ||\n store.any(thing, UI.ns.contact('fullName')) ||\n store.any(thing, store.sym('http://www.w3.org/2001/04/roadmap/org#name')) ||\n store.any(thing, UI.ns.cal('summary')) ||\n store.any(thing, UI.ns.foaf('nick')) ||\n store.any(thing, UI.ns.as('name')) ||\n store.any(thing, UI.ns.schema('name')) ||\n store.any(thing, UI.ns.rdfs('label')) ||\n store.any(thing, store.sym('http://www.w3.org/2004/02/skos/core#prefLabel'))\n}\n"],"file":"label.js"}
@@ -5,11 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.versionInfo = void 0;
7
7
  var versionInfo = {
8
- buildTime: '2022-04-02T16:37:28Z',
9
- commit: 'f8053087e41e525219e5a5e1cbc4703e4d8fa9ea',
8
+ buildTime: '2022-06-14T09:29:49Z',
9
+ commit: '027fc53ec9891c526b2c97f308a2f570faa0ea07',
10
10
  npmInfo: {
11
- 'solid-ui': '2.4.21',
12
- npm: '6.14.16',
11
+ 'solid-ui': '2.4.22',
12
+ npm: '6.14.17',
13
13
  ares: '1.18.1',
14
14
  brotli: '1.0.9',
15
15
  cldr: '40.0',
@@ -18,12 +18,12 @@ var versionInfo = {
18
18
  modules: '83',
19
19
  napi: '8',
20
20
  nghttp2: '1.42.0',
21
- node: '14.19.0',
22
- openssl: '1.1.1m',
21
+ node: '14.19.3',
22
+ openssl: '1.1.1o',
23
23
  tz: '2021a3',
24
24
  unicode: '14.0',
25
25
  uv: '1.42.0',
26
- v8: '8.4.371.23-node.85',
26
+ v8: '8.4.371.23-node.87',
27
27
  zlib: '1.2.11'
28
28
  }
29
29
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/versionInfo.ts"],"names":["versionInfo","buildTime","commit","npmInfo","npm","ares","brotli","cldr","icu","llhttp","modules","napi","nghttp2","node","openssl","tz","unicode","uv","v8","zlib"],"mappings":";;;;;;AAAO,IAAMA,WAAW,GAAG;AACzBC,EAAAA,SAAS,EAAE,sBADc;AAEzBC,EAAAA,MAAM,EAAE,0CAFiB;AAGzBC,EAAAA,OAAO,EACT;AACE,gBAAY,QADd;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;AAJ2B,CAApB","sourcesContent":["export const versionInfo = {\n buildTime: '2022-04-02T16:37:28Z',\n commit: 'f8053087e41e525219e5a5e1cbc4703e4d8fa9ea',\n npmInfo:\n{\n 'solid-ui': '2.4.21',\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.0',\n openssl: '1.1.1m',\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":["versionInfo","buildTime","commit","npmInfo","npm","ares","brotli","cldr","icu","llhttp","modules","napi","nghttp2","node","openssl","tz","unicode","uv","v8","zlib"],"mappings":";;;;;;AAAO,IAAMA,WAAW,GAAG;AACzBC,EAAAA,SAAS,EAAE,sBADc;AAEzBC,EAAAA,MAAM,EAAE,0CAFiB;AAGzBC,EAAAA,OAAO,EACT;AACE,gBAAY,QADd;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;AAJ2B,CAApB","sourcesContent":["export const versionInfo = {\n buildTime: '2022-06-14T09:29:49Z',\n commit: '027fc53ec9891c526b2c97f308a2f570faa0ea07',\n npmInfo:\n{\n 'solid-ui': '2.4.22',\n npm: '6.14.17',\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.3',\n openssl: '1.1.1o',\n tz: '2021a3',\n unicode: '14.0',\n uv: '1.42.0',\n v8: '8.4.371.23-node.87',\n zlib: '1.2.11'\n}\n}\n"],"file":"versionInfo.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"buttons.d.ts","sourceRoot":"","sources":["../../src/widgets/buttons.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buttons.d.ts","sourceRoot":"","sources":["../../src/widgets/buttons.ts"],"names":[],"mappings":"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"}
@@ -1052,6 +1052,7 @@ function openHrefInOutlineMode(e) {
1052
1052
 
1053
1053
  if (dom.outlineManager) {
1054
1054
  // @@ TODO Remove the use of document as a global object
1055
+ // TODO fix dependency cycle to solid-panes by calling outlineManager
1055
1056
  ;
1056
1057
  dom.outlineManager.GotoSubject(_solidLogic.store.sym(uri), true, undefined, true, undefined);
1057
1058
  } else if (window && window.panes && window.panes.getOutliner) {
@@ -1179,6 +1180,7 @@ function linkButton(dom, object) {
1179
1180
  b.textContent = 'Goto ' + utils.label(object);
1180
1181
  b.addEventListener('click', function (_event) {
1181
1182
  // b.parentNode.removeChild(b)
1183
+ // TODO fix dependency cycle to solid-panes by calling outlineManager
1182
1184
  ;
1183
1185
  dom.outlineManager.GotoSubject(object, true, undefined, true, undefined);
1184
1186
  }, true);