solid-panes 4.4.2-3 → 4.4.2-5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/README.md +0 -30
  2. package/dist/_virtual/_rolldown/runtime.cjs.js +1 -1
  3. package/dist/_virtual/~icons/lucide/folder-open.cjs.js +2 -0
  4. package/dist/_virtual/~icons/lucide/folder-open.cjs.js.map +1 -0
  5. package/dist/_virtual/~icons/lucide/folder-open.esm.js +11 -0
  6. package/dist/_virtual/~icons/lucide/folder-open.esm.js.map +1 -0
  7. package/dist/_virtual/~icons/lucide/help-circle.cjs.js +2 -0
  8. package/dist/_virtual/~icons/lucide/help-circle.cjs.js.map +1 -0
  9. package/dist/_virtual/~icons/lucide/help-circle.esm.js +11 -0
  10. package/dist/_virtual/~icons/lucide/help-circle.esm.js.map +1 -0
  11. package/dist/_virtual/~icons/lucide/layout-dashboard.cjs.js +2 -0
  12. package/dist/_virtual/~icons/lucide/layout-dashboard.cjs.js.map +1 -0
  13. package/dist/_virtual/~icons/lucide/layout-dashboard.esm.js +11 -0
  14. package/dist/_virtual/~icons/lucide/layout-dashboard.esm.js.map +1 -0
  15. package/dist/_virtual/~icons/lucide/settings-2.cjs.js +2 -0
  16. package/dist/_virtual/~icons/lucide/settings-2.cjs.js.map +1 -0
  17. package/dist/_virtual/~icons/lucide/settings-2.esm.js +11 -0
  18. package/dist/_virtual/~icons/lucide/settings-2.esm.js.map +1 -0
  19. package/dist/_virtual/~icons/lucide/users.cjs.js +2 -0
  20. package/dist/_virtual/~icons/lucide/users.cjs.js.map +1 -0
  21. package/dist/_virtual/~icons/lucide/users.esm.js +11 -0
  22. package/dist/_virtual/~icons/lucide/users.esm.js.map +1 -0
  23. package/dist/components/header/Header.cjs.js +19 -0
  24. package/dist/components/header/Header.cjs.js.map +1 -0
  25. package/dist/components/header/Header.esm.js +228 -0
  26. package/dist/components/header/Header.esm.js.map +1 -0
  27. package/dist/components/header/Header.styles.cjs.js +2 -0
  28. package/dist/components/header/Header.styles.cjs.js.map +1 -0
  29. package/dist/components/header/Header.styles.esm.js +7 -0
  30. package/dist/components/header/Header.styles.esm.js.map +1 -0
  31. package/dist/components/header/index.cjs.js +1 -0
  32. package/dist/components/header/index.esm.js +1 -0
  33. package/dist/components/navbar/Navbar.cjs.js +15 -0
  34. package/dist/components/navbar/Navbar.cjs.js.map +1 -0
  35. package/dist/components/navbar/Navbar.d.ts +14 -0
  36. package/dist/components/navbar/Navbar.d.ts.map +1 -0
  37. package/dist/components/navbar/Navbar.esm.js +232 -0
  38. package/dist/components/navbar/Navbar.esm.js.map +1 -0
  39. package/dist/components/navbar/Navbar.styles.cjs.js +2 -0
  40. package/dist/components/navbar/Navbar.styles.cjs.js.map +1 -0
  41. package/dist/components/navbar/Navbar.styles.esm.js +7 -0
  42. package/dist/components/navbar/Navbar.styles.esm.js.map +1 -0
  43. package/dist/components/navbar/index.cjs.js +1 -0
  44. package/dist/components/navbar/index.d.ts +4 -0
  45. package/dist/components/navbar/index.d.ts.map +1 -0
  46. package/dist/components/navbar/index.esm.js +1 -0
  47. package/dist/dashboard/basicPreferences.cjs.js +1 -1
  48. package/dist/dashboard/basicPreferences.cjs.js.map +1 -1
  49. package/dist/dashboard/dashboardPane.cjs.js +2 -0
  50. package/dist/dashboard/dashboardPane.cjs.js.map +1 -0
  51. package/dist/dashboard/dashboardPane.esm.js +7 -0
  52. package/dist/dashboard/dashboardPane.esm.js.map +1 -0
  53. package/dist/dashboard/homepage.cjs.js +2 -0
  54. package/dist/dashboard/homepage.cjs.js.map +1 -0
  55. package/dist/dashboard/homepage.esm.js +26 -0
  56. package/dist/dashboard/homepage.esm.js.map +1 -0
  57. package/dist/form/pane.cjs.js +1 -1
  58. package/dist/form/pane.cjs.js.map +1 -1
  59. package/dist/form/pane.esm.js +2 -1
  60. package/dist/form/pane.esm.js.map +1 -1
  61. package/dist/home/homePane.cjs.js +1 -1
  62. package/dist/home/homePane.cjs.js.map +1 -1
  63. package/dist/humanReadablePane2.cjs.js.map +1 -1
  64. package/dist/humanReadablePane2.esm.js.map +1 -1
  65. package/dist/index.cjs.js +1 -1
  66. package/dist/index.cjs.js.map +1 -1
  67. package/dist/index.esm.js +12 -7
  68. package/dist/index.esm.js.map +1 -1
  69. package/dist/internal/internalPane2.cjs.js +1 -1
  70. package/dist/internal/internalPane2.cjs.js.map +1 -1
  71. package/dist/mainPage/header.cjs.js +1 -1
  72. package/dist/mainPage/header.cjs.js.map +1 -1
  73. package/dist/mainPage/header.d.ts.map +1 -1
  74. package/dist/mainPage/header.esm.js +65 -17
  75. package/dist/mainPage/header.esm.js.map +1 -1
  76. package/dist/mainPage/index.cjs.js +1 -1
  77. package/dist/mainPage/index.cjs.js.map +1 -1
  78. package/dist/mainPage/index.d.ts +1 -9
  79. package/dist/mainPage/index.d.ts.map +1 -1
  80. package/dist/mainPage/index.esm.js +19 -21
  81. package/dist/mainPage/index.esm.js.map +1 -1
  82. package/dist/mainPage/navbar.cjs.js +2 -0
  83. package/dist/mainPage/navbar.cjs.js.map +1 -0
  84. package/dist/mainPage/navbar.d.ts +3 -0
  85. package/dist/mainPage/navbar.d.ts.map +1 -0
  86. package/dist/mainPage/navbar.esm.js +66 -0
  87. package/dist/mainPage/navbar.esm.js.map +1 -0
  88. package/dist/outline/context.d.ts +1 -1
  89. package/dist/outline/manager2.cjs.js +2 -2
  90. package/dist/outline/manager2.cjs.js.map +1 -1
  91. package/dist/outline/manager2.esm.js +330 -453
  92. package/dist/outline/manager2.esm.js.map +1 -1
  93. package/dist/outline/propertyViews.cjs.js +1 -1
  94. package/dist/outline/propertyViews.cjs.js.map +1 -1
  95. package/dist/outline/queryByExample.esm.js +1 -0
  96. package/dist/outline/queryByExample.esm.js.map +1 -1
  97. package/dist/outline/userInput.cjs.js +3 -3
  98. package/dist/outline/userInput.cjs.js.map +1 -1
  99. package/dist/outline/userInput.esm.js +4 -6
  100. package/dist/outline/userInput.esm.js.map +1 -1
  101. package/dist/pad/padPane2.cjs.js +1 -1
  102. package/dist/pad/padPane2.cjs.js.map +1 -1
  103. package/dist/pad/padPane2.esm.js +2 -1
  104. package/dist/pad/padPane2.esm.js.map +1 -1
  105. package/dist/registerPanes.cjs.js +1 -1
  106. package/dist/registerPanes.cjs.js.map +1 -1
  107. package/dist/registerPanes.esm.js +1 -0
  108. package/dist/registerPanes.esm.js.map +1 -1
  109. package/dist/schedule/schedulePane2.cjs.js +1 -1
  110. package/dist/schedule/schedulePane2.cjs.js.map +1 -1
  111. package/dist/schedule/schedulePane2.esm.js +2 -1
  112. package/dist/schedule/schedulePane2.esm.js.map +1 -1
  113. package/dist/sharing/sharingPane.cjs.js +1 -1
  114. package/dist/sharing/sharingPane.cjs.js.map +1 -1
  115. package/dist/social/editProfileDetails.cjs.js +1 -1
  116. package/dist/social/editProfileDetails.cjs.js.map +1 -1
  117. package/dist/social/editProfileDetails.esm.js +2 -0
  118. package/dist/social/editProfileDetails.esm.js.map +1 -1
  119. package/dist/social/socialPane2.cjs.js +1 -1
  120. package/dist/social/socialPane2.cjs.js.map +1 -1
  121. package/dist/social/socialPane2.esm.js +1 -1
  122. package/dist/social/socialSections.cjs.js +1 -1
  123. package/dist/social/socialSections.cjs.js.map +1 -1
  124. package/dist/social/spinner.cjs.js +1 -0
  125. package/dist/social/spinner.esm.js +1 -0
  126. package/dist/social/triage.cjs.js +1 -1
  127. package/dist/social/triage.cjs.js.map +1 -1
  128. package/dist/tabbed/tabbedPane.cjs.js +1 -1
  129. package/dist/tabbed/tabbedPane.cjs.js.map +1 -1
  130. package/dist/transaction/pane.cjs.js.map +1 -1
  131. package/dist/transaction/pane.esm.js.map +1 -1
  132. package/dist/transaction/period.cjs.js.map +1 -1
  133. package/dist/transaction/period.esm.js.map +1 -1
  134. package/dist/trustedApplications/trustedApplications.dom.cjs.js +1 -1
  135. package/dist/trustedApplications/trustedApplications.dom.cjs.js.map +1 -1
  136. package/dist/trustedApplications/trustedApplications.utils.cjs.js +1 -1
  137. package/dist/trustedApplications/trustedApplications.utils.cjs.js.map +1 -1
  138. package/dist/trustedApplications/trustedApplications.view.cjs.js +1 -1
  139. package/dist/trustedApplications/trustedApplications.view.cjs.js.map +1 -1
  140. package/dist/utils/paneUtils.cjs.js +2 -0
  141. package/dist/utils/paneUtils.cjs.js.map +1 -0
  142. package/dist/utils/paneUtils.d.ts +19 -0
  143. package/dist/utils/paneUtils.d.ts.map +1 -0
  144. package/dist/utils/paneUtils.esm.js +52 -0
  145. package/dist/utils/paneUtils.esm.js.map +1 -0
  146. package/dist/utils/podUtils.cjs.js +2 -0
  147. package/dist/utils/podUtils.cjs.js.map +1 -0
  148. package/dist/utils/podUtils.d.ts +4 -0
  149. package/dist/utils/podUtils.d.ts.map +1 -0
  150. package/dist/utils/podUtils.esm.js +46 -0
  151. package/dist/utils/podUtils.esm.js.map +1 -0
  152. package/dist/utils/webIdUtils.cjs.js +2 -0
  153. package/dist/utils/webIdUtils.cjs.js.map +1 -0
  154. package/dist/utils/webIdUtils.d.ts +6 -0
  155. package/dist/utils/webIdUtils.d.ts.map +1 -0
  156. package/dist/utils/webIdUtils.esm.js +48 -0
  157. package/dist/utils/webIdUtils.esm.js.map +1 -0
  158. package/dist/versionInfo.cjs.js +1 -1
  159. package/dist/versionInfo.cjs.js.map +1 -1
  160. package/dist/versionInfo.esm.js +3 -3
  161. package/dist/versionInfo.esm.js.map +1 -1
  162. package/package.json +10 -16
  163. package/dist/icons/dashboard.cjs.js +0 -2
  164. package/dist/icons/dashboard.cjs.js.map +0 -1
  165. package/dist/icons/dashboard.esm.js +0 -6
  166. package/dist/icons/dashboard.esm.js.map +0 -1
  167. package/dist/icons/iconHelper.cjs.js +0 -2
  168. package/dist/icons/iconHelper.cjs.js.map +0 -1
  169. package/dist/icons/iconHelper.esm.js +0 -17
  170. package/dist/icons/iconHelper.esm.js.map +0 -1
  171. package/dist/icons/menu.cjs.js +0 -9
  172. package/dist/icons/menu.cjs.js.map +0 -1
  173. package/dist/icons/menu.esm.js +0 -6
  174. package/dist/icons/menu.esm.js.map +0 -1
  175. package/dist/mainPage/footer.cjs.js +0 -2
  176. package/dist/mainPage/footer.cjs.js.map +0 -1
  177. package/dist/mainPage/footer.d.ts +0 -13
  178. package/dist/mainPage/footer.d.ts.map +0 -1
  179. package/dist/mainPage/footer.esm.js +0 -18
  180. package/dist/mainPage/footer.esm.js.map +0 -1
  181. package/dist/mainPage/menu.d.ts +0 -6
  182. package/dist/mainPage/menu.d.ts.map +0 -1
  183. package/dist/mainPage/menu2.cjs.js +0 -2
  184. package/dist/mainPage/menu2.cjs.js.map +0 -1
  185. package/dist/mainPage/menu2.esm.js +0 -184
  186. package/dist/mainPage/menu2.esm.js.map +0 -1
  187. package/dist/profileUtils/ownerProfile.cjs.js +0 -2
  188. package/dist/profileUtils/ownerProfile.cjs.js.map +0 -1
  189. package/dist/profileUtils/ownerProfile.d.ts +0 -5
  190. package/dist/profileUtils/ownerProfile.d.ts.map +0 -1
  191. package/dist/profileUtils/ownerProfile.esm.js +0 -50
  192. package/dist/profileUtils/ownerProfile.esm.js.map +0 -1
@@ -1,24 +1,72 @@
1
- import { setActiveMenuPane as e } from "./menu2.esm.js";
2
1
  import "../_virtual/~icons/lucide/user.esm.js";
3
- import { authn as t } from "solid-logic";
4
- import { html as n, render as r } from "lit-html";
2
+ import "../_virtual/~icons/lucide/users.esm.js";
3
+ import "../_virtual/~icons/lucide/folder-open.esm.js";
4
+ import "../_virtual/~icons/lucide/layout-dashboard.esm.js";
5
+ import "../_virtual/~icons/lucide/settings-2.esm.js";
6
+ import "../components/header/index.esm.js";
7
+ import { getFolderPanesFromURI as e, getProfilePaneFromURI as t, getSocialPaneFromURI as n } from "../utils/paneUtils.esm.js";
8
+ import { authn as r } from "solid-logic";
9
+ import { sym as i } from "rdflib";
10
+ import { html as a, render as o } from "lit-html";
5
11
  //#region src/mainPage/header.ts
6
- async function i(i) {
7
- let a = document.querySelector("solid-panes-header");
8
- if (a) return a;
9
- let o = document.getElementById("MainContent"), s = document.createElement("div");
10
- r(n`<solid-panes-header .menuItems=${[{
11
- label: n`<icon-lucide-user slot="left-icon"></icon-lucide-user> Profile`,
12
- onSelected() {
13
- let n = t.currentUser();
14
- n && (i.showDashboard(n, { pane: "profile" }), e("profile"));
12
+ async function s(s) {
13
+ let c = document.querySelector("solid-panes-header");
14
+ if (c) return c;
15
+ let l = r.currentUser(), u = document.getElementById("MainContent"), d = document.getElementById("OutlineView"), f = document.createElement("div");
16
+ function p() {
17
+ let e = document.querySelector("solid-panes-navbar");
18
+ e && e.classList.add("navbar--hidden");
19
+ }
20
+ let m = (l ? await e(l) : []).map((e) => ({
21
+ label: a`<icon-lucide-folder-open slot="left-icon"></icon-lucide-folder-open> ${e.label()}`,
22
+ async onSelected() {
23
+ p(), l && s.GotoSubject(i(window.location.href), !0, e, !0, void 0, d, !1);
15
24
  }
16
- }]}></solid-panes-header>`, s);
17
- let c = s.firstElementChild;
18
- if (!c) throw Error("Failed to create header");
19
- return o && o.parentNode ? o.parentNode.insertBefore(c, o) : document.body.prepend(c), c;
25
+ })), h = [
26
+ {
27
+ label: a`<icon-lucide-user slot="left-icon"></icon-lucide-user> Profile`,
28
+ async onSelected() {
29
+ if (p(), l) {
30
+ let e = await t(l);
31
+ s.GotoSubject(i(window.location.href), !0, e, !0, void 0, d, !1);
32
+ }
33
+ }
34
+ },
35
+ {
36
+ label: a`<icon-lucide-users slot="left-icon"></icon-lucide-users> Friends`,
37
+ async onSelected() {
38
+ if (p(), l) {
39
+ let e = await n(l);
40
+ s.GotoSubject(i(window.location.href), !0, e, !0, void 0, d, !1);
41
+ }
42
+ }
43
+ },
44
+ ...m,
45
+ {
46
+ label: a`<icon-lucide-layout-dashboard slot="left-icon"></icon-lucide-layout-dashboard> Dashboard`,
47
+ onSelected() {
48
+ if (p(), l) {
49
+ let e = s.context.session.paneRegistry.byName("home");
50
+ e && s.GotoSubject(i(window.location.href), !0, e, !0, void 0, d, !1);
51
+ }
52
+ }
53
+ },
54
+ {
55
+ label: a`<icon-lucide-settings-2 slot="left-icon"></icon-lucide-settings-2> Preferences`,
56
+ onSelected() {
57
+ if (p(), l) {
58
+ let e = s.context.session.paneRegistry.byName("basicPreferences");
59
+ e && s.GotoSubject(i(window.location.href), !0, e, !0, void 0, d, !1);
60
+ }
61
+ }
62
+ }
63
+ ];
64
+ o(a`<solid-panes-header .menuItems=${h}></solid-panes-header>`, f);
65
+ let g = f.firstElementChild;
66
+ if (!g) throw Error("Failed to create header");
67
+ return u && u.parentNode ? u.parentNode.insertBefore(g, u) : document.body.prepend(g), g;
20
68
  }
21
69
  //#endregion
22
- export { i as createHeader };
70
+ export { s as createHeader };
23
71
 
24
72
  //# sourceMappingURL=header.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"header.esm.js","names":[],"sources":["../../src/mainPage/header.ts"],"sourcesContent":["import { authn } from 'solid-logic'\nimport { html, render } from 'lit-html'\nimport type { AccountMenuItem } from 'solid-ui/components/account'\n\nimport { setActiveMenuPane } from './menu'\nimport type { OutlineManager } from '../outline/manager'\n\nimport '~icons/lucide/user'\nimport '../components/header'\n\nexport async function createHeader (outliner: OutlineManager) {\n const existingHeader = document.querySelector('solid-panes-header')\n\n if (existingHeader) {\n return existingHeader\n }\n\n const main = document.getElementById('MainContent')\n const tmpContainer = document.createElement('div')\n const menuItems: AccountMenuItem[] = [\n {\n label: html`<icon-lucide-user slot=\"left-icon\"></icon-lucide-user> Profile`,\n onSelected () {\n const currentUser = authn.currentUser()\n\n if (currentUser) {\n outliner.showDashboard(currentUser, { pane: 'profile' })\n setActiveMenuPane('profile')\n }\n }\n }\n ]\n\n render(\n html`<solid-panes-header .menuItems=${menuItems}></solid-panes-header>`,\n tmpContainer\n )\n\n const header = tmpContainer.firstElementChild\n\n if (!header) {\n throw new Error('Failed to create header')\n }\n\n // ensure it is in DOM (before MainContent for consistency)\n if (main && main.parentNode) {\n main.parentNode.insertBefore(header, main)\n } else {\n document.body.prepend(header)\n }\n\n return header\n}\n"],"mappings":";;;;;AAUA,eAAsB,EAAc,GAA0B;CAC5D,IAAM,IAAiB,SAAS,cAAc,oBAAoB;CAElE,IAAI,GACF,OAAO;CAGT,IAAM,IAAO,SAAS,eAAe,aAAa,GAC5C,IAAe,SAAS,cAAc,KAAK;CAejD,EACE,CAAI,kCAAkC,CAdtC;EACE,OAAO,CAAI;EACX,aAAc;GACZ,IAAM,IAAc,EAAM,YAAY;GAEtC,AAAI,MACF,EAAS,cAAc,GAAa,EAAE,MAAM,UAAU,CAAC,GACvD,EAAkB,SAAS;EAE/B;CACF,CAIsC,EAAU,yBAChD,CACF;CAEA,IAAM,IAAS,EAAa;CAE5B,IAAI,CAAC,GACH,MAAU,MAAM,yBAAyB;CAU3C,OANI,KAAQ,EAAK,aACf,EAAK,WAAW,aAAa,GAAQ,CAAI,IAEzC,SAAS,KAAK,QAAQ,CAAM,GAGvB;AACT"}
1
+ {"version":3,"file":"header.esm.js","names":[],"sources":["../../src/mainPage/header.ts"],"sourcesContent":["import { authn } from 'solid-logic'\nimport { html, render } from 'lit-html'\nimport type { AccountMenuItem } from 'solid-ui/components/account'\nimport type { OutlineManager } from '../outline/manager'\n\nimport '~icons/lucide/user'\nimport '~icons/lucide/users'\nimport '~icons/lucide/folder-open'\nimport '~icons/lucide/layout-dashboard'\nimport '~icons/lucide/settings-2'\nimport '../components/header'\nimport { getProfilePaneFromURI, getSocialPaneFromURI, getFolderPanesFromURI } from '../utils/paneUtils'\nimport { sym } from 'rdflib'\n\nexport async function createHeader (outliner: OutlineManager) {\n const existingHeader = document.querySelector('solid-panes-header')\n\n if (existingHeader) {\n return existingHeader\n }\n\n const me = authn.currentUser()\n\n const main = document.getElementById('MainContent')\n const outlineView = document.getElementById('OutlineView')\n const tmpContainer = document.createElement('div')\n\n function hideNavbar () {\n const navbar = document.querySelector<HTMLElement>('solid-panes-navbar')\n if (navbar) {\n navbar.classList.add('navbar--hidden')\n }\n }\n\n const storagePanes = me ? await getFolderPanesFromURI(me) : []\n const storageMenuItems: AccountMenuItem[] = storagePanes.map(pane => ({\n label: html`<icon-lucide-folder-open slot=\"left-icon\"></icon-lucide-folder-open> ${pane.label()}`,\n async onSelected () {\n hideNavbar()\n if (me) {\n outliner.GotoSubject(sym(window.location.href), true, pane, true, undefined, outlineView, false)\n }\n }\n }))\n const menuItems: AccountMenuItem[] = [\n {\n label: html`<icon-lucide-user slot=\"left-icon\"></icon-lucide-user> Profile`,\n async onSelected () {\n hideNavbar()\n if (me) {\n const profilePane = await getProfilePaneFromURI(me)\n outliner.GotoSubject(sym(window.location.href), true, profilePane, true, undefined, outlineView, false)\n }\n }\n },\n {\n label: html`<icon-lucide-users slot=\"left-icon\"></icon-lucide-users> Friends`,\n async onSelected () {\n hideNavbar()\n if (me) {\n const socialPane = await getSocialPaneFromURI(me)\n outliner.GotoSubject(sym(window.location.href), true, socialPane, true, undefined, outlineView, false)\n }\n }\n },\n ...storageMenuItems,\n {\n label: html`<icon-lucide-layout-dashboard slot=\"left-icon\"></icon-lucide-layout-dashboard> Dashboard`,\n onSelected () {\n hideNavbar()\n if (me) {\n const pane = outliner.context.session.paneRegistry.byName('home')\n if (pane) {\n outliner.GotoSubject(sym(window.location.href), true, pane, true, undefined, outlineView, false)\n }\n }\n }\n },\n {\n label: html`<icon-lucide-settings-2 slot=\"left-icon\"></icon-lucide-settings-2> Preferences`,\n onSelected () {\n hideNavbar()\n if (me) {\n const pane = outliner.context.session.paneRegistry.byName('basicPreferences')\n if (pane) {\n outliner.GotoSubject(sym(window.location.href), true, pane, true, undefined, outlineView, false)\n }\n }\n }\n },\n ]\n\n render(\n html`<solid-panes-header .menuItems=${menuItems}></solid-panes-header>`,\n tmpContainer\n )\n\n const header = tmpContainer.firstElementChild\n\n if (!header) {\n throw new Error('Failed to create header')\n }\n\n // ensure it is in DOM (before MainContent for consistency)\n if (main && main.parentNode) {\n main.parentNode.insertBefore(header, main)\n } else {\n document.body.prepend(header)\n }\n\n return header\n}\n"],"mappings":";;;;;;;;;;;AAcA,eAAsB,EAAc,GAA0B;CAC5D,IAAM,IAAiB,SAAS,cAAc,oBAAoB;CAElE,IAAI,GACF,OAAO;CAGT,IAAM,IAAK,EAAM,YAAY,GAEvB,IAAO,SAAS,eAAe,aAAa,GAC5C,IAAc,SAAS,eAAe,aAAa,GACnD,IAAe,SAAS,cAAc,KAAK;CAEjD,SAAS,IAAc;EACrB,IAAM,IAAS,SAAS,cAA2B,oBAAoB;EACvE,AAAI,KACF,EAAO,UAAU,IAAI,gBAAgB;CAEzC;CAGA,IAAM,KADe,IAAK,MAAM,EAAsB,CAAE,IAAI,CAAC,EAAA,CACJ,KAAI,OAAS;EACpE,OAAO,CAAI,wEAAwE,EAAK,MAAM;EAC9F,MAAM,aAAc;GAElB,AADA,EAAW,GACP,KACF,EAAS,YAAY,EAAI,OAAO,SAAS,IAAI,GAAG,IAAM,GAAM,IAAM,KAAA,GAAW,GAAa,EAAK;EAEnG;CACF,EAAE,GACI,IAA+B;EACnC;GACE,OAAO,CAAI;GACX,MAAM,aAAc;IAElB,IADA,EAAW,GACP,GAAI;KACN,IAAM,IAAc,MAAM,EAAsB,CAAE;KAClD,EAAS,YAAY,EAAI,OAAO,SAAS,IAAI,GAAG,IAAM,GAAa,IAAM,KAAA,GAAW,GAAa,EAAK;IACxG;GACF;EACF;EACA;GACE,OAAO,CAAI;GACX,MAAM,aAAc;IAElB,IADA,EAAW,GACP,GAAI;KACN,IAAM,IAAa,MAAM,EAAqB,CAAE;KAChD,EAAS,YAAY,EAAI,OAAO,SAAS,IAAI,GAAG,IAAM,GAAY,IAAM,KAAA,GAAW,GAAa,EAAK;IACvG;GACF;EACF;EACA,GAAG;EACH;GACE,OAAO,CAAI;GACX,aAAc;IAEZ,IADA,EAAW,GACP,GAAI;KACN,IAAM,IAAO,EAAS,QAAQ,QAAQ,aAAa,OAAO,MAAM;KAChE,AAAI,KACF,EAAS,YAAY,EAAI,OAAO,SAAS,IAAI,GAAG,IAAM,GAAM,IAAM,KAAA,GAAW,GAAa,EAAK;IAEnG;GACF;EACF;EACA;GACE,OAAO,CAAI;GACX,aAAc;IAEZ,IADA,EAAW,GACP,GAAI;KACN,IAAM,IAAO,EAAS,QAAQ,QAAQ,aAAa,OAAO,kBAAkB;KAC5E,AAAI,KACF,EAAS,YAAY,EAAI,OAAO,SAAS,IAAI,GAAG,IAAM,GAAM,IAAM,KAAA,GAAW,GAAa,EAAK;IAEnG;GACF;EACF;CACF;CAEA,EACE,CAAI,kCAAkC,EAAU,yBAChD,CACF;CAEA,IAAM,IAAS,EAAa;CAE5B,IAAI,CAAC,GACH,MAAU,MAAM,yBAAyB;CAU3C,OANI,KAAQ,EAAK,aACf,EAAK,WAAW,aAAa,GAAQ,CAAI,IAEzC,SAAS,KAAK,QAAQ,CAAM,GAGvB;AACT"}
@@ -1,2 +1,2 @@
1
- const e=require("./menu2.cjs.js"),t=require("./header.cjs.js"),n=require("./footer.cjs.js"),r=require("../index.cjs.js");var i=`__lastRenderEnvSignature`;function a(e){return e?[e.layout,e.theme,e.inputMode].join(`|`):``}function o(){let e=document.getElementById(`MainContent`);return e||(e=document.createElement(`main`),e.id=`MainContent`,e.setAttribute(`role`,`main`),e.setAttribute(`tabindex`,`-1`),e.setAttribute(`aria-live`,`polite`),document.body.appendChild(e)),e}async function s(s,c,l){o();let u=r.getOutliner(document,l);u[i]=a(l),c||=window.location.href;let d=typeof c==`string`?s.sym(c):c;u.GotoSubject(d,!0,void 0,!0,void 0);let f=await t.createHeader(u),p=e.createLeftSideMenu(d,u),m=p.then(()=>n.createFooter(s));return Promise.all([f,p,m])}async function c(t){let n=t?.context?.session?.store,r=t?.context?.session?.paneRegistry,o=window.document.location.href,s=window.history.state?.paneName,c=s?r?.byName?.(s):void 0,l=a(t?.context?.environment);l!==(t?.[i]??``)&&n&&typeof t?.GotoSubject==`function`&&(t.GotoSubject(n.sym(o),!0,c,!0,void 0),t[i]=l),e.refreshMenu(t.context.environment?.layout===`mobile`?`mobile`:`desktop`)}exports.initMainPage=s,exports.refreshUI=c;
1
+ const e=require("../_virtual/_rolldown/runtime.cjs.js"),t=require("../utils/webIdUtils.cjs.js"),n=require("../utils/paneUtils.cjs.js"),r=require("./header.cjs.js"),i=require("./navbar.cjs.js"),a=require("../index.cjs.js");let o=require("pane-registry");o=e.__toESM(o);var s=`__lastRenderEnvSignature`;function c(e){return e?[e.layout,e.theme,e.inputMode].join(`|`):``}function l(){let e=document.getElementById(`MainContent`);return e||(e=document.createElement(`main`),e.id=`MainContent`,e.setAttribute(`role`,`main`),e.setAttribute(`tabindex`,`-1`),e.setAttribute(`aria-live`,`polite`),document.body.appendChild(e)),e}async function u(e,u,d){l();let f=a.getOutliner(document,d);f[s]=c(d),u||=window.location.href;let p=typeof u==`string`?e.sym(u):u,m=window.history.state?.paneName,h=(m?o.byName(m):void 0)??(!m&&t.isWebIdUri(p)?await n.getProfilePaneFromURI(p):void 0);f.GotoSubject(p,!0,h,!0,void 0,void 0,!0,!1);let g=await r.createHeader(f),_=await i.createNavbar(f);return Promise.all([g,_])}async function d(e){let t=e?.context?.session?.store,n=e?.context?.session?.paneRegistry,r=window.document.location.href,i=window.history.state?.paneName,a=i?n?.byName?.(i):void 0,o=c(e?.context?.environment);o!==(e?.[s]??``)&&t&&typeof e?.GotoSubject==`function`&&(e.GotoSubject(t.sym(r),!0,a,!0,void 0,void 0,!0,!1),e[s]=o)}exports.initMainPage=u,exports.refreshUI=d;
2
2
  //# sourceMappingURL=index.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","names":[],"sources":["../../src/mainPage/index.ts"],"sourcesContent":["/* Main Page\n **\n ** This code is called in mashlib and renders the header and footer of the Databrowser.\n */\n\nimport { LiveStore, NamedNode } from 'rdflib'\nimport type { RenderEnvironment } from 'pane-registry'\nimport { getOutliner, OutlineManager } from '../index'\nimport { createHeader } from './header'\nimport { createFooter } from './footer'\nimport { createLeftSideMenu, refreshMenu } from './menu'\n\n// Symbol used to stash the last render-relevant env snapshot on the outliner\n// so refreshUI can skip a full GotoSubject re-render when nothing changed.\nconst LAST_RENDER_ENV_KEY = '__lastRenderEnvSignature'\n\nfunction renderEnvSignature (env?: RenderEnvironment): string {\n if (!env) return ''\n return [env.layout, env.theme, env.inputMode].join('|')\n}\n\nexport { refreshMenu as updateMenuLayout } from './menu'\n\nfunction ensureMainContent () {\n let main = document.getElementById('MainContent') as HTMLElement | null\n if (!main) {\n main = document.createElement('main')\n main.id = 'MainContent'\n main.setAttribute('role', 'main')\n main.setAttribute('tabindex', '-1')\n main.setAttribute('aria-live', 'polite')\n document.body.appendChild(main)\n }\n return main\n}\n\nexport async function initMainPage (\n store: LiveStore,\n uri?: string | NamedNode | null,\n environment?: RenderEnvironment\n) {\n ensureMainContent()\n const outliner = getOutliner(document, environment)\n ;(outliner as any)[LAST_RENDER_ENV_KEY] = renderEnvSignature(environment)\n uri = uri || window.location.href\n const subject: NamedNode = typeof uri === 'string' ? store.sym(uri) : uri\n outliner.GotoSubject(subject, true, undefined, true, undefined)\n\n const header = await createHeader(outliner)\n const menu = createLeftSideMenu(subject, outliner)\n const footer = menu.then(() => createFooter(store))\n return Promise.all([header, menu, footer])\n}\n\nexport async function refreshUI (outliner: OutlineManager) {\n const store = outliner?.context?.session?.store\n const paneRegistry = outliner?.context?.session?.paneRegistry\n const subjectUri = window.document.location.href\n const paneName = window.history.state?.paneName\n const pane = paneName ? paneRegistry?.byName?.(paneName) : undefined\n\n // Only re-run GotoSubject (full pane re-render) when render-relevant\n // environment fields actually changed since the last render.\n const currentSignature = renderEnvSignature(outliner?.context?.environment)\n const previousSignature = (outliner as any)?.[LAST_RENDER_ENV_KEY] ?? ''\n const envChanged = currentSignature !== previousSignature\n\n if (envChanged && store && typeof outliner?.GotoSubject === 'function') {\n outliner.GotoSubject(store.sym(subjectUri), true, pane, true, undefined)\n ;(outliner as any)[LAST_RENDER_ENV_KEY] = currentSignature\n }\n\n refreshMenu(outliner.context.environment?.layout === 'mobile' ? 'mobile' : 'desktop')\n}\n"],"mappings":"yHAcA,IAAM,EAAsB,2BAE5B,SAAS,EAAoB,EAAiC,CAE5D,OADK,EACE,CAAC,EAAI,OAAQ,EAAI,MAAO,EAAI,SAAS,CAAC,CAAC,KAAK,GAAG,EADrC,EAEnB,CAIA,SAAS,GAAqB,CAC5B,IAAI,EAAO,SAAS,eAAe,aAAa,EAShD,OARK,IACH,EAAO,SAAS,cAAc,MAAM,EACpC,EAAK,GAAK,cACV,EAAK,aAAa,OAAQ,MAAM,EAChC,EAAK,aAAa,WAAY,IAAI,EAClC,EAAK,aAAa,YAAa,QAAQ,EACvC,SAAS,KAAK,YAAY,CAAI,GAEzB,CACT,CAEA,eAAsB,EACpB,EACA,EACA,EACA,CACA,EAAkB,EAClB,IAAM,EAAW,EAAA,YAAY,SAAU,CAAW,EACjD,EAAkB,GAAuB,EAAmB,CAAW,EACxE,IAAa,OAAO,SAAS,KAC7B,IAAM,EAAqB,OAAO,GAAQ,SAAW,EAAM,IAAI,CAAG,EAAI,EACtE,EAAS,YAAY,EAAS,GAAM,IAAA,GAAW,GAAM,IAAA,EAAS,EAE9D,IAAM,EAAS,MAAM,EAAA,aAAa,CAAQ,EACpC,EAAO,EAAA,mBAAmB,EAAS,CAAQ,EAC3C,EAAS,EAAK,SAAW,EAAA,aAAa,CAAK,CAAC,EAClD,OAAO,QAAQ,IAAI,CAAC,EAAQ,EAAM,CAAM,CAAC,CAC3C,CAEA,eAAsB,EAAW,EAA0B,CACzD,IAAM,EAAQ,GAAU,SAAS,SAAS,MACpC,EAAe,GAAU,SAAS,SAAS,aAC3C,EAAa,OAAO,SAAS,SAAS,KACtC,EAAW,OAAO,QAAQ,OAAO,SACjC,EAAO,EAAW,GAAc,SAAS,CAAQ,EAAI,IAAA,GAIrD,EAAmB,EAAmB,GAAU,SAAS,WAAW,EAEvD,KADQ,IAAmB,IAAwB,KAGpD,GAAS,OAAO,GAAU,aAAgB,aAC1D,EAAS,YAAY,EAAM,IAAI,CAAU,EAAG,GAAM,EAAM,GAAM,IAAA,EAAS,EACtE,EAAkB,GAAuB,GAG5C,EAAA,YAAY,EAAS,QAAQ,aAAa,SAAW,SAAW,SAAW,SAAS,CACtF"}
1
+ {"version":3,"file":"index.cjs.js","names":[],"sources":["../../src/mainPage/index.ts"],"sourcesContent":["/* Main Page\n **\n ** This code is called in mashlib and renders the header and left side menu of the Databrowser.\n */\n\nimport { LiveStore, NamedNode } from 'rdflib'\nimport type { RenderEnvironment } from 'pane-registry'\nimport * as paneRegistry from 'pane-registry'\nimport { getOutliner, OutlineManager } from '../index'\nimport { createHeader } from './header'\nimport { createNavbar } from './navbar'\nimport { getProfilePaneFromURI } from '../utils/paneUtils'\nimport { isWebIdUri } from '../utils/webIdUtils'\n\n// Symbol used to stash the last render-relevant env snapshot on the outliner\n// so refreshUI can skip a full GotoSubject re-render when nothing changed.\nconst LAST_RENDER_ENV_KEY = '__lastRenderEnvSignature'\n\nfunction renderEnvSignature (env?: RenderEnvironment): string {\n if (!env) return ''\n return [env.layout, env.theme, env.inputMode].join('|')\n}\n\nfunction ensureMainContent () {\n let main = document.getElementById('MainContent') as HTMLElement | null\n if (!main) {\n main = document.createElement('main')\n main.id = 'MainContent'\n main.setAttribute('role', 'main')\n main.setAttribute('tabindex', '-1')\n main.setAttribute('aria-live', 'polite')\n document.body.appendChild(main)\n }\n return main\n}\n\nexport async function initMainPage (\n store: LiveStore,\n uri?: string | NamedNode | null,\n environment?: RenderEnvironment\n) {\n ensureMainContent()\n const outliner = getOutliner(document, environment)\n ;(outliner as any)[LAST_RENDER_ENV_KEY] = renderEnvSignature(environment)\n uri = uri || window.location.href\n const subject: NamedNode = typeof uri === 'string' ? store.sym(uri) : uri\n const historyPaneName = window.history.state?.paneName\n const historyPane = historyPaneName\n ? paneRegistry.byName(historyPaneName)\n : undefined\n const initialPane = historyPane ??\n (!historyPaneName && isWebIdUri(subject)\n ? await getProfilePaneFromURI(subject)\n : undefined)\n\n outliner.GotoSubject(subject, true, initialPane, true, undefined, undefined, true, false)\n\n const header = await createHeader(outliner)\n const navbar = await createNavbar(outliner)\n return Promise.all([header, navbar])\n}\n\nexport async function refreshUI (outliner: OutlineManager) {\n const store = outliner?.context?.session?.store\n const paneRegistry = outliner?.context?.session?.paneRegistry\n const subjectUri = window.document.location.href\n const paneName = window.history.state?.paneName\n const pane = paneName ? paneRegistry?.byName?.(paneName) : undefined\n\n // Only re-run GotoSubject (full pane re-render) when render-relevant\n // environment fields actually changed since the last render.\n const currentSignature = renderEnvSignature(outliner?.context?.environment)\n const previousSignature = (outliner as any)?.[LAST_RENDER_ENV_KEY] ?? ''\n const envChanged = currentSignature !== previousSignature\n\n if (envChanged && store && typeof outliner?.GotoSubject === 'function') {\n outliner.GotoSubject(store.sym(subjectUri), true, pane, true, undefined, undefined, true, false)\n ;(outliner as any)[LAST_RENDER_ENV_KEY] = currentSignature\n }\n}\n"],"mappings":"4QAgBA,IAAM,EAAsB,2BAE5B,SAAS,EAAoB,EAAiC,CAE5D,OADK,EACE,CAAC,EAAI,OAAQ,EAAI,MAAO,EAAI,SAAS,CAAC,CAAC,KAAK,GAAG,EADrC,EAEnB,CAEA,SAAS,GAAqB,CAC5B,IAAI,EAAO,SAAS,eAAe,aAAa,EAShD,OARK,IACH,EAAO,SAAS,cAAc,MAAM,EACpC,EAAK,GAAK,cACV,EAAK,aAAa,OAAQ,MAAM,EAChC,EAAK,aAAa,WAAY,IAAI,EAClC,EAAK,aAAa,YAAa,QAAQ,EACvC,SAAS,KAAK,YAAY,CAAI,GAEzB,CACT,CAEA,eAAsB,EACpB,EACA,EACA,EACA,CACA,EAAkB,EAClB,IAAM,EAAW,EAAA,YAAY,SAAU,CAAW,EACjD,EAAkB,GAAuB,EAAmB,CAAW,EACxE,IAAa,OAAO,SAAS,KAC7B,IAAM,EAAqB,OAAO,GAAQ,SAAW,EAAM,IAAI,CAAG,EAAI,EAChE,EAAkB,OAAO,QAAQ,OAAO,SAIxC,GAHc,EAChB,EAAa,OAAO,CAAe,EACnC,IAAA,MAED,CAAC,GAAmB,EAAA,WAAW,CAAO,EACnC,MAAM,EAAA,sBAAsB,CAAO,EACnC,IAAA,IAEN,EAAS,YAAY,EAAS,GAAM,EAAa,GAAM,IAAA,GAAW,IAAA,GAAW,GAAM,EAAK,EAExF,IAAM,EAAS,MAAM,EAAA,aAAa,CAAQ,EACpC,EAAS,MAAM,EAAA,aAAa,CAAQ,EAC1C,OAAO,QAAQ,IAAI,CAAC,EAAQ,CAAM,CAAC,CACrC,CAEA,eAAsB,EAAW,EAA0B,CACzD,IAAM,EAAQ,GAAU,SAAS,SAAS,MACpC,EAAe,GAAU,SAAS,SAAS,aAC3C,EAAa,OAAO,SAAS,SAAS,KACtC,EAAW,OAAO,QAAQ,OAAO,SACjC,EAAO,EAAW,GAAc,SAAS,CAAQ,EAAI,IAAA,GAIrD,EAAmB,EAAmB,GAAU,SAAS,WAAW,EAEvD,KADQ,IAAmB,IAAwB,KAGpD,GAAS,OAAO,GAAU,aAAgB,aAC1D,EAAS,YAAY,EAAM,IAAI,CAAU,EAAG,GAAM,EAAM,GAAM,IAAA,GAAW,IAAA,GAAW,GAAM,EAAK,EAC9F,EAAkB,GAAuB,EAE9C"}
@@ -1,14 +1,6 @@
1
1
  import { LiveStore, NamedNode } from '../../node_modules/rdflib';
2
2
  import { RenderEnvironment } from '../../node_modules/pane-registry';
3
3
  import { OutlineManager } from '../index';
4
- export { refreshMenu as updateMenuLayout } from './menu';
5
- export declare function initMainPage(store: LiveStore, uri?: string | NamedNode | null, environment?: RenderEnvironment): Promise<[Element, void, HTMLElement & {
6
- store?: LiveStore | null;
7
- position?: "static" | "absolute" | "relative" | "fixed" | "sticky";
8
- top?: string;
9
- right?: string;
10
- bottom?: string;
11
- left?: string;
12
- }]>;
4
+ export declare function initMainPage(store: LiveStore, uri?: string | NamedNode | null, environment?: RenderEnvironment): Promise<[Element, HTMLElement]>;
13
5
  export declare function refreshUI(outliner: OutlineManager): Promise<void>;
14
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mainPage/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAe,cAAc,EAAE,MAAM,UAAU,CAAA;AActD,OAAO,EAAE,WAAW,IAAI,gBAAgB,EAAE,MAAM,QAAQ,CAAA;AAexD,wBAAsB,YAAY,CAChC,KAAK,EAAE,SAAS,EAChB,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAC/B,WAAW,CAAC,EAAE,iBAAiB;;;;;;;IAahC;AAED,wBAAsB,SAAS,CAAE,QAAQ,EAAE,cAAc,iBAmBxD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mainPage/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAEtD,OAAO,EAAe,cAAc,EAAE,MAAM,UAAU,CAAA;AA4BtD,wBAAsB,YAAY,CAChC,KAAK,EAAE,SAAS,EAChB,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAC/B,WAAW,CAAC,EAAE,iBAAiB,mCAqBhC;AAED,wBAAsB,SAAS,CAAE,QAAQ,EAAE,cAAc,iBAiBxD"}
@@ -1,38 +1,36 @@
1
- import { createLeftSideMenu as e, refreshMenu as t } from "./menu2.esm.js";
1
+ import { isWebIdUri as e } from "../utils/webIdUtils.esm.js";
2
+ import { getProfilePaneFromURI as t } from "../utils/paneUtils.esm.js";
2
3
  import { createHeader as n } from "./header.esm.js";
3
- import { createFooter as r } from "./footer.esm.js";
4
+ import { createNavbar as r } from "./navbar.esm.js";
4
5
  import { getOutliner as i } from "../index.esm.js";
6
+ import * as a from "pane-registry";
5
7
  //#region src/mainPage/index.ts
6
- var a = "__lastRenderEnvSignature";
7
- function o(e) {
8
+ var o = "__lastRenderEnvSignature";
9
+ function s(e) {
8
10
  return e ? [
9
11
  e.layout,
10
12
  e.theme,
11
13
  e.inputMode
12
14
  ].join("|") : "";
13
15
  }
14
- function s() {
16
+ function c() {
15
17
  let e = document.getElementById("MainContent");
16
18
  return e || (e = document.createElement("main"), e.id = "MainContent", e.setAttribute("role", "main"), e.setAttribute("tabindex", "-1"), e.setAttribute("aria-live", "polite"), document.body.appendChild(e)), e;
17
19
  }
18
- async function c(t, c, l) {
19
- s();
20
- let u = i(document, l);
21
- u[a] = o(l), c ||= window.location.href;
22
- let d = typeof c == "string" ? t.sym(c) : c;
23
- u.GotoSubject(d, !0, void 0, !0, void 0);
24
- let f = await n(u), p = e(d, u), m = p.then(() => r(t));
25
- return Promise.all([
26
- f,
27
- p,
28
- m
29
- ]);
20
+ async function l(l, u, d) {
21
+ c();
22
+ let f = i(document, d);
23
+ f[o] = s(d), u ||= window.location.href;
24
+ let p = typeof u == "string" ? l.sym(u) : u, m = window.history.state?.paneName, h = (m ? a.byName(m) : void 0) ?? (!m && e(p) ? await t(p) : void 0);
25
+ f.GotoSubject(p, !0, h, !0, void 0, void 0, !0, !1);
26
+ let g = await n(f), _ = await r(f);
27
+ return Promise.all([g, _]);
30
28
  }
31
- async function l(e) {
32
- let n = e?.context?.session?.store, r = e?.context?.session?.paneRegistry, i = window.document.location.href, s = window.history.state?.paneName, c = s ? r?.byName?.(s) : void 0, l = o(e?.context?.environment);
33
- l !== (e?.[a] ?? "") && n && typeof e?.GotoSubject == "function" && (e.GotoSubject(n.sym(i), !0, c, !0, void 0), e[a] = l), t(e.context.environment?.layout === "mobile" ? "mobile" : "desktop");
29
+ async function u(e) {
30
+ let t = e?.context?.session?.store, n = e?.context?.session?.paneRegistry, r = window.document.location.href, i = window.history.state?.paneName, a = i ? n?.byName?.(i) : void 0, c = s(e?.context?.environment);
31
+ c !== (e?.[o] ?? "") && t && typeof e?.GotoSubject == "function" && (e.GotoSubject(t.sym(r), !0, a, !0, void 0, void 0, !0, !1), e[o] = c);
34
32
  }
35
33
  //#endregion
36
- export { c as initMainPage, l as refreshUI };
34
+ export { l as initMainPage, u as refreshUI };
37
35
 
38
36
  //# sourceMappingURL=index.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","names":[],"sources":["../../src/mainPage/index.ts"],"sourcesContent":["/* Main Page\n **\n ** This code is called in mashlib and renders the header and footer of the Databrowser.\n */\n\nimport { LiveStore, NamedNode } from 'rdflib'\nimport type { RenderEnvironment } from 'pane-registry'\nimport { getOutliner, OutlineManager } from '../index'\nimport { createHeader } from './header'\nimport { createFooter } from './footer'\nimport { createLeftSideMenu, refreshMenu } from './menu'\n\n// Symbol used to stash the last render-relevant env snapshot on the outliner\n// so refreshUI can skip a full GotoSubject re-render when nothing changed.\nconst LAST_RENDER_ENV_KEY = '__lastRenderEnvSignature'\n\nfunction renderEnvSignature (env?: RenderEnvironment): string {\n if (!env) return ''\n return [env.layout, env.theme, env.inputMode].join('|')\n}\n\nexport { refreshMenu as updateMenuLayout } from './menu'\n\nfunction ensureMainContent () {\n let main = document.getElementById('MainContent') as HTMLElement | null\n if (!main) {\n main = document.createElement('main')\n main.id = 'MainContent'\n main.setAttribute('role', 'main')\n main.setAttribute('tabindex', '-1')\n main.setAttribute('aria-live', 'polite')\n document.body.appendChild(main)\n }\n return main\n}\n\nexport async function initMainPage (\n store: LiveStore,\n uri?: string | NamedNode | null,\n environment?: RenderEnvironment\n) {\n ensureMainContent()\n const outliner = getOutliner(document, environment)\n ;(outliner as any)[LAST_RENDER_ENV_KEY] = renderEnvSignature(environment)\n uri = uri || window.location.href\n const subject: NamedNode = typeof uri === 'string' ? store.sym(uri) : uri\n outliner.GotoSubject(subject, true, undefined, true, undefined)\n\n const header = await createHeader(outliner)\n const menu = createLeftSideMenu(subject, outliner)\n const footer = menu.then(() => createFooter(store))\n return Promise.all([header, menu, footer])\n}\n\nexport async function refreshUI (outliner: OutlineManager) {\n const store = outliner?.context?.session?.store\n const paneRegistry = outliner?.context?.session?.paneRegistry\n const subjectUri = window.document.location.href\n const paneName = window.history.state?.paneName\n const pane = paneName ? paneRegistry?.byName?.(paneName) : undefined\n\n // Only re-run GotoSubject (full pane re-render) when render-relevant\n // environment fields actually changed since the last render.\n const currentSignature = renderEnvSignature(outliner?.context?.environment)\n const previousSignature = (outliner as any)?.[LAST_RENDER_ENV_KEY] ?? ''\n const envChanged = currentSignature !== previousSignature\n\n if (envChanged && store && typeof outliner?.GotoSubject === 'function') {\n outliner.GotoSubject(store.sym(subjectUri), true, pane, true, undefined)\n ;(outliner as any)[LAST_RENDER_ENV_KEY] = currentSignature\n }\n\n refreshMenu(outliner.context.environment?.layout === 'mobile' ? 'mobile' : 'desktop')\n}\n"],"mappings":";;;;;AAcA,IAAM,IAAsB;AAE5B,SAAS,EAAoB,GAAiC;CAE5D,OADK,IACE;EAAC,EAAI;EAAQ,EAAI;EAAO,EAAI;CAAS,CAAC,CAAC,KAAK,GAAG,IADrC;AAEnB;AAIA,SAAS,IAAqB;CAC5B,IAAI,IAAO,SAAS,eAAe,aAAa;CAShD,OARK,MACH,IAAO,SAAS,cAAc,MAAM,GACpC,EAAK,KAAK,eACV,EAAK,aAAa,QAAQ,MAAM,GAChC,EAAK,aAAa,YAAY,IAAI,GAClC,EAAK,aAAa,aAAa,QAAQ,GACvC,SAAS,KAAK,YAAY,CAAI,IAEzB;AACT;AAEA,eAAsB,EACpB,GACA,GACA,GACA;CACA,EAAkB;CAClB,IAAM,IAAW,EAAY,UAAU,CAAW;CAElD,AADC,EAAkB,KAAuB,EAAmB,CAAW,GACxE,MAAa,OAAO,SAAS;CAC7B,IAAM,IAAqB,OAAO,KAAQ,WAAW,EAAM,IAAI,CAAG,IAAI;CACtE,EAAS,YAAY,GAAS,IAAM,KAAA,GAAW,IAAM,KAAA,CAAS;CAE9D,IAAM,IAAS,MAAM,EAAa,CAAQ,GACpC,IAAO,EAAmB,GAAS,CAAQ,GAC3C,IAAS,EAAK,WAAW,EAAa,CAAK,CAAC;CAClD,OAAO,QAAQ,IAAI;EAAC;EAAQ;EAAM;CAAM,CAAC;AAC3C;AAEA,eAAsB,EAAW,GAA0B;CACzD,IAAM,IAAQ,GAAU,SAAS,SAAS,OACpC,IAAe,GAAU,SAAS,SAAS,cAC3C,IAAa,OAAO,SAAS,SAAS,MACtC,IAAW,OAAO,QAAQ,OAAO,UACjC,IAAO,IAAW,GAAc,SAAS,CAAQ,IAAI,KAAA,GAIrD,IAAmB,EAAmB,GAAU,SAAS,WAAW;CAS1E,AAPmB,OADQ,IAAmB,MAAwB,OAGpD,KAAS,OAAO,GAAU,eAAgB,eAC1D,EAAS,YAAY,EAAM,IAAI,CAAU,GAAG,IAAM,GAAM,IAAM,KAAA,CAAS,GACtE,EAAkB,KAAuB,IAG5C,EAAY,EAAS,QAAQ,aAAa,WAAW,WAAW,WAAW,SAAS;AACtF"}
1
+ {"version":3,"file":"index.esm.js","names":[],"sources":["../../src/mainPage/index.ts"],"sourcesContent":["/* Main Page\n **\n ** This code is called in mashlib and renders the header and left side menu of the Databrowser.\n */\n\nimport { LiveStore, NamedNode } from 'rdflib'\nimport type { RenderEnvironment } from 'pane-registry'\nimport * as paneRegistry from 'pane-registry'\nimport { getOutliner, OutlineManager } from '../index'\nimport { createHeader } from './header'\nimport { createNavbar } from './navbar'\nimport { getProfilePaneFromURI } from '../utils/paneUtils'\nimport { isWebIdUri } from '../utils/webIdUtils'\n\n// Symbol used to stash the last render-relevant env snapshot on the outliner\n// so refreshUI can skip a full GotoSubject re-render when nothing changed.\nconst LAST_RENDER_ENV_KEY = '__lastRenderEnvSignature'\n\nfunction renderEnvSignature (env?: RenderEnvironment): string {\n if (!env) return ''\n return [env.layout, env.theme, env.inputMode].join('|')\n}\n\nfunction ensureMainContent () {\n let main = document.getElementById('MainContent') as HTMLElement | null\n if (!main) {\n main = document.createElement('main')\n main.id = 'MainContent'\n main.setAttribute('role', 'main')\n main.setAttribute('tabindex', '-1')\n main.setAttribute('aria-live', 'polite')\n document.body.appendChild(main)\n }\n return main\n}\n\nexport async function initMainPage (\n store: LiveStore,\n uri?: string | NamedNode | null,\n environment?: RenderEnvironment\n) {\n ensureMainContent()\n const outliner = getOutliner(document, environment)\n ;(outliner as any)[LAST_RENDER_ENV_KEY] = renderEnvSignature(environment)\n uri = uri || window.location.href\n const subject: NamedNode = typeof uri === 'string' ? store.sym(uri) : uri\n const historyPaneName = window.history.state?.paneName\n const historyPane = historyPaneName\n ? paneRegistry.byName(historyPaneName)\n : undefined\n const initialPane = historyPane ??\n (!historyPaneName && isWebIdUri(subject)\n ? await getProfilePaneFromURI(subject)\n : undefined)\n\n outliner.GotoSubject(subject, true, initialPane, true, undefined, undefined, true, false)\n\n const header = await createHeader(outliner)\n const navbar = await createNavbar(outliner)\n return Promise.all([header, navbar])\n}\n\nexport async function refreshUI (outliner: OutlineManager) {\n const store = outliner?.context?.session?.store\n const paneRegistry = outliner?.context?.session?.paneRegistry\n const subjectUri = window.document.location.href\n const paneName = window.history.state?.paneName\n const pane = paneName ? paneRegistry?.byName?.(paneName) : undefined\n\n // Only re-run GotoSubject (full pane re-render) when render-relevant\n // environment fields actually changed since the last render.\n const currentSignature = renderEnvSignature(outliner?.context?.environment)\n const previousSignature = (outliner as any)?.[LAST_RENDER_ENV_KEY] ?? ''\n const envChanged = currentSignature !== previousSignature\n\n if (envChanged && store && typeof outliner?.GotoSubject === 'function') {\n outliner.GotoSubject(store.sym(subjectUri), true, pane, true, undefined, undefined, true, false)\n ;(outliner as any)[LAST_RENDER_ENV_KEY] = currentSignature\n }\n}\n"],"mappings":";;;;;;;AAgBA,IAAM,IAAsB;AAE5B,SAAS,EAAoB,GAAiC;CAE5D,OADK,IACE;EAAC,EAAI;EAAQ,EAAI;EAAO,EAAI;CAAS,CAAC,CAAC,KAAK,GAAG,IADrC;AAEnB;AAEA,SAAS,IAAqB;CAC5B,IAAI,IAAO,SAAS,eAAe,aAAa;CAShD,OARK,MACH,IAAO,SAAS,cAAc,MAAM,GACpC,EAAK,KAAK,eACV,EAAK,aAAa,QAAQ,MAAM,GAChC,EAAK,aAAa,YAAY,IAAI,GAClC,EAAK,aAAa,aAAa,QAAQ,GACvC,SAAS,KAAK,YAAY,CAAI,IAEzB;AACT;AAEA,eAAsB,EACpB,GACA,GACA,GACA;CACA,EAAkB;CAClB,IAAM,IAAW,EAAY,UAAU,CAAW;CAElD,AADC,EAAkB,KAAuB,EAAmB,CAAW,GACxE,MAAa,OAAO,SAAS;CAC7B,IAAM,IAAqB,OAAO,KAAQ,WAAW,EAAM,IAAI,CAAG,IAAI,GAChE,IAAkB,OAAO,QAAQ,OAAO,UAIxC,KAHc,IAChB,EAAa,OAAO,CAAe,IACnC,KAAA,OAED,CAAC,KAAmB,EAAW,CAAO,IACnC,MAAM,EAAsB,CAAO,IACnC,KAAA;CAEN,EAAS,YAAY,GAAS,IAAM,GAAa,IAAM,KAAA,GAAW,KAAA,GAAW,IAAM,EAAK;CAExF,IAAM,IAAS,MAAM,EAAa,CAAQ,GACpC,IAAS,MAAM,EAAa,CAAQ;CAC1C,OAAO,QAAQ,IAAI,CAAC,GAAQ,CAAM,CAAC;AACrC;AAEA,eAAsB,EAAW,GAA0B;CACzD,IAAM,IAAQ,GAAU,SAAS,SAAS,OACpC,IAAe,GAAU,SAAS,SAAS,cAC3C,IAAa,OAAO,SAAS,SAAS,MACtC,IAAW,OAAO,QAAQ,OAAO,UACjC,IAAO,IAAW,GAAc,SAAS,CAAQ,IAAI,KAAA,GAIrD,IAAmB,EAAmB,GAAU,SAAS,WAAW;CAI1E,AAFmB,OADQ,IAAmB,MAAwB,OAGpD,KAAS,OAAO,GAAU,eAAgB,eAC1D,EAAS,YAAY,EAAM,IAAI,CAAU,GAAG,IAAM,GAAM,IAAM,KAAA,GAAW,KAAA,GAAW,IAAM,EAAK,GAC9F,EAAkB,KAAuB;AAE9C"}
@@ -0,0 +1,2 @@
1
+ const e=require("../utils/webIdUtils.cjs.js");require("../_virtual/~icons/lucide/user.cjs.js"),require("../_virtual/~icons/lucide/users.cjs.js"),require("../_virtual/~icons/lucide/folder-open.cjs.js");const t=require("../utils/paneUtils.cjs.js");require("../components/navbar/index.cjs.js");let n=require("solid-logic"),r=require("lit-html");function i(){let e=document.querySelector(`solid-panes-navbar`);e&&e.classList.remove(`navbar--hidden`)}function a(e,t,n=!1){return{label:e,onSelected(){return i(),t()},selected:n}}async function o(n,r,i,o,s){let c=await e.loadProfileFromURI(r),l=o||(e.isWebIdUri(r)?`profile`:void 0),u=[];c&&u.push(a(`Profile`,async()=>{let e=await t.getProfilePaneFromURI(c);n.GotoSubject(r,!0,e,!0,void 0,i)},l===`profile`),a(`Friends`,async()=>{let e=await t.getSocialPaneFromURI(c);n.GotoSubject(r,!0,e,!0,void 0,i)},l===`social`));let d=await t.getFolderPanesFromURI(r);return d.forEach(e=>{u.push(a(e.label(),async()=>{n.GotoSubject(r,!0,e,!0,void 0,i)},l===e.paneName&&(s?s===e.subject.value:d.length===1)))}),u}async function s(e){let t=document.querySelector(`solid-panes-navbar`);if(t)return t.classList.remove(`navbar--hidden`),t;let i=document.getElementById(`OutlineView`),a=document.getElementById(`MainContent`),s=document.createElement(`div`),c=window.location.href,l=typeof c==`string`?n.store.sym(c):c,u=window.history.state?.paneName,d=window.history.state?.paneUri,f=await o(e,l,i,u,d).catch(e=>(console.error(`Failed to build navbar menu items:`,e),[]));function p(e){f=f.map(t=>({...t,selected:t===e}))}function m(e){let{detail:t}=e;p(t),Promise.resolve(t.onSelected?.()).catch(e=>{console.error(`Navbar menu item selection failed:`,e)}),h()}function h(){(0,r.render)(r.html`<solid-panes-navbar .navbarItems=${f} @solid-ui-select=${m}></solid-panes-navbar>`,s)}h();let g=s.firstElementChild;if(!g)throw Error(`Failed to create nav bar`);return a?a.insertBefore(g,a.firstChild):document.body.prepend(g),g}exports.createNavbar=s;
2
+ //# sourceMappingURL=navbar.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navbar.cjs.js","names":[],"sources":["../../src/mainPage/navbar.ts"],"sourcesContent":["import { store } from 'solid-logic'\nimport { NamedNode } from 'rdflib'\nimport { getSocialPaneFromURI, getProfilePaneFromURI, getFolderPanesFromURI } from '../utils/paneUtils'\nimport { html, render } from 'lit-html'\nimport type { OutlineManager } from '../outline/manager'\nimport { isWebIdUri, loadProfileFromURI } from '../utils/webIdUtils'\n\nimport '~icons/lucide/user'\nimport '~icons/lucide/users'\nimport '~icons/lucide/folder-open'\nimport '../components/navbar'\n\nimport type { NavbarMenuItem } from '../components/navbar/Navbar'\n\nfunction showNavbar () {\n const navbar = document.querySelector<HTMLElement>('solid-panes-navbar')\n if (navbar) {\n navbar.classList.remove('navbar--hidden')\n }\n}\n\nfunction createNavItem (\n label: string,\n onSelected: () => void,\n selected = false\n): NavbarMenuItem {\n return {\n label,\n onSelected () {\n showNavbar()\n return onSelected()\n },\n selected\n }\n}\n\nasync function createNavbarMenuItems (\n outliner: OutlineManager,\n subject: NamedNode,\n outlineView: HTMLElement | null,\n selectedPaneName?: string,\n selectedPaneUri?: string\n): Promise<NavbarMenuItem[]> {\n const webId = await loadProfileFromURI(subject)\n const selectedPane = selectedPaneName || (isWebIdUri(subject) ? 'profile' : undefined)\n\n const menuItems: NavbarMenuItem[] = []\n\n if (webId) {\n menuItems.push(\n createNavItem('Profile', async () => {\n const profilePane = await getProfilePaneFromURI(webId)\n outliner.GotoSubject(subject, true, profilePane, true, undefined, outlineView)\n }, selectedPane === 'profile'),\n createNavItem('Friends', async () => {\n const socialPane = await getSocialPaneFromURI(webId)\n outliner.GotoSubject(subject, true, socialPane, true, undefined, outlineView)\n }, selectedPane === 'social')\n )\n }\n\n const storagePanes = await getFolderPanesFromURI(subject)\n storagePanes.forEach(pane => {\n menuItems.push(\n createNavItem(\n pane.label(),\n async () => {\n outliner.GotoSubject(subject, true, pane, true, undefined, outlineView)\n },\n selectedPane === pane.paneName &&\n (selectedPaneUri ? selectedPaneUri === pane.subject.value : storagePanes.length === 1)\n )\n )\n })\n\n return menuItems\n}\n\nexport async function createNavbar (outliner: OutlineManager) {\n const existingNavbar = document.querySelector<HTMLElement>('solid-panes-navbar')\n\n if (existingNavbar) {\n existingNavbar.classList.remove('navbar--hidden')\n return existingNavbar\n }\n\n const OutlineView = document.getElementById('OutlineView')\n const mainContent = document.getElementById('MainContent')\n const tmpContainer = document.createElement('div')\n const uri = window.location.href\n const subject: NamedNode = typeof uri === 'string' ? store.sym(uri) : uri\n const selectedPaneName = window.history.state?.paneName\n const selectedPaneUri = window.history.state?.paneUri\n let menuItems = await createNavbarMenuItems(outliner, subject, OutlineView, selectedPaneName, selectedPaneUri).catch((err) => {\n console.error('Failed to build navbar menu items:', err)\n return []\n })\n\n function setSelectedItem (selectedItem: NavbarMenuItem) {\n menuItems = menuItems.map((menuItem) => ({\n ...menuItem,\n selected: menuItem === selectedItem\n }))\n }\n\n function handleSelectionChanged (event: Event) {\n const { detail: selectedItem } = event as CustomEvent<NavbarMenuItem>\n setSelectedItem(selectedItem)\n\n Promise.resolve(selectedItem.onSelected?.()).catch((error) => {\n console.error('Navbar menu item selection failed:', error)\n })\n\n renderNavbar()\n }\n\n function renderNavbar () {\n render(\n html`<solid-panes-navbar .navbarItems=${menuItems} @solid-ui-select=${handleSelectionChanged}></solid-panes-navbar>`,\n tmpContainer\n )\n }\n\n renderNavbar()\n\n const navbar = tmpContainer.firstElementChild as HTMLElement | null\n\n if (!navbar) {\n throw new Error('Failed to create nav bar')\n }\n\n if (mainContent) {\n mainContent.insertBefore(navbar, mainContent.firstChild)\n } else {\n document.body.prepend(navbar)\n }\n\n return navbar\n}\n"],"mappings":"sVAcA,SAAS,GAAc,CACrB,IAAM,EAAS,SAAS,cAA2B,oBAAoB,EACnE,GACF,EAAO,UAAU,OAAO,gBAAgB,CAE5C,CAEA,SAAS,EACP,EACA,EACA,EAAW,GACK,CAChB,MAAO,CACL,QACA,YAAc,CAEZ,OADA,EAAW,EACJ,EAAW,CACpB,EACA,UACF,CACF,CAEA,eAAe,EACb,EACA,EACA,EACA,EACA,EAC2B,CAC3B,IAAM,EAAQ,MAAM,EAAA,mBAAmB,CAAO,EACxC,EAAe,IAAqB,EAAA,WAAW,CAAO,EAAI,UAAY,IAAA,IAEtE,EAA8B,CAAC,EAEjC,GACF,EAAU,KACR,EAAc,UAAW,SAAY,CACnC,IAAM,EAAc,MAAM,EAAA,sBAAsB,CAAK,EACrD,EAAS,YAAY,EAAS,GAAM,EAAa,GAAM,IAAA,GAAW,CAAW,CAC/E,EAAG,IAAiB,SAAS,EAC7B,EAAc,UAAW,SAAY,CACnC,IAAM,EAAa,MAAM,EAAA,qBAAqB,CAAK,EACnD,EAAS,YAAY,EAAS,GAAM,EAAY,GAAM,IAAA,GAAW,CAAW,CAC9E,EAAG,IAAiB,QAAQ,CAC9B,EAGF,IAAM,EAAe,MAAM,EAAA,sBAAsB,CAAO,EAcxD,OAbA,EAAa,QAAQ,GAAQ,CAC3B,EAAU,KACR,EACE,EAAK,MAAM,EACX,SAAY,CACV,EAAS,YAAY,EAAS,GAAM,EAAM,GAAM,IAAA,GAAW,CAAW,CACxE,EACA,IAAiB,EAAK,WACnB,EAAkB,IAAoB,EAAK,QAAQ,MAAQ,EAAa,SAAW,EACxF,CACF,CACF,CAAC,EAEM,CACT,CAEA,eAAsB,EAAc,EAA0B,CAC5D,IAAM,EAAiB,SAAS,cAA2B,oBAAoB,EAE/E,GAAI,EAEF,OADA,EAAe,UAAU,OAAO,gBAAgB,EACzC,EAGT,IAAM,EAAc,SAAS,eAAe,aAAa,EACnD,EAAc,SAAS,eAAe,aAAa,EACnD,EAAe,SAAS,cAAc,KAAK,EAC3C,EAAM,OAAO,SAAS,KACtB,EAAqB,OAAO,GAAQ,SAAW,EAAA,MAAM,IAAI,CAAG,EAAI,EAChE,EAAmB,OAAO,QAAQ,OAAO,SACzC,EAAkB,OAAO,QAAQ,OAAO,QAC1C,EAAY,MAAM,EAAsB,EAAU,EAAS,EAAa,EAAkB,CAAe,CAAC,CAAC,MAAO,IACpH,QAAQ,MAAM,qCAAsC,CAAG,EAChD,CAAC,EACT,EAED,SAAS,EAAiB,EAA8B,CACtD,EAAY,EAAU,IAAK,IAAc,CACvC,GAAG,EACH,SAAU,IAAa,CACzB,EAAE,CACJ,CAEA,SAAS,EAAwB,EAAc,CAC7C,GAAM,CAAE,OAAQ,GAAiB,EACjC,EAAgB,CAAY,EAE5B,QAAQ,QAAQ,EAAa,aAAa,CAAC,CAAC,CAAC,MAAO,GAAU,CAC5D,QAAQ,MAAM,qCAAsC,CAAK,CAC3D,CAAC,EAED,EAAa,CACf,CAEA,SAAS,GAAgB,EACvB,EAAA,EAAA,OAAA,CACE,EAAA,IAAI,oCAAoC,EAAU,oBAAoB,EAAuB,wBAC7F,CACF,CACF,CAEA,EAAa,EAEb,IAAM,EAAS,EAAa,kBAE5B,GAAI,CAAC,EACH,MAAU,MAAM,0BAA0B,EAS5C,OANI,EACF,EAAY,aAAa,EAAQ,EAAY,UAAU,EAEvD,SAAS,KAAK,QAAQ,CAAM,EAGvB,CACT"}
@@ -0,0 +1,3 @@
1
+ import { OutlineManager } from '../outline/manager';
2
+ export declare function createNavbar(outliner: OutlineManager): Promise<HTMLElement>;
3
+ //# sourceMappingURL=navbar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navbar.d.ts","sourceRoot":"","sources":["../../src/mainPage/navbar.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAGxD,OAAO,oBAAoB,CAAA;AAC3B,OAAO,qBAAqB,CAAA;AAC5B,OAAO,2BAA2B,CAAA;AAClC,OAAO,sBAAsB,CAAA;AAoE7B,wBAAsB,YAAY,CAAE,QAAQ,EAAE,cAAc,wBA4D3D"}
@@ -0,0 +1,66 @@
1
+ import { isWebIdUri as e, loadProfileFromURI as t } from "../utils/webIdUtils.esm.js";
2
+ import "../_virtual/~icons/lucide/user.esm.js";
3
+ import "../_virtual/~icons/lucide/users.esm.js";
4
+ import "../_virtual/~icons/lucide/folder-open.esm.js";
5
+ import { getFolderPanesFromURI as n, getProfilePaneFromURI as r, getSocialPaneFromURI as i } from "../utils/paneUtils.esm.js";
6
+ import "../components/navbar/index.esm.js";
7
+ import { store as a } from "solid-logic";
8
+ import { html as o, render as s } from "lit-html";
9
+ //#region src/mainPage/navbar.ts
10
+ function c() {
11
+ let e = document.querySelector("solid-panes-navbar");
12
+ e && e.classList.remove("navbar--hidden");
13
+ }
14
+ function l(e, t, n = !1) {
15
+ return {
16
+ label: e,
17
+ onSelected() {
18
+ return c(), t();
19
+ },
20
+ selected: n
21
+ };
22
+ }
23
+ async function u(a, o, s, c, u) {
24
+ let d = await t(o), f = c || (e(o) ? "profile" : void 0), p = [];
25
+ d && p.push(l("Profile", async () => {
26
+ let e = await r(d);
27
+ a.GotoSubject(o, !0, e, !0, void 0, s);
28
+ }, f === "profile"), l("Friends", async () => {
29
+ let e = await i(d);
30
+ a.GotoSubject(o, !0, e, !0, void 0, s);
31
+ }, f === "social"));
32
+ let m = await n(o);
33
+ return m.forEach((e) => {
34
+ p.push(l(e.label(), async () => {
35
+ a.GotoSubject(o, !0, e, !0, void 0, s);
36
+ }, f === e.paneName && (u ? u === e.subject.value : m.length === 1)));
37
+ }), p;
38
+ }
39
+ async function d(e) {
40
+ let t = document.querySelector("solid-panes-navbar");
41
+ if (t) return t.classList.remove("navbar--hidden"), t;
42
+ let n = document.getElementById("OutlineView"), r = document.getElementById("MainContent"), i = document.createElement("div"), c = window.location.href, l = typeof c == "string" ? a.sym(c) : c, d = window.history.state?.paneName, f = window.history.state?.paneUri, p = await u(e, l, n, d, f).catch((e) => (console.error("Failed to build navbar menu items:", e), []));
43
+ function m(e) {
44
+ p = p.map((t) => ({
45
+ ...t,
46
+ selected: t === e
47
+ }));
48
+ }
49
+ function h(e) {
50
+ let { detail: t } = e;
51
+ m(t), Promise.resolve(t.onSelected?.()).catch((e) => {
52
+ console.error("Navbar menu item selection failed:", e);
53
+ }), g();
54
+ }
55
+ function g() {
56
+ s(o`<solid-panes-navbar .navbarItems=${p} @solid-ui-select=${h}></solid-panes-navbar>`, i);
57
+ }
58
+ g();
59
+ let _ = i.firstElementChild;
60
+ if (!_) throw Error("Failed to create nav bar");
61
+ return r ? r.insertBefore(_, r.firstChild) : document.body.prepend(_), _;
62
+ }
63
+ //#endregion
64
+ export { d as createNavbar };
65
+
66
+ //# sourceMappingURL=navbar.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navbar.esm.js","names":[],"sources":["../../src/mainPage/navbar.ts"],"sourcesContent":["import { store } from 'solid-logic'\nimport { NamedNode } from 'rdflib'\nimport { getSocialPaneFromURI, getProfilePaneFromURI, getFolderPanesFromURI } from '../utils/paneUtils'\nimport { html, render } from 'lit-html'\nimport type { OutlineManager } from '../outline/manager'\nimport { isWebIdUri, loadProfileFromURI } from '../utils/webIdUtils'\n\nimport '~icons/lucide/user'\nimport '~icons/lucide/users'\nimport '~icons/lucide/folder-open'\nimport '../components/navbar'\n\nimport type { NavbarMenuItem } from '../components/navbar/Navbar'\n\nfunction showNavbar () {\n const navbar = document.querySelector<HTMLElement>('solid-panes-navbar')\n if (navbar) {\n navbar.classList.remove('navbar--hidden')\n }\n}\n\nfunction createNavItem (\n label: string,\n onSelected: () => void,\n selected = false\n): NavbarMenuItem {\n return {\n label,\n onSelected () {\n showNavbar()\n return onSelected()\n },\n selected\n }\n}\n\nasync function createNavbarMenuItems (\n outliner: OutlineManager,\n subject: NamedNode,\n outlineView: HTMLElement | null,\n selectedPaneName?: string,\n selectedPaneUri?: string\n): Promise<NavbarMenuItem[]> {\n const webId = await loadProfileFromURI(subject)\n const selectedPane = selectedPaneName || (isWebIdUri(subject) ? 'profile' : undefined)\n\n const menuItems: NavbarMenuItem[] = []\n\n if (webId) {\n menuItems.push(\n createNavItem('Profile', async () => {\n const profilePane = await getProfilePaneFromURI(webId)\n outliner.GotoSubject(subject, true, profilePane, true, undefined, outlineView)\n }, selectedPane === 'profile'),\n createNavItem('Friends', async () => {\n const socialPane = await getSocialPaneFromURI(webId)\n outliner.GotoSubject(subject, true, socialPane, true, undefined, outlineView)\n }, selectedPane === 'social')\n )\n }\n\n const storagePanes = await getFolderPanesFromURI(subject)\n storagePanes.forEach(pane => {\n menuItems.push(\n createNavItem(\n pane.label(),\n async () => {\n outliner.GotoSubject(subject, true, pane, true, undefined, outlineView)\n },\n selectedPane === pane.paneName &&\n (selectedPaneUri ? selectedPaneUri === pane.subject.value : storagePanes.length === 1)\n )\n )\n })\n\n return menuItems\n}\n\nexport async function createNavbar (outliner: OutlineManager) {\n const existingNavbar = document.querySelector<HTMLElement>('solid-panes-navbar')\n\n if (existingNavbar) {\n existingNavbar.classList.remove('navbar--hidden')\n return existingNavbar\n }\n\n const OutlineView = document.getElementById('OutlineView')\n const mainContent = document.getElementById('MainContent')\n const tmpContainer = document.createElement('div')\n const uri = window.location.href\n const subject: NamedNode = typeof uri === 'string' ? store.sym(uri) : uri\n const selectedPaneName = window.history.state?.paneName\n const selectedPaneUri = window.history.state?.paneUri\n let menuItems = await createNavbarMenuItems(outliner, subject, OutlineView, selectedPaneName, selectedPaneUri).catch((err) => {\n console.error('Failed to build navbar menu items:', err)\n return []\n })\n\n function setSelectedItem (selectedItem: NavbarMenuItem) {\n menuItems = menuItems.map((menuItem) => ({\n ...menuItem,\n selected: menuItem === selectedItem\n }))\n }\n\n function handleSelectionChanged (event: Event) {\n const { detail: selectedItem } = event as CustomEvent<NavbarMenuItem>\n setSelectedItem(selectedItem)\n\n Promise.resolve(selectedItem.onSelected?.()).catch((error) => {\n console.error('Navbar menu item selection failed:', error)\n })\n\n renderNavbar()\n }\n\n function renderNavbar () {\n render(\n html`<solid-panes-navbar .navbarItems=${menuItems} @solid-ui-select=${handleSelectionChanged}></solid-panes-navbar>`,\n tmpContainer\n )\n }\n\n renderNavbar()\n\n const navbar = tmpContainer.firstElementChild as HTMLElement | null\n\n if (!navbar) {\n throw new Error('Failed to create nav bar')\n }\n\n if (mainContent) {\n mainContent.insertBefore(navbar, mainContent.firstChild)\n } else {\n document.body.prepend(navbar)\n }\n\n return navbar\n}\n"],"mappings":";;;;;;;;;AAcA,SAAS,IAAc;CACrB,IAAM,IAAS,SAAS,cAA2B,oBAAoB;CACvE,AAAI,KACF,EAAO,UAAU,OAAO,gBAAgB;AAE5C;AAEA,SAAS,EACP,GACA,GACA,IAAW,IACK;CAChB,OAAO;EACL;EACA,aAAc;GAEZ,OADA,EAAW,GACJ,EAAW;EACpB;EACA;CACF;AACF;AAEA,eAAe,EACb,GACA,GACA,GACA,GACA,GAC2B;CAC3B,IAAM,IAAQ,MAAM,EAAmB,CAAO,GACxC,IAAe,MAAqB,EAAW,CAAO,IAAI,YAAY,KAAA,IAEtE,IAA8B,CAAC;CAErC,AAAI,KACF,EAAU,KACR,EAAc,WAAW,YAAY;EACnC,IAAM,IAAc,MAAM,EAAsB,CAAK;EACrD,EAAS,YAAY,GAAS,IAAM,GAAa,IAAM,KAAA,GAAW,CAAW;CAC/E,GAAG,MAAiB,SAAS,GAC7B,EAAc,WAAW,YAAY;EACnC,IAAM,IAAa,MAAM,EAAqB,CAAK;EACnD,EAAS,YAAY,GAAS,IAAM,GAAY,IAAM,KAAA,GAAW,CAAW;CAC9E,GAAG,MAAiB,QAAQ,CAC9B;CAGF,IAAM,IAAe,MAAM,EAAsB,CAAO;CAcxD,OAbA,EAAa,SAAQ,MAAQ;EAC3B,EAAU,KACR,EACE,EAAK,MAAM,GACX,YAAY;GACV,EAAS,YAAY,GAAS,IAAM,GAAM,IAAM,KAAA,GAAW,CAAW;EACxE,GACA,MAAiB,EAAK,aACnB,IAAkB,MAAoB,EAAK,QAAQ,QAAQ,EAAa,WAAW,EACxF,CACF;CACF,CAAC,GAEM;AACT;AAEA,eAAsB,EAAc,GAA0B;CAC5D,IAAM,IAAiB,SAAS,cAA2B,oBAAoB;CAE/E,IAAI,GAEF,OADA,EAAe,UAAU,OAAO,gBAAgB,GACzC;CAGT,IAAM,IAAc,SAAS,eAAe,aAAa,GACnD,IAAc,SAAS,eAAe,aAAa,GACnD,IAAe,SAAS,cAAc,KAAK,GAC3C,IAAM,OAAO,SAAS,MACtB,IAAqB,OAAO,KAAQ,WAAW,EAAM,IAAI,CAAG,IAAI,GAChE,IAAmB,OAAO,QAAQ,OAAO,UACzC,IAAkB,OAAO,QAAQ,OAAO,SAC1C,IAAY,MAAM,EAAsB,GAAU,GAAS,GAAa,GAAkB,CAAe,CAAC,CAAC,OAAO,OACpH,QAAQ,MAAM,sCAAsC,CAAG,GAChD,CAAC,EACT;CAED,SAAS,EAAiB,GAA8B;EACtD,IAAY,EAAU,KAAK,OAAc;GACvC,GAAG;GACH,UAAU,MAAa;EACzB,EAAE;CACJ;CAEA,SAAS,EAAwB,GAAc;EAC7C,IAAM,EAAE,QAAQ,MAAiB;EAOjC,AANA,EAAgB,CAAY,GAE5B,QAAQ,QAAQ,EAAa,aAAa,CAAC,CAAC,CAAC,OAAO,MAAU;GAC5D,QAAQ,MAAM,sCAAsC,CAAK;EAC3D,CAAC,GAED,EAAa;CACf;CAEA,SAAS,IAAgB;EACvB,EACE,CAAI,oCAAoC,EAAU,oBAAoB,EAAuB,yBAC7F,CACF;CACF;CAEA,EAAa;CAEb,IAAM,IAAS,EAAa;CAE5B,IAAI,CAAC,GACH,MAAU,MAAM,0BAA0B;CAS5C,OANI,IACF,EAAY,aAAa,GAAQ,EAAY,UAAU,IAEvD,SAAS,KAAK,QAAQ,CAAM,GAGvB;AACT"}
@@ -1,5 +1,5 @@
1
1
  import { DataBrowserContext, PaneRegistry, RenderEnvironment } from '../../node_modules/pane-registry';
2
- import { SolidLogic } from '../../node_modules/solid-logic/dist/solid-logic.esm.js';
2
+ import { SolidLogic } from '../../node_modules/solid-logic/dist/index.esm.js';
3
3
  import { LiveStore } from '../../node_modules/rdflib';
4
4
  export declare function createContext(dom: HTMLDocument, paneRegistry: PaneRegistry, store: LiveStore, logic: SolidLogic, environment?: RenderEnvironment): DataBrowserContext;
5
5
  //# sourceMappingURL=context.d.ts.map
@@ -1,3 +1,3 @@
1
- (function(){try{if(typeof document<`u`){var e=document.createElement(`style`);e.appendChild(document.createTextNode(`.obj{vertical-align:top;border:none;margin:.2em;padding:0}.iconTD{vertical-align:top;border:none;width:0;margin:.2em;padding:0}.labelTD{width:100%}.paneIconTray{justify-content:flex-start;align-items:center;display:flex}.paneShown{border-radius:var(--border-radius-md,.5rem);width:24px;margin-left:var(--spacing-small,.1rem);padding:.188rem;background-color:var(--header-menu-item-hover,#e6dcff)!important;border:none!important}.paneHidden{border-radius:var(--border-radius-md,.5rem);width:24px;margin-left:var(--spacing-small,.1rem);padding:.188rem}.header{flex-wrap:wrap;justify-content:flex-start;align-items:center;display:flex}.strongHeader{margin:0 .6rem 0 0;padding:.1rem .4rem;font-size:150%}.tableFullWidth{width:100%;background:var(--color-background,#f8f9fb)!important}.placeholderTable{width:100%}.tdFlex{margin:var(--spacing-xxxs,.2rem);vertical-align:top;border:none;flex-direction:row;justify-content:space-between;padding:0;display:flex}`)),document.head.appendChild(e)}}catch(e){console.error(`vite-plugin-css-injected-by-js`,e)}})();const e=require("../_virtual/_rolldown/runtime.cjs.js");;const t=require("./propertyViews.cjs.js"),n=require("./outlineIcons.cjs.js"),r=require("./userInput.cjs.js"),i=require("./queryByExample.cjs.js"),a=require("../profileUtils/ownerProfile.cjs.js"),o=require("../icons/person.cjs.js"),s=require("../icons/friends.cjs.js"),c=require("../icons/folder.cjs.js"),l=require("../icons/dashboard.cjs.js");let u=require("solid-ui");u=e.__toESM(u);let d=require("solid-logic"),f=require("pane-registry");f=e.__toESM(f);let p=require("rdflib");p=e.__toESM(p);var m=o.default,h=s.default,g=c.default,_=l.default;function v(e){let o=e.dom;this.document=e.dom,this.context=e,this.outlineIcons=n.outlineIcons,this.labeller=this.labeller||{},this.labeller.LanguagePreference=``;let s=this,c=this,l=[];this.selection=l,this.ancestor=u.utils.ancestor,this.sparql=p.UpdateManager,this.kb=d.store;let v=d.store,y=d.store.fetcher;o.outline=this,this.qs=new i.QuerySource,this.UserInput=new r.UserInput(this),this.clipboardAddress=`tabulator:clipboard`,this.UserInput.clipboardInit(this.clipboardAddress);let b=this.outlineElement;this.init=function(){let e=k();e.outline=this},this.getLayoutMode=function(){let e=this.context?.environment?.layout;if(e===`mobile`||e===`desktop`)return e;if(typeof window<`u`&&window.matchMedia){let e=Math.round(Math.min(window.innerWidth,window.visualViewport?.width||window.innerWidth)),t=window.matchMedia(`(pointer: coarse)`).matches||navigator.maxTouchPoints>0;return e<=768||t&&e<=1024?`mobile`:`desktop`}return`desktop`},x.lastkbsize=0;function x(e){let t=[];for(let e=arguments.length-1;e>0;e--)t[e-1]=arguments[e];let n=new Date().getTime(),r=e.apply(e,t),i=new Date().getTime();return u.log.info(`BENCHMARK: kb delta: `+(v.statements.length-x.lastkbsize)+`, time elapsed for `+e+` was `+(i-n)+`ms`),x.lastkbsize=v.statements.length,r}function S(e,t,r){let i=u.utils.AJARImage(n.outlineIcons.src.icon_remove_node,`remove`,void 0,o);return i.addEventListener(`click`,ce),i.node=r,i.setAttribute(`about`,t.toNT()),i.style.marginLeft=`5px`,i.style.marginRight=`10px`,e.appendChild(i),i}this.appendAccessIcons=function(e,t,n){if(n.termType!==`NamedNode`)return;let r=e.uris(n);r.sort();let i=null;for(let e=0;e<r.length;e++)r[e]!==i&&(i=r[e],c.appendAccessIcon(t,i))},this.appendAccessIcon=function(e,t){if(!t)return``;let r=p.uri.docpart(t);if(r.slice(0,5)!==`http:`)return``;let i=y.getState(r),a,s,c;switch(i){case`unrequested`:a=n.outlineIcons.src.icon_unrequested,s=`fetch`,c=se;break;case`requested`:a=n.outlineIcons.src.icon_requested,s=`fetching`,c=K;break;case`fetched`:a=n.outlineIcons.src.icon_fetched,c=oe,s=`loaded`;break;case`failed`:a=n.outlineIcons.src.icon_failed,s=`failed`,c=K;break;case`unpermitted`:a=n.outlineIcons.src.icon_failed,c=K,s=`no perm`;break;case`unfetchable`:a=n.outlineIcons.src.icon_failed,c=K,s=`cannot fetch`;break;default:u.log.error(`?? state = `+i);break}let l=u.utils.AJARImage(a,s,n.outlineIcons.tooltips[a].replace(/[Tt]his resource/,r),o);return l.setAttribute(`uri`,t),l.addEventListener(`click`,c),z(l,r),e.appendChild(l),l},this.outlineObjectTD=function(e,t,n,r){let i=o.createElement(`td`);return i.classList.add(`obj`),i.setAttribute(`notSelectable`,`false`),i.style.margin=`0.2em`,e?(i.style.border=`none`,i.style.padding=`0`,i.style.verticalAlign=`top`,(e.termType===`NamedNode`||e.termType===`BlankNode`||e.termType===`Literal`&&e.value.slice&&(e.value.slice(0,6)===`ftp://`||e.value.slice(0,8)===`https://`||e.value.slice(0,7)===`http://`))&&(i.setAttribute(`about`,e.toNT()),i.appendChild(u.utils.AJARImage(u.icons.originalIconBase+`tbl-expand-trans.png`,`expand`,void 0,o)).addEventListener(`click`,ie)),i.setAttribute(`class`,`obj`),v.whether(e,u.ns.rdf(`type`),u.ns.link(`Request`))&&(i.className=`undetermined`),t||=de,i.appendChild(t(e)),n&&S(i,e,n),i.tabulatorSelect=function(){W(this,!0)},i.tabulatorDeselect=function(){W(this,!1)},i.addEventListener(`click`,q),i):(i.textContent=`No object available.`,i)},this.outlinePredicateTD=function(e,t,r,i){let a=o.createElement(`TD`);a.setAttribute(`about`,e.toNT()),a.setAttribute(`class`,i?`pred internal`:`pred`);let s;switch(e.termType){case`BlankNode`:a.className=`undetermined`;break;case`NamedNode`:s=u.utils.predicateLabelForXML(e,r);break;case`Collection`:s=u.utils.predicateLabelForXML(e.elements[0],r)}s=s?s.slice(0,1).toUpperCase()+s.slice(1):`...`;let c=o.createElement(`TD`);c.classList.add(`labelTD`),c.setAttribute(`notSelectable`,`true`),c.appendChild(o.createTextNode(s)),a.appendChild(c),c.style.width=`100%`,a.appendChild(I.construct(o));for(let e in n.outlineIcons.termWidgets){if(!t||!t.AJAR_statement)break;n.outlineIcons.termWidgets[e].filter&&n.outlineIcons.termWidgets[e].filter(t.AJAR_statement,`pred`,r)&&I.addIcon(a,n.outlineIcons.termWidgets[e])}return a.tabulatorSelect=function(){W(this,!0)},a.tabulatorDeselect=function(){W(this,!1)},a.addEventListener(`click`,q),a};async function C(e={}){console.log(`globalAppTabs @@`);let t=o.createElement(`div`),n=d.authn.currentUser();if(!n)throw alert(`Must be logged in for this`),Error(`Not logged in`);let r=await w(),i=e.selectedTab?r.find(t=>t.paneName===e.selectedTab||t.tabName===e.selectedTab):r[0];if(!i)return t;t.dataset.globalPaneName=i.tabName||i.paneName;let a=t.appendChild(o.createElement(`div`)),s=f.byName(i.paneName),l=a.appendChild(o.createElement(`table`));return c.GotoSubject(i.subject||n,!0,s,!1,void 0,l),t}this.getDashboard=C;async function w(){let e=d.authn.currentUser();if(!e)return[];o.createElement(`div`);let t=[{paneName:`profile`,subject:e,label:`Your profile`,icon:m},{paneName:`social`,subject:e,label:`Your friends`,icon:h}],[n]=await Promise.all([r()]);return t.push(...n),t.push({paneName:`home`,label:`Your dashboard`,icon:_},{paneName:`basicPreferences`,label:`Your preferences`,icon:u.icons.iconBase+`noun_Sliders_341315_000000.svg`}),t;async function r(){async function t(e){return await j(e),v.holds(e,Q.rdf(`type`),Q.space(`Storage`),e.doc())?(r.push(e),!0):!1}async function n(e){let n=new URL(e),r=n.pathname;for(;r.length;)if(r=r.substring(0,r.lastIndexOf(`/`)),await t(v.sym(`${n.origin}${r}/`)))return}try{await v.fetcher.load(e.doc())}catch(e){return console.error(`Unable to load profile`,e),[]}let r=v.each(e,Q.space(`storage`),null,e.doc());await Promise.all(r.map(async e=>{await j(e)}));try{await n(new URL(window.location.href).searchParams.get(`uri`)||window.location.href)}catch(e){console.error(`cannot load container`,e)}function i(e){let t=[];return e.forEach(e=>{t.find(t=>t.equals(e))||t.push(e)}),t}return r=i(r),r.length?Promise.all(r.map(async(t,n)=>{function r(e){return e.uri.split(`//`)[1].slice(0,-1)}let i=await a.getNameOfPodOwner(t,v,y)||``,o=r(e).startsWith(r(t))?`Your storage`:i.trim()===``?r(t):i+`'s storage`;return{paneName:`folder`,tabName:`folder-${n}`,label:o,subject:t,icon:g}})):[]}}this.getDashboardItems=w;function T(){let e=O(),t=k();e.innerHTML=``,D(e),E(t)}d.authSession.events.on(`logout`,T);function E(e){e.removeAttribute(`hidden`),e.style.display=``}function D(e){e.setAttribute(`hidden`,``),e.style.display=`none`}async function ee(e,t={}){let n=O(),r=k();if(n.childNodes.length>0){let i=n.firstElementChild;if(i&&t.pane&&i.dataset.globalPaneName===t.pane&&i.dataset.subject===(e&&e.value||``)){D(r),E(n);return}n.innerHTML=``}let i=await C({selectedTab:t.pane});D(r),E(n),n.appendChild(i)}this.showDashboard=ee;function O(){return A(`GlobalDashboard`,`Dashboard`)}function k(){return A(`OutlineView`,`Resource browser`)}function A(e){let t=document.getElementById(`app-view`)||document.getElementById(`MainContent`)||document.querySelector(`[role="main"]`)||document.body;if(e===`OutlineView`){let e=document.getElementById(`OutlineView`);if(e)return e;if(t){let e=document.createElement(`table`);return e.id=`OutlineView`,e.classList.add(`outline-view`),e.setAttribute(`aria-label`,`Resource browser`),t.appendChild(e),e}}return document.getElementById(e)||(()=>{let n=document.createElement(`section`);return n.id=e,n.setAttribute(`aria-label`,`Dashboard`),n.classList.add(`global-dashboard`),t.appendChild(n)})()}async function j(e){if(!v.any(e,Q.ldp(`contains`),void 0,e.doc())){let t=(await v.fetcher.webOperation(`GET`,e.uri,v.fetcher.initFetchOptions(e.uri,{headers:{accept:`text/turtle`}}))).responseText;p.parse(t,v,e.uri,`text/turtle`)}}async function te(e,t){e.uri.endsWith(`/`)&&await j(e);let n=t.session.paneRegistry,r=n.list.filter(n=>n.label(e,t)&&!n.global);if(r.length===0)return[n.byName(`internal`)];let i=await u.login.filterAvailablePanes(r);return i.length===0?[r[0]]:n.list.indexOf(r[0])<n.list.indexOf(i[0])?[r[0]].concat(i):i}function ne(e,t){return e.find(e=>e.shouldGetFocus&&e.shouldGetFocus(t))||e[0]}async function re(t,n,r){async function i(r,i={}){let s=`width: 24px; border-radius: 0.5em; border-top: solid #222 1px; border-left: solid #222 0.1em; border-bottom: solid #eee 0.1em; border-right: solid #eee 0.1em; margin-left: 1em; padding: 3px; background-color: #ffd;`,c=`width: 24px; border-radius: 0.5em; margin-left: 1em; padding: 3px`,l=r.appendChild(o.createElement(`nav`));l.style=`display:flex; justify-content: flex-start; align-items: center;`;let d=i.hideList?[]:await te(t,e);a.firstPane=n||ne(d,t);let f=d.indexOf(a.firstPane);return d.length!==1&&d.forEach((n,d)=>{let p=n.label(t,e),g=``;g=n.name===`profile`?m:n.name===`social`?h:typeof n.icon==`function`?n.icon(t,e):n.icon;let _=u.utils.AJARImage(g,p,p,o);g instanceof Promise&&g.then(e=>{_.setAttribute(`src`,e)}).catch(e=>{console.error(`Error resolving async icon:`,e)}),_.style=n===a.firstPane?s:c,function(n,a){n.addEventListener(`click`,function(l){let d;for(d=r;d.parentNode&&d.nodeName!==`TABLE`;d=d.parentNode);if(d.nodeName!==`TABLE`)throw Error(`outline: internal error.`);let f=function(e){for(let t=d.firstChild;t;t=t.nextSibling)t.pane!==void 0&&(!e||t.pane===e)&&(t.paneButton&&(t.paneButton.setAttribute(`class`,`paneHidden`),t.paneButton.style=c),M(t),t.pane.requireQueryButton&&d.parentNode.className&&p===1&&o.getElementById(`queryButton`)&&o.getElementById(`queryButton`).setAttribute(`style`,`display:none;`))};n.getAttribute(`class`)===`paneHidden`?(l.shiftKey||f(),function(r){let a;u.log.info(`outline: Rendering pane (2): `+r.name);try{a=r.render(t,e,i)}catch(e){a=o.createElement(`div`),a.setAttribute(`class`,`exceptionPane`);let t=o.createElement(`pre`);a.appendChild(t),t.appendChild(o.createTextNode(u.utils.stackString(e)))}r.requireQueryButton&&o.getElementById(`queryButton`)&&o.getElementById(`queryButton`).removeAttribute(`style`);let s=d.firstChild.nextSibling,c=o.createElement(`tr`),l=c.appendChild(o.createElement(`td`));l.setAttribute(`colspan`,`2`),l.style.textAlign=`left`,l.style.width=`100%`,l.appendChild(a),s?d.insertBefore(c,s):d.appendChild(c),c.pane=r,c.paneButton=n}(a),n.setAttribute(`class`,`paneShown`),n.style=s):(f(a),n.setAttribute(`class`,`paneHidden`),n.style=c);let p=0;for(let e=d.firstChild;e;e=e.nextSibling)e.pane&&e.pane.requireQueryButton&&p++},!1)}(_,n),_.setAttribute(`class`,d===f?`paneShown`:`paneHidden`),d===f&&(a.paneButton=_),l.appendChild(_)}),l}let a=o.createElement(`tr`);r.hover&&a.setAttribute(`class`,`hoverControl`);let s=a.appendChild(o.createElement(`td`));s.setAttribute(`style`,`margin: 0.2em; border: none; padding-top: 0; padding-bottom: 0; vertical-align: top;display:flex; justify-content: space-between; flex-direction: row;background-color: var(--color-background, #F8F9FB);`),s.setAttribute(`notSelectable`,`true`),s.setAttribute(`about`,t.toNT()),s.setAttribute(`colspan`,`2`);let c=s.appendChild(o.createElement(`div`));c.style=`display:flex; justify-content: flex-start; align-items: center; flex-wrap: wrap;`;let l=!!n;if(!r.solo&&!l){c.appendChild(u.utils.AJARImage(u.icons.originalIconBase+`tbl-collapse.png`,`collapse`,void 0,o)).addEventListener(`click`,ae);let e=c.appendChild(o.createElement(`h1`));e.appendChild(o.createTextNode(u.utils.label(t))),e.style=`font-size: 150%; margin: 0 0.6em 0 0; padding: 0.1em 0.4em;background-color: var(--color-background, #F8F9FB);`,u.widgets.makeDraggable(e,t)}return c.appendChild(await i(s,{hideList:l})),a.firstChild.tabulatorSelect=function(){W(this,!0)},a.firstChild.tabulatorDeselect=function(){W(this,!1)},a}function M(e){let t=e.parentNode,n=t.parentNode,r=o.createElement(`table`);r.classList.add(`placeholderTable`),n.replaceChild(r,t),t.removeChild(e),n.replaceChild(t,r)}let N=this.propertyTable=function(t,n,r,i){return u.log.debug(`Property table for: `+t),t=v.canon(t),n?(u.log.info(`Re-expand: `+n),n):(n=o.createElement(`table`),n.classList.add(`tableFullWidth`),re(t,r,i).then(r=>{if(n.appendChild(r),r.firstPane){let a;try{u.log.info(`outline: Rendering pane (1): `+r.firstPane.name),a=r.firstPane.render(t,e,i)}catch(e){a=o.createElement(`div`),a.setAttribute(`class`,`exceptionPane`);let t=o.createElement(`pre`);a.appendChild(t),t.appendChild(o.createTextNode(u.utils.stackString(e)))}let s=o.createElement(`tr`),c=s.appendChild(o.createElement(`td`));c.setAttribute(`colspan`,`2`),c.style.textAlign=`left`,c.style.width=`100%`,c.style.backgroundColor=`var(--color-background, #F8F9FB)`,c.appendChild(a),r.firstPane.requireQueryButton&&o.getElementById(`queryButton`)&&o.getElementById(`queryButton`).removeAttribute(`style`),n.appendChild(s),s.pane=r.firstPane,s.paneButton=r.paneButton}}),n)};function P(e,t,n){let r=e.createElement(`TR`);r.AJAR_statement=t,r.AJAR_inverse=n,r.setAttribute(`predTR`,`true`);let i=c.outlinePredicateTD(t.predicate,r,n);return r.appendChild(i),r}this.propertyTR=P;function F(e,t,n,r){if(u.log.debug(`Property list length = `+t.length),t.length===0)return``;let i,a,l;n?(i=function(e){return e.subject},t=t.sort(u.utils.RDFComparePredicateSubject)):(i=function(e){return e.object},t=t.sort(u.utils.RDFComparePredicateObject));let d=t.length;for(a=0;a<d;a++){let f=t[a];if(r&&!r(f.predicate,n))continue;let p=P(o,f,n);e.appendChild(p);let m=p.firstChild,h=$.defaults[f.predicate.uri],g=0,_=0,y=0;for(l=0;l+a<d&&t[a+l].predicate.sameTerm(f.predicate);l++)l>0&&i(t[a+l]).sameTerm(i(t[a+l-1]))&&g++,i(t[a+l]).lang&&s.labeller.LanguagePreference&&(_+=1,i(t[a+l]).lang.indexOf(s.labeller.LanguagePreference)>=0&&y++);if(y>0&&_===g+1){for(let e=a;e<=a+g;e++)if(s.labeller.LanguagePreference&&i(t[e]).lang.indexOf(s.labeller.LanguagePreference)>=0){p.appendChild(c.outlineObjectTD(i(t[e]),h,void 0,f));break}a+=g;continue}p.appendChild(c.outlineObjectTD(i(f),h,void 0,f)),p.showNobj=function(r){let s=l-g,d=2*r<s?r:s,p=[];if(s!==1){m.setAttribute(`rowspan`,d===s?s:r+1);let g;d<s&&d===1&&m.setAttribute(`rowspan`,2);let _=0;for(g=1;g<l;g++)if(v.canon(i(t[a+g])).sameTerm(v.canon(i(t[a+g-1]))))u.log.info(`there are duplicates here: %s`,t[a+g-1]);else{_++,f=t[a+g],h=$.defaults[f.predicate.uri];let r=o.createElement(`tr`);r.style.colspan=`1`,r.appendChild(c.outlineObjectTD(i(t[a+g]),h,void 0,f)),r.AJAR_statement=f,r.AJAR_inverse=n,e.appendChild(r),_>=d&&(r.style.display=`none`,p.push(r))}d===s&&m.setAttribute(`rowspan`,_+1)}if(d<s){let t=o.createElement(`tr`),n=t.appendChild(o.createElement(`td`));if(n.setAttribute(`style`,`margin: 0.2em; border: none; padding: 0; vertical-align: top;`),n.setAttribute(`notSelectable`,`false`),s>r){let e=o.createElement(`a`);n.appendChild(e);let t=(function(e){return e(m,l,g,r)})(function(t,n,r,i){return function(n){e.innerHTML=``,n===`none`?(e.appendChild(u.utils.AJARImage(u.icons.originalIconBase+`tbl-more-trans.png`,`more`,`See all`,o)),e.appendChild(o.createTextNode(s-i+` more...`)),t.setAttribute(`rowspan`,i+1)):(e.appendChild(u.utils.AJARImage(u.icons.originalIconBase+`tbl-shrink.png`,`(less)`,void 0,o)),t.setAttribute(`rowspan`,s+1));for(let e=0;e<p.length;e++){let t=p[e];t.style.display=n}}}),i=`none`,a=function(e){return t(i),i=i===`none`?``:`none`,e&&e.stopPropagation(),!1};a(),e.addEventListener(`click`,a,!1)}e.appendChild(t)}},p.showAllobj=function(){p.showNobj(l-g)},p.showNobj(10),a+=l-1}}this.appendPropertyTRs=F;let I={};globalThis.termWidget=I,I.construct=function(e){e||=document;let t=e.createElement(`TD`);return t.setAttribute(`style`,`margin: 0.2em; border: none; padding: 0; vertical-align: top;`),t.setAttribute(`class`,`iconTD`),t.setAttribute(`notSelectable`,`true`),t.style.width=`0px`,t},I.addIcon=function(e,t,n){let r=e.childNodes[1];if(!r)return;let i=r.style.width,a=u.utils.AJARImage(t.src,t.alt,t.tooltip,o);i=parseInt(i),i+=t.width,r.style.width=i+`px`,r.appendChild(a),n&&a.addEventListener(`click`,n)},I.removeIcon=function(e,t){let n=e.childNodes[1],r;if(!n)return;let i=n.style.width;i=parseInt(i),i-=t.width,n.style.width=i+`px`;for(let e=0;e<n.childNodes.length;e++){let i=n.childNodes[e],a=i.src;try{r=o.location.href.split(`?`)[0]}catch(e){console.log(e),r=``}a===p.uri.join(t.src,r)&&n.removeChild(i)}},I.replaceIcon=function(e,t,n,r){I.removeIcon(e,t),I.addIcon(e,n,r)};function L(){this.pat=v.formula(),this.vars=[]}let R=[];R[0]=new L;function z(e,t){u.log.debug(`Button callbacks for `+t+` added`);let r=function(r){return function(i){return i.indexOf(`#`)>=0&&console.log(`@@ makeIconCallback: Not expecting # in URI whose state changed: `+i),!e||!s.ancestor(e,`DIV`)?!1:(i===t&&(e.src=r,e.title=n.outlineIcons.tooltips[r]),!0)}};y.addCallback(`request`,r(n.outlineIcons.src.icon_requested)),y.addCallback(`done`,r(n.outlineIcons.src.icon_fetched)),y.addCallback(`fail`,r(n.outlineIcons.src.icon_failed))}function B(e){let t=e.getAttribute(`class`);return!!(t&&t.indexOf(`selected`)>=0)}function V(e){let t=c.targetOf(e).parentNode;I.replaceIcon(t.parentNode,n.outlineIcons.termWidgets.optOn,n.outlineIcons.termWidgets.optOff,H),t.parentNode.parentNode.removeAttribute(`optional`)}function H(e){let t=c.targetOf(e).parentNode;I.replaceIcon(t.parentNode,n.outlineIcons.termWidgets.optOff,n.outlineIcons.termWidgets.optOn,V),t.parentNode.parentNode.setAttribute(`optional`,`true`)}function U(e,t){let r=n.outlineIcons.termWidgets.optOn,i=n.outlineIcons.termWidgets.optOff;for(let n=e;n.parentNode;n=n.parentNode)for(;;)if(n.getAttribute(`predTR`)){let e=n.getAttribute(`parentOfSelected`);e=e?parseInt(e):0,e===0&&t>0&&I.addIcon(n.childNodes[0],n.getAttribute(`optional`)?r:i,n.getAttribute(`optional`)?V:H),e+=t,n.setAttribute(`parentOfSelected`,e),e===0&&(n.removeAttribute(`parentOfSelected`),I.removeIcon(n.childNodes[0],n.getAttribute(`optional`)?r:i));break}else if(n.previousSibling&&n.previousSibling.nodeName===`TR`)n=n.previousSibling;else break}this.statusBarClick=function(e){let t=u.utils.getTarget(e);t.label&&(window.content.location=t.label)},this.showURI=function(e){e&&o.getElementById(`UserURI`)&&(o.getElementById(`UserURI`).value=e.termType===`NamedNode`?e.uri:``)},this.showSource=function(){if(!(typeof sourceWidget>`u`)){for(let e in sourceWidget.sources)sourceWidget.sources[e].setAttribute(`class`,``);for(let e=0;e<l.length;e++){if(!l[e].parentNode){console.log(`showSource: EH? no parentNode? `+l[e]+`
2
- `);continue}let t=l[e].parentNode.AJAR_statement;if(!t)continue;let n=t.why;n&&n.uri&&sourceWidget.highlight(n,!0)}}},this.getSelection=function(){return l};function W(e,t){if(e.nodeName!==`TD`)throw u.log.debug(`down`+e.nodeName),Error(`Expected TD in setSelected: `+e.nodeName+` : `+e.textContent);u.log.debug(`pass`);let r=e.getAttribute(`class`);if(r||=``,t){r+=` selected`,(r.indexOf(`pred`)>=0||r.indexOf(`obj`)>=0)&&U(e,1),l.push(e);let t=u.utils.getTerm(e);c.showURI(t);let i=e.AJAR_statement;if(i===void 0&&e.parentNode&&(i=e.parentNode.AJAR_statement),i){let t=i.why;d.store.updater.editable(t.uri,v)&&r.indexOf(`pred`)>=0&&I.addIcon(e,n.outlineIcons.termWidgets.addTri)}}else u.log.debug(`cla=$`+r+`$`),r===`selected`&&(r=``),r=r.replace(` selected`,``),(r.indexOf(`pred`)>=0||r.indexOf(`obj`)>=0)&&U(e,-1),r.indexOf(`pred`)>=0&&I.removeIcon(e,n.outlineIcons.termWidgets.addTri),l=l.filter(function(t){return t===e}),u.log.info(`Deselecting `+e.textContent);typeof sourceWidget<`u`&&c.showSource(),e.setAttribute(`class`,r)}function G(){let e=l.length;for(let t=e-1;t>=0;t--)W(l[t],!1);l=[]}this.targetOf=function(e){let t;if(e||=window.event,e.target)t=e.target;else if(e.srcElement)t=e.srcElement;else return u.log.error(`can't get target for event `+e),!1;return t.nodeType===3&&(t=t.parentNode),t},this.walk=function(e,t){let n=t||l[0],r;switch(e){case`down`:try{r=n.parentNode.nextSibling.lastChild}catch{this.walk(`up`);return}G(),W(r,!0);break;case`up`:try{r=n.parentNode.previousSibling.lastChild}catch{return}G(),W(r,!0);break;case`right`:if(G(),n.nextSibling||n.lastChild.tagName===`strong`)W(n.nextSibling,!0);else{let e=o.evaluate(`table/div/tr/td[2]`,n,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;W(e,!0)}break;case`left`:if(G(),n.previousSibling&&n.previousSibling.className===`undetermined`)return W(n.previousSibling,!0),!0;W(u.utils.ancestor(n.parentNode,`TD`),!0);break;case`moveTo`:G(),W(t,!0);break}(e===`down`||e===`up`)&&(r.tabulatorSelect||this.walk(e))},this.OutlinerKeypressPanel=function(e){u.log.info(`Key `+e.keyCode+` pressed`);function t(e){e&&o.getElementById(`UserURI`)&&(o.getElementById(`UserURI`).value=e.termType===`NamedNode`?e.uri:``)}function n(e){return arguments[3]?!0:(p(`right`,a),t(u.utils.getAbout(v,l[0])),!0)}let r,i;if(u.utils.getTarget(e).tagName===`TEXTAREA`||u.utils.getTarget(e).id===`UserURI`||l.length>1)return;if(l.length===0){(e.keyCode===13||e.keyCode===38||e.keyCode===40||e.keyCode===37||e.keyCode===39)&&(this.walk(`right`,c.focusTd),t(u.utils.getAbout(v,l[0])));return}let a=l[0];switch(y.removeCallback(`done`,`setSelectedAfterward`),y.removeCallback(`fail`,`setSelectedAfterward`),e.keyCode){case 13:if(u.utils.getTarget(e).tagName===`HTML`){let e=u.utils.getAbout(v,a);r=a.parentNode.AJAR_statement.why,i=d.store.updater.editable(r.uri,v),e?s.GotoSubject(e,!0):i&&c.UserInput.Enter(a)}else this.UserInput.Keypress(e),this.walk(`down`),e.stopPropagation();return;case 38:this.walk(`up`),e.stopPropagation(),e.preventDefault();break;case 40:this.walk(`down`),e.stopPropagation(),e.preventDefault()}if(u.utils.getTarget(e).tagName===`INPUT`)return;let p;switch(e.keyCode){case 46:case 8:r=a.parentNode.AJAR_statement.why,i=d.store.updater.editable(r.uri,v),i&&(e.preventDefault(),this.UserInput.Delete(a));break;case 37:{if(this.walk(`left`))return;let e=u.utils.ancestor(a.parentNode,`TD`);X(a,u.utils.getAbout(v,e));break}case 39:{let e=u.utils.getAbout(v,a);if(e){if(p=this.walk,a.nextSibling){this.walk(`right`);return}a.firstChild.tagName!==`TABLE`&&(y.addCallback(`done`,n),y.addCallback(`fail`,n),Y(a,e,{pane:f.byName(`defaultPane`)})),n()}}break;case 38:case 40:break;default:switch(e.charCode){case 99:if(e.ctrlKey){c.UserInput.copyToClipboard(c.clipboardAddress,a);break}break;case 118:case 112:if(e.ctrlKey){c.UserInput.pasteFromClipboard(c.clipboardAddress,a);break}break;default:u.utils.getTarget(e).tagName}}if(t(u.utils.getAbout(v,l[0])),l[0]){let e=u.utils.findPos(l[0])[1];e+l[0].clientHeight>window.scrollY+window.innerHeight&&u.utils.getEyeFocus(l[0],!0,!0,window),e<window.scrollY+54&&u.utils.getEyeFocus(l[0],!0,void 0,window)}},this.OutlinerMouseclickPanel=function(e){switch(c.UserInput._tabulatorMode){case 0:le(e);break;case 1:c.UserInput.Click(e);break;default:}};function ie(e){let t=c.targetOf(e),n=t.parentNode,r=u.utils.getAbout(v,t),i=e.altKey?f.byName(`internal`):void 0;e.shiftKey?Z(n,r,i):e.altKey?Y(n,r,{pane:f.byName(`internal`),immediate:!0}):Y(n,r)}function ae(e){let t=c.targetOf(e),n=u.utils.getAbout(v,t),r=e.altKey?f.byName(`internal`):void 0,i=t.parentNode.parentNode;X(i,n,r)}function K(e){let t=c.targetOf(e).getAttribute(`uri`);e.altKey?y.fetch(p.uri.docpart(t),{force:!0}):y.refresh(v.sym(p.uri.docpart(t)))}function oe(e){let t=c.targetOf(e).getAttribute(`uri`);e.altKey?y.fetch(p.uri.docpart(t),{force:!0}):y.refresh(v.sym(p.uri.docpart(t)))}function se(e){let t=c.targetOf(e).getAttribute(`uri`);y.fetch(p.uri.docpart(t))}function ce(e){let t=c.targetOf(e),n=t.node;n.childNodes.length>1&&(n=t.parentNode),M(n)}function q(e){if(c.UserInput._tabulatorMode)return c.UserInput.Click(e);let t=c.targetOf(e),n;for(n=u.utils.ancestor(t,`TD`);n&&n.getAttribute(`notSelectable`)!==`false`;n=u.utils.ancestor(n.parentNode,`TD`));if(!n)return;let r=B(n);if(u.log.debug(`Was node selected before: `+r),e.altKey)W(n,!B(n));else if(e.shiftKey)W(n,!0);else{if(G(),c.UserInput.clearInputAndSave(e),W(n,!0),e.detail===2){e.stopPropagation();return}let t;if(n.parentNode&&(t=n.parentNode.AJAR_statement),!t)return;let i=t.why,a=d.store.updater.editable(i.uri,v);r&&a&&c.UserInput.Click(e,l[0])}u.log.debug(`Was node selected after: `+B(n)+`, count=`+l.length),e.stopPropagation()}function le(e){u.log.info(`@TabulatorMousedown, dom.location is now `+o.location);let t=c.targetOf(e);if(!t)return;let r=t.tagName;r===`INPUT`||r===`TEXTAREA`||(c.UserInput.clearMenu(),c.UserInput.lastModified&&c.UserInput.lastModified.parentNode.nextSibling&&c.UserInput.backOut(),(!t.src||t.src.slice(t.src.indexOf(`/icons/`)+1)!==n.outlineIcons.src.icon_show_choices&&t.src.slice(t.src.indexOf(`/icons/`)+1)!==n.outlineIcons.src.icon_add_triple)&&c.UserInput.clearInputAndSave(e),(!t.src||t.src.slice(t.src.indexOf(`/icons/`)+1)!==n.outlineIcons.src.icon_show_choices)&&c.UserInput.clearMenu(),e&&e.stopPropagation())}function J(e){o.title=u.utils.label(e),o.location.href.startsWith(e.site().uri)}function Y(e,t,n){n||={};let r=n.pane,i=!!n.already,a=n.immediate;u.log.info(`@outlineExpand, dom is now `+o.location),y.removeCallback(`done`,`expand`),y.removeCallback(`fail`,`expand`);let s=v.canon(t);function l(){if(s=v.canon(s),!e||!e.parentNode||!e.parentNode.parentNode)return!1;let t;if(u.log.info(`@@ REPAINTING `),!i)t=N(s,void 0,r,n);else{for(u.log.info(` ... p is `+e),t=e.firstChild;t.nextSibling&&(u.log.info(` ... checking node `+t),t.nodeName!==`table`);t=t.nextSibling);t=N(s,t,r,n)}i=!0,u.utils.ancestor(e,`TABLE`)&&u.utils.ancestor(e,`TABLE`).style.backgroundColor===`white`?t.style.backgroundColor=`#eee`:t.style.backgroundColor=`white`,u.utils.emptyNode(e).appendChild(t),c.focusTd=e,u.log.debug(`expand: Node for `+s+` expanded`);let a=v.each(s,u.ns.rdfs(`seeAlso`));for(let e=0;e<a.length;e++)e===25&&u.log.warn(`expand: Warning: many (`+a.length+`) seeAlso links for `+s),y.lookUpThing(a[e],s)}function d(e){if(arguments[3])return!0;let t=v.canon(s);u.log.info(`@@ expand: relevant subject=`+t+`, uri=`+e+`, already=`+i);let n=v.sym(p.uri.docpart(e));if(e.indexOf(`#`)>=0)throw Error(`Internal error: hash in `+e);return function(){if(!t.uri)return!0;let r=v.uris(t);if(!r)return!1;for(let t=0;t<r.length;t++)for(let n=p.uri.docpart(r[t]);n;n=v.HTTPRedirects[n])if(e===n)return!0;return!!v.anyStatementMatching(t,void 0,void 0,n)}()?(u.log.success(`@@ expand OK: relevant subject=`+t+`, uri=`+e+`, source=`+i),l(),!1):!0}n.solo&&J(s),u.log.debug(`outlineExpand: dereferencing `+s);let f=o.createElement(`span`);e.appendChild(f),y.addCallback(`done`,d),y.addCallback(`fail`,d);let m=[];if(s.uri&&s.uri.split(`:`)[0]===`rdf`){l();return}for(let e=0;e<m.length;e++)if(m[e](s)===void 0){l(),u.log.debug(`outline 1815`),(void 0)[1]&&b.removeChild(b.lastChild);return}if(s.uri&&!a&&!u.widgets.isAudio(s)&&!u.widgets.isVideo(s)){let t=s.doc()&&s.doc().uri?s.doc().uri:``+s.doc(),r=function(e){let t=!!(s&&s.uri&&s.site&&s.site().uri===s.uri);return e===403?t?`This root resource is not accessible with your current permissions. Try logging in with an authorized account or opening a public profile document.`:`This resource is not accessible with your current permissions.`:t?`This root resource is not publicly readable. Try logging in or opening a profile document.`:`This resource is not publicly readable. Try logging in or opening a different public resource.`},i=function(e,t){let n=typeof e==`string`?e:String(e||``),r=t?.status||t?.response?.status;return r===401||r===403?r:n.includes(`status: 403`)||n.includes(`status 403`)?403:n.includes(`status: 401`)||n.includes(`status 401`)?401:null},a=function(n,a){if(e.querySelector&&t&&e.querySelector(`[data-outline-error-for="`+t+`"]`))return;let s=i(n,a),c=s?r(s):n,l=u.widgets.errorMessageBlock(o,c,`#fee`,a instanceof Error?a:void 0);t&&l.setAttribute(`data-outline-error-for`,t),e.appendChild(l)},c=!1,d=y.nowOrWhenFetched(s.doc(),void 0,function(e,t){e?(y.lookUpThing(s),l(),n.solo&&J(s)):(c=!0,a(t,void 0))});d&&typeof d.catch==`function`&&d.catch(function(e){c||(c=!0,a(e,e))})}else l()}function X(e,t){let n=u.utils.ancestor(e,`TR`);n=u.utils.ancestor(n.parentNode,`TR`);let r;n&&(r=n.AJAR_statement);let i;for(i=e.parentNode;i.tagName!==`TD`;i=i.parentNode)if(i===void 0){alert(`Not enclosed in TD!`);return}u.log.debug(`Collapsing subject `+t);let a;r&&(u.log.debug(`looking up pred `+r.predicate.uri+`in defaults`),a=$.defaults[r.predicate.uri]),u.log.debug(`view= `+a);let o;i.parentNode.parentNode.id===`outline`&&(o=i.parentNode),c.replaceTD(c.outlineObjectTD(t,a,o,r),i)}this.replaceTD=function(e,t){let n;B(t)&&(n=!0);for(let e=l.length-1;e>-1;e--)for(let n=l[e];n.parentNode;n=n.parentNode)n===t&&W(l[e],!1);t.parentNode.replaceChild(e,t),n&&W(e,!0)};function Z(e,t){let n=null;for(let t=e.parentNode;t;t=t.parentNode)u.log.debug(`level `+t.tagName),t.tagName===`TD`&&(n=t);u.utils.emptyNode(n).appendChild(N(t)),J(t),n.setAttribute(`about`,t.toNT())}s.outlineRefocus=Z,this.GotoFormURI_enterKey=function(e){e.keyCode===13&&s.GotoFormURI(e)},this.GotoFormURI=function(e){ue(o.getElementById(`UserURI`).value)};function ue(e){let t=v.sym(e);this.GotoSubject(t,!0)}this.GotoURIinit=function(e){let t=v.sym(e);this.GotoSubject(t)},this.GotoSubject=function(e,t,n,r,i,a){a||=k(`OutlineView`),r&&(u.utils.emptyNode(a),a.style.width=`100%`);function s(){let t=o.createElement(`TR`);t.style.verticalAlign=`top`,a.appendChild(t);let n=c.outlineObjectTD(e,void 0,t);return t.appendChild(n),n}let l=s();if(r&&J(e),t){Y(l,e,{pane:n,solo:r});let t=l.parentNode;u.utils.getEyeFocus(t,!1,void 0,window)}if(r&&o&&o.defaultView&&o.defaultView.history&&document.location.href!==e.uri){let t=n?{paneName:n.name}:{};try{let n=new URL(document.location.href),r=new URL(e.uri,document.location.href);n.origin===r.origin&&o.defaultView.history.pushState(t,e.uri,e.uri)}catch(e){console.log(e)}}return e};let Q=u.ns,$=t.propertyViews(o);function de(t){let r;if(t.termType===`Literal`){let e={integer:`text-align: right;`,decimal:`text-align: '.';`,double:`text-align: '.';`};r=o.createElement(`span`),r.textContent=t.value;let n=``;if(t.datatype&&t.datatype.uri){let r=u.ns.xsd(``).uri;t.datatype.uri.slice(0,r.length)===r&&(n=e[t.datatype.uri.slice(r.length)])}r.setAttribute(`style`,n||`white-space: pre-wrap;`)}else if(t.termType===`NamedNode`||t.termType===`BlankNode`)if(r=o.createElement(`span`),r.setAttribute(`about`,t.toNT()),c.appendAccessIcons(v,r,t),t.termType===`NamedNode`)if(t.uri.slice(0,4)===`tel:`){let e=t.uri.slice(4),i=o.createElement(`a`);r.appendChild(o.createTextNode(e)),i.setAttribute(`href`,t.uri),i.appendChild(u.utils.AJARImage(n.outlineIcons.src.icon_telephone,`phone`,`phone `+e,o)),r.appendChild(i),i.firstChild.setAttribute(`class`,`phoneIcon`)}else{r.appendChild(o.createTextNode(u.utils.label(t)));let e=u.widgets.linkIcon(o,t);r.appendChild(e),u.widgets.makeDraggable(r,t)}else r.appendChild(o.createTextNode(u.utils.label(t)));else if(t.termType===`Collection`){r=o.createElement(`table`),r.classList.add(`tableFullWidth`),r.setAttribute(`about`,t.toNT());for(let e=0;e<t.elements.length;e++){let n=t.elements[e],i=r.appendChild(o.createElement(`tr`)),a=i.appendChild(o.createElement(`td`));a.classList.add(`obj`),a.setAttribute(`notSelectable`,`false`),a.setAttribute(`about`,t.toNT()),a.innerHTML=e+1+`)`,i.appendChild(c.outlineObjectTD(n))}}else t.termType===`Graph`?(r=f.byName(`dataContentPane`).statementsAsTables(t.statements,e),r.setAttribute(`class`,`nestedFormula`)):(u.log.error(`Object `+t+` has unknown term type: `+t.termType),r=o.createTextNode(`[unknownTermType:`+t.termType+`]`));return u.log.debug(`contents: `+r.innerHTML),r}return this.createTabURI=function(){o.getElementById(`UserURI`).value=o.URL+`?uri=`+o.getElementById(`UserURI`).value},this.UserInput.setSelected=W,this.UserInput.deselectAll=G,this.UserInput.views=$,this.outlineExpand=Y,this}exports.default=v;
1
+ (function(){try{if(typeof document<`u`){var e=document.createElement(`style`);e.appendChild(document.createTextNode(`.obj{vertical-align:top;border:none;margin:.2em;padding:0}.iconTD{vertical-align:top;border:none;width:0;margin:.2em;padding:0}.labelTD{width:100%}.paneIconTray{justify-content:flex-start;align-items:center;display:flex}.paneShown{border-radius:var(--border-radius-md,.5rem);width:24px;margin-left:var(--spacing-small,.1rem);padding:.188rem;background-color:var(--header-menu-item-hover,#e6dcff)!important;border:none!important}.paneHidden{border-radius:var(--border-radius-md,.5rem);width:24px;margin-left:var(--spacing-small,.1rem);padding:.188rem}.header{flex-wrap:wrap;justify-content:flex-start;align-items:center;display:flex}.strongHeader{margin:0 .6rem 0 0;padding:.1rem .4rem;font-size:150%}.tableFullWidth{width:100%;background:var(--color-background,#f8f9fb)!important}.placeholderTable{width:100%}.tdFlex{border:1px solid var(--color-border,#444);vertical-align:top;background:var(--solid-ui-color-white,#fff);border-radius:5px;flex-direction:row;justify-content:space-between;display:flex;overflow:hidden}`)),document.head.appendChild(e)}}catch(e){console.error(`vite-plugin-css-injected-by-js`,e)}})();const e=require("../_virtual/_rolldown/runtime.cjs.js");;const t=require("./propertyViews.cjs.js"),n=require("./outlineIcons.cjs.js"),r=require("./userInput.cjs.js"),i=require("./queryByExample.cjs.js"),a=require("../utils/podUtils.cjs.js"),o=require("../icons/person.cjs.js"),s=require("../icons/friends.cjs.js");let c=require("solid-ui");c=e.__toESM(c);let l=require("solid-logic"),u=require("pane-registry");u=e.__toESM(u);let d=require("rdflib");d=e.__toESM(d);var f=o.default,p=s.default;function m(e){let o=e.dom;this.document=e.dom,this.context=e,this.outlineIcons=n.outlineIcons,this.labeller=this.labeller||{},this.labeller.LanguagePreference=``;let s=this,m=this,h=[];this.selection=h,this.ancestor=c.utils.ancestor,this.sparql=d.UpdateManager,this.kb=l.store;let g=l.store,_=l.store.fetcher;o.outline=this,this.qs=new i.QuerySource,this.UserInput=new r.UserInput(this),this.clipboardAddress=`tabulator:clipboard`,this.UserInput.clipboardInit(this.clipboardAddress);let v=this.outlineElement;this.init=function(){let e=x();e.outline=this},this.getLayoutMode=function(){let e=this.context?.environment?.layout;if(e===`mobile`||e===`desktop`)return e;if(typeof window<`u`&&window.matchMedia){let e=Math.round(Math.min(window.innerWidth,window.visualViewport?.width||window.innerWidth)),t=window.matchMedia(`(pointer: coarse)`).matches||navigator.maxTouchPoints>0;return e<=768||t&&e<=1024?`mobile`:`desktop`}return`desktop`},y.lastkbsize=0;function y(e){let t=[];for(let e=arguments.length-1;e>0;e--)t[e-1]=arguments[e];let n=new Date().getTime(),r=e.apply(e,t),i=new Date().getTime();return c.log.info(`BENCHMARK: kb delta: `+(g.statements.length-y.lastkbsize)+`, time elapsed for `+e+` was `+(i-n)+`ms`),y.lastkbsize=g.statements.length,r}function b(e,t,r){let i=c.utils.AJARImage(n.outlineIcons.src.icon_remove_node,`remove`,void 0,o);return i.addEventListener(`click`,G),i.node=r,i.setAttribute(`about`,t.toNT()),i.style.marginLeft=`5px`,i.style.marginRight=`10px`,e.appendChild(i),i}this.appendAccessIcons=function(e,t,n){if(n.termType!==`NamedNode`)return;let r=e.uris(n);r.sort();let i=null;for(let e=0;e<r.length;e++)r[e]!==i&&(i=r[e],m.appendAccessIcon(t,i))},this.appendAccessIcon=function(e,t){if(!t)return``;let r=d.uri.docpart(t);if(r.slice(0,5)!==`http:`)return``;let i=_.getState(r),a,s,l;switch(i){case`unrequested`:a=n.outlineIcons.src.icon_unrequested,s=`fetch`,l=W;break;case`requested`:a=n.outlineIcons.src.icon_requested,s=`fetching`,l=H;break;case`fetched`:a=n.outlineIcons.src.icon_fetched,l=U,s=`loaded`;break;case`failed`:a=n.outlineIcons.src.icon_failed,s=`failed`,l=H;break;case`unpermitted`:a=n.outlineIcons.src.icon_failed,l=H,s=`no perm`;break;case`unfetchable`:a=n.outlineIcons.src.icon_failed,l=H,s=`cannot fetch`;break;default:c.log.error(`?? state = `+i)}let u=c.utils.AJARImage(a,s,n.outlineIcons.tooltips[a].replace(/[Tt]his resource/,r),o);return u.setAttribute(`uri`,t),u.addEventListener(`click`,l),N(u,r),e.appendChild(u),u},this.outlineObjectTD=function(e,t,n,r){let i=o.createElement(`td`);return i.classList.add(`obj`),i.setAttribute(`notSelectable`,`false`),i.style.margin=`0.2em`,e?(i.style.border=`none`,i.style.padding=`0`,i.style.verticalAlign=`top`,(e.termType===`NamedNode`||e.termType===`BlankNode`||e.termType===`Literal`&&e.value.slice&&(e.value.slice(0,6)===`ftp://`||e.value.slice(0,8)===`https://`||e.value.slice(0,7)===`http://`))&&(i.setAttribute(`about`,e.toNT()),i.appendChild(c.utils.AJARImage(c.icons.originalIconBase+`tbl-expand-trans.png`,`expand`,void 0,o)).addEventListener(`click`,B)),i.setAttribute(`class`,`obj`),g.whether(e,c.ns.rdf(`type`),c.ns.link(`Request`))&&(i.className=`undetermined`),t||=ee,i.appendChild(t(e)),n&&b(i,e,n),i.tabulatorSelect=function(){R(this,!0)},i.tabulatorDeselect=function(){R(this,!1)},i.addEventListener(`click`,K),i):(i.textContent=`No object available.`,i)},this.outlinePredicateTD=function(e,t,r,i){let a=o.createElement(`TD`);a.setAttribute(`about`,e.toNT()),a.setAttribute(`class`,i?`pred internal`:`pred`);let s;switch(e.termType){case`BlankNode`:a.className=`undetermined`;break;case`NamedNode`:s=c.utils.predicateLabelForXML(e,r);break;case`Collection`:s=c.utils.predicateLabelForXML(e.elements[0],r)}s=s?s.slice(0,1).toUpperCase()+s.slice(1):`...`;let l=o.createElement(`TD`);l.classList.add(`labelTD`),l.setAttribute(`notSelectable`,`true`),l.appendChild(o.createTextNode(s)),a.appendChild(l),l.style.width=`100%`,a.appendChild(M.construct(o));for(let e in n.outlineIcons.termWidgets){if(!t||!t.AJAR_statement)break;n.outlineIcons.termWidgets[e].filter&&n.outlineIcons.termWidgets[e].filter(t.AJAR_statement,`pred`,r)&&M.addIcon(a,n.outlineIcons.termWidgets[e])}return a.tabulatorSelect=function(){R(this,!0)},a.tabulatorDeselect=function(){R(this,!1)},a.addEventListener(`click`,K),a};function x(){return w(`OutlineView`,`Resource browser`)}function S(){return document.querySelector(`solid-panes-navbar`)}function C(){let e=S();e&&e.classList.remove(`navbar--hidden`)}function w(e){if(document.getElementById(`MainContent`)||document.body,e===`OutlineView`){let e=document.getElementById(`OutlineView`);if(e)return e;let t=document.getElementById(`MainContent`)||document.body;if(t){let e=document.createElement(`table`);return e.id=`OutlineView`,e.classList.add(`outline-view`),e.setAttribute(`aria-label`,`Resource browser`),t.appendChild(e),e}}}async function T(e,t){e.uri.endsWith(`/`)&&await a.loadContainerRepresentation(e);let n=t.session.paneRegistry,r=n.list.filter(n=>n.label(e,t)&&!n.global);if(r.length===0)return[n.byName(`internal`)];let i=await c.login.filterAvailablePanes(r);return i.length===0?[r[0]]:n.list.indexOf(r[0])<n.list.indexOf(i[0])?[r[0]].concat(i):i}function E(e,t){return e.find(e=>e.shouldGetFocus&&e.shouldGetFocus(t))||e[0]}async function D(t,n,r){async function i(r={}){let i=r.hideList?[]:await T(t,e);s.firstPane=n||E(i,t)}async function a(r,i={}){let a=`width: 24px; border-radius: 0.5em; border-top: solid #222 1px; border-left: solid #222 0.1em; border-bottom: solid #eee 0.1em; border-right: solid #eee 0.1em; margin-left: 1em; padding: 3px; background-color: #ffd;`,l=`width: 24px; border-radius: 0.5em; margin-left: 1em; padding: 3px`,u=r.appendChild(o.createElement(`nav`));u.style=`display:flex; justify-content: flex-start; align-items: center;`;let d=i.hideList?[]:await T(t,e);s.firstPane=n||E(d,t);let m=d.indexOf(s.firstPane);return d.length!==1&&d.forEach((n,d)=>{let h=n.label(t,e),g=``;g=n.name===`profile`?f:n.name===`social`?p:typeof n.icon==`function`?n.icon(t,e):n.icon;let _=c.utils.AJARImage(g,h,h,o);g instanceof Promise&&g.then(e=>{_.setAttribute(`src`,e)}).catch(e=>{console.error(`Error resolving async icon:`,e)}),_.style=n===s.firstPane?a:l,function(n,s){n.addEventListener(`click`,function(u){let d;for(d=r;d.parentNode&&d.nodeName!==`TABLE`;d=d.parentNode);if(d.nodeName!==`TABLE`)throw Error(`outline: internal error.`);let f=function(e){for(let t=d.firstChild;t;t=t.nextSibling)t.pane!==void 0&&(!e||t.pane===e)&&(t.paneButton&&(t.paneButton.setAttribute(`class`,`paneHidden`),t.paneButton.style=l),O(t),t.pane.requireQueryButton&&d.parentNode.className&&p===1&&o.getElementById(`queryButton`)&&o.getElementById(`queryButton`).setAttribute(`style`,`display:none;`))};n.getAttribute(`class`)===`paneHidden`?(u.shiftKey||f(),function(r){let a;c.log.info(`outline: Rendering pane (2): `+r.name);try{a=r.render(t,e,i)}catch(e){a=o.createElement(`div`),a.setAttribute(`class`,`exceptionPane`);let t=o.createElement(`pre`);a.appendChild(t),t.appendChild(o.createTextNode(c.utils.stackString(e)))}r.requireQueryButton&&o.getElementById(`queryButton`)&&o.getElementById(`queryButton`).removeAttribute(`style`);let s=d.firstChild.nextSibling,l=o.createElement(`tr`),u=l.appendChild(o.createElement(`td`));u.setAttribute(`colspan`,`2`),u.style.textAlign=`left`,u.style.width=`100%`,u.appendChild(a),s?d.insertBefore(l,s):d.appendChild(l),l.pane=r,l.paneButton=n}(s),n.setAttribute(`class`,`paneShown`),n.style=a):(f(s),n.setAttribute(`class`,`paneHidden`),n.style=l);let p=0;for(let e=d.firstChild;e;e=e.nextSibling)e.pane&&e.pane.requireQueryButton&&p++},!1)}(_,n),_.setAttribute(`class`,d===m?`paneShown`:`paneHidden`),d===m&&(s.paneButton=_),u.appendChild(_)}),u}let s=o.createElement(`tr`);r.hover&&s.setAttribute(`class`,`hoverControl`);let l=s.appendChild(o.createElement(`td`));l.classList.add(`tdFlex`),l.setAttribute(`notSelectable`,`true`),l.setAttribute(`about`,t.toNT()),l.setAttribute(`colspan`,`2`);let u=l.appendChild(o.createElement(`div`));u.style=`display:flex; justify-content: flex-start; align-items: center; flex-wrap: wrap;`;let d=!!n;if(!r.solo&&!d){u.appendChild(c.utils.AJARImage(c.icons.originalIconBase+`tbl-collapse.png`,`collapse`,void 0,o)).addEventListener(`click`,V);let e=u.appendChild(o.createElement(`h1`));e.appendChild(o.createTextNode(c.utils.label(t))),e.style=`font-size: 150%; margin: 0 0.6em 0 0; padding: 0.1em 0.4em;background-color: var(--color-background, #F8F9FB);`,c.widgets.makeDraggable(e,t),u.appendChild(await a(l,{hideList:d}))}return await i({hideList:d}),u.childNodes.length===0&&(s.style.display=`none`),s}function O(e){let t=e.parentNode,n=t.parentNode,r=o.createElement(`table`);r.classList.add(`placeholderTable`),n.replaceChild(r,t),t.removeChild(e),n.replaceChild(t,r)}let k=this.propertyTable=function(t,n,r,i){return c.log.debug(`Property table for: `+t),t=g.canon(t),n?(c.log.info(`Re-expand: `+n),n):(n=o.createElement(`table`),n.classList.add(`tableFullWidth`),D(t,r,i).then(r=>{if(n.appendChild(r),r.firstPane){let a;try{c.log.info(`outline: Rendering pane (1): `+r.firstPane.name),a=r.firstPane.render(t,e,i)}catch(e){a=o.createElement(`div`),a.setAttribute(`class`,`exceptionPane`);let t=o.createElement(`pre`);a.appendChild(t),t.appendChild(o.createTextNode(c.utils.stackString(e)))}let s=o.createElement(`tr`),l=s.appendChild(o.createElement(`td`));l.setAttribute(`colspan`,`2`),l.style.textAlign=`left`,l.style.width=`100%`,l.style.backgroundColor=`var(--color-background, #F8F9FB)`,l.appendChild(a),r.firstPane.requireQueryButton&&o.getElementById(`queryButton`)&&o.getElementById(`queryButton`).removeAttribute(`style`),n.appendChild(s),s.pane=r.firstPane,s.paneButton=r.paneButton}}),n)};function A(e,t,n){let r=e.createElement(`TR`);r.AJAR_statement=t,r.AJAR_inverse=n,r.setAttribute(`predTR`,`true`);let i=m.outlinePredicateTD(t.predicate,r,n);return r.appendChild(i),r}this.propertyTR=A;function j(e,t,n,r){if(c.log.debug(`Property list length = `+t.length),t.length===0)return``;let i,a,l;n?(i=function(e){return e.subject},t=t.sort(c.utils.RDFComparePredicateSubject)):(i=function(e){return e.object},t=t.sort(c.utils.RDFComparePredicateObject));let u=t.length;for(a=0;a<u;a++){let d=t[a];if(r&&!r(d.predicate,n))continue;let f=A(o,d,n);e.appendChild(f);let p=f.firstChild,h=$.defaults[d.predicate.uri],_=0,v=0,y=0;for(l=0;l+a<u&&t[a+l].predicate.sameTerm(d.predicate);l++)l>0&&i(t[a+l]).sameTerm(i(t[a+l-1]))&&_++,i(t[a+l]).lang&&s.labeller.LanguagePreference&&(v+=1,i(t[a+l]).lang.indexOf(s.labeller.LanguagePreference)>=0&&y++);if(y>0&&v===_+1){for(let e=a;e<=a+_;e++)if(s.labeller.LanguagePreference&&i(t[e]).lang.indexOf(s.labeller.LanguagePreference)>=0){f.appendChild(m.outlineObjectTD(i(t[e]),h,void 0,d));break}a+=_;continue}f.appendChild(m.outlineObjectTD(i(d),h,void 0,d)),f.showNobj=function(r){let s=l-_,u=2*r<s?r:s,f=[];if(s!==1){p.setAttribute(`rowspan`,u===s?s:r+1);let _;u<s&&u===1&&p.setAttribute(`rowspan`,2);let v=0;for(_=1;_<l;_++)if(g.canon(i(t[a+_])).sameTerm(g.canon(i(t[a+_-1]))))c.log.info(`there are duplicates here: %s`,t[a+_-1]);else{v++,d=t[a+_],h=$.defaults[d.predicate.uri];let r=o.createElement(`tr`);r.style.colspan=`1`,r.appendChild(m.outlineObjectTD(i(t[a+_]),h,void 0,d)),r.AJAR_statement=d,r.AJAR_inverse=n,e.appendChild(r),v>=u&&(r.style.display=`none`,f.push(r))}u===s&&p.setAttribute(`rowspan`,v+1)}if(u<s){let t=o.createElement(`tr`),n=t.appendChild(o.createElement(`td`));if(n.setAttribute(`style`,`margin: 0.2em; border: none; padding: 0; vertical-align: top;`),n.setAttribute(`notSelectable`,`false`),s>r){let e=o.createElement(`a`);n.appendChild(e);let t=(function(e){return e(p,l,_,r)})(function(t,n,r,i){return function(n){e.innerHTML=``,n===`none`?(e.appendChild(c.utils.AJARImage(c.icons.originalIconBase+`tbl-more-trans.png`,`more`,`See all`,o)),e.appendChild(o.createTextNode(s-i+` more...`)),t.setAttribute(`rowspan`,i+1)):(e.appendChild(c.utils.AJARImage(c.icons.originalIconBase+`tbl-shrink.png`,`(less)`,void 0,o)),t.setAttribute(`rowspan`,s+1));for(let e=0;e<f.length;e++){let t=f[e];t.style.display=n}}}),i=`none`,a=function(e){return t(i),i=i===`none`?``:`none`,e&&e.stopPropagation(),!1};a(),e.addEventListener(`click`,a,!1)}e.appendChild(t)}},f.showAllobj=function(){f.showNobj(l-_)},f.showNobj(10),a+=l-1}}this.appendPropertyTRs=j;let M={};globalThis.termWidget=M,M.construct=function(e){e||=document;let t=e.createElement(`TD`);return t.setAttribute(`style`,`margin: 0.2em; border: none; padding: 0; vertical-align: top;`),t.setAttribute(`class`,`iconTD`),t.setAttribute(`notSelectable`,`true`),t.style.width=`0px`,t},M.addIcon=function(e,t,n){let r=e.childNodes[1];if(!r)return;let i=r.style.width,a=c.utils.AJARImage(t.src,t.alt,t.tooltip,o);i=parseInt(i),i+=t.width,r.style.width=i+`px`,r.appendChild(a),n&&a.addEventListener(`click`,n)},M.removeIcon=function(e,t){let n=e.childNodes[1],r;if(!n)return;let i=n.style.width;i=parseInt(i),i-=t.width,n.style.width=i+`px`;for(let e=0;e<n.childNodes.length;e++){let i=n.childNodes[e],a=i.src;try{r=o.location.href.split(`?`)[0]}catch(e){console.log(e),r=``}a===d.uri.join(t.src,r)&&n.removeChild(i)}},M.replaceIcon=function(e,t,n,r){M.removeIcon(e,t),M.addIcon(e,n,r)};function N(e,t){c.log.debug(`Button callbacks for `+t+` added`);let r=function(r){return function(i){return i.indexOf(`#`)>=0&&console.log(`@@ makeIconCallback: Not expecting # in URI whose state changed: `+i),!e||!s.ancestor(e,`DIV`)?!1:(i===t&&(e.src=r,e.title=n.outlineIcons.tooltips[r]),!0)}};_.addCallback(`request`,r(n.outlineIcons.src.icon_requested)),_.addCallback(`done`,r(n.outlineIcons.src.icon_fetched)),_.addCallback(`fail`,r(n.outlineIcons.src.icon_failed))}function P(e){let t=e.getAttribute(`class`);return!!(t&&t.indexOf(`selected`)>=0)}function F(e){let t=m.targetOf(e).parentNode;M.replaceIcon(t.parentNode,n.outlineIcons.termWidgets.optOn,n.outlineIcons.termWidgets.optOff,I),t.parentNode.parentNode.removeAttribute(`optional`)}function I(e){let t=m.targetOf(e).parentNode;M.replaceIcon(t.parentNode,n.outlineIcons.termWidgets.optOff,n.outlineIcons.termWidgets.optOn,F),t.parentNode.parentNode.setAttribute(`optional`,`true`)}function L(e,t){let r=n.outlineIcons.termWidgets.optOn,i=n.outlineIcons.termWidgets.optOff;for(let n=e;n.parentNode;n=n.parentNode)for(;;)if(n.getAttribute(`predTR`)){let e=n.getAttribute(`parentOfSelected`);e=e?parseInt(e):0,e===0&&t>0&&M.addIcon(n.childNodes[0],n.getAttribute(`optional`)?r:i,n.getAttribute(`optional`)?F:I),e+=t,n.setAttribute(`parentOfSelected`,e),e===0&&(n.removeAttribute(`parentOfSelected`),M.removeIcon(n.childNodes[0],n.getAttribute(`optional`)?r:i));break}else if(n.previousSibling&&n.previousSibling.nodeName===`TR`)n=n.previousSibling;else break}this.statusBarClick=function(e){let t=c.utils.getTarget(e);t.label&&(window.content.location=t.label)},this.showURI=function(e){e&&o.getElementById(`UserURI`)&&(o.getElementById(`UserURI`).value=e.termType===`NamedNode`?e.uri:``)},this.showSource=function(){if(!(typeof sourceWidget>`u`)){for(let e in sourceWidget.sources)sourceWidget.sources[e].setAttribute(`class`,``);for(let e=0;e<h.length;e++){if(!h[e].parentNode){console.log(`showSource: EH? no parentNode? `+h[e]+`
2
+ `);continue}let t=h[e].parentNode.AJAR_statement;if(!t)continue;let n=t.why;n&&n.uri&&sourceWidget.highlight(n,!0)}}},this.getSelection=function(){return h};function R(e,t){if(e.nodeName!==`TD`)throw c.log.debug(`down`+e.nodeName),Error(`Expected TD in setSelected: `+e.nodeName+` : `+e.textContent);c.log.debug(`pass`);let r=e.getAttribute(`class`);if(r||=``,t){r+=` selected`,(r.indexOf(`pred`)>=0||r.indexOf(`obj`)>=0)&&L(e,1),h.push(e);let t=c.utils.getTerm(e);m.showURI(t);let i=e.AJAR_statement;if(i===void 0&&e.parentNode&&(i=e.parentNode.AJAR_statement),i){let t=i.why;l.store.updater.editable(t.uri,g)&&r.indexOf(`pred`)>=0&&M.addIcon(e,n.outlineIcons.termWidgets.addTri)}}else c.log.debug(`cla=$`+r+`$`),r===`selected`&&(r=``),r=r.replace(` selected`,``),(r.indexOf(`pred`)>=0||r.indexOf(`obj`)>=0)&&L(e,-1),r.indexOf(`pred`)>=0&&M.removeIcon(e,n.outlineIcons.termWidgets.addTri),h=h.filter(function(t){return t===e}),c.log.info(`Deselecting `+e.textContent);typeof sourceWidget<`u`&&m.showSource(),e.setAttribute(`class`,r)}function z(){let e=h.length;for(let t=e-1;t>=0;t--)R(h[t],!1);h=[]}this.targetOf=function(e){let t;if(e||=window.event,e.target)t=e.target;else if(e.srcElement)t=e.srcElement;else return c.log.error(`can't get target for event `+e),!1;return t.nodeType===3&&(t=t.parentNode),t},this.walk=function(e,t){let n=t||h[0],r;switch(e){case`down`:try{r=n.parentNode.nextSibling.lastChild}catch{this.walk(`up`);return}z(),R(r,!0);break;case`up`:try{r=n.parentNode.previousSibling.lastChild}catch{return}z(),R(r,!0);break;case`right`:if(z(),n.nextSibling||n.lastChild.tagName===`strong`)R(n.nextSibling,!0);else{let e=o.evaluate(`table/div/tr/td[2]`,n,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;R(e,!0)}break;case`left`:if(z(),n.previousSibling&&n.previousSibling.className===`undetermined`)return R(n.previousSibling,!0),!0;R(c.utils.ancestor(n.parentNode,`TD`),!0);break;case`moveTo`:z(),R(t,!0)}(e===`down`||e===`up`)&&(r.tabulatorSelect||this.walk(e))},this.OutlinerKeypressPanel=function(e){c.log.info(`Key `+e.keyCode+` pressed`);function t(e){e&&o.getElementById(`UserURI`)&&(o.getElementById(`UserURI`).value=e.termType===`NamedNode`?e.uri:``)}function n(e){return arguments[3]?!0:(d(`right`,a),t(c.utils.getAbout(g,h[0])),!0)}let r,i;if(c.utils.getTarget(e).tagName===`TEXTAREA`||c.utils.getTarget(e).id===`UserURI`||h.length>1)return;if(h.length===0){(e.keyCode===13||e.keyCode===38||e.keyCode===40||e.keyCode===37||e.keyCode===39)&&(this.walk(`right`,m.focusTd),t(c.utils.getAbout(g,h[0])));return}let a=h[0];switch(_.removeCallback(`done`,`setSelectedAfterward`),_.removeCallback(`fail`,`setSelectedAfterward`),e.keyCode){case 13:if(c.utils.getTarget(e).tagName===`HTML`){let e=c.utils.getAbout(g,a);r=a.parentNode.AJAR_statement.why,i=l.store.updater.editable(r.uri,g),e?s.GotoSubject(e,!0):i&&m.UserInput.Enter(a)}else this.UserInput.Keypress(e),this.walk(`down`),e.stopPropagation();return;case 38:this.walk(`up`),e.stopPropagation(),e.preventDefault();break;case 40:this.walk(`down`),e.stopPropagation(),e.preventDefault()}if(c.utils.getTarget(e).tagName===`INPUT`)return;let d;switch(e.keyCode){case 46:case 8:r=a.parentNode.AJAR_statement.why,i=l.store.updater.editable(r.uri,g),i&&(e.preventDefault(),this.UserInput.Delete(a));break;case 37:{if(this.walk(`left`))return;let e=c.utils.ancestor(a.parentNode,`TD`);X(a,c.utils.getAbout(g,e));break}case 39:{let e=c.utils.getAbout(g,a);if(e){if(d=this.walk,a.nextSibling){this.walk(`right`);return}a.firstChild.tagName!==`TABLE`&&(_.addCallback(`done`,n),_.addCallback(`fail`,n),Y(a,e,{pane:u.byName(`defaultPane`)})),n()}}break;case 38:case 40:break;default:switch(e.charCode){case 99:if(e.ctrlKey){m.UserInput.copyToClipboard(m.clipboardAddress,a);break}break;case 118:case 112:if(e.ctrlKey){m.UserInput.pasteFromClipboard(m.clipboardAddress,a);break}break;default:c.utils.getTarget(e).tagName}}t(c.utils.getAbout(g,h[0]))},this.OutlinerMouseclickPanel=function(e){switch(m.UserInput._tabulatorMode){case 0:q(e);break;case 1:m.UserInput.Click(e)}};function B(e){let t=m.targetOf(e),n=t.parentNode,r=c.utils.getAbout(g,t),i=e.altKey?u.byName(`internal`):void 0;e.shiftKey?Z(n,r,i):e.altKey?Y(n,r,{pane:u.byName(`internal`),immediate:!0}):Y(n,r)}function V(e){let t=m.targetOf(e),n=c.utils.getAbout(g,t),r=e.altKey?u.byName(`internal`):void 0,i=t.parentNode.parentNode;X(i,n,r)}function H(e){let t=m.targetOf(e).getAttribute(`uri`);e.altKey?_.fetch(d.uri.docpart(t),{force:!0}):_.refresh(g.sym(d.uri.docpart(t)))}function U(e){let t=m.targetOf(e).getAttribute(`uri`);e.altKey?_.fetch(d.uri.docpart(t),{force:!0}):_.refresh(g.sym(d.uri.docpart(t)))}function W(e){let t=m.targetOf(e).getAttribute(`uri`);_.fetch(d.uri.docpart(t))}function G(e){let t=m.targetOf(e),n=t.node;n.childNodes.length>1&&(n=t.parentNode),O(n)}function K(e){if(m.UserInput._tabulatorMode)return m.UserInput.Click(e);let t=m.targetOf(e),n;for(n=c.utils.ancestor(t,`TD`);n&&n.getAttribute(`notSelectable`)!==`false`;n=c.utils.ancestor(n.parentNode,`TD`));if(!n)return;let r=P(n);if(c.log.debug(`Was node selected before: `+r),e.altKey)R(n,!P(n));else if(e.shiftKey)R(n,!0);else{if(z(),m.UserInput.clearInputAndSave(e),R(n,!0),e.detail===2){e.stopPropagation();return}let t;if(n.parentNode&&(t=n.parentNode.AJAR_statement),!t)return;let i=t.why,a=l.store.updater.editable(i.uri,g);r&&a&&m.UserInput.Click(e,h[0])}c.log.debug(`Was node selected after: `+P(n)+`, count=`+h.length),e.stopPropagation()}function q(e){c.log.info(`@TabulatorMousedown, dom.location is now `+o.location);let t=m.targetOf(e);if(!t)return;let r=t.tagName;r!==`INPUT`&&r!==`TEXTAREA`&&(m.UserInput.clearMenu(),m.UserInput.lastModified&&m.UserInput.lastModified.parentNode.nextSibling&&m.UserInput.backOut(),(!t.src||t.src.slice(t.src.indexOf(`/icons/`)+1)!==n.outlineIcons.src.icon_show_choices&&t.src.slice(t.src.indexOf(`/icons/`)+1)!==n.outlineIcons.src.icon_add_triple)&&m.UserInput.clearInputAndSave(e),(!t.src||t.src.slice(t.src.indexOf(`/icons/`)+1)!==n.outlineIcons.src.icon_show_choices)&&m.UserInput.clearMenu(),e&&e.stopPropagation())}function J(e){o.title=c.utils.label(e),o.location.href.startsWith(e.site().uri)}function Y(e,t,n){n||={};let r=n.pane,i=!!n.already,a=n.immediate;c.log.info(`@outlineExpand, dom is now `+o.location),_.removeCallback(`done`,`expand`),_.removeCallback(`fail`,`expand`);let s=g.canon(t);function l(){if(s=g.canon(s),!e||!e.parentNode||!e.parentNode.parentNode)return!1;let t;if(c.log.info(`@@ REPAINTING `),!i)t=k(s,void 0,r,n);else{for(c.log.info(` ... p is `+e),t=e.firstChild;t.nextSibling&&(c.log.info(` ... checking node `+t),t.nodeName!==`table`);t=t.nextSibling);t=k(s,t,r,n)}i=!0,c.utils.ancestor(e,`TABLE`)&&c.utils.ancestor(e,`TABLE`).style.backgroundColor===`white`?t.style.backgroundColor=`#eee`:t.style.backgroundColor=`white`,c.utils.emptyNode(e).appendChild(t),m.focusTd=e,c.log.debug(`expand: Node for `+s+` expanded`);let a=g.each(s,c.ns.rdfs(`seeAlso`));for(let e=0;e<a.length;e++)e===25&&c.log.warn(`expand: Warning: many (`+a.length+`) seeAlso links for `+s),_.lookUpThing(a[e],s)}function u(e){if(arguments[3])return!0;let t=g.canon(s);c.log.info(`@@ expand: relevant subject=`+t+`, uri=`+e+`, already=`+i);let n=g.sym(d.uri.docpart(e));if(e.indexOf(`#`)>=0)throw Error(`Internal error: hash in `+e);return!function(){if(!t.uri)return!0;let r=g.uris(t);if(!r)return!1;for(let t=0;t<r.length;t++)for(let n=d.uri.docpart(r[t]);n;n=g.HTTPRedirects[n])if(e===n)return!0;return!!g.anyStatementMatching(t,void 0,void 0,n)}()||(c.log.success(`@@ expand OK: relevant subject=`+t+`, uri=`+e+`, source=`+i),l(),!1)}n.solo&&J(s),c.log.debug(`outlineExpand: dereferencing `+s);let f=o.createElement(`span`);e.appendChild(f),_.addCallback(`done`,u),_.addCallback(`fail`,u);let p=[];if(s.uri&&s.uri.split(`:`)[0]===`rdf`){l();return}for(let e=0;e<p.length;e++){let t;if(t===p[e](s)){l(),c.log.debug(`outline 1815`),t[1]&&v.removeChild(v.lastChild);return}}if(s.uri&&!a&&!c.widgets.isAudio(s)&&!c.widgets.isVideo(s)){let t=s.doc()&&s.doc().uri?s.doc().uri:``+s.doc(),r=function(e){let t=!!(s&&s.uri&&s.site&&s.site().uri===s.uri);return e===403?t?`This root resource is not accessible with your current permissions. Try logging in with an authorized account or opening a public profile document.`:`This resource is not accessible with your current permissions.`:t?`This root resource is not publicly readable. Try logging in or opening a profile document.`:`This resource is not publicly readable. Try logging in or opening a different public resource.`},i=function(e,t){let n=typeof e==`string`?e:String(e||``),r=t?.status||t?.response?.status;return r===401||r===403?r:n.includes(`status: 403`)||n.includes(`status 403`)?403:n.includes(`status: 401`)||n.includes(`status 401`)?401:null},a=function(n,a){if(e.querySelector&&t&&e.querySelector(`[data-outline-error-for="`+t+`"]`))return;let s=i(n,a),l=s?r(s):n,u=c.widgets.errorMessageBlock(o,l,`#fee`,a instanceof Error?a:void 0);t&&u.setAttribute(`data-outline-error-for`,t),e.appendChild(u)},u=!1,d=_.nowOrWhenFetched(s.doc(),void 0,function(e,t){e?(_.lookUpThing(s),l(),n.solo&&J(s)):(u=!0,a(t,void 0))});d&&typeof d.catch==`function`&&d.catch(function(e){u||(u=!0,a(e,e))})}else l()}function X(e,t){let n=c.utils.ancestor(e,`TR`);n=c.utils.ancestor(n.parentNode,`TR`);let r;n&&(r=n.AJAR_statement);let i;for(i=e.parentNode;i.tagName!==`TD`;i=i.parentNode)if(i===void 0){alert(`Not enclosed in TD!`);return}c.log.debug(`Collapsing subject `+t);let a;r&&(c.log.debug(`looking up pred `+r.predicate.uri+`in defaults`),a=$.defaults[r.predicate.uri]),c.log.debug(`view= `+a);let o;i.parentNode.parentNode.id===`outline`&&(o=i.parentNode),m.replaceTD(m.outlineObjectTD(t,a,o,r),i)}this.replaceTD=function(e,t){let n;P(t)&&(n=!0);for(let e=h.length-1;e>-1;e--)for(let n=h[e];n.parentNode;n=n.parentNode)n===t&&R(h[e],!1);t.parentNode.replaceChild(e,t),n&&R(e,!0)};function Z(e,t){let n=null;for(let t=e.parentNode;t;t=t.parentNode)c.log.debug(`level `+t.tagName),t.tagName===`TD`&&(n=t);c.utils.emptyNode(n).appendChild(k(t)),J(t),n.setAttribute(`about`,t.toNT())}s.outlineRefocus=Z,this.GotoFormURI_enterKey=function(e){e.keyCode===13&&s.GotoFormURI(e)},this.GotoFormURI=function(e){Q(o.getElementById(`UserURI`).value)};function Q(e){let t=g.sym(e);this.GotoSubject(t,!0)}this.GotoURIinit=function(e){let t=g.sym(e);this.GotoSubject(t)},this.GotoSubject=function(e,t,n,r,i,a,s=!0){let l=x();s&&(!a||a===l)&&C(),a||=l,r&&(c.utils.emptyNode(a),a.style.width=`100%`);function u(){let t=o.createElement(`TR`);t.style.verticalAlign=`top`,a.appendChild(t);let n=m.outlineObjectTD(e,void 0,t);return t.appendChild(n),n}let d=u();if(r&&J(e),t&&Y(d,e,{pane:n,solo:r}),r&&o&&o.defaultView&&o.defaultView.history){let t=o.defaultView.history.state||{},r=n?{paneName:n.name}:{};n&&n.subject&&typeof n.subject.uri==`string`&&(r.paneUri=n.subject.uri);let i={...t,...r};try{let n=new URL(document.location.href),r=new URL(e.uri,document.location.href);n.origin===r.origin&&(document.location.href===e.uri?JSON.stringify(t)!==JSON.stringify(i)&&o.defaultView.history.replaceState(i,e.uri,e.uri):o.defaultView.history.pushState(i,e.uri,e.uri))}catch(e){console.log(e)}}return e};let $=t.propertyViews(o);function ee(t){let r;if(t.termType===`Literal`){let e={integer:`text-align: right;`,decimal:`text-align: '.';`,double:`text-align: '.';`};r=o.createElement(`span`),r.textContent=t.value;let n=``;if(t.datatype&&t.datatype.uri){let r=c.ns.xsd(``).uri;t.datatype.uri.slice(0,r.length)===r&&(n=e[t.datatype.uri.slice(r.length)])}r.setAttribute(`style`,n||`white-space: pre-wrap;`)}else if(t.termType===`NamedNode`||t.termType===`BlankNode`)if(r=o.createElement(`span`),r.setAttribute(`about`,t.toNT()),m.appendAccessIcons(g,r,t),t.termType===`NamedNode`)if(t.uri.slice(0,4)===`tel:`){let e=t.uri.slice(4),i=o.createElement(`a`);r.appendChild(o.createTextNode(e)),i.setAttribute(`href`,t.uri),i.appendChild(c.utils.AJARImage(n.outlineIcons.src.icon_telephone,`phone`,`phone `+e,o)),r.appendChild(i),i.firstChild.setAttribute(`class`,`phoneIcon`)}else{r.appendChild(o.createTextNode(c.utils.label(t)));let e=c.widgets.linkIcon(o,t);r.appendChild(e),c.widgets.makeDraggable(r,t)}else r.appendChild(o.createTextNode(c.utils.label(t)));else if(t.termType===`Collection`){r=o.createElement(`table`),r.classList.add(`tableFullWidth`),r.setAttribute(`about`,t.toNT());for(let e=0;e<t.elements.length;e++){let n=t.elements[e],i=r.appendChild(o.createElement(`tr`)),a=i.appendChild(o.createElement(`td`));a.classList.add(`obj`),a.setAttribute(`notSelectable`,`false`),a.setAttribute(`about`,t.toNT()),a.innerHTML=e+1+`)`,i.appendChild(m.outlineObjectTD(n))}}else t.termType===`Graph`?(r=u.byName(`dataContentPane`).statementsAsTables(t.statements,e),r.setAttribute(`class`,`nestedFormula`)):(c.log.error(`Object `+t+` has unknown term type: `+t.termType),r=o.createTextNode(`[unknownTermType:`+t.termType+`]`));return c.log.debug(`contents: `+r.innerHTML),r}return this.createTabURI=function(){o.getElementById(`UserURI`).value=o.URL+`?uri=`+o.getElementById(`UserURI`).value},this.UserInput.setSelected=R,this.UserInput.deselectAll=z,this.UserInput.views=$,this.outlineExpand=Y,this}exports.default=m;
3
3
  //# sourceMappingURL=manager2.cjs.js.map