solid-ui 2.4.32 → 2.4.33-beta

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 (267) hide show
  1. package/LICENSE.md +0 -0
  2. package/README.md +0 -0
  3. package/dist/{670.solid-ui.min.js → 789.solid-ui.min.js} +1 -1
  4. package/dist/841.solid-ui.min.js +3 -0
  5. package/dist/{805.solid-ui.min.js.LICENSE.txt → 841.solid-ui.min.js.LICENSE.txt} +0 -0
  6. package/dist/841.solid-ui.min.js.map +1 -0
  7. package/dist/_2b19.solid-ui.js +0 -0
  8. package/dist/_2b19.solid-ui.js.map +1 -1
  9. package/dist/index.html +0 -0
  10. package/dist/solid-ui.js +2437 -1694
  11. package/dist/solid-ui.js.map +1 -1
  12. package/dist/solid-ui.min.js +1 -1
  13. package/dist/solid-ui.min.js.LICENSE.txt +0 -0
  14. package/dist/solid-ui.min.js.map +1 -1
  15. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js +1 -1
  16. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js.map +1 -1
  17. package/lib/acl/access-controller.d.ts +0 -0
  18. package/lib/acl/access-controller.d.ts.map +0 -0
  19. package/lib/acl/access-controller.js +2 -3
  20. package/lib/acl/access-controller.js.map +1 -1
  21. package/lib/acl/access-groups.d.ts +0 -0
  22. package/lib/acl/access-groups.d.ts.map +0 -0
  23. package/lib/acl/access-groups.js +2 -3
  24. package/lib/acl/access-groups.js.map +1 -1
  25. package/lib/acl/acl-control.d.ts +0 -0
  26. package/lib/acl/acl-control.d.ts.map +0 -0
  27. package/lib/acl/acl-control.js +1 -1
  28. package/lib/acl/acl-control.js.map +1 -1
  29. package/lib/acl/acl.d.ts +0 -0
  30. package/lib/acl/acl.d.ts.map +0 -0
  31. package/lib/acl/acl.js +1 -1
  32. package/lib/acl/acl.js.map +1 -1
  33. package/lib/acl/add-agent-buttons.d.ts +0 -0
  34. package/lib/acl/add-agent-buttons.d.ts.map +0 -0
  35. package/lib/acl/add-agent-buttons.js +2 -3
  36. package/lib/acl/add-agent-buttons.js.map +1 -1
  37. package/lib/acl/index.d.ts +0 -0
  38. package/lib/acl/index.d.ts.map +0 -0
  39. package/lib/acl/index.js +0 -0
  40. package/lib/acl/index.js.map +1 -1
  41. package/lib/acl/types.d.ts +0 -0
  42. package/lib/acl/types.d.ts.map +0 -0
  43. package/lib/acl/types.js +0 -0
  44. package/lib/acl/types.js.map +1 -1
  45. package/lib/chat/bookmarks.js +8 -43
  46. package/lib/chat/bookmarks.js.map +1 -1
  47. package/lib/chat/chatLogic.js +228 -104
  48. package/lib/chat/chatLogic.js.map +1 -1
  49. package/lib/chat/dateFolder.js +141 -139
  50. package/lib/chat/dateFolder.js.map +1 -1
  51. package/lib/chat/infinite.js +619 -433
  52. package/lib/chat/infinite.js.map +1 -1
  53. package/lib/chat/keys.d.ts +0 -0
  54. package/lib/chat/keys.d.ts.map +0 -0
  55. package/lib/chat/keys.js +4 -4
  56. package/lib/chat/keys.js.map +1 -1
  57. package/lib/chat/message.js +324 -192
  58. package/lib/chat/message.js.map +1 -1
  59. package/lib/chat/messageTools.js +460 -277
  60. package/lib/chat/messageTools.js.map +1 -1
  61. package/lib/chat/signature.d.ts +0 -0
  62. package/lib/chat/signature.d.ts.map +0 -0
  63. package/lib/chat/signature.js +0 -0
  64. package/lib/chat/signature.js.map +1 -1
  65. package/lib/chat/thread.js +300 -209
  66. package/lib/chat/thread.js.map +1 -1
  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 +1 -1
  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 +0 -0
  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 +0 -0
  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 +0 -0
  82. package/lib/debug.js.map +1 -1
  83. package/lib/folders.js +1 -1
  84. package/lib/folders.js.map +1 -1
  85. package/lib/footer/index.d.ts +0 -0
  86. package/lib/footer/index.d.ts.map +0 -0
  87. package/lib/footer/index.js +1 -1
  88. package/lib/footer/index.js.map +1 -1
  89. package/lib/header/empty-profile.d.ts +0 -0
  90. package/lib/header/empty-profile.d.ts.map +0 -0
  91. package/lib/header/empty-profile.js +0 -0
  92. package/lib/header/empty-profile.js.map +1 -1
  93. package/lib/header/index.d.ts +0 -0
  94. package/lib/header/index.d.ts.map +0 -0
  95. package/lib/header/index.js +1 -1
  96. package/lib/header/index.js.map +1 -1
  97. package/lib/iconBase.d.ts +0 -0
  98. package/lib/iconBase.d.ts.map +0 -0
  99. package/lib/iconBase.js +0 -0
  100. package/lib/iconBase.js.map +1 -1
  101. package/lib/icons/solid_logo.d.ts +0 -0
  102. package/lib/icons/solid_logo.d.ts.map +0 -0
  103. package/lib/icons/solid_logo.js +0 -0
  104. package/lib/icons/solid_logo.js.map +1 -1
  105. package/lib/index.d.ts +0 -0
  106. package/lib/index.d.ts.map +0 -0
  107. package/lib/index.js +1 -1
  108. package/lib/index.js.map +1 -1
  109. package/lib/log.d.ts +0 -0
  110. package/lib/log.d.ts.map +0 -0
  111. package/lib/log.js +0 -0
  112. package/lib/log.js.map +1 -1
  113. package/lib/login/login.d.ts +0 -0
  114. package/lib/login/login.d.ts.map +0 -0
  115. package/lib/login/login.js +1 -1
  116. package/lib/login/login.js.map +1 -1
  117. package/lib/matrix/index.d.ts +0 -0
  118. package/lib/matrix/index.d.ts.map +0 -0
  119. package/lib/matrix/index.js +0 -0
  120. package/lib/matrix/index.js.map +1 -1
  121. package/lib/matrix/matrix.d.ts +0 -0
  122. package/lib/matrix/matrix.d.ts.map +0 -0
  123. package/lib/matrix/matrix.js +1 -1
  124. package/lib/matrix/matrix.js.map +1 -1
  125. package/lib/matrix/types.d.ts +0 -0
  126. package/lib/matrix/types.d.ts.map +0 -0
  127. package/lib/matrix/types.js +0 -0
  128. package/lib/matrix/types.js.map +1 -1
  129. package/lib/media/index.d.ts +0 -0
  130. package/lib/media/index.d.ts.map +0 -0
  131. package/lib/media/index.js +0 -0
  132. package/lib/media/index.js.map +1 -1
  133. package/lib/media/media-capture.d.ts +0 -0
  134. package/lib/media/media-capture.d.ts.map +0 -0
  135. package/lib/media/media-capture.js +1 -1
  136. package/lib/media/media-capture.js.map +1 -1
  137. package/lib/messageArea.js +1 -1
  138. package/lib/messageArea.js.map +1 -1
  139. package/lib/noun_Camera_1618446_000000.js +0 -0
  140. package/lib/noun_Camera_1618446_000000.js.map +1 -1
  141. package/lib/ns.js +1 -1
  142. package/lib/ns.js.map +1 -1
  143. package/lib/pad.d.ts +0 -0
  144. package/lib/pad.d.ts.map +0 -0
  145. package/lib/pad.js +13 -16
  146. package/lib/pad.js.map +1 -1
  147. package/lib/participation.d.ts +0 -0
  148. package/lib/participation.d.ts.map +0 -0
  149. package/lib/participation.js +7 -9
  150. package/lib/participation.js.map +1 -1
  151. package/lib/preferences.js +5 -1
  152. package/lib/preferences.js.map +1 -1
  153. package/lib/signup/config-default.js +0 -0
  154. package/lib/signup/config-default.js.map +1 -1
  155. package/lib/signup/signup.js +0 -0
  156. package/lib/signup/signup.js.map +1 -1
  157. package/lib/stories/decorators.js +0 -0
  158. package/lib/stories/decorators.js.map +1 -1
  159. package/lib/style.js +0 -0
  160. package/lib/style.js.map +1 -1
  161. package/lib/styleConstants.js +0 -0
  162. package/lib/styleConstants.js.map +1 -1
  163. package/lib/style_multiSelect.js +0 -0
  164. package/lib/style_multiSelect.js.map +1 -1
  165. package/lib/table.js +1 -1
  166. package/lib/table.js.map +1 -1
  167. package/lib/tabs.d.ts +0 -0
  168. package/lib/tabs.d.ts.map +0 -0
  169. package/lib/tabs.js +16 -20
  170. package/lib/tabs.js.map +1 -1
  171. package/lib/typings.d.js +0 -0
  172. package/lib/typings.d.js.map +1 -1
  173. package/lib/utils/headerFooterHelpers.d.ts +0 -0
  174. package/lib/utils/headerFooterHelpers.d.ts.map +0 -0
  175. package/lib/utils/headerFooterHelpers.js +0 -0
  176. package/lib/utils/headerFooterHelpers.js.map +1 -1
  177. package/lib/utils/index.js +1 -1
  178. package/lib/utils/index.js.map +1 -1
  179. package/lib/utils/keyHelpers/accessData.d.ts +2 -2
  180. package/lib/utils/keyHelpers/accessData.d.ts.map +1 -1
  181. package/lib/utils/keyHelpers/accessData.js +60 -116
  182. package/lib/utils/keyHelpers/accessData.js.map +1 -1
  183. package/lib/utils/keyHelpers/acl.d.ts +0 -0
  184. package/lib/utils/keyHelpers/acl.d.ts.map +0 -0
  185. package/lib/utils/keyHelpers/acl.js +15 -15
  186. package/lib/utils/keyHelpers/acl.js.map +1 -1
  187. package/lib/utils/keyHelpers/otherHelpers.d.ts +3 -0
  188. package/lib/utils/keyHelpers/otherHelpers.d.ts.map +1 -0
  189. package/lib/utils/keyHelpers/otherHelpers.js +22 -0
  190. package/lib/utils/keyHelpers/otherHelpers.js.map +1 -0
  191. package/lib/utils/label.d.ts +0 -0
  192. package/lib/utils/label.d.ts.map +0 -0
  193. package/lib/utils/label.js +1 -1
  194. package/lib/utils/label.js.map +1 -1
  195. package/lib/versionInfo.d.ts +17 -10
  196. package/lib/versionInfo.d.ts.map +1 -1
  197. package/lib/versionInfo.js +24 -17
  198. package/lib/versionInfo.js.map +1 -1
  199. package/lib/widgets/buttons/iconLinks.d.ts +0 -0
  200. package/lib/widgets/buttons/iconLinks.d.ts.map +0 -0
  201. package/lib/widgets/buttons/iconLinks.js +0 -0
  202. package/lib/widgets/buttons/iconLinks.js.map +1 -1
  203. package/lib/widgets/buttons.d.ts +0 -0
  204. package/lib/widgets/buttons.d.ts.map +0 -0
  205. package/lib/widgets/buttons.js +1 -1
  206. package/lib/widgets/buttons.js.map +1 -1
  207. package/lib/widgets/dragAndDrop.js +1 -1
  208. package/lib/widgets/dragAndDrop.js.map +1 -1
  209. package/lib/widgets/error.d.ts +0 -0
  210. package/lib/widgets/error.d.ts.map +0 -0
  211. package/lib/widgets/error.js +1 -1
  212. package/lib/widgets/error.js.map +1 -1
  213. package/lib/widgets/forms/autocomplete/autocompleteBar.d.ts +0 -0
  214. package/lib/widgets/forms/autocomplete/autocompleteBar.d.ts.map +0 -0
  215. package/lib/widgets/forms/autocomplete/autocompleteBar.js +1 -1
  216. package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
  217. package/lib/widgets/forms/autocomplete/autocompleteField.d.ts +0 -0
  218. package/lib/widgets/forms/autocomplete/autocompleteField.d.ts.map +0 -0
  219. package/lib/widgets/forms/autocomplete/autocompleteField.js +1 -1
  220. package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
  221. package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts +0 -0
  222. package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts.map +0 -0
  223. package/lib/widgets/forms/autocomplete/autocompletePicker.js +1 -1
  224. package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
  225. package/lib/widgets/forms/autocomplete/language.d.ts +0 -0
  226. package/lib/widgets/forms/autocomplete/language.d.ts.map +0 -0
  227. package/lib/widgets/forms/autocomplete/language.js +1 -1
  228. package/lib/widgets/forms/autocomplete/language.js.map +1 -1
  229. package/lib/widgets/forms/autocomplete/publicData.d.ts +0 -0
  230. package/lib/widgets/forms/autocomplete/publicData.d.ts.map +0 -0
  231. package/lib/widgets/forms/autocomplete/publicData.js +1 -1
  232. package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
  233. package/lib/widgets/forms/basic.d.ts +0 -0
  234. package/lib/widgets/forms/basic.d.ts.map +0 -0
  235. package/lib/widgets/forms/basic.js +1 -1
  236. package/lib/widgets/forms/basic.js.map +1 -1
  237. package/lib/widgets/forms/comment.d.ts +0 -0
  238. package/lib/widgets/forms/comment.d.ts.map +0 -0
  239. package/lib/widgets/forms/comment.js +1 -1
  240. package/lib/widgets/forms/comment.js.map +1 -1
  241. package/lib/widgets/forms/fieldFunction.d.ts +0 -0
  242. package/lib/widgets/forms/fieldFunction.d.ts.map +0 -0
  243. package/lib/widgets/forms/fieldFunction.js +0 -0
  244. package/lib/widgets/forms/fieldFunction.js.map +1 -1
  245. package/lib/widgets/forms/fieldParams.d.ts +0 -0
  246. package/lib/widgets/forms/fieldParams.d.ts.map +0 -0
  247. package/lib/widgets/forms/fieldParams.js +1 -1
  248. package/lib/widgets/forms/fieldParams.js.map +1 -1
  249. package/lib/widgets/forms/formStyle.d.ts +0 -0
  250. package/lib/widgets/forms/formStyle.d.ts.map +0 -0
  251. package/lib/widgets/forms/formStyle.js +1 -1
  252. package/lib/widgets/forms/formStyle.js.map +1 -1
  253. package/lib/widgets/forms.js +1 -1
  254. package/lib/widgets/forms.js.map +1 -1
  255. package/lib/widgets/index.js +1 -1
  256. package/lib/widgets/index.js.map +1 -1
  257. package/lib/widgets/multiSelect.js +2 -3
  258. package/lib/widgets/multiSelect.js.map +1 -1
  259. package/lib/widgets/peoplePicker.js +6 -11
  260. package/lib/widgets/peoplePicker.js.map +1 -1
  261. package/lib/widgets/widgetHelpers.d.ts +0 -0
  262. package/lib/widgets/widgetHelpers.d.ts.map +0 -0
  263. package/lib/widgets/widgetHelpers.js +0 -0
  264. package/lib/widgets/widgetHelpers.js.map +1 -1
  265. package/package.json +23 -23
  266. package/dist/805.solid-ui.min.js +0 -3
  267. package/dist/805.solid-ui.min.js.map +0 -1
@@ -5,12 +5,15 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ exports.ActionClassFromEmoji = ActionClassFromEmoji;
9
+ exports.emojiFromAction = emojiFromAction;
10
+ exports.emojiFromActionClass = emojiFromActionClass;
8
11
  exports.messageToolbar = messageToolbar;
9
12
  exports.sentimentStrip = sentimentStrip;
10
13
  exports.sentimentStripLinked = sentimentStripLinked;
11
14
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
12
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
15
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
16
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
14
17
  var debug = _interopRequireWildcard(require("../debug"));
15
18
  var _iconBase = require("../iconBase");
16
19
  var ns = _interopRequireWildcard(require("../ns"));
@@ -22,7 +25,7 @@ var _solidLogic = require("solid-logic");
22
25
  var _chatLogic = require("./chatLogic");
23
26
  var _message = require("./message");
24
27
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
25
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
28
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
26
29
  /**
27
30
  * Tools for doing things with a message
28
31
  * Let us be creative here. Allow all sorts of things to
@@ -51,30 +54,45 @@ var PENCIL_ICON = 'noun_253504.svg'; // edit a message
51
54
  // const SPANNER_ICON = 'noun_344563.svg' -> settings
52
55
  var THUMBS_UP_ICON = 'noun_1384132.svg';
53
56
  var THUMBS_DOWN_ICON = 'noun_1384135.svg';
57
+ var REPLY_ICON = 'noun-reply-5506924.svg';
54
58
  /**
55
59
  * Emoji in Unicode
56
60
  */
57
- var emoji = {};
58
- emoji[ns.schema('AgreeAction')] = '👍';
59
- emoji[ns.schema('DisagreeAction')] = '👎';
60
- emoji[ns.schema('EndorseAction')] = '⭐️';
61
- emoji[ns.schema('LikeAction')] = '❤️';
61
+ var emojiMap = {};
62
+ emojiMap[ns.schema('AgreeAction')] = '👍';
63
+ emojiMap[ns.schema('DisagreeAction')] = '👎';
64
+ emojiMap[ns.schema('EndorseAction')] = '⭐️';
65
+ emojiMap[ns.schema('LikeAction')] = '❤️';
66
+ function emojiFromActionClass(action) {
67
+ return emojiMap[action] || null;
68
+ }
69
+ function ActionClassFromEmoji(emoji) {
70
+ for (var a in emojiMap) {
71
+ if (emojiMap[a] === emoji) {
72
+ return rdf.sym(a.slice(1, -1)); // remove < >
73
+ }
74
+ }
75
+ return null;
76
+ }
77
+
78
+ // Allow the action to give its own emoji as content,
79
+ // or get the emoji from the class of action.
80
+ function emojiFromAction(action) {
81
+ var content = _solidLogic.store.any(action, ns.sioc('content'), null, action.doc());
82
+ if (content) return content;
83
+ var klass = _solidLogic.store.any(action, ns.rdf('type'), null, action.doc());
84
+ if (klass) {
85
+ var em = emojiFromActionClass(klass);
86
+ if (em) return em;
87
+ }
88
+ return '⬜️';
89
+ }
62
90
 
63
91
  /**
64
92
  * Create strip of sentiments expressed
65
93
  */
66
- function sentimentStrip(target, doc) {
67
- // alain seems not used
68
- var latest = (0, _chatLogic.mostRecentVersion)(target);
69
- var actions = _solidLogic.store.holds(latest, ns.schema('dateDeleted').value, null, latest.doc()) ? _solidLogic.store.each(null, ns.schema('target'), target, doc) : [];
70
- var sentiments = actions.map(function (a) {
71
- return _solidLogic.store.any(a, ns.rdf('type'), null, doc);
72
- });
73
- sentiments.sort();
74
- var strings = sentiments.map(function (x) {
75
- return emoji[x] || '';
76
- });
77
- return dom.createTextNode(strings.join(' '));
94
+ function sentimentStrip(_x, _x2) {
95
+ return _sentimentStrip.apply(this, arguments);
78
96
  }
79
97
  /**
80
98
  * Create strip of sentiments expressed, with hyperlinks
@@ -82,275 +100,440 @@ function sentimentStrip(target, doc) {
82
100
  * @param target {NamedNode} - The thing about which they are expressed
83
101
  * @param doc {NamedNode} - The document in which they are expressed
84
102
  */
85
- function sentimentStripLinked(target, doc) {
86
- var strip = dom.createElement('span');
87
- function refresh() {
88
- strip.innerHTML = '';
89
- var actions = (0, _chatLogic.mostRecentVersion)(target).uri !== ns.schema('dateDeleted').uri ? _solidLogic.store.each(null, ns.schema('target'), target, doc) : [];
90
- var sentiments = actions.map(function (a) {
91
- return [_solidLogic.store.any(a, ns.rdf('type'), null, doc), _solidLogic.store.any(a, ns.schema('agent'), null, doc)];
92
- });
93
- sentiments.sort();
94
- sentiments.forEach(function (ss) {
95
- var _ss = (0, _slicedToArray2["default"])(ss, 2),
96
- theClass = _ss[0],
97
- agent = _ss[1];
98
- var res;
99
- if (agent) {
100
- res = dom.createElement('a');
101
- res.setAttribute('href', agent.uri);
102
- } else {
103
- res = dom.createTextNode('');
103
+ function _sentimentStrip() {
104
+ _sentimentStrip = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(target, doc) {
105
+ var versions, actions, strings;
106
+ return _regenerator["default"].wrap(function _callee$(_context) {
107
+ while (1) switch (_context.prev = _context.next) {
108
+ case 0:
109
+ _context.next = 2;
110
+ return (0, _chatLogic.allVersions)(target);
111
+ case 2:
112
+ versions = _context.sent;
113
+ // debug.log('sentimentStrip Versions for ' + target, versions)
114
+ actions = versions.map(function (version) {
115
+ return _solidLogic.store.each(null, ns.schema('target'), version, doc);
116
+ }).flat(); // debug.log('sentimentStrip: Actions for ' + target, actions)
117
+ strings = actions.map(function (action) {
118
+ return emojiFromAction(action) || '';
119
+ });
120
+ return _context.abrupt("return", dom.createTextNode(strings.join(' ')));
121
+ case 6:
122
+ case "end":
123
+ return _context.stop();
104
124
  }
105
- res.textContent = emoji[theClass] || '*';
106
- strip.appendChild(res);
107
- });
108
- }
109
- refresh();
110
- strip.refresh = refresh;
111
- return strip;
125
+ }, _callee);
126
+ }));
127
+ return _sentimentStrip.apply(this, arguments);
128
+ }
129
+ function sentimentStripLinked(_x3, _x4) {
130
+ return _sentimentStripLinked.apply(this, arguments);
112
131
  }
113
132
  /**
114
133
  * Creates a message toolbar component
115
134
  */
116
- function messageToolbar(message, messageRow, userContext, channelObject) {
117
- function deleteMessage() {
118
- return _deleteMessage.apply(this, arguments);
119
- }
120
- function _deleteMessage() {
121
- _deleteMessage = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
122
- var author, msg, area;
123
- return _regenerator["default"].wrap(function _callee2$(_context2) {
124
- while (1) switch (_context2.prev = _context2.next) {
125
- case 0:
126
- author = _solidLogic.store.any(message, ns.foaf('maker'));
127
- if (me) {
128
- _context2.next = 5;
129
- break;
135
+ function _sentimentStripLinked() {
136
+ _sentimentStripLinked = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(target, doc) {
137
+ var strip, refresh, _refresh;
138
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
139
+ while (1) switch (_context3.prev = _context3.next) {
140
+ case 0:
141
+ _refresh = function _refresh3() {
142
+ _refresh = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
143
+ var versions, actions, sentiments;
144
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
145
+ while (1) switch (_context2.prev = _context2.next) {
146
+ case 0:
147
+ strip.innerHTML = '';
148
+ if (!(0, _chatLogic.isDeleted)(target)) {
149
+ _context2.next = 3;
150
+ break;
151
+ }
152
+ return _context2.abrupt("return", strip);
153
+ case 3:
154
+ _context2.next = 5;
155
+ return (0, _chatLogic.allVersions)(target);
156
+ case 5:
157
+ versions = _context2.sent;
158
+ // debug.log('sentimentStripLinked: Versions for ' + target, versions)
159
+ actions = versions.map(function (version) {
160
+ return _solidLogic.store.each(null, ns.schema('target'), version, doc);
161
+ }).flat(); // debug.log('sentimentStripLinked: Actions for ' + target, actions)
162
+ if (!(actions.length === 0)) {
163
+ _context2.next = 9;
164
+ break;
165
+ }
166
+ return _context2.abrupt("return", strip);
167
+ case 9:
168
+ sentiments = actions.map(function (a) {
169
+ return [_solidLogic.store.any(a, ns.rdf('type'), null, doc), _solidLogic.store.any(a, ns.sioc('content'), null, doc), _solidLogic.store.any(a, ns.schema('agent'), null, doc)];
170
+ }); // debug.log(' Actions sentiments ', sentiments)
171
+ sentiments.sort();
172
+ sentiments.forEach(function (ss) {
173
+ var _ss = (0, _slicedToArray2["default"])(ss, 3),
174
+ theClass = _ss[0],
175
+ content = _ss[1],
176
+ agent = _ss[2];
177
+ var res;
178
+ if (agent) {
179
+ res = dom.createElement('a');
180
+ res.setAttribute('href', agent.uri);
181
+ } else {
182
+ res = dom.createTextNode('');
183
+ }
184
+ res.textContent = content || emojiMap[theClass] || '⬜️';
185
+ strip.appendChild(res);
186
+ });
187
+ // debug.log(' Actions strip ', strip)
188
+ case 12:
189
+ case "end":
190
+ return _context2.stop();
191
+ }
192
+ }, _callee2);
193
+ }));
194
+ return _refresh.apply(this, arguments);
195
+ };
196
+ refresh = function _refresh2() {
197
+ return _refresh.apply(this, arguments);
198
+ };
199
+ strip = dom.createElement('span');
200
+ refresh().then(debug.log('sentimentStripLinked: sentimentStripLinked async refreshed'));
201
+ strip.refresh = refresh;
202
+ return _context3.abrupt("return", strip);
203
+ case 6:
204
+ case "end":
205
+ return _context3.stop();
206
+ }
207
+ }, _callee3);
208
+ }));
209
+ return _sentimentStripLinked.apply(this, arguments);
210
+ }
211
+ function messageToolbar(_x5, _x6, _x7, _x8) {
212
+ return _messageToolbar.apply(this, arguments);
213
+ }
214
+ function _messageToolbar() {
215
+ _messageToolbar = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee10(message, messageRow, userContext, channelObject) {
216
+ var deleteMessage, _deleteMessage, editMessage, _editMessage, replyInThread, _replyInThread, div, closeToolbar, deleteThingThen, _deleteThingThen, me, sentimentButton, context1, cancelButton;
217
+ return _regenerator["default"].wrap(function _callee10$(_context10) {
218
+ while (1) switch (_context10.prev = _context10.next) {
219
+ case 0:
220
+ sentimentButton = function _sentimentButton(context, target, icon, actionClass, doc, mutuallyExclusive) {
221
+ function setColor() {
222
+ button.style.backgroundColor = action ? 'yellow' : 'white';
130
223
  }
131
- alert('You can\'t delete the message, you are not logged in.');
132
- _context2.next = 22;
133
- break;
134
- case 5:
135
- if (!me.sameTerm(author)) {
136
- _context2.next = 21;
137
- break;
224
+ var button = widgets.button(dom, icon, utils.label(actionClass), /*#__PURE__*/function () {
225
+ var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(_event) {
226
+ var insertMe, dirty, i, a;
227
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
228
+ while (1) switch (_context4.prev = _context4.next) {
229
+ case 0:
230
+ if (!action) {
231
+ _context4.next = 7;
232
+ break;
233
+ }
234
+ _context4.next = 3;
235
+ return deleteThingThen(action);
236
+ case 3:
237
+ action = null;
238
+ setColor();
239
+ _context4.next = 25;
240
+ break;
241
+ case 7:
242
+ // no action
243
+ action = widgets.newThing(doc);
244
+ insertMe = [rdf.st(action, ns.schema('agent'), context.me, doc), rdf.st(action, ns.rdf('type'), actionClass, doc), rdf.st(action, ns.schema('target'), target, doc)];
245
+ _context4.next = 11;
246
+ return _solidLogic.store.updater.update([], insertMe);
247
+ case 11:
248
+ setColor();
249
+ if (!mutuallyExclusive) {
250
+ _context4.next = 25;
251
+ break;
252
+ }
253
+ // Delete incompative sentiments
254
+ dirty = false;
255
+ i = 0;
256
+ case 15:
257
+ if (!(i < mutuallyExclusive.length)) {
258
+ _context4.next = 24;
259
+ break;
260
+ }
261
+ a = existingAction(mutuallyExclusive[i]);
262
+ if (!a) {
263
+ _context4.next = 21;
264
+ break;
265
+ }
266
+ _context4.next = 20;
267
+ return deleteThingThen(a);
268
+ case 20:
269
+ // but how refresh? refreshTree the parent?
270
+ dirty = true;
271
+ case 21:
272
+ i++;
273
+ _context4.next = 15;
274
+ break;
275
+ case 24:
276
+ if (dirty) {
277
+ // widgets.refreshTree(button.parentNode) // requires them all to be immediate siblings
278
+ widgets.refreshTree(messageRow); // requires them all to be immediate siblings
279
+ }
280
+ case 25:
281
+ case "end":
282
+ return _context4.stop();
283
+ }
284
+ }, _callee4);
285
+ }));
286
+ return function (_x11) {
287
+ return _ref.apply(this, arguments);
288
+ };
289
+ }());
290
+ function existingAction(actionClass) {
291
+ var actions = _solidLogic.store.each(null, ns.schema('agent'), context.me, doc).filter(function (x) {
292
+ return _solidLogic.store.holds(x, ns.rdf('type'), actionClass, doc);
293
+ }).filter(function (x) {
294
+ return _solidLogic.store.holds(x, ns.schema('target'), target, doc);
295
+ });
296
+ return actions.length ? actions[0] : null;
138
297
  }
139
- _context2.prev = 6;
140
- _context2.next = 9;
141
- return channelObject.deleteMessage(message);
142
- case 9:
143
- _context2.next = 18;
144
- break;
145
- case 11:
146
- _context2.prev = 11;
147
- _context2.t0 = _context2["catch"](6);
148
- msg = 'Error deleting messaage ' + _context2.t0;
149
- debug.warn(msg);
150
- alert(msg);
151
- area = userContext.statusArea || messageRow.parentNode;
152
- area.appendChild(widgets.errorMessageBlock(dom, msg));
153
- case 18:
154
- messageRow.parentNode.removeChild(messageRow);
155
- _context2.next = 22;
156
- break;
157
- case 21:
158
- alert('You can\'t delete the message, you are not logged in as the author, ' + author);
159
- case 22:
160
- closeToolbar();
161
- case 23:
162
- case "end":
163
- return _context2.stop();
164
- }
165
- }, _callee2, null, [[6, 11]]);
166
- }));
167
- return _deleteMessage.apply(this, arguments);
168
- }
169
- function editMessage(_x) {
170
- return _editMessage.apply(this, arguments);
171
- } // alain TODO allow chat owner to fully delete message + sentiments and replacing messages
172
- function _editMessage() {
173
- _editMessage = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(messageRow) {
174
- return _regenerator["default"].wrap(function _callee3$(_context3) {
175
- while (1) switch (_context3.prev = _context3.next) {
176
- case 0:
177
- if (me.value === _solidLogic.store.any(message, ns.foaf('maker')).value) {
178
- closeToolbar(); // edit is a one-off action
179
- (0, _message.switchToEditor)(messageRow, message, channelObject, userContext);
298
+ function refresh() {
299
+ action = existingAction(actionClass);
300
+ setColor();
180
301
  }
181
- case 1:
182
- case "end":
183
- return _context3.stop();
184
- }
185
- }, _callee3);
186
- }));
187
- return _editMessage.apply(this, arguments);
188
- }
189
- var div = dom.createElement('div');
190
- // is message deleted ?
191
- if ((0, _chatLogic.mostRecentVersion)(message).value === ns.schema('dateDeleted').value) return div;
192
- function closeToolbar() {
193
- div.parentElement.parentElement.removeChild(div.parentElement); // remive the TR
194
- }
195
- function deleteThingThen(_x2) {
196
- return _deleteThingThen.apply(this, arguments);
197
- } // Things only the original author can do
198
- function _deleteThingThen() {
199
- _deleteThingThen = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(x) {
200
- return _regenerator["default"].wrap(function _callee4$(_context4) {
201
- while (1) switch (_context4.prev = _context4.next) {
202
- case 0:
203
- _context4.next = 2;
204
- return _solidLogic.store.updater.update(_solidLogic.store.connectedStatements(x), []);
205
- case 2:
206
- case "end":
207
- return _context4.stop();
208
- }
209
- }, _callee4);
210
- }));
211
- return _deleteThingThen.apply(this, arguments);
212
- }
213
- var me = _solidLogic.authn.currentUser(); // If already logged on
214
- if (me && _solidLogic.store.holds(message, ns.foaf('maker'), me)) {
215
- // button to delete the message
216
- div.appendChild(widgets.deleteButtonWithCheck(dom, div, 'message', deleteMessage));
217
- // button to edit the message
218
- div.appendChild(widgets.button(dom, _iconBase.icons.iconBase + PENCIL_ICON, 'edit', function () {
219
- return editMessage(messageRow);
220
- }));
221
- } // if mine
222
- // Things anyone can do if they have a bookmark list async
223
- /*
224
- var bookmarkButton = await bookmarks.renderBookmarksButton(userContext)
225
- if (bookmarkButton) {
226
- div.appendChild(bookmarkButton)
227
- }
228
- */
229
- // Things anyone can do if they have a bookmark list
302
+ var action;
303
+ button.refresh = refresh; // If the file changes, refresh live
304
+ refresh();
305
+ return button;
306
+ };
307
+ _deleteThingThen = function _deleteThingThen3() {
308
+ _deleteThingThen = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9(x) {
309
+ return _regenerator["default"].wrap(function _callee9$(_context9) {
310
+ while (1) switch (_context9.prev = _context9.next) {
311
+ case 0:
312
+ _context9.next = 2;
313
+ return _solidLogic.store.updater.update(_solidLogic.store.connectedStatements(x), []);
314
+ case 2:
315
+ case "end":
316
+ return _context9.stop();
317
+ }
318
+ }, _callee9);
319
+ }));
320
+ return _deleteThingThen.apply(this, arguments);
321
+ };
322
+ deleteThingThen = function _deleteThingThen2(_x10) {
323
+ return _deleteThingThen.apply(this, arguments);
324
+ };
325
+ closeToolbar = function _closeToolbar() {
326
+ div.parentElement.parentElement.removeChild(div.parentElement); // remive the TR
327
+ };
328
+ _replyInThread = function _replyInThread3() {
329
+ _replyInThread = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8() {
330
+ var thread, options;
331
+ return _regenerator["default"].wrap(function _callee8$(_context8) {
332
+ while (1) switch (_context8.prev = _context8.next) {
333
+ case 0:
334
+ _context8.next = 2;
335
+ return channelObject.createThread(message);
336
+ case 2:
337
+ thread = _context8.sent;
338
+ options = userContext.chatOptions;
339
+ if (options) {
340
+ _context8.next = 6;
341
+ break;
342
+ }
343
+ throw new Error('replyInThread: missing options');
344
+ case 6:
345
+ options.showThread(thread, options);
346
+ closeToolbar(); // a one-off action
347
+ case 8:
348
+ case "end":
349
+ return _context8.stop();
350
+ }
351
+ }, _callee8);
352
+ }));
353
+ return _replyInThread.apply(this, arguments);
354
+ };
355
+ replyInThread = function _replyInThread2() {
356
+ return _replyInThread.apply(this, arguments);
357
+ };
358
+ _editMessage = function _editMessage3() {
359
+ _editMessage = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7(messageRow) {
360
+ return _regenerator["default"].wrap(function _callee7$(_context7) {
361
+ while (1) switch (_context7.prev = _context7.next) {
362
+ case 0:
363
+ if (!(me.value === _solidLogic.store.any(message, ns.foaf('maker')).value)) {
364
+ _context7.next = 4;
365
+ break;
366
+ }
367
+ closeToolbar(); // edit is a one-off action
368
+ _context7.next = 4;
369
+ return (0, _message.switchToEditor)(messageRow, message, channelObject, userContext);
370
+ case 4:
371
+ case "end":
372
+ return _context7.stop();
373
+ }
374
+ }, _callee7);
375
+ }));
376
+ return _editMessage.apply(this, arguments);
377
+ };
378
+ editMessage = function _editMessage2(_x9) {
379
+ return _editMessage.apply(this, arguments);
380
+ };
381
+ _deleteMessage = function _deleteMessage3() {
382
+ _deleteMessage = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
383
+ var author, msg, area;
384
+ return _regenerator["default"].wrap(function _callee6$(_context6) {
385
+ while (1) switch (_context6.prev = _context6.next) {
386
+ case 0:
387
+ author = _solidLogic.store.any(message, ns.foaf('maker'));
388
+ if (me) {
389
+ _context6.next = 5;
390
+ break;
391
+ }
392
+ alert('You can\'t delete the message, you are not logged in.');
393
+ _context6.next = 22;
394
+ break;
395
+ case 5:
396
+ if (!me.sameTerm(author)) {
397
+ _context6.next = 21;
398
+ break;
399
+ }
400
+ _context6.prev = 6;
401
+ _context6.next = 9;
402
+ return channelObject.deleteMessage(message);
403
+ case 9:
404
+ _context6.next = 18;
405
+ break;
406
+ case 11:
407
+ _context6.prev = 11;
408
+ _context6.t0 = _context6["catch"](6);
409
+ msg = 'Error deleting messaage ' + _context6.t0;
410
+ debug.warn(msg);
411
+ alert(msg);
412
+ area = userContext.statusArea || messageRow.parentNode;
413
+ area.appendChild(widgets.errorMessageBlock(dom, msg));
414
+ case 18:
415
+ messageRow.parentNode.removeChild(messageRow);
416
+ _context6.next = 22;
417
+ break;
418
+ case 21:
419
+ alert('You can\'t delete the message, you are not logged in as the author, ' + author);
420
+ case 22:
421
+ closeToolbar();
422
+ case 23:
423
+ case "end":
424
+ return _context6.stop();
425
+ }
426
+ }, _callee6, null, [[6, 11]]);
427
+ }));
428
+ return _deleteMessage.apply(this, arguments);
429
+ };
430
+ deleteMessage = function _deleteMessage2() {
431
+ return _deleteMessage.apply(this, arguments);
432
+ }; // alain: TODO allow chat owner to fully delete message + sentiments and replacing messages
433
+ div = dom.createElement('div'); // is message deleted ?
434
+ _context10.next = 13;
435
+ return (0, _chatLogic.mostRecentVersion)(message).value;
436
+ case 13:
437
+ _context10.t0 = _context10.sent;
438
+ _context10.t1 = ns.schema('dateDeleted').value;
439
+ if (!(_context10.t0 === _context10.t1)) {
440
+ _context10.next = 17;
441
+ break;
442
+ }
443
+ return _context10.abrupt("return", div);
444
+ case 17:
445
+ // Things only the original author can do
446
+ me = _solidLogic.authn.currentUser(); // If already logged on
447
+ if (me && _solidLogic.store.holds(message, ns.foaf('maker'), me)) {
448
+ // button to delete the message
449
+ div.appendChild(widgets.deleteButtonWithCheck(dom, div, 'message', deleteMessage));
450
+ // button to edit the message
451
+ div.appendChild(widgets.button(dom, _iconBase.icons.iconBase + PENCIL_ICON, 'edit', function () {
452
+ return editMessage(messageRow);
453
+ }));
454
+ } // if mine
455
+ // Things anyone can do if they have a bookmark list async
456
+ /*
457
+ var bookmarkButton = await bookmarks.renderBookmarksButton(userContext)
458
+ if (bookmarkButton) {
459
+ div.appendChild(bookmarkButton)
460
+ }
461
+ */
462
+ // Things anyone can do if they have a bookmark list
230
463
 
231
- (0, _bookmarks.renderBookmarksButton)(userContext).then(function (bookmarkButton) {
232
- if (bookmarkButton) div.appendChild(bookmarkButton);
233
- });
464
+ (0, _bookmarks.renderBookmarksButton)(userContext).then(function (bookmarkButton) {
465
+ if (bookmarkButton) div.appendChild(bookmarkButton);
466
+ });
234
467
 
235
- /** Button to allow user to express a sentiment (like, endorse, etc) about a target
236
- *
237
- * @param context {Object} - Provide dom and me
238
- * @param target {NamedNode} - The thing the user expresses an opnion about
239
- * @param icon {uristring} - The icon to be used for the button
240
- * @param actionClass {NamedNode} - The RDF class - typically a subclass of schema:Action
241
- * @param doc - {NamedNode} - the Solid document iunto which the data should be written
242
- * @param mutuallyExclusive {Array<NamedNode>} - Any RDF classes of sentimentswhich are mutiually exclusive
243
- */
244
- function sentimentButton(context, target, icon, actionClass, doc, mutuallyExclusive) {
245
- function setColor() {
246
- button.style.backgroundColor = action ? 'yellow' : 'white';
247
- }
248
- var button = widgets.button(dom, icon, utils.label(actionClass), /*#__PURE__*/function () {
249
- var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(_event) {
250
- var insertMe, dirty, i, a;
251
- return _regenerator["default"].wrap(function _callee$(_context) {
252
- while (1) switch (_context.prev = _context.next) {
253
- case 0:
254
- if (!action) {
255
- _context.next = 7;
256
- break;
257
- }
258
- _context.next = 3;
259
- return deleteThingThen(action);
260
- case 3:
261
- action = null;
262
- setColor();
263
- _context.next = 25;
264
- break;
265
- case 7:
266
- // no action
267
- action = widgets.newThing(doc);
268
- insertMe = [rdf.st(action, ns.schema('agent'), context.me, doc), rdf.st(action, ns.rdf('type'), actionClass, doc), rdf.st(action, ns.schema('target'), target, doc)];
269
- _context.next = 11;
270
- return _solidLogic.store.updater.update([], insertMe);
271
- case 11:
272
- setColor();
273
- if (!mutuallyExclusive) {
274
- _context.next = 25;
275
- break;
276
- }
277
- // Delete incompative sentiments
278
- dirty = false;
279
- i = 0;
280
- case 15:
281
- if (!(i < mutuallyExclusive.length)) {
282
- _context.next = 24;
283
- break;
284
- }
285
- a = existingAction(mutuallyExclusive[i]);
286
- if (!a) {
287
- _context.next = 21;
288
- break;
289
- }
290
- _context.next = 20;
291
- return deleteThingThen(a);
292
- case 20:
293
- // but how refresh? refreshTree the parent?
294
- dirty = true;
295
- case 21:
296
- i++;
297
- _context.next = 15;
298
- break;
299
- case 24:
300
- if (dirty) {
301
- // widgets.refreshTree(button.parentNode) // requires them all to be immediate siblings
302
- widgets.refreshTree(messageRow); // requires them all to be immediate siblings
303
- }
304
- case 25:
305
- case "end":
306
- return _context.stop();
307
- }
308
- }, _callee);
309
- }));
310
- return function (_x3) {
311
- return _ref.apply(this, arguments);
312
- };
313
- }());
314
- function existingAction(actionClass) {
315
- var actions = _solidLogic.store.each(null, ns.schema('agent'), context.me, doc).filter(function (x) {
316
- return _solidLogic.store.holds(x, ns.rdf('type'), actionClass, doc);
317
- }).filter(function (x) {
318
- return _solidLogic.store.holds(x, ns.schema('target'), target, doc);
319
- });
320
- return actions.length ? actions[0] : null;
321
- }
322
- function refresh() {
323
- action = existingAction(actionClass);
324
- setColor();
325
- }
326
- var action;
327
- button.refresh = refresh; // If the file changes, refresh live
328
- refresh();
329
- return button;
330
- }
468
+ /** Button to allow user to express a sentiment (like, endorse, etc) about a target
469
+ *
470
+ * @param context {Object} - Provide dom and me
471
+ * @param target {NamedNode} - The thing the user expresses an opnion about
472
+ * @param icon {uristring} - The icon to be used for the button
473
+ * @param actionClass {NamedNode} - The RDF class - typically a subclass of schema:Action
474
+ * @param doc - {NamedNode} - the Solid document iunto which the data should be written
475
+ * @param mutuallyExclusive {Array<NamedNode>} - Any RDF classes of sentimentswhich are mutiually exclusive
476
+ */
331
477
 
332
- // THUMBS_UP_ICON
333
- // https://schema.org/AgreeAction
334
- me = _solidLogic.authn.currentUser(); // If already logged on
335
- // debug.log('Actions 3' + mostRecentVersion(message).value + ' ' + ns.schema('dateDeleted').value + ' ' + (mostRecentVersion(message).value !== ns.schema('dateDeleted').value))
478
+ // THUMBS_UP_ICON
479
+ // https://schema.org/AgreeAction
480
+ me = _solidLogic.authn.currentUser(); // If already logged on
481
+ _context10.t2 = me;
482
+ if (!_context10.t2) {
483
+ _context10.next = 28;
484
+ break;
485
+ }
486
+ _context10.next = 25;
487
+ return (0, _chatLogic.mostRecentVersion)(message).value;
488
+ case 25:
489
+ _context10.t3 = _context10.sent;
490
+ _context10.t4 = ns.schema('dateDeleted').value;
491
+ _context10.t2 = _context10.t3 !== _context10.t4;
492
+ case 28:
493
+ if (!_context10.t2) {
494
+ _context10.next = 32;
495
+ break;
496
+ }
497
+ context1 = {
498
+ me: me,
499
+ dom: dom,
500
+ div: div
501
+ };
502
+ div.appendChild(sentimentButton(context1, message,
503
+ // @@ TODO use widgets.sentimentButton
504
+ _iconBase.icons.iconBase + THUMBS_UP_ICON, ns.schema('AgreeAction'), message.doc(), [ns.schema('DisagreeAction')]));
505
+ // Thumbs down
506
+ div.appendChild(sentimentButton(context1, message, _iconBase.icons.iconBase + THUMBS_DOWN_ICON, ns.schema('DisagreeAction'), message.doc(), [ns.schema('AgreeAction')]));
507
+ case 32:
508
+ // Reply buttton
336
509
 
337
- if (me && (0, _chatLogic.mostRecentVersion)(message).value !== ns.schema('dateDeleted').value) {
338
- var context1 = {
339
- me: me,
340
- dom: dom,
341
- div: div
342
- };
343
- div.appendChild(sentimentButton(context1, message,
344
- // @@ TODO use widgets.sentimentButton
345
- _iconBase.icons.iconBase + THUMBS_UP_ICON, ns.schema('AgreeAction'), message.doc(), [ns.schema('DisagreeAction')]));
346
- // Thumbs down
347
- div.appendChild(sentimentButton(context1, message, _iconBase.icons.iconBase + THUMBS_DOWN_ICON, ns.schema('DisagreeAction'), message.doc(), [ns.schema('AgreeAction')]));
348
- }
349
- // X button to remove the tool UI itself
350
- var cancelButton = div.appendChild(widgets.cancelButton(dom));
351
- cancelButton.style["float"] = 'right';
352
- cancelButton.firstChild.style.opacity = '0.3';
353
- cancelButton.addEventListener('click', closeToolbar);
354
- return div;
510
+ if (_solidLogic.store.any(message, ns.dct('created'))) {
511
+ // Looks like a messsage? Bar can be used for other things
512
+ div.appendChild(widgets.button(dom, _iconBase.icons.iconBase + REPLY_ICON, 'Reply in thread', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
513
+ return _regenerator["default"].wrap(function _callee5$(_context5) {
514
+ while (1) switch (_context5.prev = _context5.next) {
515
+ case 0:
516
+ _context5.next = 2;
517
+ return replyInThread();
518
+ case 2:
519
+ case "end":
520
+ return _context5.stop();
521
+ }
522
+ }, _callee5);
523
+ }))));
524
+ }
525
+ // X button to remove the tool UI itself
526
+ cancelButton = div.appendChild(widgets.cancelButton(dom));
527
+ cancelButton.style["float"] = 'right';
528
+ cancelButton.firstChild.style.opacity = '0.3';
529
+ cancelButton.addEventListener('click', closeToolbar);
530
+ return _context10.abrupt("return", div);
531
+ case 38:
532
+ case "end":
533
+ return _context10.stop();
534
+ }
535
+ }, _callee10);
536
+ }));
537
+ return _messageToolbar.apply(this, arguments);
355
538
  }
356
539
  //# sourceMappingURL=messageTools.js.map