solid-ui 2.6.0 → 2.6.1-05fb7cc

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 (365) hide show
  1. package/LICENSE.md +3 -1
  2. package/README.md +84 -25
  3. package/dist/acl/access-controller.js +293 -0
  4. package/dist/acl/access-controller.js.map +1 -0
  5. package/dist/acl/access-groups.js +372 -0
  6. package/dist/acl/access-groups.js.map +1 -0
  7. package/dist/acl/acl-control.js +217 -0
  8. package/dist/acl/acl-control.js.map +1 -0
  9. package/dist/acl/acl.js +550 -0
  10. package/dist/acl/acl.js.map +1 -0
  11. package/dist/acl/add-agent-buttons.js +260 -0
  12. package/dist/acl/add-agent-buttons.js.map +1 -0
  13. package/dist/acl/index.js +35 -0
  14. package/dist/acl/index.js.map +1 -0
  15. package/dist/acl/types.js +7 -0
  16. package/dist/acl/types.js.map +1 -0
  17. package/dist/chat/keys.js +148 -0
  18. package/dist/chat/keys.js.map +1 -0
  19. package/dist/chat/signature.js +71 -0
  20. package/dist/chat/signature.js.map +1 -0
  21. package/dist/create/create.js +288 -0
  22. package/dist/create/create.js.map +1 -0
  23. package/dist/create/index.js +8 -0
  24. package/dist/create/index.js.map +1 -0
  25. package/dist/create/types.js +3 -0
  26. package/dist/create/types.js.map +1 -0
  27. package/dist/debug.js +23 -0
  28. package/dist/debug.js.map +1 -0
  29. package/dist/footer/index.js +72 -0
  30. package/dist/footer/index.js.map +1 -0
  31. package/dist/header/empty-profile.js +14 -0
  32. package/dist/header/empty-profile.js.map +1 -0
  33. package/dist/header/index.js +305 -0
  34. package/dist/header/index.js.map +1 -0
  35. package/dist/iconBase.js +40 -0
  36. package/dist/iconBase.js.map +1 -0
  37. package/dist/icons/solid_logo.js.map +1 -0
  38. package/{lib → dist}/index.d.ts +4 -4
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +170 -0
  41. package/dist/index.js.map +1 -0
  42. package/{lib → dist}/log.js +85 -99
  43. package/dist/log.js.map +1 -0
  44. package/dist/login/login.js +910 -0
  45. package/dist/login/login.js.map +1 -0
  46. package/dist/matrix/index.js +8 -0
  47. package/dist/matrix/index.js.map +1 -0
  48. package/dist/matrix/matrix.js +253 -0
  49. package/dist/matrix/matrix.js.map +1 -0
  50. package/dist/matrix/types.js +3 -0
  51. package/dist/matrix/types.js.map +1 -0
  52. package/dist/media/index.js +9 -0
  53. package/dist/media/index.js.map +1 -0
  54. package/dist/media/media-capture.js +198 -0
  55. package/dist/media/media-capture.js.map +1 -0
  56. package/dist/pad.js +795 -0
  57. package/dist/pad.js.map +1 -0
  58. package/dist/participation.js +228 -0
  59. package/dist/participation.js.map +1 -0
  60. package/dist/solid-ui.esm.js +25549 -0
  61. package/dist/solid-ui.esm.js.map +1 -0
  62. package/dist/solid-ui.esm.min.js +43 -0
  63. package/dist/solid-ui.esm.min.js.map +1 -0
  64. package/dist/solid-ui.js +23399 -70837
  65. package/dist/solid-ui.js.map +1 -1
  66. package/dist/solid-ui.min.js +40 -2
  67. package/dist/solid-ui.min.js.map +1 -1
  68. package/dist/tabs.js +398 -0
  69. package/dist/tabs.js.map +1 -0
  70. package/dist/utils/headerFooterHelpers.js +122 -0
  71. package/dist/utils/headerFooterHelpers.js.map +1 -0
  72. package/dist/utils/keyHelpers/accessData.js +108 -0
  73. package/dist/utils/keyHelpers/accessData.js.map +1 -0
  74. package/dist/utils/keyHelpers/acl.js +112 -0
  75. package/dist/utils/keyHelpers/acl.js.map +1 -0
  76. package/dist/utils/keyHelpers/otherHelpers.js +19 -0
  77. package/dist/utils/keyHelpers/otherHelpers.js.map +1 -0
  78. package/dist/utils/label.js +150 -0
  79. package/dist/utils/label.js.map +1 -0
  80. package/dist/versionInfo.js +33 -0
  81. package/dist/versionInfo.js.map +1 -0
  82. package/dist/widgets/buttons/iconLinks.js +49 -0
  83. package/dist/widgets/buttons/iconLinks.js.map +1 -0
  84. package/dist/widgets/buttons.js +1355 -0
  85. package/dist/widgets/buttons.js.map +1 -0
  86. package/dist/widgets/error.js +42 -0
  87. package/dist/widgets/error.js.map +1 -0
  88. package/dist/widgets/forms/autocomplete/autocompleteBar.js +162 -0
  89. package/dist/widgets/forms/autocomplete/autocompleteBar.js.map +1 -0
  90. package/dist/widgets/forms/autocomplete/autocompleteField.js +235 -0
  91. package/dist/widgets/forms/autocomplete/autocompleteField.js.map +1 -0
  92. package/dist/widgets/forms/autocomplete/autocompletePicker.js +296 -0
  93. package/dist/widgets/forms/autocomplete/autocompletePicker.js.map +1 -0
  94. package/dist/widgets/forms/autocomplete/language.js +147 -0
  95. package/dist/widgets/forms/autocomplete/language.js.map +1 -0
  96. package/dist/widgets/forms/autocomplete/publicData.js +507 -0
  97. package/dist/widgets/forms/autocomplete/publicData.js.map +1 -0
  98. package/dist/widgets/forms/basic.js +250 -0
  99. package/dist/widgets/forms/basic.js.map +1 -0
  100. package/dist/widgets/forms/comment.js +52 -0
  101. package/dist/widgets/forms/comment.js.map +1 -0
  102. package/dist/widgets/forms/fieldFunction.js +49 -0
  103. package/dist/widgets/forms/fieldFunction.js.map +1 -0
  104. package/dist/widgets/forms/fieldParams.js +95 -0
  105. package/dist/widgets/forms/fieldParams.js.map +1 -0
  106. package/dist/widgets/forms/formStyle.js +43 -0
  107. package/dist/widgets/forms/formStyle.js.map +1 -0
  108. package/{lib → dist}/widgets/widgetHelpers.d.ts.map +1 -1
  109. package/{lib → dist}/widgets/widgetHelpers.js +19 -24
  110. package/dist/widgets/widgetHelpers.js.map +1 -0
  111. package/package.json +44 -47
  112. package/dist/789.solid-ui.min.js +0 -1
  113. package/dist/841.solid-ui.min.js +0 -3
  114. package/dist/841.solid-ui.min.js.LICENSE.txt +0 -58
  115. package/dist/841.solid-ui.min.js.map +0 -1
  116. package/dist/_2b19.solid-ui.js +0 -14
  117. package/dist/_2b19.solid-ui.js.map +0 -1
  118. package/dist/index.html +0 -1
  119. package/dist/solid-ui.min.js.LICENSE.txt +0 -57
  120. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js +0 -12247
  121. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js.map +0 -1
  122. package/lib/acl/access-controller.js +0 -391
  123. package/lib/acl/access-controller.js.map +0 -1
  124. package/lib/acl/access-groups.js +0 -507
  125. package/lib/acl/access-groups.js.map +0 -1
  126. package/lib/acl/acl-control.js +0 -237
  127. package/lib/acl/acl-control.js.map +0 -1
  128. package/lib/acl/acl.js +0 -517
  129. package/lib/acl/acl.js.map +0 -1
  130. package/lib/acl/add-agent-buttons.js +0 -434
  131. package/lib/acl/add-agent-buttons.js.map +0 -1
  132. package/lib/acl/index.js +0 -39
  133. package/lib/acl/index.js.map +0 -1
  134. package/lib/acl/types.js +0 -6
  135. package/lib/acl/types.js.map +0 -1
  136. package/lib/chat/bookmarks.js +0 -303
  137. package/lib/chat/bookmarks.js.map +0 -1
  138. package/lib/chat/chatLogic.js +0 -420
  139. package/lib/chat/chatLogic.js.map +0 -1
  140. package/lib/chat/dateFolder.js +0 -328
  141. package/lib/chat/dateFolder.js.map +0 -1
  142. package/lib/chat/infinite.js +0 -994
  143. package/lib/chat/infinite.js.map +0 -1
  144. package/lib/chat/keys.js +0 -232
  145. package/lib/chat/keys.js.map +0 -1
  146. package/lib/chat/message.js +0 -715
  147. package/lib/chat/message.js.map +0 -1
  148. package/lib/chat/messageTools.js +0 -538
  149. package/lib/chat/messageTools.js.map +0 -1
  150. package/lib/chat/signature.js +0 -109
  151. package/lib/chat/signature.js.map +0 -1
  152. package/lib/chat/thread.js +0 -535
  153. package/lib/chat/thread.js.map +0 -1
  154. package/lib/create/create.js +0 -242
  155. package/lib/create/create.js.map +0 -1
  156. package/lib/create/index.js +0 -11
  157. package/lib/create/index.js.map +0 -1
  158. package/lib/create/types.js +0 -6
  159. package/lib/create/types.js.map +0 -1
  160. package/lib/debug.js +0 -30
  161. package/lib/debug.js.map +0 -1
  162. package/lib/folders.js +0 -132
  163. package/lib/folders.js.map +0 -1
  164. package/lib/footer/index.js +0 -123
  165. package/lib/footer/index.js.map +0 -1
  166. package/lib/header/empty-profile.js +0 -8
  167. package/lib/header/empty-profile.js.map +0 -1
  168. package/lib/header/index.js +0 -375
  169. package/lib/header/index.js.map +0 -1
  170. package/lib/iconBase.js +0 -44
  171. package/lib/iconBase.js.map +0 -1
  172. package/lib/icons/solid_logo.js.map +0 -1
  173. package/lib/index.d.ts.map +0 -1
  174. package/lib/index.js +0 -223
  175. package/lib/index.js.map +0 -1
  176. package/lib/log.js.map +0 -1
  177. package/lib/login/login.js +0 -1241
  178. package/lib/login/login.js.map +0 -1
  179. package/lib/matrix/index.js +0 -11
  180. package/lib/matrix/index.js.map +0 -1
  181. package/lib/matrix/matrix.js +0 -216
  182. package/lib/matrix/matrix.js.map +0 -1
  183. package/lib/matrix/types.js +0 -6
  184. package/lib/matrix/types.js.map +0 -1
  185. package/lib/media/index.js +0 -12
  186. package/lib/media/index.js.map +0 -1
  187. package/lib/media/media-capture.js +0 -194
  188. package/lib/media/media-capture.js.map +0 -1
  189. package/lib/messageArea.js +0 -319
  190. package/lib/messageArea.js.map +0 -1
  191. package/lib/noun_Camera_1618446_000000.js +0 -8
  192. package/lib/noun_Camera_1618446_000000.js.map +0 -1
  193. package/lib/ns.js +0 -17
  194. package/lib/ns.js.map +0 -1
  195. package/lib/pad.js +0 -805
  196. package/lib/pad.js.map +0 -1
  197. package/lib/participation.js +0 -219
  198. package/lib/participation.js.map +0 -1
  199. package/lib/preferences.js +0 -215
  200. package/lib/preferences.js.map +0 -1
  201. package/lib/signup/config-default.js +0 -43
  202. package/lib/signup/config-default.js.map +0 -1
  203. package/lib/signup/signup.js +0 -74
  204. package/lib/signup/signup.js.map +0 -1
  205. package/lib/stories/decorators.js +0 -10
  206. package/lib/stories/decorators.js.map +0 -1
  207. package/lib/style.js +0 -158
  208. package/lib/style.js.map +0 -1
  209. package/lib/styleConstants.js +0 -35
  210. package/lib/styleConstants.js.map +0 -1
  211. package/lib/style_multiSelect.js +0 -62
  212. package/lib/style_multiSelect.js.map +0 -1
  213. package/lib/table.js +0 -1573
  214. package/lib/table.js.map +0 -1
  215. package/lib/tabs.js +0 -448
  216. package/lib/tabs.js.map +0 -1
  217. package/lib/typings.d.js +0 -2
  218. package/lib/typings.d.js.map +0 -1
  219. package/lib/utils/headerFooterHelpers.js +0 -165
  220. package/lib/utils/headerFooterHelpers.js.map +0 -1
  221. package/lib/utils/index.js +0 -527
  222. package/lib/utils/index.js.map +0 -1
  223. package/lib/utils/keyHelpers/accessData.js +0 -131
  224. package/lib/utils/keyHelpers/accessData.js.map +0 -1
  225. package/lib/utils/keyHelpers/acl.js +0 -90
  226. package/lib/utils/keyHelpers/acl.js.map +0 -1
  227. package/lib/utils/keyHelpers/otherHelpers.js +0 -21
  228. package/lib/utils/keyHelpers/otherHelpers.js.map +0 -1
  229. package/lib/utils/label.js +0 -103
  230. package/lib/utils/label.js.map +0 -1
  231. package/lib/versionInfo.d.ts +0 -34
  232. package/lib/versionInfo.d.ts.map +0 -1
  233. package/lib/versionInfo.js +0 -39
  234. package/lib/versionInfo.js.map +0 -1
  235. package/lib/widgets/buttons/iconLinks.js +0 -53
  236. package/lib/widgets/buttons/iconLinks.js.map +0 -1
  237. package/lib/widgets/buttons.js +0 -1306
  238. package/lib/widgets/buttons.js.map +0 -1
  239. package/lib/widgets/dragAndDrop.js +0 -194
  240. package/lib/widgets/dragAndDrop.js.map +0 -1
  241. package/lib/widgets/error.js +0 -46
  242. package/lib/widgets/error.js.map +0 -1
  243. package/lib/widgets/forms/autocomplete/autocompleteBar.js +0 -271
  244. package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +0 -1
  245. package/lib/widgets/forms/autocomplete/autocompleteField.js +0 -258
  246. package/lib/widgets/forms/autocomplete/autocompleteField.js.map +0 -1
  247. package/lib/widgets/forms/autocomplete/autocompletePicker.js +0 -436
  248. package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +0 -1
  249. package/lib/widgets/forms/autocomplete/language.js +0 -189
  250. package/lib/widgets/forms/autocomplete/language.js.map +0 -1
  251. package/lib/widgets/forms/autocomplete/publicData.js +0 -636
  252. package/lib/widgets/forms/autocomplete/publicData.js.map +0 -1
  253. package/lib/widgets/forms/basic.js +0 -254
  254. package/lib/widgets/forms/basic.js.map +0 -1
  255. package/lib/widgets/forms/comment.js +0 -54
  256. package/lib/widgets/forms/comment.js.map +0 -1
  257. package/lib/widgets/forms/fieldFunction.js +0 -52
  258. package/lib/widgets/forms/fieldFunction.js.map +0 -1
  259. package/lib/widgets/forms/fieldParams.js +0 -77
  260. package/lib/widgets/forms/fieldParams.js.map +0 -1
  261. package/lib/widgets/forms/formStyle.js +0 -44
  262. package/lib/widgets/forms/formStyle.js.map +0 -1
  263. package/lib/widgets/forms.js +0 -2045
  264. package/lib/widgets/forms.js.map +0 -1
  265. package/lib/widgets/index.js +0 -110
  266. package/lib/widgets/index.js.map +0 -1
  267. package/lib/widgets/multiSelect.js +0 -658
  268. package/lib/widgets/multiSelect.js.map +0 -1
  269. package/lib/widgets/peoplePicker.js +0 -467
  270. package/lib/widgets/peoplePicker.js.map +0 -1
  271. package/lib/widgets/widgetHelpers.js.map +0 -1
  272. /package/{lib → dist}/acl/access-controller.d.ts +0 -0
  273. /package/{lib → dist}/acl/access-controller.d.ts.map +0 -0
  274. /package/{lib → dist}/acl/access-groups.d.ts +0 -0
  275. /package/{lib → dist}/acl/access-groups.d.ts.map +0 -0
  276. /package/{lib → dist}/acl/acl-control.d.ts +0 -0
  277. /package/{lib → dist}/acl/acl-control.d.ts.map +0 -0
  278. /package/{lib → dist}/acl/acl.d.ts +0 -0
  279. /package/{lib → dist}/acl/acl.d.ts.map +0 -0
  280. /package/{lib → dist}/acl/add-agent-buttons.d.ts +0 -0
  281. /package/{lib → dist}/acl/add-agent-buttons.d.ts.map +0 -0
  282. /package/{lib → dist}/acl/index.d.ts +0 -0
  283. /package/{lib → dist}/acl/index.d.ts.map +0 -0
  284. /package/{lib → dist}/acl/types.d.ts +0 -0
  285. /package/{lib → dist}/acl/types.d.ts.map +0 -0
  286. /package/{lib → dist}/chat/keys.d.ts +0 -0
  287. /package/{lib → dist}/chat/keys.d.ts.map +0 -0
  288. /package/{lib → dist}/chat/signature.d.ts +0 -0
  289. /package/{lib → dist}/chat/signature.d.ts.map +0 -0
  290. /package/{lib → dist}/create/create.d.ts +0 -0
  291. /package/{lib → dist}/create/create.d.ts.map +0 -0
  292. /package/{lib → dist}/create/index.d.ts +0 -0
  293. /package/{lib → dist}/create/index.d.ts.map +0 -0
  294. /package/{lib → dist}/create/types.d.ts +0 -0
  295. /package/{lib → dist}/create/types.d.ts.map +0 -0
  296. /package/{lib → dist}/debug.d.ts +0 -0
  297. /package/{lib → dist}/debug.d.ts.map +0 -0
  298. /package/{lib → dist}/footer/index.d.ts +0 -0
  299. /package/{lib → dist}/footer/index.d.ts.map +0 -0
  300. /package/{lib → dist}/header/empty-profile.d.ts +0 -0
  301. /package/{lib → dist}/header/empty-profile.d.ts.map +0 -0
  302. /package/{lib → dist}/header/index.d.ts +0 -0
  303. /package/{lib → dist}/header/index.d.ts.map +0 -0
  304. /package/{lib → dist}/iconBase.d.ts +0 -0
  305. /package/{lib → dist}/iconBase.d.ts.map +0 -0
  306. /package/{lib → dist}/icons/solid_logo.d.ts +0 -0
  307. /package/{lib → dist}/icons/solid_logo.d.ts.map +0 -0
  308. /package/{lib → dist}/icons/solid_logo.js +0 -0
  309. /package/{lib → dist}/log.d.ts +0 -0
  310. /package/{lib → dist}/log.d.ts.map +0 -0
  311. /package/{lib → dist}/login/login.d.ts +0 -0
  312. /package/{lib → dist}/login/login.d.ts.map +0 -0
  313. /package/{lib → dist}/matrix/index.d.ts +0 -0
  314. /package/{lib → dist}/matrix/index.d.ts.map +0 -0
  315. /package/{lib → dist}/matrix/matrix.d.ts +0 -0
  316. /package/{lib → dist}/matrix/matrix.d.ts.map +0 -0
  317. /package/{lib → dist}/matrix/types.d.ts +0 -0
  318. /package/{lib → dist}/matrix/types.d.ts.map +0 -0
  319. /package/{lib → dist}/media/index.d.ts +0 -0
  320. /package/{lib → dist}/media/index.d.ts.map +0 -0
  321. /package/{lib → dist}/media/media-capture.d.ts +0 -0
  322. /package/{lib → dist}/media/media-capture.d.ts.map +0 -0
  323. /package/{lib → dist}/pad.d.ts +0 -0
  324. /package/{lib → dist}/pad.d.ts.map +0 -0
  325. /package/{lib → dist}/participation.d.ts +0 -0
  326. /package/{lib → dist}/participation.d.ts.map +0 -0
  327. /package/{lib → dist}/tabs.d.ts +0 -0
  328. /package/{lib → dist}/tabs.d.ts.map +0 -0
  329. /package/{lib → dist}/utils/headerFooterHelpers.d.ts +0 -0
  330. /package/{lib → dist}/utils/headerFooterHelpers.d.ts.map +0 -0
  331. /package/{lib → dist}/utils/keyHelpers/accessData.d.ts +0 -0
  332. /package/{lib → dist}/utils/keyHelpers/accessData.d.ts.map +0 -0
  333. /package/{lib → dist}/utils/keyHelpers/acl.d.ts +0 -0
  334. /package/{lib → dist}/utils/keyHelpers/acl.d.ts.map +0 -0
  335. /package/{lib → dist}/utils/keyHelpers/otherHelpers.d.ts +0 -0
  336. /package/{lib → dist}/utils/keyHelpers/otherHelpers.d.ts.map +0 -0
  337. /package/{lib → dist}/utils/label.d.ts +0 -0
  338. /package/{lib → dist}/utils/label.d.ts.map +0 -0
  339. /package/{lib → dist}/widgets/buttons/iconLinks.d.ts +0 -0
  340. /package/{lib → dist}/widgets/buttons/iconLinks.d.ts.map +0 -0
  341. /package/{lib → dist}/widgets/buttons.d.ts +0 -0
  342. /package/{lib → dist}/widgets/buttons.d.ts.map +0 -0
  343. /package/{lib → dist}/widgets/error.d.ts +0 -0
  344. /package/{lib → dist}/widgets/error.d.ts.map +0 -0
  345. /package/{lib → dist}/widgets/forms/autocomplete/autocompleteBar.d.ts +0 -0
  346. /package/{lib → dist}/widgets/forms/autocomplete/autocompleteBar.d.ts.map +0 -0
  347. /package/{lib → dist}/widgets/forms/autocomplete/autocompleteField.d.ts +0 -0
  348. /package/{lib → dist}/widgets/forms/autocomplete/autocompleteField.d.ts.map +0 -0
  349. /package/{lib → dist}/widgets/forms/autocomplete/autocompletePicker.d.ts +0 -0
  350. /package/{lib → dist}/widgets/forms/autocomplete/autocompletePicker.d.ts.map +0 -0
  351. /package/{lib → dist}/widgets/forms/autocomplete/language.d.ts +0 -0
  352. /package/{lib → dist}/widgets/forms/autocomplete/language.d.ts.map +0 -0
  353. /package/{lib → dist}/widgets/forms/autocomplete/publicData.d.ts +0 -0
  354. /package/{lib → dist}/widgets/forms/autocomplete/publicData.d.ts.map +0 -0
  355. /package/{lib → dist}/widgets/forms/basic.d.ts +0 -0
  356. /package/{lib → dist}/widgets/forms/basic.d.ts.map +0 -0
  357. /package/{lib → dist}/widgets/forms/comment.d.ts +0 -0
  358. /package/{lib → dist}/widgets/forms/comment.d.ts.map +0 -0
  359. /package/{lib → dist}/widgets/forms/fieldFunction.d.ts +0 -0
  360. /package/{lib → dist}/widgets/forms/fieldFunction.d.ts.map +0 -0
  361. /package/{lib → dist}/widgets/forms/fieldParams.d.ts +0 -0
  362. /package/{lib → dist}/widgets/forms/fieldParams.d.ts.map +0 -0
  363. /package/{lib → dist}/widgets/forms/formStyle.d.ts +0 -0
  364. /package/{lib → dist}/widgets/forms/formStyle.d.ts.map +0 -0
  365. /package/{lib → dist}/widgets/widgetHelpers.d.ts +0 -0
@@ -0,0 +1,296 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.setVisible = setVisible;
40
+ exports.renderAutoComplete = renderAutoComplete;
41
+ /* Autocomplete Picker: Create and edit data using public data
42
+ **
43
+ ** As the data source is passed as a parameter, all kinds of APIa and query services can be used
44
+ **
45
+ */
46
+ const debug = __importStar(require("../../../debug"));
47
+ const style_1 = require("../../../style");
48
+ const styleConstants_1 = __importDefault(require("../../../styleConstants"));
49
+ const widgets = __importStar(require("../../../widgets"));
50
+ const solid_logic_1 = require("solid-logic");
51
+ const publicData_1 = require("./publicData");
52
+ const language_1 = require("./language");
53
+ const AUTOCOMPLETE_THRESHOLD = 4; // don't check until this many characters typed
54
+ const AUTOCOMPLETE_ROWS = 20; // 20?
55
+ const AUTOCOMPLETE_ROWS_STRETCH = 40;
56
+ function setVisible(element, visible) {
57
+ element.style.display = visible ? '' : 'none'; // Do not use visibility, it holds the real estate
58
+ }
59
+ // The core of the autocomplete UI
60
+ async function renderAutoComplete(dom, acOptions, decoration, callback) {
61
+ function complain(message) {
62
+ const errorRow = table.appendChild(dom.createElement('tr'));
63
+ debug.log(message);
64
+ const err = new Error(message);
65
+ errorRow.appendChild(widgets.errorMessageBlock(dom, err, 'pink'));
66
+ // errorMessageBlock will log the stack to the console
67
+ style_1.style.setStyle(errorRow, 'autocompleteRowStyle');
68
+ errorRow.style.padding = '1em';
69
+ }
70
+ function finish(object, name) {
71
+ debug.log('Auto complete: finish! ' + object);
72
+ if (object.termType === 'Literal' && acOptions.queryParams.objectURIBase) {
73
+ object = solid_logic_1.store.sym(acOptions.queryParams.objectURIBase.value + object.value);
74
+ }
75
+ // remove(decoration.cancelButton)
76
+ // remove(decoration.acceptButton)
77
+ // remove(div)
78
+ clearList();
79
+ callback(object, name);
80
+ }
81
+ async function gotIt(object, name) {
82
+ if (decoration.acceptButton) {
83
+ decoration.acceptButton.disbaled = false;
84
+ setVisible(decoration.acceptButton, true); // now wait for confirmation
85
+ searchInput.value = name.value; // complete it
86
+ foundName = name;
87
+ foundObject = object;
88
+ debug.log('Auto complete: name: ' + name);
89
+ debug.log('Auto complete: waiting for accept ' + object);
90
+ clearList(); // This may be an option - nice and clean but does not allow change of mind
91
+ return;
92
+ }
93
+ setVisible(decoration.cancelButton, true);
94
+ finish(object, name);
95
+ }
96
+ async function acceptButtonHandler(_event) {
97
+ if (foundName && searchInput.value === foundName.value) { // still
98
+ finish(foundObject, foundName);
99
+ }
100
+ }
101
+ async function cancelButtonHandler(_event) {
102
+ debug.log('Auto complete: Canceled by user! ');
103
+ if (acOptions.permanent) {
104
+ initialize();
105
+ }
106
+ else {
107
+ if (div.parentNode) {
108
+ div.parentNode.removeChild(div);
109
+ }
110
+ }
111
+ }
112
+ function nameMatch(filter, candidate) {
113
+ const parts = filter.split(' '); // Each name part must be somewhere
114
+ for (let j = 0; j < parts.length; j++) {
115
+ const word = parts[j];
116
+ if (candidate.toLowerCase().indexOf(word) < 0)
117
+ return false;
118
+ }
119
+ return true;
120
+ }
121
+ function clearList() {
122
+ while (table.children.length > 1) {
123
+ table.removeChild(table.lastChild);
124
+ }
125
+ }
126
+ async function inputEventHHandler(_event) {
127
+ // console.log('@@ AC inputEventHHandler called')
128
+ setVisible(decoration.cancelButton, true); // only allow cancel when there is something to cancel
129
+ refreshList(); /// @@ debounqce does not work with jest
130
+ /*
131
+ if (runningTimeout) {
132
+ clearTimeout(runningTimeout)
133
+ }
134
+ runningTimeout = setTimeout(refreshList, AUTOCOMPLETE_DEBOUNCE_MS)
135
+ */
136
+ }
137
+ async function loadBindingsAndFilterByLanguage(filter, languagePrefs) {
138
+ // console.log('@@ loadBindingsAndFilterByLanguage ' + filter)
139
+ let bindings;
140
+ try {
141
+ bindings = await (0, publicData_1.queryPublicDataByName)(filter, targetClass, languagePrefs || language_1.defaultPreferredLanguages, acOptions.queryParams);
142
+ }
143
+ catch (err) {
144
+ complain('Error querying db of organizations: ' + err);
145
+ inputEventHandlerLock = false;
146
+ return;
147
+ }
148
+ loadedEnough = bindings.length < publicData_1.AUTOCOMPLETE_LIMIT;
149
+ if (loadedEnough) {
150
+ lastFilter = filter;
151
+ }
152
+ else {
153
+ lastFilter = undefined;
154
+ }
155
+ clearList();
156
+ const slimmed = (0, language_1.filterByLanguage)(bindings, languagePrefs);
157
+ return slimmed;
158
+ }
159
+ function filterByName(filter, bindings) {
160
+ return bindings.filter(binding => nameMatch(filter, binding.name.value));
161
+ }
162
+ async function refreshList() {
163
+ // console.log('@@ refreshList called')
164
+ function rowForBinding(binding) {
165
+ const row = dom.createElement('tr');
166
+ style_1.style.setStyle(row, 'autocompleteRowStyle');
167
+ row.setAttribute('style', 'padding: 0.3em;');
168
+ row.style.color = allDisplayed ? '#080' : '#088'; // green means 'you should find it here'
169
+ row.textContent = binding.name.value;
170
+ const object = (0, publicData_1.bindingToTerm)(binding.subject);
171
+ const nameTerm = (0, publicData_1.bindingToTerm)(binding.name);
172
+ row.addEventListener('click', async (_event) => {
173
+ debug.log(' click row textContent: ' + row.textContent);
174
+ debug.log(' click name: ' + nameTerm.value);
175
+ if (object && nameTerm) {
176
+ gotIt(object, nameTerm);
177
+ }
178
+ });
179
+ return row;
180
+ } // rowForBinding
181
+ function compareBindingsByName(self, other) {
182
+ return other.name.value > self.name.value
183
+ ? 1
184
+ : other.name.name < self.name.value ? -1 : 0;
185
+ }
186
+ if (inputEventHandlerLock) {
187
+ debug.log(`Ignoring "${searchInput.value}" because of lock `);
188
+ return;
189
+ }
190
+ debug.log(`Setting lock at "${searchInput.value}"`);
191
+ inputEventHandlerLock = true;
192
+ const languagePrefs = await (0, language_1.getPreferredLanguages)();
193
+ const filter = searchInput.value.trim().toLowerCase();
194
+ if (filter.length < AUTOCOMPLETE_THRESHOLD) { // too small
195
+ clearList();
196
+ // candidatesLoaded = false
197
+ numberOfRows = AUTOCOMPLETE_ROWS;
198
+ }
199
+ else {
200
+ if (!allDisplayed || !lastFilter || !filter.startsWith(lastFilter)) {
201
+ debug.log(` Querying database at "${filter}" cf last "${lastFilter}".`);
202
+ lastBindings = await loadBindingsAndFilterByLanguage(filter, languagePrefs); // freesh query
203
+ }
204
+ // Trim table as search gets tighter:
205
+ const slimmed = filterByName(filter, lastBindings);
206
+ if (loadedEnough && slimmed.length <= AUTOCOMPLETE_ROWS_STRETCH) {
207
+ numberOfRows = slimmed.length; // stretch if it means we get all items
208
+ }
209
+ allDisplayed = loadedEnough && slimmed.length <= numberOfRows;
210
+ debug.log(` Filter:"${filter}" lastBindings: ${lastBindings.length}, slimmed to ${slimmed.length}; rows: ${numberOfRows}, Enough? ${loadedEnough}, All displayed? ${allDisplayed}`);
211
+ const displayable = slimmed.slice(0, numberOfRows);
212
+ displayable.sort(compareBindingsByName);
213
+ clearList();
214
+ for (const binding of displayable) {
215
+ table.appendChild(rowForBinding(binding));
216
+ }
217
+ if (slimmed.length === 1) {
218
+ gotIt((0, publicData_1.bindingToTerm)(slimmed[0].subject), (0, publicData_1.bindingToTerm)(slimmed[0].name));
219
+ }
220
+ } // else
221
+ inputEventHandlerLock = false;
222
+ } // refreshList
223
+ function initialize() {
224
+ if (acOptions.currentObject) { // If have existing value then jump into the endgame of the autocomplete
225
+ searchInput.value = acOptions.currentName ? acOptions.currentName.value : '??? wot no name for ' + acOptions.currentObject;
226
+ foundName = acOptions.currentName;
227
+ lastFilter = acOptions.currentName ? acOptions.currentName.value : undefined;
228
+ foundObject = acOptions.currentObject;
229
+ }
230
+ else {
231
+ searchInput.value = '';
232
+ lastFilter = undefined;
233
+ foundObject = undefined;
234
+ }
235
+ if (decoration.deleteButton) {
236
+ setVisible(decoration.deleteButton, !!acOptions.currentObject);
237
+ }
238
+ if (decoration.acceptButton) {
239
+ setVisible(decoration.acceptButton, false); // hide until input complete
240
+ }
241
+ if (decoration.editButton) {
242
+ setVisible(decoration.editButton, true);
243
+ }
244
+ if (decoration.cancelButton) {
245
+ setVisible(decoration.cancelButton, false); // only allow cancel when there is something to cancel
246
+ }
247
+ inputEventHandlerLock = false;
248
+ clearList();
249
+ } // initialiize
250
+ // const queryParams: QueryParameters = acOptions.queryParams
251
+ const targetClass = acOptions.targetClass;
252
+ if (!targetClass)
253
+ throw new Error('renderAutoComplete: missing targetClass');
254
+ // console.log(`renderAutoComplete: targetClass=${targetClass}` )
255
+ if (decoration.acceptButton) {
256
+ decoration.acceptButton.addEventListener('click', acceptButtonHandler, false);
257
+ }
258
+ if (decoration.cancelButton) {
259
+ decoration.cancelButton.addEventListener('click', cancelButtonHandler, false);
260
+ }
261
+ // var candidatesLoaded = false
262
+ let lastBindings;
263
+ let loadedEnough = false;
264
+ let inputEventHandlerLock = false;
265
+ let allDisplayed = false;
266
+ let lastFilter = undefined;
267
+ let numberOfRows = AUTOCOMPLETE_ROWS; // this gets slimmed down
268
+ const div = dom.createElement('div');
269
+ let foundName = undefined; // once found accepted string must match this
270
+ let foundObject = undefined;
271
+ const table = div.appendChild(dom.createElement('table'));
272
+ table.setAttribute('data-testid', 'autocomplete-table');
273
+ table.setAttribute('style', 'max-width: 30em; margin: 0.5em;');
274
+ const head = table.appendChild(dom.createElement('tr'));
275
+ style_1.style.setStyle(head, 'autocompleteRowStyle'); // textInputStyle or
276
+ const cell = head.appendChild(dom.createElement('td'));
277
+ const searchInput = cell.appendChild(dom.createElement('input'));
278
+ searchInput.setAttribute('type', 'text');
279
+ initialize();
280
+ const size = acOptions.size || styleConstants_1.default.textInputSize || 20;
281
+ searchInput.setAttribute('size', size);
282
+ searchInput.setAttribute('data-testid', 'autocomplete-input');
283
+ const searchInputStyle = style_1.style.textInputStyle || // searchInputStyle ?
284
+ 'border: 0.1em solid #444; border-radius: 0.5em; width: 100%; font-size: 100%; padding: 0.1em 0.6em'; // @
285
+ searchInput.setAttribute('style', searchInputStyle);
286
+ searchInput.addEventListener('keyup', function (event) {
287
+ if (event.keyCode === 13) {
288
+ acceptButtonHandler(event);
289
+ }
290
+ }, false);
291
+ searchInput.addEventListener('input', inputEventHHandler);
292
+ // console.log('@@ renderAutoComplete returns ' + div.innerHTML)
293
+ return div;
294
+ } // renderAutoComplete
295
+ // ENDS
296
+ //# sourceMappingURL=autocompletePicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autocompletePicker.js","sourceRoot":"","sources":["../../../../src/widgets/forms/autocomplete/autocompletePicker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.defaultPreferredLanguages = exports.languageCodeURIBase = void 0;
40
+ exports.addDefaults = addDefaults;
41
+ exports.getPreferredLanguagesFor = getPreferredLanguagesFor;
42
+ exports.getPreferredLanguages = getPreferredLanguages;
43
+ exports.filterByLanguage = filterByLanguage;
44
+ /* Logic to access public data stores
45
+ *
46
+ * including filtering resut by natural language etc
47
+ * See https://solidos.solidcommunity.net/public/2021/01%20Building%20Solid%20Apps%20which%20use%20Public%20Data.html
48
+ */
49
+ /* eslint-disable no-console */
50
+ const debug = __importStar(require("../../../debug"));
51
+ // import * as logic from '../index'
52
+ // import { authn } from '../../../authn/index'
53
+ const solid_logic_1 = require("solid-logic");
54
+ const ns_1 = __importDefault(require("../../../ns"));
55
+ exports.languageCodeURIBase = 'https://www.w3.org/ns/iana/language-code/'; /// @@ unsupported on the web (2021)
56
+ exports.defaultPreferredLanguages = ['en', 'fr', 'de', 'it', 'ar'];
57
+ function addDefaults(array) {
58
+ if (!array)
59
+ array = [];
60
+ return array.concat(exports.defaultPreferredLanguages.filter(code => !array.includes(code)));
61
+ }
62
+ async function getPreferredLanguagesFor(person) {
63
+ const doc = person.doc();
64
+ await solid_logic_1.store.fetcher?.load(doc);
65
+ const list = solid_logic_1.store.any(person, ns_1.default.schema('knowsLanguage'), null, doc);
66
+ if (!list) {
67
+ // console.log(`User ${person} has not set their languages in their profile.`)
68
+ return exports.defaultPreferredLanguages;
69
+ }
70
+ const languageCodeArray = [];
71
+ list.elements.forEach(item => {
72
+ // console.log('@@ item ' + item)
73
+ const lang = solid_logic_1.store.any(item, ns_1.default.solid('publicId'), null, doc);
74
+ if (!lang) {
75
+ console.warn('getPreferredLanguages: No publiID of language.');
76
+ return;
77
+ }
78
+ if (!lang.value.startsWith(exports.languageCodeURIBase)) {
79
+ console.error(`What should be a language code ${lang.value} does not start with ${exports.languageCodeURIBase}`);
80
+ return;
81
+ }
82
+ const code = lang.value.slice(exports.languageCodeURIBase.length);
83
+ languageCodeArray.push(code);
84
+ });
85
+ if (languageCodeArray.length > 0) {
86
+ console.log(` User knows languages with codes: "${languageCodeArray.join(',')}"`);
87
+ return addDefaults(languageCodeArray);
88
+ }
89
+ return null;
90
+ }
91
+ /* Get the preferred langauges for the user
92
+ *
93
+ * Either from solid preferences or browser preferences or default
94
+ */
95
+ async function getPreferredLanguages() {
96
+ // In future: cache in the login session for speed, but get from profile and private prefs
97
+ // We append the defaults so if someone's first choice is not available they don't get something very obscure
98
+ // See https://github.com/solidos/solidos/issues/42
99
+ const me = await solid_logic_1.authn.currentUser();
100
+ if (me) { // If logged in
101
+ const solidLanguagePrefs = await getPreferredLanguagesFor(me);
102
+ if (solidLanguagePrefs)
103
+ return solidLanguagePrefs;
104
+ }
105
+ if (typeof navigator !== 'undefined') { // use browser settings
106
+ if (navigator.languages) {
107
+ return addDefaults(navigator.languages.map(longForm => longForm.split('-')[0]));
108
+ }
109
+ if (navigator.language) {
110
+ return addDefaults([navigator.language.split('-')[0]]);
111
+ }
112
+ }
113
+ return exports.defaultPreferredLanguages;
114
+ }
115
+ /* From an array of bindings with a names for each row,
116
+ * remove dupliacte names for the same thing, leaving the user's
117
+ * preferred language version
118
+ */
119
+ function filterByLanguage(bindings, languagePrefs) {
120
+ const uris = {};
121
+ bindings.forEach(binding => {
122
+ const uri = binding.subject.value;
123
+ uris[uri] = uris[uri] || [];
124
+ uris[uri].push(binding);
125
+ });
126
+ const languagePrefs2 = languagePrefs || exports.defaultPreferredLanguages;
127
+ languagePrefs2.reverse(); // Preferred last
128
+ const slimmed = [];
129
+ // console.log(` @@ {languagePrefs2 ${languagePrefs2}`)
130
+ for (const u in uris) { // needs hasOwnProperty ?
131
+ const bindings = uris[u];
132
+ const sortMe = bindings.map(binding => {
133
+ const lang = binding.name['xml:lang'];
134
+ const index = languagePrefs2.indexOf(lang);
135
+ const pair = [index, binding];
136
+ // console.log(` @@ lang: ${lang}, index: ${index}`)
137
+ return pair;
138
+ });
139
+ sortMe.sort(); // best at th ebottom
140
+ sortMe.reverse(); // best at the top
141
+ // console.debug('@@ sortMe:', sortMe)
142
+ slimmed.push(sortMe[0][1]);
143
+ } // map u
144
+ debug.log(` Filter by language: ${bindings.length} -> ${slimmed.length}`);
145
+ return slimmed;
146
+ }
147
+ //# sourceMappingURL=language.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"language.js","sourceRoot":"","sources":["../../../../src/widgets/forms/autocomplete/language.ts"],"names":[],"mappings":"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"}