solid-ui 2.4.24 → 2.4.25

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 (248) hide show
  1. package/LICENSE.md +0 -0
  2. package/README.md +0 -0
  3. package/dist/index.html +0 -0
  4. package/dist/main.js +50483 -50370
  5. package/dist/main.js.map +1 -1
  6. package/lib/acl/access-controller.d.ts +0 -0
  7. package/lib/acl/access-controller.d.ts.map +0 -0
  8. package/lib/acl/access-controller.js +90 -98
  9. package/lib/acl/access-controller.js.map +1 -1
  10. package/lib/acl/access-groups.d.ts +0 -0
  11. package/lib/acl/access-groups.d.ts.map +0 -0
  12. package/lib/acl/access-groups.js +82 -90
  13. package/lib/acl/access-groups.js.map +1 -1
  14. package/lib/acl/acl-control.d.ts +0 -0
  15. package/lib/acl/acl-control.d.ts.map +0 -0
  16. package/lib/acl/acl-control.js +50 -54
  17. package/lib/acl/acl-control.js.map +1 -1
  18. package/lib/acl/acl.d.ts +3 -3
  19. package/lib/acl/acl.d.ts.map +1 -1
  20. package/lib/acl/acl.js +13 -15
  21. package/lib/acl/acl.js.map +1 -1
  22. package/lib/acl/add-agent-buttons.d.ts +0 -0
  23. package/lib/acl/add-agent-buttons.d.ts.map +0 -0
  24. package/lib/acl/add-agent-buttons.js +142 -154
  25. package/lib/acl/add-agent-buttons.js.map +1 -1
  26. package/lib/acl/index.d.ts +0 -0
  27. package/lib/acl/index.d.ts.map +0 -0
  28. package/lib/acl/index.js +0 -0
  29. package/lib/acl/index.js.map +0 -0
  30. package/lib/acl/styles.d.ts +0 -0
  31. package/lib/acl/styles.d.ts.map +0 -0
  32. package/lib/acl/styles.js +0 -0
  33. package/lib/acl/styles.js.map +0 -0
  34. package/lib/acl/types.d.ts +6 -6
  35. package/lib/acl/types.d.ts.map +1 -1
  36. package/lib/acl/types.js +0 -0
  37. package/lib/acl/types.js.map +0 -0
  38. package/lib/chat/bookmarks.js +181 -191
  39. package/lib/chat/bookmarks.js.map +1 -1
  40. package/lib/chat/chatLogic.js +96 -104
  41. package/lib/chat/chatLogic.js.map +1 -1
  42. package/lib/chat/dateFolder.js +232 -224
  43. package/lib/chat/dateFolder.js.map +1 -1
  44. package/lib/chat/infinite.js +634 -658
  45. package/lib/chat/infinite.js.map +1 -1
  46. package/lib/chat/message.js +119 -131
  47. package/lib/chat/message.js.map +1 -1
  48. package/lib/chat/messageTools.js +106 -114
  49. package/lib/chat/messageTools.js.map +1 -1
  50. package/lib/chat/thread.js +16 -18
  51. package/lib/chat/thread.js.map +1 -1
  52. package/lib/create/create.d.ts +0 -0
  53. package/lib/create/create.d.ts.map +0 -0
  54. package/lib/create/create.js +0 -0
  55. package/lib/create/create.js.map +0 -0
  56. package/lib/create/index.d.ts +0 -0
  57. package/lib/create/index.d.ts.map +0 -0
  58. package/lib/create/index.js +0 -0
  59. package/lib/create/index.js.map +0 -0
  60. package/lib/create/types.d.ts +1 -1
  61. package/lib/create/types.d.ts.map +1 -1
  62. package/lib/create/types.js +0 -0
  63. package/lib/create/types.js.map +0 -0
  64. package/lib/debug.d.ts +0 -0
  65. package/lib/debug.d.ts.map +0 -0
  66. package/lib/debug.js +0 -0
  67. package/lib/debug.js.map +0 -0
  68. package/lib/folders.js +0 -0
  69. package/lib/folders.js.map +0 -0
  70. package/lib/footer/index.d.ts +1 -1
  71. package/lib/footer/index.d.ts.map +1 -1
  72. package/lib/footer/index.js +33 -37
  73. package/lib/footer/index.js.map +1 -1
  74. package/lib/footer/styleMap.d.ts +0 -0
  75. package/lib/footer/styleMap.d.ts.map +0 -0
  76. package/lib/footer/styleMap.js +0 -0
  77. package/lib/footer/styleMap.js.map +0 -0
  78. package/lib/header/empty-profile.d.ts +0 -0
  79. package/lib/header/empty-profile.d.ts.map +0 -0
  80. package/lib/header/empty-profile.js +0 -0
  81. package/lib/header/empty-profile.js.map +0 -0
  82. package/lib/header/index.d.ts +4 -4
  83. package/lib/header/index.d.ts.map +1 -1
  84. package/lib/header/index.js +126 -134
  85. package/lib/header/index.js.map +1 -1
  86. package/lib/header/styleMap.d.ts +0 -0
  87. package/lib/header/styleMap.d.ts.map +0 -0
  88. package/lib/header/styleMap.js +0 -0
  89. package/lib/header/styleMap.js.map +0 -0
  90. package/lib/iconBase.d.ts +0 -0
  91. package/lib/iconBase.d.ts.map +0 -0
  92. package/lib/iconBase.js +0 -0
  93. package/lib/iconBase.js.map +0 -0
  94. package/lib/icons/solid_logo.d.ts +0 -0
  95. package/lib/icons/solid_logo.d.ts.map +0 -0
  96. package/lib/icons/solid_logo.js +0 -0
  97. package/lib/icons/solid_logo.js.map +0 -0
  98. package/lib/index.d.ts +0 -0
  99. package/lib/index.d.ts.map +0 -0
  100. package/lib/index.js +0 -0
  101. package/lib/index.js.map +0 -0
  102. package/lib/jss/index.d.ts +0 -0
  103. package/lib/jss/index.d.ts.map +0 -0
  104. package/lib/jss/index.js +0 -0
  105. package/lib/jss/index.js.map +0 -0
  106. package/lib/log.d.ts +0 -0
  107. package/lib/log.d.ts.map +0 -0
  108. package/lib/log.js +0 -0
  109. package/lib/log.js.map +0 -0
  110. package/lib/login/login.d.ts +0 -0
  111. package/lib/login/login.d.ts.map +0 -0
  112. package/lib/login/login.js +470 -470
  113. package/lib/login/login.js.map +1 -1
  114. package/lib/matrix/index.d.ts +0 -0
  115. package/lib/matrix/index.d.ts.map +0 -0
  116. package/lib/matrix/index.js +0 -0
  117. package/lib/matrix/index.js.map +0 -0
  118. package/lib/matrix/matrix.d.ts +0 -0
  119. package/lib/matrix/matrix.d.ts.map +0 -0
  120. package/lib/matrix/matrix.js +0 -0
  121. package/lib/matrix/matrix.js.map +0 -0
  122. package/lib/matrix/types.d.ts +1 -1
  123. package/lib/matrix/types.d.ts.map +1 -1
  124. package/lib/matrix/types.js +0 -0
  125. package/lib/matrix/types.js.map +0 -0
  126. package/lib/media/index.d.ts +0 -0
  127. package/lib/media/index.d.ts.map +0 -0
  128. package/lib/media/index.js +0 -0
  129. package/lib/media/index.js.map +0 -0
  130. package/lib/media/media-capture.d.ts +0 -0
  131. package/lib/media/media-capture.d.ts.map +0 -0
  132. package/lib/media/media-capture.js +8 -10
  133. package/lib/media/media-capture.js.map +1 -1
  134. package/lib/messageArea.js +0 -0
  135. package/lib/messageArea.js.map +0 -0
  136. package/lib/noun_Camera_1618446_000000.js +0 -0
  137. package/lib/noun_Camera_1618446_000000.js.map +0 -0
  138. package/lib/ns.js +0 -0
  139. package/lib/ns.js.map +0 -0
  140. package/lib/pad.d.ts +1 -1
  141. package/lib/pad.d.ts.map +1 -1
  142. package/lib/pad.js +0 -0
  143. package/lib/pad.js.map +0 -0
  144. package/lib/participation.d.ts +1 -1
  145. package/lib/participation.d.ts.map +1 -1
  146. package/lib/participation.js +1 -1
  147. package/lib/participation.js.map +0 -0
  148. package/lib/preferences.js +0 -0
  149. package/lib/preferences.js.map +0 -0
  150. package/lib/signup/config-default.js +0 -0
  151. package/lib/signup/config-default.js.map +0 -0
  152. package/lib/signup/signup.js +0 -0
  153. package/lib/signup/signup.js.map +0 -0
  154. package/lib/stories/decorators.js +0 -0
  155. package/lib/stories/decorators.js.map +0 -0
  156. package/lib/style.js +0 -0
  157. package/lib/style.js.map +0 -0
  158. package/lib/style_multiSelect.js +0 -0
  159. package/lib/style_multiSelect.js.map +0 -0
  160. package/lib/table.js +0 -0
  161. package/lib/table.js.map +0 -0
  162. package/lib/tabs.d.ts +1 -1
  163. package/lib/tabs.d.ts.map +1 -1
  164. package/lib/tabs.js +0 -0
  165. package/lib/tabs.js.map +0 -0
  166. package/lib/typings.d.js +0 -0
  167. package/lib/typings.d.js.map +0 -0
  168. package/lib/utils/headerFooterHelpers.d.ts +1 -1
  169. package/lib/utils/headerFooterHelpers.d.ts.map +1 -1
  170. package/lib/utils/headerFooterHelpers.js +78 -80
  171. package/lib/utils/headerFooterHelpers.js.map +1 -1
  172. package/lib/utils/index.js +2 -6
  173. package/lib/utils/index.js.map +1 -1
  174. package/lib/utils/label.d.ts +0 -0
  175. package/lib/utils/label.d.ts.map +0 -0
  176. package/lib/utils/label.js +0 -0
  177. package/lib/utils/label.js.map +0 -0
  178. package/lib/versionInfo.d.ts +0 -0
  179. package/lib/versionInfo.d.ts.map +0 -0
  180. package/lib/versionInfo.js +13 -13
  181. package/lib/versionInfo.js.map +1 -1
  182. package/lib/widgets/buttons/iconLinks.d.ts +0 -0
  183. package/lib/widgets/buttons/iconLinks.d.ts.map +0 -0
  184. package/lib/widgets/buttons/iconLinks.js +0 -0
  185. package/lib/widgets/buttons/iconLinks.js.map +0 -0
  186. package/lib/widgets/buttons.d.ts +5 -5
  187. package/lib/widgets/buttons.d.ts.map +1 -1
  188. package/lib/widgets/buttons.js +0 -0
  189. package/lib/widgets/buttons.js.map +0 -0
  190. package/lib/widgets/dragAndDrop.js +0 -0
  191. package/lib/widgets/dragAndDrop.js.map +0 -0
  192. package/lib/widgets/error.d.ts +0 -0
  193. package/lib/widgets/error.d.ts.map +0 -0
  194. package/lib/widgets/error.js +0 -0
  195. package/lib/widgets/error.js.map +0 -0
  196. package/lib/widgets/forms/autocomplete/autocompleteBar.d.ts +0 -0
  197. package/lib/widgets/forms/autocomplete/autocompleteBar.d.ts.map +0 -0
  198. package/lib/widgets/forms/autocomplete/autocompleteBar.js +217 -229
  199. package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
  200. package/lib/widgets/forms/autocomplete/autocompleteField.d.ts +0 -0
  201. package/lib/widgets/forms/autocomplete/autocompleteField.d.ts.map +0 -0
  202. package/lib/widgets/forms/autocomplete/autocompleteField.js +70 -74
  203. package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
  204. package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts +2 -2
  205. package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts.map +1 -1
  206. package/lib/widgets/forms/autocomplete/autocompletePicker.js +363 -379
  207. package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
  208. package/lib/widgets/forms/autocomplete/language.d.ts +0 -0
  209. package/lib/widgets/forms/autocomplete/language.d.ts.map +0 -0
  210. package/lib/widgets/forms/autocomplete/language.js +79 -83
  211. package/lib/widgets/forms/autocomplete/language.js.map +1 -1
  212. package/lib/widgets/forms/autocomplete/publicData.d.ts +2 -2
  213. package/lib/widgets/forms/autocomplete/publicData.d.ts.map +1 -1
  214. package/lib/widgets/forms/autocomplete/publicData.js +263 -281
  215. package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
  216. package/lib/widgets/forms/basic.d.ts +0 -0
  217. package/lib/widgets/forms/basic.d.ts.map +0 -0
  218. package/lib/widgets/forms/basic.js +0 -0
  219. package/lib/widgets/forms/basic.js.map +0 -0
  220. package/lib/widgets/forms/comment.d.ts +0 -0
  221. package/lib/widgets/forms/comment.d.ts.map +0 -0
  222. package/lib/widgets/forms/comment.js +0 -0
  223. package/lib/widgets/forms/comment.js.map +0 -0
  224. package/lib/widgets/forms/fieldFunction.d.ts +1 -1
  225. package/lib/widgets/forms/fieldFunction.d.ts.map +1 -1
  226. package/lib/widgets/forms/fieldFunction.js +1 -3
  227. package/lib/widgets/forms/fieldFunction.js.map +1 -1
  228. package/lib/widgets/forms/fieldParams.d.ts +1 -1
  229. package/lib/widgets/forms/fieldParams.d.ts.map +1 -1
  230. package/lib/widgets/forms/fieldParams.js +0 -0
  231. package/lib/widgets/forms/fieldParams.js.map +0 -0
  232. package/lib/widgets/forms/formStyle.d.ts +0 -0
  233. package/lib/widgets/forms/formStyle.d.ts.map +0 -0
  234. package/lib/widgets/forms/formStyle.js +0 -0
  235. package/lib/widgets/forms/formStyle.js.map +0 -0
  236. package/lib/widgets/forms.js +197 -225
  237. package/lib/widgets/forms.js.map +1 -1
  238. package/lib/widgets/index.js +0 -0
  239. package/lib/widgets/index.js.map +0 -0
  240. package/lib/widgets/multiSelect.js +4 -4
  241. package/lib/widgets/multiSelect.js.map +1 -1
  242. package/lib/widgets/peoplePicker.js +0 -0
  243. package/lib/widgets/peoplePicker.js.map +0 -0
  244. package/lib/widgets/widgetHelpers.d.ts +0 -0
  245. package/lib/widgets/widgetHelpers.d.ts.map +0 -0
  246. package/lib/widgets/widgetHelpers.js +0 -0
  247. package/lib/widgets/widgetHelpers.js.map +0 -0
  248. package/package.json +34 -31
@@ -108,59 +108,57 @@ function _findBookmarkDocument() {
108
108
  _findBookmarkDocument = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(userContext) {
109
109
  var theClass, fileTail, isPublic, newBookmarkFile;
110
110
  return _regenerator["default"].wrap(function _callee$(_context) {
111
- while (1) {
112
- switch (_context.prev = _context.next) {
113
- case 0:
114
- theClass = BOOK('Bookmark');
115
- fileTail = 'bookmarks.ttl';
116
- isPublic = true;
117
- _context.next = 5;
118
- return (0, _login.findAppInstances)(userContext, theClass, isPublic);
119
- case 5:
120
- if (!(userContext.instances && userContext.instances.length > 0)) {
121
- _context.next = 10;
122
- break;
123
- }
124
- userContext.bookmarkDocument = userContext.instances[0];
125
- if (userContext.instances.length > 1) {
126
- alert('More than one bookmark file! ' + userContext.instances);
127
- }
128
- _context.next = 28;
111
+ while (1) switch (_context.prev = _context.next) {
112
+ case 0:
113
+ theClass = BOOK('Bookmark');
114
+ fileTail = 'bookmarks.ttl';
115
+ isPublic = true;
116
+ _context.next = 5;
117
+ return (0, _login.findAppInstances)(userContext, theClass, isPublic);
118
+ case 5:
119
+ if (!(userContext.instances && userContext.instances.length > 0)) {
120
+ _context.next = 10;
129
121
  break;
130
- case 10:
131
- if (!userContext.publicProfile) {
132
- _context.next = 27;
133
- break;
134
- }
135
- // publicProfile or preferencesFile
136
- newBookmarkFile = $rdf.sym(userContext.publicProfile.dir().uri + fileTail);
137
- _context.prev = 12;
138
- debug.log('Creating new bookmark file ' + newBookmarkFile);
139
- _context.next = 16;
140
- return createIfNotExists(newBookmarkFile);
141
- case 16:
142
- _context.next = 22;
122
+ }
123
+ userContext.bookmarkDocument = userContext.instances[0];
124
+ if (userContext.instances.length > 1) {
125
+ alert('More than one bookmark file! ' + userContext.instances);
126
+ }
127
+ _context.next = 28;
128
+ break;
129
+ case 10:
130
+ if (!userContext.publicProfile) {
131
+ _context.next = 27;
143
132
  break;
144
- case 18:
145
- _context.prev = 18;
146
- _context.t0 = _context["catch"](12);
147
- alert.error("Can't make fresh bookmark file:" + _context.t0);
148
- return _context.abrupt("return", userContext);
149
- case 22:
150
- _context.next = 24;
151
- return (0, _solidLogic.registerInTypeIndex)(newBookmarkFile, userContext.index, theClass);
152
- case 24:
153
- userContext.bookmarkDocument = newBookmarkFile;
154
- _context.next = 28;
155
- break;
156
- case 27:
157
- alert('You seem to have no bookmark file and not even a profile file.');
158
- case 28:
159
- return _context.abrupt("return", userContext);
160
- case 29:
161
- case "end":
162
- return _context.stop();
163
- }
133
+ }
134
+ // publicProfile or preferencesFile
135
+ newBookmarkFile = $rdf.sym(userContext.publicProfile.dir().uri + fileTail);
136
+ _context.prev = 12;
137
+ debug.log('Creating new bookmark file ' + newBookmarkFile);
138
+ _context.next = 16;
139
+ return createIfNotExists(newBookmarkFile);
140
+ case 16:
141
+ _context.next = 22;
142
+ break;
143
+ case 18:
144
+ _context.prev = 18;
145
+ _context.t0 = _context["catch"](12);
146
+ alert.error("Can't make fresh bookmark file:" + _context.t0);
147
+ return _context.abrupt("return", userContext);
148
+ case 22:
149
+ _context.next = 24;
150
+ return (0, _solidLogic.registerInTypeIndex)(newBookmarkFile, userContext.index, theClass);
151
+ case 24:
152
+ userContext.bookmarkDocument = newBookmarkFile;
153
+ _context.next = 28;
154
+ break;
155
+ case 27:
156
+ alert('You seem to have no bookmark file and not even a profile file.');
157
+ case 28:
158
+ return _context.abrupt("return", userContext);
159
+ case 29:
160
+ case "end":
161
+ return _context.stop();
164
162
  }
165
163
  }, _callee, null, [[12, 18]]);
166
164
  }));
@@ -173,52 +171,50 @@ function _addBookmark() {
173
171
  _addBookmark = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(context, target) {
174
172
  var title, me, author, bookmarkDoc, bookmark, ins, msg;
175
173
  return _regenerator["default"].wrap(function _callee2$(_context2) {
176
- while (1) {
177
- switch (_context2.prev = _context2.next) {
178
- case 0:
179
- /* like
180
- @prefix terms: <http://purl.org/dc/terms/>.
181
- @prefix bookm: <http://www.w3.org/2002/01/bookmark#>.
182
- @prefix n0: <http://xmlns.com/foaf/0.1/>.
183
- <> terms:references <#0.5534145389246576>.
184
- <#0.5534145389246576>
185
- a bookm:Bookmark;
186
- terms:created "2019-01-26T20:26:44.374Z"^^XML:dateTime;
187
- terms:title "Herons";
188
- bookm:recalls wiki:Heron;
189
- n0:maker c:me.
190
- */
191
- title = '';
192
- me = _solidLogic.authn.currentUser(); // If already logged on
193
- if (me) {
194
- _context2.next = 4;
195
- break;
196
- }
197
- throw new Error('Must be logged on to add Bookmark');
198
- case 4:
199
- author = _solidLogic.store.any(target, ns.foaf('maker'));
200
- title = label(author) + ': ' + _solidLogic.store.anyValue(target, ns.sioc('content')).slice(0, 80); // @@ add chat title too?
201
- bookmarkDoc = context.bookmarkDocument;
202
- bookmark = UI.widgets.newThing(bookmarkDoc, title);
203
- ins = [$rdf.st(bookmarkDoc, UI.ns.dct('references'), bookmark, bookmarkDoc), $rdf.st(bookmark, UI.ns.rdf('type'), BOOK('Bookmark'), bookmarkDoc), $rdf.st(bookmark, UI.ns.dct('created'), new Date(), bookmarkDoc), $rdf.st(bookmark, BOOK('recalls'), target, bookmarkDoc), $rdf.st(bookmark, UI.ns.foaf('maker'), me, bookmarkDoc), $rdf.st(bookmark, UI.ns.dct('title'), title, bookmarkDoc)];
204
- _context2.prev = 9;
205
- _context2.next = 12;
206
- return updatePromise([], ins);
207
- case 12:
208
- _context2.next = 19;
174
+ while (1) switch (_context2.prev = _context2.next) {
175
+ case 0:
176
+ /* like
177
+ @prefix terms: <http://purl.org/dc/terms/>.
178
+ @prefix bookm: <http://www.w3.org/2002/01/bookmark#>.
179
+ @prefix n0: <http://xmlns.com/foaf/0.1/>.
180
+ <> terms:references <#0.5534145389246576>.
181
+ <#0.5534145389246576>
182
+ a bookm:Bookmark;
183
+ terms:created "2019-01-26T20:26:44.374Z"^^XML:dateTime;
184
+ terms:title "Herons";
185
+ bookm:recalls wiki:Heron;
186
+ n0:maker c:me.
187
+ */
188
+ title = '';
189
+ me = _solidLogic.authn.currentUser(); // If already logged on
190
+ if (me) {
191
+ _context2.next = 4;
209
192
  break;
210
- case 14:
211
- _context2.prev = 14;
212
- _context2.t0 = _context2["catch"](9);
213
- msg = 'Making bookmark: ' + _context2.t0;
214
- alert.error(msg);
215
- return _context2.abrupt("return", null);
216
- case 19:
217
- return _context2.abrupt("return", bookmark);
218
- case 20:
219
- case "end":
220
- return _context2.stop();
221
- }
193
+ }
194
+ throw new Error('Must be logged on to add Bookmark');
195
+ case 4:
196
+ author = _solidLogic.store.any(target, ns.foaf('maker'));
197
+ title = label(author) + ': ' + _solidLogic.store.anyValue(target, ns.sioc('content')).slice(0, 80); // @@ add chat title too?
198
+ bookmarkDoc = context.bookmarkDocument;
199
+ bookmark = UI.widgets.newThing(bookmarkDoc, title);
200
+ ins = [$rdf.st(bookmarkDoc, UI.ns.dct('references'), bookmark, bookmarkDoc), $rdf.st(bookmark, UI.ns.rdf('type'), BOOK('Bookmark'), bookmarkDoc), $rdf.st(bookmark, UI.ns.dct('created'), new Date(), bookmarkDoc), $rdf.st(bookmark, BOOK('recalls'), target, bookmarkDoc), $rdf.st(bookmark, UI.ns.foaf('maker'), me, bookmarkDoc), $rdf.st(bookmark, UI.ns.dct('title'), title, bookmarkDoc)];
201
+ _context2.prev = 9;
202
+ _context2.next = 12;
203
+ return updatePromise([], ins);
204
+ case 12:
205
+ _context2.next = 19;
206
+ break;
207
+ case 14:
208
+ _context2.prev = 14;
209
+ _context2.t0 = _context2["catch"](9);
210
+ msg = 'Making bookmark: ' + _context2.t0;
211
+ alert.error(msg);
212
+ return _context2.abrupt("return", null);
213
+ case 19:
214
+ return _context2.abrupt("return", bookmark);
215
+ case 20:
216
+ case "end":
217
+ return _context2.stop();
222
218
  }
223
219
  }, _callee2, null, [[9, 14]]);
224
220
  }));
@@ -231,60 +227,58 @@ function _toggleBookmark() {
231
227
  _toggleBookmark = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(userContext, target, bookmarkButton) {
232
228
  var bookmarks, i, bookmark;
233
229
  return _regenerator["default"].wrap(function _callee3$(_context3) {
234
- while (1) {
235
- switch (_context3.prev = _context3.next) {
236
- case 0:
237
- _context3.next = 2;
238
- return _solidLogic.store.fetcher.load(userContext.bookmarkDocument);
239
- case 2:
240
- bookmarks = _solidLogic.store.each(null, BOOK('recalls'), target, userContext.bookmarkDocument);
241
- if (!bookmarks.length) {
242
- _context3.next = 24;
243
- break;
244
- }
245
- if (confirm('Delete bookmark on this?' + bookmarks.length)) {
246
- _context3.next = 6;
247
- break;
248
- }
249
- return _context3.abrupt("return");
250
- case 6:
251
- i = 0;
252
- case 7:
253
- if (!(i < bookmarks.length)) {
254
- _context3.next = 22;
255
- break;
256
- }
257
- _context3.prev = 8;
258
- _context3.next = 11;
259
- return updatePromise(_solidLogic.store.connectedStatements(bookmarks[i]), []);
260
- case 11:
261
- bookmarkButton.style.backgroundColor = 'white';
262
- debug.log('Bookmark deleted: ' + bookmarks[i]);
263
- _context3.next = 19;
230
+ while (1) switch (_context3.prev = _context3.next) {
231
+ case 0:
232
+ _context3.next = 2;
233
+ return _solidLogic.store.fetcher.load(userContext.bookmarkDocument);
234
+ case 2:
235
+ bookmarks = _solidLogic.store.each(null, BOOK('recalls'), target, userContext.bookmarkDocument);
236
+ if (!bookmarks.length) {
237
+ _context3.next = 24;
264
238
  break;
265
- case 15:
266
- _context3.prev = 15;
267
- _context3.t0 = _context3["catch"](8);
268
- debug.error('Cant delete bookmark:' + _context3.t0);
269
- alert('Cant delete bookmark:' + _context3.t0);
270
- case 19:
271
- i++;
272
- _context3.next = 7;
239
+ }
240
+ if (confirm('Delete bookmark on this?' + bookmarks.length)) {
241
+ _context3.next = 6;
273
242
  break;
274
- case 22:
275
- _context3.next = 29;
243
+ }
244
+ return _context3.abrupt("return");
245
+ case 6:
246
+ i = 0;
247
+ case 7:
248
+ if (!(i < bookmarks.length)) {
249
+ _context3.next = 22;
276
250
  break;
277
- case 24:
278
- _context3.next = 26;
279
- return addBookmark(userContext, target);
280
- case 26:
281
- bookmark = _context3.sent;
282
- bookmarkButton.style.backgroundColor = 'yellow';
283
- debug.log('Bookmark added: ' + bookmark);
284
- case 29:
285
- case "end":
286
- return _context3.stop();
287
- }
251
+ }
252
+ _context3.prev = 8;
253
+ _context3.next = 11;
254
+ return updatePromise(_solidLogic.store.connectedStatements(bookmarks[i]), []);
255
+ case 11:
256
+ bookmarkButton.style.backgroundColor = 'white';
257
+ debug.log('Bookmark deleted: ' + bookmarks[i]);
258
+ _context3.next = 19;
259
+ break;
260
+ case 15:
261
+ _context3.prev = 15;
262
+ _context3.t0 = _context3["catch"](8);
263
+ debug.error('Cant delete bookmark:' + _context3.t0);
264
+ alert('Cant delete bookmark:' + _context3.t0);
265
+ case 19:
266
+ i++;
267
+ _context3.next = 7;
268
+ break;
269
+ case 22:
270
+ _context3.next = 29;
271
+ break;
272
+ case 24:
273
+ _context3.next = 26;
274
+ return addBookmark(userContext, target);
275
+ case 26:
276
+ bookmark = _context3.sent;
277
+ bookmarkButton.style.backgroundColor = 'yellow';
278
+ debug.log('Bookmark added: ' + bookmark);
279
+ case 29:
280
+ case "end":
281
+ return _context3.stop();
288
282
  }
289
283
  }, _callee3, null, [[8, 15]]);
290
284
  }));
@@ -297,50 +291,46 @@ function _renderBookmarksButton() {
297
291
  _renderBookmarksButton = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(userContext, target) {
298
292
  var setBookmarkButtonColor, _setBookmarkButtonColor, bookmarkButton;
299
293
  return _regenerator["default"].wrap(function _callee5$(_context5) {
300
- while (1) {
301
- switch (_context5.prev = _context5.next) {
302
- case 0:
303
- _setBookmarkButtonColor = function _setBookmarkButtonCol2() {
304
- _setBookmarkButtonColor = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(bookmarkButton) {
305
- var bookmarked;
306
- return _regenerator["default"].wrap(function _callee4$(_context4) {
307
- while (1) {
308
- switch (_context4.prev = _context4.next) {
309
- case 0:
310
- _context4.next = 2;
311
- return _solidLogic.store.fetcher.load(userContext.bookmarkDocument);
312
- case 2:
313
- bookmarked = _solidLogic.store.any(null, BOOK('recalls'), bookmarkButton.target, userContext.bookmarkDocument);
314
- bookmarkButton.style = UI.style.buttonStyle;
315
- if (bookmarked) bookmarkButton.style.backgroundColor = 'yellow';
316
- case 5:
317
- case "end":
318
- return _context4.stop();
319
- }
320
- }
321
- }, _callee4);
322
- }));
323
- return _setBookmarkButtonColor.apply(this, arguments);
324
- };
325
- setBookmarkButtonColor = function _setBookmarkButtonCol(_x9) {
326
- return _setBookmarkButtonColor.apply(this, arguments);
327
- };
328
- if (!userContext.bookmarkDocument) {
329
- _context5.next = 8;
330
- break;
331
- }
332
- bookmarkButton = UI.widgets.button(dom, UI.icons.iconBase + BOOKMARK_ICON, label(BOOK('Bookmark')), function () {
333
- toggleBookmark(userContext, target, bookmarkButton);
334
- });
335
- bookmarkButton.target = target;
336
- _context5.next = 7;
337
- return setBookmarkButtonColor(bookmarkButton);
338
- case 7:
339
- return _context5.abrupt("return", bookmarkButton);
340
- case 8:
341
- case "end":
342
- return _context5.stop();
343
- }
294
+ while (1) switch (_context5.prev = _context5.next) {
295
+ case 0:
296
+ _setBookmarkButtonColor = function _setBookmarkButtonCol2() {
297
+ _setBookmarkButtonColor = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(bookmarkButton) {
298
+ var bookmarked;
299
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
300
+ while (1) switch (_context4.prev = _context4.next) {
301
+ case 0:
302
+ _context4.next = 2;
303
+ return _solidLogic.store.fetcher.load(userContext.bookmarkDocument);
304
+ case 2:
305
+ bookmarked = _solidLogic.store.any(null, BOOK('recalls'), bookmarkButton.target, userContext.bookmarkDocument);
306
+ bookmarkButton.style = UI.style.buttonStyle;
307
+ if (bookmarked) bookmarkButton.style.backgroundColor = 'yellow';
308
+ case 5:
309
+ case "end":
310
+ return _context4.stop();
311
+ }
312
+ }, _callee4);
313
+ }));
314
+ return _setBookmarkButtonColor.apply(this, arguments);
315
+ };
316
+ setBookmarkButtonColor = function _setBookmarkButtonCol(_x9) {
317
+ return _setBookmarkButtonColor.apply(this, arguments);
318
+ };
319
+ if (!userContext.bookmarkDocument) {
320
+ _context5.next = 8;
321
+ break;
322
+ }
323
+ bookmarkButton = UI.widgets.button(dom, UI.icons.iconBase + BOOKMARK_ICON, label(BOOK('Bookmark')), function () {
324
+ toggleBookmark(userContext, target, bookmarkButton);
325
+ });
326
+ bookmarkButton.target = target;
327
+ _context5.next = 7;
328
+ return setBookmarkButtonColor(bookmarkButton);
329
+ case 7:
330
+ return _context5.abrupt("return", bookmarkButton);
331
+ case 8:
332
+ case "end":
333
+ return _context5.stop();
344
334
  }
345
335
  }, _callee5);
346
336
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"bookmarks.js","names":["UI","icons","ns","media","pad","rdf","style","utils","widgets","$rdf","BOOK","Namespace","BOOKMARK_ICON","label","dom","window","document","createIfNotExists","doc","Promise","resolve","reject","store","fetcher","load","then","response","debug","log","err","status","webOperation","uri","data","contentType","requested","updatePromise","del","ins","updater","update","ok","errorBody","Error","findBookmarkDocument","userContext","theClass","fileTail","isPublic","findAppInstances","instances","length","bookmarkDocument","alert","publicProfile","newBookmarkFile","sym","dir","error","registerInTypeIndex","index","addBookmark","context","target","title","me","authn","currentUser","author","any","foaf","anyValue","sioc","slice","bookmarkDoc","bookmark","newThing","st","dct","Date","msg","toggleBookmark","bookmarkButton","bookmarks","each","confirm","i","connectedStatements","backgroundColor","renderBookmarksButton","setBookmarkButtonColor","bookmarked","buttonStyle","button","iconBase"],"sources":["../../src/chat/bookmarks.js"],"sourcesContent":["/**\n * Functions related to chat and bookmarks\n * @packageDocumentation\n */\n\n/* global alert confirm */\nimport * as debug from '../debug'\nimport { icons } from '../iconBase'\nimport { media } from '../media/index'\nimport * as ns from '../ns'\nimport * as pad from '../pad'\nimport * as rdf from 'rdflib' // pull in first avoid cross-refs\nimport * as style from '../style'\nimport * as utils from '../utils'\nimport * as widgets from '../widgets'\nimport { store, registerInTypeIndex, authn } from 'solid-logic'\nimport { findAppInstances } from '../login/login'\n\nconst UI = { icons, ns, media, pad, rdf, style, utils, widgets }\nconst $rdf = UI.rdf\n\nconst BOOK = $rdf.Namespace('http://www.w3.org/2002/01/bookmark#')\nconst BOOKMARK_ICON = 'noun_45961.svg'\n\nconst label = utils.label\nconst dom = window.document || null\n\n/** Create a resource if it really does not exist\n * Be absolutely sure something does not exist before creating a new empty file\n * as otherwise existing could be deleted.\n * @param doc {NamedNode} - The resource\n */\nfunction createIfNotExists (doc) {\n return new Promise(function (resolve, reject) {\n store.fetcher.load(doc).then(\n response => {\n debug.log('createIfNotExists doc exists, all good ' + doc)\n // store.fetcher.webOperation('HEAD', doc.uri).then(response => {\n resolve(response)\n },\n err => {\n if (err.response.status === 404) {\n debug.log(\n 'createIfNotExists doc does NOT exist, will create... ' + doc\n )\n\n store.fetcher\n .webOperation('PUT', doc.uri, {\n data: '',\n contentType: 'text/turtle'\n })\n .then(\n response => {\n // fetcher.requested[doc.uri] = 'done' // do not need to read ?? but no headers\n delete store.fetcher.requested[doc.uri] // delete cached 404 error\n debug.log('createIfNotExists doc created ok ' + doc)\n resolve(response)\n },\n err => {\n debug.log('createIfNotExists doc FAILED: ' + doc + ': ' + err)\n reject(err)\n }\n )\n } else {\n debug.log(\n 'createIfNotExists doc load error NOT 404: ' + doc + ': ' + err\n )\n reject(err)\n }\n }\n )\n })\n}\n\n// @@@@ use the one in rdflib.js when it is avaiable and delete this\nfunction updatePromise (del, ins) {\n return new Promise(function (resolve, reject) {\n store.updater.update(del, ins, function (uri, ok, errorBody) {\n if (!ok) {\n reject(new Error(errorBody))\n } else {\n resolve()\n }\n }) // callback\n }) // promise\n}\n\n/* Bookmarking\n */\n/** Find a user's bookmarks\n */\nexport async function findBookmarkDocument (userContext) {\n const theClass = BOOK('Bookmark')\n const fileTail = 'bookmarks.ttl'\n const isPublic = true\n\n await findAppInstances(userContext, theClass, isPublic) // public -- only look for public links\n\n if (userContext.instances && userContext.instances.length > 0) {\n userContext.bookmarkDocument = userContext.instances[0]\n if (userContext.instances.length > 1) {\n alert('More than one bookmark file! ' + userContext.instances)\n }\n } else {\n if (userContext.publicProfile) {\n // publicProfile or preferencesFile\n const newBookmarkFile = $rdf.sym(\n userContext.publicProfile.dir().uri + fileTail\n )\n try {\n debug.log('Creating new bookmark file ' + newBookmarkFile)\n await createIfNotExists(newBookmarkFile)\n } catch (e) {\n alert.error(\"Can't make fresh bookmark file:\" + e)\n return userContext\n }\n await registerInTypeIndex(\n newBookmarkFile,\n userContext.index,\n theClass\n )\n userContext.bookmarkDocument = newBookmarkFile\n } else {\n alert('You seem to have no bookmark file and not even a profile file.')\n }\n }\n return userContext\n}\n\n/** Add a bookmark\n */\n\nasync function addBookmark (context, target) {\n /* like\n @prefix terms: <http://purl.org/dc/terms/>.\n @prefix bookm: <http://www.w3.org/2002/01/bookmark#>.\n @prefix n0: <http://xmlns.com/foaf/0.1/>.\n <> terms:references <#0.5534145389246576>.\n <#0.5534145389246576>\n a bookm:Bookmark;\n terms:created \"2019-01-26T20:26:44.374Z\"^^XML:dateTime;\n terms:title \"Herons\";\n bookm:recalls wiki:Heron;\n n0:maker c:me.\n */\n let title = ''\n const me = authn.currentUser() // If already logged on\n if (!me) throw new Error('Must be logged on to add Bookmark')\n\n const author = store.any(target, ns.foaf('maker'))\n title =\n label(author) + ': ' + store.anyValue(target, ns.sioc('content')).slice(0, 80) // @@ add chat title too?\n const bookmarkDoc = context.bookmarkDocument\n const bookmark = UI.widgets.newThing(bookmarkDoc, title)\n const ins = [\n $rdf.st(bookmarkDoc, UI.ns.dct('references'), bookmark, bookmarkDoc),\n $rdf.st(bookmark, UI.ns.rdf('type'), BOOK('Bookmark'), bookmarkDoc),\n $rdf.st(bookmark, UI.ns.dct('created'), new Date(), bookmarkDoc),\n $rdf.st(bookmark, BOOK('recalls'), target, bookmarkDoc),\n $rdf.st(bookmark, UI.ns.foaf('maker'), me, bookmarkDoc),\n $rdf.st(bookmark, UI.ns.dct('title'), title, bookmarkDoc)\n ]\n try {\n await updatePromise([], ins) // 20190118A\n } catch (e) {\n const msg = 'Making bookmark: ' + e\n alert.error(msg)\n return null\n }\n return bookmark\n}\n\nexport async function toggleBookmark (userContext, target, bookmarkButton) {\n await store.fetcher.load(userContext.bookmarkDocument)\n const bookmarks = store.each(\n null,\n BOOK('recalls'),\n target,\n userContext.bookmarkDocument\n )\n if (bookmarks.length) {\n // delete\n if (!confirm('Delete bookmark on this?' + bookmarks.length)) return\n for (let i = 0; i < bookmarks.length; i++) {\n try {\n await updatePromise(store.connectedStatements(bookmarks[i]), [])\n bookmarkButton.style.backgroundColor = 'white'\n debug.log('Bookmark deleted: ' + bookmarks[i])\n } catch (e) {\n debug.error('Cant delete bookmark:' + e)\n alert('Cant delete bookmark:' + e)\n }\n }\n } else {\n const bookmark = await addBookmark(userContext, target)\n bookmarkButton.style.backgroundColor = 'yellow'\n debug.log('Bookmark added: ' + bookmark)\n }\n}\n\nexport async function renderBookmarksButton (userContext, target) {\n async function setBookmarkButtonColor (bookmarkButton) {\n await store.fetcher.load(userContext.bookmarkDocument)\n const bookmarked = store.any(\n null,\n BOOK('recalls'),\n bookmarkButton.target,\n userContext.bookmarkDocument\n )\n bookmarkButton.style = UI.style.buttonStyle\n if (bookmarked) bookmarkButton.style.backgroundColor = 'yellow'\n }\n\n let bookmarkButton\n if (userContext.bookmarkDocument) {\n bookmarkButton = UI.widgets.button(\n dom,\n UI.icons.iconBase + BOOKMARK_ICON,\n label(BOOK('Bookmark')),\n () => {\n toggleBookmark(userContext, target, bookmarkButton)\n }\n )\n bookmarkButton.target = target\n await setBookmarkButtonColor(bookmarkButton)\n return bookmarkButton\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"bookmarks.js","names":["UI","icons","ns","media","pad","rdf","style","utils","widgets","$rdf","BOOK","Namespace","BOOKMARK_ICON","label","dom","window","document","createIfNotExists","doc","Promise","resolve","reject","store","fetcher","load","then","response","debug","log","err","status","webOperation","uri","data","contentType","requested","updatePromise","del","ins","updater","update","ok","errorBody","Error","findBookmarkDocument","userContext","theClass","fileTail","isPublic","findAppInstances","instances","length","bookmarkDocument","alert","publicProfile","newBookmarkFile","sym","dir","error","registerInTypeIndex","index","addBookmark","context","target","title","me","authn","currentUser","author","any","foaf","anyValue","sioc","slice","bookmarkDoc","bookmark","newThing","st","dct","Date","msg","toggleBookmark","bookmarkButton","bookmarks","each","confirm","i","connectedStatements","backgroundColor","renderBookmarksButton","setBookmarkButtonColor","bookmarked","buttonStyle","button","iconBase"],"sources":["../../src/chat/bookmarks.js"],"sourcesContent":["/**\n * Functions related to chat and bookmarks\n * @packageDocumentation\n */\n\n/* global alert confirm */\nimport * as debug from '../debug'\nimport { icons } from '../iconBase'\nimport { media } from '../media/index'\nimport * as ns from '../ns'\nimport * as pad from '../pad'\nimport * as rdf from 'rdflib' // pull in first avoid cross-refs\nimport * as style from '../style'\nimport * as utils from '../utils'\nimport * as widgets from '../widgets'\nimport { store, registerInTypeIndex, authn } from 'solid-logic'\nimport { findAppInstances } from '../login/login'\n\nconst UI = { icons, ns, media, pad, rdf, style, utils, widgets }\nconst $rdf = UI.rdf\n\nconst BOOK = $rdf.Namespace('http://www.w3.org/2002/01/bookmark#')\nconst BOOKMARK_ICON = 'noun_45961.svg'\n\nconst label = utils.label\nconst dom = window.document || null\n\n/** Create a resource if it really does not exist\n * Be absolutely sure something does not exist before creating a new empty file\n * as otherwise existing could be deleted.\n * @param doc {NamedNode} - The resource\n */\nfunction createIfNotExists (doc) {\n return new Promise(function (resolve, reject) {\n store.fetcher.load(doc).then(\n response => {\n debug.log('createIfNotExists doc exists, all good ' + doc)\n // store.fetcher.webOperation('HEAD', doc.uri).then(response => {\n resolve(response)\n },\n err => {\n if (err.response.status === 404) {\n debug.log(\n 'createIfNotExists doc does NOT exist, will create... ' + doc\n )\n\n store.fetcher\n .webOperation('PUT', doc.uri, {\n data: '',\n contentType: 'text/turtle'\n })\n .then(\n response => {\n // fetcher.requested[doc.uri] = 'done' // do not need to read ?? but no headers\n delete store.fetcher.requested[doc.uri] // delete cached 404 error\n debug.log('createIfNotExists doc created ok ' + doc)\n resolve(response)\n },\n err => {\n debug.log('createIfNotExists doc FAILED: ' + doc + ': ' + err)\n reject(err)\n }\n )\n } else {\n debug.log(\n 'createIfNotExists doc load error NOT 404: ' + doc + ': ' + err\n )\n reject(err)\n }\n }\n )\n })\n}\n\n// @@@@ use the one in rdflib.js when it is avaiable and delete this\nfunction updatePromise (del, ins) {\n return new Promise(function (resolve, reject) {\n store.updater.update(del, ins, function (uri, ok, errorBody) {\n if (!ok) {\n reject(new Error(errorBody))\n } else {\n resolve()\n }\n }) // callback\n }) // promise\n}\n\n/* Bookmarking\n */\n/** Find a user's bookmarks\n */\nexport async function findBookmarkDocument (userContext) {\n const theClass = BOOK('Bookmark')\n const fileTail = 'bookmarks.ttl'\n const isPublic = true\n\n await findAppInstances(userContext, theClass, isPublic) // public -- only look for public links\n\n if (userContext.instances && userContext.instances.length > 0) {\n userContext.bookmarkDocument = userContext.instances[0]\n if (userContext.instances.length > 1) {\n alert('More than one bookmark file! ' + userContext.instances)\n }\n } else {\n if (userContext.publicProfile) {\n // publicProfile or preferencesFile\n const newBookmarkFile = $rdf.sym(\n userContext.publicProfile.dir().uri + fileTail\n )\n try {\n debug.log('Creating new bookmark file ' + newBookmarkFile)\n await createIfNotExists(newBookmarkFile)\n } catch (e) {\n alert.error(\"Can't make fresh bookmark file:\" + e)\n return userContext\n }\n await registerInTypeIndex(\n newBookmarkFile,\n userContext.index,\n theClass\n )\n userContext.bookmarkDocument = newBookmarkFile\n } else {\n alert('You seem to have no bookmark file and not even a profile file.')\n }\n }\n return userContext\n}\n\n/** Add a bookmark\n */\n\nasync function addBookmark (context, target) {\n /* like\n @prefix terms: <http://purl.org/dc/terms/>.\n @prefix bookm: <http://www.w3.org/2002/01/bookmark#>.\n @prefix n0: <http://xmlns.com/foaf/0.1/>.\n <> terms:references <#0.5534145389246576>.\n <#0.5534145389246576>\n a bookm:Bookmark;\n terms:created \"2019-01-26T20:26:44.374Z\"^^XML:dateTime;\n terms:title \"Herons\";\n bookm:recalls wiki:Heron;\n n0:maker c:me.\n */\n let title = ''\n const me = authn.currentUser() // If already logged on\n if (!me) throw new Error('Must be logged on to add Bookmark')\n\n const author = store.any(target, ns.foaf('maker'))\n title =\n label(author) + ': ' + store.anyValue(target, ns.sioc('content')).slice(0, 80) // @@ add chat title too?\n const bookmarkDoc = context.bookmarkDocument\n const bookmark = UI.widgets.newThing(bookmarkDoc, title)\n const ins = [\n $rdf.st(bookmarkDoc, UI.ns.dct('references'), bookmark, bookmarkDoc),\n $rdf.st(bookmark, UI.ns.rdf('type'), BOOK('Bookmark'), bookmarkDoc),\n $rdf.st(bookmark, UI.ns.dct('created'), new Date(), bookmarkDoc),\n $rdf.st(bookmark, BOOK('recalls'), target, bookmarkDoc),\n $rdf.st(bookmark, UI.ns.foaf('maker'), me, bookmarkDoc),\n $rdf.st(bookmark, UI.ns.dct('title'), title, bookmarkDoc)\n ]\n try {\n await updatePromise([], ins) // 20190118A\n } catch (e) {\n const msg = 'Making bookmark: ' + e\n alert.error(msg)\n return null\n }\n return bookmark\n}\n\nexport async function toggleBookmark (userContext, target, bookmarkButton) {\n await store.fetcher.load(userContext.bookmarkDocument)\n const bookmarks = store.each(\n null,\n BOOK('recalls'),\n target,\n userContext.bookmarkDocument\n )\n if (bookmarks.length) {\n // delete\n if (!confirm('Delete bookmark on this?' + bookmarks.length)) return\n for (let i = 0; i < bookmarks.length; i++) {\n try {\n await updatePromise(store.connectedStatements(bookmarks[i]), [])\n bookmarkButton.style.backgroundColor = 'white'\n debug.log('Bookmark deleted: ' + bookmarks[i])\n } catch (e) {\n debug.error('Cant delete bookmark:' + e)\n alert('Cant delete bookmark:' + e)\n }\n }\n } else {\n const bookmark = await addBookmark(userContext, target)\n bookmarkButton.style.backgroundColor = 'yellow'\n debug.log('Bookmark added: ' + bookmark)\n }\n}\n\nexport async function renderBookmarksButton (userContext, target) {\n async function setBookmarkButtonColor (bookmarkButton) {\n await store.fetcher.load(userContext.bookmarkDocument)\n const bookmarked = store.any(\n null,\n BOOK('recalls'),\n bookmarkButton.target,\n userContext.bookmarkDocument\n )\n bookmarkButton.style = UI.style.buttonStyle\n if (bookmarked) bookmarkButton.style.backgroundColor = 'yellow'\n }\n\n let bookmarkButton\n if (userContext.bookmarkDocument) {\n bookmarkButton = UI.widgets.button(\n dom,\n UI.icons.iconBase + BOOKMARK_ICON,\n label(BOOK('Bookmark')),\n () => {\n toggleBookmark(userContext, target, bookmarkButton)\n }\n )\n bookmarkButton.target = target\n await setBookmarkButtonColor(bookmarkButton)\n return bookmarkButton\n }\n}\n"],"mappings":"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"}