solid-ui 5.0.2-4 → 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 (265) 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/{ResourceActionsMenu-Bllpr4M5.js → ResourceActionsMenu-Bx7YWY3E.js} +29 -29
  37. package/dist/chunks/{ResourceActionsMenu-Bllpr4M5.js.map → ResourceActionsMenu-Bx7YWY3E.js.map} +1 -1
  38. package/dist/chunks/{access-control-modal-CwmY_Dod.js → access-control-modal-B1mFFIyz.js} +165 -165
  39. package/dist/chunks/{access-control-modal-CwmY_Dod.js.map → access-control-modal-B1mFFIyz.js.map} +1 -1
  40. package/dist/chunks/{account-CoHPKKDu.js → account-DWmMJre6.js} +22 -22
  41. package/dist/chunks/{account-CoHPKKDu.js.map → account-DWmMJre6.js.map} +1 -1
  42. package/dist/chunks/{auth-CocCqS1p.js → auth-EK-iYNYZ.js} +37 -37
  43. package/dist/chunks/{auth-CocCqS1p.js.map → auth-EK-iYNYZ.js.map} +1 -1
  44. package/dist/chunks/{avatar-sNdKdWVO.js → avatar-BBgvMlqv.js} +13 -13
  45. package/dist/chunks/{avatar-sNdKdWVO.js.map → avatar-BBgvMlqv.js.map} +1 -1
  46. package/dist/chunks/{combobox-fSTp9qoT.js → combobox-DS6byaf1.js} +3 -3
  47. package/dist/chunks/{combobox-fSTp9qoT.js.map → combobox-DS6byaf1.js.map} +1 -1
  48. package/dist/chunks/{error-state-BD4_Wrkz.js → error-state-jV9dlFX2.js} +2 -2
  49. package/dist/chunks/{error-state-BD4_Wrkz.js.map → error-state-jV9dlFX2.js.map} +1 -1
  50. package/dist/chunks/{file-explorer-header-D0TebSYR.js → file-explorer-header-Djp_eFuT.js} +50 -50
  51. package/dist/chunks/{file-explorer-header-D0TebSYR.js.map → file-explorer-header-Djp_eFuT.js.map} +1 -1
  52. package/dist/chunks/{guard-BOicu9dt.js → guard-SxVT1xr4.js} +13 -13
  53. package/dist/chunks/{guard-BOicu9dt.js.map → guard-SxVT1xr4.js.map} +1 -1
  54. package/dist/chunks/{index.esm-C9oV3H3X.js → index.esm-BQrkxchZ.js} +2 -2
  55. package/dist/chunks/{index.esm-C9oV3H3X.js.map → index.esm-BQrkxchZ.js.map} +1 -1
  56. package/dist/chunks/{jsonld-D-TE94B0.js → jsonld-C6IOQ1Tg.js} +2 -2
  57. package/dist/chunks/{jsonld-D-TE94B0.js.map → jsonld-C6IOQ1Tg.js.map} +1 -1
  58. package/dist/chunks/{login-button-clTw_9tX.js → login-button-Dd0rwZJk.js} +11 -11
  59. package/dist/chunks/{login-button-clTw_9tX.js.map → login-button-Dd0rwZJk.js.map} +1 -1
  60. package/dist/chunks/{logout-button-CP-Pz70O.js → logout-button-Da34Lrnq.js} +11 -11
  61. package/dist/chunks/{logout-button-CP-Pz70O.js.map → logout-button-Da34Lrnq.js.map} +1 -1
  62. package/dist/chunks/{menu-D0k2fkiE.js → menu-BNJU654v.js} +2 -2
  63. package/dist/chunks/{menu-D0k2fkiE.js.map → menu-BNJU654v.js.map} +1 -1
  64. package/dist/chunks/{provider-Cuv3Kp6G.js → provider-B3FoP2qW.js} +11 -11
  65. package/dist/chunks/{provider-Cuv3Kp6G.js.map → provider-B3FoP2qW.js.map} +1 -1
  66. package/dist/chunks/{rdf-form-DVmTw3RG.js → rdf-form-BkKDmFPD.js} +36 -36
  67. package/dist/chunks/{rdf-form-DVmTw3RG.js.map → rdf-form-BkKDmFPD.js.map} +1 -1
  68. package/dist/chunks/{rdf-input-CRYLK-27.js → rdf-input-BPePtqfS.js} +61 -61
  69. package/dist/chunks/{rdf-input-CRYLK-27.js.map → rdf-input-BPePtqfS.js.map} +1 -1
  70. package/dist/chunks/{signup-button-CexdMWj6.js → signup-button-DOInssOu.js} +11 -11
  71. package/dist/chunks/{signup-button-CexdMWj6.js.map → signup-button-DOInssOu.js.map} +1 -1
  72. package/dist/chunks/{solidLogicSingleton.esm-BXyHD7mn.js → solidLogicSingleton.esm-Bvt7E7Vl.js} +50 -29
  73. package/dist/chunks/solidLogicSingleton.esm-Bvt7E7Vl.js.map +1 -0
  74. package/dist/chunks/{src-DQgHAH3d.js → src-akaVfkuf.js} +1956 -1944
  75. package/dist/chunks/src-akaVfkuf.js.map +1 -0
  76. package/dist/chunks/{style-CXaw5EYi.js → style-Dlw9-wPn.js} +3 -3
  77. package/dist/chunks/{style-CXaw5EYi.js.map → style-Dlw9-wPn.js.map} +1 -1
  78. package/dist/chunks/{widgets-BBEQu0CS.js → widgets-B1hBVhRL.js} +309 -309
  79. package/dist/chunks/widgets-B1hBVhRL.js.map +1 -0
  80. package/dist/components/access-control-modal/AccessControlAddAccess.cjs.js +1 -1
  81. package/dist/components/access-control-modal/AccessControlAddAccess.esm.js +5 -5
  82. package/dist/components/access-control-modal/AccessControlGeneralAccess.cjs.js +2 -2
  83. package/dist/components/access-control-modal/AccessControlGeneralAccess.cjs.js.map +1 -1
  84. package/dist/components/access-control-modal/AccessControlGeneralAccess.esm.js +12 -12
  85. package/dist/components/access-control-modal/AccessControlModal.cjs.js +2 -2
  86. package/dist/components/access-control-modal/AccessControlModal.cjs.js.map +1 -1
  87. package/dist/components/access-control-modal/AccessControlModal.esm.js +35 -35
  88. package/dist/components/access-control-modal/AccessControlModal.esm.js.map +1 -1
  89. package/dist/components/access-control-modal/AccessControlSharedAccess.cjs.js +1 -1
  90. package/dist/components/access-control-modal/AccessControlSharedAccess.esm.js +2 -2
  91. package/dist/components/access-control-modal/accessTargetResolver.cjs.js +1 -1
  92. package/dist/components/access-control-modal/accessTargetResolver.cjs.js.map +1 -1
  93. package/dist/components/access-control-modal/accessTargetResolver.esm.js +21 -21
  94. package/dist/components/access-control-modal.js +1 -1
  95. package/dist/components/account/Account.cjs.js +1 -1
  96. package/dist/components/account/Account.esm.js +3 -3
  97. package/dist/components/account.js +1 -1
  98. package/dist/components/all.cjs.js +1 -1
  99. package/dist/components/all.esm.js +16 -16
  100. package/dist/components/avatar.js +1 -1
  101. package/dist/components/combobox/Combobox.cjs.js +1 -1
  102. package/dist/components/combobox/Combobox.esm.js +1 -1
  103. package/dist/components/combobox.js +1 -1
  104. package/dist/components/dialog/Dialog.cjs.js +2 -2
  105. package/dist/components/dialog/Dialog.cjs.js.map +1 -1
  106. package/dist/components/dialog/Dialog.esm.js +9 -9
  107. package/dist/components/dialog/Dialog.esm.js.map +1 -1
  108. package/dist/components/dialog-provider/DialogProvider.cjs.js +1 -1
  109. package/dist/components/dialog-provider/DialogProvider.cjs.js.map +1 -1
  110. package/dist/components/dialog-provider/DialogProvider.esm.js +6 -6
  111. package/dist/components/dialogs-root/DialogsRoot.cjs.js +2 -2
  112. package/dist/components/dialogs-root/DialogsRoot.cjs.js.map +1 -1
  113. package/dist/components/dialogs-root/DialogsRoot.esm.js +7 -7
  114. package/dist/components/error-state/ErrorState.cjs.js +1 -1
  115. package/dist/components/error-state/ErrorState.esm.js +1 -1
  116. package/dist/components/error-state.js +1 -1
  117. package/dist/components/file-explorer-header/FileExplorerHeaderControls.cjs.js +2 -2
  118. package/dist/components/file-explorer-header/FileExplorerHeaderControls.cjs.js.map +1 -1
  119. package/dist/components/file-explorer-header/FileExplorerHeaderControls.esm.js +10 -10
  120. package/dist/components/file-explorer-header/FileExplorerHeaderSummary.cjs.js +1 -1
  121. package/dist/components/file-explorer-header/FileExplorerHeaderSummary.esm.js +5 -5
  122. package/dist/components/file-explorer-header.js +1 -1
  123. package/dist/components/guard.js +1 -1
  124. package/dist/components/login-button/LoginButton.cjs.js +1 -1
  125. package/dist/components/login-button/LoginButton.esm.js +1 -1
  126. package/dist/components/login-button.js +1 -1
  127. package/dist/components/login-modal/LoginModal.cjs.js +1 -1
  128. package/dist/components/login-modal/LoginModal.esm.js +2 -2
  129. package/dist/components/login-modal.js +1 -1
  130. package/dist/components/logout-button/LogoutButton.cjs.js +1 -1
  131. package/dist/components/logout-button/LogoutButton.esm.js +1 -1
  132. package/dist/components/logout-button.js +1 -1
  133. package/dist/components/menu/Menu.cjs.js +1 -1
  134. package/dist/components/menu/Menu.cjs.js.map +1 -1
  135. package/dist/components/menu/Menu.esm.js +1 -1
  136. package/dist/components/menu/Menu.esm.js.map +1 -1
  137. package/dist/components/menu.js +1 -1
  138. package/dist/components/provider.js +1 -1
  139. package/dist/components/rdf-form/RDFForm.cjs.js +3 -3
  140. package/dist/components/rdf-form/RDFForm.cjs.js.map +1 -1
  141. package/dist/components/rdf-form/RDFForm.esm.js +13 -13
  142. package/dist/components/rdf-form/RDFForm.esm.js.map +1 -1
  143. package/dist/components/rdf-form.js +1 -1
  144. package/dist/components/rdf-input/RDFInput.cjs.js +2 -2
  145. package/dist/components/rdf-input/RDFInput.cjs.js.map +1 -1
  146. package/dist/components/rdf-input/RDFInput.esm.js +4 -4
  147. package/dist/components/rdf-input/RDFInput.esm.js.map +1 -1
  148. package/dist/components/rdf-input.js +1 -1
  149. package/dist/components/resource-actions-menu/ResourceActionsMenu.cjs.js +3 -3
  150. package/dist/components/resource-actions-menu/ResourceActionsMenu.cjs.js.map +1 -1
  151. package/dist/components/resource-actions-menu/ResourceActionsMenu.esm.js +7 -7
  152. package/dist/components/resource-actions-menu.js +1 -1
  153. package/dist/components/select/Select.cjs.js +1 -1
  154. package/dist/components/select/Select.cjs.js.map +1 -1
  155. package/dist/components/select/Select.esm.js +1 -1
  156. package/dist/components/signup-button/SignupButton.cjs.js +1 -1
  157. package/dist/components/signup-button/SignupButton.esm.js +1 -1
  158. package/dist/components/signup-button.js +1 -1
  159. package/dist/components.js +21 -21
  160. package/dist/create/create.cjs.js +1 -1
  161. package/dist/create/create.cjs.js.map +1 -1
  162. package/dist/create/create.esm.js +23 -23
  163. package/dist/header/index.cjs.js +1 -1
  164. package/dist/header/index.cjs.js.map +1 -1
  165. package/dist/header/index.esm.js +53 -53
  166. package/dist/index.cjs.js +1 -1
  167. package/dist/index.cjs.js.map +1 -1
  168. package/dist/index.esm.js +20 -20
  169. package/dist/index.js +5 -5
  170. package/dist/lib/auth/SolidAuth.cjs.js +1 -1
  171. package/dist/lib/auth/SolidAuth.cjs.js.map +1 -1
  172. package/dist/lib/auth/SolidAuth.esm.js +8 -8
  173. package/dist/lib/auth/SolidAuth.esm.js.map +1 -1
  174. package/dist/lib/code-editor/CodeEditor.cjs.js +1 -1
  175. package/dist/lib/code-editor/CodeEditor.cjs.js.map +1 -1
  176. package/dist/lib/code-editor/CodeEditor.d.ts.map +1 -1
  177. package/dist/lib/code-editor/CodeEditor.esm.js +34 -30
  178. package/dist/lib/code-editor/CodeEditor.esm.js.map +1 -1
  179. package/dist/lib/components/dialog-component/DialogComponent.cjs.js +1 -1
  180. package/dist/lib/components/dialog-component/DialogComponent.cjs.js.map +1 -1
  181. package/dist/lib/components/dialog-component/DialogComponent.esm.js +4 -4
  182. package/dist/lib/components/index.cjs.js +1 -1
  183. package/dist/lib/components/index.esm.js +3 -3
  184. package/dist/lib/dialogs/helpers.cjs.js +1 -1
  185. package/dist/lib/dialogs/helpers.cjs.js.map +1 -1
  186. package/dist/lib/dialogs/helpers.esm.js +4 -4
  187. package/dist/lib/file-explorer/relevant-panes.cjs.js +1 -1
  188. package/dist/lib/file-explorer/relevant-panes.cjs.js.map +1 -1
  189. package/dist/lib/file-explorer/relevant-panes.esm.js +8 -8
  190. package/dist/lib/messageArea.cjs.js +1 -1
  191. package/dist/lib/messageArea.cjs.js.map +1 -1
  192. package/dist/lib/messageArea.esm.js +27 -27
  193. package/dist/lib/pad.cjs.js +1 -1
  194. package/dist/lib/pad.cjs.js.map +1 -1
  195. package/dist/lib/pad.esm.js +15 -15
  196. package/dist/lib/participation.cjs.js +1 -1
  197. package/dist/lib/participation.cjs.js.map +1 -1
  198. package/dist/lib/participation.esm.js +59 -59
  199. package/dist/lib/preferences.cjs.js +1 -1
  200. package/dist/lib/preferences.cjs.js.map +1 -1
  201. package/dist/lib/preferences.esm.js +28 -28
  202. package/dist/lib/table.cjs.js +3 -3
  203. package/dist/lib/table.cjs.js.map +1 -1
  204. package/dist/lib/table.esm.js +123 -123
  205. package/dist/lib/table.esm.js.map +1 -1
  206. package/dist/lib/tabs.cjs.js +1 -1
  207. package/dist/lib/tabs.cjs.js.map +1 -1
  208. package/dist/lib/tabs.esm.js +16 -16
  209. package/dist/loader.js +11 -11
  210. package/dist/login/login.cjs.js +6 -6
  211. package/dist/login/login.cjs.js.map +1 -1
  212. package/dist/login/login.esm.js +142 -142
  213. package/dist/media/media-capture.cjs.js +1 -1
  214. package/dist/media/media-capture.cjs.js.map +1 -1
  215. package/dist/media/media-capture.esm.js +6 -6
  216. package/dist/solid-ui.js +18 -18
  217. package/dist/solid-ui.min.js +18 -18
  218. package/dist/solid-ui.min.js.map +1 -1
  219. package/dist/utils/index.cjs.js +1 -1
  220. package/dist/utils/index.cjs.js.map +1 -1
  221. package/dist/utils/index.esm.js +4 -4
  222. package/dist/utils/keyHelpers/accessData.cjs.js +1 -1
  223. package/dist/utils/keyHelpers/accessData.cjs.js.map +1 -1
  224. package/dist/utils/keyHelpers/accessData.esm.js +15 -15
  225. package/dist/utils/label.cjs.js +1 -1
  226. package/dist/utils/label.cjs.js.map +1 -1
  227. package/dist/utils/label.esm.js +4 -4
  228. package/dist/widgets/buttons.cjs.js +12 -12
  229. package/dist/widgets/buttons.cjs.js.map +1 -1
  230. package/dist/widgets/buttons.esm.js +179 -179
  231. package/dist/widgets/error.cjs.js +1 -1
  232. package/dist/widgets/error.cjs.js.map +1 -1
  233. package/dist/widgets/error.esm.js +5 -5
  234. package/dist/widgets/forms/autocomplete/autocompleteBar.cjs.js +1 -1
  235. package/dist/widgets/forms/autocomplete/autocompleteBar.cjs.js.map +1 -1
  236. package/dist/widgets/forms/autocomplete/autocompleteBar.esm.js +17 -17
  237. package/dist/widgets/forms/autocomplete/autocompleteField.cjs.js +1 -1
  238. package/dist/widgets/forms/autocomplete/autocompleteField.cjs.js.map +1 -1
  239. package/dist/widgets/forms/autocomplete/autocompleteField.esm.js +23 -23
  240. package/dist/widgets/forms/autocomplete/autocompletePicker.cjs.js +1 -1
  241. package/dist/widgets/forms/autocomplete/autocompletePicker.cjs.js.map +1 -1
  242. package/dist/widgets/forms/autocomplete/autocompletePicker.esm.js +26 -26
  243. package/dist/widgets/forms/autocomplete/language.cjs.js +1 -1
  244. package/dist/widgets/forms/autocomplete/language.cjs.js.map +1 -1
  245. package/dist/widgets/forms/autocomplete/language.esm.js +9 -9
  246. package/dist/widgets/forms/autocomplete/publicData.cjs.js +5 -5
  247. package/dist/widgets/forms/autocomplete/publicData.cjs.js.map +1 -1
  248. package/dist/widgets/forms/autocomplete/publicData.esm.js +67 -67
  249. package/dist/widgets/forms/basic.cjs.js +1 -1
  250. package/dist/widgets/forms/basic.cjs.js.map +1 -1
  251. package/dist/widgets/forms/basic.esm.js +11 -11
  252. package/dist/widgets/forms.cjs.js +4 -4
  253. package/dist/widgets/forms.cjs.js.map +1 -1
  254. package/dist/widgets/forms.esm.js +561 -561
  255. package/dist/widgets/forms.esm.js.map +1 -1
  256. package/dist/widgets/index.cjs.js +1 -1
  257. package/dist/widgets/index.cjs.js.map +1 -1
  258. package/dist/widgets/index.esm.js +82 -82
  259. package/dist/widgets/peoplePicker.cjs.js +2 -2
  260. package/dist/widgets/peoplePicker.cjs.js.map +1 -1
  261. package/dist/widgets/peoplePicker.esm.js +82 -82
  262. package/package.json +3 -3
  263. package/dist/chunks/solidLogicSingleton.esm-BXyHD7mn.js.map +0 -1
  264. package/dist/chunks/src-DQgHAH3d.js.map +0 -1
  265. package/dist/chunks/widgets-BBEQu0CS.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"RDFForm.cjs.js","names":["property","state","html","consume","customElement","WebComponent","ns","fetchData","findForm","sortBySequence","sym","DEFAULT_STORE","storeContext","urlConverter","fromAttribute","value","URL","toAttribute","hrefFromUrlValue","href","_classDecs","_RDFForm","_A","WeakMap","_B","_C","_D","_E","_F","_G","_ref","_storeContextDecs","context","subscribe","_passedInStoreDecs","attribute","_entireDataIsReadonlyDecs","_loadVersionDecs","_documentsLoadedDecs","_formUrlDecs","converter","_subjectUrlDecs","RDFForm","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_storeContext","_init_passedInStore","_init_entireDataIsReadonly","_init__loadVersion","_init__documentsLoaded","_init_formUrl","_init_subjectUrl","_classPrivateFieldGet","v","_classPrivateFieldSet","passedInStore","currentStore","store","entireDataIsReadonly","_loadVersion","_documentsLoaded","formUrl","subjectUrl","render","updater","editable","undefined","formRoot","Error","formDocument","parts","each","ui","partsBySequence","partItems","flatMap","item","Array","isArray","elements","uiFields","map","types","rdf","typeNode","String","hashIndex","lastIndexOf","fieldValue","slice","part","willUpdate","changedProperties","has","loadDocumentsIfNeeded","error","console","_RDFForm2","e","c","_initClass","_applyDecs","default","customElement","consume","storeContext","property","state","WebComponent","DEFAULT_STORE","findForm","sym","ns","sortBySequence","fetchData","require_ns","require_decorators","require_WebComponent","require_rdfFormsHelper","require_StoreContext","rdflib","_lit_context","lit_decorators_js","lit_html_js","_RDFForm2","_initProto","_initClass","_classDecs","_storeContextDecs","_init_storeContext","_passedInStoreDecs","_init_passedInStore","_entireDataIsReadonlyDecs","_init_entireDataIsReadonly","_loadVersionDecs","_init__loadVersion","_documentsLoadedDecs","_init__documentsLoaded","_formUrlDecs","_init_formUrl","_subjectUrlDecs","_init_subjectUrl","_ref","_classPrivateFieldInitSpec","_checkPrivateRedeclaration","a","_classPrivateFieldSet","s","_assertClassBrand","r","_classPrivateFieldGet","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","f","p","_setFunctionName","P","j","D","I","F","l","N","_checkInRHS","_toPropertyKey","_toPrimitive","t","e","urlConverter","value","hrefFromUrlValue","_RDFForm","_A","_B","_C","_D","_E","_F","_G","args","store","subjectUrl","formRoot","formDocument","parts","uiFields","item","typeNode","hashIndex","part","changedProperties","formUrl","error"],"sources":["../../../src/components/rdf-form/RDFForm.ts"],"sourcesContent":["import { property, state } from 'lit/decorators.js'\nimport { html } from 'lit/html.js'\nimport type { PropertyValues } from 'lit'\nimport { consume } from '@lit/context'\nimport { customElement, WebComponent } from '@/lib/components'\nimport ns from '../../lib/ns'\nimport { fetchData, findForm, sortBySequence } from '../../lib/forms/rdfFormsHelper'\nimport { sym, LiveStore } from 'rdflib'\nimport '@/components/rdf-input'\nimport { DEFAULT_STORE, storeContext, StoreContext } from '@/lib/forms/store/StoreContext'\n\nconst urlConverter = {\n fromAttribute (value: string | null): URL | null {\n if (!value) return null\n\n try {\n return new URL(value)\n } catch {\n return null\n }\n },\n toAttribute (value: URL | null) {\n if (!value) return null\n return value\n }\n}\n\nconst hrefFromUrlValue = (value: URL | null): string =>\n value?.href ?? ''\n\n@customElement('solid-ui-rdf-form')\nexport default class RDFForm extends WebComponent {\n @consume({ context: storeContext, subscribe: true })\n private accessor storeContext: StoreContext = DEFAULT_STORE\n\n @property({ attribute: false })\n accessor passedInStore: LiveStore | null = null\n\n private get currentStore (): LiveStore {\n return this.passedInStore ?? this.storeContext.store\n }\n\n @state()\n private accessor entireDataIsReadonly: boolean = true // to protect data, we default to not editable\n\n @state()\n private accessor _loadVersion = 0\n\n @state()\n private accessor _documentsLoaded = false\n\n @property({ converter: urlConverter })\n accessor formUrl: URL | null = null\n\n @property({ converter: urlConverter })\n accessor subjectUrl: URL | null = null\n\n render () {\n if (!this._documentsLoaded) {\n return html``\n }\n\n const store = this.currentStore\n\n const subjectUrl = hrefFromUrlValue(this.subjectUrl)\n if (subjectUrl && store.updater?.editable(subjectUrl) !== undefined && store.updater?.editable(subjectUrl) !== false) {\n this.entireDataIsReadonly = false\n }\n\n const formRoot = findForm(this.currentStore, hrefFromUrlValue(this.formUrl)) // If there are more 'a ui:Form' elements in a form file\n if (!formRoot) throw new Error('No ui:Form found in ' + hrefFromUrlValue(this.formUrl))\n\n const formDocument = sym(hrefFromUrlValue(this.formUrl)) // rdflib NamedNode for the document\n const parts = store.each(formRoot, ns.ui('parts'), null, formDocument)\n const partsBySequence = sortBySequence(store, parts)\n const partItems = (partsBySequence || []).flatMap(item => {\n if (item && typeof item === 'object' && 'elements' in item && Array.isArray((item as any).elements)) {\n return (item as any).elements\n }\n return [item]\n })\n const uiFields = partItems.map(item => {\n const types = store.each(item as any, ns.rdf('type'), null, formDocument)\n const typeNode = types[0]\n const value = typeNode ? ((typeNode as any).value || String(typeNode)) : ((item as any).value || String(item))\n const hashIndex = value.lastIndexOf('#')\n return {\n value: item,\n fieldValue: hashIndex >= 0 ? value.slice(hashIndex + 1) : value\n }\n })\n\n return html`\n <form>\n ${uiFields.map(part => {\n switch (part.fieldValue) {\n case 'PhoneField':\n case 'EmailField':\n case 'ColorField':\n case 'DateField':\n case 'DateTimeField':\n case 'TimeField':\n case 'NumericField':\n case 'IntegerField':\n case 'DecimalField':\n case 'FloatField':\n case 'TextField':\n case 'SingleLineTextField':\n case 'NamedNodeURIField': {\n return html` <solid-ui-rdf-input \n .formSubject=${sym(part.value)} \n .dataSubject=${sym(subjectUrl)}\n .storeVersion=${this._loadVersion}\n .readonly=${this.entireDataIsReadonly}\n ></solid-ui-rdf-input>\n <br>`\n }\n case 'MultiLineTextField':\n return html`<input .rdf=${part}></input>`\n case 'BooleanField':\n return html`<input .rdf=${part}></input>`\n case 'TristateField':\n return html`<input .rdf=${part}></input>`\n case 'Classifier':\n return html`<input .rdf=${part}></input>`\n case 'Choice':\n return html`<input .rdf=${part}></input>`\n case 'Multiple':\n return html`<input .rdf=${part}></input>`\n case 'Options':\n return html`<input .rdf=${part}></input>`\n case 'AutocompleteField':\n return html`<input .rdf=${part}></input>`\n case 'Comment':\n case 'Heading':\n return html`<input .rdf=${part}></input>`\n default:\n return html`<div>Unknown part type: ${part}</div>`\n }\n })}\n </form>\n `\n }\n\n protected override willUpdate (changedProperties: PropertyValues<this>) {\n super.willUpdate(changedProperties)\n if (changedProperties.has('formUrl') ||\n changedProperties.has('subjectUrl') ||\n changedProperties.has('passedInStore')\n ) {\n this.loadDocumentsIfNeeded()\n }\n }\n\n private async loadDocumentsIfNeeded () {\n const store = this.currentStore\n const formUrl = hrefFromUrlValue(this.formUrl)\n const subjectUrl = hrefFromUrlValue(this.subjectUrl)\n\n if (!formUrl || !subjectUrl) return\n\n try {\n await fetchData(store, formUrl)\n await fetchData(store, subjectUrl)\n this._loadVersion += 1\n this._documentsLoaded = true\n } catch (error) {\n console.error('Failed to load RDF documents', error)\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"RDFForm.cjs.js","names":["property","state","html","consume","customElement","WebComponent","ns","fetchData","findForm","sortBySequence","sym","DEFAULT_STORE","storeContext","urlConverter","fromAttribute","value","URL","toAttribute","hrefFromUrlValue","href","_classDecs","_RDFForm","_A","WeakMap","_B","_C","_D","_E","_F","_G","_ref","_storeContextDecs","context","subscribe","_passedInStoreDecs","attribute","_entireDataIsReadonlyDecs","_loadVersionDecs","_documentsLoadedDecs","_formUrlDecs","converter","_subjectUrlDecs","RDFForm","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_storeContext","_init_passedInStore","_init_entireDataIsReadonly","_init__loadVersion","_init__documentsLoaded","_init_formUrl","_init_subjectUrl","_classPrivateFieldGet","v","_classPrivateFieldSet","passedInStore","currentStore","store","entireDataIsReadonly","_loadVersion","_documentsLoaded","formUrl","subjectUrl","render","updater","editable","undefined","formRoot","Error","formDocument","parts","each","ui","partsBySequence","partItems","flatMap","item","Array","isArray","elements","uiFields","map","types","rdf","typeNode","String","hashIndex","lastIndexOf","fieldValue","slice","part","willUpdate","changedProperties","has","loadDocumentsIfNeeded","error","console","_RDFForm2","e","c","_initClass","_applyDecs","default","customElement","consume","storeContext","property","state","WebComponent","DEFAULT_STORE","findForm","sym","ns","sortBySequence","fetchData","require_decorators","require_WebComponent","require_ns","require_rdfFormsHelper","require_StoreContext","rdflib","_lit_context","lit_decorators_js","lit_html_js","_RDFForm2","_initProto","_initClass","_classDecs","_storeContextDecs","_init_storeContext","_passedInStoreDecs","_init_passedInStore","_entireDataIsReadonlyDecs","_init_entireDataIsReadonly","_loadVersionDecs","_init__loadVersion","_documentsLoadedDecs","_init__documentsLoaded","_formUrlDecs","_init_formUrl","_subjectUrlDecs","_init_subjectUrl","_ref","_classPrivateFieldInitSpec","_checkPrivateRedeclaration","a","_classPrivateFieldSet","s","_assertClassBrand","r","_classPrivateFieldGet","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","f","p","_setFunctionName","P","j","D","I","F","l","N","_checkInRHS","_toPropertyKey","_toPrimitive","t","e","urlConverter","value","hrefFromUrlValue","_RDFForm","_A","_B","_C","_D","_E","_F","_G","args","store","subjectUrl","formRoot","formDocument","parts","uiFields","item","typeNode","hashIndex","part","changedProperties","formUrl","error"],"sources":["../../../src/components/rdf-form/RDFForm.ts"],"sourcesContent":["import { property, state } from 'lit/decorators.js'\nimport { html } from 'lit/html.js'\nimport type { PropertyValues } from 'lit'\nimport { consume } from '@lit/context'\nimport { customElement, WebComponent } from '@/lib/components'\nimport ns from '../../lib/ns'\nimport { fetchData, findForm, sortBySequence } from '../../lib/forms/rdfFormsHelper'\nimport { sym, LiveStore } from 'rdflib'\nimport '@/components/rdf-input'\nimport { DEFAULT_STORE, storeContext, StoreContext } from '@/lib/forms/store/StoreContext'\n\nconst urlConverter = {\n fromAttribute (value: string | null): URL | null {\n if (!value) return null\n\n try {\n return new URL(value)\n } catch {\n return null\n }\n },\n toAttribute (value: URL | null) {\n if (!value) return null\n return value\n }\n}\n\nconst hrefFromUrlValue = (value: URL | null): string =>\n value?.href ?? ''\n\n@customElement('solid-ui-rdf-form')\nexport default class RDFForm extends WebComponent {\n @consume({ context: storeContext, subscribe: true })\n private accessor storeContext: StoreContext = DEFAULT_STORE\n\n @property({ attribute: false })\n accessor passedInStore: LiveStore | null = null\n\n private get currentStore (): LiveStore {\n return this.passedInStore ?? this.storeContext.store\n }\n\n @state()\n private accessor entireDataIsReadonly: boolean = true // to protect data, we default to not editable\n\n @state()\n private accessor _loadVersion = 0\n\n @state()\n private accessor _documentsLoaded = false\n\n @property({ converter: urlConverter })\n accessor formUrl: URL | null = null\n\n @property({ converter: urlConverter })\n accessor subjectUrl: URL | null = null\n\n render () {\n if (!this._documentsLoaded) {\n return html``\n }\n\n const store = this.currentStore\n\n const subjectUrl = hrefFromUrlValue(this.subjectUrl)\n if (subjectUrl && store.updater?.editable(subjectUrl) !== undefined && store.updater?.editable(subjectUrl) !== false) {\n this.entireDataIsReadonly = false\n }\n\n const formRoot = findForm(this.currentStore, hrefFromUrlValue(this.formUrl)) // If there are more 'a ui:Form' elements in a form file\n if (!formRoot) throw new Error('No ui:Form found in ' + hrefFromUrlValue(this.formUrl))\n\n const formDocument = sym(hrefFromUrlValue(this.formUrl)) // rdflib NamedNode for the document\n const parts = store.each(formRoot, ns.ui('parts'), null, formDocument)\n const partsBySequence = sortBySequence(store, parts)\n const partItems = (partsBySequence || []).flatMap(item => {\n if (item && typeof item === 'object' && 'elements' in item && Array.isArray((item as any).elements)) {\n return (item as any).elements\n }\n return [item]\n })\n const uiFields = partItems.map(item => {\n const types = store.each(item as any, ns.rdf('type'), null, formDocument)\n const typeNode = types[0]\n const value = typeNode ? ((typeNode as any).value || String(typeNode)) : ((item as any).value || String(item))\n const hashIndex = value.lastIndexOf('#')\n return {\n value: item,\n fieldValue: hashIndex >= 0 ? value.slice(hashIndex + 1) : value\n }\n })\n\n return html`\n <form>\n ${uiFields.map(part => {\n switch (part.fieldValue) {\n case 'PhoneField':\n case 'EmailField':\n case 'ColorField':\n case 'DateField':\n case 'DateTimeField':\n case 'TimeField':\n case 'NumericField':\n case 'IntegerField':\n case 'DecimalField':\n case 'FloatField':\n case 'TextField':\n case 'SingleLineTextField':\n case 'NamedNodeURIField': {\n return html` <solid-ui-rdf-input \n .formSubject=${sym(part.value)} \n .dataSubject=${sym(subjectUrl)}\n .storeVersion=${this._loadVersion}\n .readonly=${this.entireDataIsReadonly}\n ></solid-ui-rdf-input>\n <br>`\n }\n case 'MultiLineTextField':\n return html`<input .rdf=${part}></input>`\n case 'BooleanField':\n return html`<input .rdf=${part}></input>`\n case 'TristateField':\n return html`<input .rdf=${part}></input>`\n case 'Classifier':\n return html`<input .rdf=${part}></input>`\n case 'Choice':\n return html`<input .rdf=${part}></input>`\n case 'Multiple':\n return html`<input .rdf=${part}></input>`\n case 'Options':\n return html`<input .rdf=${part}></input>`\n case 'AutocompleteField':\n return html`<input .rdf=${part}></input>`\n case 'Comment':\n case 'Heading':\n return html`<input .rdf=${part}></input>`\n default:\n return html`<div>Unknown part type: ${part}</div>`\n }\n })}\n </form>\n `\n }\n\n protected override willUpdate (changedProperties: PropertyValues<this>) {\n super.willUpdate(changedProperties)\n if (changedProperties.has('formUrl') ||\n changedProperties.has('subjectUrl') ||\n changedProperties.has('passedInStore')\n ) {\n this.loadDocumentsIfNeeded()\n }\n }\n\n private async loadDocumentsIfNeeded () {\n const store = this.currentStore\n const formUrl = hrefFromUrlValue(this.formUrl)\n const subjectUrl = hrefFromUrlValue(this.subjectUrl)\n\n if (!formUrl || !subjectUrl) return\n\n try {\n await fetchData(store, formUrl)\n await fetchData(store, subjectUrl)\n this._loadVersion += 1\n this._documentsLoaded = true\n } catch (error) {\n console.error('Failed to load RDF documents', error)\n }\n }\n}\n"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import e from "../../lib/ns.esm.js";
2
- import { customElement as t } from "../../lib/components/decorators.esm.js";
3
- import n from "../../lib/components/web-component/WebComponent.esm.js";
4
1
  import "../../lib/components/index.esm.js";
2
+ import { customElement as e } from "../../lib/components/decorators.esm.js";
3
+ import t from "../../lib/components/web-component/WebComponent.esm.js";
4
+ import n from "../../lib/ns.esm.js";
5
5
  import { fetchData as r, findForm as i, sortBySequence as a } from "../../lib/forms/rdfFormsHelper.esm.js";
6
- import { DEFAULT_STORE as o, storeContext as s } from "../../lib/forms/store/StoreContext.esm.js";
7
6
  import "../rdf-input/index.esm.js";
7
+ import { DEFAULT_STORE as o, storeContext as s } from "../../lib/forms/store/StoreContext.esm.js";
8
8
  import { sym as c } from "rdflib";
9
9
  import { consume as l } from "@lit/context";
10
10
  import { property as u, state as d } from "lit/decorators.js";
@@ -184,12 +184,12 @@ var H = {
184
184
  return e || null;
185
185
  }
186
186
  }, U = (e) => e?.href ?? "";
187
- g = [t("solid-ui-rdf-form")];
187
+ g = [e("solid-ui-rdf-form")];
188
188
  var W, G = /*#__PURE__*/ new WeakMap(), K = /*#__PURE__*/ new WeakMap(), q = /*#__PURE__*/ new WeakMap(), J = /*#__PURE__*/ new WeakMap(), Y = /*#__PURE__*/ new WeakMap(), X = /*#__PURE__*/ new WeakMap(), Z = /*#__PURE__*/ new WeakMap();
189
189
  j = (_ = l({
190
190
  context: s,
191
191
  subscribe: !0
192
- }), y = u({ attribute: !1 }), x = d(), C = d(), T = d(), D = u({ converter: H }), k = u({ converter: H }), "storeContext"), p = class extends n {
192
+ }), y = u({ attribute: !1 }), x = d(), C = d(), T = d(), D = u({ converter: H }), k = u({ converter: H }), "storeContext"), p = class extends t {
193
193
  constructor(...e) {
194
194
  super(...e), M(this, G, (m(this), v(this, o))), M(this, K, b(this, null)), M(this, q, S(this, !0)), M(this, J, w(this, 0)), M(this, Y, E(this, !1)), M(this, X, O(this, null)), M(this, Z, A(this, null));
195
195
  }
@@ -240,14 +240,14 @@ j = (_ = l({
240
240
  }
241
241
  render() {
242
242
  if (!this._documentsLoaded) return f``;
243
- let t = this.currentStore, n = U(this.subjectUrl);
244
- n && t.updater?.editable(n) !== void 0 && t.updater?.editable(n) !== !1 && (this.entireDataIsReadonly = !1);
243
+ let e = this.currentStore, t = U(this.subjectUrl);
244
+ t && e.updater?.editable(t) !== void 0 && e.updater?.editable(t) !== !1 && (this.entireDataIsReadonly = !1);
245
245
  let r = i(this.currentStore, U(this.formUrl));
246
246
  if (!r) throw Error("No ui:Form found in " + U(this.formUrl));
247
- let o = c(U(this.formUrl)), s = t.each(r, e.ui("parts"), null, o), l = (a(t, s) || []).flatMap((e) => e && typeof e == "object" && "elements" in e && Array.isArray(e.elements) ? e.elements : [e]).map((n) => {
248
- let r = t.each(n, e.rdf("type"), null, o)[0], i = r ? r.value || String(r) : n.value || String(n), a = i.lastIndexOf("#");
247
+ let o = c(U(this.formUrl)), s = e.each(r, n.ui("parts"), null, o), l = (a(e, s) || []).flatMap((e) => e && typeof e == "object" && "elements" in e && Array.isArray(e.elements) ? e.elements : [e]).map((t) => {
248
+ let r = e.each(t, n.rdf("type"), null, o)[0], i = r ? r.value || String(r) : t.value || String(t), a = i.lastIndexOf("#");
249
249
  return {
250
- value: n,
250
+ value: t,
251
251
  fieldValue: a >= 0 ? i.slice(a + 1) : i
252
252
  };
253
253
  });
@@ -269,7 +269,7 @@ j = (_ = l({
269
269
  case "SingleLineTextField":
270
270
  case "NamedNodeURIField": return f` <solid-ui-rdf-input
271
271
  .formSubject=${c(e.value)}
272
- .dataSubject=${c(n)}
272
+ .dataSubject=${c(t)}
273
273
  .storeVersion=${this._loadVersion}
274
274
  .readonly=${this.entireDataIsReadonly}
275
275
  ></solid-ui-rdf-input>
@@ -337,7 +337,7 @@ j = (_ = l({
337
337
  1,
338
338
  "subjectUrl"
339
339
  ]
340
- ], g, 0, void 0, n), h();
340
+ ], g, 0, void 0, t), h();
341
341
  export { W as default };
342
342
 
343
343
  //# sourceMappingURL=RDFForm.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RDFForm.esm.js","names":["property","state","html","consume","customElement","WebComponent","ns","fetchData","findForm","sortBySequence","sym","DEFAULT_STORE","storeContext","urlConverter","fromAttribute","value","URL","toAttribute","hrefFromUrlValue","href","_classDecs","_RDFForm","_A","WeakMap","_B","_C","_D","_E","_F","_G","_ref","_storeContextDecs","context","subscribe","_passedInStoreDecs","attribute","_entireDataIsReadonlyDecs","_loadVersionDecs","_documentsLoadedDecs","_formUrlDecs","converter","_subjectUrlDecs","RDFForm","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_storeContext","_init_passedInStore","_init_entireDataIsReadonly","_init__loadVersion","_init__documentsLoaded","_init_formUrl","_init_subjectUrl","_classPrivateFieldGet","v","_classPrivateFieldSet","passedInStore","currentStore","store","entireDataIsReadonly","_loadVersion","_documentsLoaded","formUrl","subjectUrl","render","updater","editable","undefined","formRoot","Error","formDocument","parts","each","ui","partsBySequence","partItems","flatMap","item","Array","isArray","elements","uiFields","map","types","rdf","typeNode","String","hashIndex","lastIndexOf","fieldValue","slice","part","willUpdate","changedProperties","has","loadDocumentsIfNeeded","error","console","_RDFForm2","e","c","_initClass","_applyDecs","default","ns","ns_default","WebComponent","_RDFForm2","_initProto","_initClass","_classDecs","_storeContextDecs","_init_storeContext","_passedInStoreDecs","_init_passedInStore","_entireDataIsReadonlyDecs","_init_entireDataIsReadonly","_loadVersionDecs","_init__loadVersion","_documentsLoadedDecs","_init__documentsLoaded","_formUrlDecs","_init_formUrl","_subjectUrlDecs","_init_subjectUrl","_ref","_classPrivateFieldInitSpec","a","_checkPrivateRedeclaration","_classPrivateFieldSet","s","_assertClassBrand","r","_classPrivateFieldGet","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","p","_setFunctionName","P","j","D","I","F","l","f","N","_checkInRHS","_toPropertyKey","_toPrimitive","t","e","urlConverter","value","hrefFromUrlValue","customElement","_RDFForm","_A","_B","_C","_D","_E","_F","_G","consume","storeContext","property","state","args","DEFAULT_STORE","store","subjectUrl","formRoot","findForm","formDocument","sym","parts","uiFields","sortBySequence","item","typeNode","hashIndex","part","changedProperties","formUrl","fetchData","error"],"sources":["../../../src/components/rdf-form/RDFForm.ts"],"sourcesContent":["import { property, state } from 'lit/decorators.js'\nimport { html } from 'lit/html.js'\nimport type { PropertyValues } from 'lit'\nimport { consume } from '@lit/context'\nimport { customElement, WebComponent } from '@/lib/components'\nimport ns from '../../lib/ns'\nimport { fetchData, findForm, sortBySequence } from '../../lib/forms/rdfFormsHelper'\nimport { sym, LiveStore } from 'rdflib'\nimport '@/components/rdf-input'\nimport { DEFAULT_STORE, storeContext, StoreContext } from '@/lib/forms/store/StoreContext'\n\nconst urlConverter = {\n fromAttribute (value: string | null): URL | null {\n if (!value) return null\n\n try {\n return new URL(value)\n } catch {\n return null\n }\n },\n toAttribute (value: URL | null) {\n if (!value) return null\n return value\n }\n}\n\nconst hrefFromUrlValue = (value: URL | null): string =>\n value?.href ?? ''\n\n@customElement('solid-ui-rdf-form')\nexport default class RDFForm extends WebComponent {\n @consume({ context: storeContext, subscribe: true })\n private accessor storeContext: StoreContext = DEFAULT_STORE\n\n @property({ attribute: false })\n accessor passedInStore: LiveStore | null = null\n\n private get currentStore (): LiveStore {\n return this.passedInStore ?? this.storeContext.store\n }\n\n @state()\n private accessor entireDataIsReadonly: boolean = true // to protect data, we default to not editable\n\n @state()\n private accessor _loadVersion = 0\n\n @state()\n private accessor _documentsLoaded = false\n\n @property({ converter: urlConverter })\n accessor formUrl: URL | null = null\n\n @property({ converter: urlConverter })\n accessor subjectUrl: URL | null = null\n\n render () {\n if (!this._documentsLoaded) {\n return html``\n }\n\n const store = this.currentStore\n\n const subjectUrl = hrefFromUrlValue(this.subjectUrl)\n if (subjectUrl && store.updater?.editable(subjectUrl) !== undefined && store.updater?.editable(subjectUrl) !== false) {\n this.entireDataIsReadonly = false\n }\n\n const formRoot = findForm(this.currentStore, hrefFromUrlValue(this.formUrl)) // If there are more 'a ui:Form' elements in a form file\n if (!formRoot) throw new Error('No ui:Form found in ' + hrefFromUrlValue(this.formUrl))\n\n const formDocument = sym(hrefFromUrlValue(this.formUrl)) // rdflib NamedNode for the document\n const parts = store.each(formRoot, ns.ui('parts'), null, formDocument)\n const partsBySequence = sortBySequence(store, parts)\n const partItems = (partsBySequence || []).flatMap(item => {\n if (item && typeof item === 'object' && 'elements' in item && Array.isArray((item as any).elements)) {\n return (item as any).elements\n }\n return [item]\n })\n const uiFields = partItems.map(item => {\n const types = store.each(item as any, ns.rdf('type'), null, formDocument)\n const typeNode = types[0]\n const value = typeNode ? ((typeNode as any).value || String(typeNode)) : ((item as any).value || String(item))\n const hashIndex = value.lastIndexOf('#')\n return {\n value: item,\n fieldValue: hashIndex >= 0 ? value.slice(hashIndex + 1) : value\n }\n })\n\n return html`\n <form>\n ${uiFields.map(part => {\n switch (part.fieldValue) {\n case 'PhoneField':\n case 'EmailField':\n case 'ColorField':\n case 'DateField':\n case 'DateTimeField':\n case 'TimeField':\n case 'NumericField':\n case 'IntegerField':\n case 'DecimalField':\n case 'FloatField':\n case 'TextField':\n case 'SingleLineTextField':\n case 'NamedNodeURIField': {\n return html` <solid-ui-rdf-input \n .formSubject=${sym(part.value)} \n .dataSubject=${sym(subjectUrl)}\n .storeVersion=${this._loadVersion}\n .readonly=${this.entireDataIsReadonly}\n ></solid-ui-rdf-input>\n <br>`\n }\n case 'MultiLineTextField':\n return html`<input .rdf=${part}></input>`\n case 'BooleanField':\n return html`<input .rdf=${part}></input>`\n case 'TristateField':\n return html`<input .rdf=${part}></input>`\n case 'Classifier':\n return html`<input .rdf=${part}></input>`\n case 'Choice':\n return html`<input .rdf=${part}></input>`\n case 'Multiple':\n return html`<input .rdf=${part}></input>`\n case 'Options':\n return html`<input .rdf=${part}></input>`\n case 'AutocompleteField':\n return html`<input .rdf=${part}></input>`\n case 'Comment':\n case 'Heading':\n return html`<input .rdf=${part}></input>`\n default:\n return html`<div>Unknown part type: ${part}</div>`\n }\n })}\n </form>\n `\n }\n\n protected override willUpdate (changedProperties: PropertyValues<this>) {\n super.willUpdate(changedProperties)\n if (changedProperties.has('formUrl') ||\n changedProperties.has('subjectUrl') ||\n changedProperties.has('passedInStore')\n ) {\n this.loadDocumentsIfNeeded()\n }\n }\n\n private async loadDocumentsIfNeeded () {\n const store = this.currentStore\n const formUrl = hrefFromUrlValue(this.formUrl)\n const subjectUrl = hrefFromUrlValue(this.subjectUrl)\n\n if (!formUrl || !subjectUrl) return\n\n try {\n await fetchData(store, formUrl)\n await fetchData(store, subjectUrl)\n this._loadVersion += 1\n this._documentsLoaded = true\n } catch (error) {\n console.error('Failed to load RDF documents', error)\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"RDFForm.esm.js","names":["property","state","html","consume","customElement","WebComponent","ns","fetchData","findForm","sortBySequence","sym","DEFAULT_STORE","storeContext","urlConverter","fromAttribute","value","URL","toAttribute","hrefFromUrlValue","href","_classDecs","_RDFForm","_A","WeakMap","_B","_C","_D","_E","_F","_G","_ref","_storeContextDecs","context","subscribe","_passedInStoreDecs","attribute","_entireDataIsReadonlyDecs","_loadVersionDecs","_documentsLoadedDecs","_formUrlDecs","converter","_subjectUrlDecs","RDFForm","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_storeContext","_init_passedInStore","_init_entireDataIsReadonly","_init__loadVersion","_init__documentsLoaded","_init_formUrl","_init_subjectUrl","_classPrivateFieldGet","v","_classPrivateFieldSet","passedInStore","currentStore","store","entireDataIsReadonly","_loadVersion","_documentsLoaded","formUrl","subjectUrl","render","updater","editable","undefined","formRoot","Error","formDocument","parts","each","ui","partsBySequence","partItems","flatMap","item","Array","isArray","elements","uiFields","map","types","rdf","typeNode","String","hashIndex","lastIndexOf","fieldValue","slice","part","willUpdate","changedProperties","has","loadDocumentsIfNeeded","error","console","_RDFForm2","e","c","_initClass","_applyDecs","default","ns","WebComponent","ns_default","_RDFForm2","_initProto","_initClass","_classDecs","_storeContextDecs","_init_storeContext","_passedInStoreDecs","_init_passedInStore","_entireDataIsReadonlyDecs","_init_entireDataIsReadonly","_loadVersionDecs","_init__loadVersion","_documentsLoadedDecs","_init__documentsLoaded","_formUrlDecs","_init_formUrl","_subjectUrlDecs","_init_subjectUrl","_ref","_classPrivateFieldInitSpec","a","_checkPrivateRedeclaration","_classPrivateFieldSet","s","_assertClassBrand","r","_classPrivateFieldGet","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","p","_setFunctionName","P","j","D","I","F","l","f","N","_checkInRHS","_toPropertyKey","_toPrimitive","t","e","urlConverter","value","hrefFromUrlValue","customElement","_RDFForm","_A","_B","_C","_D","_E","_F","_G","consume","storeContext","property","state","args","DEFAULT_STORE","store","subjectUrl","formRoot","findForm","formDocument","sym","parts","uiFields","sortBySequence","item","typeNode","hashIndex","part","changedProperties","formUrl","fetchData","error"],"sources":["../../../src/components/rdf-form/RDFForm.ts"],"sourcesContent":["import { property, state } from 'lit/decorators.js'\nimport { html } from 'lit/html.js'\nimport type { PropertyValues } from 'lit'\nimport { consume } from '@lit/context'\nimport { customElement, WebComponent } from '@/lib/components'\nimport ns from '../../lib/ns'\nimport { fetchData, findForm, sortBySequence } from '../../lib/forms/rdfFormsHelper'\nimport { sym, LiveStore } from 'rdflib'\nimport '@/components/rdf-input'\nimport { DEFAULT_STORE, storeContext, StoreContext } from '@/lib/forms/store/StoreContext'\n\nconst urlConverter = {\n fromAttribute (value: string | null): URL | null {\n if (!value) return null\n\n try {\n return new URL(value)\n } catch {\n return null\n }\n },\n toAttribute (value: URL | null) {\n if (!value) return null\n return value\n }\n}\n\nconst hrefFromUrlValue = (value: URL | null): string =>\n value?.href ?? ''\n\n@customElement('solid-ui-rdf-form')\nexport default class RDFForm extends WebComponent {\n @consume({ context: storeContext, subscribe: true })\n private accessor storeContext: StoreContext = DEFAULT_STORE\n\n @property({ attribute: false })\n accessor passedInStore: LiveStore | null = null\n\n private get currentStore (): LiveStore {\n return this.passedInStore ?? this.storeContext.store\n }\n\n @state()\n private accessor entireDataIsReadonly: boolean = true // to protect data, we default to not editable\n\n @state()\n private accessor _loadVersion = 0\n\n @state()\n private accessor _documentsLoaded = false\n\n @property({ converter: urlConverter })\n accessor formUrl: URL | null = null\n\n @property({ converter: urlConverter })\n accessor subjectUrl: URL | null = null\n\n render () {\n if (!this._documentsLoaded) {\n return html``\n }\n\n const store = this.currentStore\n\n const subjectUrl = hrefFromUrlValue(this.subjectUrl)\n if (subjectUrl && store.updater?.editable(subjectUrl) !== undefined && store.updater?.editable(subjectUrl) !== false) {\n this.entireDataIsReadonly = false\n }\n\n const formRoot = findForm(this.currentStore, hrefFromUrlValue(this.formUrl)) // If there are more 'a ui:Form' elements in a form file\n if (!formRoot) throw new Error('No ui:Form found in ' + hrefFromUrlValue(this.formUrl))\n\n const formDocument = sym(hrefFromUrlValue(this.formUrl)) // rdflib NamedNode for the document\n const parts = store.each(formRoot, ns.ui('parts'), null, formDocument)\n const partsBySequence = sortBySequence(store, parts)\n const partItems = (partsBySequence || []).flatMap(item => {\n if (item && typeof item === 'object' && 'elements' in item && Array.isArray((item as any).elements)) {\n return (item as any).elements\n }\n return [item]\n })\n const uiFields = partItems.map(item => {\n const types = store.each(item as any, ns.rdf('type'), null, formDocument)\n const typeNode = types[0]\n const value = typeNode ? ((typeNode as any).value || String(typeNode)) : ((item as any).value || String(item))\n const hashIndex = value.lastIndexOf('#')\n return {\n value: item,\n fieldValue: hashIndex >= 0 ? value.slice(hashIndex + 1) : value\n }\n })\n\n return html`\n <form>\n ${uiFields.map(part => {\n switch (part.fieldValue) {\n case 'PhoneField':\n case 'EmailField':\n case 'ColorField':\n case 'DateField':\n case 'DateTimeField':\n case 'TimeField':\n case 'NumericField':\n case 'IntegerField':\n case 'DecimalField':\n case 'FloatField':\n case 'TextField':\n case 'SingleLineTextField':\n case 'NamedNodeURIField': {\n return html` <solid-ui-rdf-input \n .formSubject=${sym(part.value)} \n .dataSubject=${sym(subjectUrl)}\n .storeVersion=${this._loadVersion}\n .readonly=${this.entireDataIsReadonly}\n ></solid-ui-rdf-input>\n <br>`\n }\n case 'MultiLineTextField':\n return html`<input .rdf=${part}></input>`\n case 'BooleanField':\n return html`<input .rdf=${part}></input>`\n case 'TristateField':\n return html`<input .rdf=${part}></input>`\n case 'Classifier':\n return html`<input .rdf=${part}></input>`\n case 'Choice':\n return html`<input .rdf=${part}></input>`\n case 'Multiple':\n return html`<input .rdf=${part}></input>`\n case 'Options':\n return html`<input .rdf=${part}></input>`\n case 'AutocompleteField':\n return html`<input .rdf=${part}></input>`\n case 'Comment':\n case 'Heading':\n return html`<input .rdf=${part}></input>`\n default:\n return html`<div>Unknown part type: ${part}</div>`\n }\n })}\n </form>\n `\n }\n\n protected override willUpdate (changedProperties: PropertyValues<this>) {\n super.willUpdate(changedProperties)\n if (changedProperties.has('formUrl') ||\n changedProperties.has('subjectUrl') ||\n changedProperties.has('passedInStore')\n ) {\n this.loadDocumentsIfNeeded()\n }\n }\n\n private async loadDocumentsIfNeeded () {\n const store = this.currentStore\n const formUrl = hrefFromUrlValue(this.formUrl)\n const subjectUrl = hrefFromUrlValue(this.subjectUrl)\n\n if (!formUrl || !subjectUrl) return\n\n try {\n await fetchData(store, formUrl)\n await fetchData(store, subjectUrl)\n this._loadVersion += 1\n this._documentsLoaded = true\n } catch (error) {\n console.error('Failed to load RDF documents', error)\n }\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- export { n as RDFForm, t as default } from "../chunks/rdf-form-DVmTw3RG.js";
1
+ export { n as RDFForm, t as default } from "../chunks/rdf-form-BkKDmFPD.js";
@@ -1,4 +1,4 @@
1
- const e=require("../../lib/ns.cjs.js"),t=require("../../utils/label.cjs.js");require("../../utils/index.cjs.js");const n=require("../../lib/components/ids.cjs.js"),r=require("../../lib/components/decorators.cjs.js"),i=require("../../lib/components/web-component/WebComponent.cjs.js");require("../../lib/components/index.cjs.js"),require("../input/index.cjs.js");const a=require("../../lib/forms/rdfFormsHelper.cjs.js"),o=require("../../lib/forms/fieldParams.cjs.js"),s=require("../../lib/forms/store/StoreContext.cjs.js");let c=require("rdflib"),l=require("@lit/context"),u=require("lit/decorators.js"),d=require("lit/html.js");var f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O;function k(e,t,n){return(t=I(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function A(e,t,n){j(e,t),t.set(e,n)}function j(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}function M(e,t,n){return e.set(P(e,t),n),n}function N(e,t){return e.get(P(e,t))}function P(e,t,n){if(typeof e==`function`?e===t:e.has(t))return arguments.length<3?t:n;throw TypeError(`Private element is not present on this object`)}function F(e,t,n,r,i,a){function o(e,t,n){return function(r,i){return n&&n(r),e[t].call(r,i)}}function s(e,t){for(var n=0;n<e.length;n++)e[n].call(t);return t}function c(e,t,n,r){if(typeof e!=`function`&&(r||e!==void 0))throw TypeError(t+` must `+(n||`be`)+` a function`+(r?``:` or undefined`));return e}function l(e,t,n,r,i,a,s,l,u,d,f,p,m){function h(e){if(!m(e))throw TypeError(`Attempted to access private element on non-instance`)}var g,_=t[0],v=t[3],y=!l;if(!y){n||Array.isArray(_)||(_=[_]);var b={},x=[],S=i===3?`get`:i===4||p?`set`:`value`;d?(f||p?b={get:R(function(){return v(this)},r,`get`),set:function(e){t[4](this,e)}}:b[S]=v,f||R(b[S],r,i===2?``:S)):f||(b=Object.getOwnPropertyDescriptor(e,r))}for(var C=e,w=_.length-1;w>=0;w-=n?2:1){var T=_[w],E=n?_[w-1]:void 0,D={},O={kind:[`field`,`accessor`,`method`,`getter`,`setter`,`class`][i],name:r,metadata:a,addInitializer:function(e,t){if(e.v)throw Error(`attempted to call addInitializer after decoration was finished`);c(t,`An initializer`,`be`,!0),s.push(t)}.bind(null,D)};try{if(y)(g=c(T.call(E,C,O),`class decorators`,`return`))&&(C=g);else{var k,A;O.static=u,O.private=d,d?i===2?k=function(e){return h(e),b.value}:(i<4&&(k=o(b,`get`,h)),i!==3&&(A=o(b,`set`,h))):(k=function(e){return e[r]},(i<2||i===4)&&(A=function(e,t){e[r]=t}));var j=O.access={has:d?m.bind():function(e){return r in e}};if(k&&(j.get=k),A&&(j.set=A),C=T.call(E,p?{get:b.get,set:b.set}:b[S],O),p){if(typeof C==`object`&&C)(g=c(C.get,`accessor.get`))&&(b.get=g),(g=c(C.set,`accessor.set`))&&(b.set=g),(g=c(C.init,`accessor.init`))&&x.push(g);else if(C!==void 0)throw TypeError(`accessor decorators must return an object with get, set, or init properties or void 0`)}else c(C,(f?`field`:`method`)+` decorators`,`return`)&&(f?x.push(C):b[S]=C)}}finally{D.v=!0}}return(f||p)&&l.push(function(e,t){for(var n=x.length-1;n>=0;n--)t=x[n].call(e,t);return t}),f||y||(d?p?l.push(o(b,`get`),o(b,`set`)):l.push(i===2?b[S]:o.call.bind(b[S])):Object.defineProperty(e,r,b)),C}function u(e,t){return Object.defineProperty(e,Symbol.metadata||Symbol.for(`Symbol.metadata`),{configurable:!0,enumerable:!0,value:t})}if(arguments.length>=6)var d=a[Symbol.metadata||Symbol.for(`Symbol.metadata`)];var f=Object.create(d??null),p=function(e,t,n,r){var i,a,o=[],c=function(t){return z(t)===e},u=new Map;function d(e){e&&o.push(s.bind(null,e))}for(var f=0;f<t.length;f++){var p=t[f];if(Array.isArray(p)){var m=p[1],h=p[2],g=p.length>3,_=16&m,v=!!(8&m),y=(m&=7)==0,b=h+`/`+v;if(!y&&!g){var x=u.get(b);if(!0===x||x===3&&m!==4||x===4&&m!==3)throw Error(`Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: `+h);u.set(b,!(m>2)||m)}l(v?e:e.prototype,p,_,g?`#`+h:I(h),m,r,v?a||=[]:i||=[],o,v,g,y,m===1,v&&g?c:n)}}return d(i),d(a),o}(e,t,i,f);return n.length||u(e,f),{e:p,get c(){var t=[];return n.length&&[u(l(e,[n],r,e.name,5,f,t),f),s.bind(null,t,e)]}}}function I(e){var t=L(e,`string`);return typeof t==`symbol`?t:t+``}function L(e,t){if(typeof e!=`object`||!e)return e;var n;if(typeof Symbol<`u`&&(n=e[Symbol.toPrimitive])!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function R(e,t,n){typeof t==`symbol`&&(t=(t=t.description)?`[`+t+`]`:``);try{Object.defineProperty(e,"name",{configurable:!0,value:n?n+` `+t:t})}catch{}return e}function z(e){if(Object(e)!==e)throw TypeError(`right-hand side of 'in' should be an object, got `+(e===null?`null`:typeof e));return e}h=[r.customElement(`solid-ui-rdf-input`)];var B,V=new WeakMap,H=new WeakMap,U=new WeakMap,W=new WeakMap,G=new WeakMap,K=new WeakMap;O=(g=(0,l.consume)({context:s.storeContext,subscribe:!0}),v=(0,u.property)({attribute:!1,type:Object}),b=(0,u.property)({attribute:!1,type:Object}),S=(0,u.property)({type:Number}),w=(0,u.state)(),E=(0,u.property)({type:Boolean,reflect:!0}),`storeContext`),f=class extends i.default{get[O](){return N(V,this)}set storeContext(e){M(V,this,e)}get formSubject(){return N(H,this)}set formSubject(e){M(H,this,e)}get dataSubject(){return N(U,this)}set dataSubject(e){M(U,this,e)}get storeVersion(){return N(W,this)}set storeVersion(e){M(W,this,e)}get localInputValue(){return N(G,this)}set localInputValue(e){M(G,this,e)}get readonly(){return N(K,this)}set readonly(e){M(K,this,e)}constructor(){super(),A(this,V,(p(this),_(this,s.DEFAULT_STORE))),A(this,H,y(this,null)),A(this,U,x(this,null)),A(this,W,C(this,0)),A(this,G,T(this,null)),k(this,`_updateInFlight`,!1),k(this,`_pendingUpdateValue`,null),A(this,K,D(this,!0)),this.id=n.generateId()}render(){let t=this.getDocument(this.formSubject),n=this.getFormProperty(this.formSubject,e.default.ui(`property`),t),r=this.getInputLabel(this.formSubject,n,t),i=this.getReadOnly(this.readonly,this.formSubject,t),s=this.formSubject?a.mostSpecificClassURI(this.storeContext.store,this.formSubject):void 0,c=s?o.fieldParams[s]??{}:{},l=c.type??`text`,u=this.getSelectedTerm(this.dataSubject,n,this.formSubject,c),f=i?``:this.defaultInputValue(c),p=this._updateInFlight||this._pendingUpdateValue!==null?this.localInputValue??``:this.termToInputValue(u);return d.html`
1
+ const e=require("../../lib/ns.cjs.js"),t=require("../../utils/label.cjs.js");require("../../lib/components/index.cjs.js");const n=require("../../lib/components/ids.cjs.js"),r=require("../../lib/components/decorators.cjs.js"),i=require("../../lib/components/web-component/WebComponent.cjs.js");require("../../utils/index.cjs.js");const a=require("../../lib/forms/rdfFormsHelper.cjs.js"),o=require("../../lib/forms/fieldParams.cjs.js"),s=require("../../lib/forms/store/StoreContext.cjs.js");require("../input/index.cjs.js");let c=require("rdflib"),l=require("@lit/context"),u=require("lit/decorators.js"),d=require("lit/html.js");var f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O;function k(e,t,n){return(t=I(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function A(e,t,n){j(e,t),t.set(e,n)}function j(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}function M(e,t,n){return e.set(P(e,t),n),n}function N(e,t){return e.get(P(e,t))}function P(e,t,n){if(typeof e==`function`?e===t:e.has(t))return arguments.length<3?t:n;throw TypeError(`Private element is not present on this object`)}function F(e,t,n,r,i,a){function o(e,t,n){return function(r,i){return n&&n(r),e[t].call(r,i)}}function s(e,t){for(var n=0;n<e.length;n++)e[n].call(t);return t}function c(e,t,n,r){if(typeof e!=`function`&&(r||e!==void 0))throw TypeError(t+` must `+(n||`be`)+` a function`+(r?``:` or undefined`));return e}function l(e,t,n,r,i,a,s,l,u,d,f,p,m){function h(e){if(!m(e))throw TypeError(`Attempted to access private element on non-instance`)}var g,_=t[0],v=t[3],y=!l;if(!y){n||Array.isArray(_)||(_=[_]);var b={},x=[],S=i===3?`get`:i===4||p?`set`:`value`;d?(f||p?b={get:R(function(){return v(this)},r,`get`),set:function(e){t[4](this,e)}}:b[S]=v,f||R(b[S],r,i===2?``:S)):f||(b=Object.getOwnPropertyDescriptor(e,r))}for(var C=e,w=_.length-1;w>=0;w-=n?2:1){var T=_[w],E=n?_[w-1]:void 0,D={},O={kind:[`field`,`accessor`,`method`,`getter`,`setter`,`class`][i],name:r,metadata:a,addInitializer:function(e,t){if(e.v)throw Error(`attempted to call addInitializer after decoration was finished`);c(t,`An initializer`,`be`,!0),s.push(t)}.bind(null,D)};try{if(y)(g=c(T.call(E,C,O),`class decorators`,`return`))&&(C=g);else{var k,A;O.static=u,O.private=d,d?i===2?k=function(e){return h(e),b.value}:(i<4&&(k=o(b,`get`,h)),i!==3&&(A=o(b,`set`,h))):(k=function(e){return e[r]},(i<2||i===4)&&(A=function(e,t){e[r]=t}));var j=O.access={has:d?m.bind():function(e){return r in e}};if(k&&(j.get=k),A&&(j.set=A),C=T.call(E,p?{get:b.get,set:b.set}:b[S],O),p){if(typeof C==`object`&&C)(g=c(C.get,`accessor.get`))&&(b.get=g),(g=c(C.set,`accessor.set`))&&(b.set=g),(g=c(C.init,`accessor.init`))&&x.push(g);else if(C!==void 0)throw TypeError(`accessor decorators must return an object with get, set, or init properties or void 0`)}else c(C,(f?`field`:`method`)+` decorators`,`return`)&&(f?x.push(C):b[S]=C)}}finally{D.v=!0}}return(f||p)&&l.push(function(e,t){for(var n=x.length-1;n>=0;n--)t=x[n].call(e,t);return t}),f||y||(d?p?l.push(o(b,`get`),o(b,`set`)):l.push(i===2?b[S]:o.call.bind(b[S])):Object.defineProperty(e,r,b)),C}function u(e,t){return Object.defineProperty(e,Symbol.metadata||Symbol.for(`Symbol.metadata`),{configurable:!0,enumerable:!0,value:t})}if(arguments.length>=6)var d=a[Symbol.metadata||Symbol.for(`Symbol.metadata`)];var f=Object.create(d??null),p=function(e,t,n,r){var i,a,o=[],c=function(t){return z(t)===e},u=new Map;function d(e){e&&o.push(s.bind(null,e))}for(var f=0;f<t.length;f++){var p=t[f];if(Array.isArray(p)){var m=p[1],h=p[2],g=p.length>3,_=16&m,v=!!(8&m),y=(m&=7)==0,b=h+`/`+v;if(!y&&!g){var x=u.get(b);if(!0===x||x===3&&m!==4||x===4&&m!==3)throw Error(`Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: `+h);u.set(b,!(m>2)||m)}l(v?e:e.prototype,p,_,g?`#`+h:I(h),m,r,v?a||=[]:i||=[],o,v,g,y,m===1,v&&g?c:n)}}return d(i),d(a),o}(e,t,i,f);return n.length||u(e,f),{e:p,get c(){var t=[];return n.length&&[u(l(e,[n],r,e.name,5,f,t),f),s.bind(null,t,e)]}}}function I(e){var t=L(e,`string`);return typeof t==`symbol`?t:t+``}function L(e,t){if(typeof e!=`object`||!e)return e;var n;if(typeof Symbol<`u`&&(n=e[Symbol.toPrimitive])!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function R(e,t,n){typeof t==`symbol`&&(t=(t=t.description)?`[`+t+`]`:``);try{Object.defineProperty(e,"name",{configurable:!0,value:n?n+` `+t:t})}catch{}return e}function z(e){if(Object(e)!==e)throw TypeError(`right-hand side of 'in' should be an object, got `+(e===null?`null`:typeof e));return e}h=[r.customElement(`solid-ui-rdf-input`)];var B,V=new WeakMap,H=new WeakMap,U=new WeakMap,W=new WeakMap,G=new WeakMap,K=new WeakMap;O=(g=(0,l.consume)({context:s.storeContext,subscribe:!0}),v=(0,u.property)({attribute:!1,type:Object}),b=(0,u.property)({attribute:!1,type:Object}),S=(0,u.property)({type:Number}),w=(0,u.state)(),E=(0,u.property)({type:Boolean,reflect:!0}),`storeContext`),f=class extends i.default{get[O](){return N(V,this)}set storeContext(e){M(V,this,e)}get formSubject(){return N(H,this)}set formSubject(e){M(H,this,e)}get dataSubject(){return N(U,this)}set dataSubject(e){M(U,this,e)}get storeVersion(){return N(W,this)}set storeVersion(e){M(W,this,e)}get localInputValue(){return N(G,this)}set localInputValue(e){M(G,this,e)}get readonly(){return N(K,this)}set readonly(e){M(K,this,e)}constructor(){super(),A(this,V,(p(this),_(this,s.DEFAULT_STORE))),A(this,H,y(this,null)),A(this,U,x(this,null)),A(this,W,C(this,0)),A(this,G,T(this,null)),k(this,`_updateInFlight`,!1),k(this,`_pendingUpdateValue`,null),A(this,K,D(this,!0)),this.id=n.generateId()}render(){let t=this.getDocument(this.formSubject),n=this.getFormProperty(this.formSubject,e.default.ui(`property`),t),r=this.getInputLabel(this.formSubject,n,t),i=this.getReadOnly(this.readonly,this.formSubject,t),s=this.formSubject?a.mostSpecificClassURI(this.storeContext.store,this.formSubject):void 0,c=s?o.fieldParams[s]??{}:{},l=c.type??`text`,u=this.getSelectedTerm(this.dataSubject,n,this.formSubject,c),f=i?``:this.defaultInputValue(c),p=this._updateInFlight||this._pendingUpdateValue!==null?this.localInputValue??``:this.termToInputValue(u);return d.html`
2
2
  <solid-ui-input
3
3
  label="${r}"
4
4
  name="name-${this.id}"
@@ -7,5 +7,5 @@ const e=require("../../lib/ns.cjs.js"),t=require("../../utils/label.cjs.js");req
7
7
  type="${l}"
8
8
  ?readonly=${i}
9
9
  @input=${this.updateData}
10
- ></solid-ui-input>`}getDocument(e){return e?.doc?e.doc():void 0}getFormProperty(e,t,n){if(e)return this.storeContext.store.any(e,t,null,n)}getInputLabel(n,r,i){if(!n)return``;let a=this.storeContext.store.any(n,e.default.ui(`label`),null,i),o=r?t.label(r,!0):``;return a?a.value:o}getReadOnly(t,n,r){return n&&t===!1?!!this.storeContext.store.anyJS(n,e.default.ui(`suppressEmptyUneditable`),null,r):t}getSelectedTerm(t,n,r,i){let a=r?this.storeContext.store.any(r,e.default.ui(`default`)):void 0;return!n||!t?a:this.storeContext.store.any(t,n)||a}termToInputValue(e){if(!e||!(`value`in e)||!e.value)return``;try{return decodeURIComponent(e.value)}catch{return String(e.value)}}defaultInputValue(e={}){return(e.defaultInputValue??``).replace(/ /g,``)}async updateData(e){let t=e.target.value;this.localInputValue=t,this._pendingUpdateValue=t,!this._updateInFlight&&await this.runPendingUpdate()}async runPendingUpdate(){if(this._pendingUpdateValue===null)return;let t=this._pendingUpdateValue;this._pendingUpdateValue=null,this._updateInFlight=!0;let n=this.getFormProperty(this.formSubject,e.default.ui(`property`),this.getDocument(this.formSubject));if(!n||!this.dataSubject){this._updateInFlight=!1,this.localInputValue=``;return}let r=this.getDocument(this.dataSubject);if(r&&this.storeContext.store.updater?.editable(r)===!1){this._updateInFlight=!1;return}let i=this.storeContext.store.statementsMatching(this.dataSubject,n),s=[];if(t){let r,l=this.formSubject?a.mostSpecificClassURI(this.storeContext.store,this.formSubject):void 0,u=l?o.fieldParams[l]??{}:{};u.namedNode?r=this.storeContext.store.sym(t):u.defaultInputValue?(r=encodeURIComponent(t.replace(/ /g,``)),r=this.storeContext.store.sym(u.defaultInputValue+r)):r=u.dt?new c.Literal(t.trim(),void 0,e.default.xsd(u.dt)):new c.Literal(t),s=i.map(e=>(0,c.st)(e.subject,e.predicate,r,e.why)),s.length===0&&(s=[(0,c.st)(this.dataSubject,n,r,this.getDocument(this.dataSubject))])}try{await this.storeContext.store.updater.updateMany(i,s),this.storeVersion+=1}catch(e){console.error(`RDFInput update failed`,e)}finally{this._updateInFlight=!1}this._pendingUpdateValue!==null&&await this.runPendingUpdate()}},{e:[_,y,x,C,T,D,p],c:[B,m]}=F(f,[[g,1,`storeContext`],[v,1,`formSubject`],[b,1,`dataSubject`],[S,1,`storeVersion`],[w,1,`localInputValue`],[E,1,`readonly`]],h,0,void 0,i.default),m(),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return B}});
10
+ ></solid-ui-input>`}getDocument(e){return e?.doc?e.doc():void 0}getFormProperty(e,t,n){if(e)return this.storeContext.store.any(e,t,null,n)}getInputLabel(n,r,i){if(!n)return``;let a=this.storeContext.store.any(n,e.default.ui(`label`),null,i),o=r?t.label(r,!0):``;return a?a.value:o}getReadOnly(t,n,r){return n&&t===!1?!!this.storeContext.store.anyJS(n,e.default.ui(`suppressEmptyUneditable`),null,r):t}getSelectedTerm(t,n,r,i){let a=r?this.storeContext.store.any(r,e.default.ui(`default`)):void 0;return!n||!t?a:this.storeContext.store.any(t,n)||a}termToInputValue(e){if(!e||!(`value`in e)||!e.value)return``;try{return decodeURIComponent(e.value)}catch{return String(e.value)}}defaultInputValue(e={}){return(e.defaultInputValue??``).replace(/ /g,``)}async updateData(e){let t=e.target.value;this.localInputValue=t,this._pendingUpdateValue=t,this._updateInFlight||await this.runPendingUpdate()}async runPendingUpdate(){if(this._pendingUpdateValue===null)return;let t=this._pendingUpdateValue;this._pendingUpdateValue=null,this._updateInFlight=!0;let n=this.getFormProperty(this.formSubject,e.default.ui(`property`),this.getDocument(this.formSubject));if(!n||!this.dataSubject){this._updateInFlight=!1,this.localInputValue=``;return}let r=this.getDocument(this.dataSubject);if(r&&this.storeContext.store.updater?.editable(r)===!1){this._updateInFlight=!1;return}let i=this.storeContext.store.statementsMatching(this.dataSubject,n),s=[];if(t){let r,l=this.formSubject?a.mostSpecificClassURI(this.storeContext.store,this.formSubject):void 0,u=l?o.fieldParams[l]??{}:{};u.namedNode?r=this.storeContext.store.sym(t):u.defaultInputValue?(r=encodeURIComponent(t.replace(/ /g,``)),r=this.storeContext.store.sym(u.defaultInputValue+r)):r=u.dt?new c.Literal(t.trim(),void 0,e.default.xsd(u.dt)):new c.Literal(t),s=i.map(e=>(0,c.st)(e.subject,e.predicate,r,e.why)),s.length===0&&(s=[(0,c.st)(this.dataSubject,n,r,this.getDocument(this.dataSubject))])}try{await this.storeContext.store.updater.updateMany(i,s),this.storeVersion+=1}catch(e){console.error(`RDFInput update failed`,e)}finally{this._updateInFlight=!1}this._pendingUpdateValue!==null&&await this.runPendingUpdate()}},{e:[_,y,x,C,T,D,p],c:[B,m]}=F(f,[[g,1,`storeContext`],[v,1,`formSubject`],[b,1,`dataSubject`],[S,1,`storeVersion`],[w,1,`localInputValue`],[E,1,`readonly`]],h,0,void 0,i.default),m(),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return B}});
11
11
  //# sourceMappingURL=RDFInput.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RDFInput.cjs.js","names":["property","state","html","ns","customElement","generateId","WebComponent","Literal","st","label","mostSpecificClassURI","fieldParams","fieldTypeParams","DEFAULT_STORE","storeContext","consume","_classDecs","_RDFInput","_A","WeakMap","_B","_C","_D","_E","_F","_ref","_storeContextDecs","context","subscribe","_formSubjectDecs","attribute","type","Object","_dataSubjectDecs","_storeVersionDecs","Number","_localInputValueDecs","_readonlyDecs","Boolean","reflect","RDFInput","_classPrivateFieldGet","v","_classPrivateFieldSet","formSubject","dataSubject","storeVersion","localInputValue","readonly","constructor","_classPrivateFieldInitSpec","_initProto","_init_storeContext","_init_formSubject","_init_dataSubject","_init_storeVersion","_init_localInputValue","_defineProperty","_init_readonly","id","render","formDocument","getDocument","uiPropertyTerm","getFormProperty","ui","inputLabel","getInputLabel","getReadOnly","fieldType","store","undefined","params","inputType","selectedTerm","getSelectedTerm","placeholder","defaultInputValue","inputValue","_updateInFlight","_pendingUpdateValue","termToInputValue","updateData","subject","doc","graph","any","formFieldSubject","uiLabel","propertyLabel","value","anyJS","defaultTerm","inputTerm","term","decodeURIComponent","String","stripped","replace","e","newValue","target","runPendingUpdate","dataDocument","updater","editable","toDeleteSt","statementsMatching","toInsertSt","objectFromNewValue","namedNode","sym","encodeURIComponent","dt","trim","xsd","map","statement","predicate","why","length","updateMany","err","console","error","_RDFInput2","c","_initClass","_applyDecs","default","customElement","consume","storeContext","property","state","WebComponent","DEFAULT_STORE","generateId","ns","mostSpecificClassURI","fieldTypeParams","label","Literal","st","require_ns","require_label","require_ids","require_decorators","require_WebComponent","require_rdfFormsHelper","require_fieldParams","require_StoreContext","rdflib","_lit_context","lit_decorators_js","lit_html_js","_RDFInput2","_initProto","_initClass","_classDecs","_storeContextDecs","_init_storeContext","_formSubjectDecs","_init_formSubject","_dataSubjectDecs","_init_dataSubject","_storeVersionDecs","_init_storeVersion","_localInputValueDecs","_init_localInputValue","_readonlyDecs","_init_readonly","_ref","_defineProperty","_toPropertyKey","r","t","_classPrivateFieldInitSpec","_checkPrivateRedeclaration","a","_classPrivateFieldSet","s","_assertClassBrand","_classPrivateFieldGet","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","f","p","_setFunctionName","P","j","D","I","F","l","N","_checkInRHS","_toPrimitive","e","_RDFInput","_A","_B","_C","_D","_E","_F","formDocument","uiPropertyTerm","inputLabel","readonly","fieldType","params","inputType","selectedTerm","placeholder","inputValue","subject","property","graph","formFieldSubject","uiLabel","propertyLabel","defaultTerm","dataSubject","term","newValue","dataDocument","toDeleteSt","toInsertSt","objectFromNewValue","statement","err"],"sources":["../../../src/components/rdf-input/RDFInput.ts"],"sourcesContent":["import { property, state } from 'lit/decorators.js'\nimport { html } from 'lit/html.js'\nimport ns from '../../lib/ns'\nimport { customElement, generateId, WebComponent } from '@/lib/components'\nimport { Literal, NamedNode, st } from 'rdflib'\nimport { label } from '../../utils'\nimport { mostSpecificClassURI } from '../../lib/forms/rdfFormsHelper'\nimport { FieldParamsObject, fieldParams as fieldTypeParams, InputType } from '../../lib/forms/fieldParams'\nimport { DEFAULT_STORE, storeContext, StoreContext } from '@/lib/forms/store/StoreContext'\nimport { consume } from '@lit/context'\nimport '@/components/input'\n\n@customElement('solid-ui-rdf-input')\nexport default class RDFInput extends WebComponent {\n // example RDF Turtle format source:\n // :nameField a ui:SingleLineTextField ;\n // ui:property vcard:fn;\n // ui:label \"name\" .\n\n // formSubject describes the field metadata\n // dataSubject points to the data resource containing the value\n\n @consume({ context: storeContext, subscribe: true })\n private accessor storeContext: StoreContext = DEFAULT_STORE\n\n @property({ attribute: false, type: Object })\n accessor formSubject: NamedNode | null = null\n\n @property({ attribute: false, type: Object })\n accessor dataSubject: NamedNode | null = null\n\n @property({ type: Number })\n accessor storeVersion = 0\n\n @state()\n private accessor localInputValue: string | null = null\n\n private _updateInFlight = false\n private _pendingUpdateValue: string | null = null\n\n @property({ type: Boolean, reflect: true })\n accessor readonly: boolean = true // to protect data, we default to not editable\n\n constructor () {\n super()\n\n this.id = generateId()\n }\n\n render () {\n const formDocument = this.getDocument(this.formSubject)\n\n // for building the HTML input element\n const uiPropertyTerm = this.getFormProperty(this.formSubject, ns.ui('property'), formDocument)\n const inputLabel = this.getInputLabel(this.formSubject, uiPropertyTerm, formDocument)\n const readonly = this.getReadOnly(this.readonly, this.formSubject, formDocument)\n\n const fieldType = this.formSubject ? mostSpecificClassURI(this.storeContext.store, this.formSubject) : undefined\n const params = fieldType ? fieldTypeParams[fieldType] ?? {} : {}\n const inputType: InputType = params.type ?? 'text'\n\n // for populating the HTML input element\n const selectedTerm = this.getSelectedTerm(this.dataSubject, uiPropertyTerm, this.formSubject, params)\n const placeholder = readonly ? '' : this.defaultInputValue(params)\n const inputValue = this._updateInFlight || this._pendingUpdateValue !== null\n ? this.localInputValue ?? ''\n : this.termToInputValue(selectedTerm)\n\n return html`\n <solid-ui-input\n label=\"${inputLabel}\"\n name=\"name-${this.id}\"\n .value=${inputValue}\n .placeholder=${placeholder}\n type=\"${inputType}\"\n ?readonly=${readonly}\n @input=${this.updateData}\n ></solid-ui-input>`\n }\n\n private getDocument (subject: NamedNode | null | undefined) {\n return subject?.doc ? subject.doc() : undefined\n }\n\n private getFormProperty (subject: NamedNode | null | undefined, property: NamedNode, graph?: any): NamedNode | undefined {\n if (!subject) return undefined\n return this.storeContext.store.any(subject, property, null, graph) as NamedNode | undefined\n }\n\n private getInputLabel (formFieldSubject: NamedNode | null | undefined, uiPropertyTerm?: NamedNode, graph?: any): string {\n if (!formFieldSubject) return ''\n const uiLabel = this.storeContext.store.any(formFieldSubject, ns.ui('label'), null, graph)\n const propertyLabel = uiPropertyTerm ? label(uiPropertyTerm, true) : ''\n return uiLabel ? uiLabel.value : propertyLabel\n }\n\n private getReadOnly (readonly: boolean, formFieldSubject?: NamedNode | null, graph?: any): boolean {\n if (formFieldSubject && readonly === false) { // if readonly is false, we can ovverride it if the field is marked as uneditable in the form\n return !!this.storeContext.store.anyJS(formFieldSubject, ns.ui('suppressEmptyUneditable'), null, graph)\n }\n return readonly\n }\n\n private getSelectedTerm (\n dataSubject?: NamedNode | null,\n uiPropertyTerm?: NamedNode,\n formFieldSubject?: NamedNode | null,\n params?: { defaultInputValue?: string }\n ) {\n const defaultTerm = formFieldSubject\n ? this.storeContext.store.any(formFieldSubject, ns.ui('default'))\n : undefined\n\n if (!uiPropertyTerm || !dataSubject) {\n return defaultTerm\n }\n\n const inputTerm = this.storeContext.store.any(dataSubject, uiPropertyTerm)\n return inputTerm || defaultTerm\n }\n\n private termToInputValue (term: any) {\n if (!term || !('value' in term) || !term.value) return ''\n\n try {\n return decodeURIComponent(term.value)\n } catch {\n return String(term.value)\n }\n }\n\n private defaultInputValue (params: { defaultInputValue?: string } = {}) {\n const stripped = params.defaultInputValue ?? ''\n return stripped.replace(/ /g, '')\n }\n\n private async updateData (e: CustomEvent) {\n const newValue = (e.target as HTMLInputElement).value\n this.localInputValue = newValue\n this._pendingUpdateValue = newValue\n\n if (this._updateInFlight) {\n return\n }\n\n await this.runPendingUpdate()\n }\n\n private async runPendingUpdate () {\n if (this._pendingUpdateValue === null) {\n return\n }\n\n const newValue = this._pendingUpdateValue\n this._pendingUpdateValue = null\n this._updateInFlight = true\n\n const uiPropertyTerm = this.getFormProperty(this.formSubject, ns.ui('property'), this.getDocument(this.formSubject))\n if (!uiPropertyTerm || !this.dataSubject) {\n this._updateInFlight = false\n this.localInputValue = ''\n return\n }\n\n const dataDocument = this.getDocument(this.dataSubject)\n if (dataDocument && this.storeContext.store.updater?.editable(dataDocument) === false) {\n this._updateInFlight = false\n return\n }\n\n const toDeleteSt = this.storeContext.store.statementsMatching(this.dataSubject, uiPropertyTerm)\n let toInsertSt: Array<ReturnType<typeof st>> = []\n\n if (newValue) {\n let objectFromNewValue\n const fieldType = this.formSubject ? mostSpecificClassURI(this.storeContext.store, this.formSubject) : undefined\n const params: FieldParamsObject = fieldType ? fieldTypeParams[fieldType] ?? {} : {}\n if (params.namedNode) {\n objectFromNewValue = this.storeContext.store.sym(newValue)\n } else if (params.defaultInputValue) {\n objectFromNewValue = encodeURIComponent(newValue.replace(/ /g, ''))\n objectFromNewValue = this.storeContext.store.sym(params.defaultInputValue + objectFromNewValue)\n } else {\n if (params.dt) {\n objectFromNewValue = new Literal(\n newValue.trim(),\n undefined,\n ns.xsd(params.dt)\n )\n } else {\n objectFromNewValue = new Literal(newValue)\n }\n }\n toInsertSt = toDeleteSt.map((statement) => st(statement.subject, statement.predicate, objectFromNewValue, statement.why))\n if (toInsertSt.length === 0) {\n toInsertSt = [st(this.dataSubject, uiPropertyTerm, objectFromNewValue, this.getDocument(this.dataSubject))]\n }\n }\n\n try {\n await this.storeContext.store.updater.updateMany(toDeleteSt, toInsertSt as any)\n this.storeVersion += 1\n } catch (err) {\n console.error('RDFInput update failed', err)\n } finally {\n this._updateInFlight = false\n }\n\n if (this._pendingUpdateValue !== null) {\n await this.runPendingUpdate()\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"RDFInput.cjs.js","names":["property","state","html","ns","customElement","generateId","WebComponent","Literal","st","label","mostSpecificClassURI","fieldParams","fieldTypeParams","DEFAULT_STORE","storeContext","consume","_classDecs","_RDFInput","_A","WeakMap","_B","_C","_D","_E","_F","_ref","_storeContextDecs","context","subscribe","_formSubjectDecs","attribute","type","Object","_dataSubjectDecs","_storeVersionDecs","Number","_localInputValueDecs","_readonlyDecs","Boolean","reflect","RDFInput","_classPrivateFieldGet","v","_classPrivateFieldSet","formSubject","dataSubject","storeVersion","localInputValue","readonly","constructor","_classPrivateFieldInitSpec","_initProto","_init_storeContext","_init_formSubject","_init_dataSubject","_init_storeVersion","_init_localInputValue","_defineProperty","_init_readonly","id","render","formDocument","getDocument","uiPropertyTerm","getFormProperty","ui","inputLabel","getInputLabel","getReadOnly","fieldType","store","undefined","params","inputType","selectedTerm","getSelectedTerm","placeholder","defaultInputValue","inputValue","_updateInFlight","_pendingUpdateValue","termToInputValue","updateData","subject","doc","graph","any","formFieldSubject","uiLabel","propertyLabel","value","anyJS","defaultTerm","inputTerm","term","decodeURIComponent","String","stripped","replace","e","newValue","target","runPendingUpdate","dataDocument","updater","editable","toDeleteSt","statementsMatching","toInsertSt","objectFromNewValue","namedNode","sym","encodeURIComponent","dt","trim","xsd","map","statement","predicate","why","length","updateMany","err","console","error","_RDFInput2","c","_initClass","_applyDecs","default","customElement","consume","storeContext","property","state","WebComponent","DEFAULT_STORE","generateId","ns","mostSpecificClassURI","fieldTypeParams","label","Literal","st","require_ns","require_label","require_ids","require_decorators","require_WebComponent","require_rdfFormsHelper","require_fieldParams","require_StoreContext","rdflib","_lit_context","lit_decorators_js","lit_html_js","_RDFInput2","_initProto","_initClass","_classDecs","_storeContextDecs","_init_storeContext","_formSubjectDecs","_init_formSubject","_dataSubjectDecs","_init_dataSubject","_storeVersionDecs","_init_storeVersion","_localInputValueDecs","_init_localInputValue","_readonlyDecs","_init_readonly","_ref","_defineProperty","_toPropertyKey","r","t","_classPrivateFieldInitSpec","_checkPrivateRedeclaration","a","_classPrivateFieldSet","s","_assertClassBrand","_classPrivateFieldGet","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","f","p","_setFunctionName","P","j","D","I","F","l","N","_checkInRHS","_toPrimitive","e","_RDFInput","_A","_B","_C","_D","_E","_F","formDocument","uiPropertyTerm","inputLabel","readonly","fieldType","params","inputType","selectedTerm","placeholder","inputValue","subject","property","graph","formFieldSubject","uiLabel","propertyLabel","defaultTerm","dataSubject","term","newValue","dataDocument","toDeleteSt","toInsertSt","objectFromNewValue","statement","err"],"sources":["../../../src/components/rdf-input/RDFInput.ts"],"sourcesContent":["import { property, state } from 'lit/decorators.js'\nimport { html } from 'lit/html.js'\nimport ns from '../../lib/ns'\nimport { customElement, generateId, WebComponent } from '@/lib/components'\nimport { Literal, NamedNode, st } from 'rdflib'\nimport { label } from '../../utils'\nimport { mostSpecificClassURI } from '../../lib/forms/rdfFormsHelper'\nimport { FieldParamsObject, fieldParams as fieldTypeParams, InputType } from '../../lib/forms/fieldParams'\nimport { DEFAULT_STORE, storeContext, StoreContext } from '@/lib/forms/store/StoreContext'\nimport { consume } from '@lit/context'\nimport '@/components/input'\n\n@customElement('solid-ui-rdf-input')\nexport default class RDFInput extends WebComponent {\n // example RDF Turtle format source:\n // :nameField a ui:SingleLineTextField ;\n // ui:property vcard:fn;\n // ui:label \"name\" .\n\n // formSubject describes the field metadata\n // dataSubject points to the data resource containing the value\n\n @consume({ context: storeContext, subscribe: true })\n private accessor storeContext: StoreContext = DEFAULT_STORE\n\n @property({ attribute: false, type: Object })\n accessor formSubject: NamedNode | null = null\n\n @property({ attribute: false, type: Object })\n accessor dataSubject: NamedNode | null = null\n\n @property({ type: Number })\n accessor storeVersion = 0\n\n @state()\n private accessor localInputValue: string | null = null\n\n private _updateInFlight = false\n private _pendingUpdateValue: string | null = null\n\n @property({ type: Boolean, reflect: true })\n accessor readonly: boolean = true // to protect data, we default to not editable\n\n constructor () {\n super()\n\n this.id = generateId()\n }\n\n render () {\n const formDocument = this.getDocument(this.formSubject)\n\n // for building the HTML input element\n const uiPropertyTerm = this.getFormProperty(this.formSubject, ns.ui('property'), formDocument)\n const inputLabel = this.getInputLabel(this.formSubject, uiPropertyTerm, formDocument)\n const readonly = this.getReadOnly(this.readonly, this.formSubject, formDocument)\n\n const fieldType = this.formSubject ? mostSpecificClassURI(this.storeContext.store, this.formSubject) : undefined\n const params = fieldType ? fieldTypeParams[fieldType] ?? {} : {}\n const inputType: InputType = params.type ?? 'text'\n\n // for populating the HTML input element\n const selectedTerm = this.getSelectedTerm(this.dataSubject, uiPropertyTerm, this.formSubject, params)\n const placeholder = readonly ? '' : this.defaultInputValue(params)\n const inputValue = this._updateInFlight || this._pendingUpdateValue !== null\n ? this.localInputValue ?? ''\n : this.termToInputValue(selectedTerm)\n\n return html`\n <solid-ui-input\n label=\"${inputLabel}\"\n name=\"name-${this.id}\"\n .value=${inputValue}\n .placeholder=${placeholder}\n type=\"${inputType}\"\n ?readonly=${readonly}\n @input=${this.updateData}\n ></solid-ui-input>`\n }\n\n private getDocument (subject: NamedNode | null | undefined) {\n return subject?.doc ? subject.doc() : undefined\n }\n\n private getFormProperty (subject: NamedNode | null | undefined, property: NamedNode, graph?: any): NamedNode | undefined {\n if (!subject) return undefined\n return this.storeContext.store.any(subject, property, null, graph) as NamedNode | undefined\n }\n\n private getInputLabel (formFieldSubject: NamedNode | null | undefined, uiPropertyTerm?: NamedNode, graph?: any): string {\n if (!formFieldSubject) return ''\n const uiLabel = this.storeContext.store.any(formFieldSubject, ns.ui('label'), null, graph)\n const propertyLabel = uiPropertyTerm ? label(uiPropertyTerm, true) : ''\n return uiLabel ? uiLabel.value : propertyLabel\n }\n\n private getReadOnly (readonly: boolean, formFieldSubject?: NamedNode | null, graph?: any): boolean {\n if (formFieldSubject && readonly === false) { // if readonly is false, we can ovverride it if the field is marked as uneditable in the form\n return !!this.storeContext.store.anyJS(formFieldSubject, ns.ui('suppressEmptyUneditable'), null, graph)\n }\n return readonly\n }\n\n private getSelectedTerm (\n dataSubject?: NamedNode | null,\n uiPropertyTerm?: NamedNode,\n formFieldSubject?: NamedNode | null,\n params?: { defaultInputValue?: string }\n ) {\n const defaultTerm = formFieldSubject\n ? this.storeContext.store.any(formFieldSubject, ns.ui('default'))\n : undefined\n\n if (!uiPropertyTerm || !dataSubject) {\n return defaultTerm\n }\n\n const inputTerm = this.storeContext.store.any(dataSubject, uiPropertyTerm)\n return inputTerm || defaultTerm\n }\n\n private termToInputValue (term: any) {\n if (!term || !('value' in term) || !term.value) return ''\n\n try {\n return decodeURIComponent(term.value)\n } catch {\n return String(term.value)\n }\n }\n\n private defaultInputValue (params: { defaultInputValue?: string } = {}) {\n const stripped = params.defaultInputValue ?? ''\n return stripped.replace(/ /g, '')\n }\n\n private async updateData (e: CustomEvent) {\n const newValue = (e.target as HTMLInputElement).value\n this.localInputValue = newValue\n this._pendingUpdateValue = newValue\n\n if (this._updateInFlight) {\n return\n }\n\n await this.runPendingUpdate()\n }\n\n private async runPendingUpdate () {\n if (this._pendingUpdateValue === null) {\n return\n }\n\n const newValue = this._pendingUpdateValue\n this._pendingUpdateValue = null\n this._updateInFlight = true\n\n const uiPropertyTerm = this.getFormProperty(this.formSubject, ns.ui('property'), this.getDocument(this.formSubject))\n if (!uiPropertyTerm || !this.dataSubject) {\n this._updateInFlight = false\n this.localInputValue = ''\n return\n }\n\n const dataDocument = this.getDocument(this.dataSubject)\n if (dataDocument && this.storeContext.store.updater?.editable(dataDocument) === false) {\n this._updateInFlight = false\n return\n }\n\n const toDeleteSt = this.storeContext.store.statementsMatching(this.dataSubject, uiPropertyTerm)\n let toInsertSt: Array<ReturnType<typeof st>> = []\n\n if (newValue) {\n let objectFromNewValue\n const fieldType = this.formSubject ? mostSpecificClassURI(this.storeContext.store, this.formSubject) : undefined\n const params: FieldParamsObject = fieldType ? fieldTypeParams[fieldType] ?? {} : {}\n if (params.namedNode) {\n objectFromNewValue = this.storeContext.store.sym(newValue)\n } else if (params.defaultInputValue) {\n objectFromNewValue = encodeURIComponent(newValue.replace(/ /g, ''))\n objectFromNewValue = this.storeContext.store.sym(params.defaultInputValue + objectFromNewValue)\n } else {\n if (params.dt) {\n objectFromNewValue = new Literal(\n newValue.trim(),\n undefined,\n ns.xsd(params.dt)\n )\n } else {\n objectFromNewValue = new Literal(newValue)\n }\n }\n toInsertSt = toDeleteSt.map((statement) => st(statement.subject, statement.predicate, objectFromNewValue, statement.why))\n if (toInsertSt.length === 0) {\n toInsertSt = [st(this.dataSubject, uiPropertyTerm, objectFromNewValue, this.getDocument(this.dataSubject))]\n }\n }\n\n try {\n await this.storeContext.store.updater.updateMany(toDeleteSt, toInsertSt as any)\n this.storeVersion += 1\n } catch (err) {\n console.error('RDFInput update failed', err)\n } finally {\n this._updateInFlight = false\n }\n\n if (this._pendingUpdateValue !== null) {\n await this.runPendingUpdate()\n }\n }\n}\n"],"mappings":"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"}
@@ -1,14 +1,14 @@
1
1
  import e from "../../lib/ns.esm.js";
2
2
  import { label as t } from "../../utils/label.esm.js";
3
- import "../../utils/index.esm.js";
3
+ import "../../lib/components/index.esm.js";
4
4
  import { generateId as n } from "../../lib/components/ids.esm.js";
5
5
  import { customElement as r } from "../../lib/components/decorators.esm.js";
6
6
  import i from "../../lib/components/web-component/WebComponent.esm.js";
7
- import "../../lib/components/index.esm.js";
8
- import "../input/index.esm.js";
7
+ import "../../utils/index.esm.js";
9
8
  import { mostSpecificClassURI as a } from "../../lib/forms/rdfFormsHelper.esm.js";
10
9
  import { fieldParams as o } from "../../lib/forms/fieldParams.esm.js";
11
10
  import { DEFAULT_STORE as s, storeContext as c } from "../../lib/forms/store/StoreContext.esm.js";
11
+ import "../input/index.esm.js";
12
12
  import { Literal as l, st as u } from "rdflib";
13
13
  import { consume as d } from "@lit/context";
14
14
  import { property as f, state as p } from "lit/decorators.js";
@@ -281,7 +281,7 @@ j = (y = d({
281
281
  }
282
282
  async updateData(e) {
283
283
  let t = e.target.value;
284
- this.localInputValue = t, this._pendingUpdateValue = t, !this._updateInFlight && await this.runPendingUpdate();
284
+ this.localInputValue = t, this._pendingUpdateValue = t, this._updateInFlight || await this.runPendingUpdate();
285
285
  }
286
286
  async runPendingUpdate() {
287
287
  if (this._pendingUpdateValue === null) return;
@@ -1 +1 @@
1
- {"version":3,"file":"RDFInput.esm.js","names":["property","state","html","ns","customElement","generateId","WebComponent","Literal","st","label","mostSpecificClassURI","fieldParams","fieldTypeParams","DEFAULT_STORE","storeContext","consume","_classDecs","_RDFInput","_A","WeakMap","_B","_C","_D","_E","_F","_ref","_storeContextDecs","context","subscribe","_formSubjectDecs","attribute","type","Object","_dataSubjectDecs","_storeVersionDecs","Number","_localInputValueDecs","_readonlyDecs","Boolean","reflect","RDFInput","_classPrivateFieldGet","v","_classPrivateFieldSet","formSubject","dataSubject","storeVersion","localInputValue","readonly","constructor","_classPrivateFieldInitSpec","_initProto","_init_storeContext","_init_formSubject","_init_dataSubject","_init_storeVersion","_init_localInputValue","_defineProperty","_init_readonly","id","render","formDocument","getDocument","uiPropertyTerm","getFormProperty","ui","inputLabel","getInputLabel","getReadOnly","fieldType","store","undefined","params","inputType","selectedTerm","getSelectedTerm","placeholder","defaultInputValue","inputValue","_updateInFlight","_pendingUpdateValue","termToInputValue","updateData","subject","doc","graph","any","formFieldSubject","uiLabel","propertyLabel","value","anyJS","defaultTerm","inputTerm","term","decodeURIComponent","String","stripped","replace","e","newValue","target","runPendingUpdate","dataDocument","updater","editable","toDeleteSt","statementsMatching","toInsertSt","objectFromNewValue","namedNode","sym","encodeURIComponent","dt","trim","xsd","map","statement","predicate","why","length","updateMany","err","console","error","_RDFInput2","c","_initClass","_applyDecs","default","ns","fieldTypeParams","ns_default","WebComponent","_RDFInput2","_initProto","_initClass","_classDecs","_storeContextDecs","_init_storeContext","_formSubjectDecs","_init_formSubject","_dataSubjectDecs","_init_dataSubject","_storeVersionDecs","_init_storeVersion","_localInputValueDecs","_init_localInputValue","_readonlyDecs","_init_readonly","_ref","_defineProperty","_toPropertyKey","r","t","_classPrivateFieldInitSpec","a","_checkPrivateRedeclaration","_classPrivateFieldSet","s","_assertClassBrand","_classPrivateFieldGet","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","p","_setFunctionName","P","j","D","I","F","l","f","N","_checkInRHS","_toPrimitive","e","customElement","_RDFInput","_A","_B","_C","_D","_E","_F","consume","storeContext","property","state","DEFAULT_STORE","generateId","formDocument","uiPropertyTerm","inputLabel","readonly","fieldType","mostSpecificClassURI","params","fieldParams","inputType","selectedTerm","placeholder","inputValue","subject","graph","formFieldSubject","uiLabel","propertyLabel","label","defaultTerm","dataSubject","term","newValue","dataDocument","toDeleteSt","toInsertSt","objectFromNewValue","Literal","st","statement","err"],"sources":["../../../src/components/rdf-input/RDFInput.ts"],"sourcesContent":["import { property, state } from 'lit/decorators.js'\nimport { html } from 'lit/html.js'\nimport ns from '../../lib/ns'\nimport { customElement, generateId, WebComponent } from '@/lib/components'\nimport { Literal, NamedNode, st } from 'rdflib'\nimport { label } from '../../utils'\nimport { mostSpecificClassURI } from '../../lib/forms/rdfFormsHelper'\nimport { FieldParamsObject, fieldParams as fieldTypeParams, InputType } from '../../lib/forms/fieldParams'\nimport { DEFAULT_STORE, storeContext, StoreContext } from '@/lib/forms/store/StoreContext'\nimport { consume } from '@lit/context'\nimport '@/components/input'\n\n@customElement('solid-ui-rdf-input')\nexport default class RDFInput extends WebComponent {\n // example RDF Turtle format source:\n // :nameField a ui:SingleLineTextField ;\n // ui:property vcard:fn;\n // ui:label \"name\" .\n\n // formSubject describes the field metadata\n // dataSubject points to the data resource containing the value\n\n @consume({ context: storeContext, subscribe: true })\n private accessor storeContext: StoreContext = DEFAULT_STORE\n\n @property({ attribute: false, type: Object })\n accessor formSubject: NamedNode | null = null\n\n @property({ attribute: false, type: Object })\n accessor dataSubject: NamedNode | null = null\n\n @property({ type: Number })\n accessor storeVersion = 0\n\n @state()\n private accessor localInputValue: string | null = null\n\n private _updateInFlight = false\n private _pendingUpdateValue: string | null = null\n\n @property({ type: Boolean, reflect: true })\n accessor readonly: boolean = true // to protect data, we default to not editable\n\n constructor () {\n super()\n\n this.id = generateId()\n }\n\n render () {\n const formDocument = this.getDocument(this.formSubject)\n\n // for building the HTML input element\n const uiPropertyTerm = this.getFormProperty(this.formSubject, ns.ui('property'), formDocument)\n const inputLabel = this.getInputLabel(this.formSubject, uiPropertyTerm, formDocument)\n const readonly = this.getReadOnly(this.readonly, this.formSubject, formDocument)\n\n const fieldType = this.formSubject ? mostSpecificClassURI(this.storeContext.store, this.formSubject) : undefined\n const params = fieldType ? fieldTypeParams[fieldType] ?? {} : {}\n const inputType: InputType = params.type ?? 'text'\n\n // for populating the HTML input element\n const selectedTerm = this.getSelectedTerm(this.dataSubject, uiPropertyTerm, this.formSubject, params)\n const placeholder = readonly ? '' : this.defaultInputValue(params)\n const inputValue = this._updateInFlight || this._pendingUpdateValue !== null\n ? this.localInputValue ?? ''\n : this.termToInputValue(selectedTerm)\n\n return html`\n <solid-ui-input\n label=\"${inputLabel}\"\n name=\"name-${this.id}\"\n .value=${inputValue}\n .placeholder=${placeholder}\n type=\"${inputType}\"\n ?readonly=${readonly}\n @input=${this.updateData}\n ></solid-ui-input>`\n }\n\n private getDocument (subject: NamedNode | null | undefined) {\n return subject?.doc ? subject.doc() : undefined\n }\n\n private getFormProperty (subject: NamedNode | null | undefined, property: NamedNode, graph?: any): NamedNode | undefined {\n if (!subject) return undefined\n return this.storeContext.store.any(subject, property, null, graph) as NamedNode | undefined\n }\n\n private getInputLabel (formFieldSubject: NamedNode | null | undefined, uiPropertyTerm?: NamedNode, graph?: any): string {\n if (!formFieldSubject) return ''\n const uiLabel = this.storeContext.store.any(formFieldSubject, ns.ui('label'), null, graph)\n const propertyLabel = uiPropertyTerm ? label(uiPropertyTerm, true) : ''\n return uiLabel ? uiLabel.value : propertyLabel\n }\n\n private getReadOnly (readonly: boolean, formFieldSubject?: NamedNode | null, graph?: any): boolean {\n if (formFieldSubject && readonly === false) { // if readonly is false, we can ovverride it if the field is marked as uneditable in the form\n return !!this.storeContext.store.anyJS(formFieldSubject, ns.ui('suppressEmptyUneditable'), null, graph)\n }\n return readonly\n }\n\n private getSelectedTerm (\n dataSubject?: NamedNode | null,\n uiPropertyTerm?: NamedNode,\n formFieldSubject?: NamedNode | null,\n params?: { defaultInputValue?: string }\n ) {\n const defaultTerm = formFieldSubject\n ? this.storeContext.store.any(formFieldSubject, ns.ui('default'))\n : undefined\n\n if (!uiPropertyTerm || !dataSubject) {\n return defaultTerm\n }\n\n const inputTerm = this.storeContext.store.any(dataSubject, uiPropertyTerm)\n return inputTerm || defaultTerm\n }\n\n private termToInputValue (term: any) {\n if (!term || !('value' in term) || !term.value) return ''\n\n try {\n return decodeURIComponent(term.value)\n } catch {\n return String(term.value)\n }\n }\n\n private defaultInputValue (params: { defaultInputValue?: string } = {}) {\n const stripped = params.defaultInputValue ?? ''\n return stripped.replace(/ /g, '')\n }\n\n private async updateData (e: CustomEvent) {\n const newValue = (e.target as HTMLInputElement).value\n this.localInputValue = newValue\n this._pendingUpdateValue = newValue\n\n if (this._updateInFlight) {\n return\n }\n\n await this.runPendingUpdate()\n }\n\n private async runPendingUpdate () {\n if (this._pendingUpdateValue === null) {\n return\n }\n\n const newValue = this._pendingUpdateValue\n this._pendingUpdateValue = null\n this._updateInFlight = true\n\n const uiPropertyTerm = this.getFormProperty(this.formSubject, ns.ui('property'), this.getDocument(this.formSubject))\n if (!uiPropertyTerm || !this.dataSubject) {\n this._updateInFlight = false\n this.localInputValue = ''\n return\n }\n\n const dataDocument = this.getDocument(this.dataSubject)\n if (dataDocument && this.storeContext.store.updater?.editable(dataDocument) === false) {\n this._updateInFlight = false\n return\n }\n\n const toDeleteSt = this.storeContext.store.statementsMatching(this.dataSubject, uiPropertyTerm)\n let toInsertSt: Array<ReturnType<typeof st>> = []\n\n if (newValue) {\n let objectFromNewValue\n const fieldType = this.formSubject ? mostSpecificClassURI(this.storeContext.store, this.formSubject) : undefined\n const params: FieldParamsObject = fieldType ? fieldTypeParams[fieldType] ?? {} : {}\n if (params.namedNode) {\n objectFromNewValue = this.storeContext.store.sym(newValue)\n } else if (params.defaultInputValue) {\n objectFromNewValue = encodeURIComponent(newValue.replace(/ /g, ''))\n objectFromNewValue = this.storeContext.store.sym(params.defaultInputValue + objectFromNewValue)\n } else {\n if (params.dt) {\n objectFromNewValue = new Literal(\n newValue.trim(),\n undefined,\n ns.xsd(params.dt)\n )\n } else {\n objectFromNewValue = new Literal(newValue)\n }\n }\n toInsertSt = toDeleteSt.map((statement) => st(statement.subject, statement.predicate, objectFromNewValue, statement.why))\n if (toInsertSt.length === 0) {\n toInsertSt = [st(this.dataSubject, uiPropertyTerm, objectFromNewValue, this.getDocument(this.dataSubject))]\n }\n }\n\n try {\n await this.storeContext.store.updater.updateMany(toDeleteSt, toInsertSt as any)\n this.storeVersion += 1\n } catch (err) {\n console.error('RDFInput update failed', err)\n } finally {\n this._updateInFlight = false\n }\n\n if (this._pendingUpdateValue !== null) {\n await this.runPendingUpdate()\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"RDFInput.esm.js","names":["property","state","html","ns","customElement","generateId","WebComponent","Literal","st","label","mostSpecificClassURI","fieldParams","fieldTypeParams","DEFAULT_STORE","storeContext","consume","_classDecs","_RDFInput","_A","WeakMap","_B","_C","_D","_E","_F","_ref","_storeContextDecs","context","subscribe","_formSubjectDecs","attribute","type","Object","_dataSubjectDecs","_storeVersionDecs","Number","_localInputValueDecs","_readonlyDecs","Boolean","reflect","RDFInput","_classPrivateFieldGet","v","_classPrivateFieldSet","formSubject","dataSubject","storeVersion","localInputValue","readonly","constructor","_classPrivateFieldInitSpec","_initProto","_init_storeContext","_init_formSubject","_init_dataSubject","_init_storeVersion","_init_localInputValue","_defineProperty","_init_readonly","id","render","formDocument","getDocument","uiPropertyTerm","getFormProperty","ui","inputLabel","getInputLabel","getReadOnly","fieldType","store","undefined","params","inputType","selectedTerm","getSelectedTerm","placeholder","defaultInputValue","inputValue","_updateInFlight","_pendingUpdateValue","termToInputValue","updateData","subject","doc","graph","any","formFieldSubject","uiLabel","propertyLabel","value","anyJS","defaultTerm","inputTerm","term","decodeURIComponent","String","stripped","replace","e","newValue","target","runPendingUpdate","dataDocument","updater","editable","toDeleteSt","statementsMatching","toInsertSt","objectFromNewValue","namedNode","sym","encodeURIComponent","dt","trim","xsd","map","statement","predicate","why","length","updateMany","err","console","error","_RDFInput2","c","_initClass","_applyDecs","default","ns","fieldTypeParams","ns_default","WebComponent","_RDFInput2","_initProto","_initClass","_classDecs","_storeContextDecs","_init_storeContext","_formSubjectDecs","_init_formSubject","_dataSubjectDecs","_init_dataSubject","_storeVersionDecs","_init_storeVersion","_localInputValueDecs","_init_localInputValue","_readonlyDecs","_init_readonly","_ref","_defineProperty","_toPropertyKey","r","t","_classPrivateFieldInitSpec","a","_checkPrivateRedeclaration","_classPrivateFieldSet","s","_assertClassBrand","_classPrivateFieldGet","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","p","_setFunctionName","P","j","D","I","F","l","f","N","_checkInRHS","_toPrimitive","e","customElement","_RDFInput","_A","_B","_C","_D","_E","_F","consume","storeContext","property","state","DEFAULT_STORE","generateId","formDocument","uiPropertyTerm","inputLabel","readonly","fieldType","mostSpecificClassURI","params","fieldParams","inputType","selectedTerm","placeholder","inputValue","subject","graph","formFieldSubject","uiLabel","propertyLabel","label","defaultTerm","dataSubject","term","newValue","dataDocument","toDeleteSt","toInsertSt","objectFromNewValue","Literal","st","statement","err"],"sources":["../../../src/components/rdf-input/RDFInput.ts"],"sourcesContent":["import { property, state } from 'lit/decorators.js'\nimport { html } from 'lit/html.js'\nimport ns from '../../lib/ns'\nimport { customElement, generateId, WebComponent } from '@/lib/components'\nimport { Literal, NamedNode, st } from 'rdflib'\nimport { label } from '../../utils'\nimport { mostSpecificClassURI } from '../../lib/forms/rdfFormsHelper'\nimport { FieldParamsObject, fieldParams as fieldTypeParams, InputType } from '../../lib/forms/fieldParams'\nimport { DEFAULT_STORE, storeContext, StoreContext } from '@/lib/forms/store/StoreContext'\nimport { consume } from '@lit/context'\nimport '@/components/input'\n\n@customElement('solid-ui-rdf-input')\nexport default class RDFInput extends WebComponent {\n // example RDF Turtle format source:\n // :nameField a ui:SingleLineTextField ;\n // ui:property vcard:fn;\n // ui:label \"name\" .\n\n // formSubject describes the field metadata\n // dataSubject points to the data resource containing the value\n\n @consume({ context: storeContext, subscribe: true })\n private accessor storeContext: StoreContext = DEFAULT_STORE\n\n @property({ attribute: false, type: Object })\n accessor formSubject: NamedNode | null = null\n\n @property({ attribute: false, type: Object })\n accessor dataSubject: NamedNode | null = null\n\n @property({ type: Number })\n accessor storeVersion = 0\n\n @state()\n private accessor localInputValue: string | null = null\n\n private _updateInFlight = false\n private _pendingUpdateValue: string | null = null\n\n @property({ type: Boolean, reflect: true })\n accessor readonly: boolean = true // to protect data, we default to not editable\n\n constructor () {\n super()\n\n this.id = generateId()\n }\n\n render () {\n const formDocument = this.getDocument(this.formSubject)\n\n // for building the HTML input element\n const uiPropertyTerm = this.getFormProperty(this.formSubject, ns.ui('property'), formDocument)\n const inputLabel = this.getInputLabel(this.formSubject, uiPropertyTerm, formDocument)\n const readonly = this.getReadOnly(this.readonly, this.formSubject, formDocument)\n\n const fieldType = this.formSubject ? mostSpecificClassURI(this.storeContext.store, this.formSubject) : undefined\n const params = fieldType ? fieldTypeParams[fieldType] ?? {} : {}\n const inputType: InputType = params.type ?? 'text'\n\n // for populating the HTML input element\n const selectedTerm = this.getSelectedTerm(this.dataSubject, uiPropertyTerm, this.formSubject, params)\n const placeholder = readonly ? '' : this.defaultInputValue(params)\n const inputValue = this._updateInFlight || this._pendingUpdateValue !== null\n ? this.localInputValue ?? ''\n : this.termToInputValue(selectedTerm)\n\n return html`\n <solid-ui-input\n label=\"${inputLabel}\"\n name=\"name-${this.id}\"\n .value=${inputValue}\n .placeholder=${placeholder}\n type=\"${inputType}\"\n ?readonly=${readonly}\n @input=${this.updateData}\n ></solid-ui-input>`\n }\n\n private getDocument (subject: NamedNode | null | undefined) {\n return subject?.doc ? subject.doc() : undefined\n }\n\n private getFormProperty (subject: NamedNode | null | undefined, property: NamedNode, graph?: any): NamedNode | undefined {\n if (!subject) return undefined\n return this.storeContext.store.any(subject, property, null, graph) as NamedNode | undefined\n }\n\n private getInputLabel (formFieldSubject: NamedNode | null | undefined, uiPropertyTerm?: NamedNode, graph?: any): string {\n if (!formFieldSubject) return ''\n const uiLabel = this.storeContext.store.any(formFieldSubject, ns.ui('label'), null, graph)\n const propertyLabel = uiPropertyTerm ? label(uiPropertyTerm, true) : ''\n return uiLabel ? uiLabel.value : propertyLabel\n }\n\n private getReadOnly (readonly: boolean, formFieldSubject?: NamedNode | null, graph?: any): boolean {\n if (formFieldSubject && readonly === false) { // if readonly is false, we can ovverride it if the field is marked as uneditable in the form\n return !!this.storeContext.store.anyJS(formFieldSubject, ns.ui('suppressEmptyUneditable'), null, graph)\n }\n return readonly\n }\n\n private getSelectedTerm (\n dataSubject?: NamedNode | null,\n uiPropertyTerm?: NamedNode,\n formFieldSubject?: NamedNode | null,\n params?: { defaultInputValue?: string }\n ) {\n const defaultTerm = formFieldSubject\n ? this.storeContext.store.any(formFieldSubject, ns.ui('default'))\n : undefined\n\n if (!uiPropertyTerm || !dataSubject) {\n return defaultTerm\n }\n\n const inputTerm = this.storeContext.store.any(dataSubject, uiPropertyTerm)\n return inputTerm || defaultTerm\n }\n\n private termToInputValue (term: any) {\n if (!term || !('value' in term) || !term.value) return ''\n\n try {\n return decodeURIComponent(term.value)\n } catch {\n return String(term.value)\n }\n }\n\n private defaultInputValue (params: { defaultInputValue?: string } = {}) {\n const stripped = params.defaultInputValue ?? ''\n return stripped.replace(/ /g, '')\n }\n\n private async updateData (e: CustomEvent) {\n const newValue = (e.target as HTMLInputElement).value\n this.localInputValue = newValue\n this._pendingUpdateValue = newValue\n\n if (this._updateInFlight) {\n return\n }\n\n await this.runPendingUpdate()\n }\n\n private async runPendingUpdate () {\n if (this._pendingUpdateValue === null) {\n return\n }\n\n const newValue = this._pendingUpdateValue\n this._pendingUpdateValue = null\n this._updateInFlight = true\n\n const uiPropertyTerm = this.getFormProperty(this.formSubject, ns.ui('property'), this.getDocument(this.formSubject))\n if (!uiPropertyTerm || !this.dataSubject) {\n this._updateInFlight = false\n this.localInputValue = ''\n return\n }\n\n const dataDocument = this.getDocument(this.dataSubject)\n if (dataDocument && this.storeContext.store.updater?.editable(dataDocument) === false) {\n this._updateInFlight = false\n return\n }\n\n const toDeleteSt = this.storeContext.store.statementsMatching(this.dataSubject, uiPropertyTerm)\n let toInsertSt: Array<ReturnType<typeof st>> = []\n\n if (newValue) {\n let objectFromNewValue\n const fieldType = this.formSubject ? mostSpecificClassURI(this.storeContext.store, this.formSubject) : undefined\n const params: FieldParamsObject = fieldType ? fieldTypeParams[fieldType] ?? {} : {}\n if (params.namedNode) {\n objectFromNewValue = this.storeContext.store.sym(newValue)\n } else if (params.defaultInputValue) {\n objectFromNewValue = encodeURIComponent(newValue.replace(/ /g, ''))\n objectFromNewValue = this.storeContext.store.sym(params.defaultInputValue + objectFromNewValue)\n } else {\n if (params.dt) {\n objectFromNewValue = new Literal(\n newValue.trim(),\n undefined,\n ns.xsd(params.dt)\n )\n } else {\n objectFromNewValue = new Literal(newValue)\n }\n }\n toInsertSt = toDeleteSt.map((statement) => st(statement.subject, statement.predicate, objectFromNewValue, statement.why))\n if (toInsertSt.length === 0) {\n toInsertSt = [st(this.dataSubject, uiPropertyTerm, objectFromNewValue, this.getDocument(this.dataSubject))]\n }\n }\n\n try {\n await this.storeContext.store.updater.updateMany(toDeleteSt, toInsertSt as any)\n this.storeVersion += 1\n } catch (err) {\n console.error('RDFInput update failed', err)\n } finally {\n this._updateInFlight = false\n }\n\n if (this._pendingUpdateValue !== null) {\n await this.runPendingUpdate()\n }\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- export { n as RDFInput, t as default } from "../chunks/rdf-input-CRYLK-27.js";
1
+ export { n as RDFInput, t as default } from "../chunks/rdf-input-BPePtqfS.js";
@@ -1,10 +1,10 @@
1
- const e=require("../../lib/components/decorators.cjs.js"),t=require("../../lib/components/web-component/WebComponent.cjs.js");require("../../lib/components/index.cjs.js"),require("../button/index.cjs.js"),require("../menu-item/index.cjs.js"),require("../menu/index.cjs.js"),require("../../_virtual/~icons/lucide/pencil.cjs.js"),require("../../_virtual/~icons/lucide/ellipsis-vertical.cjs.js");const n=require("../../utils/podUtils.cjs.js");require("../../_virtual/~icons/lucide/user-round-cog.cjs.js"),require("../../_virtual/~icons/lucide/file.cjs.js");const r=require("./ResourceActionsMenu.styles.cjs.js");let i=require("lit"),a=require("lit/decorators.js");var o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,A,j,M,N,P,F,I,L,R,z,B,V,H;function U(e,t,n){W(e,t),t.set(e,n)}function W(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}function G(e,t,n){return e.set(q(e,t),n),n}function K(e,t){return e.get(q(e,t))}function q(e,t,n){if(typeof e==`function`?e===t:e.has(t))return arguments.length<3?t:n;throw TypeError(`Private element is not present on this object`)}function J(e,t,n){return(t=X(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Y(e,t,n,r,i,a){function o(e,t,n){return function(r,i){return n&&n(r),e[t].call(r,i)}}function s(e,t){for(var n=0;n<e.length;n++)e[n].call(t);return t}function c(e,t,n,r){if(typeof e!=`function`&&(r||e!==void 0))throw TypeError(t+` must `+(n||`be`)+` a function`+(r?``:` or undefined`));return e}function l(e,t,n,r,i,a,s,l,u,d,f,p,m){function h(e){if(!m(e))throw TypeError(`Attempted to access private element on non-instance`)}var g,_=t[0],v=t[3],y=!l;if(!y){n||Array.isArray(_)||(_=[_]);var b={},x=[],S=i===3?`get`:i===4||p?`set`:`value`;d?(f||p?b={get:Q(function(){return v(this)},r,`get`),set:function(e){t[4](this,e)}}:b[S]=v,f||Q(b[S],r,i===2?``:S)):f||(b=Object.getOwnPropertyDescriptor(e,r))}for(var C=e,w=_.length-1;w>=0;w-=n?2:1){var T=_[w],E=n?_[w-1]:void 0,D={},O={kind:[`field`,`accessor`,`method`,`getter`,`setter`,`class`][i],name:r,metadata:a,addInitializer:function(e,t){if(e.v)throw Error(`attempted to call addInitializer after decoration was finished`);c(t,`An initializer`,`be`,!0),s.push(t)}.bind(null,D)};try{if(y)(g=c(T.call(E,C,O),`class decorators`,`return`))&&(C=g);else{var k,A;O.static=u,O.private=d,d?i===2?k=function(e){return h(e),b.value}:(i<4&&(k=o(b,`get`,h)),i!==3&&(A=o(b,`set`,h))):(k=function(e){return e[r]},(i<2||i===4)&&(A=function(e,t){e[r]=t}));var j=O.access={has:d?m.bind():function(e){return r in e}};if(k&&(j.get=k),A&&(j.set=A),C=T.call(E,p?{get:b.get,set:b.set}:b[S],O),p){if(typeof C==`object`&&C)(g=c(C.get,`accessor.get`))&&(b.get=g),(g=c(C.set,`accessor.set`))&&(b.set=g),(g=c(C.init,`accessor.init`))&&x.push(g);else if(C!==void 0)throw TypeError(`accessor decorators must return an object with get, set, or init properties or void 0`)}else c(C,(f?`field`:`method`)+` decorators`,`return`)&&(f?x.push(C):b[S]=C)}}finally{D.v=!0}}return(f||p)&&l.push(function(e,t){for(var n=x.length-1;n>=0;n--)t=x[n].call(e,t);return t}),f||y||(d?p?l.push(o(b,`get`),o(b,`set`)):l.push(i===2?b[S]:o.call.bind(b[S])):Object.defineProperty(e,r,b)),C}function u(e,t){return Object.defineProperty(e,Symbol.metadata||Symbol.for(`Symbol.metadata`),{configurable:!0,enumerable:!0,value:t})}if(arguments.length>=6)var d=a[Symbol.metadata||Symbol.for(`Symbol.metadata`)];var f=Object.create(d??null),p=function(e,t,n,r){var i,a,o=[],c=function(t){return ee(t)===e},u=new Map;function d(e){e&&o.push(s.bind(null,e))}for(var f=0;f<t.length;f++){var p=t[f];if(Array.isArray(p)){var m=p[1],h=p[2],g=p.length>3,_=16&m,v=!!(8&m),y=(m&=7)==0,b=h+`/`+v;if(!y&&!g){var x=u.get(b);if(!0===x||x===3&&m!==4||x===4&&m!==3)throw Error(`Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: `+h);u.set(b,!(m>2)||m)}l(v?e:e.prototype,p,_,g?`#`+h:X(h),m,r,v?a||=[]:i||=[],o,v,g,y,m===1,v&&g?c:n)}}return d(i),d(a),o}(e,t,i,f);return n.length||u(e,f),{e:p,get c(){var t=[];return n.length&&[u(l(e,[n],r,e.name,5,f,t),f),s.bind(null,t,e)]}}}function X(e){var t=Z(e,`string`);return typeof t==`symbol`?t:t+``}function Z(e,t){if(typeof e!=`object`||!e)return e;var n;if(typeof Symbol<`u`&&(n=e[Symbol.toPrimitive])!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Q(e,t,n){typeof t==`symbol`&&(t=(t=t.description)?`[`+t+`]`:``);try{Object.defineProperty(e,"name",{configurable:!0,value:n?n+` `+t:t})}catch{}return e}function ee(e){if(Object(e)!==e)throw TypeError(`right-hand side of 'in' should be an object, got `+(e===null?`null`:typeof e));return e}function te(e){return e}b=[e.customElement(`solid-ui-resource-actions-menu`)];var $;new(V=(c=new WeakMap,l=new WeakMap,u=new WeakMap,d=new WeakMap,f=new WeakMap,p=new WeakMap,m=new WeakMap,h=new WeakMap,g=new WeakMap,_=new WeakMap,H=(x=(0,a.property)({attribute:!1}),C=(0,a.property)({type:String}),T=(0,a.property)({attribute:!1}),D=(0,a.property)({attribute:!1}),k=(0,a.property)({type:Boolean}),j=(0,a.property)({type:Boolean}),N=(0,a.property)({type:Boolean}),F=(0,a.property)({type:Boolean}),L=(0,a.property)({type:Boolean,attribute:`show-access-in-menu`}),z=(0,a.property)({attribute:!1}),`store`),s=class extends t.default{constructor(...e){super(...e),U(this,c,(v(this),S(this))),U(this,l,w(this)),U(this,u,E(this,void 0)),U(this,d,O(this,void 0)),U(this,f,A(this,!1)),U(this,p,M(this,!1)),U(this,m,P(this,!1)),U(this,h,I(this,!1)),U(this,g,R(this,!1)),U(this,_,B(this,[]))}get[H](){return K(c,this)}set store(e){G(c,this,e)}get subjectUri(){return K(l,this)}set subjectUri(e){G(l,this,e)}get handleAccessClick(){return K(u,this)}set handleAccessClick(e){G(u,this,e)}get handleEditingClick(){return K(d,this)}set handleEditingClick(e){G(d,this,e)}get paneSupportsEditing(){return K(f,this)}set paneSupportsEditing(e){G(f,this,e)}get canEdit(){return K(p,this)}set canEdit(e){G(p,this,e)}get canManageAccess(){return K(m,this)}set canManageAccess(e){G(m,this,e)}get isMobile(){return K(h,this)}set isMobile(e){G(h,this,e)}get showAccessInMenu(){return K(g,this)}set showAccessInMenu(e){G(g,this,e)}get menuItems(){return K(_,this)}set menuItems(e){G(_,this,e)}render(){let e=!n.isContainerSubject(this.store,this.subjectUri)&&this.isMobile&&this.paneSupportsEditing&&this.canEdit&&!!this.handleEditingClick,t=this.canManageAccess&&!!this.handleAccessClick&&(this.showAccessInMenu||this.isMobile),r=this.menuItems.filter(e=>typeof e.action==`function`);return i.html`
1
+ const e=require("../../lib/components/decorators.cjs.js"),t=require("../../lib/components/web-component/WebComponent.cjs.js");require("../../lib/components/index.cjs.js"),require("../button/index.cjs.js"),require("../menu/index.cjs.js"),require("../menu-item/index.cjs.js"),require("../../_virtual/~icons/lucide/ellipsis-vertical.cjs.js"),require("../../_virtual/~icons/lucide/user-round-cog.cjs.js"),require("../../_virtual/~icons/lucide/pencil.cjs.js"),require("../../_virtual/~icons/lucide/file.cjs.js");const n=require("./ResourceActionsMenu.styles.cjs.js"),r=require("../../utils/podUtils.cjs.js");let i=require("lit"),a=require("lit/decorators.js");var o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,A,j,M,N,P,F,I,L,R,z,B,V,H;function U(e,t,n){W(e,t),t.set(e,n)}function W(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}function G(e,t,n){return e.set(q(e,t),n),n}function K(e,t){return e.get(q(e,t))}function q(e,t,n){if(typeof e==`function`?e===t:e.has(t))return arguments.length<3?t:n;throw TypeError(`Private element is not present on this object`)}function J(e,t,n){return(t=X(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Y(e,t,n,r,i,a){function o(e,t,n){return function(r,i){return n&&n(r),e[t].call(r,i)}}function s(e,t){for(var n=0;n<e.length;n++)e[n].call(t);return t}function c(e,t,n,r){if(typeof e!=`function`&&(r||e!==void 0))throw TypeError(t+` must `+(n||`be`)+` a function`+(r?``:` or undefined`));return e}function l(e,t,n,r,i,a,s,l,u,d,f,p,m){function h(e){if(!m(e))throw TypeError(`Attempted to access private element on non-instance`)}var g,_=t[0],v=t[3],y=!l;if(!y){n||Array.isArray(_)||(_=[_]);var b={},x=[],S=i===3?`get`:i===4||p?`set`:`value`;d?(f||p?b={get:Q(function(){return v(this)},r,`get`),set:function(e){t[4](this,e)}}:b[S]=v,f||Q(b[S],r,i===2?``:S)):f||(b=Object.getOwnPropertyDescriptor(e,r))}for(var C=e,w=_.length-1;w>=0;w-=n?2:1){var T=_[w],E=n?_[w-1]:void 0,D={},O={kind:[`field`,`accessor`,`method`,`getter`,`setter`,`class`][i],name:r,metadata:a,addInitializer:function(e,t){if(e.v)throw Error(`attempted to call addInitializer after decoration was finished`);c(t,`An initializer`,`be`,!0),s.push(t)}.bind(null,D)};try{if(y)(g=c(T.call(E,C,O),`class decorators`,`return`))&&(C=g);else{var k,A;O.static=u,O.private=d,d?i===2?k=function(e){return h(e),b.value}:(i<4&&(k=o(b,`get`,h)),i!==3&&(A=o(b,`set`,h))):(k=function(e){return e[r]},(i<2||i===4)&&(A=function(e,t){e[r]=t}));var j=O.access={has:d?m.bind():function(e){return r in e}};if(k&&(j.get=k),A&&(j.set=A),C=T.call(E,p?{get:b.get,set:b.set}:b[S],O),p){if(typeof C==`object`&&C)(g=c(C.get,`accessor.get`))&&(b.get=g),(g=c(C.set,`accessor.set`))&&(b.set=g),(g=c(C.init,`accessor.init`))&&x.push(g);else if(C!==void 0)throw TypeError(`accessor decorators must return an object with get, set, or init properties or void 0`)}else c(C,(f?`field`:`method`)+` decorators`,`return`)&&(f?x.push(C):b[S]=C)}}finally{D.v=!0}}return(f||p)&&l.push(function(e,t){for(var n=x.length-1;n>=0;n--)t=x[n].call(e,t);return t}),f||y||(d?p?l.push(o(b,`get`),o(b,`set`)):l.push(i===2?b[S]:o.call.bind(b[S])):Object.defineProperty(e,r,b)),C}function u(e,t){return Object.defineProperty(e,Symbol.metadata||Symbol.for(`Symbol.metadata`),{configurable:!0,enumerable:!0,value:t})}if(arguments.length>=6)var d=a[Symbol.metadata||Symbol.for(`Symbol.metadata`)];var f=Object.create(d??null),p=function(e,t,n,r){var i,a,o=[],c=function(t){return ee(t)===e},u=new Map;function d(e){e&&o.push(s.bind(null,e))}for(var f=0;f<t.length;f++){var p=t[f];if(Array.isArray(p)){var m=p[1],h=p[2],g=p.length>3,_=16&m,v=!!(8&m),y=(m&=7)==0,b=h+`/`+v;if(!y&&!g){var x=u.get(b);if(!0===x||x===3&&m!==4||x===4&&m!==3)throw Error(`Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: `+h);u.set(b,!(m>2)||m)}l(v?e:e.prototype,p,_,g?`#`+h:X(h),m,r,v?a||=[]:i||=[],o,v,g,y,m===1,v&&g?c:n)}}return d(i),d(a),o}(e,t,i,f);return n.length||u(e,f),{e:p,get c(){var t=[];return n.length&&[u(l(e,[n],r,e.name,5,f,t),f),s.bind(null,t,e)]}}}function X(e){var t=Z(e,`string`);return typeof t==`symbol`?t:t+``}function Z(e,t){if(typeof e!=`object`||!e)return e;var n;if(typeof Symbol<`u`&&(n=e[Symbol.toPrimitive])!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Q(e,t,n){typeof t==`symbol`&&(t=(t=t.description)?`[`+t+`]`:``);try{Object.defineProperty(e,"name",{configurable:!0,value:n?n+` `+t:t})}catch{}return e}function ee(e){if(Object(e)!==e)throw TypeError(`right-hand side of 'in' should be an object, got `+(e===null?`null`:typeof e));return e}function te(e){return e}b=[e.customElement(`solid-ui-resource-actions-menu`)];var $;new(V=(c=new WeakMap,l=new WeakMap,u=new WeakMap,d=new WeakMap,f=new WeakMap,p=new WeakMap,m=new WeakMap,h=new WeakMap,g=new WeakMap,_=new WeakMap,H=(x=(0,a.property)({attribute:!1}),C=(0,a.property)({type:String}),T=(0,a.property)({attribute:!1}),D=(0,a.property)({attribute:!1}),k=(0,a.property)({type:Boolean}),j=(0,a.property)({type:Boolean}),N=(0,a.property)({type:Boolean}),F=(0,a.property)({type:Boolean}),L=(0,a.property)({type:Boolean,attribute:`show-access-in-menu`}),z=(0,a.property)({attribute:!1}),`store`),s=class extends t.default{constructor(...e){super(...e),U(this,c,(v(this),S(this))),U(this,l,w(this)),U(this,u,E(this,void 0)),U(this,d,O(this,void 0)),U(this,f,A(this,!1)),U(this,p,M(this,!1)),U(this,m,P(this,!1)),U(this,h,I(this,!1)),U(this,g,R(this,!1)),U(this,_,B(this,[]))}get[H](){return K(c,this)}set store(e){G(c,this,e)}get subjectUri(){return K(l,this)}set subjectUri(e){G(l,this,e)}get handleAccessClick(){return K(u,this)}set handleAccessClick(e){G(u,this,e)}get handleEditingClick(){return K(d,this)}set handleEditingClick(e){G(d,this,e)}get paneSupportsEditing(){return K(f,this)}set paneSupportsEditing(e){G(f,this,e)}get canEdit(){return K(p,this)}set canEdit(e){G(p,this,e)}get canManageAccess(){return K(m,this)}set canManageAccess(e){G(m,this,e)}get isMobile(){return K(h,this)}set isMobile(e){G(h,this,e)}get showAccessInMenu(){return K(g,this)}set showAccessInMenu(e){G(g,this,e)}get menuItems(){return K(_,this)}set menuItems(e){G(_,this,e)}render(){let e=!r.isContainerSubject(this.store,this.subjectUri)&&this.isMobile&&this.paneSupportsEditing&&this.canEdit&&!!this.handleEditingClick,t=this.canManageAccess&&!!this.handleAccessClick&&(this.showAccessInMenu||this.isMobile),n=this.menuItems.filter(e=>typeof e.action==`function`);return i.html`
2
2
  <solid-ui-menu>
3
3
  <solid-ui-button slot="trigger" class="file-explorer-header-more-button" variant="ghost" title="More options">
4
4
  <icon-lucide-ellipsis-vertical slot="icon" class="ellipsisIcon"></icon-lucide-ellipsis-vertical>
5
5
  <span class="sr-only">More options</span>
6
6
  </solid-ui-button>
7
- ${r.map(e=>i.html`
7
+ ${n.map(e=>i.html`
8
8
  <solid-ui-menu-item @solid-ui-select=${t=>e.action(t)}>
9
9
  ${typeof e.icon==`string`?i.html`<img slot="left-icon" src=${e.icon} alt="">`:e.icon??i.html`<icon-lucide-file slot="left-icon" aria-hidden="true"></icon-lucide-file>`}
10
10
  ${e.label}
@@ -23,5 +23,5 @@ const e=require("../../lib/components/decorators.cjs.js"),t=require("../../lib/c
23
23
  </solid-ui-menu-item>
24
24
  `:i.nothing}
25
25
  </solid-ui-menu>
26
- `}},{e:[S,w,E,O,A,M,P,I,R,B,v],c:[$,y]}=Y(s,[[x,1,`store`],[C,1,`subjectUri`],[T,1,`handleAccessClick`],[D,1,`handleEditingClick`],[k,1,`paneSupportsEditing`],[j,1,`canEdit`],[N,1,`canManageAccess`],[F,1,`isMobile`],[L,1,`showAccessInMenu`],[z,1,`menuItems`]],b,0,void 0,t.default),s),o=class extends te{constructor(){super($),J(this,`styles`,r.default),y()}},J(o,V,void 0),o),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return $}});
26
+ `}},{e:[S,w,E,O,A,M,P,I,R,B,v],c:[$,y]}=Y(s,[[x,1,`store`],[C,1,`subjectUri`],[T,1,`handleAccessClick`],[D,1,`handleEditingClick`],[k,1,`paneSupportsEditing`],[j,1,`canEdit`],[N,1,`canManageAccess`],[F,1,`isMobile`],[L,1,`showAccessInMenu`],[z,1,`menuItems`]],b,0,void 0,t.default),s),o=class extends te{constructor(){super($),J(this,`styles`,n.default),y()}},J(o,V,void 0),o),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return $}});
27
27
  //# sourceMappingURL=ResourceActionsMenu.cjs.js.map