solid-ui 2.6.1 → 3.0.0-63a1640

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 (369) hide show
  1. package/LICENSE.md +3 -1
  2. package/README.md +236 -30
  3. package/dist/acl/access-controller.js +238 -0
  4. package/dist/acl/access-controller.js.map +1 -0
  5. package/{lib → dist}/acl/access-groups.d.ts +2 -2
  6. package/{lib → dist}/acl/access-groups.d.ts.map +1 -1
  7. package/dist/acl/access-groups.js +323 -0
  8. package/dist/acl/access-groups.js.map +1 -0
  9. package/dist/acl/acl-control.js +173 -0
  10. package/dist/acl/acl-control.js.map +1 -0
  11. package/dist/acl/acl.js +495 -0
  12. package/dist/acl/acl.js.map +1 -0
  13. package/dist/acl/add-agent-buttons.js +217 -0
  14. package/dist/acl/add-agent-buttons.js.map +1 -0
  15. package/dist/acl/index.js +32 -0
  16. package/dist/acl/index.js.map +1 -0
  17. package/dist/acl/types.js +6 -0
  18. package/dist/acl/types.js.map +1 -0
  19. package/dist/chat/keys.js +106 -0
  20. package/dist/chat/keys.js.map +1 -0
  21. package/dist/chat/signature.js +63 -0
  22. package/dist/chat/signature.js.map +1 -0
  23. package/dist/create/create.js +249 -0
  24. package/dist/create/create.js.map +1 -0
  25. package/dist/create/index.js +5 -0
  26. package/dist/create/index.js.map +1 -0
  27. package/dist/create/types.js +2 -0
  28. package/dist/create/types.js.map +1 -0
  29. package/dist/debug.d.ts.map +1 -0
  30. package/dist/debug.js +13 -0
  31. package/dist/debug.js.map +1 -0
  32. package/dist/footer/index.js +67 -0
  33. package/dist/footer/index.js.map +1 -0
  34. package/dist/header/empty-profile.js +11 -0
  35. package/dist/header/empty-profile.js.map +1 -0
  36. package/dist/header/index.js +260 -0
  37. package/dist/header/index.js.map +1 -0
  38. package/dist/iconBase.js +37 -0
  39. package/dist/iconBase.js.map +1 -0
  40. package/dist/icons/solid_logo.js.map +1 -0
  41. package/{lib → dist}/index.d.ts +7 -9
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/index.js +102 -0
  44. package/dist/index.js.map +1 -0
  45. package/{lib → dist}/log.d.ts.map +1 -1
  46. package/dist/log.js +182 -0
  47. package/dist/log.js.map +1 -0
  48. package/dist/login/login.js +858 -0
  49. package/dist/login/login.js.map +1 -0
  50. package/dist/matrix/index.js +5 -0
  51. package/dist/matrix/index.js.map +1 -0
  52. package/dist/matrix/matrix.js +217 -0
  53. package/dist/matrix/matrix.js.map +1 -0
  54. package/dist/matrix/types.js +2 -0
  55. package/dist/matrix/types.js.map +1 -0
  56. package/dist/media/index.js +6 -0
  57. package/dist/media/index.js.map +1 -0
  58. package/dist/media/media-capture.js +161 -0
  59. package/dist/media/media-capture.js.map +1 -0
  60. package/dist/pad.js +775 -0
  61. package/dist/pad.js.map +1 -0
  62. package/{lib → dist}/participation.d.ts.map +1 -1
  63. package/dist/participation.js +184 -0
  64. package/dist/participation.js.map +1 -0
  65. package/dist/solid-ui.esm.js +25531 -0
  66. package/dist/solid-ui.esm.js.map +1 -0
  67. package/dist/solid-ui.esm.min.js +43 -0
  68. package/dist/solid-ui.esm.min.js.map +1 -0
  69. package/dist/solid-ui.js +23479 -68931
  70. package/dist/solid-ui.js.map +1 -1
  71. package/dist/solid-ui.min.js +40 -2
  72. package/dist/solid-ui.min.js.map +1 -1
  73. package/dist/tabs.js +388 -0
  74. package/dist/tabs.js.map +1 -0
  75. package/{lib → dist}/utils/headerFooterHelpers.d.ts.map +1 -1
  76. package/dist/utils/headerFooterHelpers.js +114 -0
  77. package/dist/utils/headerFooterHelpers.js.map +1 -0
  78. package/dist/utils/keyHelpers/accessData.js +64 -0
  79. package/dist/utils/keyHelpers/accessData.js.map +1 -0
  80. package/dist/utils/keyHelpers/acl.js +74 -0
  81. package/dist/utils/keyHelpers/acl.js.map +1 -0
  82. package/dist/utils/keyHelpers/otherHelpers.js +13 -0
  83. package/dist/utils/keyHelpers/otherHelpers.js.map +1 -0
  84. package/dist/utils/label.js +111 -0
  85. package/dist/utils/label.js.map +1 -0
  86. package/dist/versionInfo.js +30 -0
  87. package/dist/versionInfo.js.map +1 -0
  88. package/dist/widgets/buttons/iconLinks.js +44 -0
  89. package/dist/widgets/buttons/iconLinks.js.map +1 -0
  90. package/dist/widgets/buttons.js +1280 -0
  91. package/dist/widgets/buttons.js.map +1 -0
  92. package/dist/widgets/error.d.ts +14 -0
  93. package/dist/widgets/error.d.ts.map +1 -0
  94. package/dist/widgets/error.js +35 -0
  95. package/dist/widgets/error.js.map +1 -0
  96. package/dist/widgets/forms/autocomplete/autocompleteBar.js +123 -0
  97. package/dist/widgets/forms/autocomplete/autocompleteBar.js.map +1 -0
  98. package/dist/widgets/forms/autocomplete/autocompleteField.js +199 -0
  99. package/dist/widgets/forms/autocomplete/autocompleteField.js.map +1 -0
  100. package/dist/widgets/forms/autocomplete/autocompletePicker.js +256 -0
  101. package/dist/widgets/forms/autocomplete/autocompletePicker.js.map +1 -0
  102. package/dist/widgets/forms/autocomplete/language.js +104 -0
  103. package/dist/widgets/forms/autocomplete/language.js.map +1 -0
  104. package/dist/widgets/forms/autocomplete/publicData.js +460 -0
  105. package/dist/widgets/forms/autocomplete/publicData.js.map +1 -0
  106. package/dist/widgets/forms/basic.js +241 -0
  107. package/dist/widgets/forms/basic.js.map +1 -0
  108. package/dist/widgets/forms/comment.js +46 -0
  109. package/dist/widgets/forms/comment.js.map +1 -0
  110. package/dist/widgets/forms/fieldFunction.js +44 -0
  111. package/dist/widgets/forms/fieldFunction.js.map +1 -0
  112. package/dist/widgets/forms/fieldParams.js +89 -0
  113. package/dist/widgets/forms/fieldParams.js.map +1 -0
  114. package/{lib → dist}/widgets/forms/formStyle.d.ts.map +1 -1
  115. package/dist/widgets/forms/formStyle.js +36 -0
  116. package/dist/widgets/forms/formStyle.js.map +1 -0
  117. package/{lib → dist}/widgets/widgetHelpers.d.ts.map +1 -1
  118. package/{lib → dist}/widgets/widgetHelpers.js +14 -25
  119. package/dist/widgets/widgetHelpers.js.map +1 -0
  120. package/package.json +48 -52
  121. package/dist/789.solid-ui.min.js +0 -1
  122. package/dist/841.solid-ui.min.js +0 -3
  123. package/dist/841.solid-ui.min.js.LICENSE.txt +0 -58
  124. package/dist/841.solid-ui.min.js.map +0 -1
  125. package/dist/_2b19.solid-ui.js +0 -14
  126. package/dist/_2b19.solid-ui.js.map +0 -1
  127. package/dist/index.html +0 -1
  128. package/dist/solid-ui.min.js.LICENSE.txt +0 -57
  129. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js +0 -12247
  130. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js.map +0 -1
  131. package/lib/acl/access-controller.js +0 -391
  132. package/lib/acl/access-controller.js.map +0 -1
  133. package/lib/acl/access-groups.js +0 -507
  134. package/lib/acl/access-groups.js.map +0 -1
  135. package/lib/acl/acl-control.js +0 -237
  136. package/lib/acl/acl-control.js.map +0 -1
  137. package/lib/acl/acl.js +0 -517
  138. package/lib/acl/acl.js.map +0 -1
  139. package/lib/acl/add-agent-buttons.js +0 -434
  140. package/lib/acl/add-agent-buttons.js.map +0 -1
  141. package/lib/acl/index.js +0 -39
  142. package/lib/acl/index.js.map +0 -1
  143. package/lib/acl/types.js +0 -6
  144. package/lib/acl/types.js.map +0 -1
  145. package/lib/chat/bookmarks.js +0 -303
  146. package/lib/chat/bookmarks.js.map +0 -1
  147. package/lib/chat/chatLogic.js +0 -420
  148. package/lib/chat/chatLogic.js.map +0 -1
  149. package/lib/chat/dateFolder.js +0 -328
  150. package/lib/chat/dateFolder.js.map +0 -1
  151. package/lib/chat/infinite.js +0 -994
  152. package/lib/chat/infinite.js.map +0 -1
  153. package/lib/chat/keys.js +0 -232
  154. package/lib/chat/keys.js.map +0 -1
  155. package/lib/chat/message.js +0 -715
  156. package/lib/chat/message.js.map +0 -1
  157. package/lib/chat/messageTools.js +0 -538
  158. package/lib/chat/messageTools.js.map +0 -1
  159. package/lib/chat/signature.js +0 -109
  160. package/lib/chat/signature.js.map +0 -1
  161. package/lib/chat/thread.js +0 -535
  162. package/lib/chat/thread.js.map +0 -1
  163. package/lib/create/create.js +0 -242
  164. package/lib/create/create.js.map +0 -1
  165. package/lib/create/index.js +0 -11
  166. package/lib/create/index.js.map +0 -1
  167. package/lib/create/types.js +0 -6
  168. package/lib/create/types.js.map +0 -1
  169. package/lib/debug.d.ts.map +0 -1
  170. package/lib/debug.js +0 -30
  171. package/lib/debug.js.map +0 -1
  172. package/lib/folders.js +0 -132
  173. package/lib/folders.js.map +0 -1
  174. package/lib/footer/index.js +0 -123
  175. package/lib/footer/index.js.map +0 -1
  176. package/lib/header/empty-profile.js +0 -8
  177. package/lib/header/empty-profile.js.map +0 -1
  178. package/lib/header/index.js +0 -375
  179. package/lib/header/index.js.map +0 -1
  180. package/lib/iconBase.js +0 -44
  181. package/lib/iconBase.js.map +0 -1
  182. package/lib/icons/solid_logo.js.map +0 -1
  183. package/lib/index.d.ts.map +0 -1
  184. package/lib/index.js +0 -223
  185. package/lib/index.js.map +0 -1
  186. package/lib/log.js +0 -213
  187. package/lib/log.js.map +0 -1
  188. package/lib/login/login.js +0 -1241
  189. package/lib/login/login.js.map +0 -1
  190. package/lib/matrix/index.js +0 -11
  191. package/lib/matrix/index.js.map +0 -1
  192. package/lib/matrix/matrix.js +0 -216
  193. package/lib/matrix/matrix.js.map +0 -1
  194. package/lib/matrix/types.js +0 -6
  195. package/lib/matrix/types.js.map +0 -1
  196. package/lib/media/index.js +0 -12
  197. package/lib/media/index.js.map +0 -1
  198. package/lib/media/media-capture.js +0 -194
  199. package/lib/media/media-capture.js.map +0 -1
  200. package/lib/messageArea.js +0 -319
  201. package/lib/messageArea.js.map +0 -1
  202. package/lib/noun_Camera_1618446_000000.js +0 -8
  203. package/lib/noun_Camera_1618446_000000.js.map +0 -1
  204. package/lib/ns.js +0 -17
  205. package/lib/ns.js.map +0 -1
  206. package/lib/pad.js +0 -805
  207. package/lib/pad.js.map +0 -1
  208. package/lib/participation.js +0 -219
  209. package/lib/participation.js.map +0 -1
  210. package/lib/preferences.js +0 -215
  211. package/lib/preferences.js.map +0 -1
  212. package/lib/signup/config-default.js +0 -43
  213. package/lib/signup/config-default.js.map +0 -1
  214. package/lib/signup/signup.js +0 -74
  215. package/lib/signup/signup.js.map +0 -1
  216. package/lib/stories/decorators.js +0 -10
  217. package/lib/stories/decorators.js.map +0 -1
  218. package/lib/style.js +0 -158
  219. package/lib/style.js.map +0 -1
  220. package/lib/styleConstants.js +0 -35
  221. package/lib/styleConstants.js.map +0 -1
  222. package/lib/style_multiSelect.js +0 -62
  223. package/lib/style_multiSelect.js.map +0 -1
  224. package/lib/table.js +0 -1573
  225. package/lib/table.js.map +0 -1
  226. package/lib/tabs.js +0 -448
  227. package/lib/tabs.js.map +0 -1
  228. package/lib/typings.d.js +0 -2
  229. package/lib/typings.d.js.map +0 -1
  230. package/lib/utils/headerFooterHelpers.js +0 -165
  231. package/lib/utils/headerFooterHelpers.js.map +0 -1
  232. package/lib/utils/index.js +0 -527
  233. package/lib/utils/index.js.map +0 -1
  234. package/lib/utils/keyHelpers/accessData.js +0 -131
  235. package/lib/utils/keyHelpers/accessData.js.map +0 -1
  236. package/lib/utils/keyHelpers/acl.js +0 -90
  237. package/lib/utils/keyHelpers/acl.js.map +0 -1
  238. package/lib/utils/keyHelpers/otherHelpers.js +0 -21
  239. package/lib/utils/keyHelpers/otherHelpers.js.map +0 -1
  240. package/lib/utils/label.js +0 -103
  241. package/lib/utils/label.js.map +0 -1
  242. package/lib/versionInfo.d.ts +0 -32
  243. package/lib/versionInfo.d.ts.map +0 -1
  244. package/lib/versionInfo.js +0 -37
  245. package/lib/versionInfo.js.map +0 -1
  246. package/lib/widgets/buttons/iconLinks.js +0 -53
  247. package/lib/widgets/buttons/iconLinks.js.map +0 -1
  248. package/lib/widgets/buttons.js +0 -1306
  249. package/lib/widgets/buttons.js.map +0 -1
  250. package/lib/widgets/dragAndDrop.js +0 -194
  251. package/lib/widgets/dragAndDrop.js.map +0 -1
  252. package/lib/widgets/error.d.ts +0 -2
  253. package/lib/widgets/error.d.ts.map +0 -1
  254. package/lib/widgets/error.js +0 -46
  255. package/lib/widgets/error.js.map +0 -1
  256. package/lib/widgets/forms/autocomplete/autocompleteBar.js +0 -271
  257. package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +0 -1
  258. package/lib/widgets/forms/autocomplete/autocompleteField.js +0 -258
  259. package/lib/widgets/forms/autocomplete/autocompleteField.js.map +0 -1
  260. package/lib/widgets/forms/autocomplete/autocompletePicker.js +0 -436
  261. package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +0 -1
  262. package/lib/widgets/forms/autocomplete/language.js +0 -189
  263. package/lib/widgets/forms/autocomplete/language.js.map +0 -1
  264. package/lib/widgets/forms/autocomplete/publicData.js +0 -636
  265. package/lib/widgets/forms/autocomplete/publicData.js.map +0 -1
  266. package/lib/widgets/forms/basic.js +0 -254
  267. package/lib/widgets/forms/basic.js.map +0 -1
  268. package/lib/widgets/forms/comment.js +0 -54
  269. package/lib/widgets/forms/comment.js.map +0 -1
  270. package/lib/widgets/forms/fieldFunction.js +0 -52
  271. package/lib/widgets/forms/fieldFunction.js.map +0 -1
  272. package/lib/widgets/forms/fieldParams.js +0 -77
  273. package/lib/widgets/forms/fieldParams.js.map +0 -1
  274. package/lib/widgets/forms/formStyle.js +0 -44
  275. package/lib/widgets/forms/formStyle.js.map +0 -1
  276. package/lib/widgets/forms.js +0 -2045
  277. package/lib/widgets/forms.js.map +0 -1
  278. package/lib/widgets/index.js +0 -110
  279. package/lib/widgets/index.js.map +0 -1
  280. package/lib/widgets/multiSelect.js +0 -658
  281. package/lib/widgets/multiSelect.js.map +0 -1
  282. package/lib/widgets/peoplePicker.js +0 -467
  283. package/lib/widgets/peoplePicker.js.map +0 -1
  284. package/lib/widgets/widgetHelpers.js.map +0 -1
  285. /package/{lib → dist}/acl/access-controller.d.ts +0 -0
  286. /package/{lib → dist}/acl/access-controller.d.ts.map +0 -0
  287. /package/{lib → dist}/acl/acl-control.d.ts +0 -0
  288. /package/{lib → dist}/acl/acl-control.d.ts.map +0 -0
  289. /package/{lib → dist}/acl/acl.d.ts +0 -0
  290. /package/{lib → dist}/acl/acl.d.ts.map +0 -0
  291. /package/{lib → dist}/acl/add-agent-buttons.d.ts +0 -0
  292. /package/{lib → dist}/acl/add-agent-buttons.d.ts.map +0 -0
  293. /package/{lib → dist}/acl/index.d.ts +0 -0
  294. /package/{lib → dist}/acl/index.d.ts.map +0 -0
  295. /package/{lib → dist}/acl/types.d.ts +0 -0
  296. /package/{lib → dist}/acl/types.d.ts.map +0 -0
  297. /package/{lib → dist}/chat/keys.d.ts +0 -0
  298. /package/{lib → dist}/chat/keys.d.ts.map +0 -0
  299. /package/{lib → dist}/chat/signature.d.ts +0 -0
  300. /package/{lib → dist}/chat/signature.d.ts.map +0 -0
  301. /package/{lib → dist}/create/create.d.ts +0 -0
  302. /package/{lib → dist}/create/create.d.ts.map +0 -0
  303. /package/{lib → dist}/create/index.d.ts +0 -0
  304. /package/{lib → dist}/create/index.d.ts.map +0 -0
  305. /package/{lib → dist}/create/types.d.ts +0 -0
  306. /package/{lib → dist}/create/types.d.ts.map +0 -0
  307. /package/{lib → dist}/debug.d.ts +0 -0
  308. /package/{lib → dist}/footer/index.d.ts +0 -0
  309. /package/{lib → dist}/footer/index.d.ts.map +0 -0
  310. /package/{lib → dist}/header/empty-profile.d.ts +0 -0
  311. /package/{lib → dist}/header/empty-profile.d.ts.map +0 -0
  312. /package/{lib → dist}/header/index.d.ts +0 -0
  313. /package/{lib → dist}/header/index.d.ts.map +0 -0
  314. /package/{lib → dist}/iconBase.d.ts +0 -0
  315. /package/{lib → dist}/iconBase.d.ts.map +0 -0
  316. /package/{lib → dist}/icons/solid_logo.d.ts +0 -0
  317. /package/{lib → dist}/icons/solid_logo.d.ts.map +0 -0
  318. /package/{lib → dist}/icons/solid_logo.js +0 -0
  319. /package/{lib → dist}/log.d.ts +0 -0
  320. /package/{lib → dist}/login/login.d.ts +0 -0
  321. /package/{lib → dist}/login/login.d.ts.map +0 -0
  322. /package/{lib → dist}/matrix/index.d.ts +0 -0
  323. /package/{lib → dist}/matrix/index.d.ts.map +0 -0
  324. /package/{lib → dist}/matrix/matrix.d.ts +0 -0
  325. /package/{lib → dist}/matrix/matrix.d.ts.map +0 -0
  326. /package/{lib → dist}/matrix/types.d.ts +0 -0
  327. /package/{lib → dist}/matrix/types.d.ts.map +0 -0
  328. /package/{lib → dist}/media/index.d.ts +0 -0
  329. /package/{lib → dist}/media/index.d.ts.map +0 -0
  330. /package/{lib → dist}/media/media-capture.d.ts +0 -0
  331. /package/{lib → dist}/media/media-capture.d.ts.map +0 -0
  332. /package/{lib → dist}/pad.d.ts +0 -0
  333. /package/{lib → dist}/pad.d.ts.map +0 -0
  334. /package/{lib → dist}/participation.d.ts +0 -0
  335. /package/{lib → dist}/tabs.d.ts +0 -0
  336. /package/{lib → dist}/tabs.d.ts.map +0 -0
  337. /package/{lib → dist}/utils/headerFooterHelpers.d.ts +0 -0
  338. /package/{lib → dist}/utils/keyHelpers/accessData.d.ts +0 -0
  339. /package/{lib → dist}/utils/keyHelpers/accessData.d.ts.map +0 -0
  340. /package/{lib → dist}/utils/keyHelpers/acl.d.ts +0 -0
  341. /package/{lib → dist}/utils/keyHelpers/acl.d.ts.map +0 -0
  342. /package/{lib → dist}/utils/keyHelpers/otherHelpers.d.ts +0 -0
  343. /package/{lib → dist}/utils/keyHelpers/otherHelpers.d.ts.map +0 -0
  344. /package/{lib → dist}/utils/label.d.ts +0 -0
  345. /package/{lib → dist}/utils/label.d.ts.map +0 -0
  346. /package/{lib → dist}/widgets/buttons/iconLinks.d.ts +0 -0
  347. /package/{lib → dist}/widgets/buttons/iconLinks.d.ts.map +0 -0
  348. /package/{lib → dist}/widgets/buttons.d.ts +0 -0
  349. /package/{lib → dist}/widgets/buttons.d.ts.map +0 -0
  350. /package/{lib → dist}/widgets/forms/autocomplete/autocompleteBar.d.ts +0 -0
  351. /package/{lib → dist}/widgets/forms/autocomplete/autocompleteBar.d.ts.map +0 -0
  352. /package/{lib → dist}/widgets/forms/autocomplete/autocompleteField.d.ts +0 -0
  353. /package/{lib → dist}/widgets/forms/autocomplete/autocompleteField.d.ts.map +0 -0
  354. /package/{lib → dist}/widgets/forms/autocomplete/autocompletePicker.d.ts +0 -0
  355. /package/{lib → dist}/widgets/forms/autocomplete/autocompletePicker.d.ts.map +0 -0
  356. /package/{lib → dist}/widgets/forms/autocomplete/language.d.ts +0 -0
  357. /package/{lib → dist}/widgets/forms/autocomplete/language.d.ts.map +0 -0
  358. /package/{lib → dist}/widgets/forms/autocomplete/publicData.d.ts +0 -0
  359. /package/{lib → dist}/widgets/forms/autocomplete/publicData.d.ts.map +0 -0
  360. /package/{lib → dist}/widgets/forms/basic.d.ts +0 -0
  361. /package/{lib → dist}/widgets/forms/basic.d.ts.map +0 -0
  362. /package/{lib → dist}/widgets/forms/comment.d.ts +0 -0
  363. /package/{lib → dist}/widgets/forms/comment.d.ts.map +0 -0
  364. /package/{lib → dist}/widgets/forms/fieldFunction.d.ts +0 -0
  365. /package/{lib → dist}/widgets/forms/fieldFunction.d.ts.map +0 -0
  366. /package/{lib → dist}/widgets/forms/fieldParams.d.ts +0 -0
  367. /package/{lib → dist}/widgets/forms/fieldParams.d.ts.map +0 -0
  368. /package/{lib → dist}/widgets/forms/formStyle.d.ts +0 -0
  369. /package/{lib → dist}/widgets/widgetHelpers.d.ts +0 -0
package/lib/pad.js DELETED
@@ -1,805 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.getChunks = getChunks;
9
- exports.lightColorHash = lightColorHash;
10
- Object.defineProperty(exports, "manageParticipation", {
11
- enumerable: true,
12
- get: function get() {
13
- return _participation.manageParticipation;
14
- }
15
- });
16
- exports.notepad = notepad;
17
- exports.notepadToHTML = notepadToHTML;
18
- Object.defineProperty(exports, "participationObject", {
19
- enumerable: true,
20
- get: function get() {
21
- return _participation.participationObject;
22
- }
23
- });
24
- Object.defineProperty(exports, "recordParticipation", {
25
- enumerable: true,
26
- get: function get() {
27
- return _participation.recordParticipation;
28
- }
29
- });
30
- Object.defineProperty(exports, "renderParticipants", {
31
- enumerable: true,
32
- get: function get() {
33
- return _participation.renderParticipants;
34
- }
35
- });
36
- exports.xmlEncode = xmlEncode;
37
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
38
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
39
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
40
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
41
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
42
- var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
43
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
44
- var ns = _interopRequireWildcard(require("./ns"));
45
- var _rdflib = require("rdflib");
46
- var _widgets = require("./widgets");
47
- var _utils = require("./utils");
48
- var _debug = require("./debug");
49
- var _solidLogic = require("solid-logic");
50
- var style = _interopRequireWildcard(require("./style"));
51
- var _participation = require("./participation");
52
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
53
- function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
54
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /** **************
55
- * Notepad Widget
56
- */ /** @module pad
57
- */
58
- var store = _solidLogic.solidLogicSingleton.store;
59
- var PAD = (0, _rdflib.Namespace)('http://www.w3.org/ns/pim/pad#');
60
- /**
61
- * @ignore
62
- */
63
- var NotepadElement = /*#__PURE__*/function (_HTMLElement) {
64
- function NotepadElement() {
65
- var _this;
66
- (0, _classCallCheck2["default"])(this, NotepadElement);
67
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
68
- args[_key] = arguments[_key];
69
- }
70
- _this = _callSuper(this, NotepadElement, [].concat(args));
71
- (0, _defineProperty2["default"])(_this, "subject", void 0);
72
- return _this;
73
- }
74
- (0, _inherits2["default"])(NotepadElement, _HTMLElement);
75
- return (0, _createClass2["default"])(NotepadElement);
76
- }(/*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
77
- /**
78
- * @ignore
79
- */
80
- var NotepadPart = /*#__PURE__*/function (_HTMLElement2) {
81
- function NotepadPart() {
82
- var _this2;
83
- (0, _classCallCheck2["default"])(this, NotepadPart);
84
- for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
85
- args[_key2] = arguments[_key2];
86
- }
87
- _this2 = _callSuper(this, NotepadPart, [].concat(args));
88
- (0, _defineProperty2["default"])(_this2, "subject", void 0);
89
- (0, _defineProperty2["default"])(_this2, "value", void 0);
90
- (0, _defineProperty2["default"])(_this2, "state", void 0);
91
- (0, _defineProperty2["default"])(_this2, "lastSent", void 0);
92
- return _this2;
93
- }
94
- (0, _inherits2["default"])(NotepadPart, _HTMLElement2);
95
- return (0, _createClass2["default"])(NotepadPart);
96
- }(/*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
97
- /** Figure out a random color from my webid
98
- *
99
- * @param {NamedNode} author - The author of text being displayed
100
- * @returns {String} The CSS color generated, constrained to be light for a background color
101
- */
102
- function lightColorHash(author) {
103
- var hash = function hash(x) {
104
- return x.split('').reduce(function (a, b) {
105
- a = (a << 5) - a + b.charCodeAt(0);
106
- return a & a;
107
- }, 0);
108
- };
109
- return author && author.uri ? '#' + (hash(author.uri) & 0xffffff | 0xc0c0c0).toString(16) : '#ffffff'; // c0c0c0 forces pale
110
- } // no id -> white
111
-
112
- /** notepad
113
- *
114
- * @param {HTMLDocument} dom - the web page of the browser
115
- * @param {NamedNode} padDoc - the document in which the participation should be shown
116
- * @param {NamedNode} subject - the thing in which participation is happening
117
- * @param {NamedNode} me - person who is logged into the pod
118
- * @param {notepadOptions} options - the options that can be passed in consist of statusArea, exists
119
- */
120
- function notepad(dom, padDoc, subject, me, options) {
121
- options = options || {};
122
- var exists = options.exists;
123
- var table = dom.createElement('table');
124
- var kb = store;
125
- if (me && !me.uri) throw new Error('UI.pad.notepad: Invalid userid');
126
- var updater = store.updater;
127
- var PAD = (0, _rdflib.Namespace)('http://www.w3.org/ns/pim/pad#');
128
- table.setAttribute('style', style.notepadStyle);
129
- var upstreamStatus = null;
130
- var downstreamStatus = null;
131
- if (options.statusArea) {
132
- var t = options.statusArea.appendChild(dom.createElement('table'));
133
- var tr = t.appendChild(dom.createElement('tr'));
134
- upstreamStatus = tr.appendChild(dom.createElement('td'));
135
- downstreamStatus = tr.appendChild(dom.createElement('td'));
136
- if (upstreamStatus) {
137
- upstreamStatus.setAttribute('style', style.upstreamStatus);
138
- }
139
- if (downstreamStatus) {
140
- downstreamStatus.setAttribute('style', style.downstreamStatus);
141
- }
142
- }
143
- /* @@ TODO want to look into this, it seems upstream should be a boolean and default to false ?
144
- *
145
- */
146
- var complain = function complain(message) {
147
- var upstream = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
148
- (0, _debug.log)(message);
149
- if (options.statusArea) {
150
- ;
151
- (upstream ? upstreamStatus : downstreamStatus).appendChild((0, _widgets.errorMessageBlock)(dom, message, 'pink'));
152
- }
153
- };
154
- // @@ TODO need to refactor so that we don't have to type cast
155
- var clearStatus = function clearStatus(_upsteam) {
156
- if (options.statusArea) {
157
- options.statusArea.innerHTML = '';
158
- }
159
- };
160
- var setPartStyle = function setPartStyle(part, colors, pending) {
161
- var chunk = part.subject;
162
- colors = colors || '';
163
- var baseStyle = style.baseStyle;
164
- var headingCore = style.headingCore;
165
- var headingStyle = style.headingStyle;
166
- var author = kb.any(chunk, ns.dc('author'));
167
- if (!colors && author) {
168
- // Hash the user webid for now -- later allow user selection!
169
- var bgcolor = lightColorHash(author);
170
- colors = 'color: ' + (pending ? '#888' : 'black') + '; background-color: ' + bgcolor + ';';
171
- }
172
-
173
- // @@ TODO Need to research when this can be an object with the indent stored in value
174
- // and when the indent is stored as a Number itself, not in an object.
175
- var indent = kb.any(chunk, PAD('indent'));
176
- indent = indent ? indent.value : 0;
177
- var localStyle = indent >= 0 ? baseStyle + 'text-indent: ' + indent * 3 + 'em;' : headingCore + headingStyle[-1 - indent];
178
- // ? baseStyle + 'padding-left: ' + (indent * 3) + 'em;'
179
- part.setAttribute('style', localStyle + colors);
180
- };
181
- var removePart = function removePart(part) {
182
- var chunk = part.subject;
183
- if (!chunk) throw new Error('No chunk for line to be deleted!'); // just in case
184
- var prev = kb.any(undefined, PAD('next'), chunk);
185
- var next = kb.any(chunk, PAD('next'));
186
- if (prev.sameTerm(subject) && next.sameTerm(subject)) {
187
- // Last one
188
- (0, _debug.log)("You can't delete the only line.");
189
- return;
190
- }
191
- var del = kb.statementsMatching(chunk, undefined, undefined, padDoc).concat(kb.statementsMatching(undefined, undefined, chunk, padDoc));
192
- var ins = [(0, _rdflib.st)(prev, PAD('next'), next, padDoc)];
193
-
194
- // @@ TODO what should we do if chunk is not a NamedNode should we
195
- // assume then it is a string?
196
- if (chunk instanceof _rdflib.NamedNode) {
197
- var label = chunk.uri.slice(-4);
198
- (0, _debug.log)('Deleting line ' + label);
199
- }
200
- if (!updater) {
201
- throw new Error('have no updater');
202
- }
203
- // @@ TODO below you can see that before is redefined and not a boolean
204
- updater.update(del, ins, function (uri, ok, errorMessage, response) {
205
- if (ok) {
206
- var row = part.parentNode;
207
- if (row) {
208
- var before = row.previousSibling;
209
- if (row.parentNode) {
210
- row.parentNode.removeChild(row);
211
- }
212
- // console.log(' deleted line ' + label + ' ok ' + part.value)
213
- if (before && before.firstChild) {
214
- // @@ TODO IMPORTANT FOCUS ISN'T A PROPERTY ON A CHILDNODE
215
- before.firstChild.focus();
216
- }
217
- }
218
- } else if (response && response.status === 409) {
219
- // Conflict
220
- setPartStyle(part, 'color: black; background-color: #ffd;'); // yellow
221
- part.state = 0; // Needs downstream refresh
222
- (0, _utils.beep)(0.5, 512); // Ooops clash with other person
223
- setTimeout(function () {
224
- // Ideally, beep! @@
225
- reloadAndSync(); // Throw away our changes and
226
- // updater.requestDownstreamAction(padDoc, reloadAndSync)
227
- }, 1000);
228
- } else {
229
- (0, _debug.log)(' removePart FAILED ' + chunk + ': ' + errorMessage);
230
- (0, _debug.log)(" removePart was deleteing :'" + del);
231
- setPartStyle(part, 'color: black; background-color: #fdd;'); // failed
232
- var res = response ? response.status : ' [no response field] ';
233
- complain('Error ' + res + ' saving changes: ' + errorMessage["true"]); // upstream,
234
- // updater.requestDownstreamAction(padDoc, reloadAndSync);
235
- }
236
- });
237
- }; // removePart
238
-
239
- var changeIndent = function changeIndent(part, chunk, delta) {
240
- var del = kb.statementsMatching(chunk, PAD('indent'));
241
- var current = del.length ? Number(del[0].object.value) : 0;
242
- if (current + delta < -3) return; // limit negative indent
243
- var newIndent = current + delta;
244
- var ins = (0, _rdflib.st)(chunk, PAD('indent'), newIndent, padDoc);
245
- if (!updater) {
246
- throw new Error('no updater');
247
- }
248
- updater.update(del, ins, function (uri, ok, errorBody) {
249
- if (!ok) {
250
- (0, _debug.log)("Indent change FAILED '" + newIndent + "' for " + padDoc + ': ' + errorBody);
251
- setPartStyle(part, 'color: black; background-color: #fdd;'); // failed
252
- updater.requestDownstreamAction(padDoc, reloadAndSync);
253
- } else {
254
- setPartStyle(part); // Implement the indent
255
- }
256
- });
257
- };
258
- var addListeners = function addListeners(part, chunk) {
259
- part.addEventListener('keydown', function (event) {
260
- if (!updater) {
261
- throw new Error('no updater');
262
- }
263
- var queueProperty, queue;
264
- // up 38; down 40; left 37; right 39 tab 9; shift 16; escape 27
265
- switch (event.keyCode) {
266
- case 13:
267
- // Return
268
- {
269
- var before = event.shiftKey;
270
- (0, _debug.log)('enter'); // Shift-return inserts before -- only way to add to top of pad.
271
- if (before) {
272
- queue = kb.any(undefined, PAD('next'), chunk);
273
- queueProperty = 'newlinesAfter';
274
- } else {
275
- queue = kb.any(chunk, PAD('next'));
276
- queueProperty = 'newlinesBefore';
277
- }
278
- queue[queueProperty] = queue[queueProperty] || 0;
279
- queue[queueProperty] += 1;
280
- if (queue[queueProperty] > 1) {
281
- (0, _debug.log)(' queueing newline queue = ' + queue[queueProperty]);
282
- return;
283
- }
284
- (0, _debug.log)(' go ahead line before ' + queue[queueProperty]);
285
- _newChunk(part, before); // was document.activeElement
286
- break;
287
- }
288
- case 8:
289
- // Delete
290
- if (part.value.length === 0) {
291
- (0, _debug.log)('Delete key line ' + chunk.uri.slice(-4) + ' state ' + part.state);
292
- switch (part.state) {
293
- case 1: // contents being sent
294
- case 2:
295
- // contents need to be sent again
296
- part.state = 4; // delete me
297
- return;
298
- case 3: // already being deleted
299
- case 4:
300
- // already deleted state
301
- return;
302
- case undefined:
303
- case 0:
304
- part.state = 3; // being deleted
305
- removePart(part);
306
- event.preventDefault();
307
- break;
308
- // continue
309
- default:
310
- throw new Error('pad: Unexpected state ' + part);
311
- }
312
- }
313
- break;
314
- case 9:
315
- // Tab
316
- {
317
- var delta = event.shiftKey ? -1 : 1;
318
- changeIndent(part, chunk, delta);
319
- event.preventDefault(); // default is to highlight next field
320
- break;
321
- }
322
- case 27:
323
- // ESC
324
- (0, _debug.log)('escape');
325
- updater.requestDownstreamAction(padDoc, reloadAndSync);
326
- event.preventDefault();
327
- break;
328
- case 38:
329
- // Up
330
- if (part.parentNode.previousSibling) {
331
- part.parentNode.previousSibling.firstChild.focus();
332
- event.preventDefault();
333
- }
334
- break;
335
- case 40:
336
- // Down
337
- if (part.parentNode.nextSibling) {
338
- part.parentNode.nextSibling.firstChild.focus();
339
- event.preventDefault();
340
- }
341
- break;
342
- default:
343
- }
344
- });
345
- var _updateStore = function updateStore(part) {
346
- var chunk = part.subject;
347
- setPartStyle(part, undefined, true);
348
- var old = kb.any(chunk, ns.sioc('content')).value;
349
- var del = [(0, _rdflib.st)(chunk, ns.sioc('content'), old, padDoc)];
350
- var ins;
351
- if (part.value) {
352
- ins = [(0, _rdflib.st)(chunk, ns.sioc('content'), part.value, padDoc)];
353
- }
354
- var newOne = part.value;
355
-
356
- // DEBUGGING ONLY
357
- if (part.lastSent) {
358
- if (old !== part.lastSent) {
359
- throw new Error("Out of order, last sent expected '" + old + "' but found '" + part.lastSent + "'");
360
- }
361
- }
362
- part.lastSent = newOne;
363
-
364
- /* console.log(
365
- ' Patch proposed to ' +
366
- chunk.uri.slice(-4) +
367
- " '" +
368
- old +
369
- "' -> '" +
370
- newOne +
371
- "' "
372
- ) */
373
- if (!updater) {
374
- throw new Error('no updater');
375
- }
376
- updater.update(del, ins, function (uri, ok, errorBody, xhr) {
377
- if (!ok) {
378
- // alert("clash " + errorBody);
379
- (0, _debug.log)(' patch FAILED ' + xhr.status + " for '" + old + "' -> '" + newOne + "': " + errorBody);
380
- if (xhr.status === 409) {
381
- // Conflict - @@ we assume someone else
382
- setPartStyle(part, 'color: black; background-color: #fdd;');
383
- part.state = 0; // Needs downstream refresh
384
- (0, _utils.beep)(0.5, 512); // Ooops clash with other person
385
- setTimeout(function () {
386
- updater.requestDownstreamAction(padDoc, reloadAndSync);
387
- }, 1000);
388
- } else {
389
- setPartStyle(part, 'color: black; background-color: #fdd;'); // failed pink
390
- part.state = 0;
391
- complain(' Error ' + xhr.status + ' sending data: ' + errorBody, true);
392
- (0, _utils.beep)(1.0, 128); // Other
393
- // @@@ Do soemthing more serious with other errors eg auth, etc
394
- }
395
- } else {
396
- clearStatus(true); // upstream
397
- setPartStyle(part); // synced
398
- (0, _debug.log)(" Patch ok '" + old + "' -> '" + newOne + "' ");
399
- if (part.state === 4) {
400
- // delete me
401
- part.state = 3;
402
- removePart(part);
403
- } else if (part.state === 3) {
404
- // being deleted
405
- // pass
406
- } else if (part.state === 2) {
407
- part.state = 1; // pending: lock
408
- _updateStore(part);
409
- } else {
410
- part.state = 0; // clear lock
411
- }
412
- }
413
- });
414
- };
415
- part.addEventListener('input', function inputChangeListener(_event) {
416
- // debug.log("input changed "+part.value);
417
- setPartStyle(part, undefined, true); // grey out - not synced
418
- (0, _debug.log)('Input event state ' + part.state + " value '" + part.value + "'");
419
- switch (part.state) {
420
- case 3:
421
- // being deleted
422
- return;
423
- case 4:
424
- // needs to be deleted
425
- return;
426
- case 2:
427
- // needs content updating, we know
428
- return;
429
- case 1:
430
- part.state = 2; // lag we need another patch
431
- return;
432
- case 0:
433
- case undefined:
434
- part.state = 1; // being upadted
435
- _updateStore(part);
436
- }
437
- }); // listener
438
- }; // addlisteners
439
-
440
- // @@ TODO Need to research before as it appears to be used as an Element and a boolean
441
- var newPartAfter = function newPartAfter(tr1, chunk, before) {
442
- // @@ take chunk and add listeners
443
- var text = kb.any(chunk, ns.sioc('content'));
444
- text = text ? text.value : '';
445
- var tr = dom.createElement('tr');
446
- if (before) {
447
- table.insertBefore(tr, tr1);
448
- } else {
449
- // after
450
- if (tr1 && tr1.nextSibling) {
451
- table.insertBefore(tr, tr1.nextSibling);
452
- } else {
453
- table.appendChild(tr);
454
- }
455
- }
456
- var part = tr.appendChild(dom.createElement('input'));
457
- part.subject = chunk;
458
- part.setAttribute('type', 'text');
459
- part.value = text;
460
- if (me) {
461
- setPartStyle(part, '');
462
- addListeners(part, chunk);
463
- } else {
464
- setPartStyle(part, 'color: #222; background-color: #fff');
465
- (0, _debug.log)("Note can't add listeners - not logged in");
466
- }
467
- return part;
468
- };
469
-
470
- /* @@ TODO we need to look at indent, it can be a Number or an Object this doesn't seem correct.
471
- */
472
- var _newChunk = function newChunk(ele, before) {
473
- // element of chunk being split
474
- var kb = store;
475
- var indent = 0;
476
- var queueProperty = null;
477
- var here, prev, next, queue, tr1;
478
- if (ele) {
479
- if (ele.tagName.toLowerCase() !== 'input') {
480
- (0, _debug.log)('return pressed when current document is: ' + ele.tagName);
481
- }
482
- here = ele.subject;
483
- indent = kb.any(here, PAD('indent'));
484
- indent = indent ? Number(indent.value) : 0;
485
- if (before) {
486
- prev = kb.any(undefined, PAD('next'), here);
487
- next = here;
488
- queue = prev;
489
- queueProperty = 'newlinesAfter';
490
- } else {
491
- prev = here;
492
- next = kb.any(here, PAD('next'));
493
- queue = next;
494
- queueProperty = 'newlinesBefore';
495
- }
496
- tr1 = ele.parentNode;
497
- } else {
498
- prev = subject;
499
- next = subject;
500
- tr1 = undefined;
501
- }
502
- var chunk = (0, _widgets.newThing)(padDoc);
503
- var label = chunk.uri.slice(-4);
504
- var del = [(0, _rdflib.st)(prev, PAD('next'), next, padDoc)];
505
- var ins = [(0, _rdflib.st)(prev, PAD('next'), chunk, padDoc), (0, _rdflib.st)(chunk, PAD('next'), next, padDoc), (0, _rdflib.st)(chunk, ns.dc('author'), me, padDoc), (0, _rdflib.st)(chunk, ns.sioc('content'), '', padDoc)];
506
- if (indent > 0) {
507
- // Do not inherit
508
- ins.push((0, _rdflib.st)(chunk, PAD('indent'), indent, padDoc));
509
- }
510
- (0, _debug.log)(' Fresh chunk ' + label + ' proposed');
511
- if (!updater) {
512
- throw new Error('no updater');
513
- }
514
- updater.update(del, ins, function (uri, ok, errorBody, _xhr) {
515
- if (!ok) {
516
- // alert("Error writing new line " + label + ": " + errorBody);
517
- (0, _debug.log)(' ERROR writing new line ' + label + ': ' + errorBody);
518
- } else {
519
- var newPart = newPartAfter(tr1, chunk, before);
520
- setPartStyle(newPart);
521
- newPart.focus(); // Note this is delayed
522
- if (queueProperty) {
523
- (0, _debug.log)(' Fresh chunk ' + label + ' updated, queue = ' + queue[queueProperty]);
524
- queue[queueProperty] -= 1;
525
- if (queue[queueProperty] > 0) {
526
- (0, _debug.log)(' Implementing queued newlines = ' + next.newLinesBefore);
527
- _newChunk(newPart, before);
528
- }
529
- }
530
- }
531
- });
532
- };
533
- var consistencyCheck = function consistencyCheck() {
534
- var found = {};
535
- var failed = 0;
536
- function complain2(msg) {
537
- complain(msg);
538
- failed++;
539
- }
540
- if (!kb.the(subject, PAD('next'))) {
541
- complain2('No initial next pointer');
542
- return false; // can't do linked list
543
- }
544
- // var chunk = kb.the(subject, PAD('next'))
545
- var prev = subject;
546
- var chunk;
547
- for (;;) {
548
- chunk = kb.the(prev, PAD('next'));
549
- if (!chunk) {
550
- complain2('No next pointer from ' + prev);
551
- }
552
- if (chunk.sameTerm(subject)) {
553
- break;
554
- }
555
- prev = chunk;
556
- var label = chunk.uri.split('#')[1];
557
- if (found[chunk.uri]) {
558
- complain2('Loop!');
559
- return false;
560
- }
561
- found[chunk.uri] = true;
562
- var k = kb.each(chunk, PAD('next')).length;
563
- if (k !== 1) {
564
- complain2('Should be 1 not ' + k + ' next pointer for ' + label);
565
- }
566
- k = kb.each(chunk, PAD('indent')).length;
567
- if (k > 1) {
568
- complain2('Should be 0 or 1 not ' + k + ' indent for ' + label);
569
- }
570
- k = kb.each(chunk, ns.sioc('content')).length;
571
- if (k !== 1) {
572
- complain2('Should be 1 not ' + k + ' contents for ' + label);
573
- }
574
- k = kb.each(chunk, ns.dc('author')).length;
575
- if (k !== 1) {
576
- complain2('Should be 1 not ' + k + ' author for ' + label);
577
- }
578
- var sts = kb.statementsMatching(undefined, ns.sioc('contents'));
579
- sts.forEach(function (st) {
580
- if (!found[st.subject.value]) {
581
- complain2('Loose chunk! ' + st.subject.value);
582
- }
583
- });
584
- }
585
- return !failed;
586
- };
587
-
588
- // Ensure that the display matches the current state of the
589
- // @@ TODO really need to refactor this so that we don't need to cast types
590
- var sync = function sync() {
591
- // var first = kb.the(subject, PAD('next'))
592
- if (kb.each(subject, PAD('next')).length !== 1) {
593
- var msg = 'Pad: Inconsistent data - NEXT pointers: ' + kb.each(subject, PAD('next')).length;
594
- (0, _debug.log)(msg);
595
- if (options.statusArea) {
596
- options.statusArea.textContent += msg;
597
- }
598
- return;
599
- }
600
- var row;
601
-
602
- // First see which of the logical chunks have existing physical manifestations
603
- var manif = [];
604
- // Find which lines correspond to existing chunks
605
-
606
- for (var chunk = kb.the(subject, PAD('next')); !chunk.sameTerm(subject); chunk = kb.the(chunk, PAD('next'))) {
607
- for (var i = 0; i < table.children.length; i++) {
608
- var _tr = table.children[i];
609
- if (_tr.firstChild) {
610
- if (_tr.firstChild.subject.sameTerm(chunk)) {
611
- manif[chunk.uri] = _tr.firstChild;
612
- }
613
- }
614
- }
615
- }
616
-
617
- // Remove any deleted lines
618
- for (var _i = table.children.length - 1; _i >= 0; _i--) {
619
- row = table.children[_i];
620
- if (!manif[row.firstChild.subject.uri]) {
621
- table.removeChild(row);
622
- }
623
- }
624
- // Insert any new lines and update old ones
625
- row = table.firstChild; // might be null
626
- for (var _chunk = kb.the(subject, PAD('next')); !_chunk.sameTerm(subject); _chunk = kb.the(_chunk, PAD('next'))) {
627
- var text = kb.any(_chunk, ns.sioc('content')).value;
628
- // superstitious -- don't mess with unchanged input fields
629
- // which may be selected by the user
630
- if (row && manif[_chunk.uri]) {
631
- var part = row.firstChild;
632
- if (text !== part.value) {
633
- part.value = text;
634
- }
635
- setPartStyle(part);
636
- part.state = 0; // Clear the state machine
637
- delete part.lastSent; // DEBUG ONLY
638
- row = row.nextSibling;
639
- } else {
640
- newPartAfter(row, _chunk, true); // actually before
641
- }
642
- }
643
- };
644
-
645
- // Refresh the DOM tree
646
-
647
- var _refreshTree = function refreshTree(root) {
648
- if (root.refresh) {
649
- root.refresh();
650
- return;
651
- }
652
- for (var i = 0; i < root.children.length; i++) {
653
- _refreshTree(root.children[i]);
654
- }
655
- };
656
- var reloading = false;
657
- var checkAndSync = function checkAndSync() {
658
- (0, _debug.log)(' reloaded OK');
659
- clearStatus();
660
- if (!consistencyCheck()) {
661
- complain('CONSISTENCY CHECK FAILED');
662
- } else {
663
- _refreshTree(table);
664
- }
665
- };
666
- var reloadAndSync = function reloadAndSync() {
667
- if (reloading) {
668
- (0, _debug.log)(' Already reloading - stop');
669
- return; // once only needed
670
- }
671
- reloading = true;
672
- var retryTimeout = 1000; // ms
673
- var _tryReload = function tryReload() {
674
- (0, _debug.log)('try reload - timeout = ' + retryTimeout);
675
- if (!updater) {
676
- throw new Error('no updater');
677
- }
678
- updater.reload(updater.store, padDoc, function (ok, message, xhr) {
679
- reloading = false;
680
- if (ok) {
681
- checkAndSync();
682
- } else {
683
- if (xhr.status === 0) {
684
- complain('Network error refreshing the pad. Retrying in ' + retryTimeout / 1000);
685
- reloading = true;
686
- retryTimeout = retryTimeout * 2;
687
- setTimeout(_tryReload, retryTimeout);
688
- } else {
689
- complain('Error ' + xhr.status + 'refreshing the pad:' + message + '. Stopped. ' + padDoc);
690
- }
691
- }
692
- });
693
- };
694
- _tryReload();
695
- };
696
- table.refresh = sync; // Catch downward propagating refresh events
697
- table.reloadAndSync = reloadAndSync;
698
- if (!me) (0, _debug.log)('Warning: must be logged in for pad to be edited');
699
- if (exists) {
700
- (0, _debug.log)('Existing pad.');
701
- if (consistencyCheck()) {
702
- sync();
703
- if (kb.holds(subject, PAD('next'), subject)) {
704
- // Empty list untenable
705
- _newChunk(); // require at least one line
706
- }
707
- } else {
708
- (0, _debug.log)(table.textContent = 'Inconsistent data. Abort');
709
- }
710
- } else {
711
- // Make new pad
712
- (0, _debug.log)('No pad exists - making new one.');
713
- var insertables = [(0, _rdflib.st)(subject, ns.rdf('type'), PAD('Notepad'), padDoc), (0, _rdflib.st)(subject, ns.dc('author'), me, padDoc), (0, _rdflib.st)(subject, ns.dc('created'), new Date(), padDoc), (0, _rdflib.st)(subject, PAD('next'), subject, padDoc)];
714
- if (!updater) {
715
- throw new Error('no updater');
716
- }
717
- updater.update([], insertables, function (uri, ok, errorBody) {
718
- if (!ok) {
719
- complain(errorBody || '');
720
- } else {
721
- (0, _debug.log)('Initial pad created');
722
- _newChunk(); // Add a first chunck
723
- // getResults();
724
- }
725
- });
726
- }
727
- return table;
728
- }
729
-
730
- /**
731
- * Get the chunks of the notepad
732
- * They are stored in a RDF linked list
733
- */
734
-
735
- // @ignore exporting this only for the unit test
736
- function getChunks(subject, kb) {
737
- var chunks = [];
738
- for (var chunk = kb.the(subject, PAD('next')); !chunk.sameTerm(subject); chunk = kb.the(chunk, PAD('next'))) {
739
- chunks.push(chunk);
740
- }
741
- return chunks;
742
- }
743
-
744
- /**
745
- * Encode content to be put in XML or HTML elements
746
- */
747
- // @ignore exporting this only for the unit test
748
- function xmlEncode(str) {
749
- return str.replace('&', '&amp;').replace('<', '&lt;').replace('>', '&gt;');
750
- }
751
-
752
- /**
753
- * Convert a notepad to HTML
754
- * @param { } pad - the notepad
755
- * @param {store} pad - the data store
756
- */
757
- function notepadToHTML(pad, kb) {
758
- var chunks = getChunks(pad, kb);
759
- var html = '<html>\n <head>\n';
760
- var title = kb.anyValue(pad, ns.dct('title'));
761
- if (title) {
762
- html += " <title>".concat(xmlEncode(title), "</title>\n");
763
- }
764
- html += ' </head>\n <body>\n';
765
- var level = 0;
766
- function increaseLevel(indent) {
767
- for (; level < indent; level++) {
768
- html += '<ul>\n';
769
- }
770
- }
771
- function decreaseLevel(indent) {
772
- for (; level > indent; level--) {
773
- html += '</ul>\n';
774
- }
775
- }
776
- chunks.forEach(function (chunk) {
777
- var indent = kb.anyJS(chunk, PAD('indent'));
778
- var rawContent = kb.anyJS(chunk, ns.sioc('content'));
779
- if (!rawContent) return; // seed chunk is dummy
780
- var content = xmlEncode(rawContent);
781
- if (indent < 0) {
782
- // negative indent levels represent heading levels
783
- decreaseLevel(0);
784
- var h = indent >= -3 ? 4 + indent : 1; // -1 -> h4, -2 -> h3
785
- html += "\n<h".concat(h, ">").concat(content, "</h").concat(h, ">\n");
786
- } else {
787
- // >= 0
788
- if (indent > 0) {
789
- // Lists
790
- decreaseLevel(indent);
791
- increaseLevel(indent);
792
- html += "<li>".concat(content, "</li>\n");
793
- } else {
794
- // indent 0
795
- decreaseLevel(indent);
796
- html += "<p>".concat(content, "</p>\n");
797
- }
798
- }
799
- }); // foreach chunk
800
- // At the end decreaseLevel any open ULs
801
- decreaseLevel(0);
802
- html += ' </body>\n</html>\n';
803
- return html;
804
- }
805
- //# sourceMappingURL=pad.js.map