solid-ui 2.4.16-29d82bfe → 2.4.16-520c493e

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 (118) hide show
  1. package/README.md +2 -2
  2. package/lib/acl/acl.d.ts.map +1 -1
  3. package/lib/acl/acl.js +4 -2
  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/authn/authSession.d.ts +4 -0
  9. package/lib/authn/authSession.d.ts.map +1 -0
  10. package/lib/authn/authSession.js +25 -0
  11. package/lib/authn/authSession.js.map +1 -0
  12. package/lib/authn/authn.d.ts +193 -0
  13. package/lib/authn/authn.d.ts.map +1 -0
  14. package/lib/authn/authn.js +2238 -0
  15. package/lib/authn/authn.js.map +1 -0
  16. package/lib/{signup → authn}/config-default.js +0 -0
  17. package/lib/authn/config-default.js.map +1 -0
  18. package/lib/authn/index.d.ts +35 -0
  19. package/lib/authn/index.d.ts.map +1 -0
  20. package/lib/authn/index.js +44 -0
  21. package/lib/authn/index.js.map +1 -0
  22. package/lib/{signup → authn}/signup.js +0 -0
  23. package/lib/authn/signup.js.map +1 -0
  24. package/lib/authn/types.d.ts +25 -0
  25. package/lib/authn/types.d.ts.map +1 -0
  26. package/lib/authn/types.js +6 -0
  27. package/lib/authn/types.js.map +1 -0
  28. package/lib/chat/bookmarks.js +22 -20
  29. package/lib/chat/bookmarks.js.map +1 -1
  30. package/lib/chat/chatLogic.js +15 -13
  31. package/lib/chat/chatLogic.js.map +1 -1
  32. package/lib/chat/dateFolder.js +10 -10
  33. package/lib/chat/dateFolder.js.map +1 -1
  34. package/lib/chat/infinite.js +16 -14
  35. package/lib/chat/infinite.js.map +1 -1
  36. package/lib/chat/message.js +21 -17
  37. package/lib/chat/message.js.map +1 -1
  38. package/lib/chat/messageTools.js +21 -16
  39. package/lib/chat/messageTools.js.map +1 -1
  40. package/lib/chat/thread.js +24 -24
  41. package/lib/chat/thread.js.map +1 -1
  42. package/lib/create/create.d.ts.map +1 -1
  43. package/lib/create/create.js +9 -9
  44. package/lib/create/create.js.map +1 -1
  45. package/lib/folders.js +6 -2
  46. package/lib/folders.js.map +1 -1
  47. package/lib/footer/index.js +4 -4
  48. package/lib/footer/index.js.map +1 -1
  49. package/lib/header/index.d.ts.map +1 -1
  50. package/lib/header/index.js +8 -11
  51. package/lib/header/index.js.map +1 -1
  52. package/lib/index.d.ts +4 -4
  53. package/lib/index.d.ts.map +1 -1
  54. package/lib/index.js +34 -27
  55. package/lib/index.js.map +1 -1
  56. package/lib/logic.d.ts +3 -3
  57. package/lib/logic.d.ts.map +1 -1
  58. package/lib/logic.js +5 -3
  59. package/lib/logic.js.map +1 -1
  60. package/lib/matrix/matrix.js +2 -2
  61. package/lib/matrix/matrix.js.map +1 -1
  62. package/lib/messageArea.js +10 -9
  63. package/lib/messageArea.js.map +1 -1
  64. package/lib/pad.js +2 -2
  65. package/lib/pad.js.map +1 -1
  66. package/lib/participation.js +5 -4
  67. package/lib/participation.js.map +1 -1
  68. package/lib/preferences.js +8 -8
  69. package/lib/preferences.js.map +1 -1
  70. package/lib/table.js +3 -2
  71. package/lib/table.js.map +1 -1
  72. package/lib/tabs.js +3 -3
  73. package/lib/tabs.js.map +1 -1
  74. package/lib/utils/index.js +6 -6
  75. package/lib/utils/index.js.map +1 -1
  76. package/lib/utils/label.js +4 -4
  77. package/lib/utils/label.js.map +1 -1
  78. package/lib/versionInfo.js +2 -2
  79. package/lib/versionInfo.js.map +1 -1
  80. package/lib/webpack-bundle.js +84849 -68473
  81. package/lib/webpack-bundle.js.map +1 -1
  82. package/lib/widgets/buttons.js +16 -16
  83. package/lib/widgets/buttons.js.map +1 -1
  84. package/lib/widgets/forms/autocomplete/autocompleteBar.js +2 -2
  85. package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
  86. package/lib/widgets/forms/autocomplete/autocompleteField.js +2 -2
  87. package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
  88. package/lib/widgets/forms/autocomplete/autocompletePicker.js +2 -2
  89. package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
  90. package/lib/widgets/forms/autocomplete/language.d.ts.map +1 -1
  91. package/lib/widgets/forms/autocomplete/language.js +11 -6
  92. package/lib/widgets/forms/autocomplete/language.js.map +1 -1
  93. package/lib/widgets/forms/autocomplete/publicData.d.ts +1 -1
  94. package/lib/widgets/forms/autocomplete/publicData.d.ts.map +1 -1
  95. package/lib/widgets/forms/autocomplete/publicData.js +22 -14
  96. package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
  97. package/lib/widgets/forms/basic.d.ts +1 -1
  98. package/lib/widgets/forms/basic.d.ts.map +1 -1
  99. package/lib/widgets/forms/basic.js +2 -2
  100. package/lib/widgets/forms/basic.js.map +1 -1
  101. package/lib/widgets/forms/comment.d.ts +1 -1
  102. package/lib/widgets/forms/comment.js +3 -3
  103. package/lib/widgets/forms/comment.js.map +1 -1
  104. package/lib/widgets/forms/fieldFunction.js +2 -2
  105. package/lib/widgets/forms/fieldFunction.js.map +1 -1
  106. package/lib/widgets/forms/formStyle.js +3 -3
  107. package/lib/widgets/forms/formStyle.js.map +1 -1
  108. package/lib/widgets/forms.js +10 -10
  109. package/lib/widgets/forms.js.map +1 -1
  110. package/lib/widgets/peoplePicker.js +2 -2
  111. package/lib/widgets/peoplePicker.js.map +1 -1
  112. package/package.json +2 -2
  113. package/lib/login/login.d.ts +0 -130
  114. package/lib/login/login.d.ts.map +0 -1
  115. package/lib/login/login.js +0 -1412
  116. package/lib/login/login.js.map +0 -1
  117. package/lib/signup/config-default.js.map +0 -1
  118. package/lib/signup/signup.js.map +0 -1
package/lib/index.js CHANGED
@@ -56,13 +56,19 @@ Object.defineProperty(exports, "aclControl", {
56
56
  return _index.aclControl;
57
57
  }
58
58
  });
59
+ Object.defineProperty(exports, "authn", {
60
+ enumerable: true,
61
+ get: function get() {
62
+ return _index2.authn;
63
+ }
64
+ });
59
65
  Object.defineProperty(exports, "create", {
60
66
  enumerable: true,
61
67
  get: function get() {
62
- return _index2.create;
68
+ return _index3.create;
63
69
  }
64
70
  });
65
- exports.dom = exports.createTypes = void 0;
71
+ exports.dom = void 0;
66
72
  Object.defineProperty(exports, "icons", {
67
73
  enumerable: true,
68
74
  get: function get() {
@@ -87,17 +93,17 @@ Object.defineProperty(exports, "initHeader", {
87
93
  return _header.initHeader;
88
94
  }
89
95
  });
90
- exports.login = exports.log = exports.language = void 0;
96
+ exports.log = exports.language = void 0;
91
97
  Object.defineProperty(exports, "matrix", {
92
98
  enumerable: true,
93
99
  get: function get() {
94
- return _index3.matrix;
100
+ return _index4.matrix;
95
101
  }
96
102
  });
97
103
  Object.defineProperty(exports, "media", {
98
104
  enumerable: true,
99
105
  get: function get() {
100
- return _index4.media;
106
+ return _index5.media;
101
107
  }
102
108
  });
103
109
  Object.defineProperty(exports, "messageArea", {
@@ -106,7 +112,14 @@ Object.defineProperty(exports, "messageArea", {
106
112
  return _messageArea.messageArea;
107
113
  }
108
114
  });
109
- exports.style = exports.solidLogicLib = exports.rdf = exports.preferences = exports.participation = exports.pad = exports.ns = void 0;
115
+ exports.rdf = exports.preferences = exports.participation = exports.pad = exports.ns = void 0;
116
+ Object.defineProperty(exports, "solidLogicSingleton", {
117
+ enumerable: true,
118
+ get: function get() {
119
+ return _logic.solidLogicSingleton;
120
+ }
121
+ });
122
+ exports.style = exports.store = void 0;
110
123
  Object.defineProperty(exports, "table", {
111
124
  enumerable: true,
112
125
  get: function get() {
@@ -132,7 +145,9 @@ exports.ns = ns;
132
145
 
133
146
  var _index = require("./acl/index");
134
147
 
135
- var _index2 = require("./create/index");
148
+ var _index2 = require("./authn/index");
149
+
150
+ var _index3 = require("./create/index");
136
151
 
137
152
  var _iconBase = require("./iconBase");
138
153
 
@@ -144,9 +159,9 @@ var log = _interopRequireWildcard(require("./log"));
144
159
 
145
160
  exports.log = log;
146
161
 
147
- var _index3 = require("./matrix/index");
162
+ var _index4 = require("./matrix/index");
148
163
 
149
- var _index4 = require("./media/index");
164
+ var _index5 = require("./media/index");
150
165
 
151
166
  var _messageArea = require("./messageArea");
152
167
 
@@ -164,6 +179,8 @@ var preferences = _interopRequireWildcard(require("./preferences"));
164
179
 
165
180
  exports.preferences = preferences;
166
181
 
182
+ var _logic = require("./logic");
183
+
167
184
  var style = _interopRequireWildcard(require("./style"));
168
185
 
169
186
  exports.style = style;
@@ -178,10 +195,6 @@ var utils = _interopRequireWildcard(require("./utils"));
178
195
 
179
196
  exports.utils = utils;
180
197
 
181
- var login = _interopRequireWildcard(require("./login/login"));
182
-
183
- exports.login = login;
184
-
185
198
  var widgets = _interopRequireWildcard(require("./widgets/index"));
186
199
 
187
200
  exports.widgets = widgets;
@@ -192,14 +205,6 @@ var _header = require("./header");
192
205
 
193
206
  var _footer = require("./footer");
194
207
 
195
- var createTypes = _interopRequireWildcard(require("./create/types"));
196
-
197
- exports.createTypes = createTypes;
198
-
199
- var solidLogicLib = _interopRequireWildcard(require("solid-logic"));
200
-
201
- exports.solidLogicLib = solidLogicLib;
202
-
203
208
  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); }
204
209
 
205
210
  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; }
@@ -221,29 +226,31 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
221
226
  var dom = window ? window.document : null; // Idea that UI.dom can be adapted in non-browser environments
222
227
 
223
228
  exports.dom = dom;
229
+ var store = _logic.solidLogicSingleton.store;
230
+ exports.store = store;
224
231
 
225
232
  if (typeof window !== 'undefined') {
226
233
  ;
227
234
  window.UI = {
228
- solidLogicLib: solidLogicLib,
229
235
  ns: ns,
230
236
  rdf: rdf,
231
237
  acl: _index.acl,
232
238
  aclControl: _index.aclControl,
233
- create: _index2.create,
234
- createTypes: createTypes,
239
+ authn: _index2.authn,
240
+ create: _index3.create,
235
241
  dom: dom,
236
242
  icons: _iconBase.icons,
237
243
  language: language,
238
244
  log: log,
239
- login: login,
240
- matrix: _index3.matrix,
241
- media: _index4.media,
245
+ matrix: _index4.matrix,
246
+ media: _index5.media,
242
247
  messageArea: _messageArea.messageArea,
243
248
  infiniteMessageArea: _infinite.infiniteMessageArea,
244
249
  pad: pad,
245
250
  participation: participation,
246
251
  preferences: preferences,
252
+ solidLogicSingleton: _logic.solidLogicSingleton,
253
+ store: store,
247
254
  style: style,
248
255
  table: _table.renderTableViewPane,
249
256
  tabs: tabs,
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["dom","window","document","UI","solidLogicLib","ns","rdf","acl","aclControl","create","createTypes","icons","language","log","login","matrix","media","messageArea","infiniteMessageArea","pad","participation","preferences","style","table","tabs","utils","widgets","versionInfo","initHeader","initFooter"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;;;AAEA;;;;AACA;;AACA;;AAIA;;AACA;;;;AACA;;;;AACA;;AACA;;AAEA;;AAEA;;AAEA;;;;AAEA;;;;AAEA;;;;AAGA;;;;AAEA;;AACA;;;;AAEA;;;;AACA;;;;AACA;;;;AACA;;AACA;;AACA;;AACA;;;;AACA;;;;;;;;AArC8B;AAC9B;AAIA;AACA;AACA;AAMA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AAEA;AAGA;AAUA,IAAMA,GAAG,GAAGC,MAAM,GAAGA,MAAM,CAACC,QAAV,GAAqB,IAAvC,C,CAA4C;;;;AAE5C,IAAI,OAAOD,MAAP,KAAkB,WAAtB,EAAmC;AACjC;AAAOA,EAAAA,MAAN,CAAcE,EAAd,GAAmB;AAClBC,IAAAA,aAAa,EAAbA,aADkB;AAElBC,IAAAA,EAAE,EAAFA,EAFkB;AAGlBC,IAAAA,GAAG,EAAHA,GAHkB;AAIlBC,IAAAA,GAAG,EAAHA,UAJkB;AAKlBC,IAAAA,UAAU,EAAVA,iBALkB;AAMlBC,IAAAA,MAAM,EAANA,cANkB;AAOlBC,IAAAA,WAAW,EAAXA,WAPkB;AAQlBV,IAAAA,GAAG,EAAHA,GARkB;AASlBW,IAAAA,KAAK,EAALA,eATkB;AAUlBC,IAAAA,QAAQ,EAARA,QAVkB;AAWlBC,IAAAA,GAAG,EAAHA,GAXkB;AAYlBC,IAAAA,KAAK,EAALA,KAZkB;AAalBC,IAAAA,MAAM,EAANA,cAbkB;AAclBC,IAAAA,KAAK,EAALA,aAdkB;AAelBC,IAAAA,WAAW,EAAXA,wBAfkB;AAgBlBC,IAAAA,mBAAmB,EAAnBA,6BAhBkB;AAiBlBC,IAAAA,GAAG,EAAHA,GAjBkB;AAkBlBC,IAAAA,aAAa,EAAbA,aAlBkB;AAmBlBC,IAAAA,WAAW,EAAXA,WAnBkB;AAoBlBC,IAAAA,KAAK,EAALA,KApBkB;AAqBlBC,IAAAA,KAAK,EAALA,0BArBkB;AAsBlBC,IAAAA,IAAI,EAAJA,IAtBkB;AAuBlBC,IAAAA,KAAK,EAALA,KAvBkB;AAwBlBC,IAAAA,OAAO,EAAPA,OAxBkB;AAyBlBC,IAAAA,WAAW,EAAXA,uBAzBkB;AA0BlBC,IAAAA,UAAU,EAAVA,kBA1BkB;AA2BlBC,IAAAA,UAAU,EAAVA;AA3BkB,GAAnB,CADgC,CA6B/B;AACH","sourcesContent":["/*\nThe MIT License (MIT)\n\nCopyright (c) 2015-2016 Solid\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\nIf you would like to know more about the solid Solid project, please see\nhttps://github.com/solid/solid\n*/\n'use strict'\n/**\n * Provides a Solid client helper object (which exposes various static modules).\n * @module solidUi.js\n * @main solidUi.js\n */\n\n/**\n * @class SolidUi\n * @static\n */\n\n// REMOVE @ts-ignore as you migrate files to TypeScript\nimport * as rdf from 'rdflib' // pull in first avoid cross-refs\n// @ts-ignore\nimport * as ns from './ns'\nimport { acl, aclControl } from './acl/index'\nimport { create } from './create/index'\n// @ts-ignore\n// import * as debug from '../debug'\n// @ts-ignore\nimport { icons } from './iconBase'\nimport * as language from './widgets/forms/autocomplete/language'\nimport * as log from './log'\nimport { matrix } from './matrix/index'\nimport { media } from './media/index'\n// @ts-ignore\nimport { messageArea } from './messageArea'\n// @ts-ignore\nimport { infiniteMessageArea } from './chat/infinite'\n// @ts-ignore\nimport * as pad from './pad'\n// @ts-ignore\nimport * as participation from './participation'\n// @ts-ignore\nimport * as preferences from './preferences'\n// @ts-ignore\n// @ts-ignore\nimport * as style from './style'\n// @ts-ignore\nimport { renderTableViewPane as table } from './table'\nimport * as tabs from './tabs'\n// @ts-ignore\nimport * as utils from './utils'\nimport * as login from './login/login'\nimport * as widgets from './widgets/index'\nimport versionInfo from './versionInfo'\nimport { initHeader } from './header'\nimport { initFooter } from './footer'\nimport * as createTypes from './create/types'\nimport * as solidLogicLib from 'solid-logic'\n\nconst dom = window ? window.document : null // Idea that UI.dom can be adapted in non-browser environments\n\nif (typeof window !== 'undefined') {\n ;(<any>window).UI = {\n solidLogicLib,\n ns,\n rdf,\n acl,\n aclControl,\n create,\n createTypes,\n dom,\n icons,\n language,\n log,\n login,\n matrix,\n media,\n messageArea,\n infiniteMessageArea,\n pad,\n participation,\n preferences,\n style,\n table,\n tabs,\n utils,\n widgets,\n versionInfo,\n initHeader,\n initFooter\n } // Simpler access by non-node scripts\n}\n\nexport {\n solidLogicLib,\n ns,\n rdf,\n acl,\n aclControl,\n create,\n createTypes,\n dom,\n icons,\n language,\n log,\n login,\n matrix,\n media,\n messageArea,\n infiniteMessageArea,\n pad,\n participation,\n preferences,\n style,\n table,\n tabs,\n utils,\n widgets,\n versionInfo,\n initHeader,\n initFooter\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.ts"],"names":["dom","window","document","store","solidLogicSingleton","UI","ns","rdf","acl","aclControl","authn","create","icons","language","log","matrix","media","messageArea","infiniteMessageArea","pad","participation","preferences","style","table","tabs","utils","widgets","versionInfo","initHeader","initFooter"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;;;AAEA;;;;AACA;;AACA;;AACA;;AAIA;;AACA;;;;AACA;;;;AACA;;AACA;;AAEA;;AAEA;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;AAEA;;;;AAEA;;AACA;;;;AAEA;;;;AACA;;;;AACA;;AACA;;AACA;;;;;;AApC8B;AAC9B;AAKA;AACA;AACA;AAMA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAGA;AAOA,IAAMA,GAAG,GAAGC,MAAM,GAAGA,MAAM,CAACC,QAAV,GAAqB,IAAvC,C,CAA4C;;;AAC5C,IAAMC,KAAK,GAAGC,2BAAoBD,KAAlC;;;AAEA,IAAI,OAAOF,MAAP,KAAkB,WAAtB,EAAmC;AACjC;AAAOA,EAAAA,MAAN,CAAcI,EAAd,GAAmB;AAClBC,IAAAA,EAAE,EAAFA,EADkB;AAElBC,IAAAA,GAAG,EAAHA,GAFkB;AAGlBC,IAAAA,GAAG,EAAHA,UAHkB;AAIlBC,IAAAA,UAAU,EAAVA,iBAJkB;AAKlBC,IAAAA,KAAK,EAALA,aALkB;AAMlBC,IAAAA,MAAM,EAANA,cANkB;AAOlBX,IAAAA,GAAG,EAAHA,GAPkB;AAQlBY,IAAAA,KAAK,EAALA,eARkB;AASlBC,IAAAA,QAAQ,EAARA,QATkB;AAUlBC,IAAAA,GAAG,EAAHA,GAVkB;AAWlBC,IAAAA,MAAM,EAANA,cAXkB;AAYlBC,IAAAA,KAAK,EAALA,aAZkB;AAalBC,IAAAA,WAAW,EAAXA,wBAbkB;AAclBC,IAAAA,mBAAmB,EAAnBA,6BAdkB;AAelBC,IAAAA,GAAG,EAAHA,GAfkB;AAgBlBC,IAAAA,aAAa,EAAbA,aAhBkB;AAiBlBC,IAAAA,WAAW,EAAXA,WAjBkB;AAkBlBjB,IAAAA,mBAAmB,EAAnBA,0BAlBkB;AAmBlBD,IAAAA,KAAK,EAALA,KAnBkB;AAoBlBmB,IAAAA,KAAK,EAALA,KApBkB;AAqBlBC,IAAAA,KAAK,EAALA,0BArBkB;AAsBlBC,IAAAA,IAAI,EAAJA,IAtBkB;AAuBlBC,IAAAA,KAAK,EAALA,KAvBkB;AAwBlBC,IAAAA,OAAO,EAAPA,OAxBkB;AAyBlBC,IAAAA,WAAW,EAAXA,uBAzBkB;AA0BlBC,IAAAA,UAAU,EAAVA,kBA1BkB;AA2BlBC,IAAAA,UAAU,EAAVA;AA3BkB,GAAnB,CADgC,CA6B/B;AACH","sourcesContent":["/*\nThe MIT License (MIT)\n\nCopyright (c) 2015-2016 Solid\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\nIf you would like to know more about the solid Solid project, please see\nhttps://github.com/solid/solid\n*/\n'use strict'\n/**\n * Provides a Solid client helper object (which exposes various static modules).\n * @module solidUi.js\n * @main solidUi.js\n */\n\n/**\n * @class SolidUi\n * @static\n */\n\n// REMOVE @ts-ignore as you migrate files to TypeScript\nimport * as rdf from 'rdflib' // pull in first avoid cross-refs\n// @ts-ignore\nimport * as ns from './ns'\nimport { acl, aclControl } from './acl/index'\nimport { authn } from './authn/index'\nimport { create } from './create/index'\n// @ts-ignore\n// import * as debug from '../debug'\n// @ts-ignore\nimport { icons } from './iconBase'\nimport * as language from './widgets/forms/autocomplete/language'\nimport * as log from './log'\nimport { matrix } from './matrix/index'\nimport { media } from './media/index'\n// @ts-ignore\nimport { messageArea } from './messageArea'\n// @ts-ignore\nimport { infiniteMessageArea } from './chat/infinite'\n// @ts-ignore\nimport * as pad from './pad'\n// @ts-ignore\nimport * as participation from './participation'\n// @ts-ignore\nimport * as preferences from './preferences'\n// @ts-ignore\nimport { solidLogicSingleton } from './logic'\n// @ts-ignore\nimport * as style from './style'\n// @ts-ignore\nimport { renderTableViewPane as table } from './table'\nimport * as tabs from './tabs'\n// @ts-ignore\nimport * as utils from './utils'\nimport * as widgets from './widgets/index'\nimport versionInfo from './versionInfo'\nimport { initHeader } from './header'\nimport { initFooter } from './footer'\n\nconst dom = window ? window.document : null // Idea that UI.dom can be adapted in non-browser environments\nconst store = solidLogicSingleton.store\n\nif (typeof window !== 'undefined') {\n ;(<any>window).UI = {\n ns,\n rdf,\n acl,\n aclControl,\n authn,\n create,\n dom,\n icons,\n language,\n log,\n matrix,\n media,\n messageArea,\n infiniteMessageArea,\n pad,\n participation,\n preferences,\n solidLogicSingleton,\n store,\n style,\n table,\n tabs,\n utils,\n widgets,\n versionInfo,\n initHeader,\n initFooter\n } // Simpler access by non-node scripts\n}\n\nexport {\n ns,\n rdf,\n acl,\n aclControl,\n authn,\n create,\n dom,\n icons,\n language,\n log,\n matrix,\n media,\n messageArea,\n infiniteMessageArea,\n pad,\n participation,\n preferences,\n solidLogicSingleton,\n store,\n style,\n table,\n tabs,\n utils,\n widgets,\n versionInfo,\n initHeader,\n initFooter\n}\n"],"file":"index.js"}
package/lib/logic.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { SolidLogic } from 'solid-logic';
2
2
  export declare const solidLogicSingleton: SolidLogic;
3
- export declare const store: import("solid-logic").LiveStore;
4
- export declare const kb: import("solid-logic").LiveStore;
5
- export declare const authn: import("solid-logic").AuthnLogic;
3
+ export declare const store: import("rdflib").LiveStore;
4
+ export declare const kb: import("rdflib").LiveStore;
5
+ export declare const authn: import("solid-logic/lib/authn").AuthnLogic;
6
6
  export declare const chat: import("solid-logic/lib/chat/ChatLogic").ChatLogic;
7
7
  export declare const profile: import("solid-logic/lib/profile/ProfileLogic").ProfileLogic;
8
8
  //# sourceMappingURL=logic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logic.d.ts","sourceRoot":"","sources":["../src/logic.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAe,MAAM,aAAa,CAAA;AAYrD,eAAO,MAAM,mBAAmB,YAAoD,CAAA;AAGpF,eAAO,MAAM,KAAK,iCAA4B,CAAA;AAC9C,eAAO,MAAM,EAAE,iCAAQ,CAAA;AAEvB,eAAO,MAAM,KAAK,kCAA4B,CAAA;AAC9C,eAAO,MAAM,IAAI,oDAA2B,CAAA;AAI5C,eAAO,MAAM,OAAO,6DAA8B,CAAA"}
1
+ {"version":3,"file":"logic.d.ts","sourceRoot":"","sources":["../src/logic.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAYxC,eAAO,MAAM,mBAAmB,YAAoD,CAAA;AAGpF,eAAO,MAAM,KAAK,4BAA4B,CAAA;AAC9C,eAAO,MAAM,EAAE,4BAAQ,CAAA;AAEvB,eAAO,MAAM,KAAK,4CAA4B,CAAA;AAC9C,eAAO,MAAM,IAAI,oDAA2B,CAAA;AAI5C,eAAO,MAAM,OAAO,6DAA8B,CAAA"}
package/lib/logic.js CHANGED
@@ -15,6 +15,8 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
15
15
 
16
16
  var debug = _interopRequireWildcard(require("./debug"));
17
17
 
18
+ var _authSession = _interopRequireDefault(require("./authn/authSession"));
19
+
18
20
  var _solidLogic = require("solid-logic");
19
21
 
20
22
  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); }
@@ -36,12 +38,12 @@ function _thisFetch() {
36
38
  case 0:
37
39
  omitCreds = requestInit && requestInit.credentials && requestInit.credentials === 'omit';
38
40
 
39
- if (!(_solidLogic.authSession.info.webId && !omitCreds)) {
41
+ if (!(_authSession["default"].info.webId && !omitCreds)) {
40
42
  _context.next = 5;
41
43
  break;
42
44
  }
43
45
 
44
- return _context.abrupt("return", _solidLogic.authSession.fetch(url, requestInit));
46
+ return _context.abrupt("return", _authSession["default"].fetch(url, requestInit));
45
47
 
46
48
  case 5:
47
49
  return _context.abrupt("return", window.fetch(url, requestInit));
@@ -58,7 +60,7 @@ function _thisFetch() {
58
60
 
59
61
  var solidLogicSingleton = new _solidLogic.SolidLogic({
60
62
  fetch: thisFetch
61
- }, _solidLogic.authSession); // Make this directly accessible as it is what you need most of the time
63
+ }, _authSession["default"]); // Make this directly accessible as it is what you need most of the time
62
64
 
63
65
  exports.solidLogicSingleton = solidLogicSingleton;
64
66
  var store = solidLogicSingleton.store;
package/lib/logic.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/logic.ts"],"names":["thisFetch","url","requestInit","omitCreds","credentials","authSession","info","webId","fetch","window","solidLogicSingleton","SolidLogic","store","kb","authn","chat","profile","debug","log"],"mappings":";;;;;;;;;;;;;;;AAGA;;AACA;;;;;;AAJA;AACA;SAKeA,S;;;;;6FAAf,iBAA0BC,GAA1B,EAA+BC,WAA/B;AAAA;AAAA;AAAA;AAAA;AAAA;AACQC,YAAAA,SADR,GACoBD,WAAW,IAAIA,WAAW,CAACE,WAA3B,IAA0CF,WAAW,CAACE,WAAZ,KAA4B,MAD1F;;AAAA,kBAEMC,wBAAYC,IAAZ,CAAiBC,KAAjB,IAA0B,CAACJ,SAFjC;AAAA;AAAA;AAAA;;AAAA,6CAIWE,wBAAYG,KAAZ,CAAkBP,GAAlB,EAAuBC,WAAvB,CAJX;;AAAA;AAAA,6CAMWO,MAAM,CAACD,KAAP,CAAaP,GAAb,EAAkBC,WAAlB,CANX;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;AAUO,IAAMQ,mBAAmB,GAAG,IAAIC,sBAAJ,CAAe;AAAEH,EAAAA,KAAK,EAAER;AAAT,CAAf,EAAqCK,uBAArC,CAA5B,C,CAEP;;;AACO,IAAMO,KAAK,GAAGF,mBAAmB,CAACE,KAAlC;;AACA,IAAMC,EAAE,GAAGD,KAAX,C,CAAiB;;;AAEjB,IAAME,KAAK,GAAGJ,mBAAmB,CAACI,KAAlC;;AACA,IAAMC,IAAI,GAAGL,mBAAmB,CAACK,IAAjC,C,CAEP;;;AAEO,IAAMC,OAAO,GAAGN,mBAAmB,CAACM,OAApC;;AAEPC,KAAK,CAACC,GAAN,CAAU,+BAAV,E,CAEA","sourcesContent":["// This module of solid-ui has a main quadstore for the app to use\n//\n\nimport * as debug from './debug'\nimport { SolidLogic, authSession } from 'solid-logic'\n\nasync function thisFetch (url, requestInit) {\n const omitCreds = requestInit && requestInit.credentials && requestInit.credentials === 'omit'\n if (authSession.info.webId && !omitCreds) { // see https://github.com/solid/solidos/issues/114\n // In fact ftech should respect crentials omit itself\n return authSession.fetch(url, requestInit)\n } else {\n return window.fetch(url, requestInit)\n }\n}\n\nexport const solidLogicSingleton = new SolidLogic({ fetch: thisFetch }, authSession)\n\n// Make this directly accessible as it is what you need most of the time\nexport const store = solidLogicSingleton.store\nexport const kb = store // Very commonly used synonym of store - Knowledge Base\n\nexport const authn = solidLogicSingleton.authn\nexport const chat = solidLogicSingleton.chat\n\n// export const language = solidLogicSingleton.language // Does not work\n\nexport const profile = solidLogicSingleton.profile\n\ndebug.log('Unique quadstore initialized.')\n\n// ends\n"],"file":"logic.js"}
1
+ {"version":3,"sources":["../src/logic.ts"],"names":["thisFetch","url","requestInit","omitCreds","credentials","authSession","info","webId","fetch","window","solidLogicSingleton","SolidLogic","store","kb","authn","chat","profile","debug","log"],"mappings":";;;;;;;;;;;;;;;AAGA;;AACA;;AACA;;;;;;AALA;AACA;SAMeA,S;;;;;6FAAf,iBAA0BC,GAA1B,EAA+BC,WAA/B;AAAA;AAAA;AAAA;AAAA;AAAA;AACQC,YAAAA,SADR,GACoBD,WAAW,IAAIA,WAAW,CAACE,WAA3B,IAA0CF,WAAW,CAACE,WAAZ,KAA4B,MAD1F;;AAAA,kBAEMC,wBAAYC,IAAZ,CAAiBC,KAAjB,IAA0B,CAACJ,SAFjC;AAAA;AAAA;AAAA;;AAAA,6CAIWE,wBAAYG,KAAZ,CAAkBP,GAAlB,EAAuBC,WAAvB,CAJX;;AAAA;AAAA,6CAMWO,MAAM,CAACD,KAAP,CAAaP,GAAb,EAAkBC,WAAlB,CANX;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;AAUO,IAAMQ,mBAAmB,GAAG,IAAIC,sBAAJ,CAAe;AAAEH,EAAAA,KAAK,EAAER;AAAT,CAAf,EAAqCK,uBAArC,CAA5B,C,CAEP;;;AACO,IAAMO,KAAK,GAAGF,mBAAmB,CAACE,KAAlC;;AACA,IAAMC,EAAE,GAAGD,KAAX,C,CAAiB;;;AAEjB,IAAME,KAAK,GAAGJ,mBAAmB,CAACI,KAAlC;;AACA,IAAMC,IAAI,GAAGL,mBAAmB,CAACK,IAAjC,C,CAEP;;;AAEO,IAAMC,OAAO,GAAGN,mBAAmB,CAACM,OAApC;;AAEPC,KAAK,CAACC,GAAN,CAAU,+BAAV,E,CAEA","sourcesContent":["// This module of solid-ui has a main quadstore for the app to use\n//\n\nimport * as debug from './debug'\nimport authSession from './authn/authSession'\nimport { SolidLogic } from 'solid-logic'\n\nasync function thisFetch (url, requestInit) {\n const omitCreds = requestInit && requestInit.credentials && requestInit.credentials === 'omit'\n if (authSession.info.webId && !omitCreds) { // see https://github.com/solid/solidos/issues/114\n // In fact ftech should respect crentials omit itself\n return authSession.fetch(url, requestInit)\n } else {\n return window.fetch(url, requestInit)\n }\n}\n\nexport const solidLogicSingleton = new SolidLogic({ fetch: thisFetch }, authSession)\n\n// Make this directly accessible as it is what you need most of the time\nexport const store = solidLogicSingleton.store\nexport const kb = store // Very commonly used synonym of store - Knowledge Base\n\nexport const authn = solidLogicSingleton.authn\nexport const chat = solidLogicSingleton.chat\n\n// export const language = solidLogicSingleton.language // Does not work\n\nexport const profile = solidLogicSingleton.profile\n\ndebug.log('Unique quadstore initialized.')\n\n// ends\n"],"file":"logic.js"}
@@ -11,7 +11,7 @@ var utils = _interopRequireWildcard(require("../utils"));
11
11
 
12
12
  var $rdf = _interopRequireWildcard(require("rdflib"));
13
13
 
14
- var _solidLogic = require("solid-logic");
14
+ var _logic = require("../logic");
15
15
 
16
16
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
17
 
@@ -37,7 +37,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
37
37
  // Header row at top (x axis) and left (y-axis) generated automatically.
38
38
  // Extra rows and columns are inserted as needed to hold new data points
39
39
  // matrix.refresh() will re-run the query and adjust the display
40
- var kb = _solidLogic.solidLogicSingleton.store;
40
+ var kb = _logic.solidLogicSingleton.store;
41
41
 
42
42
  function matrixForQuery(dom, query, vx, vy, vvalue, options, whenDone) {
43
43
  // @@ TODO Remove need to cast to any
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/matrix/matrix.ts"],"names":["kb","solidLogicSingleton","store","matrixForQuery","dom","query","vx","vy","vvalue","options","whenDone","matrix","createElement","header","corner","appendChild","setAttribute","lastHeader","columns","rows","setCell","cell","x","y","value","firstChild","removeChild","style","textAlign","cellFunction","textContent","utils","label","old","rowFor","y1","toNT","tr","termType","fetcher","nowOrWhenFetched","uri","split","undefined","ok","_body","_response","i","length","$rdf","fromNT","dataValueNT","ele","nextSibling","yDecreasing","insertBefore","columnNumberFor","x1","xNT","col","xDecreasing","slice","concat","push","row","td","t","j","markOldCells","children","clearOldCells","colsUsed","rowsUsed","set_y","k","set_x","newcolumns","refresh","addCellFromBindings","bindings","toString","colNo"],"mappings":"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","sourcesContent":["// Build a 2D matrix of values\n//\n// dom AKA document\n// query a Query object of rdflib.js with a valid pattern\n// vx A variable object, the one to be used for the X variable (horiz)\n// vy A variable object, the one to be used for the Y variable (vertical)\n// vvalue A variable object, the one to be used for the cell value\n// returns A DOM element with the matrix in it, which has a .refresh() function.\n//\n// Options:\n// cellFunction(td, x, y, value) fill the TD element of a single cell\n// xDecreasing set true for x axis to be in decreasing order.\n// yDecreasing set true for y axis to be in decreasing order.\n// set_x array of X values to be define initial rows (order irrelevant)\n// set_y array of Y values to be define initial columns\n//\n// Features:\n// Header row at top (x axis) and left (y-axis) generated automatically.\n// Extra rows and columns are inserted as needed to hold new data points\n// matrix.refresh() will re-run the query and adjust the display\n\nimport * as utils from '../utils'\nimport * as $rdf from 'rdflib'\nimport { MatrixOptions } from './types'\nimport { solidLogicSingleton } from 'solid-logic'\n\nconst kb = solidLogicSingleton.store\n\nexport function matrixForQuery (\n dom: HTMLDocument,\n query: $rdf.Query,\n vx: $rdf.Variable,\n vy: $rdf.Variable,\n vvalue: $rdf.Variable,\n options: MatrixOptions,\n whenDone: () => void\n) {\n // @@ TODO Remove need to cast to any\n const matrix: any = dom.createElement('table')\n const header = dom.createElement('tr')\n const corner = header.appendChild(dom.createElement('td'))\n corner.setAttribute('class', 'MatrixCorner')\n matrix.appendChild(header) // just one for now\n matrix.lastHeader = header // Element before data\n let columns: any[] = [] // Vector\n const rows: any[] = [] // Associative array\n\n const setCell = function (cell, x, y, value) {\n while (cell.firstChild) {\n // Empty any previous\n cell.removeChild(cell.firstChild)\n }\n cell.setAttribute('style', '')\n cell.style.textAlign = 'center'\n\n if (options.cellFunction) {\n options.cellFunction(cell, x, y, value)\n } else {\n cell.textContent = utils.label(value)\n cell.setAttribute('style', 'padding: 0.3em')\n }\n delete cell.old\n }\n\n const rowFor = function (y1) {\n const y = y1.toNT()\n if (rows[y]) return rows[y]\n // @@ TODO Remove need for casting to any\n const tr: any = dom.createElement('tr')\n const header = tr.appendChild(dom.createElement('td'))\n header.setAttribute('style', 'padding: 0.3em;')\n header.textContent = utils.label(y1) // first approximation\n if (y1.termType === 'NamedNode') {\n kb.fetcher!.nowOrWhenFetched(y1.uri.split('#')[0], undefined, function (\n ok,\n _body,\n _response\n ) {\n if (ok) header.textContent = utils.label(y1)\n })\n }\n for (let i = 0; i < columns.length; i++) {\n setCell(\n tr.appendChild(dom.createElement('td')),\n $rdf.fromNT(columns[i]),\n y1,\n null\n )\n }\n tr.dataValueNT = y\n rows[y] = tr\n for (let ele = matrix.lastHeader.nextSibling; ele; ele = ele.nextSibling) {\n // skip header\n if (\n (y > ele.dataValueNT && options && options.yDecreasing) ||\n (y < ele.dataValueNT && !(options && options.yDecreasing))\n ) {\n return matrix.insertBefore(tr, ele) // return the tr\n }\n }\n return matrix.appendChild(tr) // return the tr\n }\n\n const columnNumberFor = function (x1): number {\n const xNT: any = x1.toNT() // xNT is a NT string\n let col: any = null\n // These are data columns (not headings)\n for (let i = 0; i < columns.length; i++) {\n if (columns[i] === xNT) {\n return i\n }\n\n if (\n (xNT > columns[i] && options.xDecreasing) ||\n (xNT < columns[i] && !options.xDecreasing)\n ) {\n columns = columns\n .slice(0, i)\n .concat([xNT])\n .concat(columns.slice(i))\n col = i\n break\n }\n }\n\n if (col === null) {\n col = columns.length\n columns.push(xNT)\n }\n\n // col is the number of the new column, starting from 0\n for (let row = matrix.firstChild; row; row = row.nextSibling) {\n // For every row header or not\n const y = row.dataValueNT\n const td = dom.createElement('td') // Add a new cell\n td.style.textAlign = 'center'\n if (row === matrix.firstChild) {\n td.textContent = utils.label(x1)\n } else {\n setCell(td, x1, $rdf.fromNT(y), null)\n }\n if (col === columns.length - 1) {\n row.appendChild(td)\n } else {\n let t = row.firstChild\n for (let j = 0; j < col + 1; j++) {\n // Skip header col too\n t = t.nextSibling\n }\n row.insertBefore(td, t)\n }\n }\n return col\n }\n\n const markOldCells = function () {\n for (let i = 1; i < matrix.children.length; i++) {\n const row = matrix.children[i]\n for (let j = 1; j < row.children.length; j++) {\n row.children[j].old = true\n }\n }\n }\n\n const clearOldCells = function () {\n let row, cell\n const colsUsed: any[] = []\n const rowsUsed: any[] = []\n\n if (options.set_y) {\n // Knows y values create rows\n for (let k = 0; k < options.set_y.length; k++) {\n rowsUsed[options.set_y[k]] = true\n }\n }\n if (options.set_x) {\n for (let k = 0; k < options.set_x.length; k++) {\n colsUsed[columnNumberFor(options.set_x[k]) + 1] = true\n }\n }\n\n for (let i = 1; i < matrix.children.length; i++) {\n row = matrix.children[i]\n for (let j = 1; j < row.children.length; j++) {\n cell = row.children[j]\n if (cell.old) {\n const y = $rdf.fromNT(row.dataValueNT)\n const x = $rdf.fromNT(columns[j - 1])\n setCell(cell, x, y, null)\n } else {\n rowsUsed[row.dataValueNT] = true\n colsUsed[j] = true\n }\n }\n }\n\n for (let i = 0; i < matrix.children.length; i++) {\n row = matrix.children[i]\n if (i > 0 && !rowsUsed[row.dataValueNT]) {\n delete rows[row.dataValueNT]\n matrix.removeChild(row)\n } else {\n for (let j = row.children.length - 1; j > 0; j--) {\n // backwards\n const cell = row.children[j]\n if (!colsUsed[j]) {\n row.removeChild(cell)\n }\n }\n }\n }\n const newcolumns: any[] = []\n for (let j = 0; j < columns.length; j++) {\n if (colsUsed[j + 1]) {\n newcolumns.push(columns[j])\n }\n }\n columns = newcolumns\n }\n\n matrix.refresh = function () {\n markOldCells()\n kb.query(query, addCellFromBindings, undefined, clearOldCells)\n }\n\n const addCellFromBindings = function (bindings) {\n const x = bindings[vx.toString()]\n const y = bindings[vy.toString()]\n const value = bindings[(vvalue.toString())]\n const row = rowFor(y)\n const colNo = columnNumberFor(x)\n const cell = row.children[colNo + 1] // number of Y axis headings\n setCell(cell, x, y, value)\n }\n\n if (options.set_y) {\n // Knows y values create rows\n for (let k = 0; k < options.set_y.length; k++) {\n rowFor(options.set_y[k])\n }\n }\n if (options.set_x) {\n for (let k = 0; k < options.set_x.length; k++) {\n columnNumberFor(options.set_x[k])\n }\n }\n\n kb.query(query, addCellFromBindings, undefined, whenDone) // Populate the matrix\n return matrix\n}\n"],"file":"matrix.js"}
1
+ {"version":3,"sources":["../../src/matrix/matrix.ts"],"names":["kb","solidLogicSingleton","store","matrixForQuery","dom","query","vx","vy","vvalue","options","whenDone","matrix","createElement","header","corner","appendChild","setAttribute","lastHeader","columns","rows","setCell","cell","x","y","value","firstChild","removeChild","style","textAlign","cellFunction","textContent","utils","label","old","rowFor","y1","toNT","tr","termType","fetcher","nowOrWhenFetched","uri","split","undefined","ok","_body","_response","i","length","$rdf","fromNT","dataValueNT","ele","nextSibling","yDecreasing","insertBefore","columnNumberFor","x1","xNT","col","xDecreasing","slice","concat","push","row","td","t","j","markOldCells","children","clearOldCells","colsUsed","rowsUsed","set_y","k","set_x","newcolumns","refresh","addCellFromBindings","bindings","toString","colNo"],"mappings":"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","sourcesContent":["// Build a 2D matrix of values\n//\n// dom AKA document\n// query a Query object of rdflib.js with a valid pattern\n// vx A variable object, the one to be used for the X variable (horiz)\n// vy A variable object, the one to be used for the Y variable (vertical)\n// vvalue A variable object, the one to be used for the cell value\n// returns A DOM element with the matrix in it, which has a .refresh() function.\n//\n// Options:\n// cellFunction(td, x, y, value) fill the TD element of a single cell\n// xDecreasing set true for x axis to be in decreasing order.\n// yDecreasing set true for y axis to be in decreasing order.\n// set_x array of X values to be define initial rows (order irrelevant)\n// set_y array of Y values to be define initial columns\n//\n// Features:\n// Header row at top (x axis) and left (y-axis) generated automatically.\n// Extra rows and columns are inserted as needed to hold new data points\n// matrix.refresh() will re-run the query and adjust the display\n\nimport * as utils from '../utils'\nimport * as $rdf from 'rdflib'\nimport { MatrixOptions } from './types'\nimport { solidLogicSingleton } from '../logic'\n\nconst kb = solidLogicSingleton.store\n\nexport function matrixForQuery (\n dom: HTMLDocument,\n query: $rdf.Query,\n vx: $rdf.Variable,\n vy: $rdf.Variable,\n vvalue: $rdf.Variable,\n options: MatrixOptions,\n whenDone: () => void\n) {\n // @@ TODO Remove need to cast to any\n const matrix: any = dom.createElement('table')\n const header = dom.createElement('tr')\n const corner = header.appendChild(dom.createElement('td'))\n corner.setAttribute('class', 'MatrixCorner')\n matrix.appendChild(header) // just one for now\n matrix.lastHeader = header // Element before data\n let columns: any[] = [] // Vector\n const rows: any[] = [] // Associative array\n\n const setCell = function (cell, x, y, value) {\n while (cell.firstChild) {\n // Empty any previous\n cell.removeChild(cell.firstChild)\n }\n cell.setAttribute('style', '')\n cell.style.textAlign = 'center'\n\n if (options.cellFunction) {\n options.cellFunction(cell, x, y, value)\n } else {\n cell.textContent = utils.label(value)\n cell.setAttribute('style', 'padding: 0.3em')\n }\n delete cell.old\n }\n\n const rowFor = function (y1) {\n const y = y1.toNT()\n if (rows[y]) return rows[y]\n // @@ TODO Remove need for casting to any\n const tr: any = dom.createElement('tr')\n const header = tr.appendChild(dom.createElement('td'))\n header.setAttribute('style', 'padding: 0.3em;')\n header.textContent = utils.label(y1) // first approximation\n if (y1.termType === 'NamedNode') {\n kb.fetcher!.nowOrWhenFetched(y1.uri.split('#')[0], undefined, function (\n ok,\n _body,\n _response\n ) {\n if (ok) header.textContent = utils.label(y1)\n })\n }\n for (let i = 0; i < columns.length; i++) {\n setCell(\n tr.appendChild(dom.createElement('td')),\n $rdf.fromNT(columns[i]),\n y1,\n null\n )\n }\n tr.dataValueNT = y\n rows[y] = tr\n for (let ele = matrix.lastHeader.nextSibling; ele; ele = ele.nextSibling) {\n // skip header\n if (\n (y > ele.dataValueNT && options && options.yDecreasing) ||\n (y < ele.dataValueNT && !(options && options.yDecreasing))\n ) {\n return matrix.insertBefore(tr, ele) // return the tr\n }\n }\n return matrix.appendChild(tr) // return the tr\n }\n\n const columnNumberFor = function (x1): number {\n const xNT: any = x1.toNT() // xNT is a NT string\n let col: any = null\n // These are data columns (not headings)\n for (let i = 0; i < columns.length; i++) {\n if (columns[i] === xNT) {\n return i\n }\n\n if (\n (xNT > columns[i] && options.xDecreasing) ||\n (xNT < columns[i] && !options.xDecreasing)\n ) {\n columns = columns\n .slice(0, i)\n .concat([xNT])\n .concat(columns.slice(i))\n col = i\n break\n }\n }\n\n if (col === null) {\n col = columns.length\n columns.push(xNT)\n }\n\n // col is the number of the new column, starting from 0\n for (let row = matrix.firstChild; row; row = row.nextSibling) {\n // For every row header or not\n const y = row.dataValueNT\n const td = dom.createElement('td') // Add a new cell\n td.style.textAlign = 'center'\n if (row === matrix.firstChild) {\n td.textContent = utils.label(x1)\n } else {\n setCell(td, x1, $rdf.fromNT(y), null)\n }\n if (col === columns.length - 1) {\n row.appendChild(td)\n } else {\n let t = row.firstChild\n for (let j = 0; j < col + 1; j++) {\n // Skip header col too\n t = t.nextSibling\n }\n row.insertBefore(td, t)\n }\n }\n return col\n }\n\n const markOldCells = function () {\n for (let i = 1; i < matrix.children.length; i++) {\n const row = matrix.children[i]\n for (let j = 1; j < row.children.length; j++) {\n row.children[j].old = true\n }\n }\n }\n\n const clearOldCells = function () {\n let row, cell\n const colsUsed: any[] = []\n const rowsUsed: any[] = []\n\n if (options.set_y) {\n // Knows y values create rows\n for (let k = 0; k < options.set_y.length; k++) {\n rowsUsed[options.set_y[k]] = true\n }\n }\n if (options.set_x) {\n for (let k = 0; k < options.set_x.length; k++) {\n colsUsed[columnNumberFor(options.set_x[k]) + 1] = true\n }\n }\n\n for (let i = 1; i < matrix.children.length; i++) {\n row = matrix.children[i]\n for (let j = 1; j < row.children.length; j++) {\n cell = row.children[j]\n if (cell.old) {\n const y = $rdf.fromNT(row.dataValueNT)\n const x = $rdf.fromNT(columns[j - 1])\n setCell(cell, x, y, null)\n } else {\n rowsUsed[row.dataValueNT] = true\n colsUsed[j] = true\n }\n }\n }\n\n for (let i = 0; i < matrix.children.length; i++) {\n row = matrix.children[i]\n if (i > 0 && !rowsUsed[row.dataValueNT]) {\n delete rows[row.dataValueNT]\n matrix.removeChild(row)\n } else {\n for (let j = row.children.length - 1; j > 0; j--) {\n // backwards\n const cell = row.children[j]\n if (!colsUsed[j]) {\n row.removeChild(cell)\n }\n }\n }\n }\n const newcolumns: any[] = []\n for (let j = 0; j < columns.length; j++) {\n if (colsUsed[j + 1]) {\n newcolumns.push(columns[j])\n }\n }\n columns = newcolumns\n }\n\n matrix.refresh = function () {\n markOldCells()\n kb.query(query, addCellFromBindings, undefined, clearOldCells)\n }\n\n const addCellFromBindings = function (bindings) {\n const x = bindings[vx.toString()]\n const y = bindings[vy.toString()]\n const value = bindings[(vvalue.toString())]\n const row = rowFor(y)\n const colNo = columnNumberFor(x)\n const cell = row.children[colNo + 1] // number of Y axis headings\n setCell(cell, x, y, value)\n }\n\n if (options.set_y) {\n // Knows y values create rows\n for (let k = 0; k < options.set_y.length; k++) {\n rowFor(options.set_y[k])\n }\n }\n if (options.set_x) {\n for (let k = 0; k < options.set_x.length; k++) {\n columnNumberFor(options.set_x[k])\n }\n }\n\n kb.query(query, addCellFromBindings, undefined, whenDone) // Populate the matrix\n return matrix\n}\n"],"file":"matrix.js"}
@@ -7,11 +7,11 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.messageArea = messageArea;
9
9
 
10
- var _iconBase = require("./iconBase");
10
+ var _index = require("./authn/index");
11
11
 
12
- var login = _interopRequireWildcard(require("./login/login"));
12
+ var _iconBase = require("./iconBase");
13
13
 
14
- var _solidLogic = require("solid-logic");
14
+ var _logic = require("./logic");
15
15
 
16
16
  var ns = _interopRequireWildcard(require("./ns"));
17
17
 
@@ -31,15 +31,17 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
31
31
  //
32
32
  // pull in first avoid cross-refs
33
33
  var UI = {
34
+ authn: _index.authn,
34
35
  icons: _iconBase.icons,
35
36
  ns: ns,
36
37
  rdf: rdf,
38
+ store: _logic.store,
37
39
  style: style,
38
40
  widgets: widgets
39
41
  };
40
42
 
41
43
  function messageArea(dom, kb, subject, messageStore, options) {
42
- kb = kb || _solidLogic.solidLogicSingleton.store;
44
+ kb = kb || UI.store;
43
45
  messageStore = messageStore.doc(); // No hash
44
46
 
45
47
  var ns = UI.ns;
@@ -54,7 +56,7 @@ function messageArea(dom, kb, subject, messageStore, options) {
54
56
  var messageTable; // Shared by initial build and addMessageFromBindings
55
57
 
56
58
  var me;
57
- var updater = _solidLogic.solidLogicSingleton.store.updater;
59
+ var updater = UI.store.updater;
58
60
 
59
61
  var anchor = function anchor(text, term) {
60
62
  // If there is no link return an element anyway
@@ -173,7 +175,7 @@ function messageArea(dom, kb, subject, messageStore, options) {
173
175
  div: middle,
174
176
  dom: dom
175
177
  };
176
- login.loggedInContext(context).then(function (context) {
178
+ UI.authn.logIn(context).then(function (context) {
177
179
  me = context.me;
178
180
  turnOnInput();
179
181
  });
@@ -181,8 +183,7 @@ function messageArea(dom, kb, subject, messageStore, options) {
181
183
  };
182
184
 
183
185
  function nick(person) {
184
- var s = _solidLogic.solidLogicSingleton.store.any(person, UI.ns.foaf('nick'));
185
-
186
+ var s = UI.store.any(person, UI.ns.foaf('nick'));
186
187
  if (s) return '' + s.value;
187
188
  return '' + utils.label(person);
188
189
  }
@@ -191,7 +192,7 @@ function messageArea(dom, kb, subject, messageStore, options) {
191
192
  var nickAnchor = td1.appendChild(anchor(nick(creator), creator));
192
193
 
193
194
  if (creator.uri) {
194
- _solidLogic.solidLogicSingleton.store.fetcher.nowOrWhenFetched(creator.doc(), undefined, function (_ok, _body) {
195
+ UI.store.fetcher.nowOrWhenFetched(creator.doc(), undefined, function (_ok, _body) {
195
196
  nickAnchor.textContent = nick(creator);
196
197
  });
197
198
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/messageArea.js"],"names":["UI","icons","ns","rdf","style","widgets","messageArea","dom","kb","subject","messageStore","options","solidLogicSingleton","store","doc","WF","Namespace","DCT","newestFirst","messageBodyStyle","div","createElement","messageTable","me","updater","anchor","text","term","a","uri","setAttribute","addEventListener","openHrefInOutlineMode","textContent","mention","message","pre","appendChild","createTextNode","announce","log","warn","error","newMessageForm","form","lhs","middle","rhs","AJAR_date","sendMessage","field","disabled","sts","now","Date","timestamp","getTime","dateStamp","sym","push","Statement","wf","sioc","literal","value","foaf","sendComplete","success","body","errorMessageBlock","bindings","renderMessage","update","sendButton","turnOnInput","creatorAndDate","innerHTML","rows","e","keyCode","altKey","button","iconBase","buttonStyle","context","login","loggedInContext","then","nick","person","s","any","utils","label","td1","creator","date","nickAnchor","fetcher","nowOrWhenFetched","undefined","_ok","_body","syncMessages","about","displayed","ele","ele2","firstChild","nextSibling","AJAR_subject","messages","each","stored","forEach","m","addMessage","removeChild","deleteMessage","deletions","statementsMatching","concat","ok","fresh","content","dateString","tr","done","insertBefore","shortDate","td2","td3","delButton","_event","cancelButton","sureButton","query","Query","v","vs","x","vars","variable","pat","add","msg","dct","doneQuery","refresh"],"mappings":"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","sourcesContent":["// Common code for a discussion are a of messages about something\n//\n\nimport { icons } from './iconBase'\nimport * as login from './login/login'\nimport { solidLogicSingleton } from 'solid-logic'\nimport * as ns from './ns'\nimport * as rdf from 'rdflib' // pull in first avoid cross-refs\nimport * as style from './style'\nimport * as utils from './utils'\nimport * as widgets from './widgets'\n\nconst UI = { icons, ns, rdf, style, widgets }\n\nexport function messageArea (dom, kb, subject, messageStore, options) {\n kb = kb || solidLogicSingleton.store\n messageStore = messageStore.doc() // No hash\n const ns = UI.ns\n const WF = rdf.Namespace('http://www.w3.org/2005/01/wf/flow#')\n const DCT = rdf.Namespace('http://purl.org/dc/terms/')\n\n options = options || {}\n\n const newestFirst = !!options.newestFirst\n\n const messageBodyStyle =\n '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;'\n // 'font-size: 100%; margin: 0.1em 1em 0.1em 1em; background-color: white; white-space: pre-wrap; padding: 0.1em;'\n\n const div = dom.createElement('div')\n // eslint-disable-next-line prefer-const\n let messageTable // Shared by initial build and addMessageFromBindings\n\n let me\n\n const updater = solidLogicSingleton.store.updater\n\n const anchor = function (text, term) {\n // If there is no link return an element anyway\n const a = dom.createElement('a')\n if (term && term.uri) {\n a.setAttribute('href', term.uri)\n a.addEventListener('click', UI.widgets.openHrefInOutlineMode, true)\n a.setAttribute('style', 'color: #3B5998; text-decoration: none; ') // font-weight: bold\n }\n a.textContent = text\n return a\n }\n\n const mention = function mention (message, style) {\n const pre = dom.createElement('pre')\n pre.setAttribute('style', style || 'color: grey')\n div.appendChild(pre)\n pre.appendChild(dom.createTextNode(message))\n return pre\n }\n\n const announce = {\n log: function (message) {\n mention(message, 'color: #111;')\n },\n warn: function (message) {\n mention(message, 'color: #880;')\n },\n error: function (message) {\n mention(message, 'color: #800;')\n }\n }\n\n // Form for a new message\n //\n const newMessageForm = function () {\n const form = dom.createElement('tr')\n const lhs = dom.createElement('td')\n const middle = dom.createElement('td')\n const rhs = dom.createElement('td')\n form.appendChild(lhs)\n form.appendChild(middle)\n form.appendChild(rhs)\n form.AJAR_date = '9999-01-01T00:00:00Z' // ISO format for field sort\n\n const sendMessage = function () {\n // titlefield.setAttribute('class','pendingedit')\n // titlefield.disabled = true\n field.setAttribute('class', 'pendingedit')\n field.disabled = true\n const sts = []\n const now = new Date()\n const timestamp = '' + now.getTime()\n const dateStamp = rdf.term(now)\n // http://www.w3schools.com/jsref/jsref_obj_date.asp\n const message = kb.sym(messageStore.uri + '#' + 'Msg' + timestamp)\n\n sts.push(\n new rdf.Statement(subject, ns.wf('message'), message, messageStore)\n )\n sts.push(\n new rdf.Statement(\n message,\n ns.sioc('content'),\n kb.literal(field.value),\n messageStore\n )\n )\n sts.push(\n new rdf.Statement(message, DCT('created'), dateStamp, messageStore)\n )\n if (me) {\n sts.push(\n new rdf.Statement(message, ns.foaf('maker'), me, messageStore)\n )\n }\n\n const sendComplete = function (uri, success, body) {\n if (!success) {\n form.appendChild(\n UI.widgets.errorMessageBlock(dom, 'Error writing message: ' + body)\n )\n } else {\n const bindings = {\n '?msg': message,\n '?content': kb.literal(field.value),\n '?date': dateStamp,\n '?creator': me\n }\n renderMessage(bindings, false) // not green\n\n field.value = '' // clear from out for reuse\n field.setAttribute('class', '')\n field.disabled = false\n }\n }\n updater.update([], sts, sendComplete)\n }\n form.appendChild(dom.createElement('br'))\n\n let field, sendButton\n const turnOnInput = function () {\n creatorAndDate(lhs, me, '', null)\n\n field = dom.createElement('textarea')\n middle.innerHTML = ''\n middle.appendChild(field)\n field.rows = 3\n // field.cols = 40\n field.setAttribute('style', messageBodyStyle + 'background-color: #eef;')\n\n field.addEventListener(\n 'keyup',\n function (e) {\n // User preference?\n if (e.keyCode === 13) {\n if (!e.altKey) {\n // Alt-Enter just adds a new line\n sendMessage()\n }\n }\n },\n false\n )\n\n rhs.innerHTML = ''\n sendButton = UI.widgets.button(\n dom,\n UI.icons.iconBase + 'noun_383448.svg',\n 'Send'\n )\n sendButton.setAttribute('style', UI.style.buttonStyle + 'float: right;')\n sendButton.addEventListener('click', sendMessage, false)\n rhs.appendChild(sendButton)\n }\n\n const context = { div: middle, dom: dom }\n login.loggedInContext(context).then(context => {\n me = context.me\n turnOnInput()\n })\n\n return form\n }\n\n function nick (person) {\n const s = solidLogicSingleton.store.any(person, UI.ns.foaf('nick'))\n if (s) return '' + s.value\n return '' + utils.label(person)\n }\n\n function creatorAndDate (td1, creator, date, message) {\n const nickAnchor = td1.appendChild(anchor(nick(creator), creator))\n if (creator.uri) {\n solidLogicSingleton.store.fetcher.nowOrWhenFetched(creator.doc(), undefined, function (\n _ok,\n _body\n ) {\n nickAnchor.textContent = nick(creator)\n })\n }\n td1.appendChild(dom.createElement('br'))\n td1.appendChild(anchor(date, message))\n }\n\n // ///////////////////////////////////////////////////////////////////////\n\n function syncMessages (about, messageTable) {\n const displayed = {}\n let ele, ele2\n for (ele = messageTable.firstChild; ele; ele = ele.nextSibling) {\n if (ele.AJAR_subject) {\n displayed[ele.AJAR_subject.uri] = true\n }\n }\n const messages = kb.each(about, ns.wf('message'))\n const stored = {}\n messages.forEach(function (m) {\n stored[m.uri] = true\n if (!displayed[m.uri]) {\n addMessage(m)\n }\n })\n\n // eslint-disable-next-line space-in-parens\n for (ele = messageTable.firstChild; ele; ) {\n ele2 = ele.nextSibling\n if (ele.AJAR_subject && !stored[ele.AJAR_subject.uri]) {\n messageTable.removeChild(ele)\n }\n ele = ele2\n }\n }\n\n const deleteMessage = function (message) {\n const deletions = kb\n .statementsMatching(message)\n .concat(kb.statementsMatching(undefined, undefined, message))\n updater.update(deletions, [], function (uri, ok, body) {\n if (!ok) {\n announce.error('Cant delete messages:' + body)\n } else {\n syncMessages(subject, messageTable)\n }\n })\n }\n\n const addMessage = function (message) {\n const bindings = {\n '?msg': message,\n '?creator': kb.any(message, ns.foaf('maker')),\n '?date': kb.any(message, DCT('created')),\n '?content': kb.any(message, ns.sioc('content'))\n }\n renderMessage(bindings, true) // fresh from elsewhere\n }\n\n const renderMessage = function (bindings, fresh) {\n const creator = bindings['?creator']\n const message = bindings['?msg']\n const date = bindings['?date']\n const content = bindings['?content']\n\n const dateString = date.value\n const tr = dom.createElement('tr')\n tr.AJAR_date = dateString\n tr.AJAR_subject = message\n\n let done = false\n for (let ele = messageTable.firstChild; ; ele = ele.nextSibling) {\n if (!ele) {\n // empty\n break\n }\n if (\n (dateString > ele.AJAR_date && newestFirst) ||\n (dateString < ele.AJAR_date && !newestFirst)\n ) {\n messageTable.insertBefore(tr, ele)\n done = true\n break\n }\n }\n if (!done) {\n messageTable.appendChild(tr)\n }\n\n const td1 = dom.createElement('td')\n tr.appendChild(td1)\n creatorAndDate(td1, creator, UI.widgets.shortDate(dateString), message)\n\n const td2 = dom.createElement('td')\n tr.appendChild(td2)\n const pre = dom.createElement('p')\n pre.setAttribute(\n 'style',\n messageBodyStyle +\n (fresh ? 'background-color: #e8ffe8;' : 'background-color: #white;')\n )\n td2.appendChild(pre)\n pre.textContent = content.value\n\n const td3 = dom.createElement('td')\n tr.appendChild(td3)\n\n const delButton = dom.createElement('button')\n td3.appendChild(delButton)\n delButton.textContent = '-'\n\n tr.setAttribute('class', 'hoverControl') // See tabbedtab.css (sigh global CSS)\n delButton.setAttribute('class', 'hoverControlHide')\n delButton.setAttribute('style', 'color: red;')\n delButton.addEventListener(\n 'click',\n function (_event) {\n td3.removeChild(delButton) // Ask -- are you sure?\n const cancelButton = dom.createElement('button')\n cancelButton.textContent = 'cancel'\n td3.appendChild(cancelButton).addEventListener(\n 'click',\n function (_event) {\n td3.removeChild(sureButton)\n td3.removeChild(cancelButton)\n td3.appendChild(delButton)\n },\n false\n )\n const sureButton = dom.createElement('button')\n sureButton.textContent = 'Delete message'\n td3.appendChild(sureButton).addEventListener(\n 'click',\n function (_event) {\n td3.removeChild(sureButton)\n td3.removeChild(cancelButton)\n deleteMessage(message)\n },\n false\n )\n },\n false\n )\n }\n\n // Messages with date, author etc\n\n messageTable = dom.createElement('table')\n messageTable.fresh = false\n div.appendChild(messageTable)\n messageTable.setAttribute('style', 'width: 100%;') // fill that div!\n\n const tr = newMessageForm()\n if (newestFirst) {\n messageTable.insertBefore(tr, messageTable.firstChild) // If newestFirst\n } else {\n messageTable.appendChild(tr) // not newestFirst\n }\n\n let query\n // Do this with a live query to pull in messages from web\n if (options.query) {\n query = options.query\n } else {\n query = new rdf.Query('Messages')\n const v = {} // semicolon needed\n const vs = ['msg', 'date', 'creator', 'content']\n vs.forEach(function (x) {\n query.vars.push((v[x] = rdf.variable(x)))\n })\n query.pat.add(subject, WF('message'), v.msg)\n query.pat.add(v.msg, ns.dct('created'), v.date)\n query.pat.add(v.msg, ns.foaf('maker'), v.creator)\n query.pat.add(v.msg, ns.sioc('content'), v.content)\n }\n function doneQuery () {\n messageTable.fresh = true // any new are fresh and so will be greenish\n }\n kb.query(query, renderMessage, undefined, doneQuery)\n div.refresh = function () {\n syncMessages(subject, messageTable)\n }\n // syncMessages(subject, messageTable) // no the query will do this async\n return div\n}\n"],"file":"messageArea.js"}
1
+ {"version":3,"sources":["../src/messageArea.js"],"names":["UI","authn","icons","ns","rdf","store","style","widgets","messageArea","dom","kb","subject","messageStore","options","doc","WF","Namespace","DCT","newestFirst","messageBodyStyle","div","createElement","messageTable","me","updater","anchor","text","term","a","uri","setAttribute","addEventListener","openHrefInOutlineMode","textContent","mention","message","pre","appendChild","createTextNode","announce","log","warn","error","newMessageForm","form","lhs","middle","rhs","AJAR_date","sendMessage","field","disabled","sts","now","Date","timestamp","getTime","dateStamp","sym","push","Statement","wf","sioc","literal","value","foaf","sendComplete","success","body","errorMessageBlock","bindings","renderMessage","update","sendButton","turnOnInput","creatorAndDate","innerHTML","rows","e","keyCode","altKey","button","iconBase","buttonStyle","context","logIn","then","nick","person","s","any","utils","label","td1","creator","date","nickAnchor","fetcher","nowOrWhenFetched","undefined","_ok","_body","syncMessages","about","displayed","ele","ele2","firstChild","nextSibling","AJAR_subject","messages","each","stored","forEach","m","addMessage","removeChild","deleteMessage","deletions","statementsMatching","concat","ok","fresh","content","dateString","tr","done","insertBefore","shortDate","td2","td3","delButton","_event","cancelButton","sureButton","query","Query","v","vs","x","vars","variable","pat","add","msg","dct","doneQuery","refresh"],"mappings":"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","sourcesContent":["// Common code for a discussion are a of messages about something\n//\n\nimport { authn } from './authn/index'\nimport { icons } from './iconBase'\nimport { store } from './logic'\nimport * as ns from './ns'\nimport * as rdf from 'rdflib' // pull in first avoid cross-refs\nimport * as style from './style'\nimport * as utils from './utils'\nimport * as widgets from './widgets'\n\nconst UI = { authn, icons, ns, rdf, store, style, widgets }\n\nexport function messageArea (dom, kb, subject, messageStore, options) {\n kb = kb || UI.store\n messageStore = messageStore.doc() // No hash\n const ns = UI.ns\n const WF = rdf.Namespace('http://www.w3.org/2005/01/wf/flow#')\n const DCT = rdf.Namespace('http://purl.org/dc/terms/')\n\n options = options || {}\n\n const newestFirst = !!options.newestFirst\n\n const messageBodyStyle =\n '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;'\n // 'font-size: 100%; margin: 0.1em 1em 0.1em 1em; background-color: white; white-space: pre-wrap; padding: 0.1em;'\n\n const div = dom.createElement('div')\n // eslint-disable-next-line prefer-const\n let messageTable // Shared by initial build and addMessageFromBindings\n\n let me\n\n const updater = UI.store.updater\n\n const anchor = function (text, term) {\n // If there is no link return an element anyway\n const a = dom.createElement('a')\n if (term && term.uri) {\n a.setAttribute('href', term.uri)\n a.addEventListener('click', UI.widgets.openHrefInOutlineMode, true)\n a.setAttribute('style', 'color: #3B5998; text-decoration: none; ') // font-weight: bold\n }\n a.textContent = text\n return a\n }\n\n const mention = function mention (message, style) {\n const pre = dom.createElement('pre')\n pre.setAttribute('style', style || 'color: grey')\n div.appendChild(pre)\n pre.appendChild(dom.createTextNode(message))\n return pre\n }\n\n const announce = {\n log: function (message) {\n mention(message, 'color: #111;')\n },\n warn: function (message) {\n mention(message, 'color: #880;')\n },\n error: function (message) {\n mention(message, 'color: #800;')\n }\n }\n\n // Form for a new message\n //\n const newMessageForm = function () {\n const form = dom.createElement('tr')\n const lhs = dom.createElement('td')\n const middle = dom.createElement('td')\n const rhs = dom.createElement('td')\n form.appendChild(lhs)\n form.appendChild(middle)\n form.appendChild(rhs)\n form.AJAR_date = '9999-01-01T00:00:00Z' // ISO format for field sort\n\n const sendMessage = function () {\n // titlefield.setAttribute('class','pendingedit')\n // titlefield.disabled = true\n field.setAttribute('class', 'pendingedit')\n field.disabled = true\n const sts = []\n const now = new Date()\n const timestamp = '' + now.getTime()\n const dateStamp = rdf.term(now)\n // http://www.w3schools.com/jsref/jsref_obj_date.asp\n const message = kb.sym(messageStore.uri + '#' + 'Msg' + timestamp)\n\n sts.push(\n new rdf.Statement(subject, ns.wf('message'), message, messageStore)\n )\n sts.push(\n new rdf.Statement(\n message,\n ns.sioc('content'),\n kb.literal(field.value),\n messageStore\n )\n )\n sts.push(\n new rdf.Statement(message, DCT('created'), dateStamp, messageStore)\n )\n if (me) {\n sts.push(\n new rdf.Statement(message, ns.foaf('maker'), me, messageStore)\n )\n }\n\n const sendComplete = function (uri, success, body) {\n if (!success) {\n form.appendChild(\n UI.widgets.errorMessageBlock(dom, 'Error writing message: ' + body)\n )\n } else {\n const bindings = {\n '?msg': message,\n '?content': kb.literal(field.value),\n '?date': dateStamp,\n '?creator': me\n }\n renderMessage(bindings, false) // not green\n\n field.value = '' // clear from out for reuse\n field.setAttribute('class', '')\n field.disabled = false\n }\n }\n updater.update([], sts, sendComplete)\n }\n form.appendChild(dom.createElement('br'))\n\n let field, sendButton\n const turnOnInput = function () {\n creatorAndDate(lhs, me, '', null)\n\n field = dom.createElement('textarea')\n middle.innerHTML = ''\n middle.appendChild(field)\n field.rows = 3\n // field.cols = 40\n field.setAttribute('style', messageBodyStyle + 'background-color: #eef;')\n\n field.addEventListener(\n 'keyup',\n function (e) {\n // User preference?\n if (e.keyCode === 13) {\n if (!e.altKey) {\n // Alt-Enter just adds a new line\n sendMessage()\n }\n }\n },\n false\n )\n\n rhs.innerHTML = ''\n sendButton = UI.widgets.button(\n dom,\n UI.icons.iconBase + 'noun_383448.svg',\n 'Send'\n )\n sendButton.setAttribute('style', UI.style.buttonStyle + 'float: right;')\n sendButton.addEventListener('click', sendMessage, false)\n rhs.appendChild(sendButton)\n }\n\n const context = { div: middle, dom: dom }\n UI.authn.logIn(context).then(context => {\n me = context.me\n turnOnInput()\n })\n\n return form\n }\n\n function nick (person) {\n const s = UI.store.any(person, UI.ns.foaf('nick'))\n if (s) return '' + s.value\n return '' + utils.label(person)\n }\n\n function creatorAndDate (td1, creator, date, message) {\n const nickAnchor = td1.appendChild(anchor(nick(creator), creator))\n if (creator.uri) {\n UI.store.fetcher.nowOrWhenFetched(creator.doc(), undefined, function (\n _ok,\n _body\n ) {\n nickAnchor.textContent = nick(creator)\n })\n }\n td1.appendChild(dom.createElement('br'))\n td1.appendChild(anchor(date, message))\n }\n\n // ///////////////////////////////////////////////////////////////////////\n\n function syncMessages (about, messageTable) {\n const displayed = {}\n let ele, ele2\n for (ele = messageTable.firstChild; ele; ele = ele.nextSibling) {\n if (ele.AJAR_subject) {\n displayed[ele.AJAR_subject.uri] = true\n }\n }\n const messages = kb.each(about, ns.wf('message'))\n const stored = {}\n messages.forEach(function (m) {\n stored[m.uri] = true\n if (!displayed[m.uri]) {\n addMessage(m)\n }\n })\n\n // eslint-disable-next-line space-in-parens\n for (ele = messageTable.firstChild; ele; ) {\n ele2 = ele.nextSibling\n if (ele.AJAR_subject && !stored[ele.AJAR_subject.uri]) {\n messageTable.removeChild(ele)\n }\n ele = ele2\n }\n }\n\n const deleteMessage = function (message) {\n const deletions = kb\n .statementsMatching(message)\n .concat(kb.statementsMatching(undefined, undefined, message))\n updater.update(deletions, [], function (uri, ok, body) {\n if (!ok) {\n announce.error('Cant delete messages:' + body)\n } else {\n syncMessages(subject, messageTable)\n }\n })\n }\n\n const addMessage = function (message) {\n const bindings = {\n '?msg': message,\n '?creator': kb.any(message, ns.foaf('maker')),\n '?date': kb.any(message, DCT('created')),\n '?content': kb.any(message, ns.sioc('content'))\n }\n renderMessage(bindings, true) // fresh from elsewhere\n }\n\n const renderMessage = function (bindings, fresh) {\n const creator = bindings['?creator']\n const message = bindings['?msg']\n const date = bindings['?date']\n const content = bindings['?content']\n\n const dateString = date.value\n const tr = dom.createElement('tr')\n tr.AJAR_date = dateString\n tr.AJAR_subject = message\n\n let done = false\n for (let ele = messageTable.firstChild; ; ele = ele.nextSibling) {\n if (!ele) {\n // empty\n break\n }\n if (\n (dateString > ele.AJAR_date && newestFirst) ||\n (dateString < ele.AJAR_date && !newestFirst)\n ) {\n messageTable.insertBefore(tr, ele)\n done = true\n break\n }\n }\n if (!done) {\n messageTable.appendChild(tr)\n }\n\n const td1 = dom.createElement('td')\n tr.appendChild(td1)\n creatorAndDate(td1, creator, UI.widgets.shortDate(dateString), message)\n\n const td2 = dom.createElement('td')\n tr.appendChild(td2)\n const pre = dom.createElement('p')\n pre.setAttribute(\n 'style',\n messageBodyStyle +\n (fresh ? 'background-color: #e8ffe8;' : 'background-color: #white;')\n )\n td2.appendChild(pre)\n pre.textContent = content.value\n\n const td3 = dom.createElement('td')\n tr.appendChild(td3)\n\n const delButton = dom.createElement('button')\n td3.appendChild(delButton)\n delButton.textContent = '-'\n\n tr.setAttribute('class', 'hoverControl') // See tabbedtab.css (sigh global CSS)\n delButton.setAttribute('class', 'hoverControlHide')\n delButton.setAttribute('style', 'color: red;')\n delButton.addEventListener(\n 'click',\n function (_event) {\n td3.removeChild(delButton) // Ask -- are you sure?\n const cancelButton = dom.createElement('button')\n cancelButton.textContent = 'cancel'\n td3.appendChild(cancelButton).addEventListener(\n 'click',\n function (_event) {\n td3.removeChild(sureButton)\n td3.removeChild(cancelButton)\n td3.appendChild(delButton)\n },\n false\n )\n const sureButton = dom.createElement('button')\n sureButton.textContent = 'Delete message'\n td3.appendChild(sureButton).addEventListener(\n 'click',\n function (_event) {\n td3.removeChild(sureButton)\n td3.removeChild(cancelButton)\n deleteMessage(message)\n },\n false\n )\n },\n false\n )\n }\n\n // Messages with date, author etc\n\n messageTable = dom.createElement('table')\n messageTable.fresh = false\n div.appendChild(messageTable)\n messageTable.setAttribute('style', 'width: 100%;') // fill that div!\n\n const tr = newMessageForm()\n if (newestFirst) {\n messageTable.insertBefore(tr, messageTable.firstChild) // If newestFirst\n } else {\n messageTable.appendChild(tr) // not newestFirst\n }\n\n let query\n // Do this with a live query to pull in messages from web\n if (options.query) {\n query = options.query\n } else {\n query = new rdf.Query('Messages')\n const v = {} // semicolon needed\n const vs = ['msg', 'date', 'creator', 'content']\n vs.forEach(function (x) {\n query.vars.push((v[x] = rdf.variable(x)))\n })\n query.pat.add(subject, WF('message'), v.msg)\n query.pat.add(v.msg, ns.dct('created'), v.date)\n query.pat.add(v.msg, ns.foaf('maker'), v.creator)\n query.pat.add(v.msg, ns.sioc('content'), v.content)\n }\n function doneQuery () {\n messageTable.fresh = true // any new are fresh and so will be greenish\n }\n kb.query(query, renderMessage, undefined, doneQuery)\n div.refresh = function () {\n syncMessages(subject, messageTable)\n }\n // syncMessages(subject, messageTable) // no the query will do this async\n return div\n}\n"],"file":"messageArea.js"}
package/lib/pad.js CHANGED
@@ -63,7 +63,7 @@ var _utils = require("./utils");
63
63
 
64
64
  var _debug = require("./debug");
65
65
 
66
- var _solidLogic = require("solid-logic");
66
+ var _logic = require("./logic");
67
67
 
68
68
  var _participation = require("./participation");
69
69
 
@@ -75,7 +75,7 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
75
75
 
76
76
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
77
77
 
78
- var store = _solidLogic.solidLogicSingleton.store;
78
+ var store = _logic.solidLogicSingleton.store;
79
79
  var PAD = (0, _rdflib.Namespace)('http://www.w3.org/ns/pim/pad#');
80
80
 
81
81
  /**