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
@@ -66,145 +66,157 @@ var DateFolder = /*#__PURE__*/function () {
66
66
  var _loadPrevious = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(date, backwards) {
67
67
  var thisDateFolder, previousPeriod, _previousPeriod, folder, found, doc;
68
68
  return _regenerator["default"].wrap(function _callee3$(_context3) {
69
- while (1) {
70
- switch (_context3.prev = _context3.next) {
71
- case 0:
72
- _previousPeriod = function _previousPeriod3() {
73
- _previousPeriod = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(file, level) {
74
- var younger, suitable, lastNonEmpty, _lastNonEmpty, parent, siblings, folder, uncle, cousins, result;
75
- return _regenerator["default"].wrap(function _callee2$(_context2) {
76
- while (1) {
77
- switch (_context2.prev = _context2.next) {
78
- case 0:
79
- _lastNonEmpty = function _lastNonEmpty3() {
80
- _lastNonEmpty = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(siblings) {
81
- var _folder, leafDocument;
82
- return _regenerator["default"].wrap(function _callee$(_context) {
83
- while (1) {
84
- switch (_context.prev = _context.next) {
85
- case 0:
86
- siblings = siblings.filter(suitable);
87
- siblings.sort(); // chronological order
88
- if (!backwards) siblings.reverse();
89
- if (!(level !== 3)) {
90
- _context.next = 5;
91
- break;
92
- }
93
- return _context.abrupt("return", siblings.pop());
94
- case 5:
95
- if (!siblings.length) {
96
- _context.next = 14;
97
- break;
98
- }
99
- _folder = siblings.pop();
100
- leafDocument = _solidLogic.store.sym(_folder.uri + thisDateFolder.leafFileName);
101
- _context.next = 10;
102
- return _solidLogic.store.fetcher.load(leafDocument);
103
- case 10:
104
- if (!(_solidLogic.store.statementsMatching(null, ns.dct('created'), null, leafDocument).length > 0)) {
105
- _context.next = 12;
106
- break;
107
- }
108
- return _context.abrupt("return", _folder);
109
- case 12:
110
- _context.next = 5;
111
- break;
112
- case 14:
113
- return _context.abrupt("return", null);
114
- case 15:
115
- case "end":
116
- return _context.stop();
117
- }
69
+ while (1) switch (_context3.prev = _context3.next) {
70
+ case 0:
71
+ _previousPeriod = function _previousPeriod3() {
72
+ _previousPeriod = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(file, level) {
73
+ var younger, suitable, lastNonEmpty, _lastNonEmpty, parent, siblings, _folder, uncle, cousins, result;
74
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
75
+ while (1) switch (_context2.prev = _context2.next) {
76
+ case 0:
77
+ _lastNonEmpty = function _lastNonEmpty3() {
78
+ _lastNonEmpty = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(siblings) {
79
+ var _folder2, leafDocument;
80
+ return _regenerator["default"].wrap(function _callee$(_context) {
81
+ while (1) switch (_context.prev = _context.next) {
82
+ case 0:
83
+ siblings = siblings.filter(suitable);
84
+ siblings.sort(); // chronological order
85
+ if (!backwards) siblings.reverse();
86
+ if (!(level !== 3)) {
87
+ _context.next = 5;
88
+ break;
118
89
  }
119
- }, _callee);
120
- }));
121
- return _lastNonEmpty.apply(this, arguments);
122
- };
123
- lastNonEmpty = function _lastNonEmpty2(_x5) {
124
- return _lastNonEmpty.apply(this, arguments);
125
- };
126
- suitable = function _suitable(x) {
127
- var tail = x.uri.slice(0, -1).split('/').slice(-1)[0];
128
- if (!'0123456789'.includes(tail[0])) return false; // not numeric
129
- return true;
130
- };
131
- younger = function _younger(x) {
132
- if (backwards ? x.uri >= file.uri : x.uri <= file.uri) return false; // later than we want or same -- looking for different
133
- return true;
134
- };
135
- // debug.log(' previousPeriod level' + level + ' file ' + file)
136
- parent = file.dir();
137
- _context2.next = 7;
138
- return _solidLogic.store.fetcher.load(parent);
139
- case 7:
140
- siblings = _solidLogic.store.each(parent, ns.ldp('contains'));
141
- siblings = siblings.filter(younger);
142
- _context2.next = 11;
143
- return lastNonEmpty(siblings);
144
- case 11:
145
- folder = _context2.sent;
146
- if (!folder) {
147
- _context2.next = 14;
148
- break;
149
- }
150
- return _context2.abrupt("return", folder);
151
- case 14:
152
- if (!(level === 0)) {
153
- _context2.next = 16;
154
- break;
155
- }
156
- return _context2.abrupt("return", null);
157
- case 16:
158
- _context2.next = 18;
159
- return previousPeriod(parent, level - 1);
160
- case 18:
161
- uncle = _context2.sent;
162
- if (uncle) {
163
- _context2.next = 21;
164
- break;
165
- }
166
- return _context2.abrupt("return", null);
167
- case 21:
168
- _context2.next = 23;
169
- return _solidLogic.store.fetcher.load(uncle);
170
- case 23:
171
- cousins = _solidLogic.store.each(uncle, ns.ldp('contains'));
172
- _context2.next = 26;
173
- return lastNonEmpty(cousins);
174
- case 26:
175
- result = _context2.sent;
176
- return _context2.abrupt("return", result);
177
- case 28:
178
- case "end":
179
- return _context2.stop();
90
+ return _context.abrupt("return", siblings.pop());
91
+ case 5:
92
+ if (!siblings.length) {
93
+ _context.next = 14;
94
+ break;
95
+ }
96
+ _folder2 = siblings.pop();
97
+ leafDocument = _solidLogic.store.sym(_folder2.uri + thisDateFolder.leafFileName);
98
+ _context.next = 10;
99
+ return _solidLogic.store.fetcher.load(leafDocument);
100
+ case 10:
101
+ if (!(_solidLogic.store.statementsMatching(null, ns.dct('created'), null, leafDocument).length > 0)) {
102
+ _context.next = 12;
103
+ break;
104
+ }
105
+ return _context.abrupt("return", _folder2);
106
+ case 12:
107
+ _context.next = 5;
108
+ break;
109
+ case 14:
110
+ return _context.abrupt("return", null);
111
+ case 15:
112
+ case "end":
113
+ return _context.stop();
114
+ }
115
+ }, _callee);
116
+ }));
117
+ return _lastNonEmpty.apply(this, arguments);
118
+ };
119
+ lastNonEmpty = function _lastNonEmpty2(_x5) {
120
+ return _lastNonEmpty.apply(this, arguments);
121
+ };
122
+ suitable = function _suitable(x) {
123
+ var tail = x.uri.slice(0, -1).split('/').slice(-1)[0];
124
+ if (!'0123456789'.includes(tail[0])) return false; // not numeric
125
+ return true;
126
+ };
127
+ younger = function _younger(x) {
128
+ if (backwards ? x.uri >= file.uri : x.uri <= file.uri) return false; // later than we want or same -- looking for different
129
+ return true;
130
+ };
131
+ // debug.log(' previousPeriod level' + level + ' file ' + file)
132
+ parent = file.dir();
133
+ _context2.prev = 5;
134
+ _context2.next = 8;
135
+ return _solidLogic.store.fetcher.load(parent);
136
+ case 8:
137
+ siblings = _solidLogic.store.each(parent, ns.ldp('contains'));
138
+ siblings = siblings.filter(younger);
139
+ _context2.next = 12;
140
+ return lastNonEmpty(siblings);
141
+ case 12:
142
+ _folder = _context2.sent;
143
+ if (!_folder) {
144
+ _context2.next = 15;
145
+ break;
146
+ }
147
+ return _context2.abrupt("return", _folder);
148
+ case 15:
149
+ _context2.next = 25;
150
+ break;
151
+ case 17:
152
+ _context2.prev = 17;
153
+ _context2.t0 = _context2["catch"](5);
154
+ if (!(_context2.t0.response && _context2.t0.response.status && _context2.t0.response.status === 404)) {
155
+ _context2.next = 23;
156
+ break;
157
+ }
158
+ debug.log('Error 404 for chat parent file ' + parent);
159
+ _context2.next = 25;
160
+ break;
161
+ case 23:
162
+ debug.log('*** Error NON 404 for chat parent file ' + parent);
163
+ // statusTR.appendChild(widgets.errorMessageBlock(dom, err, 'pink'))
164
+ throw new Error("*** ".concat(_context2.t0.message, " for chat folder ").concat(parent));
165
+ case 25:
166
+ if (!(level === 0)) {
167
+ _context2.next = 27;
168
+ break;
169
+ }
170
+ return _context2.abrupt("return", null);
171
+ case 27:
172
+ _context2.next = 29;
173
+ return previousPeriod(parent, level - 1);
174
+ case 29:
175
+ uncle = _context2.sent;
176
+ if (uncle) {
177
+ _context2.next = 32;
178
+ break;
180
179
  }
181
- }
182
- }, _callee2);
183
- }));
184
- return _previousPeriod.apply(this, arguments);
185
- };
186
- previousPeriod = function _previousPeriod2(_x3, _x4) {
187
- return _previousPeriod.apply(this, arguments);
188
- };
189
- thisDateFolder = this;
190
- // previousPeriod
191
- folder = this.leafDocumentFromDate(date).dir();
192
- _context3.next = 6;
193
- return previousPeriod(folder, 3);
194
- case 6:
195
- found = _context3.sent;
196
- if (!found) {
197
- _context3.next = 10;
198
- break;
199
- }
200
- doc = _solidLogic.store.sym(found.uri + this.leafFileName);
201
- return _context3.abrupt("return", this.dateFromLeafDocument(doc));
202
- case 10:
203
- return _context3.abrupt("return", null);
204
- case 11:
205
- case "end":
206
- return _context3.stop();
207
- }
180
+ return _context2.abrupt("return", null);
181
+ case 32:
182
+ _context2.next = 34;
183
+ return _solidLogic.store.fetcher.load(uncle);
184
+ case 34:
185
+ cousins = _solidLogic.store.each(uncle, ns.ldp('contains'));
186
+ _context2.next = 37;
187
+ return lastNonEmpty(cousins);
188
+ case 37:
189
+ result = _context2.sent;
190
+ return _context2.abrupt("return", result);
191
+ case 39:
192
+ case "end":
193
+ return _context2.stop();
194
+ }
195
+ }, _callee2, null, [[5, 17]]);
196
+ }));
197
+ return _previousPeriod.apply(this, arguments);
198
+ };
199
+ previousPeriod = function _previousPeriod2(_x3, _x4) {
200
+ return _previousPeriod.apply(this, arguments);
201
+ };
202
+ thisDateFolder = this;
203
+ // previousPeriod
204
+ folder = this.leafDocumentFromDate(date).dir();
205
+ _context3.next = 6;
206
+ return previousPeriod(folder, 3);
207
+ case 6:
208
+ found = _context3.sent;
209
+ if (!found) {
210
+ _context3.next = 10;
211
+ break;
212
+ }
213
+ doc = _solidLogic.store.sym(found.uri + this.leafFileName);
214
+ return _context3.abrupt("return", this.dateFromLeafDocument(doc));
215
+ case 10:
216
+ return _context3.abrupt("return", null);
217
+ case 11:
218
+ case "end":
219
+ return _context3.stop();
208
220
  }
209
221
  }, _callee3, this);
210
222
  }));
@@ -219,94 +231,90 @@ var DateFolder = /*#__PURE__*/function () {
219
231
  var _firstLeaf = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(backwards) {
220
232
  var folderStore, folderFetcher, earliestSubfolder, _earliestSubfolder, y, month, d, leafDocument, leafObjects, msg, sortMe;
221
233
  return _regenerator["default"].wrap(function _callee5$(_context5) {
222
- while (1) {
223
- switch (_context5.prev = _context5.next) {
224
- case 0:
225
- _earliestSubfolder = function _earliestSubfolder3() {
226
- _earliestSubfolder = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(parent) {
227
- var suitable, kids;
228
- return _regenerator["default"].wrap(function _callee4$(_context4) {
229
- while (1) {
230
- switch (_context4.prev = _context4.next) {
231
- case 0:
232
- suitable = function _suitable2(x) {
233
- var tail = x.uri.slice(0, -1).split('/').slice(-1)[0];
234
- if (!'0123456789'.includes(tail[0])) return false; // not numeric
235
- return true;
236
- };
237
- debug.log(' parent ' + parent);
238
- delete folderFetcher.requested[parent.uri];
239
- // try {
240
- _context4.next = 5;
241
- return folderFetcher.load(parent, {
242
- force: true
243
- });
244
- case 5:
245
- // Force fetch as will have changed
246
- // }catch (err) {
247
- // }
248
- kids = folderStore.each(parent, ns.ldp('contains'));
249
- kids = kids.filter(suitable);
250
- if (!(kids.length === 0)) {
251
- _context4.next = 9;
252
- break;
253
- }
254
- throw new Error(' @@@ No children to parent2 ' + parent);
255
- case 9:
256
- kids.sort();
257
- if (backwards) kids.reverse();
258
- return _context4.abrupt("return", kids[0]);
259
- case 12:
260
- case "end":
261
- return _context4.stop();
234
+ while (1) switch (_context5.prev = _context5.next) {
235
+ case 0:
236
+ _earliestSubfolder = function _earliestSubfolder3() {
237
+ _earliestSubfolder = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(parent) {
238
+ var suitable, kids;
239
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
240
+ while (1) switch (_context4.prev = _context4.next) {
241
+ case 0:
242
+ suitable = function _suitable2(x) {
243
+ var tail = x.uri.slice(0, -1).split('/').slice(-1)[0];
244
+ if (!'0123456789'.includes(tail[0])) return false; // not numeric
245
+ return true;
246
+ };
247
+ debug.log(' parent ' + parent);
248
+ delete folderFetcher.requested[parent.uri];
249
+ // try {
250
+ _context4.next = 5;
251
+ return folderFetcher.load(parent, {
252
+ force: true
253
+ });
254
+ case 5:
255
+ // Force fetch as will have changed
256
+ // }catch (err) {
257
+ // }
258
+ kids = folderStore.each(parent, ns.ldp('contains'));
259
+ kids = kids.filter(suitable);
260
+ if (!(kids.length === 0)) {
261
+ _context4.next = 9;
262
+ break;
262
263
  }
263
- }
264
- }, _callee4);
265
- }));
266
- return _earliestSubfolder.apply(this, arguments);
267
- };
268
- earliestSubfolder = function _earliestSubfolder2(_x7) {
269
- return _earliestSubfolder.apply(this, arguments);
270
- };
271
- // backwards -> last leafObject
272
- folderStore = $rdf.graph();
273
- folderFetcher = new $rdf.Fetcher(folderStore);
274
- _context5.next = 6;
275
- return earliestSubfolder(this.root.dir());
276
- case 6:
277
- y = _context5.sent;
278
- _context5.next = 9;
279
- return earliestSubfolder(y);
280
- case 9:
281
- month = _context5.sent;
282
- _context5.next = 12;
283
- return earliestSubfolder(month);
284
- case 12:
285
- d = _context5.sent;
286
- leafDocument = $rdf.sym(d.uri + 'chat.ttl');
287
- _context5.next = 16;
288
- return folderFetcher.load(leafDocument);
289
- case 16:
290
- leafObjects = folderStore.each(this.root, this.membershipProperty, null, leafDocument);
291
- if (!(leafObjects.length === 0)) {
292
- _context5.next = 21;
293
- break;
294
- }
295
- msg = ' INCONSISTENCY -- no chat leafObject in file ' + leafDocument;
296
- debug.trace(msg);
297
- throw new Error(msg);
298
- case 21:
299
- sortMe = leafObjects.map(function (leafObject) {
300
- return [folderStore.any(leafObject, ns.dct('created')), leafObject];
301
- });
302
- sortMe.sort();
303
- if (backwards) sortMe.reverse();
304
- debug.log((backwards ? 'Latest' : 'Earliest') + ' leafObject is ' + sortMe[0][1]);
305
- return _context5.abrupt("return", sortMe[0][1]);
306
- case 26:
307
- case "end":
308
- return _context5.stop();
309
- }
264
+ throw new Error(' @@@ No children to parent2 ' + parent);
265
+ case 9:
266
+ kids.sort();
267
+ if (backwards) kids.reverse();
268
+ return _context4.abrupt("return", kids[0]);
269
+ case 12:
270
+ case "end":
271
+ return _context4.stop();
272
+ }
273
+ }, _callee4);
274
+ }));
275
+ return _earliestSubfolder.apply(this, arguments);
276
+ };
277
+ earliestSubfolder = function _earliestSubfolder2(_x7) {
278
+ return _earliestSubfolder.apply(this, arguments);
279
+ };
280
+ // backwards -> last leafObject
281
+ folderStore = $rdf.graph();
282
+ folderFetcher = new $rdf.Fetcher(folderStore);
283
+ _context5.next = 6;
284
+ return earliestSubfolder(this.root.dir());
285
+ case 6:
286
+ y = _context5.sent;
287
+ _context5.next = 9;
288
+ return earliestSubfolder(y);
289
+ case 9:
290
+ month = _context5.sent;
291
+ _context5.next = 12;
292
+ return earliestSubfolder(month);
293
+ case 12:
294
+ d = _context5.sent;
295
+ leafDocument = $rdf.sym(d.uri + 'chat.ttl');
296
+ _context5.next = 16;
297
+ return folderFetcher.load(leafDocument);
298
+ case 16:
299
+ leafObjects = folderStore.each(this.root, this.membershipProperty, null, leafDocument);
300
+ if (!(leafObjects.length === 0)) {
301
+ _context5.next = 21;
302
+ break;
303
+ }
304
+ msg = ' INCONSISTENCY -- no chat leafObject in file ' + leafDocument;
305
+ debug.trace(msg);
306
+ throw new Error(msg);
307
+ case 21:
308
+ sortMe = leafObjects.map(function (leafObject) {
309
+ return [folderStore.any(leafObject, ns.dct('created')), leafObject];
310
+ });
311
+ sortMe.sort();
312
+ if (backwards) sortMe.reverse();
313
+ debug.log((backwards ? 'Latest' : 'Earliest') + ' leafObject is ' + sortMe[0][1]);
314
+ return _context5.abrupt("return", sortMe[0][1]);
315
+ case 26:
316
+ case "end":
317
+ return _context5.stop();
310
318
  }
311
319
  }, _callee5, this);
312
320
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"dateFolder.js","names":["DateFolder","rootThing","leafFileName","membershipProperty","root","rootFolder","dir","ns","wf","date","isoDate","toISOString","path","split","replace","uri","store","sym","doc","head","length","str","slice","Date","debug","log","backwards","previousPeriod","file","level","younger","suitable","lastNonEmpty","siblings","filter","sort","reverse","pop","folder","leafDocument","thisDateFolder","fetcher","load","statementsMatching","dct","x","tail","includes","parent","each","ldp","uncle","cousins","result","leafDocumentFromDate","found","dateFromLeafDocument","earliestSubfolder","folderFetcher","requested","force","kids","folderStore","Error","$rdf","graph","Fetcher","y","month","d","leafObjects","msg","trace","sortMe","map","leafObject","any"],"sources":["../../src/chat/dateFolder.js"],"sourcesContent":["/**\n * Contains the [[DateFolder]] class\n * This tracks data stored in dated folders and sub-folders\n *\n */\n\nimport * as debug from '../debug'\nimport { store } from 'solid-logic'\n\nimport * as ns from '../ns'\nimport * as $rdf from 'rdflib' // pull in first avoid cross-refs\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 const thisDateFolder = this\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 async function lastNonEmpty (siblings) {\n siblings = siblings.filter(suitable)\n siblings.sort() // chronological order\n if (!backwards) siblings.reverse()\n if (level !== 3) return siblings.pop() // only length chck final leverl\n while (siblings.length) {\n const folder = siblings.pop()\n const leafDocument = store.sym(folder.uri + thisDateFolder.leafFileName)\n await store.fetcher.load(leafDocument)\n // files can have seealso links. skip ones with no leafObjects with a date\n if (\n store.statementsMatching(null, ns.dct('created'), null, leafDocument)\n .length > 0\n ) {\n return folder\n }\n }\n return null\n }\n // debug.log(' previousPeriod level' + level + ' file ' + file)\n const parent = file.dir()\n await store.fetcher.load(parent)\n let siblings = store.each(parent, ns.ldp('contains'))\n siblings = siblings.filter(younger)\n const folder = await lastNonEmpty(siblings)\n if (folder) return folder\n\n if (level === 0) return null // 3:day, 2:month, 1: year 0: no\n\n const uncle = await previousPeriod(parent, level - 1)\n if (!uncle) return null // reached first ever\n await store.fetcher.load(uncle)\n const cousins = store.each(uncle, ns.ldp('contains'))\n const result = await lastNonEmpty(cousins)\n return result\n } // previousPeriod\n\n const folder = this.leafDocumentFromDate(date).dir()\n const found = await previousPeriod(folder, 3)\n if (found) {\n const doc = store.sym(found.uri + this.leafFileName)\n return this.dateFromLeafDocument(doc)\n }\n return null\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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"}
1
+ {"version":3,"file":"dateFolder.js","names":["DateFolder","rootThing","leafFileName","membershipProperty","root","rootFolder","dir","ns","wf","date","isoDate","toISOString","path","split","replace","uri","store","sym","doc","head","length","str","slice","Date","debug","log","backwards","previousPeriod","file","level","younger","suitable","lastNonEmpty","siblings","filter","sort","reverse","pop","folder","leafDocument","thisDateFolder","fetcher","load","statementsMatching","dct","x","tail","includes","parent","each","ldp","response","status","Error","message","uncle","cousins","result","leafDocumentFromDate","found","dateFromLeafDocument","earliestSubfolder","folderFetcher","requested","force","kids","folderStore","$rdf","graph","Fetcher","y","month","d","leafObjects","msg","trace","sortMe","map","leafObject","any"],"sources":["../../src/chat/dateFolder.js"],"sourcesContent":["/**\n * Contains the [[DateFolder]] class\n * This tracks data stored in dated folders and sub-folders\n *\n */\n\nimport * as debug from '../debug'\nimport { store } from 'solid-logic'\n\nimport * as ns from '../ns'\nimport * as $rdf from 'rdflib' // pull in first avoid cross-refs\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 const thisDateFolder = this\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 async function lastNonEmpty (siblings) {\n siblings = siblings.filter(suitable)\n siblings.sort() // chronological order\n if (!backwards) siblings.reverse()\n if (level !== 3) return siblings.pop() // only length chck final leverl\n while (siblings.length) {\n const folder = siblings.pop()\n const leafDocument = store.sym(folder.uri + thisDateFolder.leafFileName)\n await store.fetcher.load(leafDocument)\n // files can have seealso links. skip ones with no leafObjects with a date\n if (\n store.statementsMatching(null, ns.dct('created'), null, leafDocument)\n .length > 0\n ) {\n return folder\n }\n }\n return null\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 = await lastNonEmpty(siblings)\n if (folder) return folder\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\n if (level === 0) return null // 3:day, 2:month, 1: year 0: no\n\n const uncle = await previousPeriod(parent, level - 1)\n if (!uncle) return null // reached first ever\n await store.fetcher.load(uncle)\n const cousins = store.each(uncle, ns.ldp('contains'))\n const result = await lastNonEmpty(cousins)\n return result\n } // previousPeriod\n\n const folder = this.leafDocumentFromDate(date).dir()\n const found = await previousPeriod(folder, 3)\n if (found) {\n const doc = store.sym(found.uri + this.leafFileName)\n return this.dateFromLeafDocument(doc)\n }\n return null\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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"}