solid-ui 2.4.14-842f7f26 → 2.4.14-alpha

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 (260) hide show
  1. package/LICENSE.md +0 -0
  2. package/README.md +0 -0
  3. package/lib/acl/access-controller.d.ts +0 -0
  4. package/lib/acl/access-controller.d.ts.map +0 -0
  5. package/lib/acl/access-controller.js +334 -441
  6. package/lib/acl/access-controller.js.map +1 -1
  7. package/lib/acl/access-groups.d.ts +0 -0
  8. package/lib/acl/access-groups.d.ts.map +0 -0
  9. package/lib/acl/access-groups.js +347 -492
  10. package/lib/acl/access-groups.js.map +1 -1
  11. package/lib/acl/acl-control.d.ts +0 -0
  12. package/lib/acl/acl-control.d.ts.map +0 -0
  13. package/lib/acl/acl-control.js +168 -198
  14. package/lib/acl/acl-control.js.map +1 -1
  15. package/lib/acl/acl.d.ts +0 -0
  16. package/lib/acl/acl.d.ts.map +0 -0
  17. package/lib/acl/acl.js +444 -459
  18. package/lib/acl/acl.js.map +1 -1
  19. package/lib/acl/add-agent-buttons.d.ts +0 -0
  20. package/lib/acl/add-agent-buttons.d.ts.map +0 -0
  21. package/lib/acl/add-agent-buttons.js +318 -515
  22. package/lib/acl/add-agent-buttons.js.map +1 -1
  23. package/lib/acl/index.d.ts +0 -0
  24. package/lib/acl/index.d.ts.map +0 -0
  25. package/lib/acl/index.js +27 -35
  26. package/lib/acl/index.js.map +1 -1
  27. package/lib/acl/styles.d.ts +0 -0
  28. package/lib/acl/styles.d.ts.map +0 -0
  29. package/lib/acl/styles.js +84 -90
  30. package/lib/acl/styles.js.map +1 -1
  31. package/lib/acl/types.d.ts +0 -0
  32. package/lib/acl/types.d.ts.map +0 -0
  33. package/lib/acl/types.js +5 -4
  34. package/lib/acl/types.js.map +1 -1
  35. package/lib/authn/authSession.d.ts +0 -0
  36. package/lib/authn/authSession.d.ts.map +0 -0
  37. package/lib/authn/authSession.js +14 -21
  38. package/lib/authn/authSession.js.map +1 -1
  39. package/lib/authn/authn.d.ts +0 -0
  40. package/lib/authn/authn.d.ts.map +0 -0
  41. package/lib/authn/authn.js +1391 -1935
  42. package/lib/authn/authn.js.map +1 -1
  43. package/lib/authn/config-default.js +0 -0
  44. package/lib/authn/config-default.js.map +0 -0
  45. package/lib/authn/index.d.ts +0 -0
  46. package/lib/authn/index.d.ts.map +0 -0
  47. package/lib/authn/index.js +26 -37
  48. package/lib/authn/index.js.map +1 -1
  49. package/lib/authn/signup.js +0 -0
  50. package/lib/authn/signup.js.map +0 -0
  51. package/lib/authn/types.d.ts +0 -0
  52. package/lib/authn/types.d.ts.map +0 -0
  53. package/lib/authn/types.js +1 -4
  54. package/lib/authn/types.js.map +1 -1
  55. package/lib/chat/bookmarks.js +0 -0
  56. package/lib/chat/bookmarks.js.map +0 -0
  57. package/lib/chat/dateFolder.js +0 -0
  58. package/lib/chat/dateFolder.js.map +0 -0
  59. package/lib/chat/infinite.js +0 -0
  60. package/lib/chat/infinite.js.map +0 -0
  61. package/lib/chat/message.js +0 -0
  62. package/lib/chat/message.js.map +0 -0
  63. package/lib/chat/messageTools.js +0 -0
  64. package/lib/chat/messageTools.js.map +0 -0
  65. package/lib/chat/thread.js +0 -0
  66. package/lib/chat/thread.js.map +0 -0
  67. package/lib/create/create.d.ts +0 -0
  68. package/lib/create/create.d.ts.map +0 -0
  69. package/lib/create/create.js +209 -214
  70. package/lib/create/create.js.map +1 -1
  71. package/lib/create/index.d.ts +0 -0
  72. package/lib/create/index.d.ts.map +0 -0
  73. package/lib/create/index.js +4 -10
  74. package/lib/create/index.js.map +1 -1
  75. package/lib/create/types.d.ts +0 -0
  76. package/lib/create/types.d.ts.map +0 -0
  77. package/lib/create/types.js +1 -4
  78. package/lib/create/types.js.map +1 -1
  79. package/lib/debug.d.ts +0 -0
  80. package/lib/debug.d.ts.map +0 -0
  81. package/lib/debug.js +30 -28
  82. package/lib/debug.js.map +1 -1
  83. package/lib/folders.js +0 -0
  84. package/lib/folders.js.map +0 -0
  85. package/lib/footer/index.d.ts +20 -0
  86. package/lib/footer/index.d.ts.map +1 -0
  87. package/lib/footer/index.js +130 -0
  88. package/lib/footer/index.js.map +1 -0
  89. package/lib/footer/styleMap.d.ts +8 -0
  90. package/lib/footer/styleMap.d.ts.map +1 -0
  91. package/lib/footer/styleMap.js +11 -0
  92. package/lib/footer/styleMap.js.map +1 -0
  93. package/lib/header/empty-profile.d.ts +0 -0
  94. package/lib/header/empty-profile.d.ts.map +0 -0
  95. package/lib/header/empty-profile.js +2 -6
  96. package/lib/header/empty-profile.js.map +1 -1
  97. package/lib/header/index.d.ts +11 -8
  98. package/lib/header/index.d.ts.map +1 -1
  99. package/lib/header/index.js +291 -355
  100. package/lib/header/index.js.map +1 -1
  101. package/lib/header/styleMap.d.ts +0 -2
  102. package/lib/header/styleMap.d.ts.map +1 -1
  103. package/lib/header/styleMap.js +116 -136
  104. package/lib/header/styleMap.js.map +1 -1
  105. package/lib/iconBase.d.ts +0 -0
  106. package/lib/iconBase.d.ts.map +0 -0
  107. package/lib/iconBase.js +23 -30
  108. package/lib/iconBase.js.map +1 -1
  109. package/lib/icons/solid_logo.d.ts +0 -0
  110. package/lib/icons/solid_logo.d.ts.map +0 -0
  111. package/lib/icons/solid_logo.js +0 -0
  112. package/lib/icons/solid_logo.js.map +1 -1
  113. package/lib/index.d.ts +2 -1
  114. package/lib/index.d.ts.map +1 -1
  115. package/lib/index.js +103 -198
  116. package/lib/index.js.map +1 -1
  117. package/lib/jss/index.d.ts +0 -0
  118. package/lib/jss/index.d.ts.map +0 -0
  119. package/lib/jss/index.js +21 -30
  120. package/lib/jss/index.js.map +1 -1
  121. package/lib/log.d.ts +0 -0
  122. package/lib/log.d.ts.map +0 -0
  123. package/lib/log.js +83 -131
  124. package/lib/log.js.map +1 -1
  125. package/lib/logic.d.ts +0 -0
  126. package/lib/logic.d.ts.map +0 -0
  127. package/lib/logic.js +82 -69
  128. package/lib/logic.js.map +1 -1
  129. package/lib/matrix/index.d.ts +0 -0
  130. package/lib/matrix/index.d.ts.map +0 -0
  131. package/lib/matrix/index.js +4 -10
  132. package/lib/matrix/index.js.map +1 -1
  133. package/lib/matrix/matrix.d.ts +0 -0
  134. package/lib/matrix/matrix.d.ts.map +0 -0
  135. package/lib/matrix/matrix.js +210 -237
  136. package/lib/matrix/matrix.js.map +1 -1
  137. package/lib/matrix/types.d.ts +0 -0
  138. package/lib/matrix/types.d.ts.map +0 -0
  139. package/lib/matrix/types.js +1 -4
  140. package/lib/matrix/types.js.map +1 -1
  141. package/lib/media/index.d.ts +0 -0
  142. package/lib/media/index.d.ts.map +0 -0
  143. package/lib/media/index.js +5 -11
  144. package/lib/media/index.js.map +1 -1
  145. package/lib/media/media-capture.d.ts +0 -0
  146. package/lib/media/media-capture.d.ts.map +0 -0
  147. package/lib/media/media-capture.js +187 -181
  148. package/lib/media/media-capture.js.map +1 -1
  149. package/lib/messageArea.js +0 -0
  150. package/lib/messageArea.js.map +0 -0
  151. package/lib/noun_Camera_1618446_000000.js +0 -0
  152. package/lib/noun_Camera_1618446_000000.js.map +0 -0
  153. package/lib/ns.js +0 -0
  154. package/lib/ns.js.map +0 -0
  155. package/lib/pad.d.ts +0 -0
  156. package/lib/pad.d.ts.map +0 -0
  157. package/lib/pad.js +794 -954
  158. package/lib/pad.js.map +1 -1
  159. package/lib/participation.d.ts +0 -0
  160. package/lib/participation.d.ts.map +0 -0
  161. package/lib/participation.js +170 -199
  162. package/lib/participation.js.map +1 -1
  163. package/lib/preferences.js +0 -0
  164. package/lib/preferences.js.map +0 -0
  165. package/lib/stories/decorators.js +0 -0
  166. package/lib/stories/decorators.js.map +0 -0
  167. package/lib/style.js +0 -0
  168. package/lib/style.js.map +0 -0
  169. package/lib/table.js +0 -0
  170. package/lib/table.js.map +0 -0
  171. package/lib/tabs.d.ts +0 -0
  172. package/lib/tabs.d.ts.map +0 -0
  173. package/lib/tabs.js +235 -342
  174. package/lib/tabs.js.map +1 -1
  175. package/lib/typings.d.js +0 -0
  176. package/lib/typings.d.js.map +0 -0
  177. package/lib/{header/headerHelpers.d.ts → utils/headerFooterHelpers.d.ts} +11 -3
  178. package/lib/utils/headerFooterHelpers.d.ts.map +1 -0
  179. package/lib/utils/headerFooterHelpers.js +164 -0
  180. package/lib/utils/headerFooterHelpers.js.map +1 -0
  181. package/lib/utils/index.js +0 -0
  182. package/lib/utils/index.js.map +0 -0
  183. package/lib/utils/label.d.ts +0 -0
  184. package/lib/utils/label.d.ts.map +0 -0
  185. package/lib/utils/label.js +121 -113
  186. package/lib/utils/label.js.map +1 -1
  187. package/lib/versionInfo.d.ts +0 -0
  188. package/lib/versionInfo.d.ts.map +0 -0
  189. package/lib/versionInfo.js +23 -28
  190. package/lib/versionInfo.js.map +1 -1
  191. package/lib/webpack-bundle.js +454 -160
  192. package/lib/webpack-bundle.js.map +1 -1
  193. package/lib/widgets/buttons/iconLinks.d.ts +0 -0
  194. package/lib/widgets/buttons/iconLinks.d.ts.map +0 -0
  195. package/lib/widgets/buttons/iconLinks.js +19 -30
  196. package/lib/widgets/buttons/iconLinks.js.map +1 -1
  197. package/lib/widgets/buttons.d.ts +0 -0
  198. package/lib/widgets/buttons.d.ts.map +0 -0
  199. package/lib/widgets/buttons.js +935 -1113
  200. package/lib/widgets/buttons.js.map +1 -1
  201. package/lib/widgets/dragAndDrop.js +0 -0
  202. package/lib/widgets/dragAndDrop.js.map +0 -0
  203. package/lib/widgets/error.d.ts +0 -0
  204. package/lib/widgets/error.d.ts.map +0 -0
  205. package/lib/widgets/error.js +18 -24
  206. package/lib/widgets/error.js.map +1 -1
  207. package/lib/widgets/forms/autocomplete/autocompleteBar.d.ts +0 -0
  208. package/lib/widgets/forms/autocomplete/autocompleteBar.d.ts.map +0 -0
  209. package/lib/widgets/forms/autocomplete/autocompleteBar.js +234 -325
  210. package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
  211. package/lib/widgets/forms/autocomplete/autocompleteField.d.ts +0 -0
  212. package/lib/widgets/forms/autocomplete/autocompleteField.d.ts.map +0 -0
  213. package/lib/widgets/forms/autocomplete/autocompleteField.js +246 -276
  214. package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
  215. package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts +0 -0
  216. package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts.map +0 -0
  217. package/lib/widgets/forms/autocomplete/autocompletePicker.js +317 -497
  218. package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
  219. package/lib/widgets/forms/autocomplete/language.d.ts +0 -0
  220. package/lib/widgets/forms/autocomplete/language.d.ts.map +0 -0
  221. package/lib/widgets/forms/autocomplete/language.js +159 -212
  222. package/lib/widgets/forms/autocomplete/language.js.map +1 -1
  223. package/lib/widgets/forms/autocomplete/publicData.d.ts +0 -0
  224. package/lib/widgets/forms/autocomplete/publicData.d.ts.map +0 -0
  225. package/lib/widgets/forms/autocomplete/publicData.js +485 -718
  226. package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
  227. package/lib/widgets/forms/basic.d.ts +0 -0
  228. package/lib/widgets/forms/basic.d.ts.map +0 -0
  229. package/lib/widgets/forms/basic.js +208 -239
  230. package/lib/widgets/forms/basic.js.map +1 -1
  231. package/lib/widgets/forms/comment.d.ts +0 -0
  232. package/lib/widgets/forms/comment.d.ts.map +0 -0
  233. package/lib/widgets/forms/comment.js +48 -48
  234. package/lib/widgets/forms/comment.js.map +1 -1
  235. package/lib/widgets/forms/fieldFunction.d.ts +0 -0
  236. package/lib/widgets/forms/fieldFunction.d.ts.map +0 -0
  237. package/lib/widgets/forms/fieldFunction.js +31 -50
  238. package/lib/widgets/forms/fieldFunction.js.map +1 -1
  239. package/lib/widgets/forms/fieldParams.d.ts +0 -0
  240. package/lib/widgets/forms/fieldParams.d.ts.map +0 -0
  241. package/lib/widgets/forms/fieldParams.js +102 -81
  242. package/lib/widgets/forms/fieldParams.js.map +1 -1
  243. package/lib/widgets/forms/formStyle.d.ts +0 -0
  244. package/lib/widgets/forms/formStyle.d.ts.map +0 -0
  245. package/lib/widgets/forms/formStyle.js +52 -50
  246. package/lib/widgets/forms/formStyle.js.map +1 -1
  247. package/lib/widgets/forms.js +0 -0
  248. package/lib/widgets/forms.js.map +0 -0
  249. package/lib/widgets/index.js +0 -0
  250. package/lib/widgets/index.js.map +0 -0
  251. package/lib/widgets/peoplePicker.js +0 -0
  252. package/lib/widgets/peoplePicker.js.map +0 -0
  253. package/lib/widgets/widgetHelpers.d.ts +0 -0
  254. package/lib/widgets/widgetHelpers.d.ts.map +0 -0
  255. package/lib/widgets/widgetHelpers.js +18 -30
  256. package/lib/widgets/widgetHelpers.js.map +1 -1
  257. package/package.json +5 -4
  258. package/lib/header/headerHelpers.d.ts.map +0 -1
  259. package/lib/header/headerHelpers.js +0 -96
  260. package/lib/header/headerHelpers.js.map +0 -1
@@ -8465,30 +8465,10 @@ function trace() {
8465
8465
 
8466
8466
  /***/ }),
8467
8467
 
8468
- /***/ "./lib/header/empty-profile.js":
8469
- /*!*************************************!*\
8470
- !*** ./lib/header/empty-profile.js ***!
8471
- \*************************************/
8472
- /*! no static exports found */
8473
- /***/ (function(module, exports, __webpack_require__) {
8474
-
8475
- "use strict";
8476
-
8477
-
8478
- Object.defineProperty(exports, "__esModule", {
8479
- value: true
8480
- });
8481
- exports.emptyProfile = void 0;
8482
- var emptyProfile = "\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"26\" viewBox=\"0 0 26 26\" fill=\"none\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M13 25C19.6274 25 25 19.6274 25 13C25 6.37258 19.6274 1 13 1C6.37258 1 1 6.37258 1 13C1 19.6274 6.37258 25 13 25Z\" fill=\"#D8D8D8\" stroke=\"#8B8B8B\"/>\n <mask id=\"mask0\" mask-type=\"alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"26\" height=\"26\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M13 25C19.6274 25 25 19.6274 25 13C25 6.37258 19.6274 1 13 1C6.37258 1 1 6.37258 1 13C1 19.6274 6.37258 25 13 25Z\" fill=\"white\" stroke=\"white\"/>\n </mask>\n <g mask=\"url(#mask0)\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M17.0468 10.4586C17.0468 14.4979 15.4281 16.9214 12.9999 16.9214C10.5718 16.9214 8.95298 14.4979 8.95298 10.4586C8.95298 6.41931 12.9999 6.41931 12.9999 6.41931C12.9999 6.41931 17.0468 6.41931 17.0468 10.4586ZM4.09668 23.3842C6.52483 17.7293 12.9999 17.7293 12.9999 17.7293C12.9999 17.7293 19.475 17.7293 21.9031 23.3842C21.9031 23.3842 17.8481 25 12.9999 25C8.15169 25 4.09668 23.3842 4.09668 23.3842Z\" fill=\"#8B8B8B\"/>\n </g>\n</svg>";
8483
- exports.emptyProfile = emptyProfile;
8484
- //# sourceMappingURL=empty-profile.js.map
8485
-
8486
- /***/ }),
8487
-
8488
- /***/ "./lib/header/headerHelpers.js":
8489
- /*!*************************************!*\
8490
- !*** ./lib/header/headerHelpers.js ***!
8491
- \*************************************/
8468
+ /***/ "./lib/footer/index.js":
8469
+ /*!*****************************!*\
8470
+ !*** ./lib/footer/index.js ***!
8471
+ \*****************************/
8492
8472
  /*! no static exports found */
8493
8473
  /***/ (function(module, exports, __webpack_require__) {
8494
8474
 
@@ -8500,95 +8480,192 @@ var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/inte
8500
8480
  Object.defineProperty(exports, "__esModule", {
8501
8481
  value: true
8502
8482
  });
8503
- exports.addStyleClassToElement = addStyleClassToElement;
8504
- exports.getPod = getPod;
8505
- exports.throttle = throttle;
8483
+ exports.createControllerInfoBlock = createControllerInfoBlock;
8484
+ exports.initFooter = initFooter;
8485
+ exports.rebuildFooter = rebuildFooter;
8506
8486
 
8507
- var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js"));
8487
+ var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"));
8508
8488
 
8509
- var _rdflib = __webpack_require__(/*! rdflib */ "./node_modules/rdflib/esm/index.js");
8489
+ var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
8510
8490
 
8511
- var _styleMap = __webpack_require__(/*! ./styleMap */ "./lib/header/styleMap.js");
8491
+ var _authn = __webpack_require__(/*! ../authn/authn */ "./lib/authn/authn.js");
8512
8492
 
8513
- var _jss = __webpack_require__(/*! ../jss */ "./lib/jss/index.js");
8493
+ var _headerFooterHelpers = __webpack_require__(/*! ../utils/headerFooterHelpers */ "./lib/utils/headerFooterHelpers.js");
8514
8494
 
8515
8495
  /*
8516
- Copied from mashlib/src/global/metadata.ts
8496
+ This file was copied from mashlib/src/global/footer.ts file. It is modified to
8497
+ work in solid-ui by adjusting where imported functions are found.
8517
8498
  */
8499
+ var DEFAULT_SOLID_PROJECT_URL = 'https://solidproject.org';
8500
+ var DEFAULT_SOLID_PROJECT_NAME = 'solidproject.org';
8501
+ /*
8502
+ FooterOptions allow for customizing the link and name of the link part of the footer.
8503
+ */
8518
8504
 
8519
8505
  /**
8520
- * @internal
8506
+ * Initialize footer component, the footer object returned depends on whether the user is authenticated.
8507
+ * @param store the data store
8508
+ * @returns the footer
8521
8509
  */
8522
- function getStyle(styleClass) {
8523
- return _styleMap.styleMap[styleClass];
8510
+ function initFooter(_x, _x2) {
8511
+ return _initFooter.apply(this, arguments);
8524
8512
  }
8525
8513
  /**
8526
8514
  * @ignore exporting this only for the unit test
8527
8515
  */
8528
8516
 
8529
8517
 
8530
- function addStyleClassToElement(element, styleClasses) {
8531
- styleClasses.forEach(function (styleClass) {
8532
- var style = getStyle(styleClass);
8518
+ function _initFooter() {
8519
+ _initFooter = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(store, options) {
8520
+ var footer, pod, podOwner;
8521
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
8522
+ while (1) {
8523
+ switch (_context2.prev = _context2.next) {
8524
+ case 0:
8525
+ footer = document.getElementById('PageFooter');
8533
8526
 
8534
- var _getClasses = (0, _jss.getClasses)(document.head, (0, _defineProperty2["default"])({}, styleClass, style)),
8535
- classes = _getClasses.classes;
8527
+ if (footer) {
8528
+ _context2.next = 3;
8529
+ break;
8530
+ }
8536
8531
 
8537
- element.classList.add(classes[styleClass]);
8538
- });
8532
+ return _context2.abrupt("return");
8533
+
8534
+ case 3:
8535
+ pod = (0, _headerFooterHelpers.getPod)();
8536
+ _context2.next = 6;
8537
+ return (0, _headerFooterHelpers.getPodOwner)(pod, store);
8538
+
8539
+ case 6:
8540
+ podOwner = _context2.sent;
8541
+ rebuildFooter(footer, store, pod, podOwner, options)();
8542
+
8543
+ _authn.authSession.onLogin(rebuildFooter(footer, store, pod, podOwner, options));
8544
+
8545
+ _authn.authSession.onLogout(rebuildFooter(footer, store, pod, podOwner, options));
8546
+
8547
+ case 10:
8548
+ case "end":
8549
+ return _context2.stop();
8550
+ }
8551
+ }
8552
+ }, _callee2);
8553
+ }));
8554
+ return _initFooter.apply(this, arguments);
8539
8555
  }
8540
- /**
8541
- * @ignore exporting this only for the unit test
8542
- */
8543
8556
 
8557
+ function rebuildFooter(footer, store, pod, podOwner, options) {
8558
+ return /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
8559
+ var user;
8560
+ return _regenerator["default"].wrap(function _callee$(_context) {
8561
+ while (1) {
8562
+ switch (_context.prev = _context.next) {
8563
+ case 0:
8564
+ user = (0, _authn.currentUser)();
8565
+ footer.innerHTML = '';
8566
+ _context.t0 = footer;
8567
+ _context.next = 5;
8568
+ return createControllerInfoBlock(store, user, pod, podOwner, options);
8569
+
8570
+ case 5:
8571
+ _context.t1 = _context.sent;
8544
8572
 
8545
- function getPod() {
8546
- // @@ TODO: This is given that mashlib runs on NSS - might need to change when we want it to run on other Pod servers
8547
- return (0, _rdflib.sym)(document.location.origin).site();
8573
+ _context.t0.appendChild.call(_context.t0, _context.t1);
8574
+
8575
+ case 7:
8576
+ case "end":
8577
+ return _context.stop();
8578
+ }
8579
+ }
8580
+ }, _callee);
8581
+ }));
8548
8582
  }
8549
8583
  /**
8550
8584
  * @ignore exporting this only for the unit test
8551
8585
  */
8552
8586
 
8553
8587
 
8554
- function throttle(func, wait) {
8555
- var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
8556
- var context, args, result;
8557
- var timeout = null;
8558
- var previous = 0;
8588
+ function createControllerInfoBlock(store, user, pod, podOwner, options) {
8589
+ var profileLinkContainer = document.createElement('div');
8590
+
8591
+ if (!pod || !podOwner || user && user.equals(podOwner)) {
8592
+ return profileLinkContainer;
8593
+ }
8594
+
8595
+ (0, _headerFooterHelpers.addStyleClassToElement)(profileLinkContainer, ['footer-pod-info', 'footer'], 'footer');
8596
+ var podLinkPre = document.createElement('span');
8597
+ podLinkPre.innerText = "You're visiting ";
8598
+ var podLink = document.createElement('a');
8599
+ podLink.href = pod.uri;
8600
+ podLink.innerText = 'the Pod';
8601
+ var profileLinkPre = document.createElement('span');
8602
+ profileLinkPre.innerText = ' controlled by ';
8603
+ var profileLink = document.createElement('a');
8604
+ profileLink.href = podOwner.uri;
8605
+ profileLink.innerText = (0, _headerFooterHelpers.getName)(store, podOwner);
8606
+ var solidProjectLinkPre = document.createElement('span');
8607
+ solidProjectLinkPre.innerText = '. For more info, check out ';
8608
+ var solidProjectLink = document.createElement('a');
8609
+ solidProjectLink.href = options && options.solidProjectUrl ? options.solidProjectUrl : DEFAULT_SOLID_PROJECT_URL;
8610
+ solidProjectLink.innerText = options && options.solidProjectName ? options.solidProjectName : DEFAULT_SOLID_PROJECT_NAME;
8611
+ var solidProjectLinkPost = document.createElement('span');
8612
+ solidProjectLinkPost.innerText = '.';
8613
+ profileLinkContainer.appendChild(podLinkPre);
8614
+ profileLinkContainer.appendChild(podLink);
8615
+ profileLinkContainer.appendChild(profileLinkPre);
8616
+ profileLinkContainer.appendChild(profileLink);
8617
+ profileLinkContainer.appendChild(solidProjectLinkPre);
8618
+ profileLinkContainer.appendChild(solidProjectLink);
8619
+ profileLinkContainer.appendChild(solidProjectLinkPost);
8620
+ return profileLinkContainer;
8621
+ }
8622
+ //# sourceMappingURL=index.js.map
8559
8623
 
8560
- var later = function later() {
8561
- previous = !options.leading ? 0 : Date.now();
8562
- timeout = null;
8563
- result = func.apply(context, args);
8564
- if (!timeout) context = args = null;
8565
- };
8624
+ /***/ }),
8566
8625
 
8567
- return function () {
8568
- var now = Date.now();
8569
- if (!previous && !options.leading) previous = now;
8570
- var remaining = wait - (now - previous); // @ts-ignore
8626
+ /***/ "./lib/footer/styleMap.js":
8627
+ /*!********************************!*\
8628
+ !*** ./lib/footer/styleMap.js ***!
8629
+ \********************************/
8630
+ /*! no static exports found */
8631
+ /***/ (function(module, exports, __webpack_require__) {
8571
8632
 
8572
- context = this;
8573
- args = arguments;
8633
+ "use strict";
8574
8634
 
8575
- if (remaining <= 0 || remaining > wait) {
8576
- if (timeout) {
8577
- clearTimeout(timeout);
8578
- timeout = null;
8579
- }
8580
8635
 
8581
- previous = now;
8582
- result = func.apply(context, args);
8583
- if (!timeout) context = args = null;
8584
- } else if (!timeout && options.trailing !== false) {
8585
- timeout = setTimeout(later, remaining);
8586
- }
8636
+ Object.defineProperty(exports, "__esModule", {
8637
+ value: true
8638
+ });
8639
+ exports.styleMap = void 0;
8640
+ var styleMap = {
8641
+ footer: {
8642
+ borderTop: 'solid 1px $divider-color',
8643
+ fontSize: '0.9em',
8644
+ padding: '0.5em 1.5em'
8645
+ }
8646
+ };
8647
+ exports.styleMap = styleMap;
8648
+ //# sourceMappingURL=styleMap.js.map
8587
8649
 
8588
- return result;
8589
- };
8590
- }
8591
- //# sourceMappingURL=headerHelpers.js.map
8650
+ /***/ }),
8651
+
8652
+ /***/ "./lib/header/empty-profile.js":
8653
+ /*!*************************************!*\
8654
+ !*** ./lib/header/empty-profile.js ***!
8655
+ \*************************************/
8656
+ /*! no static exports found */
8657
+ /***/ (function(module, exports, __webpack_require__) {
8658
+
8659
+ "use strict";
8660
+
8661
+
8662
+ Object.defineProperty(exports, "__esModule", {
8663
+ value: true
8664
+ });
8665
+ exports.emptyProfile = void 0;
8666
+ var emptyProfile = "\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"26\" viewBox=\"0 0 26 26\" fill=\"none\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M13 25C19.6274 25 25 19.6274 25 13C25 6.37258 19.6274 1 13 1C6.37258 1 1 6.37258 1 13C1 19.6274 6.37258 25 13 25Z\" fill=\"#D8D8D8\" stroke=\"#8B8B8B\"/>\n <mask id=\"mask0\" mask-type=\"alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"26\" height=\"26\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M13 25C19.6274 25 25 19.6274 25 13C25 6.37258 19.6274 1 13 1C6.37258 1 1 6.37258 1 13C1 19.6274 6.37258 25 13 25Z\" fill=\"white\" stroke=\"white\"/>\n </mask>\n <g mask=\"url(#mask0)\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M17.0468 10.4586C17.0468 14.4979 15.4281 16.9214 12.9999 16.9214C10.5718 16.9214 8.95298 14.4979 8.95298 10.4586C8.95298 6.41931 12.9999 6.41931 12.9999 6.41931C12.9999 6.41931 17.0468 6.41931 17.0468 10.4586ZM4.09668 23.3842C6.52483 17.7293 12.9999 17.7293 12.9999 17.7293C12.9999 17.7293 19.475 17.7293 21.9031 23.3842C21.9031 23.3842 17.8481 25 12.9999 25C8.15169 25 4.09668 23.3842 4.09668 23.3842Z\" fill=\"#8B8B8B\"/>\n </g>\n</svg>";
8667
+ exports.emptyProfile = emptyProfile;
8668
+ //# sourceMappingURL=empty-profile.js.map
8592
8669
 
8593
8670
  /***/ }),
8594
8671
 
@@ -8624,7 +8701,7 @@ var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime
8624
8701
 
8625
8702
  var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
8626
8703
 
8627
- var _ = __webpack_require__(/*! .. */ "./lib/index.js");
8704
+ var _iconBase = __webpack_require__(/*! ../iconBase */ "./lib/iconBase.js");
8628
8705
 
8629
8706
  var _authn = __webpack_require__(/*! ../authn/authn */ "./lib/authn/authn.js");
8630
8707
 
@@ -8632,7 +8709,7 @@ var widgets = _interopRequireWildcard(__webpack_require__(/*! ../widgets */ "./l
8632
8709
 
8633
8710
  var _emptyProfile = __webpack_require__(/*! ./empty-profile */ "./lib/header/empty-profile.js");
8634
8711
 
8635
- var _headerHelpers = __webpack_require__(/*! ./headerHelpers */ "./lib/header/headerHelpers.js");
8712
+ var _headerFooterHelpers = __webpack_require__(/*! ../utils/headerFooterHelpers */ "./lib/utils/headerFooterHelpers.js");
8636
8713
 
8637
8714
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
8638
8715
 
@@ -8645,13 +8722,20 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
8645
8722
  work in solid-ui by adjusting where imported functions are found.
8646
8723
  */
8647
8724
 
8725
+ /**
8726
+ * menu icons
8727
+ */
8728
+ var DEFAULT_HELP_MENU_ICON = _iconBase.icons.iconBase + 'noun_help.svg';
8729
+ var DEFAUL_SOLID_ICON_URL = 'https://solidproject.org/assets/img/solid-emblem.svg';
8730
+
8648
8731
  /**
8649
8732
  * Initialize header component, the header object returned depends on whether the user is authenticated.
8650
8733
  * @param store the data store
8651
- * @param options allow the header to be customized with a personalized logo and a menu list of links or buttons.
8734
+ * @param userMenuList a list of menu items when the user is logged in
8735
+ * @param options allow the header to be customized with a personalized logo, help icon and a help menu list of links or buttons.
8652
8736
  * @returns a header for an authenticated user with menu items given or a login screen
8653
8737
  */
8654
- function initHeader(_x, _x2) {
8738
+ function initHeader(_x, _x2, _x3) {
8655
8739
  return _initHeader.apply(this, arguments);
8656
8740
  }
8657
8741
  /**
@@ -8660,7 +8744,7 @@ function initHeader(_x, _x2) {
8660
8744
 
8661
8745
 
8662
8746
  function _initHeader() {
8663
- _initHeader = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(store, options) {
8747
+ _initHeader = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(store, userMenuList, options) {
8664
8748
  var header, pod;
8665
8749
  return _regenerator["default"].wrap(function _callee2$(_context2) {
8666
8750
  while (1) {
@@ -8676,12 +8760,12 @@ function _initHeader() {
8676
8760
  return _context2.abrupt("return");
8677
8761
 
8678
8762
  case 3:
8679
- pod = (0, _headerHelpers.getPod)();
8680
- rebuildHeader(header, store, pod, options)();
8763
+ pod = (0, _headerFooterHelpers.getPod)();
8764
+ rebuildHeader(header, store, pod, userMenuList, options)();
8681
8765
 
8682
- _authn.authSession.onLogout(rebuildHeader(header, store, pod, options));
8766
+ _authn.authSession.onLogout(rebuildHeader(header, store, pod, userMenuList, options));
8683
8767
 
8684
- _authn.authSession.onLogin(rebuildHeader(header, store, pod, options));
8768
+ _authn.authSession.onLogin(rebuildHeader(header, store, pod, userMenuList, options));
8685
8769
 
8686
8770
  case 7:
8687
8771
  case "end":
@@ -8693,7 +8777,7 @@ function _initHeader() {
8693
8777
  return _initHeader.apply(this, arguments);
8694
8778
  }
8695
8779
 
8696
- function rebuildHeader(header, store, pod, options) {
8780
+ function rebuildHeader(header, store, pod, userMenuList, options) {
8697
8781
  return /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
8698
8782
  var user;
8699
8783
  return _regenerator["default"].wrap(function _callee$(_context) {
@@ -8704,7 +8788,7 @@ function rebuildHeader(header, store, pod, options) {
8704
8788
  header.innerHTML = '';
8705
8789
  _context.t0 = header;
8706
8790
  _context.next = 5;
8707
- return createBanner(store, pod, user, options);
8791
+ return createBanner(store, pod, user, userMenuList, options);
8708
8792
 
8709
8793
  case 5:
8710
8794
  _context.t1 = _context.sent;
@@ -8724,7 +8808,7 @@ function rebuildHeader(header, store, pod, options) {
8724
8808
  */
8725
8809
 
8726
8810
 
8727
- function createBanner(_x3, _x4, _x5, _x6) {
8811
+ function createBanner(_x4, _x5, _x6, _x7, _x8) {
8728
8812
  return _createBanner.apply(this, arguments);
8729
8813
  }
8730
8814
  /**
@@ -8733,22 +8817,22 @@ function createBanner(_x3, _x4, _x5, _x6) {
8733
8817
 
8734
8818
 
8735
8819
  function _createBanner() {
8736
- _createBanner = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(store, pod, user, options) {
8737
- var podLink, image, userMenu, helpMenu, banner, leftSideOfHeader;
8820
+ _createBanner = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(store, pod, user, userMenuList, options) {
8821
+ var podLink, image, userMenu, banner, leftSideOfHeader, helpMenu;
8738
8822
  return _regenerator["default"].wrap(function _callee3$(_context3) {
8739
8823
  while (1) {
8740
8824
  switch (_context3.prev = _context3.next) {
8741
8825
  case 0:
8742
8826
  podLink = document.createElement('a');
8743
8827
  podLink.href = pod.uri;
8744
- (0, _headerHelpers.addStyleClassToElement)(podLink, ['header-banner__link']);
8828
+ (0, _headerFooterHelpers.addStyleClassToElement)(podLink, ['header-banner__link']);
8745
8829
  image = document.createElement('img');
8746
8830
 
8747
8831
  if (options) {
8748
- image.src = options.logo ? options.logo : 'https://solidproject.org/assets/img/solid-emblem.svg';
8832
+ image.src = options.logo ? options.logo : DEFAUL_SOLID_ICON_URL;
8749
8833
  }
8750
8834
 
8751
- (0, _headerHelpers.addStyleClassToElement)(image, ['header-banner__icon']);
8835
+ (0, _headerFooterHelpers.addStyleClassToElement)(image, ['header-banner__icon']);
8752
8836
  podLink.appendChild(image);
8753
8837
 
8754
8838
  if (!user) {
@@ -8757,7 +8841,7 @@ function _createBanner() {
8757
8841
  }
8758
8842
 
8759
8843
  _context3.next = 10;
8760
- return createUserMenu(store, user, options);
8844
+ return createUserMenu(store, user, userMenuList);
8761
8845
 
8762
8846
  case 10:
8763
8847
  _context3.t0 = _context3.sent;
@@ -8769,18 +8853,22 @@ function _createBanner() {
8769
8853
 
8770
8854
  case 14:
8771
8855
  userMenu = _context3.t0;
8772
- helpMenu = createHelpMenu();
8773
8856
  banner = document.createElement('div');
8774
- (0, _headerHelpers.addStyleClassToElement)(banner, ['header-banner']);
8857
+ (0, _headerFooterHelpers.addStyleClassToElement)(banner, ['header-banner']);
8775
8858
  banner.appendChild(podLink);
8776
8859
  leftSideOfHeader = document.createElement('div');
8777
- (0, _headerHelpers.addStyleClassToElement)(leftSideOfHeader, ['header-banner__right-menu']);
8860
+ (0, _headerFooterHelpers.addStyleClassToElement)(leftSideOfHeader, ['header-banner__right-menu']);
8778
8861
  leftSideOfHeader.appendChild(userMenu);
8779
- leftSideOfHeader.appendChild(helpMenu);
8862
+
8863
+ if (options && options.helpMenuList) {
8864
+ helpMenu = createHelpMenu(options, options.helpMenuList);
8865
+ leftSideOfHeader.appendChild(helpMenu);
8866
+ }
8867
+
8780
8868
  banner.appendChild(leftSideOfHeader);
8781
8869
  return _context3.abrupt("return", banner);
8782
8870
 
8783
- case 25:
8871
+ case 24:
8784
8872
  case "end":
8785
8873
  return _context3.stop();
8786
8874
  }
@@ -8790,29 +8878,36 @@ function _createBanner() {
8790
8878
  return _createBanner.apply(this, arguments);
8791
8879
  }
8792
8880
 
8793
- function createHelpMenu() {
8881
+ function createHelpMenu(options, helpMenuItems) {
8882
+ if (!helpMenuItems) return;
8794
8883
  var helpMenuList = document.createElement('ul');
8795
- (0, _headerHelpers.addStyleClassToElement)(helpMenuList, ['header-user-menu__list']);
8796
- helpMenuList.appendChild(createUserMenuItem(createUserMenuLink('User guide', 'https://github.com/solid/userguide', '_blank')));
8797
- helpMenuList.appendChild(createUserMenuItem(createUserMenuLink('Report a problem', 'https://github.com/solid/solidos/issues', '_blank')));
8884
+ (0, _headerFooterHelpers.addStyleClassToElement)(helpMenuList, ['header-user-menu__list']);
8885
+ helpMenuItems.forEach(function (menuItem) {
8886
+ var menuItemType = menuItem.url ? 'url' : 'onclick';
8887
+
8888
+ if (menuItemType === 'url') {
8889
+ helpMenuList.appendChild(createUserMenuItem(createUserMenuLink(menuItem.label, menuItem.url, menuItem.target)));
8890
+ } else {
8891
+ helpMenuList.appendChild(createUserMenuItem(createUserMenuButton(menuItem.label, menuItem.onclick)));
8892
+ }
8893
+ });
8798
8894
  var helpMenu = document.createElement('nav');
8799
- (0, _headerHelpers.addStyleClassToElement)(helpMenu, ['header-user-menu__navigation-menu']);
8895
+ (0, _headerFooterHelpers.addStyleClassToElement)(helpMenu, ['header-user-menu__navigation-menu']);
8800
8896
  helpMenu.setAttribute('aria-hidden', 'true');
8801
8897
  helpMenu.appendChild(helpMenuList);
8802
- var helpIcon = _.icons.iconBase + 'noun_144.svg';
8803
8898
  var helpMenuContainer = document.createElement('div');
8804
- (0, _headerHelpers.addStyleClassToElement)(helpMenuContainer, ['header-banner__user-menu']);
8805
- (0, _headerHelpers.addStyleClassToElement)(helpMenuContainer, ['header-user-menu']);
8899
+ (0, _headerFooterHelpers.addStyleClassToElement)(helpMenuContainer, ['header-banner__user-menu']);
8900
+ (0, _headerFooterHelpers.addStyleClassToElement)(helpMenuContainer, ['header-user-menu']);
8806
8901
  helpMenuContainer.appendChild(helpMenu);
8807
8902
  var helpMenuTrigger = document.createElement('button');
8808
- (0, _headerHelpers.addStyleClassToElement)(helpMenuTrigger, ['header-user-menu__trigger']);
8903
+ (0, _headerFooterHelpers.addStyleClassToElement)(helpMenuTrigger, ['header-user-menu__trigger']);
8809
8904
  helpMenuTrigger.type = 'button';
8810
8905
  var helpMenuIcon = document.createElement('img');
8811
- helpMenuIcon.src = helpIcon;
8812
- (0, _headerHelpers.addStyleClassToElement)(helpMenuIcon, ['header-banner__help-icon']);
8906
+ helpMenuIcon.src = options && options.helpIcon ? options.helpIcon : _iconBase.icons.iconBase + DEFAULT_HELP_MENU_ICON;
8907
+ (0, _headerFooterHelpers.addStyleClassToElement)(helpMenuIcon, ['header-banner__help-icon']);
8813
8908
  helpMenuContainer.appendChild(helpMenuTrigger);
8814
8909
  helpMenuTrigger.appendChild(helpMenuIcon);
8815
- var throttledMenuToggle = (0, _headerHelpers.throttle)(function (event) {
8910
+ var throttledMenuToggle = (0, _headerFooterHelpers.throttle)(function (event) {
8816
8911
  return toggleMenu(event, helpMenuTrigger, helpMenu);
8817
8912
  }, 50);
8818
8913
  helpMenuTrigger.addEventListener('click', throttledMenuToggle);
@@ -8837,7 +8932,7 @@ function createHelpMenu() {
8837
8932
 
8838
8933
  function createLoginSignUpButtons() {
8839
8934
  var profileLoginButtonPre = document.createElement('div');
8840
- (0, _headerHelpers.addStyleClassToElement)(profileLoginButtonPre, ['header-banner__login']);
8935
+ (0, _headerFooterHelpers.addStyleClassToElement)(profileLoginButtonPre, ['header-banner__login']);
8841
8936
  profileLoginButtonPre.appendChild((0, _authn.loginStatusBox)(document, null, {}));
8842
8937
  return profileLoginButtonPre;
8843
8938
  }
@@ -8848,7 +8943,7 @@ function createLoginSignUpButtons() {
8848
8943
 
8849
8944
  function createUserMenuButton(label, onClick) {
8850
8945
  var button = document.createElement('button');
8851
- (0, _headerHelpers.addStyleClassToElement)(button, ['header-user-menu__button']);
8946
+ (0, _headerFooterHelpers.addStyleClassToElement)(button, ['header-user-menu__button']);
8852
8947
  button.addEventListener('click', onClick);
8853
8948
  button.innerText = label;
8854
8949
  return button;
@@ -8860,7 +8955,7 @@ function createUserMenuButton(label, onClick) {
8860
8955
 
8861
8956
  function createUserMenuLink(label, href, target) {
8862
8957
  var link = document.createElement('a');
8863
- (0, _headerHelpers.addStyleClassToElement)(link, ['header-user-menu__link']);
8958
+ (0, _headerFooterHelpers.addStyleClassToElement)(link, ['header-user-menu__link']);
8864
8959
  link.href = href;
8865
8960
  link.innerText = label;
8866
8961
  if (target) link.target = target;
@@ -8871,7 +8966,7 @@ function createUserMenuLink(label, href, target) {
8871
8966
  */
8872
8967
 
8873
8968
 
8874
- function createUserMenu(_x7, _x8, _x9) {
8969
+ function createUserMenu(_x9, _x10, _x11) {
8875
8970
  return _createUserMenu.apply(this, arguments);
8876
8971
  }
8877
8972
  /**
@@ -8880,7 +8975,7 @@ function createUserMenu(_x7, _x8, _x9) {
8880
8975
 
8881
8976
 
8882
8977
  function _createUserMenu() {
8883
- _createUserMenu = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(store, user, options) {
8978
+ _createUserMenu = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(store, user, userMenuList) {
8884
8979
  var fetcher, loggedInMenuList, loggedInMenu, loggedInMenuTrigger, profileImg, loggedInMenuContainer, throttledMenuToggle, timer;
8885
8980
  return _regenerator["default"].wrap(function _callee4$(_context4) {
8886
8981
  while (1) {
@@ -8898,32 +8993,26 @@ function _createUserMenu() {
8898
8993
 
8899
8994
  case 4:
8900
8995
  loggedInMenuList = document.createElement('ul');
8901
- (0, _headerHelpers.addStyleClassToElement)(loggedInMenuList, ['header-user-menu__list']);
8902
- loggedInMenuList.appendChild(createUserMenuItem(createUserMenuLink('Show your profile', user.uri)));
8996
+ (0, _headerFooterHelpers.addStyleClassToElement)(loggedInMenuList, ['header-user-menu__list']);
8903
8997
 
8904
- if (options) {
8905
- if (options.menuList) {
8906
- options.menuList.forEach(function (menuItem) {
8907
- var menuItemType = menuItem.url ? 'url' : 'onclick';
8908
-
8909
- if (menuItemType === 'url') {
8910
- loggedInMenuList.appendChild(createUserMenuItem(createUserMenuLink(menuItem.label, menuItem[menuItemType])));
8911
- } else {
8912
- loggedInMenuList.appendChild(createUserMenuItem(createUserMenuButton(menuItem.label, menuItem[menuItemType])));
8913
- }
8914
- });
8915
- }
8998
+ if (userMenuList) {
8999
+ userMenuList.forEach(function (menuItem) {
9000
+ var menuItemType = menuItem.url ? 'url' : 'onclick';
9001
+
9002
+ if (menuItemType === 'url') {
9003
+ loggedInMenuList.appendChild(createUserMenuItem(createUserMenuLink(menuItem.label, menuItem.url, menuItem.target)));
9004
+ } else {
9005
+ loggedInMenuList.appendChild(createUserMenuItem(createUserMenuButton(menuItem.label, menuItem.onclick)));
9006
+ }
9007
+ });
8916
9008
  }
8917
9009
 
8918
- loggedInMenuList.appendChild(createUserMenuItem(createUserMenuButton('Log out', function () {
8919
- return _authn.authSession.logout();
8920
- })));
8921
9010
  loggedInMenu = document.createElement('nav');
8922
- (0, _headerHelpers.addStyleClassToElement)(loggedInMenu, ['header-user-menu__navigation-menu']);
9011
+ (0, _headerFooterHelpers.addStyleClassToElement)(loggedInMenu, ['header-user-menu__navigation-menu']);
8923
9012
  loggedInMenu.setAttribute('aria-hidden', 'true');
8924
9013
  loggedInMenu.appendChild(loggedInMenuList);
8925
9014
  loggedInMenuTrigger = document.createElement('button');
8926
- (0, _headerHelpers.addStyleClassToElement)(loggedInMenuTrigger, ['header-user-menu__trigger']);
9015
+ (0, _headerFooterHelpers.addStyleClassToElement)(loggedInMenuTrigger, ['header-user-menu__trigger']);
8927
9016
  loggedInMenuTrigger.type = 'button';
8928
9017
  profileImg = getProfileImg(store, user);
8929
9018
 
@@ -8934,11 +9023,11 @@ function _createUserMenu() {
8934
9023
  }
8935
9024
 
8936
9025
  loggedInMenuContainer = document.createElement('div');
8937
- (0, _headerHelpers.addStyleClassToElement)(loggedInMenuContainer, ['header-banner__user-menu']);
8938
- (0, _headerHelpers.addStyleClassToElement)(loggedInMenuContainer, ['header-user-menu']);
9026
+ (0, _headerFooterHelpers.addStyleClassToElement)(loggedInMenuContainer, ['header-banner__user-menu']);
9027
+ (0, _headerFooterHelpers.addStyleClassToElement)(loggedInMenuContainer, ['header-user-menu']);
8939
9028
  loggedInMenuContainer.appendChild(loggedInMenuTrigger);
8940
9029
  loggedInMenuContainer.appendChild(loggedInMenu);
8941
- throttledMenuToggle = (0, _headerHelpers.throttle)(function (event) {
9030
+ throttledMenuToggle = (0, _headerFooterHelpers.throttle)(function (event) {
8942
9031
  return toggleMenu(event, loggedInMenuTrigger, loggedInMenu);
8943
9032
  }, 50);
8944
9033
  loggedInMenuTrigger.addEventListener('click', throttledMenuToggle);
@@ -8956,7 +9045,7 @@ function _createUserMenu() {
8956
9045
  });
8957
9046
  return _context4.abrupt("return", loggedInMenuContainer);
8958
9047
 
8959
- case 29:
9048
+ case 27:
8960
9049
  case "end":
8961
9050
  return _context4.stop();
8962
9051
  }
@@ -8968,7 +9057,7 @@ function _createUserMenu() {
8968
9057
 
8969
9058
  function createUserMenuItem(child) {
8970
9059
  var menuProfileItem = document.createElement('li');
8971
- (0, _headerHelpers.addStyleClassToElement)(menuProfileItem, ['header-user-menu__list-item']);
9060
+ (0, _headerFooterHelpers.addStyleClassToElement)(menuProfileItem, ['header-user-menu__list-item']);
8972
9061
  menuProfileItem.appendChild(child);
8973
9062
  return menuProfileItem;
8974
9063
  }
@@ -8991,7 +9080,7 @@ function getProfileImg(store, user) {
8991
9080
  }
8992
9081
 
8993
9082
  var profileImage = document.createElement('div');
8994
- (0, _headerHelpers.addStyleClassToElement)(profileImage, ['header-user-menu__photo']);
9083
+ (0, _headerFooterHelpers.addStyleClassToElement)(profileImage, ['header-user-menu__photo']);
8995
9084
  profileImage.style.backgroundImage = "url(\"".concat(profileUrl, "\")");
8996
9085
  return profileImage;
8997
9086
  }
@@ -9157,11 +9246,7 @@ var styleMap = {
9157
9246
 
9158
9247
  },
9159
9248
  'header-banner__help-icon': {
9160
- backgroundSize: '55px 50px',
9161
- height: '50px !important',
9162
- // this is the icon size
9163
- width: '55px !important' // may just be 65px round($icon-size * 352 / 430);
9164
-
9249
+ width: '28px !important'
9165
9250
  }
9166
9251
  };
9167
9252
  exports.styleMap = styleMap;
@@ -9320,6 +9405,12 @@ Object.defineProperty(exports, "infiniteMessageArea", {
9320
9405
  return _infinite.infiniteMessageArea;
9321
9406
  }
9322
9407
  });
9408
+ Object.defineProperty(exports, "initFooter", {
9409
+ enumerable: true,
9410
+ get: function get() {
9411
+ return _footer.initFooter;
9412
+ }
9413
+ });
9323
9414
  Object.defineProperty(exports, "initHeader", {
9324
9415
  enumerable: true,
9325
9416
  get: function get() {
@@ -9436,6 +9527,8 @@ var _versionInfo = _interopRequireDefault(__webpack_require__(/*! ./versionInfo
9436
9527
 
9437
9528
  var _header = __webpack_require__(/*! ./header */ "./lib/header/index.js");
9438
9529
 
9530
+ var _footer = __webpack_require__(/*! ./footer */ "./lib/footer/index.js");
9531
+
9439
9532
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
9440
9533
 
9441
9534
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -9488,7 +9581,8 @@ if (typeof window !== 'undefined') {
9488
9581
  utils: utils,
9489
9582
  widgets: widgets,
9490
9583
  versionInfo: _versionInfo["default"],
9491
- initHeader: _header.initHeader
9584
+ initHeader: _header.initHeader,
9585
+ initFooter: _footer.initFooter
9492
9586
  }; // Simpler access by non-node scripts
9493
9587
  }
9494
9588
  //# sourceMappingURL=index.js.map
@@ -14632,6 +14726,206 @@ function isLight(x) {
14632
14726
 
14633
14727
  /***/ }),
14634
14728
 
14729
+ /***/ "./lib/utils/headerFooterHelpers.js":
14730
+ /*!******************************************!*\
14731
+ !*** ./lib/utils/headerFooterHelpers.js ***!
14732
+ \******************************************/
14733
+ /*! no static exports found */
14734
+ /***/ (function(module, exports, __webpack_require__) {
14735
+
14736
+ "use strict";
14737
+
14738
+
14739
+ var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js");
14740
+
14741
+ Object.defineProperty(exports, "__esModule", {
14742
+ value: true
14743
+ });
14744
+ exports.addStyleClassToElement = addStyleClassToElement;
14745
+ exports.getName = getName;
14746
+ exports.getPod = getPod;
14747
+ exports.getPodOwner = getPodOwner;
14748
+ exports.throttle = throttle;
14749
+
14750
+ var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"));
14751
+
14752
+ var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
14753
+
14754
+ var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js"));
14755
+
14756
+ var _rdflib = __webpack_require__(/*! rdflib */ "./node_modules/rdflib/esm/index.js");
14757
+
14758
+ var _ = __webpack_require__(/*! .. */ "./lib/index.js");
14759
+
14760
+ var _styleMap = __webpack_require__(/*! ../header/styleMap */ "./lib/header/styleMap.js");
14761
+
14762
+ var _styleMap2 = __webpack_require__(/*! ../footer/styleMap */ "./lib/footer/styleMap.js");
14763
+
14764
+ var _jss = __webpack_require__(/*! ../jss */ "./lib/jss/index.js");
14765
+
14766
+ /*
14767
+ Copied from mashlib/src/global/metadata.ts
14768
+ */
14769
+
14770
+ /**
14771
+ * @internal
14772
+ */
14773
+ function getStyle(styleClass, type) {
14774
+ if (type && type === 'footer') {
14775
+ return _styleMap2.styleMap[styleClass];
14776
+ } else {
14777
+ return _styleMap.styleMap[styleClass];
14778
+ }
14779
+ }
14780
+ /**
14781
+ * @ignore exporting this only for the unit test
14782
+ */
14783
+
14784
+
14785
+ function addStyleClassToElement(element, styleClasses, type) {
14786
+ styleClasses.forEach(function (styleClass) {
14787
+ var style = getStyle(styleClass, type);
14788
+
14789
+ var _getClasses = (0, _jss.getClasses)(document.head, (0, _defineProperty2["default"])({}, styleClass, style)),
14790
+ classes = _getClasses.classes;
14791
+
14792
+ element.classList.add(classes[styleClass]);
14793
+ });
14794
+ }
14795
+ /**
14796
+ * @ignore exporting this only for the unit test
14797
+ */
14798
+
14799
+
14800
+ function getPod() {
14801
+ // @@ TODO: This is given that mashlib runs on NSS - might need to change when we want it to run on other Pod servers
14802
+ return (0, _rdflib.sym)(document.location.origin).site();
14803
+ }
14804
+ /**
14805
+ * @ignore exporting this only for the unit test
14806
+ */
14807
+
14808
+
14809
+ function getPodOwner(_x, _x2) {
14810
+ return _getPodOwner.apply(this, arguments);
14811
+ }
14812
+ /**
14813
+ * @ignore exporting this only for the unit test
14814
+ */
14815
+
14816
+
14817
+ function _getPodOwner() {
14818
+ _getPodOwner = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(pod, store) {
14819
+ var podOwner, storageIsListedInPodOwnersProfile;
14820
+ return _regenerator["default"].wrap(function _callee$(_context) {
14821
+ while (1) {
14822
+ switch (_context.prev = _context.next) {
14823
+ case 0:
14824
+ // @@ TODO: This is given the structure that NSS provides - might need to change for other Pod servers
14825
+ podOwner = (0, _rdflib.sym)("".concat(pod.uri, "profile/card#me"));
14826
+ _context.prev = 1;
14827
+
14828
+ if (!store.fetcher) {
14829
+ _context.next = 7;
14830
+ break;
14831
+ }
14832
+
14833
+ _context.next = 5;
14834
+ return store.fetcher.load(podOwner.doc());
14835
+
14836
+ case 5:
14837
+ _context.next = 8;
14838
+ break;
14839
+
14840
+ case 7:
14841
+ throw new Error('There was a problem loading the Fetcher');
14842
+
14843
+ case 8:
14844
+ _context.next = 13;
14845
+ break;
14846
+
14847
+ case 10:
14848
+ _context.prev = 10;
14849
+ _context.t0 = _context["catch"](1);
14850
+ throw new Error('Did NOT find pod owners profile at ' + podOwner);
14851
+
14852
+ case 13:
14853
+ if (!podOwner) {
14854
+ _context.next = 17;
14855
+ break;
14856
+ }
14857
+
14858
+ storageIsListedInPodOwnersProfile = store.holds(podOwner, _.ns.space('storage'), pod, podOwner.doc());
14859
+
14860
+ if (storageIsListedInPodOwnersProfile) {
14861
+ _context.next = 17;
14862
+ break;
14863
+ }
14864
+
14865
+ throw new Error("** Pod owner ".concat(podOwner, " does NOT list pod ").concat(pod, " as storage"));
14866
+
14867
+ case 17:
14868
+ return _context.abrupt("return", podOwner);
14869
+
14870
+ case 18:
14871
+ case "end":
14872
+ return _context.stop();
14873
+ }
14874
+ }
14875
+ }, _callee, null, [[1, 10]]);
14876
+ }));
14877
+ return _getPodOwner.apply(this, arguments);
14878
+ }
14879
+
14880
+ function getName(store, user) {
14881
+ return store.anyValue(user, _.ns.vcard('fn'), null, user.doc()) || store.anyValue(user, _.ns.foaf('name'), null, user.doc()) || user.uri;
14882
+ }
14883
+ /**
14884
+ * @ignore exporting this only for the unit test
14885
+ */
14886
+
14887
+
14888
+ function throttle(func, wait) {
14889
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
14890
+ var context, args, result;
14891
+ var timeout = null;
14892
+ var previous = 0;
14893
+
14894
+ var later = function later() {
14895
+ previous = !options.leading ? 0 : Date.now();
14896
+ timeout = null;
14897
+ result = func.apply(context, args);
14898
+ if (!timeout) context = args = null;
14899
+ };
14900
+
14901
+ return function () {
14902
+ var now = Date.now();
14903
+ if (!previous && !options.leading) previous = now;
14904
+ var remaining = wait - (now - previous); // @ts-ignore
14905
+
14906
+ context = this;
14907
+ args = arguments;
14908
+
14909
+ if (remaining <= 0 || remaining > wait) {
14910
+ if (timeout) {
14911
+ clearTimeout(timeout);
14912
+ timeout = null;
14913
+ }
14914
+
14915
+ previous = now;
14916
+ result = func.apply(context, args);
14917
+ if (!timeout) context = args = null;
14918
+ } else if (!timeout && options.trailing !== false) {
14919
+ timeout = setTimeout(later, remaining);
14920
+ }
14921
+
14922
+ return result;
14923
+ };
14924
+ }
14925
+ //# sourceMappingURL=headerFooterHelpers.js.map
14926
+
14927
+ /***/ }),
14928
+
14635
14929
  /***/ "./lib/utils/index.js":
14636
14930
  /*!****************************!*\
14637
14931
  !*** ./lib/utils/index.js ***!
@@ -15428,25 +15722,25 @@ Object.defineProperty(exports, "__esModule", {
15428
15722
  });
15429
15723
  exports["default"] = void 0;
15430
15724
  var _default = {
15431
- buildTime: '2021-12-27T13:52:53Z',
15432
- commit: '842f7f265c2100b20b351ee13f8e32534dc987bd',
15725
+ buildTime: '2022-01-18T23:15:24Z',
15726
+ commit: '6a9e81a980072cb7f7b8e8098346bd1acac55269',
15433
15727
  npmInfo: {
15434
15728
  'solid-ui': '2.4.14',
15435
- npm: '6.14.15',
15436
- ares: '1.18.1',
15729
+ npm: '6.14.13',
15730
+ ares: '1.17.1',
15437
15731
  brotli: '1.0.9',
15438
15732
  cldr: '39.0',
15439
15733
  icu: '69.1',
15440
- llhttp: '2.1.4',
15734
+ llhttp: '2.1.3',
15441
15735
  modules: '83',
15442
15736
  napi: '8',
15443
15737
  nghttp2: '1.42.0',
15444
- node: '14.18.2',
15445
- openssl: '1.1.1l',
15738
+ node: '14.17.3',
15739
+ openssl: '1.1.1k',
15446
15740
  tz: '2021a',
15447
15741
  unicode: '13.0',
15448
- uv: '1.42.0',
15449
- v8: '8.4.371.23-node.85',
15742
+ uv: '1.41.0',
15743
+ v8: '8.4.371.23-node.67',
15450
15744
  zlib: '1.2.11'
15451
15745
  }
15452
15746
  };