solid-ui 5.0.2-3 → 5.0.2-5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (374) hide show
  1. package/dist/acl/access-controller.cjs.js +1 -1
  2. package/dist/acl/access-controller.cjs.js.map +1 -1
  3. package/dist/acl/access-controller.esm.js +37 -37
  4. package/dist/acl/access-groups.cjs.js +2 -2
  5. package/dist/acl/access-groups.cjs.js.map +1 -1
  6. package/dist/acl/access-groups.esm.js +78 -78
  7. package/dist/acl/acl-control.cjs.js +1 -1
  8. package/dist/acl/acl-control.cjs.js.map +1 -1
  9. package/dist/acl/acl-control.esm.js +19 -19
  10. package/dist/acl/add-agent-buttons.cjs.js +1 -1
  11. package/dist/acl/add-agent-buttons.cjs.js.map +1 -1
  12. package/dist/acl/add-agent-buttons.esm.js +51 -51
  13. package/dist/chat/bookmarks.cjs.js +1 -1
  14. package/dist/chat/bookmarks.cjs.js.map +1 -1
  15. package/dist/chat/bookmarks.esm.js +44 -44
  16. package/dist/chat/bookmarks.esm.js.map +1 -1
  17. package/dist/chat/chatLogic.cjs.js +2 -2
  18. package/dist/chat/chatLogic.cjs.js.map +1 -1
  19. package/dist/chat/chatLogic.esm.js +54 -54
  20. package/dist/chat/dateFolder.cjs.js +1 -1
  21. package/dist/chat/dateFolder.cjs.js.map +1 -1
  22. package/dist/chat/dateFolder.esm.js +30 -30
  23. package/dist/chat/infinite.cjs.js +1 -1
  24. package/dist/chat/infinite.cjs.js.map +1 -1
  25. package/dist/chat/infinite.esm.js +49 -49
  26. package/dist/chat/keys.cjs.js +2 -2
  27. package/dist/chat/keys.cjs.js.map +1 -1
  28. package/dist/chat/keys.esm.js +17 -17
  29. package/dist/chat/message.cjs.js +4 -4
  30. package/dist/chat/message.cjs.js.map +1 -1
  31. package/dist/chat/message.esm.js +114 -114
  32. package/dist/chat/message.esm.js.map +1 -1
  33. package/dist/chat/messageTools.cjs.js +1 -1
  34. package/dist/chat/messageTools.cjs.js.map +1 -1
  35. package/dist/chat/messageTools.esm.js +51 -51
  36. package/dist/chunks/{DialogProvider-dagk2fHm.js → DialogProvider-CdesAsw-.js} +5 -6
  37. package/dist/chunks/{DialogProvider-dagk2fHm.js.map → DialogProvider-CdesAsw-.js.map} +1 -1
  38. package/dist/chunks/{ResourceActionsMenu-o-8kWx8z.js → ResourceActionsMenu-Bx7YWY3E.js} +31 -32
  39. package/dist/chunks/{ResourceActionsMenu-o-8kWx8z.js.map → ResourceActionsMenu-Bx7YWY3E.js.map} +1 -1
  40. package/dist/chunks/{access-control-modal-CWH98HX3.js → access-control-modal-B1mFFIyz.js} +169 -170
  41. package/dist/chunks/{access-control-modal-CWH98HX3.js.map → access-control-modal-B1mFFIyz.js.map} +1 -1
  42. package/dist/chunks/{account-Cocvv0H3.js → account-DWmMJre6.js} +16 -17
  43. package/dist/chunks/{account-Cocvv0H3.js.map → account-DWmMJre6.js.map} +1 -1
  44. package/dist/chunks/{auth-Df5uYksz.js → auth-EK-iYNYZ.js} +42 -43
  45. package/dist/chunks/{auth-Df5uYksz.js.map → auth-EK-iYNYZ.js.map} +1 -1
  46. package/dist/chunks/{avatar-DeotTinS.js → avatar-BBgvMlqv.js} +8 -9
  47. package/dist/chunks/{avatar-DeotTinS.js.map → avatar-BBgvMlqv.js.map} +1 -1
  48. package/dist/chunks/{button-Dy1aFjqG.js → button-D6qO2idW.js} +10 -11
  49. package/dist/chunks/{button-Dy1aFjqG.js.map → button-D6qO2idW.js.map} +1 -1
  50. package/dist/chunks/{chunk.UEBQI7VV-9M5gO7Ew.js → chunk.UEBQI7VV-lcP-fpUk.js} +12 -9
  51. package/dist/chunks/chunk.UEBQI7VV-lcP-fpUk.js.map +1 -0
  52. package/dist/chunks/{combobox-BL0-8wef.js → combobox-DS6byaf1.js} +18 -19
  53. package/dist/chunks/{combobox-BL0-8wef.js.map → combobox-DS6byaf1.js.map} +1 -1
  54. package/dist/chunks/{combobox-option-DjlmXt1O.js → combobox-option-DOtGuKel.js} +7 -8
  55. package/dist/chunks/{combobox-option-DjlmXt1O.js.map → combobox-option-DOtGuKel.js.map} +1 -1
  56. package/dist/chunks/{components-LxiwG5ae.js → components-C8c2Ucm5.js} +201 -190
  57. package/dist/chunks/components-C8c2Ucm5.js.map +1 -0
  58. package/dist/chunks/{context-By_u12WA.js → context-BDrfQ9bN.js} +2 -2
  59. package/dist/chunks/{context-By_u12WA.js.map → context-BDrfQ9bN.js.map} +1 -1
  60. package/dist/chunks/{dialog-CrmftB9c.js → dialog-CgYK767T.js} +15 -16
  61. package/dist/chunks/{dialog-CrmftB9c.js.map → dialog-CgYK767T.js.map} +1 -1
  62. package/dist/chunks/{dialog-content-Cw3xqJ45.js → dialog-content-DjwRH1ci.js} +5 -6
  63. package/dist/chunks/{dialog-content-Cw3xqJ45.js.map → dialog-content-DjwRH1ci.js.map} +1 -1
  64. package/dist/chunks/{dialog-footer-sFQf-2zD.js → dialog-footer-GQWi8lfB.js} +5 -6
  65. package/dist/chunks/{dialog-footer-sFQf-2zD.js.map → dialog-footer-GQWi8lfB.js.map} +1 -1
  66. package/dist/chunks/{dialog-header-xIWIqfZK.js → dialog-header-c3qOMQfb.js} +5 -6
  67. package/dist/chunks/{dialog-header-xIWIqfZK.js.map → dialog-header-c3qOMQfb.js.map} +1 -1
  68. package/dist/chunks/{dialogs-B3tHtjMf.js → dialogs-BmtLjMzg.js} +2 -2
  69. package/dist/chunks/{dialogs-B3tHtjMf.js.map → dialogs-BmtLjMzg.js.map} +1 -1
  70. package/dist/chunks/{dialogs-root-Lh2u-3Cs.js → dialogs-root-BNF3_SA8.js} +8 -9
  71. package/dist/chunks/{dialogs-root-Lh2u-3Cs.js.map → dialogs-root-BNF3_SA8.js.map} +1 -1
  72. package/dist/chunks/{error-state-DnsXVj1z.js → error-state-jV9dlFX2.js} +10 -11
  73. package/dist/chunks/{error-state-DnsXVj1z.js.map → error-state-jV9dlFX2.js.map} +1 -1
  74. package/dist/chunks/{file-explorer-header-B6-Q0i6V.js → file-explorer-header-Djp_eFuT.js} +33 -34
  75. package/dist/chunks/file-explorer-header-Djp_eFuT.js.map +1 -0
  76. package/dist/chunks/{file-explorer-provider-B3gUBkHg.js → file-explorer-provider-DpjC7uds.js} +8 -9
  77. package/dist/chunks/{file-explorer-provider-B3gUBkHg.js.map → file-explorer-provider-DpjC7uds.js.map} +1 -1
  78. package/dist/chunks/{guard-C39y81In.js → guard-SxVT1xr4.js} +8 -9
  79. package/dist/chunks/{guard-C39y81In.js.map → guard-SxVT1xr4.js.map} +1 -1
  80. package/dist/chunks/{index.esm-C9oV3H3X.js → index.esm-BQrkxchZ.js} +2 -2
  81. package/dist/chunks/{index.esm-C9oV3H3X.js.map → index.esm-BQrkxchZ.js.map} +1 -1
  82. package/dist/chunks/{input-Bi6ZBZQw.js → input-Bz3l514j.js} +11 -12
  83. package/dist/chunks/{input-Bi6ZBZQw.js.map → input-Bz3l514j.js.map} +1 -1
  84. package/dist/chunks/{jsonld-D-TE94B0.js → jsonld-C6IOQ1Tg.js} +2 -2
  85. package/dist/chunks/{jsonld-D-TE94B0.js.map → jsonld-C6IOQ1Tg.js.map} +1 -1
  86. package/dist/chunks/{login-button-fo0P8vym.js → login-button-Dd0rwZJk.js} +9 -10
  87. package/dist/chunks/{login-button-fo0P8vym.js.map → login-button-Dd0rwZJk.js.map} +1 -1
  88. package/dist/chunks/{logout-button-CF2YFgID.js → logout-button-Da34Lrnq.js} +9 -10
  89. package/dist/chunks/{logout-button-CF2YFgID.js.map → logout-button-Da34Lrnq.js.map} +1 -1
  90. package/dist/chunks/{menu-RumUciM-.js → menu-BNJU654v.js} +48 -50
  91. package/dist/chunks/{menu-RumUciM-.js.map → menu-BNJU654v.js.map} +1 -1
  92. package/dist/chunks/{menu-item-CVAZyipz.js → menu-item-nfPpH4dN.js} +10 -11
  93. package/dist/chunks/{menu-item-CVAZyipz.js.map → menu-item-nfPpH4dN.js.map} +1 -1
  94. package/dist/chunks/{photo-capture-CAfo7y6-.js → photo-capture-hJaJm4TM.js} +20 -21
  95. package/dist/chunks/photo-capture-hJaJm4TM.js.map +1 -0
  96. package/dist/chunks/{photo-capture-modal-DWmDE_Ws.js → photo-capture-modal-BsHv6wmh.js} +28 -29
  97. package/dist/chunks/{photo-capture-modal-DWmDE_Ws.js.map → photo-capture-modal-BsHv6wmh.js.map} +1 -1
  98. package/dist/chunks/{provide-B5NeVMM_.js → provide-z9U64q4m.js} +2 -2
  99. package/dist/chunks/{provide-B5NeVMM_.js.map → provide-z9U64q4m.js.map} +1 -1
  100. package/dist/chunks/{provider-BbT2duMy.js → provider-B3FoP2qW.js} +12 -13
  101. package/dist/chunks/{provider-BbT2duMy.js.map → provider-B3FoP2qW.js.map} +1 -1
  102. package/dist/chunks/{rdf-form-CH9bDx98.js → rdf-form-BkKDmFPD.js} +30 -31
  103. package/dist/chunks/{rdf-form-CH9bDx98.js.map → rdf-form-BkKDmFPD.js.map} +1 -1
  104. package/dist/chunks/{rdf-input-C_V0pIS5.js → rdf-input-BPePtqfS.js} +62 -63
  105. package/dist/chunks/{rdf-input-C_V0pIS5.js.map → rdf-input-BPePtqfS.js.map} +1 -1
  106. package/dist/chunks/{select-y1Z6fwmh.js → select-ClPkDkGl.js} +9 -10
  107. package/dist/chunks/{select-y1Z6fwmh.js.map → select-ClPkDkGl.js.map} +1 -1
  108. package/dist/chunks/{select-option-U4ALXL20.js → select-option-DQan7rcB.js} +7 -8
  109. package/dist/chunks/{select-option-U4ALXL20.js.map → select-option-DQan7rcB.js.map} +1 -1
  110. package/dist/chunks/{signup-button-DicFpAjD.js → signup-button-DOInssOu.js} +9 -10
  111. package/dist/chunks/{signup-button-DicFpAjD.js.map → signup-button-DOInssOu.js.map} +1 -1
  112. package/dist/chunks/{solid-emblem-CeCXTpve.js → solid-emblem-DwLdkGuO.js} +7 -8
  113. package/dist/chunks/{solid-emblem-CeCXTpve.js.map → solid-emblem-DwLdkGuO.js.map} +1 -1
  114. package/dist/chunks/{solidLogicSingleton.esm-BXyHD7mn.js → solidLogicSingleton.esm-Bvt7E7Vl.js} +50 -29
  115. package/dist/chunks/solidLogicSingleton.esm-Bvt7E7Vl.js.map +1 -0
  116. package/dist/chunks/{src-Bhtor0ZC.js → src-akaVfkuf.js} +2739 -2719
  117. package/dist/chunks/src-akaVfkuf.js.map +1 -0
  118. package/dist/chunks/{style-CXaw5EYi.js → style-Dlw9-wPn.js} +3 -3
  119. package/dist/chunks/{style-CXaw5EYi.js.map → style-Dlw9-wPn.js.map} +1 -1
  120. package/dist/chunks/{widgets-BBEQu0CS.js → widgets-B1hBVhRL.js} +309 -309
  121. package/dist/chunks/widgets-B1hBVhRL.js.map +1 -0
  122. package/dist/components/access-control-modal/AccessControlAddAccess.cjs.js +1 -1
  123. package/dist/components/access-control-modal/AccessControlAddAccess.esm.js +5 -5
  124. package/dist/components/access-control-modal/AccessControlAddAccess.esm.js.map +1 -1
  125. package/dist/components/access-control-modal/AccessControlErrors.esm.js.map +1 -1
  126. package/dist/components/access-control-modal/AccessControlGeneralAccess.cjs.js +2 -2
  127. package/dist/components/access-control-modal/AccessControlGeneralAccess.cjs.js.map +1 -1
  128. package/dist/components/access-control-modal/AccessControlGeneralAccess.esm.js +12 -12
  129. package/dist/components/access-control-modal/AccessControlGeneralAccess.esm.js.map +1 -1
  130. package/dist/components/access-control-modal/AccessControlModal.cjs.js +2 -2
  131. package/dist/components/access-control-modal/AccessControlModal.cjs.js.map +1 -1
  132. package/dist/components/access-control-modal/AccessControlModal.esm.js +35 -35
  133. package/dist/components/access-control-modal/AccessControlModal.esm.js.map +1 -1
  134. package/dist/components/access-control-modal/AccessControlSharedAccess.cjs.js +1 -1
  135. package/dist/components/access-control-modal/AccessControlSharedAccess.esm.js +2 -2
  136. package/dist/components/access-control-modal/AccessControlSharedAccess.esm.js.map +1 -1
  137. package/dist/components/access-control-modal/accessTargetResolver.cjs.js +1 -1
  138. package/dist/components/access-control-modal/accessTargetResolver.cjs.js.map +1 -1
  139. package/dist/components/access-control-modal/accessTargetResolver.esm.js +21 -21
  140. package/dist/components/access-control-modal.js +1 -1
  141. package/dist/components/account/Account.cjs.js +1 -1
  142. package/dist/components/account/Account.esm.js +3 -3
  143. package/dist/components/account/Account.esm.js.map +1 -1
  144. package/dist/components/account.js +1 -1
  145. package/dist/components/all.cjs.js +1 -1
  146. package/dist/components/all.esm.js +16 -16
  147. package/dist/components/avatar.js +1 -1
  148. package/dist/components/button/Button.esm.js.map +1 -1
  149. package/dist/components/button.js +1 -1
  150. package/dist/components/combobox/Combobox.cjs.js +1 -1
  151. package/dist/components/combobox/Combobox.esm.js +1 -1
  152. package/dist/components/combobox/Combobox.esm.js.map +1 -1
  153. package/dist/components/combobox-option/ComboboxOption.esm.js.map +1 -1
  154. package/dist/components/combobox-option.js +1 -1
  155. package/dist/components/combobox.js +1 -1
  156. package/dist/components/dialog/Dialog.cjs.js +2 -2
  157. package/dist/components/dialog/Dialog.cjs.js.map +1 -1
  158. package/dist/components/dialog/Dialog.esm.js +9 -9
  159. package/dist/components/dialog/Dialog.esm.js.map +1 -1
  160. package/dist/components/dialog-content.js +1 -1
  161. package/dist/components/dialog-footer.js +1 -1
  162. package/dist/components/dialog-header.js +1 -1
  163. package/dist/components/dialog-provider/DialogProvider.cjs.js +1 -1
  164. package/dist/components/dialog-provider/DialogProvider.cjs.js.map +1 -1
  165. package/dist/components/dialog-provider/DialogProvider.esm.js +6 -6
  166. package/dist/components/dialog-provider/DialogProvider.esm.js.map +1 -1
  167. package/dist/components/dialog-provider.js +1 -1
  168. package/dist/components/dialog.js +1 -1
  169. package/dist/components/dialogs-root/DialogsRoot.cjs.js +2 -2
  170. package/dist/components/dialogs-root/DialogsRoot.cjs.js.map +1 -1
  171. package/dist/components/dialogs-root/DialogsRoot.esm.js +7 -7
  172. package/dist/components/dialogs-root/DialogsRoot.esm.js.map +1 -1
  173. package/dist/components/dialogs-root.js +1 -1
  174. package/dist/components/error-state/ErrorState.cjs.js +1 -1
  175. package/dist/components/error-state/ErrorState.esm.js +1 -1
  176. package/dist/components/error-state/ErrorState.esm.js.map +1 -1
  177. package/dist/components/error-state.js +1 -1
  178. package/dist/components/file-explorer-header/FileExplorerHeader.cjs.js +2 -2
  179. package/dist/components/file-explorer-header/FileExplorerHeader.cjs.js.map +1 -1
  180. package/dist/components/file-explorer-header/FileExplorerHeader.d.ts.map +1 -1
  181. package/dist/components/file-explorer-header/FileExplorerHeader.esm.js +20 -19
  182. package/dist/components/file-explorer-header/FileExplorerHeader.esm.js.map +1 -1
  183. package/dist/components/file-explorer-header/FileExplorerHeaderControls.cjs.js +6 -6
  184. package/dist/components/file-explorer-header/FileExplorerHeaderControls.cjs.js.map +1 -1
  185. package/dist/components/file-explorer-header/FileExplorerHeaderControls.d.ts.map +1 -1
  186. package/dist/components/file-explorer-header/FileExplorerHeaderControls.esm.js +25 -24
  187. package/dist/components/file-explorer-header/FileExplorerHeaderControls.esm.js.map +1 -1
  188. package/dist/components/file-explorer-header/FileExplorerHeaderSummary.cjs.js +7 -7
  189. package/dist/components/file-explorer-header/FileExplorerHeaderSummary.cjs.js.map +1 -1
  190. package/dist/components/file-explorer-header/FileExplorerHeaderSummary.d.ts.map +1 -1
  191. package/dist/components/file-explorer-header/FileExplorerHeaderSummary.esm.js +28 -27
  192. package/dist/components/file-explorer-header/FileExplorerHeaderSummary.esm.js.map +1 -1
  193. package/dist/components/file-explorer-header.js +1 -1
  194. package/dist/components/file-explorer-provider/FileExplorerProvider.cjs.js +1 -1
  195. package/dist/components/file-explorer-provider/FileExplorerProvider.cjs.js.map +1 -1
  196. package/dist/components/file-explorer-provider/FileExplorerProvider.d.ts +1 -1
  197. package/dist/components/file-explorer-provider/FileExplorerProvider.d.ts.map +1 -1
  198. package/dist/components/file-explorer-provider/FileExplorerProvider.esm.js +8 -7
  199. package/dist/components/file-explorer-provider/FileExplorerProvider.esm.js.map +1 -1
  200. package/dist/components/file-explorer-provider.js +1 -1
  201. package/dist/components/guard.js +1 -1
  202. package/dist/components/input/Input.esm.js.map +1 -1
  203. package/dist/components/input.js +1 -1
  204. package/dist/components/login-button/LoginButton.cjs.js +1 -1
  205. package/dist/components/login-button/LoginButton.esm.js +1 -1
  206. package/dist/components/login-button.js +1 -1
  207. package/dist/components/login-modal/LoginModal.cjs.js +1 -1
  208. package/dist/components/login-modal/LoginModal.esm.js +2 -2
  209. package/dist/components/login-modal/LoginModal.esm.js.map +1 -1
  210. package/dist/components/login-modal.js +1 -1
  211. package/dist/components/logout-button/LogoutButton.cjs.js +1 -1
  212. package/dist/components/logout-button/LogoutButton.esm.js +1 -1
  213. package/dist/components/logout-button.js +1 -1
  214. package/dist/components/menu/Menu.cjs.js +1 -1
  215. package/dist/components/menu/Menu.cjs.js.map +1 -1
  216. package/dist/components/menu/Menu.esm.js +1 -1
  217. package/dist/components/menu/Menu.esm.js.map +1 -1
  218. package/dist/components/menu-item/MenuItem.esm.js.map +1 -1
  219. package/dist/components/menu-item.js +1 -1
  220. package/dist/components/menu.js +1 -1
  221. package/dist/components/photo-capture/PhotoCapture.esm.js.map +1 -1
  222. package/dist/components/photo-capture-modal/PhotoCaptureModal.esm.js.map +1 -1
  223. package/dist/components/photo-capture-modal.js +1 -1
  224. package/dist/components/photo-capture.js +1 -1
  225. package/dist/components/provider/Provider.esm.js.map +1 -1
  226. package/dist/components/provider.js +1 -1
  227. package/dist/components/rdf-form/RDFForm.cjs.js +3 -3
  228. package/dist/components/rdf-form/RDFForm.cjs.js.map +1 -1
  229. package/dist/components/rdf-form/RDFForm.esm.js +13 -13
  230. package/dist/components/rdf-form/RDFForm.esm.js.map +1 -1
  231. package/dist/components/rdf-form.js +1 -1
  232. package/dist/components/rdf-input/RDFInput.cjs.js +2 -2
  233. package/dist/components/rdf-input/RDFInput.cjs.js.map +1 -1
  234. package/dist/components/rdf-input/RDFInput.esm.js +4 -4
  235. package/dist/components/rdf-input/RDFInput.esm.js.map +1 -1
  236. package/dist/components/rdf-input.js +1 -1
  237. package/dist/components/resource-actions-menu/ResourceActionsMenu.cjs.js +8 -8
  238. package/dist/components/resource-actions-menu/ResourceActionsMenu.cjs.js.map +1 -1
  239. package/dist/components/resource-actions-menu/ResourceActionsMenu.d.ts.map +1 -1
  240. package/dist/components/resource-actions-menu/ResourceActionsMenu.esm.js +18 -17
  241. package/dist/components/resource-actions-menu/ResourceActionsMenu.esm.js.map +1 -1
  242. package/dist/components/resource-actions-menu.js +1 -1
  243. package/dist/components/select/Select.cjs.js +1 -1
  244. package/dist/components/select/Select.cjs.js.map +1 -1
  245. package/dist/components/select/Select.esm.js +1 -1
  246. package/dist/components/select/Select.esm.js.map +1 -1
  247. package/dist/components/select-option/SelectOption.esm.js.map +1 -1
  248. package/dist/components/select-option.js +1 -1
  249. package/dist/components/select.js +1 -1
  250. package/dist/components/signup-button/SignupButton.cjs.js +1 -1
  251. package/dist/components/signup-button/SignupButton.esm.js +1 -1
  252. package/dist/components/signup-button.js +1 -1
  253. package/dist/components/solid-emblem.js +1 -1
  254. package/dist/components.js +30 -30
  255. package/dist/create/create.cjs.js +1 -1
  256. package/dist/create/create.cjs.js.map +1 -1
  257. package/dist/create/create.esm.js +23 -23
  258. package/dist/header/index.cjs.js +1 -1
  259. package/dist/header/index.cjs.js.map +1 -1
  260. package/dist/header/index.esm.js +53 -53
  261. package/dist/index.cjs.js +1 -1
  262. package/dist/index.cjs.js.map +1 -1
  263. package/dist/index.esm.js +24 -24
  264. package/dist/index.esm.js.map +1 -1
  265. package/dist/index.js +11 -12
  266. package/dist/lib/auth/SolidAuth.cjs.js +1 -1
  267. package/dist/lib/auth/SolidAuth.cjs.js.map +1 -1
  268. package/dist/lib/auth/SolidAuth.esm.js +8 -8
  269. package/dist/lib/auth/SolidAuth.esm.js.map +1 -1
  270. package/dist/lib/code-editor/CodeEditor.cjs.js +1 -1
  271. package/dist/lib/code-editor/CodeEditor.cjs.js.map +1 -1
  272. package/dist/lib/code-editor/CodeEditor.d.ts.map +1 -1
  273. package/dist/lib/code-editor/CodeEditor.esm.js +34 -30
  274. package/dist/lib/code-editor/CodeEditor.esm.js.map +1 -1
  275. package/dist/lib/components/dialog-component/DialogComponent.cjs.js +1 -1
  276. package/dist/lib/components/dialog-component/DialogComponent.cjs.js.map +1 -1
  277. package/dist/lib/components/dialog-component/DialogComponent.esm.js +4 -4
  278. package/dist/lib/components/index.cjs.js +1 -1
  279. package/dist/lib/components/index.esm.js +3 -3
  280. package/dist/lib/dialogs/helpers.cjs.js +1 -1
  281. package/dist/lib/dialogs/helpers.cjs.js.map +1 -1
  282. package/dist/lib/dialogs/helpers.esm.js +4 -4
  283. package/dist/lib/file-explorer/index.cjs.js +1 -1
  284. package/dist/lib/file-explorer/index.esm.js +3 -3
  285. package/dist/lib/file-explorer/relevant-panes.cjs.js +1 -1
  286. package/dist/lib/file-explorer/relevant-panes.cjs.js.map +1 -1
  287. package/dist/lib/file-explorer/relevant-panes.d.ts +7 -0
  288. package/dist/lib/file-explorer/relevant-panes.d.ts.map +1 -1
  289. package/dist/lib/file-explorer/relevant-panes.esm.js +11 -2
  290. package/dist/lib/file-explorer/relevant-panes.esm.js.map +1 -1
  291. package/dist/lib/messageArea.cjs.js +1 -1
  292. package/dist/lib/messageArea.cjs.js.map +1 -1
  293. package/dist/lib/messageArea.esm.js +27 -27
  294. package/dist/lib/pad.cjs.js +1 -1
  295. package/dist/lib/pad.cjs.js.map +1 -1
  296. package/dist/lib/pad.esm.js +15 -15
  297. package/dist/lib/participation.cjs.js +1 -1
  298. package/dist/lib/participation.cjs.js.map +1 -1
  299. package/dist/lib/participation.esm.js +59 -59
  300. package/dist/lib/preferences.cjs.js +1 -1
  301. package/dist/lib/preferences.cjs.js.map +1 -1
  302. package/dist/lib/preferences.esm.js +28 -28
  303. package/dist/lib/table.cjs.js +3 -3
  304. package/dist/lib/table.cjs.js.map +1 -1
  305. package/dist/lib/table.esm.js +123 -123
  306. package/dist/lib/table.esm.js.map +1 -1
  307. package/dist/lib/tabs.cjs.js +1 -1
  308. package/dist/lib/tabs.cjs.js.map +1 -1
  309. package/dist/lib/tabs.esm.js +16 -16
  310. package/dist/loader.js +11 -12
  311. package/dist/login/login.cjs.js +6 -6
  312. package/dist/login/login.cjs.js.map +1 -1
  313. package/dist/login/login.esm.js +142 -142
  314. package/dist/media/media-capture.cjs.js +1 -1
  315. package/dist/media/media-capture.cjs.js.map +1 -1
  316. package/dist/media/media-capture.esm.js +6 -6
  317. package/dist/solid-ui.js +32 -32
  318. package/dist/solid-ui.min.js +32 -32
  319. package/dist/solid-ui.min.js.map +1 -1
  320. package/dist/utils/index.cjs.js +1 -1
  321. package/dist/utils/index.cjs.js.map +1 -1
  322. package/dist/utils/index.esm.js +4 -4
  323. package/dist/utils/keyHelpers/accessData.cjs.js +1 -1
  324. package/dist/utils/keyHelpers/accessData.cjs.js.map +1 -1
  325. package/dist/utils/keyHelpers/accessData.esm.js +15 -15
  326. package/dist/utils/label.cjs.js +1 -1
  327. package/dist/utils/label.cjs.js.map +1 -1
  328. package/dist/utils/label.esm.js +4 -4
  329. package/dist/widgets/buttons.cjs.js +12 -12
  330. package/dist/widgets/buttons.cjs.js.map +1 -1
  331. package/dist/widgets/buttons.esm.js +179 -179
  332. package/dist/widgets/error.cjs.js +1 -1
  333. package/dist/widgets/error.cjs.js.map +1 -1
  334. package/dist/widgets/error.esm.js +5 -5
  335. package/dist/widgets/forms/autocomplete/autocompleteBar.cjs.js +1 -1
  336. package/dist/widgets/forms/autocomplete/autocompleteBar.cjs.js.map +1 -1
  337. package/dist/widgets/forms/autocomplete/autocompleteBar.esm.js +17 -17
  338. package/dist/widgets/forms/autocomplete/autocompleteField.cjs.js +1 -1
  339. package/dist/widgets/forms/autocomplete/autocompleteField.cjs.js.map +1 -1
  340. package/dist/widgets/forms/autocomplete/autocompleteField.esm.js +23 -23
  341. package/dist/widgets/forms/autocomplete/autocompletePicker.cjs.js +1 -1
  342. package/dist/widgets/forms/autocomplete/autocompletePicker.cjs.js.map +1 -1
  343. package/dist/widgets/forms/autocomplete/autocompletePicker.esm.js +26 -26
  344. package/dist/widgets/forms/autocomplete/language.cjs.js +1 -1
  345. package/dist/widgets/forms/autocomplete/language.cjs.js.map +1 -1
  346. package/dist/widgets/forms/autocomplete/language.esm.js +9 -9
  347. package/dist/widgets/forms/autocomplete/publicData.cjs.js +5 -5
  348. package/dist/widgets/forms/autocomplete/publicData.cjs.js.map +1 -1
  349. package/dist/widgets/forms/autocomplete/publicData.esm.js +67 -67
  350. package/dist/widgets/forms/basic.cjs.js +1 -1
  351. package/dist/widgets/forms/basic.cjs.js.map +1 -1
  352. package/dist/widgets/forms/basic.esm.js +11 -11
  353. package/dist/widgets/forms.cjs.js +4 -4
  354. package/dist/widgets/forms.cjs.js.map +1 -1
  355. package/dist/widgets/forms.esm.js +561 -561
  356. package/dist/widgets/forms.esm.js.map +1 -1
  357. package/dist/widgets/index.cjs.js +1 -1
  358. package/dist/widgets/index.cjs.js.map +1 -1
  359. package/dist/widgets/index.esm.js +82 -82
  360. package/dist/widgets/peoplePicker.cjs.js +2 -2
  361. package/dist/widgets/peoplePicker.cjs.js.map +1 -1
  362. package/dist/widgets/peoplePicker.esm.js +82 -82
  363. package/package.json +3 -3
  364. package/dist/chunks/chunk.UEBQI7VV-9M5gO7Ew.js.map +0 -1
  365. package/dist/chunks/components-LxiwG5ae.js.map +0 -1
  366. package/dist/chunks/custom-element-BW8Ua4c7.js +0 -9
  367. package/dist/chunks/custom-element-BW8Ua4c7.js.map +0 -1
  368. package/dist/chunks/decorators-V-B013l9.js +0 -12
  369. package/dist/chunks/decorators-V-B013l9.js.map +0 -1
  370. package/dist/chunks/file-explorer-header-B6-Q0i6V.js.map +0 -1
  371. package/dist/chunks/photo-capture-CAfo7y6-.js.map +0 -1
  372. package/dist/chunks/solidLogicSingleton.esm-BXyHD7mn.js.map +0 -1
  373. package/dist/chunks/src-Bhtor0ZC.js.map +0 -1
  374. package/dist/chunks/widgets-BBEQu0CS.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"language.cjs.js","names":["store","ns","authn","require_runtime","require_ns","require_debug","solid_logic","language_exports","addDefaults","defaultPreferredLanguages","filterByLanguage","getPreferredLanguages","getPreferredLanguagesFor","languageCodeURIBase","array","code","doc","person","list","languageCodeArray","lang","item","me","solidLanguagePrefs","longForm","uris","bindings","uri","binding","languagePrefs2","languagePrefs","slimmed","u","sortMe"],"sources":["../../../../src/widgets/forms/autocomplete/language.ts"],"sourcesContent":["/* Logic to access public data stores\n*\n* including filtering resut by natural language etc\n* See https://solidos.solidcommunity.net/public/2021/01%20Building%20Solid%20Apps%20which%20use%20Public%20Data.html\n*/\n\nimport * as debug from '../../../lib/debug'\n// import * as logic from '../index'\n// import { authn } from '../../../authn/index'\nimport { authn, store } from 'solid-logic'\nimport ns from '../../../lib/ns'\nimport { Collection, NamedNode, Node } from 'rdflib'\n// import { Binding } from '../widgets/forms/autocomplete/publicData'\n// import { nativeNameForLanguageCode, englishNameForLanguageCode } from './nativeNameForLanguageCode'\n\n// const { currentUser } = logic.authn\n\nexport interface Binding {\n subject: Node;\n name?: Node\n location?: Node\n coordinates?: Node\n}\n\nexport const languageCodeURIBase = 'https://www.w3.org/ns/iana/language-code/' /// @@ unsupported on the web (2021)\n\nexport const defaultPreferredLanguages = ['en', 'fr', 'de', 'it', 'ar']\n\nexport function addDefaults (array) {\n if (!array) array = []\n return array.concat(defaultPreferredLanguages.filter(code => !array.includes(code)))\n}\n\nexport async function getPreferredLanguagesFor (person: NamedNode) {\n const doc = person.doc()\n await store.fetcher?.load(doc)\n const list = store.any(person, ns.schema('knowsLanguage'), null, doc) as Collection | undefined\n if (!list) {\n // console.log(`User ${person} has not set their languages in their profile.`)\n return defaultPreferredLanguages\n }\n const languageCodeArray: string[] = []\n list.elements.forEach(item => {\n // console.log('@@ item ' + item)\n const lang = store.any(item as any, ns.solid('publicId'), null, doc)\n if (!lang) {\n console.warn('getPreferredLanguages: No publiID of language.')\n return\n }\n if (!lang.value.startsWith(languageCodeURIBase)) {\n console.error(`What should be a language code ${lang.value} does not start with ${languageCodeURIBase}`)\n return\n }\n const code = lang.value.slice(languageCodeURIBase.length)\n languageCodeArray.push(code)\n })\n\n if (languageCodeArray.length > 0) {\n console.log(` User knows languages with codes: \"${languageCodeArray.join(',')}\"`)\n return addDefaults(languageCodeArray)\n }\n return null\n}\n/* Get the preferred langauges for the user\n *\n * Either from solid preferences or browser preferences or default\n */\nexport async function getPreferredLanguages () {\n // In future: cache in the login session for speed, but get from profile and private prefs\n // We append the defaults so if someone's first choice is not available they don't get something very obscure\n // See https://github.com/solidos/solidos/issues/42\n const me = await authn.currentUser() as NamedNode\n if (me) { // If logged in\n const solidLanguagePrefs = await getPreferredLanguagesFor(me)\n if (solidLanguagePrefs) return solidLanguagePrefs\n }\n if (typeof navigator !== 'undefined') { // use browser settings\n if (navigator.languages) {\n return addDefaults(navigator.languages.map(longForm => longForm.split('-')[0]))\n }\n if (navigator.language) {\n return addDefaults([navigator.language.split('-')[0]])\n }\n }\n return defaultPreferredLanguages\n}\n\n/* From an array of bindings with a names for each row,\n * remove dupliacte names for the same thing, leaving the user's\n * preferred language version\n*/\n\nexport function filterByLanguage (bindings, languagePrefs) {\n const uris = {}\n bindings.forEach(binding => { // Organize names by their subject\n const uri = binding.subject.value\n uris[uri] = uris[uri] || []\n uris[uri].push(binding)\n })\n\n const languagePrefs2 = languagePrefs || defaultPreferredLanguages\n languagePrefs2.reverse() // Preferred last\n\n const slimmed = [] as Array<Binding>\n // console.log(` @@ {languagePrefs2 ${languagePrefs2}`)\n for (const u in uris) { // needs hasOwnProperty ?\n const bindings = uris[u]\n const sortMe = bindings.map(binding => {\n const lang = binding.name['xml:lang']\n const index = languagePrefs2.indexOf(lang)\n const pair = [index, binding]\n // console.log(` @@ lang: ${lang}, index: ${index}`)\n return pair\n })\n sortMe.sort() // best at th ebottom\n sortMe.reverse() // best at the top\n // console.debug('@@ sortMe:', sortMe)\n slimmed.push((sortMe[0][1] as any))\n } // map u\n debug.log(` Filter by language: ${bindings.length} -> ${slimmed.length}`)\n return slimmed\n}\n"],"mappings":"A,2VAwBaa,EAAsB,4CAEtBJ,EAA4B,CAAC,KAAM,KAAM,KAAM,KAAM,IAAI,EAEtE,SAAgBD,EAAa,EAAO,CAElC,MADA,CAAYM,IAAQ,CAAC,EACdA,EAAM,OAAOL,EAA0B,OAAO,GAAQ,CAACK,EAAM,SAASC,CAAI,CAAC,CAAC,CACrF,CAEA,eAAsBH,EAA0B,EAAmB,CACjE,IAAMI,EAAMC,EAAO,IAAI,EACvB,MAAMjB,EAAAA,MAAM,SAAS,KAAKgB,CAAG,EAC7B,IAAME,EAAOlB,EAAAA,MAAM,IAAIiB,EAAQhB,EAAAA,QAAG,OAAO,eAAe,EAAG,KAAMe,CAAG,EACpE,GAAI,CAACE,EAEH,OAAOT,EAET,IAAMU,EAA8B,CAAC,EAoBrC,OAnBAD,EAAK,SAAS,QAAQ,GAAQ,CAE5B,IAAME,EAAOpB,EAAAA,MAAM,IAAIqB,EAAapB,EAAAA,QAAG,MAAM,UAAU,EAAG,KAAMe,CAAG,EACnE,GAAI,CAACI,EAAM,CACT,QAAQ,KAAK,gDAAgD,EAC7D,MACF,CACA,GAAI,CAACA,EAAK,MAAM,WAAA,2CAA8B,EAAG,CAC/C,QAAQ,MAAM,kCAAkCA,EAAK,MAAM,uBAAuBP,GAAqB,EACvG,MACF,CACA,IAAME,EAAOK,EAAK,MAAM,MAAM,EAA0B,EACxDD,EAAkB,KAAKJ,CAAI,CAC7B,CAAC,EAEGI,EAAkB,OAAS,GAC7B,QAAQ,IAAI,0CAA0CA,EAAkB,KAAK,GAAG,EAAE,EAAE,EAC7EX,EAAYW,CAAiB,GAE/B,IACT,CAKA,eAAsBR,GAAyB,CAI7C,IAAMW,EAAK,MAAMpB,EAAAA,MAAM,YAAY,EACnC,GAAIoB,EAAI,CACN,IAAMC,EAAqB,MAAMX,EAAyBU,CAAE,EAC5D,GAAIC,EAAoB,OAAOA,CACjC,CACA,GAAI,OAAO,UAAc,IAAa,CACpC,GAAI,UAAU,UACZ,OAAOf,EAAY,UAAU,UAAU,IAAI,GAAYgB,EAAS,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAEhF,GAAI,UAAU,SACZ,OAAOhB,EAAY,CAAC,UAAU,SAAS,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAEzD,CACA,OAAOC,CACT,CAOA,SAAgBC,EAAkB,EAAU,EAAe,CACzD,IAAMe,EAAO,CAAC,EACdC,EAAS,QAAQ,GAAW,CAC1B,IAAMC,EAAMC,EAAQ,QAAQ,MAC5B,EAAKD,GAAOF,EAAKE,IAAQ,CAAC,EAC1BF,EAAKE,EAAI,CAAC,KAAKC,CAAO,CACxB,CAAC,EAED,IAAMC,EAAiBC,GAAiBrB,EACxCoB,EAAe,QAAQ,EAEvB,IAAME,EAAU,CAAC,EAEjB,IAAK,IAAMC,KAAKP,EAAM,CAEpB,IAAMQ,EADWR,EAAKO,EACP,CAAS,IAAI,GAAW,CACrC,IAAMZ,EAAOQ,EAAQ,KAAK,YAI1B,MAAO,CAHOC,EAAe,QAAQT,CACvB,EAAOQ,CAEd,CACT,CAAC,EACDK,EAAO,KAAK,EACZA,EAAO,QAAQ,EAEfF,EAAQ,KAAME,EAAO,EAAE,CAAC,EAAU,CACpC,CAEA,OADA5B,EAAA,IAAU,wBAAwBqB,EAAS,OAAO,MAAMK,EAAQ,QAAQ,EACjEA,CACT,C"}
1
+ {"version":3,"file":"language.cjs.js","names":["store","ns","authn","require_runtime","require_debug","require_ns","solid_logic","language_exports","addDefaults","defaultPreferredLanguages","filterByLanguage","getPreferredLanguages","getPreferredLanguagesFor","languageCodeURIBase","array","code","doc","person","list","languageCodeArray","lang","item","me","solidLanguagePrefs","longForm","uris","bindings","uri","binding","languagePrefs2","languagePrefs","slimmed","u","sortMe"],"sources":["../../../../src/widgets/forms/autocomplete/language.ts"],"sourcesContent":["/* Logic to access public data stores\n*\n* including filtering resut by natural language etc\n* See https://solidos.solidcommunity.net/public/2021/01%20Building%20Solid%20Apps%20which%20use%20Public%20Data.html\n*/\n\nimport * as debug from '../../../lib/debug'\n// import * as logic from '../index'\n// import { authn } from '../../../authn/index'\nimport { authn, store } from 'solid-logic'\nimport ns from '../../../lib/ns'\nimport { Collection, NamedNode, Node } from 'rdflib'\n// import { Binding } from '../widgets/forms/autocomplete/publicData'\n// import { nativeNameForLanguageCode, englishNameForLanguageCode } from './nativeNameForLanguageCode'\n\n// const { currentUser } = logic.authn\n\nexport interface Binding {\n subject: Node;\n name?: Node\n location?: Node\n coordinates?: Node\n}\n\nexport const languageCodeURIBase = 'https://www.w3.org/ns/iana/language-code/' /// @@ unsupported on the web (2021)\n\nexport const defaultPreferredLanguages = ['en', 'fr', 'de', 'it', 'ar']\n\nexport function addDefaults (array) {\n if (!array) array = []\n return array.concat(defaultPreferredLanguages.filter(code => !array.includes(code)))\n}\n\nexport async function getPreferredLanguagesFor (person: NamedNode) {\n const doc = person.doc()\n await store.fetcher?.load(doc)\n const list = store.any(person, ns.schema('knowsLanguage'), null, doc) as Collection | undefined\n if (!list) {\n // console.log(`User ${person} has not set their languages in their profile.`)\n return defaultPreferredLanguages\n }\n const languageCodeArray: string[] = []\n list.elements.forEach(item => {\n // console.log('@@ item ' + item)\n const lang = store.any(item as any, ns.solid('publicId'), null, doc)\n if (!lang) {\n console.warn('getPreferredLanguages: No publiID of language.')\n return\n }\n if (!lang.value.startsWith(languageCodeURIBase)) {\n console.error(`What should be a language code ${lang.value} does not start with ${languageCodeURIBase}`)\n return\n }\n const code = lang.value.slice(languageCodeURIBase.length)\n languageCodeArray.push(code)\n })\n\n if (languageCodeArray.length > 0) {\n console.log(` User knows languages with codes: \"${languageCodeArray.join(',')}\"`)\n return addDefaults(languageCodeArray)\n }\n return null\n}\n/* Get the preferred langauges for the user\n *\n * Either from solid preferences or browser preferences or default\n */\nexport async function getPreferredLanguages () {\n // In future: cache in the login session for speed, but get from profile and private prefs\n // We append the defaults so if someone's first choice is not available they don't get something very obscure\n // See https://github.com/solidos/solidos/issues/42\n const me = await authn.currentUser() as NamedNode\n if (me) { // If logged in\n const solidLanguagePrefs = await getPreferredLanguagesFor(me)\n if (solidLanguagePrefs) return solidLanguagePrefs\n }\n if (typeof navigator !== 'undefined') { // use browser settings\n if (navigator.languages) {\n return addDefaults(navigator.languages.map(longForm => longForm.split('-')[0]))\n }\n if (navigator.language) {\n return addDefaults([navigator.language.split('-')[0]])\n }\n }\n return defaultPreferredLanguages\n}\n\n/* From an array of bindings with a names for each row,\n * remove dupliacte names for the same thing, leaving the user's\n * preferred language version\n*/\n\nexport function filterByLanguage (bindings, languagePrefs) {\n const uris = {}\n bindings.forEach(binding => { // Organize names by their subject\n const uri = binding.subject.value\n uris[uri] = uris[uri] || []\n uris[uri].push(binding)\n })\n\n const languagePrefs2 = languagePrefs || defaultPreferredLanguages\n languagePrefs2.reverse() // Preferred last\n\n const slimmed = [] as Array<Binding>\n // console.log(` @@ {languagePrefs2 ${languagePrefs2}`)\n for (const u in uris) { // needs hasOwnProperty ?\n const bindings = uris[u]\n const sortMe = bindings.map(binding => {\n const lang = binding.name['xml:lang']\n const index = languagePrefs2.indexOf(lang)\n const pair = [index, binding]\n // console.log(` @@ lang: ${lang}, index: ${index}`)\n return pair\n })\n sortMe.sort() // best at th ebottom\n sortMe.reverse() // best at the top\n // console.debug('@@ sortMe:', sortMe)\n slimmed.push((sortMe[0][1] as any))\n } // map u\n debug.log(` Filter by language: ${bindings.length} -> ${slimmed.length}`)\n return slimmed\n}\n"],"mappings":"A,2VAwBaa,EAAsB,4CAEtBJ,EAA4B,CAAC,KAAM,KAAM,KAAM,KAAM,IAAI,EAEtE,SAAgBD,EAAa,EAAO,CAElC,MADA,CAAYM,IAAQ,CAAC,EACdA,EAAM,OAAOL,EAA0B,OAAO,GAAQ,CAACK,EAAM,SAASC,CAAI,CAAC,CAAC,CACrF,CAEA,eAAsBH,EAA0B,EAAmB,CACjE,IAAMI,EAAMC,EAAO,IAAI,EACvB,MAAMjB,EAAAA,MAAM,SAAS,KAAKgB,CAAG,EAC7B,IAAME,EAAOlB,EAAAA,MAAM,IAAIiB,EAAQhB,EAAAA,QAAG,OAAO,eAAe,EAAG,KAAMe,CAAG,EACpE,GAAI,CAACE,EAEH,OAAOT,EAET,IAAMU,EAA8B,CAAC,EAoBrC,OAnBAD,EAAK,SAAS,QAAQ,GAAQ,CAE5B,IAAME,EAAOpB,EAAAA,MAAM,IAAIqB,EAAapB,EAAAA,QAAG,MAAM,UAAU,EAAG,KAAMe,CAAG,EACnE,GAAI,CAACI,EAAM,CACT,QAAQ,KAAK,gDAAgD,EAC7D,MACF,CACA,GAAI,CAACA,EAAK,MAAM,WAAA,2CAA8B,EAAG,CAC/C,QAAQ,MAAM,kCAAkCA,EAAK,MAAM,uBAAuBP,GAAqB,EACvG,MACF,CACA,IAAME,EAAOK,EAAK,MAAM,MAAM,EAA0B,EACxDD,EAAkB,KAAKJ,CAAI,CAC7B,CAAC,EAEGI,EAAkB,OAAS,GAC7B,QAAQ,IAAI,0CAA0CA,EAAkB,KAAK,GAAG,EAAE,EAAE,EAC7EX,EAAYW,CAAiB,GAE/B,IACT,CAKA,eAAsBR,GAAyB,CAI7C,IAAMW,EAAK,MAAMpB,EAAAA,MAAM,YAAY,EACnC,GAAIoB,EAAI,CACN,IAAMC,EAAqB,MAAMX,EAAyBU,CAAE,EAC5D,GAAIC,EAAoB,OAAOA,CACjC,CACA,GAAI,OAAO,UAAc,IAAa,CACpC,GAAI,UAAU,UACZ,OAAOf,EAAY,UAAU,UAAU,IAAI,GAAYgB,EAAS,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAEhF,GAAI,UAAU,SACZ,OAAOhB,EAAY,CAAC,UAAU,SAAS,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAEzD,CACA,OAAOC,CACT,CAOA,SAAgBC,EAAkB,EAAU,EAAe,CACzD,IAAMe,EAAO,CAAC,EACdC,EAAS,QAAQ,GAAW,CAC1B,IAAMC,EAAMC,EAAQ,QAAQ,MAC5B,EAAKD,GAAOF,EAAKE,IAAQ,CAAC,EAC1BF,EAAKE,EAAI,CAAC,KAAKC,CAAO,CACxB,CAAC,EAED,IAAMC,EAAiBC,GAAiBrB,EACxCoB,EAAe,QAAQ,EAEvB,IAAME,EAAU,CAAC,EAEjB,IAAK,IAAMC,KAAKP,EAAM,CAEpB,IAAMQ,EADWR,EAAKO,EACP,CAAS,IAAI,GAAW,CACrC,IAAMZ,EAAOQ,EAAQ,KAAK,YAI1B,MAAO,CAHOC,EAAe,QAAQT,CACvB,EAAOQ,CAEd,CACT,CAAC,EACDK,EAAO,KAAK,EACZA,EAAO,QAAQ,EAEfF,EAAQ,KAAME,EAAO,EAAE,CAAC,EAAU,CACpC,CAEA,OADA7B,EAAA,IAAU,wBAAwBsB,EAAS,OAAO,MAAMK,EAAQ,QAAQ,EACjEA,CACT,C"}
@@ -1,6 +1,6 @@
1
1
  import { __exportAll as e } from "../../../_virtual/_rolldown/runtime.esm.js";
2
- import t from "../../../lib/ns.esm.js";
3
- import { log as n } from "../../../lib/debug.esm.js";
2
+ import { log as t } from "../../../lib/debug.esm.js";
3
+ import n from "../../../lib/ns.esm.js";
4
4
  import { authn as r, store as i } from "solid-logic";
5
5
  // src/widgets/forms/autocomplete/language.ts
6
6
  var a = /* @__PURE__ */ e({
@@ -21,13 +21,13 @@ function c(e) {
21
21
  return e ||= [], e.concat(s.filter((t) => !e.includes(t)));
22
22
  }
23
23
  async function l(e) {
24
- let n = e.doc();
25
- await i.fetcher?.load(n);
26
- let r = i.any(e, t.schema("knowsLanguage"), null, n);
24
+ let t = e.doc();
25
+ await i.fetcher?.load(t);
26
+ let r = i.any(e, n.schema("knowsLanguage"), null, t);
27
27
  if (!r) return s;
28
28
  let a = [];
29
29
  return r.elements.forEach((e) => {
30
- let r = i.any(e, t.solid("publicId"), null, n);
30
+ let r = i.any(e, n.solid("publicId"), null, t);
31
31
  if (!r) {
32
32
  console.warn("getPreferredLanguages: No publiID of language.");
33
33
  return;
@@ -52,13 +52,13 @@ async function u() {
52
52
  }
53
53
  return s;
54
54
  }
55
- function d(e, t) {
55
+ function d(e, n) {
56
56
  let r = {};
57
57
  e.forEach((e) => {
58
58
  let t = e.subject.value;
59
59
  r[t] = r[t] || [], r[t].push(e);
60
60
  });
61
- let i = t || s;
61
+ let i = n || s;
62
62
  i.reverse();
63
63
  let a = [];
64
64
  for (let e in r) {
@@ -68,7 +68,7 @@ function d(e, t) {
68
68
  });
69
69
  t.sort(), t.reverse(), a.push(t[0][1]);
70
70
  }
71
- return n(` Filter by language: ${e.length} -> ${a.length}`), a;
71
+ return t(` Filter by language: ${e.length} -> ${a.length}`), a;
72
72
  }
73
73
  export { c as addDefaults, s as defaultPreferredLanguages, d as filterByLanguage, u as getPreferredLanguages, l as getPreferredLanguagesFor, o as languageCodeURIBase, a as language_exports };
74
74
 
@@ -1,4 +1,4 @@
1
- const e=require("../../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../../lib/ns.cjs.js"),n=require("../../../lib/debug.cjs.js"),r=require("./language.cjs.js");let i=require("rdflib"),a=require("solid-logic");var o=e.__exportAll({AUTOCOMPLETE_LIMIT:()=>200,ESCOResultToBindings:()=>b,bindingToTerm:()=>v,dbPediaTypeMap:()=>p,dbpediaParameters:()=>f,escoParameters:()=>d,fetcherOptionsJsonPublicData:()=>u,getDbpediaDetails:()=>A,getWikidataDetails:()=>D,getWikidataDetailsOld:()=>O,getWikidataLocation:()=>k,instituteDetailsWikidataQuery:()=>l,loadFromBindings:()=>y,loadPublicDataThing:()=>E,queryESCODataByName:()=>x,queryPublicDataByName:()=>C,queryPublicDataConstruct:()=>T,queryPublicDataSelect:()=>w,variableNameToPredicateMap:()=>_,wikidataClasses:()=>c,wikidataIncomingClassMap:()=>g,wikidataOutgoingClassMap:()=>m,wikidataParameters:()=>h}),s=/\$\(subject\)/g,c={Corporation:`http://www.wikidata.org/entity/Q6881511`,EducationalOrganization:`http://www.wikidata.org/entity/Q178706`,GovernmentOrganization:`http://www.wikidata.org/entity/Q327333`,MedicalOrganization:`http://www.wikidata.org/entity/Q4287745`,MusicGroup:`http://www.wikidata.org/entity/Q32178211`,NGO:`http://www.wikidata.org/entity/Q163740`,Occupation:`http://www.wikidata.org/entity/Q28640`,Project:`http://www.wikidata.org/entity/Q170584`,ResearchOrganization:`http://www.wikidata.org/entity/Q31855`,SportsOrganization:`http://www.wikidata.org/entity/Q4438121`},l=`prefix vcard: <http://www.w3.org/2006/vcard/ns#>
1
+ const e=require("../../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../../lib/debug.cjs.js"),n=require("../../../lib/ns.cjs.js"),r=require("./language.cjs.js");let i=require("rdflib"),a=require("solid-logic");var o=e.__exportAll({AUTOCOMPLETE_LIMIT:()=>200,ESCOResultToBindings:()=>b,bindingToTerm:()=>v,dbPediaTypeMap:()=>p,dbpediaParameters:()=>f,escoParameters:()=>d,fetcherOptionsJsonPublicData:()=>u,getDbpediaDetails:()=>A,getWikidataDetails:()=>D,getWikidataDetailsOld:()=>O,getWikidataLocation:()=>k,instituteDetailsWikidataQuery:()=>l,loadFromBindings:()=>y,loadPublicDataThing:()=>E,queryESCODataByName:()=>x,queryPublicDataByName:()=>C,queryPublicDataConstruct:()=>T,queryPublicDataSelect:()=>w,variableNameToPredicateMap:()=>_,wikidataClasses:()=>c,wikidataIncomingClassMap:()=>g,wikidataOutgoingClassMap:()=>m,wikidataParameters:()=>h}),s=/\$\(subject\)/g,c={Corporation:`http://www.wikidata.org/entity/Q6881511`,EducationalOrganization:`http://www.wikidata.org/entity/Q178706`,GovernmentOrganization:`http://www.wikidata.org/entity/Q327333`,MedicalOrganization:`http://www.wikidata.org/entity/Q4287745`,MusicGroup:`http://www.wikidata.org/entity/Q32178211`,NGO:`http://www.wikidata.org/entity/Q163740`,Occupation:`http://www.wikidata.org/entity/Q28640`,Project:`http://www.wikidata.org/entity/Q170584`,ResearchOrganization:`http://www.wikidata.org/entity/Q31855`,SportsOrganization:`http://www.wikidata.org/entity/Q4438121`},l=`prefix vcard: <http://www.w3.org/2006/vcard/ns#>
2
2
  CONSTRUCT
3
3
  { wd:Q49108 vcard:fn ?itemLabel.
4
4
  wd:Q49108 rdf:type ?klass. ?klass rdfs:label ?klassLabel; rdfs:comment ?klassDescription .
@@ -58,7 +58,7 @@ WHERE
58
58
  # ?subsidiary rdfs:label ?subsidiaryLabel .
59
59
 
60
60
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], fr". }
61
- }`},g={"http://www.wikidata.org/entity/Q15936437":t.default.schema(`CollegeOrUniversity`),"http://www.wikidata.org/entity/Q1664720":t.default.schema(`EducationalOrganization`),"http://www.wikidata.org/entity/Q43229":t.default.schema(`Organization`),"http://www.wikidata.org/entity/Q3918":t.default.schema(`CollegeOrUniversity`),"http://www.wikidata.org/entity/Q170584":t.default.schema(`Project`),"http://www.wikidata.org/entity/Q327333":t.default.schema(`GovernmentOrganization`),"http://www.wikidata.org/entity/Q2221906":t.default.schema(`Place`),"http://www.wikidata.org/entity/Q167037":t.default.schema(`Corporation`)},_={targetClass:t.default.rdf(`type`),sealImage:t.default.schema(`logo`),shortName:t.default.foaf(`nick`),subsidiary:t.default.schema(`subOrganization`),city:t.default.vcard(`locality`),state:t.default.vcard(`region`),country:t.default.vcard(`country-name`),homepage:t.default.foaf(`homepage`),lat:t.default.schema(`latitude`),long:t.default.schema(`longitude`)};function v(e){let t=e.type.toLowerCase();if(t===`uri`||t===`iri`)return a.store.sym(e.value);if(t===`literal`)return e[`xml:lang`]?new i.Literal(e.value,e[`xml:lang`]):new i.Literal(e.value);throw Error(`bindingToTerm: Unexpected type "${e.type}" in sparql binding}`)}function y(e,r,a,o,s=_){let c={};n.log(`loadFromBindings: subject: ${r}`),n.log(` doc: ${o}`),a.forEach(e=>{for(let t in e){let n=e[t],r=JSON.stringify(n);c[t]=c[t]||new Set,c[t].add(r)}});for(let a in c){let l=c[a];n.log(` results ${a} -> ${l}`),l.forEach(c=>{let l=JSON.parse(c),{type:u,value:d}=l,f;if(u===`uri`)f=e.sym(d);else if(u===`literal`)f=new i.Literal(d,l.language,l.datatype);else throw Error(`loadFromBindings: unexpected type: ${u}`);if(a===`type`)g[d]?f=g[d]:n.warn(`Unmapped Wikidata Class: `+d);else if(a===`coordinates`){n.log(` @@@ hey a point: `+d);let a=/.*\(([-0-9.-]*) ([-0-9.-]*)\)/.exec(d);if(a){let n=t.default.xsd(`float`),s=new i.Literal(a[1],null,n),c=new i.Literal(a[2],null,n);e.add(r,t.default.schema(`longitude`),c,o),e.add(r,t.default.schema(`latitude`),s,o)}else n.log(`Bad coordinates syntax: `+d)}else{let i=s[a]||t.default.schema(a);e.add(r,i,f,o),n.log(` public data ${i} ${f}.`)}})}}function b(e){return e._embedded.results.map(e=>{let t=e.title,n=e.uri;return{name:{value:t,type:`literal`},subject:{type:`IRI`,value:n}}})}async function x(e,t,r){if(!r.searchByNameURI)throw Error(`Missing queryTarget.searchByNameURI on queryESCODataByName`);let i=r.limit||200,o=r.searchByNameURI.replace(`$(name)`,e).replace(`$(limit)`,``+i).replace(`$(targetClass)`,t.toNT());n.log(`Querying ESCO data - uri: `+o);let s=(await a.store.fetcher?.webOperation(`GET`,o,u))?.responseText||``;if(n.log(` Query result text`+s.slice(0,500)+`...`),s.length===0)throw Error(`Wot no text back from ESCO query `+o);let c=JSON.parse(s);return n.log(` ESCO Query result JSON`+JSON.stringify(c,null,4).slice(0,500)+`...`),b(c)}function S(e){let t=e.indexOf(`SPARQL-QUERY`);if(t<0)return e;n.warn(` ### Fixing JSON with wikidata error code injection `+e.slice(t,t+200));let r=e.lastIndexOf(`}, {`);return e.slice(0,r)+` } ] } } `}async function C(e,t,i,o){function s(n){let r=o.limit||200;return n.replace(`$(name)`,e).replace(`$(limit)`,``+r).replace(`$(language)`,c).replace(`$(targetClass)`,t.toNT())}if(!t)throw Error(`queryPublicDataByName: No class provided`);let c=(await r.getPreferredLanguages()||r.defaultPreferredLanguages)[0]||`en`;if(o.searchByNameQuery){let e=s(o.searchByNameQuery);return n.log(`Querying public data - sparql: `+e),w(e,o)}if(o.searchByNameURI){let e=s(o.searchByNameURI),t;try{t=await a.store.fetcher?.webOperation(`GET`,e,u)}catch(t){throw Error(`Exception when trying to fetch ${e} \n ${t}`)}let r=t.responseText||``;if(t.status!==200)throw Error(`HTTP error status ${t.status} trying to fetch ${e} `);if(n.log(` Query result text`+r.slice(0,500)+`...`),r.length===0)throw Error(`queryPublicDataByName: No text back from public data query `+e);let i=S(r),c=JSON.parse(i);if(n.log(` API Query result JSON`+JSON.stringify(c,null,4).slice(0,500)+`...`),c._embedded)return n.log(` Looks like ESCO`),b(c);throw alert(`Code me: unrecognized API return format`),Error(`*** Need to add code to parse unrecognized API JSON return\n${JSON.stringify(c,null,4)}`)}throw Error(`Query source must have either rest API or SPARQL endpoint.`)}async function w(e,t){if(!t.endpoint)throw Error(`Missing queryTarget.endpoint required for queryPublicDataSelect`);let r=new URL(t.endpoint);r.searchParams.append(`query`,e);let i=r.href;n.log(` queryPublicDataSelect uri: `+i);let o=new Headers;o.append(`Accept`,`application/json`);let s={credentials:`omit`,headers:o},c=(await a.store.fetcher?.webOperation(`GET`,i,s))?.responseText||``;if(c.length===0)throw Error(`No text back from query `+i);let l=S(c),u=JSON.parse(l);return n.log(` Query result JSON`+JSON.stringify(u,null,4).slice(0,100)+`...`),u.results.bindings}async function T(e,t,r){if(n.log(`queryPublicDataConstruct: sparql:`,e),!r.endpoint)throw Error(`Missing queryTarget.endpoint required for queryPublicDataConstruct`);let o=new URL(r.endpoint);o.searchParams.append(`query`,e);let s=o.href;n.log(` queryPublicDataConstruct uri: `+s);let c=new Headers;c.append(`Accept`,`text/turtle`);let l={credentials:`omit`,headers:c},u=(await a.store.fetcher?.webOperation(`GET`,s,l))?.responseText||`No response text?`,d=u.length>500?u.slice(0,200)+` ... `+u.slice(-200):u;if(n.log(` queryPublicDataConstruct result text:`+d),u.length===0)throw Error(`queryPublicDataConstruct: No text back from construct query:`+s);(0,i.parse)(u,a.store,t.uri,`text/turtle`)}async function E(e,t,n){if(n.uri.startsWith(`https://dbpedia.org/resource/`))return A(e,t,n);if(n.uri.match(/^https?:\/\/www\.wikidata\.org\/entity\/.*/))await D(e,t,n);else{let t=n.uri.startsWith(`http:`)?e.sym(`https:`+n.uri.slice(5)):n,r=new Headers;return r.append(`Accept`,`text/turtle`),e.fetcher.load(t,{credentials:`omit`,headers:r})}}async function D(e,t,r){await T(l.replace(/wd:Q49108/g,r.toNT()),r,h),n.log(`getWikidataDetails: loaded.`,r)}async function O(e,t,n){y(e,n,await w(`select distinct * where {
61
+ }`},g={"http://www.wikidata.org/entity/Q15936437":n.default.schema(`CollegeOrUniversity`),"http://www.wikidata.org/entity/Q1664720":n.default.schema(`EducationalOrganization`),"http://www.wikidata.org/entity/Q43229":n.default.schema(`Organization`),"http://www.wikidata.org/entity/Q3918":n.default.schema(`CollegeOrUniversity`),"http://www.wikidata.org/entity/Q170584":n.default.schema(`Project`),"http://www.wikidata.org/entity/Q327333":n.default.schema(`GovernmentOrganization`),"http://www.wikidata.org/entity/Q2221906":n.default.schema(`Place`),"http://www.wikidata.org/entity/Q167037":n.default.schema(`Corporation`)},_={targetClass:n.default.rdf(`type`),sealImage:n.default.schema(`logo`),shortName:n.default.foaf(`nick`),subsidiary:n.default.schema(`subOrganization`),city:n.default.vcard(`locality`),state:n.default.vcard(`region`),country:n.default.vcard(`country-name`),homepage:n.default.foaf(`homepage`),lat:n.default.schema(`latitude`),long:n.default.schema(`longitude`)};function v(e){let t=e.type.toLowerCase();if(t===`uri`||t===`iri`)return a.store.sym(e.value);if(t===`literal`)return e[`xml:lang`]?new i.Literal(e.value,e[`xml:lang`]):new i.Literal(e.value);throw Error(`bindingToTerm: Unexpected type "${e.type}" in sparql binding}`)}function y(e,r,a,o,s=_){let c={};t.log(`loadFromBindings: subject: ${r}`),t.log(` doc: ${o}`),a.forEach(e=>{for(let t in e){let n=e[t],r=JSON.stringify(n);c[t]=c[t]||new Set,c[t].add(r)}});for(let a in c){let l=c[a];t.log(` results ${a} -> ${l}`),l.forEach(c=>{let l=JSON.parse(c),{type:u,value:d}=l,f;if(u===`uri`)f=e.sym(d);else if(u===`literal`)f=new i.Literal(d,l.language,l.datatype);else throw Error(`loadFromBindings: unexpected type: ${u}`);if(a===`type`)g[d]?f=g[d]:t.warn(`Unmapped Wikidata Class: `+d);else if(a===`coordinates`){t.log(` @@@ hey a point: `+d);let a=/.*\(([-0-9.-]*) ([-0-9.-]*)\)/.exec(d);if(a){let t=n.default.xsd(`float`),s=new i.Literal(a[1],null,t),c=new i.Literal(a[2],null,t);e.add(r,n.default.schema(`longitude`),c,o),e.add(r,n.default.schema(`latitude`),s,o)}else t.log(`Bad coordinates syntax: `+d)}else{let i=s[a]||n.default.schema(a);e.add(r,i,f,o),t.log(` public data ${i} ${f}.`)}})}}function b(e){return e._embedded.results.map(e=>{let t=e.title,n=e.uri;return{name:{value:t,type:`literal`},subject:{type:`IRI`,value:n}}})}async function x(e,n,r){if(!r.searchByNameURI)throw Error(`Missing queryTarget.searchByNameURI on queryESCODataByName`);let i=r.limit||200,o=r.searchByNameURI.replace(`$(name)`,e).replace(`$(limit)`,``+i).replace(`$(targetClass)`,n.toNT());t.log(`Querying ESCO data - uri: `+o);let s=(await a.store.fetcher?.webOperation(`GET`,o,u))?.responseText||``;if(t.log(` Query result text`+s.slice(0,500)+`...`),s.length===0)throw Error(`Wot no text back from ESCO query `+o);let c=JSON.parse(s);return t.log(` ESCO Query result JSON`+JSON.stringify(c,null,4).slice(0,500)+`...`),b(c)}function S(e){let n=e.indexOf(`SPARQL-QUERY`);if(n<0)return e;t.warn(` ### Fixing JSON with wikidata error code injection `+e.slice(n,n+200));let r=e.lastIndexOf(`}, {`);return e.slice(0,r)+` } ] } } `}async function C(e,n,i,o){function s(t){let r=o.limit||200;return t.replace(`$(name)`,e).replace(`$(limit)`,``+r).replace(`$(language)`,c).replace(`$(targetClass)`,n.toNT())}if(!n)throw Error(`queryPublicDataByName: No class provided`);let c=(await r.getPreferredLanguages()||r.defaultPreferredLanguages)[0]||`en`;if(o.searchByNameQuery){let e=s(o.searchByNameQuery);return t.log(`Querying public data - sparql: `+e),w(e,o)}if(o.searchByNameURI){let e=s(o.searchByNameURI),n;try{n=await a.store.fetcher?.webOperation(`GET`,e,u)}catch(t){throw Error(`Exception when trying to fetch ${e} \n ${t}`)}let r=n.responseText||``;if(n.status!==200)throw Error(`HTTP error status ${n.status} trying to fetch ${e} `);if(t.log(` Query result text`+r.slice(0,500)+`...`),r.length===0)throw Error(`queryPublicDataByName: No text back from public data query `+e);let i=S(r),c=JSON.parse(i);if(t.log(` API Query result JSON`+JSON.stringify(c,null,4).slice(0,500)+`...`),c._embedded)return t.log(` Looks like ESCO`),b(c);throw alert(`Code me: unrecognized API return format`),Error(`*** Need to add code to parse unrecognized API JSON return\n${JSON.stringify(c,null,4)}`)}throw Error(`Query source must have either rest API or SPARQL endpoint.`)}async function w(e,n){if(!n.endpoint)throw Error(`Missing queryTarget.endpoint required for queryPublicDataSelect`);let r=new URL(n.endpoint);r.searchParams.append(`query`,e);let i=r.href;t.log(` queryPublicDataSelect uri: `+i);let o=new Headers;o.append(`Accept`,`application/json`);let s={credentials:`omit`,headers:o},c=(await a.store.fetcher?.webOperation(`GET`,i,s))?.responseText||``;if(c.length===0)throw Error(`No text back from query `+i);let l=S(c),u=JSON.parse(l);return t.log(` Query result JSON`+JSON.stringify(u,null,4).slice(0,100)+`...`),u.results.bindings}async function T(e,n,r){if(t.log(`queryPublicDataConstruct: sparql:`,e),!r.endpoint)throw Error(`Missing queryTarget.endpoint required for queryPublicDataConstruct`);let o=new URL(r.endpoint);o.searchParams.append(`query`,e);let s=o.href;t.log(` queryPublicDataConstruct uri: `+s);let c=new Headers;c.append(`Accept`,`text/turtle`);let l={credentials:`omit`,headers:c},u=(await a.store.fetcher?.webOperation(`GET`,s,l))?.responseText||`No response text?`,d=u.length>500?u.slice(0,200)+` ... `+u.slice(-200):u;if(t.log(` queryPublicDataConstruct result text:`+d),u.length===0)throw Error(`queryPublicDataConstruct: No text back from construct query:`+s);(0,i.parse)(u,a.store,n.uri,`text/turtle`)}async function E(e,t,n){if(n.uri.startsWith(`https://dbpedia.org/resource/`))return A(e,t,n);if(n.uri.match(/^https?:\/\/www\.wikidata\.org\/entity\/.*/))await D(e,t,n);else{let t=n.uri.startsWith(`http:`)?e.sym(`https:`+n.uri.slice(5)):n,r=new Headers;return r.append(`Accept`,`text/turtle`),e.fetcher.load(t,{credentials:`omit`,headers:r})}}async function D(e,n,r){await T(l.replace(/wd:Q49108/g,r.toNT()),r,h),t.log(`getWikidataDetails: loaded.`,r)}async function O(e,t,n){y(e,n,await w(`select distinct * where {
62
62
  optional { $(subject) wdt:P31 ?targetClass } # instance of
63
63
  optional { $(subject) wdt:P154 ?logo }
64
64
  optional { $(subject) wdt:P158 ?sealImage }
@@ -70,7 +70,7 @@ optional { $(subject) wdt:P1813 ?shortName }
70
70
 
71
71
  optional { $(subject) wdt:P355 ?subsidiary }
72
72
  # SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en,de,it" }
73
- }`.replace(s,n.toNT()),h),n.doc())}async function k(e,t,r){let i=`select distinct * where {
73
+ }`.replace(s,n.toNT()),h),n.doc())}async function k(e,n,r){let i=`select distinct * where {
74
74
 
75
75
  $(subject) wdt:P276 ?location .
76
76
 
@@ -80,12 +80,12 @@ optional { $(subject) wdt:P355 ?subsidiary }
80
80
  optional { ?location wdt:P17 ?country }
81
81
 
82
82
  # SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en,de,it" }
83
- }`.replace(s,r.toNT());n.log(` location query sparql:`+i);let a=await w(i,h);n.log(` location query bindings:`,a),y(e,r,a,r.doc())}async function A(e,t,r){y(e,r,await w(`select distinct ?city, ?state, ?country, ?homepage, ?logo, ?lat, ?long, WHERE {
83
+ }`.replace(s,r.toNT());t.log(` location query sparql:`+i);let a=await w(i,h);t.log(` location query bindings:`,a),y(e,r,a,r.doc())}async function A(e,n,r){y(e,r,await w(`select distinct ?city, ?state, ?country, ?homepage, ?logo, ?lat, ?long, WHERE {
84
84
  OPTIONAL { <${r}> <http://dbpedia.org/ontology/city> ?city }
85
85
  OPTIONAL { ${r} <http://dbpedia.org/ontology/state> ?state }
86
86
  OPTIONAL { ${r} <http://dbpedia.org/ontology/country> ?country }
87
87
  OPTIONAL { ${r} foaf:homepage ?homepage }
88
88
  OPTIONAL { ${r} foaf:lat ?lat; foaf:long ?long }
89
89
  OPTIONAL { ${r} <http://dbpedia.org/ontology/country> ?country }
90
- }`,f),r.doc()),n.log(`Finished getDbpediaDetails.`)}exports.ESCOResultToBindings=b,exports.bindingToTerm=v,exports.dbPediaTypeMap=p,exports.dbpediaParameters=f,exports.escoParameters=d,exports.fetcherOptionsJsonPublicData=u,exports.getDbpediaDetails=A,exports.getWikidataDetails=D,exports.getWikidataDetailsOld=O,exports.getWikidataLocation=k,exports.instituteDetailsWikidataQuery=l,exports.loadFromBindings=y,exports.loadPublicDataThing=E,Object.defineProperty(exports,"publicData_exports",{enumerable:!0,get:function(){return o}}),exports.queryESCODataByName=x,exports.queryPublicDataByName=C,exports.queryPublicDataConstruct=T,exports.queryPublicDataSelect=w,exports.variableNameToPredicateMap=_,exports.wikidataClasses=c,exports.wikidataIncomingClassMap=g,exports.wikidataOutgoingClassMap=m,exports.wikidataParameters=h;
90
+ }`,f),r.doc()),t.log(`Finished getDbpediaDetails.`)}exports.ESCOResultToBindings=b,exports.bindingToTerm=v,exports.dbPediaTypeMap=p,exports.dbpediaParameters=f,exports.escoParameters=d,exports.fetcherOptionsJsonPublicData=u,exports.getDbpediaDetails=A,exports.getWikidataDetails=D,exports.getWikidataDetailsOld=O,exports.getWikidataLocation=k,exports.instituteDetailsWikidataQuery=l,exports.loadFromBindings=y,exports.loadPublicDataThing=E,Object.defineProperty(exports,"publicData_exports",{enumerable:!0,get:function(){return o}}),exports.queryESCODataByName=x,exports.queryPublicDataByName=C,exports.queryPublicDataConstruct=T,exports.queryPublicDataSelect=w,exports.variableNameToPredicateMap=_,exports.wikidataClasses=c,exports.wikidataIncomingClassMap=g,exports.wikidataOutgoingClassMap=m,exports.wikidataParameters=h;
91
91
  //# sourceMappingURL=publicData.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"publicData.cjs.js","names":["store","ns","Literal","getPreferredLanguages","defaultPreferredLanguages","require_runtime","require_ns","require_debug","require_language","rdflib","solid_logic","publicData_exports","ESCOResultToBindings","bindingToTerm","dbPediaTypeMap","dbpediaParameters","escoParameters","fetcherOptionsJsonPublicData","getDbpediaDetails","getWikidataDetails","getWikidataDetailsOld","getWikidataLocation","instituteDetailsWikidataQuery","loadFromBindings","loadPublicDataThing","queryESCODataByName","queryPublicDataByName","queryPublicDataConstruct","queryPublicDataSelect","variableNameToPredicateMap","wikidataClasses","wikidataIncomingClassMap","wikidataOutgoingClassMap","wikidataParameters","subjectRegexp","typ","item","results","solidSubject","doc","bindings","key","binding","result","combined","values","obj","type","kb","value","match","float","latitude","longitude","pred","predMap","json","name","uri","queryTarget","limit","queryURI","filter","theClass","text","fixWikidataJSON","syntaxProblem","str","goodness","substituteStrings","template","language","sparql","response","err","text2","myUrlWithParams","headers","options","report","pubicId","publicDataID","subject","iDToFetch"],"sources":["../../../../src/widgets/forms/autocomplete/publicData.ts"],"sourcesContent":["/* Logic to access public data stores\n*\n* including filtering resut by natural language etc\n* See https://solidos.solidcommunity.net/public/2021/01%20Building%20Solid%20Apps%20which%20use%20Public%20Data.html\n*/\n\nimport { Literal, NamedNode, parse } from 'rdflib'\nimport { store } from 'solid-logic'\nimport * as debug from '../../../lib/debug'\nimport ns from '../../../lib/ns'\nimport { defaultPreferredLanguages, getPreferredLanguages } from './language'\n\nexport const AUTOCOMPLETE_LIMIT = 200 // How many to get from server\n// With 3000 we could exceed the wikidata timeout\n\nconst subjectRegexp = /\\$\\(subject\\)/g\n\ninterface Term {\n type: string;\n value: string\n}\n\nexport interface Binding {\n subject: Term;\n name?: Term\n location?: Term\n coordinates?: Term\n}\n\ntype Bindings = Binding[]\n\nexport type QueryParameters =\n{\n label: string;\n limit?: number;\n logo?: NamedNode;\n searchByNameQuery?: string;\n searchByNameURI?: string;\n insitituteDetailsQuery?: string;\n endpoint?: string;\n objectURIBase?: NamedNode;\n targetClass?: NamedNode,\n}\n\n// Schema.org seems to suggest NGOs are non-profit and Corporaions are for-profit\n// but doesn't have explicit classes\nexport const wikidataClasses = {\n Corporation: 'http://www.wikidata.org/entity/Q6881511', // Enterprise is for-profit\n EducationalOrganization: 'http://www.wikidata.org/entity/Q178706', // insitution\n GovernmentOrganization: 'http://www.wikidata.org/entity/Q327333', // government agency\n MedicalOrganization: 'http://www.wikidata.org/entity/Q4287745',\n MusicGroup: 'http://www.wikidata.org/entity/Q32178211', // music organization\n NGO: 'http://www.wikidata.org/entity/Q163740', // nonprofit organization @@\n Occupation: 'http://www.wikidata.org/entity/Q28640', // Profession\n // Organization: 'http://www.wikidata.org/entity/Q43229',\n Project: 'http://www.wikidata.org/entity/Q170584',\n ResearchOrganization: 'http://www.wikidata.org/entity/Q31855',\n SportsOrganization: 'http://www.wikidata.org/entity/Q4438121'\n}\n\nexport const instituteDetailsWikidataQuery = `prefix vcard: <http://www.w3.org/2006/vcard/ns#>\nCONSTRUCT\n{ wd:Q49108 vcard:fn ?itemLabel.\nwd:Q49108 rdf:type ?klass. ?klass rdfs:label ?klassLabel; rdfs:comment ?klassDescription .\nwd:Q49108 schema:logo ?logo;\n schema:image ?image;\n schema:logo ?sealImage;\n schema:subOrganization ?subsidiary .\n ?subsidiary rdfs:label ?subsidiaryLabel .\n ?supersidiary schema:subOrganization wd:Q49108 .\n ?supersidiary rdfs:label ?supersidiaryLabel .\n wd:Q49108 schema:location ?location .\n ?location schema:elevation ?elevation .\n ?location wdt:P131 ?region . ?region rdfs:label ?regionLabel .\n ?location wdt:P625 ?coordinates .\n ?location schema:country ?country . ?country rdfs:label ?countryLabel .\n}\nWHERE\n{ optional {wd:Q49108 rdfs:label ?itemLabel} .\n optional {wd:Q49108 wdt:P154 ?logo .}\n optional {wd:Q49108 wdt:P31 ?klass .}\n optional {wd:Q49108 wdt:P158 ?sealImage .}\n optional {wd:Q49108 wdt:P18 ?image .}\n\n optional { wd:Q49108 wdt:P355 ?subsidiary . }\n optional { ?supersidiary wdt:P355 wd:Q49108. }\n\n optional { wd:Q49108 wdt:P276 ?location .\n\n optional { ?location schema:eleveation ?elevation }\n optional { ?location wdt:P131 ?region }\n optional { ?location wdt:P625 ?coordinates }\n optional { ?location wdt:P17 ?country }\n }\n SERVICE wikibase:label { bd:serviceParam wikibase:language \"fr,en,de,it\". }\n}`\n\nexport const fetcherOptionsJsonPublicData = {\n credentials: 'omit' as 'include' | 'omit' | undefined, // try to avoid CORS problems. Data is public so no auth\n headers: new Headers({ Accept: 'application/json' })\n}\n\nexport const escoParameters:QueryParameters = {\n label: 'ESCO',\n logo: store.sym('https://ec.europa.eu/esco/portal/static_resource2/images/logo/logo_en.gif'),\n searchByNameURI: 'https://ec.europa.eu/esco/api/search?language=$(language)&type=occupation&text=$(name)'\n // endpoint: undefined\n // returnFormat: 'ESCO',\n // targetClass: {}\n}\n\nexport const dbpediaParameters:QueryParameters = {\n label: 'DBPedia',\n logo: store.sym('https://upload.wikimedia.org/wikipedia/commons/thumb/7/73/DBpediaLogo.svg/263px-DBpediaLogo.svg.png'),\n searchByNameQuery: `select distinct ?subject, ?name where {\n ?subject a $(targetClass); rdfs:label ?name\n FILTER regex(?name, \"$(name)\", \"i\")\n } LIMIT $(limit)`,\n endpoint: 'https://dbpedia.org/sparql/'\n}\n\nexport const dbPediaTypeMap = { AcademicInsitution: 'http://umbel.org/umbel/rc/EducationalOrganization' }\n\nexport const wikidataOutgoingClassMap = {\n AcademicInsitution: 'http://www.wikidata.org/entity/Q4671277',\n Enterprise: 'http://www.wikidata.org/entity/Q6881511',\n Business: 'http://www.wikidata.org/entity/Q4830453',\n NGO: 'http://www.wikidata.org/entity/Q79913',\n CharitableOrganization: 'http://www.wikidata.org/entity/Q708676',\n Insitute: 'http://www.wikidata.org/entity/Q1664720'\n}\n\nexport const wikidataParameters = {\n label: 'WikiData',\n limit: 3000, // Need a high one as very many items, and many languages\n logo: store.sym('https://www.wikimedia.org/static/images/project-logos/wikidatawiki.png'),\n endpoint: 'https://query.wikidata.org/sparql',\n searchByNameQuery: `SELECT ?subject ?name\n WHERE {\n ?klass wdt:P279* $(targetClass) .\n ?subject wdt:P31 ?klass .\n ?subject rdfs:label ?name.\n FILTER regex(?name, \"$(name)\", \"i\")\n } LIMIT $(limit) `, // was SERVICE wikibase:label { bd:serviceParam wikibase:language \"[AUTO_LANGUAGE],en\" }\n\n insitituteDetailsQuery: `CONSTRUCT\n{ wd:Q49108 schema:name ?itemLabel;\n schema:logo ?logo;\n schema:logo ?sealImage;\n schema:subOrganization ?subsidiary .\n ?subsidiary schema:name ?subsidiaryLabel .\n}\nWHERE\n{\n wd:Q49108 # rdfs:label ?itemLabel ;\n wdt:P154 ?logo;\n wdt:P158 ?sealImage ;\n wdt:P355 ?subsidiary .\n # ?subsidiary rdfs:label ?subsidiaryLabel .\n\n SERVICE wikibase:label { bd:serviceParam wikibase:language \"[AUTO_LANGUAGE], fr\". }\n}`\n}\n\nexport const wikidataIncomingClassMap = {\n 'http://www.wikidata.org/entity/Q15936437': ns.schema('CollegeOrUniversity'), // research university\n 'http://www.wikidata.org/entity/Q1664720': ns.schema('EducationalOrganization'), // insitute @@\n 'http://www.wikidata.org/entity/Q43229': ns.schema('Organization'), // research university\n 'http://www.wikidata.org/entity/Q3918': ns.schema('CollegeOrUniversity'), // university\n 'http://www.wikidata.org/entity/Q170584': ns.schema('Project'), // university\n 'http://www.wikidata.org/entity/Q327333': ns.schema('GovernmentOrganization'), // govt agency\n 'http://www.wikidata.org/entity/Q2221906': ns.schema('Place'), // geographic location\n 'http://www.wikidata.org/entity/Q167037': ns.schema('Corporation') // Corporation\n\n}\nexport const variableNameToPredicateMap = { // allow other mappings to be added in theory hence var\n // wikidata:\n targetClass: ns.rdf('type'),\n // logo: ns.schema('logo'),\n sealImage: ns.schema('logo'),\n // image: ns.schema('image'), defaults to shema\n shortName: ns.foaf('nick'),\n subsidiary: ns.schema('subOrganization'),\n // dbpedia - :\n city: ns.vcard('locality'),\n state: ns.vcard('region'),\n country: ns.vcard('country-name'),\n homepage: ns.foaf('homepage'),\n lat: ns.schema('latitude'),\n long: ns.schema('longitude')\n}\n\nexport function bindingToTerm (item) {\n const typ = item.type.toLowerCase()\n if (typ === 'uri' || typ === 'iri') {\n return store.sym(item.value)\n } else if (typ === 'literal') {\n if (item['xml:lang']) {\n return new Literal(item.value, item['xml:lang'])\n } else {\n return new Literal(item.value)\n }\n } else {\n throw new Error(`bindingToTerm: Unexpected type \"${item.type}\" in sparql binding}`)\n }\n}\n\nexport function loadFromBindings (kb, solidSubject:NamedNode, bindings, doc, predMap = variableNameToPredicateMap) {\n const results = {}\n debug.log(`loadFromBindings: subject: ${solidSubject}`)\n debug.log(` doc: ${doc}`)\n bindings.forEach(binding => {\n for (const key in binding) {\n const result = binding[key]\n const combined = JSON.stringify(result) // ( result.type, result.value )\n results[key] = results[key] || new Set()\n results[key].add(combined) // remove duplicates\n }\n })\n for (const key in results) {\n const values = results[key]\n debug.log(` results ${key} -> ${values}`)\n values.forEach(combined => {\n const result = JSON.parse(combined)\n const { type, value } = result\n let obj\n if (type === 'uri') {\n obj = kb.sym(value)\n } else if (type === 'literal') {\n obj = new Literal(value, result.language, result.datatype)\n } else {\n throw new Error(`loadFromBindings: unexpected type: ${type}`)\n }\n if (key === 'type') {\n if (wikidataIncomingClassMap[value]) {\n obj = wikidataIncomingClassMap[value]\n } else {\n debug.warn('Unmapped Wikidata Class: ' + value)\n }\n } else if (key === 'coordinates') {\n // const latlong = value // Like 'Point(-71.106111111 42.375)'\n debug.log(' @@@ hey a point: ' + value)\n // const regexp = /.*\\(([-0-9\\.-]*) ([-0-9\\.-]*)\\)/\n const regexp = /.*\\(([-0-9.-]*) ([-0-9.-]*)\\)/\n const match = regexp.exec(value)\n if (match) {\n const float = ns.xsd('float')\n const latitude = new Literal(match[1], null, float)\n const longitude = new Literal(match[2], null, float)\n kb.add(solidSubject, ns.schema('longitude'), longitude, doc)\n kb.add(solidSubject, ns.schema('latitude'), latitude, doc)\n } else {\n debug.log('Bad coordinates syntax: ' + value)\n }\n } else {\n const pred = predMap[key] || ns.schema(key) // fallback to just using schema.org\n kb.add(solidSubject, pred, obj, doc) // @@ deal with non-string and objects\n debug.log(` public data ${pred} ${obj}.`)\n }\n })\n }\n}\n\n/* ESCO sopecific\n*/\nexport function ESCOResultToBindings (json: Object): Bindings {\n const results = (json as any)._embedded.results // Array\n const bindings = results.map(result => {\n const name = result.title\n const uri = result.uri // like http://data.europa.eu/esco/occupation/57af9090-55b4-4911-b2d0-86db01c00b02\n return { name: { value: name, type: 'literal' }, subject: { type: 'IRI', value: uri } } // simulate SPARQL bindings\n })\n return bindings\n}\n\n/* Query all entities of given class and partially matching name\n*/\nexport async function queryESCODataByName (filter: string, theClass:NamedNode, queryTarget: QueryParameters): Promise<Bindings> {\n if (!queryTarget.searchByNameURI) throw new Error('Missing queryTarget.searchByNameURI on queryESCODataByName')\n const limit = queryTarget.limit || AUTOCOMPLETE_LIMIT\n const queryURI = queryTarget.searchByNameURI\n .replace('$(name)', filter)\n .replace('$(limit)', '' + limit)\n .replace('$(targetClass)', theClass.toNT())\n debug.log('Querying ESCO data - uri: ' + queryURI)\n\n const response = await store.fetcher?.webOperation('GET', queryURI, fetcherOptionsJsonPublicData)\n const text = response?.responseText || ''\n debug.log(' Query result text' + text.slice(0, 500) + '...')\n if (text.length === 0) throw new Error('Wot no text back from ESCO query ' + queryURI)\n const json = JSON.parse(text)\n // console.log('Whole JSON return object', json)\n debug.log(' ESCO Query result JSON' + JSON.stringify(json, null, 4).slice(0, 500) + '...')\n return ESCOResultToBindings(json)\n}\n\n/* Cope ithe syntax probelm in wikidata timeout responses\n*\n* Wikidata bug: https://phabricator.wikimedia.org/T283962\n* This will not be needed whn that WDQS bug fixed.\n* This is aptured in https://github.com/solidos/solid-ui/issues/403\n*/\nfunction fixWikidataJSON (str) {\n const syntaxProblem = str.indexOf('SPARQL-QUERY')\n if (syntaxProblem < 0) return str\n // console.log('@@ fixWikidataJSON FIXING')\n debug.warn(' ### Fixing JSON with wikidata error code injection ' + str.slice(syntaxProblem, syntaxProblem + 200))\n const goodness = str.lastIndexOf('}, {')\n return str.slice(0, goodness) + ' } ] } } ' // Close binding, array, bindings, results, root object\n}\n/* Query all entities of given class and partially matching name\n*/\nexport async function queryPublicDataByName (\n filter: string,\n theClass:NamedNode,\n languages: Array<string>,\n queryTarget: QueryParameters): Promise<Bindings> {\n function substituteStrings (template: string):string {\n const limit = queryTarget.limit || AUTOCOMPLETE_LIMIT\n const u1 = template.replace('$(name)', filter)\n .replace('$(limit)', '' + limit)\n .replace('$(language)', language)\n return u1.replace('$(targetClass)', theClass.toNT())\n }\n\n if (!theClass) {\n throw new Error('queryPublicDataByName: No class provided')\n }\n\n const languagePrefs = await getPreferredLanguages() || defaultPreferredLanguages\n const language = languagePrefs[0] || 'en'\n if (queryTarget.searchByNameQuery) {\n const sparql = substituteStrings(queryTarget.searchByNameQuery)\n debug.log('Querying public data - sparql: ' + sparql)\n return queryPublicDataSelect(sparql, queryTarget)\n } else if (queryTarget.searchByNameURI) { // not sparql - random API\n const queryURI = substituteStrings(queryTarget.searchByNameURI)\n let response\n try {\n response = await store.fetcher?.webOperation('GET', queryURI, fetcherOptionsJsonPublicData)\n } catch (err) {\n throw new Error(`Exception when trying to fetch ${queryURI} \\n ${err}`)\n }\n const text = response.responseText || '' // ts\n if (response.status !== 200) {\n throw new Error(`HTTP error status ${response.status} trying to fetch ${queryURI} `)\n }\n debug.log(' Query result text' + text.slice(0, 500) + '...')\n if (text.length === 0) throw new Error('queryPublicDataByName: No text back from public data query ' + queryURI)\n const text2 = fixWikidataJSON(text) // Kludge: strip of interrupting error message\n const json = JSON.parse(text2)\n debug.log(' API Query result JSON' + JSON.stringify(json, null, 4).slice(0, 500) + '...')\n if ((json as any)._embedded) {\n debug.log(' Looks like ESCO')\n const bindings = ESCOResultToBindings(json)\n return bindings\n } else {\n alert('Code me: unrecognized API return format')\n throw new Error(`*** Need to add code to parse unrecognized API JSON return\\n${JSON.stringify(json, null, 4)}`)\n }\n } else {\n throw new Error('Query source must have either rest API or SPARQL endpoint.')\n }\n}\n\n/* Query a database using SPARQL SELECT\n*/\nexport async function queryPublicDataSelect (sparql: string, queryTarget: QueryParameters): Promise<Bindings> {\n if (!queryTarget.endpoint) throw new Error('Missing queryTarget.endpoint required for queryPublicDataSelect')\n const myUrlWithParams = new URL(queryTarget.endpoint)\n myUrlWithParams.searchParams.append('query', sparql)\n const queryURI = myUrlWithParams.href\n debug.log(' queryPublicDataSelect uri: ' + queryURI)\n const headers = new Headers()\n headers.append('Accept', 'application/json')\n const options = {\n credentials: 'omit' as 'include' | 'omit' | undefined, // CORS - as we know it is public\n headers\n }\n\n const response = await store.fetcher?.webOperation('GET', queryURI, options)\n\n const text = response?.responseText || ''\n if (text.length === 0) throw new Error('No text back from query ' + queryURI)\n const text2 = fixWikidataJSON(text)\n const json = JSON.parse(text2)\n debug.log(' Query result JSON' + JSON.stringify(json, null, 4).slice(0, 100) + '...')\n const bindings = json.results.bindings\n return bindings\n}\n\n/* Load from a database using SPARQL CONSTRUCT\n*/\nexport async function queryPublicDataConstruct (sparql: string, pubicId: NamedNode, queryTarget: QueryParameters): Promise<void> {\n debug.log('queryPublicDataConstruct: sparql:', sparql)\n if (!queryTarget.endpoint) throw new Error('Missing queryTarget.endpoint required for queryPublicDataConstruct')\n const myUrlWithParams = new URL(queryTarget.endpoint)\n myUrlWithParams.searchParams.append('query', sparql)\n const queryURI = myUrlWithParams.href\n debug.log(' queryPublicDataConstruct uri: ' + queryURI)\n const headers = new Headers()\n headers.append('Accept', 'text/turtle')\n const options = {\n credentials: 'omit' as 'include' | 'omit' | undefined, // CORS // @tsc pain\n headers // ({ Accept: 'text/turtle' } as Headers)\n }\n const response = await store.fetcher?.webOperation('GET', queryURI, options)\n const text = response?.responseText || 'No response text?'\n const report = text.length > 500 ? text.slice(0, 200) + ' ... ' + text.slice(-200) : text\n debug.log(' queryPublicDataConstruct result text:' + report)\n if (text.length === 0) throw new Error('queryPublicDataConstruct: No text back from construct query:' + queryURI)\n parse(text, store, pubicId.uri, 'text/turtle')\n}\n\nexport async function loadPublicDataThing (kb, subject: NamedNode, publicDataID: NamedNode) {\n if (publicDataID.uri.startsWith('https://dbpedia.org/resource/')) {\n return getDbpediaDetails(kb, subject, publicDataID)\n } else if (publicDataID.uri.match(/^https?:\\/\\/www\\.wikidata\\.org\\/entity\\/.*/)) {\n // const QId = publicDataID.uri.split('/')[4]\n // const dataURI = `http://www.wikidata.org/wiki/Special:EntityData/${QId}.ttl`\n // In fact loading the data URI gives much too much irrelevant data, from wikidata, so we do a query.\n await getWikidataDetails(kb, subject, publicDataID)\n // await getWikidataLocation(kb, subject, publicDataID) -- should get that in the details query now\n } else {\n const iDToFetch = publicDataID.uri.startsWith('http:')\n ? kb.sym('https:' + publicDataID.uri.slice(5))\n : publicDataID\n const headers = new Headers()\n headers.append('Accept', 'text/turtle')\n return kb.fetcher.load(iDToFetch, {\n credentials: 'omit' as 'include' | 'omit' | undefined,\n headers\n })\n }\n}\n\nexport async function getWikidataDetails (kb, solidSubject:NamedNode, publicDataID:NamedNode) {\n const subjRegexp = /wd:Q49108/g\n const sparql = instituteDetailsWikidataQuery.replace(subjRegexp, publicDataID.toNT())\n await queryPublicDataConstruct(sparql, publicDataID, wikidataParameters)\n debug.log('getWikidataDetails: loaded.', publicDataID)\n}\n\nexport async function getWikidataDetailsOld (kb, solidSubject:NamedNode, publicDataID:NamedNode) {\n const sparql = `select distinct * where {\n optional { $(subject) wdt:P31 ?targetClass } # instance of\n optional { $(subject) wdt:P154 ?logo }\n optional { $(subject) wdt:P158 ?sealImage }\n# optional { $(subject) wdt:P159 ?headquartersLocation }\n\noptional { $(subject) wdt:P17 ?country }\noptional { $(subject) wdt:P18 ?image }\noptional { $(subject) wdt:P1813 ?shortName }\n\noptional { $(subject) wdt:P355 ?subsidiary }\n# SERVICE wikibase:label { bd:serviceParam wikibase:language \"fr,en,de,it\" }\n}`\n .replace(subjectRegexp, publicDataID.toNT())\n const bindings = await queryPublicDataSelect(sparql, wikidataParameters)\n loadFromBindings(kb, publicDataID, bindings, publicDataID.doc()) // arg2 was solidSubject\n}\n\nexport async function getWikidataLocation (kb, solidSubject:NamedNode, publicDataID:NamedNode) {\n const sparql = `select distinct * where {\n\n $(subject) wdt:P276 ?location .\n\n optional { ?location wdt:P2044 ?elevation }\n optional { ?location wdt:P131 ?region }\n optional { ?location wdt:P625 ?coordinates }\noptional { ?location wdt:P17 ?country }\n\n# SERVICE wikibase:label { bd:serviceParam wikibase:language \"fr,en,de,it\" }\n}`.replace(subjectRegexp, publicDataID.toNT())\n debug.log(' location query sparql:' + sparql)\n const bindings = await queryPublicDataSelect(sparql, wikidataParameters)\n debug.log(' location query bindings:', bindings)\n loadFromBindings(kb, publicDataID, bindings, publicDataID.doc()) // was solidSubject\n}\n\nexport async function getDbpediaDetails (kb, solidSubject:NamedNode, publicDataID:NamedNode) {\n// Note below the string form of the named node with <> works in SPARQL\n const sparql = `select distinct ?city, ?state, ?country, ?homepage, ?logo, ?lat, ?long, WHERE {\n OPTIONAL { <${publicDataID}> <http://dbpedia.org/ontology/city> ?city }\n OPTIONAL { ${publicDataID} <http://dbpedia.org/ontology/state> ?state }\n OPTIONAL { ${publicDataID} <http://dbpedia.org/ontology/country> ?country }\n OPTIONAL { ${publicDataID} foaf:homepage ?homepage }\n OPTIONAL { ${publicDataID} foaf:lat ?lat; foaf:long ?long }\n OPTIONAL { ${publicDataID} <http://dbpedia.org/ontology/country> ?country }\n }`\n const bindings = await queryPublicDataSelect(sparql, dbpediaParameters)\n loadFromBindings(kb, publicDataID, bindings, publicDataID.doc())\n debug.log('Finished getDbpediaDetails.')\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"publicData.cjs.js","names":["store","ns","Literal","getPreferredLanguages","defaultPreferredLanguages","require_runtime","require_debug","require_ns","require_language","rdflib","solid_logic","publicData_exports","ESCOResultToBindings","bindingToTerm","dbPediaTypeMap","dbpediaParameters","escoParameters","fetcherOptionsJsonPublicData","getDbpediaDetails","getWikidataDetails","getWikidataDetailsOld","getWikidataLocation","instituteDetailsWikidataQuery","loadFromBindings","loadPublicDataThing","queryESCODataByName","queryPublicDataByName","queryPublicDataConstruct","queryPublicDataSelect","variableNameToPredicateMap","wikidataClasses","wikidataIncomingClassMap","wikidataOutgoingClassMap","wikidataParameters","subjectRegexp","typ","item","results","solidSubject","doc","bindings","key","binding","result","combined","values","obj","type","kb","value","match","float","latitude","longitude","pred","predMap","json","name","uri","queryTarget","limit","queryURI","filter","theClass","text","fixWikidataJSON","syntaxProblem","str","goodness","substituteStrings","template","language","sparql","response","err","text2","myUrlWithParams","headers","options","report","pubicId","publicDataID","subject","iDToFetch"],"sources":["../../../../src/widgets/forms/autocomplete/publicData.ts"],"sourcesContent":["/* Logic to access public data stores\n*\n* including filtering resut by natural language etc\n* See https://solidos.solidcommunity.net/public/2021/01%20Building%20Solid%20Apps%20which%20use%20Public%20Data.html\n*/\n\nimport { Literal, NamedNode, parse } from 'rdflib'\nimport { store } from 'solid-logic'\nimport * as debug from '../../../lib/debug'\nimport ns from '../../../lib/ns'\nimport { defaultPreferredLanguages, getPreferredLanguages } from './language'\n\nexport const AUTOCOMPLETE_LIMIT = 200 // How many to get from server\n// With 3000 we could exceed the wikidata timeout\n\nconst subjectRegexp = /\\$\\(subject\\)/g\n\ninterface Term {\n type: string;\n value: string\n}\n\nexport interface Binding {\n subject: Term;\n name?: Term\n location?: Term\n coordinates?: Term\n}\n\ntype Bindings = Binding[]\n\nexport type QueryParameters =\n{\n label: string;\n limit?: number;\n logo?: NamedNode;\n searchByNameQuery?: string;\n searchByNameURI?: string;\n insitituteDetailsQuery?: string;\n endpoint?: string;\n objectURIBase?: NamedNode;\n targetClass?: NamedNode,\n}\n\n// Schema.org seems to suggest NGOs are non-profit and Corporaions are for-profit\n// but doesn't have explicit classes\nexport const wikidataClasses = {\n Corporation: 'http://www.wikidata.org/entity/Q6881511', // Enterprise is for-profit\n EducationalOrganization: 'http://www.wikidata.org/entity/Q178706', // insitution\n GovernmentOrganization: 'http://www.wikidata.org/entity/Q327333', // government agency\n MedicalOrganization: 'http://www.wikidata.org/entity/Q4287745',\n MusicGroup: 'http://www.wikidata.org/entity/Q32178211', // music organization\n NGO: 'http://www.wikidata.org/entity/Q163740', // nonprofit organization @@\n Occupation: 'http://www.wikidata.org/entity/Q28640', // Profession\n // Organization: 'http://www.wikidata.org/entity/Q43229',\n Project: 'http://www.wikidata.org/entity/Q170584',\n ResearchOrganization: 'http://www.wikidata.org/entity/Q31855',\n SportsOrganization: 'http://www.wikidata.org/entity/Q4438121'\n}\n\nexport const instituteDetailsWikidataQuery = `prefix vcard: <http://www.w3.org/2006/vcard/ns#>\nCONSTRUCT\n{ wd:Q49108 vcard:fn ?itemLabel.\nwd:Q49108 rdf:type ?klass. ?klass rdfs:label ?klassLabel; rdfs:comment ?klassDescription .\nwd:Q49108 schema:logo ?logo;\n schema:image ?image;\n schema:logo ?sealImage;\n schema:subOrganization ?subsidiary .\n ?subsidiary rdfs:label ?subsidiaryLabel .\n ?supersidiary schema:subOrganization wd:Q49108 .\n ?supersidiary rdfs:label ?supersidiaryLabel .\n wd:Q49108 schema:location ?location .\n ?location schema:elevation ?elevation .\n ?location wdt:P131 ?region . ?region rdfs:label ?regionLabel .\n ?location wdt:P625 ?coordinates .\n ?location schema:country ?country . ?country rdfs:label ?countryLabel .\n}\nWHERE\n{ optional {wd:Q49108 rdfs:label ?itemLabel} .\n optional {wd:Q49108 wdt:P154 ?logo .}\n optional {wd:Q49108 wdt:P31 ?klass .}\n optional {wd:Q49108 wdt:P158 ?sealImage .}\n optional {wd:Q49108 wdt:P18 ?image .}\n\n optional { wd:Q49108 wdt:P355 ?subsidiary . }\n optional { ?supersidiary wdt:P355 wd:Q49108. }\n\n optional { wd:Q49108 wdt:P276 ?location .\n\n optional { ?location schema:eleveation ?elevation }\n optional { ?location wdt:P131 ?region }\n optional { ?location wdt:P625 ?coordinates }\n optional { ?location wdt:P17 ?country }\n }\n SERVICE wikibase:label { bd:serviceParam wikibase:language \"fr,en,de,it\". }\n}`\n\nexport const fetcherOptionsJsonPublicData = {\n credentials: 'omit' as 'include' | 'omit' | undefined, // try to avoid CORS problems. Data is public so no auth\n headers: new Headers({ Accept: 'application/json' })\n}\n\nexport const escoParameters:QueryParameters = {\n label: 'ESCO',\n logo: store.sym('https://ec.europa.eu/esco/portal/static_resource2/images/logo/logo_en.gif'),\n searchByNameURI: 'https://ec.europa.eu/esco/api/search?language=$(language)&type=occupation&text=$(name)'\n // endpoint: undefined\n // returnFormat: 'ESCO',\n // targetClass: {}\n}\n\nexport const dbpediaParameters:QueryParameters = {\n label: 'DBPedia',\n logo: store.sym('https://upload.wikimedia.org/wikipedia/commons/thumb/7/73/DBpediaLogo.svg/263px-DBpediaLogo.svg.png'),\n searchByNameQuery: `select distinct ?subject, ?name where {\n ?subject a $(targetClass); rdfs:label ?name\n FILTER regex(?name, \"$(name)\", \"i\")\n } LIMIT $(limit)`,\n endpoint: 'https://dbpedia.org/sparql/'\n}\n\nexport const dbPediaTypeMap = { AcademicInsitution: 'http://umbel.org/umbel/rc/EducationalOrganization' }\n\nexport const wikidataOutgoingClassMap = {\n AcademicInsitution: 'http://www.wikidata.org/entity/Q4671277',\n Enterprise: 'http://www.wikidata.org/entity/Q6881511',\n Business: 'http://www.wikidata.org/entity/Q4830453',\n NGO: 'http://www.wikidata.org/entity/Q79913',\n CharitableOrganization: 'http://www.wikidata.org/entity/Q708676',\n Insitute: 'http://www.wikidata.org/entity/Q1664720'\n}\n\nexport const wikidataParameters = {\n label: 'WikiData',\n limit: 3000, // Need a high one as very many items, and many languages\n logo: store.sym('https://www.wikimedia.org/static/images/project-logos/wikidatawiki.png'),\n endpoint: 'https://query.wikidata.org/sparql',\n searchByNameQuery: `SELECT ?subject ?name\n WHERE {\n ?klass wdt:P279* $(targetClass) .\n ?subject wdt:P31 ?klass .\n ?subject rdfs:label ?name.\n FILTER regex(?name, \"$(name)\", \"i\")\n } LIMIT $(limit) `, // was SERVICE wikibase:label { bd:serviceParam wikibase:language \"[AUTO_LANGUAGE],en\" }\n\n insitituteDetailsQuery: `CONSTRUCT\n{ wd:Q49108 schema:name ?itemLabel;\n schema:logo ?logo;\n schema:logo ?sealImage;\n schema:subOrganization ?subsidiary .\n ?subsidiary schema:name ?subsidiaryLabel .\n}\nWHERE\n{\n wd:Q49108 # rdfs:label ?itemLabel ;\n wdt:P154 ?logo;\n wdt:P158 ?sealImage ;\n wdt:P355 ?subsidiary .\n # ?subsidiary rdfs:label ?subsidiaryLabel .\n\n SERVICE wikibase:label { bd:serviceParam wikibase:language \"[AUTO_LANGUAGE], fr\". }\n}`\n}\n\nexport const wikidataIncomingClassMap = {\n 'http://www.wikidata.org/entity/Q15936437': ns.schema('CollegeOrUniversity'), // research university\n 'http://www.wikidata.org/entity/Q1664720': ns.schema('EducationalOrganization'), // insitute @@\n 'http://www.wikidata.org/entity/Q43229': ns.schema('Organization'), // research university\n 'http://www.wikidata.org/entity/Q3918': ns.schema('CollegeOrUniversity'), // university\n 'http://www.wikidata.org/entity/Q170584': ns.schema('Project'), // university\n 'http://www.wikidata.org/entity/Q327333': ns.schema('GovernmentOrganization'), // govt agency\n 'http://www.wikidata.org/entity/Q2221906': ns.schema('Place'), // geographic location\n 'http://www.wikidata.org/entity/Q167037': ns.schema('Corporation') // Corporation\n\n}\nexport const variableNameToPredicateMap = { // allow other mappings to be added in theory hence var\n // wikidata:\n targetClass: ns.rdf('type'),\n // logo: ns.schema('logo'),\n sealImage: ns.schema('logo'),\n // image: ns.schema('image'), defaults to shema\n shortName: ns.foaf('nick'),\n subsidiary: ns.schema('subOrganization'),\n // dbpedia - :\n city: ns.vcard('locality'),\n state: ns.vcard('region'),\n country: ns.vcard('country-name'),\n homepage: ns.foaf('homepage'),\n lat: ns.schema('latitude'),\n long: ns.schema('longitude')\n}\n\nexport function bindingToTerm (item) {\n const typ = item.type.toLowerCase()\n if (typ === 'uri' || typ === 'iri') {\n return store.sym(item.value)\n } else if (typ === 'literal') {\n if (item['xml:lang']) {\n return new Literal(item.value, item['xml:lang'])\n } else {\n return new Literal(item.value)\n }\n } else {\n throw new Error(`bindingToTerm: Unexpected type \"${item.type}\" in sparql binding}`)\n }\n}\n\nexport function loadFromBindings (kb, solidSubject:NamedNode, bindings, doc, predMap = variableNameToPredicateMap) {\n const results = {}\n debug.log(`loadFromBindings: subject: ${solidSubject}`)\n debug.log(` doc: ${doc}`)\n bindings.forEach(binding => {\n for (const key in binding) {\n const result = binding[key]\n const combined = JSON.stringify(result) // ( result.type, result.value )\n results[key] = results[key] || new Set()\n results[key].add(combined) // remove duplicates\n }\n })\n for (const key in results) {\n const values = results[key]\n debug.log(` results ${key} -> ${values}`)\n values.forEach(combined => {\n const result = JSON.parse(combined)\n const { type, value } = result\n let obj\n if (type === 'uri') {\n obj = kb.sym(value)\n } else if (type === 'literal') {\n obj = new Literal(value, result.language, result.datatype)\n } else {\n throw new Error(`loadFromBindings: unexpected type: ${type}`)\n }\n if (key === 'type') {\n if (wikidataIncomingClassMap[value]) {\n obj = wikidataIncomingClassMap[value]\n } else {\n debug.warn('Unmapped Wikidata Class: ' + value)\n }\n } else if (key === 'coordinates') {\n // const latlong = value // Like 'Point(-71.106111111 42.375)'\n debug.log(' @@@ hey a point: ' + value)\n // const regexp = /.*\\(([-0-9\\.-]*) ([-0-9\\.-]*)\\)/\n const regexp = /.*\\(([-0-9.-]*) ([-0-9.-]*)\\)/\n const match = regexp.exec(value)\n if (match) {\n const float = ns.xsd('float')\n const latitude = new Literal(match[1], null, float)\n const longitude = new Literal(match[2], null, float)\n kb.add(solidSubject, ns.schema('longitude'), longitude, doc)\n kb.add(solidSubject, ns.schema('latitude'), latitude, doc)\n } else {\n debug.log('Bad coordinates syntax: ' + value)\n }\n } else {\n const pred = predMap[key] || ns.schema(key) // fallback to just using schema.org\n kb.add(solidSubject, pred, obj, doc) // @@ deal with non-string and objects\n debug.log(` public data ${pred} ${obj}.`)\n }\n })\n }\n}\n\n/* ESCO sopecific\n*/\nexport function ESCOResultToBindings (json: Object): Bindings {\n const results = (json as any)._embedded.results // Array\n const bindings = results.map(result => {\n const name = result.title\n const uri = result.uri // like http://data.europa.eu/esco/occupation/57af9090-55b4-4911-b2d0-86db01c00b02\n return { name: { value: name, type: 'literal' }, subject: { type: 'IRI', value: uri } } // simulate SPARQL bindings\n })\n return bindings\n}\n\n/* Query all entities of given class and partially matching name\n*/\nexport async function queryESCODataByName (filter: string, theClass:NamedNode, queryTarget: QueryParameters): Promise<Bindings> {\n if (!queryTarget.searchByNameURI) throw new Error('Missing queryTarget.searchByNameURI on queryESCODataByName')\n const limit = queryTarget.limit || AUTOCOMPLETE_LIMIT\n const queryURI = queryTarget.searchByNameURI\n .replace('$(name)', filter)\n .replace('$(limit)', '' + limit)\n .replace('$(targetClass)', theClass.toNT())\n debug.log('Querying ESCO data - uri: ' + queryURI)\n\n const response = await store.fetcher?.webOperation('GET', queryURI, fetcherOptionsJsonPublicData)\n const text = response?.responseText || ''\n debug.log(' Query result text' + text.slice(0, 500) + '...')\n if (text.length === 0) throw new Error('Wot no text back from ESCO query ' + queryURI)\n const json = JSON.parse(text)\n // console.log('Whole JSON return object', json)\n debug.log(' ESCO Query result JSON' + JSON.stringify(json, null, 4).slice(0, 500) + '...')\n return ESCOResultToBindings(json)\n}\n\n/* Cope ithe syntax probelm in wikidata timeout responses\n*\n* Wikidata bug: https://phabricator.wikimedia.org/T283962\n* This will not be needed whn that WDQS bug fixed.\n* This is aptured in https://github.com/solidos/solid-ui/issues/403\n*/\nfunction fixWikidataJSON (str) {\n const syntaxProblem = str.indexOf('SPARQL-QUERY')\n if (syntaxProblem < 0) return str\n // console.log('@@ fixWikidataJSON FIXING')\n debug.warn(' ### Fixing JSON with wikidata error code injection ' + str.slice(syntaxProblem, syntaxProblem + 200))\n const goodness = str.lastIndexOf('}, {')\n return str.slice(0, goodness) + ' } ] } } ' // Close binding, array, bindings, results, root object\n}\n/* Query all entities of given class and partially matching name\n*/\nexport async function queryPublicDataByName (\n filter: string,\n theClass:NamedNode,\n languages: Array<string>,\n queryTarget: QueryParameters): Promise<Bindings> {\n function substituteStrings (template: string):string {\n const limit = queryTarget.limit || AUTOCOMPLETE_LIMIT\n const u1 = template.replace('$(name)', filter)\n .replace('$(limit)', '' + limit)\n .replace('$(language)', language)\n return u1.replace('$(targetClass)', theClass.toNT())\n }\n\n if (!theClass) {\n throw new Error('queryPublicDataByName: No class provided')\n }\n\n const languagePrefs = await getPreferredLanguages() || defaultPreferredLanguages\n const language = languagePrefs[0] || 'en'\n if (queryTarget.searchByNameQuery) {\n const sparql = substituteStrings(queryTarget.searchByNameQuery)\n debug.log('Querying public data - sparql: ' + sparql)\n return queryPublicDataSelect(sparql, queryTarget)\n } else if (queryTarget.searchByNameURI) { // not sparql - random API\n const queryURI = substituteStrings(queryTarget.searchByNameURI)\n let response\n try {\n response = await store.fetcher?.webOperation('GET', queryURI, fetcherOptionsJsonPublicData)\n } catch (err) {\n throw new Error(`Exception when trying to fetch ${queryURI} \\n ${err}`)\n }\n const text = response.responseText || '' // ts\n if (response.status !== 200) {\n throw new Error(`HTTP error status ${response.status} trying to fetch ${queryURI} `)\n }\n debug.log(' Query result text' + text.slice(0, 500) + '...')\n if (text.length === 0) throw new Error('queryPublicDataByName: No text back from public data query ' + queryURI)\n const text2 = fixWikidataJSON(text) // Kludge: strip of interrupting error message\n const json = JSON.parse(text2)\n debug.log(' API Query result JSON' + JSON.stringify(json, null, 4).slice(0, 500) + '...')\n if ((json as any)._embedded) {\n debug.log(' Looks like ESCO')\n const bindings = ESCOResultToBindings(json)\n return bindings\n } else {\n alert('Code me: unrecognized API return format')\n throw new Error(`*** Need to add code to parse unrecognized API JSON return\\n${JSON.stringify(json, null, 4)}`)\n }\n } else {\n throw new Error('Query source must have either rest API or SPARQL endpoint.')\n }\n}\n\n/* Query a database using SPARQL SELECT\n*/\nexport async function queryPublicDataSelect (sparql: string, queryTarget: QueryParameters): Promise<Bindings> {\n if (!queryTarget.endpoint) throw new Error('Missing queryTarget.endpoint required for queryPublicDataSelect')\n const myUrlWithParams = new URL(queryTarget.endpoint)\n myUrlWithParams.searchParams.append('query', sparql)\n const queryURI = myUrlWithParams.href\n debug.log(' queryPublicDataSelect uri: ' + queryURI)\n const headers = new Headers()\n headers.append('Accept', 'application/json')\n const options = {\n credentials: 'omit' as 'include' | 'omit' | undefined, // CORS - as we know it is public\n headers\n }\n\n const response = await store.fetcher?.webOperation('GET', queryURI, options)\n\n const text = response?.responseText || ''\n if (text.length === 0) throw new Error('No text back from query ' + queryURI)\n const text2 = fixWikidataJSON(text)\n const json = JSON.parse(text2)\n debug.log(' Query result JSON' + JSON.stringify(json, null, 4).slice(0, 100) + '...')\n const bindings = json.results.bindings\n return bindings\n}\n\n/* Load from a database using SPARQL CONSTRUCT\n*/\nexport async function queryPublicDataConstruct (sparql: string, pubicId: NamedNode, queryTarget: QueryParameters): Promise<void> {\n debug.log('queryPublicDataConstruct: sparql:', sparql)\n if (!queryTarget.endpoint) throw new Error('Missing queryTarget.endpoint required for queryPublicDataConstruct')\n const myUrlWithParams = new URL(queryTarget.endpoint)\n myUrlWithParams.searchParams.append('query', sparql)\n const queryURI = myUrlWithParams.href\n debug.log(' queryPublicDataConstruct uri: ' + queryURI)\n const headers = new Headers()\n headers.append('Accept', 'text/turtle')\n const options = {\n credentials: 'omit' as 'include' | 'omit' | undefined, // CORS // @tsc pain\n headers // ({ Accept: 'text/turtle' } as Headers)\n }\n const response = await store.fetcher?.webOperation('GET', queryURI, options)\n const text = response?.responseText || 'No response text?'\n const report = text.length > 500 ? text.slice(0, 200) + ' ... ' + text.slice(-200) : text\n debug.log(' queryPublicDataConstruct result text:' + report)\n if (text.length === 0) throw new Error('queryPublicDataConstruct: No text back from construct query:' + queryURI)\n parse(text, store, pubicId.uri, 'text/turtle')\n}\n\nexport async function loadPublicDataThing (kb, subject: NamedNode, publicDataID: NamedNode) {\n if (publicDataID.uri.startsWith('https://dbpedia.org/resource/')) {\n return getDbpediaDetails(kb, subject, publicDataID)\n } else if (publicDataID.uri.match(/^https?:\\/\\/www\\.wikidata\\.org\\/entity\\/.*/)) {\n // const QId = publicDataID.uri.split('/')[4]\n // const dataURI = `http://www.wikidata.org/wiki/Special:EntityData/${QId}.ttl`\n // In fact loading the data URI gives much too much irrelevant data, from wikidata, so we do a query.\n await getWikidataDetails(kb, subject, publicDataID)\n // await getWikidataLocation(kb, subject, publicDataID) -- should get that in the details query now\n } else {\n const iDToFetch = publicDataID.uri.startsWith('http:')\n ? kb.sym('https:' + publicDataID.uri.slice(5))\n : publicDataID\n const headers = new Headers()\n headers.append('Accept', 'text/turtle')\n return kb.fetcher.load(iDToFetch, {\n credentials: 'omit' as 'include' | 'omit' | undefined,\n headers\n })\n }\n}\n\nexport async function getWikidataDetails (kb, solidSubject:NamedNode, publicDataID:NamedNode) {\n const subjRegexp = /wd:Q49108/g\n const sparql = instituteDetailsWikidataQuery.replace(subjRegexp, publicDataID.toNT())\n await queryPublicDataConstruct(sparql, publicDataID, wikidataParameters)\n debug.log('getWikidataDetails: loaded.', publicDataID)\n}\n\nexport async function getWikidataDetailsOld (kb, solidSubject:NamedNode, publicDataID:NamedNode) {\n const sparql = `select distinct * where {\n optional { $(subject) wdt:P31 ?targetClass } # instance of\n optional { $(subject) wdt:P154 ?logo }\n optional { $(subject) wdt:P158 ?sealImage }\n# optional { $(subject) wdt:P159 ?headquartersLocation }\n\noptional { $(subject) wdt:P17 ?country }\noptional { $(subject) wdt:P18 ?image }\noptional { $(subject) wdt:P1813 ?shortName }\n\noptional { $(subject) wdt:P355 ?subsidiary }\n# SERVICE wikibase:label { bd:serviceParam wikibase:language \"fr,en,de,it\" }\n}`\n .replace(subjectRegexp, publicDataID.toNT())\n const bindings = await queryPublicDataSelect(sparql, wikidataParameters)\n loadFromBindings(kb, publicDataID, bindings, publicDataID.doc()) // arg2 was solidSubject\n}\n\nexport async function getWikidataLocation (kb, solidSubject:NamedNode, publicDataID:NamedNode) {\n const sparql = `select distinct * where {\n\n $(subject) wdt:P276 ?location .\n\n optional { ?location wdt:P2044 ?elevation }\n optional { ?location wdt:P131 ?region }\n optional { ?location wdt:P625 ?coordinates }\noptional { ?location wdt:P17 ?country }\n\n# SERVICE wikibase:label { bd:serviceParam wikibase:language \"fr,en,de,it\" }\n}`.replace(subjectRegexp, publicDataID.toNT())\n debug.log(' location query sparql:' + sparql)\n const bindings = await queryPublicDataSelect(sparql, wikidataParameters)\n debug.log(' location query bindings:', bindings)\n loadFromBindings(kb, publicDataID, bindings, publicDataID.doc()) // was solidSubject\n}\n\nexport async function getDbpediaDetails (kb, solidSubject:NamedNode, publicDataID:NamedNode) {\n// Note below the string form of the named node with <> works in SPARQL\n const sparql = `select distinct ?city, ?state, ?country, ?homepage, ?logo, ?lat, ?long, WHERE {\n OPTIONAL { <${publicDataID}> <http://dbpedia.org/ontology/city> ?city }\n OPTIONAL { ${publicDataID} <http://dbpedia.org/ontology/state> ?state }\n OPTIONAL { ${publicDataID} <http://dbpedia.org/ontology/country> ?country }\n OPTIONAL { ${publicDataID} foaf:homepage ?homepage }\n OPTIONAL { ${publicDataID} foaf:lat ?lat; foaf:long ?long }\n OPTIONAL { ${publicDataID} <http://dbpedia.org/ontology/country> ?country }\n }`\n const bindings = await queryPublicDataSelect(sparql, dbpediaParameters)\n loadFromBindings(kb, publicDataID, bindings, publicDataID.doc())\n debug.log('Finished getDbpediaDetails.')\n}\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { __exportAll as e } from "../../../_virtual/_rolldown/runtime.esm.js";
2
- import t from "../../../lib/ns.esm.js";
3
- import { log as n, warn as r } from "../../../lib/debug.esm.js";
2
+ import { log as t, warn as n } from "../../../lib/debug.esm.js";
3
+ import r from "../../../lib/ns.esm.js";
4
4
  import { defaultPreferredLanguages as i, getPreferredLanguages as a } from "./language.esm.js";
5
5
  import { Literal as o, parse as s } from "rdflib";
6
6
  import { store as c } from "solid-logic";
@@ -67,25 +67,25 @@ var l = /* @__PURE__ */ e({
67
67
  searchByNameQuery: "SELECT ?subject ?name\n WHERE {\n ?klass wdt:P279* $(targetClass) .\n ?subject wdt:P31 ?klass .\n ?subject rdfs:label ?name.\n FILTER regex(?name, \"$(name)\", \"i\")\n } LIMIT $(limit) ",
68
68
  insitituteDetailsQuery: "CONSTRUCT\n{ wd:Q49108 schema:name ?itemLabel;\n schema:logo ?logo;\n schema:logo ?sealImage;\n schema:subOrganization ?subsidiary .\n ?subsidiary schema:name ?subsidiaryLabel .\n}\nWHERE\n{\n wd:Q49108 # rdfs:label ?itemLabel ;\n wdt:P154 ?logo;\n wdt:P158 ?sealImage ;\n wdt:P355 ?subsidiary .\n # ?subsidiary rdfs:label ?subsidiaryLabel .\n\n SERVICE wikibase:label { bd:serviceParam wikibase:language \"[AUTO_LANGUAGE], fr\". }\n}"
69
69
  }, y = {
70
- "http://www.wikidata.org/entity/Q15936437": t.schema("CollegeOrUniversity"),
71
- "http://www.wikidata.org/entity/Q1664720": t.schema("EducationalOrganization"),
72
- "http://www.wikidata.org/entity/Q43229": t.schema("Organization"),
73
- "http://www.wikidata.org/entity/Q3918": t.schema("CollegeOrUniversity"),
74
- "http://www.wikidata.org/entity/Q170584": t.schema("Project"),
75
- "http://www.wikidata.org/entity/Q327333": t.schema("GovernmentOrganization"),
76
- "http://www.wikidata.org/entity/Q2221906": t.schema("Place"),
77
- "http://www.wikidata.org/entity/Q167037": t.schema("Corporation")
70
+ "http://www.wikidata.org/entity/Q15936437": r.schema("CollegeOrUniversity"),
71
+ "http://www.wikidata.org/entity/Q1664720": r.schema("EducationalOrganization"),
72
+ "http://www.wikidata.org/entity/Q43229": r.schema("Organization"),
73
+ "http://www.wikidata.org/entity/Q3918": r.schema("CollegeOrUniversity"),
74
+ "http://www.wikidata.org/entity/Q170584": r.schema("Project"),
75
+ "http://www.wikidata.org/entity/Q327333": r.schema("GovernmentOrganization"),
76
+ "http://www.wikidata.org/entity/Q2221906": r.schema("Place"),
77
+ "http://www.wikidata.org/entity/Q167037": r.schema("Corporation")
78
78
  }, b = {
79
- targetClass: t.rdf("type"),
80
- sealImage: t.schema("logo"),
81
- shortName: t.foaf("nick"),
82
- subsidiary: t.schema("subOrganization"),
83
- city: t.vcard("locality"),
84
- state: t.vcard("region"),
85
- country: t.vcard("country-name"),
86
- homepage: t.foaf("homepage"),
87
- lat: t.schema("latitude"),
88
- long: t.schema("longitude")
79
+ targetClass: r.rdf("type"),
80
+ sealImage: r.schema("logo"),
81
+ shortName: r.foaf("nick"),
82
+ subsidiary: r.schema("subOrganization"),
83
+ city: r.vcard("locality"),
84
+ state: r.vcard("region"),
85
+ country: r.vcard("country-name"),
86
+ homepage: r.foaf("homepage"),
87
+ lat: r.schema("latitude"),
88
+ long: r.schema("longitude")
89
89
  };
90
90
  function x(e) {
91
91
  let t = e.type.toLowerCase();
@@ -95,7 +95,7 @@ function x(e) {
95
95
  }
96
96
  function S(e, i, a, s, c = b) {
97
97
  let l = {};
98
- n(`loadFromBindings: subject: ${i}`), n(` doc: ${s}`), a.forEach((e) => {
98
+ t(`loadFromBindings: subject: ${i}`), t(` doc: ${s}`), a.forEach((e) => {
99
99
  for (let t in e) {
100
100
  let n = e[t], r = JSON.stringify(n);
101
101
  l[t] = l[t] || /* @__PURE__ */ new Set(), l[t].add(r);
@@ -103,22 +103,22 @@ function S(e, i, a, s, c = b) {
103
103
  });
104
104
  for (let a in l) {
105
105
  let u = l[a];
106
- n(` results ${a} -> ${u}`), u.forEach((l) => {
106
+ t(` results ${a} -> ${u}`), u.forEach((l) => {
107
107
  let u = JSON.parse(l), { type: d, value: f } = u, p;
108
108
  if (d === "uri") p = e.sym(f);
109
109
  else if (d === "literal") p = new o(f, u.language, u.datatype);
110
110
  else throw Error(`loadFromBindings: unexpected type: ${d}`);
111
- if (a === "type") y[f] ? p = y[f] : r("Unmapped Wikidata Class: " + f);
111
+ if (a === "type") y[f] ? p = y[f] : n("Unmapped Wikidata Class: " + f);
112
112
  else if (a === "coordinates") {
113
- n(" @@@ hey a point: " + f);
114
- let r = /.*\(([-0-9.-]*) ([-0-9.-]*)\)/.exec(f);
115
- if (r) {
116
- let n = t.xsd("float"), a = new o(r[1], null, n), c = new o(r[2], null, n);
117
- e.add(i, t.schema("longitude"), c, s), e.add(i, t.schema("latitude"), a, s);
118
- } else n("Bad coordinates syntax: " + f);
113
+ t(" @@@ hey a point: " + f);
114
+ let n = /.*\(([-0-9.-]*) ([-0-9.-]*)\)/.exec(f);
115
+ if (n) {
116
+ let t = r.xsd("float"), a = new o(n[1], null, t), c = new o(n[2], null, t);
117
+ e.add(i, r.schema("longitude"), c, s), e.add(i, r.schema("latitude"), a, s);
118
+ } else t("Bad coordinates syntax: " + f);
119
119
  } else {
120
- let r = c[a] || t.schema(a);
121
- e.add(i, r, p, s), n(` public data ${r} ${p}.`);
120
+ let n = c[a] || r.schema(a);
121
+ e.add(i, n, p, s), t(` public data ${n} ${p}.`);
122
122
  }
123
123
  });
124
124
  }
@@ -138,55 +138,55 @@ function C(e) {
138
138
  };
139
139
  });
140
140
  }
141
- async function w(e, t, r) {
141
+ async function w(e, n, r) {
142
142
  if (!r.searchByNameURI) throw Error("Missing queryTarget.searchByNameURI on queryESCODataByName");
143
- let i = r.limit || 200, a = r.searchByNameURI.replace("$(name)", e).replace("$(limit)", "" + i).replace("$(targetClass)", t.toNT());
144
- n("Querying ESCO data - uri: " + a);
143
+ let i = r.limit || 200, a = r.searchByNameURI.replace("$(name)", e).replace("$(limit)", "" + i).replace("$(targetClass)", n.toNT());
144
+ t("Querying ESCO data - uri: " + a);
145
145
  let o = (await c.fetcher?.webOperation("GET", a, p))?.responseText || "";
146
- if (n(" Query result text" + o.slice(0, 500) + "..."), o.length === 0) throw Error("Wot no text back from ESCO query " + a);
146
+ if (t(" Query result text" + o.slice(0, 500) + "..."), o.length === 0) throw Error("Wot no text back from ESCO query " + a);
147
147
  let s = JSON.parse(o);
148
- return n(" ESCO Query result JSON" + JSON.stringify(s, null, 4).slice(0, 500) + "..."), C(s);
148
+ return t(" ESCO Query result JSON" + JSON.stringify(s, null, 4).slice(0, 500) + "..."), C(s);
149
149
  }
150
150
  function T(e) {
151
151
  let t = e.indexOf("SPARQL-QUERY");
152
152
  if (t < 0) return e;
153
- r(" ### Fixing JSON with wikidata error code injection " + e.slice(t, t + 200));
154
- let n = e.lastIndexOf("}, {");
155
- return e.slice(0, n) + " } ] } } ";
153
+ n(" ### Fixing JSON with wikidata error code injection " + e.slice(t, t + 200));
154
+ let r = e.lastIndexOf("}, {");
155
+ return e.slice(0, r) + " } ] } } ";
156
156
  }
157
- async function E(e, t, r, o) {
158
- function s(n) {
157
+ async function E(e, n, r, o) {
158
+ function s(t) {
159
159
  let r = o.limit || 200;
160
- return n.replace("$(name)", e).replace("$(limit)", "" + r).replace("$(language)", l).replace("$(targetClass)", t.toNT());
160
+ return t.replace("$(name)", e).replace("$(limit)", "" + r).replace("$(language)", l).replace("$(targetClass)", n.toNT());
161
161
  }
162
- if (!t) throw Error("queryPublicDataByName: No class provided");
162
+ if (!n) throw Error("queryPublicDataByName: No class provided");
163
163
  let l = (await a() || i)[0] || "en";
164
164
  if (o.searchByNameQuery) {
165
165
  let e = s(o.searchByNameQuery);
166
- return n("Querying public data - sparql: " + e), D(e, o);
166
+ return t("Querying public data - sparql: " + e), D(e, o);
167
167
  }
168
168
  if (o.searchByNameURI) {
169
- let e = s(o.searchByNameURI), t;
169
+ let e = s(o.searchByNameURI), n;
170
170
  try {
171
- t = await c.fetcher?.webOperation("GET", e, p);
171
+ n = await c.fetcher?.webOperation("GET", e, p);
172
172
  } catch (t) {
173
173
  throw Error(`Exception when trying to fetch ${e} \n ${t}`);
174
174
  }
175
- let r = t.responseText || "";
176
- if (t.status !== 200) throw Error(`HTTP error status ${t.status} trying to fetch ${e} `);
177
- if (n(" Query result text" + r.slice(0, 500) + "..."), r.length === 0) throw Error("queryPublicDataByName: No text back from public data query " + e);
175
+ let r = n.responseText || "";
176
+ if (n.status !== 200) throw Error(`HTTP error status ${n.status} trying to fetch ${e} `);
177
+ if (t(" Query result text" + r.slice(0, 500) + "..."), r.length === 0) throw Error("queryPublicDataByName: No text back from public data query " + e);
178
178
  let i = T(r), a = JSON.parse(i);
179
- if (n(" API Query result JSON" + JSON.stringify(a, null, 4).slice(0, 500) + "..."), a._embedded) return n(" Looks like ESCO"), C(a);
179
+ if (t(" API Query result JSON" + JSON.stringify(a, null, 4).slice(0, 500) + "..."), a._embedded) return t(" Looks like ESCO"), C(a);
180
180
  throw alert("Code me: unrecognized API return format"), Error(`*** Need to add code to parse unrecognized API JSON return\n${JSON.stringify(a, null, 4)}`);
181
181
  }
182
182
  throw Error("Query source must have either rest API or SPARQL endpoint.");
183
183
  }
184
- async function D(e, t) {
185
- if (!t.endpoint) throw Error("Missing queryTarget.endpoint required for queryPublicDataSelect");
186
- let r = new URL(t.endpoint);
184
+ async function D(e, n) {
185
+ if (!n.endpoint) throw Error("Missing queryTarget.endpoint required for queryPublicDataSelect");
186
+ let r = new URL(n.endpoint);
187
187
  r.searchParams.append("query", e);
188
188
  let i = r.href;
189
- n(" queryPublicDataSelect uri: " + i);
189
+ t(" queryPublicDataSelect uri: " + i);
190
190
  let a = new Headers();
191
191
  a.append("Accept", "application/json");
192
192
  let o = {
@@ -195,22 +195,22 @@ async function D(e, t) {
195
195
  }, s = (await c.fetcher?.webOperation("GET", i, o))?.responseText || "";
196
196
  if (s.length === 0) throw Error("No text back from query " + i);
197
197
  let l = T(s), u = JSON.parse(l);
198
- return n(" Query result JSON" + JSON.stringify(u, null, 4).slice(0, 100) + "..."), u.results.bindings;
198
+ return t(" Query result JSON" + JSON.stringify(u, null, 4).slice(0, 100) + "..."), u.results.bindings;
199
199
  }
200
- async function O(e, t, r) {
201
- if (n("queryPublicDataConstruct: sparql:", e), !r.endpoint) throw Error("Missing queryTarget.endpoint required for queryPublicDataConstruct");
200
+ async function O(e, n, r) {
201
+ if (t("queryPublicDataConstruct: sparql:", e), !r.endpoint) throw Error("Missing queryTarget.endpoint required for queryPublicDataConstruct");
202
202
  let i = new URL(r.endpoint);
203
203
  i.searchParams.append("query", e);
204
204
  let a = i.href;
205
- n(" queryPublicDataConstruct uri: " + a);
205
+ t(" queryPublicDataConstruct uri: " + a);
206
206
  let o = new Headers();
207
207
  o.append("Accept", "text/turtle");
208
208
  let l = {
209
209
  credentials: "omit",
210
210
  headers: o
211
211
  }, u = (await c.fetcher?.webOperation("GET", a, l))?.responseText || "No response text?", d = u.length > 500 ? u.slice(0, 200) + " ... " + u.slice(-200) : u;
212
- if (n(" queryPublicDataConstruct result text:" + d), u.length === 0) throw Error("queryPublicDataConstruct: No text back from construct query:" + a);
213
- s(u, c, t.uri, "text/turtle");
212
+ if (t(" queryPublicDataConstruct result text:" + d), u.length === 0) throw Error("queryPublicDataConstruct: No text back from construct query:" + a);
213
+ s(u, c, n.uri, "text/turtle");
214
214
  }
215
215
  async function k(e, t, n) {
216
216
  if (n.uri.startsWith("https://dbpedia.org/resource/")) return N(e, t, n);
@@ -223,19 +223,19 @@ async function k(e, t, n) {
223
223
  });
224
224
  }
225
225
  }
226
- async function A(e, t, r) {
227
- await O(f.replace(/wd:Q49108/g, r.toNT()), r, v), n("getWikidataDetails: loaded.", r);
226
+ async function A(e, n, r) {
227
+ await O(f.replace(/wd:Q49108/g, r.toNT()), r, v), t("getWikidataDetails: loaded.", r);
228
228
  }
229
229
  async function j(e, t, n) {
230
230
  S(e, n, await D("select distinct * where {\n optional { $(subject) wdt:P31 ?targetClass } # instance of\n optional { $(subject) wdt:P154 ?logo }\n optional { $(subject) wdt:P158 ?sealImage }\n# optional { $(subject) wdt:P159 ?headquartersLocation }\n\noptional { $(subject) wdt:P17 ?country }\noptional { $(subject) wdt:P18 ?image }\noptional { $(subject) wdt:P1813 ?shortName }\n\noptional { $(subject) wdt:P355 ?subsidiary }\n# SERVICE wikibase:label { bd:serviceParam wikibase:language \"fr,en,de,it\" }\n}".replace(u, n.toNT()), v), n.doc());
231
231
  }
232
- async function M(e, t, r) {
232
+ async function M(e, n, r) {
233
233
  let i = "select distinct * where {\n\n $(subject) wdt:P276 ?location .\n\n optional { ?location wdt:P2044 ?elevation }\n optional { ?location wdt:P131 ?region }\n optional { ?location wdt:P625 ?coordinates }\noptional { ?location wdt:P17 ?country }\n\n# SERVICE wikibase:label { bd:serviceParam wikibase:language \"fr,en,de,it\" }\n}".replace(u, r.toNT());
234
- n(" location query sparql:" + i);
234
+ t(" location query sparql:" + i);
235
235
  let a = await D(i, v);
236
- n(" location query bindings:", a), S(e, r, a, r.doc());
236
+ t(" location query bindings:", a), S(e, r, a, r.doc());
237
237
  }
238
- async function N(e, t, r) {
238
+ async function N(e, n, r) {
239
239
  S(e, r, await D(`select distinct ?city, ?state, ?country, ?homepage, ?logo, ?lat, ?long, WHERE {
240
240
  OPTIONAL { <${r}> <http://dbpedia.org/ontology/city> ?city }
241
241
  OPTIONAL { ${r} <http://dbpedia.org/ontology/state> ?state }
@@ -243,7 +243,7 @@ async function N(e, t, r) {
243
243
  OPTIONAL { ${r} foaf:homepage ?homepage }
244
244
  OPTIONAL { ${r} foaf:lat ?lat; foaf:long ?long }
245
245
  OPTIONAL { ${r} <http://dbpedia.org/ontology/country> ?country }
246
- }`, h), r.doc()), n("Finished getDbpediaDetails.");
246
+ }`, h), r.doc()), t("Finished getDbpediaDetails.");
247
247
  }
248
248
  export { C as ESCOResultToBindings, x as bindingToTerm, g as dbPediaTypeMap, h as dbpediaParameters, m as escoParameters, p as fetcherOptionsJsonPublicData, N as getDbpediaDetails, A as getWikidataDetails, j as getWikidataDetailsOld, M as getWikidataLocation, f as instituteDetailsWikidataQuery, S as loadFromBindings, k as loadPublicDataThing, l as publicData_exports, w as queryESCODataByName, E as queryPublicDataByName, O as queryPublicDataConstruct, D as queryPublicDataSelect, b as variableNameToPredicateMap, d as wikidataClasses, y as wikidataIncomingClassMap, _ as wikidataOutgoingClassMap, v as wikidataParameters };
249
249
 
@@ -1,2 +1,2 @@
1
- const e=require("../../lib/ns.cjs.js"),t=require("../../utils/label.cjs.js");require("../../utils/index.cjs.js");const n=require("../../lib/styleConstants.cjs.js"),r=require("../../lib/style.cjs.js"),i=require("../error.cjs.js"),a=require("./fieldParams.cjs.js"),o=require("./fieldFunction.cjs.js");let s=require("rdflib");var c=require("solid-logic").solidLogicSingleton.store;function l(t,a,o,s,c){o.style.display=`flex`,o.style.flexDirection=`row`;let l=o.appendChild(t.createElement(`div`));l.style.width=n.default.formFieldNameBoxWidth;let d=o.appendChild(t.createElement(`div`));return l.setAttribute(`class`,`formFieldName`),l.setAttribute(`style`,r.style.formFieldNameBoxStyle),d.setAttribute(`class`,`formFieldValue`),c?l.appendChild(t.createTextNode(c)):a.any(s,e.default.ui(`property`))?l.appendChild(u(t,a.any(s,e.default.ui(`property`)),s)):(d.appendChild(i.errorMessageBlock(t,`No property or label given for form field: `+s)),l.appendChild(t.createTextNode(`???`))),d}function u(n,r,i){let a=c.any(i,e.default.ui(`label`));if(a||=t.label(r,!0),r===void 0)return n.createTextNode(`@@Internal error: undefined property`);let o=n.createElement(`a`);return r.uri&&o.setAttribute(`href`,r.uri),o.setAttribute(`style`,`color: #3B5998; text-decoration: none;`),o.textContent=a,o}function d(e,t,n){let r=c.statementsMatching(e,t);if(r.length===0)return n;if(!c.updater)throw Error(`Store has no updater`);return r.length>0&&r[0].why.value&&c.updater.editable(r[0].why.value,c)?c.sym(r[0].why.value):n}function f(t,u,f,p,m,h,g){let _=c,v=m.doc?m.doc():null,y=t.createElement(`div`),b=_.any(m,e.default.ui(`property`));if(u&&u.appendChild(y),!b)return y.appendChild(i.errorMessageBlock(t,`Error: No property given for text field: `+m));let x=l(t,_,y,m),S=_.anyJS(m,e.default.ui(`suppressEmptyUneditable`),null,v),C=o.mostSpecificClassURI(m),w=a.fieldParams[C];w===void 0&&(w={style:``});let T=w.style||``,E=r.style.textInputStyle+T,D=t.createElement(`input`);D.style=E,x.appendChild(D),D.setAttribute(`type`,w.type?w.type:`text`);let O=(D.getAttribute(`type`)||``).toLowerCase(),k=O===`date`||O===`datetime-local`,A=_.anyJS(m,e.default.ui(`size`))||n.default.textInputSize||20;D.setAttribute(`size`,A);let j=_.any(m,e.default.ui(`maxLength`));D.setAttribute(`maxLength`,j?``+j:n.default.basicMaxLength),h||=d(p,b,h);let M=_.any(p,b,void 0,h);if(M||=_.any(m,e.default.ui(`default`)),M&&M.value&&w.uriPrefix?D.value=decodeURIComponent(M.value.replace(w.uriPrefix,``)).replace(/ /g,``):M&&(D.value=M.value||M.value||``),D.setAttribute(`style`,E),!_.updater)throw Error(`kb has no updater`);return _.updater.editable(h.uri)?(D.addEventListener(`keyup`,function(e){w.pattern&&D.setAttribute(`style`,E+(D.value.match(w.pattern)?`color: green;`:`color: red;`))},!0),D.addEventListener(`change`,function(n){if(k&&t.activeElement===D){D.dataset&&(D.dataset.deferredChange=`true`);return}if(w.pattern&&!D.value.match(w.pattern))return;let r=!k;r&&(D.disabled=!0),D.setAttribute(`style`,E+`color: gray;`);let a=_.statementsMatching(p,b),o;w.namedNode?o=_.sym(D.value):w.uriPrefix?(o=encodeURIComponent(D.value.replace(/ /g,``)),o=_.sym(w.uriPrefix+D.value)):o=w.dt?new s.Literal(D.value.trim(),void 0,e.default.xsd(w.dt)):new s.Literal(D.value);let c=a.map(e=>(0,s.st)(e.subject,e.predicate,o,e.why));c.length===0&&(c=[(0,s.st)(p,b,o,h)]);function l(e,t,n){let r=[];if(t.forEach(e=>{r.includes(e.why.uri)||r.push(e.why.uri)}),e.forEach(e=>{r.includes(e.why.uri)||r.push(e.why.uri)}),r.length===0)throw Error(`updateMany has no docs to patch`);if(!_.updater)throw Error(`kb has no updater`);if(r.length===1)return _.updater.update(e,t,n);let i=r.pop(),a=t.filter(e=>e.why.uri===i),o=t.filter(e=>e.why.uri!==i),s=e.filter(e=>e.why.uri===i),c=e.filter(e=>e.why.uri!==i);_.updater.update(s,a,function(e,t,r){t?l(c,o,n):n(e,t,r)})}l(a,c,function(e,n,a){n?(r&&(D.disabled=!1),D.setAttribute(`style`,E)):y.appendChild(i.errorMessageBlock(t,a)),g(n,a)})},!0),D.addEventListener(`blur`,function(e){if(k&&D.dataset&&D.dataset.deferredChange===`true`){delete D.dataset.deferredChange;let e=new Event(`change`,{bubbles:!0});D.dispatchEvent(e)}},!0),y):(D.readOnly=!0,D.style=r.style.textInputStyleUneditable+T,S&&D.value===``&&(y.style.display=`none`),y)}exports.basicField=f,exports.fieldLabel=u,exports.fieldStore=d,exports.renderNameValuePair=l;
1
+ const e=require("../../lib/ns.cjs.js"),t=require("../../utils/label.cjs.js"),n=require("../../lib/style.cjs.js"),r=require("../../lib/styleConstants.cjs.js");require("../../utils/index.cjs.js");const i=require("../error.cjs.js"),a=require("./fieldFunction.cjs.js"),o=require("./fieldParams.cjs.js");let s=require("rdflib");var c=require("solid-logic").solidLogicSingleton.store;function l(t,a,o,s,c){o.style.display=`flex`,o.style.flexDirection=`row`;let l=o.appendChild(t.createElement(`div`));l.style.width=r.default.formFieldNameBoxWidth;let d=o.appendChild(t.createElement(`div`));return l.setAttribute(`class`,`formFieldName`),l.setAttribute(`style`,n.style.formFieldNameBoxStyle),d.setAttribute(`class`,`formFieldValue`),c?l.appendChild(t.createTextNode(c)):a.any(s,e.default.ui(`property`))?l.appendChild(u(t,a.any(s,e.default.ui(`property`)),s)):(d.appendChild(i.errorMessageBlock(t,`No property or label given for form field: `+s)),l.appendChild(t.createTextNode(`???`))),d}function u(n,r,i){let a=c.any(i,e.default.ui(`label`));if(a||=t.label(r,!0),r===void 0)return n.createTextNode(`@@Internal error: undefined property`);let o=n.createElement(`a`);return r.uri&&o.setAttribute(`href`,r.uri),o.setAttribute(`style`,`color: #3B5998; text-decoration: none;`),o.textContent=a,o}function d(e,t,n){let r=c.statementsMatching(e,t);if(r.length===0)return n;if(!c.updater)throw Error(`Store has no updater`);return r.length>0&&r[0].why.value&&c.updater.editable(r[0].why.value,c)?c.sym(r[0].why.value):n}function f(t,u,f,p,m,h,g){let _=c,v=m.doc?m.doc():null,y=t.createElement(`div`),b=_.any(m,e.default.ui(`property`));if(u&&u.appendChild(y),!b)return y.appendChild(i.errorMessageBlock(t,`Error: No property given for text field: `+m));let x=l(t,_,y,m),S=_.anyJS(m,e.default.ui(`suppressEmptyUneditable`),null,v),C=a.mostSpecificClassURI(m),w=o.fieldParams[C];w===void 0&&(w={style:``});let T=w.style||``,E=n.style.textInputStyle+T,D=t.createElement(`input`);D.style=E,x.appendChild(D),D.setAttribute(`type`,w.type?w.type:`text`);let O=(D.getAttribute(`type`)||``).toLowerCase(),k=O===`date`||O===`datetime-local`,A=_.anyJS(m,e.default.ui(`size`))||r.default.textInputSize||20;D.setAttribute(`size`,A);let j=_.any(m,e.default.ui(`maxLength`));D.setAttribute(`maxLength`,j?``+j:r.default.basicMaxLength),h||=d(p,b,h);let M=_.any(p,b,void 0,h);if(M||=_.any(m,e.default.ui(`default`)),M&&M.value&&w.uriPrefix?D.value=decodeURIComponent(M.value.replace(w.uriPrefix,``)).replace(/ /g,``):M&&(D.value=M.value||M.value||``),D.setAttribute(`style`,E),!_.updater)throw Error(`kb has no updater`);return _.updater.editable(h.uri)?(D.addEventListener(`keyup`,function(e){w.pattern&&D.setAttribute(`style`,E+(D.value.match(w.pattern)?`color: green;`:`color: red;`))},!0),D.addEventListener(`change`,function(n){if(k&&t.activeElement===D){D.dataset&&(D.dataset.deferredChange=`true`);return}if(w.pattern&&!D.value.match(w.pattern))return;let r=!k;r&&(D.disabled=!0),D.setAttribute(`style`,E+`color: gray;`);let a=_.statementsMatching(p,b),o;w.namedNode?o=_.sym(D.value):w.uriPrefix?(o=encodeURIComponent(D.value.replace(/ /g,``)),o=_.sym(w.uriPrefix+D.value)):o=w.dt?new s.Literal(D.value.trim(),void 0,e.default.xsd(w.dt)):new s.Literal(D.value);let c=a.map(e=>(0,s.st)(e.subject,e.predicate,o,e.why));c.length===0&&(c=[(0,s.st)(p,b,o,h)]);function l(e,t,n){let r=[];if(t.forEach(e=>{r.includes(e.why.uri)||r.push(e.why.uri)}),e.forEach(e=>{r.includes(e.why.uri)||r.push(e.why.uri)}),r.length===0)throw Error(`updateMany has no docs to patch`);if(!_.updater)throw Error(`kb has no updater`);if(r.length===1)return _.updater.update(e,t,n);let i=r.pop(),a=t.filter(e=>e.why.uri===i),o=t.filter(e=>e.why.uri!==i),s=e.filter(e=>e.why.uri===i),c=e.filter(e=>e.why.uri!==i);_.updater.update(s,a,function(e,t,r){t?l(c,o,n):n(e,t,r)})}l(a,c,function(e,n,a){n?(r&&(D.disabled=!1),D.setAttribute(`style`,E)):y.appendChild(i.errorMessageBlock(t,a)),g(n,a)})},!0),D.addEventListener(`blur`,function(e){if(k&&D.dataset&&D.dataset.deferredChange===`true`){delete D.dataset.deferredChange;let e=new Event(`change`,{bubbles:!0});D.dispatchEvent(e)}},!0),y):(D.readOnly=!0,D.style=n.style.textInputStyleUneditable+T,S&&D.value===``&&(y.style.display=`none`),y)}exports.basicField=f,exports.fieldLabel=u,exports.fieldStore=d,exports.renderNameValuePair=l;
2
2
  //# sourceMappingURL=basic.cjs.js.map