solid-ui 2.4.29 → 2.4.30-00b22a41

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 (261) hide show
  1. package/LICENSE.md +0 -0
  2. package/README.md +0 -0
  3. package/dist/670.solid-ui.min.js +0 -0
  4. package/dist/805.solid-ui.min.js +1 -1
  5. package/dist/805.solid-ui.min.js.LICENSE.txt +0 -0
  6. package/dist/805.solid-ui.min.js.map +1 -1
  7. package/dist/_2b19.solid-ui.js +0 -0
  8. package/dist/_2b19.solid-ui.js.map +1 -1
  9. package/dist/index.html +0 -0
  10. package/dist/solid-ui.js +3522 -1975
  11. package/dist/solid-ui.js.map +1 -1
  12. package/dist/solid-ui.min.js +1 -1
  13. package/dist/solid-ui.min.js.LICENSE.txt +0 -0
  14. package/dist/solid-ui.min.js.map +1 -1
  15. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js +191 -80
  16. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js.map +1 -1
  17. package/lib/acl/access-controller.d.ts +0 -0
  18. package/lib/acl/access-controller.d.ts.map +0 -0
  19. package/lib/acl/access-controller.js +0 -0
  20. package/lib/acl/access-controller.js.map +0 -0
  21. package/lib/acl/access-groups.d.ts +0 -0
  22. package/lib/acl/access-groups.d.ts.map +0 -0
  23. package/lib/acl/access-groups.js +0 -2
  24. package/lib/acl/access-groups.js.map +1 -1
  25. package/lib/acl/acl-control.d.ts +0 -0
  26. package/lib/acl/acl-control.d.ts.map +0 -0
  27. package/lib/acl/acl-control.js +0 -0
  28. package/lib/acl/acl-control.js.map +0 -0
  29. package/lib/acl/acl.d.ts +0 -0
  30. package/lib/acl/acl.d.ts.map +0 -0
  31. package/lib/acl/acl.js +0 -2
  32. package/lib/acl/acl.js.map +1 -1
  33. package/lib/acl/add-agent-buttons.d.ts +0 -0
  34. package/lib/acl/add-agent-buttons.d.ts.map +0 -0
  35. package/lib/acl/add-agent-buttons.js +0 -0
  36. package/lib/acl/add-agent-buttons.js.map +0 -0
  37. package/lib/acl/index.d.ts +0 -0
  38. package/lib/acl/index.d.ts.map +0 -0
  39. package/lib/acl/index.js +0 -0
  40. package/lib/acl/index.js.map +0 -0
  41. package/lib/acl/types.d.ts +0 -0
  42. package/lib/acl/types.d.ts.map +0 -0
  43. package/lib/acl/types.js +0 -0
  44. package/lib/acl/types.js.map +0 -0
  45. package/lib/chat/bookmarks.js +0 -0
  46. package/lib/chat/bookmarks.js.map +0 -0
  47. package/lib/chat/chatLogic.js +6 -4
  48. package/lib/chat/chatLogic.js.map +1 -1
  49. package/lib/chat/dateFolder.js +0 -0
  50. package/lib/chat/dateFolder.js.map +0 -0
  51. package/lib/chat/infinite.js +0 -5
  52. package/lib/chat/infinite.js.map +1 -1
  53. package/lib/chat/keys.d.ts +0 -0
  54. package/lib/chat/keys.d.ts.map +0 -0
  55. package/lib/chat/keys.js +0 -0
  56. package/lib/chat/keys.js.map +0 -0
  57. package/lib/chat/message.js +3 -7
  58. package/lib/chat/message.js.map +1 -1
  59. package/lib/chat/messageTools.js +1 -0
  60. package/lib/chat/messageTools.js.map +1 -1
  61. package/lib/chat/signature.d.ts +0 -0
  62. package/lib/chat/signature.d.ts.map +0 -0
  63. package/lib/chat/signature.js +0 -0
  64. package/lib/chat/signature.js.map +0 -0
  65. package/lib/chat/thread.js +0 -4
  66. package/lib/chat/thread.js.map +1 -1
  67. package/lib/create/create.d.ts +0 -0
  68. package/lib/create/create.d.ts.map +0 -0
  69. package/lib/create/create.js +0 -2
  70. package/lib/create/create.js.map +1 -1
  71. package/lib/create/index.d.ts +0 -0
  72. package/lib/create/index.d.ts.map +0 -0
  73. package/lib/create/index.js +0 -0
  74. package/lib/create/index.js.map +0 -0
  75. package/lib/create/types.d.ts +0 -0
  76. package/lib/create/types.d.ts.map +0 -0
  77. package/lib/create/types.js +0 -0
  78. package/lib/create/types.js.map +0 -0
  79. package/lib/debug.d.ts +0 -0
  80. package/lib/debug.d.ts.map +0 -0
  81. package/lib/debug.js +0 -0
  82. package/lib/debug.js.map +0 -0
  83. package/lib/folders.js +0 -0
  84. package/lib/folders.js.map +0 -0
  85. package/lib/footer/index.d.ts +0 -0
  86. package/lib/footer/index.d.ts.map +0 -0
  87. package/lib/footer/index.js +0 -0
  88. package/lib/footer/index.js.map +0 -0
  89. package/lib/header/empty-profile.d.ts +0 -0
  90. package/lib/header/empty-profile.d.ts.map +0 -0
  91. package/lib/header/empty-profile.js +0 -0
  92. package/lib/header/empty-profile.js.map +0 -0
  93. package/lib/header/index.d.ts +0 -0
  94. package/lib/header/index.d.ts.map +0 -0
  95. package/lib/header/index.js +0 -0
  96. package/lib/header/index.js.map +0 -0
  97. package/lib/iconBase.d.ts +0 -0
  98. package/lib/iconBase.d.ts.map +0 -0
  99. package/lib/iconBase.js +0 -0
  100. package/lib/iconBase.js.map +0 -0
  101. package/lib/icons/solid_logo.d.ts +0 -0
  102. package/lib/icons/solid_logo.d.ts.map +0 -0
  103. package/lib/icons/solid_logo.js +0 -0
  104. package/lib/icons/solid_logo.js.map +0 -0
  105. package/lib/index.d.ts +0 -0
  106. package/lib/index.d.ts.map +0 -0
  107. package/lib/index.js +0 -0
  108. package/lib/index.js.map +0 -0
  109. package/lib/log.d.ts +0 -0
  110. package/lib/log.d.ts.map +0 -0
  111. package/lib/log.js +0 -0
  112. package/lib/log.js.map +0 -0
  113. package/lib/login/login.d.ts +0 -0
  114. package/lib/login/login.d.ts.map +1 -1
  115. package/lib/login/login.js +37 -42
  116. package/lib/login/login.js.map +1 -1
  117. package/lib/matrix/index.d.ts +0 -0
  118. package/lib/matrix/index.d.ts.map +0 -0
  119. package/lib/matrix/index.js +0 -0
  120. package/lib/matrix/index.js.map +0 -0
  121. package/lib/matrix/matrix.d.ts +0 -0
  122. package/lib/matrix/matrix.d.ts.map +0 -0
  123. package/lib/matrix/matrix.js +0 -2
  124. package/lib/matrix/matrix.js.map +1 -1
  125. package/lib/matrix/types.d.ts +0 -0
  126. package/lib/matrix/types.d.ts.map +0 -0
  127. package/lib/matrix/types.js +0 -0
  128. package/lib/matrix/types.js.map +0 -0
  129. package/lib/media/index.d.ts +0 -0
  130. package/lib/media/index.d.ts.map +0 -0
  131. package/lib/media/index.js +0 -0
  132. package/lib/media/index.js.map +0 -0
  133. package/lib/media/media-capture.d.ts +2 -2
  134. package/lib/media/media-capture.d.ts.map +1 -1
  135. package/lib/media/media-capture.js +11 -18
  136. package/lib/media/media-capture.js.map +1 -1
  137. package/lib/messageArea.js +0 -4
  138. package/lib/messageArea.js.map +1 -1
  139. package/lib/noun_Camera_1618446_000000.js +0 -0
  140. package/lib/noun_Camera_1618446_000000.js.map +0 -0
  141. package/lib/ns.js +0 -0
  142. package/lib/ns.js.map +0 -0
  143. package/lib/pad.d.ts +2 -2
  144. package/lib/pad.d.ts.map +1 -1
  145. package/lib/pad.js +18 -45
  146. package/lib/pad.js.map +1 -1
  147. package/lib/participation.d.ts +7 -7
  148. package/lib/participation.d.ts.map +1 -1
  149. package/lib/participation.js +27 -28
  150. package/lib/participation.js.map +1 -1
  151. package/lib/preferences.js +0 -0
  152. package/lib/preferences.js.map +0 -0
  153. package/lib/signup/config-default.js +0 -0
  154. package/lib/signup/config-default.js.map +0 -0
  155. package/lib/signup/signup.js +0 -0
  156. package/lib/signup/signup.js.map +0 -0
  157. package/lib/stories/decorators.js +0 -0
  158. package/lib/stories/decorators.js.map +0 -0
  159. package/lib/style.js +93 -85
  160. package/lib/style.js.map +1 -1
  161. package/lib/styleConstants.js +35 -0
  162. package/lib/styleConstants.js.map +1 -0
  163. package/lib/style_multiSelect.js +0 -0
  164. package/lib/style_multiSelect.js.map +0 -0
  165. package/lib/table.js +0 -4
  166. package/lib/table.js.map +1 -1
  167. package/lib/tabs.d.ts +0 -125
  168. package/lib/tabs.d.ts.map +1 -1
  169. package/lib/tabs.js +15 -10
  170. package/lib/tabs.js.map +1 -1
  171. package/lib/typings.d.js +0 -0
  172. package/lib/typings.d.js.map +0 -0
  173. package/lib/utils/headerFooterHelpers.d.ts +0 -0
  174. package/lib/utils/headerFooterHelpers.d.ts.map +0 -0
  175. package/lib/utils/headerFooterHelpers.js +0 -0
  176. package/lib/utils/headerFooterHelpers.js.map +0 -0
  177. package/lib/utils/index.js +0 -7
  178. package/lib/utils/index.js.map +1 -1
  179. package/lib/utils/keyHelpers/accessData.d.ts +0 -0
  180. package/lib/utils/keyHelpers/accessData.d.ts.map +0 -0
  181. package/lib/utils/keyHelpers/accessData.js +0 -0
  182. package/lib/utils/keyHelpers/accessData.js.map +0 -0
  183. package/lib/utils/keyHelpers/acl.d.ts +0 -0
  184. package/lib/utils/keyHelpers/acl.d.ts.map +0 -0
  185. package/lib/utils/keyHelpers/acl.js +0 -0
  186. package/lib/utils/keyHelpers/acl.js.map +0 -0
  187. package/lib/utils/label.d.ts +0 -0
  188. package/lib/utils/label.d.ts.map +0 -0
  189. package/lib/utils/label.js +0 -0
  190. package/lib/utils/label.js.map +0 -0
  191. package/lib/versionInfo.d.ts +0 -0
  192. package/lib/versionInfo.d.ts.map +0 -0
  193. package/lib/versionInfo.js +14 -14
  194. package/lib/versionInfo.js.map +1 -1
  195. package/lib/widgets/buttons/iconLinks.d.ts +0 -0
  196. package/lib/widgets/buttons/iconLinks.d.ts.map +0 -0
  197. package/lib/widgets/buttons/iconLinks.js +0 -0
  198. package/lib/widgets/buttons/iconLinks.js.map +0 -0
  199. package/lib/widgets/buttons.d.ts +0 -0
  200. package/lib/widgets/buttons.d.ts.map +0 -0
  201. package/lib/widgets/buttons.js +2 -10
  202. package/lib/widgets/buttons.js.map +1 -1
  203. package/lib/widgets/dragAndDrop.js +11 -20
  204. package/lib/widgets/dragAndDrop.js.map +1 -1
  205. package/lib/widgets/error.d.ts +0 -0
  206. package/lib/widgets/error.d.ts.map +1 -1
  207. package/lib/widgets/error.js +9 -2
  208. package/lib/widgets/error.js.map +1 -1
  209. package/lib/widgets/forms/autocomplete/autocompleteBar.d.ts +0 -0
  210. package/lib/widgets/forms/autocomplete/autocompleteBar.d.ts.map +0 -0
  211. package/lib/widgets/forms/autocomplete/autocompleteBar.js +5 -5
  212. package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +0 -0
  213. package/lib/widgets/forms/autocomplete/autocompleteField.d.ts +0 -0
  214. package/lib/widgets/forms/autocomplete/autocompleteField.d.ts.map +0 -0
  215. package/lib/widgets/forms/autocomplete/autocompleteField.js +0 -1
  216. package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
  217. package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts +0 -0
  218. package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts.map +1 -1
  219. package/lib/widgets/forms/autocomplete/autocompletePicker.js +6 -8
  220. package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
  221. package/lib/widgets/forms/autocomplete/language.d.ts +0 -0
  222. package/lib/widgets/forms/autocomplete/language.d.ts.map +0 -0
  223. package/lib/widgets/forms/autocomplete/language.js +0 -0
  224. package/lib/widgets/forms/autocomplete/language.js.map +0 -0
  225. package/lib/widgets/forms/autocomplete/publicData.d.ts +0 -0
  226. package/lib/widgets/forms/autocomplete/publicData.d.ts.map +0 -0
  227. package/lib/widgets/forms/autocomplete/publicData.js +0 -3
  228. package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
  229. package/lib/widgets/forms/basic.d.ts +0 -0
  230. package/lib/widgets/forms/basic.d.ts.map +1 -1
  231. package/lib/widgets/forms/basic.js +5 -5
  232. package/lib/widgets/forms/basic.js.map +1 -1
  233. package/lib/widgets/forms/comment.d.ts +0 -0
  234. package/lib/widgets/forms/comment.d.ts.map +0 -0
  235. package/lib/widgets/forms/comment.js +0 -0
  236. package/lib/widgets/forms/comment.js.map +0 -0
  237. package/lib/widgets/forms/fieldFunction.d.ts +0 -0
  238. package/lib/widgets/forms/fieldFunction.d.ts.map +0 -0
  239. package/lib/widgets/forms/fieldFunction.js +0 -0
  240. package/lib/widgets/forms/fieldFunction.js.map +0 -0
  241. package/lib/widgets/forms/fieldParams.d.ts +0 -0
  242. package/lib/widgets/forms/fieldParams.d.ts.map +0 -0
  243. package/lib/widgets/forms/fieldParams.js +16 -16
  244. package/lib/widgets/forms/fieldParams.js.map +1 -1
  245. package/lib/widgets/forms/formStyle.d.ts +0 -0
  246. package/lib/widgets/forms/formStyle.d.ts.map +0 -0
  247. package/lib/widgets/forms/formStyle.js +0 -0
  248. package/lib/widgets/forms/formStyle.js.map +0 -0
  249. package/lib/widgets/forms.js +12 -30
  250. package/lib/widgets/forms.js.map +1 -1
  251. package/lib/widgets/index.js +0 -0
  252. package/lib/widgets/index.js.map +0 -0
  253. package/lib/widgets/multiSelect.js +0 -0
  254. package/lib/widgets/multiSelect.js.map +0 -0
  255. package/lib/widgets/peoplePicker.js +0 -1
  256. package/lib/widgets/peoplePicker.js.map +1 -1
  257. package/lib/widgets/widgetHelpers.d.ts +0 -0
  258. package/lib/widgets/widgetHelpers.d.ts.map +0 -0
  259. package/lib/widgets/widgetHelpers.js +0 -0
  260. package/lib/widgets/widgetHelpers.js.map +0 -0
  261. package/package.json +18 -18
@@ -11,21 +11,21 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
11
11
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
12
12
  var debug = _interopRequireWildcard(require("../debug"));
13
13
  var _iconBase = require("../iconBase");
14
+ var style = _interopRequireWildcard(require("../style"));
14
15
  var widgets = _interopRequireWildcard(require("../widgets"));
15
16
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
16
17
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
17
- /// /////////////////////////////////////////////
18
18
  //
19
19
  // Media input widget
20
20
  //
21
21
  //
22
22
  // Workflow:
23
- // The HTML5 functionality (on mobille) is to prompt for either
24
- // a realtime camera capture , OR a selection from images already ont the device
23
+ // The HTML5 functionality (on mobile) is to prompt for either
24
+ // a realtime camera capture, OR a selection from images already on the device
25
25
  // (eg camera roll).
26
26
  //
27
- // The solid alternative is to either take a phtoto
28
- // or access cemra roll (etc) OR to access solid cloud storage of favorite photo almbums.
27
+ // The solid alternative is to either take a photo
28
+ // or access camera roll (etc) OR to access solid cloud storage of favorite photo albums.
29
29
  // (Especially latest taken ones)
30
30
  //
31
31
 
@@ -34,10 +34,6 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
34
34
  var cameraIcon = _iconBase.icons.iconBase + 'noun_Camera_1618446_000000.svg'; // Get it from github
35
35
  var retakeIcon = _iconBase.icons.iconBase + 'noun_479395.svg'; // Get it from github
36
36
 
37
- var canvasWidth = '640';
38
- var canvasHeight = '480';
39
- var controlStyle = "border-radius: 0.5em; margin: 0.8em; width: ".concat(canvasWidth, "; height:").concat(canvasHeight, ";");
40
- // const controlStyle = 'border-radius: 0.5em; margin: 0.8em; width: 320; height:240;'
41
37
  var contentType = 'image/png';
42
38
 
43
39
  /** A control to capture a picture using camera
@@ -82,7 +78,7 @@ function cameraCaptureControl(dom, store, getImageDoc, doneCallback) {
82
78
  player = main.appendChild(dom.createElement('video'));
83
79
  player.setAttribute('controls', '1');
84
80
  player.setAttribute('autoplay', '1');
85
- player.setAttribute('style', controlStyle);
81
+ player.setAttribute('style', style.controlStyle);
86
82
  if (!navigator.mediaDevices) {
87
83
  throw new Error('navigator.mediaDevices not available');
88
84
  }
@@ -100,13 +96,12 @@ function cameraCaptureControl(dom, store, getImageDoc, doneCallback) {
100
96
  main.removeChild(canvas);
101
97
  displayPlayer(); // Make new one as old one is stuck black
102
98
  }
103
-
104
99
  function grabCanvas() {
105
100
  // Draw the video frame to the canvas.
106
101
  canvas = dom.createElement('canvas');
107
- canvas.setAttribute('width', canvasWidth);
108
- canvas.setAttribute('height', canvasHeight);
109
- canvas.setAttribute('style', controlStyle);
102
+ canvas.setAttribute('width', style.canvasWidth);
103
+ canvas.setAttribute('height', style.canvasHeight);
104
+ canvas.setAttribute('style', style.controlStyle);
110
105
  main.appendChild(canvas);
111
106
  var context = canvas.getContext('2d');
112
107
  context.drawImage(player, 0, 0, canvas.width, canvas.height);
@@ -120,13 +115,11 @@ function cameraCaptureControl(dom, store, getImageDoc, doneCallback) {
120
115
  // alert(msg)
121
116
  }, contentType); // toBlob
122
117
  }
123
-
124
118
  function reviewImage() {
125
119
  sendButton.style.visibility = 'visible';
126
120
  retakeButton.style.visibility = 'visible';
127
121
  shutterButton.style.visibility = 'collapse'; // Hide for now
128
122
  }
129
-
130
123
  function stopVideo() {
131
124
  if (player && player.srcObject) {
132
125
  player.srcObject.getVideoTracks().forEach(function (track) {
@@ -163,9 +156,9 @@ function cameraCaptureControl(dom, store, getImageDoc, doneCallback) {
163
156
  * @param {IndexedForumla} store - The quadstore to store data in
164
157
  * @param {fuunction} getImageDoc - returns NN of the image file to be created
165
158
  * @param {function<Node>} doneCallback - called with the image taken
166
- * @returns {DomElement} - A div element with the buton in it
159
+ * @returns {DomElement} - A div element with the button in it
167
160
  *
168
- * This expacts the buttton to a large control when it is pressed
161
+ * This expands the button to a large control when it is pressed
169
162
  */
170
163
 
171
164
  function cameraButton(dom, store, getImageDoc, doneCallback) {
@@ -1 +1 @@
1
- {"version":3,"file":"media-capture.js","names":["debug","_interopRequireWildcard","require","_iconBase","widgets","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","cameraIcon","icons","iconBase","retakeIcon","canvasWidth","canvasHeight","controlStyle","concat","contentType","cameraCaptureControl","dom","store","getImageDoc","doneCallback","div","createElement","destination","imageBlob","player","canvas","table","appendChild","mainTR","main","setAttribute","buttons","cancelButton","addEventListener","_event","stopVideo","retakeButton","button","retake","style","visibility","shutterButton","grabCanvas","sendButton","continueButton","saveBlob","displayPlayer","navigator","mediaDevices","Error","getUserMedia","constraints","then","stream","srcObject","video","removeChild","context","getContext","drawImage","width","height","parentNode","toBlob","blob","msg","type","size","log","reviewImage","getVideoTracks","forEach","track","stop","fetcher","webOperation","uri","data","_resp","err","alert","cameraButton","but","control","restoreButton","_x","_restoreButton","apply","arguments","_asyncToGenerator2","_regenerator","mark","_callee","imageDoc","wrap","_callee$","_context","prev","next"],"sources":["../../src/media/media-capture.ts"],"sourcesContent":["/// /////////////////////////////////////////////\n//\n// Media input widget\n//\n//\n// Workflow:\n// The HTML5 functionality (on mobille) is to prompt for either\n// a realtime camera capture , OR a selection from images already ont the device\n// (eg camera roll).\n//\n// The solid alternative is to either take a phtoto\n// or access cemra roll (etc) OR to access solid cloud storage of favorite photo almbums.\n// (Especially latest taken ones)\n//\nimport * as debug from '../debug'\n\n/** @module mediaCapture */\n\nimport { icons } from '../iconBase'\nimport * as widgets from '../widgets'\nimport { IndexedFormula, NamedNode } from 'rdflib'\n\nconst cameraIcon = icons.iconBase + 'noun_Camera_1618446_000000.svg' // Get it from github\nconst retakeIcon = icons.iconBase + 'noun_479395.svg' // Get it from github\n\nconst canvasWidth = '640'\nconst canvasHeight = '480'\n\nconst controlStyle = `border-radius: 0.5em; margin: 0.8em; width: ${canvasWidth}; height:${canvasHeight};`\n// const controlStyle = 'border-radius: 0.5em; margin: 0.8em; width: 320; height:240;'\nconst contentType = 'image/png'\n\n/** A control to capture a picture using camera\n * @param {Docuemnt} dom - The Document object\n * @param {IndexedForumla} store - The quadstore to store data in\n * @param {NamedNode} getImageDoc() - NN of the image file to be created\n * @param {function} doneCallback - Called when a picture has been taken\n */\nexport function cameraCaptureControl (\n dom: HTMLDocument,\n store: IndexedFormula,\n getImageDoc: () => NamedNode,\n doneCallback: (imageDoc) => Promise<void>\n) {\n const div = dom.createElement('div')\n let destination, imageBlob, player, canvas\n\n const table = div.appendChild(dom.createElement('table'))\n const mainTR = table.appendChild(dom.createElement('tr'))\n const main = mainTR.appendChild(dom.createElement('td'))\n main.setAttribute('colspan', '4')\n\n const buttons = table.appendChild(dom.createElement('tr'))\n\n buttons\n .appendChild(dom.createElement('td')) // Cancel button\n .appendChild(widgets.cancelButton(dom))\n .addEventListener('click', _event => {\n stopVideo()\n doneCallback(null)\n })\n\n const retakeButton = buttons\n .appendChild(dom.createElement('td')) // Retake button\n .appendChild(widgets.button(dom, retakeIcon, 'Retake'))\n retakeButton.addEventListener('click', _event => {\n retake()\n })\n retakeButton.style.visibility = 'collapse' // Hide for now\n\n const shutterButton = buttons\n .appendChild(dom.createElement('td')) // Trigger capture button\n .appendChild(\n widgets.button(dom, icons.iconBase + 'noun_10636.svg', 'Snap')\n )\n shutterButton.addEventListener('click', grabCanvas)\n shutterButton.style.visibility = 'collapse' // Hide for now\n\n const sendButton = buttons\n .appendChild(dom.createElement('td')) // Confirm and save button\n .appendChild(widgets.continueButton(dom)) // @@ or send icon??\n sendButton.addEventListener('click', _event => {\n saveBlob(imageBlob, destination)\n })\n sendButton.style.visibility = 'collapse' // Hide for now\n\n function displayPlayer () {\n player = main.appendChild(dom.createElement('video'))\n player.setAttribute('controls', '1')\n player.setAttribute('autoplay', '1')\n player.setAttribute('style', controlStyle)\n if (!navigator.mediaDevices) {\n throw new Error('navigator.mediaDevices not available')\n }\n navigator.mediaDevices.getUserMedia(constraints).then(stream => {\n player.srcObject = stream\n shutterButton.style.visibility = 'visible' // Enable\n sendButton.style.visibility = 'collapse'\n retakeButton.style.visibility = 'collapse'\n })\n }\n\n const constraints = {\n video: true\n }\n\n function retake () {\n main.removeChild(canvas)\n displayPlayer() // Make new one as old one is stuck black\n }\n\n function grabCanvas () {\n // Draw the video frame to the canvas.\n canvas = dom.createElement('canvas')\n canvas.setAttribute('width', canvasWidth)\n canvas.setAttribute('height', canvasHeight)\n canvas.setAttribute('style', controlStyle)\n main.appendChild(canvas)\n\n const context = canvas.getContext('2d')\n context.drawImage(player, 0, 0, canvas.width, canvas.height)\n\n player.parentNode.removeChild(player)\n\n canvas.toBlob(blob => {\n const msg = `got blob type ${blob.type} size ${blob.size}`\n debug.log(msg)\n destination = getImageDoc()\n imageBlob = blob // save for review\n reviewImage()\n // alert(msg)\n }, contentType) // toBlob\n }\n\n function reviewImage () {\n sendButton.style.visibility = 'visible'\n retakeButton.style.visibility = 'visible'\n shutterButton.style.visibility = 'collapse' // Hide for now\n }\n\n function stopVideo () {\n if (player && player.srcObject) {\n player.srcObject.getVideoTracks().forEach(track => track.stop())\n }\n }\n function saveBlob (blob, destination) {\n const contentType = blob.type\n // if (!confirm('Save picture to ' + destination + ' ?')) return\n debug.log(\n 'Putting ' + blob.size + ' bytes of ' + contentType + ' to ' + destination\n )\n // @@ TODO Remove casting\n ;(store as any).fetcher\n .webOperation('PUT', destination.uri, {\n data: blob,\n contentType\n })\n .then(\n _resp => {\n debug.log('ok saved ' + destination)\n stopVideo()\n doneCallback(destination)\n },\n err => {\n stopVideo()\n alert(err)\n }\n )\n }\n\n // Attach the video stream to the video element and autoplay.\n displayPlayer()\n return div\n}\n\n/** A button to capture a picture using camera\n * @param {Docuemnt} dom - The Document object\n * @param {IndexedForumla} store - The quadstore to store data in\n * @param {fuunction} getImageDoc - returns NN of the image file to be created\n * @param {function<Node>} doneCallback - called with the image taken\n * @returns {DomElement} - A div element with the buton in it\n *\n * This expacts the buttton to a large control when it is pressed\n */\n\nexport function cameraButton (\n dom: HTMLDocument,\n store: IndexedFormula,\n getImageDoc: () => NamedNode,\n doneCallback: (imageDoc) => Promise<void>\n): HTMLElement {\n const div = dom.createElement('div')\n const but = widgets.button(dom, cameraIcon, 'Take picture')\n let control\n async function restoreButton (imageDoc) {\n div.removeChild(control)\n div.appendChild(but)\n doneCallback(imageDoc)\n }\n div.appendChild(but)\n but.addEventListener('click', _event => {\n div.removeChild(but)\n control = cameraCaptureControl(\n dom,\n store,\n getImageDoc,\n restoreButton\n )\n div.appendChild(control)\n })\n return div\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"media-capture.js","names":["debug","_interopRequireWildcard","require","_iconBase","style","widgets","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","cameraIcon","icons","iconBase","retakeIcon","contentType","cameraCaptureControl","dom","store","getImageDoc","doneCallback","div","createElement","destination","imageBlob","player","canvas","table","appendChild","mainTR","main","setAttribute","buttons","cancelButton","addEventListener","_event","stopVideo","retakeButton","button","retake","visibility","shutterButton","grabCanvas","sendButton","continueButton","saveBlob","displayPlayer","controlStyle","navigator","mediaDevices","Error","getUserMedia","constraints","then","stream","srcObject","video","removeChild","canvasWidth","canvasHeight","context","getContext","drawImage","width","height","parentNode","toBlob","blob","msg","concat","type","size","log","reviewImage","getVideoTracks","forEach","track","stop","fetcher","webOperation","uri","data","_resp","err","alert","cameraButton","but","control","restoreButton","_x","_restoreButton","apply","arguments","_asyncToGenerator2","_regenerator","mark","_callee","imageDoc","wrap","_callee$","_context","prev","next"],"sources":["../../src/media/media-capture.ts"],"sourcesContent":["//\n// Media input widget\n//\n//\n// Workflow:\n// The HTML5 functionality (on mobile) is to prompt for either\n// a realtime camera capture, OR a selection from images already on the device\n// (eg camera roll).\n//\n// The solid alternative is to either take a photo\n// or access camera roll (etc) OR to access solid cloud storage of favorite photo albums.\n// (Especially latest taken ones)\n//\nimport * as debug from '../debug'\n\n/** @module mediaCapture */\n\nimport { icons } from '../iconBase'\nimport * as style from '../style'\nimport * as widgets from '../widgets'\nimport { IndexedFormula, NamedNode } from 'rdflib'\n\nconst cameraIcon = icons.iconBase + 'noun_Camera_1618446_000000.svg' // Get it from github\nconst retakeIcon = icons.iconBase + 'noun_479395.svg' // Get it from github\n\nconst contentType = 'image/png'\n\n/** A control to capture a picture using camera\n * @param {Docuemnt} dom - The Document object\n * @param {IndexedForumla} store - The quadstore to store data in\n * @param {NamedNode} getImageDoc() - NN of the image file to be created\n * @param {function} doneCallback - Called when a picture has been taken\n */\nexport function cameraCaptureControl (\n dom: HTMLDocument,\n store: IndexedFormula,\n getImageDoc: () => NamedNode,\n doneCallback: (imageDoc) => Promise<void>\n) {\n const div = dom.createElement('div')\n let destination, imageBlob, player, canvas\n\n const table = div.appendChild(dom.createElement('table'))\n const mainTR = table.appendChild(dom.createElement('tr'))\n const main = mainTR.appendChild(dom.createElement('td'))\n main.setAttribute('colspan', '4')\n\n const buttons = table.appendChild(dom.createElement('tr'))\n\n buttons\n .appendChild(dom.createElement('td')) // Cancel button\n .appendChild(widgets.cancelButton(dom))\n .addEventListener('click', _event => {\n stopVideo()\n doneCallback(null)\n })\n\n const retakeButton = buttons\n .appendChild(dom.createElement('td')) // Retake button\n .appendChild(widgets.button(dom, retakeIcon, 'Retake'))\n retakeButton.addEventListener('click', _event => {\n retake()\n })\n retakeButton.style.visibility = 'collapse' // Hide for now\n\n const shutterButton = buttons\n .appendChild(dom.createElement('td')) // Trigger capture button\n .appendChild(\n widgets.button(dom, icons.iconBase + 'noun_10636.svg', 'Snap')\n )\n shutterButton.addEventListener('click', grabCanvas)\n shutterButton.style.visibility = 'collapse' // Hide for now\n\n const sendButton = buttons\n .appendChild(dom.createElement('td')) // Confirm and save button\n .appendChild(widgets.continueButton(dom)) // @@ or send icon??\n sendButton.addEventListener('click', _event => {\n saveBlob(imageBlob, destination)\n })\n sendButton.style.visibility = 'collapse' // Hide for now\n\n function displayPlayer () {\n player = main.appendChild(dom.createElement('video'))\n player.setAttribute('controls', '1')\n player.setAttribute('autoplay', '1')\n player.setAttribute('style', style.controlStyle)\n if (!navigator.mediaDevices) {\n throw new Error('navigator.mediaDevices not available')\n }\n navigator.mediaDevices.getUserMedia(constraints).then(stream => {\n player.srcObject = stream\n shutterButton.style.visibility = 'visible' // Enable\n sendButton.style.visibility = 'collapse'\n retakeButton.style.visibility = 'collapse'\n })\n }\n\n const constraints = {\n video: true\n }\n\n function retake () {\n main.removeChild(canvas)\n displayPlayer() // Make new one as old one is stuck black\n }\n\n function grabCanvas () {\n // Draw the video frame to the canvas.\n canvas = dom.createElement('canvas')\n canvas.setAttribute('width', style.canvasWidth)\n canvas.setAttribute('height', style.canvasHeight)\n canvas.setAttribute('style', style.controlStyle)\n main.appendChild(canvas)\n\n const context = canvas.getContext('2d')\n context.drawImage(player, 0, 0, canvas.width, canvas.height)\n\n player.parentNode.removeChild(player)\n\n canvas.toBlob(blob => {\n const msg = `got blob type ${blob.type} size ${blob.size}`\n debug.log(msg)\n destination = getImageDoc()\n imageBlob = blob // save for review\n reviewImage()\n // alert(msg)\n }, contentType) // toBlob\n }\n\n function reviewImage () {\n sendButton.style.visibility = 'visible'\n retakeButton.style.visibility = 'visible'\n shutterButton.style.visibility = 'collapse' // Hide for now\n }\n\n function stopVideo () {\n if (player && player.srcObject) {\n player.srcObject.getVideoTracks().forEach(track => track.stop())\n }\n }\n function saveBlob (blob, destination) {\n const contentType = blob.type\n // if (!confirm('Save picture to ' + destination + ' ?')) return\n debug.log(\n 'Putting ' + blob.size + ' bytes of ' + contentType + ' to ' + destination\n )\n // @@ TODO Remove casting\n ;(store as any).fetcher\n .webOperation('PUT', destination.uri, {\n data: blob,\n contentType\n })\n .then(\n _resp => {\n debug.log('ok saved ' + destination)\n stopVideo()\n doneCallback(destination)\n },\n err => {\n stopVideo()\n alert(err)\n }\n )\n }\n\n // Attach the video stream to the video element and autoplay.\n displayPlayer()\n return div\n}\n\n/** A button to capture a picture using camera\n * @param {Docuemnt} dom - The Document object\n * @param {IndexedForumla} store - The quadstore to store data in\n * @param {fuunction} getImageDoc - returns NN of the image file to be created\n * @param {function<Node>} doneCallback - called with the image taken\n * @returns {DomElement} - A div element with the button in it\n *\n * This expands the button to a large control when it is pressed\n */\n\nexport function cameraButton (\n dom: HTMLDocument,\n store: IndexedFormula,\n getImageDoc: () => NamedNode,\n doneCallback: (imageDoc) => Promise<void>\n): HTMLElement {\n const div = dom.createElement('div')\n const but = widgets.button(dom, cameraIcon, 'Take picture')\n let control\n async function restoreButton (imageDoc) {\n div.removeChild(control)\n div.appendChild(but)\n doneCallback(imageDoc)\n }\n div.appendChild(but)\n but.addEventListener('click', _event => {\n div.removeChild(but)\n control = cameraCaptureControl(\n dom,\n store,\n getImageDoc,\n restoreButton\n )\n div.appendChild(control)\n })\n return div\n}\n"],"mappings":"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"}
@@ -52,7 +52,6 @@ function messageArea(dom, kb, subject, messageStore, options) {
52
52
  a.addEventListener('click', UI.widgets.openHrefInOutlineMode, true);
53
53
  a.setAttribute('style', 'color: #3B5998; text-decoration: none; '); // font-weight: bold
54
54
  }
55
-
56
55
  a.textContent = text;
57
56
  return a;
58
57
  };
@@ -221,7 +220,6 @@ function messageArea(dom, kb, subject, messageStore, options) {
221
220
  };
222
221
  renderMessage(bindings, true); // fresh from elsewhere
223
222
  };
224
-
225
223
  var renderMessage = function renderMessage(bindings, fresh) {
226
224
  var creator = bindings['?creator'];
227
225
  var message = bindings['?msg'];
@@ -295,7 +293,6 @@ function messageArea(dom, kb, subject, messageStore, options) {
295
293
  } else {
296
294
  messageTable.appendChild(tr); // not newestFirst
297
295
  }
298
-
299
296
  var query;
300
297
  // Do this with a live query to pull in messages from web
301
298
  if (options.query) {
@@ -315,7 +312,6 @@ function messageArea(dom, kb, subject, messageStore, options) {
315
312
  function doneQuery() {
316
313
  messageTable.fresh = true; // any new are fresh and so will be greenish
317
314
  }
318
-
319
315
  kb.query(query, renderMessage, undefined, doneQuery);
320
316
  div.refresh = function () {
321
317
  syncMessages(subject, messageTable);
@@ -1 +1 @@
1
- {"version":3,"file":"messageArea.js","names":["_iconBase","require","login","_interopRequireWildcard","_solidLogic","ns","rdf","style","utils","widgets","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","UI","icons","messageArea","dom","kb","subject","messageStore","options","solidLogicSingleton","store","doc","WF","Namespace","DCT","newestFirst","messageBodyStyle","div","createElement","messageTable","me","updater","anchor","text","term","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","keyCode","altKey","button","iconBase","buttonStyle","context","ensureLoggedIn","then","nick","person","s","any","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"],"sources":["../src/messageArea.js"],"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 }\n login.ensureLoggedIn(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"],"mappings":"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"}
1
+ {"version":3,"file":"messageArea.js","names":["_iconBase","require","login","_interopRequireWildcard","_solidLogic","ns","rdf","style","utils","widgets","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","UI","icons","messageArea","dom","kb","subject","messageStore","options","solidLogicSingleton","store","doc","WF","Namespace","DCT","newestFirst","messageBodyStyle","div","createElement","messageTable","me","updater","anchor","text","term","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","keyCode","altKey","button","iconBase","buttonStyle","context","ensureLoggedIn","then","nick","person","s","any","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"],"sources":["../src/messageArea.js"],"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 }\n login.ensureLoggedIn(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"],"mappings":"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"}
File without changes
File without changes
package/lib/ns.js CHANGED
File without changes
package/lib/ns.js.map CHANGED
File without changes
package/lib/pad.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * Notepad Widget
3
3
  */
4
4
  import { NamedNode, IndexedFormula } from 'rdflib';
5
- export { renderPartipants, participationObject, manageParticipation, recordParticipation } from './participation';
5
+ export { renderParticipants, participationObject, manageParticipation, recordParticipation } from './participation';
6
6
  type notepadOptions = {
7
7
  statusArea?: HTMLDivElement;
8
8
  exists?: boolean;
@@ -16,7 +16,7 @@ export declare function lightColorHash(author?: NamedNode): string;
16
16
  /** notepad
17
17
  *
18
18
  * @param {HTMLDocument} dom - the web page of the browser
19
- * @param {NamedNode} padDoc - the document into which the particpation should be shown
19
+ * @param {NamedNode} padDoc - the document in which the participation should be shown
20
20
  * @param {NamedNode} subject - the thing in which participation is happening
21
21
  * @param {NamedNode} me - person who is logged into the pod
22
22
  * @param {notepadOptions} options - the options that can be passed in consist of statusArea, exists
package/lib/pad.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pad.d.ts","sourceRoot":"","sources":["../src/pad.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAa,SAAS,EAAM,cAAc,EAAE,MAAM,QAAQ,CAAA;AAKjE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAMjH,KAAK,cAAc,GAAG;IACpB,UAAU,CAAC,EAAE,cAAc,CAAA;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAgBD;;;;GAIG;AACH,wBAAgB,cAAc,CAAE,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAU1D;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,cAAc,OAwuBzH;AAED;;;GAGG;AAGH,wBAAgB,SAAS,CAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,cAAc,SAUhE;AAED;;GAEG;AAEH,wBAAgB,SAAS,CAAE,GAAG,KAAA,OAE7B;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,cAAc,UA6C1D"}
1
+ {"version":3,"file":"pad.d.ts","sourceRoot":"","sources":["../src/pad.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAa,SAAS,EAAM,cAAc,EAAE,MAAM,QAAQ,CAAA;AAMjE,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAMnH,KAAK,cAAc,GAAG;IACpB,UAAU,CAAC,EAAE,cAAc,CAAA;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAgBD;;;;GAIG;AACH,wBAAgB,cAAc,CAAE,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAU1D;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,cAAc,OAusBzH;AAED;;;GAGG;AAGH,wBAAgB,SAAS,CAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,cAAc,SAUhE;AAED;;GAEG;AAEH,wBAAgB,SAAS,CAAE,GAAG,KAAA,OAE7B;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,cAAc,UA6C1D"}
package/lib/pad.js CHANGED
@@ -27,10 +27,10 @@ Object.defineProperty(exports, "recordParticipation", {
27
27
  return _participation.recordParticipation;
28
28
  }
29
29
  });
30
- Object.defineProperty(exports, "renderPartipants", {
30
+ Object.defineProperty(exports, "renderParticipants", {
31
31
  enumerable: true,
32
32
  get: function get() {
33
- return _participation.renderPartipants;
33
+ return _participation.renderParticipants;
34
34
  }
35
35
  });
36
36
  exports.xmlEncode = xmlEncode;
@@ -48,14 +48,15 @@ var _widgets = require("./widgets");
48
48
  var _utils = require("./utils");
49
49
  var _debug = require("./debug");
50
50
  var _solidLogic = require("solid-logic");
51
+ var style = _interopRequireWildcard(require("./style"));
51
52
  var _participation = require("./participation");
52
53
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
53
54
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
54
55
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
55
56
  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; } } /** **************
56
- * Notepad Widget
57
- */ /** @module pad
58
- */
57
+ * Notepad Widget
58
+ */ /** @module pad
59
+ */
59
60
  var store = _solidLogic.solidLogicSingleton.store;
60
61
  var PAD = (0, _rdflib.Namespace)('http://www.w3.org/ns/pim/pad#');
61
62
  /**
@@ -115,7 +116,7 @@ function lightColorHash(author) {
115
116
  /** notepad
116
117
  *
117
118
  * @param {HTMLDocument} dom - the web page of the browser
118
- * @param {NamedNode} padDoc - the document into which the particpation should be shown
119
+ * @param {NamedNode} padDoc - the document in which the participation should be shown
119
120
  * @param {NamedNode} subject - the thing in which participation is happening
120
121
  * @param {NamedNode} me - person who is logged into the pod
121
122
  * @param {notepadOptions} options - the options that can be passed in consist of statusArea, exists
@@ -128,7 +129,7 @@ function notepad(dom, padDoc, subject, me, options) {
128
129
  if (me && !me.uri) throw new Error('UI.pad.notepad: Invalid userid');
129
130
  var updater = store.updater;
130
131
  var PAD = (0, _rdflib.Namespace)('http://www.w3.org/ns/pim/pad#');
131
- table.setAttribute('style', 'padding: 1em; overflow: auto; resize: horizontal; min-width: 40em;');
132
+ table.setAttribute('style', style.notepadStyle);
132
133
  var upstreamStatus = null;
133
134
  var downstreamStatus = null;
134
135
  if (options.statusArea) {
@@ -137,10 +138,10 @@ function notepad(dom, padDoc, subject, me, options) {
137
138
  upstreamStatus = tr.appendChild(dom.createElement('td'));
138
139
  downstreamStatus = tr.appendChild(dom.createElement('td'));
139
140
  if (upstreamStatus) {
140
- upstreamStatus.setAttribute('style', 'width:50%');
141
+ upstreamStatus.setAttribute('style', style.upstreamStatus);
141
142
  }
142
143
  if (downstreamStatus) {
143
- downstreamStatus.setAttribute('style', 'width:50%');
144
+ downstreamStatus.setAttribute('style', style.downstreamStatus);
144
145
  }
145
146
  }
146
147
  /* @@ TODO want to look into this, it seems upstream should be a boolean and default to false ?
@@ -163,9 +164,9 @@ function notepad(dom, padDoc, subject, me, options) {
163
164
  var setPartStyle = function setPartStyle(part, colors, pending) {
164
165
  var chunk = part.subject;
165
166
  colors = colors || '';
166
- var baseStyle = 'font-size: 100%; font-family: monospace; width: 100%; border: none; white-space: pre-wrap;';
167
- var headingCore = 'font-family: sans-serif; font-weight: bold; border: none;';
168
- var headingStyle = ['font-size: 110%; padding-top: 0.5em; padding-bottom: 0.5em; width: 100%;', 'font-size: 120%; padding-top: 1em; padding-bottom: 1em; width: 100%;', 'font-size: 150%; padding-top: 1em; padding-bottom: 1em; width: 100%;'];
167
+ var baseStyle = style.baseStyle;
168
+ var headingCore = style.headingCore;
169
+ var headingStyle = style.headingStyle;
169
170
  var author = kb.any(chunk, ns.dc('author'));
170
171
  if (!colors && author) {
171
172
  // Hash the user webid for now -- later allow user selection!
@@ -177,9 +178,9 @@ function notepad(dom, padDoc, subject, me, options) {
177
178
  // and when the indent is stored as a Number itself, not in an object.
178
179
  var indent = kb.any(chunk, PAD('indent'));
179
180
  indent = indent ? indent.value : 0;
180
- var style = indent >= 0 ? baseStyle + 'text-indent: ' + indent * 3 + 'em;' : headingCore + headingStyle[-1 - indent];
181
+ var localStyle = indent >= 0 ? baseStyle + 'text-indent: ' + indent * 3 + 'em;' : headingCore + headingStyle[-1 - indent];
181
182
  // ? baseStyle + 'padding-left: ' + (indent * 3) + 'em;'
182
- part.setAttribute('style', style + colors);
183
+ part.setAttribute('style', localStyle + colors);
183
184
  };
184
185
  var removePart = function removePart(part) {
185
186
  var chunk = part.subject;
@@ -258,29 +259,6 @@ function notepad(dom, padDoc, subject, me, options) {
258
259
  }
259
260
  });
260
261
  };
261
-
262
- // Use this sort of code to split the line when return pressed in the middle @@
263
- /*
264
- function doGetCaretPosition doGetCaretPosition (oField) {
265
- var iCaretPos = 0
266
- // IE Support
267
- if (document.selection) {
268
- // Set focus on the element to avoid IE bug
269
- oField.focus()
270
- // To get cursor position, get empty selection range
271
- var oSel = document.selection.createRange()
272
- // Move selection start to 0 position
273
- oSel.moveStart('character', -oField.value.length)
274
- // The caret position is selection length
275
- iCaretPos = oSel.text.length
276
- // Firefox suppor
277
- } else if (oField.selectionStart || oField.selectionStart === '0') {
278
- iCaretPos = oField.selectionStart
279
- }
280
- // Return results
281
- return (iCaretPos)
282
- }
283
- */
284
262
  var addListeners = function addListeners(part, chunk) {
285
263
  part.addEventListener('keydown', function (event) {
286
264
  if (!updater) {
@@ -321,9 +299,9 @@ function notepad(dom, padDoc, subject, me, options) {
321
299
  // contents need to be sent again
322
300
  part.state = 4; // delete me
323
301
  return;
324
- case 3: // being deleted already
302
+ case 3: // already being deleted
325
303
  case 4:
326
- // already deleme state
304
+ // already deleted state
327
305
  return;
328
306
  case undefined:
329
307
  case 0:
@@ -438,7 +416,6 @@ function notepad(dom, padDoc, subject, me, options) {
438
416
  }
439
417
  });
440
418
  };
441
-
442
419
  part.addEventListener('input', function inputChangeListener(_event) {
443
420
  // debug.log("input changed "+part.value);
444
421
  setPartStyle(part, undefined, true); // grey out - not synced
@@ -624,8 +601,6 @@ function notepad(dom, padDoc, subject, me, options) {
624
601
  }
625
602
  return;
626
603
  }
627
- // var last = kb.the(undefined, PAD('previous'), subject)
628
- // var chunk = first // = kb.the(subject, PAD('next'));
629
604
  var row;
630
605
 
631
606
  // First see which of the logical chunks have existing physical manifestations
@@ -687,7 +662,7 @@ function notepad(dom, padDoc, subject, me, options) {
687
662
  (0, _debug.log)(' reloaded OK');
688
663
  clearStatus();
689
664
  if (!consistencyCheck()) {
690
- complain('CONSITENCY CHECK FAILED');
665
+ complain('CONSISTENCY CHECK FAILED');
691
666
  } else {
692
667
  refreshTree(table);
693
668
  }
@@ -697,7 +672,6 @@ function notepad(dom, padDoc, subject, me, options) {
697
672
  (0, _debug.log)(' Already reloading - stop');
698
673
  return; // once only needed
699
674
  }
700
-
701
675
  reloading = true;
702
676
  var retryTimeout = 1000; // ms
703
677
  var tryReload = function tryReload() {
@@ -754,7 +728,6 @@ function notepad(dom, padDoc, subject, me, options) {
754
728
  }
755
729
  });
756
730
  }
757
-
758
731
  return table;
759
732
  }
760
733