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.
- package/README.md +6 -11
- package/lib/acl/acl.d.ts.map +1 -1
- package/lib/acl/acl.js +2 -4
- package/lib/acl/acl.js.map +1 -1
- package/lib/acl/add-agent-buttons.d.ts.map +1 -1
- package/lib/acl/add-agent-buttons.js +5 -5
- package/lib/acl/add-agent-buttons.js.map +1 -1
- package/lib/chat/bookmarks.js +23 -24
- package/lib/chat/bookmarks.js.map +1 -1
- package/lib/chat/chatLogic.js +338 -0
- package/lib/chat/chatLogic.js.map +1 -0
- package/lib/chat/dateFolder.js +13 -13
- package/lib/chat/dateFolder.js.map +1 -1
- package/lib/chat/infinite.js +287 -669
- package/lib/chat/infinite.js.map +1 -1
- package/lib/chat/message.js +444 -74
- package/lib/chat/message.js.map +1 -1
- package/lib/chat/messageTools.js +163 -106
- package/lib/chat/messageTools.js.map +1 -1
- package/lib/chat/thread.js +171 -41
- package/lib/chat/thread.js.map +1 -1
- package/lib/create/create.d.ts.map +1 -1
- package/lib/create/create.js +9 -9
- package/lib/create/create.js.map +1 -1
- package/lib/folders.js +2 -6
- package/lib/folders.js.map +1 -1
- package/lib/footer/index.js +4 -4
- package/lib/footer/index.js.map +1 -1
- package/lib/header/index.d.ts.map +1 -1
- package/lib/header/index.js +11 -8
- package/lib/header/index.js.map +1 -1
- package/lib/index.d.ts +4 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +27 -34
- package/lib/index.js.map +1 -1
- package/lib/login/login.d.ts +130 -0
- package/lib/login/login.d.ts.map +1 -0
- package/lib/login/login.js +1412 -0
- package/lib/login/login.js.map +1 -0
- package/lib/matrix/matrix.js +2 -2
- package/lib/matrix/matrix.js.map +1 -1
- package/lib/messageArea.js +9 -10
- package/lib/messageArea.js.map +1 -1
- package/lib/pad.js +2 -2
- package/lib/pad.js.map +1 -1
- package/lib/participation.js +4 -5
- package/lib/participation.js.map +1 -1
- package/lib/preferences.js +8 -8
- package/lib/preferences.js.map +1 -1
- package/lib/{authn → signup}/config-default.js +0 -0
- package/lib/signup/config-default.js.map +1 -0
- package/lib/{authn → signup}/signup.js +0 -0
- package/lib/signup/signup.js.map +1 -0
- package/lib/table.js +2 -3
- package/lib/table.js.map +1 -1
- package/lib/tabs.js +3 -3
- package/lib/tabs.js.map +1 -1
- package/lib/utils/index.js +6 -6
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/label.js +4 -4
- package/lib/utils/label.js.map +1 -1
- package/lib/versionInfo.js +3 -3
- package/lib/versionInfo.js.map +1 -1
- package/lib/webpack-bundle.js +6436 -22396
- package/lib/webpack-bundle.js.map +1 -1
- package/lib/widgets/buttons.d.ts.map +1 -1
- package/lib/widgets/buttons.js +24 -17
- package/lib/widgets/buttons.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteBar.js +2 -2
- package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteField.js +2 -2
- package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompletePicker.js +2 -2
- package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
- package/lib/widgets/forms/autocomplete/language.d.ts.map +1 -1
- package/lib/widgets/forms/autocomplete/language.js +6 -11
- package/lib/widgets/forms/autocomplete/language.js.map +1 -1
- package/lib/widgets/forms/autocomplete/publicData.d.ts +2 -1
- package/lib/widgets/forms/autocomplete/publicData.d.ts.map +1 -1
- package/lib/widgets/forms/autocomplete/publicData.js +15 -22
- package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
- package/lib/widgets/forms/basic.d.ts +1 -1
- package/lib/widgets/forms/basic.d.ts.map +1 -1
- package/lib/widgets/forms/basic.js +2 -2
- package/lib/widgets/forms/basic.js.map +1 -1
- package/lib/widgets/forms/comment.d.ts +1 -1
- package/lib/widgets/forms/comment.js +3 -3
- package/lib/widgets/forms/comment.js.map +1 -1
- package/lib/widgets/forms/fieldFunction.js +2 -2
- package/lib/widgets/forms/fieldFunction.js.map +1 -1
- package/lib/widgets/forms/formStyle.js +3 -3
- package/lib/widgets/forms/formStyle.js.map +1 -1
- package/lib/widgets/forms.js +11 -11
- package/lib/widgets/forms.js.map +1 -1
- package/lib/widgets/peoplePicker.js +2 -2
- package/lib/widgets/peoplePicker.js.map +1 -1
- package/package.json +3 -3
- package/lib/authn/authSession.d.ts +0 -4
- package/lib/authn/authSession.d.ts.map +0 -1
- package/lib/authn/authSession.js +0 -25
- package/lib/authn/authSession.js.map +0 -1
- package/lib/authn/authn.d.ts +0 -193
- package/lib/authn/authn.d.ts.map +0 -1
- package/lib/authn/authn.js +0 -2238
- package/lib/authn/authn.js.map +0 -1
- package/lib/authn/config-default.js.map +0 -1
- package/lib/authn/index.d.ts +0 -35
- package/lib/authn/index.d.ts.map +0 -1
- package/lib/authn/index.js +0 -44
- package/lib/authn/index.js.map +0 -1
- package/lib/authn/signup.js.map +0 -1
- package/lib/authn/types.d.ts +0 -25
- package/lib/authn/types.d.ts.map +0 -1
- package/lib/authn/types.js +0 -6
- package/lib/authn/types.js.map +0 -1
- package/lib/logic.d.ts +0 -8
- package/lib/logic.d.ts.map +0 -1
- package/lib/logic.js +0 -79
- package/lib/logic.js.map +0 -1
package/lib/chat/infinite.js
CHANGED
|
@@ -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
|
|
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
|
|
28
|
+
var widgets = _interopRequireWildcard(require("../widgets"));
|
|
31
29
|
|
|
32
|
-
var
|
|
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
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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
|
|
52
|
+
debug.warn('This browser does no t support desktop notification');
|
|
154
53
|
} else if (Notification.permission === 'granted') {
|
|
155
|
-
// Let's check whether
|
|
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
|
|
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
|
|
186
|
-
var
|
|
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
|
|
138
|
+
return _regenerator["default"].wrap(function _callee12$(_context12) {
|
|
189
139
|
while (1) {
|
|
190
|
-
switch (
|
|
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
|
|
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
|
|
145
|
+
return _regenerator["default"].wrap(function _callee11$(_context11) {
|
|
196
146
|
while (1) {
|
|
197
|
-
switch (
|
|
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
|
-
|
|
175
|
+
_context11.next = 15;
|
|
226
176
|
break;
|
|
227
177
|
}
|
|
228
178
|
|
|
229
179
|
selectedDate = dateFolder.dateFromLeafDocument(selectedDocument);
|
|
230
|
-
|
|
180
|
+
_context11.next = 7;
|
|
231
181
|
return createMessageTable(selectedDate, live);
|
|
232
182
|
|
|
233
183
|
case 7:
|
|
234
|
-
selectedMessageTable =
|
|
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
|
-
|
|
191
|
+
_context11.next = 19;
|
|
242
192
|
break;
|
|
243
193
|
|
|
244
194
|
case 15:
|
|
245
|
-
|
|
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
|
-
|
|
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
|
|
215
|
+
return _context11.stop();
|
|
266
216
|
}
|
|
267
217
|
}
|
|
268
|
-
},
|
|
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
|
|
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
|
|
230
|
+
return _regenerator["default"].wrap(function _callee10$(_context10) {
|
|
281
231
|
while (1) {
|
|
282
|
-
switch (
|
|
232
|
+
switch (_context10.prev = _context10.next) {
|
|
283
233
|
case 0:
|
|
284
234
|
if (!lock) {
|
|
285
|
-
|
|
235
|
+
_context10.next = 2;
|
|
286
236
|
break;
|
|
287
237
|
}
|
|
288
238
|
|
|
289
|
-
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
|
-
|
|
249
|
+
_context10.next = 21;
|
|
300
250
|
break;
|
|
301
251
|
}
|
|
302
252
|
|
|
303
253
|
if (!(div.scrollHeight === 0)) {
|
|
304
|
-
|
|
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
|
|
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
|
-
|
|
268
|
+
_context10.next = 14;
|
|
319
269
|
return earliest.messageTable.extendBackwards();
|
|
320
270
|
|
|
321
271
|
case 14:
|
|
322
|
-
done =
|
|
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
|
-
|
|
281
|
+
_context10.next = 19;
|
|
332
282
|
break;
|
|
333
283
|
}
|
|
334
284
|
|
|
335
|
-
return
|
|
285
|
+
return _context10.abrupt("break", 21);
|
|
336
286
|
|
|
337
287
|
case 19:
|
|
338
|
-
|
|
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
|
-
|
|
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
|
-
|
|
302
|
+
_context10.next = 26;
|
|
353
303
|
return latest.messageTable.extendForwards();
|
|
354
304
|
|
|
355
305
|
case 26:
|
|
356
|
-
done =
|
|
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
|
-
|
|
316
|
+
_context10.next = 31;
|
|
367
317
|
break;
|
|
368
318
|
}
|
|
369
319
|
|
|
370
|
-
return
|
|
320
|
+
return _context10.abrupt("break", 33);
|
|
371
321
|
|
|
372
322
|
case 31:
|
|
373
|
-
|
|
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
|
|
331
|
+
return _context10.stop();
|
|
382
332
|
}
|
|
383
333
|
}
|
|
384
|
-
},
|
|
334
|
+
}, _callee10);
|
|
385
335
|
}));
|
|
386
336
|
return _loadMoreWhereNeeded.apply(this, arguments);
|
|
387
337
|
};
|
|
388
338
|
|
|
389
|
-
loadMoreWhereNeeded = function _loadMoreWhereNeeded2(
|
|
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
|
|
344
|
+
_appendCurrentMessages = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9() {
|
|
395
345
|
var now, chatDocument, messageTable;
|
|
396
|
-
return _regenerator["default"].wrap(function
|
|
346
|
+
return _regenerator["default"].wrap(function _callee9$(_context9) {
|
|
397
347
|
while (1) {
|
|
398
|
-
switch (
|
|
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 =
|
|
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
|
|
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
|
|
385
|
+
return _context9.abrupt("return", messageTable);
|
|
440
386
|
|
|
441
387
|
case 11:
|
|
442
388
|
case "end":
|
|
443
|
-
return
|
|
389
|
+
return _context9.stop();
|
|
444
390
|
}
|
|
445
391
|
}
|
|
446
|
-
},
|
|
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
|
-
|
|
456
|
-
|
|
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
|
|
404
|
+
return _regenerator["default"].wrap(function _callee7$(_context7) {
|
|
459
405
|
while (1) {
|
|
460
|
-
switch (
|
|
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(
|
|
409
|
+
newChatDocument = dateFolder.leafDocumentFromDate(new Date());
|
|
465
410
|
|
|
466
411
|
if (newChatDocument.sameTerm(latest.messageTable.chatDocument)) {
|
|
467
|
-
|
|
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
|
-
|
|
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 (!
|
|
428
|
+
if (!_solidLogic.store.holds(oldChatDocument, ns.rdfs('seeAlso'), newChatDocument, oldChatDocument)) {
|
|
484
429
|
sts = [$rdf.st(oldChatDocument, ns.rdfs('seeAlso'), newChatDocument, oldChatDocument)];
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
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
|
|
440
|
+
return _context7.stop();
|
|
495
441
|
}
|
|
496
442
|
}
|
|
497
|
-
},
|
|
443
|
+
}, _callee7);
|
|
498
444
|
}));
|
|
499
|
-
return
|
|
445
|
+
return _addNewChatDocumentIfNewDay.apply(this, arguments);
|
|
500
446
|
};
|
|
501
447
|
|
|
502
|
-
|
|
503
|
-
return
|
|
448
|
+
addNewChatDocumentIfNewDay = function _addNewChatDocumentIf() {
|
|
449
|
+
return _addNewChatDocumentIfNewDay.apply(this, arguments);
|
|
504
450
|
};
|
|
505
451
|
|
|
506
452
|
renderMessageTable = function _renderMessageTable(date, live) {
|
|
507
|
-
var
|
|
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
|
|
461
|
+
_extendBackwards = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
516
462
|
var done;
|
|
517
|
-
return _regenerator["default"].wrap(function
|
|
463
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
518
464
|
while (1) {
|
|
519
|
-
switch (
|
|
465
|
+
switch (_context.prev = _context.next) {
|
|
520
466
|
case 0:
|
|
521
|
-
|
|
467
|
+
_context.next = 2;
|
|
522
468
|
return insertPreviousMessages(true);
|
|
523
469
|
|
|
524
470
|
case 2:
|
|
525
|
-
done =
|
|
471
|
+
done = _context.sent;
|
|
526
472
|
|
|
527
473
|
if (done) {
|
|
528
|
-
if (
|
|
529
|
-
|
|
474
|
+
if (scrollBackbutton) {
|
|
475
|
+
scrollBackbutton.firstChild.setAttribute('src', _iconBase.icons.iconBase + 'noun_T-Block_1114655_000000.svg'); // T
|
|
530
476
|
|
|
531
|
-
|
|
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
|
-
|
|
540
|
-
return
|
|
485
|
+
setScrollBackbuttonIcon();
|
|
486
|
+
return _context.abrupt("return", done);
|
|
541
487
|
|
|
542
488
|
case 6:
|
|
543
489
|
case "end":
|
|
544
|
-
return
|
|
490
|
+
return _context.stop();
|
|
545
491
|
}
|
|
546
492
|
}
|
|
547
|
-
},
|
|
493
|
+
}, _callee);
|
|
548
494
|
}));
|
|
549
495
|
return _extendBackwards.apply(this, arguments);
|
|
550
496
|
}
|
|
551
497
|
|
|
552
|
-
function
|
|
553
|
-
if (!
|
|
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
|
-
|
|
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
|
|
567
|
-
return
|
|
512
|
+
function scrollBackbuttonHandler(_x8) {
|
|
513
|
+
return _scrollBackbuttonHandler.apply(this, arguments);
|
|
568
514
|
} /// ////////////// Scroll up adding more below
|
|
569
515
|
|
|
570
516
|
|
|
571
|
-
function
|
|
572
|
-
|
|
573
|
-
return _regenerator["default"].wrap(function
|
|
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 (
|
|
521
|
+
switch (_context2.prev = _context2.next) {
|
|
576
522
|
case 0:
|
|
577
523
|
if (!messageTable.extendedBack) {
|
|
578
|
-
|
|
524
|
+
_context2.next = 6;
|
|
579
525
|
break;
|
|
580
526
|
}
|
|
581
527
|
|
|
582
528
|
removePreviousMessages(true, messageTable);
|
|
583
529
|
messageTable.extendedBack = false;
|
|
584
|
-
|
|
585
|
-
|
|
530
|
+
setScrollBackbuttonIcon();
|
|
531
|
+
_context2.next = 8;
|
|
586
532
|
break;
|
|
587
533
|
|
|
588
534
|
case 6:
|
|
589
|
-
|
|
535
|
+
_context2.next = 8;
|
|
590
536
|
return extendBackwards();
|
|
591
537
|
|
|
592
538
|
case 8:
|
|
593
539
|
case "end":
|
|
594
|
-
return
|
|
540
|
+
return _context2.stop();
|
|
595
541
|
}
|
|
596
542
|
}
|
|
597
|
-
},
|
|
543
|
+
}, _callee2);
|
|
598
544
|
}));
|
|
599
|
-
return
|
|
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
|
|
553
|
+
_extendForwards = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
|
|
608
554
|
var done;
|
|
609
|
-
return _regenerator["default"].wrap(function
|
|
555
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
610
556
|
while (1) {
|
|
611
|
-
switch (
|
|
557
|
+
switch (_context3.prev = _context3.next) {
|
|
612
558
|
case 0:
|
|
613
|
-
|
|
559
|
+
_context3.next = 2;
|
|
614
560
|
return insertPreviousMessages(false);
|
|
615
561
|
|
|
616
562
|
case 2:
|
|
617
|
-
done =
|
|
563
|
+
done = _context3.sent;
|
|
618
564
|
|
|
619
565
|
if (done) {
|
|
620
|
-
scrollForwardButton.firstChild.setAttribute('src',
|
|
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
|
|
574
|
+
return _context3.abrupt("return", done);
|
|
629
575
|
|
|
630
576
|
case 6:
|
|
631
577
|
case "end":
|
|
632
|
-
return
|
|
578
|
+
return _context3.stop();
|
|
633
579
|
}
|
|
634
580
|
}
|
|
635
|
-
},
|
|
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',
|
|
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(
|
|
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
|
|
658
|
-
return _regenerator["default"].wrap(function
|
|
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 (
|
|
617
|
+
switch (_context4.prev = _context4.next) {
|
|
661
618
|
case 0:
|
|
662
619
|
if (!messageTable.extendedForwards) {
|
|
663
|
-
|
|
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
|
-
|
|
627
|
+
_context4.next = 9;
|
|
671
628
|
break;
|
|
672
629
|
|
|
673
630
|
case 6:
|
|
674
|
-
|
|
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
|
|
640
|
+
return _context4.stop();
|
|
684
641
|
}
|
|
685
642
|
}
|
|
686
|
-
},
|
|
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 =
|
|
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
|
|
722
|
-
var
|
|
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
|
-
|
|
728
|
-
|
|
729
|
-
|
|
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
|
-
|
|
732
|
-
|
|
733
|
-
var dateCell =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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(
|
|
708
|
+
messageTable.insertBefore(scrollBackbuttonTR, messageTable.firstChild); // If not newestFirst
|
|
752
709
|
} else {
|
|
753
|
-
messageTable.appendChild(
|
|
710
|
+
messageTable.appendChild(scrollBackbuttonTR); // newestFirst
|
|
754
711
|
}
|
|
755
712
|
}
|
|
756
713
|
|
|
757
|
-
var sts =
|
|
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
|
|
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
|
|
733
|
+
return _regenerator["default"].wrap(function _callee6$(_context6) {
|
|
777
734
|
while (1) {
|
|
778
|
-
switch (
|
|
735
|
+
switch (_context6.prev = _context6.next) {
|
|
779
736
|
case 0:
|
|
780
737
|
debug.log(' createMessageTable for ' + date);
|
|
781
738
|
chatDocument = dateFolder.leafDocumentFromDate(date);
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
return
|
|
739
|
+
_context6.prev = 2;
|
|
740
|
+
_context6.next = 5;
|
|
741
|
+
return _solidLogic.store.fetcher.load(chatDocument);
|
|
785
742
|
|
|
786
743
|
case 5:
|
|
787
|
-
|
|
744
|
+
_context6.next = 19;
|
|
788
745
|
break;
|
|
789
746
|
|
|
790
747
|
case 7:
|
|
791
|
-
|
|
792
|
-
|
|
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 (!(
|
|
797
|
-
|
|
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
|
|
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(
|
|
763
|
+
statusTR.appendChild(widgets.errorMessageBlock(dom, _context6.t0, 'pink'));
|
|
807
764
|
|
|
808
765
|
case 18:
|
|
809
|
-
return
|
|
766
|
+
return _context6.abrupt("return", statusTR);
|
|
810
767
|
|
|
811
768
|
case 19:
|
|
812
|
-
return
|
|
769
|
+
return _context6.abrupt("return", renderMessageTable(date, live));
|
|
813
770
|
|
|
814
771
|
case 20:
|
|
815
772
|
case "end":
|
|
816
|
-
return
|
|
773
|
+
return _context6.stop();
|
|
817
774
|
}
|
|
818
775
|
}
|
|
819
|
-
},
|
|
776
|
+
}, _callee6, null, [[2, 7]]);
|
|
820
777
|
}));
|
|
821
778
|
return _createMessageTable.apply(this, arguments);
|
|
822
779
|
};
|
|
823
780
|
|
|
824
|
-
createMessageTable = function _createMessageTable2(
|
|
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
|
|
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
|
|
805
|
+
return _regenerator["default"].wrap(function _callee5$(_context5) {
|
|
849
806
|
while (1) {
|
|
850
|
-
switch (
|
|
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
|
-
|
|
812
|
+
_context5.next = 4;
|
|
856
813
|
return dateFolder.loadPrevious(date, backwards);
|
|
857
814
|
|
|
858
815
|
case 4:
|
|
859
|
-
date =
|
|
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
|
-
|
|
821
|
+
_context5.next = 9;
|
|
865
822
|
break;
|
|
866
823
|
}
|
|
867
824
|
|
|
868
|
-
|
|
825
|
+
_context5.next = 9;
|
|
869
826
|
return appendCurrentMessages();
|
|
870
827
|
|
|
871
828
|
case 9:
|
|
872
829
|
if (date) {
|
|
873
|
-
|
|
830
|
+
_context5.next = 11;
|
|
874
831
|
break;
|
|
875
832
|
}
|
|
876
833
|
|
|
877
|
-
return
|
|
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
|
-
|
|
846
|
+
_context5.next = 15;
|
|
890
847
|
return createMessageTable(date, live);
|
|
891
848
|
|
|
892
849
|
case 15:
|
|
893
|
-
newMessageTable =
|
|
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
|
|
861
|
+
return _context5.abrupt("return", live);
|
|
905
862
|
|
|
906
863
|
case 19:
|
|
907
864
|
case "end":
|
|
908
|
-
return
|
|
865
|
+
return _context5.stop();
|
|
909
866
|
}
|
|
910
867
|
}
|
|
911
|
-
},
|
|
868
|
+
}, _callee5);
|
|
912
869
|
}));
|
|
913
870
|
return _insertPreviousMessages.apply(this, arguments);
|
|
914
871
|
};
|
|
915
872
|
|
|
916
|
-
insertPreviousMessages = function _insertPreviousMessag(
|
|
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
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
(
|
|
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 =
|
|
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
|
-
|
|
923
|
+
widgets.refreshTree(ele); // Things inside may have changed too
|
|
966
924
|
}
|
|
967
925
|
}
|
|
968
926
|
};
|
|
969
927
|
|
|
970
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
954
|
+
_context12.next = 30;
|
|
1337
955
|
return loadInitialContent();
|
|
1338
956
|
|
|
1339
|
-
case
|
|
1340
|
-
return
|
|
957
|
+
case 30:
|
|
958
|
+
return _context12.abrupt("return", div);
|
|
1341
959
|
|
|
1342
|
-
case
|
|
960
|
+
case 31:
|
|
1343
961
|
case "end":
|
|
1344
|
-
return
|
|
962
|
+
return _context12.stop();
|
|
1345
963
|
}
|
|
1346
964
|
}
|
|
1347
|
-
},
|
|
965
|
+
}, _callee12);
|
|
1348
966
|
}));
|
|
1349
967
|
return _infiniteMessageArea.apply(this, arguments);
|
|
1350
968
|
}
|