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
package/lib/folders.js CHANGED
@@ -1,37 +1,27 @@
1
1
  "use strict";
2
2
 
3
3
  var _typeof = require("@babel/runtime/helpers/typeof");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.deleteFolder = deleteFolder;
9
8
  exports.deleteRecursive = deleteRecursive;
10
-
11
9
  var debug = _interopRequireWildcard(require("./debug"));
12
-
13
10
  var _iconBase = require("./iconBase");
14
-
15
11
  var _solidLogic = require("solid-logic");
16
-
17
12
  var ns = _interopRequireWildcard(require("./ns"));
18
-
19
13
  var rdf = _interopRequireWildcard(require("rdflib"));
20
-
21
14
  var style = _interopRequireWildcard(require("./style"));
22
-
23
15
  var widgets = _interopRequireWildcard(require("./widgets"));
24
-
25
16
  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); }
26
-
27
17
  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; }
28
-
29
18
  /** UI To Delete Folder and content
30
19
  *
31
20
  */
32
-
33
21
  /* global confirm */
22
+
34
23
  // pull in first avoid cross-refs
24
+
35
25
  var UI = {
36
26
  icons: _iconBase.icons,
37
27
  ns: ns,
@@ -39,7 +29,6 @@ var UI = {
39
29
  style: style,
40
30
  widgets: widgets
41
31
  };
42
-
43
32
  function deleteRecursive(kb, folder) {
44
33
  // eslint-disable-next-line promise/param-names
45
34
  return new Promise(function (resolve, _reject) {
@@ -49,20 +38,16 @@ function deleteRecursive(kb, folder) {
49
38
  return deleteRecursive(kb, file);
50
39
  } else {
51
40
  debug.log('deleteRecirsive file: ' + file);
52
-
53
41
  if (!confirm(' Really DELETE File ' + file)) {
54
42
  throw new Error('User aborted delete file');
55
43
  }
56
-
57
44
  return kb.fetcher.webOperation('DELETE', file.uri);
58
45
  }
59
46
  });
60
47
  debug.log('deleteRecirsive folder: ' + folder);
61
-
62
48
  if (!confirm(' Really DELETE folder ' + folder)) {
63
49
  throw new Error('User aborted delete file');
64
50
  }
65
-
66
51
  promises.push(kb.fetcher.webOperation('DELETE', folder.uri));
67
52
  Promise.all(promises).then(function (_res) {
68
53
  resolve();
@@ -70,14 +55,13 @@ function deleteRecursive(kb, folder) {
70
55
  });
71
56
  });
72
57
  }
58
+
73
59
  /** Iterate over files depth first
74
60
  *
75
61
  * @param folder - The folder whose contents we iterate over
76
62
  * @param store - The quadstore
77
63
  * @param action - returns a promise. All the promises must be resolved
78
64
  */
79
-
80
-
81
65
  function forAllFiles(folder, kb, action) {
82
66
  // eslint-disable-next-line promise/param-names
83
67
  return new Promise(function (resolve, _reject) {
@@ -96,6 +80,7 @@ function forAllFiles(folder, kb, action) {
96
80
  });
97
81
  });
98
82
  }
83
+
99
84
  /** Delete Folder and contents
100
85
  *
101
86
  * @param {NamedNode} folder - The LDP container to be deleted
@@ -104,17 +89,12 @@ function forAllFiles(folder, kb, action) {
104
89
  * @param {Document} dom - The browser 'document' gloabl or equivalent (or iuse global)
105
90
  * @returns {DOMElement} - The control which has eben inserted in the
106
91
  */
107
-
108
92
  /* global document */
109
-
110
-
111
93
  function deleteFolder(folder, store, dom) {
112
94
  store = store || _solidLogic.solidLogicSingleton.store;
113
-
114
95
  if (typeof docuent !== 'undefined') {
115
96
  dom = dom || document;
116
97
  }
117
-
118
98
  var div = dom.createElement('div');
119
99
  var table = div.appendChild(dom.createElement('table'));
120
100
  var mainTR = table.appendChild(dom.createElement('tr'));
@@ -125,7 +105,6 @@ function deleteFolder(folder, store, dom) {
125
105
  var buttonsTR = table.appendChild(dom.createElement('tr'));
126
106
  var buttonsTD1 = buttonsTR.appendChild(dom.createElement('td'));
127
107
  buttonsTR.appendChild(dom.createElement('td')); // buttonsTD2
128
-
129
108
  var buttonsTD3 = buttonsTR.appendChild(dom.createElement('td'));
130
109
  var cancel = buttonsTD1.appendChild(UI.widgets.cancelButton(dom));
131
110
  cancel.addEventListener('click', function (_event) {
@@ -137,13 +116,11 @@ function deleteFolder(folder, store, dom) {
137
116
  debug.log('All deleted.');
138
117
  });
139
118
  }, false);
140
-
141
119
  function deleteThem(folder) {
142
120
  return forAllFiles(folder, function (file) {
143
121
  return store.fetcher.webOperation('DELETE', file.uri);
144
122
  });
145
123
  }
146
-
147
124
  var count = 0;
148
125
  forAllFiles(folder, store, function () {
149
126
  count += 1;
@@ -1 +1 @@
1
- {"version":3,"file":"folders.js","names":["UI","icons","ns","rdf","style","widgets","deleteRecursive","kb","folder","Promise","resolve","_reject","fetcher","load","then","promises","each","ldp","map","file","holds","debug","log","confirm","Error","webOperation","uri","push","all","_res","forAllFiles","action","deleteFolder","store","dom","solidLogicSingleton","docuent","document","div","createElement","table","appendChild","mainTR","p","textContent","buttonsTR","buttonsTD1","buttonsTD3","cancel","cancelButton","addEventListener","_event","parentNode","removeChild","doit","button","iconBase","deleteThem","count","msg"],"sources":["../src/folders.js"],"sourcesContent":["/** UI To Delete Folder and content\n *\n */\n/* global confirm */\n\nimport * as debug from './debug'\nimport { icons } from './iconBase'\nimport { solidLogicSingleton } from 'solid-logic'\nimport * as ns from './ns'\nimport * as rdf from 'rdflib' // pull in first avoid cross-refs\nimport * as style from './style'\nimport * as widgets from './widgets'\n\nconst UI = { icons, ns, rdf, style, widgets }\n\nexport function deleteRecursive (kb, folder) {\n // eslint-disable-next-line promise/param-names\n return new Promise(function (resolve, _reject) {\n kb.fetcher.load(folder).then(function () {\n const promises = kb.each(folder, ns.ldp('contains')).map(file => {\n if (kb.holds(file, ns.rdf('type'), ns.ldp('BasicContainer'))) {\n return deleteRecursive(kb, file)\n } else {\n debug.log('deleteRecirsive file: ' + file)\n if (!confirm(' Really DELETE File ' + file)) {\n throw new Error('User aborted delete file')\n }\n return kb.fetcher.webOperation('DELETE', file.uri)\n }\n })\n debug.log('deleteRecirsive folder: ' + folder)\n if (!confirm(' Really DELETE folder ' + folder)) {\n throw new Error('User aborted delete file')\n }\n promises.push(kb.fetcher.webOperation('DELETE', folder.uri))\n Promise.all(promises).then(_res => {\n resolve()\n })\n })\n })\n}\n\n/** Iterate over files depth first\n *\n * @param folder - The folder whose contents we iterate over\n * @param store - The quadstore\n * @param action - returns a promise. All the promises must be resolved\n */\nfunction forAllFiles (folder, kb, action) {\n // eslint-disable-next-line promise/param-names\n return new Promise(function (resolve, _reject) {\n kb.fetcher.load(folder).then(function () {\n const promises = kb.each(folder, ns.ldp('contains')).map(file => {\n if (kb.holds(file, ns.rdf('type'), ns.ldp('BasicContainer'))) {\n return forAllFiles(file, kb, action)\n } else {\n return action(file)\n }\n })\n promises.push(action(folder))\n Promise.all(promises).then(_res => {\n resolve()\n })\n })\n })\n}\n\n/** Delete Folder and contents\n *\n * @param {NamedNode} folder - The LDP container to be deleted\n * @param {DOMElement} containingElement - Where to put the user interface\n * @param {IndexedForumula} store - Quadstore (optional)\n * @param {Document} dom - The browser 'document' gloabl or equivalent (or iuse global)\n * @returns {DOMElement} - The control which has eben inserted in the\n */\n/* global document */\nexport function deleteFolder (folder, store, dom) {\n store = store || solidLogicSingleton.store\n if (typeof docuent !== 'undefined') {\n dom = dom || document\n }\n const div = dom.createElement('div')\n const table = div.appendChild(dom.createElement('table'))\n const mainTR = table.appendChild(dom.createElement('tr'))\n mainTR.appendChild(dom.createElement('td')) // mainTD\n\n const p = mainTR.appendChild(dom.createElement('p'))\n p.textContent = `Are you sure you want to delete the folder ${folder}? This cannot be undone.`\n const buttonsTR = table.appendChild(dom.createElement('tr'))\n const buttonsTD1 = buttonsTR.appendChild(dom.createElement('td'))\n buttonsTR.appendChild(dom.createElement('td')) // buttonsTD2\n const buttonsTD3 = buttonsTR.appendChild(dom.createElement('td'))\n\n const cancel = buttonsTD1.appendChild(UI.widgets.cancelButton(dom))\n cancel.addEventListener(\n 'click',\n function (_event) {\n div.parentNode.removeChild(div)\n },\n false\n )\n\n const doit = buttonsTD3.appendChild(\n UI.widgets.button(dom, UI.icons.iconBase + 'noun_925021.svg', 'Yes, delete')\n )\n doit.addEventListener(\n 'click',\n function (_event) {\n deleteThem(folder).then(() => {\n debug.log('All deleted.')\n })\n },\n false\n )\n\n function deleteThem (folder) {\n return forAllFiles(folder, file =>\n store.fetcher.webOperation('DELETE', file.uri)\n )\n }\n let count = 0\n forAllFiles(folder, store, () => {\n count += 1\n }) // Count files\n .then(() => {\n const msg = ' Files to delete: ' + count\n debug.log(msg)\n p.textContent += msg\n })\n\n return div\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"folders.js","names":["UI","icons","ns","rdf","style","widgets","deleteRecursive","kb","folder","Promise","resolve","_reject","fetcher","load","then","promises","each","ldp","map","file","holds","debug","log","confirm","Error","webOperation","uri","push","all","_res","forAllFiles","action","deleteFolder","store","dom","solidLogicSingleton","docuent","document","div","createElement","table","appendChild","mainTR","p","textContent","buttonsTR","buttonsTD1","buttonsTD3","cancel","cancelButton","addEventListener","_event","parentNode","removeChild","doit","button","iconBase","deleteThem","count","msg"],"sources":["../src/folders.js"],"sourcesContent":["/** UI To Delete Folder and content\n *\n */\n/* global confirm */\n\nimport * as debug from './debug'\nimport { icons } from './iconBase'\nimport { solidLogicSingleton } from 'solid-logic'\nimport * as ns from './ns'\nimport * as rdf from 'rdflib' // pull in first avoid cross-refs\nimport * as style from './style'\nimport * as widgets from './widgets'\n\nconst UI = { icons, ns, rdf, style, widgets }\n\nexport function deleteRecursive (kb, folder) {\n // eslint-disable-next-line promise/param-names\n return new Promise(function (resolve, _reject) {\n kb.fetcher.load(folder).then(function () {\n const promises = kb.each(folder, ns.ldp('contains')).map(file => {\n if (kb.holds(file, ns.rdf('type'), ns.ldp('BasicContainer'))) {\n return deleteRecursive(kb, file)\n } else {\n debug.log('deleteRecirsive file: ' + file)\n if (!confirm(' Really DELETE File ' + file)) {\n throw new Error('User aborted delete file')\n }\n return kb.fetcher.webOperation('DELETE', file.uri)\n }\n })\n debug.log('deleteRecirsive folder: ' + folder)\n if (!confirm(' Really DELETE folder ' + folder)) {\n throw new Error('User aborted delete file')\n }\n promises.push(kb.fetcher.webOperation('DELETE', folder.uri))\n Promise.all(promises).then(_res => {\n resolve()\n })\n })\n })\n}\n\n/** Iterate over files depth first\n *\n * @param folder - The folder whose contents we iterate over\n * @param store - The quadstore\n * @param action - returns a promise. All the promises must be resolved\n */\nfunction forAllFiles (folder, kb, action) {\n // eslint-disable-next-line promise/param-names\n return new Promise(function (resolve, _reject) {\n kb.fetcher.load(folder).then(function () {\n const promises = kb.each(folder, ns.ldp('contains')).map(file => {\n if (kb.holds(file, ns.rdf('type'), ns.ldp('BasicContainer'))) {\n return forAllFiles(file, kb, action)\n } else {\n return action(file)\n }\n })\n promises.push(action(folder))\n Promise.all(promises).then(_res => {\n resolve()\n })\n })\n })\n}\n\n/** Delete Folder and contents\n *\n * @param {NamedNode} folder - The LDP container to be deleted\n * @param {DOMElement} containingElement - Where to put the user interface\n * @param {IndexedForumula} store - Quadstore (optional)\n * @param {Document} dom - The browser 'document' gloabl or equivalent (or iuse global)\n * @returns {DOMElement} - The control which has eben inserted in the\n */\n/* global document */\nexport function deleteFolder (folder, store, dom) {\n store = store || solidLogicSingleton.store\n if (typeof docuent !== 'undefined') {\n dom = dom || document\n }\n const div = dom.createElement('div')\n const table = div.appendChild(dom.createElement('table'))\n const mainTR = table.appendChild(dom.createElement('tr'))\n mainTR.appendChild(dom.createElement('td')) // mainTD\n\n const p = mainTR.appendChild(dom.createElement('p'))\n p.textContent = `Are you sure you want to delete the folder ${folder}? This cannot be undone.`\n const buttonsTR = table.appendChild(dom.createElement('tr'))\n const buttonsTD1 = buttonsTR.appendChild(dom.createElement('td'))\n buttonsTR.appendChild(dom.createElement('td')) // buttonsTD2\n const buttonsTD3 = buttonsTR.appendChild(dom.createElement('td'))\n\n const cancel = buttonsTD1.appendChild(UI.widgets.cancelButton(dom))\n cancel.addEventListener(\n 'click',\n function (_event) {\n div.parentNode.removeChild(div)\n },\n false\n )\n\n const doit = buttonsTD3.appendChild(\n UI.widgets.button(dom, UI.icons.iconBase + 'noun_925021.svg', 'Yes, delete')\n )\n doit.addEventListener(\n 'click',\n function (_event) {\n deleteThem(folder).then(() => {\n debug.log('All deleted.')\n })\n },\n false\n )\n\n function deleteThem (folder) {\n return forAllFiles(folder, file =>\n store.fetcher.webOperation('DELETE', file.uri)\n )\n }\n let count = 0\n forAllFiles(folder, store, () => {\n count += 1\n }) // Count files\n .then(() => {\n const msg = ' Files to delete: ' + count\n debug.log(msg)\n p.textContent += msg\n })\n\n return div\n}\n"],"mappings":"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"}
@@ -1,32 +1,27 @@
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
  });
8
7
  exports.createControllerInfoBlock = createControllerInfoBlock;
9
8
  exports.initFooter = initFooter;
10
9
  exports.rebuildFooter = rebuildFooter;
11
-
12
10
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
-
14
11
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
-
16
12
  var _solidLogic = require("solid-logic");
17
-
18
13
  var _headerFooterHelpers = require("../utils/headerFooterHelpers");
19
-
20
14
  /*
21
15
  This file was copied from mashlib/src/global/footer.ts file. It is modified to
22
16
  work in solid-ui by adjusting where imported functions are found.
23
17
  */
18
+
24
19
  var DEFAULT_SOLID_PROJECT_URL = 'https://solidproject.org';
25
20
  var DEFAULT_SOLID_PROJECT_NAME = 'solidproject.org';
21
+
26
22
  /*
27
23
  FooterOptions allow for customizing the link and name of the link part of the footer.
28
24
  */
29
-
30
25
  /**
31
26
  * Initialize footer component, the footer object returned depends on whether the user is authenticated.
32
27
  * @param store the data store
@@ -38,8 +33,6 @@ function initFooter(_x, _x2) {
38
33
  /**
39
34
  * @ignore exporting this only for the unit test
40
35
  */
41
-
42
-
43
36
  function _initFooter() {
44
37
  _initFooter = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(store, options) {
45
38
  var footer, pod, podOwner;
@@ -48,27 +41,20 @@ function _initFooter() {
48
41
  switch (_context2.prev = _context2.next) {
49
42
  case 0:
50
43
  footer = document.getElementById('PageFooter');
51
-
52
44
  if (footer) {
53
45
  _context2.next = 3;
54
46
  break;
55
47
  }
56
-
57
48
  return _context2.abrupt("return");
58
-
59
49
  case 3:
60
50
  pod = (0, _headerFooterHelpers.getPod)();
61
51
  _context2.next = 6;
62
52
  return (0, _headerFooterHelpers.getPodOwner)(pod, store);
63
-
64
53
  case 6:
65
54
  podOwner = _context2.sent;
66
55
  rebuildFooter(footer, store, pod, podOwner, options)();
67
-
68
56
  _solidLogic.authSession.onLogin(rebuildFooter(footer, store, pod, podOwner, options));
69
-
70
57
  _solidLogic.authSession.onLogout(rebuildFooter(footer, store, pod, podOwner, options));
71
-
72
58
  case 10:
73
59
  case "end":
74
60
  return _context2.stop();
@@ -78,7 +64,6 @@ function _initFooter() {
78
64
  }));
79
65
  return _initFooter.apply(this, arguments);
80
66
  }
81
-
82
67
  function rebuildFooter(footer, store, pod, podOwner, options) {
83
68
  return /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
84
69
  var user;
@@ -91,12 +76,9 @@ function rebuildFooter(footer, store, pod, podOwner, options) {
91
76
  _context.t0 = footer;
92
77
  _context.next = 5;
93
78
  return createControllerInfoBlock(store, user, pod, podOwner, options);
94
-
95
79
  case 5:
96
80
  _context.t1 = _context.sent;
97
-
98
81
  _context.t0.appendChild.call(_context.t0, _context.t1);
99
-
100
82
  case 7:
101
83
  case "end":
102
84
  return _context.stop();
@@ -108,15 +90,11 @@ function rebuildFooter(footer, store, pod, podOwner, options) {
108
90
  /**
109
91
  * @ignore exporting this only for the unit test
110
92
  */
111
-
112
-
113
93
  function createControllerInfoBlock(store, user, pod, podOwner, options) {
114
94
  var profileLinkContainer = document.createElement('div');
115
-
116
95
  if (!pod || !podOwner || user && user.equals(podOwner)) {
117
96
  return profileLinkContainer;
118
97
  }
119
-
120
98
  (0, _headerFooterHelpers.addStyleClassToElement)(profileLinkContainer, ['footer-pod-info', 'footer'], 'footer');
121
99
  var podLinkPre = document.createElement('span');
122
100
  podLinkPre.innerText = "You're visiting ";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["DEFAULT_SOLID_PROJECT_URL","DEFAULT_SOLID_PROJECT_NAME","initFooter","store","options","footer","document","getElementById","pod","getPod","getPodOwner","podOwner","rebuildFooter","authSession","onLogin","onLogout","user","authn","currentUser","innerHTML","createControllerInfoBlock","appendChild","profileLinkContainer","createElement","equals","addStyleClassToElement","podLinkPre","innerText","podLink","href","uri","profileLinkPre","profileLink","getName","solidProjectLinkPre","solidProjectLink","solidProjectUrl","solidProjectName","solidProjectLinkPost"],"sources":["../../src/footer/index.ts"],"sourcesContent":["/*\n This file was copied from mashlib/src/global/footer.ts file. It is modified to\n work in solid-ui by adjusting where imported functions are found.\n */\nimport { LiveStore, NamedNode } from 'rdflib'\nimport { authn, authSession } from 'solid-logic'\nimport { addStyleClassToElement, getName, getPod, getPodOwner } from '../utils/headerFooterHelpers'\n\nconst DEFAULT_SOLID_PROJECT_URL = 'https://solidproject.org'\nconst DEFAULT_SOLID_PROJECT_NAME = 'solidproject.org'\n\n/*\n FooterOptions allow for customizing the link and name of the link part of the footer.\n */\nexport type FooterOptions = {\n solidProjectUrl?: string,\n solidProjectName?: string\n }\n\n/**\n * Initialize footer component, the footer object returned depends on whether the user is authenticated.\n * @param store the data store\n * @returns the footer\n */\nexport async function initFooter (store: LiveStore, options?: FooterOptions) {\n const footer = document.getElementById('PageFooter')\n if (!footer) {\n return\n }\n const pod = getPod()\n const podOwner = await getPodOwner(pod, store)\n rebuildFooter(footer, store, pod, podOwner, options)()\n authSession.onLogin(rebuildFooter(footer, store, pod, podOwner, options))\n authSession.onLogout(rebuildFooter(footer, store, pod, podOwner, options))\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function rebuildFooter (footer: HTMLElement, store: LiveStore, pod: NamedNode | null, podOwner: NamedNode | null, options?: FooterOptions) {\n return async () => {\n const user = authn.currentUser()\n footer.innerHTML = ''\n footer.appendChild(await createControllerInfoBlock(store, user, pod, podOwner, options))\n }\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createControllerInfoBlock (store: LiveStore, user: NamedNode | null, pod: NamedNode | null, podOwner: NamedNode | null, options?: FooterOptions): HTMLElement {\n const profileLinkContainer = document.createElement('div')\n if (!pod || !podOwner || (user && user.equals(podOwner))) {\n return profileLinkContainer\n }\n\n addStyleClassToElement(profileLinkContainer, ['footer-pod-info', 'footer'], 'footer')\n\n const podLinkPre = document.createElement('span')\n podLinkPre.innerText = \"You're visiting \"\n\n const podLink = document.createElement('a')\n podLink.href = pod.uri\n podLink.innerText = 'the Pod'\n\n const profileLinkPre = document.createElement('span')\n profileLinkPre.innerText = ' controlled by '\n\n const profileLink = document.createElement('a')\n profileLink.href = podOwner.uri\n profileLink.innerText = getName(store, podOwner)\n\n const solidProjectLinkPre = document.createElement('span')\n solidProjectLinkPre.innerText = '. For more info, check out '\n\n const solidProjectLink = document.createElement('a')\n solidProjectLink.href = options && options.solidProjectUrl ? options.solidProjectUrl : DEFAULT_SOLID_PROJECT_URL\n solidProjectLink.innerText = options && options.solidProjectName ? options.solidProjectName : DEFAULT_SOLID_PROJECT_NAME\n\n const solidProjectLinkPost = document.createElement('span')\n solidProjectLinkPost.innerText = '.'\n\n profileLinkContainer.appendChild(podLinkPre)\n profileLinkContainer.appendChild(podLink)\n profileLinkContainer.appendChild(profileLinkPre)\n profileLinkContainer.appendChild(profileLink)\n profileLinkContainer.appendChild(solidProjectLinkPre)\n profileLinkContainer.appendChild(solidProjectLink)\n profileLinkContainer.appendChild(solidProjectLinkPost)\n\n return profileLinkContainer\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["DEFAULT_SOLID_PROJECT_URL","DEFAULT_SOLID_PROJECT_NAME","initFooter","store","options","footer","document","getElementById","pod","getPod","getPodOwner","podOwner","rebuildFooter","authSession","onLogin","onLogout","user","authn","currentUser","innerHTML","createControllerInfoBlock","appendChild","profileLinkContainer","createElement","equals","addStyleClassToElement","podLinkPre","innerText","podLink","href","uri","profileLinkPre","profileLink","getName","solidProjectLinkPre","solidProjectLink","solidProjectUrl","solidProjectName","solidProjectLinkPost"],"sources":["../../src/footer/index.ts"],"sourcesContent":["/*\n This file was copied from mashlib/src/global/footer.ts file. It is modified to\n work in solid-ui by adjusting where imported functions are found.\n */\nimport { LiveStore, NamedNode } from 'rdflib'\nimport { authn, authSession } from 'solid-logic'\nimport { addStyleClassToElement, getName, getPod, getPodOwner } from '../utils/headerFooterHelpers'\n\nconst DEFAULT_SOLID_PROJECT_URL = 'https://solidproject.org'\nconst DEFAULT_SOLID_PROJECT_NAME = 'solidproject.org'\n\n/*\n FooterOptions allow for customizing the link and name of the link part of the footer.\n */\nexport type FooterOptions = {\n solidProjectUrl?: string,\n solidProjectName?: string\n }\n\n/**\n * Initialize footer component, the footer object returned depends on whether the user is authenticated.\n * @param store the data store\n * @returns the footer\n */\nexport async function initFooter (store: LiveStore, options?: FooterOptions) {\n const footer = document.getElementById('PageFooter')\n if (!footer) {\n return\n }\n const pod = getPod()\n const podOwner = await getPodOwner(pod, store)\n rebuildFooter(footer, store, pod, podOwner, options)()\n authSession.onLogin(rebuildFooter(footer, store, pod, podOwner, options))\n authSession.onLogout(rebuildFooter(footer, store, pod, podOwner, options))\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function rebuildFooter (footer: HTMLElement, store: LiveStore, pod: NamedNode | null, podOwner: NamedNode | null, options?: FooterOptions) {\n return async () => {\n const user = authn.currentUser()\n footer.innerHTML = ''\n footer.appendChild(await createControllerInfoBlock(store, user, pod, podOwner, options))\n }\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createControllerInfoBlock (store: LiveStore, user: NamedNode | null, pod: NamedNode | null, podOwner: NamedNode | null, options?: FooterOptions): HTMLElement {\n const profileLinkContainer = document.createElement('div')\n if (!pod || !podOwner || (user && user.equals(podOwner))) {\n return profileLinkContainer\n }\n\n addStyleClassToElement(profileLinkContainer, ['footer-pod-info', 'footer'], 'footer')\n\n const podLinkPre = document.createElement('span')\n podLinkPre.innerText = \"You're visiting \"\n\n const podLink = document.createElement('a')\n podLink.href = pod.uri\n podLink.innerText = 'the Pod'\n\n const profileLinkPre = document.createElement('span')\n profileLinkPre.innerText = ' controlled by '\n\n const profileLink = document.createElement('a')\n profileLink.href = podOwner.uri\n profileLink.innerText = getName(store, podOwner)\n\n const solidProjectLinkPre = document.createElement('span')\n solidProjectLinkPre.innerText = '. For more info, check out '\n\n const solidProjectLink = document.createElement('a')\n solidProjectLink.href = options && options.solidProjectUrl ? options.solidProjectUrl : DEFAULT_SOLID_PROJECT_URL\n solidProjectLink.innerText = options && options.solidProjectName ? options.solidProjectName : DEFAULT_SOLID_PROJECT_NAME\n\n const solidProjectLinkPost = document.createElement('span')\n solidProjectLinkPost.innerText = '.'\n\n profileLinkContainer.appendChild(podLinkPre)\n profileLinkContainer.appendChild(podLink)\n profileLinkContainer.appendChild(profileLinkPre)\n profileLinkContainer.appendChild(profileLink)\n profileLinkContainer.appendChild(solidProjectLinkPre)\n profileLinkContainer.appendChild(solidProjectLink)\n profileLinkContainer.appendChild(solidProjectLinkPost)\n\n return profileLinkContainer\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"styleMap.js","names":["styleMap","footer","borderTop","fontSize","padding"],"sources":["../../src/footer/styleMap.ts"],"sourcesContent":["export const styleMap = {\n footer: {\n borderTop: 'solid 1px $divider-color',\n fontSize: '0.9em',\n padding: '0.5em 1.5em'\n }\n}\n"],"mappings":";;;;;;AAAO,IAAMA,QAAQ,GAAG;EACtBC,MAAM,EAAE;IACNC,SAAS,EAAE,0BADL;IAENC,QAAQ,EAAE,OAFJ;IAGNC,OAAO,EAAE;EAHH;AADc,CAAjB"}
1
+ {"version":3,"file":"styleMap.js","names":["styleMap","footer","borderTop","fontSize","padding"],"sources":["../../src/footer/styleMap.ts"],"sourcesContent":["export const styleMap = {\n footer: {\n borderTop: 'solid 1px $divider-color',\n fontSize: '0.9em',\n padding: '0.5em 1.5em'\n }\n}\n"],"mappings":";;;;;;AAAO,IAAMA,QAAQ,GAAG;EACtBC,MAAM,EAAE;IACNC,SAAS,EAAE,0BAA0B;IACrCC,QAAQ,EAAE,OAAO;IACjBC,OAAO,EAAE;EACX;AACF,CAAC;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"empty-profile.js","names":["emptyProfile"],"sources":["../../src/header/empty-profile.ts"],"sourcesContent":["export const 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>`\n"],"mappings":";;;;;;AAAO,IAAMA,YAAY,mrCAAlB"}
1
+ {"version":3,"file":"empty-profile.js","names":["emptyProfile"],"sources":["../../src/header/empty-profile.ts"],"sourcesContent":["export const 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>`\n"],"mappings":";;;;;;AAAO,IAAMA,YAAY,mrCASlB;AAAA"}