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.
- package/LICENSE.md +0 -0
- package/README.md +0 -0
- package/dist/index.html +0 -0
- package/dist/main.js +50483 -50370
- package/dist/main.js.map +1 -1
- package/lib/acl/access-controller.d.ts +0 -0
- package/lib/acl/access-controller.d.ts.map +0 -0
- package/lib/acl/access-controller.js +90 -98
- package/lib/acl/access-controller.js.map +1 -1
- package/lib/acl/access-groups.d.ts +0 -0
- package/lib/acl/access-groups.d.ts.map +0 -0
- package/lib/acl/access-groups.js +82 -90
- package/lib/acl/access-groups.js.map +1 -1
- package/lib/acl/acl-control.d.ts +0 -0
- package/lib/acl/acl-control.d.ts.map +0 -0
- package/lib/acl/acl-control.js +50 -54
- package/lib/acl/acl-control.js.map +1 -1
- package/lib/acl/acl.d.ts +3 -3
- package/lib/acl/acl.d.ts.map +1 -1
- package/lib/acl/acl.js +13 -15
- package/lib/acl/acl.js.map +1 -1
- package/lib/acl/add-agent-buttons.d.ts +0 -0
- package/lib/acl/add-agent-buttons.d.ts.map +0 -0
- package/lib/acl/add-agent-buttons.js +142 -154
- package/lib/acl/add-agent-buttons.js.map +1 -1
- package/lib/acl/index.d.ts +0 -0
- package/lib/acl/index.d.ts.map +0 -0
- package/lib/acl/index.js +0 -0
- package/lib/acl/index.js.map +0 -0
- package/lib/acl/styles.d.ts +0 -0
- package/lib/acl/styles.d.ts.map +0 -0
- package/lib/acl/styles.js +0 -0
- package/lib/acl/styles.js.map +0 -0
- package/lib/acl/types.d.ts +6 -6
- package/lib/acl/types.d.ts.map +1 -1
- package/lib/acl/types.js +0 -0
- package/lib/acl/types.js.map +0 -0
- package/lib/chat/bookmarks.js +181 -191
- package/lib/chat/bookmarks.js.map +1 -1
- package/lib/chat/chatLogic.js +96 -104
- package/lib/chat/chatLogic.js.map +1 -1
- package/lib/chat/dateFolder.js +232 -224
- package/lib/chat/dateFolder.js.map +1 -1
- package/lib/chat/infinite.js +634 -658
- package/lib/chat/infinite.js.map +1 -1
- package/lib/chat/message.js +119 -131
- package/lib/chat/message.js.map +1 -1
- package/lib/chat/messageTools.js +106 -114
- package/lib/chat/messageTools.js.map +1 -1
- package/lib/chat/thread.js +16 -18
- package/lib/chat/thread.js.map +1 -1
- package/lib/create/create.d.ts +0 -0
- package/lib/create/create.d.ts.map +0 -0
- package/lib/create/create.js +0 -0
- package/lib/create/create.js.map +0 -0
- package/lib/create/index.d.ts +0 -0
- package/lib/create/index.d.ts.map +0 -0
- package/lib/create/index.js +0 -0
- package/lib/create/index.js.map +0 -0
- package/lib/create/types.d.ts +1 -1
- package/lib/create/types.d.ts.map +1 -1
- package/lib/create/types.js +0 -0
- package/lib/create/types.js.map +0 -0
- package/lib/debug.d.ts +0 -0
- package/lib/debug.d.ts.map +0 -0
- package/lib/debug.js +0 -0
- package/lib/debug.js.map +0 -0
- package/lib/folders.js +0 -0
- package/lib/folders.js.map +0 -0
- package/lib/footer/index.d.ts +1 -1
- package/lib/footer/index.d.ts.map +1 -1
- package/lib/footer/index.js +33 -37
- package/lib/footer/index.js.map +1 -1
- package/lib/footer/styleMap.d.ts +0 -0
- package/lib/footer/styleMap.d.ts.map +0 -0
- package/lib/footer/styleMap.js +0 -0
- package/lib/footer/styleMap.js.map +0 -0
- package/lib/header/empty-profile.d.ts +0 -0
- package/lib/header/empty-profile.d.ts.map +0 -0
- package/lib/header/empty-profile.js +0 -0
- package/lib/header/empty-profile.js.map +0 -0
- package/lib/header/index.d.ts +4 -4
- package/lib/header/index.d.ts.map +1 -1
- package/lib/header/index.js +126 -134
- package/lib/header/index.js.map +1 -1
- package/lib/header/styleMap.d.ts +0 -0
- package/lib/header/styleMap.d.ts.map +0 -0
- package/lib/header/styleMap.js +0 -0
- package/lib/header/styleMap.js.map +0 -0
- package/lib/iconBase.d.ts +0 -0
- package/lib/iconBase.d.ts.map +0 -0
- package/lib/iconBase.js +0 -0
- package/lib/iconBase.js.map +0 -0
- package/lib/icons/solid_logo.d.ts +0 -0
- package/lib/icons/solid_logo.d.ts.map +0 -0
- package/lib/icons/solid_logo.js +0 -0
- package/lib/icons/solid_logo.js.map +0 -0
- package/lib/index.d.ts +0 -0
- package/lib/index.d.ts.map +0 -0
- package/lib/index.js +0 -0
- package/lib/index.js.map +0 -0
- package/lib/jss/index.d.ts +0 -0
- package/lib/jss/index.d.ts.map +0 -0
- package/lib/jss/index.js +0 -0
- package/lib/jss/index.js.map +0 -0
- package/lib/log.d.ts +0 -0
- package/lib/log.d.ts.map +0 -0
- package/lib/log.js +0 -0
- package/lib/log.js.map +0 -0
- package/lib/login/login.d.ts +0 -0
- package/lib/login/login.d.ts.map +0 -0
- package/lib/login/login.js +470 -470
- package/lib/login/login.js.map +1 -1
- package/lib/matrix/index.d.ts +0 -0
- package/lib/matrix/index.d.ts.map +0 -0
- package/lib/matrix/index.js +0 -0
- package/lib/matrix/index.js.map +0 -0
- package/lib/matrix/matrix.d.ts +0 -0
- package/lib/matrix/matrix.d.ts.map +0 -0
- package/lib/matrix/matrix.js +0 -0
- package/lib/matrix/matrix.js.map +0 -0
- package/lib/matrix/types.d.ts +1 -1
- package/lib/matrix/types.d.ts.map +1 -1
- package/lib/matrix/types.js +0 -0
- package/lib/matrix/types.js.map +0 -0
- package/lib/media/index.d.ts +0 -0
- package/lib/media/index.d.ts.map +0 -0
- package/lib/media/index.js +0 -0
- package/lib/media/index.js.map +0 -0
- package/lib/media/media-capture.d.ts +0 -0
- package/lib/media/media-capture.d.ts.map +0 -0
- package/lib/media/media-capture.js +8 -10
- package/lib/media/media-capture.js.map +1 -1
- package/lib/messageArea.js +0 -0
- package/lib/messageArea.js.map +0 -0
- package/lib/noun_Camera_1618446_000000.js +0 -0
- package/lib/noun_Camera_1618446_000000.js.map +0 -0
- package/lib/ns.js +0 -0
- package/lib/ns.js.map +0 -0
- package/lib/pad.d.ts +1 -1
- package/lib/pad.d.ts.map +1 -1
- package/lib/pad.js +0 -0
- package/lib/pad.js.map +0 -0
- package/lib/participation.d.ts +1 -1
- package/lib/participation.d.ts.map +1 -1
- package/lib/participation.js +1 -1
- package/lib/participation.js.map +0 -0
- package/lib/preferences.js +0 -0
- package/lib/preferences.js.map +0 -0
- package/lib/signup/config-default.js +0 -0
- package/lib/signup/config-default.js.map +0 -0
- package/lib/signup/signup.js +0 -0
- package/lib/signup/signup.js.map +0 -0
- package/lib/stories/decorators.js +0 -0
- package/lib/stories/decorators.js.map +0 -0
- package/lib/style.js +0 -0
- package/lib/style.js.map +0 -0
- package/lib/style_multiSelect.js +0 -0
- package/lib/style_multiSelect.js.map +0 -0
- package/lib/table.js +0 -0
- package/lib/table.js.map +0 -0
- package/lib/tabs.d.ts +1 -1
- package/lib/tabs.d.ts.map +1 -1
- package/lib/tabs.js +0 -0
- package/lib/tabs.js.map +0 -0
- package/lib/typings.d.js +0 -0
- package/lib/typings.d.js.map +0 -0
- package/lib/utils/headerFooterHelpers.d.ts +1 -1
- package/lib/utils/headerFooterHelpers.d.ts.map +1 -1
- package/lib/utils/headerFooterHelpers.js +78 -80
- package/lib/utils/headerFooterHelpers.js.map +1 -1
- package/lib/utils/index.js +2 -6
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/label.d.ts +0 -0
- package/lib/utils/label.d.ts.map +0 -0
- package/lib/utils/label.js +0 -0
- package/lib/utils/label.js.map +0 -0
- package/lib/versionInfo.d.ts +0 -0
- package/lib/versionInfo.d.ts.map +0 -0
- package/lib/versionInfo.js +13 -13
- package/lib/versionInfo.js.map +1 -1
- package/lib/widgets/buttons/iconLinks.d.ts +0 -0
- package/lib/widgets/buttons/iconLinks.d.ts.map +0 -0
- package/lib/widgets/buttons/iconLinks.js +0 -0
- package/lib/widgets/buttons/iconLinks.js.map +0 -0
- package/lib/widgets/buttons.d.ts +5 -5
- package/lib/widgets/buttons.d.ts.map +1 -1
- package/lib/widgets/buttons.js +0 -0
- package/lib/widgets/buttons.js.map +0 -0
- package/lib/widgets/dragAndDrop.js +0 -0
- package/lib/widgets/dragAndDrop.js.map +0 -0
- package/lib/widgets/error.d.ts +0 -0
- package/lib/widgets/error.d.ts.map +0 -0
- package/lib/widgets/error.js +0 -0
- package/lib/widgets/error.js.map +0 -0
- package/lib/widgets/forms/autocomplete/autocompleteBar.d.ts +0 -0
- package/lib/widgets/forms/autocomplete/autocompleteBar.d.ts.map +0 -0
- package/lib/widgets/forms/autocomplete/autocompleteBar.js +217 -229
- package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteField.d.ts +0 -0
- package/lib/widgets/forms/autocomplete/autocompleteField.d.ts.map +0 -0
- package/lib/widgets/forms/autocomplete/autocompleteField.js +70 -74
- package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts +2 -2
- package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompletePicker.js +363 -379
- package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
- package/lib/widgets/forms/autocomplete/language.d.ts +0 -0
- package/lib/widgets/forms/autocomplete/language.d.ts.map +0 -0
- package/lib/widgets/forms/autocomplete/language.js +79 -83
- package/lib/widgets/forms/autocomplete/language.js.map +1 -1
- package/lib/widgets/forms/autocomplete/publicData.d.ts +2 -2
- package/lib/widgets/forms/autocomplete/publicData.d.ts.map +1 -1
- package/lib/widgets/forms/autocomplete/publicData.js +263 -281
- package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
- package/lib/widgets/forms/basic.d.ts +0 -0
- package/lib/widgets/forms/basic.d.ts.map +0 -0
- package/lib/widgets/forms/basic.js +0 -0
- package/lib/widgets/forms/basic.js.map +0 -0
- package/lib/widgets/forms/comment.d.ts +0 -0
- package/lib/widgets/forms/comment.d.ts.map +0 -0
- package/lib/widgets/forms/comment.js +0 -0
- package/lib/widgets/forms/comment.js.map +0 -0
- package/lib/widgets/forms/fieldFunction.d.ts +1 -1
- package/lib/widgets/forms/fieldFunction.d.ts.map +1 -1
- package/lib/widgets/forms/fieldFunction.js +1 -3
- package/lib/widgets/forms/fieldFunction.js.map +1 -1
- package/lib/widgets/forms/fieldParams.d.ts +1 -1
- package/lib/widgets/forms/fieldParams.d.ts.map +1 -1
- package/lib/widgets/forms/fieldParams.js +0 -0
- package/lib/widgets/forms/fieldParams.js.map +0 -0
- package/lib/widgets/forms/formStyle.d.ts +0 -0
- package/lib/widgets/forms/formStyle.d.ts.map +0 -0
- package/lib/widgets/forms/formStyle.js +0 -0
- package/lib/widgets/forms/formStyle.js.map +0 -0
- package/lib/widgets/forms.js +197 -225
- package/lib/widgets/forms.js.map +1 -1
- package/lib/widgets/index.js +0 -0
- package/lib/widgets/index.js.map +0 -0
- package/lib/widgets/multiSelect.js +4 -4
- package/lib/widgets/multiSelect.js.map +1 -1
- package/lib/widgets/peoplePicker.js +0 -0
- package/lib/widgets/peoplePicker.js.map +0 -0
- package/lib/widgets/widgetHelpers.d.ts +0 -0
- package/lib/widgets/widgetHelpers.d.ts.map +0 -0
- package/lib/widgets/widgetHelpers.js +0 -0
- package/lib/widgets/widgetHelpers.js.map +0 -0
- package/package.json +34 -31
package/lib/chat/bookmarks.js
CHANGED
|
@@ -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
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
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
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
_context.next =
|
|
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
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
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
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
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
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
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
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
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
|
-
|
|
266
|
-
|
|
267
|
-
_context3.
|
|
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
|
-
|
|
275
|
-
|
|
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
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
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
|
-
|
|
302
|
-
|
|
303
|
-
_setBookmarkButtonColor = function
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
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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"}
|