solid-ui 2.5.1 → 2.6.0

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 (143) hide show
  1. package/README.md +4 -0
  2. package/dist/841.solid-ui.min.js +1 -1
  3. package/dist/841.solid-ui.min.js.map +1 -1
  4. package/dist/_2b19.solid-ui.js.map +1 -1
  5. package/dist/solid-ui.js +42754 -45728
  6. package/dist/solid-ui.js.map +1 -1
  7. package/dist/solid-ui.min.js +1 -1
  8. package/dist/solid-ui.min.js.LICENSE.txt +1 -5
  9. package/dist/solid-ui.min.js.map +1 -1
  10. package/lib/acl/access-controller.js +48 -49
  11. package/lib/acl/access-controller.js.map +1 -1
  12. package/lib/acl/access-groups.js +40 -40
  13. package/lib/acl/access-groups.js.map +1 -1
  14. package/lib/acl/acl-control.js +18 -19
  15. package/lib/acl/acl-control.js.map +1 -1
  16. package/lib/acl/acl.js +4 -5
  17. package/lib/acl/acl.js.map +1 -1
  18. package/lib/acl/add-agent-buttons.js +51 -52
  19. package/lib/acl/add-agent-buttons.js.map +1 -1
  20. package/lib/chat/bookmarks.js +76 -77
  21. package/lib/chat/bookmarks.js.map +1 -1
  22. package/lib/chat/chatLogic.js +74 -75
  23. package/lib/chat/chatLogic.js.map +1 -1
  24. package/lib/chat/dateFolder.js +66 -67
  25. package/lib/chat/dateFolder.js.map +1 -1
  26. package/lib/chat/infinite.js +218 -220
  27. package/lib/chat/infinite.js.map +1 -1
  28. package/lib/chat/keys.js +62 -63
  29. package/lib/chat/keys.js.map +1 -1
  30. package/lib/chat/message.js +98 -100
  31. package/lib/chat/message.js.map +1 -1
  32. package/lib/chat/messageTools.js +99 -100
  33. package/lib/chat/messageTools.js.map +1 -1
  34. package/lib/chat/signature.d.ts.map +1 -1
  35. package/lib/chat/signature.js +0 -1
  36. package/lib/chat/signature.js.map +1 -1
  37. package/lib/chat/thread.js +57 -61
  38. package/lib/chat/thread.js.map +1 -1
  39. package/lib/create/create.js +1 -2
  40. package/lib/create/create.js.map +1 -1
  41. package/lib/folders.js +1 -4
  42. package/lib/folders.js.map +1 -1
  43. package/lib/footer/index.d.ts.map +1 -1
  44. package/lib/footer/index.js +14 -16
  45. package/lib/footer/index.js.map +1 -1
  46. package/lib/header/index.js +34 -36
  47. package/lib/header/index.js.map +1 -1
  48. package/lib/iconBase.d.ts.map +1 -1
  49. package/lib/iconBase.js +0 -1
  50. package/lib/iconBase.js.map +1 -1
  51. package/lib/index.d.ts +1 -1
  52. package/lib/index.d.ts.map +1 -1
  53. package/lib/index.js +5 -5
  54. package/lib/index.js.map +1 -1
  55. package/lib/log.d.ts +7 -7
  56. package/lib/log.d.ts.map +1 -1
  57. package/lib/log.js +2 -2
  58. package/lib/log.js.map +1 -1
  59. package/lib/login/login.js +217 -222
  60. package/lib/login/login.js.map +1 -1
  61. package/lib/matrix/matrix.js +1 -2
  62. package/lib/matrix/matrix.js.map +1 -1
  63. package/lib/matrix/types.js.map +1 -1
  64. package/lib/media/media-capture.js +3 -4
  65. package/lib/media/media-capture.js.map +1 -1
  66. package/lib/messageArea.js +1 -4
  67. package/lib/messageArea.js.map +1 -1
  68. package/lib/ns.js +1 -2
  69. package/lib/ns.js.map +1 -1
  70. package/lib/pad.js +1 -2
  71. package/lib/pad.js.map +1 -1
  72. package/lib/participation.js +1 -2
  73. package/lib/participation.js.map +1 -1
  74. package/lib/preferences.js +1 -2
  75. package/lib/preferences.js.map +1 -1
  76. package/lib/table.js +1 -2
  77. package/lib/table.js.map +1 -1
  78. package/lib/tabs.d.ts.map +1 -1
  79. package/lib/tabs.js +1 -2
  80. package/lib/tabs.js.map +1 -1
  81. package/lib/utils/headerFooterHelpers.d.ts.map +1 -1
  82. package/lib/utils/headerFooterHelpers.js +36 -36
  83. package/lib/utils/headerFooterHelpers.js.map +1 -1
  84. package/lib/utils/index.js +1 -2
  85. package/lib/utils/index.js.map +1 -1
  86. package/lib/utils/keyHelpers/accessData.d.ts.map +1 -1
  87. package/lib/utils/keyHelpers/accessData.js +33 -34
  88. package/lib/utils/keyHelpers/accessData.js.map +1 -1
  89. package/lib/utils/keyHelpers/acl.d.ts.map +1 -1
  90. package/lib/utils/keyHelpers/acl.js +21 -22
  91. package/lib/utils/keyHelpers/acl.js.map +1 -1
  92. package/lib/utils/keyHelpers/otherHelpers.d.ts.map +1 -1
  93. package/lib/utils/keyHelpers/otherHelpers.js +1 -2
  94. package/lib/utils/keyHelpers/otherHelpers.js.map +1 -1
  95. package/lib/utils/label.js +1 -2
  96. package/lib/utils/label.js.map +1 -1
  97. package/lib/versionInfo.d.ts +4 -3
  98. package/lib/versionInfo.d.ts.map +1 -1
  99. package/lib/versionInfo.js +30 -30
  100. package/lib/versionInfo.js.map +1 -1
  101. package/lib/widgets/buttons/iconLinks.d.ts.map +1 -1
  102. package/lib/widgets/buttons/iconLinks.js +2 -2
  103. package/lib/widgets/buttons/iconLinks.js.map +1 -1
  104. package/lib/widgets/buttons.d.ts +1 -1
  105. package/lib/widgets/buttons.d.ts.map +1 -1
  106. package/lib/widgets/buttons.js +1 -3
  107. package/lib/widgets/buttons.js.map +1 -1
  108. package/lib/widgets/dragAndDrop.js +1 -2
  109. package/lib/widgets/dragAndDrop.js.map +1 -1
  110. package/lib/widgets/error.js +1 -2
  111. package/lib/widgets/error.js.map +1 -1
  112. package/lib/widgets/forms/autocomplete/autocompleteBar.js +47 -48
  113. package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
  114. package/lib/widgets/forms/autocomplete/autocompleteField.js +38 -39
  115. package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
  116. package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts.map +1 -1
  117. package/lib/widgets/forms/autocomplete/autocompletePicker.js +44 -45
  118. package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
  119. package/lib/widgets/forms/autocomplete/language.js +23 -24
  120. package/lib/widgets/forms/autocomplete/language.js.map +1 -1
  121. package/lib/widgets/forms/autocomplete/publicData.d.ts.map +1 -1
  122. package/lib/widgets/forms/autocomplete/publicData.js +91 -93
  123. package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
  124. package/lib/widgets/forms/basic.js +2 -3
  125. package/lib/widgets/forms/basic.js.map +1 -1
  126. package/lib/widgets/forms/comment.js +1 -2
  127. package/lib/widgets/forms/comment.js.map +1 -1
  128. package/lib/widgets/forms/fieldParams.js +1 -2
  129. package/lib/widgets/forms/fieldParams.js.map +1 -1
  130. package/lib/widgets/forms/formStyle.js +1 -2
  131. package/lib/widgets/forms/formStyle.js.map +1 -1
  132. package/lib/widgets/forms.js +79 -80
  133. package/lib/widgets/forms.js.map +1 -1
  134. package/lib/widgets/index.js +1 -2
  135. package/lib/widgets/index.js.map +1 -1
  136. package/lib/widgets/multiSelect.js +1 -2
  137. package/lib/widgets/multiSelect.js.map +1 -1
  138. package/lib/widgets/peoplePicker.js +1 -2
  139. package/lib/widgets/peoplePicker.js.map +1 -1
  140. package/lib/widgets/widgetHelpers.d.ts.map +1 -1
  141. package/lib/widgets/widgetHelpers.js +3 -3
  142. package/lib/widgets/widgetHelpers.js.map +1 -1
  143. package/package.json +57 -57
@@ -15,8 +15,7 @@ var debug = _interopRequireWildcard(require("../debug"));
15
15
  var _solidLogic = require("solid-logic");
16
16
  var ns = _interopRequireWildcard(require("../ns"));
17
17
  var $rdf = _interopRequireWildcard(require("rdflib"));
18
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
19
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
18
+ 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 _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
20
19
  /**
21
20
  * Contains the [[DateFolder]] class
22
21
  * This tracks data stored in dated folders and sub-folders
@@ -31,14 +30,14 @@ function emptyLeaf(_x) {
31
30
  */
32
31
  function _emptyLeaf() {
33
32
  _emptyLeaf = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5(leafDocument) {
34
- return _regenerator["default"].wrap(function _callee5$(_context5) {
33
+ return _regenerator["default"].wrap(function (_context5) {
35
34
  while (1) switch (_context5.prev = _context5.next) {
36
35
  case 0:
37
- _context5.next = 2;
36
+ _context5.next = 1;
38
37
  return _solidLogic.store.fetcher.load(leafDocument);
39
- case 2:
38
+ case 1:
40
39
  return _context5.abrupt("return", !(_solidLogic.store.statementsMatching(null, ns.dct('created'), null, leafDocument).length > 0));
41
- case 3:
40
+ case 2:
42
41
  case "end":
43
42
  return _context5.stop();
44
43
  }
@@ -86,13 +85,13 @@ var DateFolder = exports.DateFolder = /*#__PURE__*/function () {
86
85
  value: function () {
87
86
  var _loadPrevious = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(date, backwards) {
88
87
  var previousPeriod, _previousPeriod, folder, found, leafDocument, nextDate;
89
- return _regenerator["default"].wrap(function _callee2$(_context2) {
88
+ return _regenerator["default"].wrap(function (_context2) {
90
89
  while (1) switch (_context2.prev = _context2.next) {
91
90
  case 0:
92
91
  _previousPeriod = function _previousPeriod3() {
93
92
  _previousPeriod = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(file, level) {
94
- var younger, suitable, lastOrFirst, parent, siblings, _folder, uncle, cousins, result;
95
- return _regenerator["default"].wrap(function _callee$(_context) {
93
+ var younger, suitable, lastOrFirst, parent, siblings, _folder, uncle, cousins, result, _t;
94
+ return _regenerator["default"].wrap(function (_context) {
96
95
  while (1) switch (_context.prev = _context.next) {
97
96
  case 0:
98
97
  lastOrFirst = function _lastOrFirst(siblings) {
@@ -112,64 +111,64 @@ var DateFolder = exports.DateFolder = /*#__PURE__*/function () {
112
111
  };
113
112
  // debug.log(' previousPeriod level' + level + ' file ' + file)
114
113
  parent = file.dir();
115
- _context.prev = 4;
116
- _context.next = 7;
114
+ _context.prev = 1;
115
+ _context.next = 2;
117
116
  return _solidLogic.store.fetcher.load(parent);
118
- case 7:
117
+ case 2:
119
118
  siblings = _solidLogic.store.each(parent, ns.ldp('contains'));
120
119
  siblings = siblings.filter(younger);
121
120
  _folder = lastOrFirst(siblings);
122
121
  if (!_folder) {
123
- _context.next = 12;
122
+ _context.next = 3;
124
123
  break;
125
124
  }
126
125
  return _context.abrupt("return", _folder);
127
- case 12:
128
- _context.next = 22;
126
+ case 3:
127
+ _context.next = 6;
129
128
  break;
130
- case 14:
131
- _context.prev = 14;
132
- _context.t0 = _context["catch"](4);
133
- if (!(_context.t0.response && _context.t0.response.status && _context.t0.response.status === 404)) {
134
- _context.next = 20;
129
+ case 4:
130
+ _context.prev = 4;
131
+ _t = _context["catch"](1);
132
+ if (!(_t.response && _t.response.status && _t.response.status === 404)) {
133
+ _context.next = 5;
135
134
  break;
136
135
  }
137
136
  debug.log('Error 404 for chat parent file ' + parent);
138
- _context.next = 22;
137
+ _context.next = 6;
139
138
  break;
140
- case 20:
139
+ case 5:
141
140
  debug.log('*** Error NON 404 for chat parent file ' + parent);
142
141
  // statusTR.appendChild(widgets.errorMessageBlock(dom, err, 'pink'))
143
- throw new Error("*** ".concat(_context.t0.message, " for chat folder ").concat(parent));
144
- case 22:
142
+ throw new Error("*** ".concat(_t.message, " for chat folder ").concat(parent));
143
+ case 6:
145
144
  if (!(level === 0)) {
146
- _context.next = 24;
145
+ _context.next = 7;
147
146
  break;
148
147
  }
149
148
  return _context.abrupt("return", null);
150
- case 24:
151
- _context.next = 26;
149
+ case 7:
150
+ _context.next = 8;
152
151
  return previousPeriod(parent, level - 1);
153
- case 26:
152
+ case 8:
154
153
  uncle = _context.sent;
155
154
  if (uncle) {
156
- _context.next = 29;
155
+ _context.next = 9;
157
156
  break;
158
157
  }
159
158
  return _context.abrupt("return", null);
160
- case 29:
161
- _context.next = 31;
159
+ case 9:
160
+ _context.next = 10;
162
161
  return _solidLogic.store.fetcher.load(uncle);
163
- case 31:
162
+ case 10:
164
163
  cousins = _solidLogic.store.each(uncle, ns.ldp('contains'));
165
164
  result = lastOrFirst(cousins); // debug.log(' previousPeriod: returning cousins at level ' + level, cousins)
166
165
  // debug.log(' previousPeriod: returning result at level ' + level, result)
167
166
  return _context.abrupt("return", result);
168
- case 34:
167
+ case 11:
169
168
  case "end":
170
169
  return _context.stop();
171
170
  }
172
- }, _callee, null, [[4, 14]]);
171
+ }, _callee, null, [[1, 4]]);
173
172
  }));
174
173
  return _previousPeriod.apply(this, arguments);
175
174
  };
@@ -177,43 +176,43 @@ var DateFolder = exports.DateFolder = /*#__PURE__*/function () {
177
176
  return _previousPeriod.apply(this, arguments);
178
177
  }; // previousPeriod
179
178
  folder = this.leafDocumentFromDate(date).dir();
180
- case 3:
179
+ case 1:
181
180
  if (!true) {
182
- _context2.next = 23;
181
+ _context2.next = 8;
183
182
  break;
184
183
  }
185
- _context2.next = 6;
184
+ _context2.next = 2;
186
185
  return previousPeriod(folder, 3);
187
- case 6:
186
+ case 2:
188
187
  found = _context2.sent;
189
188
  if (!found) {
190
- _context2.next = 20;
189
+ _context2.next = 6;
191
190
  break;
192
191
  }
193
192
  leafDocument = _solidLogic.store.sym(found.uri + this.leafFileName);
194
193
  nextDate = this.dateFromLeafDocument(leafDocument);
195
- _context2.next = 12;
194
+ _context2.next = 3;
196
195
  return emptyLeaf(leafDocument);
197
- case 12:
196
+ case 3:
198
197
  if (_context2.sent) {
199
- _context2.next = 16;
198
+ _context2.next = 4;
200
199
  break;
201
200
  }
202
201
  return _context2.abrupt("return", nextDate);
203
- case 16:
202
+ case 4:
204
203
  // debug.log(' loadPrevious: skipping empty ' + leafDocument)
205
204
  date = nextDate;
206
205
  folder = this.leafDocumentFromDate(date).dir();
207
206
  // debug.log(' loadPrevious: moved back to ' + folder)
208
- case 18:
209
- _context2.next = 21;
207
+ case 5:
208
+ _context2.next = 7;
210
209
  break;
211
- case 20:
210
+ case 6:
212
211
  return _context2.abrupt("return", null);
213
- case 21:
214
- _context2.next = 3;
212
+ case 7:
213
+ _context2.next = 1;
215
214
  break;
216
- case 23:
215
+ case 8:
217
216
  case "end":
218
217
  return _context2.stop();
219
218
  }
@@ -229,13 +228,13 @@ var DateFolder = exports.DateFolder = /*#__PURE__*/function () {
229
228
  value: function () {
230
229
  var _firstLeaf = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4(backwards) {
231
230
  var folderStore, folderFetcher, earliestSubfolder, _earliestSubfolder, y, month, d, leafDocument, leafObjects, msg, sortMe;
232
- return _regenerator["default"].wrap(function _callee4$(_context4) {
231
+ return _regenerator["default"].wrap(function (_context4) {
233
232
  while (1) switch (_context4.prev = _context4.next) {
234
233
  case 0:
235
234
  _earliestSubfolder = function _earliestSubfolder3() {
236
235
  _earliestSubfolder = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(parent) {
237
236
  var suitable, kids;
238
- return _regenerator["default"].wrap(function _callee3$(_context3) {
237
+ return _regenerator["default"].wrap(function (_context3) {
239
238
  while (1) switch (_context3.prev = _context3.next) {
240
239
  case 0:
241
240
  suitable = function _suitable2(x) {
@@ -246,26 +245,26 @@ var DateFolder = exports.DateFolder = /*#__PURE__*/function () {
246
245
  // debug.log(' parent ' + parent)
247
246
  delete folderFetcher.requested[parent.uri];
248
247
  // try {
249
- _context3.next = 4;
248
+ _context3.next = 1;
250
249
  return folderFetcher.load(parent, {
251
250
  force: true
252
251
  });
253
- case 4:
252
+ case 1:
254
253
  // Force fetch as will have changed
255
254
  // }catch (err) {
256
255
  // }
257
256
  kids = folderStore.each(parent, ns.ldp('contains'));
258
257
  kids = kids.filter(suitable);
259
258
  if (!(kids.length === 0)) {
260
- _context3.next = 8;
259
+ _context3.next = 2;
261
260
  break;
262
261
  }
263
262
  throw new Error(' @@@ No children to parent2 ' + parent);
264
- case 8:
263
+ case 2:
265
264
  kids.sort();
266
265
  if (backwards) kids.reverse();
267
266
  return _context3.abrupt("return", kids[0]);
268
- case 11:
267
+ case 3:
269
268
  case "end":
270
269
  return _context3.stop();
271
270
  }
@@ -279,31 +278,31 @@ var DateFolder = exports.DateFolder = /*#__PURE__*/function () {
279
278
  // backwards -> last leafObject
280
279
  folderStore = $rdf.graph();
281
280
  folderFetcher = new $rdf.Fetcher(folderStore);
282
- _context4.next = 6;
281
+ _context4.next = 1;
283
282
  return earliestSubfolder(this.root.dir());
284
- case 6:
283
+ case 1:
285
284
  y = _context4.sent;
286
- _context4.next = 9;
285
+ _context4.next = 2;
287
286
  return earliestSubfolder(y);
288
- case 9:
287
+ case 2:
289
288
  month = _context4.sent;
290
- _context4.next = 12;
289
+ _context4.next = 3;
291
290
  return earliestSubfolder(month);
292
- case 12:
291
+ case 3:
293
292
  d = _context4.sent;
294
293
  leafDocument = $rdf.sym(d.uri + 'chat.ttl');
295
- _context4.next = 16;
294
+ _context4.next = 4;
296
295
  return folderFetcher.load(leafDocument);
297
- case 16:
296
+ case 4:
298
297
  leafObjects = folderStore.each(this.root, this.membershipProperty, null, leafDocument);
299
298
  if (!(leafObjects.length === 0)) {
300
- _context4.next = 21;
299
+ _context4.next = 5;
301
300
  break;
302
301
  }
303
302
  msg = ' INCONSISTENCY -- no chat leafObject in file ' + leafDocument;
304
303
  debug.trace(msg);
305
304
  throw new Error(msg);
306
- case 21:
305
+ case 5:
307
306
  sortMe = leafObjects.map(function (leafObject) {
308
307
  return [folderStore.any(leafObject, ns.dct('created')), leafObject];
309
308
  });
@@ -313,7 +312,7 @@ var DateFolder = exports.DateFolder = /*#__PURE__*/function () {
313
312
  (backwards ? 'Latest' : 'Earliest') + ' leafObject is ' + sortMe[0][1]
314
313
  ) */
315
314
  return _context4.abrupt("return", sortMe[0][1]);
316
- case 25:
315
+ case 6:
317
316
  case "end":
318
317
  return _context4.stop();
319
318
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dateFolder.js","names":["debug","_interopRequireWildcard","require","_solidLogic","ns","$rdf","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","emptyLeaf","_x","_emptyLeaf","apply","arguments","_asyncToGenerator2","_regenerator","mark","_callee5","leafDocument","wrap","_callee5$","_context5","prev","next","store","fetcher","load","abrupt","statementsMatching","dct","length","stop","DateFolder","exports","rootThing","leafFileName","membershipProperty","_classCallCheck2","root","rootFolder","dir","wf","_createClass2","key","value","leafDocumentFromDate","date","isoDate","toISOString","path","split","replace","uri","sym","dateFromLeafDocument","doc","head","str","slice","Date","_loadPrevious","_callee2","backwards","previousPeriod","_previousPeriod","folder","found","nextDate","_callee2$","_context2","_previousPeriod3","_callee","file","level","younger","suitable","lastOrFirst","parent","siblings","_folder","uncle","cousins","result","_callee$","_context","_lastOrFirst","filter","sort","reverse","pop","_suitable","x","tail","includes","_younger","each","ldp","t0","response","status","log","Error","concat","message","sent","_previousPeriod2","_x4","_x5","loadPrevious","_x2","_x3","_firstLeaf","_callee4","folderStore","folderFetcher","earliestSubfolder","_earliestSubfolder","y","month","d","leafObjects","msg","sortMe","_callee4$","_context4","_earliestSubfolder3","_callee3","kids","_callee3$","_context3","_suitable2","requested","force","_earliestSubfolder2","_x7","graph","Fetcher","trace","map","leafObject","any","firstLeaf","_x6"],"sources":["../../src/chat/dateFolder.js"],"sourcesContent":["/**\n * Contains the [[DateFolder]] class\n * This tracks data stored in dated folders and sub-folders\n *\n */\nimport * as debug from '../debug'\nimport { store } from 'solid-logic'\nimport * as ns from '../ns'\nimport * as $rdf from 'rdflib' // pull in first avoid cross-refs\n\nexport async function emptyLeaf (leafDocument) {\n await store.fetcher.load(leafDocument)\n // files can have seealso links. skip ones with no leafObjects with a date\n return !(\n store.statementsMatching(null, ns.dct('created'), null, leafDocument)\n .length > 0\n )\n}\n\n/**\n * Track back through the YYYY/MM/DD tree to find the previous/next day\n */\nexport class DateFolder {\n constructor (rootThing, leafFileName, membershipProperty) {\n this.root = rootThing\n this.rootFolder = rootThing.dir()\n this.leafFileName = leafFileName || 'index.ttl' // typically chat.ttl\n this.membershipProperty = membershipProperty || ns.wf('leafObject')\n }\n\n /* Generate the leaf document (rdf object) from date\n * @returns: <NamedNode> - document\n */\n leafDocumentFromDate (date) {\n // debug.log('incoming date: ' + date)\n const isoDate = date.toISOString() // Like \"2018-05-07T17:42:46.576Z\"\n let path = isoDate.split('T')[0].replace(/-/g, '/') // Like \"2018/05/07\"\n path = this.root.dir().uri + path + '/' + this.leafFileName\n return store.sym(path)\n }\n\n /* Generate a date object from the leaf file name\n */\n dateFromLeafDocument (doc) {\n const head = this.rootFolder.uri.length\n const str = doc.uri.slice(head, head + 10).replace(/\\//g, '-')\n // let date = new Date(str + 'Z') // GMT - but fails in FF - invalid format :-(\n const date = new Date(str) // not explicitly UTC but is assumed so in spec\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse\n // debug.log('Date for ' + doc + ':' + date.toISOString())\n return date\n }\n\n async loadPrevious (date, backwards) {\n async function previousPeriod (file, level) {\n function younger (x) {\n if (backwards ? x.uri >= file.uri : x.uri <= file.uri) return false // later than we want or same -- looking for different\n return true\n }\n function suitable (x) {\n const tail = x.uri\n .slice(0, -1)\n .split('/')\n .slice(-1)[0]\n if (!'0123456789'.includes(tail[0])) return false // not numeric\n return true\n }\n\n function lastOrFirst (siblings) {\n siblings = siblings.filter(suitable)\n siblings.sort() // chronological order\n if (!backwards) siblings.reverse()\n return siblings.pop() // date folder\n }\n // debug.log(' previousPeriod level' + level + ' file ' + file)\n const parent = file.dir()\n try {\n await store.fetcher.load(parent)\n let siblings = store.each(parent, ns.ldp('contains'))\n siblings = siblings.filter(younger)\n const folder = lastOrFirst(siblings)\n if (folder) return folder\n // debug.log(' parent no suitable offspring ' + parent)\n } catch (err) {\n if (err.response && err.response.status && err.response.status === 404) {\n debug.log('Error 404 for chat parent file ' + parent)\n } else {\n debug.log('*** Error NON 404 for chat parent file ' + parent)\n // statusTR.appendChild(widgets.errorMessageBlock(dom, err, 'pink'))\n throw (new Error(`*** ${err.message} for chat folder ${parent}`))\n }\n }\n if (level === 0) {\n // debug.log('loadPrevious: returning as level is zero')\n return null // 3:day, 2:month, 1: year 0: no\n }\n\n const uncle = await previousPeriod(parent, level - 1)\n if (!uncle) {\n // debug.log(' previousPeriod: nothing left before. ', parent)\n return null // reached first ever\n }\n await store.fetcher.load(uncle)\n const cousins = store.each(uncle, ns.ldp('contains'))\n const result = lastOrFirst(cousins)\n // debug.log(' previousPeriod: returning cousins at level ' + level, cousins)\n // debug.log(' previousPeriod: returning result at level ' + level, result)\n\n return result\n } // previousPeriod\n\n let folder = this.leafDocumentFromDate(date).dir()\n while (true) {\n const found = await previousPeriod(folder, 3)\n if (found) {\n const leafDocument = store.sym(found.uri + this.leafFileName)\n const nextDate = this.dateFromLeafDocument(leafDocument)\n if (!await emptyLeaf(leafDocument)) {\n return nextDate\n } else {\n // debug.log(' loadPrevious: skipping empty ' + leafDocument)\n date = nextDate\n folder = this.leafDocumentFromDate(date).dir()\n // debug.log(' loadPrevious: moved back to ' + folder)\n }\n } else {\n return null // no more left\n }\n }\n } // loadPrevious\n\n async firstLeaf (backwards) {\n // backwards -> last leafObject\n const folderStore = $rdf.graph()\n const folderFetcher = new $rdf.Fetcher(folderStore)\n async function earliestSubfolder (parent) {\n function suitable (x) {\n const tail = x.uri\n .slice(0, -1)\n .split('/')\n .slice(-1)[0]\n if (!'0123456789'.includes(tail[0])) return false // not numeric\n return true\n }\n // debug.log(' parent ' + parent)\n delete folderFetcher.requested[parent.uri]\n // try {\n await folderFetcher.load(parent, { force: true }) // Force fetch as will have changed\n // }catch (err) {\n // }\n\n let kids = folderStore.each(parent, ns.ldp('contains'))\n kids = kids.filter(suitable)\n if (kids.length === 0) {\n throw new Error(' @@@ No children to parent2 ' + parent)\n }\n\n kids.sort()\n if (backwards) kids.reverse()\n return kids[0]\n }\n const y = await earliestSubfolder(this.root.dir())\n const month = await earliestSubfolder(y)\n const d = await earliestSubfolder(month)\n const leafDocument = $rdf.sym(d.uri + 'chat.ttl')\n await folderFetcher.load(leafDocument)\n const leafObjects = folderStore.each(\n this.root,\n this.membershipProperty,\n null,\n leafDocument\n )\n if (leafObjects.length === 0) {\n const msg =\n ' INCONSISTENCY -- no chat leafObject in file ' + leafDocument\n debug.trace(msg)\n throw new Error(msg)\n }\n const sortMe = leafObjects.map(leafObject => [\n folderStore.any(leafObject, ns.dct('created')),\n leafObject\n ])\n sortMe.sort()\n if (backwards) sortMe.reverse()\n /* debug.log(\n (backwards ? 'Latest' : 'Earliest') + ' leafObject is ' + sortMe[0][1]\n ) */\n return sortMe[0][1]\n } // firstleafObject\n} // class\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"dateFolder.js","names":["debug","_interopRequireWildcard","require","_solidLogic","ns","$rdf","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t2","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","emptyLeaf","_x","_emptyLeaf","apply","arguments","_asyncToGenerator2","_regenerator","mark","_callee5","leafDocument","wrap","_context5","prev","next","store","fetcher","load","abrupt","statementsMatching","dct","length","stop","DateFolder","exports","rootThing","leafFileName","membershipProperty","_classCallCheck2","root","rootFolder","dir","wf","_createClass2","key","value","leafDocumentFromDate","date","isoDate","toISOString","path","split","replace","uri","sym","dateFromLeafDocument","doc","head","str","slice","Date","_loadPrevious","_callee2","backwards","previousPeriod","_previousPeriod","folder","found","nextDate","_context2","_previousPeriod3","_callee","file","level","younger","suitable","lastOrFirst","parent","siblings","_folder","uncle","cousins","result","_t","_context","_lastOrFirst","filter","sort","reverse","pop","_suitable","x","tail","includes","_younger","each","ldp","response","status","log","Error","concat","message","sent","_previousPeriod2","_x4","_x5","loadPrevious","_x2","_x3","_firstLeaf","_callee4","folderStore","folderFetcher","earliestSubfolder","_earliestSubfolder","y","month","d","leafObjects","msg","sortMe","_context4","_earliestSubfolder3","_callee3","kids","_context3","_suitable2","requested","force","_earliestSubfolder2","_x7","graph","Fetcher","trace","map","leafObject","any","firstLeaf","_x6"],"sources":["../../src/chat/dateFolder.js"],"sourcesContent":["/**\n * Contains the [[DateFolder]] class\n * This tracks data stored in dated folders and sub-folders\n *\n */\nimport * as debug from '../debug'\nimport { store } from 'solid-logic'\nimport * as ns from '../ns'\nimport * as $rdf from 'rdflib' // pull in first avoid cross-refs\n\nexport async function emptyLeaf (leafDocument) {\n await store.fetcher.load(leafDocument)\n // files can have seealso links. skip ones with no leafObjects with a date\n return !(\n store.statementsMatching(null, ns.dct('created'), null, leafDocument)\n .length > 0\n )\n}\n\n/**\n * Track back through the YYYY/MM/DD tree to find the previous/next day\n */\nexport class DateFolder {\n constructor (rootThing, leafFileName, membershipProperty) {\n this.root = rootThing\n this.rootFolder = rootThing.dir()\n this.leafFileName = leafFileName || 'index.ttl' // typically chat.ttl\n this.membershipProperty = membershipProperty || ns.wf('leafObject')\n }\n\n /* Generate the leaf document (rdf object) from date\n * @returns: <NamedNode> - document\n */\n leafDocumentFromDate (date) {\n // debug.log('incoming date: ' + date)\n const isoDate = date.toISOString() // Like \"2018-05-07T17:42:46.576Z\"\n let path = isoDate.split('T')[0].replace(/-/g, '/') // Like \"2018/05/07\"\n path = this.root.dir().uri + path + '/' + this.leafFileName\n return store.sym(path)\n }\n\n /* Generate a date object from the leaf file name\n */\n dateFromLeafDocument (doc) {\n const head = this.rootFolder.uri.length\n const str = doc.uri.slice(head, head + 10).replace(/\\//g, '-')\n // let date = new Date(str + 'Z') // GMT - but fails in FF - invalid format :-(\n const date = new Date(str) // not explicitly UTC but is assumed so in spec\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse\n // debug.log('Date for ' + doc + ':' + date.toISOString())\n return date\n }\n\n async loadPrevious (date, backwards) {\n async function previousPeriod (file, level) {\n function younger (x) {\n if (backwards ? x.uri >= file.uri : x.uri <= file.uri) return false // later than we want or same -- looking for different\n return true\n }\n function suitable (x) {\n const tail = x.uri\n .slice(0, -1)\n .split('/')\n .slice(-1)[0]\n if (!'0123456789'.includes(tail[0])) return false // not numeric\n return true\n }\n\n function lastOrFirst (siblings) {\n siblings = siblings.filter(suitable)\n siblings.sort() // chronological order\n if (!backwards) siblings.reverse()\n return siblings.pop() // date folder\n }\n // debug.log(' previousPeriod level' + level + ' file ' + file)\n const parent = file.dir()\n try {\n await store.fetcher.load(parent)\n let siblings = store.each(parent, ns.ldp('contains'))\n siblings = siblings.filter(younger)\n const folder = lastOrFirst(siblings)\n if (folder) return folder\n // debug.log(' parent no suitable offspring ' + parent)\n } catch (err) {\n if (err.response && err.response.status && err.response.status === 404) {\n debug.log('Error 404 for chat parent file ' + parent)\n } else {\n debug.log('*** Error NON 404 for chat parent file ' + parent)\n // statusTR.appendChild(widgets.errorMessageBlock(dom, err, 'pink'))\n throw (new Error(`*** ${err.message} for chat folder ${parent}`))\n }\n }\n if (level === 0) {\n // debug.log('loadPrevious: returning as level is zero')\n return null // 3:day, 2:month, 1: year 0: no\n }\n\n const uncle = await previousPeriod(parent, level - 1)\n if (!uncle) {\n // debug.log(' previousPeriod: nothing left before. ', parent)\n return null // reached first ever\n }\n await store.fetcher.load(uncle)\n const cousins = store.each(uncle, ns.ldp('contains'))\n const result = lastOrFirst(cousins)\n // debug.log(' previousPeriod: returning cousins at level ' + level, cousins)\n // debug.log(' previousPeriod: returning result at level ' + level, result)\n\n return result\n } // previousPeriod\n\n let folder = this.leafDocumentFromDate(date).dir()\n while (true) {\n const found = await previousPeriod(folder, 3)\n if (found) {\n const leafDocument = store.sym(found.uri + this.leafFileName)\n const nextDate = this.dateFromLeafDocument(leafDocument)\n if (!await emptyLeaf(leafDocument)) {\n return nextDate\n } else {\n // debug.log(' loadPrevious: skipping empty ' + leafDocument)\n date = nextDate\n folder = this.leafDocumentFromDate(date).dir()\n // debug.log(' loadPrevious: moved back to ' + folder)\n }\n } else {\n return null // no more left\n }\n }\n } // loadPrevious\n\n async firstLeaf (backwards) {\n // backwards -> last leafObject\n const folderStore = $rdf.graph()\n const folderFetcher = new $rdf.Fetcher(folderStore)\n async function earliestSubfolder (parent) {\n function suitable (x) {\n const tail = x.uri\n .slice(0, -1)\n .split('/')\n .slice(-1)[0]\n if (!'0123456789'.includes(tail[0])) return false // not numeric\n return true\n }\n // debug.log(' parent ' + parent)\n delete folderFetcher.requested[parent.uri]\n // try {\n await folderFetcher.load(parent, { force: true }) // Force fetch as will have changed\n // }catch (err) {\n // }\n\n let kids = folderStore.each(parent, ns.ldp('contains'))\n kids = kids.filter(suitable)\n if (kids.length === 0) {\n throw new Error(' @@@ No children to parent2 ' + parent)\n }\n\n kids.sort()\n if (backwards) kids.reverse()\n return kids[0]\n }\n const y = await earliestSubfolder(this.root.dir())\n const month = await earliestSubfolder(y)\n const d = await earliestSubfolder(month)\n const leafDocument = $rdf.sym(d.uri + 'chat.ttl')\n await folderFetcher.load(leafDocument)\n const leafObjects = folderStore.each(\n this.root,\n this.membershipProperty,\n null,\n leafDocument\n )\n if (leafObjects.length === 0) {\n const msg =\n ' INCONSISTENCY -- no chat leafObject in file ' + leafDocument\n debug.trace(msg)\n throw new Error(msg)\n }\n const sortMe = leafObjects.map(leafObject => [\n folderStore.any(leafObject, ns.dct('created')),\n leafObject\n ])\n sortMe.sort()\n if (backwards) sortMe.reverse()\n /* debug.log(\n (backwards ? 'Latest' : 'Earliest') + ' leafObject is ' + sortMe[0][1]\n ) */\n return sortMe[0][1]\n } // firstleafObject\n} // class\n"],"mappings":"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","ignoreList":[]}