solid-ui 5.0.0-2 → 5.0.1

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 (417) hide show
  1. package/dist/_virtual/~icons/app/solid-emblem.cjs.js.map +1 -1
  2. package/dist/_virtual/~icons/app/solid-emblem.esm.js.map +1 -1
  3. package/dist/_virtual/~icons/lucide/chevron-down.cjs.js.map +1 -1
  4. package/dist/_virtual/~icons/lucide/chevron-down.esm.js.map +1 -1
  5. package/dist/_virtual/~icons/lucide/circle-user.cjs.js.map +1 -1
  6. package/dist/_virtual/~icons/lucide/circle-user.esm.js.map +1 -1
  7. package/dist/_virtual/~icons/lucide/log-in.cjs.js.map +1 -1
  8. package/dist/_virtual/~icons/lucide/log-in.esm.js.map +1 -1
  9. package/dist/_virtual/~icons/lucide/log-out.cjs.js.map +1 -1
  10. package/dist/_virtual/~icons/lucide/log-out.esm.js.map +1 -1
  11. package/dist/_virtual/~icons/lucide/user.cjs.js.map +1 -1
  12. package/dist/_virtual/~icons/lucide/user.esm.js.map +1 -1
  13. package/dist/_virtual/~icons/lucide/x.cjs.js.map +1 -1
  14. package/dist/_virtual/~icons/lucide/x.esm.js.map +1 -1
  15. package/dist/_virtual/~icons/svg-spinners/180-ring.cjs.js.map +1 -1
  16. package/dist/_virtual/~icons/svg-spinners/180-ring.esm.js.map +1 -1
  17. package/dist/_virtual/~icons/svg-spinners/3-dots-fade.cjs.js.map +1 -1
  18. package/dist/_virtual/~icons/svg-spinners/3-dots-fade.esm.js.map +1 -1
  19. package/dist/acl/access-controller.cjs.js.map +1 -1
  20. package/dist/acl/access-controller.esm.js.map +1 -1
  21. package/dist/acl/access-groups.cjs.js.map +1 -1
  22. package/dist/acl/access-groups.esm.js.map +1 -1
  23. package/dist/acl/acl-control.cjs.js.map +1 -1
  24. package/dist/acl/acl-control.esm.js.map +1 -1
  25. package/dist/acl/acl.cjs.js.map +1 -1
  26. package/dist/acl/acl.esm.js.map +1 -1
  27. package/dist/acl/add-agent-buttons.cjs.js.map +1 -1
  28. package/dist/acl/add-agent-buttons.esm.js.map +1 -1
  29. package/dist/acl/index.cjs.js.map +1 -1
  30. package/dist/acl/index.esm.js.map +1 -1
  31. package/dist/chat/bookmarks.cjs.js.map +1 -1
  32. package/dist/chat/bookmarks.esm.js.map +1 -1
  33. package/dist/chat/chatLogic.cjs.js.map +1 -1
  34. package/dist/chat/chatLogic.esm.js.map +1 -1
  35. package/dist/chat/dateFolder.cjs.js.map +1 -1
  36. package/dist/chat/dateFolder.esm.js.map +1 -1
  37. package/dist/chat/infinite.cjs.js.map +1 -1
  38. package/dist/chat/infinite.esm.js.map +1 -1
  39. package/dist/chat/keys.cjs.js.map +1 -1
  40. package/dist/chat/keys.esm.js.map +1 -1
  41. package/dist/chat/message.cjs.js.map +1 -1
  42. package/dist/chat/message.esm.js.map +1 -1
  43. package/dist/chat/messageTools.cjs.js.map +1 -1
  44. package/dist/chat/messageTools.esm.js.map +1 -1
  45. package/dist/chat/signature.cjs.js.map +1 -1
  46. package/dist/chat/signature.esm.js.map +1 -1
  47. package/dist/chunks/DialogProvider-BFllJFfq.js.map +1 -1
  48. package/dist/chunks/{account-C4JpDQFa.js → account-BawgTPEQ.js} +7 -7
  49. package/dist/chunks/account-BawgTPEQ.js.map +1 -0
  50. package/dist/chunks/{auth-DfCfMOuM.js → auth-DrN7Ex4E.js} +2 -2
  51. package/dist/chunks/auth-DrN7Ex4E.js.map +1 -0
  52. package/dist/chunks/{avatar-C677VD9J.js → avatar-CoxEa3ul.js} +2 -2
  53. package/dist/chunks/avatar-CoxEa3ul.js.map +1 -0
  54. package/dist/chunks/button-CnmrOsEf.js.map +1 -1
  55. package/dist/chunks/chevron-down-ujxRg3MD.js.map +1 -1
  56. package/dist/chunks/{chunk.KB3IOPVF-Ckx3HIiR.js → chunk.UEBQI7VV-1WRlPl6u.js} +12 -2
  57. package/dist/chunks/chunk.UEBQI7VV-1WRlPl6u.js.map +1 -0
  58. package/dist/chunks/{combobox-BZ9n8wQw.js → combobox-B0TqOl9L.js} +2 -2
  59. package/dist/chunks/combobox-B0TqOl9L.js.map +1 -0
  60. package/dist/chunks/combobox-option-BcXpUnWu.js.map +1 -1
  61. package/dist/chunks/components-BHoVP7zE.js.map +1 -1
  62. package/dist/chunks/dialog-D9Ellvjx.js.map +1 -1
  63. package/dist/chunks/dialog-content-B2FmmQvH.js.map +1 -1
  64. package/dist/chunks/dialog-footer-CxjoqQJF.js.map +1 -1
  65. package/dist/chunks/dialog-header-0dobhr5C.js.map +1 -1
  66. package/dist/chunks/dialogs-D2n-R0lI.js.map +1 -1
  67. package/dist/chunks/dialogs-root-ngPW2Q6K.js.map +1 -1
  68. package/dist/chunks/{guard-DcrczXhs.js → guard-BtHmPAJt.js} +2 -2
  69. package/dist/chunks/guard-BtHmPAJt.js.map +1 -0
  70. package/dist/chunks/index.esm-AZPmKqjU.js.map +1 -1
  71. package/dist/chunks/input-BIhn_8nf.js.map +1 -1
  72. package/dist/chunks/jsonld-CDR2WyN_.js.map +1 -1
  73. package/dist/chunks/{login-button-CRQbpCob.js → login-button-DAzbhvKk.js} +2 -2
  74. package/dist/chunks/login-button-DAzbhvKk.js.map +1 -0
  75. package/dist/chunks/{logout-button-H-ckaICm.js → logout-button-lGJtt7lq.js} +2 -2
  76. package/dist/chunks/logout-button-lGJtt7lq.js.map +1 -0
  77. package/dist/chunks/{menu-DhnJDuBz.js → menu-BLZREG4_.js} +5 -4
  78. package/dist/chunks/menu-BLZREG4_.js.map +1 -0
  79. package/dist/chunks/menu-item-BdCkmJol.js.map +1 -1
  80. package/dist/chunks/photo-capture-Bvixtxsq.js.map +1 -1
  81. package/dist/chunks/photo-capture-modal-BhmL3kYD.js.map +1 -1
  82. package/dist/chunks/{provider-v6Wz9BOu.js → provider-D5r57fK1.js} +2 -2
  83. package/dist/chunks/provider-D5r57fK1.js.map +1 -0
  84. package/dist/chunks/query-BYu9q8lA.js.map +1 -1
  85. package/dist/chunks/rdf-form-B2zTR8Qv.js.map +1 -1
  86. package/dist/chunks/rdf-input-DeDhyQ3p.js.map +1 -1
  87. package/dist/chunks/select-BcC-ICqO.js.map +1 -1
  88. package/dist/chunks/select-option-B0uXcj2O.js.map +1 -1
  89. package/dist/chunks/show-dialog-eEW5yRBv.js.map +1 -1
  90. package/dist/chunks/{signup-button-Cy6FwVhE.js → signup-button-DnPnUTTm.js} +2 -2
  91. package/dist/chunks/signup-button-DnPnUTTm.js.map +1 -0
  92. package/dist/chunks/solid-emblem-CcQOqRX0.js.map +1 -1
  93. package/dist/chunks/{src-Ca8thhHS.js → src-BWY65mD0.js} +915 -891
  94. package/dist/chunks/src-BWY65mD0.js.map +1 -0
  95. package/dist/chunks/style-Dpwrc8CC.js.map +1 -1
  96. package/dist/components/account/Account.cjs.js.map +1 -1
  97. package/dist/components/account/Account.esm.js.map +1 -1
  98. package/dist/components/account/Account.styles.cjs.js.map +1 -1
  99. package/dist/components/account/Account.styles.esm.js.map +1 -1
  100. package/dist/components/account/index.cjs.js.map +1 -1
  101. package/dist/components/account/index.esm.js.map +1 -1
  102. package/dist/components/account.js +1 -1
  103. package/dist/components/avatar/Avatar.cjs.js.map +1 -1
  104. package/dist/components/avatar/Avatar.esm.js.map +1 -1
  105. package/dist/components/avatar/Avatar.styles.cjs.js.map +1 -1
  106. package/dist/components/avatar/Avatar.styles.esm.js.map +1 -1
  107. package/dist/components/avatar/index.cjs.js.map +1 -1
  108. package/dist/components/avatar/index.esm.js.map +1 -1
  109. package/dist/components/avatar.js +1 -1
  110. package/dist/components/button/Button.cjs.js.map +1 -1
  111. package/dist/components/button/Button.esm.js.map +1 -1
  112. package/dist/components/button/Button.styles.cjs.js.map +1 -1
  113. package/dist/components/button/Button.styles.esm.js.map +1 -1
  114. package/dist/components/button/index.cjs.js.map +1 -1
  115. package/dist/components/button/index.esm.js.map +1 -1
  116. package/dist/components/combobox/Combobox.cjs.js.map +1 -1
  117. package/dist/components/combobox/Combobox.esm.js.map +1 -1
  118. package/dist/components/combobox/Combobox.styles.cjs.js.map +1 -1
  119. package/dist/components/combobox/Combobox.styles.esm.js.map +1 -1
  120. package/dist/components/combobox/index.cjs.js.map +1 -1
  121. package/dist/components/combobox/index.esm.js.map +1 -1
  122. package/dist/components/combobox-option/ComboboxOption.cjs.js.map +1 -1
  123. package/dist/components/combobox-option/ComboboxOption.esm.js.map +1 -1
  124. package/dist/components/combobox-option/index.cjs.js.map +1 -1
  125. package/dist/components/combobox-option/index.esm.js.map +1 -1
  126. package/dist/components/combobox.js +1 -1
  127. package/dist/components/dialog/Dialog.cjs.js.map +1 -1
  128. package/dist/components/dialog/Dialog.esm.js.map +1 -1
  129. package/dist/components/dialog/Dialog.styles.cjs.js.map +1 -1
  130. package/dist/components/dialog/Dialog.styles.esm.js.map +1 -1
  131. package/dist/components/dialog/index.cjs.js.map +1 -1
  132. package/dist/components/dialog/index.esm.js.map +1 -1
  133. package/dist/components/dialog-content/DialogContent.cjs.js.map +1 -1
  134. package/dist/components/dialog-content/DialogContent.esm.js.map +1 -1
  135. package/dist/components/dialog-content/DialogContent.styles.cjs.js.map +1 -1
  136. package/dist/components/dialog-content/DialogContent.styles.esm.js.map +1 -1
  137. package/dist/components/dialog-content/index.cjs.js.map +1 -1
  138. package/dist/components/dialog-content/index.esm.js.map +1 -1
  139. package/dist/components/dialog-footer/DialogFooter.cjs.js.map +1 -1
  140. package/dist/components/dialog-footer/DialogFooter.esm.js.map +1 -1
  141. package/dist/components/dialog-footer/DialogFooter.styles.cjs.js.map +1 -1
  142. package/dist/components/dialog-footer/DialogFooter.styles.esm.js.map +1 -1
  143. package/dist/components/dialog-footer/index.cjs.js.map +1 -1
  144. package/dist/components/dialog-footer/index.esm.js.map +1 -1
  145. package/dist/components/dialog-header/DialogHeader.cjs.js.map +1 -1
  146. package/dist/components/dialog-header/DialogHeader.esm.js.map +1 -1
  147. package/dist/components/dialog-header/DialogHeader.styles.cjs.js.map +1 -1
  148. package/dist/components/dialog-header/DialogHeader.styles.esm.js.map +1 -1
  149. package/dist/components/dialog-header/index.cjs.js.map +1 -1
  150. package/dist/components/dialog-header/index.esm.js.map +1 -1
  151. package/dist/components/dialog-provider/DialogProvider.cjs.js.map +1 -1
  152. package/dist/components/dialog-provider/DialogProvider.esm.js.map +1 -1
  153. package/dist/components/dialog-provider/index.cjs.js.map +1 -1
  154. package/dist/components/dialog-provider/index.esm.js.map +1 -1
  155. package/dist/components/dialog-provider.js.map +1 -1
  156. package/dist/components/dialogs-root/DialogsRoot.cjs.js.map +1 -1
  157. package/dist/components/dialogs-root/DialogsRoot.esm.js.map +1 -1
  158. package/dist/components/dialogs-root/index.cjs.js.map +1 -1
  159. package/dist/components/dialogs-root/index.esm.js.map +1 -1
  160. package/dist/components/guard/Guard.cjs.js.map +1 -1
  161. package/dist/components/guard/Guard.esm.js.map +1 -1
  162. package/dist/components/guard/index.cjs.js.map +1 -1
  163. package/dist/components/guard/index.esm.js.map +1 -1
  164. package/dist/components/guard.js +1 -1
  165. package/dist/components/input/Input.cjs.js.map +1 -1
  166. package/dist/components/input/Input.esm.js.map +1 -1
  167. package/dist/components/input/Input.styles.cjs.js.map +1 -1
  168. package/dist/components/input/Input.styles.esm.js.map +1 -1
  169. package/dist/components/input/index.cjs.js.map +1 -1
  170. package/dist/components/input/index.esm.js.map +1 -1
  171. package/dist/components/login-button/LoginButton.cjs.js.map +1 -1
  172. package/dist/components/login-button/LoginButton.esm.js.map +1 -1
  173. package/dist/components/login-button/index.cjs.js.map +1 -1
  174. package/dist/components/login-button/index.esm.js.map +1 -1
  175. package/dist/components/login-button.js +1 -1
  176. package/dist/components/login-modal/LoginModal.cjs.js.map +1 -1
  177. package/dist/components/login-modal/LoginModal.esm.js.map +1 -1
  178. package/dist/components/login-modal/LoginModal.styles.cjs.js.map +1 -1
  179. package/dist/components/login-modal/LoginModal.styles.esm.js.map +1 -1
  180. package/dist/components/login-modal/index.cjs.js.map +1 -1
  181. package/dist/components/login-modal/index.esm.js.map +1 -1
  182. package/dist/components/login-modal.js +1 -1
  183. package/dist/components/logout-button/LogoutButton.cjs.js.map +1 -1
  184. package/dist/components/logout-button/LogoutButton.esm.js.map +1 -1
  185. package/dist/components/logout-button/index.cjs.js.map +1 -1
  186. package/dist/components/logout-button/index.esm.js.map +1 -1
  187. package/dist/components/logout-button.js +1 -1
  188. package/dist/components/menu/Menu.cjs.js.map +1 -1
  189. package/dist/components/menu/Menu.esm.js.map +1 -1
  190. package/dist/components/menu/Menu.styles.cjs.js.map +1 -1
  191. package/dist/components/menu/Menu.styles.esm.js.map +1 -1
  192. package/dist/components/menu/index.cjs.js.map +1 -1
  193. package/dist/components/menu/index.esm.js.map +1 -1
  194. package/dist/components/menu-item/MenuItem.cjs.js.map +1 -1
  195. package/dist/components/menu-item/MenuItem.esm.js.map +1 -1
  196. package/dist/components/menu-item/MenuItem.styles.cjs.js.map +1 -1
  197. package/dist/components/menu-item/MenuItem.styles.esm.js.map +1 -1
  198. package/dist/components/menu-item/index.cjs.js.map +1 -1
  199. package/dist/components/menu-item/index.esm.js.map +1 -1
  200. package/dist/components/menu.js +1 -1
  201. package/dist/components/photo-capture/PhotoCapture.cjs.js.map +1 -1
  202. package/dist/components/photo-capture/PhotoCapture.esm.js.map +1 -1
  203. package/dist/components/photo-capture/index.cjs.js.map +1 -1
  204. package/dist/components/photo-capture/index.esm.js.map +1 -1
  205. package/dist/components/photo-capture-modal/PhotoCaptureModal.cjs.js.map +1 -1
  206. package/dist/components/photo-capture-modal/PhotoCaptureModal.esm.js.map +1 -1
  207. package/dist/components/photo-capture-modal/PhotoCaptureModal.styles.cjs.js.map +1 -1
  208. package/dist/components/photo-capture-modal/PhotoCaptureModal.styles.esm.js.map +1 -1
  209. package/dist/components/photo-capture-modal/index.cjs.js.map +1 -1
  210. package/dist/components/photo-capture-modal/index.esm.js.map +1 -1
  211. package/dist/components/provider/Provider.cjs.js.map +1 -1
  212. package/dist/components/provider/Provider.esm.js.map +1 -1
  213. package/dist/components/provider/index.cjs.js.map +1 -1
  214. package/dist/components/provider/index.esm.js.map +1 -1
  215. package/dist/components/provider.js +1 -1
  216. package/dist/components/rdf-form/RDFForm.cjs.js.map +1 -1
  217. package/dist/components/rdf-form/RDFForm.esm.js.map +1 -1
  218. package/dist/components/rdf-form/index.cjs.js.map +1 -1
  219. package/dist/components/rdf-form/index.esm.js.map +1 -1
  220. package/dist/components/rdf-input/RDFInput.cjs.js.map +1 -1
  221. package/dist/components/rdf-input/RDFInput.esm.js.map +1 -1
  222. package/dist/components/rdf-input/index.cjs.js.map +1 -1
  223. package/dist/components/rdf-input/index.esm.js.map +1 -1
  224. package/dist/components/select/Select.cjs.js.map +1 -1
  225. package/dist/components/select/Select.esm.js.map +1 -1
  226. package/dist/components/select/Select.styles.cjs.js.map +1 -1
  227. package/dist/components/select/Select.styles.esm.js.map +1 -1
  228. package/dist/components/select/index.cjs.js.map +1 -1
  229. package/dist/components/select/index.esm.js.map +1 -1
  230. package/dist/components/select-option/SelectOption.cjs.js.map +1 -1
  231. package/dist/components/select-option/SelectOption.esm.js.map +1 -1
  232. package/dist/components/select-option/index.cjs.js.map +1 -1
  233. package/dist/components/select-option/index.esm.js.map +1 -1
  234. package/dist/components/signup-button/SignupButton.cjs.js.map +1 -1
  235. package/dist/components/signup-button/SignupButton.esm.js.map +1 -1
  236. package/dist/components/signup-button/index.cjs.js.map +1 -1
  237. package/dist/components/signup-button/index.esm.js.map +1 -1
  238. package/dist/components/signup-button.js +1 -1
  239. package/dist/components/solid-emblem/SolidEmblem.cjs.js.map +1 -1
  240. package/dist/components/solid-emblem/SolidEmblem.esm.js.map +1 -1
  241. package/dist/components/solid-emblem/SolidEmblem.styles.cjs.js.map +1 -1
  242. package/dist/components/solid-emblem/SolidEmblem.styles.esm.js.map +1 -1
  243. package/dist/components/solid-emblem/index.cjs.js.map +1 -1
  244. package/dist/components/solid-emblem/index.esm.js.map +1 -1
  245. package/dist/components.js +10 -10
  246. package/dist/create/create.cjs.js.map +1 -1
  247. package/dist/create/create.esm.js.map +1 -1
  248. package/dist/create/index.cjs.js.map +1 -1
  249. package/dist/create/index.esm.js.map +1 -1
  250. package/dist/create/types.cjs.js.map +1 -1
  251. package/dist/create/types.esm.js.map +1 -1
  252. package/dist/footer/index.cjs.js.map +1 -1
  253. package/dist/footer/index.esm.js.map +1 -1
  254. package/dist/header/empty-profile.cjs.js.map +1 -1
  255. package/dist/header/empty-profile.esm.js.map +1 -1
  256. package/dist/header/index.cjs.js.map +1 -1
  257. package/dist/header/index.esm.js.map +1 -1
  258. package/dist/index.cjs.js.map +1 -1
  259. package/dist/index.esm.js.map +1 -1
  260. package/dist/index.js +2 -2
  261. package/dist/lib/auth/Account.cjs.js.map +1 -1
  262. package/dist/lib/auth/Account.esm.js.map +1 -1
  263. package/dist/lib/auth/NoopAuth.cjs.js.map +1 -1
  264. package/dist/lib/auth/NoopAuth.esm.js.map +1 -1
  265. package/dist/lib/auth/SolidAuth.cjs.js.map +1 -1
  266. package/dist/lib/auth/SolidAuth.esm.js.map +1 -1
  267. package/dist/lib/auth/context.cjs.js.map +1 -1
  268. package/dist/lib/auth/context.esm.js.map +1 -1
  269. package/dist/lib/code-editor/CodeEditor.cjs.js.map +1 -1
  270. package/dist/lib/code-editor/CodeEditor.esm.js.map +1 -1
  271. package/dist/lib/components/decorators.cjs.js.map +1 -1
  272. package/dist/lib/components/decorators.esm.js.map +1 -1
  273. package/dist/lib/components/dialog-component/DialogComponent.cjs.js.map +1 -1
  274. package/dist/lib/components/dialog-component/DialogComponent.esm.js.map +1 -1
  275. package/dist/lib/components/form-control-component/FormControlComponent.cjs.js.map +1 -1
  276. package/dist/lib/components/form-control-component/FormControlComponent.esm.js.map +1 -1
  277. package/dist/lib/components/ids.cjs.js.map +1 -1
  278. package/dist/lib/components/ids.esm.js.map +1 -1
  279. package/dist/lib/components/traits/DialogTrait.cjs.js.map +1 -1
  280. package/dist/lib/components/traits/DialogTrait.esm.js.map +1 -1
  281. package/dist/lib/components/traits/FormControlTrait.cjs.js.map +1 -1
  282. package/dist/lib/components/traits/FormControlTrait.esm.js.map +1 -1
  283. package/dist/lib/components/web-component/WebComponent.cjs.js.map +1 -1
  284. package/dist/lib/components/web-component/WebComponent.esm.js.map +1 -1
  285. package/dist/lib/components/web-component/WebComponent.styles.cjs.js.map +1 -1
  286. package/dist/lib/components/web-component/WebComponent.styles.esm.js.map +1 -1
  287. package/dist/lib/debug.cjs.js.map +1 -1
  288. package/dist/lib/debug.esm.js.map +1 -1
  289. package/dist/lib/dialogs/Dialog.cjs.js.map +1 -1
  290. package/dist/lib/dialogs/Dialog.esm.js.map +1 -1
  291. package/dist/lib/dialogs/context.cjs.js.map +1 -1
  292. package/dist/lib/dialogs/context.esm.js.map +1 -1
  293. package/dist/lib/dialogs/events/close-dialog.cjs.js.map +1 -1
  294. package/dist/lib/dialogs/events/close-dialog.esm.js.map +1 -1
  295. package/dist/lib/dialogs/events/show-dialog.cjs.js.map +1 -1
  296. package/dist/lib/dialogs/events/show-dialog.esm.js.map +1 -1
  297. package/dist/lib/dialogs/helpers.cjs.js.map +1 -1
  298. package/dist/lib/dialogs/helpers.esm.js.map +1 -1
  299. package/dist/lib/file-explorer/context.cjs.js.map +1 -1
  300. package/dist/lib/file-explorer/context.esm.js.map +1 -1
  301. package/dist/lib/forms/fieldParams.cjs.js.map +1 -1
  302. package/dist/lib/forms/fieldParams.esm.js.map +1 -1
  303. package/dist/lib/forms/rdfFormsHelper.cjs.js.map +1 -1
  304. package/dist/lib/forms/rdfFormsHelper.esm.js.map +1 -1
  305. package/dist/lib/forms/store/NoopStore.cjs.js.map +1 -1
  306. package/dist/lib/forms/store/NoopStore.esm.js.map +1 -1
  307. package/dist/lib/forms/store/StoreContext.cjs.js.map +1 -1
  308. package/dist/lib/forms/store/StoreContext.esm.js.map +1 -1
  309. package/dist/lib/iconBase.cjs.js.map +1 -1
  310. package/dist/lib/iconBase.esm.js.map +1 -1
  311. package/dist/lib/log.cjs.js.map +1 -1
  312. package/dist/lib/log.esm.js.map +1 -1
  313. package/dist/lib/messageArea.cjs.js.map +1 -1
  314. package/dist/lib/messageArea.esm.js.map +1 -1
  315. package/dist/lib/newperson.cjs.js.map +1 -1
  316. package/dist/lib/newperson.esm.js.map +1 -1
  317. package/dist/lib/ns.cjs.js.map +1 -1
  318. package/dist/lib/ns.esm.js.map +1 -1
  319. package/dist/lib/pad.cjs.js.map +1 -1
  320. package/dist/lib/pad.esm.js.map +1 -1
  321. package/dist/lib/participation.cjs.js.map +1 -1
  322. package/dist/lib/participation.esm.js.map +1 -1
  323. package/dist/lib/preferences.cjs.js.map +1 -1
  324. package/dist/lib/preferences.esm.js.map +1 -1
  325. package/dist/lib/style.cjs.js.map +1 -1
  326. package/dist/lib/style.esm.js.map +1 -1
  327. package/dist/lib/styleConstants.cjs.js.map +1 -1
  328. package/dist/lib/styleConstants.esm.js.map +1 -1
  329. package/dist/lib/style_multiSelect.cjs.js.map +1 -1
  330. package/dist/lib/style_multiSelect.esm.js.map +1 -1
  331. package/dist/lib/table.cjs.js.map +1 -1
  332. package/dist/lib/table.esm.js.map +1 -1
  333. package/dist/lib/tabs.cjs.js.map +1 -1
  334. package/dist/lib/tabs.esm.js.map +1 -1
  335. package/dist/lib/timing.cjs.js.map +1 -1
  336. package/dist/lib/timing.esm.js.map +1 -1
  337. package/dist/lib/values.cjs.js.map +1 -1
  338. package/dist/lib/values.esm.js.map +1 -1
  339. package/dist/loader.js +2 -2
  340. package/dist/login/login.cjs.js.map +1 -1
  341. package/dist/login/login.esm.js.map +1 -1
  342. package/dist/matrix/index.cjs.js.map +1 -1
  343. package/dist/matrix/index.esm.js.map +1 -1
  344. package/dist/matrix/matrix.cjs.js.map +1 -1
  345. package/dist/matrix/matrix.esm.js.map +1 -1
  346. package/dist/media/index.cjs.js.map +1 -1
  347. package/dist/media/index.esm.js.map +1 -1
  348. package/dist/media/media-capture.cjs.js.map +1 -1
  349. package/dist/media/media-capture.esm.js.map +1 -1
  350. package/dist/signup/config-default.cjs.js.map +1 -1
  351. package/dist/signup/config-default.esm.js.map +1 -1
  352. package/dist/signup/signup.cjs.js.map +1 -1
  353. package/dist/signup/signup.esm.js.map +1 -1
  354. package/dist/solid-ui.js +20 -20
  355. package/dist/solid-ui.min.js +20 -20
  356. package/dist/solid-ui.min.js.map +1 -1
  357. package/dist/utils/headerFooterHelpers.cjs.js.map +1 -1
  358. package/dist/utils/headerFooterHelpers.esm.js.map +1 -1
  359. package/dist/utils/index.cjs.js.map +1 -1
  360. package/dist/utils/index.esm.js.map +1 -1
  361. package/dist/utils/keyHelpers/accessData.cjs.js.map +1 -1
  362. package/dist/utils/keyHelpers/accessData.esm.js.map +1 -1
  363. package/dist/utils/keyHelpers/acl.cjs.js.map +1 -1
  364. package/dist/utils/keyHelpers/acl.esm.js.map +1 -1
  365. package/dist/utils/keyHelpers/otherHelpers.cjs.js.map +1 -1
  366. package/dist/utils/keyHelpers/otherHelpers.esm.js.map +1 -1
  367. package/dist/utils/label.cjs.js.map +1 -1
  368. package/dist/utils/label.esm.js.map +1 -1
  369. package/dist/widgets/buttons/iconLinks.cjs.js.map +1 -1
  370. package/dist/widgets/buttons/iconLinks.esm.js.map +1 -1
  371. package/dist/widgets/buttons.cjs.js.map +1 -1
  372. package/dist/widgets/buttons.esm.js.map +1 -1
  373. package/dist/widgets/dragAndDrop.cjs.js.map +1 -1
  374. package/dist/widgets/dragAndDrop.esm.js.map +1 -1
  375. package/dist/widgets/error.cjs.js.map +1 -1
  376. package/dist/widgets/error.esm.js.map +1 -1
  377. package/dist/widgets/forms/autocomplete/autocompleteBar.cjs.js.map +1 -1
  378. package/dist/widgets/forms/autocomplete/autocompleteBar.esm.js.map +1 -1
  379. package/dist/widgets/forms/autocomplete/autocompleteField.cjs.js.map +1 -1
  380. package/dist/widgets/forms/autocomplete/autocompleteField.esm.js.map +1 -1
  381. package/dist/widgets/forms/autocomplete/autocompletePicker.cjs.js.map +1 -1
  382. package/dist/widgets/forms/autocomplete/autocompletePicker.esm.js.map +1 -1
  383. package/dist/widgets/forms/autocomplete/language.cjs.js.map +1 -1
  384. package/dist/widgets/forms/autocomplete/language.esm.js.map +1 -1
  385. package/dist/widgets/forms/autocomplete/publicData.cjs.js.map +1 -1
  386. package/dist/widgets/forms/autocomplete/publicData.esm.js.map +1 -1
  387. package/dist/widgets/forms/basic.cjs.js.map +1 -1
  388. package/dist/widgets/forms/basic.esm.js.map +1 -1
  389. package/dist/widgets/forms/fieldFunction.cjs.js.map +1 -1
  390. package/dist/widgets/forms/fieldFunction.esm.js.map +1 -1
  391. package/dist/widgets/forms/fieldParams.cjs.js.map +1 -1
  392. package/dist/widgets/forms/fieldParams.esm.js.map +1 -1
  393. package/dist/widgets/forms/formStyle.cjs.js.map +1 -1
  394. package/dist/widgets/forms/formStyle.esm.js.map +1 -1
  395. package/dist/widgets/forms.cjs.js.map +1 -1
  396. package/dist/widgets/forms.esm.js.map +1 -1
  397. package/dist/widgets/index.cjs.js.map +1 -1
  398. package/dist/widgets/index.esm.js.map +1 -1
  399. package/dist/widgets/multiSelect.cjs.js.map +1 -1
  400. package/dist/widgets/multiSelect.esm.js.map +1 -1
  401. package/dist/widgets/peoplePicker.cjs.js.map +1 -1
  402. package/dist/widgets/peoplePicker.esm.js.map +1 -1
  403. package/dist/widgets/widgetHelpers.cjs.js.map +1 -1
  404. package/dist/widgets/widgetHelpers.esm.js.map +1 -1
  405. package/package.json +3 -3
  406. package/dist/chunks/account-C4JpDQFa.js.map +0 -1
  407. package/dist/chunks/auth-DfCfMOuM.js.map +0 -1
  408. package/dist/chunks/avatar-C677VD9J.js.map +0 -1
  409. package/dist/chunks/chunk.KB3IOPVF-Ckx3HIiR.js.map +0 -1
  410. package/dist/chunks/combobox-BZ9n8wQw.js.map +0 -1
  411. package/dist/chunks/guard-DcrczXhs.js.map +0 -1
  412. package/dist/chunks/login-button-CRQbpCob.js.map +0 -1
  413. package/dist/chunks/logout-button-H-ckaICm.js.map +0 -1
  414. package/dist/chunks/menu-DhnJDuBz.js.map +0 -1
  415. package/dist/chunks/provider-v6Wz9BOu.js.map +0 -1
  416. package/dist/chunks/signup-button-Cy6FwVhE.js.map +0 -1
  417. package/dist/chunks/src-Ca8thhHS.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","names":[],"sources":["../../src/header/index.ts"],"sourcesContent":["/* global EventListenerOrEventListenerObject */\n/*\n This file was copied from mashlib/src/global/header.ts file. It is modified to\n work in solid-ui by adjusting where imported functions are found.\n */\nimport { IndexedFormula, NamedNode } from 'rdflib'\nimport { icons } from '../lib/iconBase'\nimport { authn, authSession } from 'solid-logic'\nimport { loginStatusBox } from '../login/login'\n// import { loginStatusBox, authSession, currentUser } from '../authn/authn'\nimport * as widgets from '../widgets'\nimport { style } from '../lib/style'\nimport { emptyProfile } from './empty-profile'\nimport { getPod, throttle } from '../utils/headerFooterHelpers'\n\n/**\n * menu icons\n*/\nconst DEFAULT_HELP_MENU_ICON = icons.iconBase + 'noun_help.svg'\nconst DEFAUL_SOLID_ICON_URL = 'https://solidproject.org/assets/img/solid-emblem.svg'\n\nexport type MenuItemLink = {\n label: string,\n url: string,\n target?: string\n}\n\nexport type MenuItemButton = {\n label: string,\n onclick: () => void\n}\n\nexport type MenuItems = MenuItemLink | MenuItemButton\n\n/*\n HeaderOptions allow for customizing the logo and menu list. If a logo is not provided the default\n is solid. Menulist will always show a link to logout and to the users profile.\n */\nexport type HeaderOptions = {\n logo?: string,\n helpIcon?: string,\n helpMenuList?: MenuItems[]\n}\n\n/**\n * Initialize header component, the header object returned depends on whether the user is authenticated.\n * @param store the data store\n * @param userMenuList a list of menu items when the user is logged in\n * @param options allow the header to be customized with a personalized logo, help icon and a help menu list of links or buttons.\n * @returns a header for an authenticated user with menu items given or a login screen\n */\nexport async function initHeader (store: IndexedFormula, userMenuList: MenuItems[], options?: HeaderOptions) {\n const header = document.getElementById('PageHeader')\n if (!header) {\n return\n }\n\n const pod = getPod()\n rebuildHeader(header, store, pod, userMenuList, options)()\n authSession.events.on('logout', rebuildHeader(header, store, pod, userMenuList, options))\n authSession.events.on('login', rebuildHeader(header, store, pod, userMenuList, options))\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function rebuildHeader (header: HTMLElement, store: IndexedFormula, pod: NamedNode, userMenuList: MenuItems[], options?: HeaderOptions) {\n return async () => {\n const user = authn.currentUser()\n header.innerHTML = ''\n header.appendChild(await createBanner(store, pod, user, userMenuList, options))\n }\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport async function createBanner (store: IndexedFormula, pod: NamedNode, user: NamedNode | null, userMenuList: MenuItems[], options?: HeaderOptions): Promise<HTMLElement> {\n const podLink = document.createElement('a')\n podLink.href = pod.uri\n podLink.setAttribute('style', style.headerBannerLink)\n const image = document.createElement('img')\n if (options) {\n image.src = options.logo ? options.logo : DEFAUL_SOLID_ICON_URL\n }\n image.setAttribute('style', style.headerBannerIcon)\n podLink.appendChild(image)\n\n const userMenu = user\n ? await createUserMenu(store, user, userMenuList)\n : createLoginSignUpButtons()\n\n const banner = document.createElement('div')\n banner.setAttribute('style', style.headerBanner)\n banner.appendChild(podLink)\n\n const leftSideOfHeader = document.createElement('div')\n leftSideOfHeader.setAttribute('style', style.headerBannerRightMenu)\n leftSideOfHeader.appendChild(userMenu)\n\n if (options && options.helpMenuList) {\n const helpMenu = createHelpMenu(options, options.helpMenuList)\n leftSideOfHeader.appendChild(helpMenu as HTMLDivElement)\n }\n\n banner.appendChild(leftSideOfHeader)\n\n return banner\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createHelpMenu (options: HeaderOptions, helpMenuItems: MenuItems[]) {\n if (!helpMenuItems) return\n const helpMenuList = document.createElement('ul')\n helpMenuList.setAttribute('style', style.headerUserMenuList)\n helpMenuItems.forEach(function (menuItem) {\n const menuItemType: string = (menuItem as MenuItemLink).url ? 'url' : 'onclick'\n if (menuItemType === 'url') {\n helpMenuList.appendChild(createUserMenuItem(createUserMenuLink(menuItem.label, (menuItem as MenuItemLink).url, (menuItem as MenuItemLink).target)))\n } else {\n helpMenuList.appendChild(createUserMenuItem(createUserMenuButton(menuItem.label, (menuItem as MenuItemButton).onclick)))\n }\n })\n\n const helpMenu = document.createElement('nav')\n\n helpMenu.setAttribute('style', style.headerUserMenuNavigationMenuNotDisplayed)\n helpMenu.setAttribute('aria-hidden', 'true')\n helpMenu.setAttribute('id', 'helperNav')\n helpMenu.appendChild(helpMenuList)\n\n const helpMenuContainer = document.createElement('div')\n helpMenuContainer.setAttribute('style', style.headerBannerUserMenu)\n helpMenuContainer.appendChild(helpMenu)\n\n const helpMenuTrigger = document.createElement('button')\n helpMenuTrigger.setAttribute('style', style.headerUserMenuTrigger)\n helpMenuTrigger.type = 'button'\n\n const helpMenuIcon = document.createElement('img')\n helpMenuIcon.src = (options && options.helpIcon) ? options.helpIcon : icons.iconBase + DEFAULT_HELP_MENU_ICON\n helpMenuIcon.setAttribute('style', style.headerUserMenuTriggerImg)\n helpMenuContainer.appendChild(helpMenuTrigger)\n helpMenuTrigger.appendChild(helpMenuIcon)\n\n const throttledMenuToggle = throttle((event: Event) => toggleMenu(event, helpMenuTrigger, helpMenu), 50)\n helpMenuTrigger.addEventListener('click', throttledMenuToggle)\n let timer = setTimeout(() => null, 0)\n helpMenuContainer.addEventListener('mouseover', event => {\n clearTimeout(timer)\n throttledMenuToggle(event)\n const nav = document.getElementById('helperNav')\n nav?.setAttribute('style', style.headerUserMenuNavigationMenu)\n })\n helpMenuContainer.addEventListener('mouseout', event => {\n timer = setTimeout(() => throttledMenuToggle(event), 200)\n const nav = document.getElementById('helperNav')\n nav?.setAttribute('style', style.headerUserMenuNavigationMenuNotDisplayed)\n })\n\n return helpMenuContainer\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createLoginSignUpButtons () {\n const profileLoginButtonPre = document.createElement('div')\n profileLoginButtonPre.setAttribute('style', style.headerBannerLogin)\n profileLoginButtonPre.appendChild(loginStatusBox(document, null, {}))\n return profileLoginButtonPre\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createUserMenuButton (label: string, onClick: EventListenerOrEventListenerObject): HTMLElement {\n const button = document.createElement('button')\n button.setAttribute('style', style.headerUserMenuButton)\n button.onmouseover = function () {\n button.setAttribute('style', style.headerUserMenuButtonHover)\n }\n button.onmouseout = function () {\n button.setAttribute('style', style.headerUserMenuButton)\n }\n button.addEventListener('click', onClick)\n button.innerText = label\n return button\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createUserMenuLink (label: string, href: string, target?: string): HTMLElement {\n const link = document.createElement('a')\n link.setAttribute('style', style.headerUserMenuLink)\n link.onmouseover = function () {\n link.setAttribute('style', style.headerUserMenuLinkHover)\n }\n link.onmouseout = function () {\n link.setAttribute('style', style.headerUserMenuLink)\n }\n link.href = href\n link.innerText = label\n if (target) link.target = target\n return link\n}\n\n/**\n * @ignore exporting this only for the unit test\n */\nexport async function createUserMenu (store: IndexedFormula, user: NamedNode, userMenuList: MenuItems[]): Promise<HTMLElement> {\n const fetcher = (<any>store).fetcher\n if (fetcher) {\n // Making sure that Profile is loaded before building menu\n await fetcher.load(user)\n }\n\n const loggedInMenuList = document.createElement('ul')\n loggedInMenuList.setAttribute('style', style.headerUserMenuList)\n if (userMenuList) {\n userMenuList.forEach(function (menuItem) {\n const menuItemType: string = (menuItem as MenuItemLink).url ? 'url' : 'onclick'\n if (menuItemType === 'url') {\n loggedInMenuList.appendChild(createUserMenuItem(createUserMenuLink(menuItem.label, (menuItem as MenuItemLink).url, (menuItem as MenuItemLink).target)))\n } else {\n loggedInMenuList.appendChild(createUserMenuItem(createUserMenuButton(menuItem.label, (menuItem as MenuItemButton).onclick)))\n }\n })\n }\n const loggedInMenu = document.createElement('nav')\n\n loggedInMenu.setAttribute('style', style.headerUserMenuNavigationMenuNotDisplayed)\n loggedInMenu.setAttribute('aria-hidden', 'true')\n loggedInMenu.setAttribute('id', 'loggedInNav')\n loggedInMenu.appendChild(loggedInMenuList)\n\n const loggedInMenuTrigger = document.createElement('button')\n loggedInMenuTrigger.setAttribute('style', style.headerUserMenuTrigger)\n loggedInMenuTrigger.type = 'button'\n const profileImg = getProfileImg(store, user)\n if (typeof profileImg === 'string') {\n loggedInMenuTrigger.innerHTML = profileImg\n } else {\n loggedInMenuTrigger.appendChild(profileImg)\n }\n\n const loggedInMenuContainer = document.createElement('div')\n loggedInMenuContainer.setAttribute('style', style.headerBannerUserMenuNotDisplayed)\n loggedInMenuContainer.appendChild(loggedInMenuTrigger)\n loggedInMenuContainer.appendChild(loggedInMenu)\n\n const throttledMenuToggle = throttle((event: Event) => toggleMenu(event, loggedInMenuTrigger, loggedInMenu), 50)\n loggedInMenuTrigger.addEventListener('click', throttledMenuToggle)\n let timer = setTimeout(() => null, 0)\n loggedInMenuContainer.addEventListener('mouseover', event => {\n clearTimeout(timer)\n throttledMenuToggle(event)\n const nav = document.getElementById('loggedInNav')\n nav?.setAttribute('style', style.headerUserMenuNavigationMenu)\n })\n loggedInMenuContainer.addEventListener('mouseout', event => {\n timer = setTimeout(() => throttledMenuToggle(event), 200)\n const nav = document.getElementById('loggedInNav')\n nav?.setAttribute('style', style.headerUserMenuNavigationMenuNotDisplayed)\n })\n\n return loggedInMenuContainer\n}\n\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createUserMenuItem (child: HTMLElement): HTMLElement {\n const menuProfileItem = document.createElement('li')\n menuProfileItem.setAttribute('style', style.headerUserMenuListItem)\n menuProfileItem.appendChild(child)\n return menuProfileItem\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function getProfileImg (store: IndexedFormula, user: NamedNode): string | HTMLElement {\n let profileUrl = null\n try {\n profileUrl = widgets.findImage(user)\n if (!profileUrl) {\n return emptyProfile\n }\n } catch {\n return emptyProfile\n }\n\n const profileImage = document.createElement('div')\n profileImage.setAttribute('style', style.headerUserMenuPhoto)\n profileImage.style.backgroundImage = `url(${profileUrl})`\n return profileImage\n}\n\n/**\n * @internal\n */\nfunction toggleMenu (event: Event, trigger: HTMLButtonElement, menu: HTMLElement): void {\n const isExpanded = trigger.getAttribute('aria-expanded') === 'true'\n const expand = event.type === 'mouseover'\n const close = event.type === 'mouseout'\n if ((isExpanded && expand) || (!isExpanded && close)) {\n return\n }\n trigger.setAttribute('aria-expanded', (!isExpanded).toString())\n menu.setAttribute('aria-hidden', isExpanded.toString())\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs.js","names":["icons","getPod","authn","style","throttle","loginStatusBox","emptyProfile","require_style","require_iconBase","require_buttons","require_login","require_empty_profile","require_headerFooterHelpers","solid_logic","DEFAULT_HELP_MENU_ICON","DEFAUL_SOLID_ICON_URL","initHeader","header","pod","rebuildHeader","store","userMenuList","options","user","createBanner","podLink","image","userMenu","createUserMenu","createLoginSignUpButtons","banner","leftSideOfHeader","helpMenu","createHelpMenu","helpMenuItems","helpMenuList","menuItem","createUserMenuItem","createUserMenuLink","createUserMenuButton","helpMenuContainer","helpMenuTrigger","helpMenuIcon","throttledMenuToggle","toggleMenu","event","timer","profileLoginButtonPre","button","onClick","label","link","href","target","fetcher","loggedInMenuList","loggedInMenu","loggedInMenuTrigger","profileImg","getProfileImg","loggedInMenuContainer","menuProfileItem","child","profileUrl","profileImage","isExpanded","trigger","expand","close","menu"],"sources":["../../src/header/index.ts"],"sourcesContent":["/* global EventListenerOrEventListenerObject */\n/*\n This file was copied from mashlib/src/global/header.ts file. It is modified to\n work in solid-ui by adjusting where imported functions are found.\n */\nimport { IndexedFormula, NamedNode } from 'rdflib'\nimport { icons } from '../lib/iconBase'\nimport { authn, authSession } from 'solid-logic'\nimport { loginStatusBox } from '../login/login'\n// import { loginStatusBox, authSession, currentUser } from '../authn/authn'\nimport * as widgets from '../widgets'\nimport { style } from '../lib/style'\nimport { emptyProfile } from './empty-profile'\nimport { getPod, throttle } from '../utils/headerFooterHelpers'\n\n/**\n * menu icons\n*/\nconst DEFAULT_HELP_MENU_ICON = icons.iconBase + 'noun_help.svg'\nconst DEFAUL_SOLID_ICON_URL = 'https://solidproject.org/assets/img/solid-emblem.svg'\n\nexport type MenuItemLink = {\n label: string,\n url: string,\n target?: string\n}\n\nexport type MenuItemButton = {\n label: string,\n onclick: () => void\n}\n\nexport type MenuItems = MenuItemLink | MenuItemButton\n\n/*\n HeaderOptions allow for customizing the logo and menu list. If a logo is not provided the default\n is solid. Menulist will always show a link to logout and to the users profile.\n */\nexport type HeaderOptions = {\n logo?: string,\n helpIcon?: string,\n helpMenuList?: MenuItems[]\n}\n\n/**\n * Initialize header component, the header object returned depends on whether the user is authenticated.\n * @param store the data store\n * @param userMenuList a list of menu items when the user is logged in\n * @param options allow the header to be customized with a personalized logo, help icon and a help menu list of links or buttons.\n * @returns a header for an authenticated user with menu items given or a login screen\n */\nexport async function initHeader (store: IndexedFormula, userMenuList: MenuItems[], options?: HeaderOptions) {\n const header = document.getElementById('PageHeader')\n if (!header) {\n return\n }\n\n const pod = getPod()\n rebuildHeader(header, store, pod, userMenuList, options)()\n authSession.events.on('logout', rebuildHeader(header, store, pod, userMenuList, options))\n authSession.events.on('login', rebuildHeader(header, store, pod, userMenuList, options))\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function rebuildHeader (header: HTMLElement, store: IndexedFormula, pod: NamedNode, userMenuList: MenuItems[], options?: HeaderOptions) {\n return async () => {\n const user = authn.currentUser()\n header.innerHTML = ''\n header.appendChild(await createBanner(store, pod, user, userMenuList, options))\n }\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport async function createBanner (store: IndexedFormula, pod: NamedNode, user: NamedNode | null, userMenuList: MenuItems[], options?: HeaderOptions): Promise<HTMLElement> {\n const podLink = document.createElement('a')\n podLink.href = pod.uri\n podLink.setAttribute('style', style.headerBannerLink)\n const image = document.createElement('img')\n if (options) {\n image.src = options.logo ? options.logo : DEFAUL_SOLID_ICON_URL\n }\n image.setAttribute('style', style.headerBannerIcon)\n podLink.appendChild(image)\n\n const userMenu = user\n ? await createUserMenu(store, user, userMenuList)\n : createLoginSignUpButtons()\n\n const banner = document.createElement('div')\n banner.setAttribute('style', style.headerBanner)\n banner.appendChild(podLink)\n\n const leftSideOfHeader = document.createElement('div')\n leftSideOfHeader.setAttribute('style', style.headerBannerRightMenu)\n leftSideOfHeader.appendChild(userMenu)\n\n if (options && options.helpMenuList) {\n const helpMenu = createHelpMenu(options, options.helpMenuList)\n leftSideOfHeader.appendChild(helpMenu as HTMLDivElement)\n }\n\n banner.appendChild(leftSideOfHeader)\n\n return banner\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createHelpMenu (options: HeaderOptions, helpMenuItems: MenuItems[]) {\n if (!helpMenuItems) return\n const helpMenuList = document.createElement('ul')\n helpMenuList.setAttribute('style', style.headerUserMenuList)\n helpMenuItems.forEach(function (menuItem) {\n const menuItemType: string = (menuItem as MenuItemLink).url ? 'url' : 'onclick'\n if (menuItemType === 'url') {\n helpMenuList.appendChild(createUserMenuItem(createUserMenuLink(menuItem.label, (menuItem as MenuItemLink).url, (menuItem as MenuItemLink).target)))\n } else {\n helpMenuList.appendChild(createUserMenuItem(createUserMenuButton(menuItem.label, (menuItem as MenuItemButton).onclick)))\n }\n })\n\n const helpMenu = document.createElement('nav')\n\n helpMenu.setAttribute('style', style.headerUserMenuNavigationMenuNotDisplayed)\n helpMenu.setAttribute('aria-hidden', 'true')\n helpMenu.setAttribute('id', 'helperNav')\n helpMenu.appendChild(helpMenuList)\n\n const helpMenuContainer = document.createElement('div')\n helpMenuContainer.setAttribute('style', style.headerBannerUserMenu)\n helpMenuContainer.appendChild(helpMenu)\n\n const helpMenuTrigger = document.createElement('button')\n helpMenuTrigger.setAttribute('style', style.headerUserMenuTrigger)\n helpMenuTrigger.type = 'button'\n\n const helpMenuIcon = document.createElement('img')\n helpMenuIcon.src = (options && options.helpIcon) ? options.helpIcon : icons.iconBase + DEFAULT_HELP_MENU_ICON\n helpMenuIcon.setAttribute('style', style.headerUserMenuTriggerImg)\n helpMenuContainer.appendChild(helpMenuTrigger)\n helpMenuTrigger.appendChild(helpMenuIcon)\n\n const throttledMenuToggle = throttle((event: Event) => toggleMenu(event, helpMenuTrigger, helpMenu), 50)\n helpMenuTrigger.addEventListener('click', throttledMenuToggle)\n let timer = setTimeout(() => null, 0)\n helpMenuContainer.addEventListener('mouseover', event => {\n clearTimeout(timer)\n throttledMenuToggle(event)\n const nav = document.getElementById('helperNav')\n nav?.setAttribute('style', style.headerUserMenuNavigationMenu)\n })\n helpMenuContainer.addEventListener('mouseout', event => {\n timer = setTimeout(() => throttledMenuToggle(event), 200)\n const nav = document.getElementById('helperNav')\n nav?.setAttribute('style', style.headerUserMenuNavigationMenuNotDisplayed)\n })\n\n return helpMenuContainer\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createLoginSignUpButtons () {\n const profileLoginButtonPre = document.createElement('div')\n profileLoginButtonPre.setAttribute('style', style.headerBannerLogin)\n profileLoginButtonPre.appendChild(loginStatusBox(document, null, {}))\n return profileLoginButtonPre\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createUserMenuButton (label: string, onClick: EventListenerOrEventListenerObject): HTMLElement {\n const button = document.createElement('button')\n button.setAttribute('style', style.headerUserMenuButton)\n button.onmouseover = function () {\n button.setAttribute('style', style.headerUserMenuButtonHover)\n }\n button.onmouseout = function () {\n button.setAttribute('style', style.headerUserMenuButton)\n }\n button.addEventListener('click', onClick)\n button.innerText = label\n return button\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createUserMenuLink (label: string, href: string, target?: string): HTMLElement {\n const link = document.createElement('a')\n link.setAttribute('style', style.headerUserMenuLink)\n link.onmouseover = function () {\n link.setAttribute('style', style.headerUserMenuLinkHover)\n }\n link.onmouseout = function () {\n link.setAttribute('style', style.headerUserMenuLink)\n }\n link.href = href\n link.innerText = label\n if (target) link.target = target\n return link\n}\n\n/**\n * @ignore exporting this only for the unit test\n */\nexport async function createUserMenu (store: IndexedFormula, user: NamedNode, userMenuList: MenuItems[]): Promise<HTMLElement> {\n const fetcher = (<any>store).fetcher\n if (fetcher) {\n // Making sure that Profile is loaded before building menu\n await fetcher.load(user)\n }\n\n const loggedInMenuList = document.createElement('ul')\n loggedInMenuList.setAttribute('style', style.headerUserMenuList)\n if (userMenuList) {\n userMenuList.forEach(function (menuItem) {\n const menuItemType: string = (menuItem as MenuItemLink).url ? 'url' : 'onclick'\n if (menuItemType === 'url') {\n loggedInMenuList.appendChild(createUserMenuItem(createUserMenuLink(menuItem.label, (menuItem as MenuItemLink).url, (menuItem as MenuItemLink).target)))\n } else {\n loggedInMenuList.appendChild(createUserMenuItem(createUserMenuButton(menuItem.label, (menuItem as MenuItemButton).onclick)))\n }\n })\n }\n const loggedInMenu = document.createElement('nav')\n\n loggedInMenu.setAttribute('style', style.headerUserMenuNavigationMenuNotDisplayed)\n loggedInMenu.setAttribute('aria-hidden', 'true')\n loggedInMenu.setAttribute('id', 'loggedInNav')\n loggedInMenu.appendChild(loggedInMenuList)\n\n const loggedInMenuTrigger = document.createElement('button')\n loggedInMenuTrigger.setAttribute('style', style.headerUserMenuTrigger)\n loggedInMenuTrigger.type = 'button'\n const profileImg = getProfileImg(store, user)\n if (typeof profileImg === 'string') {\n loggedInMenuTrigger.innerHTML = profileImg\n } else {\n loggedInMenuTrigger.appendChild(profileImg)\n }\n\n const loggedInMenuContainer = document.createElement('div')\n loggedInMenuContainer.setAttribute('style', style.headerBannerUserMenuNotDisplayed)\n loggedInMenuContainer.appendChild(loggedInMenuTrigger)\n loggedInMenuContainer.appendChild(loggedInMenu)\n\n const throttledMenuToggle = throttle((event: Event) => toggleMenu(event, loggedInMenuTrigger, loggedInMenu), 50)\n loggedInMenuTrigger.addEventListener('click', throttledMenuToggle)\n let timer = setTimeout(() => null, 0)\n loggedInMenuContainer.addEventListener('mouseover', event => {\n clearTimeout(timer)\n throttledMenuToggle(event)\n const nav = document.getElementById('loggedInNav')\n nav?.setAttribute('style', style.headerUserMenuNavigationMenu)\n })\n loggedInMenuContainer.addEventListener('mouseout', event => {\n timer = setTimeout(() => throttledMenuToggle(event), 200)\n const nav = document.getElementById('loggedInNav')\n nav?.setAttribute('style', style.headerUserMenuNavigationMenuNotDisplayed)\n })\n\n return loggedInMenuContainer\n}\n\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createUserMenuItem (child: HTMLElement): HTMLElement {\n const menuProfileItem = document.createElement('li')\n menuProfileItem.setAttribute('style', style.headerUserMenuListItem)\n menuProfileItem.appendChild(child)\n return menuProfileItem\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function getProfileImg (store: IndexedFormula, user: NamedNode): string | HTMLElement {\n let profileUrl = null\n try {\n profileUrl = widgets.findImage(user)\n if (!profileUrl) {\n return emptyProfile\n }\n } catch {\n return emptyProfile\n }\n\n const profileImage = document.createElement('div')\n profileImage.setAttribute('style', style.headerUserMenuPhoto)\n profileImage.style.backgroundImage = `url(${profileUrl})`\n return profileImage\n}\n\n/**\n * @internal\n */\nfunction toggleMenu (event: Event, trigger: HTMLButtonElement, menu: HTMLElement): void {\n const isExpanded = trigger.getAttribute('aria-expanded') === 'true'\n const expand = event.type === 'mouseover'\n const close = event.type === 'mouseout'\n if ((isExpanded && expand) || (!isExpanded && close)) {\n return\n }\n trigger.setAttribute('aria-expanded', (!isExpanded).toString())\n menu.setAttribute('aria-hidden', isExpanded.toString())\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","names":[],"sources":["../../src/header/index.ts"],"sourcesContent":["/* global EventListenerOrEventListenerObject */\n/*\n This file was copied from mashlib/src/global/header.ts file. It is modified to\n work in solid-ui by adjusting where imported functions are found.\n */\nimport { IndexedFormula, NamedNode } from 'rdflib'\nimport { icons } from '../lib/iconBase'\nimport { authn, authSession } from 'solid-logic'\nimport { loginStatusBox } from '../login/login'\n// import { loginStatusBox, authSession, currentUser } from '../authn/authn'\nimport * as widgets from '../widgets'\nimport { style } from '../lib/style'\nimport { emptyProfile } from './empty-profile'\nimport { getPod, throttle } from '../utils/headerFooterHelpers'\n\n/**\n * menu icons\n*/\nconst DEFAULT_HELP_MENU_ICON = icons.iconBase + 'noun_help.svg'\nconst DEFAUL_SOLID_ICON_URL = 'https://solidproject.org/assets/img/solid-emblem.svg'\n\nexport type MenuItemLink = {\n label: string,\n url: string,\n target?: string\n}\n\nexport type MenuItemButton = {\n label: string,\n onclick: () => void\n}\n\nexport type MenuItems = MenuItemLink | MenuItemButton\n\n/*\n HeaderOptions allow for customizing the logo and menu list. If a logo is not provided the default\n is solid. Menulist will always show a link to logout and to the users profile.\n */\nexport type HeaderOptions = {\n logo?: string,\n helpIcon?: string,\n helpMenuList?: MenuItems[]\n}\n\n/**\n * Initialize header component, the header object returned depends on whether the user is authenticated.\n * @param store the data store\n * @param userMenuList a list of menu items when the user is logged in\n * @param options allow the header to be customized with a personalized logo, help icon and a help menu list of links or buttons.\n * @returns a header for an authenticated user with menu items given or a login screen\n */\nexport async function initHeader (store: IndexedFormula, userMenuList: MenuItems[], options?: HeaderOptions) {\n const header = document.getElementById('PageHeader')\n if (!header) {\n return\n }\n\n const pod = getPod()\n rebuildHeader(header, store, pod, userMenuList, options)()\n authSession.events.on('logout', rebuildHeader(header, store, pod, userMenuList, options))\n authSession.events.on('login', rebuildHeader(header, store, pod, userMenuList, options))\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function rebuildHeader (header: HTMLElement, store: IndexedFormula, pod: NamedNode, userMenuList: MenuItems[], options?: HeaderOptions) {\n return async () => {\n const user = authn.currentUser()\n header.innerHTML = ''\n header.appendChild(await createBanner(store, pod, user, userMenuList, options))\n }\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport async function createBanner (store: IndexedFormula, pod: NamedNode, user: NamedNode | null, userMenuList: MenuItems[], options?: HeaderOptions): Promise<HTMLElement> {\n const podLink = document.createElement('a')\n podLink.href = pod.uri\n podLink.setAttribute('style', style.headerBannerLink)\n const image = document.createElement('img')\n if (options) {\n image.src = options.logo ? options.logo : DEFAUL_SOLID_ICON_URL\n }\n image.setAttribute('style', style.headerBannerIcon)\n podLink.appendChild(image)\n\n const userMenu = user\n ? await createUserMenu(store, user, userMenuList)\n : createLoginSignUpButtons()\n\n const banner = document.createElement('div')\n banner.setAttribute('style', style.headerBanner)\n banner.appendChild(podLink)\n\n const leftSideOfHeader = document.createElement('div')\n leftSideOfHeader.setAttribute('style', style.headerBannerRightMenu)\n leftSideOfHeader.appendChild(userMenu)\n\n if (options && options.helpMenuList) {\n const helpMenu = createHelpMenu(options, options.helpMenuList)\n leftSideOfHeader.appendChild(helpMenu as HTMLDivElement)\n }\n\n banner.appendChild(leftSideOfHeader)\n\n return banner\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createHelpMenu (options: HeaderOptions, helpMenuItems: MenuItems[]) {\n if (!helpMenuItems) return\n const helpMenuList = document.createElement('ul')\n helpMenuList.setAttribute('style', style.headerUserMenuList)\n helpMenuItems.forEach(function (menuItem) {\n const menuItemType: string = (menuItem as MenuItemLink).url ? 'url' : 'onclick'\n if (menuItemType === 'url') {\n helpMenuList.appendChild(createUserMenuItem(createUserMenuLink(menuItem.label, (menuItem as MenuItemLink).url, (menuItem as MenuItemLink).target)))\n } else {\n helpMenuList.appendChild(createUserMenuItem(createUserMenuButton(menuItem.label, (menuItem as MenuItemButton).onclick)))\n }\n })\n\n const helpMenu = document.createElement('nav')\n\n helpMenu.setAttribute('style', style.headerUserMenuNavigationMenuNotDisplayed)\n helpMenu.setAttribute('aria-hidden', 'true')\n helpMenu.setAttribute('id', 'helperNav')\n helpMenu.appendChild(helpMenuList)\n\n const helpMenuContainer = document.createElement('div')\n helpMenuContainer.setAttribute('style', style.headerBannerUserMenu)\n helpMenuContainer.appendChild(helpMenu)\n\n const helpMenuTrigger = document.createElement('button')\n helpMenuTrigger.setAttribute('style', style.headerUserMenuTrigger)\n helpMenuTrigger.type = 'button'\n\n const helpMenuIcon = document.createElement('img')\n helpMenuIcon.src = (options && options.helpIcon) ? options.helpIcon : icons.iconBase + DEFAULT_HELP_MENU_ICON\n helpMenuIcon.setAttribute('style', style.headerUserMenuTriggerImg)\n helpMenuContainer.appendChild(helpMenuTrigger)\n helpMenuTrigger.appendChild(helpMenuIcon)\n\n const throttledMenuToggle = throttle((event: Event) => toggleMenu(event, helpMenuTrigger, helpMenu), 50)\n helpMenuTrigger.addEventListener('click', throttledMenuToggle)\n let timer = setTimeout(() => null, 0)\n helpMenuContainer.addEventListener('mouseover', event => {\n clearTimeout(timer)\n throttledMenuToggle(event)\n const nav = document.getElementById('helperNav')\n nav?.setAttribute('style', style.headerUserMenuNavigationMenu)\n })\n helpMenuContainer.addEventListener('mouseout', event => {\n timer = setTimeout(() => throttledMenuToggle(event), 200)\n const nav = document.getElementById('helperNav')\n nav?.setAttribute('style', style.headerUserMenuNavigationMenuNotDisplayed)\n })\n\n return helpMenuContainer\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createLoginSignUpButtons () {\n const profileLoginButtonPre = document.createElement('div')\n profileLoginButtonPre.setAttribute('style', style.headerBannerLogin)\n profileLoginButtonPre.appendChild(loginStatusBox(document, null, {}))\n return profileLoginButtonPre\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createUserMenuButton (label: string, onClick: EventListenerOrEventListenerObject): HTMLElement {\n const button = document.createElement('button')\n button.setAttribute('style', style.headerUserMenuButton)\n button.onmouseover = function () {\n button.setAttribute('style', style.headerUserMenuButtonHover)\n }\n button.onmouseout = function () {\n button.setAttribute('style', style.headerUserMenuButton)\n }\n button.addEventListener('click', onClick)\n button.innerText = label\n return button\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createUserMenuLink (label: string, href: string, target?: string): HTMLElement {\n const link = document.createElement('a')\n link.setAttribute('style', style.headerUserMenuLink)\n link.onmouseover = function () {\n link.setAttribute('style', style.headerUserMenuLinkHover)\n }\n link.onmouseout = function () {\n link.setAttribute('style', style.headerUserMenuLink)\n }\n link.href = href\n link.innerText = label\n if (target) link.target = target\n return link\n}\n\n/**\n * @ignore exporting this only for the unit test\n */\nexport async function createUserMenu (store: IndexedFormula, user: NamedNode, userMenuList: MenuItems[]): Promise<HTMLElement> {\n const fetcher = (<any>store).fetcher\n if (fetcher) {\n // Making sure that Profile is loaded before building menu\n await fetcher.load(user)\n }\n\n const loggedInMenuList = document.createElement('ul')\n loggedInMenuList.setAttribute('style', style.headerUserMenuList)\n if (userMenuList) {\n userMenuList.forEach(function (menuItem) {\n const menuItemType: string = (menuItem as MenuItemLink).url ? 'url' : 'onclick'\n if (menuItemType === 'url') {\n loggedInMenuList.appendChild(createUserMenuItem(createUserMenuLink(menuItem.label, (menuItem as MenuItemLink).url, (menuItem as MenuItemLink).target)))\n } else {\n loggedInMenuList.appendChild(createUserMenuItem(createUserMenuButton(menuItem.label, (menuItem as MenuItemButton).onclick)))\n }\n })\n }\n const loggedInMenu = document.createElement('nav')\n\n loggedInMenu.setAttribute('style', style.headerUserMenuNavigationMenuNotDisplayed)\n loggedInMenu.setAttribute('aria-hidden', 'true')\n loggedInMenu.setAttribute('id', 'loggedInNav')\n loggedInMenu.appendChild(loggedInMenuList)\n\n const loggedInMenuTrigger = document.createElement('button')\n loggedInMenuTrigger.setAttribute('style', style.headerUserMenuTrigger)\n loggedInMenuTrigger.type = 'button'\n const profileImg = getProfileImg(store, user)\n if (typeof profileImg === 'string') {\n loggedInMenuTrigger.innerHTML = profileImg\n } else {\n loggedInMenuTrigger.appendChild(profileImg)\n }\n\n const loggedInMenuContainer = document.createElement('div')\n loggedInMenuContainer.setAttribute('style', style.headerBannerUserMenuNotDisplayed)\n loggedInMenuContainer.appendChild(loggedInMenuTrigger)\n loggedInMenuContainer.appendChild(loggedInMenu)\n\n const throttledMenuToggle = throttle((event: Event) => toggleMenu(event, loggedInMenuTrigger, loggedInMenu), 50)\n loggedInMenuTrigger.addEventListener('click', throttledMenuToggle)\n let timer = setTimeout(() => null, 0)\n loggedInMenuContainer.addEventListener('mouseover', event => {\n clearTimeout(timer)\n throttledMenuToggle(event)\n const nav = document.getElementById('loggedInNav')\n nav?.setAttribute('style', style.headerUserMenuNavigationMenu)\n })\n loggedInMenuContainer.addEventListener('mouseout', event => {\n timer = setTimeout(() => throttledMenuToggle(event), 200)\n const nav = document.getElementById('loggedInNav')\n nav?.setAttribute('style', style.headerUserMenuNavigationMenuNotDisplayed)\n })\n\n return loggedInMenuContainer\n}\n\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createUserMenuItem (child: HTMLElement): HTMLElement {\n const menuProfileItem = document.createElement('li')\n menuProfileItem.setAttribute('style', style.headerUserMenuListItem)\n menuProfileItem.appendChild(child)\n return menuProfileItem\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function getProfileImg (store: IndexedFormula, user: NamedNode): string | HTMLElement {\n let profileUrl = null\n try {\n profileUrl = widgets.findImage(user)\n if (!profileUrl) {\n return emptyProfile\n }\n } catch {\n return emptyProfile\n }\n\n const profileImage = document.createElement('div')\n profileImage.setAttribute('style', style.headerUserMenuPhoto)\n profileImage.style.backgroundImage = `url(${profileUrl})`\n return profileImage\n}\n\n/**\n * @internal\n */\nfunction toggleMenu (event: Event, trigger: HTMLButtonElement, menu: HTMLElement): void {\n const isExpanded = trigger.getAttribute('aria-expanded') === 'true'\n const expand = event.type === 'mouseover'\n const close = event.type === 'mouseout'\n if ((isExpanded && expand) || (!isExpanded && close)) {\n return\n }\n trigger.setAttribute('aria-expanded', (!isExpanded).toString())\n menu.setAttribute('aria-hidden', isExpanded.toString())\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","names":["widgets.findImage","DEFAULT_HELP_MENU_ICON","icons","DEFAUL_SOLID_ICON_URL","initHeader","header","pod","getPod","rebuildHeader","store","userMenuList","options","authSession","user","authn","createBanner","podLink","style","image","userMenu","createUserMenu","createLoginSignUpButtons","banner","leftSideOfHeader","helpMenu","createHelpMenu","helpMenuItems","helpMenuList","menuItem","createUserMenuItem","createUserMenuLink","createUserMenuButton","helpMenuContainer","helpMenuTrigger","helpMenuIcon","throttledMenuToggle","throttle","toggleMenu","event","timer","profileLoginButtonPre","loginStatusBox","button","onClick","label","link","href","target","fetcher","loggedInMenuList","loggedInMenu","loggedInMenuTrigger","profileImg","getProfileImg","loggedInMenuContainer","menuProfileItem","child","profileUrl","findImage","emptyProfile","profileImage","isExpanded","trigger","expand","close","menu"],"sources":["../../src/header/index.ts"],"sourcesContent":["/* global EventListenerOrEventListenerObject */\n/*\n This file was copied from mashlib/src/global/header.ts file. It is modified to\n work in solid-ui by adjusting where imported functions are found.\n */\nimport { IndexedFormula, NamedNode } from 'rdflib'\nimport { icons } from '../lib/iconBase'\nimport { authn, authSession } from 'solid-logic'\nimport { loginStatusBox } from '../login/login'\n// import { loginStatusBox, authSession, currentUser } from '../authn/authn'\nimport * as widgets from '../widgets'\nimport { style } from '../lib/style'\nimport { emptyProfile } from './empty-profile'\nimport { getPod, throttle } from '../utils/headerFooterHelpers'\n\n/**\n * menu icons\n*/\nconst DEFAULT_HELP_MENU_ICON = icons.iconBase + 'noun_help.svg'\nconst DEFAUL_SOLID_ICON_URL = 'https://solidproject.org/assets/img/solid-emblem.svg'\n\nexport type MenuItemLink = {\n label: string,\n url: string,\n target?: string\n}\n\nexport type MenuItemButton = {\n label: string,\n onclick: () => void\n}\n\nexport type MenuItems = MenuItemLink | MenuItemButton\n\n/*\n HeaderOptions allow for customizing the logo and menu list. If a logo is not provided the default\n is solid. Menulist will always show a link to logout and to the users profile.\n */\nexport type HeaderOptions = {\n logo?: string,\n helpIcon?: string,\n helpMenuList?: MenuItems[]\n}\n\n/**\n * Initialize header component, the header object returned depends on whether the user is authenticated.\n * @param store the data store\n * @param userMenuList a list of menu items when the user is logged in\n * @param options allow the header to be customized with a personalized logo, help icon and a help menu list of links or buttons.\n * @returns a header for an authenticated user with menu items given or a login screen\n */\nexport async function initHeader (store: IndexedFormula, userMenuList: MenuItems[], options?: HeaderOptions) {\n const header = document.getElementById('PageHeader')\n if (!header) {\n return\n }\n\n const pod = getPod()\n rebuildHeader(header, store, pod, userMenuList, options)()\n authSession.events.on('logout', rebuildHeader(header, store, pod, userMenuList, options))\n authSession.events.on('login', rebuildHeader(header, store, pod, userMenuList, options))\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function rebuildHeader (header: HTMLElement, store: IndexedFormula, pod: NamedNode, userMenuList: MenuItems[], options?: HeaderOptions) {\n return async () => {\n const user = authn.currentUser()\n header.innerHTML = ''\n header.appendChild(await createBanner(store, pod, user, userMenuList, options))\n }\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport async function createBanner (store: IndexedFormula, pod: NamedNode, user: NamedNode | null, userMenuList: MenuItems[], options?: HeaderOptions): Promise<HTMLElement> {\n const podLink = document.createElement('a')\n podLink.href = pod.uri\n podLink.setAttribute('style', style.headerBannerLink)\n const image = document.createElement('img')\n if (options) {\n image.src = options.logo ? options.logo : DEFAUL_SOLID_ICON_URL\n }\n image.setAttribute('style', style.headerBannerIcon)\n podLink.appendChild(image)\n\n const userMenu = user\n ? await createUserMenu(store, user, userMenuList)\n : createLoginSignUpButtons()\n\n const banner = document.createElement('div')\n banner.setAttribute('style', style.headerBanner)\n banner.appendChild(podLink)\n\n const leftSideOfHeader = document.createElement('div')\n leftSideOfHeader.setAttribute('style', style.headerBannerRightMenu)\n leftSideOfHeader.appendChild(userMenu)\n\n if (options && options.helpMenuList) {\n const helpMenu = createHelpMenu(options, options.helpMenuList)\n leftSideOfHeader.appendChild(helpMenu as HTMLDivElement)\n }\n\n banner.appendChild(leftSideOfHeader)\n\n return banner\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createHelpMenu (options: HeaderOptions, helpMenuItems: MenuItems[]) {\n if (!helpMenuItems) return\n const helpMenuList = document.createElement('ul')\n helpMenuList.setAttribute('style', style.headerUserMenuList)\n helpMenuItems.forEach(function (menuItem) {\n const menuItemType: string = (menuItem as MenuItemLink).url ? 'url' : 'onclick'\n if (menuItemType === 'url') {\n helpMenuList.appendChild(createUserMenuItem(createUserMenuLink(menuItem.label, (menuItem as MenuItemLink).url, (menuItem as MenuItemLink).target)))\n } else {\n helpMenuList.appendChild(createUserMenuItem(createUserMenuButton(menuItem.label, (menuItem as MenuItemButton).onclick)))\n }\n })\n\n const helpMenu = document.createElement('nav')\n\n helpMenu.setAttribute('style', style.headerUserMenuNavigationMenuNotDisplayed)\n helpMenu.setAttribute('aria-hidden', 'true')\n helpMenu.setAttribute('id', 'helperNav')\n helpMenu.appendChild(helpMenuList)\n\n const helpMenuContainer = document.createElement('div')\n helpMenuContainer.setAttribute('style', style.headerBannerUserMenu)\n helpMenuContainer.appendChild(helpMenu)\n\n const helpMenuTrigger = document.createElement('button')\n helpMenuTrigger.setAttribute('style', style.headerUserMenuTrigger)\n helpMenuTrigger.type = 'button'\n\n const helpMenuIcon = document.createElement('img')\n helpMenuIcon.src = (options && options.helpIcon) ? options.helpIcon : icons.iconBase + DEFAULT_HELP_MENU_ICON\n helpMenuIcon.setAttribute('style', style.headerUserMenuTriggerImg)\n helpMenuContainer.appendChild(helpMenuTrigger)\n helpMenuTrigger.appendChild(helpMenuIcon)\n\n const throttledMenuToggle = throttle((event: Event) => toggleMenu(event, helpMenuTrigger, helpMenu), 50)\n helpMenuTrigger.addEventListener('click', throttledMenuToggle)\n let timer = setTimeout(() => null, 0)\n helpMenuContainer.addEventListener('mouseover', event => {\n clearTimeout(timer)\n throttledMenuToggle(event)\n const nav = document.getElementById('helperNav')\n nav?.setAttribute('style', style.headerUserMenuNavigationMenu)\n })\n helpMenuContainer.addEventListener('mouseout', event => {\n timer = setTimeout(() => throttledMenuToggle(event), 200)\n const nav = document.getElementById('helperNav')\n nav?.setAttribute('style', style.headerUserMenuNavigationMenuNotDisplayed)\n })\n\n return helpMenuContainer\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createLoginSignUpButtons () {\n const profileLoginButtonPre = document.createElement('div')\n profileLoginButtonPre.setAttribute('style', style.headerBannerLogin)\n profileLoginButtonPre.appendChild(loginStatusBox(document, null, {}))\n return profileLoginButtonPre\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createUserMenuButton (label: string, onClick: EventListenerOrEventListenerObject): HTMLElement {\n const button = document.createElement('button')\n button.setAttribute('style', style.headerUserMenuButton)\n button.onmouseover = function () {\n button.setAttribute('style', style.headerUserMenuButtonHover)\n }\n button.onmouseout = function () {\n button.setAttribute('style', style.headerUserMenuButton)\n }\n button.addEventListener('click', onClick)\n button.innerText = label\n return button\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createUserMenuLink (label: string, href: string, target?: string): HTMLElement {\n const link = document.createElement('a')\n link.setAttribute('style', style.headerUserMenuLink)\n link.onmouseover = function () {\n link.setAttribute('style', style.headerUserMenuLinkHover)\n }\n link.onmouseout = function () {\n link.setAttribute('style', style.headerUserMenuLink)\n }\n link.href = href\n link.innerText = label\n if (target) link.target = target\n return link\n}\n\n/**\n * @ignore exporting this only for the unit test\n */\nexport async function createUserMenu (store: IndexedFormula, user: NamedNode, userMenuList: MenuItems[]): Promise<HTMLElement> {\n const fetcher = (<any>store).fetcher\n if (fetcher) {\n // Making sure that Profile is loaded before building menu\n await fetcher.load(user)\n }\n\n const loggedInMenuList = document.createElement('ul')\n loggedInMenuList.setAttribute('style', style.headerUserMenuList)\n if (userMenuList) {\n userMenuList.forEach(function (menuItem) {\n const menuItemType: string = (menuItem as MenuItemLink).url ? 'url' : 'onclick'\n if (menuItemType === 'url') {\n loggedInMenuList.appendChild(createUserMenuItem(createUserMenuLink(menuItem.label, (menuItem as MenuItemLink).url, (menuItem as MenuItemLink).target)))\n } else {\n loggedInMenuList.appendChild(createUserMenuItem(createUserMenuButton(menuItem.label, (menuItem as MenuItemButton).onclick)))\n }\n })\n }\n const loggedInMenu = document.createElement('nav')\n\n loggedInMenu.setAttribute('style', style.headerUserMenuNavigationMenuNotDisplayed)\n loggedInMenu.setAttribute('aria-hidden', 'true')\n loggedInMenu.setAttribute('id', 'loggedInNav')\n loggedInMenu.appendChild(loggedInMenuList)\n\n const loggedInMenuTrigger = document.createElement('button')\n loggedInMenuTrigger.setAttribute('style', style.headerUserMenuTrigger)\n loggedInMenuTrigger.type = 'button'\n const profileImg = getProfileImg(store, user)\n if (typeof profileImg === 'string') {\n loggedInMenuTrigger.innerHTML = profileImg\n } else {\n loggedInMenuTrigger.appendChild(profileImg)\n }\n\n const loggedInMenuContainer = document.createElement('div')\n loggedInMenuContainer.setAttribute('style', style.headerBannerUserMenuNotDisplayed)\n loggedInMenuContainer.appendChild(loggedInMenuTrigger)\n loggedInMenuContainer.appendChild(loggedInMenu)\n\n const throttledMenuToggle = throttle((event: Event) => toggleMenu(event, loggedInMenuTrigger, loggedInMenu), 50)\n loggedInMenuTrigger.addEventListener('click', throttledMenuToggle)\n let timer = setTimeout(() => null, 0)\n loggedInMenuContainer.addEventListener('mouseover', event => {\n clearTimeout(timer)\n throttledMenuToggle(event)\n const nav = document.getElementById('loggedInNav')\n nav?.setAttribute('style', style.headerUserMenuNavigationMenu)\n })\n loggedInMenuContainer.addEventListener('mouseout', event => {\n timer = setTimeout(() => throttledMenuToggle(event), 200)\n const nav = document.getElementById('loggedInNav')\n nav?.setAttribute('style', style.headerUserMenuNavigationMenuNotDisplayed)\n })\n\n return loggedInMenuContainer\n}\n\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createUserMenuItem (child: HTMLElement): HTMLElement {\n const menuProfileItem = document.createElement('li')\n menuProfileItem.setAttribute('style', style.headerUserMenuListItem)\n menuProfileItem.appendChild(child)\n return menuProfileItem\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function getProfileImg (store: IndexedFormula, user: NamedNode): string | HTMLElement {\n let profileUrl = null\n try {\n profileUrl = widgets.findImage(user)\n if (!profileUrl) {\n return emptyProfile\n }\n } catch {\n return emptyProfile\n }\n\n const profileImage = document.createElement('div')\n profileImage.setAttribute('style', style.headerUserMenuPhoto)\n profileImage.style.backgroundImage = `url(${profileUrl})`\n return profileImage\n}\n\n/**\n * @internal\n */\nfunction toggleMenu (event: Event, trigger: HTMLButtonElement, menu: HTMLElement): void {\n const isExpanded = trigger.getAttribute('aria-expanded') === 'true'\n const expand = event.type === 'mouseover'\n const close = event.type === 'mouseout'\n if ((isExpanded && expand) || (!isExpanded && close)) {\n return\n }\n trigger.setAttribute('aria-expanded', (!isExpanded).toString())\n menu.setAttribute('aria-hidden', isExpanded.toString())\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["// REMOVE @ts-ignore as you migrate files to TypeScript\n// @ts-ignore\nimport ns from './lib/ns'\nimport { acl, aclControl } from './acl/index'\nimport { create } from './create/index'\n// @ts-ignore\nimport { icons } from './lib/iconBase'\nimport * as language from './widgets/forms/autocomplete/language'\nimport * as log from './lib/log'\nimport { matrix } from './matrix/index'\nimport { media } from './media/index'\n// @ts-ignore\nimport { messageArea } from './lib/messageArea'\n// @ts-ignore\nimport { infiniteMessageArea } from './chat/infinite'\n// @ts-ignore\nimport * as pad from './lib/pad'\n// @ts-ignore\nimport * as participation from './lib/participation'\n// @ts-ignore\nimport * as preferences from './lib/preferences'\n// @ts-ignore\nimport { style } from './lib/style'\n// @ts-ignore\nimport { renderTableViewPane as table } from './lib/table'\nimport * as tabs from './lib/tabs'\n// @ts-ignore\nimport * as utils from './utils'\nimport * as login from './login/login'\nimport * as widgets from './widgets/index'\nimport { initHeader } from './header'\nimport { initFooter } from './footer'\nimport * as createTypes from './create/types'\n\nexport const dom = typeof window !== 'undefined' ? window.document : null // Idea that UI.dom can be adapted in non-browser environments\n\n// this variables are directly used in the storybook\nexport {\n ns,\n acl,\n aclControl,\n create,\n createTypes,\n icons,\n language,\n log,\n login,\n matrix,\n media,\n messageArea,\n infiniteMessageArea,\n pad,\n participation,\n preferences,\n style,\n table,\n tabs,\n utils,\n widgets,\n initHeader,\n initFooter\n}\n// uses in solid-panes\nexport type { CreateContext, NewAppInstanceOptions } from './create/types'\n\nexport * from './lib/auth'\nexport * from './lib/components'\nexport * from './lib/dialogs'\nexport * from './lib/file-explorer/context'\nexport * from './lib/code-editor'\n"],"mappings":"04DAkCA,IAAa,EAAM,OAAO,OAAW,IAAc,OAAO,SAAW"}
1
+ {"version":3,"file":"index.cjs.js","names":["require_ns","require_log","require_index","require_style","require_iconBase","require_language","require_index$1","require_login","require_index$2","require_index$3","require_index$4","require_index$5","require_messageArea","require_participation","require_pad","require_infinite","require_preferences","require_table","require_tabs","require_index$6","require_index$7","require_types","require_Account","require_NoopAuth","require_context","require_ids","require_context$1","require_decorators","require_close_dialog","require_DialogTrait","require_WebComponent","require_DialogComponent","require_FormControlTrait","require_FormControlComponent","require_Dialog","require_show_dialog","require_helpers","require_SolidAuth","require_context$2","require_CodeEditor","dom"],"sources":["../src/index.ts"],"sourcesContent":["// REMOVE @ts-ignore as you migrate files to TypeScript\n// @ts-ignore\nimport ns from './lib/ns'\nimport { acl, aclControl } from './acl/index'\nimport { create } from './create/index'\n// @ts-ignore\nimport { icons } from './lib/iconBase'\nimport * as language from './widgets/forms/autocomplete/language'\nimport * as log from './lib/log'\nimport { matrix } from './matrix/index'\nimport { media } from './media/index'\n// @ts-ignore\nimport { messageArea } from './lib/messageArea'\n// @ts-ignore\nimport { infiniteMessageArea } from './chat/infinite'\n// @ts-ignore\nimport * as pad from './lib/pad'\n// @ts-ignore\nimport * as participation from './lib/participation'\n// @ts-ignore\nimport * as preferences from './lib/preferences'\n// @ts-ignore\nimport { style } from './lib/style'\n// @ts-ignore\nimport { renderTableViewPane as table } from './lib/table'\nimport * as tabs from './lib/tabs'\n// @ts-ignore\nimport * as utils from './utils'\nimport * as login from './login/login'\nimport * as widgets from './widgets/index'\nimport { initHeader } from './header'\nimport { initFooter } from './footer'\nimport * as createTypes from './create/types'\n\nexport const dom = typeof window !== 'undefined' ? window.document : null // Idea that UI.dom can be adapted in non-browser environments\n\n// this variables are directly used in the storybook\nexport {\n ns,\n acl,\n aclControl,\n create,\n createTypes,\n icons,\n language,\n log,\n login,\n matrix,\n media,\n messageArea,\n infiniteMessageArea,\n pad,\n participation,\n preferences,\n style,\n table,\n tabs,\n utils,\n widgets,\n initHeader,\n initFooter\n}\n// uses in solid-panes\nexport type { CreateContext, NewAppInstanceOptions } from './create/types'\n\nexport * from './lib/auth'\nexport * from './lib/components'\nexport * from './lib/dialogs'\nexport * from './lib/file-explorer/context'\nexport * from './lib/code-editor'\n"],"mappings":"04DAkCA,IAAawC,EAAM,OAAO,OAAW,IAAc,OAAO,SAAW"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["// REMOVE @ts-ignore as you migrate files to TypeScript\n// @ts-ignore\nimport ns from './lib/ns'\nimport { acl, aclControl } from './acl/index'\nimport { create } from './create/index'\n// @ts-ignore\nimport { icons } from './lib/iconBase'\nimport * as language from './widgets/forms/autocomplete/language'\nimport * as log from './lib/log'\nimport { matrix } from './matrix/index'\nimport { media } from './media/index'\n// @ts-ignore\nimport { messageArea } from './lib/messageArea'\n// @ts-ignore\nimport { infiniteMessageArea } from './chat/infinite'\n// @ts-ignore\nimport * as pad from './lib/pad'\n// @ts-ignore\nimport * as participation from './lib/participation'\n// @ts-ignore\nimport * as preferences from './lib/preferences'\n// @ts-ignore\nimport { style } from './lib/style'\n// @ts-ignore\nimport { renderTableViewPane as table } from './lib/table'\nimport * as tabs from './lib/tabs'\n// @ts-ignore\nimport * as utils from './utils'\nimport * as login from './login/login'\nimport * as widgets from './widgets/index'\nimport { initHeader } from './header'\nimport { initFooter } from './footer'\nimport * as createTypes from './create/types'\n\nexport const dom = typeof window !== 'undefined' ? window.document : null // Idea that UI.dom can be adapted in non-browser environments\n\n// this variables are directly used in the storybook\nexport {\n ns,\n acl,\n aclControl,\n create,\n createTypes,\n icons,\n language,\n log,\n login,\n matrix,\n media,\n messageArea,\n infiniteMessageArea,\n pad,\n participation,\n preferences,\n style,\n table,\n tabs,\n utils,\n widgets,\n initHeader,\n initFooter\n}\n// uses in solid-panes\nexport type { CreateContext, NewAppInstanceOptions } from './create/types'\n\nexport * from './lib/auth'\nexport * from './lib/components'\nexport * from './lib/dialogs'\nexport * from './lib/file-explorer/context'\nexport * from './lib/code-editor'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,IAAa,IAAM,OAAO,SAAW,MAAc,OAAO,WAAW"}
1
+ {"version":3,"file":"index.esm.js","names":["ns_default","Account","NoopAuth","DialogTrait","WebComponent","DialogComponent","FormControlTrait","FormControlComponent","Dialog","SolidAuth","dom","CloseDialogEvent","CodeEditor","DEFAULT_AUTH_CONTEXT","DEFAULT_DIALOG_CONTEXT","DEFAULT_SIGNUP_URL","ShowDialogEvent","acl","aclControl","authContext","create","types_exports","customElement","dialogContext","fileExplorerContext","generateId","icons","infiniteMessageArea","initFooter","initHeader","language_exports","log_exports","login_exports","matrix","media","messageArea","pad_exports","participation_exports","preferences_exports","showDialog","style","renderTableViewPane","tabs_exports","utils_exports","widgets_exports"],"sources":["../src/index.ts"],"sourcesContent":["// REMOVE @ts-ignore as you migrate files to TypeScript\n// @ts-ignore\nimport ns from './lib/ns'\nimport { acl, aclControl } from './acl/index'\nimport { create } from './create/index'\n// @ts-ignore\nimport { icons } from './lib/iconBase'\nimport * as language from './widgets/forms/autocomplete/language'\nimport * as log from './lib/log'\nimport { matrix } from './matrix/index'\nimport { media } from './media/index'\n// @ts-ignore\nimport { messageArea } from './lib/messageArea'\n// @ts-ignore\nimport { infiniteMessageArea } from './chat/infinite'\n// @ts-ignore\nimport * as pad from './lib/pad'\n// @ts-ignore\nimport * as participation from './lib/participation'\n// @ts-ignore\nimport * as preferences from './lib/preferences'\n// @ts-ignore\nimport { style } from './lib/style'\n// @ts-ignore\nimport { renderTableViewPane as table } from './lib/table'\nimport * as tabs from './lib/tabs'\n// @ts-ignore\nimport * as utils from './utils'\nimport * as login from './login/login'\nimport * as widgets from './widgets/index'\nimport { initHeader } from './header'\nimport { initFooter } from './footer'\nimport * as createTypes from './create/types'\n\nexport const dom = typeof window !== 'undefined' ? window.document : null // Idea that UI.dom can be adapted in non-browser environments\n\n// this variables are directly used in the storybook\nexport {\n ns,\n acl,\n aclControl,\n create,\n createTypes,\n icons,\n language,\n log,\n login,\n matrix,\n media,\n messageArea,\n infiniteMessageArea,\n pad,\n participation,\n preferences,\n style,\n table,\n tabs,\n utils,\n widgets,\n initHeader,\n initFooter\n}\n// uses in solid-panes\nexport type { CreateContext, NewAppInstanceOptions } from './create/types'\n\nexport * from './lib/auth'\nexport * from './lib/components'\nexport * from './lib/dialogs'\nexport * from './lib/file-explorer/context'\nexport * from './lib/code-editor'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,IAAaU,IAAM,OAAO,SAAW,MAAc,OAAO,WAAW"}
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { h as e } from "./chunks/index.esm-AZPmKqjU.js";
2
- import { a as t, c as n, n as r, o as i, s as a, t as o } from "./chunks/auth-DfCfMOuM.js";
2
+ import { a as t, c as n, n as r, o as i, s as a, t as o } from "./chunks/auth-DrN7Ex4E.js";
3
3
  import { l as s, m as c, t as l } from "./chunks/style-Dpwrc8CC.js";
4
- import { S as u, _ as d, a as f, b as p, c as m, d as h, f as g, g as _, h as v, i as y, l as b, m as x, n as S, o as C, p as w, r as T, s as E, t as D, u as O, v as k, x as A, y as j } from "./chunks/src-Ca8thhHS.js";
4
+ import { S as u, _ as d, a as f, b as p, c as m, d as h, f as g, g as _, h as v, i as y, l as b, m as x, n as S, o as C, p as w, r as T, s as E, t as D, u as O, v as k, x as A, y as j } from "./chunks/src-BWY65mD0.js";
5
5
  import { _ as M, a as N, g as P, h as F, m as I, n as L, o as R, t as z, v as B, y as V } from "./chunks/components-BHoVP7zE.js";
6
6
  import { n as H, t as U } from "./chunks/dialogs-D2n-R0lI.js";
7
7
  import { t as W } from "./chunks/show-dialog-eEW5yRBv.js";
@@ -1 +1 @@
1
- {"version":3,"file":"Account.cjs.js","names":[],"sources":["../../../src/lib/auth/Account.ts"],"sourcesContent":["export default class Account {\n public readonly webId: string\n public readonly avatarUrl?: string\n\n constructor (webId: string, avatarUrl?: string) {\n this.webId = webId\n this.avatarUrl = avatarUrl\n }\n}\n"],"mappings":"AAAA,IAAqB,EAArB,KAA6B,CAC3B,MACA,UAEA,YAAa,EAAe,EAAoB,CAC9C,KAAK,MAAQ,EACb,KAAK,UAAY,CACnB,CACF"}
1
+ {"version":3,"file":"Account.cjs.js","names":["Account","webId","avatarUrl"],"sources":["../../../src/lib/auth/Account.ts"],"sourcesContent":["export default class Account {\n public readonly webId: string\n public readonly avatarUrl?: string\n\n constructor (webId: string, avatarUrl?: string) {\n this.webId = webId\n this.avatarUrl = avatarUrl\n }\n}\n"],"mappings":"AAAA,IAAqBA,EAArB,KAA6B,CAC3B,MACA,UAEA,YAAa,EAAe,EAAoB,CAC9C,KAAK,MAAQC,EACb,KAAK,UAAYC,CACnB,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"Account.esm.js","names":[],"sources":["../../../src/lib/auth/Account.ts"],"sourcesContent":["export default class Account {\n public readonly webId: string\n public readonly avatarUrl?: string\n\n constructor (webId: string, avatarUrl?: string) {\n this.webId = webId\n this.avatarUrl = avatarUrl\n }\n}\n"],"mappings":";AAAA,IAAqB,IAArB,MAA6B;CAC3B;CACA;CAEA,YAAa,GAAe,GAAoB;EAE9C,AADA,KAAK,QAAQ,GACb,KAAK,YAAY;CACnB;AACF"}
1
+ {"version":3,"file":"Account.esm.js","names":["Account","webId","avatarUrl"],"sources":["../../../src/lib/auth/Account.ts"],"sourcesContent":["export default class Account {\n public readonly webId: string\n public readonly avatarUrl?: string\n\n constructor (webId: string, avatarUrl?: string) {\n this.webId = webId\n this.avatarUrl = avatarUrl\n }\n}\n"],"mappings":";AAAA,IAAqBA,IAArB,MAA6B;CAC3B;CACA;CAEA,YAAa,GAAe,GAAoB;EAE9C,AADA,KAAK,QAAQC,GACb,KAAK,YAAYC;CACnB;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"NoopAuth.cjs.js","names":[],"sources":["../../../src/lib/auth/NoopAuth.ts"],"sourcesContent":["import { AuthContext } from './context'\n\nexport default class NoopAuth implements AuthContext {\n public readonly initialized = false\n public readonly account = null\n\n async login () {\n throw new Error('Can\\'t use auth, missing context provider')\n }\n\n async signup () {\n throw new Error('Can\\'t use auth, missing context provider')\n }\n\n async logout () {\n throw new Error('Can\\'t use auth, missing context provider')\n }\n\n onSessionUpdated () {\n return () => undefined\n }\n}\n"],"mappings":"AAEA,IAAqB,EAArB,KAAqD,CACnD,YAA8B,GAC9B,QAA0B,KAE1B,MAAM,OAAS,CACb,MAAU,MAAM,0CAA2C,CAC7D,CAEA,MAAM,QAAU,CACd,MAAU,MAAM,0CAA2C,CAC7D,CAEA,MAAM,QAAU,CACd,MAAU,MAAM,0CAA2C,CAC7D,CAEA,kBAAoB,CAClB,UAAa,IAAA,EACf,CACF"}
1
+ {"version":3,"file":"NoopAuth.cjs.js","names":["NoopAuth"],"sources":["../../../src/lib/auth/NoopAuth.ts"],"sourcesContent":["import { AuthContext } from './context'\n\nexport default class NoopAuth implements AuthContext {\n public readonly initialized = false\n public readonly account = null\n\n async login () {\n throw new Error('Can\\'t use auth, missing context provider')\n }\n\n async signup () {\n throw new Error('Can\\'t use auth, missing context provider')\n }\n\n async logout () {\n throw new Error('Can\\'t use auth, missing context provider')\n }\n\n onSessionUpdated () {\n return () => undefined\n }\n}\n"],"mappings":"AAEA,IAAqBA,EAArB,KAAqD,CACnD,YAA8B,GAC9B,QAA0B,KAE1B,MAAM,OAAS,CACb,MAAU,MAAM,0CAA2C,CAC7D,CAEA,MAAM,QAAU,CACd,MAAU,MAAM,0CAA2C,CAC7D,CAEA,MAAM,QAAU,CACd,MAAU,MAAM,0CAA2C,CAC7D,CAEA,kBAAoB,CAClB,UAAa,IAAA,EACf,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"NoopAuth.esm.js","names":[],"sources":["../../../src/lib/auth/NoopAuth.ts"],"sourcesContent":["import { AuthContext } from './context'\n\nexport default class NoopAuth implements AuthContext {\n public readonly initialized = false\n public readonly account = null\n\n async login () {\n throw new Error('Can\\'t use auth, missing context provider')\n }\n\n async signup () {\n throw new Error('Can\\'t use auth, missing context provider')\n }\n\n async logout () {\n throw new Error('Can\\'t use auth, missing context provider')\n }\n\n onSessionUpdated () {\n return () => undefined\n }\n}\n"],"mappings":";AAEA,IAAqB,IAArB,MAAqD;CACnD,cAA8B;CAC9B,UAA0B;CAE1B,MAAM,QAAS;EACb,MAAU,MAAM,0CAA2C;CAC7D;CAEA,MAAM,SAAU;EACd,MAAU,MAAM,0CAA2C;CAC7D;CAEA,MAAM,SAAU;EACd,MAAU,MAAM,0CAA2C;CAC7D;CAEA,mBAAoB;EAClB,aAAa,KAAA;CACf;AACF"}
1
+ {"version":3,"file":"NoopAuth.esm.js","names":["NoopAuth"],"sources":["../../../src/lib/auth/NoopAuth.ts"],"sourcesContent":["import { AuthContext } from './context'\n\nexport default class NoopAuth implements AuthContext {\n public readonly initialized = false\n public readonly account = null\n\n async login () {\n throw new Error('Can\\'t use auth, missing context provider')\n }\n\n async signup () {\n throw new Error('Can\\'t use auth, missing context provider')\n }\n\n async logout () {\n throw new Error('Can\\'t use auth, missing context provider')\n }\n\n onSessionUpdated () {\n return () => undefined\n }\n}\n"],"mappings":";AAEA,IAAqBA,IAArB,MAAqD;CACnD,cAA8B;CAC9B,UAA0B;CAE1B,MAAM,QAAS;EACb,MAAU,MAAM,0CAA2C;CAC7D;CAEA,MAAM,SAAU;EACd,MAAU,MAAM,0CAA2C;CAC7D;CAEA,MAAM,SAAU;EACd,MAAU,MAAM,0CAA2C;CAC7D;CAEA,mBAAoB;EAClB,aAAa,KAAA;CACf;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"SolidAuth.cjs.js","names":[],"sources":["../../../src/lib/auth/SolidAuth.ts"],"sourcesContent":["import Account from '@/lib/auth/Account'\nimport ns from '@/lib/ns'\nimport { authn, authSession, reloadOnIdentityReplaced, solidLogicSingleton } from 'solid-logic'\nimport { AuthContext } from '@/lib/auth'\nimport { showDialog } from '@/lib/dialogs'\n\nimport LoginModal from '@/components/login-modal'\n\nexport const DEFAULT_SIGNUP_URL = 'https://solidproject.org/get_a_pod'\n\nfunction findAccountImage (webId: string): string | undefined {\n const store = solidLogicSingleton.store\n const me = store.sym(webId)\n const image =\n store.any(me, ns.sioc('avatar')) ||\n store.any(me, ns.foaf('img')) ||\n store.any(me, ns.vcard('logo')) ||\n store.any(me, ns.vcard('hasPhoto')) ||\n store.any(me, ns.vcard('photo')) ||\n store.any(me, ns.foaf('depiction'))\n\n return image ? (image as any).value : undefined\n}\n\nexport default class SolidAuth implements AuthContext {\n private _initialized = false\n private profileLoaded = false\n private listeners: (() => unknown)[] = []\n\n constructor (public signupUrl: string = DEFAULT_SIGNUP_URL) {}\n\n async initialize () {\n authSession.events.on('sessionRestore', () => {\n ;(solidLogicSingleton.store.updater as any).flagAuthorizationMetadata()\n })\n\n // An identity that was actively established was replaced while the session\n // stayed active (A -> B, e.g. from another tab): everything fetched under\n // the previous identity is stale, so the app reloads. A logout is not a\n // reload case here — the derived info already reports logged out and the\n // logout path runs its own cleanup and navigation.\n reloadOnIdentityReplaced(authSession.events, () => {\n if (authSession.info?.isLoggedIn) window.location.reload()\n })\n\n await authn.checkUser()\n\n this._initialized = true\n this.listeners.forEach(listener => listener())\n }\n\n async loadProfile () {\n if (this.profileLoaded || !this.account) {\n return\n }\n\n this.profileLoaded = true\n\n await solidLogicSingleton.profile.loadMe()\n\n this.listeners.forEach(listener => listener())\n }\n\n get initialized (): boolean {\n return this._initialized\n }\n\n get account (): Account | null {\n const webId: string | undefined = authSession.webId ?? authSession.info?.webId\n const isActive: boolean = authSession.isActive ?? authSession.info?.isLoggedIn ?? Boolean(webId)\n\n if (!isActive || !webId) {\n return null\n }\n\n const avatarUrl = findAccountImage(webId)\n\n return new Account(webId, avatarUrl)\n }\n\n async login (loginUrl?: string) {\n if (!loginUrl) {\n showDialog(LoginModal)\n\n return\n }\n\n // clear authorization metadata from store\n ;(solidLogicSingleton.store.updater as any).flagAuthorizationMetadata()\n\n const preLoginRedirectHash = new URL(window.location.href).hash\n if (preLoginRedirectHash) {\n window.localStorage.setItem('preLoginRedirectHash', preLoginRedirectHash)\n }\n window.localStorage.setItem('loginIssuer', loginUrl)\n\n const locationUrl = new URL(window.location.href)\n\n locationUrl.hash = ''\n\n await authSession.login(loginUrl, locationUrl.href)\n }\n\n async signup () {\n window.open(this.signupUrl, '_blank', 'noopener,noreferrer')\n }\n\n async logout () {\n await authSession.logout()\n }\n\n onSessionUpdated (callback: () => unknown) {\n const sessionEventTarget = authSession as unknown as EventTarget\n const listener = () => {\n callback()\n }\n\n this.listeners.push(listener)\n\n if (typeof sessionEventTarget.addEventListener === 'function') {\n sessionEventTarget.addEventListener('sessionStateChange', listener)\n } else {\n authSession.events.on('login', listener)\n authSession.events.on('logout', listener)\n authSession.events.on('sessionRestore', listener)\n }\n\n return () => {\n this.listeners = this.listeners.filter(_listener => _listener !== listener)\n\n if (typeof sessionEventTarget.removeEventListener === 'function') {\n sessionEventTarget.removeEventListener('sessionStateChange', listener)\n } else {\n authSession.events.off('login', listener)\n authSession.events.off('logout', listener)\n authSession.events.off('sessionRestore', listener)\n }\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"SolidAuth.cjs.js","names":["solidLogicSingleton","ns","authSession","authn","Account","LoginModal","require_ns","require_Account","require_helpers","require_components_login_modal_index","solid_logic","DEFAULT_SIGNUP_URL","findAccountImage","store","me","webId","image","SolidAuth","signupUrl","listener","avatarUrl","loginUrl","preLoginRedirectHash","locationUrl","sessionEventTarget","callback","_listener"],"sources":["../../../src/lib/auth/SolidAuth.ts"],"sourcesContent":["import Account from '@/lib/auth/Account'\nimport ns from '@/lib/ns'\nimport { authn, authSession, reloadOnIdentityReplaced, solidLogicSingleton } from 'solid-logic'\nimport { AuthContext } from '@/lib/auth'\nimport { showDialog } from '@/lib/dialogs'\n\nimport LoginModal from '@/components/login-modal'\n\nexport const DEFAULT_SIGNUP_URL = 'https://solidproject.org/get_a_pod'\n\nfunction findAccountImage (webId: string): string | undefined {\n const store = solidLogicSingleton.store\n const me = store.sym(webId)\n const image =\n store.any(me, ns.sioc('avatar')) ||\n store.any(me, ns.foaf('img')) ||\n store.any(me, ns.vcard('logo')) ||\n store.any(me, ns.vcard('hasPhoto')) ||\n store.any(me, ns.vcard('photo')) ||\n store.any(me, ns.foaf('depiction'))\n\n return image ? (image as any).value : undefined\n}\n\nexport default class SolidAuth implements AuthContext {\n private _initialized = false\n private profileLoaded = false\n private listeners: (() => unknown)[] = []\n\n constructor (public signupUrl: string = DEFAULT_SIGNUP_URL) {}\n\n async initialize () {\n authSession.events.on('sessionRestore', () => {\n ;(solidLogicSingleton.store.updater as any).flagAuthorizationMetadata()\n })\n\n // An identity that was actively established was replaced while the session\n // stayed active (A -> B, e.g. from another tab): everything fetched under\n // the previous identity is stale, so the app reloads. A logout is not a\n // reload case here — the derived info already reports logged out and the\n // logout path runs its own cleanup and navigation.\n reloadOnIdentityReplaced(authSession.events, () => {\n if (authSession.info?.isLoggedIn) window.location.reload()\n })\n\n await authn.checkUser()\n\n this._initialized = true\n this.listeners.forEach(listener => listener())\n }\n\n async loadProfile () {\n if (this.profileLoaded || !this.account) {\n return\n }\n\n this.profileLoaded = true\n\n await solidLogicSingleton.profile.loadMe()\n\n this.listeners.forEach(listener => listener())\n }\n\n get initialized (): boolean {\n return this._initialized\n }\n\n get account (): Account | null {\n const webId: string | undefined = authSession.webId ?? authSession.info?.webId\n const isActive: boolean = authSession.isActive ?? authSession.info?.isLoggedIn ?? Boolean(webId)\n\n if (!isActive || !webId) {\n return null\n }\n\n const avatarUrl = findAccountImage(webId)\n\n return new Account(webId, avatarUrl)\n }\n\n async login (loginUrl?: string) {\n if (!loginUrl) {\n showDialog(LoginModal)\n\n return\n }\n\n // clear authorization metadata from store\n ;(solidLogicSingleton.store.updater as any).flagAuthorizationMetadata()\n\n const preLoginRedirectHash = new URL(window.location.href).hash\n if (preLoginRedirectHash) {\n window.localStorage.setItem('preLoginRedirectHash', preLoginRedirectHash)\n }\n window.localStorage.setItem('loginIssuer', loginUrl)\n\n const locationUrl = new URL(window.location.href)\n\n locationUrl.hash = ''\n\n await authSession.login(loginUrl, locationUrl.href)\n }\n\n async signup () {\n window.open(this.signupUrl, '_blank', 'noopener,noreferrer')\n }\n\n async logout () {\n await authSession.logout()\n }\n\n onSessionUpdated (callback: () => unknown) {\n const sessionEventTarget = authSession as unknown as EventTarget\n const listener = () => {\n callback()\n }\n\n this.listeners.push(listener)\n\n if (typeof sessionEventTarget.addEventListener === 'function') {\n sessionEventTarget.addEventListener('sessionStateChange', listener)\n } else {\n authSession.events.on('login', listener)\n authSession.events.on('logout', listener)\n authSession.events.on('sessionRestore', listener)\n }\n\n return () => {\n this.listeners = this.listeners.filter(_listener => _listener !== listener)\n\n if (typeof sessionEventTarget.removeEventListener === 'function') {\n sessionEventTarget.removeEventListener('sessionStateChange', listener)\n } else {\n authSession.events.off('login', listener)\n authSession.events.off('logout', listener)\n authSession.events.off('sessionRestore', listener)\n }\n }\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SolidAuth.esm.js","names":[],"sources":["../../../src/lib/auth/SolidAuth.ts"],"sourcesContent":["import Account from '@/lib/auth/Account'\nimport ns from '@/lib/ns'\nimport { authn, authSession, reloadOnIdentityReplaced, solidLogicSingleton } from 'solid-logic'\nimport { AuthContext } from '@/lib/auth'\nimport { showDialog } from '@/lib/dialogs'\n\nimport LoginModal from '@/components/login-modal'\n\nexport const DEFAULT_SIGNUP_URL = 'https://solidproject.org/get_a_pod'\n\nfunction findAccountImage (webId: string): string | undefined {\n const store = solidLogicSingleton.store\n const me = store.sym(webId)\n const image =\n store.any(me, ns.sioc('avatar')) ||\n store.any(me, ns.foaf('img')) ||\n store.any(me, ns.vcard('logo')) ||\n store.any(me, ns.vcard('hasPhoto')) ||\n store.any(me, ns.vcard('photo')) ||\n store.any(me, ns.foaf('depiction'))\n\n return image ? (image as any).value : undefined\n}\n\nexport default class SolidAuth implements AuthContext {\n private _initialized = false\n private profileLoaded = false\n private listeners: (() => unknown)[] = []\n\n constructor (public signupUrl: string = DEFAULT_SIGNUP_URL) {}\n\n async initialize () {\n authSession.events.on('sessionRestore', () => {\n ;(solidLogicSingleton.store.updater as any).flagAuthorizationMetadata()\n })\n\n // An identity that was actively established was replaced while the session\n // stayed active (A -> B, e.g. from another tab): everything fetched under\n // the previous identity is stale, so the app reloads. A logout is not a\n // reload case here — the derived info already reports logged out and the\n // logout path runs its own cleanup and navigation.\n reloadOnIdentityReplaced(authSession.events, () => {\n if (authSession.info?.isLoggedIn) window.location.reload()\n })\n\n await authn.checkUser()\n\n this._initialized = true\n this.listeners.forEach(listener => listener())\n }\n\n async loadProfile () {\n if (this.profileLoaded || !this.account) {\n return\n }\n\n this.profileLoaded = true\n\n await solidLogicSingleton.profile.loadMe()\n\n this.listeners.forEach(listener => listener())\n }\n\n get initialized (): boolean {\n return this._initialized\n }\n\n get account (): Account | null {\n const webId: string | undefined = authSession.webId ?? authSession.info?.webId\n const isActive: boolean = authSession.isActive ?? authSession.info?.isLoggedIn ?? Boolean(webId)\n\n if (!isActive || !webId) {\n return null\n }\n\n const avatarUrl = findAccountImage(webId)\n\n return new Account(webId, avatarUrl)\n }\n\n async login (loginUrl?: string) {\n if (!loginUrl) {\n showDialog(LoginModal)\n\n return\n }\n\n // clear authorization metadata from store\n ;(solidLogicSingleton.store.updater as any).flagAuthorizationMetadata()\n\n const preLoginRedirectHash = new URL(window.location.href).hash\n if (preLoginRedirectHash) {\n window.localStorage.setItem('preLoginRedirectHash', preLoginRedirectHash)\n }\n window.localStorage.setItem('loginIssuer', loginUrl)\n\n const locationUrl = new URL(window.location.href)\n\n locationUrl.hash = ''\n\n await authSession.login(loginUrl, locationUrl.href)\n }\n\n async signup () {\n window.open(this.signupUrl, '_blank', 'noopener,noreferrer')\n }\n\n async logout () {\n await authSession.logout()\n }\n\n onSessionUpdated (callback: () => unknown) {\n const sessionEventTarget = authSession as unknown as EventTarget\n const listener = () => {\n callback()\n }\n\n this.listeners.push(listener)\n\n if (typeof sessionEventTarget.addEventListener === 'function') {\n sessionEventTarget.addEventListener('sessionStateChange', listener)\n } else {\n authSession.events.on('login', listener)\n authSession.events.on('logout', listener)\n authSession.events.on('sessionRestore', listener)\n }\n\n return () => {\n this.listeners = this.listeners.filter(_listener => _listener !== listener)\n\n if (typeof sessionEventTarget.removeEventListener === 'function') {\n sessionEventTarget.removeEventListener('sessionStateChange', listener)\n } else {\n authSession.events.off('login', listener)\n authSession.events.off('logout', listener)\n authSession.events.off('sessionRestore', listener)\n }\n }\n }\n}\n"],"mappings":";;;;;;;AAQA,IAAa,IAAqB;AAElC,SAAS,EAAkB,GAAmC;CAC5D,IAAM,IAAQ,EAAoB,OAC5B,IAAK,EAAM,IAAI,CAAK,GACpB,IACJ,EAAM,IAAI,GAAI,EAAG,KAAK,QAAQ,CAAC,KAC/B,EAAM,IAAI,GAAI,EAAG,KAAK,KAAK,CAAC,KAC5B,EAAM,IAAI,GAAI,EAAG,MAAM,MAAM,CAAC,KAC9B,EAAM,IAAI,GAAI,EAAG,MAAM,UAAU,CAAC,KAClC,EAAM,IAAI,GAAI,EAAG,MAAM,OAAO,CAAC,KAC/B,EAAM,IAAI,GAAI,EAAG,KAAK,WAAW,CAAC;CAEpC,OAAO,IAAS,EAAc,QAAQ,KAAA;AACxC;AAEA,IAAqB,IAArB,MAAsD;CAKhC;CAJpB,eAAuB;CACvB,gBAAwB;CACxB,YAAuC,CAAC;CAExC,YAAa,IAA2B,GAAoB;EAAxC,KAAA,YAAA;CAAyC;CAE7D,MAAM,aAAc;EAiBlB,AAhBA,EAAY,OAAO,GAAG,wBAAwB;GAC3C,EAAqB,MAAM,QAAgB,0BAA0B;EACxE,CAAC,GAOD,EAAyB,EAAY,cAAc;GACjD,AAAI,EAAY,MAAM,cAAY,OAAO,SAAS,OAAO;EAC3D,CAAC,GAED,MAAM,EAAM,UAAU,GAEtB,KAAK,eAAe,IACpB,KAAK,UAAU,SAAQ,MAAY,EAAS,CAAC;CAC/C;CAEA,MAAM,cAAe;EACf,MAAK,iBAAkB,KAAK,YAIhC,KAAK,gBAAgB,IAErB,MAAM,EAAoB,QAAQ,OAAO,GAEzC,KAAK,UAAU,SAAQ,MAAY,EAAS,CAAC;CAC/C;CAEA,IAAI,cAAwB;EAC1B,OAAO,KAAK;CACd;CAEA,IAAI,UAA2B;EAC7B,IAAM,IAA4B,EAAY,SAAS,EAAY,MAAM;EAGzE,IAAI,EAFsB,EAAY,YAAY,EAAY,MAAM,cAAc,EAAQ,MAEzE,CAAC,GAChB,OAAO;EAGT,IAAM,IAAY,EAAiB,CAAK;EAExC,OAAO,IAAI,EAAQ,GAAO,CAAS;CACrC;CAEA,MAAM,MAAO,GAAmB;EAC9B,IAAI,CAAC,GAAU;GACb,EAAW,CAAU;GAErB;EACF;EAGC,EAAqB,MAAM,QAAgB,0BAA0B;EAEtE,IAAM,IAAuB,IAAI,IAAI,OAAO,SAAS,IAAI,CAAC,CAAC;EAI3D,AAHI,KACF,OAAO,aAAa,QAAQ,wBAAwB,CAAoB,GAE1E,OAAO,aAAa,QAAQ,eAAe,CAAQ;EAEnD,IAAM,IAAc,IAAI,IAAI,OAAO,SAAS,IAAI;EAIhD,AAFA,EAAY,OAAO,IAEnB,MAAM,EAAY,MAAM,GAAU,EAAY,IAAI;CACpD;CAEA,MAAM,SAAU;EACd,OAAO,KAAK,KAAK,WAAW,UAAU,qBAAqB;CAC7D;CAEA,MAAM,SAAU;EACd,MAAM,EAAY,OAAO;CAC3B;CAEA,iBAAkB,GAAyB;EACzC,IAAM,IAAqB,GACrB,UAAiB;GACrB,EAAS;EACX;EAYA,OAVA,KAAK,UAAU,KAAK,CAAQ,GAExB,OAAO,EAAmB,oBAAqB,aACjD,EAAmB,iBAAiB,sBAAsB,CAAQ,KAElE,EAAY,OAAO,GAAG,SAAS,CAAQ,GACvC,EAAY,OAAO,GAAG,UAAU,CAAQ,GACxC,EAAY,OAAO,GAAG,kBAAkB,CAAQ,UAGrC;GAGX,AAFA,KAAK,YAAY,KAAK,UAAU,QAAO,MAAa,MAAc,CAAQ,GAEtE,OAAO,EAAmB,uBAAwB,aACpD,EAAmB,oBAAoB,sBAAsB,CAAQ,KAErE,EAAY,OAAO,IAAI,SAAS,CAAQ,GACxC,EAAY,OAAO,IAAI,UAAU,CAAQ,GACzC,EAAY,OAAO,IAAI,kBAAkB,CAAQ;EAErD;CACF;AACF"}
1
+ {"version":3,"file":"SolidAuth.esm.js","names":["ns","LoginModal","ns_default","Account","login_modal_default","DEFAULT_SIGNUP_URL","findAccountImage","store","solidLogicSingleton","me","webId","image","SolidAuth","signupUrl","authSession","reloadOnIdentityReplaced","authn","listener","avatarUrl","loginUrl","preLoginRedirectHash","locationUrl","sessionEventTarget","_listener"],"sources":["../../../src/lib/auth/SolidAuth.ts"],"sourcesContent":["import Account from '@/lib/auth/Account'\nimport ns from '@/lib/ns'\nimport { authn, authSession, reloadOnIdentityReplaced, solidLogicSingleton } from 'solid-logic'\nimport { AuthContext } from '@/lib/auth'\nimport { showDialog } from '@/lib/dialogs'\n\nimport LoginModal from '@/components/login-modal'\n\nexport const DEFAULT_SIGNUP_URL = 'https://solidproject.org/get_a_pod'\n\nfunction findAccountImage (webId: string): string | undefined {\n const store = solidLogicSingleton.store\n const me = store.sym(webId)\n const image =\n store.any(me, ns.sioc('avatar')) ||\n store.any(me, ns.foaf('img')) ||\n store.any(me, ns.vcard('logo')) ||\n store.any(me, ns.vcard('hasPhoto')) ||\n store.any(me, ns.vcard('photo')) ||\n store.any(me, ns.foaf('depiction'))\n\n return image ? (image as any).value : undefined\n}\n\nexport default class SolidAuth implements AuthContext {\n private _initialized = false\n private profileLoaded = false\n private listeners: (() => unknown)[] = []\n\n constructor (public signupUrl: string = DEFAULT_SIGNUP_URL) {}\n\n async initialize () {\n authSession.events.on('sessionRestore', () => {\n ;(solidLogicSingleton.store.updater as any).flagAuthorizationMetadata()\n })\n\n // An identity that was actively established was replaced while the session\n // stayed active (A -> B, e.g. from another tab): everything fetched under\n // the previous identity is stale, so the app reloads. A logout is not a\n // reload case here — the derived info already reports logged out and the\n // logout path runs its own cleanup and navigation.\n reloadOnIdentityReplaced(authSession.events, () => {\n if (authSession.info?.isLoggedIn) window.location.reload()\n })\n\n await authn.checkUser()\n\n this._initialized = true\n this.listeners.forEach(listener => listener())\n }\n\n async loadProfile () {\n if (this.profileLoaded || !this.account) {\n return\n }\n\n this.profileLoaded = true\n\n await solidLogicSingleton.profile.loadMe()\n\n this.listeners.forEach(listener => listener())\n }\n\n get initialized (): boolean {\n return this._initialized\n }\n\n get account (): Account | null {\n const webId: string | undefined = authSession.webId ?? authSession.info?.webId\n const isActive: boolean = authSession.isActive ?? authSession.info?.isLoggedIn ?? Boolean(webId)\n\n if (!isActive || !webId) {\n return null\n }\n\n const avatarUrl = findAccountImage(webId)\n\n return new Account(webId, avatarUrl)\n }\n\n async login (loginUrl?: string) {\n if (!loginUrl) {\n showDialog(LoginModal)\n\n return\n }\n\n // clear authorization metadata from store\n ;(solidLogicSingleton.store.updater as any).flagAuthorizationMetadata()\n\n const preLoginRedirectHash = new URL(window.location.href).hash\n if (preLoginRedirectHash) {\n window.localStorage.setItem('preLoginRedirectHash', preLoginRedirectHash)\n }\n window.localStorage.setItem('loginIssuer', loginUrl)\n\n const locationUrl = new URL(window.location.href)\n\n locationUrl.hash = ''\n\n await authSession.login(loginUrl, locationUrl.href)\n }\n\n async signup () {\n window.open(this.signupUrl, '_blank', 'noopener,noreferrer')\n }\n\n async logout () {\n await authSession.logout()\n }\n\n onSessionUpdated (callback: () => unknown) {\n const sessionEventTarget = authSession as unknown as EventTarget\n const listener = () => {\n callback()\n }\n\n this.listeners.push(listener)\n\n if (typeof sessionEventTarget.addEventListener === 'function') {\n sessionEventTarget.addEventListener('sessionStateChange', listener)\n } else {\n authSession.events.on('login', listener)\n authSession.events.on('logout', listener)\n authSession.events.on('sessionRestore', listener)\n }\n\n return () => {\n this.listeners = this.listeners.filter(_listener => _listener !== listener)\n\n if (typeof sessionEventTarget.removeEventListener === 'function') {\n sessionEventTarget.removeEventListener('sessionStateChange', listener)\n } else {\n authSession.events.off('login', listener)\n authSession.events.off('logout', listener)\n authSession.events.off('sessionRestore', listener)\n }\n }\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.cjs.js","names":[],"sources":["../../../src/lib/auth/context.ts"],"sourcesContent":["import { createContext } from '@lit/context'\nimport NoopAuth from './NoopAuth'\nimport Account from './Account'\n\nexport interface AuthContext {\n initialized: boolean;\n account: Account | null;\n login(loginUrl?: string): Promise<void>;\n loadProfile?(): Promise<void>;\n signup(): Promise<void>;\n logout(): Promise<void>;\n onSessionUpdated(callback: () => unknown): () => void;\n}\n\nexport const DEFAULT_AUTH_CONTEXT = new NoopAuth()\nexport const authContext = createContext<AuthContext>(Symbol('auth'))\n"],"mappings":"mEAcA,IAAa,EAAuB,IAAI,EAAA,QAC3B,GAAA,EAAc,EAAA,cAAA,CAA2B,OAAO,MAAM,CAAC"}
1
+ {"version":3,"file":"context.cjs.js","names":["NoopAuth","createContext","require_NoopAuth","_lit_context","DEFAULT_AUTH_CONTEXT","authContext"],"sources":["../../../src/lib/auth/context.ts"],"sourcesContent":["import { createContext } from '@lit/context'\nimport NoopAuth from './NoopAuth'\nimport Account from './Account'\n\nexport interface AuthContext {\n initialized: boolean;\n account: Account | null;\n login(loginUrl?: string): Promise<void>;\n loadProfile?(): Promise<void>;\n signup(): Promise<void>;\n logout(): Promise<void>;\n onSessionUpdated(callback: () => unknown): () => void;\n}\n\nexport const DEFAULT_AUTH_CONTEXT = new NoopAuth()\nexport const authContext = createContext<AuthContext>(Symbol('auth'))\n"],"mappings":"mEAcA,IAAaI,EAAuB,IAAIJ,EAAAA,QAC3BK,GAAA,EAAcJ,EAAAA,cAAAA,CAA2B,OAAO,MAAM,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.esm.js","names":[],"sources":["../../../src/lib/auth/context.ts"],"sourcesContent":["import { createContext } from '@lit/context'\nimport NoopAuth from './NoopAuth'\nimport Account from './Account'\n\nexport interface AuthContext {\n initialized: boolean;\n account: Account | null;\n login(loginUrl?: string): Promise<void>;\n loadProfile?(): Promise<void>;\n signup(): Promise<void>;\n logout(): Promise<void>;\n onSessionUpdated(callback: () => unknown): () => void;\n}\n\nexport const DEFAULT_AUTH_CONTEXT = new NoopAuth()\nexport const authContext = createContext<AuthContext>(Symbol('auth'))\n"],"mappings":";;;AAcA,IAAa,IAAuB,IAAI,EAAS,GACpC,IAAc,EAA2B,OAAO,MAAM,CAAC"}
1
+ {"version":3,"file":"context.esm.js","names":["NoopAuth","DEFAULT_AUTH_CONTEXT","authContext","createContext"],"sources":["../../../src/lib/auth/context.ts"],"sourcesContent":["import { createContext } from '@lit/context'\nimport NoopAuth from './NoopAuth'\nimport Account from './Account'\n\nexport interface AuthContext {\n initialized: boolean;\n account: Account | null;\n login(loginUrl?: string): Promise<void>;\n loadProfile?(): Promise<void>;\n signup(): Promise<void>;\n logout(): Promise<void>;\n onSessionUpdated(callback: () => unknown): () => void;\n}\n\nexport const DEFAULT_AUTH_CONTEXT = new NoopAuth()\nexport const authContext = createContext<AuthContext>(Symbol('auth'))\n"],"mappings":";;;AAcA,IAAaC,IAAuB,IAAID,EAAS,GACpCE,IAAcC,EAA2B,OAAO,MAAM,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CodeEditor.cjs.js","names":[],"sources":["../../../src/lib/code-editor/CodeEditor.ts"],"sourcesContent":["import type { ThemeMode } from 'pane-registry'\nimport { Compartment, EditorState } from '@codemirror/state'\nimport { EditorView, drawSelection, keymap, lineNumbers } from '@codemirror/view'\nimport { defaultHighlightStyle, syntaxHighlighting, StreamLanguage } from '@codemirror/language'\nimport { defaultKeymap, history, historyKeymap } from '@codemirror/commands'\nimport { css } from '@codemirror/lang-css'\nimport { html } from '@codemirror/lang-html'\nimport { javascript } from '@codemirror/lang-javascript'\nimport { json } from '@codemirror/lang-json'\nimport { markdown } from '@codemirror/lang-markdown'\nimport { xml } from '@codemirror/lang-xml'\nimport { vscodeDark, vscodeLight } from '@uiw/codemirror-theme-vscode'\nimport { turtle } from '@codemirror/legacy-modes/mode/turtle'\nimport { sparql } from '@codemirror/legacy-modes/mode/sparql'\nimport { ntriples } from '@codemirror/legacy-modes/mode/ntriples'\n\nexport class CodeEditor {\n private _view: EditorView | null = null\n private _languageCompartment: Compartment | null = null\n private _editableCompartment: Compartment | null = null\n private _onDirtyChange?: (dirty: boolean) => void\n private _isDirty = false\n\n async initialize (container: HTMLElement, initialDoc = '', contentType: string = 'text/turtle', theme: ThemeMode = 'dark', onDirtyChange?: (dirty: boolean) => void) {\n if (this._view) {\n this._view.destroy()\n }\n\n this._languageCompartment = new Compartment()\n this._editableCompartment = new Compartment()\n this._onDirtyChange = onDirtyChange\n this._isDirty = false\n const languageExtension = await this._getLanguageExtension(contentType)\n\n const state = EditorState.create({\n doc: initialDoc,\n extensions: [\n theme === 'dark' ? vscodeDark : vscodeLight,\n EditorView.theme({\n '&': {\n minHeight: '6lh'\n }\n }),\n this._languageCompartment.of(languageExtension),\n this._editableCompartment.of(EditorView.editable.of(true)),\n syntaxHighlighting(defaultHighlightStyle, { fallback: true }),\n lineNumbers(),\n history(),\n drawSelection(),\n EditorView.lineWrapping,\n EditorView.updateListener.of((update) => {\n if (update.docChanged && !this._isDirty) {\n this._isDirty = true\n this._onDirtyChange?.(true)\n }\n }),\n keymap.of([\n ...defaultKeymap,\n ...historyKeymap\n ])\n ]\n })\n\n this._view = new EditorView({\n state,\n parent: container\n })\n }\n\n destroy () {\n this._view?.destroy()\n this._view = null\n this._isDirty = false\n }\n\n getValue (): string {\n return this._view ? this._view.state.doc.toString() : ''\n }\n\n replaceContent (text: string) {\n if (!this._view) return\n const current = this._view.state.doc.toString()\n if (current === text) return\n this._view.dispatch({\n changes: { from: 0, to: this._view.state.doc.length, insert: text }\n })\n }\n\n resetDirtyState () {\n this._isDirty = false\n }\n\n setReadOnly (readOnly: boolean) {\n if (!this._view) return\n const editableCompartment = this._editableCompartment\n if (!editableCompartment) return\n this._view.dispatch({\n effects: editableCompartment.reconfigure(EditorView.editable.of(!readOnly))\n })\n }\n\n focusEditor () {\n this._view?.focus()\n }\n\n async setLanguage (contentType: string) {\n if (!this._view) return\n const languageCompartment = this._languageCompartment\n if (!languageCompartment) return\n\n const extension = await this._getLanguageExtension(contentType)\n this._view.dispatch({\n effects: languageCompartment.reconfigure(extension)\n })\n }\n\n private async _getLanguageExtension (contentType: string) {\n switch (contentType) {\n case 'text/turtle':\n case 'text/n3':\n return StreamLanguage.define(turtle)\n\n case 'application/sparql-update':\n case 'application/sparql-query':\n return StreamLanguage.define(sparql)\n\n case 'application/nquads':\n case 'application/n-quads':\n case 'application/n-triples':\n return StreamLanguage.define(ntriples)\n\n case 'application/json':\n case 'application/ld+json':\n return json()\n\n case 'text/html':\n case 'application/xhtml+xml':\n return html()\n\n case 'text/markdown':\n case 'text/x-markdown':\n case 'text/md':\n return markdown()\n\n case 'application/rdf+xml':\n case 'application/xml':\n return xml()\n\n case 'text/css':\n return css()\n\n case 'text/javascript':\n case 'application/javascript':\n case 'application/ecmascript':\n return javascript()\n\n default:\n return []\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"CodeEditor.cjs.js","names":["Compartment","EditorState","vscodeDark","vscodeLight","EditorView","syntaxHighlighting","defaultHighlightStyle","lineNumbers","history","drawSelection","keymap","defaultKeymap","historyKeymap","StreamLanguage","turtle","sparql","ntriples","json","html","markdown","xml","css","javascript","_codemirror_state","_codemirror_view","_codemirror_language","_codemirror_commands","_codemirror_lang_css","_codemirror_lang_html","_codemirror_lang_javascript","_codemirror_lang_json","_codemirror_lang_markdown","_codemirror_lang_xml","_uiw_codemirror_theme_vscode","_codemirror_legacy_modes_mode_turtle","_codemirror_legacy_modes_mode_sparql","_codemirror_legacy_modes_mode_ntriples","CodeEditor","onDirtyChange","languageExtension","contentType","state","initialDoc","theme","update","container","text","editableCompartment","readOnly","languageCompartment","extension"],"sources":["../../../src/lib/code-editor/CodeEditor.ts"],"sourcesContent":["import type { ThemeMode } from 'pane-registry'\nimport { Compartment, EditorState } from '@codemirror/state'\nimport { EditorView, drawSelection, keymap, lineNumbers } from '@codemirror/view'\nimport { defaultHighlightStyle, syntaxHighlighting, StreamLanguage } from '@codemirror/language'\nimport { defaultKeymap, history, historyKeymap } from '@codemirror/commands'\nimport { css } from '@codemirror/lang-css'\nimport { html } from '@codemirror/lang-html'\nimport { javascript } from '@codemirror/lang-javascript'\nimport { json } from '@codemirror/lang-json'\nimport { markdown } from '@codemirror/lang-markdown'\nimport { xml } from '@codemirror/lang-xml'\nimport { vscodeDark, vscodeLight } from '@uiw/codemirror-theme-vscode'\nimport { turtle } from '@codemirror/legacy-modes/mode/turtle'\nimport { sparql } from '@codemirror/legacy-modes/mode/sparql'\nimport { ntriples } from '@codemirror/legacy-modes/mode/ntriples'\n\nexport class CodeEditor {\n private _view: EditorView | null = null\n private _languageCompartment: Compartment | null = null\n private _editableCompartment: Compartment | null = null\n private _onDirtyChange?: (dirty: boolean) => void\n private _isDirty = false\n\n async initialize (container: HTMLElement, initialDoc = '', contentType: string = 'text/turtle', theme: ThemeMode = 'dark', onDirtyChange?: (dirty: boolean) => void) {\n if (this._view) {\n this._view.destroy()\n }\n\n this._languageCompartment = new Compartment()\n this._editableCompartment = new Compartment()\n this._onDirtyChange = onDirtyChange\n this._isDirty = false\n const languageExtension = await this._getLanguageExtension(contentType)\n\n const state = EditorState.create({\n doc: initialDoc,\n extensions: [\n theme === 'dark' ? vscodeDark : vscodeLight,\n EditorView.theme({\n '&': {\n minHeight: '6lh'\n }\n }),\n this._languageCompartment.of(languageExtension),\n this._editableCompartment.of(EditorView.editable.of(true)),\n syntaxHighlighting(defaultHighlightStyle, { fallback: true }),\n lineNumbers(),\n history(),\n drawSelection(),\n EditorView.lineWrapping,\n EditorView.updateListener.of((update) => {\n if (update.docChanged && !this._isDirty) {\n this._isDirty = true\n this._onDirtyChange?.(true)\n }\n }),\n keymap.of([\n ...defaultKeymap,\n ...historyKeymap\n ])\n ]\n })\n\n this._view = new EditorView({\n state,\n parent: container\n })\n }\n\n destroy () {\n this._view?.destroy()\n this._view = null\n this._isDirty = false\n }\n\n getValue (): string {\n return this._view ? this._view.state.doc.toString() : ''\n }\n\n replaceContent (text: string) {\n if (!this._view) return\n const current = this._view.state.doc.toString()\n if (current === text) return\n this._view.dispatch({\n changes: { from: 0, to: this._view.state.doc.length, insert: text }\n })\n }\n\n resetDirtyState () {\n this._isDirty = false\n }\n\n setReadOnly (readOnly: boolean) {\n if (!this._view) return\n const editableCompartment = this._editableCompartment\n if (!editableCompartment) return\n this._view.dispatch({\n effects: editableCompartment.reconfigure(EditorView.editable.of(!readOnly))\n })\n }\n\n focusEditor () {\n this._view?.focus()\n }\n\n async setLanguage (contentType: string) {\n if (!this._view) return\n const languageCompartment = this._languageCompartment\n if (!languageCompartment) return\n\n const extension = await this._getLanguageExtension(contentType)\n this._view.dispatch({\n effects: languageCompartment.reconfigure(extension)\n })\n }\n\n private async _getLanguageExtension (contentType: string) {\n switch (contentType) {\n case 'text/turtle':\n case 'text/n3':\n return StreamLanguage.define(turtle)\n\n case 'application/sparql-update':\n case 'application/sparql-query':\n return StreamLanguage.define(sparql)\n\n case 'application/nquads':\n case 'application/n-quads':\n case 'application/n-triples':\n return StreamLanguage.define(ntriples)\n\n case 'application/json':\n case 'application/ld+json':\n return json()\n\n case 'text/html':\n case 'application/xhtml+xml':\n return html()\n\n case 'text/markdown':\n case 'text/x-markdown':\n case 'text/md':\n return markdown()\n\n case 'application/rdf+xml':\n case 'application/xml':\n return xml()\n\n case 'text/css':\n return css()\n\n case 'text/javascript':\n case 'application/javascript':\n case 'application/ecmascript':\n return javascript()\n\n default:\n return []\n }\n }\n}\n"],"mappings":"iiBAgBA,IAAaqC,EAAb,KAAwB,CACtB,MAAmC,KACnC,qBAAmD,KACnD,qBAAmD,KACnD,eACA,SAAmB,GAEnB,MAAM,WAAY,EAAwB,EAAa,GAAI,EAAsB,cAAe,EAAmB,OAAQ,EAA0C,CAC/J,KAAK,OACP,KAAK,MAAM,QAAQ,EAGrB,KAAK,qBAAuB,IAAIrC,EAAAA,YAChC,KAAK,qBAAuB,IAAIA,EAAAA,YAChC,KAAK,eAAiBsC,EACtB,KAAK,SAAW,GAChB,IAAMC,EAAoB,MAAM,KAAK,sBAAsBC,CAAW,EAEhEC,EAAQxC,EAAAA,YAAY,OAAO,CAC/B,IAAKyC,EACL,WAAY,CACVC,IAAU,OAASzC,EAAAA,WAAaC,EAAAA,YAChCC,EAAAA,WAAW,MAAM,CACf,IAAK,CACH,UAAW,KACb,CACF,CAAC,EACD,KAAK,qBAAqB,GAAGmC,CAAiB,EAC9C,KAAK,qBAAqB,GAAGnC,EAAAA,WAAW,SAAS,GAAG,EAAI,CAAC,GACzDC,EAAAA,EAAAA,mBAAAA,CAAmBC,EAAAA,sBAAuB,CAAE,SAAU,EAAK,CAAC,GAC5DC,EAAAA,EAAAA,YAAAA,CAAY,GACZC,EAAAA,EAAAA,QAAAA,CAAQ,GACRC,EAAAA,EAAAA,cAAAA,CAAc,EACdL,EAAAA,WAAW,aACXA,EAAAA,WAAW,eAAe,GAAI,GAAW,CACnCwC,EAAO,YAAc,CAAC,KAAK,WAC7B,KAAK,SAAW,GAChB,KAAK,iBAAiB,EAAI,EAE9B,CAAC,EACDlC,EAAAA,OAAO,GAAG,CACR,GAAGC,EAAAA,cACH,GAAGC,EAAAA,aACL,CAAC,CACH,CACF,CAAC,EAED,KAAK,MAAQ,IAAIR,EAAAA,WAAW,CAC1B,QACA,OAAQyC,CACV,CAAC,CACH,CAEA,SAAW,CACT,KAAK,OAAO,QAAQ,EACpB,KAAK,MAAQ,KACb,KAAK,SAAW,EAClB,CAEA,UAAoB,CAClB,OAAO,KAAK,MAAQ,KAAK,MAAM,MAAM,IAAI,SAAS,EAAI,EACxD,CAEA,eAAgB,EAAc,CACvB,KAAK,OACM,KAAK,MAAM,MAAM,IAAI,SACjC,IAAYC,GAChB,KAAK,MAAM,SAAS,CAClB,QAAS,CAAE,KAAM,EAAG,GAAI,KAAK,MAAM,MAAM,IAAI,OAAQ,OAAQA,CAAK,CACpE,CAAC,CACH,CAEA,iBAAmB,CACjB,KAAK,SAAW,EAClB,CAEA,YAAa,EAAmB,CAC9B,GAAI,CAAC,KAAK,MAAO,OACjB,IAAMC,EAAsB,KAAK,qBAC5BA,GACL,KAAK,MAAM,SAAS,CAClB,QAASA,EAAoB,YAAY3C,EAAAA,WAAW,SAAS,GAAG,CAAC4C,CAAQ,CAAC,CAC5E,CAAC,CACH,CAEA,aAAe,CACb,KAAK,OAAO,MAAM,CACpB,CAEA,MAAM,YAAa,EAAqB,CACtC,GAAI,CAAC,KAAK,MAAO,OACjB,IAAMC,EAAsB,KAAK,qBACjC,GAAI,CAACA,EAAqB,OAE1B,IAAMC,EAAY,MAAM,KAAK,sBAAsBV,CAAW,EAC9D,KAAK,MAAM,SAAS,CAClB,QAASS,EAAoB,YAAYC,CAAS,CACpD,CAAC,CACH,CAEA,MAAc,sBAAuB,EAAqB,CACxD,OAAQV,EAAR,CACE,IAAK,cACL,IAAK,UACH,OAAO3B,EAAAA,eAAe,OAAOC,EAAAA,MAAM,EAErC,IAAK,4BACL,IAAK,2BACH,OAAOD,EAAAA,eAAe,OAAOE,EAAAA,MAAM,EAErC,IAAK,qBACL,IAAK,sBACL,IAAK,wBACH,OAAOF,EAAAA,eAAe,OAAOG,EAAAA,QAAQ,EAEvC,IAAK,mBACL,IAAK,sBACH,OAAA,EAAOC,EAAAA,KAAAA,CAAK,EAEd,IAAK,YACL,IAAK,wBACH,OAAA,EAAOC,EAAAA,KAAAA,CAAK,EAEd,IAAK,gBACL,IAAK,kBACL,IAAK,UACH,OAAA,EAAOC,EAAAA,SAAAA,CAAS,EAElB,IAAK,sBACL,IAAK,kBACH,OAAA,EAAOC,EAAAA,IAAAA,CAAI,EAEb,IAAK,WACH,OAAA,EAAOC,EAAAA,IAAAA,CAAI,EAEb,IAAK,kBACL,IAAK,yBACL,IAAK,yBACH,OAAA,EAAOC,EAAAA,WAAAA,CAAW,EAEpB,QACE,MAAO,CAAC,CACZ,CACF,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"CodeEditor.esm.js","names":[],"sources":["../../../src/lib/code-editor/CodeEditor.ts"],"sourcesContent":["import type { ThemeMode } from 'pane-registry'\nimport { Compartment, EditorState } from '@codemirror/state'\nimport { EditorView, drawSelection, keymap, lineNumbers } from '@codemirror/view'\nimport { defaultHighlightStyle, syntaxHighlighting, StreamLanguage } from '@codemirror/language'\nimport { defaultKeymap, history, historyKeymap } from '@codemirror/commands'\nimport { css } from '@codemirror/lang-css'\nimport { html } from '@codemirror/lang-html'\nimport { javascript } from '@codemirror/lang-javascript'\nimport { json } from '@codemirror/lang-json'\nimport { markdown } from '@codemirror/lang-markdown'\nimport { xml } from '@codemirror/lang-xml'\nimport { vscodeDark, vscodeLight } from '@uiw/codemirror-theme-vscode'\nimport { turtle } from '@codemirror/legacy-modes/mode/turtle'\nimport { sparql } from '@codemirror/legacy-modes/mode/sparql'\nimport { ntriples } from '@codemirror/legacy-modes/mode/ntriples'\n\nexport class CodeEditor {\n private _view: EditorView | null = null\n private _languageCompartment: Compartment | null = null\n private _editableCompartment: Compartment | null = null\n private _onDirtyChange?: (dirty: boolean) => void\n private _isDirty = false\n\n async initialize (container: HTMLElement, initialDoc = '', contentType: string = 'text/turtle', theme: ThemeMode = 'dark', onDirtyChange?: (dirty: boolean) => void) {\n if (this._view) {\n this._view.destroy()\n }\n\n this._languageCompartment = new Compartment()\n this._editableCompartment = new Compartment()\n this._onDirtyChange = onDirtyChange\n this._isDirty = false\n const languageExtension = await this._getLanguageExtension(contentType)\n\n const state = EditorState.create({\n doc: initialDoc,\n extensions: [\n theme === 'dark' ? vscodeDark : vscodeLight,\n EditorView.theme({\n '&': {\n minHeight: '6lh'\n }\n }),\n this._languageCompartment.of(languageExtension),\n this._editableCompartment.of(EditorView.editable.of(true)),\n syntaxHighlighting(defaultHighlightStyle, { fallback: true }),\n lineNumbers(),\n history(),\n drawSelection(),\n EditorView.lineWrapping,\n EditorView.updateListener.of((update) => {\n if (update.docChanged && !this._isDirty) {\n this._isDirty = true\n this._onDirtyChange?.(true)\n }\n }),\n keymap.of([\n ...defaultKeymap,\n ...historyKeymap\n ])\n ]\n })\n\n this._view = new EditorView({\n state,\n parent: container\n })\n }\n\n destroy () {\n this._view?.destroy()\n this._view = null\n this._isDirty = false\n }\n\n getValue (): string {\n return this._view ? this._view.state.doc.toString() : ''\n }\n\n replaceContent (text: string) {\n if (!this._view) return\n const current = this._view.state.doc.toString()\n if (current === text) return\n this._view.dispatch({\n changes: { from: 0, to: this._view.state.doc.length, insert: text }\n })\n }\n\n resetDirtyState () {\n this._isDirty = false\n }\n\n setReadOnly (readOnly: boolean) {\n if (!this._view) return\n const editableCompartment = this._editableCompartment\n if (!editableCompartment) return\n this._view.dispatch({\n effects: editableCompartment.reconfigure(EditorView.editable.of(!readOnly))\n })\n }\n\n focusEditor () {\n this._view?.focus()\n }\n\n async setLanguage (contentType: string) {\n if (!this._view) return\n const languageCompartment = this._languageCompartment\n if (!languageCompartment) return\n\n const extension = await this._getLanguageExtension(contentType)\n this._view.dispatch({\n effects: languageCompartment.reconfigure(extension)\n })\n }\n\n private async _getLanguageExtension (contentType: string) {\n switch (contentType) {\n case 'text/turtle':\n case 'text/n3':\n return StreamLanguage.define(turtle)\n\n case 'application/sparql-update':\n case 'application/sparql-query':\n return StreamLanguage.define(sparql)\n\n case 'application/nquads':\n case 'application/n-quads':\n case 'application/n-triples':\n return StreamLanguage.define(ntriples)\n\n case 'application/json':\n case 'application/ld+json':\n return json()\n\n case 'text/html':\n case 'application/xhtml+xml':\n return html()\n\n case 'text/markdown':\n case 'text/x-markdown':\n case 'text/md':\n return markdown()\n\n case 'application/rdf+xml':\n case 'application/xml':\n return xml()\n\n case 'text/css':\n return css()\n\n case 'text/javascript':\n case 'application/javascript':\n case 'application/ecmascript':\n return javascript()\n\n default:\n return []\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAgBA,IAAa,IAAb,MAAwB;CACtB,QAAmC;CACnC,uBAAmD;CACnD,uBAAmD;CACnD;CACA,WAAmB;CAEnB,MAAM,WAAY,GAAwB,IAAa,IAAI,IAAsB,eAAe,IAAmB,QAAQ,GAA0C;EAQnK,AAPI,KAAK,SACP,KAAK,MAAM,QAAQ,GAGrB,KAAK,uBAAuB,IAAI,EAAY,GAC5C,KAAK,uBAAuB,IAAI,EAAY,GAC5C,KAAK,iBAAiB,GACtB,KAAK,WAAW;EAChB,IAAM,IAAoB,MAAM,KAAK,sBAAsB,CAAW,GAEhE,IAAQ,EAAY,OAAO;GAC/B,KAAK;GACL,YAAY;IACV,MAAU,SAAS,IAAa;IAChC,EAAW,MAAM,EACf,KAAK,EACH,WAAW,MACb,EACF,CAAC;IACD,KAAK,qBAAqB,GAAG,CAAiB;IAC9C,KAAK,qBAAqB,GAAG,EAAW,SAAS,GAAG,EAAI,CAAC;IACzD,EAAmB,GAAuB,EAAE,UAAU,GAAK,CAAC;IAC5D,EAAY;IACZ,EAAQ;IACR,EAAc;IACd,EAAW;IACX,EAAW,eAAe,IAAI,MAAW;KACvC,AAAI,EAAO,cAAc,CAAC,KAAK,aAC7B,KAAK,WAAW,IAChB,KAAK,iBAAiB,EAAI;IAE9B,CAAC;IACD,EAAO,GAAG,CACR,GAAG,GACH,GAAG,CACL,CAAC;GACH;EACF,CAAC;EAED,KAAK,QAAQ,IAAI,EAAW;GAC1B;GACA,QAAQ;EACV,CAAC;CACH;CAEA,UAAW;EAGT,AAFA,KAAK,OAAO,QAAQ,GACpB,KAAK,QAAQ,MACb,KAAK,WAAW;CAClB;CAEA,WAAoB;EAClB,OAAO,KAAK,QAAQ,KAAK,MAAM,MAAM,IAAI,SAAS,IAAI;CACxD;CAEA,eAAgB,GAAc;EACvB,KAAK,SACM,KAAK,MAAM,MAAM,IAAI,SACjC,MAAY,KAChB,KAAK,MAAM,SAAS,EAClB,SAAS;GAAE,MAAM;GAAG,IAAI,KAAK,MAAM,MAAM,IAAI;GAAQ,QAAQ;EAAK,EACpE,CAAC;CACH;CAEA,kBAAmB;EACjB,KAAK,WAAW;CAClB;CAEA,YAAa,GAAmB;EAC9B,IAAI,CAAC,KAAK,OAAO;EACjB,IAAM,IAAsB,KAAK;EAC5B,KACL,KAAK,MAAM,SAAS,EAClB,SAAS,EAAoB,YAAY,EAAW,SAAS,GAAG,CAAC,CAAQ,CAAC,EAC5E,CAAC;CACH;CAEA,cAAe;EACb,KAAK,OAAO,MAAM;CACpB;CAEA,MAAM,YAAa,GAAqB;EACtC,IAAI,CAAC,KAAK,OAAO;EACjB,IAAM,IAAsB,KAAK;EACjC,IAAI,CAAC,GAAqB;EAE1B,IAAM,IAAY,MAAM,KAAK,sBAAsB,CAAW;EAC9D,KAAK,MAAM,SAAS,EAClB,SAAS,EAAoB,YAAY,CAAS,EACpD,CAAC;CACH;CAEA,MAAc,sBAAuB,GAAqB;EACxD,QAAQ,GAAR;GACE,KAAK;GACL,KAAK,WACH,OAAO,EAAe,OAAO,CAAM;GAErC,KAAK;GACL,KAAK,4BACH,OAAO,EAAe,OAAO,CAAM;GAErC,KAAK;GACL,KAAK;GACL,KAAK,yBACH,OAAO,EAAe,OAAO,CAAQ;GAEvC,KAAK;GACL,KAAK,uBACH,OAAO,EAAK;GAEd,KAAK;GACL,KAAK,yBACH,OAAO,EAAK;GAEd,KAAK;GACL,KAAK;GACL,KAAK,WACH,OAAO,EAAS;GAElB,KAAK;GACL,KAAK,mBACH,OAAO,EAAI;GAEb,KAAK,YACH,OAAO,EAAI;GAEb,KAAK;GACL,KAAK;GACL,KAAK,0BACH,OAAO,EAAW;GAEpB,SACE,OAAO,CAAC;EACZ;CACF;AACF"}
1
+ {"version":3,"file":"CodeEditor.esm.js","names":["CodeEditor","Compartment","onDirtyChange","languageExtension","contentType","state","EditorState","initialDoc","theme","vscodeDark","vscodeLight","EditorView","syntaxHighlighting","defaultHighlightStyle","lineNumbers","history","drawSelection","update","keymap","defaultKeymap","historyKeymap","container","text","editableCompartment","readOnly","languageCompartment","extension","StreamLanguage","turtle","sparql","ntriples","json","html","markdown","xml","css","javascript"],"sources":["../../../src/lib/code-editor/CodeEditor.ts"],"sourcesContent":["import type { ThemeMode } from 'pane-registry'\nimport { Compartment, EditorState } from '@codemirror/state'\nimport { EditorView, drawSelection, keymap, lineNumbers } from '@codemirror/view'\nimport { defaultHighlightStyle, syntaxHighlighting, StreamLanguage } from '@codemirror/language'\nimport { defaultKeymap, history, historyKeymap } from '@codemirror/commands'\nimport { css } from '@codemirror/lang-css'\nimport { html } from '@codemirror/lang-html'\nimport { javascript } from '@codemirror/lang-javascript'\nimport { json } from '@codemirror/lang-json'\nimport { markdown } from '@codemirror/lang-markdown'\nimport { xml } from '@codemirror/lang-xml'\nimport { vscodeDark, vscodeLight } from '@uiw/codemirror-theme-vscode'\nimport { turtle } from '@codemirror/legacy-modes/mode/turtle'\nimport { sparql } from '@codemirror/legacy-modes/mode/sparql'\nimport { ntriples } from '@codemirror/legacy-modes/mode/ntriples'\n\nexport class CodeEditor {\n private _view: EditorView | null = null\n private _languageCompartment: Compartment | null = null\n private _editableCompartment: Compartment | null = null\n private _onDirtyChange?: (dirty: boolean) => void\n private _isDirty = false\n\n async initialize (container: HTMLElement, initialDoc = '', contentType: string = 'text/turtle', theme: ThemeMode = 'dark', onDirtyChange?: (dirty: boolean) => void) {\n if (this._view) {\n this._view.destroy()\n }\n\n this._languageCompartment = new Compartment()\n this._editableCompartment = new Compartment()\n this._onDirtyChange = onDirtyChange\n this._isDirty = false\n const languageExtension = await this._getLanguageExtension(contentType)\n\n const state = EditorState.create({\n doc: initialDoc,\n extensions: [\n theme === 'dark' ? vscodeDark : vscodeLight,\n EditorView.theme({\n '&': {\n minHeight: '6lh'\n }\n }),\n this._languageCompartment.of(languageExtension),\n this._editableCompartment.of(EditorView.editable.of(true)),\n syntaxHighlighting(defaultHighlightStyle, { fallback: true }),\n lineNumbers(),\n history(),\n drawSelection(),\n EditorView.lineWrapping,\n EditorView.updateListener.of((update) => {\n if (update.docChanged && !this._isDirty) {\n this._isDirty = true\n this._onDirtyChange?.(true)\n }\n }),\n keymap.of([\n ...defaultKeymap,\n ...historyKeymap\n ])\n ]\n })\n\n this._view = new EditorView({\n state,\n parent: container\n })\n }\n\n destroy () {\n this._view?.destroy()\n this._view = null\n this._isDirty = false\n }\n\n getValue (): string {\n return this._view ? this._view.state.doc.toString() : ''\n }\n\n replaceContent (text: string) {\n if (!this._view) return\n const current = this._view.state.doc.toString()\n if (current === text) return\n this._view.dispatch({\n changes: { from: 0, to: this._view.state.doc.length, insert: text }\n })\n }\n\n resetDirtyState () {\n this._isDirty = false\n }\n\n setReadOnly (readOnly: boolean) {\n if (!this._view) return\n const editableCompartment = this._editableCompartment\n if (!editableCompartment) return\n this._view.dispatch({\n effects: editableCompartment.reconfigure(EditorView.editable.of(!readOnly))\n })\n }\n\n focusEditor () {\n this._view?.focus()\n }\n\n async setLanguage (contentType: string) {\n if (!this._view) return\n const languageCompartment = this._languageCompartment\n if (!languageCompartment) return\n\n const extension = await this._getLanguageExtension(contentType)\n this._view.dispatch({\n effects: languageCompartment.reconfigure(extension)\n })\n }\n\n private async _getLanguageExtension (contentType: string) {\n switch (contentType) {\n case 'text/turtle':\n case 'text/n3':\n return StreamLanguage.define(turtle)\n\n case 'application/sparql-update':\n case 'application/sparql-query':\n return StreamLanguage.define(sparql)\n\n case 'application/nquads':\n case 'application/n-quads':\n case 'application/n-triples':\n return StreamLanguage.define(ntriples)\n\n case 'application/json':\n case 'application/ld+json':\n return json()\n\n case 'text/html':\n case 'application/xhtml+xml':\n return html()\n\n case 'text/markdown':\n case 'text/x-markdown':\n case 'text/md':\n return markdown()\n\n case 'application/rdf+xml':\n case 'application/xml':\n return xml()\n\n case 'text/css':\n return css()\n\n case 'text/javascript':\n case 'application/javascript':\n case 'application/ecmascript':\n return javascript()\n\n default:\n return []\n }\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.cjs.js","names":["defineCustomElement","tagName","elementClass","customElements","get","define","customElement","context","addInitializer"],"sources":["../../../src/lib/components/decorators.ts"],"sourcesContent":["/**\n * We need to use a custom element decorator because Lit's built-in doesn't safely skip duplicate registrations.\n * This shouldn't be necessary, but our current build process and usage in other libraries is not optimal\n * and some components get bundled twice.\n *\n * This should be removed once that problem is fixed.\n *\n * See https://github.com/SolidOS/solidos/issues/300\n */\n\nfunction defineCustomElement (tagName: string, elementClass: CustomElementConstructor): void {\n if (customElements.get(tagName)) {\n return\n }\n\n customElements.define(tagName, elementClass)\n}\n\nexport function customElement (tagName: string) {\n return (elementClass: CustomElementConstructor, context?: ClassDecoratorContext) => {\n if (context) {\n context.addInitializer(() => defineCustomElement(tagName, elementClass))\n\n return\n }\n\n defineCustomElement(tagName, elementClass)\n }\n}\n"],"mappings":"AAUA,SAASA,EAAqBC,EAAiBC,EAA8C,CACvFC,eAAeC,IAAIH,CAAO,GAI9BE,eAAeE,OAAOJ,EAASC,CAAY,CAC7C,CAEA,SAAgBI,EAAeL,EAAiB,CAC9C,OAAQC,EAAwCK,IAAoC,CAClF,GAAIA,EAAS,CACXA,EAAQC,mBAAqBR,EAAoBC,EAASC,CAAY,CAAC,EAEvE,MACF,CAEAF,EAAoBC,EAASC,CAAY,CAC3C,CACF"}
1
+ {"version":3,"file":"decorators.cjs.js","names":["defineCustomElement","tagName","elementClass","customElements","get","define","customElement","context","addInitializer","defineCustomElement","tagName","elementClass","customElement","context"],"sources":["../../../src/lib/components/decorators.ts"],"sourcesContent":["/**\n * We need to use a custom element decorator because Lit's built-in doesn't safely skip duplicate registrations.\n * This shouldn't be necessary, but our current build process and usage in other libraries is not optimal\n * and some components get bundled twice.\n *\n * This should be removed once that problem is fixed.\n *\n * See https://github.com/SolidOS/solidos/issues/300\n */\n\nfunction defineCustomElement (tagName: string, elementClass: CustomElementConstructor): void {\n if (customElements.get(tagName)) {\n return\n }\n\n customElements.define(tagName, elementClass)\n}\n\nexport function customElement (tagName: string) {\n return (elementClass: CustomElementConstructor, context?: ClassDecoratorContext) => {\n if (context) {\n context.addInitializer(() => defineCustomElement(tagName, elementClass))\n\n return\n }\n\n defineCustomElement(tagName, elementClass)\n }\n}\n"],"mappings":"AAUA,SAASA,EAAqBC,EAAiBC,EAA8C,CACvFC,eAAeC,IAAIH,CAAO,GAI9BE,eAAeE,OAAOJ,EAASC,CAAY,CAC7C,CAEA,SAAgBI,EAAeL,EAAiB,CAC9C,OAAQC,EAAwCK,IAAoC,CAClF,GAAIA,EAAS,CACXA,EAAQC,mBAAqBR,EAAoBC,EAASC,CAAY,CAAC,EAEvE,MACF,CAEAF,EAAoBC,EAASC,CAAY,CAC3C,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.esm.js","names":["defineCustomElement","tagName","elementClass","customElements","get","define","customElement","context","addInitializer"],"sources":["../../../src/lib/components/decorators.ts"],"sourcesContent":["/**\n * We need to use a custom element decorator because Lit's built-in doesn't safely skip duplicate registrations.\n * This shouldn't be necessary, but our current build process and usage in other libraries is not optimal\n * and some components get bundled twice.\n *\n * This should be removed once that problem is fixed.\n *\n * See https://github.com/SolidOS/solidos/issues/300\n */\n\nfunction defineCustomElement (tagName: string, elementClass: CustomElementConstructor): void {\n if (customElements.get(tagName)) {\n return\n }\n\n customElements.define(tagName, elementClass)\n}\n\nexport function customElement (tagName: string) {\n return (elementClass: CustomElementConstructor, context?: ClassDecoratorContext) => {\n if (context) {\n context.addInitializer(() => defineCustomElement(tagName, elementClass))\n\n return\n }\n\n defineCustomElement(tagName, elementClass)\n }\n}\n"],"mappings":";AAUA,SAASA,EAAqBC,GAAiBC,GAA8C;CACvFC,eAAeC,IAAIH,CAAO,KAI9BE,eAAeE,OAAOJ,GAASC,CAAY;AAC7C;AAEA,SAAgBI,EAAeL,GAAiB;CAC9C,QAAQC,GAAwCK,MAAoC;EAClF,IAAIA,GAAS;GACXA,EAAQC,qBAAqBR,EAAoBC,GAASC,CAAY,CAAC;GAEvE;EACF;EAEAF,EAAoBC,GAASC,CAAY;CAC3C;AACF"}
1
+ {"version":3,"file":"decorators.esm.js","names":["defineCustomElement","tagName","elementClass","customElements","get","define","customElement","context","addInitializer","defineCustomElement","tagName","elementClass","customElement","context"],"sources":["../../../src/lib/components/decorators.ts"],"sourcesContent":["/**\n * We need to use a custom element decorator because Lit's built-in doesn't safely skip duplicate registrations.\n * This shouldn't be necessary, but our current build process and usage in other libraries is not optimal\n * and some components get bundled twice.\n *\n * This should be removed once that problem is fixed.\n *\n * See https://github.com/SolidOS/solidos/issues/300\n */\n\nfunction defineCustomElement (tagName: string, elementClass: CustomElementConstructor): void {\n if (customElements.get(tagName)) {\n return\n }\n\n customElements.define(tagName, elementClass)\n}\n\nexport function customElement (tagName: string) {\n return (elementClass: CustomElementConstructor, context?: ClassDecoratorContext) => {\n if (context) {\n context.addInitializer(() => defineCustomElement(tagName, elementClass))\n\n return\n }\n\n defineCustomElement(tagName, elementClass)\n }\n}\n"],"mappings":";AAUA,SAASA,EAAqBC,GAAiBC,GAA8C;CAC3F,AAAIC,eAAeC,IAAIH,CAAO,KAI9BE,eAAeE,OAAOJ,GAASC,CAAY;AAC7C;AAEA,SAAgBI,EAAeL,GAAiB;CAC9C,QAAQC,GAAwCK,MAAoC;EAClF,IAAIA,GAAS;GACXA,EAAQC,qBAAqBR,EAAoBC,GAASC,CAAY,CAAC;GAEvE;EACF;EAEAF,EAAoBC,GAASC,CAAY;CAC3C;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"DialogComponent.cjs.js","names":["DialogTrait","dialogContext","WebComponent","DEFAULT_DIALOG_CONTEXT","consume","_A","WeakMap","_ref","_contextDecs","context","subscribe","DialogComponent","_classPrivateFieldGet","v","_classPrivateFieldSet","constructor","_defineProperty","_initProto","_classPrivateFieldInitSpec","_init_context","dialogTrait","addTrait","getContext","close","result","_DialogComponent","_applyDecs","e","default"],"sources":["../../../../src/lib/components/dialog-component/DialogComponent.ts"],"sourcesContent":["import DialogTrait from '@/lib/components/traits/DialogTrait'\nimport { dialogContext } from '@/lib/dialogs/context'\nimport { WebComponent } from '@/lib/components/web-component'\nimport { DialogContext, DEFAULT_DIALOG_CONTEXT } from '@/lib/dialogs/context'\nimport { consume } from '@lit/context'\n\nexport default class DialogComponent<T> extends WebComponent<{ dialogResult: T }> {\n private dialogTrait: DialogTrait<DialogComponent<T>>\n\n @consume({ context: dialogContext, subscribe: true })\n private accessor context: DialogContext = DEFAULT_DIALOG_CONTEXT;\n\n constructor () {\n super()\n\n this.dialogTrait = this.addTrait(new DialogTrait(this, { getContext: () => this.context }))\n }\n\n protected close (result?: T) {\n this.dialogTrait.close(result)\n }\n}\n"],"mappings":"8vIAIsC,IAAAK,EAAA,IAAAC,QAAAC,GAAAC,GAAAA,EAKjCJ,EAAAA,QAAAA,CAAQ,CAAEK,QAASR,EAAAA,cAAeS,UAAW,EAAK,CAAC,EAAC,eAH1C,IAAMC,EAAN,cAAiCT,EAAAA,OAAkC,CAAA,IAI7DO,SAAO,CAAA,OAAAG,EAAAP,EAAA,IAAA,CAAA,CAAA,IAAPI,QAAOI,EAAA,CAAAC,EAAAT,EAAA,KAAAQ,CAAA,CAAA,CAExBE,aAAe,CACb,MAAM,EAACC,EAAA,KAAAT,EAAA,KAAAU,EAAA,IAAA,CAAA,EAAAC,EAAA,KAAAb,EAAAc,EAAA,KAHiChB,EAAAA,sBAAsB,CAAA,EAK9D,KAAKiB,YAAc,KAAKC,SAAS,IAAIrB,EAAAA,QAAY,KAAM,CAAEsB,eAAkB,KAAKb,OAAQ,CAAC,CAAC,CAC5F,CAEUc,MAAOC,EAAY,CAC3B,KAAKJ,YAAYG,MAAMC,CAAM,CAC/B,CACJ,EAACC,EAfoBd,EAAe,CAAAQ,EAAAF,GAAAS,EAAAD,EAAA,CAAA,CAAAjB,EAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,EAAA,IAAA,GAAYN,EAAAA,OAAY,CAAA,CAAAyB"}
1
+ {"version":3,"file":"DialogComponent.cjs.js","names":["DialogTrait","dialogContext","WebComponent","DEFAULT_DIALOG_CONTEXT","consume","_A","WeakMap","_ref","_contextDecs","context","subscribe","DialogComponent","_classPrivateFieldGet","v","_classPrivateFieldSet","constructor","_defineProperty","_initProto","_classPrivateFieldInitSpec","_init_context","dialogTrait","addTrait","getContext","close","result","_DialogComponent","_applyDecs","e","default","consume","dialogContext","WebComponent","DEFAULT_DIALOG_CONTEXT","DialogTrait","require_context","require_DialogTrait","require_WebComponent","_lit_context","_DialogComponent","_initProto","_contextDecs","_init_context","_ref","_classPrivateFieldInitSpec","_checkPrivateRedeclaration","a","_defineProperty","_toPropertyKey","r","t","_classPrivateFieldSet","s","_assertClassBrand","_classPrivateFieldGet","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","u","w","A","d","f","p","_setFunctionName","P","j","D","E","I","O","k","F","l","N","_checkInRHS","b","_toPrimitive","e","_A","DialogComponent","result"],"sources":["../../../../src/lib/components/dialog-component/DialogComponent.ts"],"sourcesContent":["import DialogTrait from '@/lib/components/traits/DialogTrait'\nimport { dialogContext } from '@/lib/dialogs/context'\nimport { WebComponent } from '@/lib/components/web-component'\nimport { DialogContext, DEFAULT_DIALOG_CONTEXT } from '@/lib/dialogs/context'\nimport { consume } from '@lit/context'\n\nexport default class DialogComponent<T> extends WebComponent<{ dialogResult: T }> {\n private dialogTrait: DialogTrait<DialogComponent<T>>\n\n @consume({ context: dialogContext, subscribe: true })\n private accessor context: DialogContext = DEFAULT_DIALOG_CONTEXT;\n\n constructor () {\n super()\n\n this.dialogTrait = this.addTrait(new DialogTrait(this, { getContext: () => this.context }))\n }\n\n protected close (result?: T) {\n this.dialogTrait.close(result)\n }\n}\n"],"mappings":"8vIAIsC,IAAAK,EAAA,IAAAC,QAAAC,GAAAC,GAAAA,EAKjCJ,EAAAA,QAAAA,CAAQ,CAAEK,QAASR,EAAAA,cAAeS,UAAW,EAAK,CAAC,EAAC,eAH1C,IAAMC,EAAN,cAAiCT,EAAAA,OAAkC,CAAA,IAI7DO,SAAO,CAAA,OAAAG,EAAAP,EAAA,IAAA,CAAA,CAAA,IAAPI,QAAOI,EAAA,CAAAC,EAAAT,EAAA,KAAAQ,CAAA,CAAA,CAExBE,aAAe,CACb,MAAM,EAACC,EAAA,KAAAT,EAAA,KAAAU,EAAA,IAAA,CAAA,EAAAC,EAAA,KAAAb,EAAAc,EAAA,KAHiChB,EAAAA,sBAAsB,CAAA,EAK9D,KAAKiB,YAAc,KAAKC,SAAS,IAAIrB,EAAAA,QAAY,KAAM,CAAEsB,eAAkB,KAAKb,OAAQ,CAAC,CAAC,CAC5F,CAEUc,MAAOC,EAAY,CAC3B,KAAKJ,YAAYG,MAAMC,CAAM,CAC/B,CACJ,EAACC,EAfoBd,EAAe,CAAAQ,EAAAF,GAAAS,EAAAD,EAAA,CAAA,CAAAjB,EAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,EAAA,IAAA,GAAYN,EAAAA,OAAY,CAAA,CAAAyB"}
@@ -1 +1 @@
1
- {"version":3,"file":"DialogComponent.esm.js","names":["DialogTrait","dialogContext","WebComponent","DEFAULT_DIALOG_CONTEXT","consume","_A","WeakMap","_ref","_contextDecs","context","subscribe","DialogComponent","_classPrivateFieldGet","v","_classPrivateFieldSet","constructor","_defineProperty","_initProto","_classPrivateFieldInitSpec","_init_context","dialogTrait","addTrait","getContext","close","result","_DialogComponent","_applyDecs","e","default"],"sources":["../../../../src/lib/components/dialog-component/DialogComponent.ts"],"sourcesContent":["import DialogTrait from '@/lib/components/traits/DialogTrait'\nimport { dialogContext } from '@/lib/dialogs/context'\nimport { WebComponent } from '@/lib/components/web-component'\nimport { DialogContext, DEFAULT_DIALOG_CONTEXT } from '@/lib/dialogs/context'\nimport { consume } from '@lit/context'\n\nexport default class DialogComponent<T> extends WebComponent<{ dialogResult: T }> {\n private dialogTrait: DialogTrait<DialogComponent<T>>\n\n @consume({ context: dialogContext, subscribe: true })\n private accessor context: DialogContext = DEFAULT_DIALOG_CONTEXT;\n\n constructor () {\n super()\n\n this.dialogTrait = this.addTrait(new DialogTrait(this, { getContext: () => this.context }))\n }\n\n protected close (result?: T) {\n this.dialogTrait.close(result)\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIsC,IAAAK,kBAAA,IAAAC,QAAA;AAAAC,KAAAC,IAKjCJ,EAAQ;CAAEK,SAASR;CAAeS,WAAW;AAAK,CAAC,GAAC;AAH1C,IAAMC,IAAN,cAAiCT,EAAkC;CAAA,IAI7DO,UAAO;EAAA,OAAAG,EAAAP,GAAA,IAAA;CAAA;CAAA,IAAPI,QAAOI,GAAA;EAAAC,EAAAT,GAAA,MAAAQ,CAAA;CAAA;CAExBE,cAAe;EAGb,AAFA,MAAM,GAACC,EAAA,MAAAT,GAAA,KAAAU,EAAA,IAAA,CAAA,GAAAC,EAAA,MAAAb,GAAAc,EAAA,MAHiChB,CAAsB,CAAA,GAK9D,KAAKiB,cAAc,KAAKC,SAAS,IAAIrB,EAAY,MAAM,EAAEsB,kBAAkB,KAAKb,QAAQ,CAAC,CAAC;CAC5F;CAEUc,MAAOC,GAAY;EAC3B,KAAKJ,YAAYG,MAAMC,CAAM;CAC/B;AACJ;AAACC,IAfoBd,GAAe,CAAAQ,GAAAF,KAAAS,EAAAD,GAAA,CAAA;CAAAjB;CAAA;CAAA;AAAA,CAAA,GAAA,CAAA,GAAA,GAAA,KAAA,GAAYN,CAAY,CAAA,CAAAyB"}
1
+ {"version":3,"file":"DialogComponent.esm.js","names":["DialogTrait","dialogContext","WebComponent","DEFAULT_DIALOG_CONTEXT","consume","_A","WeakMap","_ref","_contextDecs","context","subscribe","DialogComponent","_classPrivateFieldGet","v","_classPrivateFieldSet","constructor","_defineProperty","_initProto","_classPrivateFieldInitSpec","_init_context","dialogTrait","addTrait","getContext","close","result","_DialogComponent","_applyDecs","e","default","DialogTrait","WebComponent","_DialogComponent","_initProto","_contextDecs","_init_context","_ref","_classPrivateFieldInitSpec","a","_checkPrivateRedeclaration","_defineProperty","_toPropertyKey","r","t","_classPrivateFieldSet","s","_assertClassBrand","_classPrivateFieldGet","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","u","w","A","d","p","_setFunctionName","P","j","D","E","I","O","k","F","l","f","N","_checkInRHS","b","_toPrimitive","e","_A","consume","dialogContext","DialogComponent","DEFAULT_DIALOG_CONTEXT","result"],"sources":["../../../../src/lib/components/dialog-component/DialogComponent.ts"],"sourcesContent":["import DialogTrait from '@/lib/components/traits/DialogTrait'\nimport { dialogContext } from '@/lib/dialogs/context'\nimport { WebComponent } from '@/lib/components/web-component'\nimport { DialogContext, DEFAULT_DIALOG_CONTEXT } from '@/lib/dialogs/context'\nimport { consume } from '@lit/context'\n\nexport default class DialogComponent<T> extends WebComponent<{ dialogResult: T }> {\n private dialogTrait: DialogTrait<DialogComponent<T>>\n\n @consume({ context: dialogContext, subscribe: true })\n private accessor context: DialogContext = DEFAULT_DIALOG_CONTEXT;\n\n constructor () {\n super()\n\n this.dialogTrait = this.addTrait(new DialogTrait(this, { getContext: () => this.context }))\n }\n\n protected close (result?: T) {\n this.dialogTrait.close(result)\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIsC,IAAAK,kBAAA,IAAAC,QAAA;AAAAC,KAAAC,IAKjCJ,EAAQ;CAAEK,SAASR;CAAeS,WAAW;AAAK,CAAC,GAAC;AAH1C,IAAMC,IAAN,cAAiCT,EAAkC;CAAA,IAI7DO,UAAO;EAAA,OAAAG,EAAAP,GAAA,IAAA;CAAA;CAAA,IAAPI,QAAOI,GAAA;EAAAC,EAAAT,GAAA,MAAAQ,CAAA;CAAA;CAExBE,cAAe;EAGb,AAFA,MAAM,GAACC,EAAA,MAAAT,GAAA,KAAAU,EAAA,IAAA,CAAA,GAAAC,EAAA,MAAAb,GAAAc,EAAA,MAHiChB,CAAsB,CAAA,GAK9D,KAAKiB,cAAc,KAAKC,SAAS,IAAIrB,EAAY,MAAM,EAAEsB,kBAAkB,KAAKb,QAAQ,CAAC,CAAC;CAC5F;CAEUc,MAAOC,GAAY;EAC3B,KAAKJ,YAAYG,MAAMC,CAAM;CAC/B;AACJ;AAACC,IAfoBd,GAAe,CAAAQ,GAAAF,KAAAS,EAAAD,GAAA,CAAA;CAAAjB;CAAA;CAAA;AAAA,CAAA,GAAA,CAAA,GAAA,GAAA,KAAA,GAAYN,CAAY,CAAA,CAAAyB"}
@@ -1 +1 @@
1
- {"version":3,"file":"FormControlComponent.cjs.js","names":["WebComponent","property","FormControlTrait","_A","WeakMap","_B","_C","_D","_E","_F","_ref","_labelDecs","type","String","reflect","_nameDecs","_valueDecs","_placeholderDecs","_requiredDecs","Boolean","_disabledDecs","FormControlComponent","label","_classPrivateFieldGet","v","_classPrivateFieldSet","name","value","placeholder","required","disabled","constructor","_classPrivateFieldInitSpec","_initProto","_init_label","_init_name","_init_value","_init_placeholder","_init_required","_init_disabled","_defineProperty","controlTrait","addTrait","getControlElement","controlElement","getInternals","_FormControlComponent","_applyDecs","e","default"],"sources":["../../../../src/lib/components/form-control-component/FormControlComponent.ts"],"sourcesContent":["import { WebComponent } from '@/lib/components/web-component'\nimport { property } from 'lit/decorators.js'\nimport FormControlTrait, { FormControlValue } from '@/lib/components/traits/FormControlTrait'\n\nexport default abstract class FormControlComponent<T extends FormControlValue = FormControlValue> extends WebComponent {\n static formAssociated = true\n\n @property({ type: String, reflect: true })\n accessor label = ''\n\n @property({ type: String, reflect: true })\n accessor name = ''\n\n @property()\n accessor value: T | null = null\n\n @property({ type: String, reflect: true })\n accessor placeholder = ''\n\n @property({ type: Boolean, reflect: true })\n accessor required = false\n\n @property({ type: Boolean, reflect: true })\n accessor disabled = false\n\n protected controlTrait: FormControlTrait\n\n protected abstract controlElement: HTMLInputElement | HTMLSelectElement | null\n\n constructor () {\n super()\n\n this.controlTrait = this.addTrait(\n new FormControlTrait(this, {\n getControlElement: () => this.controlElement,\n getInternals: () => this.getInternals(),\n })\n )\n }\n}\n"],"mappings":"wvIAE6F,IAAAG,EAAA,IAAAC,QAAAC,EAAA,IAAAD,QAAAE,EAAA,IAAAF,QAAAG,EAAA,IAAAH,QAAAI,EAAA,IAAAJ,QAAAK,EAAA,IAAAL,QAAAM,GAAAC,GAAAA,EAK1FV,EAAAA,SAAAA,CAAS,CAAEW,KAAMC,OAAQC,QAAS,EAAK,CAAC,EAACC,GAAAA,EAGzCd,EAAAA,SAAAA,CAAS,CAAEW,KAAMC,OAAQC,QAAS,EAAK,CAAC,EAACE,GAAAA,EAGzCf,EAAAA,SAAAA,CAAS,EAACgB,GAAAA,EAGVhB,EAAAA,SAAAA,CAAS,CAAEW,KAAMC,OAAQC,QAAS,EAAK,CAAC,EAACI,GAAAA,EAGzCjB,EAAAA,SAAAA,CAAS,CAAEW,KAAMO,QAASL,QAAS,EAAK,CAAC,EAACM,GAAAA,EAG1CnB,EAAAA,SAAAA,CAAS,CAAEW,KAAMO,QAASL,QAAS,EAAK,CAAC,EAAC,kBAlB9B,IAAeO,EAAf,cAA2FrB,EAAAA,OAAa,CAAA,IAI5GsB,OAAK,CAAA,OAAAC,EAAApB,EAAA,IAAA,CAAA,CAAA,IAALmB,MAAKE,EAAA,CAAAC,EAAAtB,EAAA,KAAAqB,CAAA,CAAA,CAAA,IAGLE,MAAI,CAAA,OAAAH,EAAAlB,EAAA,IAAA,CAAA,CAAA,IAAJqB,KAAIF,EAAA,CAAAC,EAAApB,EAAA,KAAAmB,CAAA,CAAA,CAAA,IAGJG,OAAK,CAAA,OAAAJ,EAAAjB,EAAA,IAAA,CAAA,CAAA,IAALqB,MAAKH,EAAA,CAAAC,EAAAnB,EAAA,KAAAkB,CAAA,CAAA,CAAA,IAGLI,aAAW,CAAA,OAAAL,EAAAhB,EAAA,IAAA,CAAA,CAAA,IAAXqB,YAAWJ,EAAA,CAAAC,EAAAlB,EAAA,KAAAiB,CAAA,CAAA,CAAA,IAGXK,UAAQ,CAAA,OAAAN,EAAAf,EAAA,IAAA,CAAA,CAAA,IAARqB,SAAQL,EAAA,CAAAC,EAAAjB,EAAA,KAAAgB,CAAA,CAAA,CAAA,IAGRM,UAAQ,CAAA,OAAAP,EAAAd,EAAA,IAAA,CAAA,CAAA,IAARqB,SAAQN,EAAA,CAAAC,EAAAhB,EAAA,KAAAe,CAAA,CAAA,CAMjBO,aAAe,CACb,MAAM,EAACC,EAAA,KAAA7B,GAAA8B,EAAA,IAAA,EAAAC,EAAA,KAtBQ,EAAE,EAAA,EAAAF,EAAA,KAAA3B,EAAA8B,EAAA,KAGH,EAAE,CAAA,EAAAH,EAAA,KAAA1B,EAAA8B,EAAA,KAGS,IAAI,CAAA,EAAAJ,EAAA,KAAAzB,EAAA8B,EAAA,KAGR,EAAE,CAAA,EAAAL,EAAA,KAAAxB,EAAA8B,EAAA,KAGL,EAAK,CAAA,EAAAN,EAAA,KAAAvB,EAAA8B,EAAA,KAGL,EAAK,CAAA,EAAAC,EAAA,KAAA,eAAA,IAAA,EAAA,EASvB,KAAKC,aAAe,KAAKC,SACvB,IAAIxC,EAAAA,QAAiB,KAAM,CACzByC,sBAAyB,KAAKC,eAC9BC,iBAAoB,KAAKA,aAAa,CACxC,CAAC,CACH,CACF,CACF,EAACC,EAnC6BzB,EAAoB,CAAAa,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAN,GAAAc,EAAAD,EAAA,CAAA,CAAAnC,EAAA,EAAA,OAAA,EAAA,CAAAI,EAAA,EAAA,MAAA,EAAA,CAAAC,EAAA,EAAA,OAAA,EAAA,CAAAC,EAAA,EAAA,aAAA,EAAA,CAAAC,EAAA,EAAA,UAAA,EAAA,CAAAE,EAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,EAAA,IAAA,GAAwDpB,EAAAA,OAAY,CAAA,CAAAgD,EAAAR,EAAxFnB,EAAoBX,EACxB,EAAI"}
1
+ {"version":3,"file":"FormControlComponent.cjs.js","names":["WebComponent","property","FormControlTrait","_A","WeakMap","_B","_C","_D","_E","_F","_ref","_labelDecs","type","String","reflect","_nameDecs","_valueDecs","_placeholderDecs","_requiredDecs","Boolean","_disabledDecs","FormControlComponent","label","_classPrivateFieldGet","v","_classPrivateFieldSet","name","value","placeholder","required","disabled","constructor","_classPrivateFieldInitSpec","_initProto","_init_label","_init_name","_init_value","_init_placeholder","_init_required","_init_disabled","_defineProperty","controlTrait","addTrait","getControlElement","controlElement","getInternals","_FormControlComponent","_applyDecs","e","default","property","WebComponent","FormControlTrait","require_WebComponent","require_FormControlTrait","lit_decorators_js","_FormControlComponent","_initProto","_labelDecs","_init_label","_nameDecs","_init_name","_valueDecs","_init_value","_placeholderDecs","_init_placeholder","_requiredDecs","_init_required","_disabledDecs","_init_disabled","_ref","_classPrivateFieldInitSpec","_checkPrivateRedeclaration","a","_defineProperty","_toPropertyKey","r","t","_classPrivateFieldSet","s","_assertClassBrand","_classPrivateFieldGet","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","f","p","_setFunctionName","P","j","D","I","O","k","F","l","N","_checkInRHS","_toPrimitive","e","_A","_B","_C","_D","_E","_F","FormControlComponent"],"sources":["../../../../src/lib/components/form-control-component/FormControlComponent.ts"],"sourcesContent":["import { WebComponent } from '@/lib/components/web-component'\nimport { property } from 'lit/decorators.js'\nimport FormControlTrait, { FormControlValue } from '@/lib/components/traits/FormControlTrait'\n\nexport default abstract class FormControlComponent<T extends FormControlValue = FormControlValue> extends WebComponent {\n static formAssociated = true\n\n @property({ type: String, reflect: true })\n accessor label = ''\n\n @property({ type: String, reflect: true })\n accessor name = ''\n\n @property()\n accessor value: T | null = null\n\n @property({ type: String, reflect: true })\n accessor placeholder = ''\n\n @property({ type: Boolean, reflect: true })\n accessor required = false\n\n @property({ type: Boolean, reflect: true })\n accessor disabled = false\n\n protected controlTrait: FormControlTrait\n\n protected abstract controlElement: HTMLInputElement | HTMLSelectElement | null\n\n constructor () {\n super()\n\n this.controlTrait = this.addTrait(\n new FormControlTrait(this, {\n getControlElement: () => this.controlElement,\n getInternals: () => this.getInternals(),\n })\n )\n }\n}\n"],"mappings":"wvIAE6F,IAAAG,EAAA,IAAAC,QAAAC,EAAA,IAAAD,QAAAE,EAAA,IAAAF,QAAAG,EAAA,IAAAH,QAAAI,EAAA,IAAAJ,QAAAK,EAAA,IAAAL,QAAAM,GAAAC,GAAAA,EAK1FV,EAAAA,SAAAA,CAAS,CAAEW,KAAMC,OAAQC,QAAS,EAAK,CAAC,EAACC,GAAAA,EAGzCd,EAAAA,SAAAA,CAAS,CAAEW,KAAMC,OAAQC,QAAS,EAAK,CAAC,EAACE,GAAAA,EAGzCf,EAAAA,SAAAA,CAAS,EAACgB,GAAAA,EAGVhB,EAAAA,SAAAA,CAAS,CAAEW,KAAMC,OAAQC,QAAS,EAAK,CAAC,EAACI,GAAAA,EAGzCjB,EAAAA,SAAAA,CAAS,CAAEW,KAAMO,QAASL,QAAS,EAAK,CAAC,EAACM,GAAAA,EAG1CnB,EAAAA,SAAAA,CAAS,CAAEW,KAAMO,QAASL,QAAS,EAAK,CAAC,EAAC,kBAlB9B,IAAeO,EAAf,cAA2FrB,EAAAA,OAAa,CAAA,IAI5GsB,OAAK,CAAA,OAAAC,EAAApB,EAAA,IAAA,CAAA,CAAA,IAALmB,MAAKE,EAAA,CAAAC,EAAAtB,EAAA,KAAAqB,CAAA,CAAA,CAAA,IAGLE,MAAI,CAAA,OAAAH,EAAAlB,EAAA,IAAA,CAAA,CAAA,IAAJqB,KAAIF,EAAA,CAAAC,EAAApB,EAAA,KAAAmB,CAAA,CAAA,CAAA,IAGJG,OAAK,CAAA,OAAAJ,EAAAjB,EAAA,IAAA,CAAA,CAAA,IAALqB,MAAKH,EAAA,CAAAC,EAAAnB,EAAA,KAAAkB,CAAA,CAAA,CAAA,IAGLI,aAAW,CAAA,OAAAL,EAAAhB,EAAA,IAAA,CAAA,CAAA,IAAXqB,YAAWJ,EAAA,CAAAC,EAAAlB,EAAA,KAAAiB,CAAA,CAAA,CAAA,IAGXK,UAAQ,CAAA,OAAAN,EAAAf,EAAA,IAAA,CAAA,CAAA,IAARqB,SAAQL,EAAA,CAAAC,EAAAjB,EAAA,KAAAgB,CAAA,CAAA,CAAA,IAGRM,UAAQ,CAAA,OAAAP,EAAAd,EAAA,IAAA,CAAA,CAAA,IAARqB,SAAQN,EAAA,CAAAC,EAAAhB,EAAA,KAAAe,CAAA,CAAA,CAMjBO,aAAe,CACb,MAAM,EAACC,EAAA,KAAA7B,GAAA8B,EAAA,IAAA,EAAAC,EAAA,KAtBQ,EAAE,EAAA,EAAAF,EAAA,KAAA3B,EAAA8B,EAAA,KAGH,EAAE,CAAA,EAAAH,EAAA,KAAA1B,EAAA8B,EAAA,KAGS,IAAI,CAAA,EAAAJ,EAAA,KAAAzB,EAAA8B,EAAA,KAGR,EAAE,CAAA,EAAAL,EAAA,KAAAxB,EAAA8B,EAAA,KAGL,EAAK,CAAA,EAAAN,EAAA,KAAAvB,EAAA8B,EAAA,KAGL,EAAK,CAAA,EAAAC,EAAA,KAAA,eAAA,IAAA,EAAA,EASvB,KAAKC,aAAe,KAAKC,SACvB,IAAIxC,EAAAA,QAAiB,KAAM,CACzByC,sBAAyB,KAAKC,eAC9BC,iBAAoB,KAAKA,aAAa,CACxC,CAAC,CACH,CACF,CACF,EAACC,EAnC6BzB,EAAoB,CAAAa,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAN,GAAAc,EAAAD,EAAA,CAAA,CAAAnC,EAAA,EAAA,OAAA,EAAA,CAAAI,EAAA,EAAA,MAAA,EAAA,CAAAC,EAAA,EAAA,OAAA,EAAA,CAAAC,EAAA,EAAA,aAAA,EAAA,CAAAC,EAAA,EAAA,UAAA,EAAA,CAAAE,EAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,EAAA,IAAA,GAAwDpB,EAAAA,OAAY,CAAA,CAAAgD,EAAAR,EAAxFnB,EAAoBX,EACxB,EAAI"}
@@ -1 +1 @@
1
- {"version":3,"file":"FormControlComponent.esm.js","names":["WebComponent","property","FormControlTrait","_A","WeakMap","_B","_C","_D","_E","_F","_ref","_labelDecs","type","String","reflect","_nameDecs","_valueDecs","_placeholderDecs","_requiredDecs","Boolean","_disabledDecs","FormControlComponent","label","_classPrivateFieldGet","v","_classPrivateFieldSet","name","value","placeholder","required","disabled","constructor","_classPrivateFieldInitSpec","_initProto","_init_label","_init_name","_init_value","_init_placeholder","_init_required","_init_disabled","_defineProperty","controlTrait","addTrait","getControlElement","controlElement","getInternals","_FormControlComponent","_applyDecs","e","default"],"sources":["../../../../src/lib/components/form-control-component/FormControlComponent.ts"],"sourcesContent":["import { WebComponent } from '@/lib/components/web-component'\nimport { property } from 'lit/decorators.js'\nimport FormControlTrait, { FormControlValue } from '@/lib/components/traits/FormControlTrait'\n\nexport default abstract class FormControlComponent<T extends FormControlValue = FormControlValue> extends WebComponent {\n static formAssociated = true\n\n @property({ type: String, reflect: true })\n accessor label = ''\n\n @property({ type: String, reflect: true })\n accessor name = ''\n\n @property()\n accessor value: T | null = null\n\n @property({ type: String, reflect: true })\n accessor placeholder = ''\n\n @property({ type: Boolean, reflect: true })\n accessor required = false\n\n @property({ type: Boolean, reflect: true })\n accessor disabled = false\n\n protected controlTrait: FormControlTrait\n\n protected abstract controlElement: HTMLInputElement | HTMLSelectElement | null\n\n constructor () {\n super()\n\n this.controlTrait = this.addTrait(\n new FormControlTrait(this, {\n getControlElement: () => this.controlElement,\n getInternals: () => this.getInternals(),\n })\n )\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"FormControlComponent.esm.js","names":["WebComponent","property","FormControlTrait","_A","WeakMap","_B","_C","_D","_E","_F","_ref","_labelDecs","type","String","reflect","_nameDecs","_valueDecs","_placeholderDecs","_requiredDecs","Boolean","_disabledDecs","FormControlComponent","label","_classPrivateFieldGet","v","_classPrivateFieldSet","name","value","placeholder","required","disabled","constructor","_classPrivateFieldInitSpec","_initProto","_init_label","_init_name","_init_value","_init_placeholder","_init_required","_init_disabled","_defineProperty","controlTrait","addTrait","getControlElement","controlElement","getInternals","_FormControlComponent","_applyDecs","e","default","WebComponent","FormControlTrait","_FormControlComponent","_initProto","_labelDecs","_init_label","_nameDecs","_init_name","_valueDecs","_init_value","_placeholderDecs","_init_placeholder","_requiredDecs","_init_required","_disabledDecs","_init_disabled","_ref","_classPrivateFieldInitSpec","a","_checkPrivateRedeclaration","_defineProperty","_toPropertyKey","r","t","_classPrivateFieldSet","s","_assertClassBrand","_classPrivateFieldGet","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","p","_setFunctionName","P","j","D","I","O","k","F","l","f","N","_checkInRHS","_toPrimitive","e","_A","_B","_C","_D","_E","_F","property","FormControlComponent"],"sources":["../../../../src/lib/components/form-control-component/FormControlComponent.ts"],"sourcesContent":["import { WebComponent } from '@/lib/components/web-component'\nimport { property } from 'lit/decorators.js'\nimport FormControlTrait, { FormControlValue } from '@/lib/components/traits/FormControlTrait'\n\nexport default abstract class FormControlComponent<T extends FormControlValue = FormControlValue> extends WebComponent {\n static formAssociated = true\n\n @property({ type: String, reflect: true })\n accessor label = ''\n\n @property({ type: String, reflect: true })\n accessor name = ''\n\n @property()\n accessor value: T | null = null\n\n @property({ type: String, reflect: true })\n accessor placeholder = ''\n\n @property({ type: Boolean, reflect: true })\n accessor required = false\n\n @property({ type: Boolean, reflect: true })\n accessor disabled = false\n\n protected controlTrait: FormControlTrait\n\n protected abstract controlElement: HTMLInputElement | HTMLSelectElement | null\n\n constructor () {\n super()\n\n this.controlTrait = this.addTrait(\n new FormControlTrait(this, {\n getControlElement: () => this.controlElement,\n getInternals: () => this.getInternals(),\n })\n )\n }\n}\n"],"mappings":"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"}