solid-ui 5.0.2-4 → 5.0.2-6

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 (282) 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-KFMLta44.js} +78 -69
  37. package/dist/chunks/ResourceActionsMenu-KFMLta44.js.map +1 -0
  38. package/dist/chunks/{access-control-modal-CwmY_Dod.js → access-control-modal-BZdBv6VD.js} +165 -165
  39. package/dist/chunks/{access-control-modal-CwmY_Dod.js.map → access-control-modal-BZdBv6VD.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-BJzo6xDU.js} +50 -50
  51. package/dist/chunks/{file-explorer-header-D0TebSYR.js.map → file-explorer-header-BJzo6xDU.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/square-arrow-out-up-right-DaALlpHo.js +9 -0
  75. package/dist/chunks/square-arrow-out-up-right-DaALlpHo.js.map +1 -0
  76. package/dist/chunks/{src-DQgHAH3d.js → src-Cv9Lm1V-.js} +3009 -2980
  77. package/dist/chunks/src-Cv9Lm1V-.js.map +1 -0
  78. package/dist/chunks/{style-CXaw5EYi.js → style-Dlw9-wPn.js} +3 -3
  79. package/dist/chunks/{style-CXaw5EYi.js.map → style-Dlw9-wPn.js.map} +1 -1
  80. package/dist/chunks/{widgets-BBEQu0CS.js → widgets-C92ihtlF.js} +733 -737
  81. package/dist/chunks/widgets-C92ihtlF.js.map +1 -0
  82. package/dist/components/access-control-modal/AccessControlAddAccess.cjs.js +1 -1
  83. package/dist/components/access-control-modal/AccessControlAddAccess.esm.js +5 -5
  84. package/dist/components/access-control-modal/AccessControlGeneralAccess.cjs.js +2 -2
  85. package/dist/components/access-control-modal/AccessControlGeneralAccess.cjs.js.map +1 -1
  86. package/dist/components/access-control-modal/AccessControlGeneralAccess.esm.js +12 -12
  87. package/dist/components/access-control-modal/AccessControlModal.cjs.js +2 -2
  88. package/dist/components/access-control-modal/AccessControlModal.cjs.js.map +1 -1
  89. package/dist/components/access-control-modal/AccessControlModal.esm.js +35 -35
  90. package/dist/components/access-control-modal/AccessControlModal.esm.js.map +1 -1
  91. package/dist/components/access-control-modal/AccessControlSharedAccess.cjs.js +1 -1
  92. package/dist/components/access-control-modal/AccessControlSharedAccess.esm.js +2 -2
  93. package/dist/components/access-control-modal/accessTargetResolver.cjs.js +1 -1
  94. package/dist/components/access-control-modal/accessTargetResolver.cjs.js.map +1 -1
  95. package/dist/components/access-control-modal/accessTargetResolver.esm.js +21 -21
  96. package/dist/components/access-control-modal.js +1 -1
  97. package/dist/components/account/Account.cjs.js +1 -1
  98. package/dist/components/account/Account.esm.js +3 -3
  99. package/dist/components/account.js +1 -1
  100. package/dist/components/all.cjs.js +1 -1
  101. package/dist/components/all.esm.js +16 -16
  102. package/dist/components/avatar.js +1 -1
  103. package/dist/components/combobox/Combobox.cjs.js +1 -1
  104. package/dist/components/combobox/Combobox.esm.js +1 -1
  105. package/dist/components/combobox.js +1 -1
  106. package/dist/components/dialog/Dialog.cjs.js +2 -2
  107. package/dist/components/dialog/Dialog.cjs.js.map +1 -1
  108. package/dist/components/dialog/Dialog.esm.js +9 -9
  109. package/dist/components/dialog/Dialog.esm.js.map +1 -1
  110. package/dist/components/dialog-provider/DialogProvider.cjs.js +1 -1
  111. package/dist/components/dialog-provider/DialogProvider.cjs.js.map +1 -1
  112. package/dist/components/dialog-provider/DialogProvider.esm.js +6 -6
  113. package/dist/components/dialogs-root/DialogsRoot.cjs.js +2 -2
  114. package/dist/components/dialogs-root/DialogsRoot.cjs.js.map +1 -1
  115. package/dist/components/dialogs-root/DialogsRoot.esm.js +7 -7
  116. package/dist/components/error-state/ErrorState.cjs.js +1 -1
  117. package/dist/components/error-state/ErrorState.esm.js +1 -1
  118. package/dist/components/error-state.js +1 -1
  119. package/dist/components/file-explorer-header/FileExplorerHeaderControls.cjs.js +2 -2
  120. package/dist/components/file-explorer-header/FileExplorerHeaderControls.cjs.js.map +1 -1
  121. package/dist/components/file-explorer-header/FileExplorerHeaderControls.esm.js +10 -10
  122. package/dist/components/file-explorer-header/FileExplorerHeaderSummary.cjs.js +1 -1
  123. package/dist/components/file-explorer-header/FileExplorerHeaderSummary.esm.js +5 -5
  124. package/dist/components/file-explorer-header.js +1 -1
  125. package/dist/components/guard.js +1 -1
  126. package/dist/components/login-button/LoginButton.cjs.js +1 -1
  127. package/dist/components/login-button/LoginButton.esm.js +1 -1
  128. package/dist/components/login-button.js +1 -1
  129. package/dist/components/login-modal/LoginModal.cjs.js +1 -1
  130. package/dist/components/login-modal/LoginModal.esm.js +2 -2
  131. package/dist/components/login-modal.js +1 -1
  132. package/dist/components/logout-button/LogoutButton.cjs.js +1 -1
  133. package/dist/components/logout-button/LogoutButton.esm.js +1 -1
  134. package/dist/components/logout-button.js +1 -1
  135. package/dist/components/menu/Menu.cjs.js +1 -1
  136. package/dist/components/menu/Menu.cjs.js.map +1 -1
  137. package/dist/components/menu/Menu.esm.js +1 -1
  138. package/dist/components/menu/Menu.esm.js.map +1 -1
  139. package/dist/components/menu.js +1 -1
  140. package/dist/components/provider.js +1 -1
  141. package/dist/components/rdf-form/RDFForm.cjs.js +3 -3
  142. package/dist/components/rdf-form/RDFForm.cjs.js.map +1 -1
  143. package/dist/components/rdf-form/RDFForm.esm.js +13 -13
  144. package/dist/components/rdf-form/RDFForm.esm.js.map +1 -1
  145. package/dist/components/rdf-form.js +1 -1
  146. package/dist/components/rdf-input/RDFInput.cjs.js +2 -2
  147. package/dist/components/rdf-input/RDFInput.cjs.js.map +1 -1
  148. package/dist/components/rdf-input/RDFInput.esm.js +4 -4
  149. package/dist/components/rdf-input/RDFInput.esm.js.map +1 -1
  150. package/dist/components/rdf-input.js +1 -1
  151. package/dist/components/resource-actions-menu/ResourceActionsMenu.cjs.js +9 -3
  152. package/dist/components/resource-actions-menu/ResourceActionsMenu.cjs.js.map +1 -1
  153. package/dist/components/resource-actions-menu/ResourceActionsMenu.d.ts +1 -0
  154. package/dist/components/resource-actions-menu/ResourceActionsMenu.d.ts.map +1 -1
  155. package/dist/components/resource-actions-menu/ResourceActionsMenu.esm.js +18 -9
  156. package/dist/components/resource-actions-menu/ResourceActionsMenu.esm.js.map +1 -1
  157. package/dist/components/resource-actions-menu.js +1 -1
  158. package/dist/components/select/Select.cjs.js +1 -1
  159. package/dist/components/select/Select.cjs.js.map +1 -1
  160. package/dist/components/select/Select.esm.js +1 -1
  161. package/dist/components/signup-button/SignupButton.cjs.js +1 -1
  162. package/dist/components/signup-button/SignupButton.esm.js +1 -1
  163. package/dist/components/signup-button.js +1 -1
  164. package/dist/components.js +21 -21
  165. package/dist/create/create.cjs.js +1 -1
  166. package/dist/create/create.cjs.js.map +1 -1
  167. package/dist/create/create.esm.js +23 -23
  168. package/dist/header/index.cjs.js +1 -1
  169. package/dist/header/index.cjs.js.map +1 -1
  170. package/dist/header/index.esm.js +53 -53
  171. package/dist/index.cjs.js +1 -1
  172. package/dist/index.cjs.js.map +1 -1
  173. package/dist/index.esm.js +23 -22
  174. package/dist/index.esm.js.map +1 -1
  175. package/dist/index.js +11 -11
  176. package/dist/lib/auth/SolidAuth.cjs.js +1 -1
  177. package/dist/lib/auth/SolidAuth.cjs.js.map +1 -1
  178. package/dist/lib/auth/SolidAuth.esm.js +8 -8
  179. package/dist/lib/auth/SolidAuth.esm.js.map +1 -1
  180. package/dist/lib/code-editor/CodeEditor.cjs.js +1 -1
  181. package/dist/lib/code-editor/CodeEditor.cjs.js.map +1 -1
  182. package/dist/lib/code-editor/CodeEditor.d.ts.map +1 -1
  183. package/dist/lib/code-editor/CodeEditor.esm.js +34 -30
  184. package/dist/lib/code-editor/CodeEditor.esm.js.map +1 -1
  185. package/dist/lib/components/dialog-component/DialogComponent.cjs.js +1 -1
  186. package/dist/lib/components/dialog-component/DialogComponent.cjs.js.map +1 -1
  187. package/dist/lib/components/dialog-component/DialogComponent.esm.js +4 -4
  188. package/dist/lib/components/index.cjs.js +1 -1
  189. package/dist/lib/components/index.esm.js +3 -3
  190. package/dist/lib/dialogs/helpers.cjs.js +1 -1
  191. package/dist/lib/dialogs/helpers.cjs.js.map +1 -1
  192. package/dist/lib/dialogs/helpers.esm.js +4 -4
  193. package/dist/lib/file-explorer/index.cjs.js +1 -1
  194. package/dist/lib/file-explorer/index.d.ts +1 -0
  195. package/dist/lib/file-explorer/index.d.ts.map +1 -1
  196. package/dist/lib/file-explorer/index.esm.js +2 -1
  197. package/dist/lib/file-explorer/pane-menu-items.cjs.js +2 -0
  198. package/dist/lib/file-explorer/pane-menu-items.cjs.js.map +1 -0
  199. package/dist/lib/file-explorer/pane-menu-items.d.ts +22 -0
  200. package/dist/lib/file-explorer/pane-menu-items.d.ts.map +1 -0
  201. package/dist/lib/file-explorer/pane-menu-items.esm.js +20 -0
  202. package/dist/lib/file-explorer/pane-menu-items.esm.js.map +1 -0
  203. package/dist/lib/file-explorer/relevant-panes.cjs.js +1 -1
  204. package/dist/lib/file-explorer/relevant-panes.cjs.js.map +1 -1
  205. package/dist/lib/file-explorer/relevant-panes.esm.js +8 -8
  206. package/dist/lib/messageArea.cjs.js +1 -1
  207. package/dist/lib/messageArea.cjs.js.map +1 -1
  208. package/dist/lib/messageArea.esm.js +27 -27
  209. package/dist/lib/pad.cjs.js +1 -1
  210. package/dist/lib/pad.cjs.js.map +1 -1
  211. package/dist/lib/pad.esm.js +15 -15
  212. package/dist/lib/participation.cjs.js +1 -1
  213. package/dist/lib/participation.cjs.js.map +1 -1
  214. package/dist/lib/participation.esm.js +59 -59
  215. package/dist/lib/preferences.cjs.js +1 -1
  216. package/dist/lib/preferences.cjs.js.map +1 -1
  217. package/dist/lib/preferences.esm.js +28 -28
  218. package/dist/lib/table.cjs.js +3 -3
  219. package/dist/lib/table.cjs.js.map +1 -1
  220. package/dist/lib/table.esm.js +123 -123
  221. package/dist/lib/table.esm.js.map +1 -1
  222. package/dist/lib/tabs.cjs.js +1 -1
  223. package/dist/lib/tabs.cjs.js.map +1 -1
  224. package/dist/lib/tabs.esm.js +16 -16
  225. package/dist/loader.js +11 -11
  226. package/dist/login/login.cjs.js +6 -6
  227. package/dist/login/login.cjs.js.map +1 -1
  228. package/dist/login/login.esm.js +142 -142
  229. package/dist/media/media-capture.cjs.js +1 -1
  230. package/dist/media/media-capture.cjs.js.map +1 -1
  231. package/dist/media/media-capture.esm.js +6 -6
  232. package/dist/solid-ui.js +34 -28
  233. package/dist/solid-ui.min.js +34 -28
  234. package/dist/solid-ui.min.js.map +1 -1
  235. package/dist/utils/index.cjs.js +1 -1
  236. package/dist/utils/index.cjs.js.map +1 -1
  237. package/dist/utils/index.esm.js +4 -4
  238. package/dist/utils/keyHelpers/accessData.cjs.js +1 -1
  239. package/dist/utils/keyHelpers/accessData.cjs.js.map +1 -1
  240. package/dist/utils/keyHelpers/accessData.esm.js +15 -15
  241. package/dist/utils/label.cjs.js +1 -1
  242. package/dist/utils/label.cjs.js.map +1 -1
  243. package/dist/utils/label.esm.js +4 -4
  244. package/dist/widgets/buttons.cjs.js +12 -12
  245. package/dist/widgets/buttons.cjs.js.map +1 -1
  246. package/dist/widgets/buttons.esm.js +179 -179
  247. package/dist/widgets/error.cjs.js +1 -1
  248. package/dist/widgets/error.cjs.js.map +1 -1
  249. package/dist/widgets/error.esm.js +5 -5
  250. package/dist/widgets/forms/autocomplete/autocompleteBar.cjs.js +1 -1
  251. package/dist/widgets/forms/autocomplete/autocompleteBar.cjs.js.map +1 -1
  252. package/dist/widgets/forms/autocomplete/autocompleteBar.esm.js +17 -17
  253. package/dist/widgets/forms/autocomplete/autocompleteField.cjs.js +1 -1
  254. package/dist/widgets/forms/autocomplete/autocompleteField.cjs.js.map +1 -1
  255. package/dist/widgets/forms/autocomplete/autocompleteField.esm.js +23 -23
  256. package/dist/widgets/forms/autocomplete/autocompletePicker.cjs.js +1 -1
  257. package/dist/widgets/forms/autocomplete/autocompletePicker.cjs.js.map +1 -1
  258. package/dist/widgets/forms/autocomplete/autocompletePicker.esm.js +26 -26
  259. package/dist/widgets/forms/autocomplete/language.cjs.js +1 -1
  260. package/dist/widgets/forms/autocomplete/language.cjs.js.map +1 -1
  261. package/dist/widgets/forms/autocomplete/language.esm.js +9 -9
  262. package/dist/widgets/forms/autocomplete/publicData.cjs.js +5 -5
  263. package/dist/widgets/forms/autocomplete/publicData.cjs.js.map +1 -1
  264. package/dist/widgets/forms/autocomplete/publicData.esm.js +67 -67
  265. package/dist/widgets/forms/basic.cjs.js +1 -1
  266. package/dist/widgets/forms/basic.cjs.js.map +1 -1
  267. package/dist/widgets/forms/basic.esm.js +11 -11
  268. package/dist/widgets/forms.cjs.js +4 -4
  269. package/dist/widgets/forms.cjs.js.map +1 -1
  270. package/dist/widgets/forms.esm.js +561 -561
  271. package/dist/widgets/forms.esm.js.map +1 -1
  272. package/dist/widgets/index.cjs.js +1 -1
  273. package/dist/widgets/index.cjs.js.map +1 -1
  274. package/dist/widgets/index.esm.js +82 -82
  275. package/dist/widgets/peoplePicker.cjs.js +2 -2
  276. package/dist/widgets/peoplePicker.cjs.js.map +1 -1
  277. package/dist/widgets/peoplePicker.esm.js +82 -82
  278. package/package.json +3 -3
  279. package/dist/chunks/ResourceActionsMenu-Bllpr4M5.js.map +0 -1
  280. package/dist/chunks/solidLogicSingleton.esm-BXyHD7mn.js.map +0 -1
  281. package/dist/chunks/src-DQgHAH3d.js.map +0 -1
  282. package/dist/chunks/widgets-BBEQu0CS.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"basic.cjs.js","names":["solidLogicSingleton","styleConstants","style","ns","errorMessageBlock","label","mostSpecificClassURI","fieldParams","Literal","st","require_ns","require_label","require_styleConstants","require_style","require_error","require_fieldParams","require_fieldFunction","rdflib","store","renderNameValuePair","lhs","box","dom","rhs","label","kb","form","fieldLabel","lab","fieldInQuestion","property","anchor","fieldStore","sts","subject","predicate","def","basicField","formDoc","container","suppressEmptyUneditable","uri","params","paramStyle","inputStyle","field","fieldType","deferWhileFocused","size","maxLength","doc","obj","disabledForSave","ds","result","is","statement","updateMany","docs","st","callback","is1","is2","ds1","ds2","ok","body","callbackFunction","event"],"sources":["../../../src/widgets/forms/basic.ts"],"sourcesContent":["import { BlankNode, Literal, NamedNode, Node, st, Store, Variable } from 'rdflib'\nimport { solidLogicSingleton } from 'solid-logic'\nimport ns from '../../lib/ns'\nimport { style } from '../../lib/style'\nimport styleConstants from '../../lib/styleConstants'\nimport { label } from '../../utils'\nimport { errorMessageBlock } from '../error'\nimport { mostSpecificClassURI } from './fieldFunction'\nimport { fieldParams } from './fieldParams'\n\nconst store = solidLogicSingleton.store\n\n/* Style and create a name, value pair\n*/\nexport function renderNameValuePair (dom: HTMLDocument, kb: Store, box: HTMLElement, form: NamedNode, label?: string):HTMLElement {\n // const property = kb.any(form, ns.ui('property'))\n box.style.display = 'flex'\n box.style.flexDirection = 'row'\n const lhs = box.appendChild(dom.createElement('div'))\n lhs.style.width = styleConstants.formFieldNameBoxWidth\n const rhs = box.appendChild(dom.createElement('div'))\n\n lhs.setAttribute('class', 'formFieldName')\n lhs.setAttribute('style', style.formFieldNameBoxStyle)\n rhs.setAttribute('class', 'formFieldValue')\n if (label) {\n lhs.appendChild(dom.createTextNode(label))\n } else if (kb.any(form, ns.ui('property'))) { // Assume more space for error on right\n lhs.appendChild(fieldLabel(dom, kb.any(form, ns.ui('property')) as NamedNode, form))\n } else {\n rhs.appendChild(errorMessageBlock(dom, 'No property or label given for form field: ' + form))\n lhs.appendChild(dom.createTextNode('???'))\n }\n return rhs\n}\n\n/**\n * Create an anchor element with a label as the anchor text.\n *\n * @param dom The DOM\n * @param property href for the anchor element\n * @param fieldInQuestion field to produce a label for\n *\n * @internal exporting this only for unit tests\n */\nexport function fieldLabel (dom: HTMLDocument, property: NamedNode | undefined, fieldInQuestion: Node): HTMLElement | Text {\n let lab = store.any(fieldInQuestion as any, ns.ui('label'))\n if (!lab) lab = label(property, true) // Init capital\n if (property === undefined) {\n return dom.createTextNode('@@Internal error: undefined property')\n }\n const anchor = dom.createElement('a')\n /* istanbul ignore next */\n if (property.uri) anchor.setAttribute('href', property.uri)\n anchor.setAttribute('style', 'color: #3B5998; text-decoration: none;') // Not too blue and no underline\n anchor.textContent = lab as any\n return anchor\n}\n\n/**\n * Returns the document for the first quad that matches\n * the subject and predicate provided, or default if that\n * store is not editable.\n *\n * @param subject Subject about which we want to find an editable RDF document\n * @param predicate Predicate about which we want to find an editable RDF document\n * @param def default RDF document to return if none found\n *\n * @internal exporting this only for unit tests\n */\nexport function fieldStore (subject: NamedNode | BlankNode | Variable, predicate: NamedNode | Variable, def: NamedNode | undefined): NamedNode | undefined {\n const sts = store.statementsMatching(subject, predicate)\n if (sts.length === 0) return def // can used default as no data yet\n if (!store.updater) {\n throw new Error('Store has no updater')\n }\n if (\n sts.length > 0 &&\n sts[0].why.value &&\n store.updater.editable(sts[0].why.value, store)\n ) {\n return store.sym(sts[0].why.value)\n }\n return def\n}\n\n/**\n * Render a basic form field\n *\n * The same function is used for many similar one-value fields, with different\n * regexps used to validate.\n *\n * @param dom The HTML Document object aka Document Object Model\n * @param container If present, the created widget will be appended to this\n * @param already A hash table of (form, subject) kept to prevent recursive forms looping\n * @param subject The thing about which the form displays/edits data\n * @param form The form or field to be rendered\n * @param doc The web document in which the data is\n * @param callbackFunction Called when data is changed?\n *\n * @returns The HTML widget created\n */\n\nexport function basicField (\n dom: HTMLDocument,\n container: HTMLElement | undefined,\n already,\n subject: NamedNode | BlankNode | Variable,\n form: NamedNode,\n doc: NamedNode | undefined,\n callbackFunction: (_ok: boolean, _errorMessage: string) => void\n): HTMLElement {\n const kb = store\n const formDoc = form.doc ? form.doc() : null // @@ if blank no way to know\n\n const box = dom.createElement('div')\n\n const property = kb.any(form, ns.ui('property'))\n if (container) container.appendChild(box)\n if (!property) {\n return box.appendChild(\n errorMessageBlock(dom, 'Error: No property given for text field: ' + form)\n )\n }\n const rhs = renderNameValuePair(dom, kb, box, form)\n\n // It can be cleaner to just remove empty fields if you can't edit them anyway\n const suppressEmptyUneditable = kb.anyJS(form, ns.ui('suppressEmptyUneditable'), null, formDoc)\n\n const uri = mostSpecificClassURI(form)\n let params = fieldParams[uri]\n if (params === undefined) params = { style: '' } // non-bottom field types can do this\n const paramStyle = params.style || ''\n const inputStyle = style.textInputStyle + paramStyle\n const field = dom.createElement('input')\n ;(field as any).style = inputStyle\n rhs.appendChild(field)\n field.setAttribute('type', params.type ? params.type : 'text')\n const fieldType = (field.getAttribute('type') || '').toLowerCase()\n const deferWhileFocused = fieldType === 'date' || fieldType === 'datetime-local'\n\n const size = kb.anyJS(form, ns.ui('size')) || styleConstants.textInputSize || 20\n field.setAttribute('size', size)\n\n const maxLength = kb.any(form, ns.ui('maxLength'))\n field.setAttribute('maxLength', maxLength ? '' + maxLength : styleConstants.basicMaxLength)\n\n doc = doc || fieldStore(subject, property as any, doc)\n\n let obj = kb.any(subject, property as any, undefined, doc)\n if (!obj) {\n obj = kb.any(form, ns.ui('default'))\n }\n if (obj && obj.value && params.uriPrefix) {\n // eg tel: or mailto:\n field.value = decodeURIComponent(obj.value.replace(params.uriPrefix, '')) // should have no spaces but in case\n .replace(/ /g, '')\n } else if (obj) {\n /* istanbul ignore next */\n field.value = obj.value || obj.value || ''\n }\n field.setAttribute('style', inputStyle)\n if (!kb.updater) {\n throw new Error('kb has no updater')\n }\n if (!kb.updater.editable((doc as NamedNode).uri)) {\n field.readOnly = true // was: disabled. readOnly is better\n ;(field as any).style = style.textInputStyleUneditable + paramStyle\n if (suppressEmptyUneditable && field.value === '') {\n box.style.display = 'none' // clutter\n }\n return box\n }\n\n // read-write:\n field.addEventListener(\n 'keyup',\n function (_e) {\n if (params.pattern) {\n field.setAttribute(\n 'style',\n inputStyle +\n (field.value.match(params.pattern)\n ? 'color: green;'\n : 'color: red;')\n )\n }\n },\n true\n )\n field.addEventListener(\n 'change',\n function (_e) {\n if (deferWhileFocused && dom.activeElement === field) {\n if (field.dataset) {\n field.dataset.deferredChange = 'true'\n }\n return\n }\n // i.e. lose focus with changed data\n if (params.pattern && !field.value.match(params.pattern)) return\n const disabledForSave = !deferWhileFocused\n if (disabledForSave) {\n field.disabled = true // See if this stops getting two dates from fumbling, e.g., the chrome datepicker.\n }\n field.setAttribute('style', inputStyle + 'color: gray;') // pending\n const ds = kb.statementsMatching(subject, property as any) // remove any multiple values\n let result\n if (params.namedNode) {\n result = kb.sym(field.value)\n } else if (params.uriPrefix) {\n result = encodeURIComponent(field.value.replace(/ /g, ''))\n result = kb.sym(params.uriPrefix + field.value)\n } else {\n if (params.dt) {\n result = new Literal(\n field.value.trim(),\n undefined,\n ns.xsd(params.dt)\n )\n } else {\n result = new Literal(field.value)\n }\n }\n let is = ds.map(statement => st(statement.subject, statement.predicate, result, statement.why)) // can include >1 doc\n if (is.length === 0) {\n // or none\n is = [st(subject, property as any, result, doc)]\n }\n\n function updateMany (ds, is: { why: { uri: string } }[], callback) {\n const docs: any[] = []\n is.forEach(st => {\n if (!docs.includes(st.why.uri)) docs.push(st.why.uri)\n })\n ds.forEach(st => {\n /* istanbul ignore next */\n if (!docs.includes(st.why.uri)) docs.push(st.why.uri)\n })\n /* istanbul ignore next */\n if (docs.length === 0) {\n throw new Error('updateMany has no docs to patch')\n }\n if (!kb.updater) {\n throw new Error('kb has no updater')\n }\n if (docs.length === 1) {\n return kb.updater.update(ds, is as any, callback)\n }\n // return kb.updater.update(ds, is, callback)\n\n const doc = docs.pop()\n const is1 = is.filter(st => st.why.uri === doc)\n const is2 = is.filter(st => st.why.uri !== doc)\n const ds1 = ds.filter(st => st.why.uri === doc)\n const ds2 = ds.filter(st => st.why.uri !== doc)\n kb.updater.update(ds1, is1 as any, function (uri, ok, body) {\n if (ok) {\n updateMany(ds2, is2, callback)\n } else {\n callback(uri, ok, body)\n }\n })\n }\n\n updateMany(ds, is as any, function (uri, ok, body) {\n // kb.updater.update(ds, is, function (uri, ok, body) {\n if (ok) {\n if (disabledForSave) {\n field.disabled = false\n }\n field.setAttribute('style', inputStyle)\n } else {\n box.appendChild(errorMessageBlock(dom, body))\n }\n callbackFunction(ok, body)\n })\n },\n true\n )\n field.addEventListener(\n 'blur',\n function (_e) {\n if (\n deferWhileFocused &&\n field.dataset &&\n field.dataset.deferredChange === 'true'\n ) {\n delete field.dataset.deferredChange\n const event = new Event('change', { bubbles: true })\n field.dispatchEvent(event)\n }\n },\n true\n )\n return box\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"basic.cjs.js","names":["solidLogicSingleton","styleConstants","style","ns","errorMessageBlock","label","mostSpecificClassURI","fieldParams","Literal","st","require_ns","require_label","require_style","require_styleConstants","require_error","require_fieldFunction","require_fieldParams","rdflib","store","renderNameValuePair","lhs","box","dom","rhs","label","kb","form","fieldLabel","lab","fieldInQuestion","property","anchor","fieldStore","sts","subject","predicate","def","basicField","formDoc","container","suppressEmptyUneditable","uri","params","paramStyle","inputStyle","field","fieldType","deferWhileFocused","size","maxLength","doc","obj","disabledForSave","ds","result","is","statement","updateMany","docs","st","callback","is1","is2","ds1","ds2","ok","body","callbackFunction","event"],"sources":["../../../src/widgets/forms/basic.ts"],"sourcesContent":["import { BlankNode, Literal, NamedNode, Node, st, Store, Variable } from 'rdflib'\nimport { solidLogicSingleton } from 'solid-logic'\nimport ns from '../../lib/ns'\nimport { style } from '../../lib/style'\nimport styleConstants from '../../lib/styleConstants'\nimport { label } from '../../utils'\nimport { errorMessageBlock } from '../error'\nimport { mostSpecificClassURI } from './fieldFunction'\nimport { fieldParams } from './fieldParams'\n\nconst store = solidLogicSingleton.store\n\n/* Style and create a name, value pair\n*/\nexport function renderNameValuePair (dom: HTMLDocument, kb: Store, box: HTMLElement, form: NamedNode, label?: string):HTMLElement {\n // const property = kb.any(form, ns.ui('property'))\n box.style.display = 'flex'\n box.style.flexDirection = 'row'\n const lhs = box.appendChild(dom.createElement('div'))\n lhs.style.width = styleConstants.formFieldNameBoxWidth\n const rhs = box.appendChild(dom.createElement('div'))\n\n lhs.setAttribute('class', 'formFieldName')\n lhs.setAttribute('style', style.formFieldNameBoxStyle)\n rhs.setAttribute('class', 'formFieldValue')\n if (label) {\n lhs.appendChild(dom.createTextNode(label))\n } else if (kb.any(form, ns.ui('property'))) { // Assume more space for error on right\n lhs.appendChild(fieldLabel(dom, kb.any(form, ns.ui('property')) as NamedNode, form))\n } else {\n rhs.appendChild(errorMessageBlock(dom, 'No property or label given for form field: ' + form))\n lhs.appendChild(dom.createTextNode('???'))\n }\n return rhs\n}\n\n/**\n * Create an anchor element with a label as the anchor text.\n *\n * @param dom The DOM\n * @param property href for the anchor element\n * @param fieldInQuestion field to produce a label for\n *\n * @internal exporting this only for unit tests\n */\nexport function fieldLabel (dom: HTMLDocument, property: NamedNode | undefined, fieldInQuestion: Node): HTMLElement | Text {\n let lab = store.any(fieldInQuestion as any, ns.ui('label'))\n if (!lab) lab = label(property, true) // Init capital\n if (property === undefined) {\n return dom.createTextNode('@@Internal error: undefined property')\n }\n const anchor = dom.createElement('a')\n /* istanbul ignore next */\n if (property.uri) anchor.setAttribute('href', property.uri)\n anchor.setAttribute('style', 'color: #3B5998; text-decoration: none;') // Not too blue and no underline\n anchor.textContent = lab as any\n return anchor\n}\n\n/**\n * Returns the document for the first quad that matches\n * the subject and predicate provided, or default if that\n * store is not editable.\n *\n * @param subject Subject about which we want to find an editable RDF document\n * @param predicate Predicate about which we want to find an editable RDF document\n * @param def default RDF document to return if none found\n *\n * @internal exporting this only for unit tests\n */\nexport function fieldStore (subject: NamedNode | BlankNode | Variable, predicate: NamedNode | Variable, def: NamedNode | undefined): NamedNode | undefined {\n const sts = store.statementsMatching(subject, predicate)\n if (sts.length === 0) return def // can used default as no data yet\n if (!store.updater) {\n throw new Error('Store has no updater')\n }\n if (\n sts.length > 0 &&\n sts[0].why.value &&\n store.updater.editable(sts[0].why.value, store)\n ) {\n return store.sym(sts[0].why.value)\n }\n return def\n}\n\n/**\n * Render a basic form field\n *\n * The same function is used for many similar one-value fields, with different\n * regexps used to validate.\n *\n * @param dom The HTML Document object aka Document Object Model\n * @param container If present, the created widget will be appended to this\n * @param already A hash table of (form, subject) kept to prevent recursive forms looping\n * @param subject The thing about which the form displays/edits data\n * @param form The form or field to be rendered\n * @param doc The web document in which the data is\n * @param callbackFunction Called when data is changed?\n *\n * @returns The HTML widget created\n */\n\nexport function basicField (\n dom: HTMLDocument,\n container: HTMLElement | undefined,\n already,\n subject: NamedNode | BlankNode | Variable,\n form: NamedNode,\n doc: NamedNode | undefined,\n callbackFunction: (_ok: boolean, _errorMessage: string) => void\n): HTMLElement {\n const kb = store\n const formDoc = form.doc ? form.doc() : null // @@ if blank no way to know\n\n const box = dom.createElement('div')\n\n const property = kb.any(form, ns.ui('property'))\n if (container) container.appendChild(box)\n if (!property) {\n return box.appendChild(\n errorMessageBlock(dom, 'Error: No property given for text field: ' + form)\n )\n }\n const rhs = renderNameValuePair(dom, kb, box, form)\n\n // It can be cleaner to just remove empty fields if you can't edit them anyway\n const suppressEmptyUneditable = kb.anyJS(form, ns.ui('suppressEmptyUneditable'), null, formDoc)\n\n const uri = mostSpecificClassURI(form)\n let params = fieldParams[uri]\n if (params === undefined) params = { style: '' } // non-bottom field types can do this\n const paramStyle = params.style || ''\n const inputStyle = style.textInputStyle + paramStyle\n const field = dom.createElement('input')\n ;(field as any).style = inputStyle\n rhs.appendChild(field)\n field.setAttribute('type', params.type ? params.type : 'text')\n const fieldType = (field.getAttribute('type') || '').toLowerCase()\n const deferWhileFocused = fieldType === 'date' || fieldType === 'datetime-local'\n\n const size = kb.anyJS(form, ns.ui('size')) || styleConstants.textInputSize || 20\n field.setAttribute('size', size)\n\n const maxLength = kb.any(form, ns.ui('maxLength'))\n field.setAttribute('maxLength', maxLength ? '' + maxLength : styleConstants.basicMaxLength)\n\n doc = doc || fieldStore(subject, property as any, doc)\n\n let obj = kb.any(subject, property as any, undefined, doc)\n if (!obj) {\n obj = kb.any(form, ns.ui('default'))\n }\n if (obj && obj.value && params.uriPrefix) {\n // eg tel: or mailto:\n field.value = decodeURIComponent(obj.value.replace(params.uriPrefix, '')) // should have no spaces but in case\n .replace(/ /g, '')\n } else if (obj) {\n /* istanbul ignore next */\n field.value = obj.value || obj.value || ''\n }\n field.setAttribute('style', inputStyle)\n if (!kb.updater) {\n throw new Error('kb has no updater')\n }\n if (!kb.updater.editable((doc as NamedNode).uri)) {\n field.readOnly = true // was: disabled. readOnly is better\n ;(field as any).style = style.textInputStyleUneditable + paramStyle\n if (suppressEmptyUneditable && field.value === '') {\n box.style.display = 'none' // clutter\n }\n return box\n }\n\n // read-write:\n field.addEventListener(\n 'keyup',\n function (_e) {\n if (params.pattern) {\n field.setAttribute(\n 'style',\n inputStyle +\n (field.value.match(params.pattern)\n ? 'color: green;'\n : 'color: red;')\n )\n }\n },\n true\n )\n field.addEventListener(\n 'change',\n function (_e) {\n if (deferWhileFocused && dom.activeElement === field) {\n if (field.dataset) {\n field.dataset.deferredChange = 'true'\n }\n return\n }\n // i.e. lose focus with changed data\n if (params.pattern && !field.value.match(params.pattern)) return\n const disabledForSave = !deferWhileFocused\n if (disabledForSave) {\n field.disabled = true // See if this stops getting two dates from fumbling, e.g., the chrome datepicker.\n }\n field.setAttribute('style', inputStyle + 'color: gray;') // pending\n const ds = kb.statementsMatching(subject, property as any) // remove any multiple values\n let result\n if (params.namedNode) {\n result = kb.sym(field.value)\n } else if (params.uriPrefix) {\n result = encodeURIComponent(field.value.replace(/ /g, ''))\n result = kb.sym(params.uriPrefix + field.value)\n } else {\n if (params.dt) {\n result = new Literal(\n field.value.trim(),\n undefined,\n ns.xsd(params.dt)\n )\n } else {\n result = new Literal(field.value)\n }\n }\n let is = ds.map(statement => st(statement.subject, statement.predicate, result, statement.why)) // can include >1 doc\n if (is.length === 0) {\n // or none\n is = [st(subject, property as any, result, doc)]\n }\n\n function updateMany (ds, is: { why: { uri: string } }[], callback) {\n const docs: any[] = []\n is.forEach(st => {\n if (!docs.includes(st.why.uri)) docs.push(st.why.uri)\n })\n ds.forEach(st => {\n /* istanbul ignore next */\n if (!docs.includes(st.why.uri)) docs.push(st.why.uri)\n })\n /* istanbul ignore next */\n if (docs.length === 0) {\n throw new Error('updateMany has no docs to patch')\n }\n if (!kb.updater) {\n throw new Error('kb has no updater')\n }\n if (docs.length === 1) {\n return kb.updater.update(ds, is as any, callback)\n }\n // return kb.updater.update(ds, is, callback)\n\n const doc = docs.pop()\n const is1 = is.filter(st => st.why.uri === doc)\n const is2 = is.filter(st => st.why.uri !== doc)\n const ds1 = ds.filter(st => st.why.uri === doc)\n const ds2 = ds.filter(st => st.why.uri !== doc)\n kb.updater.update(ds1, is1 as any, function (uri, ok, body) {\n if (ok) {\n updateMany(ds2, is2, callback)\n } else {\n callback(uri, ok, body)\n }\n })\n }\n\n updateMany(ds, is as any, function (uri, ok, body) {\n // kb.updater.update(ds, is, function (uri, ok, body) {\n if (ok) {\n if (disabledForSave) {\n field.disabled = false\n }\n field.setAttribute('style', inputStyle)\n } else {\n box.appendChild(errorMessageBlock(dom, body))\n }\n callbackFunction(ok, body)\n })\n },\n true\n )\n field.addEventListener(\n 'blur',\n function (_e) {\n if (\n deferWhileFocused &&\n field.dataset &&\n field.dataset.deferredChange === 'true'\n ) {\n delete field.dataset.deferredChange\n const event = new Event('change', { bubbles: true })\n field.dispatchEvent(event)\n }\n },\n true\n )\n return box\n}\n"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import e from "../../lib/ns.esm.js";
2
2
  import { label as t } from "../../utils/label.esm.js";
3
+ import { style as n } from "../../lib/style.esm.js";
4
+ import r from "../../lib/styleConstants.esm.js";
3
5
  import "../../utils/index.esm.js";
4
- import n from "../../lib/styleConstants.esm.js";
5
- import { style as r } from "../../lib/style.esm.js";
6
6
  import { errorMessageBlock as i } from "../error.esm.js";
7
- import { fieldParams as a } from "./fieldParams.esm.js";
8
- import { mostSpecificClassURI as o } from "./fieldFunction.esm.js";
7
+ import { mostSpecificClassURI as a } from "./fieldFunction.esm.js";
8
+ import { fieldParams as o } from "./fieldParams.esm.js";
9
9
  import { Literal as s, st as c } from "rdflib";
10
10
  import { solidLogicSingleton as l } from "solid-logic";
11
11
  // src/widgets/forms/basic.ts
@@ -13,9 +13,9 @@ var u = l.store;
13
13
  function d(t, a, o, s, c) {
14
14
  o.style.display = "flex", o.style.flexDirection = "row";
15
15
  let l = o.appendChild(t.createElement("div"));
16
- l.style.width = n.formFieldNameBoxWidth;
16
+ l.style.width = r.formFieldNameBoxWidth;
17
17
  let u = o.appendChild(t.createElement("div"));
18
- return l.setAttribute("class", "formFieldName"), l.setAttribute("style", r.formFieldNameBoxStyle), u.setAttribute("class", "formFieldValue"), c ? l.appendChild(t.createTextNode(c)) : a.any(s, e.ui("property")) ? l.appendChild(f(t, a.any(s, e.ui("property")), s)) : (u.appendChild(i(t, "No property or label given for form field: " + s)), l.appendChild(t.createTextNode("???"))), u;
18
+ return l.setAttribute("class", "formFieldName"), l.setAttribute("style", n.formFieldNameBoxStyle), u.setAttribute("class", "formFieldValue"), c ? l.appendChild(t.createTextNode(c)) : a.any(s, e.ui("property")) ? l.appendChild(f(t, a.any(s, e.ui("property")), s)) : (u.appendChild(i(t, "No property or label given for form field: " + s)), l.appendChild(t.createTextNode("???"))), u;
19
19
  }
20
20
  function f(n, r, i) {
21
21
  let a = u.any(i, e.ui("label"));
@@ -32,14 +32,14 @@ function p(e, t, n) {
32
32
  function m(t, l, f, m, h, g, _) {
33
33
  let v = u, y = h.doc ? h.doc() : null, b = t.createElement("div"), x = v.any(h, e.ui("property"));
34
34
  if (l && l.appendChild(b), !x) return b.appendChild(i(t, "Error: No property given for text field: " + h));
35
- let S = d(t, v, b, h), C = v.anyJS(h, e.ui("suppressEmptyUneditable"), null, y), w = o(h), T = a[w];
35
+ let S = d(t, v, b, h), C = v.anyJS(h, e.ui("suppressEmptyUneditable"), null, y), w = a(h), T = o[w];
36
36
  T === void 0 && (T = { style: "" });
37
- let E = T.style || "", D = r.textInputStyle + E, O = t.createElement("input");
37
+ let E = T.style || "", D = n.textInputStyle + E, O = t.createElement("input");
38
38
  O.style = D, S.appendChild(O), O.setAttribute("type", T.type ? T.type : "text");
39
- let k = (O.getAttribute("type") || "").toLowerCase(), A = k === "date" || k === "datetime-local", j = v.anyJS(h, e.ui("size")) || n.textInputSize || 20;
39
+ let k = (O.getAttribute("type") || "").toLowerCase(), A = k === "date" || k === "datetime-local", j = v.anyJS(h, e.ui("size")) || r.textInputSize || 20;
40
40
  O.setAttribute("size", j);
41
41
  let M = v.any(h, e.ui("maxLength"));
42
- O.setAttribute("maxLength", M ? "" + M : n.basicMaxLength), g ||= p(m, x, g);
42
+ O.setAttribute("maxLength", M ? "" + M : r.basicMaxLength), g ||= p(m, x, g);
43
43
  let N = v.any(m, x, void 0, g);
44
44
  if (N ||= v.any(h, e.ui("default")), N && N.value && T.uriPrefix ? O.value = decodeURIComponent(N.value.replace(T.uriPrefix, "")).replace(/ /g, "") : N &&
45
45
  /* istanbul ignore next */
@@ -83,7 +83,7 @@ function m(t, l, f, m, h, g, _) {
83
83
  let e = new Event("change", { bubbles: !0 });
84
84
  O.dispatchEvent(e);
85
85
  }
86
- }, !0), b) : (O.readOnly = !0, O.style = r.textInputStyleUneditable + E, C && O.value === "" && (b.style.display = "none"), b);
86
+ }, !0), b) : (O.readOnly = !0, O.style = n.textInputStyleUneditable + E, C && O.value === "" && (b.style.display = "none"), b);
87
87
  }
88
88
  export { m as basicField, f as fieldLabel, p as fieldStore, d as renderNameValuePair };
89
89
 
@@ -1,5 +1,5 @@
1
- const e=require("../_virtual/_rolldown/runtime.cjs.js"),t=require("../lib/ns.cjs.js"),n=require("../lib/log.cjs.js"),r=require("../utils/label.cjs.js"),i=require("../utils/index.cjs.js"),a=require("../lib/debug.cjs.js"),o=require("../lib/styleConstants.cjs.js"),s=require("../lib/style.cjs.js"),c=require("./error.cjs.js"),l=require("../lib/iconBase.cjs.js"),u=require("./buttons.cjs.js"),d=require("./forms/fieldParams.cjs.js"),f=require("./forms/fieldFunction.cjs.js"),p=require("./forms/formStyle.cjs.js"),m=require("./forms/basic.cjs.js"),h=require("./forms/autocomplete/autocompleteField.cjs.js"),g=require("./multiSelect.cjs.js");require("./index.cjs.js");let _=require("rdflib");_=e.__toESM(_);let v=require("solid-logic");var y=`✓`,b=`✕`,x=`-`,S=v.store;f.field[t.default.ui(`AutocompleteField`).uri]=h.autocompleteField;function C(e,n,r,i,o,s,c){let l=s.children;for(let u=0;u<c.length;u++){let d=c[u];if(f.mostSpecificClassURI(d)===t.default.ui(`Options`).uri){let t=f.fieldFunction(e,d)(e,null,n,r,d,i,o);a.log(`Refreshing Options field by replacing it.`),s.insertBefore(t,l[u]),s.removeChild(l[u+1])}}}f.field[t.default.ui(`Form`).uri]=f.field[t.default.ui(`Group`).uri]=function(e,n,r,i,a,o,l){let u=e.createElement(`div`),d=t.default.ui;if(n&&n.appendChild(u),!a)return;let p=i.toNT()+`|`+a.toNT();if(r[p])return u.appendChild(e.createTextNode(`Group: see above `+p)),u;let m={};for(let e in r)m[e]=1;m[p]=1;let h=a.doc?a.doc():null,g=S.any(a,d(`weight`),null,h),_=g?Number(g.value):1;if(_>3||_<0)return u.appendChild(c.errorMessageBlock(e,`Form Group weight ${_} should be 0-3`));u.setAttribute(`style`,s.style.formGroupStyle[_]),u.style.display=`flex`,u.style.flexDirection=`column`,u.class=`form-weight-`+_;let v=S.any(a,d(`parts`),null,h),y;if(v?y=v.elements:(v=S.each(a,d(`part`),null,h),y=j(v)),!v)return u.appendChild(c.errorMessageBlock(e,`No parts to form! `));for(let t=0;t<y.length;t++){let n=y[t],a=f.fieldFunction(e,n);u.appendChild(a(e,null,m,i,n,o,function(t,n){t&&n&&n.widget&&n.widget===`select`&&C(e,r,i,o,l,u,y),l(t,{widget:`group`,change:n})}))}return u},f.field[t.default.ui(`Options`).uri]=function(e,n,r,i,a,o,s){let l=v.store,u=e.createElement(`div`),d=a.doc?a.doc():null,f=t.default.ui;n&&n.appendChild(u);let p=l.any(a,f(`dependingOn`));p||=t.default.rdf(`type`);let m=l.each(a,f(`case`),null,d);m||u.appendChild(c.errorMessageBlock(e,`No cases to Options form. `));let h;h=p.sameTerm(t.default.rdf(`type`))?Object.keys(l.findTypeURIs(i)).map(e=>_.sym(e)):l.each(i,p);for(let t=0;t<m.length;t++){let n=m[t],p=l.each(n,f(`for`),null,d),g=!1;for(let e=0;e<p.length;e++)for(let t of h){let n=p[e];(t.sameTerm(p)||t.termType===n.termType&&t.value===n.value)&&(g=!0)}if(g){let t=l.the(n,f(`use`));if(t)D(e,u,r,i,t,o,s);else return u.appendChild(c.errorMessageBlock(e,`No "use" part for case in form `+a)),u;break}}return u},f.field[t.default.ui(`Multiple`).uri]=function(e,o,s,d,p,m,h){function g(e){return e.map(e=>e.toString().slice(-7)).join(`, `)}async function y(){let t=V(m);if(O)L(),F.elements.push(t),await R();else{let n=A?[_.st(t,k,d,m)]:[_.st(d,k,t,m)];try{await S.updater.update([],n)}catch(t){let n=`Error adding to unordered multiple: `+t;w.appendChild(c.errorMessageBlock(e,n)),a.error(n)}z()}}function b(t){async function r(){if(O){a.log(`pre delete: `+g(F.elements));for(let e=0;e<F.elements.length;e++)if(F.elements[e].sameTerm(t)){F.elements.splice(e,1),await R();return}}else if(S.holds(d,k,t,m)){let n=[_.st(d,k,t,m)];S.updater.update(n,[],function(t,n,r){n?P.removeChild(p):P.appendChild(c.errorMessageBlock(e,`Multiple: delete failed: `+r))})}}async function i(e,n){a.log(`pre move: `+g(F.elements));let r=0;for(;r<F.elements.length&&!F.elements[r].sameTerm(t);r++);if(r===F.elements.length&&alert(`list move: not found element for `+t),n){if(r===0){alert(`@@ boop - already at top -temp message`);return}F.elements.splice(r-1,2,F.elements[r],F.elements[r-1])}else{if(r===F.elements.length-1){alert(`@@ boop - already at bottom -temp message`);return}F.elements.splice(r,2,F.elements[r+1],F.elements[r])}await R()}function o(e,n){a.log(`Item done callback for item ${t.toString()}`),e||a.error(` Item done callback: Error: `+n),h(e,n)}n.debug(`Multiple: render object: `+t);let p=f.fieldFunction(e,N)(e,null,s,t,N,m,o);if(p.subject=t,S.updater.editable(m.uri)&&(u.deleteButtonWithCheck(e,p,j,r),O)){let t=e.createElement(`div`);t.style.display=`grid`,t.style.gridTemplateColumns=`auto 3em`,t.style.gridTemplateRows=`50% 50%`;let n=u.button(e,l.icons.iconBase+`noun_1369237.svg`,`Move Up`,async e=>i(e,!0)),r=u.button(e,l.icons.iconBase+`noun_1369241.svg`,`Move Down`,async e=>i(e,!1)),a=e.createElement(`div`);return a.appendChild(p),t.appendChild(a),t.appendChild(n),t.appendChild(r),n.style.gridColumn=2,r.style.gridColumn=2,n.style.gridRow=1,r.style.padding=`0em`,n.style.padding=`0em`,r.style.gridRow=2,a.style.gridColumn=1,a.style.gridRowStart=`span 2`,t}return p}let x=l.icons.iconBase+`noun_19460_green.svg`,S=v.store,C=p.doc?p.doc():null,w=e.createElement(`div`),T=w,E=t.default.ui;o&&o.appendChild(w);let D=S.any(p,E(`ordered`)),O=D?_.Node.toJS(D):!1,k=S.any(p,E(`property`)),A=S.anyJS(p,E(`reverse`),null,C);if(!k)return w.appendChild(c.errorMessageBlock(e,`No property to multiple: `+p)),T;let j=S.any(p,E(`label`));j||=r.label(k);let M=S.any(p,E(`min`));M=M?0+M.value:0;let N=S.any(p,E(`part`));if(!N)return w.appendChild(c.errorMessageBlock(e,`No part to multiple: `+p)),T;let P=w.appendChild(e.createElement(`div`));P.style.display=`flex`,P.style.flexDirection=`column`;let F,I;if(I=A?S.any(null,k,d,m):S.any(d,k,null,m),O?(F=A?S.any(null,k,d,m):S.any(d,k,null,m),I=F?F.elements:[]):(I=A?S.each(null,k,d,m):S.each(d,k,null,m),F=null),S.updater.editable(m.uri)){let t=w.appendChild(e.createElement(`div`));t.style.padding=`0.5em`;let n=t.appendChild(e.createElement(`img`));n.setAttribute(`src`,x),n.setAttribute(`style`,`margin: 0.2em; width: 1.5em; height:1.5em`),n.title=`Click to add another `+j;let r=e.createElement(`span`);r.textContent=(I.length===0?`Add another `:`Add `)+j,t.addEventListener(`click`,async e=>{await y()},!0),t.appendChild(r)}function L(){F||(F=new _.Collection,A?S.add(F,k,d,m):S.add(d,k,F,m))}async function R(){a.log(`save list: `+g(F.elements)),L();try{await S.fetcher.putBack(m)}catch(t){w.appendChild(c.errorMessageBlock(e,`Error trying to put back a list: `+t));return}z()}function z(){let e;if(O){let t=A?S.the(null,k,d,m):S.the(d,k,null,m);e=t?t.elements:[]}else e=A?S.each(null,k,d,m):S.each(d,k,null,m),e.sort();i.syncTableToArrayReOrdered(P,e,b)}P.refresh=z,z();async function B(){let e=M-I.length;if(e>0){for(let t=0;t<e;t++)a.log(`Adding extra: min `+M),await y();await R()}}return B().then(()=>{a.log(` Multiple render: async stuff ok`)},e=>{a.error(` Multiple render: async stuff fails. #### `,e)}),T},f.field[t.default.ui(`PhoneField`).uri]=m.basicField,f.field[t.default.ui(`EmailField`).uri]=m.basicField,f.field[t.default.ui(`ColorField`).uri]=m.basicField,f.field[t.default.ui(`DateField`).uri]=m.basicField,f.field[t.default.ui(`DateTimeField`).uri]=m.basicField,f.field[t.default.ui(`TimeField`).uri]=m.basicField,f.field[t.default.ui(`NumericField`).uri]=m.basicField,f.field[t.default.ui(`IntegerField`).uri]=m.basicField,f.field[t.default.ui(`DecimalField`).uri]=m.basicField,f.field[t.default.ui(`FloatField`).uri]=m.basicField,f.field[t.default.ui(`TextField`).uri]=m.basicField,f.field[t.default.ui(`SingleLineTextField`).uri]=m.basicField,f.field[t.default.ui(`NamedNodeURIField`).uri]=m.basicField,f.field[t.default.ui(`MultiLineTextField`).uri]=function(e,n,r,i,a,s,l){let u=t.default.ui,d=v.store,f=a.doc?a.doc():null,p=d.any(a,u(`property`));if(!p)return c.errorMessageBlock(e,`No property to text field: `+a);let h=e.createElement(`div`);h.style.display=`flex`,h.style.flexDirection=`row`;let g=h.appendChild(e.createElement(`div`));g.style.width=o.default.formFieldNameBoxWidth;let _=h.appendChild(e.createElement(`div`));g.appendChild(m.fieldLabel(e,p,a)),s=m.fieldStore(i,p,s);let y=d.anyJS(i,p,null,s)||``,b=d.updater.editable(s.uri),x=a&&d.anyJS(a,t.default.ui(`suppressEmptyUneditable`),null,f);!b&&x&&y===``&&(h.style.display=`none`);let S=F(e,d,i,p,s,l);return _.appendChild(S),n&&n.appendChild(h),h};function w(e,n,i,a,o,s,l,u){let d=t.default.ui,f=v.store,p=f.any(o,d(`property`));if(!p){let t=c.errorMessageBlock(e,`No property to boolean field: `+o);return n&&n.appendChild(t),t}let h=f.any(o,d(`label`));h||=r.label(p,!0),s=m.fieldStore(a,p,s);let g=f.any(a,p);g===void 0&&(g=!1);let y=_.st(a,p,!0,s),b=_.st(a,p,!1,s),x=B(e,f,h,b,y,o,s,u);return n&&n.appendChild(x),x}f.field[t.default.ui(`BooleanField`).uri]=function(e,t,n,r,i,a,o){return w(e,t,n,r,i,a,o,!1)},f.field[t.default.ui(`TristateField`).uri]=function(e,t,n,r,i,a,o){return w(e,t,n,r,i,a,o,!0)},f.field[t.default.ui(`Classifier`).uri]=function(e,r,i,a,o,l,u){let d=v.store,f=t.default.ui,p=d.any(o,f(`category`));if(!p)return c.errorMessageBlock(e,`No category for classifier: `+o);n.debug(`Classifier: dataDoc=`+l);let h=function(e,t){return u(e||e,t)},g=e.createElement(`div`);g.setAttribute(`class`,`classifierBox`);let _=e.createElement(`div`);_.setAttribute(`class`,`formFieldName classifierBox-label`),_.appendChild(m.fieldLabel(e,p,o)),g.appendChild(_);let y=e.createElement(`div`);y.setAttribute(`class`,`formFieldValue classifierBox-selectBox`);let b=z(e,d,a,p,l,h);if(b&&b.querySelectorAll){let e=b.querySelectorAll(`select`);e.length&&!d.updater.editable(l.uri)&&e.forEach(e=>{e.readOnly=!0,e.style=s.style.textInputStyleUneditable})}return y.appendChild(b),g.appendChild(y),r&&r.appendChild(g),g},f.field[t.default.ui(`Choice`).uri]=function(e,n,r,i,a,o,s){let l=t.default.ui,d=v.store,f=a.doc?a.doc():null,p,h=e.createElement(`div`);h.setAttribute(`class`,`choiceBox`),n&&n.appendChild(h);let y=e.createElement(`div`);y.setAttribute(`class`,`formFieldName choiceBox-label`),h.appendChild(y);let b=e.createElement(`div`);b.setAttribute(`class`,`formFieldValue choiceBox-selectBox`),h.appendChild(b);let x=d.any(a,l(`property`));if(!x)return h.appendChild(c.errorMessageBlock(e,`No property for Choice: `+a));y.appendChild(m.fieldLabel(e,x,a));let S=d.any(a,l(`from`));if(!S)return c.errorMessageBlock(e,`No 'from' for Choice: `+a);let C=d.any(a,l(`use`)),w={form:a,subForm:C,disambiguate:!1};function E(e){let n=[],r;n=d.each(void 0,t.default.rdf(`type`),S,f);for(let t in W(d,S,e))n.push(d.fromNT(t));if(S.sameTerm(t.default.rdfs(`Class`)))for(p in u.allClassURIs())n.push(d.sym(p));else if(S.sameTerm(t.default.rdf(`Property`))){for(p in r=u.propertyTriage(d),r.op)n.push(d.fromNT(p));for(p in r.dp)n.push(d.fromNT(p));w.disambiguate=!0}else if(S.sameTerm(t.default.owl(`ObjectProperty`))){for(p in r=u.propertyTriage(d),r.op)n.push(d.fromNT(p));w.disambiguate=!0}else if(S.sameTerm(t.default.owl(`DatatypeProperty`))){for(p in r=u.propertyTriage(d),r.dp)n.push(d.fromNT(p));w.disambiguate=!0}return n}d.any(a,l(`canMintNew`))&&(w.mint=`* Create new *`);let D=d.any(a,l(`multiselect`));D&&(w.multiSelect=!0);let O=d.each(a,l(`search-full-store`)).length?null:o,k;return b.refresh=function(){let n=d.each(i,x,null,o).map(e=>e.value),r=E(O);if(r.push(n),r=M(r),k=H(e,b,d,i,x,r,n,S,w,o,s),b.innerHTML=``,b.appendChild(k),D){let r=new g.IconicMultiSelect({placeholder:k.selected,select:k,container:b,textField:`textField`,valueField:`valueField`});r.init(),r.subscribe(function(r){if(r.action===`REMOVE_OPTION`&&(n=n.filter(function(e){return e!==r.value})),r.action===`CLEAR_ALL_OPTIONS`&&(n=[]),r.action===`ADD_OPTION`){if((r.value+``).includes(`Create new`)){let r=V(o),a=[];a.push(_.st(i,x,d.sym(r),o)),S&&a.push(_.st(r,t.default.rdf(`type`),d.sym(S),o)),C&&T(e,b,{},_.sym(r),C,o,function(t,i){t?(d.updater.update([],a,function(t,n,r){n||b.appendChild(c.errorMessageBlock(e,`Error updating select: `+r))}),n.push(r),s&&s(t,{widget:`select`,event:`new`})):b.appendChild(c.errorMessageBlock(e,`Error updating data in field of select: `+i))})}else n.push(r.value)}k.update(n)})}},b.refresh(),k&&k.refresh&&k.refresh(),h};function T(e,t,n,r,i,a,o){f.fieldFunction(e,i)(e,t,n,r,i,a,o)}f.field[t.default.ui(`Comment`).uri]=f.field[t.default.ui(`Heading`).uri]=function(e,n,r,i,a,o,s){let c=t.default.ui,l=v.store,u=l.any(a,c(`contents`));u||=`Error: No contents in comment field.`;let m=a.doc?a.doc():null,h=f.mostSpecificClassURI(a),g=d.fieldParams[h]||{},_=e.createElement(`div`);n&&n.appendChild(_);let y=_.appendChild(e.createElement(g.element));y.textContent=u,p.setFieldStyle(y,a);let b=l.anyJS(a,t.default.ui(`suppressIfUneditable`),null,m),x=l.updater.editable(o.uri);return b&&!x&&(_.style.display=`none`),_};function E(e,n,i,a,o){let s=e.createElement(`button`);return s.setAttribute(`type`,`button`),s.innerHTML=`Edit `+r.label(t.default.ui(`Form`)),s.addEventListener(`click`,function(r){D(e,n,{},i,t.default.ui(`FormForm`),a,o).setAttribute(`style`,t.default.ui(`FormForm`).sameTerm(i)?`background-color: #fee;`:`background-color: #ffffe7;`),s.parentNode.removeChild(s)},!0),s}function D(e,t,n,r,i,a,o){return f.fieldFunction(e,i)(e,t,n,r,i,a,o)}function O(e,n){let r=e.each(void 0,t.default.rdf(`range`),n);[t.default.rdfs(`comment`),t.default.dc(`title`),t.default.foaf(`name`),t.default.foaf(`homepage`)].forEach(function(e){r.push(e)});let i=e.each(void 0,t.default.rdf(`type`),n);i.length>60&&(i=i.slice(0,60));let a={};for(let t=0;t<(i.length>60?60:i.length);t++)e.statementsMatching(i[t],void 0,void 0).forEach(function(e){a[e.predicate.uri]=!0});r.forEach(function(e){a[e.uri]=!0});let o=[];for(let t in a)o.push(e.sym(t));return o}function k(e,r,i){let a=[e.sym(r)];for(;a.length>0;){let r=a.shift(),o=e.each(r,i);if(n.debug(`Lists for `+r+`, `+i+`: `+o.length),o.length!==0)return o;let s=e.each(r,t.default.rdfs(`subClassOf`));for(let e=0;e<s.length;e++)a.push(s[e]),n.debug(`findClosest: add super: `+s[e])}return[]}function A(e){let r=v.store;n.debug(`formsFor: subject=`+e);let i=r.findTypeURIs(e),a;for(a in i)n.debug(` type: `+a);let o=r.bottomTypeURIs(i),s=[];for(let e in o)n.debug(`candidatesFor: trying bottom type =`+e),s=s.concat(k(r,e,t.default.ui(`creationForm`))),s=s.concat(k(r,e,t.default.ui(`annotationForm`)));return s}function j(e){let n=e.map(function(e){return[S.any(e,t.default.ui(`sequence`))||9999,e]});return n.sort(function(e,t){return e[0]-t[0]}),n.map(function(e){return e[1]})}function M(e){let t=e.map(function(e){return[r.label(e).toLowerCase(),e]});return t.sort(),t.map(function(e){return e[1]})}function N(e,t,n,i,a,o,s,c){let l=e.createElement(`button`);return l.setAttribute(`type`,`button`),l.innerHTML=`New `+r.label(a),l.addEventListener(`click`,function(r){l.parentNode.appendChild(P(e,t,n,i,a,o,s,c))},!1),l}function P(e,i,a,s,c,l,d,p){let m=e.createElement(`form`);if(!l){let a=k(i,c.uri,t.default.ui(`creationForm`));if(a.length===0){let t=m.appendChild(e.createElement(`p`));t.textContent=`I am sorry, you need to provide information about a `+r.label(c)+` but I don't know enough information about those to ask you.`;let n=m.appendChild(e.createElement(`button`));return n.setAttribute(`type`,`button`),n.setAttribute(`style`,`float: right;`),n.innerHTML=`Goto `+r.label(c),n.addEventListener(`click`,function(t){e.outlineManager.GotoSubject(c,!0,void 0,!0,void 0)},!1),m}n.debug(`lists[0] is `+a[0]),l=a[0]}n.debug(`form is `+l),m.setAttribute(`style`,`border: 0.05em solid ${o.default.formBorderColor}; color: ${o.default.formBorderColor}`),m.innerHTML=`<h3>New `+r.label(c)+`</h3>`;let h=f.fieldFunction(e,l),g=V(d),v=!1,y=function(n,r){if(!n)return p(n,r);let o=[];a&&!i.holds(a,s,g,d)&&o.push(_.st(a,s,g,d)),a&&!i.holds(g,t.default.rdf(`type`),c,d)&&o.push(_.st(g,t.default.rdf(`type`),c,d)),o.length?i.updater.update([],o,b):p(!0,r),v||=m.appendChild(u.linkButton(e,g))};function b(e,t,n){return p(t,n)}n.info(`paneUtils Object is `+g);let x=h(e,m,{},g,l,d,y);return u.removeButton(e,x).setAttribute(`style`,`float: right;`),m.AJAR_subject=g,m}function F(e,t,n,r,i,a){let l=e.createElement(`div`),d=t.anyJS(n,r,null,i)||``,f=e.createElement(`textarea`);l.appendChild(f),f.rows=d?d.split(`
2
- `).length+2:2,f.cols=80,f.setAttribute(`style`,s.style.multilineTextInputStyle),d===null?f.select():f.value=d,l.refresh=function(){let e=t.any(n,r,null,i);e&&e.value!==f.value&&(f.value=e.value)};function p(s){h.disabled=!0,h.setAttribute(`style`,`visibility: hidden; float: right;`),f.disabled=!0,f.style.color=o.default.textInputColorPending;let u=t.statementsMatching(n,r,null,i),d=_.st(n,r,f.value,i);t.updater.update(u,d,function(t,n,r){n?(f.style.color=o.default.textInputColor,f.disabled=!1):l.appendChild(c.errorMessageBlock(e,`Error (while saving change to `+i.uri+`): `+r)),a&&a(n,r)})}let m=t.updater.editable(i.uri),h;return m?(h=u.continueButton(e,p),h.disabled=!0,h.style.visibility=`hidden`,h.style.float=`right`,l.appendChild(h),f.addEventListener(`keyup`,function(e){f.style.color=`green`,h&&(h.disabled=!1,h.style.visibility=``)},!0),f.addEventListener(`change`,p,!0)):(f.disabled=!0,f.style.backgroundColor=o.default.textInputBackgroundColorUneditable),l}function I(e,o,l,u,d,p,m,h){n.debug(`Select list length now `+d.length);let g=0,v={},y=o.updater.editable(m.uri);for(let e=0;e<d.length;e++){let t=d[e];t.uri||a.warn(`makeSelectForClassifierOptions: option does not have an uri: ${t}, with predicate: ${u}`),!(!t.uri||t.uri in v)&&(v[t.uri]=!0,g++)}if(g===0&&!p.mint)return c.errorMessageBlock(e,`Can't do selector with no options, subject= `+l+` property = `+u+`.`);n.debug(`makeSelectForClassifierOptions: dataDoc=`+m);let b,x=function(){return b={},u.sameTerm(t.default.rdf(`type`))?b=o.findTypeURIs(l):o.each(l,u,null,m).forEach(function(e){b[e.uri]=!0}),b};b=x();let S=function(t){C.disabled=!0;let r=[],i=[],a=function(e){o.holds(l,u,e,m)&&r.push(_.st(l,u,e,m))},s;for(let t=0;t<C.options.length;t++){let n=C.options[t];if(n.selected&&n.AJAR_mint){if(p.mintClass){let t=P(e,o,l,u,p.mintClass,null,m,function(e,t){e||h(e,t,{change:`new`})});C.parentNode.appendChild(t),s=t.AJAR_subject}else s=V(m);i.push(_.st(l,u,s,m)),p.mintStatementsFun&&(i=i.concat(p.mintStatementsFun(s)))}n.AJAR_uri&&(n.selected&&!(n.AJAR_uri in b)&&i.push(_.st(l,u,o.sym(n.AJAR_uri),m)),!n.selected&&n.AJAR_uri in b&&a(o.sym(n.AJAR_uri)),n.selected&&(C.currentURI=n.AJAR_uri))}let d=C.subSelect;for(;d&&d.currentURI;)a(o.sym(d.currentURI)),d=d.subSelect;for(d=C.superSelect;d&&d.currentURI;)a(o.sym(d.currentURI)),d=d.superSelect;function g(e,t){h(e,{widget:`select`,event:`new`})}n.info(`makeSelectForClassifierOptions: data doc = `+m),o.updater.update(r,i,function(t,n,r){if(b=x(),n)C.disabled=!1,s&&f.fieldFunction(e,p.subForm)(e,C.parentNode,{},s,p.subForm,m,g);else return C.parentNode.appendChild(c.errorMessageBlock(e,`Error updating data in select: `+r));h&&h(n,{widget:`select`,event:`change`})})},C=e.createElement(`select`);C.setAttribute(`style`,s.style.formSelectStyle),p.multiple&&C.setAttribute(`multiple`,`true`),C.currentURI=null,C.refresh=function(){b=x();for(let e=0;e<C.children.length;e++){let t=C.children[e];t.AJAR_uri&&(t.selected=t.AJAR_uri in b)}C.disabled=!1};for(let t in v){let n=o.sym(t),a=e.createElement(`option`);p.disambiguate?a.appendChild(e.createTextNode(i.labelWithOntology(n,!0))):a.appendChild(e.createTextNode(r.label(n,!0)));let s=o.any(n,o.sym(`http://www.w3.org/ns/ui#backgroundColor`));s&&a.setAttribute(`style`,`background-color: `+s.value+`; `),a.AJAR_uri=t,t in b&&(a.setAttribute(`selected`,`true`),C.currentURI=t),C.appendChild(a)}if(y&&p.mint){let t=e.createElement(`option`);t.appendChild(e.createTextNode(p.mint)),t.AJAR_mint=!0,C.insertBefore(t,C.firstChild)}if(C.currentURI==null&&!p.multiple){let t=e.createElement(`option`);t.appendChild(e.createTextNode(p.nullLabel)),C.insertBefore(t,C.firstChild),t.selected=!0}return y&&C.addEventListener(`change`,S,!1),C}function L(e,o,l,u,d,f,p,m){n.debug(`Select list length now `+d.length);let h=0,g={},v=o.updater.editable(p.uri);for(let e=0;e<d.length;e++){let t=d[e];t.uri||a.warn(`makeSelectForOptions: option does not have an uri: ${t}, with predicate: ${u}`),!(!t.uri||t.uri in g)&&(g[t.uri]=!0,h++)}if(h===0)return c.errorMessageBlock(e,`Can't do selector with no options, subject= `+l+` property = `+u+`.`);n.debug(`makeSelectForOptions: dataDoc=`+p);let y,b=function(){return y={},u.sameTerm(t.default.rdf(`type`))?y=o.findTypeURIs(l):o.each(l,u,null,p).forEach(function(e){e.uri&&(y[e.uri]=!0)}),y};y=b();let x=function(t){S.disabled=!0;let r=[],i=[],a=function(e){o.holds(l,u,e,p)&&r.push(_.st(l,u,e,p))};for(let e=0;e<S.options.length;e++){let t=S.options[e];t.AJAR_uri&&(t.selected&&!(t.AJAR_uri in y)&&i.push(_.st(l,u,o.sym(t.AJAR_uri),p)),!t.selected&&t.AJAR_uri in y&&a(o.sym(t.AJAR_uri)),t.selected&&(S.currentURI=t.AJAR_uri))}let s=S.subSelect;for(;s&&s.currentURI;)a(o.sym(s.currentURI)),s=s.subSelect;for(s=S.superSelect;s&&s.currentURI;)a(o.sym(s.currentURI)),s=s.superSelect;n.info(`selectForOptions: data doc = `+p),o.updater.update(r,i,function(t,n,r){if(y=b(),n)S.disabled=!1;else return S.parentNode.appendChild(c.errorMessageBlock(e,`Error updating data in select: `+r));m&&m(n,{widget:`select`,event:`change`})})},S=e.createElement(`select`);S.setAttribute(`style`,s.style.formSelectStyle),S.currentURI=null,S.refresh=function(){y=b();for(let e=0;e<S.children.length;e++){let t=S.children[e];t.AJAR_uri&&(t.selected=t.AJAR_uri in y)}S.disabled=!1};for(let t in g){let n=o.sym(t),a=e.createElement(`option`);f.disambiguate?a.appendChild(e.createTextNode(i.labelWithOntology(n,!0))):a.appendChild(e.createTextNode(r.label(n,!0)));let s=o.any(n,o.sym(`http://www.w3.org/ns/ui#backgroundColor`));s&&a.setAttribute(`style`,`background-color: `+s.value+`; `),a.AJAR_uri=t,t in y&&(a.setAttribute(`selected`,`true`),S.currentURI=t),S.appendChild(a)}if(!S.currentURI){let t=e.createElement(`option`);t.appendChild(e.createTextNode(f.nullLabel)),S.insertBefore(t,S.firstChild),t.selected=!0}return v&&S.addEventListener(`change`,x,!1),S}function R(e,r,i,a,o,s){let l=r.any(a,t.default.owl(`disjointUnionOf`)),u,d=!1;return l?u=l.elements:(u=r.each(void 0,t.default.rdfs(`subClassOf`),a),d=!0),n.debug(`Select list length `+u.length),u.length===0?c.errorMessageBlock(e,`Can't do `+(d?`multiple `:``)+`selector with no subclasses of category: `+a):u.length===1?c.errorMessageBlock(e,`Can't do `+(d?`multiple `:``)+`selector with only 1 subclass of category: `+a+`:`+u[1]):I(e,r,i,t.default.rdf(`type`),u,{multiple:d,nullLabel:`* Select type *`},o,s)}function z(e,n,r,i,a,o){function s(){l&&=(c.removeChild(l),null),d.currentURI&&n.any(n.sym(d.currentURI),t.default.owl(`disjointUnionOf`))&&(l=z(e,n,r,n.sym(d.currentURI),a,o),d.subSelect=l.firstChild,d.subSelect.superSelect=d,c.appendChild(l))}let c=e.createElement(`span`),l=null;function u(e,t){e&&s(),o(e,t)}let d=R(e,n,r,i,a,u);return c.appendChild(d),s(),c}function B(e,n,r,i,o,l,u,d){let f=e.createElement(`div`),p=m.renderNameValuePair(e,n,f,l,r),h=n.updater.editable(u.uri),g=e.createElement(`button`),_=g;g.style=s.style.checkboxInputStyle,p.appendChild(g);function v(e){if(!e)return[];if(e.object)return e.why||=u,[e];if(e instanceof Array)return e;throw Error(`buildCheckboxForm: bad param `+e)}o=v(o),i=v(i);function S(e){return e.filter(e=>!n.holds(e.subject,e.predicate,e.object,e.why)).length===0}function C(){let r=S(o),a=r;if(i.length){let s=S(i);if(r&&s)return f.appendChild(c.errorMessageBlock(e,`Inconsistent data in dataDoc!
3
- `+o+` and
4
- `+i)),f;if(!r&&!s){r=null;let e=n.any(l,t.default.ui(`default`));a=e?e.value===`1`:d?null:!1}}g.state=r,g.textContent={true:y,false:d?b:` `,null:x}[a]}if(C(),!h)return f;let w=!1;return g.addEventListener(`click`,function(t){if(w)return;w=!0,g.disabled=!0;let r=!1,s=function(){return!r&&(r=!0,w=!1,g.disabled=!1,!0)},l=function(t){_.style.color=`#000`,_.style.backgroundColor=`#fee`,f.appendChild(c.errorMessageBlock(e,`Checkbox: Error updating dataDoc from ${g.state} to ${g.newState}:\n\n${t}`))};_.style.color=`#bbb`;let u=g.state===!0?o:g.state===!1?i:[];g.newState=g.state===null?!0:g.state===!0?!1:!d||null;let p=g.newState===!0?o:g.newState===!1?i:[];a.log(` Deleting ${u}`),a.log(` Inserting ${p}`);try{let e=n.updater.update(u,p,function(e,t,r){s()&&(t?(_.style.color=`#000`,g.state=g.newState,g.textContent={true:y,false:b,null:x}[g.state]):(u.why&&n.holds(u.subject,u.predicate,u.object,u.why)&&a.log(` @@@@@ weird if 409 - does hold statement`),l(r)))});e&&typeof e.then==`function`&&e.catch(function(e){s()&&l(e instanceof Error?e.message:e)}).finally(function(){s()})}catch(e){throw s(),e}},!1),f}function V(e){let t=new Date;return _.sym(e.uri+`#id`+(``+t.getTime()))}function H(e,a,o,l,u,d,f,p,m,h,g){let v={},y=o.updater.editable(h.uri);for(let e=0;e<d.length;e++){let t=d[e];!t.uri||t.uri in v||(v[t.uri]=!0)}if(Object.keys(v).length===0&&!m.mint)return c.errorMessageBlock(e,`Can't do selector with no options, subject= `+l+` property = `+u+`.`);n.debug(`makeSelectForChoice: dataDoc=`+h);function b(){let e=`--- choice ---`;return u&&u.termType!==`BlankNode`&&(e=`* Select for property: `+r.label(u)+` *`),l&&l.termType!==`BlankNode`&&(e=`* Select for `+r.label(l,!0)+` *`),e}function x(){let t=e.createElement(`option`);return t.appendChild(e.createTextNode(b())),t.disabled=!0,t.value=!0,t.hidden=!0,t.selected=!0,t}let S=function(e){a.removeChild(a.lastChild),C.refresh()},C=e.createElement(`select`);C.setAttribute(`style`,s.style.formSelectStyle),C.setAttribute(`id`,`formSelect`),C.currentURI=null;for(let e in v)C.appendChild(w(e));if(y&&m.mint){let t=e.createElement(`option`);t.appendChild(e.createTextNode(m.mint)),t.AJAR_mint=!0,C.insertBefore(t,C.firstChild)}C.children.length===0&&C.insertBefore(x(),C.firstChild),C.update=function(n){f=n;let r=[],i=[],a=function(e){o.holds(l,u,e,h)&&r.push(_.st(l,u,e,h))},s=function(e){o.holds(l,u,e,h)||i.push(_.st(l,u,e,h)),p&&!o.holds(e,t.default.rdf(`type`),o.sym(p),h)&&i.push(_.st(e,t.default.rdf(`type`),o.sym(p),h))},d=o.each(l,u,null,h).map(e=>e.value);for(let e of d)U(e,f)||a(_.sym(e));for(let e of f)e in d||s(_.sym(e));o.updater.update(r,i,function(t,n,r){if(!n)return C.parentNode.appendChild(c.errorMessageBlock(e,`Error updating data in select: `+r));C.refresh(),g&&g(n,{widget:`select`,event:`change`})})},C.refresh=function(){C.disabled=!0;let r=[],i;for(let n=0;n<C.options.length;n++){let a=C.options[n];if(a.selected&&a.AJAR_mint){if(m.mintClass){let t=P(e,o,l,u,p,m.subForm,h,function(e,t){e||g(e,t,{change:`new`})});C.parentNode.appendChild(t),i=t.AJAR_subject}else i=V(h);r.push(_.st(l,u,o.sym(i),h)),p&&r.push(_.st(i,t.default.rdf(`type`),o.sym(p),h)),m.mintStatementsFun&&(r=r.concat(m.mintStatementsFun(i))),C.currentURI=i}a.AJAR_uri&&(a.selected&&U(a.AJAR_uri,f)&&(C.currentURI=a.AJAR_uri),U(a.AJAR_uri,f)||a.removeAttribute(`selected`),U(a.AJAR_uri,f)&&a.setAttribute(`selected`,`true`))}n.info(`selectForOptions: data doc = `+h),C.currentURI&&m.subForm&&!m.multiSelect&&T(e,a,{},_.sym(C.currentURI),m.subForm,h,function(t,n){t?(o.updater.update([],r,function(t,n,r){n||a.appendChild(c.errorMessageBlock(e,`Error updating select: `+r))}),g&&g(t,{widget:`select`,event:`new`})):a.appendChild(c.errorMessageBlock(e,`Error updating data in field of select: `+n))}),C.disabled=!1};function w(t){let n=e.createElement(`option`),a=o.sym(t),s;s=m.disambiguate?i.labelWithOntology(a,!0):r.label(a,!0),n.appendChild(e.createTextNode(s)),n.setAttribute(`value`,t);let c=o.any(a,o.sym(`http://www.w3.org/ns/ui#backgroundColor`));return c&&n.setAttribute(`style`,`background-color: `+c.value+`; `),n.AJAR_uri=t,U(a.value,f)&&n.setAttribute(`selected`,`true`),n}return y&&C.addEventListener(`change`,S,!1),C}function U(e,t){let n=0;for(;n<t.length;n++)if(t[n]===e)return!0;return!1}function W(e,t,n){let r,i,a,o,s,c,l,u,d,f,p,m={};m[t.toNT()]=!0;let h={},g=e.transitiveClosure(m,e.rdfFactory.namedNode(`http://www.w3.org/2000/01/rdf-schema#subClassOf`),!0);for(let t in g){s=e.statementsMatching(null,e.rdfFactory.namedNode(`http://www.w3.org/1999/02/22-rdf-syntax-ns#type`),e.fromNT(t),n);for(let e=0,t=s.length;e<t;e++)f=s[e],h[f.subject.toNT()]=f;c=e.each(null,e.rdfFactory.namedNode(`http://www.w3.org/2000/01/rdf-schema#domain`),e.fromNT(t),n);for(let t=0,i=c.length;t<i;t++)for(o=c[t],l=e.statementsMatching(null,o,null,n),a=0,r=l.length;a<r;a++)f=l[a],h[f.subject.toNT()]=f;u=e.each(null,e.rdfFactory.namedNode(`http://www.w3.org/2000/01/rdf-schema#range`),e.fromNT(t),n);for(let t=0,r=u.length;t<r;t++)for(o=u[t],d=e.statementsMatching(null,o,null,n),p=0,i=d.length;p<i;p++)f=d[p],h[f.object.toNT()]=f}return h}exports.appendForm=D,exports.basicField=m.basicField,exports.buildCheckboxForm=B,exports.editFormButton=E,exports.field=f.field,exports.fieldFunction=f.fieldFunction,exports.fieldLabel=m.fieldLabel,exports.fieldParams=d.fieldParams,exports.fieldStore=m.fieldStore,exports.findClosest=k,exports.formsFor=A,exports.makeDescription=F,exports.makeSelectForCategory=R,exports.makeSelectForChoice=H,exports.makeSelectForClassifierOptions=I,exports.makeSelectForNestedCategory=z,exports.makeSelectForOptions=L,exports.mostSpecificClassURI=f.mostSpecificClassURI,exports.newButton=N,exports.newThing=V,exports.promptForNew=P,exports.propertiesForClass=O,exports.renderNameValuePair=m.renderNameValuePair,exports.sortByLabel=M,exports.sortBySequence=j;
1
+ const e=require("../_virtual/_rolldown/runtime.cjs.js"),t=require("./buttons.cjs.js"),n=require("./forms/fieldParams.cjs.js"),r=require("../utils/label.cjs.js"),i=require("./forms/fieldFunction.cjs.js"),a=require("./forms/formStyle.cjs.js"),o=require("../lib/debug.cjs.js"),s=require("./error.cjs.js"),c=require("./forms/basic.cjs.js"),l=require("./forms/autocomplete/autocompleteField.cjs.js"),u=require("../lib/style.cjs.js"),d=require("../lib/styleConstants.cjs.js"),f=require("../lib/iconBase.cjs.js"),p=require("../lib/log.cjs.js"),m=require("../lib/ns.cjs.js"),h=require("../utils/index.cjs.js"),g=require("./multiSelect.cjs.js");require("./index.cjs.js");let _=require("rdflib");_=e.__toESM(_);let v=require("solid-logic");var y=`✓`,b=`✕`,x=`-`,S=v.store;i.field[m.default.ui(`AutocompleteField`).uri]=l.autocompleteField;function C(e,t,n,r,a,s,c){let l=s.children;for(let u=0;u<c.length;u++){let d=c[u];if(i.mostSpecificClassURI(d)===m.default.ui(`Options`).uri){let c=i.fieldFunction(e,d)(e,null,t,n,d,r,a);o.log(`Refreshing Options field by replacing it.`),s.insertBefore(c,l[u]),s.removeChild(l[u+1])}}}i.field[m.default.ui(`Form`).uri]=i.field[m.default.ui(`Group`).uri]=function(e,t,n,r,a,o,c){let l=e.createElement(`div`),d=m.default.ui;if(t&&t.appendChild(l),!a)return;let f=r.toNT()+`|`+a.toNT();if(n[f])return l.appendChild(e.createTextNode(`Group: see above `+f)),l;let p={};for(let e in n)p[e]=1;p[f]=1;let h=a.doc?a.doc():null,g=S.any(a,d(`weight`),null,h),_=g?Number(g.value):1;if(_>3||_<0)return l.appendChild(s.errorMessageBlock(e,`Form Group weight ${_} should be 0-3`));l.setAttribute(`style`,u.style.formGroupStyle[_]),l.style.display=`flex`,l.style.flexDirection=`column`,l.class=`form-weight-`+_;let v=S.any(a,d(`parts`),null,h),y;if(v?y=v.elements:(v=S.each(a,d(`part`),null,h),y=j(v)),!v)return l.appendChild(s.errorMessageBlock(e,`No parts to form! `));for(let t=0;t<y.length;t++){let a=y[t],s=i.fieldFunction(e,a);l.appendChild(s(e,null,p,r,a,o,function(t,i){t&&i&&i.widget&&i.widget===`select`&&C(e,n,r,o,c,l,y),c(t,{widget:`group`,change:i})}))}return l},i.field[m.default.ui(`Options`).uri]=function(e,t,n,r,i,a,o){let c=v.store,l=e.createElement(`div`),u=i.doc?i.doc():null,d=m.default.ui;t&&t.appendChild(l);let f=c.any(i,d(`dependingOn`));f||=m.default.rdf(`type`);let p=c.each(i,d(`case`),null,u);p||l.appendChild(s.errorMessageBlock(e,`No cases to Options form. `));let h;h=f.sameTerm(m.default.rdf(`type`))?Object.keys(c.findTypeURIs(r)).map(e=>_.sym(e)):c.each(r,f);for(let t=0;t<p.length;t++){let f=p[t],m=c.each(f,d(`for`),null,u),g=!1;for(let e=0;e<m.length;e++)for(let t of h){let n=m[e];(t.sameTerm(m)||t.termType===n.termType&&t.value===n.value)&&(g=!0)}if(g){let t=c.the(f,d(`use`));if(t)D(e,l,n,r,t,a,o);else return l.appendChild(s.errorMessageBlock(e,`No "use" part for case in form `+i)),l;break}}return l},i.field[m.default.ui(`Multiple`).uri]=function(e,n,a,c,l,u,d){function g(e){return e.map(e=>e.toString().slice(-7)).join(`, `)}async function y(){let t=V(u);if(O)L(),F.elements.push(t),await R();else{let n=A?[_.st(t,k,c,u)]:[_.st(c,k,t,u)];try{await S.updater.update([],n)}catch(t){let n=`Error adding to unordered multiple: `+t;w.appendChild(s.errorMessageBlock(e,n)),o.error(n)}z()}}function b(n){async function r(){if(O){o.log(`pre delete: `+g(F.elements));for(let e=0;e<F.elements.length;e++)if(F.elements[e].sameTerm(n)){F.elements.splice(e,1),await R();return}}else if(S.holds(c,k,n,u)){let t=[_.st(c,k,n,u)];S.updater.update(t,[],function(t,n,r){n?P.removeChild(h):P.appendChild(s.errorMessageBlock(e,`Multiple: delete failed: `+r))})}}async function l(e,t){o.log(`pre move: `+g(F.elements));let r=0;for(;r<F.elements.length&&!F.elements[r].sameTerm(n);r++);if(r===F.elements.length&&alert(`list move: not found element for `+n),t){if(r===0){alert(`@@ boop - already at top -temp message`);return}F.elements.splice(r-1,2,F.elements[r],F.elements[r-1])}else{if(r===F.elements.length-1){alert(`@@ boop - already at bottom -temp message`);return}F.elements.splice(r,2,F.elements[r+1],F.elements[r])}await R()}function m(e,t){o.log(`Item done callback for item ${n.toString()}`),e||o.error(` Item done callback: Error: `+t),d(e,t)}p.debug(`Multiple: render object: `+n);let h=i.fieldFunction(e,N)(e,null,a,n,N,u,m);if(h.subject=n,S.updater.editable(u.uri)&&(t.deleteButtonWithCheck(e,h,j,r),O)){let n=e.createElement(`div`);n.style.display=`grid`,n.style.gridTemplateColumns=`auto 3em`,n.style.gridTemplateRows=`50% 50%`;let r=t.button(e,f.icons.iconBase+`noun_1369237.svg`,`Move Up`,async e=>l(e,!0)),i=t.button(e,f.icons.iconBase+`noun_1369241.svg`,`Move Down`,async e=>l(e,!1)),a=e.createElement(`div`);return a.appendChild(h),n.appendChild(a),n.appendChild(r),n.appendChild(i),r.style.gridColumn=2,i.style.gridColumn=2,r.style.gridRow=1,i.style.padding=`0em`,r.style.padding=`0em`,i.style.gridRow=2,a.style.gridColumn=1,a.style.gridRowStart=`span 2`,n}return h}let x=f.icons.iconBase+`noun_19460_green.svg`,S=v.store,C=l.doc?l.doc():null,w=e.createElement(`div`),T=w,E=m.default.ui;n&&n.appendChild(w);let D=S.any(l,E(`ordered`)),O=D?_.Node.toJS(D):!1,k=S.any(l,E(`property`)),A=S.anyJS(l,E(`reverse`),null,C);if(!k)return w.appendChild(s.errorMessageBlock(e,`No property to multiple: `+l)),T;let j=S.any(l,E(`label`));j||=r.label(k);let M=S.any(l,E(`min`));M=M?0+M.value:0;let N=S.any(l,E(`part`));if(!N)return w.appendChild(s.errorMessageBlock(e,`No part to multiple: `+l)),T;let P=w.appendChild(e.createElement(`div`));P.style.display=`flex`,P.style.flexDirection=`column`;let F,I;if(I=A?S.any(null,k,c,u):S.any(c,k,null,u),O?(F=A?S.any(null,k,c,u):S.any(c,k,null,u),I=F?F.elements:[]):(I=A?S.each(null,k,c,u):S.each(c,k,null,u),F=null),S.updater.editable(u.uri)){let t=w.appendChild(e.createElement(`div`));t.style.padding=`0.5em`;let n=t.appendChild(e.createElement(`img`));n.setAttribute(`src`,x),n.setAttribute(`style`,`margin: 0.2em; width: 1.5em; height:1.5em`),n.title=`Click to add another `+j;let r=e.createElement(`span`);r.textContent=(I.length===0?`Add another `:`Add `)+j,t.addEventListener(`click`,async e=>{await y()},!0),t.appendChild(r)}function L(){F||(F=new _.Collection,A?S.add(F,k,c,u):S.add(c,k,F,u))}async function R(){o.log(`save list: `+g(F.elements)),L();try{await S.fetcher.putBack(u)}catch(t){w.appendChild(s.errorMessageBlock(e,`Error trying to put back a list: `+t));return}z()}function z(){let e;if(O){let t=A?S.the(null,k,c,u):S.the(c,k,null,u);e=t?t.elements:[]}else e=A?S.each(null,k,c,u):S.each(c,k,null,u),e.sort();h.syncTableToArrayReOrdered(P,e,b)}P.refresh=z,z();async function B(){let e=M-I.length;if(e>0){for(let t=0;t<e;t++)o.log(`Adding extra: min `+M),await y();await R()}}return B().then(()=>{o.log(` Multiple render: async stuff ok`)},e=>{o.error(` Multiple render: async stuff fails. #### `,e)}),T},i.field[m.default.ui(`PhoneField`).uri]=c.basicField,i.field[m.default.ui(`EmailField`).uri]=c.basicField,i.field[m.default.ui(`ColorField`).uri]=c.basicField,i.field[m.default.ui(`DateField`).uri]=c.basicField,i.field[m.default.ui(`DateTimeField`).uri]=c.basicField,i.field[m.default.ui(`TimeField`).uri]=c.basicField,i.field[m.default.ui(`NumericField`).uri]=c.basicField,i.field[m.default.ui(`IntegerField`).uri]=c.basicField,i.field[m.default.ui(`DecimalField`).uri]=c.basicField,i.field[m.default.ui(`FloatField`).uri]=c.basicField,i.field[m.default.ui(`TextField`).uri]=c.basicField,i.field[m.default.ui(`SingleLineTextField`).uri]=c.basicField,i.field[m.default.ui(`NamedNodeURIField`).uri]=c.basicField,i.field[m.default.ui(`MultiLineTextField`).uri]=function(e,t,n,r,i,a,o){let l=m.default.ui,u=v.store,f=i.doc?i.doc():null,p=u.any(i,l(`property`));if(!p)return s.errorMessageBlock(e,`No property to text field: `+i);let h=e.createElement(`div`);h.style.display=`flex`,h.style.flexDirection=`row`;let g=h.appendChild(e.createElement(`div`));g.style.width=d.default.formFieldNameBoxWidth;let _=h.appendChild(e.createElement(`div`));g.appendChild(c.fieldLabel(e,p,i)),a=c.fieldStore(r,p,a);let y=u.anyJS(r,p,null,a)||``,b=u.updater.editable(a.uri),x=i&&u.anyJS(i,m.default.ui(`suppressEmptyUneditable`),null,f);!b&&x&&y===``&&(h.style.display=`none`);let S=F(e,u,r,p,a,o);return _.appendChild(S),t&&t.appendChild(h),h};function w(e,t,n,i,a,o,l,u){let d=m.default.ui,f=v.store,p=f.any(a,d(`property`));if(!p){let n=s.errorMessageBlock(e,`No property to boolean field: `+a);return t&&t.appendChild(n),n}let h=f.any(a,d(`label`));h||=r.label(p,!0),o=c.fieldStore(i,p,o);let g=f.any(i,p);g===void 0&&(g=!1);let y=_.st(i,p,!0,o),b=_.st(i,p,!1,o),x=B(e,f,h,b,y,a,o,u);return t&&t.appendChild(x),x}i.field[m.default.ui(`BooleanField`).uri]=function(e,t,n,r,i,a,o){return w(e,t,n,r,i,a,o,!1)},i.field[m.default.ui(`TristateField`).uri]=function(e,t,n,r,i,a,o){return w(e,t,n,r,i,a,o,!0)},i.field[m.default.ui(`Classifier`).uri]=function(e,t,n,r,i,a,o){let l=v.store,d=m.default.ui,f=l.any(i,d(`category`));if(!f)return s.errorMessageBlock(e,`No category for classifier: `+i);p.debug(`Classifier: dataDoc=`+a);let h=function(e,t){return o(e||e,t)},g=e.createElement(`div`);g.setAttribute(`class`,`classifierBox`);let _=e.createElement(`div`);_.setAttribute(`class`,`formFieldName classifierBox-label`),_.appendChild(c.fieldLabel(e,f,i)),g.appendChild(_);let y=e.createElement(`div`);y.setAttribute(`class`,`formFieldValue classifierBox-selectBox`);let b=z(e,l,r,f,a,h);if(b&&b.querySelectorAll){let e=b.querySelectorAll(`select`);e.length&&!l.updater.editable(a.uri)&&e.forEach(e=>{e.readOnly=!0,e.style=u.style.textInputStyleUneditable})}return y.appendChild(b),g.appendChild(y),t&&t.appendChild(g),g},i.field[m.default.ui(`Choice`).uri]=function(e,n,r,i,a,o,l){let u=m.default.ui,d=v.store,f=a.doc?a.doc():null,p,h=e.createElement(`div`);h.setAttribute(`class`,`choiceBox`),n&&n.appendChild(h);let y=e.createElement(`div`);y.setAttribute(`class`,`formFieldName choiceBox-label`),h.appendChild(y);let b=e.createElement(`div`);b.setAttribute(`class`,`formFieldValue choiceBox-selectBox`),h.appendChild(b);let x=d.any(a,u(`property`));if(!x)return h.appendChild(s.errorMessageBlock(e,`No property for Choice: `+a));y.appendChild(c.fieldLabel(e,x,a));let S=d.any(a,u(`from`));if(!S)return s.errorMessageBlock(e,`No 'from' for Choice: `+a);let C=d.any(a,u(`use`)),w={form:a,subForm:C,disambiguate:!1};function E(e){let n=[],r;n=d.each(void 0,m.default.rdf(`type`),S,f);for(let t in W(d,S,e))n.push(d.fromNT(t));if(S.sameTerm(m.default.rdfs(`Class`)))for(p in t.allClassURIs())n.push(d.sym(p));else if(S.sameTerm(m.default.rdf(`Property`))){for(p in r=t.propertyTriage(d),r.op)n.push(d.fromNT(p));for(p in r.dp)n.push(d.fromNT(p));w.disambiguate=!0}else if(S.sameTerm(m.default.owl(`ObjectProperty`))){for(p in r=t.propertyTriage(d),r.op)n.push(d.fromNT(p));w.disambiguate=!0}else if(S.sameTerm(m.default.owl(`DatatypeProperty`))){for(p in r=t.propertyTriage(d),r.dp)n.push(d.fromNT(p));w.disambiguate=!0}return n}d.any(a,u(`canMintNew`))&&(w.mint=`* Create new *`);let D=d.any(a,u(`multiselect`));D&&(w.multiSelect=!0);let O=d.each(a,u(`search-full-store`)).length?null:o,k;return b.refresh=function(){let t=d.each(i,x,null,o).map(e=>e.value),n=E(O);if(n.push(t),n=M(n),k=H(e,b,d,i,x,n,t,S,w,o,l),b.innerHTML=``,b.appendChild(k),D){let n=new g.IconicMultiSelect({placeholder:k.selected,select:k,container:b,textField:`textField`,valueField:`valueField`});n.init(),n.subscribe(function(n){if(n.action===`REMOVE_OPTION`&&(t=t.filter(function(e){return e!==n.value})),n.action===`CLEAR_ALL_OPTIONS`&&(t=[]),n.action===`ADD_OPTION`){if((n.value+``).includes(`Create new`)){let n=V(o),r=[];r.push(_.st(i,x,d.sym(n),o)),S&&r.push(_.st(n,m.default.rdf(`type`),d.sym(S),o)),C&&T(e,b,{},_.sym(n),C,o,function(i,a){i?(d.updater.update([],r,function(t,n,r){n||b.appendChild(s.errorMessageBlock(e,`Error updating select: `+r))}),t.push(n),l&&l(i,{widget:`select`,event:`new`})):b.appendChild(s.errorMessageBlock(e,`Error updating data in field of select: `+a))})}else t.push(n.value)}k.update(t)})}},b.refresh(),k&&k.refresh&&k.refresh(),h};function T(e,t,n,r,a,o,s){i.fieldFunction(e,a)(e,t,n,r,a,o,s)}i.field[m.default.ui(`Comment`).uri]=i.field[m.default.ui(`Heading`).uri]=function(e,t,r,o,s,c,l){let u=m.default.ui,d=v.store,f=d.any(s,u(`contents`));f||=`Error: No contents in comment field.`;let p=s.doc?s.doc():null,h=i.mostSpecificClassURI(s),g=n.fieldParams[h]||{},_=e.createElement(`div`);t&&t.appendChild(_);let y=_.appendChild(e.createElement(g.element));y.textContent=f,a.setFieldStyle(y,s);let b=d.anyJS(s,m.default.ui(`suppressIfUneditable`),null,p),x=d.updater.editable(c.uri);return b&&!x&&(_.style.display=`none`),_};function E(e,t,n,i,a){let o=e.createElement(`button`);return o.setAttribute(`type`,`button`),o.innerHTML=`Edit `+r.label(m.default.ui(`Form`)),o.addEventListener(`click`,function(r){D(e,t,{},n,m.default.ui(`FormForm`),i,a).setAttribute(`style`,m.default.ui(`FormForm`).sameTerm(n)?`background-color: #fee;`:`background-color: #ffffe7;`),o.parentNode.removeChild(o)},!0),o}function D(e,t,n,r,a,o,s){return i.fieldFunction(e,a)(e,t,n,r,a,o,s)}function O(e,t){let n=e.each(void 0,m.default.rdf(`range`),t);[m.default.rdfs(`comment`),m.default.dc(`title`),m.default.foaf(`name`),m.default.foaf(`homepage`)].forEach(function(e){n.push(e)});let r=e.each(void 0,m.default.rdf(`type`),t);r.length>60&&(r=r.slice(0,60));let i={};for(let t=0;t<(r.length>60?60:r.length);t++)e.statementsMatching(r[t],void 0,void 0).forEach(function(e){i[e.predicate.uri]=!0});n.forEach(function(e){i[e.uri]=!0});let a=[];for(let t in i)a.push(e.sym(t));return a}function k(e,t,n){let r=[e.sym(t)];for(;r.length>0;){let t=r.shift(),i=e.each(t,n);if(p.debug(`Lists for `+t+`, `+n+`: `+i.length),i.length!==0)return i;let a=e.each(t,m.default.rdfs(`subClassOf`));for(let e=0;e<a.length;e++)r.push(a[e]),p.debug(`findClosest: add super: `+a[e])}return[]}function A(e){let t=v.store;p.debug(`formsFor: subject=`+e);let n=t.findTypeURIs(e),r;for(r in n)p.debug(` type: `+r);let i=t.bottomTypeURIs(n),a=[];for(let e in i)p.debug(`candidatesFor: trying bottom type =`+e),a=a.concat(k(t,e,m.default.ui(`creationForm`))),a=a.concat(k(t,e,m.default.ui(`annotationForm`)));return a}function j(e){let t=e.map(function(e){return[S.any(e,m.default.ui(`sequence`))||9999,e]});return t.sort(function(e,t){return e[0]-t[0]}),t.map(function(e){return e[1]})}function M(e){let t=e.map(function(e){return[r.label(e).toLowerCase(),e]});return t.sort(),t.map(function(e){return e[1]})}function N(e,t,n,i,a,o,s,c){let l=e.createElement(`button`);return l.setAttribute(`type`,`button`),l.innerHTML=`New `+r.label(a),l.addEventListener(`click`,function(r){l.parentNode.appendChild(P(e,t,n,i,a,o,s,c))},!1),l}function P(e,n,a,o,s,c,l,u){let f=e.createElement(`form`);if(!c){let t=k(n,s.uri,m.default.ui(`creationForm`));if(t.length===0){let t=f.appendChild(e.createElement(`p`));t.textContent=`I am sorry, you need to provide information about a `+r.label(s)+` but I don't know enough information about those to ask you.`;let n=f.appendChild(e.createElement(`button`));return n.setAttribute(`type`,`button`),n.setAttribute(`style`,`float: right;`),n.innerHTML=`Goto `+r.label(s),n.addEventListener(`click`,function(t){e.outlineManager.GotoSubject(s,!0,void 0,!0,void 0)},!1),f}p.debug(`lists[0] is `+t[0]),c=t[0]}p.debug(`form is `+c),f.setAttribute(`style`,`border: 0.05em solid ${d.default.formBorderColor}; color: ${d.default.formBorderColor}`),f.innerHTML=`<h3>New `+r.label(s)+`</h3>`;let h=i.fieldFunction(e,c),g=V(l),v=!1,y=function(r,i){if(!r)return u(r,i);let c=[];a&&!n.holds(a,o,g,l)&&c.push(_.st(a,o,g,l)),a&&!n.holds(g,m.default.rdf(`type`),s,l)&&c.push(_.st(g,m.default.rdf(`type`),s,l)),c.length?n.updater.update([],c,b):u(!0,i),v||=f.appendChild(t.linkButton(e,g))};function b(e,t,n){return u(t,n)}p.info(`paneUtils Object is `+g);let x=h(e,f,{},g,c,l,y);return t.removeButton(e,x).setAttribute(`style`,`float: right;`),f.AJAR_subject=g,f}function F(e,n,r,i,a,o){let c=e.createElement(`div`),l=n.anyJS(r,i,null,a)||``,f=e.createElement(`textarea`);c.appendChild(f),f.rows=l?l.split(`
2
+ `).length+2:2,f.cols=80,f.setAttribute(`style`,u.style.multilineTextInputStyle),l===null?f.select():f.value=l,c.refresh=function(){let e=n.any(r,i,null,a);e&&e.value!==f.value&&(f.value=e.value)};function p(t){h.disabled=!0,h.setAttribute(`style`,`visibility: hidden; float: right;`),f.disabled=!0,f.style.color=d.default.textInputColorPending;let l=n.statementsMatching(r,i,null,a),u=_.st(r,i,f.value,a);n.updater.update(l,u,function(t,n,r){n?(f.style.color=d.default.textInputColor,f.disabled=!1):c.appendChild(s.errorMessageBlock(e,`Error (while saving change to `+a.uri+`): `+r)),o&&o(n,r)})}let m=n.updater.editable(a.uri),h;return m?(h=t.continueButton(e,p),h.disabled=!0,h.style.visibility=`hidden`,h.style.float=`right`,c.appendChild(h),f.addEventListener(`keyup`,function(e){f.style.color=`green`,h&&(h.disabled=!1,h.style.visibility=``)},!0),f.addEventListener(`change`,p,!0)):(f.disabled=!0,f.style.backgroundColor=d.default.textInputBackgroundColorUneditable),c}function I(e,t,n,a,c,l,d,f){p.debug(`Select list length now `+c.length);let g=0,v={},y=t.updater.editable(d.uri);for(let e=0;e<c.length;e++){let t=c[e];t.uri||o.warn(`makeSelectForClassifierOptions: option does not have an uri: ${t}, with predicate: ${a}`),!t.uri||t.uri in v||(v[t.uri]=!0,g++)}if(g===0&&!l.mint)return s.errorMessageBlock(e,`Can't do selector with no options, subject= `+n+` property = `+a+`.`);p.debug(`makeSelectForClassifierOptions: dataDoc=`+d);let b,x=function(){return b={},a.sameTerm(m.default.rdf(`type`))?b=t.findTypeURIs(n):t.each(n,a,null,d).forEach(function(e){b[e.uri]=!0}),b};b=x();let S=function(r){C.disabled=!0;let o=[],c=[],u=function(e){t.holds(n,a,e,d)&&o.push(_.st(n,a,e,d))},m;for(let r=0;r<C.options.length;r++){let i=C.options[r];if(i.selected&&i.AJAR_mint){if(l.mintClass){let r=P(e,t,n,a,l.mintClass,null,d,function(e,t){e||f(e,t,{change:`new`})});C.parentNode.appendChild(r),m=r.AJAR_subject}else m=V(d);c.push(_.st(n,a,m,d)),l.mintStatementsFun&&(c=c.concat(l.mintStatementsFun(m)))}i.AJAR_uri&&(i.selected&&!(i.AJAR_uri in b)&&c.push(_.st(n,a,t.sym(i.AJAR_uri),d)),!i.selected&&i.AJAR_uri in b&&u(t.sym(i.AJAR_uri)),i.selected&&(C.currentURI=i.AJAR_uri))}let h=C.subSelect;for(;h&&h.currentURI;)u(t.sym(h.currentURI)),h=h.subSelect;for(h=C.superSelect;h&&h.currentURI;)u(t.sym(h.currentURI)),h=h.superSelect;function g(e,t){f(e,{widget:`select`,event:`new`})}p.info(`makeSelectForClassifierOptions: data doc = `+d),t.updater.update(o,c,function(t,n,r){if(b=x(),n)C.disabled=!1,m&&i.fieldFunction(e,l.subForm)(e,C.parentNode,{},m,l.subForm,d,g);else return C.parentNode.appendChild(s.errorMessageBlock(e,`Error updating data in select: `+r));f&&f(n,{widget:`select`,event:`change`})})},C=e.createElement(`select`);C.setAttribute(`style`,u.style.formSelectStyle),l.multiple&&C.setAttribute(`multiple`,`true`),C.currentURI=null,C.refresh=function(){b=x();for(let e=0;e<C.children.length;e++){let t=C.children[e];t.AJAR_uri&&(t.selected=t.AJAR_uri in b)}C.disabled=!1};for(let n in v){let i=t.sym(n),a=e.createElement(`option`);l.disambiguate?a.appendChild(e.createTextNode(h.labelWithOntology(i,!0))):a.appendChild(e.createTextNode(r.label(i,!0)));let o=t.any(i,t.sym(`http://www.w3.org/ns/ui#backgroundColor`));o&&a.setAttribute(`style`,`background-color: `+o.value+`; `),a.AJAR_uri=n,n in b&&(a.setAttribute(`selected`,`true`),C.currentURI=n),C.appendChild(a)}if(y&&l.mint){let t=e.createElement(`option`);t.appendChild(e.createTextNode(l.mint)),t.AJAR_mint=!0,C.insertBefore(t,C.firstChild)}if(C.currentURI==null&&!l.multiple){let t=e.createElement(`option`);t.appendChild(e.createTextNode(l.nullLabel)),C.insertBefore(t,C.firstChild),t.selected=!0}return y&&C.addEventListener(`change`,S,!1),C}function L(e,t,n,i,a,c,l,d){p.debug(`Select list length now `+a.length);let f=0,g={},v=t.updater.editable(l.uri);for(let e=0;e<a.length;e++){let t=a[e];t.uri||o.warn(`makeSelectForOptions: option does not have an uri: ${t}, with predicate: ${i}`),!t.uri||t.uri in g||(g[t.uri]=!0,f++)}if(f===0)return s.errorMessageBlock(e,`Can't do selector with no options, subject= `+n+` property = `+i+`.`);p.debug(`makeSelectForOptions: dataDoc=`+l);let y,b=function(){return y={},i.sameTerm(m.default.rdf(`type`))?y=t.findTypeURIs(n):t.each(n,i,null,l).forEach(function(e){e.uri&&(y[e.uri]=!0)}),y};y=b();let x=function(r){S.disabled=!0;let a=[],o=[],c=function(e){t.holds(n,i,e,l)&&a.push(_.st(n,i,e,l))};for(let e=0;e<S.options.length;e++){let r=S.options[e];r.AJAR_uri&&(r.selected&&!(r.AJAR_uri in y)&&o.push(_.st(n,i,t.sym(r.AJAR_uri),l)),!r.selected&&r.AJAR_uri in y&&c(t.sym(r.AJAR_uri)),r.selected&&(S.currentURI=r.AJAR_uri))}let u=S.subSelect;for(;u&&u.currentURI;)c(t.sym(u.currentURI)),u=u.subSelect;for(u=S.superSelect;u&&u.currentURI;)c(t.sym(u.currentURI)),u=u.superSelect;p.info(`selectForOptions: data doc = `+l),t.updater.update(a,o,function(t,n,r){if(y=b(),n)S.disabled=!1;else return S.parentNode.appendChild(s.errorMessageBlock(e,`Error updating data in select: `+r));d&&d(n,{widget:`select`,event:`change`})})},S=e.createElement(`select`);S.setAttribute(`style`,u.style.formSelectStyle),S.currentURI=null,S.refresh=function(){y=b();for(let e=0;e<S.children.length;e++){let t=S.children[e];t.AJAR_uri&&(t.selected=t.AJAR_uri in y)}S.disabled=!1};for(let n in g){let i=t.sym(n),a=e.createElement(`option`);c.disambiguate?a.appendChild(e.createTextNode(h.labelWithOntology(i,!0))):a.appendChild(e.createTextNode(r.label(i,!0)));let o=t.any(i,t.sym(`http://www.w3.org/ns/ui#backgroundColor`));o&&a.setAttribute(`style`,`background-color: `+o.value+`; `),a.AJAR_uri=n,n in y&&(a.setAttribute(`selected`,`true`),S.currentURI=n),S.appendChild(a)}if(!S.currentURI){let t=e.createElement(`option`);t.appendChild(e.createTextNode(c.nullLabel)),S.insertBefore(t,S.firstChild),t.selected=!0}return v&&S.addEventListener(`change`,x,!1),S}function R(e,t,n,r,i,a){let o=t.any(r,m.default.owl(`disjointUnionOf`)),c,l=!1;return o?c=o.elements:(c=t.each(void 0,m.default.rdfs(`subClassOf`),r),l=!0),p.debug(`Select list length `+c.length),c.length===0?s.errorMessageBlock(e,`Can't do `+(l?`multiple `:``)+`selector with no subclasses of category: `+r):c.length===1?s.errorMessageBlock(e,`Can't do `+(l?`multiple `:``)+`selector with only 1 subclass of category: `+r+`:`+c[1]):I(e,t,n,m.default.rdf(`type`),c,{multiple:l,nullLabel:`* Select type *`},i,a)}function z(e,t,n,r,i,a){function o(){c&&=(s.removeChild(c),null),u.currentURI&&t.any(t.sym(u.currentURI),m.default.owl(`disjointUnionOf`))&&(c=z(e,t,n,t.sym(u.currentURI),i,a),u.subSelect=c.firstChild,u.subSelect.superSelect=u,s.appendChild(c))}let s=e.createElement(`span`),c=null;function l(e,t){e&&o(),a(e,t)}let u=R(e,t,n,r,i,l);return s.appendChild(u),o(),s}function B(e,t,n,r,i,a,l,d){let f=e.createElement(`div`),p=c.renderNameValuePair(e,t,f,a,n),h=t.updater.editable(l.uri),g=e.createElement(`button`),_=g;g.style=u.style.checkboxInputStyle,p.appendChild(g);function v(e){if(!e)return[];if(e.object)return e.why||=l,[e];if(e instanceof Array)return e;throw Error(`buildCheckboxForm: bad param `+e)}i=v(i),r=v(r);function S(e){return e.filter(e=>!t.holds(e.subject,e.predicate,e.object,e.why)).length===0}function C(){let n=S(i),o=n;if(r.length){let c=S(r);if(n&&c)return f.appendChild(s.errorMessageBlock(e,`Inconsistent data in dataDoc!
3
+ `+i+` and
4
+ `+r)),f;if(!n&&!c){n=null;let e=t.any(a,m.default.ui(`default`));o=e?e.value===`1`:d?null:!1}}g.state=n,g.textContent={true:y,false:d?b:` `,null:x}[o]}if(C(),!h)return f;let w=!1;return g.addEventListener(`click`,function(n){if(w)return;w=!0,g.disabled=!0;let a=!1,c=function(){return!a&&(a=!0,w=!1,g.disabled=!1,!0)},l=function(t){_.style.color=`#000`,_.style.backgroundColor=`#fee`,f.appendChild(s.errorMessageBlock(e,`Checkbox: Error updating dataDoc from ${g.state} to ${g.newState}:\n\n${t}`))};_.style.color=`#bbb`;let u=g.state===!0?i:g.state===!1?r:[];g.newState=g.state===null?!0:g.state===!0?!1:!d||null;let p=g.newState===!0?i:g.newState===!1?r:[];o.log(` Deleting ${u}`),o.log(` Inserting ${p}`);try{let e=t.updater.update(u,p,function(e,n,r){c()&&(n?(_.style.color=`#000`,g.state=g.newState,g.textContent={true:y,false:b,null:x}[g.state]):(u.why&&t.holds(u.subject,u.predicate,u.object,u.why)&&o.log(` @@@@@ weird if 409 - does hold statement`),l(r)))});e&&typeof e.then==`function`&&e.catch(function(e){c()&&l(e instanceof Error?e.message:e)}).finally(function(){c()})}catch(e){throw c(),e}},!1),f}function V(e){let t=new Date;return _.sym(e.uri+`#id`+(``+t.getTime()))}function H(e,t,n,i,a,o,c,l,d,f,g){let v={},y=n.updater.editable(f.uri);for(let e=0;e<o.length;e++){let t=o[e];!t.uri||t.uri in v||(v[t.uri]=!0)}if(Object.keys(v).length===0&&!d.mint)return s.errorMessageBlock(e,`Can't do selector with no options, subject= `+i+` property = `+a+`.`);p.debug(`makeSelectForChoice: dataDoc=`+f);function b(){let e=`--- choice ---`;return a&&a.termType!==`BlankNode`&&(e=`* Select for property: `+r.label(a)+` *`),i&&i.termType!==`BlankNode`&&(e=`* Select for `+r.label(i,!0)+` *`),e}function x(){let t=e.createElement(`option`);return t.appendChild(e.createTextNode(b())),t.disabled=!0,t.value=!0,t.hidden=!0,t.selected=!0,t}let S=function(e){t.removeChild(t.lastChild),C.refresh()},C=e.createElement(`select`);C.setAttribute(`style`,u.style.formSelectStyle),C.setAttribute(`id`,`formSelect`),C.currentURI=null;for(let e in v)C.appendChild(w(e));if(y&&d.mint){let t=e.createElement(`option`);t.appendChild(e.createTextNode(d.mint)),t.AJAR_mint=!0,C.insertBefore(t,C.firstChild)}C.children.length===0&&C.insertBefore(x(),C.firstChild),C.update=function(t){c=t;let r=[],o=[],u=function(e){n.holds(i,a,e,f)&&r.push(_.st(i,a,e,f))},d=function(e){n.holds(i,a,e,f)||o.push(_.st(i,a,e,f)),l&&!n.holds(e,m.default.rdf(`type`),n.sym(l),f)&&o.push(_.st(e,m.default.rdf(`type`),n.sym(l),f))},p=n.each(i,a,null,f).map(e=>e.value);for(let e of p)U(e,c)||u(_.sym(e));for(let e of c)e in p||d(_.sym(e));n.updater.update(r,o,function(t,n,r){if(!n)return C.parentNode.appendChild(s.errorMessageBlock(e,`Error updating data in select: `+r));C.refresh(),g&&g(n,{widget:`select`,event:`change`})})},C.refresh=function(){C.disabled=!0;let r=[],o;for(let t=0;t<C.options.length;t++){let s=C.options[t];if(s.selected&&s.AJAR_mint){if(d.mintClass){let t=P(e,n,i,a,l,d.subForm,f,function(e,t){e||g(e,t,{change:`new`})});C.parentNode.appendChild(t),o=t.AJAR_subject}else o=V(f);r.push(_.st(i,a,n.sym(o),f)),l&&r.push(_.st(o,m.default.rdf(`type`),n.sym(l),f)),d.mintStatementsFun&&(r=r.concat(d.mintStatementsFun(o))),C.currentURI=o}s.AJAR_uri&&(s.selected&&U(s.AJAR_uri,c)&&(C.currentURI=s.AJAR_uri),U(s.AJAR_uri,c)||s.removeAttribute(`selected`),U(s.AJAR_uri,c)&&s.setAttribute(`selected`,`true`))}p.info(`selectForOptions: data doc = `+f),C.currentURI&&d.subForm&&!d.multiSelect&&T(e,t,{},_.sym(C.currentURI),d.subForm,f,function(i,a){i?(n.updater.update([],r,function(n,r,i){r||t.appendChild(s.errorMessageBlock(e,`Error updating select: `+i))}),g&&g(i,{widget:`select`,event:`new`})):t.appendChild(s.errorMessageBlock(e,`Error updating data in field of select: `+a))}),C.disabled=!1};function w(t){let i=e.createElement(`option`),a=n.sym(t),o;o=d.disambiguate?h.labelWithOntology(a,!0):r.label(a,!0),i.appendChild(e.createTextNode(o)),i.setAttribute(`value`,t);let s=n.any(a,n.sym(`http://www.w3.org/ns/ui#backgroundColor`));return s&&i.setAttribute(`style`,`background-color: `+s.value+`; `),i.AJAR_uri=t,U(a.value,c)&&i.setAttribute(`selected`,`true`),i}return y&&C.addEventListener(`change`,S,!1),C}function U(e,t){let n=0;for(;n<t.length;n++)if(t[n]===e)return!0;return!1}function W(e,t,n){let r,i,a,o,s,c,l,u,d,f,p,m={};m[t.toNT()]=!0;let h={},g=e.transitiveClosure(m,e.rdfFactory.namedNode(`http://www.w3.org/2000/01/rdf-schema#subClassOf`),!0);for(let t in g){s=e.statementsMatching(null,e.rdfFactory.namedNode(`http://www.w3.org/1999/02/22-rdf-syntax-ns#type`),e.fromNT(t),n);for(let e=0,t=s.length;e<t;e++)f=s[e],h[f.subject.toNT()]=f;c=e.each(null,e.rdfFactory.namedNode(`http://www.w3.org/2000/01/rdf-schema#domain`),e.fromNT(t),n);for(let t=0,i=c.length;t<i;t++)for(o=c[t],l=e.statementsMatching(null,o,null,n),a=0,r=l.length;a<r;a++)f=l[a],h[f.subject.toNT()]=f;u=e.each(null,e.rdfFactory.namedNode(`http://www.w3.org/2000/01/rdf-schema#range`),e.fromNT(t),n);for(let t=0,r=u.length;t<r;t++)for(o=u[t],d=e.statementsMatching(null,o,null,n),p=0,i=d.length;p<i;p++)f=d[p],h[f.object.toNT()]=f}return h}exports.appendForm=D,exports.basicField=c.basicField,exports.buildCheckboxForm=B,exports.editFormButton=E,exports.field=i.field,exports.fieldFunction=i.fieldFunction,exports.fieldLabel=c.fieldLabel,exports.fieldParams=n.fieldParams,exports.fieldStore=c.fieldStore,exports.findClosest=k,exports.formsFor=A,exports.makeDescription=F,exports.makeSelectForCategory=R,exports.makeSelectForChoice=H,exports.makeSelectForClassifierOptions=I,exports.makeSelectForNestedCategory=z,exports.makeSelectForOptions=L,exports.mostSpecificClassURI=i.mostSpecificClassURI,exports.newButton=N,exports.newThing=V,exports.promptForNew=P,exports.propertiesForClass=O,exports.renderNameValuePair=c.renderNameValuePair,exports.sortByLabel=M,exports.sortBySequence=j;
5
5
  //# sourceMappingURL=forms.cjs.js.map