solid-ui 2.4.15 → 2.4.16-6d61d9de

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 (119) hide show
  1. package/README.md +6 -11
  2. package/lib/acl/acl.d.ts.map +1 -1
  3. package/lib/acl/acl.js +2 -4
  4. package/lib/acl/acl.js.map +1 -1
  5. package/lib/acl/add-agent-buttons.d.ts.map +1 -1
  6. package/lib/acl/add-agent-buttons.js +5 -5
  7. package/lib/acl/add-agent-buttons.js.map +1 -1
  8. package/lib/chat/bookmarks.js +23 -24
  9. package/lib/chat/bookmarks.js.map +1 -1
  10. package/lib/chat/chatLogic.js +338 -0
  11. package/lib/chat/chatLogic.js.map +1 -0
  12. package/lib/chat/dateFolder.js +13 -13
  13. package/lib/chat/dateFolder.js.map +1 -1
  14. package/lib/chat/infinite.js +287 -669
  15. package/lib/chat/infinite.js.map +1 -1
  16. package/lib/chat/message.js +444 -74
  17. package/lib/chat/message.js.map +1 -1
  18. package/lib/chat/messageTools.js +163 -106
  19. package/lib/chat/messageTools.js.map +1 -1
  20. package/lib/chat/thread.js +171 -41
  21. package/lib/chat/thread.js.map +1 -1
  22. package/lib/create/create.d.ts.map +1 -1
  23. package/lib/create/create.js +9 -9
  24. package/lib/create/create.js.map +1 -1
  25. package/lib/folders.js +2 -6
  26. package/lib/folders.js.map +1 -1
  27. package/lib/footer/index.js +4 -4
  28. package/lib/footer/index.js.map +1 -1
  29. package/lib/header/index.d.ts.map +1 -1
  30. package/lib/header/index.js +11 -8
  31. package/lib/header/index.js.map +1 -1
  32. package/lib/index.d.ts +4 -4
  33. package/lib/index.d.ts.map +1 -1
  34. package/lib/index.js +27 -34
  35. package/lib/index.js.map +1 -1
  36. package/lib/login/login.d.ts +130 -0
  37. package/lib/login/login.d.ts.map +1 -0
  38. package/lib/login/login.js +1412 -0
  39. package/lib/login/login.js.map +1 -0
  40. package/lib/matrix/matrix.js +2 -2
  41. package/lib/matrix/matrix.js.map +1 -1
  42. package/lib/messageArea.js +9 -10
  43. package/lib/messageArea.js.map +1 -1
  44. package/lib/pad.js +2 -2
  45. package/lib/pad.js.map +1 -1
  46. package/lib/participation.js +4 -5
  47. package/lib/participation.js.map +1 -1
  48. package/lib/preferences.js +8 -8
  49. package/lib/preferences.js.map +1 -1
  50. package/lib/{authn → signup}/config-default.js +0 -0
  51. package/lib/signup/config-default.js.map +1 -0
  52. package/lib/{authn → signup}/signup.js +0 -0
  53. package/lib/signup/signup.js.map +1 -0
  54. package/lib/table.js +2 -3
  55. package/lib/table.js.map +1 -1
  56. package/lib/tabs.js +3 -3
  57. package/lib/tabs.js.map +1 -1
  58. package/lib/utils/index.js +6 -6
  59. package/lib/utils/index.js.map +1 -1
  60. package/lib/utils/label.js +4 -4
  61. package/lib/utils/label.js.map +1 -1
  62. package/lib/versionInfo.js +3 -3
  63. package/lib/versionInfo.js.map +1 -1
  64. package/lib/webpack-bundle.js +6436 -22396
  65. package/lib/webpack-bundle.js.map +1 -1
  66. package/lib/widgets/buttons.d.ts.map +1 -1
  67. package/lib/widgets/buttons.js +24 -17
  68. package/lib/widgets/buttons.js.map +1 -1
  69. package/lib/widgets/forms/autocomplete/autocompleteBar.js +2 -2
  70. package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
  71. package/lib/widgets/forms/autocomplete/autocompleteField.js +2 -2
  72. package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
  73. package/lib/widgets/forms/autocomplete/autocompletePicker.js +2 -2
  74. package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
  75. package/lib/widgets/forms/autocomplete/language.d.ts.map +1 -1
  76. package/lib/widgets/forms/autocomplete/language.js +6 -11
  77. package/lib/widgets/forms/autocomplete/language.js.map +1 -1
  78. package/lib/widgets/forms/autocomplete/publicData.d.ts +2 -1
  79. package/lib/widgets/forms/autocomplete/publicData.d.ts.map +1 -1
  80. package/lib/widgets/forms/autocomplete/publicData.js +15 -22
  81. package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
  82. package/lib/widgets/forms/basic.d.ts +1 -1
  83. package/lib/widgets/forms/basic.d.ts.map +1 -1
  84. package/lib/widgets/forms/basic.js +2 -2
  85. package/lib/widgets/forms/basic.js.map +1 -1
  86. package/lib/widgets/forms/comment.d.ts +1 -1
  87. package/lib/widgets/forms/comment.js +3 -3
  88. package/lib/widgets/forms/comment.js.map +1 -1
  89. package/lib/widgets/forms/fieldFunction.js +2 -2
  90. package/lib/widgets/forms/fieldFunction.js.map +1 -1
  91. package/lib/widgets/forms/formStyle.js +3 -3
  92. package/lib/widgets/forms/formStyle.js.map +1 -1
  93. package/lib/widgets/forms.js +11 -11
  94. package/lib/widgets/forms.js.map +1 -1
  95. package/lib/widgets/peoplePicker.js +2 -2
  96. package/lib/widgets/peoplePicker.js.map +1 -1
  97. package/package.json +3 -3
  98. package/lib/authn/authSession.d.ts +0 -4
  99. package/lib/authn/authSession.d.ts.map +0 -1
  100. package/lib/authn/authSession.js +0 -25
  101. package/lib/authn/authSession.js.map +0 -1
  102. package/lib/authn/authn.d.ts +0 -193
  103. package/lib/authn/authn.d.ts.map +0 -1
  104. package/lib/authn/authn.js +0 -2238
  105. package/lib/authn/authn.js.map +0 -1
  106. package/lib/authn/config-default.js.map +0 -1
  107. package/lib/authn/index.d.ts +0 -35
  108. package/lib/authn/index.d.ts.map +0 -1
  109. package/lib/authn/index.js +0 -44
  110. package/lib/authn/index.js.map +0 -1
  111. package/lib/authn/signup.js.map +0 -1
  112. package/lib/authn/types.d.ts +0 -25
  113. package/lib/authn/types.d.ts.map +0 -1
  114. package/lib/authn/types.js +0 -6
  115. package/lib/authn/types.js.map +0 -1
  116. package/lib/logic.d.ts +0 -8
  117. package/lib/logic.d.ts.map +0 -1
  118. package/lib/logic.js +0 -79
  119. package/lib/logic.js.map +0 -1
@@ -7,152 +7,51 @@ var _typeof = require("@babel/runtime/helpers/typeof");
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports.createIfNotExists = createIfNotExists;
11
10
  exports.desktopNotification = desktopNotification;
12
11
  exports.infiniteMessageArea = infiniteMessageArea;
12
+ exports.insertMessageIntoTable = insertMessageIntoTable;
13
13
 
14
14
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
15
15
 
16
16
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
17
 
18
- var _index = require("../authn/index");
18
+ var $rdf = _interopRequireWildcard(require("rdflib"));
19
+
20
+ var _solidLogic = require("solid-logic");
19
21
 
20
22
  var debug = _interopRequireWildcard(require("../debug"));
21
23
 
22
24
  var _iconBase = require("../iconBase");
23
25
 
24
- var _logic = require("../logic");
25
-
26
- var _index2 = require("../media/index");
27
-
28
26
  var ns = _interopRequireWildcard(require("../ns"));
29
27
 
30
- var pad = _interopRequireWildcard(require("../pad"));
28
+ var widgets = _interopRequireWildcard(require("../widgets"));
31
29
 
32
- var _dateFolder = require("./dateFolder");
30
+ var _chatLogic = require("./chatLogic");
33
31
 
34
32
  var _message = require("./message");
35
33
 
36
- var _bookmarks = require("./bookmarks");
37
-
38
- var $rdf = _interopRequireWildcard(require("rdflib"));
39
-
40
- var style = _interopRequireWildcard(require("../style"));
41
-
42
- var utils = _interopRequireWildcard(require("../utils"));
43
-
44
- var widgets = _interopRequireWildcard(require("../widgets"));
45
-
46
34
  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); }
47
35
 
48
36
  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; }
49
37
 
50
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
51
-
52
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
53
-
54
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
55
-
56
- var UI = {
57
- authn: _index.authn,
58
- icons: _iconBase.icons,
59
- ns: ns,
60
- media: _index2.media,
61
- pad: pad,
62
- $rdf: $rdf,
63
- store: _logic.store,
64
- style: style,
65
- utils: utils,
66
- widgets: widgets
67
- };
68
- /* global alert */
69
-
70
- var SERVER_MKDIRP_BUG = false; // Set false timbl 2021-10-31 should be fixed by now
71
-
72
- function createIfNotExists(_x) {
73
- return _createIfNotExists.apply(this, arguments);
74
- }
75
-
76
- function _createIfNotExists() {
77
- _createIfNotExists = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(doc) {
78
- var contentType,
79
- data,
80
- fetcher,
81
- response,
82
- _args = arguments;
83
- return _regenerator["default"].wrap(function _callee$(_context) {
84
- while (1) {
85
- switch (_context.prev = _context.next) {
86
- case 0:
87
- contentType = _args.length > 1 && _args[1] !== undefined ? _args[1] : 'text/turtle';
88
- data = _args.length > 2 && _args[2] !== undefined ? _args[2] : '';
89
- fetcher = UI.store.fetcher;
90
- _context.prev = 3;
91
- _context.next = 6;
92
- return fetcher.load(doc);
93
-
94
- case 6:
95
- response = _context.sent;
96
- _context.next = 29;
97
- break;
98
-
99
- case 9:
100
- _context.prev = 9;
101
- _context.t0 = _context["catch"](3);
102
-
103
- if (!(_context.t0.response.status === 404)) {
104
- _context.next = 27;
105
- break;
106
- }
107
-
108
- debug.log('createIfNotExists: doc does NOT exist, will create... ' + doc);
109
- _context.prev = 13;
110
- _context.next = 16;
111
- return fetcher.webOperation('PUT', doc.uri, {
112
- data: data,
113
- contentType: contentType
114
- });
115
-
116
- case 16:
117
- response = _context.sent;
118
- _context.next = 23;
119
- break;
120
-
121
- case 19:
122
- _context.prev = 19;
123
- _context.t1 = _context["catch"](13);
124
- debug.log('createIfNotExists doc FAILED: ' + doc + ': ' + _context.t1);
125
- throw _context.t1;
126
-
127
- case 23:
128
- delete fetcher.requested[doc.uri]; // delete cached 404 error
129
- // debug.log('createIfNotExists doc created ok ' + doc)
130
-
131
- return _context.abrupt("return", response);
132
-
133
- case 27:
134
- debug.log('createIfNotExists doc load error NOT 404: ' + doc + ': ' + _context.t0);
135
- throw _context.t0;
136
-
137
- case 29:
138
- return _context.abrupt("return", response);
139
-
140
- case 30:
141
- case "end":
142
- return _context.stop();
143
- }
144
- }
145
- }, _callee, null, [[3, 9], [13, 19]]);
146
- }));
147
- return _createIfNotExists.apply(this, arguments);
148
- }
149
-
38
+ /**
39
+ * Contains the [[infiniteMessageArea]] class
40
+ * @packageDocumentation
41
+ */
42
+ // import { findBookmarkDocument } from './bookmarks'
43
+ // pull in first avoid cross-refs
44
+ // import * as style from '../style'
45
+ // import * as utils from '../utils'
46
+ // import * as pad from '../pad'
47
+ // import { DateFolder } from './dateFolder'
48
+ // const UI = { authn, icons, ns, media, pad, $rdf, store, style, utils, widgets }
150
49
  function desktopNotification(str) {
151
50
  // Let's check if the browser supports notifications
152
51
  if (!('Notification' in window)) {
153
- debug.warn('This browser does not support desktop notification');
52
+ debug.warn('This browser does no t support desktop notification');
154
53
  } else if (Notification.permission === 'granted') {
155
- // Let's check whether notification permissions have already been granted
54
+ // Let's check whether notificatio n permissions have already been granted
156
55
  // eslint-disable-next-line no-new
157
56
  new Notification(str);
158
57
  } else if (Notification.permission !== 'denied') {
@@ -168,33 +67,84 @@ function desktopNotification(str) {
168
67
  // want to be respectful there is no need to bother them any more.
169
68
 
170
69
  }
70
+ /**
71
+ * Renders a chat message inside a `messageTable`
72
+ */
73
+
74
+
75
+ function insertMessageIntoTable(channelObject, messageTable, message, fresh, options, userContext) {
76
+ var messageRow = (0, _message.renderMessageRow)(channelObject, message, fresh, options, userContext); // const message = messageRow.AJAR_subject
77
+
78
+ if (options.selectedMessage && options.selectedMessage.sameTerm(message)) {
79
+ messageRow.style.backgroundColor = 'yellow';
80
+ options.selectedElement = messageRow;
81
+ messageTable.selectedElement = messageRow;
82
+ }
83
+
84
+ var done = false;
85
+
86
+ for (var ele = messageTable.firstChild;; ele = ele.nextSibling) {
87
+ if (!ele) {
88
+ // empty
89
+ break;
90
+ }
91
+
92
+ var newestFirst = options.newestfirst === true;
93
+ var dateString = messageRow.AJAR_date;
94
+
95
+ if (dateString > ele.AJAR_date && newestFirst || dateString < ele.AJAR_date && !newestFirst) {
96
+ messageTable.insertBefore(messageRow, ele);
97
+ done = true;
98
+ break;
99
+ }
100
+ }
101
+
102
+ if (!done) {
103
+ messageTable.appendChild(messageRow);
104
+ }
105
+ }
171
106
  /**
172
107
  * Common code for a chat (discussion area of messages about something)
173
108
  * This version runs over a series of files for different time periods
174
109
  *
175
110
  * Parameters for the whole chat like its title are stored on
176
111
  * index.ttl#this and the chats messages are stored in YYYY/MM/DD/chat.ttl
112
+ *
113
+ * Use to import store as param 2, now ignores it and uses the UI main store
114
+ *
115
+ * Options include:
116
+
117
+ - shiftEnterSendsMessage: Use shift/enter to send message, Enter to add newline, instead of the reverse.
118
+ - authorDateOnLeft: Display the author's anme and date of the message in the left column instead of first above the content
119
+ - selectedMessage: Display one message highlighted with the chat around it
120
+ - solo: By itelf on a webpage, so user scroll anywhere in the web page scan scroll the chat.
121
+ - newestFirst: Arrange the chat messages chronologically newest at the top insted of at the bottom
122
+ - infinite: Use infinite scroll
123
+ - showDeletedMessages: Show messages which have been delted as "deleted message". Otherwise hide them.
124
+ - expandImagesInline: If a URI by itself in a message looks like an image URI, replace it with the image
125
+ - inlineImageHeightEms: The height (in ems) of images expaned from their URIs in the chat.
126
+
177
127
  */
178
128
 
179
129
 
180
- function infiniteMessageArea(_x2, _x3, _x4, _x5) {
130
+ function infiniteMessageArea(_x, _x2, _x3, _x4) {
181
131
  return _infiniteMessageArea.apply(this, arguments);
182
132
  }
183
133
 
184
134
  function _infiniteMessageArea() {
185
- _infiniteMessageArea = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee17(dom, kb, chatChannel, options) {
186
- var ns, WF, DCT, newestFirst, dateFolder, messageBodyStyle, div, menuButton, statusArea, userContext, me, updater, newMessageForm, syncMessages, addMessage, insertPreviousMessages, _insertPreviousMessages, removePreviousMessages, createMessageTable, _createMessageTable, renderMessageTable, addNewTableIfNewDay, _addNewTableIfNewDay, appendCurrentMessages, _appendCurrentMessages, liveMessageTable, earliest, latest, lock, loadMoreWhereNeeded, _loadMoreWhereNeeded, loadInitialContent, _loadInitialContent;
135
+ _infiniteMessageArea = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee12(dom, wasStore, chatChannel, options) {
136
+ var syncMessages, addMessage, insertPreviousMessages, _insertPreviousMessages, removePreviousMessages, createMessageTable, _createMessageTable, renderMessageTable, addNewChatDocumentIfNewDay, _addNewChatDocumentIfNewDay, appendCurrentMessages, _appendCurrentMessages, loadMoreWhereNeeded, _loadMoreWhereNeeded, loadInitialContent, _loadInitialContent, newestFirst, channelObject, dateFolder, div, statusArea, userContext, liveMessageTable, earliest, latest, lock;
187
137
 
188
- return _regenerator["default"].wrap(function _callee17$(_context17) {
138
+ return _regenerator["default"].wrap(function _callee12$(_context12) {
189
139
  while (1) {
190
- switch (_context17.prev = _context17.next) {
140
+ switch (_context12.prev = _context12.next) {
191
141
  case 0:
192
142
  _loadInitialContent = function _loadInitialContent3() {
193
- _loadInitialContent = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee16() {
143
+ _loadInitialContent = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee11() {
194
144
  var yank, fixScroll, live, selectedDocument, now, todayDocument, selectedMessageTable, selectedDate;
195
- return _regenerator["default"].wrap(function _callee16$(_context16) {
145
+ return _regenerator["default"].wrap(function _callee11$(_context11) {
196
146
  while (1) {
197
- switch (_context16.prev = _context16.next) {
147
+ switch (_context11.prev = _context11.next) {
198
148
  case 0:
199
149
  fixScroll = function _fixScroll() {
200
150
  if (options.selectedElement) {
@@ -222,27 +172,27 @@ function _infiniteMessageArea() {
222
172
  }
223
173
 
224
174
  if (!(options.selectedMessage && !live)) {
225
- _context16.next = 15;
175
+ _context11.next = 15;
226
176
  break;
227
177
  }
228
178
 
229
179
  selectedDate = dateFolder.dateFromLeafDocument(selectedDocument);
230
- _context16.next = 7;
180
+ _context11.next = 7;
231
181
  return createMessageTable(selectedDate, live);
232
182
 
233
183
  case 7:
234
- selectedMessageTable = _context16.sent;
184
+ selectedMessageTable = _context11.sent;
235
185
  div.appendChild(selectedMessageTable);
236
186
  earliest.messageTable = selectedMessageTable;
237
187
  latest.messageTable = selectedMessageTable;
238
188
  yank();
239
189
  setTimeout(yank, 1000); // @@ kludge - restore position distubed by other cHANGES
240
190
 
241
- _context16.next = 19;
191
+ _context11.next = 19;
242
192
  break;
243
193
 
244
194
  case 15:
245
- _context16.next = 17;
195
+ _context11.next = 17;
246
196
  return appendCurrentMessages();
247
197
 
248
198
  case 17:
@@ -250,7 +200,7 @@ function _infiniteMessageArea() {
250
200
  latest.messageTable = liveMessageTable;
251
201
 
252
202
  case 19:
253
- _context16.next = 21;
203
+ _context11.next = 21;
254
204
  return loadMoreWhereNeeded(null, fixScroll);
255
205
 
256
206
  case 21:
@@ -262,10 +212,10 @@ function _infiniteMessageArea() {
262
212
 
263
213
  case 23:
264
214
  case "end":
265
- return _context16.stop();
215
+ return _context11.stop();
266
216
  }
267
217
  }
268
- }, _callee16);
218
+ }, _callee11);
269
219
  }));
270
220
  return _loadInitialContent.apply(this, arguments);
271
221
  };
@@ -275,18 +225,18 @@ function _infiniteMessageArea() {
275
225
  };
276
226
 
277
227
  _loadMoreWhereNeeded = function _loadMoreWhereNeeded3() {
278
- _loadMoreWhereNeeded = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee15(event, fixScroll) {
228
+ _loadMoreWhereNeeded = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee10(event, fixScroll) {
279
229
  var freeze, magicZone, done, scrollBottom, scrollTop;
280
- return _regenerator["default"].wrap(function _callee15$(_context15) {
230
+ return _regenerator["default"].wrap(function _callee10$(_context10) {
281
231
  while (1) {
282
- switch (_context15.prev = _context15.next) {
232
+ switch (_context10.prev = _context10.next) {
283
233
  case 0:
284
234
  if (!lock) {
285
- _context15.next = 2;
235
+ _context10.next = 2;
286
236
  break;
287
237
  }
288
238
 
289
- return _context15.abrupt("return");
239
+ return _context10.abrupt("return");
290
240
 
291
241
  case 2:
292
242
  lock = true;
@@ -296,12 +246,12 @@ function _infiniteMessageArea() {
296
246
 
297
247
  case 5:
298
248
  if (!(div.scrollTop < magicZone && earliest.messageTable && !earliest.messageTable.initial && earliest.messageTable.extendBackwards)) {
299
- _context15.next = 21;
249
+ _context10.next = 21;
300
250
  break;
301
251
  }
302
252
 
303
253
  if (!(div.scrollHeight === 0)) {
304
- _context15.next = 10;
254
+ _context10.next = 10;
305
255
  break;
306
256
  }
307
257
 
@@ -309,17 +259,17 @@ function _infiniteMessageArea() {
309
259
  setTimeout(loadMoreWhereNeeded, 2000); // couple be less
310
260
 
311
261
  lock = false;
312
- return _context15.abrupt("return");
262
+ return _context10.abrupt("return");
313
263
 
314
264
  case 10:
315
265
  // console.log(' chat/loadMoreWhereNeeded: Going now')
316
266
  scrollBottom = div.scrollHeight - div.scrollTop;
317
267
  debug.log('infinite scroll: adding above: top ' + div.scrollTop);
318
- _context15.next = 14;
268
+ _context10.next = 14;
319
269
  return earliest.messageTable.extendBackwards();
320
270
 
321
271
  case 14:
322
- done = _context15.sent;
272
+ done = _context10.sent;
323
273
 
324
274
  if (freeze) {
325
275
  div.scrollTop = div.scrollHeight - scrollBottom;
@@ -328,14 +278,14 @@ function _infiniteMessageArea() {
328
278
  if (fixScroll) fixScroll();
329
279
 
330
280
  if (!done) {
331
- _context15.next = 19;
281
+ _context10.next = 19;
332
282
  break;
333
283
  }
334
284
 
335
- return _context15.abrupt("break", 21);
285
+ return _context10.abrupt("break", 21);
336
286
 
337
287
  case 19:
338
- _context15.next = 5;
288
+ _context10.next = 5;
339
289
  break;
340
290
 
341
291
  case 21:
@@ -343,17 +293,17 @@ function _infiniteMessageArea() {
343
293
  div.scrollHeight - div.scrollTop - div.clientHeight < magicZone && // we are scrolled right to the bottom
344
294
  latest.messageTable && !latest.messageTable["final"] && // there is more data to come
345
295
  latest.messageTable.extendForwards)) {
346
- _context15.next = 33;
296
+ _context10.next = 33;
347
297
  break;
348
298
  }
349
299
 
350
300
  scrollTop = div.scrollTop;
351
301
  debug.log('infinite scroll: adding below: bottom: ' + (div.scrollHeight - div.scrollTop - div.clientHeight));
352
- _context15.next = 26;
302
+ _context10.next = 26;
353
303
  return latest.messageTable.extendForwards();
354
304
 
355
305
  case 26:
356
- done = _context15.sent;
306
+ done = _context10.sent;
357
307
 
358
308
  // then add more data on the bottom
359
309
  if (freeze) {
@@ -363,14 +313,14 @@ function _infiniteMessageArea() {
363
313
  if (fixScroll) fixScroll();
364
314
 
365
315
  if (!done) {
366
- _context15.next = 31;
316
+ _context10.next = 31;
367
317
  break;
368
318
  }
369
319
 
370
- return _context15.abrupt("break", 33);
320
+ return _context10.abrupt("break", 33);
371
321
 
372
322
  case 31:
373
- _context15.next = 21;
323
+ _context10.next = 21;
374
324
  break;
375
325
 
376
326
  case 33:
@@ -378,72 +328,68 @@ function _infiniteMessageArea() {
378
328
 
379
329
  case 34:
380
330
  case "end":
381
- return _context15.stop();
331
+ return _context10.stop();
382
332
  }
383
333
  }
384
- }, _callee15);
334
+ }, _callee10);
385
335
  }));
386
336
  return _loadMoreWhereNeeded.apply(this, arguments);
387
337
  };
388
338
 
389
- loadMoreWhereNeeded = function _loadMoreWhereNeeded2(_x18, _x19) {
339
+ loadMoreWhereNeeded = function _loadMoreWhereNeeded2(_x10, _x11) {
390
340
  return _loadMoreWhereNeeded.apply(this, arguments);
391
341
  };
392
342
 
393
343
  _appendCurrentMessages = function _appendCurrentMessage2() {
394
- _appendCurrentMessages = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee14() {
344
+ _appendCurrentMessages = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9() {
395
345
  var now, chatDocument, messageTable;
396
- return _regenerator["default"].wrap(function _callee14$(_context14) {
346
+ return _regenerator["default"].wrap(function _callee9$(_context9) {
397
347
  while (1) {
398
- switch (_context14.prev = _context14.next) {
348
+ switch (_context9.prev = _context9.next) {
399
349
  case 0:
400
350
  now = new Date();
401
- chatDocument = dateFolder.leafDocumentFromDate(now);
402
- /* Don't actually make the documemnt until a message is sent @@@@@ WHEN SERVER FIXED
403
- * currently server won't patch to a file ina non-existent directory
404
- */
351
+ chatDocument = dateFolder.leafDocumentFromDate(now); /// ///////////////////////////////////////////////////////////
405
352
 
406
- /*
407
- if (SERVER_MKDIRP_BUG) {
408
- try {
409
- await createIfNotExists(chatDocument)
410
- } catch (e) {
411
- div.appendChild(UI.widgets.errorMessageBlock(
412
- dom, 'Problem accessing chat file: ' + e))
413
- return
414
- }
415
- }
416
- */
417
- /// ///////////////////////////////////////////////////////////
418
-
419
- _context14.next = 4;
353
+ _context9.next = 4;
420
354
  return createMessageTable(now, true);
421
355
 
422
356
  case 4:
423
- messageTable = _context14.sent;
357
+ messageTable = _context9.sent;
424
358
  div.appendChild(messageTable);
359
+ div.refresh = /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8() {
360
+ return _regenerator["default"].wrap(function _callee8$(_context8) {
361
+ while (1) {
362
+ switch (_context8.prev = _context8.next) {
363
+ case 0:
364
+ _context8.next = 2;
365
+ return addNewChatDocumentIfNewDay(new Date());
366
+
367
+ case 2:
368
+ syncMessages(chatChannel, messageTable); // @@ livemessagetable??
369
+
370
+ desktopNotification(chatChannel);
371
+
372
+ case 4:
373
+ case "end":
374
+ return _context8.stop();
375
+ }
376
+ }
377
+ }, _callee8);
378
+ })); // The short chat version the live update listening is done in the pane but we do it in the widget @@
425
379
 
426
- div.refresh = function () {
427
- // only the last messageTable is live
428
- addNewTableIfNewDay(new Date()).then(function () {
429
- syncMessages(chatChannel, messageTable);
430
- desktopNotification(chatChannel);
431
- });
432
- }; // The short chat version fors live update in the pane but we do it in the widget
433
-
380
+ _solidLogic.store.updater.addDownstreamChangeListener(chatDocument, div.refresh); // Live update
434
381
 
435
- kb.updater.addDownstreamChangeListener(chatDocument, div.refresh); // Live update
436
382
 
437
383
  liveMessageTable = messageTable;
438
384
  latest.messageTable = liveMessageTable;
439
- return _context14.abrupt("return", messageTable);
385
+ return _context9.abrupt("return", messageTable);
440
386
 
441
387
  case 11:
442
388
  case "end":
443
- return _context14.stop();
389
+ return _context9.stop();
444
390
  }
445
391
  }
446
- }, _callee14);
392
+ }, _callee9);
447
393
  }));
448
394
  return _appendCurrentMessages.apply(this, arguments);
449
395
  };
@@ -452,19 +398,18 @@ function _infiniteMessageArea() {
452
398
  return _appendCurrentMessages.apply(this, arguments);
453
399
  };
454
400
 
455
- _addNewTableIfNewDay = function _addNewTableIfNewDay3() {
456
- _addNewTableIfNewDay = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee13(now) {
401
+ _addNewChatDocumentIfNewDay = function _addNewChatDocumentIf2() {
402
+ _addNewChatDocumentIfNewDay = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
457
403
  var newChatDocument, oldChatDocument, sts;
458
- return _regenerator["default"].wrap(function _callee13$(_context13) {
404
+ return _regenerator["default"].wrap(function _callee7$(_context7) {
459
405
  while (1) {
460
- switch (_context13.prev = _context13.next) {
406
+ switch (_context7.prev = _context7.next) {
461
407
  case 0:
462
- // let now = new Date()
463
408
  // @@ Remove listener from previous table as it is now static
464
- newChatDocument = dateFolder.leafDocumentFromDate(now);
409
+ newChatDocument = dateFolder.leafDocumentFromDate(new Date());
465
410
 
466
411
  if (newChatDocument.sameTerm(latest.messageTable.chatDocument)) {
467
- _context13.next = 7;
412
+ _context7.next = 7;
468
413
  break;
469
414
  }
470
415
 
@@ -475,36 +420,37 @@ function _infiniteMessageArea() {
475
420
  }
476
421
 
477
422
  oldChatDocument = latest.messageTable.chatDocument;
478
- _context13.next = 6;
423
+ _context7.next = 6;
479
424
  return appendCurrentMessages();
480
425
 
481
426
  case 6:
482
427
  // Adding a link in the document will ping listeners to add the new block too
483
- if (!kb.holds(oldChatDocument, ns.rdfs('seeAlso'), newChatDocument, oldChatDocument)) {
428
+ if (!_solidLogic.store.holds(oldChatDocument, ns.rdfs('seeAlso'), newChatDocument, oldChatDocument)) {
484
429
  sts = [$rdf.st(oldChatDocument, ns.rdfs('seeAlso'), newChatDocument, oldChatDocument)];
485
- updater.update([], sts, function (ok, body) {
486
- if (!ok) {
487
- alert('Unable to link old message block to new one.' + body);
488
- }
489
- });
430
+
431
+ try {
432
+ _solidLogic.store.updater.update([], sts);
433
+ } catch (err) {
434
+ alert('Unable to link old chat file to new one:' + err);
435
+ }
490
436
  }
491
437
 
492
438
  case 7:
493
439
  case "end":
494
- return _context13.stop();
440
+ return _context7.stop();
495
441
  }
496
442
  }
497
- }, _callee13);
443
+ }, _callee7);
498
444
  }));
499
- return _addNewTableIfNewDay.apply(this, arguments);
445
+ return _addNewChatDocumentIfNewDay.apply(this, arguments);
500
446
  };
501
447
 
502
- addNewTableIfNewDay = function _addNewTableIfNewDay2(_x17) {
503
- return _addNewTableIfNewDay.apply(this, arguments);
448
+ addNewChatDocumentIfNewDay = function _addNewChatDocumentIf() {
449
+ return _addNewChatDocumentIfNewDay.apply(this, arguments);
504
450
  };
505
451
 
506
452
  renderMessageTable = function _renderMessageTable(date, live) {
507
- var scrollBackButton;
453
+ var scrollBackbutton;
508
454
  var scrollForwardButton; /// ///////////////// Scroll down adding more above
509
455
 
510
456
  function extendBackwards() {
@@ -512,23 +458,23 @@ function _infiniteMessageArea() {
512
458
  }
513
459
 
514
460
  function _extendBackwards() {
515
- _extendBackwards = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
461
+ _extendBackwards = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
516
462
  var done;
517
- return _regenerator["default"].wrap(function _callee7$(_context7) {
463
+ return _regenerator["default"].wrap(function _callee$(_context) {
518
464
  while (1) {
519
- switch (_context7.prev = _context7.next) {
465
+ switch (_context.prev = _context.next) {
520
466
  case 0:
521
- _context7.next = 2;
467
+ _context.next = 2;
522
468
  return insertPreviousMessages(true);
523
469
 
524
470
  case 2:
525
- done = _context7.sent;
471
+ done = _context.sent;
526
472
 
527
473
  if (done) {
528
- if (scrollBackButton) {
529
- scrollBackButton.firstChild.setAttribute('src', UI.icons.iconBase + 'noun_T-Block_1114655_000000.svg'); // T
474
+ if (scrollBackbutton) {
475
+ scrollBackbutton.firstChild.setAttribute('src', _iconBase.icons.iconBase + 'noun_T-Block_1114655_000000.svg'); // T
530
476
 
531
- scrollBackButton.disabled = true;
477
+ scrollBackbutton.disabled = true;
532
478
  }
533
479
 
534
480
  messageTable.initial = true;
@@ -536,67 +482,67 @@ function _infiniteMessageArea() {
536
482
  messageTable.extendedBack = true;
537
483
  }
538
484
 
539
- setScrollBackButtonIcon();
540
- return _context7.abrupt("return", done);
485
+ setScrollBackbuttonIcon();
486
+ return _context.abrupt("return", done);
541
487
 
542
488
  case 6:
543
489
  case "end":
544
- return _context7.stop();
490
+ return _context.stop();
545
491
  }
546
492
  }
547
- }, _callee7);
493
+ }, _callee);
548
494
  }));
549
495
  return _extendBackwards.apply(this, arguments);
550
496
  }
551
497
 
552
- function setScrollBackButtonIcon() {
553
- if (!scrollBackButton) {
498
+ function setScrollBackbuttonIcon() {
499
+ if (!scrollBackbutton) {
554
500
  return;
555
501
  }
556
502
 
557
503
  var sense = messageTable.extendedBack ? !newestFirst : newestFirst;
558
504
  var scrollBackIcon = messageTable.initial ? 'noun_T-Block_1114655_000000.svg' : getScrollbackIcon(sense);
559
- scrollBackButton.firstChild.setAttribute('src', UI.icons.iconBase + scrollBackIcon);
505
+ scrollBackbutton.firstChild.setAttribute('src', _iconBase.icons.iconBase + scrollBackIcon);
560
506
 
561
507
  function getScrollbackIcon(sense) {
562
508
  return sense ? 'noun_1369241.svg' : 'noun_1369237.svg';
563
509
  }
564
510
  }
565
511
 
566
- function scrollBackButtonHandler(_x15) {
567
- return _scrollBackButtonHandler.apply(this, arguments);
512
+ function scrollBackbuttonHandler(_x8) {
513
+ return _scrollBackbuttonHandler.apply(this, arguments);
568
514
  } /// ////////////// Scroll up adding more below
569
515
 
570
516
 
571
- function _scrollBackButtonHandler() {
572
- _scrollBackButtonHandler = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8(_event) {
573
- return _regenerator["default"].wrap(function _callee8$(_context8) {
517
+ function _scrollBackbuttonHandler() {
518
+ _scrollBackbuttonHandler = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(_event) {
519
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
574
520
  while (1) {
575
- switch (_context8.prev = _context8.next) {
521
+ switch (_context2.prev = _context2.next) {
576
522
  case 0:
577
523
  if (!messageTable.extendedBack) {
578
- _context8.next = 6;
524
+ _context2.next = 6;
579
525
  break;
580
526
  }
581
527
 
582
528
  removePreviousMessages(true, messageTable);
583
529
  messageTable.extendedBack = false;
584
- setScrollBackButtonIcon();
585
- _context8.next = 8;
530
+ setScrollBackbuttonIcon();
531
+ _context2.next = 8;
586
532
  break;
587
533
 
588
534
  case 6:
589
- _context8.next = 8;
535
+ _context2.next = 8;
590
536
  return extendBackwards();
591
537
 
592
538
  case 8:
593
539
  case "end":
594
- return _context8.stop();
540
+ return _context2.stop();
595
541
  }
596
542
  }
597
- }, _callee8);
543
+ }, _callee2);
598
544
  }));
599
- return _scrollBackButtonHandler.apply(this, arguments);
545
+ return _scrollBackbuttonHandler.apply(this, arguments);
600
546
  }
601
547
 
602
548
  function extendForwards() {
@@ -604,20 +550,20 @@ function _infiniteMessageArea() {
604
550
  }
605
551
 
606
552
  function _extendForwards() {
607
- _extendForwards = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9() {
553
+ _extendForwards = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
608
554
  var done;
609
- return _regenerator["default"].wrap(function _callee9$(_context9) {
555
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
610
556
  while (1) {
611
- switch (_context9.prev = _context9.next) {
557
+ switch (_context3.prev = _context3.next) {
612
558
  case 0:
613
- _context9.next = 2;
559
+ _context3.next = 2;
614
560
  return insertPreviousMessages(false);
615
561
 
616
562
  case 2:
617
- done = _context9.sent;
563
+ done = _context3.sent;
618
564
 
619
565
  if (done) {
620
- scrollForwardButton.firstChild.setAttribute('src', UI.icons.iconBase + 'noun_T-Block_1114655_000000.svg');
566
+ scrollForwardButton.firstChild.setAttribute('src', _iconBase.icons.iconBase + 'noun_T-Block_1114655_000000.svg');
621
567
  scrollForwardButton.disabled = true;
622
568
  messageTable["final"] = true;
623
569
  } else {
@@ -625,14 +571,14 @@ function _infiniteMessageArea() {
625
571
  }
626
572
 
627
573
  setScrollForwardButtonIcon();
628
- return _context9.abrupt("return", done);
574
+ return _context3.abrupt("return", done);
629
575
 
630
576
  case 6:
631
577
  case "end":
632
- return _context9.stop();
578
+ return _context3.stop();
633
579
  }
634
580
  }
635
- }, _callee9);
581
+ }, _callee3);
636
582
  }));
637
583
  return _extendForwards.apply(this, arguments);
638
584
  }
@@ -641,37 +587,48 @@ function _infiniteMessageArea() {
641
587
  var sense = messageTable.extendedForwards ? !newestFirst : newestFirst; // noun_T-Block_1114657_000000.svg
642
588
 
643
589
  var scrollForwardIcon = messageTable["final"] ? 'noun_T-Block_1114657_000000.svg' : getScrollForwardButtonIcon(sense);
644
- scrollForwardButton.firstChild.setAttribute('src', UI.icons.iconBase + scrollForwardIcon);
590
+ scrollForwardButton.firstChild.setAttribute('src', _iconBase.icons.iconBase + scrollForwardIcon);
645
591
 
646
592
  function getScrollForwardButtonIcon(sense) {
647
593
  return !sense ? 'noun_1369241.svg' : 'noun_1369237.svg';
648
594
  }
649
595
  }
650
596
 
651
- function scrollForwardButtonHandler(_x16) {
597
+ function scrollForwardButtonHandler(_x9) {
652
598
  return _scrollForwardButtonHandler.apply(this, arguments);
653
599
  } /// ///////////////////////
654
600
 
601
+ /*
602
+ options = options || {}
603
+ options.authorDateOnLeft = true
604
+ const newestFirst = options.newestFirst === '1' || options.newestFirst === true // hack for now
605
+ const channelObject = new ChatChannel(chatChannel, options)
606
+ const dateFolder = channelObject.dateFolder
607
+ const div = dom.createElement('div')
608
+ const statusArea = div.appendChild(dom.createElement('div'))
609
+ const userContext = { dom, statusArea, div: statusArea } // logged on state, pointers to user's stuff
610
+ */
611
+
655
612
 
656
613
  function _scrollForwardButtonHandler() {
657
- _scrollForwardButtonHandler = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee10(_event) {
658
- return _regenerator["default"].wrap(function _callee10$(_context10) {
614
+ _scrollForwardButtonHandler = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(_event) {
615
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
659
616
  while (1) {
660
- switch (_context10.prev = _context10.next) {
617
+ switch (_context4.prev = _context4.next) {
661
618
  case 0:
662
619
  if (!messageTable.extendedForwards) {
663
- _context10.next = 6;
620
+ _context4.next = 6;
664
621
  break;
665
622
  }
666
623
 
667
624
  removePreviousMessages(false, messageTable);
668
625
  messageTable.extendedForwards = false;
669
626
  setScrollForwardButtonIcon();
670
- _context10.next = 9;
627
+ _context4.next = 9;
671
628
  break;
672
629
 
673
630
  case 6:
674
- _context10.next = 8;
631
+ _context4.next = 8;
675
632
  return extendForwards();
676
633
 
677
634
  case 8:
@@ -680,10 +637,10 @@ function _infiniteMessageArea() {
680
637
 
681
638
  case 9:
682
639
  case "end":
683
- return _context10.stop();
640
+ return _context4.stop();
684
641
  }
685
642
  }
686
- }, _callee10);
643
+ }, _callee4);
687
644
  }));
688
645
  return _scrollForwardButtonHandler.apply(this, arguments);
689
646
  }
@@ -703,7 +660,7 @@ function _infiniteMessageArea() {
703
660
  messageTable["final"] = true;
704
661
  liveMessageTable = messageTable;
705
662
  latest.messageTable = messageTable;
706
- var tr = newMessageForm(messageTable);
663
+ var tr = (0, _message.renderMessageEditor)(channelObject, messageTable, userContext, options);
707
664
 
708
665
  if (newestFirst) {
709
666
  messageTable.insertBefore(tr, messageTable.firstChild); // If newestFirst
@@ -718,27 +675,27 @@ function _infiniteMessageArea() {
718
675
 
719
676
 
720
677
  if (options.infinite) {
721
- var scrollBackButtonTR = dom.createElement('tr');
722
- var scrollBackButtonCell = scrollBackButtonTR.appendChild(dom.createElement('td')); // up traingles: noun_1369237.svg
678
+ var scrollBackbuttonTR = dom.createElement('tr');
679
+ var scrollBackbuttonCell = scrollBackbuttonTR.appendChild(dom.createElement('td')); // up traingles: noun_1369237.svg
723
680
  // down triangles: noun_1369241.svg
724
681
 
725
682
  var scrollBackIcon = newestFirst ? 'noun_1369241.svg' : 'noun_1369237.svg'; // down and up arrows respoctively
726
683
 
727
- scrollBackButton = UI.widgets.button(dom, UI.icons.iconBase + scrollBackIcon, 'Previous messages ...');
728
- scrollBackButtonCell.style = 'width:3em; height:3em;';
729
- scrollBackButton.addEventListener('click', scrollBackButtonHandler, false);
684
+ scrollBackbutton = widgets.button(dom, _iconBase.icons.iconBase + scrollBackIcon, 'Previous messages ...');
685
+ scrollBackbuttonCell.style = 'width:3em; height:3em;';
686
+ scrollBackbutton.addEventListener('click', scrollBackbuttonHandler, false);
730
687
  messageTable.extendedBack = false;
731
- scrollBackButtonCell.appendChild(scrollBackButton);
732
- setScrollBackButtonIcon();
733
- var dateCell = scrollBackButtonTR.appendChild(dom.createElement('td'));
688
+ scrollBackbuttonCell.appendChild(scrollBackbutton);
689
+ setScrollBackbuttonIcon();
690
+ var dateCell = scrollBackbuttonTR.appendChild(dom.createElement('td'));
734
691
  dateCell.style = 'text-align: center; vertical-align: middle; color: #888; font-style: italic;';
735
- dateCell.textContent = UI.widgets.shortDate(date.toISOString(), true); // no time, only date
692
+ dateCell.textContent = widgets.shortDate(date.toISOString(), true); // no time, only date
736
693
  // @@@@@@@@@@@ todo move this button to other end of message cell, o
737
694
 
738
- var scrollForwardButtonCell = scrollBackButtonTR.appendChild(dom.createElement('td'));
695
+ var scrollForwardButtonCell = scrollBackbuttonTR.appendChild(dom.createElement('td'));
739
696
  var scrollForwardIcon = newestFirst ? 'noun_1369241.svg' : 'noun_1369237.svg'; // down and up arrows respoctively
740
697
 
741
- scrollForwardButton = UI.widgets.button(dom, UI.icons.iconBase + scrollForwardIcon, 'Later messages ...');
698
+ scrollForwardButton = widgets.button(dom, _iconBase.icons.iconBase + scrollForwardIcon, 'Later messages ...');
742
699
  scrollForwardButtonCell.appendChild(scrollForwardButton);
743
700
  scrollForwardButtonCell.style = 'width:3em; height:3em;';
744
701
  scrollForwardButton.addEventListener('click', scrollForwardButtonHandler, false);
@@ -748,13 +705,13 @@ function _infiniteMessageArea() {
748
705
 
749
706
  if (!newestFirst) {
750
707
  // opposite end from the entry field
751
- messageTable.insertBefore(scrollBackButtonTR, messageTable.firstChild); // If not newestFirst
708
+ messageTable.insertBefore(scrollBackbuttonTR, messageTable.firstChild); // If not newestFirst
752
709
  } else {
753
- messageTable.appendChild(scrollBackButtonTR); // newestFirst
710
+ messageTable.appendChild(scrollBackbuttonTR); // newestFirst
754
711
  }
755
712
  }
756
713
 
757
- var sts = kb.statementsMatching(null, WF('message'), null, chatDocument);
714
+ var sts = _solidLogic.store.statementsMatching(null, ns.wf('message'), null, chatDocument);
758
715
 
759
716
  if (!live && sts.length === 0) {// not todays
760
717
  // no need buttomns at the moment
@@ -771,57 +728,57 @@ function _infiniteMessageArea() {
771
728
  };
772
729
 
773
730
  _createMessageTable = function _createMessageTable3() {
774
- _createMessageTable = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee12(date, live) {
731
+ _createMessageTable = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(date, live) {
775
732
  var chatDocument, messageTable, statusTR;
776
- return _regenerator["default"].wrap(function _callee12$(_context12) {
733
+ return _regenerator["default"].wrap(function _callee6$(_context6) {
777
734
  while (1) {
778
- switch (_context12.prev = _context12.next) {
735
+ switch (_context6.prev = _context6.next) {
779
736
  case 0:
780
737
  debug.log(' createMessageTable for ' + date);
781
738
  chatDocument = dateFolder.leafDocumentFromDate(date);
782
- _context12.prev = 2;
783
- _context12.next = 5;
784
- return kb.fetcher.load(chatDocument);
739
+ _context6.prev = 2;
740
+ _context6.next = 5;
741
+ return _solidLogic.store.fetcher.load(chatDocument);
785
742
 
786
743
  case 5:
787
- _context12.next = 19;
744
+ _context6.next = 19;
788
745
  break;
789
746
 
790
747
  case 7:
791
- _context12.prev = 7;
792
- _context12.t0 = _context12["catch"](2);
748
+ _context6.prev = 7;
749
+ _context6.t0 = _context6["catch"](2);
793
750
  messageTable = dom.createElement('table');
794
751
  statusTR = messageTable.appendChild(dom.createElement('tr')); // ### find status in exception
795
752
 
796
- if (!(_context12.t0.response && _context12.t0.response.status && _context12.t0.response.status === 404)) {
797
- _context12.next = 16;
753
+ if (!(_context6.t0.response && _context6.t0.response.status && _context6.t0.response.status === 404)) {
754
+ _context6.next = 16;
798
755
  break;
799
756
  }
800
757
 
801
758
  debug.log('Error 404 for chat file ' + chatDocument);
802
- return _context12.abrupt("return", renderMessageTable(date, live));
759
+ return _context6.abrupt("return", renderMessageTable(date, live));
803
760
 
804
761
  case 16:
805
762
  debug.log('*** Error NON 404 for chat file ' + chatDocument);
806
- statusTR.appendChild(UI.widgets.errorMessageBlock(dom, _context12.t0, 'pink'));
763
+ statusTR.appendChild(widgets.errorMessageBlock(dom, _context6.t0, 'pink'));
807
764
 
808
765
  case 18:
809
- return _context12.abrupt("return", statusTR);
766
+ return _context6.abrupt("return", statusTR);
810
767
 
811
768
  case 19:
812
- return _context12.abrupt("return", renderMessageTable(date, live));
769
+ return _context6.abrupt("return", renderMessageTable(date, live));
813
770
 
814
771
  case 20:
815
772
  case "end":
816
- return _context12.stop();
773
+ return _context6.stop();
817
774
  }
818
775
  }
819
- }, _callee12, null, [[2, 7]]);
776
+ }, _callee6, null, [[2, 7]]);
820
777
  }));
821
778
  return _createMessageTable.apply(this, arguments);
822
779
  };
823
780
 
824
- createMessageTable = function _createMessageTable2(_x13, _x14) {
781
+ createMessageTable = function _createMessageTable2(_x6, _x7) {
825
782
  return _createMessageTable.apply(this, arguments);
826
783
  };
827
784
 
@@ -843,38 +800,38 @@ function _infiniteMessageArea() {
843
800
  };
844
801
 
845
802
  _insertPreviousMessages = function _insertPreviousMessag2() {
846
- _insertPreviousMessages = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee11(backwards) {
803
+ _insertPreviousMessages = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(backwards) {
847
804
  var extremity, date, live, todayDoc, doc, newMessageTable;
848
- return _regenerator["default"].wrap(function _callee11$(_context11) {
805
+ return _regenerator["default"].wrap(function _callee5$(_context5) {
849
806
  while (1) {
850
- switch (_context11.prev = _context11.next) {
807
+ switch (_context5.prev = _context5.next) {
851
808
  case 0:
852
809
  extremity = backwards ? earliest : latest;
853
810
  date = extremity.messageTable.date; // day in mssecs
854
811
 
855
- _context11.next = 4;
812
+ _context5.next = 4;
856
813
  return dateFolder.loadPrevious(date, backwards);
857
814
 
858
815
  case 4:
859
- date = _context11.sent;
816
+ date = _context5.sent;
860
817
  // backwards
861
818
  debug.log("insertPreviousMessages: from ".concat(backwards ? 'backwards' : 'forwards', " loadPrevious: ").concat(date));
862
819
 
863
820
  if (!(!date && !backwards && !liveMessageTable)) {
864
- _context11.next = 9;
821
+ _context5.next = 9;
865
822
  break;
866
823
  }
867
824
 
868
- _context11.next = 9;
825
+ _context5.next = 9;
869
826
  return appendCurrentMessages();
870
827
 
871
828
  case 9:
872
829
  if (date) {
873
- _context11.next = 11;
830
+ _context5.next = 11;
874
831
  break;
875
832
  }
876
833
 
877
- return _context11.abrupt("return", true);
834
+ return _context5.abrupt("return", true);
878
835
 
879
836
  case 11:
880
837
  // done
@@ -886,11 +843,11 @@ function _infiniteMessageArea() {
886
843
  live = doc.sameTerm(todayDoc); // Is this todays?
887
844
  }
888
845
 
889
- _context11.next = 15;
846
+ _context5.next = 15;
890
847
  return createMessageTable(date, live);
891
848
 
892
849
  case 15:
893
- newMessageTable = _context11.sent;
850
+ newMessageTable = _context5.sent;
894
851
  extremity.messageTable = newMessageTable; // move pointer to earliest
895
852
 
896
853
  if (backwards ? newestFirst : !newestFirst) {
@@ -901,30 +858,30 @@ function _infiniteMessageArea() {
901
858
  div.insertBefore(newMessageTable, div.firstChild);
902
859
  }
903
860
 
904
- return _context11.abrupt("return", live);
861
+ return _context5.abrupt("return", live);
905
862
 
906
863
  case 19:
907
864
  case "end":
908
- return _context11.stop();
865
+ return _context5.stop();
909
866
  }
910
867
  }
911
- }, _callee11);
868
+ }, _callee5);
912
869
  }));
913
870
  return _insertPreviousMessages.apply(this, arguments);
914
871
  };
915
872
 
916
- insertPreviousMessages = function _insertPreviousMessag(_x12) {
873
+ insertPreviousMessages = function _insertPreviousMessag(_x5) {
917
874
  return _insertPreviousMessages.apply(this, arguments);
918
875
  };
919
876
 
920
877
  addMessage = function _addMessage(message, messageTable) {
921
- var bindings = {
922
- '?msg': message,
923
- '?creator': kb.any(message, ns.foaf('maker')),
924
- '?date': kb.any(message, DCT('created')),
925
- '?content': kb.any(message, ns.sioc('content'))
926
- };
927
- (0, _message.renderMessage)(messageTable, bindings, messageTable.fresh, options, userContext); // fresh from elsewhere
878
+ var latest = (0, _chatLogic.mostRecentVersion)(message); // const content = store.any(latest, ns.sioc('content'))
879
+
880
+ if ((0, _chatLogic.isDeleted)(latest) && !options.showDeletedMessages) {
881
+ return; // ignore deleted messaged -- @@ could also leave a placeholder
882
+ }
883
+
884
+ insertMessageIntoTable(channelObject, messageTable, message, messageTable.fresh, options, userContext); // fresh from elsewhere
928
885
  };
929
886
 
930
887
  syncMessages = function _syncMessages(about, messageTable) {
@@ -937,9 +894,10 @@ function _infiniteMessageArea() {
937
894
  }
938
895
  }
939
896
 
940
- var messages = kb.statementsMatching(about, ns.wf('message'), null, messageTable.chatDocument).map(function (st) {
897
+ var messages = _solidLogic.store.statementsMatching(about, ns.wf('message'), null, messageTable.chatDocument).map(function (st) {
941
898
  return st.object;
942
899
  });
900
+
943
901
  var stored = {};
944
902
  messages.forEach(function (m) {
945
903
  stored[m.uri] = true;
@@ -962,368 +920,28 @@ function _infiniteMessageArea() {
962
920
  for (ele = messageTable.firstChild; ele; ele = ele.nextSibling) {
963
921
  if (ele.AJAR_subject) {
964
922
  // Refresh thumbs up etc
965
- UI.widgets.refreshTree(ele); // Things inside may have changed too
923
+ widgets.refreshTree(ele); // Things inside may have changed too
966
924
  }
967
925
  }
968
926
  };
969
927
 
970
- newMessageForm = function _newMessageForm(messageTable) {
971
- var form = dom.createElement('tr');
972
- var lhs = dom.createElement('td');
973
- var middle = dom.createElement('td');
974
- var rhs = dom.createElement('td');
975
- form.appendChild(lhs);
976
- form.appendChild(middle);
977
- form.appendChild(rhs);
978
- form.AJAR_date = '9999-01-01T00:00:00Z'; // ISO format for field sort
979
-
980
- var field, sendButton;
981
-
982
- function sendMessage(_x6) {
983
- return _sendMessage.apply(this, arguments);
984
- } // sendMessage
985
-
986
-
987
- function _sendMessage() {
988
- _sendMessage = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(text) {
989
- var now, sts, timestamp, dateStamp, chatDocument, message, content, sendComplete;
990
- return _regenerator["default"].wrap(function _callee6$(_context6) {
991
- while (1) {
992
- switch (_context6.prev = _context6.next) {
993
- case 0:
994
- sendComplete = function _sendComplete() {
995
- var bindings = {
996
- '?msg': message,
997
- '?content': content,
998
- '?date': dateStamp,
999
- '?creator': me
1000
- };
1001
- (0, _message.renderMessage)(liveMessageTable, bindings, false, options, userContext); // not green
1002
-
1003
- if (!text) {
1004
- field.value = ''; // clear from out for reuse
1005
-
1006
- field.setAttribute('style', messageBodyStyle);
1007
- field.disabled = false;
1008
- field.scrollIntoView(newestFirst); // allign bottom (top)
1009
-
1010
- field.focus(); // Start typing next line immediately
1011
-
1012
- field.select();
1013
- }
1014
- };
1015
-
1016
- now = new Date();
1017
- _context6.next = 4;
1018
- return addNewTableIfNewDay(now);
1019
-
1020
- case 4:
1021
- if (!text) {
1022
- field.setAttribute('style', messageBodyStyle + 'color: #bbb;'); // pendingedit
1023
-
1024
- field.disabled = true;
1025
- }
1026
-
1027
- sts = [];
1028
- timestamp = '' + now.getTime();
1029
- dateStamp = $rdf.term(now);
1030
- chatDocument = dateFolder.leafDocumentFromDate(now);
1031
- message = kb.sym(chatDocument.uri + '#' + 'Msg' + timestamp);
1032
- content = kb.literal(text || field.value); // if (text) field.value = text No - don't destroy half-finsihed user input
1033
-
1034
- sts.push(new $rdf.Statement(chatChannel, ns.wf('message'), message, chatDocument));
1035
- sts.push(new $rdf.Statement(message, ns.sioc('content'), content, chatDocument));
1036
- sts.push(new $rdf.Statement(message, DCT('created'), dateStamp, chatDocument));
1037
-
1038
- if (me) {
1039
- sts.push(new $rdf.Statement(message, ns.foaf('maker'), me, chatDocument));
1040
- }
1041
-
1042
- if (!(SERVER_MKDIRP_BUG && (kb.fetcher.requested[chatDocument.uri] === undefined || kb.fetcher.requested[chatDocument.uri] === 404))) {
1043
- _context6.next = 19;
1044
- break;
1045
- }
1046
-
1047
- debug.log('@@@ SERVER_MKDIRP_BUG: Should only happen once: create chat file: ' + chatDocument);
1048
- _context6.next = 19;
1049
- return createIfNotExists(chatDocument);
1050
-
1051
- case 19:
1052
- _context6.prev = 19;
1053
- _context6.next = 22;
1054
- return updater.update([], sts);
1055
-
1056
- case 22:
1057
- _context6.next = 28;
1058
- break;
1059
-
1060
- case 24:
1061
- _context6.prev = 24;
1062
- _context6.t0 = _context6["catch"](19);
1063
- form.appendChild(UI.widgets.errorMessageBlock(dom, 'Error writing message: ' + _context6.t0));
1064
- return _context6.abrupt("return");
1065
-
1066
- case 28:
1067
- sendComplete();
1068
-
1069
- case 29:
1070
- case "end":
1071
- return _context6.stop();
1072
- }
1073
- }
1074
- }, _callee6, null, [[19, 24]]);
1075
- }));
1076
- return _sendMessage.apply(this, arguments);
1077
- }
1078
-
1079
- form.appendChild(dom.createElement('br')); // DRAG AND DROP
1080
-
1081
- function droppedFileHandler(files) {
1082
- var base = messageTable.chatDocument.dir().uri;
1083
- UI.widgets.uploadFiles(kb.fetcher, files, base + 'Files', base + 'Pictures', /*#__PURE__*/function () {
1084
- var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(theFile, destURI) {
1085
- return _regenerator["default"].wrap(function _callee2$(_context2) {
1086
- while (1) {
1087
- switch (_context2.prev = _context2.next) {
1088
- case 0:
1089
- _context2.next = 2;
1090
- return sendMessage(destURI);
1091
-
1092
- case 2:
1093
- case "end":
1094
- return _context2.stop();
1095
- }
1096
- }
1097
- }, _callee2);
1098
- }));
1099
-
1100
- return function (_x7, _x8) {
1101
- return _ref.apply(this, arguments);
1102
- };
1103
- }());
1104
- } // When a set of URIs are dropped on the field
1105
-
1106
-
1107
- var droppedURIHandler = /*#__PURE__*/function () {
1108
- var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(uris) {
1109
- var _iterator, _step, uri;
1110
-
1111
- return _regenerator["default"].wrap(function _callee3$(_context3) {
1112
- while (1) {
1113
- switch (_context3.prev = _context3.next) {
1114
- case 0:
1115
- _iterator = _createForOfIteratorHelper(uris);
1116
- _context3.prev = 1;
1117
-
1118
- _iterator.s();
1119
-
1120
- case 3:
1121
- if ((_step = _iterator.n()).done) {
1122
- _context3.next = 9;
1123
- break;
1124
- }
1125
-
1126
- uri = _step.value;
1127
- _context3.next = 7;
1128
- return sendMessage(uri);
1129
-
1130
- case 7:
1131
- _context3.next = 3;
1132
- break;
1133
-
1134
- case 9:
1135
- _context3.next = 14;
1136
- break;
1137
-
1138
- case 11:
1139
- _context3.prev = 11;
1140
- _context3.t0 = _context3["catch"](1);
1141
-
1142
- _iterator.e(_context3.t0);
1143
-
1144
- case 14:
1145
- _context3.prev = 14;
1146
-
1147
- _iterator.f();
1148
-
1149
- return _context3.finish(14);
1150
-
1151
- case 17:
1152
- case "end":
1153
- return _context3.stop();
1154
- }
1155
- }
1156
- }, _callee3, null, [[1, 11, 14, 17]]);
1157
- }));
1158
-
1159
- return function droppedURIHandler(_x9) {
1160
- return _ref2.apply(this, arguments);
1161
- };
1162
- }(); // When we are actually logged on
1163
-
1164
-
1165
- function turnOnInput() {
1166
- if (options.menuHandler && menuButton) {
1167
- var menuOptions = {
1168
- me: me,
1169
- dom: dom,
1170
- div: div,
1171
- newBase: messageTable.chatDocument.dir().uri
1172
- };
1173
- menuButton.addEventListener('click', function (event) {
1174
- options.menuHandler(event, chatChannel, menuOptions);
1175
- }, false);
1176
- } // Turn on message input
1177
-
1178
-
1179
- (0, _message.creatorAndDate)(lhs, me, '', null);
1180
- field = dom.createElement('textarea');
1181
- middle.innerHTML = '';
1182
- middle.appendChild(field);
1183
- field.rows = 3; // field.cols = 40
1184
-
1185
- field.setAttribute('style', messageBodyStyle + 'background-color: #eef;'); // Trap the Enter BEFORE it is used ti make a newline
1186
-
1187
- field.addEventListener('keydown', /*#__PURE__*/function () {
1188
- var _ref3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(e) {
1189
- return _regenerator["default"].wrap(function _callee4$(_context4) {
1190
- while (1) {
1191
- switch (_context4.prev = _context4.next) {
1192
- case 0:
1193
- if (!(e.keyCode === 13)) {
1194
- _context4.next = 4;
1195
- break;
1196
- }
1197
-
1198
- if (e.altKey) {
1199
- _context4.next = 4;
1200
- break;
1201
- }
1202
-
1203
- _context4.next = 4;
1204
- return sendMessage();
1205
-
1206
- case 4:
1207
- case "end":
1208
- return _context4.stop();
1209
- }
1210
- }
1211
- }, _callee4);
1212
- }));
1213
-
1214
- return function (_x10) {
1215
- return _ref3.apply(this, arguments);
1216
- };
1217
- }(), false);
1218
- UI.widgets.makeDropTarget(field, droppedURIHandler, droppedFileHandler);
1219
- rhs.innerHTML = '';
1220
- sendButton = UI.widgets.button(dom, UI.icons.iconBase + 'noun_383448.svg', 'Send');
1221
- sendButton.setAttribute('style', UI.style.buttonStyle + 'float: right;');
1222
- sendButton.addEventListener('click', function (_event) {
1223
- return sendMessage();
1224
- }, false);
1225
- rhs.appendChild(sendButton);
1226
- var chatDocument = dateFolder.leafDocumentFromDate(new Date());
1227
- var imageDoc;
1228
-
1229
- function getImageDoc() {
1230
- imageDoc = kb.sym(chatDocument.dir().uri + 'Image_' + Date.now() + '.png');
1231
- return imageDoc;
1232
- }
1233
-
1234
- function tookPicture(_x11) {
1235
- return _tookPicture.apply(this, arguments);
1236
- }
1237
-
1238
- function _tookPicture() {
1239
- _tookPicture = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(imageDoc) {
1240
- return _regenerator["default"].wrap(function _callee5$(_context5) {
1241
- while (1) {
1242
- switch (_context5.prev = _context5.next) {
1243
- case 0:
1244
- if (!imageDoc) {
1245
- _context5.next = 3;
1246
- break;
1247
- }
1248
-
1249
- _context5.next = 3;
1250
- return sendMessage(imageDoc.uri);
1251
-
1252
- case 3:
1253
- case "end":
1254
- return _context5.stop();
1255
- }
1256
- }
1257
- }, _callee5);
1258
- }));
1259
- return _tookPicture.apply(this, arguments);
1260
- }
1261
-
1262
- middle.appendChild(UI.media.cameraButton(dom, kb, getImageDoc, tookPicture));
1263
- UI.pad.recordParticipation(chatChannel, chatChannel.doc()); // participation =
1264
- } // turn on inpuut
1265
-
1266
-
1267
- var context = {
1268
- div: middle,
1269
- dom: dom
1270
- };
1271
- UI.authn.logIn(context).then(function (context) {
1272
- me = context.me;
1273
- turnOnInput();
1274
- Object.assign(context, userContext);
1275
- (0, _bookmarks.findBookmarkDocument)(context).then(function (context) {
1276
- debug.log('Bookmark file: ' + context.bookmarkDocument);
1277
- });
1278
- });
1279
- return form;
1280
- };
1281
-
1282
- kb = kb || UI.store;
1283
- ns = UI.ns;
1284
- WF = $rdf.Namespace('http://www.w3.org/2005/01/wf/flow#');
1285
- DCT = $rdf.Namespace('http://purl.org/dc/terms/'); // const POSIX = $rdf.Namespace('http://www.w3.org/ns/posix/stat#')
1286
-
928
+ // Body of main function
1287
929
  options = options || {};
1288
- newestFirst = options.newestFirst === '1' || options.newestFirst === true; // hack for now
1289
-
1290
- dateFolder = new _dateFolder.DateFolder(chatChannel, 'chat.ttl');
1291
- options.authorAboveContent = true; // var participation // An object tracking users use and prefs
930
+ options.authorDateOnLeft = false; // @@ make a user optiosn
1292
931
 
1293
- messageBodyStyle = UI.style.messageBodyStyle; // var messageBodyStyle = 'white-space: pre-wrap; width: 90%; font-size:100%; border: 0.07em solid #eee; padding: .2em 0.5em; margin: 0.1em 1em 0.1em 1em;'
1294
- // 'font-size: 100%; margin: 0.1em 1em 0.1em 1em; background-color: white; white-space: pre-wrap; padding: 0.1em;'
932
+ newestFirst = options.newestFirst === '1' || options.newestFirst === true; // hack for now
1295
933
 
934
+ channelObject = new _chatLogic.ChatChannel(chatChannel, options);
935
+ dateFolder = channelObject.dateFolder;
1296
936
  div = dom.createElement('div');
937
+ channelObject.div = div;
1297
938
  statusArea = div.appendChild(dom.createElement('div'));
1298
939
  userContext = {
1299
940
  dom: dom,
1300
941
  statusArea: statusArea,
1301
942
  div: statusArea
1302
943
  }; // logged on state, pointers to user's stuff
1303
-
1304
- updater = UI.store.updater;
1305
- /** Does a file exist on the web?
1306
- * @returns {Boolean}
1307
- */
1308
-
1309
- /*
1310
- async function documentExists (doc) {
1311
- try {
1312
- await kb.fetcher.load(doc)
1313
- } catch (err) {
1314
- if (err.response.status === 404) {
1315
- return false
1316
- } else {
1317
- debug.log('documentExists: doc load error NOT 404: ' + doc + ': ' + err)
1318
- throw err
1319
- }
1320
- }
1321
- return true
1322
- }
1323
- */
1324
-
1325
- /* Form for a new message
1326
- */
944
+ // const messageTable = dom.createElement('table') // @@ check does this go in renderMessageTable
1327
945
 
1328
946
  earliest = {
1329
947
  messageTable: null
@@ -1333,18 +951,18 @@ function _infiniteMessageArea() {
1333
951
  messageTable: null
1334
952
  };
1335
953
  lock = false;
1336
- _context17.next = 35;
954
+ _context12.next = 30;
1337
955
  return loadInitialContent();
1338
956
 
1339
- case 35:
1340
- return _context17.abrupt("return", div);
957
+ case 30:
958
+ return _context12.abrupt("return", div);
1341
959
 
1342
- case 36:
960
+ case 31:
1343
961
  case "end":
1344
- return _context17.stop();
962
+ return _context12.stop();
1345
963
  }
1346
964
  }
1347
- }, _callee17);
965
+ }, _callee12);
1348
966
  }));
1349
967
  return _infiniteMessageArea.apply(this, arguments);
1350
968
  }