solid-ui 3.1.3-9 → 5.0.0-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (668) hide show
  1. package/README.md +11 -14
  2. package/dist/_virtual/_rolldown/runtime.cjs.js +1 -1
  3. package/dist/_virtual/~icons/svg-spinners/3-dots-fade.cjs.js +2 -0
  4. package/dist/_virtual/~icons/svg-spinners/3-dots-fade.cjs.js.map +1 -0
  5. package/dist/_virtual/~icons/svg-spinners/3-dots-fade.esm.js +11 -0
  6. package/dist/_virtual/~icons/svg-spinners/3-dots-fade.esm.js.map +1 -0
  7. package/dist/acl/access-controller.cjs.js.map +1 -1
  8. package/dist/acl/access-groups.cjs.js +1 -1
  9. package/dist/acl/access-groups.cjs.js.map +1 -1
  10. package/dist/acl/access-groups.esm.js +2 -1
  11. package/dist/acl/access-groups.esm.js.map +1 -1
  12. package/dist/acl/acl.cjs.js.map +1 -1
  13. package/dist/acl/acl.esm.js.map +1 -1
  14. package/dist/chat/bookmarks.cjs.js.map +1 -1
  15. package/dist/chat/bookmarks.esm.js +2 -1
  16. package/dist/chat/bookmarks.esm.js.map +1 -1
  17. package/dist/chat/chatLogic.cjs.js +1 -1
  18. package/dist/chat/chatLogic.cjs.js.map +1 -1
  19. package/dist/chat/chatLogic.esm.js +2 -2
  20. package/dist/chat/chatLogic.esm.js.map +1 -1
  21. package/dist/chat/dateFolder.esm.js +1 -1
  22. package/dist/chat/dateFolder.esm.js.map +1 -1
  23. package/dist/chat/keys.cjs.js +1 -1
  24. package/dist/chat/keys.cjs.js.map +1 -1
  25. package/dist/chat/keys.d.ts +1 -1
  26. package/dist/chat/keys.d.ts.map +1 -1
  27. package/dist/chat/keys.esm.js +5 -2
  28. package/dist/chat/keys.esm.js.map +1 -1
  29. package/dist/chat/message.cjs.js +1 -1
  30. package/dist/chat/message.cjs.js.map +1 -1
  31. package/dist/chat/message.esm.js +14 -11
  32. package/dist/chat/message.esm.js.map +1 -1
  33. package/dist/chat/signature.cjs.js +1 -1
  34. package/dist/chat/signature.cjs.js.map +1 -1
  35. package/dist/chat/signature.esm.js +2 -1
  36. package/dist/chat/signature.esm.js.map +1 -1
  37. package/dist/chunks/{DialogProvider-Bt65G0Tk.js → DialogProvider-BFllJFfq.js} +6 -8
  38. package/dist/chunks/DialogProvider-BFllJFfq.js.map +1 -0
  39. package/dist/chunks/{account-CWY924jw.js → account-CWdjQDsQ.js} +29 -27
  40. package/dist/chunks/account-CWdjQDsQ.js.map +1 -0
  41. package/dist/chunks/{auth-DIRGfFle.js → auth-DdvFEHuV.js} +111 -101
  42. package/dist/chunks/auth-DdvFEHuV.js.map +1 -0
  43. package/dist/chunks/{avatar-CLJz6mOV.js → avatar-3eUQtxXZ.js} +14 -8
  44. package/dist/chunks/avatar-3eUQtxXZ.js.map +1 -0
  45. package/dist/chunks/{button-CBQEwOtX.js → button-CnmrOsEf.js} +13 -17
  46. package/dist/chunks/{button-CBQEwOtX.js.map → button-CnmrOsEf.js.map} +1 -1
  47. package/dist/chunks/{chunk.K442ELDU-TtQSV9g1.js → chunk.64OG2H45-BFgXEuP7.js} +380 -354
  48. package/dist/chunks/chunk.64OG2H45-BFgXEuP7.js.map +1 -0
  49. package/dist/chunks/combobox-D3eGdicW.js +676 -0
  50. package/dist/chunks/combobox-D3eGdicW.js.map +1 -0
  51. package/dist/chunks/{combobox-option-DiR3VpyT.js → combobox-option-BcXpUnWu.js} +7 -9
  52. package/dist/chunks/{combobox-option-DiR3VpyT.js.map → combobox-option-BcXpUnWu.js.map} +1 -1
  53. package/dist/chunks/components-BHoVP7zE.js +1283 -0
  54. package/dist/chunks/components-BHoVP7zE.js.map +1 -0
  55. package/dist/chunks/{dialog-Bn4qiZi-.js → dialog-D9Ellvjx.js} +58 -104
  56. package/dist/chunks/dialog-D9Ellvjx.js.map +1 -0
  57. package/dist/chunks/{dialog-content-fdJrkCyB.js → dialog-content-B2FmmQvH.js} +2 -3
  58. package/dist/chunks/{dialog-content-fdJrkCyB.js.map → dialog-content-B2FmmQvH.js.map} +1 -1
  59. package/dist/chunks/{dialog-footer-Bs_p2Nn9.js → dialog-footer-CxjoqQJF.js} +2 -3
  60. package/dist/chunks/{dialog-footer-Bs_p2Nn9.js.map → dialog-footer-CxjoqQJF.js.map} +1 -1
  61. package/dist/chunks/{dialog-header-CWIAAoDo.js → dialog-header-0dobhr5C.js} +2 -3
  62. package/dist/chunks/{dialog-header-CWIAAoDo.js.map → dialog-header-0dobhr5C.js.map} +1 -1
  63. package/dist/chunks/dialogs-D2n-R0lI.js +26 -0
  64. package/dist/chunks/dialogs-D2n-R0lI.js.map +1 -0
  65. package/dist/chunks/{dialogs-root-Cv932Aqm.js → dialogs-root-ngPW2Q6K.js} +11 -16
  66. package/dist/chunks/dialogs-root-ngPW2Q6K.js.map +1 -0
  67. package/dist/chunks/guard-6zSfmr4k.js +224 -0
  68. package/dist/chunks/guard-6zSfmr4k.js.map +1 -0
  69. package/dist/chunks/{solid-logic.esm-BhVcNu8u.js → index.esm-Bu7WXI60.js} +3380 -3159
  70. package/dist/chunks/index.esm-Bu7WXI60.js.map +1 -0
  71. package/dist/chunks/{input-BF224Jid.js → input-BIhn_8nf.js} +72 -100
  72. package/dist/chunks/input-BIhn_8nf.js.map +1 -0
  73. package/dist/chunks/{jsonld-Cd-ZhJmZ.js → jsonld-B2M5QgXx.js} +159 -142
  74. package/dist/chunks/{jsonld-Cd-ZhJmZ.js.map → jsonld-B2M5QgXx.js.map} +1 -1
  75. package/dist/chunks/{login-button-ChyF_OoC.js → login-button-Boh1eEJ5.js} +7 -9
  76. package/dist/chunks/{login-button-ChyF_OoC.js.map → login-button-Boh1eEJ5.js.map} +1 -1
  77. package/dist/chunks/{logout-button-BRPS8630.js → logout-button-BJfE_daI.js} +7 -9
  78. package/dist/chunks/{logout-button-BRPS8630.js.map → logout-button-BJfE_daI.js.map} +1 -1
  79. package/dist/chunks/{menu-DNcuV-1J.js → menu-hMtmUkel.js} +701 -130
  80. package/dist/chunks/menu-hMtmUkel.js.map +1 -0
  81. package/dist/chunks/{menu-item-CWg-eS4V.js → menu-item-BdCkmJol.js} +75 -59
  82. package/dist/chunks/menu-item-BdCkmJol.js.map +1 -0
  83. package/dist/chunks/photo-capture-Bvixtxsq.js +402 -0
  84. package/dist/chunks/photo-capture-Bvixtxsq.js.map +1 -0
  85. package/dist/chunks/photo-capture-modal-BhmL3kYD.js +560 -0
  86. package/dist/chunks/photo-capture-modal-BhmL3kYD.js.map +1 -0
  87. package/dist/chunks/{provider-D0RqwRoM.js → provider-BJ8rXsnl.js} +13 -12
  88. package/dist/chunks/provider-BJ8rXsnl.js.map +1 -0
  89. package/dist/chunks/query-BYu9q8lA.js +33 -0
  90. package/dist/chunks/query-BYu9q8lA.js.map +1 -0
  91. package/dist/chunks/rdf-form-PagO7EXg.js +339 -0
  92. package/dist/chunks/rdf-form-PagO7EXg.js.map +1 -0
  93. package/dist/chunks/rdf-input-Dsbbxbva.js +440 -0
  94. package/dist/chunks/rdf-input-Dsbbxbva.js.map +1 -0
  95. package/dist/chunks/{select-D8dW53pr.js → select-BcC-ICqO.js} +78 -100
  96. package/dist/chunks/select-BcC-ICqO.js.map +1 -0
  97. package/dist/chunks/{select-option-B-6ULCpQ.js → select-option-B0uXcj2O.js} +7 -9
  98. package/dist/chunks/{select-option-B-6ULCpQ.js.map → select-option-B0uXcj2O.js.map} +1 -1
  99. package/dist/chunks/{signup-button-Df4rYzNO.js → signup-button-14Bh_nyp.js} +7 -9
  100. package/dist/chunks/{signup-button-Df4rYzNO.js.map → signup-button-14Bh_nyp.js.map} +1 -1
  101. package/dist/chunks/{solid-emblem-BDzhMTjL.js → solid-emblem-CcQOqRX0.js} +2 -3
  102. package/dist/chunks/{solid-emblem-BDzhMTjL.js.map → solid-emblem-CcQOqRX0.js.map} +1 -1
  103. package/dist/chunks/src-CZXvZVWH.js +32792 -0
  104. package/dist/chunks/src-CZXvZVWH.js.map +1 -0
  105. package/dist/chunks/style-BsMewYKg.js +537 -0
  106. package/dist/chunks/style-BsMewYKg.js.map +1 -0
  107. package/dist/components/account/Account.cjs.js +6 -4
  108. package/dist/components/account/Account.cjs.js.map +1 -1
  109. package/dist/components/account/Account.d.ts +2 -0
  110. package/dist/components/account/Account.d.ts.map +1 -1
  111. package/dist/components/account/Account.esm.js +10 -4
  112. package/dist/components/account/Account.esm.js.map +1 -1
  113. package/dist/components/account/Account.stories.d.ts +10 -12
  114. package/dist/components/account/Account.stories.d.ts.map +1 -1
  115. package/dist/components/account/Account.styles.cjs.js +1 -1
  116. package/dist/components/account/Account.styles.cjs.js.map +1 -1
  117. package/dist/components/account/Account.styles.esm.js +1 -1
  118. package/dist/components/account/Account.styles.esm.js.map +1 -1
  119. package/dist/components/account.js +1 -1
  120. package/dist/components/all.cjs.js +1 -0
  121. package/dist/components/all.d.ts +2 -0
  122. package/dist/components/all.d.ts.map +1 -0
  123. package/dist/components/all.esm.js +26 -0
  124. package/dist/components/avatar/Avatar.cjs.js +1 -1
  125. package/dist/components/avatar/Avatar.cjs.js.map +1 -1
  126. package/dist/components/avatar/Avatar.d.ts +3 -0
  127. package/dist/components/avatar/Avatar.d.ts.map +1 -1
  128. package/dist/components/avatar/Avatar.esm.js +9 -1
  129. package/dist/components/avatar/Avatar.esm.js.map +1 -1
  130. package/dist/components/avatar/Avatar.stories.d.ts +4 -22
  131. package/dist/components/avatar/Avatar.stories.d.ts.map +1 -1
  132. package/dist/components/avatar.js +1 -1
  133. package/dist/components/button/Button.cjs.js +1 -1
  134. package/dist/components/button/Button.cjs.js.map +1 -1
  135. package/dist/components/button/Button.esm.js +1 -3
  136. package/dist/components/button/Button.esm.js.map +1 -1
  137. package/dist/components/button/Button.stories.d.ts +15 -154
  138. package/dist/components/button/Button.stories.d.ts.map +1 -1
  139. package/dist/components/button/Button.styles.cjs.js +1 -1
  140. package/dist/components/button/Button.styles.cjs.js.map +1 -1
  141. package/dist/components/button/Button.styles.esm.js +1 -1
  142. package/dist/components/button/Button.styles.esm.js.map +1 -1
  143. package/dist/components/button.js +1 -1
  144. package/dist/components/combobox/Combobox.cjs.js +17 -17
  145. package/dist/components/combobox/Combobox.cjs.js.map +1 -1
  146. package/dist/components/combobox/Combobox.d.ts +33 -12
  147. package/dist/components/combobox/Combobox.d.ts.map +1 -1
  148. package/dist/components/combobox/Combobox.esm.js +223 -119
  149. package/dist/components/combobox/Combobox.esm.js.map +1 -1
  150. package/dist/components/combobox/Combobox.stories.d.ts +28 -11
  151. package/dist/components/combobox/Combobox.stories.d.ts.map +1 -1
  152. package/dist/components/combobox/Combobox.styles.cjs.js +1 -1
  153. package/dist/components/combobox/Combobox.styles.cjs.js.map +1 -1
  154. package/dist/components/combobox/Combobox.styles.esm.js +1 -1
  155. package/dist/components/combobox/Combobox.styles.esm.js.map +1 -1
  156. package/dist/components/combobox/index.cjs.js +1 -1
  157. package/dist/components/combobox/index.cjs.js.map +1 -1
  158. package/dist/components/combobox/index.d.ts +1 -0
  159. package/dist/components/combobox/index.d.ts.map +1 -1
  160. package/dist/components/combobox/index.esm.js +3 -3
  161. package/dist/components/combobox/index.esm.js.map +1 -1
  162. package/dist/components/combobox-option/ComboboxOption.cjs.js.map +1 -1
  163. package/dist/components/combobox-option.js +1 -1
  164. package/dist/components/combobox.js +2 -2
  165. package/dist/components/dialog/Dialog.cjs.js +6 -6
  166. package/dist/components/dialog/Dialog.cjs.js.map +1 -1
  167. package/dist/components/dialog/Dialog.esm.js +11 -10
  168. package/dist/components/dialog/Dialog.esm.js.map +1 -1
  169. package/dist/components/dialog/Dialog.stories.d.ts +22 -0
  170. package/dist/components/dialog/Dialog.stories.d.ts.map +1 -0
  171. package/dist/components/dialog/docs/sample-modal/SampleModal.d.ts +6 -0
  172. package/dist/components/dialog/docs/sample-modal/SampleModal.d.ts.map +1 -0
  173. package/dist/components/dialog/docs/sample-modal/index.d.ts +4 -0
  174. package/dist/components/dialog/docs/sample-modal/index.d.ts.map +1 -0
  175. package/dist/components/dialog-content.js +1 -1
  176. package/dist/components/dialog-footer.js +1 -1
  177. package/dist/components/dialog-header.js +1 -1
  178. package/dist/components/dialog-provider/DialogProvider.cjs.js.map +1 -1
  179. package/dist/components/dialog-provider/DialogProvider.d.ts +2 -1
  180. package/dist/components/dialog-provider/DialogProvider.d.ts.map +1 -1
  181. package/dist/components/dialog-provider/DialogProvider.esm.js.map +1 -1
  182. package/dist/components/dialog-provider.js +1 -1
  183. package/dist/components/dialog.js +1 -1
  184. package/dist/components/dialogs-root/DialogsRoot.cjs.js +4 -7
  185. package/dist/components/dialogs-root/DialogsRoot.cjs.js.map +1 -1
  186. package/dist/components/dialogs-root/DialogsRoot.d.ts.map +1 -1
  187. package/dist/components/dialogs-root/DialogsRoot.esm.js +7 -10
  188. package/dist/components/dialogs-root/DialogsRoot.esm.js.map +1 -1
  189. package/dist/components/dialogs-root.js +1 -1
  190. package/dist/components/guard/Guard.cjs.js +4 -2
  191. package/dist/components/guard/Guard.cjs.js.map +1 -1
  192. package/dist/components/guard/Guard.d.ts +7 -0
  193. package/dist/components/guard/Guard.d.ts.map +1 -1
  194. package/dist/components/guard/Guard.esm.js +74 -48
  195. package/dist/components/guard/Guard.esm.js.map +1 -1
  196. package/dist/components/guard/Guard.stories.d.ts +9 -16
  197. package/dist/components/guard/Guard.stories.d.ts.map +1 -1
  198. package/dist/components/guard.js +1 -1
  199. package/dist/components/index.cjs.js +1 -1
  200. package/dist/components/index.d.ts +0 -1
  201. package/dist/components/index.d.ts.map +1 -1
  202. package/dist/components/index.esm.js +1 -24
  203. package/dist/components/input/Input.cjs.js +6 -5
  204. package/dist/components/input/Input.cjs.js.map +1 -1
  205. package/dist/components/input/Input.d.ts +4 -9
  206. package/dist/components/input/Input.d.ts.map +1 -1
  207. package/dist/components/input/Input.esm.js +73 -101
  208. package/dist/components/input/Input.esm.js.map +1 -1
  209. package/dist/components/input/Input.stories.d.ts +13 -22
  210. package/dist/components/input/Input.stories.d.ts.map +1 -1
  211. package/dist/components/input/Input.styles.cjs.js +1 -1
  212. package/dist/components/input/Input.styles.cjs.js.map +1 -1
  213. package/dist/components/input/Input.styles.esm.js +1 -1
  214. package/dist/components/input/Input.styles.esm.js.map +1 -1
  215. package/dist/components/input.js +1 -1
  216. package/dist/components/login-button/LoginButton.cjs.js.map +1 -1
  217. package/dist/components/login-button/LoginButton.stories.d.ts +4 -4
  218. package/dist/components/login-button/LoginButton.stories.d.ts.map +1 -1
  219. package/dist/components/login-button.js +1 -1
  220. package/dist/components/login-modal/LoginModal.cjs.js +1 -1
  221. package/dist/components/login-modal/LoginModal.cjs.js.map +1 -1
  222. package/dist/components/login-modal/LoginModal.esm.js +1 -1
  223. package/dist/components/login-modal/LoginModal.esm.js.map +1 -1
  224. package/dist/components/login-modal/LoginModal.stories.d.ts +13 -5
  225. package/dist/components/login-modal/LoginModal.stories.d.ts.map +1 -1
  226. package/dist/components/login-modal.js +1 -1
  227. package/dist/components/logout-button/LogoutButton.cjs.js.map +1 -1
  228. package/dist/components/logout-button/LogoutButton.stories.d.ts +4 -4
  229. package/dist/components/logout-button/LogoutButton.stories.d.ts.map +1 -1
  230. package/dist/components/logout-button.js +1 -1
  231. package/dist/components/menu/Menu.cjs.js +2 -2
  232. package/dist/components/menu/Menu.cjs.js.map +1 -1
  233. package/dist/components/menu/Menu.d.ts.map +1 -1
  234. package/dist/components/menu/Menu.esm.js +2 -2
  235. package/dist/components/menu/Menu.esm.js.map +1 -1
  236. package/dist/components/menu/Menu.stories.d.ts +3 -4
  237. package/dist/components/menu/Menu.stories.d.ts.map +1 -1
  238. package/dist/components/menu/Menu.styles.cjs.js +1 -1
  239. package/dist/components/menu/Menu.styles.cjs.js.map +1 -1
  240. package/dist/components/menu/Menu.styles.esm.js +1 -1
  241. package/dist/components/menu/Menu.styles.esm.js.map +1 -1
  242. package/dist/components/menu/Menu.test.d.ts +1 -0
  243. package/dist/components/menu/Menu.test.d.ts.map +1 -0
  244. package/dist/components/menu-item/MenuItem.cjs.js +4 -4
  245. package/dist/components/menu-item/MenuItem.cjs.js.map +1 -1
  246. package/dist/components/menu-item/MenuItem.d.ts +1 -0
  247. package/dist/components/menu-item/MenuItem.d.ts.map +1 -1
  248. package/dist/components/menu-item/MenuItem.esm.js +72 -55
  249. package/dist/components/menu-item/MenuItem.esm.js.map +1 -1
  250. package/dist/components/menu-item/MenuItem.styles.cjs.js +1 -1
  251. package/dist/components/menu-item/MenuItem.styles.cjs.js.map +1 -1
  252. package/dist/components/menu-item/MenuItem.styles.esm.js +1 -1
  253. package/dist/components/menu-item/MenuItem.styles.esm.js.map +1 -1
  254. package/dist/components/menu-item.js +1 -1
  255. package/dist/components/menu.js +1 -1
  256. package/dist/components/photo-capture/PhotoCapture.cjs.js +6 -0
  257. package/dist/components/photo-capture/PhotoCapture.cjs.js.map +1 -0
  258. package/dist/components/photo-capture/PhotoCapture.d.ts +20 -0
  259. package/dist/components/photo-capture/PhotoCapture.d.ts.map +1 -0
  260. package/dist/components/photo-capture/PhotoCapture.esm.js +404 -0
  261. package/dist/components/photo-capture/PhotoCapture.esm.js.map +1 -0
  262. package/dist/components/photo-capture/PhotoCapture.stories.d.ts +16 -0
  263. package/dist/components/photo-capture/PhotoCapture.stories.d.ts.map +1 -0
  264. package/dist/components/photo-capture/docs/photo-capture-sandbox/PhotoCaptureSandbox.d.ts +9 -0
  265. package/dist/components/photo-capture/docs/photo-capture-sandbox/PhotoCaptureSandbox.d.ts.map +1 -0
  266. package/dist/components/photo-capture/docs/photo-capture-sandbox/index.d.ts +4 -0
  267. package/dist/components/photo-capture/docs/photo-capture-sandbox/index.d.ts.map +1 -0
  268. package/dist/components/photo-capture/index.cjs.js +2 -1
  269. package/dist/components/photo-capture/index.cjs.js.map +1 -0
  270. package/dist/components/photo-capture/index.d.ts +4 -1
  271. package/dist/components/photo-capture/index.d.ts.map +1 -1
  272. package/dist/components/photo-capture/index.esm.js +7 -3
  273. package/dist/components/photo-capture/index.esm.js.map +1 -0
  274. package/dist/components/photo-capture-modal/PhotoCaptureModal.cjs.js +24 -0
  275. package/dist/components/photo-capture-modal/PhotoCaptureModal.cjs.js.map +1 -0
  276. package/dist/components/photo-capture-modal/PhotoCaptureModal.d.ts +42 -0
  277. package/dist/components/photo-capture-modal/PhotoCaptureModal.d.ts.map +1 -0
  278. package/dist/components/photo-capture-modal/PhotoCaptureModal.esm.js +562 -0
  279. package/dist/components/photo-capture-modal/PhotoCaptureModal.esm.js.map +1 -0
  280. package/dist/components/photo-capture-modal/PhotoCaptureModal.styles.cjs.js +2 -0
  281. package/dist/components/photo-capture-modal/PhotoCaptureModal.styles.cjs.js.map +1 -0
  282. package/dist/components/photo-capture-modal/PhotoCaptureModal.styles.esm.js +7 -0
  283. package/dist/components/photo-capture-modal/PhotoCaptureModal.styles.esm.js.map +1 -0
  284. package/dist/components/photo-capture-modal/index.cjs.js +2 -0
  285. package/dist/components/photo-capture-modal/index.cjs.js.map +1 -0
  286. package/dist/components/photo-capture-modal/index.d.ts +4 -0
  287. package/dist/components/photo-capture-modal/index.d.ts.map +1 -0
  288. package/dist/components/photo-capture-modal/index.esm.js +7 -0
  289. package/dist/components/photo-capture-modal/index.esm.js.map +1 -0
  290. package/dist/components/photo-capture-modal.js +2 -0
  291. package/dist/components/photo-capture.js +2 -2
  292. package/dist/components/provider/Provider.cjs.js +1 -1
  293. package/dist/components/provider/Provider.cjs.js.map +1 -1
  294. package/dist/components/provider/Provider.d.ts +3 -1
  295. package/dist/components/provider/Provider.d.ts.map +1 -1
  296. package/dist/components/provider/Provider.esm.js +3 -0
  297. package/dist/components/provider/Provider.esm.js.map +1 -1
  298. package/dist/components/provider.js +1 -1
  299. package/dist/components/rdf-form/RDFForm.cjs.js +12 -0
  300. package/dist/components/rdf-form/RDFForm.cjs.js.map +1 -0
  301. package/dist/components/rdf-form/RDFForm.d.ts +17 -0
  302. package/dist/components/rdf-form/RDFForm.d.ts.map +1 -0
  303. package/dist/components/rdf-form/RDFForm.esm.js +344 -0
  304. package/dist/components/rdf-form/RDFForm.esm.js.map +1 -0
  305. package/dist/components/rdf-form/RDForm.stories.d.ts +20 -0
  306. package/dist/components/rdf-form/RDForm.stories.d.ts.map +1 -0
  307. package/dist/components/rdf-form/index.cjs.js +2 -0
  308. package/dist/components/rdf-form/index.cjs.js.map +1 -0
  309. package/dist/components/rdf-form/index.d.ts +4 -0
  310. package/dist/components/rdf-form/index.d.ts.map +1 -0
  311. package/dist/components/rdf-form/index.esm.js +7 -0
  312. package/dist/components/rdf-form/index.esm.js.map +1 -0
  313. package/dist/components/rdf-form.js +2 -0
  314. package/dist/components/rdf-input/RDFInput.cjs.js +11 -0
  315. package/dist/components/rdf-input/RDFInput.cjs.js.map +1 -0
  316. package/dist/components/rdf-input/RDFInput.d.ts +24 -0
  317. package/dist/components/rdf-input/RDFInput.d.ts.map +1 -0
  318. package/dist/components/rdf-input/RDFInput.esm.js +349 -0
  319. package/dist/components/rdf-input/RDFInput.esm.js.map +1 -0
  320. package/dist/components/rdf-input/index.cjs.js +2 -0
  321. package/dist/components/rdf-input/index.cjs.js.map +1 -0
  322. package/dist/components/rdf-input/index.d.ts +4 -0
  323. package/dist/components/rdf-input/index.d.ts.map +1 -0
  324. package/dist/components/rdf-input/index.esm.js +7 -0
  325. package/dist/components/rdf-input/index.esm.js.map +1 -0
  326. package/dist/components/rdf-input.js +2 -0
  327. package/dist/components/select/Select.cjs.js +7 -6
  328. package/dist/components/select/Select.cjs.js.map +1 -1
  329. package/dist/components/select/Select.d.ts +14 -11
  330. package/dist/components/select/Select.d.ts.map +1 -1
  331. package/dist/components/select/Select.esm.js +72 -98
  332. package/dist/components/select/Select.esm.js.map +1 -1
  333. package/dist/components/select/Select.stories.d.ts +9 -13
  334. package/dist/components/select/Select.stories.d.ts.map +1 -1
  335. package/dist/components/select/index.cjs.js.map +1 -1
  336. package/dist/components/select/index.d.ts +1 -0
  337. package/dist/components/select/index.d.ts.map +1 -1
  338. package/dist/components/select/index.esm.js.map +1 -1
  339. package/dist/components/select-option/SelectOption.cjs.js.map +1 -1
  340. package/dist/components/select-option.js +1 -1
  341. package/dist/components/select.js +1 -1
  342. package/dist/components/signup-button/SignupButton.cjs.js.map +1 -1
  343. package/dist/components/signup-button/SignupButton.stories.d.ts +4 -4
  344. package/dist/components/signup-button/SignupButton.stories.d.ts.map +1 -1
  345. package/dist/components/signup-button.js +1 -1
  346. package/dist/components/solid-emblem.js +1 -1
  347. package/dist/components.js +26 -24
  348. package/dist/create/create.cjs.js +1 -1
  349. package/dist/create/create.cjs.js.map +1 -1
  350. package/dist/create/create.esm.js +2 -2
  351. package/dist/create/create.esm.js.map +1 -1
  352. package/dist/index.cjs.js +1 -1
  353. package/dist/index.cjs.js.map +1 -1
  354. package/dist/index.d.ts +2 -0
  355. package/dist/index.d.ts.map +1 -1
  356. package/dist/index.esm.js +15 -10
  357. package/dist/index.esm.js.map +1 -1
  358. package/dist/index.js +8 -7
  359. package/dist/lib/auth/NoopAuth.cjs.js +1 -1
  360. package/dist/lib/auth/NoopAuth.cjs.js.map +1 -1
  361. package/dist/lib/auth/NoopAuth.d.ts +2 -2
  362. package/dist/lib/auth/NoopAuth.d.ts.map +1 -1
  363. package/dist/lib/auth/NoopAuth.esm.js +2 -3
  364. package/dist/lib/auth/NoopAuth.esm.js.map +1 -1
  365. package/dist/lib/auth/SolidAuth.cjs.js +1 -1
  366. package/dist/lib/auth/SolidAuth.cjs.js.map +1 -1
  367. package/dist/lib/auth/SolidAuth.d.ts +6 -0
  368. package/dist/lib/auth/SolidAuth.d.ts.map +1 -1
  369. package/dist/lib/auth/SolidAuth.esm.js +33 -20
  370. package/dist/lib/auth/SolidAuth.esm.js.map +1 -1
  371. package/dist/lib/auth/context.cjs.js.map +1 -1
  372. package/dist/lib/auth/context.d.ts +2 -0
  373. package/dist/lib/auth/context.d.ts.map +1 -1
  374. package/dist/lib/auth/context.esm.js.map +1 -1
  375. package/dist/lib/code-editor/CodeEditor.cjs.js +2 -0
  376. package/dist/lib/code-editor/CodeEditor.cjs.js.map +1 -0
  377. package/dist/lib/code-editor/CodeEditor.d.ts +18 -0
  378. package/dist/lib/code-editor/CodeEditor.d.ts.map +1 -0
  379. package/dist/lib/code-editor/CodeEditor.esm.js +107 -0
  380. package/dist/lib/code-editor/CodeEditor.esm.js.map +1 -0
  381. package/dist/lib/code-editor/index.cjs.js +1 -0
  382. package/dist/lib/code-editor/index.d.ts +2 -0
  383. package/dist/lib/code-editor/index.d.ts.map +1 -0
  384. package/dist/lib/code-editor/index.esm.js +2 -0
  385. package/dist/lib/components/decorators.cjs.js.map +1 -1
  386. package/dist/lib/components/decorators.esm.js.map +1 -1
  387. package/dist/lib/components/dialog-component/DialogComponent.cjs.js +2 -0
  388. package/dist/lib/components/dialog-component/DialogComponent.cjs.js.map +1 -0
  389. package/dist/lib/components/dialog-component/DialogComponent.d.ts +10 -0
  390. package/dist/lib/components/dialog-component/DialogComponent.d.ts.map +1 -0
  391. package/dist/{chunks/guard-Cxl9QbaG.js → lib/components/dialog-component/DialogComponent.esm.js} +70 -67
  392. package/dist/lib/components/dialog-component/DialogComponent.esm.js.map +1 -0
  393. package/dist/lib/components/dialog-component/index.cjs.js +1 -0
  394. package/dist/lib/components/dialog-component/index.d.ts +4 -0
  395. package/dist/lib/components/dialog-component/index.d.ts.map +1 -0
  396. package/dist/lib/components/dialog-component/index.esm.js +2 -0
  397. package/dist/lib/components/form-control-component/FormControlComponent.cjs.js +2 -0
  398. package/dist/lib/components/form-control-component/FormControlComponent.cjs.js.map +1 -0
  399. package/dist/lib/components/form-control-component/FormControlComponent.d.ts +15 -0
  400. package/dist/lib/components/form-control-component/FormControlComponent.d.ts.map +1 -0
  401. package/dist/lib/components/form-control-component/FormControlComponent.esm.js +271 -0
  402. package/dist/lib/components/form-control-component/FormControlComponent.esm.js.map +1 -0
  403. package/dist/lib/components/form-control-component/index.cjs.js +1 -0
  404. package/dist/lib/components/form-control-component/index.d.ts +4 -0
  405. package/dist/lib/components/form-control-component/index.d.ts.map +1 -0
  406. package/dist/lib/components/form-control-component/index.esm.js +2 -0
  407. package/dist/lib/components/ids.cjs.js.map +1 -1
  408. package/dist/lib/components/ids.esm.js.map +1 -1
  409. package/dist/lib/components/index.cjs.js +1 -1
  410. package/dist/lib/components/index.d.ts +3 -1
  411. package/dist/lib/components/index.d.ts.map +1 -1
  412. package/dist/lib/components/index.esm.js +8 -4
  413. package/dist/lib/components/traits/DialogTrait.cjs.js +1 -1
  414. package/dist/lib/components/traits/DialogTrait.cjs.js.map +1 -1
  415. package/dist/lib/components/traits/DialogTrait.d.ts +2 -1
  416. package/dist/lib/components/traits/DialogTrait.d.ts.map +1 -1
  417. package/dist/lib/components/traits/DialogTrait.esm.js +26 -6
  418. package/dist/lib/components/traits/DialogTrait.esm.js.map +1 -1
  419. package/dist/lib/components/traits/FormControlTrait.cjs.js +2 -0
  420. package/dist/lib/components/traits/FormControlTrait.cjs.js.map +1 -0
  421. package/dist/lib/components/traits/FormControlTrait.d.ts +31 -0
  422. package/dist/lib/components/traits/FormControlTrait.d.ts.map +1 -0
  423. package/dist/lib/components/traits/FormControlTrait.esm.js +63 -0
  424. package/dist/lib/components/traits/FormControlTrait.esm.js.map +1 -0
  425. package/dist/lib/components/traits/index.cjs.js +1 -1
  426. package/dist/lib/components/traits/index.d.ts +2 -2
  427. package/dist/lib/components/traits/index.d.ts.map +1 -1
  428. package/dist/lib/components/traits/index.esm.js +2 -2
  429. package/dist/lib/components/web-component/WebComponent.cjs.js +1 -1
  430. package/dist/lib/components/web-component/WebComponent.cjs.js.map +1 -1
  431. package/dist/lib/components/web-component/WebComponent.d.ts +14 -3
  432. package/dist/lib/components/web-component/WebComponent.d.ts.map +1 -1
  433. package/dist/lib/components/web-component/WebComponent.esm.js +30 -7
  434. package/dist/lib/components/web-component/WebComponent.esm.js.map +1 -1
  435. package/dist/lib/components/web-component/WebComponent.styles.cjs.js +1 -1
  436. package/dist/lib/components/web-component/WebComponent.styles.esm.js +1 -1
  437. package/dist/lib/dialogs/Dialog.cjs.js +1 -1
  438. package/dist/lib/dialogs/Dialog.cjs.js.map +1 -1
  439. package/dist/lib/dialogs/Dialog.d.ts +4 -8
  440. package/dist/lib/dialogs/Dialog.d.ts.map +1 -1
  441. package/dist/lib/dialogs/Dialog.esm.js +1 -8
  442. package/dist/lib/dialogs/Dialog.esm.js.map +1 -1
  443. package/dist/lib/dialogs/context.cjs.js.map +1 -1
  444. package/dist/lib/dialogs/helpers.cjs.js +1 -1
  445. package/dist/lib/dialogs/helpers.cjs.js.map +1 -1
  446. package/dist/lib/dialogs/helpers.d.ts +7 -2
  447. package/dist/lib/dialogs/helpers.d.ts.map +1 -1
  448. package/dist/lib/dialogs/helpers.esm.js +5 -3
  449. package/dist/lib/dialogs/helpers.esm.js.map +1 -1
  450. package/dist/lib/file-explorer/context.cjs.js +2 -0
  451. package/dist/lib/file-explorer/context.cjs.js.map +1 -0
  452. package/dist/lib/file-explorer/context.d.ts +22 -0
  453. package/dist/lib/file-explorer/context.d.ts.map +1 -0
  454. package/dist/lib/file-explorer/context.esm.js +7 -0
  455. package/dist/lib/file-explorer/context.esm.js.map +1 -0
  456. package/dist/lib/forms/fieldParams.cjs.js +2 -0
  457. package/dist/lib/forms/fieldParams.cjs.js.map +1 -0
  458. package/dist/lib/forms/fieldParams.d.ts +21 -0
  459. package/dist/lib/forms/fieldParams.d.ts.map +1 -0
  460. package/dist/lib/forms/fieldParams.esm.js +74 -0
  461. package/dist/lib/forms/fieldParams.esm.js.map +1 -0
  462. package/dist/lib/forms/rdfFormsHelper.cjs.js +2 -0
  463. package/dist/lib/forms/rdfFormsHelper.cjs.js.map +1 -0
  464. package/dist/lib/forms/rdfFormsHelper.d.ts +16 -0
  465. package/dist/lib/forms/rdfFormsHelper.d.ts.map +1 -0
  466. package/dist/lib/forms/rdfFormsHelper.esm.js +34 -0
  467. package/dist/lib/forms/rdfFormsHelper.esm.js.map +1 -0
  468. package/dist/lib/forms/store/NoopStore.cjs.js +2 -0
  469. package/dist/lib/forms/store/NoopStore.cjs.js.map +1 -0
  470. package/dist/lib/forms/store/NoopStore.d.ts +6 -0
  471. package/dist/lib/forms/store/NoopStore.d.ts.map +1 -0
  472. package/dist/lib/forms/store/NoopStore.esm.js +10 -0
  473. package/dist/lib/forms/store/NoopStore.esm.js.map +1 -0
  474. package/dist/lib/forms/store/StoreContext.cjs.js +2 -0
  475. package/dist/lib/forms/store/StoreContext.cjs.js.map +1 -0
  476. package/dist/lib/forms/store/StoreContext.d.ts +10 -0
  477. package/dist/lib/forms/store/StoreContext.d.ts.map +1 -0
  478. package/dist/lib/forms/store/StoreContext.esm.js +8 -0
  479. package/dist/lib/forms/store/StoreContext.esm.js.map +1 -0
  480. package/dist/lib/iconBase.cjs.js +1 -1
  481. package/dist/lib/iconBase.cjs.js.map +1 -1
  482. package/dist/lib/iconBase.esm.js +6 -6
  483. package/dist/lib/iconBase.esm.js.map +1 -1
  484. package/dist/lib/log.cjs.js +1 -1
  485. package/dist/lib/log.cjs.js.map +1 -1
  486. package/dist/lib/log.esm.js +10 -8
  487. package/dist/lib/log.esm.js.map +1 -1
  488. package/dist/lib/messageArea.cjs.js +1 -1
  489. package/dist/lib/messageArea.cjs.js.map +1 -1
  490. package/dist/lib/messageArea.esm.js +67 -62
  491. package/dist/lib/messageArea.esm.js.map +1 -1
  492. package/dist/lib/ns.cjs.js.map +1 -1
  493. package/dist/lib/pad.cjs.js +1 -1
  494. package/dist/lib/pad.cjs.js.map +1 -1
  495. package/dist/lib/pad.esm.js +17 -9
  496. package/dist/lib/pad.esm.js.map +1 -1
  497. package/dist/lib/participation.cjs.js +1 -1
  498. package/dist/lib/participation.cjs.js.map +1 -1
  499. package/dist/lib/participation.esm.js +4 -2
  500. package/dist/lib/participation.esm.js.map +1 -1
  501. package/dist/lib/preferences.cjs.js +1 -1
  502. package/dist/lib/preferences.cjs.js.map +1 -1
  503. package/dist/lib/preferences.esm.js +9 -7
  504. package/dist/lib/preferences.esm.js.map +1 -1
  505. package/dist/lib/style.cjs.js +1 -1
  506. package/dist/lib/style.cjs.js.map +1 -1
  507. package/dist/lib/style.esm.js +1 -1
  508. package/dist/lib/style.esm.js.map +1 -1
  509. package/dist/lib/table.cjs.js +2 -2
  510. package/dist/lib/table.cjs.js.map +1 -1
  511. package/dist/lib/table.esm.js +2 -2
  512. package/dist/lib/table.esm.js.map +1 -1
  513. package/dist/lib/timing.cjs.js +2 -0
  514. package/dist/lib/timing.cjs.js.map +1 -0
  515. package/dist/lib/timing.d.ts +6 -0
  516. package/dist/lib/timing.d.ts.map +1 -0
  517. package/dist/lib/timing.esm.js +13 -0
  518. package/dist/lib/timing.esm.js.map +1 -0
  519. package/dist/lib/values.cjs.js +2 -0
  520. package/dist/lib/values.cjs.js.map +1 -0
  521. package/dist/lib/values.d.ts +2 -0
  522. package/dist/lib/values.d.ts.map +1 -0
  523. package/dist/lib/values.esm.js +8 -0
  524. package/dist/lib/values.esm.js.map +1 -0
  525. package/dist/loader.js +8 -7
  526. package/dist/login/login.cjs.js +1 -1
  527. package/dist/login/login.cjs.js.map +1 -1
  528. package/dist/login/login.d.ts.map +1 -1
  529. package/dist/login/login.esm.js +6 -0
  530. package/dist/login/login.esm.js.map +1 -1
  531. package/dist/media/media-capture.esm.js +2 -1
  532. package/dist/media/media-capture.esm.js.map +1 -1
  533. package/dist/solid-ui.js +835 -531
  534. package/dist/solid-ui.min.js +835 -531
  535. package/dist/solid-ui.min.js.map +1 -1
  536. package/dist/storybook/auth/StorybookAuth.d.ts +1 -0
  537. package/dist/storybook/auth/StorybookAuth.d.ts.map +1 -1
  538. package/dist/storybook/components/StorybookProvider.d.ts +4 -1
  539. package/dist/storybook/components/StorybookProvider.d.ts.map +1 -1
  540. package/dist/storybook/helpers.d.ts +2 -6
  541. package/dist/storybook/helpers.d.ts.map +1 -1
  542. package/dist/storybook/store/StorybookStore.d.ts +6 -0
  543. package/dist/storybook/store/StorybookStore.d.ts.map +1 -0
  544. package/dist/storybook/stubs.d.ts +7 -3
  545. package/dist/storybook/stubs.d.ts.map +1 -1
  546. package/dist/theme.css +1 -1
  547. package/dist/utils/headerFooterHelpers.cjs.js +1 -1
  548. package/dist/utils/headerFooterHelpers.cjs.js.map +1 -1
  549. package/dist/utils/headerFooterHelpers.esm.js +2 -1
  550. package/dist/utils/headerFooterHelpers.esm.js.map +1 -1
  551. package/dist/utils/index.cjs.js +1 -1
  552. package/dist/utils/index.cjs.js.map +1 -1
  553. package/dist/utils/index.esm.js +1 -1
  554. package/dist/utils/index.esm.js.map +1 -1
  555. package/dist/utils/keyHelpers/accessData.cjs.js +1 -1
  556. package/dist/utils/keyHelpers/accessData.cjs.js.map +1 -1
  557. package/dist/utils/keyHelpers/accessData.d.ts +3 -3
  558. package/dist/utils/keyHelpers/accessData.d.ts.map +1 -1
  559. package/dist/utils/keyHelpers/accessData.esm.js +2 -1
  560. package/dist/utils/keyHelpers/accessData.esm.js.map +1 -1
  561. package/dist/utils/keyHelpers/otherHelpers.d.ts +1 -1
  562. package/dist/utils/keyHelpers/otherHelpers.d.ts.map +1 -1
  563. package/dist/widgets/buttons.cjs.js +3 -3
  564. package/dist/widgets/buttons.cjs.js.map +1 -1
  565. package/dist/widgets/buttons.esm.js +11 -6
  566. package/dist/widgets/buttons.esm.js.map +1 -1
  567. package/dist/widgets/dragAndDrop.cjs.js +1 -1
  568. package/dist/widgets/dragAndDrop.cjs.js.map +1 -1
  569. package/dist/widgets/dragAndDrop.esm.js +1 -1
  570. package/dist/widgets/dragAndDrop.esm.js.map +1 -1
  571. package/dist/widgets/forms/autocomplete/autocompleteBar.esm.js +25 -18
  572. package/dist/widgets/forms/autocomplete/autocompleteBar.esm.js.map +1 -1
  573. package/dist/widgets/forms/autocomplete/autocompleteField.cjs.js.map +1 -1
  574. package/dist/widgets/forms/autocomplete/publicData.cjs.js +1 -1
  575. package/dist/widgets/forms/autocomplete/publicData.cjs.js.map +1 -1
  576. package/dist/widgets/forms/autocomplete/publicData.d.ts +3 -3
  577. package/dist/widgets/forms/autocomplete/publicData.d.ts.map +1 -1
  578. package/dist/widgets/forms/autocomplete/publicData.esm.js +6 -4
  579. package/dist/widgets/forms/autocomplete/publicData.esm.js.map +1 -1
  580. package/dist/widgets/forms/basic.cjs.js +1 -1
  581. package/dist/widgets/forms/basic.cjs.js.map +1 -1
  582. package/dist/widgets/forms/basic.esm.js +27 -25
  583. package/dist/widgets/forms/basic.esm.js.map +1 -1
  584. package/dist/widgets/forms/formStyle.cjs.js +1 -1
  585. package/dist/widgets/forms/formStyle.cjs.js.map +1 -1
  586. package/dist/widgets/forms/formStyle.esm.js +4 -4
  587. package/dist/widgets/forms/formStyle.esm.js.map +1 -1
  588. package/dist/widgets/forms.cjs.js +2 -2
  589. package/dist/widgets/forms.cjs.js.map +1 -1
  590. package/dist/widgets/forms.esm.js +24 -20
  591. package/dist/widgets/forms.esm.js.map +1 -1
  592. package/dist/widgets/multiSelect.cjs.js +1 -1
  593. package/dist/widgets/multiSelect.cjs.js.map +1 -1
  594. package/dist/widgets/multiSelect.esm.js +3 -2
  595. package/dist/widgets/multiSelect.esm.js.map +1 -1
  596. package/dist/widgets/peoplePicker.cjs.js.map +1 -1
  597. package/package.json +18 -5
  598. package/dist/chunks/DialogProvider-Bt65G0Tk.js.map +0 -1
  599. package/dist/chunks/account-CWY924jw.js.map +0 -1
  600. package/dist/chunks/auth-DIRGfFle.js.map +0 -1
  601. package/dist/chunks/avatar-CLJz6mOV.js.map +0 -1
  602. package/dist/chunks/chunk.K442ELDU-TtQSV9g1.js.map +0 -1
  603. package/dist/chunks/combobox-B7a6BjQr.js +0 -473
  604. package/dist/chunks/combobox-B7a6BjQr.js.map +0 -1
  605. package/dist/chunks/components-C1LEhsaK.js +0 -124
  606. package/dist/chunks/components-C1LEhsaK.js.map +0 -1
  607. package/dist/chunks/context-uE5jJlS0.js +0 -22
  608. package/dist/chunks/context-uE5jJlS0.js.map +0 -1
  609. package/dist/chunks/decorators-BiCkPd_3.js +0 -84
  610. package/dist/chunks/decorators-BiCkPd_3.js.map +0 -1
  611. package/dist/chunks/dialog-Bn4qiZi-.js.map +0 -1
  612. package/dist/chunks/dialogs-root-Cv932Aqm.js.map +0 -1
  613. package/dist/chunks/footer-kVa_uMeQ.js +0 -144
  614. package/dist/chunks/footer-kVa_uMeQ.js.map +0 -1
  615. package/dist/chunks/guard-Cxl9QbaG.js.map +0 -1
  616. package/dist/chunks/headerFooterHelpers-BiZ6X10e.js +0 -52
  617. package/dist/chunks/headerFooterHelpers-BiZ6X10e.js.map +0 -1
  618. package/dist/chunks/input-BF224Jid.js.map +0 -1
  619. package/dist/chunks/lit-C4H1jI4q.js +0 -527
  620. package/dist/chunks/lit-C4H1jI4q.js.map +0 -1
  621. package/dist/chunks/menu-DNcuV-1J.js.map +0 -1
  622. package/dist/chunks/menu-item-CWg-eS4V.js.map +0 -1
  623. package/dist/chunks/photo-capture-tiBsdSbA.js +0 -624
  624. package/dist/chunks/photo-capture-tiBsdSbA.js.map +0 -1
  625. package/dist/chunks/provider-D0RqwRoM.js.map +0 -1
  626. package/dist/chunks/select-D8dW53pr.js.map +0 -1
  627. package/dist/chunks/solid-logic.esm-BhVcNu8u.js.map +0 -1
  628. package/dist/chunks/src-Dxxeu4rj.js +0 -15988
  629. package/dist/chunks/src-Dxxeu4rj.js.map +0 -1
  630. package/dist/components/footer/index.cjs.js +0 -1
  631. package/dist/components/footer/index.d.ts +0 -2
  632. package/dist/components/footer/index.d.ts.map +0 -1
  633. package/dist/components/footer/index.esm.js +0 -3
  634. package/dist/components/footer.js +0 -2
  635. package/dist/lib/components/traits/InputTrait.cjs.js +0 -2
  636. package/dist/lib/components/traits/InputTrait.cjs.js.map +0 -1
  637. package/dist/lib/components/traits/InputTrait.d.ts +0 -30
  638. package/dist/lib/components/traits/InputTrait.d.ts.map +0 -1
  639. package/dist/lib/components/traits/InputTrait.esm.js +0 -45
  640. package/dist/lib/components/traits/InputTrait.esm.js.map +0 -1
  641. package/dist/v2/components/layout/footer/Footer.cjs.js +0 -73
  642. package/dist/v2/components/layout/footer/Footer.cjs.js.map +0 -1
  643. package/dist/v2/components/layout/footer/Footer.d.ts +0 -60
  644. package/dist/v2/components/layout/footer/Footer.d.ts.map +0 -1
  645. package/dist/v2/components/layout/footer/Footer.esm.js +0 -143
  646. package/dist/v2/components/layout/footer/Footer.esm.js.map +0 -1
  647. package/dist/v2/components/layout/footer/Footer.test.d.ts +0 -1
  648. package/dist/v2/components/layout/footer/Footer.test.d.ts.map +0 -1
  649. package/dist/v2/components/layout/footer/index.cjs.js +0 -2
  650. package/dist/v2/components/layout/footer/index.cjs.js.map +0 -1
  651. package/dist/v2/components/layout/footer/index.d.ts +0 -3
  652. package/dist/v2/components/layout/footer/index.d.ts.map +0 -1
  653. package/dist/v2/components/layout/footer/index.esm.js +0 -8
  654. package/dist/v2/components/layout/footer/index.esm.js.map +0 -1
  655. package/dist/v2/components/media/photoCapture/PhotoCapture.cjs.js +0 -281
  656. package/dist/v2/components/media/photoCapture/PhotoCapture.cjs.js.map +0 -1
  657. package/dist/v2/components/media/photoCapture/PhotoCapture.d.ts +0 -200
  658. package/dist/v2/components/media/photoCapture/PhotoCapture.d.ts.map +0 -1
  659. package/dist/v2/components/media/photoCapture/PhotoCapture.esm.js +0 -623
  660. package/dist/v2/components/media/photoCapture/PhotoCapture.esm.js.map +0 -1
  661. package/dist/v2/components/media/photoCapture/PhotoCapture.test.d.ts +0 -1
  662. package/dist/v2/components/media/photoCapture/PhotoCapture.test.d.ts.map +0 -1
  663. package/dist/v2/components/media/photoCapture/index.cjs.js +0 -2
  664. package/dist/v2/components/media/photoCapture/index.cjs.js.map +0 -1
  665. package/dist/v2/components/media/photoCapture/index.d.ts +0 -3
  666. package/dist/v2/components/media/photoCapture/index.d.ts.map +0 -1
  667. package/dist/v2/components/media/photoCapture/index.esm.js +0 -8
  668. package/dist/v2/components/media/photoCapture/index.esm.js.map +0 -1
@@ -1,2 +1,2 @@
1
- const e=require("../../lib/ns.cjs.js"),t=require("../../utils/label.cjs.js");require("../../utils/index.cjs.js");const n=require("../../lib/styleConstants.cjs.js"),r=require("../../lib/style.cjs.js"),i=require("../error.cjs.js"),a=require("./fieldParams.cjs.js"),o=require("./fieldFunction.cjs.js");let s=require("rdflib");var c=require("solid-logic").solidLogicSingleton.store;function l(t,a,o,s,c){o.style.display=`flex`,o.style.flexDirection=`row`;let l=o.appendChild(t.createElement(`div`));l.style.width=n.default.formFieldNameBoxWidth;let d=o.appendChild(t.createElement(`div`));return l.setAttribute(`class`,`formFieldName`),l.setAttribute(`style`,r.style.formFieldNameBoxStyle),d.setAttribute(`class`,`formFieldValue`),c?l.appendChild(t.createTextNode(c)):a.any(s,e.default.ui(`property`))?l.appendChild(u(t,a.any(s,e.default.ui(`property`)),s)):(d.appendChild(i.errorMessageBlock(t,`No property or label given for form field: `+s)),l.appendChild(t.createTextNode(`???`))),d}function u(n,r,i){let a=c.any(i,e.default.ui(`label`));if(a||=t.label(r,!0),r===void 0)return n.createTextNode(`@@Internal error: undefined property`);let o=n.createElement(`a`);return r.uri&&o.setAttribute(`href`,r.uri),o.setAttribute(`style`,`color: #3B5998; text-decoration: none;`),o.textContent=a,o}function d(e,t,n){let r=c.statementsMatching(e,t);if(r.length===0)return n;if(!c.updater)throw Error(`Store has no updater`);return r.length>0&&r[0].why.value&&c.updater.editable(r[0].why.value,c)?c.sym(r[0].why.value):n}function f(t,u,f,p,m,h,g){let _=c,v=m.doc?m.doc():null,y=t.createElement(`div`),b=_.any(m,e.default.ui(`property`));if(u&&u.appendChild(y),!b)return y.appendChild(i.errorMessageBlock(t,`Error: No property given for text field: `+m));let x=l(t,_,y,m),S=_.anyJS(m,e.default.ui(`suppressEmptyUneditable`),null,v),C=a.fieldParams[o.mostSpecificClassURI(m)];C===void 0&&(C={style:``});let w=C.style||``,T=r.style.textInputStyle+w,E=t.createElement(`input`);E.style=T,x.appendChild(E),E.setAttribute(`type`,C.type?C.type:`text`);let D=(E.getAttribute(`type`)||``).toLowerCase(),O=D===`date`||D===`datetime-local`,k=_.anyJS(m,e.default.ui(`size`))||n.default.textInputSize||20;E.setAttribute(`size`,k);let A=_.any(m,e.default.ui(`maxLength`));E.setAttribute(`maxLength`,A?``+A:n.default.basicMaxLength),h||=d(p,b,h);let j=_.any(p,b,void 0,h);if(j||=_.any(m,e.default.ui(`default`)),j&&j.value&&C.uriPrefix?E.value=decodeURIComponent(j.value.replace(C.uriPrefix,``)).replace(/ /g,``):j&&(E.value=j.value||j.value||``),E.setAttribute(`style`,T),!_.updater)throw Error(`kb has no updater`);return _.updater.editable(h.uri)?(E.addEventListener(`keyup`,function(e){C.pattern&&E.setAttribute(`style`,T+(E.value.match(C.pattern)?`color: green;`:`color: red;`))},!0),E.addEventListener(`change`,function(n){if(O&&t.activeElement===E){E.dataset&&(E.dataset.deferredChange=`true`);return}if(C.pattern&&!E.value.match(C.pattern))return;let r=!O;r&&(E.disabled=!0),E.setAttribute(`style`,T+`color: gray;`);let a=_.statementsMatching(p,b),o;C.namedNode?o=_.sym(E.value):C.uriPrefix?(o=encodeURIComponent(E.value.replace(/ /g,``)),o=_.sym(C.uriPrefix+E.value)):o=C.dt?new s.Literal(E.value.trim(),void 0,e.default.xsd(C.dt)):new s.Literal(E.value);let c=a.map(e=>(0,s.st)(e.subject,e.predicate,o,e.why));c.length===0&&(c=[(0,s.st)(p,b,o,h)]);function l(e,t,n){let r=[];if(t.forEach(e=>{r.includes(e.why.uri)||r.push(e.why.uri)}),e.forEach(e=>{r.includes(e.why.uri)||r.push(e.why.uri)}),r.length===0)throw Error(`updateMany has no docs to patch`);if(!_.updater)throw Error(`kb has no updater`);if(r.length===1)return _.updater.update(e,t,n);let i=r.pop(),a=t.filter(e=>e.why.uri===i),o=t.filter(e=>e.why.uri!==i),s=e.filter(e=>e.why.uri===i),c=e.filter(e=>e.why.uri!==i);_.updater.update(s,a,function(e,t,r){t?l(c,o,n):n(e,t,r)})}l(a,c,function(e,n,a){n?(r&&(E.disabled=!1),E.setAttribute(`style`,T)):y.appendChild(i.errorMessageBlock(t,a)),g(n,a)})},!0),E.addEventListener(`blur`,function(e){if(O&&E.dataset&&E.dataset.deferredChange===`true`){delete E.dataset.deferredChange;let e=new Event(`change`,{bubbles:!0});E.dispatchEvent(e)}},!0),y):(E.readOnly=!0,E.style=r.style.textInputStyleUneditable+w,S&&E.value===``&&(y.style.display=`none`),y)}exports.basicField=f,exports.fieldLabel=u,exports.fieldStore=d,exports.renderNameValuePair=l;
1
+ const e=require("../../lib/ns.cjs.js"),t=require("../../utils/label.cjs.js");require("../../utils/index.cjs.js");const n=require("../../lib/styleConstants.cjs.js"),r=require("../../lib/style.cjs.js"),i=require("../error.cjs.js"),a=require("./fieldParams.cjs.js"),o=require("./fieldFunction.cjs.js");let s=require("rdflib");var c=require("solid-logic").solidLogicSingleton.store;function l(t,a,o,s,c){o.style.display=`flex`,o.style.flexDirection=`row`;let l=o.appendChild(t.createElement(`div`));l.style.width=n.default.formFieldNameBoxWidth;let d=o.appendChild(t.createElement(`div`));return l.setAttribute(`class`,`formFieldName`),l.setAttribute(`style`,r.style.formFieldNameBoxStyle),d.setAttribute(`class`,`formFieldValue`),c?l.appendChild(t.createTextNode(c)):a.any(s,e.default.ui(`property`))?l.appendChild(u(t,a.any(s,e.default.ui(`property`)),s)):(d.appendChild(i.errorMessageBlock(t,`No property or label given for form field: `+s)),l.appendChild(t.createTextNode(`???`))),d}function u(n,r,i){let a=c.any(i,e.default.ui(`label`));if(a||=t.label(r,!0),r===void 0)return n.createTextNode(`@@Internal error: undefined property`);let o=n.createElement(`a`);return r.uri&&o.setAttribute(`href`,r.uri),o.setAttribute(`style`,`color: #3B5998; text-decoration: none;`),o.textContent=a,o}function d(e,t,n){let r=c.statementsMatching(e,t);if(r.length===0)return n;if(!c.updater)throw Error(`Store has no updater`);return r.length>0&&r[0].why.value&&c.updater.editable(r[0].why.value,c)?c.sym(r[0].why.value):n}function f(t,u,f,p,m,h,g){let _=c,v=m.doc?m.doc():null,y=t.createElement(`div`),b=_.any(m,e.default.ui(`property`));if(u&&u.appendChild(y),!b)return y.appendChild(i.errorMessageBlock(t,`Error: No property given for text field: `+m));let x=l(t,_,y,m),S=_.anyJS(m,e.default.ui(`suppressEmptyUneditable`),null,v),C=o.mostSpecificClassURI(m),w=a.fieldParams[C];w===void 0&&(w={style:``});let T=w.style||``,E=r.style.textInputStyle+T,D=t.createElement(`input`);D.style=E,x.appendChild(D),D.setAttribute(`type`,w.type?w.type:`text`);let O=(D.getAttribute(`type`)||``).toLowerCase(),k=O===`date`||O===`datetime-local`,A=_.anyJS(m,e.default.ui(`size`))||n.default.textInputSize||20;D.setAttribute(`size`,A);let j=_.any(m,e.default.ui(`maxLength`));D.setAttribute(`maxLength`,j?``+j:n.default.basicMaxLength),h||=d(p,b,h);let M=_.any(p,b,void 0,h);if(M||=_.any(m,e.default.ui(`default`)),M&&M.value&&w.uriPrefix?D.value=decodeURIComponent(M.value.replace(w.uriPrefix,``)).replace(/ /g,``):M&&(D.value=M.value||M.value||``),D.setAttribute(`style`,E),!_.updater)throw Error(`kb has no updater`);return _.updater.editable(h.uri)?(D.addEventListener(`keyup`,function(e){w.pattern&&D.setAttribute(`style`,E+(D.value.match(w.pattern)?`color: green;`:`color: red;`))},!0),D.addEventListener(`change`,function(n){if(k&&t.activeElement===D){D.dataset&&(D.dataset.deferredChange=`true`);return}if(w.pattern&&!D.value.match(w.pattern))return;let r=!k;r&&(D.disabled=!0),D.setAttribute(`style`,E+`color: gray;`);let a=_.statementsMatching(p,b),o;w.namedNode?o=_.sym(D.value):w.uriPrefix?(o=encodeURIComponent(D.value.replace(/ /g,``)),o=_.sym(w.uriPrefix+D.value)):o=w.dt?new s.Literal(D.value.trim(),void 0,e.default.xsd(w.dt)):new s.Literal(D.value);let c=a.map(e=>(0,s.st)(e.subject,e.predicate,o,e.why));c.length===0&&(c=[(0,s.st)(p,b,o,h)]);function l(e,t,n){let r=[];if(t.forEach(e=>{r.includes(e.why.uri)||r.push(e.why.uri)}),e.forEach(e=>{r.includes(e.why.uri)||r.push(e.why.uri)}),r.length===0)throw Error(`updateMany has no docs to patch`);if(!_.updater)throw Error(`kb has no updater`);if(r.length===1)return _.updater.update(e,t,n);let i=r.pop(),a=t.filter(e=>e.why.uri===i),o=t.filter(e=>e.why.uri!==i),s=e.filter(e=>e.why.uri===i),c=e.filter(e=>e.why.uri!==i);_.updater.update(s,a,function(e,t,r){t?l(c,o,n):n(e,t,r)})}l(a,c,function(e,n,a){n?(r&&(D.disabled=!1),D.setAttribute(`style`,E)):y.appendChild(i.errorMessageBlock(t,a)),g(n,a)})},!0),D.addEventListener(`blur`,function(e){if(k&&D.dataset&&D.dataset.deferredChange===`true`){delete D.dataset.deferredChange;let e=new Event(`change`,{bubbles:!0});D.dispatchEvent(e)}},!0),y):(D.readOnly=!0,D.style=r.style.textInputStyleUneditable+T,S&&D.value===``&&(y.style.display=`none`),y)}exports.basicField=f,exports.fieldLabel=u,exports.fieldStore=d,exports.renderNameValuePair=l;
2
2
  //# sourceMappingURL=basic.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"basic.cjs.js","names":[],"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":[],"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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"}
@@ -32,28 +32,30 @@ 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 = a[o(h)];
36
- w === void 0 && (w = { style: "" });
37
- let T = w.style || "", E = r.textInputStyle + T, D = t.createElement("input");
38
- D.style = E, S.appendChild(D), D.setAttribute("type", w.type ? w.type : "text");
39
- let O = (D.getAttribute("type") || "").toLowerCase(), k = O === "date" || O === "datetime-local", A = v.anyJS(h, e.ui("size")) || n.textInputSize || 20;
40
- D.setAttribute("size", A);
41
- let j = v.any(h, e.ui("maxLength"));
42
- D.setAttribute("maxLength", j ? "" + j : n.basicMaxLength), g ||= p(m, x, g);
43
- let M = v.any(m, x, void 0, g);
44
- if (M ||= v.any(h, e.ui("default")), M && M.value && w.uriPrefix ? D.value = decodeURIComponent(M.value.replace(w.uriPrefix, "")).replace(/ /g, "") : M && (D.value = M.value || M.value || ""), D.setAttribute("style", E), !v.updater) throw Error("kb has no updater");
45
- return v.updater.editable(g.uri) ? (D.addEventListener("keyup", function(e) {
46
- w.pattern && D.setAttribute("style", E + (D.value.match(w.pattern) ? "color: green;" : "color: red;"));
47
- }, !0), D.addEventListener("change", function(n) {
48
- if (k && t.activeElement === D) {
49
- D.dataset && (D.dataset.deferredChange = "true");
35
+ let S = d(t, v, b, h), C = v.anyJS(h, e.ui("suppressEmptyUneditable"), null, y), w = o(h), T = a[w];
36
+ T === void 0 && (T = { style: "" });
37
+ let E = T.style || "", D = r.textInputStyle + E, O = t.createElement("input");
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;
40
+ O.setAttribute("size", j);
41
+ let M = v.any(h, e.ui("maxLength"));
42
+ O.setAttribute("maxLength", M ? "" + M : n.basicMaxLength), g ||= p(m, x, g);
43
+ let N = v.any(m, x, void 0, g);
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
+ /* istanbul ignore next */
46
+ (O.value = N.value || N.value || ""), O.setAttribute("style", D), !v.updater) throw Error("kb has no updater");
47
+ return v.updater.editable(g.uri) ? (O.addEventListener("keyup", function(e) {
48
+ T.pattern && O.setAttribute("style", D + (O.value.match(T.pattern) ? "color: green;" : "color: red;"));
49
+ }, !0), O.addEventListener("change", function(n) {
50
+ if (A && t.activeElement === O) {
51
+ O.dataset && (O.dataset.deferredChange = "true");
50
52
  return;
51
53
  }
52
- if (w.pattern && !D.value.match(w.pattern)) return;
53
- let r = !k;
54
- r && (D.disabled = !0), D.setAttribute("style", E + "color: gray;");
54
+ if (T.pattern && !O.value.match(T.pattern)) return;
55
+ let r = !A;
56
+ r && (O.disabled = !0), O.setAttribute("style", D + "color: gray;");
55
57
  let a = v.statementsMatching(m, x), o;
56
- w.namedNode ? o = v.sym(D.value) : w.uriPrefix ? (o = encodeURIComponent(D.value.replace(/ /g, "")), o = v.sym(w.uriPrefix + D.value)) : o = w.dt ? new s(D.value.trim(), void 0, e.xsd(w.dt)) : new s(D.value);
58
+ T.namedNode ? o = v.sym(O.value) : T.uriPrefix ? (o = encodeURIComponent(O.value.replace(/ /g, "")), o = v.sym(T.uriPrefix + O.value)) : o = T.dt ? new s(O.value.trim(), void 0, e.xsd(T.dt)) : new s(O.value);
57
59
  let l = a.map((e) => c(e.subject, e.predicate, o, e.why));
58
60
  l.length === 0 && (l = [c(m, x, o, g)]);
59
61
  function u(e, t, n) {
@@ -73,15 +75,15 @@ function m(t, l, f, m, h, g, _) {
73
75
  });
74
76
  }
75
77
  u(a, l, function(e, n, a) {
76
- n ? (r && (D.disabled = !1), D.setAttribute("style", E)) : b.appendChild(i(t, a)), _(n, a);
78
+ n ? (r && (O.disabled = !1), O.setAttribute("style", D)) : b.appendChild(i(t, a)), _(n, a);
77
79
  });
78
- }, !0), D.addEventListener("blur", function(e) {
79
- if (k && D.dataset && D.dataset.deferredChange === "true") {
80
- delete D.dataset.deferredChange;
80
+ }, !0), O.addEventListener("blur", function(e) {
81
+ if (A && O.dataset && O.dataset.deferredChange === "true") {
82
+ delete O.dataset.deferredChange;
81
83
  let e = new Event("change", { bubbles: !0 });
82
- D.dispatchEvent(e);
84
+ O.dispatchEvent(e);
83
85
  }
84
- }, !0), b) : (D.readOnly = !0, D.style = r.textInputStyleUneditable + T, C && D.value === "" && (b.style.display = "none"), b);
86
+ }, !0), b) : (O.readOnly = !0, O.style = r.textInputStyleUneditable + E, C && O.value === "" && (b.style.display = "none"), b);
85
87
  }
86
88
  //#endregion
87
89
  export { m as basicField, f as fieldLabel, p as fieldStore, d as renderNameValuePair };
@@ -1 +1 @@
1
- {"version":3,"file":"basic.esm.js","names":[],"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.esm.js","names":[],"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,2 +1,2 @@
1
- const e=require("../../lib/ns.cjs.js"),t=require("./fieldParams.cjs.js"),n=require("./fieldFunction.cjs.js");let r=require("solid-logic");var i=`https://www.w3.org/ns/css#`;function a(a,o){let s=t.fieldParams[n.mostSpecificClassURI(o)]||{},c=r.store.any(o,e.default.ui(`style`));if(!c){s.style&&a.setAttribute(`style`,s.style);return}c.termType===`Literal`?c&&a.setAttribute(`style`,c.value):r.store.statementsMatching(c,null,null,o.doc()).forEach(e=>{if(e.predicate.uri&&e.predicate.uri.startsWith(i)){let t=e.predicate.uri.slice(26);try{a.style[t]=e.object.value}catch{console.warn(`setFieldStyle: Error setting element style ${t} to "${e.object.value}"`),console.warn(`setFieldStyle: ... Element tagName was "${a.tagName||`???`}"`)}}})}exports.setFieldStyle=a;
1
+ const e=require("../../lib/ns.cjs.js"),t=require("./fieldParams.cjs.js"),n=require("./fieldFunction.cjs.js");let r=require("solid-logic");var i=`https://www.w3.org/ns/css#`;function a(a,o){let s=n.mostSpecificClassURI(o),c=t.fieldParams[s]||{},l=r.store.any(o,e.default.ui(`style`));if(!l){c.style&&a.setAttribute(`style`,c.style);return}l.termType===`Literal`?l&&a.setAttribute(`style`,l.value):r.store.statementsMatching(l,null,null,o.doc()).forEach(e=>{if(e.predicate.uri&&e.predicate.uri.startsWith(i)){let t=e.predicate.uri.slice(26);try{a.style[t]=e.object.value}catch{console.warn(`setFieldStyle: Error setting element style ${t} to "${e.object.value}"`),console.warn(`setFieldStyle: ... Element tagName was "${a.tagName||`???`}"`)}}})}exports.setFieldStyle=a;
2
2
  //# sourceMappingURL=formStyle.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formStyle.cjs.js","names":[],"sources":["../../../src/widgets/forms/formStyle.ts"],"sourcesContent":["import ns from '../../lib/ns'\nimport { Node } from 'rdflib'\nimport { store } from 'solid-logic'\nimport { fieldParams } from './fieldParams'\n\nimport { mostSpecificClassURI } from './fieldFunction'\n\nconst STYLE_URI_PREFIX = 'https://www.w3.org/ns/css#'\n\nexport function setFieldStyle (ele:HTMLElement, field:Node) {\n const classUri = mostSpecificClassURI(field)\n const params = fieldParams[classUri] || {}\n\n const style = store.any(field as any, ns.ui('style'))\n if (!style) {\n if (params.style) {\n ele.setAttribute('style', params.style)\n }\n return\n }\n if (style.termType === 'Literal') {\n if (style) ele.setAttribute('style', style.value)\n } else {\n const sts = store.statementsMatching(style as any, null, null, (field as any).doc())\n sts.forEach(st => {\n if (st.predicate.uri && st.predicate.uri.startsWith(STYLE_URI_PREFIX)) {\n const cssAttribute = st.predicate.uri.slice(STYLE_URI_PREFIX.length)\n try {\n ele.style[cssAttribute] = st.object.value\n } catch (_err) {\n console.warn(`setFieldStyle: Error setting element style ${cssAttribute} to \"${st.object.value}\"`)\n console.warn(`setFieldStyle: ... Element tagName was \"${ele.tagName || '???'}\"`)\n }\n }\n })\n }\n}\n"],"mappings":"0IAOA,IAAM,EAAmB,6BAEzB,SAAgB,EAAe,EAAiB,EAAY,CAE1D,IAAM,EAAS,EAAA,YADE,EAAA,qBAAqB,CACX,IAAa,CAAC,EAEnC,EAAQ,EAAA,MAAM,IAAI,EAAc,EAAA,QAAG,GAAG,OAAO,CAAC,EACpD,GAAI,CAAC,EAAO,CACN,EAAO,OACT,EAAI,aAAa,QAAS,EAAO,KAAK,EAExC,MACF,CACI,EAAM,WAAa,UACjB,GAAO,EAAI,aAAa,QAAS,EAAM,KAAK,EAGhD,EADY,MAAM,mBAAmB,EAAc,KAAM,KAAO,EAAc,IAAI,CAClF,CAAA,CAAI,QAAQ,GAAM,CAChB,GAAI,EAAG,UAAU,KAAO,EAAG,UAAU,IAAI,WAAW,CAAgB,EAAG,CACrE,IAAM,EAAe,EAAG,UAAU,IAAI,MAAM,EAAuB,EACnE,GAAI,CACF,EAAI,MAAM,GAAgB,EAAG,OAAO,KACtC,MAAe,CACb,QAAQ,KAAK,8CAA8C,EAAa,OAAO,EAAG,OAAO,MAAM,EAAE,EACjG,QAAQ,KAAK,6CAA6C,EAAI,SAAW,MAAM,EAAE,CACnF,CACF,CACF,CAAC,CAEL"}
1
+ {"version":3,"file":"formStyle.cjs.js","names":[],"sources":["../../../src/widgets/forms/formStyle.ts"],"sourcesContent":["import ns from '../../lib/ns'\nimport { Node } from 'rdflib'\nimport { store } from 'solid-logic'\nimport { fieldParams } from './fieldParams'\n\nimport { mostSpecificClassURI } from './fieldFunction'\n\nconst STYLE_URI_PREFIX = 'https://www.w3.org/ns/css#'\n\nexport function setFieldStyle (ele:HTMLElement, field:Node) {\n const classUri = mostSpecificClassURI(field)\n const params = fieldParams[classUri] || {}\n\n const style = store.any(field as any, ns.ui('style'))\n if (!style) {\n if (params.style) {\n ele.setAttribute('style', params.style)\n }\n return\n }\n if (style.termType === 'Literal') {\n if (style) ele.setAttribute('style', style.value)\n } else {\n const sts = store.statementsMatching(style as any, null, null, (field as any).doc())\n sts.forEach(st => {\n if (st.predicate.uri && st.predicate.uri.startsWith(STYLE_URI_PREFIX)) {\n const cssAttribute = st.predicate.uri.slice(STYLE_URI_PREFIX.length)\n try {\n ele.style[cssAttribute] = st.object.value\n } catch (_err) {\n console.warn(`setFieldStyle: Error setting element style ${cssAttribute} to \"${st.object.value}\"`)\n console.warn(`setFieldStyle: ... Element tagName was \"${ele.tagName || '???'}\"`)\n }\n }\n })\n }\n}\n"],"mappings":"0IAOA,IAAM,EAAmB,6BAEzB,SAAgB,EAAe,EAAiB,EAAY,CAC1D,IAAM,EAAW,EAAA,qBAAqB,CAAK,EACrC,EAAS,EAAA,YAAY,IAAa,CAAC,EAEnC,EAAQ,EAAA,MAAM,IAAI,EAAc,EAAA,QAAG,GAAG,OAAO,CAAC,EACpD,GAAI,CAAC,EAAO,CACN,EAAO,OACT,EAAI,aAAa,QAAS,EAAO,KAAK,EAExC,MACF,CACI,EAAM,WAAa,UACjB,GAAO,EAAI,aAAa,QAAS,EAAM,KAAK,EAGhD,EADY,MAAM,mBAAmB,EAAc,KAAM,KAAO,EAAc,IAAI,CAClF,CAAA,CAAI,QAAQ,GAAM,CAChB,GAAI,EAAG,UAAU,KAAO,EAAG,UAAU,IAAI,WAAW,CAAgB,EAAG,CACrE,IAAM,EAAe,EAAG,UAAU,IAAI,MAAM,EAAuB,EACnE,GAAI,CACF,EAAI,MAAM,GAAgB,EAAG,OAAO,KACtC,MAAe,CACb,QAAQ,KAAK,8CAA8C,EAAa,OAAO,EAAG,OAAO,MAAM,EAAE,EACjG,QAAQ,KAAK,6CAA6C,EAAI,SAAW,MAAM,EAAE,CACnF,CACF,CACF,CAAC,CAEL"}
@@ -5,12 +5,12 @@ import { store as r } from "solid-logic";
5
5
  //#region src/widgets/forms/formStyle.ts
6
6
  var i = "https://www.w3.org/ns/css#";
7
7
  function a(a, o) {
8
- let s = t[n(o)] || {}, c = r.any(o, e.ui("style"));
9
- if (!c) {
10
- s.style && a.setAttribute("style", s.style);
8
+ let s = n(o), c = t[s] || {}, l = r.any(o, e.ui("style"));
9
+ if (!l) {
10
+ c.style && a.setAttribute("style", c.style);
11
11
  return;
12
12
  }
13
- c.termType === "Literal" ? c && a.setAttribute("style", c.value) : r.statementsMatching(c, null, null, o.doc()).forEach((e) => {
13
+ l.termType === "Literal" ? l && a.setAttribute("style", l.value) : r.statementsMatching(l, null, null, o.doc()).forEach((e) => {
14
14
  if (e.predicate.uri && e.predicate.uri.startsWith(i)) {
15
15
  let t = e.predicate.uri.slice(26);
16
16
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"formStyle.esm.js","names":[],"sources":["../../../src/widgets/forms/formStyle.ts"],"sourcesContent":["import ns from '../../lib/ns'\nimport { Node } from 'rdflib'\nimport { store } from 'solid-logic'\nimport { fieldParams } from './fieldParams'\n\nimport { mostSpecificClassURI } from './fieldFunction'\n\nconst STYLE_URI_PREFIX = 'https://www.w3.org/ns/css#'\n\nexport function setFieldStyle (ele:HTMLElement, field:Node) {\n const classUri = mostSpecificClassURI(field)\n const params = fieldParams[classUri] || {}\n\n const style = store.any(field as any, ns.ui('style'))\n if (!style) {\n if (params.style) {\n ele.setAttribute('style', params.style)\n }\n return\n }\n if (style.termType === 'Literal') {\n if (style) ele.setAttribute('style', style.value)\n } else {\n const sts = store.statementsMatching(style as any, null, null, (field as any).doc())\n sts.forEach(st => {\n if (st.predicate.uri && st.predicate.uri.startsWith(STYLE_URI_PREFIX)) {\n const cssAttribute = st.predicate.uri.slice(STYLE_URI_PREFIX.length)\n try {\n ele.style[cssAttribute] = st.object.value\n } catch (_err) {\n console.warn(`setFieldStyle: Error setting element style ${cssAttribute} to \"${st.object.value}\"`)\n console.warn(`setFieldStyle: ... Element tagName was \"${ele.tagName || '???'}\"`)\n }\n }\n })\n }\n}\n"],"mappings":";;;;;AAOA,IAAM,IAAmB;AAEzB,SAAgB,EAAe,GAAiB,GAAY;CAE1D,IAAM,IAAS,EADE,EAAqB,CACX,MAAa,CAAC,GAEnC,IAAQ,EAAM,IAAI,GAAc,EAAG,GAAG,OAAO,CAAC;CACpD,IAAI,CAAC,GAAO;EACV,AAAI,EAAO,SACT,EAAI,aAAa,SAAS,EAAO,KAAK;EAExC;CACF;CACA,AAAI,EAAM,aAAa,YACjB,KAAO,EAAI,aAAa,SAAS,EAAM,KAAK,IAGhD,EADkB,mBAAmB,GAAc,MAAM,MAAO,EAAc,IAAI,CAClF,CAAA,CAAI,SAAQ,MAAM;EAChB,IAAI,EAAG,UAAU,OAAO,EAAG,UAAU,IAAI,WAAW,CAAgB,GAAG;GACrE,IAAM,IAAe,EAAG,UAAU,IAAI,MAAM,EAAuB;GACnE,IAAI;IACF,EAAI,MAAM,KAAgB,EAAG,OAAO;GACtC,QAAe;IAEb,AADA,QAAQ,KAAK,8CAA8C,EAAa,OAAO,EAAG,OAAO,MAAM,EAAE,GACjG,QAAQ,KAAK,6CAA6C,EAAI,WAAW,MAAM,EAAE;GACnF;EACF;CACF,CAAC;AAEL"}
1
+ {"version":3,"file":"formStyle.esm.js","names":[],"sources":["../../../src/widgets/forms/formStyle.ts"],"sourcesContent":["import ns from '../../lib/ns'\nimport { Node } from 'rdflib'\nimport { store } from 'solid-logic'\nimport { fieldParams } from './fieldParams'\n\nimport { mostSpecificClassURI } from './fieldFunction'\n\nconst STYLE_URI_PREFIX = 'https://www.w3.org/ns/css#'\n\nexport function setFieldStyle (ele:HTMLElement, field:Node) {\n const classUri = mostSpecificClassURI(field)\n const params = fieldParams[classUri] || {}\n\n const style = store.any(field as any, ns.ui('style'))\n if (!style) {\n if (params.style) {\n ele.setAttribute('style', params.style)\n }\n return\n }\n if (style.termType === 'Literal') {\n if (style) ele.setAttribute('style', style.value)\n } else {\n const sts = store.statementsMatching(style as any, null, null, (field as any).doc())\n sts.forEach(st => {\n if (st.predicate.uri && st.predicate.uri.startsWith(STYLE_URI_PREFIX)) {\n const cssAttribute = st.predicate.uri.slice(STYLE_URI_PREFIX.length)\n try {\n ele.style[cssAttribute] = st.object.value\n } catch (_err) {\n console.warn(`setFieldStyle: Error setting element style ${cssAttribute} to \"${st.object.value}\"`)\n console.warn(`setFieldStyle: ... Element tagName was \"${ele.tagName || '???'}\"`)\n }\n }\n })\n }\n}\n"],"mappings":";;;;;AAOA,IAAM,IAAmB;AAEzB,SAAgB,EAAe,GAAiB,GAAY;CAC1D,IAAM,IAAW,EAAqB,CAAK,GACrC,IAAS,EAAY,MAAa,CAAC,GAEnC,IAAQ,EAAM,IAAI,GAAc,EAAG,GAAG,OAAO,CAAC;CACpD,IAAI,CAAC,GAAO;EACV,AAAI,EAAO,SACT,EAAI,aAAa,SAAS,EAAO,KAAK;EAExC;CACF;CACA,AAAI,EAAM,aAAa,YACjB,KAAO,EAAI,aAAa,SAAS,EAAM,KAAK,IAGhD,EADkB,mBAAmB,GAAc,MAAM,MAAO,EAAc,IAAI,CAClF,CAAA,CAAI,SAAQ,MAAM;EAChB,IAAI,EAAG,UAAU,OAAO,EAAG,UAAU,IAAI,WAAW,CAAgB,GAAG;GACrE,IAAM,IAAe,EAAG,UAAU,IAAI,MAAM,EAAuB;GACnE,IAAI;IACF,EAAI,MAAM,KAAgB,EAAG,OAAO;GACtC,QAAe;IAEb,AADA,QAAQ,KAAK,8CAA8C,EAAa,OAAO,EAAG,OAAO,MAAM,EAAE,GACjG,QAAQ,KAAK,6CAA6C,EAAI,WAAW,MAAM,EAAE;GACnF;EACF;CACF,CAAC;AAEL"}
@@ -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;for(r=0;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=d.fieldParams[f.mostSpecificClassURI(a)]||{},g=e.createElement(`div`);n&&n.appendChild(g);let _=g.appendChild(e.createElement(h.element));_.textContent=u,p.setFieldStyle(_,a);let y=l.anyJS(a,t.default.ui(`suppressIfUneditable`),null,m),b=l.updater.editable(o.uri);return y&&!b&&(g.style.display=`none`),g};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(`
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;for(r=0;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
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
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?!1:(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:!0;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;for(n=0;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;
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;for(n=0;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;
5
5
  //# sourceMappingURL=forms.cjs.js.map