solid-panes 5.0.0-1 → 5.1.0-0

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 (497) hide show
  1. package/README.md +67 -2
  2. package/dist/RDFXMLPane2.cjs.js.map +1 -1
  3. package/dist/RDFXMLPane2.esm.js.map +1 -1
  4. package/dist/_virtual/~icons/lucide/arrow-left.cjs.js.map +1 -1
  5. package/dist/_virtual/~icons/lucide/arrow-left.esm.js.map +1 -1
  6. package/dist/_virtual/~icons/lucide/cake.cjs.js +2 -0
  7. package/dist/_virtual/~icons/lucide/cake.cjs.js.map +1 -0
  8. package/dist/_virtual/~icons/lucide/cake.esm.js +11 -0
  9. package/dist/_virtual/~icons/lucide/cake.esm.js.map +1 -0
  10. package/dist/_virtual/~icons/lucide/camera.cjs.js +2 -0
  11. package/dist/_virtual/~icons/lucide/camera.cjs.js.map +1 -0
  12. package/dist/_virtual/~icons/lucide/camera.esm.js +11 -0
  13. package/dist/_virtual/~icons/lucide/camera.esm.js.map +1 -0
  14. package/dist/_virtual/~icons/lucide/circle-user-round.cjs.js +2 -0
  15. package/dist/_virtual/~icons/lucide/circle-user-round.cjs.js.map +1 -0
  16. package/dist/_virtual/~icons/lucide/circle-user-round.esm.js +11 -0
  17. package/dist/_virtual/~icons/lucide/circle-user-round.esm.js.map +1 -0
  18. package/dist/_virtual/~icons/lucide/ellipsis-vertical.cjs.js.map +1 -1
  19. package/dist/_virtual/~icons/lucide/ellipsis-vertical.esm.js.map +1 -1
  20. package/dist/_virtual/~icons/lucide/folder-open.cjs.js.map +1 -1
  21. package/dist/_virtual/~icons/lucide/folder-open.esm.js.map +1 -1
  22. package/dist/_virtual/~icons/lucide/folder.cjs.js.map +1 -1
  23. package/dist/_virtual/~icons/lucide/folder.esm.js.map +1 -1
  24. package/dist/_virtual/~icons/lucide/globe.cjs.js.map +1 -1
  25. package/dist/_virtual/~icons/lucide/globe.esm.js.map +1 -1
  26. package/dist/_virtual/~icons/lucide/help-circle.cjs.js.map +1 -1
  27. package/dist/_virtual/~icons/lucide/help-circle.esm.js.map +1 -1
  28. package/dist/_virtual/~icons/lucide/layout-dashboard.cjs.js.map +1 -1
  29. package/dist/_virtual/~icons/lucide/layout-dashboard.esm.js.map +1 -1
  30. package/dist/_virtual/~icons/lucide/lock-keyhole.cjs.js.map +1 -1
  31. package/dist/_virtual/~icons/lucide/lock-keyhole.esm.js.map +1 -1
  32. package/dist/_virtual/~icons/lucide/mail.cjs.js +2 -0
  33. package/dist/_virtual/~icons/lucide/mail.cjs.js.map +1 -0
  34. package/dist/_virtual/~icons/lucide/mail.esm.js +11 -0
  35. package/dist/_virtual/~icons/lucide/mail.esm.js.map +1 -0
  36. package/dist/_virtual/~icons/lucide/map-pin.cjs.js +2 -0
  37. package/dist/_virtual/~icons/lucide/map-pin.cjs.js.map +1 -0
  38. package/dist/_virtual/~icons/lucide/map-pin.esm.js +11 -0
  39. package/dist/_virtual/~icons/lucide/map-pin.esm.js.map +1 -0
  40. package/dist/_virtual/~icons/lucide/pencil.cjs.js.map +1 -1
  41. package/dist/_virtual/~icons/lucide/pencil.esm.js.map +1 -1
  42. package/dist/_virtual/~icons/lucide/phone.cjs.js +2 -0
  43. package/dist/_virtual/~icons/lucide/phone.cjs.js.map +1 -0
  44. package/dist/_virtual/~icons/lucide/phone.esm.js +11 -0
  45. package/dist/_virtual/~icons/lucide/phone.esm.js.map +1 -0
  46. package/dist/_virtual/~icons/lucide/settings-2.cjs.js.map +1 -1
  47. package/dist/_virtual/~icons/lucide/settings-2.esm.js.map +1 -1
  48. package/dist/_virtual/~icons/lucide/share-2.cjs.js.map +1 -1
  49. package/dist/_virtual/~icons/lucide/share-2.esm.js.map +1 -1
  50. package/dist/_virtual/~icons/lucide/user-round-cog.cjs.js.map +1 -1
  51. package/dist/_virtual/~icons/lucide/user-round-cog.esm.js.map +1 -1
  52. package/dist/_virtual/~icons/lucide/user-round-plus.cjs.js +2 -0
  53. package/dist/_virtual/~icons/lucide/user-round-plus.cjs.js.map +1 -0
  54. package/dist/_virtual/~icons/lucide/user-round-plus.esm.js +11 -0
  55. package/dist/_virtual/~icons/lucide/user-round-plus.esm.js.map +1 -0
  56. package/dist/_virtual/~icons/lucide/user.cjs.js.map +1 -1
  57. package/dist/_virtual/~icons/lucide/user.esm.js.map +1 -1
  58. package/dist/_virtual/~icons/lucide/users.cjs.js.map +1 -1
  59. package/dist/_virtual/~icons/lucide/users.esm.js.map +1 -1
  60. package/dist/_virtual/~icons/lucide/x.cjs.js +2 -0
  61. package/dist/_virtual/~icons/lucide/x.cjs.js.map +1 -0
  62. package/dist/_virtual/~icons/lucide/x.esm.js +11 -0
  63. package/dist/_virtual/~icons/lucide/x.esm.js.map +1 -0
  64. package/dist/audio/audioPane.cjs.js +1 -1
  65. package/dist/audio/audioPane.cjs.js.map +1 -1
  66. package/dist/audio/audioPane.esm.js +1 -5
  67. package/dist/audio/audioPane.esm.js.map +1 -1
  68. package/dist/classInstancePane.cjs.js.map +1 -1
  69. package/dist/classInstancePane.esm.js.map +1 -1
  70. package/dist/components/editor-card/EditorCard.cjs.js +1 -1
  71. package/dist/components/editor-card/EditorCard.cjs.js.map +1 -1
  72. package/dist/components/editor-card/EditorCard.esm.js +4 -7
  73. package/dist/components/editor-card/EditorCard.esm.js.map +1 -1
  74. package/dist/components/editor-card/EditorCard.styles.cjs.js.map +1 -1
  75. package/dist/components/editor-card/EditorCard.styles.esm.js.map +1 -1
  76. package/dist/components/file-explorer-header/FileExplorerHeader.cjs.js +1 -1
  77. package/dist/components/file-explorer-header/FileExplorerHeader.cjs.js.map +1 -1
  78. package/dist/components/file-explorer-header/FileExplorerHeader.esm.js +2 -2
  79. package/dist/components/file-explorer-header/FileExplorerHeader.esm.js.map +1 -1
  80. package/dist/components/file-explorer-header/FileExplorerHeader.styles.cjs.js.map +1 -1
  81. package/dist/components/file-explorer-header/FileExplorerHeader.styles.esm.js.map +1 -1
  82. package/dist/components/file-explorer-header/FileExplorerHeaderControls.cjs.js +1 -1
  83. package/dist/components/file-explorer-header/FileExplorerHeaderControls.cjs.js.map +1 -1
  84. package/dist/components/file-explorer-header/FileExplorerHeaderControls.esm.js +3 -3
  85. package/dist/components/file-explorer-header/FileExplorerHeaderControls.esm.js.map +1 -1
  86. package/dist/components/file-explorer-header/FileExplorerHeaderControls.styles.cjs.js.map +1 -1
  87. package/dist/components/file-explorer-header/FileExplorerHeaderControls.styles.esm.js.map +1 -1
  88. package/dist/components/file-explorer-header/FileExplorerHeaderSummary.cjs.js +1 -1
  89. package/dist/components/file-explorer-header/FileExplorerHeaderSummary.cjs.js.map +1 -1
  90. package/dist/components/file-explorer-header/FileExplorerHeaderSummary.esm.js +2 -2
  91. package/dist/components/file-explorer-header/FileExplorerHeaderSummary.esm.js.map +1 -1
  92. package/dist/components/file-explorer-header/FileExplorerHeaderSummary.styles.cjs.js.map +1 -1
  93. package/dist/components/file-explorer-header/FileExplorerHeaderSummary.styles.esm.js.map +1 -1
  94. package/dist/components/file-explorer-header/FileExplorerProvider.cjs.js +5 -5
  95. package/dist/components/file-explorer-header/FileExplorerProvider.cjs.js.map +1 -1
  96. package/dist/components/file-explorer-header/FileExplorerProvider.d.ts.map +1 -1
  97. package/dist/components/file-explorer-header/FileExplorerProvider.esm.js +97 -96
  98. package/dist/components/file-explorer-header/FileExplorerProvider.esm.js.map +1 -1
  99. package/dist/components/file-explorer-header/FileExplorerProvider.styles.cjs.js.map +1 -1
  100. package/dist/components/file-explorer-header/FileExplorerProvider.styles.esm.js.map +1 -1
  101. package/dist/components/header/Header.cjs.js +1 -1
  102. package/dist/components/header/Header.cjs.js.map +1 -1
  103. package/dist/components/header/Header.esm.js +2 -2
  104. package/dist/components/header/Header.esm.js.map +1 -1
  105. package/dist/components/header/Header.styles.cjs.js +1 -1
  106. package/dist/components/header/Header.styles.cjs.js.map +1 -1
  107. package/dist/components/header/Header.styles.esm.js +1 -1
  108. package/dist/components/header/Header.styles.esm.js.map +1 -1
  109. package/dist/components/navbar/Navbar.cjs.js +1 -1
  110. package/dist/components/navbar/Navbar.cjs.js.map +1 -1
  111. package/dist/components/navbar/Navbar.d.ts +2 -0
  112. package/dist/components/navbar/Navbar.d.ts.map +1 -1
  113. package/dist/components/navbar/Navbar.esm.js +2 -2
  114. package/dist/components/navbar/Navbar.esm.js.map +1 -1
  115. package/dist/components/navbar/Navbar.styles.cjs.js +1 -1
  116. package/dist/components/navbar/Navbar.styles.cjs.js.map +1 -1
  117. package/dist/components/navbar/Navbar.styles.esm.js +1 -1
  118. package/dist/components/navbar/Navbar.styles.esm.js.map +1 -1
  119. package/dist/components/profile-heading/ProfileHeading.cjs.js +95 -0
  120. package/dist/components/profile-heading/ProfileHeading.cjs.js.map +1 -0
  121. package/dist/components/profile-heading/ProfileHeading.d.ts +45 -0
  122. package/dist/components/profile-heading/ProfileHeading.d.ts.map +1 -0
  123. package/dist/components/profile-heading/ProfileHeading.esm.js +480 -0
  124. package/dist/components/profile-heading/ProfileHeading.esm.js.map +1 -0
  125. package/dist/components/profile-heading/ProfileHeading.styles.cjs.js +2 -0
  126. package/dist/components/profile-heading/ProfileHeading.styles.cjs.js.map +1 -0
  127. package/dist/components/profile-heading/ProfileHeading.styles.esm.js +7 -0
  128. package/dist/components/profile-heading/ProfileHeading.styles.esm.js.map +1 -0
  129. package/dist/components/profile-heading/editor/index.d.ts +3 -0
  130. package/dist/components/profile-heading/editor/index.d.ts.map +1 -0
  131. package/dist/components/profile-heading/editor/sections/contactInfo/types.d.ts +44 -0
  132. package/dist/components/profile-heading/editor/sections/contactInfo/types.d.ts.map +1 -0
  133. package/dist/components/profile-heading/editor/sections/heading/HeadingEditDialog.cjs.js +297 -0
  134. package/dist/components/profile-heading/editor/sections/heading/HeadingEditDialog.cjs.js.map +1 -0
  135. package/dist/components/profile-heading/editor/sections/heading/HeadingEditDialog.d.ts +5 -0
  136. package/dist/components/profile-heading/editor/sections/heading/HeadingEditDialog.d.ts.map +1 -0
  137. package/dist/components/profile-heading/editor/sections/heading/HeadingEditDialog.esm.js +642 -0
  138. package/dist/components/profile-heading/editor/sections/heading/HeadingEditDialog.esm.js.map +1 -0
  139. package/dist/components/profile-heading/editor/sections/heading/dateHelpers.cjs.js +2 -0
  140. package/dist/components/profile-heading/editor/sections/heading/dateHelpers.cjs.js.map +1 -0
  141. package/dist/components/profile-heading/editor/sections/heading/dateHelpers.d.ts +4 -0
  142. package/dist/components/profile-heading/editor/sections/heading/dateHelpers.d.ts.map +1 -0
  143. package/dist/components/profile-heading/editor/sections/heading/dateHelpers.esm.js +16 -0
  144. package/dist/components/profile-heading/editor/sections/heading/dateHelpers.esm.js.map +1 -0
  145. package/dist/components/profile-heading/editor/sections/heading/imageHelpers.cjs.js +2 -0
  146. package/dist/components/profile-heading/editor/sections/heading/imageHelpers.cjs.js.map +1 -0
  147. package/dist/components/profile-heading/editor/sections/heading/imageHelpers.d.ts +5 -0
  148. package/dist/components/profile-heading/editor/sections/heading/imageHelpers.d.ts.map +1 -0
  149. package/dist/components/profile-heading/editor/sections/heading/imageHelpers.esm.js +76 -0
  150. package/dist/components/profile-heading/editor/sections/heading/imageHelpers.esm.js.map +1 -0
  151. package/dist/components/profile-heading/editor/sections/heading/imagePreview.cjs.js +19 -0
  152. package/dist/components/profile-heading/editor/sections/heading/imagePreview.cjs.js.map +1 -0
  153. package/dist/components/profile-heading/editor/sections/heading/imagePreview.d.ts +2 -0
  154. package/dist/components/profile-heading/editor/sections/heading/imagePreview.d.ts.map +1 -0
  155. package/dist/components/profile-heading/editor/sections/heading/imagePreview.esm.js +28 -0
  156. package/dist/components/profile-heading/editor/sections/heading/imagePreview.esm.js.map +1 -0
  157. package/dist/components/profile-heading/editor/sections/heading/mutations.cjs.js +2 -0
  158. package/dist/components/profile-heading/editor/sections/heading/mutations.cjs.js.map +1 -0
  159. package/dist/components/profile-heading/editor/sections/heading/mutations.d.ts +4 -0
  160. package/dist/components/profile-heading/editor/sections/heading/mutations.d.ts.map +1 -0
  161. package/dist/components/profile-heading/editor/sections/heading/mutations.esm.js +151 -0
  162. package/dist/components/profile-heading/editor/sections/heading/mutations.esm.js.map +1 -0
  163. package/dist/components/profile-heading/editor/sections/heading/types.d.ts +34 -0
  164. package/dist/components/profile-heading/editor/sections/heading/types.d.ts.map +1 -0
  165. package/dist/components/profile-heading/editor/sections/shared/contactTypeUtils.cjs.js +2 -0
  166. package/dist/components/profile-heading/editor/sections/shared/contactTypeUtils.cjs.js.map +1 -0
  167. package/dist/components/profile-heading/editor/sections/shared/contactTypeUtils.d.ts +7 -0
  168. package/dist/components/profile-heading/editor/sections/shared/contactTypeUtils.d.ts.map +1 -0
  169. package/dist/components/profile-heading/editor/sections/shared/contactTypeUtils.esm.js +20 -0
  170. package/dist/components/profile-heading/editor/sections/shared/contactTypeUtils.esm.js.map +1 -0
  171. package/dist/components/profile-heading/editor/sections/shared/idNodeFactory.cjs.js +2 -0
  172. package/dist/components/profile-heading/editor/sections/shared/idNodeFactory.cjs.js.map +1 -0
  173. package/dist/components/profile-heading/editor/sections/shared/idNodeFactory.d.ts +3 -0
  174. package/dist/components/profile-heading/editor/sections/shared/idNodeFactory.d.ts.map +1 -0
  175. package/dist/components/profile-heading/editor/sections/shared/idNodeFactory.esm.js +11 -0
  176. package/dist/components/profile-heading/editor/sections/shared/idNodeFactory.esm.js.map +1 -0
  177. package/dist/components/profile-heading/editor/sections/shared/phoneCountries.cjs.js +2 -0
  178. package/dist/components/profile-heading/editor/sections/shared/phoneCountries.cjs.js.map +1 -0
  179. package/dist/components/profile-heading/editor/sections/shared/phoneCountries.d.ts +20 -0
  180. package/dist/components/profile-heading/editor/sections/shared/phoneCountries.d.ts.map +1 -0
  181. package/dist/components/profile-heading/editor/sections/shared/phoneCountries.esm.js +1291 -0
  182. package/dist/components/profile-heading/editor/sections/shared/phoneCountries.esm.js.map +1 -0
  183. package/dist/components/profile-heading/editor/sections/shared/rdfMutationHelpers.cjs.js +2 -0
  184. package/dist/components/profile-heading/editor/sections/shared/rdfMutationHelpers.cjs.js.map +1 -0
  185. package/dist/components/profile-heading/editor/sections/shared/rdfMutationHelpers.d.ts +45 -0
  186. package/dist/components/profile-heading/editor/sections/shared/rdfMutationHelpers.d.ts.map +1 -0
  187. package/dist/components/profile-heading/editor/sections/shared/rdfMutationHelpers.esm.js +211 -0
  188. package/dist/components/profile-heading/editor/sections/shared/rdfMutationHelpers.esm.js.map +1 -0
  189. package/dist/components/profile-heading/editor/sections/shared/rowState.cjs.js +2 -0
  190. package/dist/components/profile-heading/editor/sections/shared/rowState.cjs.js.map +1 -0
  191. package/dist/components/profile-heading/editor/sections/shared/rowState.d.ts +21 -0
  192. package/dist/components/profile-heading/editor/sections/shared/rowState.d.ts.map +1 -0
  193. package/dist/components/profile-heading/editor/sections/shared/rowState.esm.js +18 -0
  194. package/dist/components/profile-heading/editor/sections/shared/rowState.esm.js.map +1 -0
  195. package/dist/components/profile-heading/editor/sections/shared/sanitizeUtils.cjs.js +2 -0
  196. package/dist/components/profile-heading/editor/sections/shared/sanitizeUtils.cjs.js.map +1 -0
  197. package/dist/components/profile-heading/editor/sections/shared/sanitizeUtils.d.ts +5 -0
  198. package/dist/components/profile-heading/editor/sections/shared/sanitizeUtils.d.ts.map +1 -0
  199. package/dist/components/profile-heading/editor/sections/shared/sanitizeUtils.esm.js +18 -0
  200. package/dist/components/profile-heading/editor/sections/shared/sanitizeUtils.esm.js.map +1 -0
  201. package/dist/components/profile-heading/editor/sections/shared/types.d.ts +31 -0
  202. package/dist/components/profile-heading/editor/sections/shared/types.d.ts.map +1 -0
  203. package/dist/components/profile-heading/editor/textUtils.cjs.js +2 -0
  204. package/dist/components/profile-heading/editor/textUtils.cjs.js.map +1 -0
  205. package/dist/components/profile-heading/editor/textUtils.d.ts +6 -0
  206. package/dist/components/profile-heading/editor/textUtils.d.ts.map +1 -0
  207. package/dist/components/profile-heading/editor/textUtils.esm.js +26 -0
  208. package/dist/components/profile-heading/editor/textUtils.esm.js.map +1 -0
  209. package/dist/components/profile-heading/editor/texts/buttonTexts.d.ts +9 -0
  210. package/dist/components/profile-heading/editor/texts/buttonTexts.d.ts.map +1 -0
  211. package/dist/components/profile-heading/editor/texts/dialogTexts.cjs.js +2 -0
  212. package/dist/components/profile-heading/editor/texts/dialogTexts.cjs.js.map +1 -0
  213. package/dist/components/profile-heading/editor/texts/dialogTexts.d.ts +14 -0
  214. package/dist/components/profile-heading/editor/texts/dialogTexts.d.ts.map +1 -0
  215. package/dist/components/profile-heading/editor/texts/dialogTexts.esm.js +6 -0
  216. package/dist/components/profile-heading/editor/texts/dialogTexts.esm.js.map +1 -0
  217. package/dist/components/profile-heading/editor/texts/messageTexts.cjs.js +2 -0
  218. package/dist/components/profile-heading/editor/texts/messageTexts.cjs.js.map +1 -0
  219. package/dist/components/profile-heading/editor/texts/messageTexts.d.ts +42 -0
  220. package/dist/components/profile-heading/editor/texts/messageTexts.d.ts.map +1 -0
  221. package/dist/components/profile-heading/editor/texts/messageTexts.esm.js +6 -0
  222. package/dist/components/profile-heading/editor/texts/messageTexts.esm.js.map +1 -0
  223. package/dist/components/profile-heading/editor/texts/profileTexts.d.ts +14 -0
  224. package/dist/components/profile-heading/editor/texts/profileTexts.d.ts.map +1 -0
  225. package/dist/components/profile-heading/editor/texts/qrCodeTexts.d.ts +2 -0
  226. package/dist/components/profile-heading/editor/texts/qrCodeTexts.d.ts.map +1 -0
  227. package/dist/components/profile-heading/editor/texts.d.ts +6 -0
  228. package/dist/components/profile-heading/editor/texts.d.ts.map +1 -0
  229. package/dist/components/profile-heading/editor/ui/dialog.d.ts +41 -0
  230. package/dist/components/profile-heading/editor/ui/dialog.d.ts.map +1 -0
  231. package/dist/components/profile-heading/editor/ui/dialog2.cjs.js +17 -0
  232. package/dist/components/profile-heading/editor/ui/dialog2.cjs.js.map +1 -0
  233. package/dist/components/profile-heading/editor/ui/dialog2.esm.js +263 -0
  234. package/dist/components/profile-heading/editor/ui/dialog2.esm.js.map +1 -0
  235. package/dist/components/profile-heading/editor/ui/spinner.cjs.js +5 -0
  236. package/dist/components/profile-heading/editor/ui/spinner.cjs.js.map +1 -0
  237. package/dist/components/profile-heading/editor/ui/spinner.d.ts +3 -0
  238. package/dist/components/profile-heading/editor/ui/spinner.d.ts.map +1 -0
  239. package/dist/components/profile-heading/editor/ui/spinner.esm.js +12 -0
  240. package/dist/components/profile-heading/editor/ui/spinner.esm.js.map +1 -0
  241. package/dist/components/profile-heading/editor/utils/errorDisplay.cjs.js +2 -0
  242. package/dist/components/profile-heading/editor/utils/errorDisplay.cjs.js.map +1 -0
  243. package/dist/components/profile-heading/editor/utils/errorDisplay.d.ts +2 -0
  244. package/dist/components/profile-heading/editor/utils/errorDisplay.d.ts.map +1 -0
  245. package/dist/components/profile-heading/editor/utils/errorDisplay.esm.js +18 -0
  246. package/dist/components/profile-heading/editor/utils/errorDisplay.esm.js.map +1 -0
  247. package/dist/components/profile-heading/friendActions.cjs.js +2 -0
  248. package/dist/components/profile-heading/friendActions.cjs.js.map +1 -0
  249. package/dist/components/profile-heading/friendActions.d.ts +11 -0
  250. package/dist/components/profile-heading/friendActions.d.ts.map +1 -0
  251. package/dist/components/profile-heading/friendActions.esm.js +32 -0
  252. package/dist/components/profile-heading/friendActions.esm.js.map +1 -0
  253. package/dist/components/profile-heading/index.cjs.js +1 -0
  254. package/dist/components/profile-heading/index.d.ts +5 -0
  255. package/dist/components/profile-heading/index.d.ts.map +1 -0
  256. package/dist/components/profile-heading/index.esm.js +1 -0
  257. package/dist/components/profile-heading/profileHeadingData.cjs.js +2 -0
  258. package/dist/components/profile-heading/profileHeadingData.cjs.js.map +1 -0
  259. package/dist/components/profile-heading/profileHeadingData.d.ts +6 -0
  260. package/dist/components/profile-heading/profileHeadingData.d.ts.map +1 -0
  261. package/dist/components/profile-heading/profileHeadingData.esm.js +81 -0
  262. package/dist/components/profile-heading/profileHeadingData.esm.js.map +1 -0
  263. package/dist/components/resource-actions-menu/ResourceActionsMenu.cjs.js +1 -1
  264. package/dist/components/resource-actions-menu/ResourceActionsMenu.cjs.js.map +1 -1
  265. package/dist/components/resource-actions-menu/ResourceActionsMenu.esm.js +2 -2
  266. package/dist/components/resource-actions-menu/ResourceActionsMenu.esm.js.map +1 -1
  267. package/dist/components/resource-actions-menu/ResourceActionsMenu.styles.cjs.js.map +1 -1
  268. package/dist/components/resource-actions-menu/ResourceActionsMenu.styles.esm.js.map +1 -1
  269. package/dist/dashboard/basicPreferences.cjs.js.map +1 -1
  270. package/dist/dashboard/basicPreferences.esm.js.map +1 -1
  271. package/dist/dashboard/dashboardPane.cjs.js.map +1 -1
  272. package/dist/dashboard/dashboardPane.esm.js.map +1 -1
  273. package/dist/dashboard/homepage.cjs.js.map +1 -1
  274. package/dist/dashboard/homepage.esm.js.map +1 -1
  275. package/dist/dashboard/ontologyData.cjs.js.map +1 -1
  276. package/dist/dashboard/ontologyData.esm.js.map +1 -1
  277. package/dist/dashboard/preferencesFormText.cjs.js.map +1 -1
  278. package/dist/dashboard/preferencesFormText.esm.js.map +1 -1
  279. package/dist/dataContentPane2.cjs.js.map +1 -1
  280. package/dist/dataContentPane2.esm.js.map +1 -1
  281. package/dist/defaultPane2.cjs.js.map +1 -1
  282. package/dist/defaultPane2.esm.js.map +1 -1
  283. package/dist/dokieli/dokieliPane.cjs.js.map +1 -1
  284. package/dist/dokieli/dokieliPane.esm.js.map +1 -1
  285. package/dist/dokieli/new.cjs.js.map +1 -1
  286. package/dist/dokieli/new.esm.js.map +1 -1
  287. package/dist/form/pane.cjs.js.map +1 -1
  288. package/dist/form/pane.esm.js.map +1 -1
  289. package/dist/home/homePane.cjs.js.map +1 -1
  290. package/dist/home/homePane.esm.js.map +1 -1
  291. package/dist/humanReadablePane2.cjs.js.map +1 -1
  292. package/dist/humanReadablePane2.esm.js.map +1 -1
  293. package/dist/icons/folder.cjs.js.map +1 -1
  294. package/dist/icons/folder.esm.js.map +1 -1
  295. package/dist/icons/friends.cjs.js.map +1 -1
  296. package/dist/icons/friends.esm.js.map +1 -1
  297. package/dist/icons/person.cjs.js.map +1 -1
  298. package/dist/icons/person.esm.js.map +1 -1
  299. package/dist/imagePane2.cjs.js.map +1 -1
  300. package/dist/imagePane2.esm.js.map +1 -1
  301. package/dist/index.cjs.js +1 -1
  302. package/dist/index.cjs.js.map +1 -1
  303. package/dist/index.d.ts +2 -1
  304. package/dist/index.d.ts.map +1 -1
  305. package/dist/index.esm.js +15 -14
  306. package/dist/index.esm.js.map +1 -1
  307. package/dist/internal/internalPane2.cjs.js +1 -1
  308. package/dist/internal/internalPane2.cjs.js.map +1 -1
  309. package/dist/internal/internalPane2.esm.js +2 -5
  310. package/dist/internal/internalPane2.esm.js.map +1 -1
  311. package/dist/mainPage/header.cjs.js +1 -1
  312. package/dist/mainPage/header.cjs.js.map +1 -1
  313. package/dist/mainPage/header.d.ts +2 -2
  314. package/dist/mainPage/header.d.ts.map +1 -1
  315. package/dist/mainPage/header.esm.js +48 -44
  316. package/dist/mainPage/header.esm.js.map +1 -1
  317. package/dist/mainPage/index.cjs.js +1 -1
  318. package/dist/mainPage/index.cjs.js.map +1 -1
  319. package/dist/mainPage/index.d.ts.map +1 -1
  320. package/dist/mainPage/index.esm.js +27 -21
  321. package/dist/mainPage/index.esm.js.map +1 -1
  322. package/dist/mainPage/navbar.cjs.js +1 -1
  323. package/dist/mainPage/navbar.cjs.js.map +1 -1
  324. package/dist/mainPage/navbar.d.ts +3 -2
  325. package/dist/mainPage/navbar.d.ts.map +1 -1
  326. package/dist/mainPage/navbar.esm.js +77 -42
  327. package/dist/mainPage/navbar.esm.js.map +1 -1
  328. package/dist/mainPage/navigation.cjs.js +2 -0
  329. package/dist/mainPage/navigation.cjs.js.map +1 -0
  330. package/dist/mainPage/navigation.d.ts +6 -0
  331. package/dist/mainPage/navigation.d.ts.map +1 -0
  332. package/dist/mainPage/navigation.esm.js +22 -0
  333. package/dist/mainPage/navigation.esm.js.map +1 -0
  334. package/dist/mainPage/profileHeading.d.ts +5 -0
  335. package/dist/mainPage/profileHeading.d.ts.map +1 -0
  336. package/dist/mainPage/profileHeading2.cjs.js +2 -0
  337. package/dist/mainPage/profileHeading2.cjs.js.map +1 -0
  338. package/dist/mainPage/profileHeading2.esm.js +158 -0
  339. package/dist/mainPage/profileHeading2.esm.js.map +1 -0
  340. package/dist/n3Pane2.cjs.js.map +1 -1
  341. package/dist/n3Pane2.esm.js.map +1 -1
  342. package/dist/navigation/browserEvents.cjs.js +2 -0
  343. package/dist/navigation/browserEvents.cjs.js.map +1 -0
  344. package/dist/navigation/browserEvents.d.ts +15 -0
  345. package/dist/navigation/browserEvents.d.ts.map +1 -0
  346. package/dist/navigation/browserEvents.esm.js +32 -0
  347. package/dist/navigation/browserEvents.esm.js.map +1 -0
  348. package/dist/navigation/chrome.cjs.js +2 -0
  349. package/dist/navigation/chrome.cjs.js.map +1 -0
  350. package/dist/navigation/chrome.d.ts +69 -0
  351. package/dist/navigation/chrome.d.ts.map +1 -0
  352. package/dist/navigation/chrome.esm.js +43 -0
  353. package/dist/navigation/chrome.esm.js.map +1 -0
  354. package/dist/navigation/controller.cjs.js +2 -0
  355. package/dist/navigation/controller.cjs.js.map +1 -0
  356. package/dist/navigation/controller.d.ts +51 -0
  357. package/dist/navigation/controller.d.ts.map +1 -0
  358. package/dist/navigation/controller.esm.js +45 -0
  359. package/dist/navigation/controller.esm.js.map +1 -0
  360. package/dist/navigation/events.cjs.js +2 -0
  361. package/dist/navigation/events.cjs.js.map +1 -0
  362. package/dist/navigation/events.d.ts +17 -0
  363. package/dist/navigation/events.d.ts.map +1 -0
  364. package/dist/navigation/events.esm.js +18 -0
  365. package/dist/navigation/events.esm.js.map +1 -0
  366. package/dist/navigation/navbarVisibility.cjs.js +2 -0
  367. package/dist/navigation/navbarVisibility.cjs.js.map +1 -0
  368. package/dist/navigation/navbarVisibility.d.ts +5 -0
  369. package/dist/navigation/navbarVisibility.d.ts.map +1 -0
  370. package/dist/navigation/navbarVisibility.esm.js +26 -0
  371. package/dist/navigation/navbarVisibility.esm.js.map +1 -0
  372. package/dist/navigation/options.cjs.js +2 -0
  373. package/dist/navigation/options.cjs.js.map +1 -0
  374. package/dist/navigation/options.d.ts +16 -0
  375. package/dist/navigation/options.d.ts.map +1 -0
  376. package/dist/navigation/options.esm.js +8 -0
  377. package/dist/navigation/options.esm.js.map +1 -0
  378. package/dist/navigation/podContext.cjs.js +2 -0
  379. package/dist/navigation/podContext.cjs.js.map +1 -0
  380. package/dist/navigation/podContext.d.ts +21 -0
  381. package/dist/navigation/podContext.d.ts.map +1 -0
  382. package/dist/navigation/podContext.esm.js +62 -0
  383. package/dist/navigation/podContext.esm.js.map +1 -0
  384. package/dist/navigation/state.cjs.js +2 -0
  385. package/dist/navigation/state.cjs.js.map +1 -0
  386. package/dist/navigation/state.d.ts +40 -0
  387. package/dist/navigation/state.d.ts.map +1 -0
  388. package/dist/navigation/state.esm.js +41 -0
  389. package/dist/navigation/state.esm.js.map +1 -0
  390. package/dist/outline/context.cjs.js.map +1 -1
  391. package/dist/outline/context.esm.js.map +1 -1
  392. package/dist/outline/manager2.cjs.js +1 -1
  393. package/dist/outline/manager2.cjs.js.map +1 -1
  394. package/dist/outline/manager2.esm.js +388 -354
  395. package/dist/outline/manager2.esm.js.map +1 -1
  396. package/dist/outline/outlineIcons.cjs.js.map +1 -1
  397. package/dist/outline/outlineIcons.esm.js.map +1 -1
  398. package/dist/outline/propertyViews.cjs.js.map +1 -1
  399. package/dist/outline/propertyViews.esm.js.map +1 -1
  400. package/dist/outline/queryByExample.cjs.js.map +1 -1
  401. package/dist/outline/queryByExample.esm.js.map +1 -1
  402. package/dist/outline/userInput.cjs.js +1 -1
  403. package/dist/outline/userInput.cjs.js.map +1 -1
  404. package/dist/outline/userInput.esm.js +12 -13
  405. package/dist/outline/userInput.esm.js.map +1 -1
  406. package/dist/outline/viewAsImage.cjs.js.map +1 -1
  407. package/dist/outline/viewAsImage.esm.js.map +1 -1
  408. package/dist/outline/viewAsMbox.cjs.js.map +1 -1
  409. package/dist/outline/viewAsMbox.esm.js.map +1 -1
  410. package/dist/pad/padPane2.cjs.js +1 -1
  411. package/dist/pad/padPane2.cjs.js.map +1 -1
  412. package/dist/pad/padPane2.esm.js +2 -6
  413. package/dist/pad/padPane2.esm.js.map +1 -1
  414. package/dist/playlist/playlistPane.cjs.js.map +1 -1
  415. package/dist/playlist/playlistPane.esm.js.map +1 -1
  416. package/dist/registerPanes.cjs.js.map +1 -1
  417. package/dist/registerPanes.esm.js.map +1 -1
  418. package/dist/schedule/formsForSchedule.cjs.js.map +1 -1
  419. package/dist/schedule/formsForSchedule.esm.js.map +1 -1
  420. package/dist/schedule/schedulePane2.cjs.js +1 -1
  421. package/dist/schedule/schedulePane2.cjs.js.map +1 -1
  422. package/dist/schedule/schedulePane2.esm.js +1 -5
  423. package/dist/schedule/schedulePane2.esm.js.map +1 -1
  424. package/dist/sharing/sharingPane.cjs.js.map +1 -1
  425. package/dist/sharing/sharingPane.esm.js.map +1 -1
  426. package/dist/slideshow/slideshowPane.cjs.js.map +1 -1
  427. package/dist/slideshow/slideshowPane.esm.js.map +1 -1
  428. package/dist/social/editProfileDetails.cjs.js +1 -1
  429. package/dist/social/editProfileDetails.cjs.js.map +1 -1
  430. package/dist/social/editProfileDetails.esm.js +0 -2
  431. package/dist/social/editProfileDetails.esm.js.map +1 -1
  432. package/dist/social/icons.cjs.js +4 -4
  433. package/dist/social/icons.cjs.js.map +1 -1
  434. package/dist/social/icons.esm.js +5 -5
  435. package/dist/social/icons.esm.js.map +1 -1
  436. package/dist/social/socialPane.d.ts +0 -1
  437. package/dist/social/socialPane.d.ts.map +1 -1
  438. package/dist/social/socialPane2.cjs.js +3 -3
  439. package/dist/social/socialPane2.cjs.js.map +1 -1
  440. package/dist/social/socialPane2.esm.js +97 -154
  441. package/dist/social/socialPane2.esm.js.map +1 -1
  442. package/dist/social/socialSections.cjs.js +1 -1
  443. package/dist/social/socialSections.cjs.js.map +1 -1
  444. package/dist/social/socialSections.d.ts +2 -1
  445. package/dist/social/socialSections.d.ts.map +1 -1
  446. package/dist/social/socialSections.esm.js +54 -129
  447. package/dist/social/socialSections.esm.js.map +1 -1
  448. package/dist/social/triage.cjs.js.map +1 -1
  449. package/dist/social/triage.esm.js.map +1 -1
  450. package/dist/tabbed/tabbedPane.cjs.js.map +1 -1
  451. package/dist/tabbed/tabbedPane.esm.js.map +1 -1
  452. package/dist/tableViewPane.cjs.js.map +1 -1
  453. package/dist/tableViewPane.esm.js.map +1 -1
  454. package/dist/transaction/pane.cjs.js.map +1 -1
  455. package/dist/transaction/pane.esm.js +1 -1
  456. package/dist/transaction/pane.esm.js.map +1 -1
  457. package/dist/transaction/period.cjs.js.map +1 -1
  458. package/dist/transaction/period.esm.js.map +1 -1
  459. package/dist/trip/tripPane.cjs.js.map +1 -1
  460. package/dist/trip/tripPane.esm.js.map +1 -1
  461. package/dist/trustedApplications/trustedApplications.dom.cjs.js.map +1 -1
  462. package/dist/trustedApplications/trustedApplications.dom.esm.js.map +1 -1
  463. package/dist/trustedApplications/trustedApplications.utils.cjs.js.map +1 -1
  464. package/dist/trustedApplications/trustedApplications.utils.esm.js.map +1 -1
  465. package/dist/trustedApplications/trustedApplications.view.cjs.js.map +1 -1
  466. package/dist/trustedApplications/trustedApplications.view.esm.js.map +1 -1
  467. package/dist/types.d.ts +3 -0
  468. package/dist/types.d.ts.map +1 -0
  469. package/dist/ui/pane.cjs.js +1 -1
  470. package/dist/ui/pane.cjs.js.map +1 -1
  471. package/dist/ui/pane.esm.js +2 -5
  472. package/dist/ui/pane.esm.js.map +1 -1
  473. package/dist/utils/paneUtils.cjs.js +1 -1
  474. package/dist/utils/paneUtils.cjs.js.map +1 -1
  475. package/dist/utils/paneUtils.esm.js +4 -4
  476. package/dist/utils/paneUtils.esm.js.map +1 -1
  477. package/dist/utils/podUtils.cjs.js.map +1 -1
  478. package/dist/utils/podUtils.esm.js.map +1 -1
  479. package/dist/utils/viewerUtils.cjs.js +2 -0
  480. package/dist/utils/viewerUtils.cjs.js.map +1 -0
  481. package/dist/utils/viewerUtils.d.ts +5 -0
  482. package/dist/utils/viewerUtils.d.ts.map +1 -0
  483. package/dist/utils/viewerUtils.esm.js +13 -0
  484. package/dist/utils/viewerUtils.esm.js.map +1 -0
  485. package/dist/utils/webIdUtils.cjs.js +1 -1
  486. package/dist/utils/webIdUtils.cjs.js.map +1 -1
  487. package/dist/utils/webIdUtils.d.ts +1 -0
  488. package/dist/utils/webIdUtils.d.ts.map +1 -1
  489. package/dist/utils/webIdUtils.esm.js +23 -19
  490. package/dist/utils/webIdUtils.esm.js.map +1 -1
  491. package/dist/versionInfo.cjs.js +1 -1
  492. package/dist/versionInfo.cjs.js.map +1 -1
  493. package/dist/versionInfo.esm.js +11 -11
  494. package/dist/versionInfo.esm.js.map +1 -1
  495. package/dist/video/videoPane.cjs.js.map +1 -1
  496. package/dist/video/videoPane.esm.js.map +1 -1
  497. package/package.json +15 -14
@@ -0,0 +1,81 @@
1
+ import { getViewerRelation as e } from "../../utils/viewerUtils.esm.js";
2
+ import { ns as t, utils as n, widgets as r } from "solid-ui";
3
+ import { store as i } from "solid-logic";
4
+ //#region src/components/profile-heading/profileHeadingData.ts
5
+ async function a(t) {
6
+ let n = e(t);
7
+ if (n !== "owner") return n;
8
+ try {
9
+ return i.updater?.editable?.(t.doc()) ? "owner" : "anonymous";
10
+ } catch (e) {
11
+ return console.warn("Failed to check profile edit permissions.", e), "anonymous";
12
+ }
13
+ }
14
+ function o(e, a = i) {
15
+ let o = e.doc(), l = a.anyValue(e, t.vcard("nickname")) || a.anyValue(e, t.foaf("nick")) || void 0, u = a.anyValue(e, t.vcard("bday")) || void 0, d = r.findImage(e) || void 0, f = c(a, e, t.vcard("hasTelephone"), o, "phone"), p = c(a, e, t.vcard("hasEmail"), o, "email"), m = s(a, e, o), h = a.any(e, t.vcard("hasAddress"), null, o) || void 0, g = h, _ = h ? {
16
+ entryNode: h,
17
+ type: a.any(g, t.rdf("type"), null, o) || void 0,
18
+ streetAddress: a.anyValue(g, t.vcard("street-address")) || void 0,
19
+ locality: a.anyValue(g, t.vcard("locality")) || void 0,
20
+ region: a.anyValue(g, t.vcard("region")) || void 0,
21
+ postalCode: a.anyValue(g, t.vcard("postal-code")) || void 0,
22
+ countryName: a.anyValue(g, t.vcard("country-name")) || void 0
23
+ } : void 0, v = _?.countryName, y = _?.locality, b = a.anyValue(e, t.solid("preferredSubjectPronoun")) || "", x = a.anyValue(e, t.solid("preferredObjectPronoun")) || "", S = b ? `${b}${x ? `/${x}` : ""}` : void 0;
24
+ return {
25
+ name: n.label(e),
26
+ nickname: l,
27
+ imageSrc: d,
28
+ dateOfBirth: u,
29
+ jobTitle: m,
30
+ primaryPhone: f,
31
+ primaryEmail: p,
32
+ primaryAddress: _,
33
+ location: v && y ? `${y}, ${v}` : v || y || void 0,
34
+ pronouns: S,
35
+ entryNode: e
36
+ };
37
+ }
38
+ function s(e, n, r) {
39
+ let i = e.each(null, t.org("member"), n, r).filter((n) => !e.holds(n, t.rdf("type"), t.schema("EducationalOccupationalCredential"), r)).map((n) => {
40
+ let i = n, a = e.each(i, t.rdf("type"), null, r).find((e) => e.value.startsWith(t.solid("").value))?.value.split(/[#/]/).pop()?.toLowerCase(), o = e.anyValue(i, t.vcard("role"), null, r) || void 0, s = e.any(i, t.org("role"), null, r), c = s && e.anyValue(s, t.schema("name"), null, r) || void 0, l = e.any(i, t.schema("endDate"), null, r);
41
+ return {
42
+ title: c && o ? `${c} - ${o}` : o || c,
43
+ roleType: a,
44
+ isCurrent: !l || a === "currentrole"
45
+ };
46
+ });
47
+ return (i.find((e) => e.isCurrent) || i.find((e) => e.roleType !== "currentrole" && e.roleType !== "futurerole"))?.title;
48
+ }
49
+ function c(e, n, r, i, a) {
50
+ let o = [], s = [...e.statementsMatching(n, r, null, i), ...e.statementsMatching(n, r)].map((e) => e.object), c = /* @__PURE__ */ new Set();
51
+ for (let n of s) {
52
+ if (c.has(n.value)) continue;
53
+ c.add(n.value);
54
+ let r = l(e, n, i, a);
55
+ if (!r) continue;
56
+ let s = n.termType === "NamedNode" ? [...e.each(n, t.rdf("type"), null, i), ...e.each(n, t.rdf("type"))] : [], u = {
57
+ entryNode: n,
58
+ type: s[0] || (a === "email" ? t.vcard("Internet") : t.vcard("Voice")),
59
+ valueNode: r
60
+ };
61
+ if (s.some((e) => d(e.value))) return u;
62
+ o.push(u);
63
+ }
64
+ return o[0];
65
+ }
66
+ function l(e, n, r, i) {
67
+ if (u(n.value, i)) return n;
68
+ if (n.termType === "NamedNode") return [...e.each(n, t.vcard("value"), null, r), ...e.each(n, t.vcard("value"))].find((e) => u(e.value, i));
69
+ }
70
+ function u(e, t) {
71
+ let n = e.trim();
72
+ return t === "email" ? /^mailto:/i.test(n) || /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(n) : /^tel:/i.test(n) || /^[+()\-\s\d]{5,}$/.test(n);
73
+ }
74
+ function d(e) {
75
+ let t = e.trim().toLowerCase();
76
+ return t === "work" || t.endsWith("#work") || t.endsWith("/work");
77
+ }
78
+ //#endregion
79
+ export { a as getViewerMode, o as presentProfile };
80
+
81
+ //# sourceMappingURL=profileHeadingData.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profileHeadingData.esm.js","names":["store","getViewerRelation","ns","utils","widgets","getViewerMode","subject","relation","updater","editable","doc","error","console","warn","presentProfile","profileStore","nickname","anyValue","vcard","foaf","undefined","dateOfBirth","imageSrc","findImage","primaryPhone","selectPrimaryPoint","primaryEmail","jobTitle","selectHeadingJobTitle","addressNode","any","addressSubject","primaryAddress","entryNode","type","rdf","streetAddress","locality","region","postalCode","countryName","country","subjectPronoun","solid","objectPronoun","pronouns","name","label","location","roles","each","org","filter","membership","holds","schema","map","membershipNode","types","roleType","find","value","startsWith","split","pop","toLowerCase","roleText","escoRole","escoRoleName","endDate","title","isCurrent","selected","role","predicate","kind","candidates","nodes","statementsMatching","statement","object","seen","Set","has","add","valueNode","resolvePointValue","termType","candidate","some","typeNode","isWorkType","push","isContactValue","values","normalized","trim","test","endsWith","getViewerMode","relation","getViewerRelation","subject","store","error","presentProfile","doc","nickname","profileStore","ns","dateOfBirth","imageSrc","widgets","primaryPhone","selectPrimaryPoint","primaryEmail","jobTitle","selectHeadingJobTitle","addressNode","addressSubject","primaryAddress","country","locality","subjectPronoun","objectPronoun","pronouns","utils","roles","membership","membershipNode","roleType","type","roleText","escoRole","escoRoleName","endDate","role","candidates","nodes","predicate","statement","seen","entryNode","valueNode","resolvePointValue","kind","types","candidate","isWorkType","typeNode","isContactValue","value","normalized"],"sources":["../../../src/components/profile-heading/profileHeadingData.ts"],"sourcesContent":["import { store } from 'solid-logic'\nimport { getViewerRelation } from '../../utils/viewerUtils'\nimport { NamedNode, type LiveStore, type Node } from 'rdflib'\nimport { ns, utils, widgets } from 'solid-ui'\nimport type { AddressDetails, PointDetails } from './editor/sections/contactInfo/types'\nimport type { ProfileDetails } from './editor/sections/heading/types'\nimport type { ViewerMode } from '../../types'\n\nexport async function getViewerMode (subject: NamedNode): Promise<ViewerMode> {\n const relation = getViewerRelation(subject)\n if (relation !== 'owner') return relation\n\n try {\n return store.updater?.editable?.(subject.doc()) ? 'owner' : 'anonymous'\n } catch (error) {\n console.warn('Failed to check profile edit permissions.', error)\n return 'anonymous'\n }\n}\n\nexport function presentProfile (subject: NamedNode, profileStore: LiveStore = store): ProfileDetails {\n const doc = subject.doc()\n const nickname = profileStore.anyValue(subject, ns.vcard('nickname')) ||\n profileStore.anyValue(subject, ns.foaf('nick')) || undefined\n const dateOfBirth = profileStore.anyValue(subject, ns.vcard('bday')) || undefined\n const imageSrc = widgets.findImage(subject) || undefined\n const primaryPhone = selectPrimaryPoint(profileStore, subject, ns.vcard('hasTelephone'), doc, 'phone')\n const primaryEmail = selectPrimaryPoint(profileStore, subject, ns.vcard('hasEmail'), doc, 'email')\n const jobTitle = selectHeadingJobTitle(profileStore, subject, doc)\n\n const addressNode = profileStore.any(subject, ns.vcard('hasAddress'), null, doc) || undefined\n const addressSubject = addressNode as NamedNode | undefined\n const primaryAddress: AddressDetails | undefined = addressNode\n ? {\n entryNode: addressNode,\n type: profileStore.any(addressSubject, ns.rdf('type'), null, doc) || undefined,\n streetAddress: profileStore.anyValue(addressSubject, ns.vcard('street-address')) || undefined,\n locality: profileStore.anyValue(addressSubject, ns.vcard('locality')) || undefined,\n region: profileStore.anyValue(addressSubject, ns.vcard('region')) || undefined,\n postalCode: profileStore.anyValue(addressSubject, ns.vcard('postal-code')) || undefined,\n countryName: profileStore.anyValue(addressSubject, ns.vcard('country-name')) || undefined\n }\n : undefined\n const country = primaryAddress?.countryName\n const locality = primaryAddress?.locality\n const subjectPronoun = profileStore.anyValue(subject, ns.solid('preferredSubjectPronoun')) || ''\n const objectPronoun = profileStore.anyValue(subject, ns.solid('preferredObjectPronoun')) || ''\n const pronouns = subjectPronoun ? `${subjectPronoun}${objectPronoun ? `/${objectPronoun}` : ''}` : undefined\n\n return {\n name: utils.label(subject),\n nickname,\n imageSrc,\n dateOfBirth,\n jobTitle,\n primaryPhone,\n primaryEmail,\n primaryAddress,\n location: country && locality ? `${locality}, ${country}` : country || locality || undefined,\n pronouns,\n entryNode: subject\n }\n}\n\nfunction selectHeadingJobTitle (profileStore: LiveStore, subject: NamedNode, doc: NamedNode): string | undefined {\n const roles = profileStore.each(null, ns.org('member'), subject, doc)\n .filter(membership =>\n !profileStore.holds(\n membership as NamedNode,\n ns.rdf('type'),\n ns.schema('EducationalOccupationalCredential'),\n doc\n )\n )\n .map(membership => {\n const membershipNode = membership as NamedNode\n const types = profileStore.each(membershipNode, ns.rdf('type'), null, doc)\n const roleType = types.find(type => type.value.startsWith(ns.solid('').value))?.value.split(/[#/]/).pop()?.toLowerCase()\n const roleText = profileStore.anyValue(membershipNode, ns.vcard('role'), null, doc) || undefined\n const escoRole = profileStore.any(membershipNode, ns.org('role'), null, doc)\n const escoRoleName = escoRole\n ? profileStore.anyValue(escoRole as NamedNode, ns.schema('name'), null, doc) || undefined\n : undefined\n const endDate = profileStore.any(membershipNode, ns.schema('endDate'), null, doc)\n const title = escoRoleName && roleText\n ? `${escoRoleName} - ${roleText}`\n : roleText || escoRoleName\n\n return {\n title,\n roleType,\n isCurrent: !endDate || roleType === 'currentrole'\n }\n })\n const selected = roles.find(role => role.isCurrent) ||\n roles.find(role => role.roleType !== 'currentrole' && role.roleType !== 'futurerole')\n return selected?.title\n}\n\nfunction selectPrimaryPoint (\n profileStore: LiveStore,\n subject: NamedNode,\n predicate: NamedNode,\n doc: NamedNode,\n kind: 'email' | 'phone'\n): PointDetails | undefined {\n const candidates: PointDetails[] = []\n const nodes = [\n ...profileStore.statementsMatching(subject, predicate, null, doc),\n ...profileStore.statementsMatching(subject, predicate)\n ].map(statement => statement.object as Node)\n const seen = new Set<string>()\n\n for (const entryNode of nodes) {\n if (seen.has(entryNode.value)) continue\n seen.add(entryNode.value)\n\n const valueNode = resolvePointValue(profileStore, entryNode, doc, kind)\n if (!valueNode) continue\n\n const types = entryNode.termType === 'NamedNode'\n ? [\n ...profileStore.each(entryNode as NamedNode, ns.rdf('type'), null, doc),\n ...profileStore.each(entryNode as NamedNode, ns.rdf('type'))\n ]\n : []\n const type = types[0] || (kind === 'email' ? ns.vcard('Internet') : ns.vcard('Voice'))\n const candidate = { entryNode, type: type as Node, valueNode }\n if (types.some(typeNode => isWorkType(typeNode.value))) return candidate\n candidates.push(candidate)\n }\n\n return candidates[0]\n}\n\nfunction resolvePointValue (\n profileStore: LiveStore,\n entryNode: Node,\n doc: NamedNode,\n kind: 'email' | 'phone'\n): Node | undefined {\n if (isContactValue(entryNode.value, kind)) return entryNode\n if (entryNode.termType !== 'NamedNode') return undefined\n\n const values = [\n ...profileStore.each(entryNode as NamedNode, ns.vcard('value'), null, doc),\n ...profileStore.each(entryNode as NamedNode, ns.vcard('value'))\n ]\n return values.find(value => isContactValue(value.value, kind))\n}\n\nfunction isContactValue (value: string, kind: 'email' | 'phone'): boolean {\n const normalized = value.trim()\n if (kind === 'email') {\n return /^mailto:/i.test(normalized) || /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(normalized)\n }\n return /^tel:/i.test(normalized) || /^[+()\\-\\s\\d]{5,}$/.test(normalized)\n}\n\nfunction isWorkType (value: string): boolean {\n const normalized = value.trim().toLowerCase()\n return normalized === 'work' || normalized.endsWith('#work') || normalized.endsWith('/work')\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- const e=require("../../utils/podUtils.cjs.js");require("../../_virtual/~icons/lucide/pencil.cjs.js"),require("../../_virtual/~icons/lucide/ellipsis-vertical.cjs.js"),require("../../_virtual/~icons/lucide/user-round-cog.cjs.js");const t=require("./ResourceActionsMenu.styles.cjs.js");let n=require("solid-ui"),r=require("lit/decorators.js"),i=require("lit");require("solid-ui/components/button"),require("solid-ui/components/menu"),require("solid-ui/components/menu-item");var a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,A,j,M,N,P,F;function I(e,t,n){L(e,t),t.set(e,n)}function L(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}function R(e,t,n){return e.set(B(e,t),n),n}function z(e,t){return e.get(B(e,t))}function B(e,t,n){if(typeof e==`function`?e===t:e.has(t))return arguments.length<3?t:n;throw TypeError(`Private element is not present on this object`)}function V(e,t,n){return(t=U(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function H(e,t,n,r,i,a){function o(e,t,n){return function(r,i){return n&&n(r),e[t].call(r,i)}}function s(e,t){for(var n=0;n<e.length;n++)e[n].call(t);return t}function c(e,t,n,r){if(typeof e!=`function`&&(r||e!==void 0))throw TypeError(t+` must `+(n||`be`)+` a function`+(r?``:` or undefined`));return e}function l(e,t,n,r,i,a,s,l,u,d,f,p,m){function h(e){if(!m(e))throw TypeError(`Attempted to access private element on non-instance`)}var g,_=t[0],v=t[3],y=!l;if(!y){n||Array.isArray(_)||(_=[_]);var b={},x=[],S=i===3?`get`:i===4||p?`set`:`value`;d?(f||p?b={get:G(function(){return v(this)},r,`get`),set:function(e){t[4](this,e)}}:b[S]=v,f||G(b[S],r,i===2?``:S)):f||(b=Object.getOwnPropertyDescriptor(e,r))}for(var C=e,w=_.length-1;w>=0;w-=n?2:1){var T=_[w],E=n?_[w-1]:void 0,D={},O={kind:[`field`,`accessor`,`method`,`getter`,`setter`,`class`][i],name:r,metadata:a,addInitializer:function(e,t){if(e.v)throw Error(`attempted to call addInitializer after decoration was finished`);c(t,`An initializer`,`be`,!0),s.push(t)}.bind(null,D)};try{if(y)(g=c(T.call(E,C,O),`class decorators`,`return`))&&(C=g);else{var k,A;O.static=u,O.private=d,d?i===2?k=function(e){return h(e),b.value}:(i<4&&(k=o(b,`get`,h)),i!==3&&(A=o(b,`set`,h))):(k=function(e){return e[r]},(i<2||i===4)&&(A=function(e,t){e[r]=t}));var j=O.access={has:d?m.bind():function(e){return r in e}};if(k&&(j.get=k),A&&(j.set=A),C=T.call(E,p?{get:b.get,set:b.set}:b[S],O),p){if(typeof C==`object`&&C)(g=c(C.get,`accessor.get`))&&(b.get=g),(g=c(C.set,`accessor.set`))&&(b.set=g),(g=c(C.init,`accessor.init`))&&x.push(g);else if(C!==void 0)throw TypeError(`accessor decorators must return an object with get, set, or init properties or void 0`)}else c(C,(f?`field`:`method`)+` decorators`,`return`)&&(f?x.push(C):b[S]=C)}}finally{D.v=!0}}return(f||p)&&l.push(function(e,t){for(var n=x.length-1;n>=0;n--)t=x[n].call(e,t);return t}),f||y||(d?p?l.push(o(b,`get`),o(b,`set`)):l.push(i===2?b[S]:o.call.bind(b[S])):Object.defineProperty(e,r,b)),C}function u(e,t){return Object.defineProperty(e,Symbol.metadata||Symbol.for(`Symbol.metadata`),{configurable:!0,enumerable:!0,value:t})}if(arguments.length>=6)var d=a[Symbol.metadata||Symbol.for(`Symbol.metadata`)];var f=Object.create(d??null),p=function(e,t,n,r){var i,a,o=[],c=function(t){return K(t)===e},u=new Map;function d(e){e&&o.push(s.bind(null,e))}for(var f=0;f<t.length;f++){var p=t[f];if(Array.isArray(p)){var m=p[1],h=p[2],g=p.length>3,_=16&m,v=!!(8&m),y=(m&=7)==0,b=h+`/`+v;if(!y&&!g){var x=u.get(b);if(!0===x||x===3&&m!==4||x===4&&m!==3)throw Error(`Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: `+h);u.set(b,!(m>2)||m)}l(v?e:e.prototype,p,_,g?`#`+h:U(h),m,r,v?a||=[]:i||=[],o,v,g,y,m===1,v&&g?c:n)}}return d(i),d(a),o}(e,t,i,f);return n.length||u(e,f),{e:p,get c(){var t=[];return n.length&&[u(l(e,[n],r,e.name,5,f,t),f),s.bind(null,t,e)]}}}function U(e){var t=W(e,`string`);return typeof t==`symbol`?t:t+``}function W(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function G(e,t,n){typeof t==`symbol`&&(t=(t=t.description)?`[`+t+`]`:``);try{Object.defineProperty(e,"name",{configurable:!0,value:n?n+` `+t:t})}catch{}return e}function K(e){if(Object(e)!==e)throw TypeError(`right-hand side of 'in' should be an object, got `+(e===null?`null`:typeof e));return e}function q(e){return e}_=[(0,r.customElement)(`resource-actions-menu`)];var J;new(P=(s=new WeakMap,c=new WeakMap,l=new WeakMap,u=new WeakMap,d=new WeakMap,f=new WeakMap,p=new WeakMap,m=new WeakMap,F=(v=(0,r.property)({attribute:!1}),b=(0,r.property)({type:String}),S=(0,r.property)({attribute:!1}),w=(0,r.property)({attribute:!1}),E=(0,r.property)({type:Boolean}),O=(0,r.property)({type:Boolean}),A=(0,r.property)({type:Boolean}),M=(0,r.property)({attribute:!1}),`store`),o=class extends n.WebComponent{constructor(...e){super(...e),I(this,s,(h(this),y(this))),I(this,c,x(this)),I(this,l,C(this,void 0)),I(this,u,T(this,void 0)),I(this,d,D(this,!1)),I(this,f,k(this,!1)),I(this,p,j(this,!1)),I(this,m,N(this,[]))}get[F](){return z(s,this)}set store(e){R(s,this,e)}get subjectUri(){return z(c,this)}set subjectUri(e){R(c,this,e)}get handleAccessClick(){return z(l,this)}set handleAccessClick(e){R(l,this,e)}get handleEditingClick(){return z(u,this)}set handleEditingClick(e){R(u,this,e)}get paneSupportsEditing(){return z(d,this)}set paneSupportsEditing(e){R(d,this,e)}get canEdit(){return z(f,this)}set canEdit(e){R(f,this,e)}get isMobile(){return z(p,this)}set isMobile(e){R(p,this,e)}get menuItems(){return z(m,this)}set menuItems(e){R(m,this,e)}render(){let t=e.isContainerSubject(this.store,this.subjectUri),n=!t&&this.isMobile&&this.paneSupportsEditing&&this.canEdit&&!!this.handleEditingClick,r=!!this.handleAccessClick;return i.html`
1
+ const e=require("../../utils/podUtils.cjs.js");require("../../_virtual/~icons/lucide/pencil.cjs.js"),require("../../_virtual/~icons/lucide/ellipsis-vertical.cjs.js"),require("../../_virtual/~icons/lucide/user-round-cog.cjs.js");const t=require("./ResourceActionsMenu.styles.cjs.js");let n=require("solid-ui"),r=require("lit/decorators.js"),i=require("lit");require("solid-ui/components/button"),require("solid-ui/components/menu"),require("solid-ui/components/menu-item");var a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,A,j,M,N,P,F;function I(e,t,n){L(e,t),t.set(e,n)}function L(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}function R(e,t,n){return e.set(B(e,t),n),n}function z(e,t){return e.get(B(e,t))}function B(e,t,n){if(typeof e==`function`?e===t:e.has(t))return arguments.length<3?t:n;throw TypeError(`Private element is not present on this object`)}function V(e,t,n){return(t=U(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function H(e,t,n,r,i,a){function o(e,t,n){return function(r,i){return n&&n(r),e[t].call(r,i)}}function s(e,t){for(var n=0;n<e.length;n++)e[n].call(t);return t}function c(e,t,n,r){if(typeof e!=`function`&&(r||e!==void 0))throw TypeError(t+` must `+(n||`be`)+` a function`+(r?``:` or undefined`));return e}function l(e,t,n,r,i,a,s,l,u,d,f,p,m){function h(e){if(!m(e))throw TypeError(`Attempted to access private element on non-instance`)}var g,_=t[0],v=t[3],y=!l;if(!y){n||Array.isArray(_)||(_=[_]);var b={},x=[],S=i===3?`get`:i===4||p?`set`:`value`;d?(f||p?b={get:G(function(){return v(this)},r,`get`),set:function(e){t[4](this,e)}}:b[S]=v,f||G(b[S],r,i===2?``:S)):f||(b=Object.getOwnPropertyDescriptor(e,r))}for(var C=e,w=_.length-1;w>=0;w-=n?2:1){var T=_[w],E=n?_[w-1]:void 0,D={},O={kind:[`field`,`accessor`,`method`,`getter`,`setter`,`class`][i],name:r,metadata:a,addInitializer:function(e,t){if(e.v)throw Error(`attempted to call addInitializer after decoration was finished`);c(t,`An initializer`,`be`,!0),s.push(t)}.bind(null,D)};try{if(y)(g=c(T.call(E,C,O),`class decorators`,`return`))&&(C=g);else{var k,A;O.static=u,O.private=d,d?i===2?k=function(e){return h(e),b.value}:(i<4&&(k=o(b,`get`,h)),i!==3&&(A=o(b,`set`,h))):(k=function(e){return e[r]},(i<2||i===4)&&(A=function(e,t){e[r]=t}));var j=O.access={has:d?m.bind():function(e){return r in e}};if(k&&(j.get=k),A&&(j.set=A),C=T.call(E,p?{get:b.get,set:b.set}:b[S],O),p){if(typeof C==`object`&&C)(g=c(C.get,`accessor.get`))&&(b.get=g),(g=c(C.set,`accessor.set`))&&(b.set=g),(g=c(C.init,`accessor.init`))&&x.push(g);else if(C!==void 0)throw TypeError(`accessor decorators must return an object with get, set, or init properties or void 0`)}else c(C,(f?`field`:`method`)+` decorators`,`return`)&&(f?x.push(C):b[S]=C)}}finally{D.v=!0}}return(f||p)&&l.push(function(e,t){for(var n=x.length-1;n>=0;n--)t=x[n].call(e,t);return t}),f||y||(d?p?l.push(o(b,`get`),o(b,`set`)):l.push(i===2?b[S]:o.call.bind(b[S])):Object.defineProperty(e,r,b)),C}function u(e,t){return Object.defineProperty(e,Symbol.metadata||Symbol.for(`Symbol.metadata`),{configurable:!0,enumerable:!0,value:t})}if(arguments.length>=6)var d=a[Symbol.metadata||Symbol.for(`Symbol.metadata`)];var f=Object.create(d??null),p=function(e,t,n,r){var i,a,o=[],c=function(t){return K(t)===e},u=new Map;function d(e){e&&o.push(s.bind(null,e))}for(var f=0;f<t.length;f++){var p=t[f];if(Array.isArray(p)){var m=p[1],h=p[2],g=p.length>3,_=16&m,v=!!(8&m),y=(m&=7)==0,b=h+`/`+v;if(!y&&!g){var x=u.get(b);if(!0===x||x===3&&m!==4||x===4&&m!==3)throw Error(`Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: `+h);u.set(b,!(m>2)||m)}l(v?e:e.prototype,p,_,g?`#`+h:U(h),m,r,v?a||=[]:i||=[],o,v,g,y,m===1,v&&g?c:n)}}return d(i),d(a),o}(e,t,i,f);return n.length||u(e,f),{e:p,get c(){var t=[];return n.length&&[u(l(e,[n],r,e.name,5,f,t),f),s.bind(null,t,e)]}}}function U(e){var t=W(e,`string`);return typeof t==`symbol`?t:t+``}function W(e,t){if(typeof e!=`object`||!e)return e;var n;if(typeof Symbol<`u`&&(n=e[Symbol.toPrimitive])!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function G(e,t,n){typeof t==`symbol`&&(t=(t=t.description)?`[`+t+`]`:``);try{Object.defineProperty(e,"name",{configurable:!0,value:n?n+` `+t:t})}catch{}return e}function K(e){if(Object(e)!==e)throw TypeError(`right-hand side of 'in' should be an object, got `+(e===null?`null`:typeof e));return e}function q(e){return e}_=[(0,r.customElement)(`resource-actions-menu`)];var J;new(P=(s=new WeakMap,c=new WeakMap,l=new WeakMap,u=new WeakMap,d=new WeakMap,f=new WeakMap,p=new WeakMap,m=new WeakMap,F=(v=(0,r.property)({attribute:!1}),b=(0,r.property)({type:String}),S=(0,r.property)({attribute:!1}),w=(0,r.property)({attribute:!1}),E=(0,r.property)({type:Boolean}),O=(0,r.property)({type:Boolean}),A=(0,r.property)({type:Boolean}),M=(0,r.property)({attribute:!1}),`store`),o=class extends n.WebComponent{constructor(...e){super(...e),I(this,s,(h(this),y(this))),I(this,c,x(this)),I(this,l,C(this,void 0)),I(this,u,T(this,void 0)),I(this,d,D(this,!1)),I(this,f,k(this,!1)),I(this,p,j(this,!1)),I(this,m,N(this,[]))}get[F](){return z(s,this)}set store(e){R(s,this,e)}get subjectUri(){return z(c,this)}set subjectUri(e){R(c,this,e)}get handleAccessClick(){return z(l,this)}set handleAccessClick(e){R(l,this,e)}get handleEditingClick(){return z(u,this)}set handleEditingClick(e){R(u,this,e)}get paneSupportsEditing(){return z(d,this)}set paneSupportsEditing(e){R(d,this,e)}get canEdit(){return z(f,this)}set canEdit(e){R(f,this,e)}get isMobile(){return z(p,this)}set isMobile(e){R(p,this,e)}get menuItems(){return z(m,this)}set menuItems(e){R(m,this,e)}render(){let t=e.isContainerSubject(this.store,this.subjectUri),n=!t&&this.isMobile&&this.paneSupportsEditing&&this.canEdit&&!!this.handleEditingClick,r=!!this.handleAccessClick;return i.html`
2
2
  <solid-ui-menu>
3
3
  <solid-ui-button slot="trigger" class="file-explorer-header-more-button" variant="ghost" title="More options">
4
4
  <icon-lucide-ellipsis-vertical slot="icon" class="ellipsisIcon"></icon-lucide-ellipsis-vertical>
@@ -1 +1 @@
1
- {"version":3,"file":"ResourceActionsMenu.cjs.js","names":["WebComponent","customElement","property","html","nothing","styles","isContainerSubject","_classDecs","_ResourceActionsMenu","_ResourceActionsMenu2","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_ref","_storeDecs","attribute","_subjectUriDecs","type","String","_handleAccessClickDecs","_handleEditingClickDecs","_paneSupportsEditingDecs","Boolean","_canEditDecs","_isMobileDecs","_menuItemsDecs","_ResourceActionsMenu3","ResourceActionsMenu","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_store","_init_subjectUri","_init_handleAccessClick","undefined","_init_handleEditingClick","_init_paneSupportsEditing","_init_canEdit","_init_isMobile","_init_menuItems","_classPrivateFieldGet","store","v","_classPrivateFieldSet","subjectUri","handleAccessClick","handleEditingClick","paneSupportsEditing","canEdit","isMobile","menuItems","render","isContainerResource","canManageAccess","map","item","event","action","icon","label","e","c","_initClass","_applyDecs","_Class","_identity","_defineProperty","default"],"sources":["../../../src/components/resource-actions-menu/ResourceActionsMenu.ts"],"sourcesContent":["import { WebComponent } from 'solid-ui'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html, nothing } from 'lit'\nimport 'solid-ui/components/button'\nimport 'solid-ui/components/menu'\nimport 'solid-ui/components/menu-item'\nimport '~icons/lucide/ellipsis-vertical'\nimport '~icons/lucide/user-round-cog'\nimport '~icons/lucide/pencil'\nimport { LiveStore } from 'rdflib'\nimport styles from './ResourceActionsMenu.styles.css'\nimport { isContainerSubject } from '../../utils/podUtils'\n@customElement('resource-actions-menu')\nexport default class ResourceActionsMenu extends WebComponent {\n static styles = styles\n\n @property({ attribute: false })\n accessor store: LiveStore | undefined\n\n @property({ type: String })\n accessor subjectUri: string | undefined\n\n @property({ attribute: false })\n accessor handleAccessClick: (() => void) | undefined = undefined\n\n @property({ attribute: false })\n accessor handleEditingClick: (() => void) | undefined = undefined\n\n @property({ type: Boolean })\n accessor paneSupportsEditing = false\n\n @property({ type: Boolean })\n accessor canEdit = false\n\n @property({ type: Boolean })\n accessor isMobile = false\n\n @property({ attribute: false })\n accessor menuItems: Array<{ label: string, icon?: unknown, action: (event: Event) => void }> = []\n\n render () {\n const isContainerResource = isContainerSubject(this.store, this.subjectUri)\n const canEdit = !isContainerResource && this.isMobile && this.paneSupportsEditing && this.canEdit && !!this.handleEditingClick\n const canManageAccess = !!this.handleAccessClick\n return html`\n <solid-ui-menu>\n <solid-ui-button slot=\"trigger\" class=\"file-explorer-header-more-button\" variant=\"ghost\" title=\"More options\">\n <icon-lucide-ellipsis-vertical slot=\"icon\" class=\"ellipsisIcon\"></icon-lucide-ellipsis-vertical>\n </solid-ui-button>\n ${this.menuItems.map(item => html`\n <solid-ui-menu-item @solid-ui-select=${(event: Event) => item.action(event)}>\n ${item.icon}\n ${item.label}\n </solid-ui-menu-item>\n `)}\n ${canEdit\n ? html`\n <solid-ui-menu-item @solid-ui-select=${this.handleEditingClick}>\n <icon-lucide-pencil slot=\"left-icon\"></icon-lucide-pencil>\n Edit\n </solid-ui-menu-item>\n `\n : nothing}\n ${!isContainerResource && this.isMobile && canManageAccess\n ? html`\n <solid-ui-menu-item @solid-ui-select=${this.handleAccessClick}>\n <icon-lucide-user-round-cog slot=\"left-icon\"></icon-lucide-user-round-cog>\n Manage Access\n </solid-ui-menu-item>\n `\n : nothing}\n ${isContainerResource && canManageAccess\n ? html`\n <solid-ui-menu-item @solid-ui-select=${this.handleAccessClick}>\n <icon-lucide-user-round-cog slot=\"left-icon\"></icon-lucide-user-round-cog>\n Manage Access\n </solid-ui-menu-item>\n `\n : nothing}\n </solid-ui-menu>\n `\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ResourceActionsMenu.cjs.js","names":["WebComponent","customElement","property","html","nothing","styles","isContainerSubject","_classDecs","_ResourceActionsMenu","_ResourceActionsMenu2","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_ref","_storeDecs","attribute","_subjectUriDecs","type","String","_handleAccessClickDecs","_handleEditingClickDecs","_paneSupportsEditingDecs","Boolean","_canEditDecs","_isMobileDecs","_menuItemsDecs","_ResourceActionsMenu3","ResourceActionsMenu","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_store","_init_subjectUri","_init_handleAccessClick","undefined","_init_handleEditingClick","_init_paneSupportsEditing","_init_canEdit","_init_isMobile","_init_menuItems","_classPrivateFieldGet","store","v","_classPrivateFieldSet","subjectUri","handleAccessClick","handleEditingClick","paneSupportsEditing","canEdit","isMobile","menuItems","render","isContainerResource","canManageAccess","map","item","event","action","icon","label","e","c","_initClass","_applyDecs","_Class","_identity","_defineProperty","default","customElement","property","WebComponent","isContainerSubject","nothing","styles","require_podUtils","require_ResourceActionsMenu_styles","solid_ui","lit_decorators_js","lit","_Class","_ResourceActionsMenu3","_A","_B","_C","_D","_E","_F","_G","_H","_initProto","_initClass","_classDecs","_storeDecs","_init_store","_subjectUriDecs","_init_subjectUri","_handleAccessClickDecs","_init_handleAccessClick","_handleEditingClickDecs","_init_handleEditingClick","_paneSupportsEditingDecs","_init_paneSupportsEditing","_canEditDecs","_init_canEdit","_isMobileDecs","_init_isMobile","_menuItemsDecs","_init_menuItems","_ResourceActionsMenu2","_ref","_classPrivateFieldInitSpec","_checkPrivateRedeclaration","a","_classPrivateFieldSet","s","_assertClassBrand","r","_classPrivateFieldGet","_defineProperty","_toPropertyKey","t","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","f","p","_setFunctionName","P","j","D","I","F","l","N","_checkInRHS","_toPrimitive","e","_identity","_ResourceActionsMenu","args","isContainerResource","canEdit","canManageAccess","item","event"],"sources":["../../../src/components/resource-actions-menu/ResourceActionsMenu.ts"],"sourcesContent":["import { WebComponent } from 'solid-ui'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html, nothing } from 'lit'\nimport 'solid-ui/components/button'\nimport 'solid-ui/components/menu'\nimport 'solid-ui/components/menu-item'\nimport '~icons/lucide/ellipsis-vertical'\nimport '~icons/lucide/user-round-cog'\nimport '~icons/lucide/pencil'\nimport { LiveStore } from 'rdflib'\nimport styles from './ResourceActionsMenu.styles.css'\nimport { isContainerSubject } from '../../utils/podUtils'\n@customElement('resource-actions-menu')\nexport default class ResourceActionsMenu extends WebComponent {\n static styles = styles\n\n @property({ attribute: false })\n accessor store: LiveStore | undefined\n\n @property({ type: String })\n accessor subjectUri: string | undefined\n\n @property({ attribute: false })\n accessor handleAccessClick: (() => void) | undefined = undefined\n\n @property({ attribute: false })\n accessor handleEditingClick: (() => void) | undefined = undefined\n\n @property({ type: Boolean })\n accessor paneSupportsEditing = false\n\n @property({ type: Boolean })\n accessor canEdit = false\n\n @property({ type: Boolean })\n accessor isMobile = false\n\n @property({ attribute: false })\n accessor menuItems: Array<{ label: string, icon?: unknown, action: (event: Event) => void }> = []\n\n render () {\n const isContainerResource = isContainerSubject(this.store, this.subjectUri)\n const canEdit = !isContainerResource && this.isMobile && this.paneSupportsEditing && this.canEdit && !!this.handleEditingClick\n const canManageAccess = !!this.handleAccessClick\n return html`\n <solid-ui-menu>\n <solid-ui-button slot=\"trigger\" class=\"file-explorer-header-more-button\" variant=\"ghost\" title=\"More options\">\n <icon-lucide-ellipsis-vertical slot=\"icon\" class=\"ellipsisIcon\"></icon-lucide-ellipsis-vertical>\n </solid-ui-button>\n ${this.menuItems.map(item => html`\n <solid-ui-menu-item @solid-ui-select=${(event: Event) => item.action(event)}>\n ${item.icon}\n ${item.label}\n </solid-ui-menu-item>\n `)}\n ${canEdit\n ? html`\n <solid-ui-menu-item @solid-ui-select=${this.handleEditingClick}>\n <icon-lucide-pencil slot=\"left-icon\"></icon-lucide-pencil>\n Edit\n </solid-ui-menu-item>\n `\n : nothing}\n ${!isContainerResource && this.isMobile && canManageAccess\n ? html`\n <solid-ui-menu-item @solid-ui-select=${this.handleAccessClick}>\n <icon-lucide-user-round-cog slot=\"left-icon\"></icon-lucide-user-round-cog>\n Manage Access\n </solid-ui-menu-item>\n `\n : nothing}\n ${isContainerResource && canManageAccess\n ? html`\n <solid-ui-menu-item @solid-ui-select=${this.handleAccessClick}>\n <icon-lucide-user-round-cog slot=\"left-icon\"></icon-lucide-user-round-cog>\n Manage Access\n </solid-ui-menu-item>\n `\n : nothing}\n </solid-ui-menu>\n `\n }\n}\n"],"mappings":"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"}
@@ -157,8 +157,8 @@ function G(e) {
157
157
  }
158
158
  function K(e, t) {
159
159
  if (typeof e != "object" || !e) return e;
160
- var n = e[Symbol.toPrimitive];
161
- if (n !== void 0) {
160
+ var n;
161
+ if (typeof Symbol < "u" && (n = e[Symbol.toPrimitive]) !== void 0) {
162
162
  var r = n.call(e, t || "default");
163
163
  if (typeof r != "object") return r;
164
164
  throw TypeError("@@toPrimitive must return a primitive value.");
@@ -1 +1 @@
1
- {"version":3,"file":"ResourceActionsMenu.esm.js","names":["WebComponent","customElement","property","html","nothing","styles","isContainerSubject","_classDecs","_ResourceActionsMenu","_ResourceActionsMenu2","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_ref","_storeDecs","attribute","_subjectUriDecs","type","String","_handleAccessClickDecs","_handleEditingClickDecs","_paneSupportsEditingDecs","Boolean","_canEditDecs","_isMobileDecs","_menuItemsDecs","_ResourceActionsMenu3","ResourceActionsMenu","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_store","_init_subjectUri","_init_handleAccessClick","undefined","_init_handleEditingClick","_init_paneSupportsEditing","_init_canEdit","_init_isMobile","_init_menuItems","_classPrivateFieldGet","store","v","_classPrivateFieldSet","subjectUri","handleAccessClick","handleEditingClick","paneSupportsEditing","canEdit","isMobile","menuItems","render","isContainerResource","canManageAccess","map","item","event","action","icon","label","e","c","_initClass","_applyDecs","_Class","_identity","_defineProperty","default"],"sources":["../../../src/components/resource-actions-menu/ResourceActionsMenu.ts"],"sourcesContent":["import { WebComponent } from 'solid-ui'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html, nothing } from 'lit'\nimport 'solid-ui/components/button'\nimport 'solid-ui/components/menu'\nimport 'solid-ui/components/menu-item'\nimport '~icons/lucide/ellipsis-vertical'\nimport '~icons/lucide/user-round-cog'\nimport '~icons/lucide/pencil'\nimport { LiveStore } from 'rdflib'\nimport styles from './ResourceActionsMenu.styles.css'\nimport { isContainerSubject } from '../../utils/podUtils'\n@customElement('resource-actions-menu')\nexport default class ResourceActionsMenu extends WebComponent {\n static styles = styles\n\n @property({ attribute: false })\n accessor store: LiveStore | undefined\n\n @property({ type: String })\n accessor subjectUri: string | undefined\n\n @property({ attribute: false })\n accessor handleAccessClick: (() => void) | undefined = undefined\n\n @property({ attribute: false })\n accessor handleEditingClick: (() => void) | undefined = undefined\n\n @property({ type: Boolean })\n accessor paneSupportsEditing = false\n\n @property({ type: Boolean })\n accessor canEdit = false\n\n @property({ type: Boolean })\n accessor isMobile = false\n\n @property({ attribute: false })\n accessor menuItems: Array<{ label: string, icon?: unknown, action: (event: Event) => void }> = []\n\n render () {\n const isContainerResource = isContainerSubject(this.store, this.subjectUri)\n const canEdit = !isContainerResource && this.isMobile && this.paneSupportsEditing && this.canEdit && !!this.handleEditingClick\n const canManageAccess = !!this.handleAccessClick\n return html`\n <solid-ui-menu>\n <solid-ui-button slot=\"trigger\" class=\"file-explorer-header-more-button\" variant=\"ghost\" title=\"More options\">\n <icon-lucide-ellipsis-vertical slot=\"icon\" class=\"ellipsisIcon\"></icon-lucide-ellipsis-vertical>\n </solid-ui-button>\n ${this.menuItems.map(item => html`\n <solid-ui-menu-item @solid-ui-select=${(event: Event) => item.action(event)}>\n ${item.icon}\n ${item.label}\n </solid-ui-menu-item>\n `)}\n ${canEdit\n ? html`\n <solid-ui-menu-item @solid-ui-select=${this.handleEditingClick}>\n <icon-lucide-pencil slot=\"left-icon\"></icon-lucide-pencil>\n Edit\n </solid-ui-menu-item>\n `\n : nothing}\n ${!isContainerResource && this.isMobile && canManageAccess\n ? html`\n <solid-ui-menu-item @solid-ui-select=${this.handleAccessClick}>\n <icon-lucide-user-round-cog slot=\"left-icon\"></icon-lucide-user-round-cog>\n Manage Access\n </solid-ui-menu-item>\n `\n : nothing}\n ${isContainerResource && canManageAccess\n ? html`\n <solid-ui-menu-item @solid-ui-select=${this.handleAccessClick}>\n <icon-lucide-user-round-cog slot=\"left-icon\"></icon-lucide-user-round-cog>\n Manage Access\n </solid-ui-menu-item>\n `\n : nothing}\n </solid-ui-menu>\n `\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ResourceActionsMenu.esm.js","names":["WebComponent","customElement","property","html","nothing","styles","isContainerSubject","_classDecs","_ResourceActionsMenu","_ResourceActionsMenu2","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_ref","_storeDecs","attribute","_subjectUriDecs","type","String","_handleAccessClickDecs","_handleEditingClickDecs","_paneSupportsEditingDecs","Boolean","_canEditDecs","_isMobileDecs","_menuItemsDecs","_ResourceActionsMenu3","ResourceActionsMenu","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_store","_init_subjectUri","_init_handleAccessClick","undefined","_init_handleEditingClick","_init_paneSupportsEditing","_init_canEdit","_init_isMobile","_init_menuItems","_classPrivateFieldGet","store","v","_classPrivateFieldSet","subjectUri","handleAccessClick","handleEditingClick","paneSupportsEditing","canEdit","isMobile","menuItems","render","isContainerResource","canManageAccess","map","item","event","action","icon","label","e","c","_initClass","_applyDecs","_Class","_identity","_defineProperty","default","customElement","styles","ResourceActionsMenu_styles_default","customElement$1","_Class","_ResourceActionsMenu3","_A","_B","_C","_D","_E","_F","_G","_H","_initProto","_initClass","_classDecs","_storeDecs","_init_store","_subjectUriDecs","_init_subjectUri","_handleAccessClickDecs","_init_handleAccessClick","_handleEditingClickDecs","_init_handleEditingClick","_paneSupportsEditingDecs","_init_paneSupportsEditing","_canEditDecs","_init_canEdit","_isMobileDecs","_init_isMobile","_menuItemsDecs","_init_menuItems","_ResourceActionsMenu2","_ref","_classPrivateFieldInitSpec","a","_checkPrivateRedeclaration","_classPrivateFieldSet","s","_assertClassBrand","r","_classPrivateFieldGet","_defineProperty","_toPropertyKey","t","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","p","_setFunctionName","P","j","D","I","F","l","f","N","_checkInRHS","_toPrimitive","e","_identity","_ResourceActionsMenu","property","WebComponent","args","isContainerResource","isContainerSubject","canEdit","canManageAccess","item","event","nothing"],"sources":["../../../src/components/resource-actions-menu/ResourceActionsMenu.ts"],"sourcesContent":["import { WebComponent } from 'solid-ui'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html, nothing } from 'lit'\nimport 'solid-ui/components/button'\nimport 'solid-ui/components/menu'\nimport 'solid-ui/components/menu-item'\nimport '~icons/lucide/ellipsis-vertical'\nimport '~icons/lucide/user-round-cog'\nimport '~icons/lucide/pencil'\nimport { LiveStore } from 'rdflib'\nimport styles from './ResourceActionsMenu.styles.css'\nimport { isContainerSubject } from '../../utils/podUtils'\n@customElement('resource-actions-menu')\nexport default class ResourceActionsMenu extends WebComponent {\n static styles = styles\n\n @property({ attribute: false })\n accessor store: LiveStore | undefined\n\n @property({ type: String })\n accessor subjectUri: string | undefined\n\n @property({ attribute: false })\n accessor handleAccessClick: (() => void) | undefined = undefined\n\n @property({ attribute: false })\n accessor handleEditingClick: (() => void) | undefined = undefined\n\n @property({ type: Boolean })\n accessor paneSupportsEditing = false\n\n @property({ type: Boolean })\n accessor canEdit = false\n\n @property({ type: Boolean })\n accessor isMobile = false\n\n @property({ attribute: false })\n accessor menuItems: Array<{ label: string, icon?: unknown, action: (event: Event) => void }> = []\n\n render () {\n const isContainerResource = isContainerSubject(this.store, this.subjectUri)\n const canEdit = !isContainerResource && this.isMobile && this.paneSupportsEditing && this.canEdit && !!this.handleEditingClick\n const canManageAccess = !!this.handleAccessClick\n return html`\n <solid-ui-menu>\n <solid-ui-button slot=\"trigger\" class=\"file-explorer-header-more-button\" variant=\"ghost\" title=\"More options\">\n <icon-lucide-ellipsis-vertical slot=\"icon\" class=\"ellipsisIcon\"></icon-lucide-ellipsis-vertical>\n </solid-ui-button>\n ${this.menuItems.map(item => html`\n <solid-ui-menu-item @solid-ui-select=${(event: Event) => item.action(event)}>\n ${item.icon}\n ${item.label}\n </solid-ui-menu-item>\n `)}\n ${canEdit\n ? html`\n <solid-ui-menu-item @solid-ui-select=${this.handleEditingClick}>\n <icon-lucide-pencil slot=\"left-icon\"></icon-lucide-pencil>\n Edit\n </solid-ui-menu-item>\n `\n : nothing}\n ${!isContainerResource && this.isMobile && canManageAccess\n ? html`\n <solid-ui-menu-item @solid-ui-select=${this.handleAccessClick}>\n <icon-lucide-user-round-cog slot=\"left-icon\"></icon-lucide-user-round-cog>\n Manage Access\n </solid-ui-menu-item>\n `\n : nothing}\n ${isContainerResource && canManageAccess\n ? html`\n <solid-ui-menu-item @solid-ui-select=${this.handleAccessClick}>\n <icon-lucide-user-round-cog slot=\"left-icon\"></icon-lucide-user-round-cog>\n Manage Access\n </solid-ui-menu-item>\n `\n : nothing}\n </solid-ui-menu>\n `\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ResourceActionsMenu.styles.cjs.js","names":[],"sources":["../../../src/components/resource-actions-menu/ResourceActionsMenu.styles.css"],"sourcesContent":[":host {\n .file-explorer-header-more-button {\n width: var(--solid-ui-clickable-area, 42px);\n height: var(--solid-ui-clickable-area, 42px);\n padding: 0;\n }\n\n .ellipsisIcon {\n width: 16px;\n height: 16px;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"ResourceActionsMenu.styles.cjs.js","names":["ResourceActionsMenu_styles_default"],"sources":["../../../src/components/resource-actions-menu/ResourceActionsMenu.styles.css"],"sourcesContent":[":host {\n .file-explorer-header-more-button {\n width: var(--solid-ui-clickable-area, 42px);\n height: var(--solid-ui-clickable-area, 42px);\n padding: 0;\n }\n\n .ellipsisIcon {\n width: 16px;\n height: 16px;\n }\n}\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"ResourceActionsMenu.styles.esm.js","names":[],"sources":["../../../src/components/resource-actions-menu/ResourceActionsMenu.styles.css"],"sourcesContent":[":host {\n .file-explorer-header-more-button {\n width: var(--solid-ui-clickable-area, 42px);\n height: var(--solid-ui-clickable-area, 42px);\n padding: 0;\n }\n\n .ellipsisIcon {\n width: 16px;\n height: 16px;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"ResourceActionsMenu.styles.esm.js","names":["ResourceActionsMenu_styles_default"],"sources":["../../../src/components/resource-actions-menu/ResourceActionsMenu.styles.css"],"sourcesContent":[":host {\n .file-explorer-header-more-button {\n width: var(--solid-ui-clickable-area, 42px);\n height: var(--solid-ui-clickable-area, 42px);\n padding: 0;\n }\n\n .ellipsisIcon {\n width: 16px;\n height: 16px;\n }\n}\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"basicPreferences.cjs.js","names":[],"sources":["../../src/dashboard/basicPreferences.ts"],"sourcesContent":["import { PaneDefinition } from 'pane-registry'\nimport { IndexedFormula, NamedNode, parse, Store } from 'rdflib'\nimport { icons, login, ns, widgets } from 'solid-ui'\nimport ontologyData from './ontologyData.ttl'\nimport preferencesFormText from './preferencesFormText.ttl'\n\nexport const basicPreferencesPane: PaneDefinition = {\n icon: icons.iconBase + 'noun_Sliders_341315_000000.svg',\n name: 'basicPreferences',\n label: _subject => {\n return null\n },\n\n // Render the pane\n // The subject should be the logged in user.\n render: (subject, context) => {\n const dom = context.dom\n // @ts-ignore\n const store = context.session.store as Store\n\n function complainIfBad (ok: Boolean, mess: any) {\n if (ok) return\n container.appendChild(widgets.errorMessageBlock(dom, mess, '#fee'))\n }\n\n const container = dom.createElement('div')\n\n const formArea = setupUserTypesSection(container, dom)\n\n function loadData (doc: NamedNode, turtle: String) {\n doc = doc.doc() // remove # from URI if nec\n if (!store.holds(undefined, undefined, undefined, doc)) {\n // If not loaded already\n ;(parse as any)(turtle, store, doc.uri, 'text/turtle', null) // Load form directly\n }\n }\n\n const preferencesForm = store.sym(\n 'urn:uuid:93774ba1-d3b6-41f2-85b6-4ae27ffd2597#this'\n )\n loadData(preferencesForm, preferencesFormText)\n\n const ontologyExtra = store.sym(\n 'urn:uuid:93774ba1-d3b6-41f2-85b6-4ae27ffd2597-ONT'\n )\n loadData(ontologyExtra, ontologyData)\n\n async function doRender () {\n const renderContext = await login.ensureLoadedPreferences({\n dom,\n div: container\n })\n if (!renderContext.preferencesFile) {\n // Could be CORS\n console.log(\n 'Not doing private class preferences as no access to preferences file. ' +\n renderContext.preferencesFileError\n )\n return\n }\n const appendedForm = widgets.appendForm(\n dom,\n formArea,\n {},\n renderContext.me,\n preferencesForm,\n renderContext.preferencesFile,\n complainIfBad\n )\n appendedForm.style.borderStyle = 'none'\n\n const trustedApplicationsView = context.session.paneRegistry.byName('trustedApplications')\n if (trustedApplicationsView) {\n container.appendChild(trustedApplicationsView.render(null, context))\n }\n\n // @@ TODO Remove need for casting as any and bang (!) syntax\n addDeleteSection(container, store, renderContext.me!, dom)\n }\n\n doRender()\n\n return container\n }\n}\n\nfunction setupUserTypesSection (\n container: Element,\n dom: HTMLDocument\n): Element {\n const formContainer = createSection(container, dom, 'User types')\n\n const description = formContainer.appendChild(dom.createElement('p'))\n description.innerText = 'Here you can self-assign user types to help the data browser know which views you would like to access.'\n\n const userTypesLink = formContainer.appendChild(dom.createElement('a'))\n userTypesLink.href = 'https://github.com/solidos/userguide/#role'\n userTypesLink.innerText = 'Read more'\n\n const formArea = formContainer.appendChild(dom.createElement('div'))\n\n return formArea\n}\n\nexport default basicPreferencesPane\n\n// ends\n\nfunction addDeleteSection (\n container: HTMLElement,\n store: IndexedFormula,\n profile: NamedNode,\n dom: HTMLDocument\n): void {\n const section = createSection(container, dom, 'Delete account')\n\n const podServerNodes = store.each(profile, ns.space('storage'), null, profile.doc())\n const podServers = podServerNodes.map(node => node.value)\n\n const list = section.appendChild(dom.createElement('ul'))\n\n podServers.forEach(async server => {\n const deletionLink = await generateDeletionLink(server, dom)\n if (deletionLink) {\n const listItem = list.appendChild(dom.createElement('li'))\n listItem.appendChild(deletionLink)\n }\n })\n}\n\nasync function generateDeletionLink (\n podServer: string,\n dom: HTMLDocument\n): Promise<HTMLElement | null> {\n const link = dom.createElement('a')\n link.textContent = `Delete your account at ${podServer}`\n const deletionUrl = await getDeletionUrlForServer(podServer)\n if (typeof deletionUrl !== 'string') {\n return null\n }\n link.href = deletionUrl\n return link\n}\n\n/**\n * Hacky way to get the deletion link to a Pod\n *\n * This function infers the deletion link by assuming the URL structure of Node Solid server.\n * In the future, Solid will hopefully provide a standardised way of discovering the deletion link:\n * https://github.com/solidos/data-interoperability-panel/issues/18\n *\n * If NSS is in multi-user mode (the case on inrupt.net and solid.community), the deletion URL for\n * vincent.dev.inrupt.net would be at dev.inrupt.net/account/delete. In single-user mode, the\n * deletion URL would be at vincent.dev.inrupt.net/account/delete.\n *\n * @param server Pod server containing the user's account.\n * @returns URL of the page that Node Solid Server would offer to delete the account, or null if\n * the URLs we tried give invalid responses.\n */\nasync function getDeletionUrlForServer (\n server: string\n): Promise<string | null> {\n const singleUserUrl = new URL(server)\n const multiUserUrl = new URL(server)\n multiUserUrl.pathname = singleUserUrl.pathname = '/account/delete'\n\n const hostnameParts = multiUserUrl.hostname.split('.')\n // Remove `vincent.` from `vincent.dev.inrupt.net`, for example:\n multiUserUrl.hostname = hostnameParts.slice(1).join('.')\n\n const multiUserNssResponse = await fetch(multiUserUrl.href, {\n method: 'HEAD'\n })\n if (multiUserNssResponse.ok) {\n return multiUserUrl.href\n }\n\n const singleUserNssResponse = await fetch(singleUserUrl.href, {\n method: 'HEAD'\n })\n if (singleUserNssResponse.ok) {\n return singleUserUrl.href\n }\n return null\n}\n\nfunction createSection (\n container: Element,\n dom: HTMLDocument,\n title: string\n): Element {\n const section = container.appendChild(dom.createElement('div'))\n section.style.border = '0.3em solid #418d99'\n section.style.borderRadius = '0.5em'\n section.style.padding = '0.7em'\n section.style.marginTop = '0.7em'\n\n const titleElement = section.appendChild(dom.createElement('h3'))\n titleElement.innerText = title\n\n return section\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"basicPreferences.cjs.js","names":["icons","widgets","preferencesFormText","ontologyData","login","ns","require_ontologyData","require_preferencesFormText","solid_ui","rdflib","basicPreferencesPane","dom","context","store","complainIfBad","ok","container","mess","formArea","setupUserTypesSection","loadData","doc","turtle","preferencesForm","doRender","renderContext","appendedForm","trustedApplicationsView","addDeleteSection","formContainer","createSection","description","userTypesLink","section","podServers","profile","node","list","deletionLink","generateDeletionLink","server","link","podServer","deletionUrl","getDeletionUrlForServer","singleUserUrl","multiUserUrl","titleElement","title"],"sources":["../../src/dashboard/basicPreferences.ts"],"sourcesContent":["import { PaneDefinition } from 'pane-registry'\nimport { IndexedFormula, NamedNode, parse, Store } from 'rdflib'\nimport { icons, login, ns, widgets } from 'solid-ui'\nimport ontologyData from './ontologyData.ttl'\nimport preferencesFormText from './preferencesFormText.ttl'\n\nexport const basicPreferencesPane: PaneDefinition = {\n icon: icons.iconBase + 'noun_Sliders_341315_000000.svg',\n name: 'basicPreferences',\n label: _subject => {\n return null\n },\n\n // Render the pane\n // The subject should be the logged in user.\n render: (subject, context) => {\n const dom = context.dom\n // @ts-ignore\n const store = context.session.store as Store\n\n function complainIfBad (ok: Boolean, mess: any) {\n if (ok) return\n container.appendChild(widgets.errorMessageBlock(dom, mess, '#fee'))\n }\n\n const container = dom.createElement('div')\n\n const formArea = setupUserTypesSection(container, dom)\n\n function loadData (doc: NamedNode, turtle: String) {\n doc = doc.doc() // remove # from URI if nec\n if (!store.holds(undefined, undefined, undefined, doc)) {\n // If not loaded already\n ;(parse as any)(turtle, store, doc.uri, 'text/turtle', null) // Load form directly\n }\n }\n\n const preferencesForm = store.sym(\n 'urn:uuid:93774ba1-d3b6-41f2-85b6-4ae27ffd2597#this'\n )\n loadData(preferencesForm, preferencesFormText)\n\n const ontologyExtra = store.sym(\n 'urn:uuid:93774ba1-d3b6-41f2-85b6-4ae27ffd2597-ONT'\n )\n loadData(ontologyExtra, ontologyData)\n\n async function doRender () {\n const renderContext = await login.ensureLoadedPreferences({\n dom,\n div: container\n })\n if (!renderContext.preferencesFile) {\n // Could be CORS\n console.log(\n 'Not doing private class preferences as no access to preferences file. ' +\n renderContext.preferencesFileError\n )\n return\n }\n const appendedForm = widgets.appendForm(\n dom,\n formArea,\n {},\n renderContext.me,\n preferencesForm,\n renderContext.preferencesFile,\n complainIfBad\n )\n appendedForm.style.borderStyle = 'none'\n\n const trustedApplicationsView = context.session.paneRegistry.byName('trustedApplications')\n if (trustedApplicationsView) {\n container.appendChild(trustedApplicationsView.render(null, context))\n }\n\n // @@ TODO Remove need for casting as any and bang (!) syntax\n addDeleteSection(container, store, renderContext.me!, dom)\n }\n\n doRender()\n\n return container\n }\n}\n\nfunction setupUserTypesSection (\n container: Element,\n dom: HTMLDocument\n): Element {\n const formContainer = createSection(container, dom, 'User types')\n\n const description = formContainer.appendChild(dom.createElement('p'))\n description.innerText = 'Here you can self-assign user types to help the data browser know which views you would like to access.'\n\n const userTypesLink = formContainer.appendChild(dom.createElement('a'))\n userTypesLink.href = 'https://github.com/solidos/userguide/#role'\n userTypesLink.innerText = 'Read more'\n\n const formArea = formContainer.appendChild(dom.createElement('div'))\n\n return formArea\n}\n\nexport default basicPreferencesPane\n\n// ends\n\nfunction addDeleteSection (\n container: HTMLElement,\n store: IndexedFormula,\n profile: NamedNode,\n dom: HTMLDocument\n): void {\n const section = createSection(container, dom, 'Delete account')\n\n const podServerNodes = store.each(profile, ns.space('storage'), null, profile.doc())\n const podServers = podServerNodes.map(node => node.value)\n\n const list = section.appendChild(dom.createElement('ul'))\n\n podServers.forEach(async server => {\n const deletionLink = await generateDeletionLink(server, dom)\n if (deletionLink) {\n const listItem = list.appendChild(dom.createElement('li'))\n listItem.appendChild(deletionLink)\n }\n })\n}\n\nasync function generateDeletionLink (\n podServer: string,\n dom: HTMLDocument\n): Promise<HTMLElement | null> {\n const link = dom.createElement('a')\n link.textContent = `Delete your account at ${podServer}`\n const deletionUrl = await getDeletionUrlForServer(podServer)\n if (typeof deletionUrl !== 'string') {\n return null\n }\n link.href = deletionUrl\n return link\n}\n\n/**\n * Hacky way to get the deletion link to a Pod\n *\n * This function infers the deletion link by assuming the URL structure of Node Solid server.\n * In the future, Solid will hopefully provide a standardised way of discovering the deletion link:\n * https://github.com/solidos/data-interoperability-panel/issues/18\n *\n * If NSS is in multi-user mode (the case on inrupt.net and solid.community), the deletion URL for\n * vincent.dev.inrupt.net would be at dev.inrupt.net/account/delete. In single-user mode, the\n * deletion URL would be at vincent.dev.inrupt.net/account/delete.\n *\n * @param server Pod server containing the user's account.\n * @returns URL of the page that Node Solid Server would offer to delete the account, or null if\n * the URLs we tried give invalid responses.\n */\nasync function getDeletionUrlForServer (\n server: string\n): Promise<string | null> {\n const singleUserUrl = new URL(server)\n const multiUserUrl = new URL(server)\n multiUserUrl.pathname = singleUserUrl.pathname = '/account/delete'\n\n const hostnameParts = multiUserUrl.hostname.split('.')\n // Remove `vincent.` from `vincent.dev.inrupt.net`, for example:\n multiUserUrl.hostname = hostnameParts.slice(1).join('.')\n\n const multiUserNssResponse = await fetch(multiUserUrl.href, {\n method: 'HEAD'\n })\n if (multiUserNssResponse.ok) {\n return multiUserUrl.href\n }\n\n const singleUserNssResponse = await fetch(singleUserUrl.href, {\n method: 'HEAD'\n })\n if (singleUserNssResponse.ok) {\n return singleUserUrl.href\n }\n return null\n}\n\nfunction createSection (\n container: Element,\n dom: HTMLDocument,\n title: string\n): Element {\n const section = container.appendChild(dom.createElement('div'))\n section.style.border = '0.3em solid #418d99'\n section.style.borderRadius = '0.5em'\n section.style.padding = '0.7em'\n section.style.marginTop = '0.7em'\n\n const titleElement = section.appendChild(dom.createElement('h3'))\n titleElement.innerText = title\n\n return section\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"basicPreferences.esm.js","names":[],"sources":["../../src/dashboard/basicPreferences.ts"],"sourcesContent":["import { PaneDefinition } from 'pane-registry'\nimport { IndexedFormula, NamedNode, parse, Store } from 'rdflib'\nimport { icons, login, ns, widgets } from 'solid-ui'\nimport ontologyData from './ontologyData.ttl'\nimport preferencesFormText from './preferencesFormText.ttl'\n\nexport const basicPreferencesPane: PaneDefinition = {\n icon: icons.iconBase + 'noun_Sliders_341315_000000.svg',\n name: 'basicPreferences',\n label: _subject => {\n return null\n },\n\n // Render the pane\n // The subject should be the logged in user.\n render: (subject, context) => {\n const dom = context.dom\n // @ts-ignore\n const store = context.session.store as Store\n\n function complainIfBad (ok: Boolean, mess: any) {\n if (ok) return\n container.appendChild(widgets.errorMessageBlock(dom, mess, '#fee'))\n }\n\n const container = dom.createElement('div')\n\n const formArea = setupUserTypesSection(container, dom)\n\n function loadData (doc: NamedNode, turtle: String) {\n doc = doc.doc() // remove # from URI if nec\n if (!store.holds(undefined, undefined, undefined, doc)) {\n // If not loaded already\n ;(parse as any)(turtle, store, doc.uri, 'text/turtle', null) // Load form directly\n }\n }\n\n const preferencesForm = store.sym(\n 'urn:uuid:93774ba1-d3b6-41f2-85b6-4ae27ffd2597#this'\n )\n loadData(preferencesForm, preferencesFormText)\n\n const ontologyExtra = store.sym(\n 'urn:uuid:93774ba1-d3b6-41f2-85b6-4ae27ffd2597-ONT'\n )\n loadData(ontologyExtra, ontologyData)\n\n async function doRender () {\n const renderContext = await login.ensureLoadedPreferences({\n dom,\n div: container\n })\n if (!renderContext.preferencesFile) {\n // Could be CORS\n console.log(\n 'Not doing private class preferences as no access to preferences file. ' +\n renderContext.preferencesFileError\n )\n return\n }\n const appendedForm = widgets.appendForm(\n dom,\n formArea,\n {},\n renderContext.me,\n preferencesForm,\n renderContext.preferencesFile,\n complainIfBad\n )\n appendedForm.style.borderStyle = 'none'\n\n const trustedApplicationsView = context.session.paneRegistry.byName('trustedApplications')\n if (trustedApplicationsView) {\n container.appendChild(trustedApplicationsView.render(null, context))\n }\n\n // @@ TODO Remove need for casting as any and bang (!) syntax\n addDeleteSection(container, store, renderContext.me!, dom)\n }\n\n doRender()\n\n return container\n }\n}\n\nfunction setupUserTypesSection (\n container: Element,\n dom: HTMLDocument\n): Element {\n const formContainer = createSection(container, dom, 'User types')\n\n const description = formContainer.appendChild(dom.createElement('p'))\n description.innerText = 'Here you can self-assign user types to help the data browser know which views you would like to access.'\n\n const userTypesLink = formContainer.appendChild(dom.createElement('a'))\n userTypesLink.href = 'https://github.com/solidos/userguide/#role'\n userTypesLink.innerText = 'Read more'\n\n const formArea = formContainer.appendChild(dom.createElement('div'))\n\n return formArea\n}\n\nexport default basicPreferencesPane\n\n// ends\n\nfunction addDeleteSection (\n container: HTMLElement,\n store: IndexedFormula,\n profile: NamedNode,\n dom: HTMLDocument\n): void {\n const section = createSection(container, dom, 'Delete account')\n\n const podServerNodes = store.each(profile, ns.space('storage'), null, profile.doc())\n const podServers = podServerNodes.map(node => node.value)\n\n const list = section.appendChild(dom.createElement('ul'))\n\n podServers.forEach(async server => {\n const deletionLink = await generateDeletionLink(server, dom)\n if (deletionLink) {\n const listItem = list.appendChild(dom.createElement('li'))\n listItem.appendChild(deletionLink)\n }\n })\n}\n\nasync function generateDeletionLink (\n podServer: string,\n dom: HTMLDocument\n): Promise<HTMLElement | null> {\n const link = dom.createElement('a')\n link.textContent = `Delete your account at ${podServer}`\n const deletionUrl = await getDeletionUrlForServer(podServer)\n if (typeof deletionUrl !== 'string') {\n return null\n }\n link.href = deletionUrl\n return link\n}\n\n/**\n * Hacky way to get the deletion link to a Pod\n *\n * This function infers the deletion link by assuming the URL structure of Node Solid server.\n * In the future, Solid will hopefully provide a standardised way of discovering the deletion link:\n * https://github.com/solidos/data-interoperability-panel/issues/18\n *\n * If NSS is in multi-user mode (the case on inrupt.net and solid.community), the deletion URL for\n * vincent.dev.inrupt.net would be at dev.inrupt.net/account/delete. In single-user mode, the\n * deletion URL would be at vincent.dev.inrupt.net/account/delete.\n *\n * @param server Pod server containing the user's account.\n * @returns URL of the page that Node Solid Server would offer to delete the account, or null if\n * the URLs we tried give invalid responses.\n */\nasync function getDeletionUrlForServer (\n server: string\n): Promise<string | null> {\n const singleUserUrl = new URL(server)\n const multiUserUrl = new URL(server)\n multiUserUrl.pathname = singleUserUrl.pathname = '/account/delete'\n\n const hostnameParts = multiUserUrl.hostname.split('.')\n // Remove `vincent.` from `vincent.dev.inrupt.net`, for example:\n multiUserUrl.hostname = hostnameParts.slice(1).join('.')\n\n const multiUserNssResponse = await fetch(multiUserUrl.href, {\n method: 'HEAD'\n })\n if (multiUserNssResponse.ok) {\n return multiUserUrl.href\n }\n\n const singleUserNssResponse = await fetch(singleUserUrl.href, {\n method: 'HEAD'\n })\n if (singleUserNssResponse.ok) {\n return singleUserUrl.href\n }\n return null\n}\n\nfunction createSection (\n container: Element,\n dom: HTMLDocument,\n title: string\n): Element {\n const section = container.appendChild(dom.createElement('div'))\n section.style.border = '0.3em solid #418d99'\n section.style.borderRadius = '0.5em'\n section.style.padding = '0.7em'\n section.style.marginTop = '0.7em'\n\n const titleElement = section.appendChild(dom.createElement('h3'))\n titleElement.innerText = title\n\n return section\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"basicPreferences.esm.js","names":["preferencesFormText","ontologyData","ontologyData_default","preferencesFormText_default","basicPreferencesPane","icons","dom","context","store","complainIfBad","ok","container","widgets","mess","formArea","setupUserTypesSection","loadData","doc","parse","turtle","preferencesForm","doRender","renderContext","login","appendedForm","trustedApplicationsView","addDeleteSection","formContainer","createSection","description","userTypesLink","section","podServers","profile","ns","node","list","deletionLink","generateDeletionLink","server","link","podServer","deletionUrl","getDeletionUrlForServer","singleUserUrl","multiUserUrl","titleElement","title"],"sources":["../../src/dashboard/basicPreferences.ts"],"sourcesContent":["import { PaneDefinition } from 'pane-registry'\nimport { IndexedFormula, NamedNode, parse, Store } from 'rdflib'\nimport { icons, login, ns, widgets } from 'solid-ui'\nimport ontologyData from './ontologyData.ttl'\nimport preferencesFormText from './preferencesFormText.ttl'\n\nexport const basicPreferencesPane: PaneDefinition = {\n icon: icons.iconBase + 'noun_Sliders_341315_000000.svg',\n name: 'basicPreferences',\n label: _subject => {\n return null\n },\n\n // Render the pane\n // The subject should be the logged in user.\n render: (subject, context) => {\n const dom = context.dom\n // @ts-ignore\n const store = context.session.store as Store\n\n function complainIfBad (ok: Boolean, mess: any) {\n if (ok) return\n container.appendChild(widgets.errorMessageBlock(dom, mess, '#fee'))\n }\n\n const container = dom.createElement('div')\n\n const formArea = setupUserTypesSection(container, dom)\n\n function loadData (doc: NamedNode, turtle: String) {\n doc = doc.doc() // remove # from URI if nec\n if (!store.holds(undefined, undefined, undefined, doc)) {\n // If not loaded already\n ;(parse as any)(turtle, store, doc.uri, 'text/turtle', null) // Load form directly\n }\n }\n\n const preferencesForm = store.sym(\n 'urn:uuid:93774ba1-d3b6-41f2-85b6-4ae27ffd2597#this'\n )\n loadData(preferencesForm, preferencesFormText)\n\n const ontologyExtra = store.sym(\n 'urn:uuid:93774ba1-d3b6-41f2-85b6-4ae27ffd2597-ONT'\n )\n loadData(ontologyExtra, ontologyData)\n\n async function doRender () {\n const renderContext = await login.ensureLoadedPreferences({\n dom,\n div: container\n })\n if (!renderContext.preferencesFile) {\n // Could be CORS\n console.log(\n 'Not doing private class preferences as no access to preferences file. ' +\n renderContext.preferencesFileError\n )\n return\n }\n const appendedForm = widgets.appendForm(\n dom,\n formArea,\n {},\n renderContext.me,\n preferencesForm,\n renderContext.preferencesFile,\n complainIfBad\n )\n appendedForm.style.borderStyle = 'none'\n\n const trustedApplicationsView = context.session.paneRegistry.byName('trustedApplications')\n if (trustedApplicationsView) {\n container.appendChild(trustedApplicationsView.render(null, context))\n }\n\n // @@ TODO Remove need for casting as any and bang (!) syntax\n addDeleteSection(container, store, renderContext.me!, dom)\n }\n\n doRender()\n\n return container\n }\n}\n\nfunction setupUserTypesSection (\n container: Element,\n dom: HTMLDocument\n): Element {\n const formContainer = createSection(container, dom, 'User types')\n\n const description = formContainer.appendChild(dom.createElement('p'))\n description.innerText = 'Here you can self-assign user types to help the data browser know which views you would like to access.'\n\n const userTypesLink = formContainer.appendChild(dom.createElement('a'))\n userTypesLink.href = 'https://github.com/solidos/userguide/#role'\n userTypesLink.innerText = 'Read more'\n\n const formArea = formContainer.appendChild(dom.createElement('div'))\n\n return formArea\n}\n\nexport default basicPreferencesPane\n\n// ends\n\nfunction addDeleteSection (\n container: HTMLElement,\n store: IndexedFormula,\n profile: NamedNode,\n dom: HTMLDocument\n): void {\n const section = createSection(container, dom, 'Delete account')\n\n const podServerNodes = store.each(profile, ns.space('storage'), null, profile.doc())\n const podServers = podServerNodes.map(node => node.value)\n\n const list = section.appendChild(dom.createElement('ul'))\n\n podServers.forEach(async server => {\n const deletionLink = await generateDeletionLink(server, dom)\n if (deletionLink) {\n const listItem = list.appendChild(dom.createElement('li'))\n listItem.appendChild(deletionLink)\n }\n })\n}\n\nasync function generateDeletionLink (\n podServer: string,\n dom: HTMLDocument\n): Promise<HTMLElement | null> {\n const link = dom.createElement('a')\n link.textContent = `Delete your account at ${podServer}`\n const deletionUrl = await getDeletionUrlForServer(podServer)\n if (typeof deletionUrl !== 'string') {\n return null\n }\n link.href = deletionUrl\n return link\n}\n\n/**\n * Hacky way to get the deletion link to a Pod\n *\n * This function infers the deletion link by assuming the URL structure of Node Solid server.\n * In the future, Solid will hopefully provide a standardised way of discovering the deletion link:\n * https://github.com/solidos/data-interoperability-panel/issues/18\n *\n * If NSS is in multi-user mode (the case on inrupt.net and solid.community), the deletion URL for\n * vincent.dev.inrupt.net would be at dev.inrupt.net/account/delete. In single-user mode, the\n * deletion URL would be at vincent.dev.inrupt.net/account/delete.\n *\n * @param server Pod server containing the user's account.\n * @returns URL of the page that Node Solid Server would offer to delete the account, or null if\n * the URLs we tried give invalid responses.\n */\nasync function getDeletionUrlForServer (\n server: string\n): Promise<string | null> {\n const singleUserUrl = new URL(server)\n const multiUserUrl = new URL(server)\n multiUserUrl.pathname = singleUserUrl.pathname = '/account/delete'\n\n const hostnameParts = multiUserUrl.hostname.split('.')\n // Remove `vincent.` from `vincent.dev.inrupt.net`, for example:\n multiUserUrl.hostname = hostnameParts.slice(1).join('.')\n\n const multiUserNssResponse = await fetch(multiUserUrl.href, {\n method: 'HEAD'\n })\n if (multiUserNssResponse.ok) {\n return multiUserUrl.href\n }\n\n const singleUserNssResponse = await fetch(singleUserUrl.href, {\n method: 'HEAD'\n })\n if (singleUserNssResponse.ok) {\n return singleUserUrl.href\n }\n return null\n}\n\nfunction createSection (\n container: Element,\n dom: HTMLDocument,\n title: string\n): Element {\n const section = container.appendChild(dom.createElement('div'))\n section.style.border = '0.3em solid #418d99'\n section.style.borderRadius = '0.5em'\n section.style.padding = '0.7em'\n section.style.marginTop = '0.7em'\n\n const titleElement = section.appendChild(dom.createElement('h3'))\n titleElement.innerText = title\n\n return section\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dashboardPane.cjs.js","names":[],"sources":["../../src/dashboard/dashboardPane.ts"],"sourcesContent":["import { icons } from 'solid-ui'\nimport { authn, authSession, store } from 'solid-logic'\nimport { Fetcher, NamedNode } from 'rdflib'\nimport { generateHomepage } from './homepage'\nimport { DataBrowserContext, PaneDefinition } from 'pane-registry'\n\nexport const dashboardPane: PaneDefinition = {\n icon: icons.iconBase + 'noun_547570.svg',\n name: 'dashboard',\n label: subject => {\n if (subject.termType === 'NamedNode' && subject.uri === subject.site().uri) {\n return 'Dashboard'\n }\n return null\n },\n render: (subject, context) => {\n console.log('Dashboard Pane Render')\n const dom = context.dom\n const container = dom.createElement('div')\n const runBuildPage = () => {\n container.innerHTML = ''\n buildPage(\n container,\n authn.currentUser() || null,\n context,\n subject\n )\n }\n\n authSession.events.on('login', () => {\n // console.log('On Login')\n runBuildPage()\n })\n authSession.events.on('sessionRestore', () => {\n // console.log('On Session Restore')\n runBuildPage()\n })\n // console.log('Initial Load')\n runBuildPage()\n\n return container\n }\n}\n\nfunction buildPage (\n container: HTMLElement,\n webId: NamedNode | null,\n context: DataBrowserContext,\n subject: NamedNode | null\n) {\n const uri = (new URL(window.location.href)).searchParams.get('uri')\n\n if (uri && webId) {\n return buildDashboard(container, context)\n }\n\n if (!uri && subject) {\n return buildHomePage(container, subject)\n }\n\n if (!uri && !subject && webId) {\n return buildDashboard(container, context)\n }\n\n const fallbackSubject = subject || webId || store.sym(window.location.href)\n return buildHomePage(container, fallbackSubject)\n}\n\nfunction buildDashboard (container: HTMLElement, context: DataBrowserContext) {\n // console.log('build dashboard')\n // @@ TODO get a proper type\n const outliner: any = context.getOutliner(context.dom)\n outliner\n .getDashboard()\n .then((dashboard: HTMLElement) => container.appendChild(dashboard))\n}\n\nfunction buildHomePage (container: HTMLElement, subject: NamedNode) {\n // console.log('build home page')\n const wrapper = document.createElement('div')\n container.appendChild(wrapper)\n const shadow = wrapper.attachShadow({ mode: 'open' })\n const link = document.createElement('link')\n link.rel = 'stylesheet'\n link.href = '/common/css/bootstrap.min.css'\n shadow.appendChild(link)\n generateHomepage(subject, store, store.fetcher as Fetcher).then(homepage =>\n shadow.appendChild(homepage)\n )\n}\n\nexport default dashboardPane\n"],"mappings":"8EAOQ,EAAA,MAAM,SAAW"}
1
+ {"version":3,"file":"dashboardPane.cjs.js","names":["icons","authn","store","solid_ui"],"sources":["../../src/dashboard/dashboardPane.ts"],"sourcesContent":["import { icons } from 'solid-ui'\nimport { authn, authSession, store } from 'solid-logic'\nimport { Fetcher, NamedNode } from 'rdflib'\nimport { generateHomepage } from './homepage'\nimport { DataBrowserContext, PaneDefinition } from 'pane-registry'\n\nexport const dashboardPane: PaneDefinition = {\n icon: icons.iconBase + 'noun_547570.svg',\n name: 'dashboard',\n label: subject => {\n if (subject.termType === 'NamedNode' && subject.uri === subject.site().uri) {\n return 'Dashboard'\n }\n return null\n },\n render: (subject, context) => {\n console.log('Dashboard Pane Render')\n const dom = context.dom\n const container = dom.createElement('div')\n const runBuildPage = () => {\n container.innerHTML = ''\n buildPage(\n container,\n authn.currentUser() || null,\n context,\n subject\n )\n }\n\n authSession.events.on('login', () => {\n // console.log('On Login')\n runBuildPage()\n })\n authSession.events.on('sessionRestore', () => {\n // console.log('On Session Restore')\n runBuildPage()\n })\n // console.log('Initial Load')\n runBuildPage()\n\n return container\n }\n}\n\nfunction buildPage (\n container: HTMLElement,\n webId: NamedNode | null,\n context: DataBrowserContext,\n subject: NamedNode | null\n) {\n const uri = (new URL(window.location.href)).searchParams.get('uri')\n\n if (uri && webId) {\n return buildDashboard(container, context)\n }\n\n if (!uri && subject) {\n return buildHomePage(container, subject)\n }\n\n if (!uri && !subject && webId) {\n return buildDashboard(container, context)\n }\n\n const fallbackSubject = subject || webId || store.sym(window.location.href)\n return buildHomePage(container, fallbackSubject)\n}\n\nfunction buildDashboard (container: HTMLElement, context: DataBrowserContext) {\n // console.log('build dashboard')\n // @@ TODO get a proper type\n const outliner: any = context.getOutliner(context.dom)\n outliner\n .getDashboard()\n .then((dashboard: HTMLElement) => container.appendChild(dashboard))\n}\n\nfunction buildHomePage (container: HTMLElement, subject: NamedNode) {\n // console.log('build home page')\n const wrapper = document.createElement('div')\n container.appendChild(wrapper)\n const shadow = wrapper.attachShadow({ mode: 'open' })\n const link = document.createElement('link')\n link.rel = 'stylesheet'\n link.href = '/common/css/bootstrap.min.css'\n shadow.appendChild(link)\n generateHomepage(subject, store, store.fetcher as Fetcher).then(homepage =>\n shadow.appendChild(homepage)\n )\n}\n\nexport default dashboardPane\n"],"mappings":"A,8EAOQA,EAAAA,MAAM,SAAW"}
@@ -1 +1 @@
1
- {"version":3,"file":"dashboardPane.esm.js","names":[],"sources":["../../src/dashboard/dashboardPane.ts"],"sourcesContent":["import { icons } from 'solid-ui'\nimport { authn, authSession, store } from 'solid-logic'\nimport { Fetcher, NamedNode } from 'rdflib'\nimport { generateHomepage } from './homepage'\nimport { DataBrowserContext, PaneDefinition } from 'pane-registry'\n\nexport const dashboardPane: PaneDefinition = {\n icon: icons.iconBase + 'noun_547570.svg',\n name: 'dashboard',\n label: subject => {\n if (subject.termType === 'NamedNode' && subject.uri === subject.site().uri) {\n return 'Dashboard'\n }\n return null\n },\n render: (subject, context) => {\n console.log('Dashboard Pane Render')\n const dom = context.dom\n const container = dom.createElement('div')\n const runBuildPage = () => {\n container.innerHTML = ''\n buildPage(\n container,\n authn.currentUser() || null,\n context,\n subject\n )\n }\n\n authSession.events.on('login', () => {\n // console.log('On Login')\n runBuildPage()\n })\n authSession.events.on('sessionRestore', () => {\n // console.log('On Session Restore')\n runBuildPage()\n })\n // console.log('Initial Load')\n runBuildPage()\n\n return container\n }\n}\n\nfunction buildPage (\n container: HTMLElement,\n webId: NamedNode | null,\n context: DataBrowserContext,\n subject: NamedNode | null\n) {\n const uri = (new URL(window.location.href)).searchParams.get('uri')\n\n if (uri && webId) {\n return buildDashboard(container, context)\n }\n\n if (!uri && subject) {\n return buildHomePage(container, subject)\n }\n\n if (!uri && !subject && webId) {\n return buildDashboard(container, context)\n }\n\n const fallbackSubject = subject || webId || store.sym(window.location.href)\n return buildHomePage(container, fallbackSubject)\n}\n\nfunction buildDashboard (container: HTMLElement, context: DataBrowserContext) {\n // console.log('build dashboard')\n // @@ TODO get a proper type\n const outliner: any = context.getOutliner(context.dom)\n outliner\n .getDashboard()\n .then((dashboard: HTMLElement) => container.appendChild(dashboard))\n}\n\nfunction buildHomePage (container: HTMLElement, subject: NamedNode) {\n // console.log('build home page')\n const wrapper = document.createElement('div')\n container.appendChild(wrapper)\n const shadow = wrapper.attachShadow({ mode: 'open' })\n const link = document.createElement('link')\n link.rel = 'stylesheet'\n link.href = '/common/css/bootstrap.min.css'\n shadow.appendChild(link)\n generateHomepage(subject, store, store.fetcher as Fetcher).then(homepage =>\n shadow.appendChild(homepage)\n )\n}\n\nexport default dashboardPane\n"],"mappings":";;;AAOQ,EAAM,WAAW"}
1
+ {"version":3,"file":"dashboardPane.esm.js","names":["icons"],"sources":["../../src/dashboard/dashboardPane.ts"],"sourcesContent":["import { icons } from 'solid-ui'\nimport { authn, authSession, store } from 'solid-logic'\nimport { Fetcher, NamedNode } from 'rdflib'\nimport { generateHomepage } from './homepage'\nimport { DataBrowserContext, PaneDefinition } from 'pane-registry'\n\nexport const dashboardPane: PaneDefinition = {\n icon: icons.iconBase + 'noun_547570.svg',\n name: 'dashboard',\n label: subject => {\n if (subject.termType === 'NamedNode' && subject.uri === subject.site().uri) {\n return 'Dashboard'\n }\n return null\n },\n render: (subject, context) => {\n console.log('Dashboard Pane Render')\n const dom = context.dom\n const container = dom.createElement('div')\n const runBuildPage = () => {\n container.innerHTML = ''\n buildPage(\n container,\n authn.currentUser() || null,\n context,\n subject\n )\n }\n\n authSession.events.on('login', () => {\n // console.log('On Login')\n runBuildPage()\n })\n authSession.events.on('sessionRestore', () => {\n // console.log('On Session Restore')\n runBuildPage()\n })\n // console.log('Initial Load')\n runBuildPage()\n\n return container\n }\n}\n\nfunction buildPage (\n container: HTMLElement,\n webId: NamedNode | null,\n context: DataBrowserContext,\n subject: NamedNode | null\n) {\n const uri = (new URL(window.location.href)).searchParams.get('uri')\n\n if (uri && webId) {\n return buildDashboard(container, context)\n }\n\n if (!uri && subject) {\n return buildHomePage(container, subject)\n }\n\n if (!uri && !subject && webId) {\n return buildDashboard(container, context)\n }\n\n const fallbackSubject = subject || webId || store.sym(window.location.href)\n return buildHomePage(container, fallbackSubject)\n}\n\nfunction buildDashboard (container: HTMLElement, context: DataBrowserContext) {\n // console.log('build dashboard')\n // @@ TODO get a proper type\n const outliner: any = context.getOutliner(context.dom)\n outliner\n .getDashboard()\n .then((dashboard: HTMLElement) => container.appendChild(dashboard))\n}\n\nfunction buildHomePage (container: HTMLElement, subject: NamedNode) {\n // console.log('build home page')\n const wrapper = document.createElement('div')\n container.appendChild(wrapper)\n const shadow = wrapper.attachShadow({ mode: 'open' })\n const link = document.createElement('link')\n link.rel = 'stylesheet'\n link.href = '/common/css/bootstrap.min.css'\n shadow.appendChild(link)\n generateHomepage(subject, store, store.fetcher as Fetcher).then(homepage =>\n shadow.appendChild(homepage)\n )\n}\n\nexport default dashboardPane\n"],"mappings":";;;AAOQA,EAAM,WAAW"}
@@ -1 +1 @@
1
- {"version":3,"file":"homepage.cjs.js","names":[],"sources":["../../src/dashboard/homepage.ts"],"sourcesContent":["import { Fetcher, IndexedFormula, NamedNode } from 'rdflib'\nimport { loadProfileFromURI, getName } from '../utils/webIdUtils'\n\nexport async function generateHomepage (\n uri: NamedNode,\n store: IndexedFormula,\n fetcher: Fetcher\n): Promise<HTMLElement> {\n const ownersProfile = await loadProfileFromURI(uri)\n const name = getName(store, ownersProfile)\n\n const wrapper = document.createElement('div')\n wrapper.classList.add('container')\n wrapper.appendChild(createTitle(ownersProfile.uri, name))\n wrapper.appendChild(createDataSection(name))\n\n return wrapper\n}\n\nfunction createDataSection (name: string): HTMLElement {\n const dataSection = document.createElement('section')\n\n const title = document.createElement('h2')\n title.innerText = 'Data'\n dataSection.appendChild(title)\n\n const listGroup = document.createElement('div')\n listGroup.classList.add('list-group')\n dataSection.appendChild(listGroup)\n\n const publicDataLink = document.createElement('a')\n publicDataLink.classList.add('list-group-item')\n publicDataLink.href = window.document.location.href + 'public/'\n publicDataLink.innerText = `View ${name}'s files`\n listGroup.appendChild(publicDataLink)\n\n return dataSection\n}\n\nfunction createTitle (uri: string, name: string): HTMLElement {\n const profileLink = document.createElement('a')\n profileLink.href = uri\n profileLink.innerText = name\n\n const profileLinkPost = document.createElement('span')\n profileLinkPost.innerText = '\\'s Profile'\n\n const title = document.createElement('h1')\n title.appendChild(profileLink)\n title.appendChild(profileLinkPost)\n\n return title\n}\n"],"mappings":"8CAGA,eAAsB,EACpB,EACA,EACA,EACsB,CACtB,IAAM,EAAgB,MAAM,EAAA,mBAAmB,CAAG,EAC5C,EAAO,EAAA,QAAQ,EAAO,CAAa,EAEnC,EAAU,SAAS,cAAc,KAAK,EAK5C,OAJA,EAAQ,UAAU,IAAI,WAAW,EACjC,EAAQ,YAAY,EAAY,EAAc,IAAK,CAAI,CAAC,EACxD,EAAQ,YAAY,EAAkB,CAAI,CAAC,EAEpC,CACT,CAEA,SAAS,EAAmB,EAA2B,CACrD,IAAM,EAAc,SAAS,cAAc,SAAS,EAE9C,EAAQ,SAAS,cAAc,IAAI,EACzC,EAAM,UAAY,OAClB,EAAY,YAAY,CAAK,EAE7B,IAAM,EAAY,SAAS,cAAc,KAAK,EAC9C,EAAU,UAAU,IAAI,YAAY,EACpC,EAAY,YAAY,CAAS,EAEjC,IAAM,EAAiB,SAAS,cAAc,GAAG,EAMjD,OALA,EAAe,UAAU,IAAI,iBAAiB,EAC9C,EAAe,KAAO,OAAO,SAAS,SAAS,KAAO,UACtD,EAAe,UAAY,QAAQ,EAAK,UACxC,EAAU,YAAY,CAAc,EAE7B,CACT,CAEA,SAAS,EAAa,EAAa,EAA2B,CAC5D,IAAM,EAAc,SAAS,cAAc,GAAG,EAC9C,EAAY,KAAO,EACnB,EAAY,UAAY,EAExB,IAAM,EAAkB,SAAS,cAAc,MAAM,EACrD,EAAgB,UAAY,aAE5B,IAAM,EAAQ,SAAS,cAAc,IAAI,EAIzC,OAHA,EAAM,YAAY,CAAW,EAC7B,EAAM,YAAY,CAAe,EAE1B,CACT"}
1
+ {"version":3,"file":"homepage.cjs.js","names":["loadProfileFromURI","getName","require_webIdUtils","generateHomepage","ownersProfile","uri","name","store","wrapper","createTitle","createDataSection","dataSection","title","listGroup","publicDataLink","profileLink","profileLinkPost"],"sources":["../../src/dashboard/homepage.ts"],"sourcesContent":["import { Fetcher, IndexedFormula, NamedNode } from 'rdflib'\nimport { loadProfileFromURI, getName } from '../utils/webIdUtils'\n\nexport async function generateHomepage (\n uri: NamedNode,\n store: IndexedFormula,\n fetcher: Fetcher\n): Promise<HTMLElement> {\n const ownersProfile = await loadProfileFromURI(uri)\n const name = getName(store, ownersProfile)\n\n const wrapper = document.createElement('div')\n wrapper.classList.add('container')\n wrapper.appendChild(createTitle(ownersProfile.uri, name))\n wrapper.appendChild(createDataSection(name))\n\n return wrapper\n}\n\nfunction createDataSection (name: string): HTMLElement {\n const dataSection = document.createElement('section')\n\n const title = document.createElement('h2')\n title.innerText = 'Data'\n dataSection.appendChild(title)\n\n const listGroup = document.createElement('div')\n listGroup.classList.add('list-group')\n dataSection.appendChild(listGroup)\n\n const publicDataLink = document.createElement('a')\n publicDataLink.classList.add('list-group-item')\n publicDataLink.href = window.document.location.href + 'public/'\n publicDataLink.innerText = `View ${name}'s files`\n listGroup.appendChild(publicDataLink)\n\n return dataSection\n}\n\nfunction createTitle (uri: string, name: string): HTMLElement {\n const profileLink = document.createElement('a')\n profileLink.href = uri\n profileLink.innerText = name\n\n const profileLinkPost = document.createElement('span')\n profileLinkPost.innerText = '\\'s Profile'\n\n const title = document.createElement('h1')\n title.appendChild(profileLink)\n title.appendChild(profileLinkPost)\n\n return title\n}\n"],"mappings":"A,8CAGA,eAAsBG,EACpB,EACA,EACA,EACsB,CACtB,IAAMC,EAAgB,MAAMJ,EAAAA,mBAAmBK,CAAG,EAC5CC,EAAOL,EAAAA,QAAQM,EAAOH,CAAa,EAEnCI,EAAU,SAAS,cAAc,KAAK,EAK5C,OAJAA,EAAQ,UAAU,IAAI,WAAW,EACjCA,EAAQ,YAAYC,EAAYL,EAAc,IAAKE,CAAI,CAAC,EACxDE,EAAQ,YAAYE,EAAkBJ,CAAI,CAAC,EAEpCE,CACT,CAEA,SAASE,EAAmB,EAA2B,CACrD,IAAMC,EAAc,SAAS,cAAc,SAAS,EAE9CC,EAAQ,SAAS,cAAc,IAAI,EACzC,EAAM,UAAY,OAClBD,EAAY,YAAYC,CAAK,EAE7B,IAAMC,EAAY,SAAS,cAAc,KAAK,EAC9CA,EAAU,UAAU,IAAI,YAAY,EACpCF,EAAY,YAAYE,CAAS,EAEjC,IAAMC,EAAiB,SAAS,cAAc,GAAG,EAMjD,OALAA,EAAe,UAAU,IAAI,iBAAiB,EAC9C,EAAe,KAAO,OAAO,SAAS,SAAS,KAAO,UACtD,EAAe,UAAY,QAAQR,EAAK,UACxCO,EAAU,YAAYC,CAAc,EAE7BH,CACT,CAEA,SAASF,EAAa,EAAa,EAA2B,CAC5D,IAAMM,EAAc,SAAS,cAAc,GAAG,EAC9C,EAAY,KAAOV,EACnB,EAAY,UAAYC,EAExB,IAAMU,EAAkB,SAAS,cAAc,MAAM,EACrD,EAAgB,UAAY,aAE5B,IAAMJ,EAAQ,SAAS,cAAc,IAAI,EAIzC,OAHAA,EAAM,YAAYG,CAAW,EAC7BH,EAAM,YAAYI,CAAe,EAE1BJ,CACT,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"homepage.esm.js","names":[],"sources":["../../src/dashboard/homepage.ts"],"sourcesContent":["import { Fetcher, IndexedFormula, NamedNode } from 'rdflib'\nimport { loadProfileFromURI, getName } from '../utils/webIdUtils'\n\nexport async function generateHomepage (\n uri: NamedNode,\n store: IndexedFormula,\n fetcher: Fetcher\n): Promise<HTMLElement> {\n const ownersProfile = await loadProfileFromURI(uri)\n const name = getName(store, ownersProfile)\n\n const wrapper = document.createElement('div')\n wrapper.classList.add('container')\n wrapper.appendChild(createTitle(ownersProfile.uri, name))\n wrapper.appendChild(createDataSection(name))\n\n return wrapper\n}\n\nfunction createDataSection (name: string): HTMLElement {\n const dataSection = document.createElement('section')\n\n const title = document.createElement('h2')\n title.innerText = 'Data'\n dataSection.appendChild(title)\n\n const listGroup = document.createElement('div')\n listGroup.classList.add('list-group')\n dataSection.appendChild(listGroup)\n\n const publicDataLink = document.createElement('a')\n publicDataLink.classList.add('list-group-item')\n publicDataLink.href = window.document.location.href + 'public/'\n publicDataLink.innerText = `View ${name}'s files`\n listGroup.appendChild(publicDataLink)\n\n return dataSection\n}\n\nfunction createTitle (uri: string, name: string): HTMLElement {\n const profileLink = document.createElement('a')\n profileLink.href = uri\n profileLink.innerText = name\n\n const profileLinkPost = document.createElement('span')\n profileLinkPost.innerText = '\\'s Profile'\n\n const title = document.createElement('h1')\n title.appendChild(profileLink)\n title.appendChild(profileLinkPost)\n\n return title\n}\n"],"mappings":";;AAGA,eAAsB,EACpB,GACA,GACA,GACsB;CACtB,IAAM,IAAgB,MAAM,EAAmB,CAAG,GAC5C,IAAO,EAAQ,GAAO,CAAa,GAEnC,IAAU,SAAS,cAAc,KAAK;CAK5C,OAJA,EAAQ,UAAU,IAAI,WAAW,GACjC,EAAQ,YAAY,EAAY,EAAc,KAAK,CAAI,CAAC,GACxD,EAAQ,YAAY,EAAkB,CAAI,CAAC,GAEpC;AACT;AAEA,SAAS,EAAmB,GAA2B;CACrD,IAAM,IAAc,SAAS,cAAc,SAAS,GAE9C,IAAQ,SAAS,cAAc,IAAI;CAEzC,AADA,EAAM,YAAY,QAClB,EAAY,YAAY,CAAK;CAE7B,IAAM,IAAY,SAAS,cAAc,KAAK;CAE9C,AADA,EAAU,UAAU,IAAI,YAAY,GACpC,EAAY,YAAY,CAAS;CAEjC,IAAM,IAAiB,SAAS,cAAc,GAAG;CAMjD,OALA,EAAe,UAAU,IAAI,iBAAiB,GAC9C,EAAe,OAAO,OAAO,SAAS,SAAS,OAAO,WACtD,EAAe,YAAY,QAAQ,EAAK,WACxC,EAAU,YAAY,CAAc,GAE7B;AACT;AAEA,SAAS,EAAa,GAAa,GAA2B;CAC5D,IAAM,IAAc,SAAS,cAAc,GAAG;CAE9C,AADA,EAAY,OAAO,GACnB,EAAY,YAAY;CAExB,IAAM,IAAkB,SAAS,cAAc,MAAM;CACrD,EAAgB,YAAY;CAE5B,IAAM,IAAQ,SAAS,cAAc,IAAI;CAIzC,OAHA,EAAM,YAAY,CAAW,GAC7B,EAAM,YAAY,CAAe,GAE1B;AACT"}
1
+ {"version":3,"file":"homepage.esm.js","names":["generateHomepage","ownersProfile","loadProfileFromURI","uri","name","getName","store","wrapper","createTitle","createDataSection","dataSection","title","listGroup","publicDataLink","profileLink","profileLinkPost"],"sources":["../../src/dashboard/homepage.ts"],"sourcesContent":["import { Fetcher, IndexedFormula, NamedNode } from 'rdflib'\nimport { loadProfileFromURI, getName } from '../utils/webIdUtils'\n\nexport async function generateHomepage (\n uri: NamedNode,\n store: IndexedFormula,\n fetcher: Fetcher\n): Promise<HTMLElement> {\n const ownersProfile = await loadProfileFromURI(uri)\n const name = getName(store, ownersProfile)\n\n const wrapper = document.createElement('div')\n wrapper.classList.add('container')\n wrapper.appendChild(createTitle(ownersProfile.uri, name))\n wrapper.appendChild(createDataSection(name))\n\n return wrapper\n}\n\nfunction createDataSection (name: string): HTMLElement {\n const dataSection = document.createElement('section')\n\n const title = document.createElement('h2')\n title.innerText = 'Data'\n dataSection.appendChild(title)\n\n const listGroup = document.createElement('div')\n listGroup.classList.add('list-group')\n dataSection.appendChild(listGroup)\n\n const publicDataLink = document.createElement('a')\n publicDataLink.classList.add('list-group-item')\n publicDataLink.href = window.document.location.href + 'public/'\n publicDataLink.innerText = `View ${name}'s files`\n listGroup.appendChild(publicDataLink)\n\n return dataSection\n}\n\nfunction createTitle (uri: string, name: string): HTMLElement {\n const profileLink = document.createElement('a')\n profileLink.href = uri\n profileLink.innerText = name\n\n const profileLinkPost = document.createElement('span')\n profileLinkPost.innerText = '\\'s Profile'\n\n const title = document.createElement('h1')\n title.appendChild(profileLink)\n title.appendChild(profileLinkPost)\n\n return title\n}\n"],"mappings":";;AAGA,eAAsBA,EACpB,GACA,GACA,GACsB;CACtB,IAAMC,IAAgB,MAAMC,EAAmBC,CAAG,GAC5CC,IAAOC,EAAQC,GAAOL,CAAa,GAEnCM,IAAU,SAAS,cAAc,KAAK;CAK5C,OAJAA,EAAQ,UAAU,IAAI,WAAW,GACjCA,EAAQ,YAAYC,EAAYP,EAAc,KAAKG,CAAI,CAAC,GACxDG,EAAQ,YAAYE,EAAkBL,CAAI,CAAC,GAEpCG;AACT;AAEA,SAASE,EAAmB,GAA2B;CACrD,IAAMC,IAAc,SAAS,cAAc,SAAS,GAE9CC,IAAQ,SAAS,cAAc,IAAI;CAEzC,AADA,EAAM,YAAY,QAClBD,EAAY,YAAYC,CAAK;CAE7B,IAAMC,IAAY,SAAS,cAAc,KAAK;CAE9C,AADAA,EAAU,UAAU,IAAI,YAAY,GACpCF,EAAY,YAAYE,CAAS;CAEjC,IAAMC,IAAiB,SAAS,cAAc,GAAG;CAMjD,OALAA,EAAe,UAAU,IAAI,iBAAiB,GAC9C,EAAe,OAAO,OAAO,SAAS,SAAS,OAAO,WACtD,EAAe,YAAY,QAAQT,EAAK,WACxCQ,EAAU,YAAYC,CAAc,GAE7BH;AACT;AAEA,SAASF,EAAa,GAAa,GAA2B;CAC5D,IAAMM,IAAc,SAAS,cAAc,GAAG;CAE9C,AADA,EAAY,OAAOX,GACnB,EAAY,YAAYC;CAExB,IAAMW,IAAkB,SAAS,cAAc,MAAM;CACrD,EAAgB,YAAY;CAE5B,IAAMJ,IAAQ,SAAS,cAAc,IAAI;CAIzC,OAHAA,EAAM,YAAYG,CAAW,GAC7BH,EAAM,YAAYI,CAAe,GAE1BJ;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"ontologyData.cjs.js","names":[],"sources":["../../src/dashboard/ontologyData.ttl"],"sourcesContent":["@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.\n@prefix solid: <http://www.w3.org/ns/solid/terms#>.\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix schema: <http:/schema.org/>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix vcard: <http://www.w3.org/2006/vcard/ns#>.\n@prefix : <#>.\n\nsolid:User a rdfs:Class;\n rdfs:label \"user\"@en, \"utilisateur\"@fr;\n rdfs:comment \"\"\"Any person who might use a Solid-based system\"\"\";\n rdfs:subClassOf foaf:Person, schema:Person, vcard:Individual.\n\n# Since these options are opt-in, it is a bit strange to have new users opt in\n# That they are new users - also we do not use this class for anything specific\n# yet\n# solid:NewUser a rdfs:Class;\n# rdfs:label \"new user\"@en;\n# rdfs:comment \"\"\"A person who might use a Solid-based system who has a low\n# level of familiarity with technical details.\"\"\";\n# rdfs:subClassOf solid:User.\n\nsolid:PowerUser a rdfs:Class;\n rdfs:label \"power user\"@en;\n rdfs:comment \"\"\"A person who might use a Solid-based system\n who is prepared to be given a more complex interface in order\n to be provided with more pwerful features.\"\"\";\n rdfs:subClassOf solid:User.\n\n solid:Developer a rdfs:Class;\n rdfs:label \"Developer\";\n rdfs:comment \"\"\"Any person who might use a Solid-based system,\n who has software development skills.\"\"\";\n rdfs:subClassOf solid:User.\n"],"mappings":"AAAA,IAAA,EAAe"}
1
+ {"version":3,"file":"ontologyData.cjs.js","names":["ontologyData_default"],"sources":["../../src/dashboard/ontologyData.ttl"],"sourcesContent":["@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.\n@prefix solid: <http://www.w3.org/ns/solid/terms#>.\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix schema: <http:/schema.org/>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix vcard: <http://www.w3.org/2006/vcard/ns#>.\n@prefix : <#>.\n\nsolid:User a rdfs:Class;\n rdfs:label \"user\"@en, \"utilisateur\"@fr;\n rdfs:comment \"\"\"Any person who might use a Solid-based system\"\"\";\n rdfs:subClassOf foaf:Person, schema:Person, vcard:Individual.\n\n# Since these options are opt-in, it is a bit strange to have new users opt in\n# That they are new users - also we do not use this class for anything specific\n# yet\n# solid:NewUser a rdfs:Class;\n# rdfs:label \"new user\"@en;\n# rdfs:comment \"\"\"A person who might use a Solid-based system who has a low\n# level of familiarity with technical details.\"\"\";\n# rdfs:subClassOf solid:User.\n\nsolid:PowerUser a rdfs:Class;\n rdfs:label \"power user\"@en;\n rdfs:comment \"\"\"A person who might use a Solid-based system\n who is prepared to be given a more complex interface in order\n to be provided with more pwerful features.\"\"\";\n rdfs:subClassOf solid:User.\n\n solid:Developer a rdfs:Class;\n rdfs:label \"Developer\";\n rdfs:comment \"\"\"Any person who might use a Solid-based system,\n who has software development skills.\"\"\";\n rdfs:subClassOf solid:User.\n"],"mappings":"AAAA,IAAAA,EAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"ontologyData.esm.js","names":[],"sources":["../../src/dashboard/ontologyData.ttl"],"sourcesContent":["@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.\n@prefix solid: <http://www.w3.org/ns/solid/terms#>.\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix schema: <http:/schema.org/>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix vcard: <http://www.w3.org/2006/vcard/ns#>.\n@prefix : <#>.\n\nsolid:User a rdfs:Class;\n rdfs:label \"user\"@en, \"utilisateur\"@fr;\n rdfs:comment \"\"\"Any person who might use a Solid-based system\"\"\";\n rdfs:subClassOf foaf:Person, schema:Person, vcard:Individual.\n\n# Since these options are opt-in, it is a bit strange to have new users opt in\n# That they are new users - also we do not use this class for anything specific\n# yet\n# solid:NewUser a rdfs:Class;\n# rdfs:label \"new user\"@en;\n# rdfs:comment \"\"\"A person who might use a Solid-based system who has a low\n# level of familiarity with technical details.\"\"\";\n# rdfs:subClassOf solid:User.\n\nsolid:PowerUser a rdfs:Class;\n rdfs:label \"power user\"@en;\n rdfs:comment \"\"\"A person who might use a Solid-based system\n who is prepared to be given a more complex interface in order\n to be provided with more pwerful features.\"\"\";\n rdfs:subClassOf solid:User.\n\n solid:Developer a rdfs:Class;\n rdfs:label \"Developer\";\n rdfs:comment \"\"\"Any person who might use a Solid-based system,\n who has software development skills.\"\"\";\n rdfs:subClassOf solid:User.\n"],"mappings":";AAAA,IAAA,IAAe"}
1
+ {"version":3,"file":"ontologyData.esm.js","names":["ontologyData_default"],"sources":["../../src/dashboard/ontologyData.ttl"],"sourcesContent":["@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.\n@prefix solid: <http://www.w3.org/ns/solid/terms#>.\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix schema: <http:/schema.org/>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix vcard: <http://www.w3.org/2006/vcard/ns#>.\n@prefix : <#>.\n\nsolid:User a rdfs:Class;\n rdfs:label \"user\"@en, \"utilisateur\"@fr;\n rdfs:comment \"\"\"Any person who might use a Solid-based system\"\"\";\n rdfs:subClassOf foaf:Person, schema:Person, vcard:Individual.\n\n# Since these options are opt-in, it is a bit strange to have new users opt in\n# That they are new users - also we do not use this class for anything specific\n# yet\n# solid:NewUser a rdfs:Class;\n# rdfs:label \"new user\"@en;\n# rdfs:comment \"\"\"A person who might use a Solid-based system who has a low\n# level of familiarity with technical details.\"\"\";\n# rdfs:subClassOf solid:User.\n\nsolid:PowerUser a rdfs:Class;\n rdfs:label \"power user\"@en;\n rdfs:comment \"\"\"A person who might use a Solid-based system\n who is prepared to be given a more complex interface in order\n to be provided with more pwerful features.\"\"\";\n rdfs:subClassOf solid:User.\n\n solid:Developer a rdfs:Class;\n rdfs:label \"Developer\";\n rdfs:comment \"\"\"Any person who might use a Solid-based system,\n who has software development skills.\"\"\";\n rdfs:subClassOf solid:User.\n"],"mappings":";AAAA,IAAAA,IAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"preferencesFormText.cjs.js","names":[],"sources":["../../src/dashboard/preferencesFormText.ttl"],"sourcesContent":["@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n@prefix solid: <http://www.w3.org/ns/solid/terms#>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix : <#>.\n\n:this <http://purl.org/dc/elements/1.1/title> \"Basic preferences\" ;\n a ui:Form ;\n ui:part :categorizeUser, :privateComment, :personalInformationHeading;\n ui:parts ( :personalInformationHeading :privateComment :categorizeUser ).\n\n:personalInformationHeading a ui:Heading;\n ui:contents \"Personal information\".\n\n:privateComment a ui:Comment;\n ui:contents \"This information is private.\".\n\n:categorizeUser a ui:Classifier;\n ui:label \"Level of user\"; ui:property rdf:type ; ui:category solid:User.\n"],"mappings":"AAAA,IAAA,EAAe"}
1
+ {"version":3,"file":"preferencesFormText.cjs.js","names":["preferencesFormText_default"],"sources":["../../src/dashboard/preferencesFormText.ttl"],"sourcesContent":["@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n@prefix solid: <http://www.w3.org/ns/solid/terms#>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix : <#>.\n\n:this <http://purl.org/dc/elements/1.1/title> \"Basic preferences\" ;\n a ui:Form ;\n ui:part :categorizeUser, :privateComment, :personalInformationHeading;\n ui:parts ( :personalInformationHeading :privateComment :categorizeUser ).\n\n:personalInformationHeading a ui:Heading;\n ui:contents \"Personal information\".\n\n:privateComment a ui:Comment;\n ui:contents \"This information is private.\".\n\n:categorizeUser a ui:Classifier;\n ui:label \"Level of user\"; ui:property rdf:type ; ui:category solid:User.\n"],"mappings":"AAAA,IAAAA,EAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"preferencesFormText.esm.js","names":[],"sources":["../../src/dashboard/preferencesFormText.ttl"],"sourcesContent":["@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n@prefix solid: <http://www.w3.org/ns/solid/terms#>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix : <#>.\n\n:this <http://purl.org/dc/elements/1.1/title> \"Basic preferences\" ;\n a ui:Form ;\n ui:part :categorizeUser, :privateComment, :personalInformationHeading;\n ui:parts ( :personalInformationHeading :privateComment :categorizeUser ).\n\n:personalInformationHeading a ui:Heading;\n ui:contents \"Personal information\".\n\n:privateComment a ui:Comment;\n ui:contents \"This information is private.\".\n\n:categorizeUser a ui:Classifier;\n ui:label \"Level of user\"; ui:property rdf:type ; ui:category solid:User.\n"],"mappings":";AAAA,IAAA,IAAe"}
1
+ {"version":3,"file":"preferencesFormText.esm.js","names":["preferencesFormText_default"],"sources":["../../src/dashboard/preferencesFormText.ttl"],"sourcesContent":["@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n@prefix solid: <http://www.w3.org/ns/solid/terms#>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix : <#>.\n\n:this <http://purl.org/dc/elements/1.1/title> \"Basic preferences\" ;\n a ui:Form ;\n ui:part :categorizeUser, :privateComment, :personalInformationHeading;\n ui:parts ( :personalInformationHeading :privateComment :categorizeUser ).\n\n:personalInformationHeading a ui:Heading;\n ui:contents \"Personal information\".\n\n:privateComment a ui:Comment;\n ui:contents \"This information is private.\".\n\n:categorizeUser a ui:Classifier;\n ui:label \"Level of user\"; ui:property rdf:type ; ui:category solid:User.\n"],"mappings":";AAAA,IAAAA,IAAe"}