solid-ui 2.4.14-bbf45639-e81d3e08 → 2.4.15-348f23a8
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/lib/chat/bookmarks.js +30 -29
- package/lib/chat/bookmarks.js.map +1 -1
- package/lib/chat/chatLogic.js +340 -0
- package/lib/chat/chatLogic.js.map +1 -0
- package/lib/chat/dateFolder.js +12 -12
- package/lib/chat/dateFolder.js.map +1 -1
- package/lib/chat/infinite.js +285 -665
- package/lib/chat/infinite.js.map +1 -1
- package/lib/chat/message.js +445 -71
- package/lib/chat/message.js.map +1 -1
- package/lib/chat/messageTools.js +170 -108
- package/lib/chat/messageTools.js.map +1 -1
- package/lib/chat/thread.js +162 -32
- package/lib/chat/thread.js.map +1 -1
- package/lib/logic.js.map +1 -1
- package/lib/versionInfo.js +3 -3
- package/lib/versionInfo.js.map +1 -1
- package/lib/webpack-bundle.js +1423 -1008
- package/lib/webpack-bundle.js.map +1 -1
- package/lib/widgets/buttons.d.ts.map +1 -1
- package/lib/widgets/buttons.js +8 -1
- package/lib/widgets/buttons.js.map +1 -1
- package/package.json +1 -1
package/lib/chat/dateFolder.js
CHANGED
|
@@ -31,14 +31,14 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
31
31
|
|
|
32
32
|
/**
|
|
33
33
|
* Contains the [[DateFolder]] class
|
|
34
|
-
*
|
|
34
|
+
* This tracks data stored in dated folders and sub-folders
|
|
35
|
+
*
|
|
35
36
|
*/
|
|
36
37
|
// pull in first avoid cross-refs
|
|
37
|
-
|
|
38
|
+
|
|
38
39
|
/**
|
|
39
40
|
* Track back through the YYYY/MM/DD tree to find the previous/next day
|
|
40
41
|
*/
|
|
41
|
-
|
|
42
42
|
var DateFolder = /*#__PURE__*/function () {
|
|
43
43
|
function DateFolder(rootThing, leafFileName, membershipProperty) {
|
|
44
44
|
(0, _classCallCheck2["default"])(this, DateFolder);
|
|
@@ -62,7 +62,7 @@ var DateFolder = /*#__PURE__*/function () {
|
|
|
62
62
|
var path = isoDate.split('T')[0].replace(/-/g, '/'); // Like "2018/05/07"
|
|
63
63
|
|
|
64
64
|
path = this.root.dir().uri + path + '/' + this.leafFileName;
|
|
65
|
-
return
|
|
65
|
+
return _logic.store.sym(path);
|
|
66
66
|
}
|
|
67
67
|
/* Generate a date object from the leaf file name
|
|
68
68
|
*/
|
|
@@ -124,12 +124,12 @@ var DateFolder = /*#__PURE__*/function () {
|
|
|
124
124
|
}
|
|
125
125
|
|
|
126
126
|
_folder = siblings.pop();
|
|
127
|
-
leafDocument =
|
|
127
|
+
leafDocument = _logic.store.sym(_folder.uri + thisDateFolder.leafFileName);
|
|
128
128
|
_context.next = 10;
|
|
129
|
-
return
|
|
129
|
+
return _logic.store.fetcher.load(leafDocument);
|
|
130
130
|
|
|
131
131
|
case 10:
|
|
132
|
-
if (!(
|
|
132
|
+
if (!(_logic.store.statementsMatching(null, ns.dct('created'), null, leafDocument).length > 0)) {
|
|
133
133
|
_context.next = 12;
|
|
134
134
|
break;
|
|
135
135
|
}
|
|
@@ -173,10 +173,10 @@ var DateFolder = /*#__PURE__*/function () {
|
|
|
173
173
|
// debug.log(' previousPeriod level' + level + ' file ' + file)
|
|
174
174
|
parent = file.dir();
|
|
175
175
|
_context2.next = 7;
|
|
176
|
-
return
|
|
176
|
+
return _logic.store.fetcher.load(parent);
|
|
177
177
|
|
|
178
178
|
case 7:
|
|
179
|
-
siblings =
|
|
179
|
+
siblings = _logic.store.each(parent, ns.ldp('contains'));
|
|
180
180
|
siblings = siblings.filter(younger);
|
|
181
181
|
_context2.next = 11;
|
|
182
182
|
return lastNonEmpty(siblings);
|
|
@@ -215,10 +215,10 @@ var DateFolder = /*#__PURE__*/function () {
|
|
|
215
215
|
|
|
216
216
|
case 21:
|
|
217
217
|
_context2.next = 23;
|
|
218
|
-
return
|
|
218
|
+
return _logic.store.fetcher.load(uncle);
|
|
219
219
|
|
|
220
220
|
case 23:
|
|
221
|
-
cousins =
|
|
221
|
+
cousins = _logic.store.each(uncle, ns.ldp('contains'));
|
|
222
222
|
_context2.next = 26;
|
|
223
223
|
return lastNonEmpty(cousins);
|
|
224
224
|
|
|
@@ -254,7 +254,7 @@ var DateFolder = /*#__PURE__*/function () {
|
|
|
254
254
|
break;
|
|
255
255
|
}
|
|
256
256
|
|
|
257
|
-
doc =
|
|
257
|
+
doc = _logic.store.sym(found.uri + this.leafFileName);
|
|
258
258
|
return _context3.abrupt("return", this.dateFromLeafDocument(doc));
|
|
259
259
|
|
|
260
260
|
case 10:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/chat/dateFolder.js"],"names":["kb","store","DateFolder","rootThing","leafFileName","membershipProperty","root","rootFolder","dir","ns","wf","date","isoDate","toISOString","path","split","replace","uri","sym","doc","head","length","str","slice","Date","debug","log","backwards","previousPeriod","file","level","younger","suitable","lastNonEmpty","siblings","filter","sort","reverse","pop","folder","leafDocument","thisDateFolder","fetcher","load","statementsMatching","dct","x","tail","includes","parent","each","ldp","uncle","cousins","result","leafDocumentFromDate","found","dateFromLeafDocument","earliestSubfolder","folderFetcher","requested","force","kids","folderStore","Error","$rdf","graph","Fetcher","y","month","d","leafObjects","msg","trace","sortMe","map","leafObject","any"],"mappings":"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","sourcesContent":["/**\n * Contains the [[DateFolder]] class\n * @packageDocumentation\n */\n\nimport * as debug from '../debug'\nimport { store } from '../logic'\n\nimport * as ns from '../ns'\nimport * as $rdf from 'rdflib' // pull in first avoid cross-refs\n\nconst kb = store\n\n/**\n * Track back through the YYYY/MM/DD tree to find the previous/next day\n */\nexport class DateFolder {\n constructor (rootThing, leafFileName, membershipProperty) {\n this.root = rootThing\n this.rootFolder = rootThing.dir()\n this.leafFileName = leafFileName || 'index.ttl' // typically chat.ttl\n this.membershipProperty = membershipProperty || ns.wf('leafObject')\n }\n\n /* Generate the leaf document (rdf object) from date\n * @returns: <NamedNode> - document\n */\n leafDocumentFromDate (date) {\n // debug.log('incoming date: ' + date)\n const isoDate = date.toISOString() // Like \"2018-05-07T17:42:46.576Z\"\n let path = isoDate.split('T')[0].replace(/-/g, '/') // Like \"2018/05/07\"\n path = this.root.dir().uri + path + '/' + this.leafFileName\n return kb.sym(path)\n }\n\n /* Generate a date object from the leaf file name\n */\n dateFromLeafDocument (doc) {\n const head = this.rootFolder.uri.length\n const str = doc.uri.slice(head, head + 10).replace(/\\//g, '-')\n // let date = new Date(str + 'Z') // GMT - but fails in FF - invalid format :-(\n const date = new Date(str) // not explicitly UTC but is assumed so in spec\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse\n debug.log('Date for ' + doc + ':' + date.toISOString())\n return date\n }\n\n async loadPrevious (date, backwards) {\n const thisDateFolder = this\n async function previousPeriod (file, level) {\n function younger (x) {\n if (backwards ? x.uri >= file.uri : x.uri <= file.uri) return false // later than we want or same -- looking for different\n return true\n }\n function suitable (x) {\n const tail = x.uri\n .slice(0, -1)\n .split('/')\n .slice(-1)[0]\n if (!'0123456789'.includes(tail[0])) return false // not numeric\n return true\n }\n\n async function lastNonEmpty (siblings) {\n siblings = siblings.filter(suitable)\n siblings.sort() // chronological order\n if (!backwards) siblings.reverse()\n if (level !== 3) return siblings.pop() // only length chck final leverl\n while (siblings.length) {\n const folder = siblings.pop()\n const leafDocument = kb.sym(folder.uri + thisDateFolder.leafFileName)\n await kb.fetcher.load(leafDocument)\n // files can have seealso links. skip ones with no leafObjects with a date\n if (\n kb.statementsMatching(null, ns.dct('created'), null, leafDocument)\n .length > 0\n ) {\n return folder\n }\n }\n return null\n }\n // debug.log(' previousPeriod level' + level + ' file ' + file)\n const parent = file.dir()\n await kb.fetcher.load(parent)\n let siblings = kb.each(parent, ns.ldp('contains'))\n siblings = siblings.filter(younger)\n const folder = await lastNonEmpty(siblings)\n if (folder) return folder\n\n if (level === 0) return null // 3:day, 2:month, 1: year 0: no\n\n const uncle = await previousPeriod(parent, level - 1)\n if (!uncle) return null // reached first ever\n await kb.fetcher.load(uncle)\n const cousins = kb.each(uncle, ns.ldp('contains'))\n const result = await lastNonEmpty(cousins)\n return result\n } // previousPeriod\n\n const folder = this.leafDocumentFromDate(date).dir()\n const found = await previousPeriod(folder, 3)\n if (found) {\n const doc = kb.sym(found.uri + this.leafFileName)\n return this.dateFromLeafDocument(doc)\n }\n return null\n } // loadPrevious\n\n async firstLeaf (backwards) {\n // backwards -> last leafObject\n const folderStore = $rdf.graph()\n const folderFetcher = new $rdf.Fetcher(folderStore)\n async function earliestSubfolder (parent) {\n function suitable (x) {\n const tail = x.uri\n .slice(0, -1)\n .split('/')\n .slice(-1)[0]\n if (!'0123456789'.includes(tail[0])) return false // not numeric\n return true\n }\n debug.log(' parent ' + parent)\n delete folderFetcher.requested[parent.uri]\n // try {\n await folderFetcher.load(parent, { force: true }) // Force fetch as will have changed\n // }catch (err) {\n // }\n\n let kids = folderStore.each(parent, ns.ldp('contains'))\n kids = kids.filter(suitable)\n if (kids.length === 0) {\n throw new Error(' @@@ No children to parent2 ' + parent)\n }\n\n kids.sort()\n if (backwards) kids.reverse()\n return kids[0]\n }\n const y = await earliestSubfolder(this.root.dir())\n const month = await earliestSubfolder(y)\n const d = await earliestSubfolder(month)\n const leafDocument = $rdf.sym(d.uri + 'chat.ttl')\n await folderFetcher.load(leafDocument)\n const leafObjects = folderStore.each(\n this.root,\n this.membershipProperty,\n null,\n leafDocument\n )\n if (leafObjects.length === 0) {\n const msg =\n ' INCONSISTENCY -- no chat leafObject in file ' + leafDocument\n debug.trace(msg)\n throw new Error(msg)\n }\n const sortMe = leafObjects.map(leafObject => [\n folderStore.any(leafObject, ns.dct('created')),\n leafObject\n ])\n sortMe.sort()\n if (backwards) sortMe.reverse()\n debug.log(\n (backwards ? 'Latest' : 'Earliest') + ' leafObject is ' + sortMe[0][1]\n )\n return sortMe[0][1]\n } // firstleafObject\n} // class\n"],"file":"dateFolder.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/chat/dateFolder.js"],"names":["DateFolder","rootThing","leafFileName","membershipProperty","root","rootFolder","dir","ns","wf","date","isoDate","toISOString","path","split","replace","uri","store","sym","doc","head","length","str","slice","Date","debug","log","backwards","previousPeriod","file","level","younger","suitable","lastNonEmpty","siblings","filter","sort","reverse","pop","folder","leafDocument","thisDateFolder","fetcher","load","statementsMatching","dct","x","tail","includes","parent","each","ldp","uncle","cousins","result","leafDocumentFromDate","found","dateFromLeafDocument","earliestSubfolder","folderFetcher","requested","force","kids","folderStore","Error","$rdf","graph","Fetcher","y","month","d","leafObjects","msg","trace","sortMe","map","leafObject","any"],"mappings":"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","sourcesContent":["/**\n * Contains the [[DateFolder]] class\n * This tracks data stored in dated folders and sub-folders\n *\n */\n\nimport * as debug from '../debug'\nimport { store } from '../logic'\n\nimport * as ns from '../ns'\nimport * as $rdf from 'rdflib' // pull in first avoid cross-refs\n\n/**\n * Track back through the YYYY/MM/DD tree to find the previous/next day\n */\nexport class DateFolder {\n constructor (rootThing, leafFileName, membershipProperty) {\n this.root = rootThing\n this.rootFolder = rootThing.dir()\n this.leafFileName = leafFileName || 'index.ttl' // typically chat.ttl\n this.membershipProperty = membershipProperty || ns.wf('leafObject')\n }\n\n /* Generate the leaf document (rdf object) from date\n * @returns: <NamedNode> - document\n */\n leafDocumentFromDate (date) {\n // debug.log('incoming date: ' + date)\n const isoDate = date.toISOString() // Like \"2018-05-07T17:42:46.576Z\"\n let path = isoDate.split('T')[0].replace(/-/g, '/') // Like \"2018/05/07\"\n path = this.root.dir().uri + path + '/' + this.leafFileName\n return store.sym(path)\n }\n\n /* Generate a date object from the leaf file name\n */\n dateFromLeafDocument (doc) {\n const head = this.rootFolder.uri.length\n const str = doc.uri.slice(head, head + 10).replace(/\\//g, '-')\n // let date = new Date(str + 'Z') // GMT - but fails in FF - invalid format :-(\n const date = new Date(str) // not explicitly UTC but is assumed so in spec\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse\n debug.log('Date for ' + doc + ':' + date.toISOString())\n return date\n }\n\n async loadPrevious (date, backwards) {\n const thisDateFolder = this\n async function previousPeriod (file, level) {\n function younger (x) {\n if (backwards ? x.uri >= file.uri : x.uri <= file.uri) return false // later than we want or same -- looking for different\n return true\n }\n function suitable (x) {\n const tail = x.uri\n .slice(0, -1)\n .split('/')\n .slice(-1)[0]\n if (!'0123456789'.includes(tail[0])) return false // not numeric\n return true\n }\n\n async function lastNonEmpty (siblings) {\n siblings = siblings.filter(suitable)\n siblings.sort() // chronological order\n if (!backwards) siblings.reverse()\n if (level !== 3) return siblings.pop() // only length chck final leverl\n while (siblings.length) {\n const folder = siblings.pop()\n const leafDocument = store.sym(folder.uri + thisDateFolder.leafFileName)\n await store.fetcher.load(leafDocument)\n // files can have seealso links. skip ones with no leafObjects with a date\n if (\n store.statementsMatching(null, ns.dct('created'), null, leafDocument)\n .length > 0\n ) {\n return folder\n }\n }\n return null\n }\n // debug.log(' previousPeriod level' + level + ' file ' + file)\n const parent = file.dir()\n await store.fetcher.load(parent)\n let siblings = store.each(parent, ns.ldp('contains'))\n siblings = siblings.filter(younger)\n const folder = await lastNonEmpty(siblings)\n if (folder) return folder\n\n if (level === 0) return null // 3:day, 2:month, 1: year 0: no\n\n const uncle = await previousPeriod(parent, level - 1)\n if (!uncle) return null // reached first ever\n await store.fetcher.load(uncle)\n const cousins = store.each(uncle, ns.ldp('contains'))\n const result = await lastNonEmpty(cousins)\n return result\n } // previousPeriod\n\n const folder = this.leafDocumentFromDate(date).dir()\n const found = await previousPeriod(folder, 3)\n if (found) {\n const doc = store.sym(found.uri + this.leafFileName)\n return this.dateFromLeafDocument(doc)\n }\n return null\n } // loadPrevious\n\n async firstLeaf (backwards) {\n // backwards -> last leafObject\n const folderStore = $rdf.graph()\n const folderFetcher = new $rdf.Fetcher(folderStore)\n async function earliestSubfolder (parent) {\n function suitable (x) {\n const tail = x.uri\n .slice(0, -1)\n .split('/')\n .slice(-1)[0]\n if (!'0123456789'.includes(tail[0])) return false // not numeric\n return true\n }\n debug.log(' parent ' + parent)\n delete folderFetcher.requested[parent.uri]\n // try {\n await folderFetcher.load(parent, { force: true }) // Force fetch as will have changed\n // }catch (err) {\n // }\n\n let kids = folderStore.each(parent, ns.ldp('contains'))\n kids = kids.filter(suitable)\n if (kids.length === 0) {\n throw new Error(' @@@ No children to parent2 ' + parent)\n }\n\n kids.sort()\n if (backwards) kids.reverse()\n return kids[0]\n }\n const y = await earliestSubfolder(this.root.dir())\n const month = await earliestSubfolder(y)\n const d = await earliestSubfolder(month)\n const leafDocument = $rdf.sym(d.uri + 'chat.ttl')\n await folderFetcher.load(leafDocument)\n const leafObjects = folderStore.each(\n this.root,\n this.membershipProperty,\n null,\n leafDocument\n )\n if (leafObjects.length === 0) {\n const msg =\n ' INCONSISTENCY -- no chat leafObject in file ' + leafDocument\n debug.trace(msg)\n throw new Error(msg)\n }\n const sortMe = leafObjects.map(leafObject => [\n folderStore.any(leafObject, ns.dct('created')),\n leafObject\n ])\n sortMe.sort()\n if (backwards) sortMe.reverse()\n debug.log(\n (backwards ? 'Latest' : 'Earliest') + ' leafObject is ' + sortMe[0][1]\n )\n return sortMe[0][1]\n } // firstleafObject\n} // class\n"],"file":"dateFolder.js"}
|