solid-ui 2.4.23 → 2.4.24

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 (136) hide show
  1. package/dist/main.js +2159 -5039
  2. package/dist/main.js.map +1 -1
  3. package/lib/acl/access-controller.js +4 -67
  4. package/lib/acl/access-controller.js.map +1 -1
  5. package/lib/acl/access-groups.js +59 -137
  6. package/lib/acl/access-groups.js.map +1 -1
  7. package/lib/acl/acl-control.js +14 -54
  8. package/lib/acl/acl-control.js.map +1 -1
  9. package/lib/acl/acl.js +32 -107
  10. package/lib/acl/acl.js.map +1 -1
  11. package/lib/acl/add-agent-buttons.js +0 -92
  12. package/lib/acl/add-agent-buttons.js.map +1 -1
  13. package/lib/acl/index.js +1 -3
  14. package/lib/acl/index.js.map +1 -1
  15. package/lib/acl/styles.js +1 -2
  16. package/lib/acl/styles.js.map +1 -1
  17. package/lib/chat/bookmarks.js +8 -80
  18. package/lib/chat/bookmarks.js.map +1 -1
  19. package/lib/chat/chatLogic.js +109 -180
  20. package/lib/chat/chatLogic.js.map +1 -1
  21. package/lib/chat/dateFolder.js +6 -91
  22. package/lib/chat/dateFolder.js.map +1 -1
  23. package/lib/chat/infinite.js +33 -185
  24. package/lib/chat/infinite.js.map +1 -1
  25. package/lib/chat/message.js +37 -150
  26. package/lib/chat/message.js.map +1 -1
  27. package/lib/chat/messageTools.js +23 -96
  28. package/lib/chat/messageTools.js.map +1 -1
  29. package/lib/chat/thread.js +33 -91
  30. package/lib/chat/thread.js.map +1 -1
  31. package/lib/create/create.js +19 -51
  32. package/lib/create/create.js.map +1 -1
  33. package/lib/create/index.js +0 -2
  34. package/lib/create/index.js.map +1 -1
  35. package/lib/debug.js +0 -8
  36. package/lib/debug.js.map +1 -1
  37. package/lib/folders.js +4 -27
  38. package/lib/folders.js.map +1 -1
  39. package/lib/footer/index.js +2 -24
  40. package/lib/footer/index.js.map +1 -1
  41. package/lib/footer/styleMap.js.map +1 -1
  42. package/lib/header/empty-profile.js.map +1 -1
  43. package/lib/header/index.js +3 -72
  44. package/lib/header/index.js.map +1 -1
  45. package/lib/header/styleMap.js +4 -3
  46. package/lib/header/styleMap.js.map +1 -1
  47. package/lib/iconBase.js +3 -4
  48. package/lib/iconBase.js.map +1 -1
  49. package/lib/index.js +5 -46
  50. package/lib/index.js.map +1 -1
  51. package/lib/jss/index.js +3 -9
  52. package/lib/jss/index.js.map +1 -1
  53. package/lib/log.js +15 -51
  54. package/lib/log.js.map +1 -1
  55. package/lib/login/login.js +74 -303
  56. package/lib/login/login.js.map +1 -1
  57. package/lib/matrix/index.js +0 -2
  58. package/lib/matrix/index.js.map +1 -1
  59. package/lib/matrix/matrix.js +7 -55
  60. package/lib/matrix/matrix.js.map +1 -1
  61. package/lib/media/index.js +0 -2
  62. package/lib/media/index.js.map +1 -1
  63. package/lib/media/media-capture.js +13 -33
  64. package/lib/media/media-capture.js.map +1 -1
  65. package/lib/messageArea.js +23 -64
  66. package/lib/messageArea.js.map +1 -1
  67. package/lib/noun_Camera_1618446_000000.js.map +1 -1
  68. package/lib/ns.js +5 -7
  69. package/lib/ns.js.map +1 -1
  70. package/lib/pad.js +48 -234
  71. package/lib/pad.js.map +1 -1
  72. package/lib/participation.js +10 -65
  73. package/lib/participation.js.map +1 -1
  74. package/lib/preferences.js +21 -42
  75. package/lib/preferences.js.map +1 -1
  76. package/lib/signup/config-default.js +1 -8
  77. package/lib/signup/config-default.js.map +1 -1
  78. package/lib/signup/signup.js +6 -13
  79. package/lib/signup/signup.js.map +1 -1
  80. package/lib/stories/decorators.js +0 -2
  81. package/lib/stories/decorators.js.map +1 -1
  82. package/lib/style.js +8 -5
  83. package/lib/style.js.map +1 -1
  84. package/lib/style_multiSelect.js +1 -5
  85. package/lib/style_multiSelect.js.map +1 -1
  86. package/lib/table.js +309 -322
  87. package/lib/table.js.map +1 -1
  88. package/lib/tabs.js +20 -100
  89. package/lib/tabs.js.map +1 -1
  90. package/lib/utils/headerFooterHelpers.js +4 -52
  91. package/lib/utils/headerFooterHelpers.js.map +1 -1
  92. package/lib/utils/index.js +41 -135
  93. package/lib/utils/index.js.map +1 -1
  94. package/lib/utils/label.js +13 -34
  95. package/lib/utils/label.js.map +1 -1
  96. package/lib/versionInfo.js +4 -4
  97. package/lib/versionInfo.js.map +1 -1
  98. package/lib/widgets/buttons/iconLinks.js +0 -8
  99. package/lib/widgets/buttons/iconLinks.js.map +1 -1
  100. package/lib/widgets/buttons.js +115 -291
  101. package/lib/widgets/buttons.js.map +1 -1
  102. package/lib/widgets/dragAndDrop.js +12 -41
  103. package/lib/widgets/dragAndDrop.js.map +1 -1
  104. package/lib/widgets/error.js +3 -9
  105. package/lib/widgets/error.js.map +1 -1
  106. package/lib/widgets/forms/autocomplete/autocompleteBar.js +8 -71
  107. package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
  108. package/lib/widgets/forms/autocomplete/autocompleteField.js +13 -65
  109. package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
  110. package/lib/widgets/forms/autocomplete/autocompletePicker.js +15 -107
  111. package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
  112. package/lib/widgets/forms/autocomplete/language.js +6 -55
  113. package/lib/widgets/forms/autocomplete/language.js.map +1 -1
  114. package/lib/widgets/forms/autocomplete/publicData.js +12 -131
  115. package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
  116. package/lib/widgets/forms/basic.js +12 -55
  117. package/lib/widgets/forms/basic.js.map +1 -1
  118. package/lib/widgets/forms/comment.js +1 -15
  119. package/lib/widgets/forms/comment.js.map +1 -1
  120. package/lib/widgets/forms/fieldFunction.js +3 -16
  121. package/lib/widgets/forms/fieldFunction.js.map +1 -1
  122. package/lib/widgets/forms/fieldParams.js +0 -12
  123. package/lib/widgets/forms/fieldParams.js.map +1 -1
  124. package/lib/widgets/forms/formStyle.js +1 -14
  125. package/lib/widgets/forms/formStyle.js.map +1 -1
  126. package/lib/widgets/forms.js +70 -474
  127. package/lib/widgets/forms.js.map +1 -1
  128. package/lib/widgets/index.js +0 -21
  129. package/lib/widgets/index.js.map +1 -1
  130. package/lib/widgets/multiSelect.js +48 -171
  131. package/lib/widgets/multiSelect.js.map +1 -1
  132. package/lib/widgets/peoplePicker.js +20 -90
  133. package/lib/widgets/peoplePicker.js.map +1 -1
  134. package/lib/widgets/widgetHelpers.js +2 -9
  135. package/lib/widgets/widgetHelpers.js.map +1 -1
  136. package/package.json +28 -28
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
@@ -10,23 +9,14 @@ exports.getName = getName;
10
9
  exports.getPod = getPod;
11
10
  exports.getPodOwner = getPodOwner;
12
11
  exports.throttle = throttle;
13
-
14
12
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
15
-
16
13
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
-
18
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
19
-
20
15
  var _rdflib = require("rdflib");
21
-
22
16
  var _ = require("..");
23
-
24
17
  var _styleMap = require("../header/styleMap");
25
-
26
18
  var _styleMap2 = require("../footer/styleMap");
27
-
28
19
  var _jss = require("../jss");
29
-
30
20
  /*
31
21
  Copied from mashlib/src/global/metadata.ts
32
22
  */
@@ -41,42 +31,33 @@ function getStyle(styleClass, type) {
41
31
  return _styleMap.styleMap[styleClass];
42
32
  }
43
33
  }
34
+
44
35
  /**
45
36
  * @ignore exporting this only for the unit test
46
37
  */
47
-
48
-
49
38
  function addStyleClassToElement(element, styleClasses, type) {
50
39
  styleClasses.forEach(function (styleClass) {
51
40
  var style = getStyle(styleClass, type);
52
-
53
41
  var _getClasses = (0, _jss.getClasses)(document.head, (0, _defineProperty2["default"])({}, styleClass, style)),
54
- classes = _getClasses.classes;
55
-
42
+ classes = _getClasses.classes;
56
43
  element.classList.add(classes[styleClass]);
57
44
  });
58
45
  }
59
46
  /**
60
47
  * @ignore exporting this only for the unit test
61
48
  */
62
-
63
-
64
49
  function getPod() {
65
50
  // @@ TODO: This is given that mashlib runs on NSS - might need to change when we want it to run on other Pod servers
66
51
  return (0, _rdflib.sym)(document.location.origin).site();
67
52
  }
68
53
  /**
69
54
  */
70
-
71
-
72
55
  function getPodOwner(_x, _x2) {
73
56
  return _getPodOwner.apply(this, arguments);
74
57
  }
75
58
  /**
76
59
  * @ignore exporting this only for the unit test
77
60
  */
78
-
79
-
80
61
  function _getPodOwner() {
81
62
  _getPodOwner = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(pod, store) {
82
63
  var response, containerTurtle, podOwner, guess;
@@ -85,72 +66,57 @@ function _getPodOwner() {
85
66
  switch (_context.prev = _context.next) {
86
67
  case 0:
87
68
  _context.prev = 0;
88
-
89
69
  if (store.any(pod, null, _.ns.ldp('Container'), pod)) {
90
70
  _context.next = 7;
91
71
  break;
92
72
  }
93
-
94
73
  _context.next = 4;
95
74
  return store.fetcher.webOperation('GET', pod.uri, store.fetcher.initFetchOptions(pod.uri, {
96
75
  headers: {
97
76
  accept: 'text/turtle'
98
77
  }
99
78
  }));
100
-
101
79
  case 4:
102
80
  response = _context.sent;
103
81
  containerTurtle = response.responseText;
104
82
  (0, _rdflib.parse)(containerTurtle, store, pod.uri, 'text/turtle');
105
-
106
83
  case 7:
107
84
  _context.next = 13;
108
85
  break;
109
-
110
86
  case 9:
111
87
  _context.prev = 9;
112
88
  _context.t0 = _context["catch"](0);
113
89
  console.error('Error loading pod ' + pod + ': ' + _context.t0);
114
90
  return _context.abrupt("return", null);
115
-
116
91
  case 13:
117
92
  if (store.holds(pod, _.ns.rdf('type'), _.ns.space('Storage'), pod)) {
118
93
  _context.next = 16;
119
94
  break;
120
95
  }
121
-
122
96
  console.warn('Pod ' + pod + ' does not declare itself as a space:Storage');
123
97
  return _context.abrupt("return", null);
124
-
125
98
  case 16:
126
99
  podOwner = store.any(pod, _.ns.solid('owner'), null, pod) || store.any(null, _.ns.space('storage'), pod, pod);
127
-
128
100
  if (!podOwner) {
129
101
  _context.next = 31;
130
102
  break;
131
103
  }
132
-
133
104
  _context.prev = 18;
134
105
  _context.next = 21;
135
106
  return store.fetcher.load(podOwner.doc());
136
-
137
107
  case 21:
138
108
  _context.next = 27;
139
109
  break;
140
-
141
110
  case 23:
142
111
  _context.prev = 23;
143
112
  _context.t1 = _context["catch"](18);
144
113
  console.warn('Unable to load profile of pod owner ' + podOwner);
145
114
  return _context.abrupt("return", null);
146
-
147
115
  case 27:
148
116
  if (!store.holds(podOwner, _.ns.space('storage'), pod, podOwner.doc())) {
149
117
  console.warn("Pod owner ".concat(podOwner, " does NOT list pod ").concat(pod, " as their storage"));
150
118
  }
151
-
152
119
  return _context.abrupt("return", podOwner);
153
-
154
120
  case 31:
155
121
  // pod owner not declared in pod
156
122
  // @@ TODO: This is given the structure that NSS provides
@@ -159,29 +125,23 @@ function _getPodOwner() {
159
125
  _context.prev = 32;
160
126
  _context.next = 35;
161
127
  return store.fetcher.load(guess);
162
-
163
128
  case 35:
164
129
  _context.next = 41;
165
130
  break;
166
-
167
131
  case 37:
168
132
  _context.prev = 37;
169
133
  _context.t2 = _context["catch"](32);
170
134
  console.error('Ooops. Guessed wrong pod owner webid {$guess} : can\'t load it.');
171
135
  return _context.abrupt("return", null);
172
-
173
136
  case 41:
174
137
  if (!store.holds(guess, _.ns.space('storage'), pod, guess.doc())) {
175
138
  _context.next = 44;
176
139
  break;
177
140
  }
178
-
179
141
  console.warn('Using guessed pod owner webid but it links back.');
180
142
  return _context.abrupt("return", guess);
181
-
182
143
  case 44:
183
144
  return _context.abrupt("return", null);
184
-
185
145
  case 45:
186
146
  case "end":
187
147
  return _context.stop();
@@ -191,49 +151,41 @@ function _getPodOwner() {
191
151
  }));
192
152
  return _getPodOwner.apply(this, arguments);
193
153
  }
194
-
195
154
  function getName(store, user) {
196
155
  return store.anyValue(user, _.ns.vcard('fn'), null, user.doc()) || store.anyValue(user, _.ns.foaf('name'), null, user.doc()) || user.uri;
197
156
  }
198
157
  /**
199
158
  * @ignore exporting this only for the unit test
200
159
  */
201
-
202
-
203
160
  function throttle(func, wait) {
204
161
  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
205
162
  var context, args, result;
206
163
  var timeout = null;
207
164
  var previous = 0;
208
-
209
165
  var later = function later() {
210
166
  previous = !options.leading ? 0 : Date.now();
211
167
  timeout = null;
212
168
  result = func.apply(context, args);
213
169
  if (!timeout) context = args = null;
214
170
  };
215
-
216
171
  return function () {
217
172
  var now = Date.now();
218
173
  if (!previous && !options.leading) previous = now;
219
- var remaining = wait - (now - previous); // @ts-ignore
220
-
174
+ var remaining = wait - (now - previous);
175
+ // @ts-ignore
221
176
  context = this;
222
177
  args = arguments;
223
-
224
178
  if (remaining <= 0 || remaining > wait) {
225
179
  if (timeout) {
226
180
  clearTimeout(timeout);
227
181
  timeout = null;
228
182
  }
229
-
230
183
  previous = now;
231
184
  result = func.apply(context, args);
232
185
  if (!timeout) context = args = null;
233
186
  } else if (!timeout && options.trailing !== false) {
234
187
  timeout = setTimeout(later, remaining);
235
188
  }
236
-
237
189
  return result;
238
190
  };
239
191
  }
@@ -1 +1 @@
1
- {"version":3,"file":"headerFooterHelpers.js","names":["getStyle","styleClass","type","footerStyleMap","headerStyleMap","addStyleClassToElement","element","styleClasses","forEach","style","getClasses","document","head","classes","classList","add","getPod","sym","location","origin","site","getPodOwner","pod","store","any","ns","ldp","fetcher","webOperation","uri","initFetchOptions","headers","accept","response","containerTurtle","responseText","parse","console","error","holds","rdf","space","warn","podOwner","solid","load","doc","guess","getName","user","anyValue","vcard","foaf","throttle","func","wait","options","context","args","result","timeout","previous","later","leading","Date","now","apply","remaining","arguments","clearTimeout","trailing","setTimeout"],"sources":["../../src/utils/headerFooterHelpers.ts"],"sourcesContent":["/*\n Copied from mashlib/src/global/metadata.ts\n */\nimport { IndexedFormula, LiveStore, NamedNode, parse, sym } from 'rdflib'\nimport { ns } from '..'\nimport { styleMap as headerStyleMap } from '../header/styleMap'\nimport { styleMap as footerStyleMap } from '../footer/styleMap'\nimport { getClasses } from '../jss'\n\n/* @ts-ignore no-console */\ntype ThrottleOptions = {\n leading?: boolean;\n throttling?: boolean;\n trailing?: boolean;\n}\n/**\n * @internal\n */\nfunction getStyle (styleClass, type?) {\n if (type && type === 'footer') {\n return footerStyleMap[styleClass]\n } else {\n return headerStyleMap[styleClass]\n }\n}\n\n/**\n * @ignore exporting this only for the unit test\n */\nexport function addStyleClassToElement (element: any, styleClasses: string[], type?: string) {\n styleClasses.forEach((styleClass) => {\n const style = getStyle(styleClass, type)\n const { classes } = getClasses(document.head, { [styleClass]: style })\n element.classList.add(classes[styleClass])\n })\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function getPod (): NamedNode {\n // @@ TODO: This is given that mashlib runs on NSS - might need to change when we want it to run on other Pod servers\n return sym(document.location.origin).site()\n}\n/**\n */\nexport async function getPodOwner (pod: NamedNode, store: LiveStore): Promise<NamedNode | null> {\n // This is a massive guess. In future\n // const podOwner = sym(`${pod.uri}profile/card#me`)\n/* eslint-disable no-console */\n try {\n // load turtle Container representation\n if (!store.any(pod, null, ns.ldp('Container'), pod)) {\n const response = await store.fetcher.webOperation('GET', pod.uri, store.fetcher.initFetchOptions(pod.uri, { headers: { accept: 'text/turtle' } }))\n const containerTurtle = response.responseText\n parse(containerTurtle as string, store, pod.uri, 'text/turtle')\n }\n } catch (err) {\n console.error('Error loading pod ' + pod + ': ' + err)\n return null\n }\n if (!store.holds(pod, ns.rdf('type'), ns.space('Storage'), pod)) {\n console.warn('Pod ' + pod + ' does not declare itself as a space:Storage')\n return null\n }\n const podOwner = store.any(pod, ns.solid('owner'), null, pod) ||\n store.any(null, ns.space('storage'), pod, pod)\n if (podOwner) {\n try {\n await store.fetcher.load((podOwner as NamedNode).doc())\n } catch (err) {\n console.warn('Unable to load profile of pod owner ' + podOwner)\n return null\n }\n if (!store.holds(podOwner, ns.space('storage'), pod, (podOwner as NamedNode).doc())) {\n console.warn(`Pod owner ${podOwner} does NOT list pod ${pod} as their storage`)\n }\n return podOwner as NamedNode// Success!\n } else { // pod owner not declared in pod\n // @@ TODO: This is given the structure that NSS provides\n // This is a massive guess. For old pods which don't have owner link\n const guess = sym(`${pod.uri}profile/card#me`)\n try {\n // @ts-ignore LiveStore always has fetcher\n await store.fetcher.load(guess)\n } catch (err) {\n console.error('Ooops. Guessed wrong pod owner webid {$guess} : can\\'t load it.')\n return null\n }\n if (store.holds(guess, ns.space('storage'), pod, guess.doc())) {\n console.warn('Using guessed pod owner webid but it links back.')\n return guess\n }\n return null\n }\n /* eslint-enable no-console */\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function getName (store: IndexedFormula, user: NamedNode): string {\n return store.anyValue(user, ns.vcard('fn'), null, user.doc()) ||\n store.anyValue(user, ns.foaf('name'), null, user.doc()) ||\n user.uri\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function throttle (func: Function, wait: number, options: ThrottleOptions = {}): (...args: any[]) => any {\n let context: any,\n args: any,\n result: any\n let timeout: any = null\n let previous = 0\n const later = function () {\n previous = !options.leading ? 0 : Date.now()\n timeout = null\n result = func.apply(context, args)\n if (!timeout) context = args = null\n }\n return function () {\n const now = Date.now()\n if (!previous && !options.leading) previous = now\n const remaining = wait - (now - previous)\n // @ts-ignore\n context = this\n args = arguments\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout)\n timeout = null\n }\n previous = now\n result = func.apply(context, args)\n if (!timeout) context = args = null\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining)\n }\n return result\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"headerFooterHelpers.js","names":["getStyle","styleClass","type","footerStyleMap","headerStyleMap","addStyleClassToElement","element","styleClasses","forEach","style","getClasses","document","head","classes","classList","add","getPod","sym","location","origin","site","getPodOwner","pod","store","any","ns","ldp","fetcher","webOperation","uri","initFetchOptions","headers","accept","response","containerTurtle","responseText","parse","console","error","holds","rdf","space","warn","podOwner","solid","load","doc","guess","getName","user","anyValue","vcard","foaf","throttle","func","wait","options","context","args","result","timeout","previous","later","leading","Date","now","apply","remaining","arguments","clearTimeout","trailing","setTimeout"],"sources":["../../src/utils/headerFooterHelpers.ts"],"sourcesContent":["/*\n Copied from mashlib/src/global/metadata.ts\n */\nimport { IndexedFormula, LiveStore, NamedNode, parse, sym } from 'rdflib'\nimport { ns } from '..'\nimport { styleMap as headerStyleMap } from '../header/styleMap'\nimport { styleMap as footerStyleMap } from '../footer/styleMap'\nimport { getClasses } from '../jss'\n\n/* @ts-ignore no-console */\ntype ThrottleOptions = {\n leading?: boolean;\n throttling?: boolean;\n trailing?: boolean;\n}\n/**\n * @internal\n */\nfunction getStyle (styleClass, type?) {\n if (type && type === 'footer') {\n return footerStyleMap[styleClass]\n } else {\n return headerStyleMap[styleClass]\n }\n}\n\n/**\n * @ignore exporting this only for the unit test\n */\nexport function addStyleClassToElement (element: any, styleClasses: string[], type?: string) {\n styleClasses.forEach((styleClass) => {\n const style = getStyle(styleClass, type)\n const { classes } = getClasses(document.head, { [styleClass]: style })\n element.classList.add(classes[styleClass])\n })\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function getPod (): NamedNode {\n // @@ TODO: This is given that mashlib runs on NSS - might need to change when we want it to run on other Pod servers\n return sym(document.location.origin).site()\n}\n/**\n */\nexport async function getPodOwner (pod: NamedNode, store: LiveStore): Promise<NamedNode | null> {\n // This is a massive guess. In future\n // const podOwner = sym(`${pod.uri}profile/card#me`)\n/* eslint-disable no-console */\n try {\n // load turtle Container representation\n if (!store.any(pod, null, ns.ldp('Container'), pod)) {\n const response = await store.fetcher.webOperation('GET', pod.uri, store.fetcher.initFetchOptions(pod.uri, { headers: { accept: 'text/turtle' } }))\n const containerTurtle = response.responseText\n parse(containerTurtle as string, store, pod.uri, 'text/turtle')\n }\n } catch (err) {\n console.error('Error loading pod ' + pod + ': ' + err)\n return null\n }\n if (!store.holds(pod, ns.rdf('type'), ns.space('Storage'), pod)) {\n console.warn('Pod ' + pod + ' does not declare itself as a space:Storage')\n return null\n }\n const podOwner = store.any(pod, ns.solid('owner'), null, pod) ||\n store.any(null, ns.space('storage'), pod, pod)\n if (podOwner) {\n try {\n await store.fetcher.load((podOwner as NamedNode).doc())\n } catch (err) {\n console.warn('Unable to load profile of pod owner ' + podOwner)\n return null\n }\n if (!store.holds(podOwner, ns.space('storage'), pod, (podOwner as NamedNode).doc())) {\n console.warn(`Pod owner ${podOwner} does NOT list pod ${pod} as their storage`)\n }\n return podOwner as NamedNode// Success!\n } else { // pod owner not declared in pod\n // @@ TODO: This is given the structure that NSS provides\n // This is a massive guess. For old pods which don't have owner link\n const guess = sym(`${pod.uri}profile/card#me`)\n try {\n // @ts-ignore LiveStore always has fetcher\n await store.fetcher.load(guess)\n } catch (err) {\n console.error('Ooops. Guessed wrong pod owner webid {$guess} : can\\'t load it.')\n return null\n }\n if (store.holds(guess, ns.space('storage'), pod, guess.doc())) {\n console.warn('Using guessed pod owner webid but it links back.')\n return guess\n }\n return null\n }\n /* eslint-enable no-console */\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function getName (store: IndexedFormula, user: NamedNode): string {\n return store.anyValue(user, ns.vcard('fn'), null, user.doc()) ||\n store.anyValue(user, ns.foaf('name'), null, user.doc()) ||\n user.uri\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function throttle (func: Function, wait: number, options: ThrottleOptions = {}): (...args: any[]) => any {\n let context: any,\n args: any,\n result: any\n let timeout: any = null\n let previous = 0\n const later = function () {\n previous = !options.leading ? 0 : Date.now()\n timeout = null\n result = func.apply(context, args)\n if (!timeout) context = args = null\n }\n return function () {\n const now = Date.now()\n if (!previous && !options.leading) previous = now\n const remaining = wait - (now - previous)\n // @ts-ignore\n context = this\n args = arguments\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout)\n timeout = null\n }\n previous = now\n result = func.apply(context, args)\n if (!timeout) context = args = null\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining)\n }\n return result\n }\n}\n"],"mappings":"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"}