solid-panes 3.5.27 → 3.5.28-59efa615

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 (309) hide show
  1. package/.babelrc +0 -0
  2. package/.eslintignore +0 -0
  3. package/.eslintrc +0 -0
  4. package/.github/workflows/ci.yml +0 -0
  5. package/.nvmrc +0 -0
  6. package/Documentation/VisualLanguage.html +0 -0
  7. package/Documentation/conventions.md +0 -0
  8. package/LICENSE.md +0 -0
  9. package/README.md +0 -2
  10. package/dev/index.html +0 -0
  11. package/dev/loader.ts +0 -0
  12. package/dev/pane/index.ts +0 -0
  13. package/doc/images/panes-for-classes.epgz +0 -0
  14. package/doc/images/panes-for-classes.svg +0 -0
  15. package/jest.config.js +0 -0
  16. package/jest.setup.ts +0 -0
  17. package/lib/RDFXMLPane.js +15 -9
  18. package/lib/RDFXMLPane.js.map +1 -1
  19. package/lib/argument/argumentPane.js +12 -11
  20. package/lib/argument/argumentPane.js.map +1 -1
  21. package/lib/attach/attachPane.js +58 -90
  22. package/lib/attach/attachPane.js.map +1 -1
  23. package/lib/audio/audioPane.js +19 -37
  24. package/lib/audio/audioPane.js.map +1 -1
  25. package/lib/classInstancePane.js +21 -22
  26. package/lib/classInstancePane.js.map +1 -1
  27. package/lib/dashboard/basicPreferences.d.ts +0 -0
  28. package/lib/dashboard/basicPreferences.d.ts.map +0 -0
  29. package/lib/dashboard/basicPreferences.js +96 -154
  30. package/lib/dashboard/basicPreferences.js.map +1 -1
  31. package/lib/dashboard/dashboardPane.d.ts +0 -0
  32. package/lib/dashboard/dashboardPane.d.ts.map +0 -0
  33. package/lib/dashboard/dashboardPane.js +2 -18
  34. package/lib/dashboard/dashboardPane.js.map +1 -1
  35. package/lib/dashboard/homepage.d.ts +0 -0
  36. package/lib/dashboard/homepage.d.ts.map +0 -0
  37. package/lib/dashboard/homepage.js +27 -49
  38. package/lib/dashboard/homepage.js.map +1 -1
  39. package/lib/dataContentPane.js +26 -61
  40. package/lib/dataContentPane.js.map +1 -1
  41. package/lib/defaultPane.js +23 -23
  42. package/lib/defaultPane.js.map +1 -1
  43. package/lib/dokieli/dokieliPane.js +29 -34
  44. package/lib/dokieli/dokieliPane.js.map +1 -1
  45. package/lib/dokieli/new.js +6 -1
  46. package/lib/dokieli/new.js.map +1 -1
  47. package/lib/form/pane.js +34 -45
  48. package/lib/form/pane.js.map +1 -1
  49. package/lib/global.d.js +0 -0
  50. package/lib/global.d.js.map +0 -0
  51. package/lib/home/homePane.d.ts +0 -0
  52. package/lib/home/homePane.d.ts.map +0 -0
  53. package/lib/home/homePane.js +49 -67
  54. package/lib/home/homePane.js.map +1 -1
  55. package/lib/humanReadablePane.js +14 -28
  56. package/lib/humanReadablePane.js.map +1 -1
  57. package/lib/imagePane.js +19 -14
  58. package/lib/imagePane.js.map +1 -1
  59. package/lib/index.d.ts +0 -0
  60. package/lib/index.d.ts.map +0 -0
  61. package/lib/index.js +6 -20
  62. package/lib/index.js.map +1 -1
  63. package/lib/internal/internalPane.d.ts +0 -0
  64. package/lib/internal/internalPane.d.ts.map +0 -0
  65. package/lib/internal/internalPane.js +10 -41
  66. package/lib/internal/internalPane.js.map +1 -1
  67. package/lib/mainPage/footer.d.ts +0 -0
  68. package/lib/mainPage/footer.d.ts.map +0 -0
  69. package/lib/mainPage/footer.js +0 -4
  70. package/lib/mainPage/footer.js.map +1 -1
  71. package/lib/mainPage/header.d.ts +0 -0
  72. package/lib/mainPage/header.d.ts.map +0 -0
  73. package/lib/mainPage/header.js +66 -100
  74. package/lib/mainPage/header.js.map +1 -1
  75. package/lib/mainPage/index.d.ts +0 -0
  76. package/lib/mainPage/index.d.ts.map +0 -0
  77. package/lib/mainPage/index.js +17 -30
  78. package/lib/mainPage/index.js.map +1 -1
  79. package/lib/microblogPane/microblogPane.js +182 -321
  80. package/lib/microblogPane/microblogPane.js.map +1 -1
  81. package/lib/n3Pane.js +12 -8
  82. package/lib/n3Pane.js.map +1 -1
  83. package/lib/outline/context.d.ts +0 -0
  84. package/lib/outline/context.d.ts.map +0 -0
  85. package/lib/outline/context.js +0 -2
  86. package/lib/outline/context.js.map +1 -1
  87. package/lib/outline/licenseOptions.js +21 -35
  88. package/lib/outline/licenseOptions.js.map +1 -1
  89. package/lib/outline/manager.js +740 -1176
  90. package/lib/outline/manager.js.map +1 -1
  91. package/lib/outline/manager.test.js +16 -25
  92. package/lib/outline/manager.test.js.map +1 -1
  93. package/lib/outline/outlineIcons.js +39 -26
  94. package/lib/outline/outlineIcons.js.map +1 -1
  95. package/lib/outline/propertyViews.d.ts +3 -2
  96. package/lib/outline/propertyViews.d.ts.map +1 -1
  97. package/lib/outline/propertyViews.js +7 -15
  98. package/lib/outline/propertyViews.js.map +1 -1
  99. package/lib/outline/propertyViews.test.js +7 -7
  100. package/lib/outline/propertyViews.test.js.map +1 -1
  101. package/lib/outline/queryByExample.js +28 -80
  102. package/lib/outline/queryByExample.js.map +1 -1
  103. package/lib/outline/userInput.js +221 -459
  104. package/lib/outline/userInput.js.map +1 -1
  105. package/lib/outline/viewAsImage.d.ts +0 -0
  106. package/lib/outline/viewAsImage.d.ts.map +0 -0
  107. package/lib/outline/viewAsImage.js +0 -6
  108. package/lib/outline/viewAsImage.js.map +1 -1
  109. package/lib/outline/viewAsMbox.d.ts +0 -0
  110. package/lib/outline/viewAsMbox.d.ts.map +0 -0
  111. package/lib/outline/viewAsMbox.js +3 -4
  112. package/lib/outline/viewAsMbox.js.map +1 -1
  113. package/lib/pad/padPane.d.ts +0 -0
  114. package/lib/pad/padPane.d.ts.map +0 -0
  115. package/lib/pad/padPane.js +45 -93
  116. package/lib/pad/padPane.js.map +1 -1
  117. package/lib/playlist/playlistPane.js +11 -21
  118. package/lib/playlist/playlistPane.js.map +1 -1
  119. package/lib/profile/editProfile.view.d.ts +0 -0
  120. package/lib/profile/editProfile.view.d.ts.map +1 -1
  121. package/lib/profile/editProfile.view.js +22 -23
  122. package/lib/profile/editProfile.view.js.map +1 -1
  123. package/lib/profile/profile.dom.d.ts +0 -0
  124. package/lib/profile/profile.dom.d.ts.map +0 -0
  125. package/lib/profile/profile.dom.js +0 -3
  126. package/lib/profile/profile.dom.js.map +1 -1
  127. package/lib/registerPanes.js +99 -54
  128. package/lib/registerPanes.js.map +1 -1
  129. package/lib/schedule/formsForSchedule.js +6 -1
  130. package/lib/schedule/formsForSchedule.js.map +1 -1
  131. package/lib/schedule/schedulePane.js +71 -126
  132. package/lib/schedule/schedulePane.js.map +1 -1
  133. package/lib/sharing/sharingPane.d.ts +0 -0
  134. package/lib/sharing/sharingPane.d.ts.map +0 -0
  135. package/lib/sharing/sharingPane.js +2 -10
  136. package/lib/sharing/sharingPane.js.map +1 -1
  137. package/lib/slideshow/slideshowPane.js +21 -21
  138. package/lib/slideshow/slideshowPane.js.map +1 -1
  139. package/lib/socialPane.js +58 -135
  140. package/lib/socialPane.js.map +1 -1
  141. package/lib/tabbed/tabbedPane.d.ts +0 -0
  142. package/lib/tabbed/tabbedPane.d.ts.map +0 -0
  143. package/lib/tabbed/tabbedPane.js +32 -48
  144. package/lib/tabbed/tabbedPane.js.map +1 -1
  145. package/lib/tableViewPane.js +15 -9
  146. package/lib/tableViewPane.js.map +1 -1
  147. package/lib/test-import-export/common.js +8 -3
  148. package/lib/test-import-export/common.js.map +1 -1
  149. package/lib/test-import-export/edit-importer.js +10 -14
  150. package/lib/test-import-export/edit-importer.js.map +1 -1
  151. package/lib/test-import-export/testImportExport.js +0 -0
  152. package/lib/test-import-export/testImportExport.js.map +0 -0
  153. package/lib/transaction/pane.js +38 -91
  154. package/lib/transaction/pane.js.map +1 -1
  155. package/lib/transaction/period.js +27 -71
  156. package/lib/transaction/period.js.map +1 -1
  157. package/lib/trip/tripPane.js +38 -35
  158. package/lib/trip/tripPane.js.map +1 -1
  159. package/lib/trustedApplications/trustedApplications.dom.d.ts +0 -0
  160. package/lib/trustedApplications/trustedApplications.dom.d.ts.map +0 -0
  161. package/lib/trustedApplications/trustedApplications.dom.js +12 -35
  162. package/lib/trustedApplications/trustedApplications.dom.js.map +1 -1
  163. package/lib/trustedApplications/trustedApplications.test.js +6 -8
  164. package/lib/trustedApplications/trustedApplications.test.js.map +1 -1
  165. package/lib/trustedApplications/trustedApplications.utils.d.ts +0 -0
  166. package/lib/trustedApplications/trustedApplications.utils.d.ts.map +0 -0
  167. package/lib/trustedApplications/trustedApplications.utils.js +1 -11
  168. package/lib/trustedApplications/trustedApplications.utils.js.map +1 -1
  169. package/lib/trustedApplications/trustedApplications.view.d.ts +0 -0
  170. package/lib/trustedApplications/trustedApplications.view.d.ts.map +0 -0
  171. package/lib/trustedApplications/trustedApplications.view.js +38 -61
  172. package/lib/trustedApplications/trustedApplications.view.js.map +1 -1
  173. package/lib/types.d.ts +0 -0
  174. package/lib/types.d.ts.map +0 -0
  175. package/lib/types.js +0 -0
  176. package/lib/types.js.map +0 -0
  177. package/lib/ui/pane.js +30 -29
  178. package/lib/ui/pane.js.map +1 -1
  179. package/lib/versionInfo.d.ts +0 -0
  180. package/lib/versionInfo.d.ts.map +0 -0
  181. package/lib/versionInfo.js +14 -14
  182. package/lib/versionInfo.js.map +1 -1
  183. package/lib/video/videoPane.js +11 -7
  184. package/lib/video/videoPane.js.map +1 -1
  185. package/package.json +26 -26
  186. package/src/RDFXMLPane.js +2 -2
  187. package/src/argument/argumentPane.js +1 -1
  188. package/src/argument/argument_icon_v04.jpg +0 -0
  189. package/src/argument/icon_argument.png +0 -0
  190. package/src/argument/transparentyingyang.png +0 -0
  191. package/src/attach/attachPane.js +3 -3
  192. package/src/attach/tbl-paperclip-128.png +0 -0
  193. package/src/attach/tbl-paperclip-22.png +0 -0
  194. package/src/attach/tbl-paperclip-22a.png +0 -0
  195. package/src/audio/audioPane.js +3 -3
  196. package/src/chatPreferencesForm.ttl +0 -0
  197. package/src/classInstancePane.js +3 -3
  198. package/src/dashboard/basicPreferences.ts +0 -0
  199. package/src/dashboard/dashboardPane.ts +0 -0
  200. package/src/dashboard/homepage.ts +0 -0
  201. package/src/dashboard/languages/codes.html +0 -0
  202. package/src/dashboard/languages/codes.xml +0 -0
  203. package/src/dashboard/languages/codes2.txt +0 -0
  204. package/src/dashboard/languages/foo +0 -0
  205. package/src/dashboard/languages/foo.ttl +0 -0
  206. package/src/dashboard/languages/get-language-names.sh +0 -0
  207. package/src/dashboard/ontologyData.ttl +0 -0
  208. package/src/dashboard/preferencesFormText.ttl +0 -0
  209. package/src/dataContentPane.js +3 -4
  210. package/src/defaultPane.js +3 -3
  211. package/src/dokieli/Makefile +0 -0
  212. package/src/dokieli/dokieliPane.js +5 -5
  213. package/src/dokieli/new.html +0 -0
  214. package/src/dokieli/new.js +1 -1
  215. package/src/form/form-22.png +0 -0
  216. package/src/form/form-b-22.png +0 -0
  217. package/src/form/form.graffle +0 -0
  218. package/src/form/form.png +0 -0
  219. package/src/form/pane.js +2 -2
  220. package/src/form/psuedocode-notes.txt +0 -0
  221. package/src/global.d.ts +0 -0
  222. package/src/home/homePane.ts +0 -0
  223. package/src/humanReadablePane.js +0 -0
  224. package/src/imagePane.js +2 -2
  225. package/src/index.ts +1 -1
  226. package/src/internal/internalPane.ts +0 -0
  227. package/src/mainPage/footer.ts +0 -0
  228. package/src/mainPage/header.ts +0 -0
  229. package/src/mainPage/index.ts +0 -0
  230. package/src/meeting/Makefile +0 -0
  231. package/src/meeting/test/meeting1/Actions/actions.ttl +0 -0
  232. package/src/meeting/test/meeting1/Actions/config.ttl +0 -0
  233. package/src/meeting/test/meeting1/Actions/state.ttl +0 -0
  234. package/src/meeting/test/meeting1/Schedule/details.ttl +0 -0
  235. package/src/meeting/test/meeting1/Schedule/details.ttl.acl +0 -0
  236. package/src/meeting/test/meeting1/Schedule/forms.ttl +0 -0
  237. package/src/meeting/test/meeting1/Schedule/forms.ttl.acl +0 -0
  238. package/src/meeting/test/meeting1/Schedule/index.html +0 -0
  239. package/src/meeting/test/meeting1/Schedule/index.html.acl +0 -0
  240. package/src/meeting/test/meeting1/Schedule/results.ttl +0 -0
  241. package/src/meeting/test/meeting1/Schedule/results.ttl.acl +0 -0
  242. package/src/meeting/test/meeting1/SharedNotes/pad.ttl +0 -0
  243. package/src/meeting/test/meeting1/chat/chat.ttl +0 -0
  244. package/src/meeting/test/meeting1/details.ttl +0 -0
  245. package/src/meeting/test/meeting1/pad/pad.ttl +0 -0
  246. package/src/microblogPane/mbStyle.css +0 -0
  247. package/src/microblogPane/microblogPane.js +1 -1
  248. package/src/n3Pane.js +2 -2
  249. package/src/outline/context.ts +0 -0
  250. package/src/outline/licenseOptions.js +9 -8
  251. package/src/outline/manager.js +18 -20
  252. package/src/outline/manager.test.ts +6 -0
  253. package/src/outline/outlineIcons.js +4 -2
  254. package/src/outline/propertyViews.test.ts +7 -1
  255. package/src/outline/propertyViews.ts +3 -3
  256. package/src/outline/queryByExample.js +3 -9
  257. package/src/outline/userInput.js +1 -1
  258. package/src/outline/viewAsImage.ts +0 -0
  259. package/src/outline/viewAsMbox.ts +0 -0
  260. package/src/pad/images/ColourOff.ai +0 -0
  261. package/src/pad/images/ColourOff.png +0 -0
  262. package/src/pad/images/ColourOn.ai +0 -0
  263. package/src/pad/images/ColourOn.png +0 -0
  264. package/src/pad/padPane.ts +0 -0
  265. package/src/playlist/playlistPane.js +3 -3
  266. package/src/profile/editProfile.view.ts +20 -0
  267. package/src/profile/profile.dom.ts +0 -0
  268. package/src/profile/profileFormText.ttl +0 -0
  269. package/src/registerPanes.js +92 -52
  270. package/src/schedule/Makefile +0 -0
  271. package/src/schedule/formsForSchedule.js +1 -1
  272. package/src/schedule/formsForSchedule.ttl +0 -0
  273. package/src/schedule/schedulePane.js +6 -2
  274. package/src/sharing/sharingPane.ts +0 -0
  275. package/src/slideshow/slideshowPane.js +3 -6
  276. package/src/socialPane.js +4 -5
  277. package/src/style/tabbedtab.css +0 -0
  278. package/src/tabbed/tabbedPane.ts +0 -0
  279. package/src/tableViewPane.js +3 -3
  280. package/src/test-import-export/common.js +1 -1
  281. package/src/test-import-export/edit-importer.js +5 -10
  282. package/src/test-import-export/testImportExport.js +0 -0
  283. package/src/transaction/068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png +0 -0
  284. package/src/transaction/075988-3d-transparent-glass-icon-business-currency-british-pound-sc35.png +0 -0
  285. package/src/transaction/22-pixel-068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png +0 -0
  286. package/src/transaction/pane.js +3 -3
  287. package/src/transaction/period.js +2 -2
  288. package/src/transaction/thumbs_075987-3d-transparent-glass-icon-business-creditcard2.png +0 -0
  289. package/src/transaction/thumbs_075989-3d-transparent-glass-icon-business-currency-cent-sc35.png +0 -0
  290. package/src/trip/tripPane.js +3 -3
  291. package/src/trustedApplications/__snapshots__/trustedApplications.test.ts.snap +0 -0
  292. package/src/trustedApplications/trustedApplications.dom.ts +0 -0
  293. package/src/trustedApplications/trustedApplications.test.ts +4 -0
  294. package/src/trustedApplications/trustedApplications.utils.ts +0 -0
  295. package/src/trustedApplications/trustedApplications.view.ts +0 -0
  296. package/src/types.ts +0 -0
  297. package/src/ui/22-builder.png +0 -0
  298. package/src/ui/builder.graffle +0 -0
  299. package/src/ui/builder.png +0 -0
  300. package/src/ui/builder2.png +0 -0
  301. package/src/ui/pane.js +3 -3
  302. package/src/versionInfo.ts +14 -14
  303. package/src/video/videoPane.js +3 -3
  304. package/timestamp.sh +0 -0
  305. package/travis/bumpversion.js +0 -0
  306. package/tsconfig.json +0 -0
  307. package/typings/raw-loader.d.ts +0 -0
  308. package/typings/solid-namespace/index.d.ts +0 -0
  309. package/webpack.config.js +0 -0
@@ -4,52 +4,39 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.generateHomepage = generateHomepage;
7
-
8
7
  var _rdflib = require("rdflib");
9
-
10
8
  var _solidUi = require("solid-ui");
11
-
12
9
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
13
-
14
- function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return generator._invoke = function (innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; }(innerFn, self, context), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; this._invoke = function (method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); }; } function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (undefined === method) { if (context.delegate = null, "throw" === context.method) { if (delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method)) return ContinueSentinel; context.method = "throw", context.arg = new TypeError("The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, "constructor", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (object) { var keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
15
-
10
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
16
11
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
17
-
18
12
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
19
-
20
13
  function generateHomepage(_x, _x2, _x3) {
21
14
  return _generateHomepage.apply(this, arguments);
22
15
  }
23
-
24
16
  function _generateHomepage() {
25
17
  _generateHomepage = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(subject, store, fetcher) {
26
18
  var ownersProfile, name, wrapper;
27
19
  return _regeneratorRuntime().wrap(function _callee$(_context) {
28
- while (1) {
29
- switch (_context.prev = _context.next) {
30
- case 0:
31
- _context.next = 2;
32
- return loadProfile(subject, fetcher);
33
-
34
- case 2:
35
- ownersProfile = _context.sent;
36
- name = getName(store, ownersProfile);
37
- wrapper = document.createElement('div');
38
- wrapper.classList.add('container');
39
- wrapper.appendChild(createTitle(ownersProfile.uri, name));
40
- wrapper.appendChild(createDataSection(name));
41
- return _context.abrupt("return", wrapper);
42
-
43
- case 9:
44
- case "end":
45
- return _context.stop();
46
- }
20
+ while (1) switch (_context.prev = _context.next) {
21
+ case 0:
22
+ _context.next = 2;
23
+ return loadProfile(subject, fetcher);
24
+ case 2:
25
+ ownersProfile = _context.sent;
26
+ name = getName(store, ownersProfile);
27
+ wrapper = document.createElement('div');
28
+ wrapper.classList.add('container');
29
+ wrapper.appendChild(createTitle(ownersProfile.uri, name));
30
+ wrapper.appendChild(createDataSection(name));
31
+ return _context.abrupt("return", wrapper);
32
+ case 9:
33
+ case "end":
34
+ return _context.stop();
47
35
  }
48
36
  }, _callee);
49
37
  }));
50
38
  return _generateHomepage.apply(this, arguments);
51
39
  }
52
-
53
40
  function createDataSection(name) {
54
41
  var dataSection = document.createElement('section');
55
42
  var title = document.createElement('h2');
@@ -65,7 +52,6 @@ function createDataSection(name) {
65
52
  listGroup.appendChild(publicDataLink);
66
53
  return dataSection;
67
54
  }
68
-
69
55
  function createTitle(uri, name) {
70
56
  var profileLink = document.createElement('a');
71
57
  profileLink.href = uri;
@@ -77,37 +63,29 @@ function createTitle(uri, name) {
77
63
  title.appendChild(profileLinkPost);
78
64
  return title;
79
65
  }
80
-
81
66
  function loadProfile(_x4, _x5) {
82
67
  return _loadProfile.apply(this, arguments);
83
68
  }
84
-
85
69
  function _loadProfile() {
86
70
  _loadProfile = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(subject, fetcher) {
87
71
  var pod, webId;
88
72
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
89
- while (1) {
90
- switch (_context2.prev = _context2.next) {
91
- case 0:
92
- pod = subject.site().uri; // TODO: This is a hack - we cannot assume that the profile is at this document, but we will live with it for now
93
-
94
- webId = (0, _rdflib.sym)("".concat(pod, "profile/card#me"));
95
- _context2.next = 4;
96
- return fetcher.load(webId);
97
-
98
- case 4:
99
- return _context2.abrupt("return", webId);
100
-
101
- case 5:
102
- case "end":
103
- return _context2.stop();
104
- }
73
+ while (1) switch (_context2.prev = _context2.next) {
74
+ case 0:
75
+ pod = subject.site().uri; // TODO: This is a hack - we cannot assume that the profile is at this document, but we will live with it for now
76
+ webId = (0, _rdflib.sym)("".concat(pod, "profile/card#me"));
77
+ _context2.next = 4;
78
+ return fetcher.load(webId);
79
+ case 4:
80
+ return _context2.abrupt("return", webId);
81
+ case 5:
82
+ case "end":
83
+ return _context2.stop();
105
84
  }
106
85
  }, _callee2);
107
86
  }));
108
87
  return _loadProfile.apply(this, arguments);
109
88
  }
110
-
111
89
  function getName(store, ownersProfile) {
112
90
  return store.anyValue(ownersProfile, _solidUi.ns.vcard('fn'), null, ownersProfile.doc()) || store.anyValue(ownersProfile, _solidUi.ns.foaf('name'), null, ownersProfile.doc()) || new URL(ownersProfile.uri).host.split('.')[0];
113
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"homepage.js","names":["generateHomepage","subject","store","fetcher","loadProfile","ownersProfile","name","getName","wrapper","document","createElement","classList","add","appendChild","createTitle","uri","createDataSection","dataSection","title","innerText","listGroup","publicDataLink","href","window","location","profileLink","profileLinkPost","pod","site","webId","sym","load","anyValue","ns","vcard","doc","foaf","URL","host","split"],"sources":["../../src/dashboard/homepage.ts"],"sourcesContent":["import { Fetcher, IndexedFormula, NamedNode, sym } from 'rdflib'\nimport { ns } from 'solid-ui'\n\nexport async function generateHomepage (\n subject: NamedNode,\n store: IndexedFormula,\n fetcher: Fetcher\n): Promise<HTMLElement> {\n const ownersProfile = await loadProfile(subject, fetcher)\n const name = getName(store, ownersProfile)\n\n const wrapper = document.createElement('div')\n wrapper.classList.add('container')\n wrapper.appendChild(createTitle(ownersProfile.uri, name))\n wrapper.appendChild(createDataSection(name))\n\n return wrapper\n}\n\nfunction createDataSection (name: string): HTMLElement {\n const dataSection = document.createElement('section')\n\n const title = document.createElement('h2')\n title.innerText = 'Data'\n dataSection.appendChild(title)\n\n const listGroup = document.createElement('div')\n listGroup.classList.add('list-group')\n dataSection.appendChild(listGroup)\n\n const publicDataLink = document.createElement('a')\n publicDataLink.classList.add('list-group-item')\n publicDataLink.href = window.document.location.href + 'public/'\n publicDataLink.innerText = `View ${name}'s files`\n listGroup.appendChild(publicDataLink)\n\n return dataSection\n}\n\nfunction createTitle (uri: string, name: string): HTMLElement {\n const profileLink = document.createElement('a')\n profileLink.href = uri\n profileLink.innerText = name\n\n const profileLinkPost = document.createElement('span')\n profileLinkPost.innerText = '\\'s Pod'\n\n const title = document.createElement('h1')\n title.appendChild(profileLink)\n title.appendChild(profileLinkPost)\n\n return title\n}\n\nasync function loadProfile (\n subject: NamedNode,\n fetcher: Fetcher\n): Promise<NamedNode> {\n const pod = subject.site().uri\n // TODO: This is a hack - we cannot assume that the profile is at this document, but we will live with it for now\n const webId = sym(`${pod}profile/card#me`)\n await fetcher.load(webId)\n return webId\n}\n\nfunction getName (store: IndexedFormula, ownersProfile: NamedNode): string {\n return (\n store.anyValue(ownersProfile, ns.vcard('fn'), null, ownersProfile.doc()) ||\n store.anyValue(ownersProfile, ns.foaf('name'), null, ownersProfile.doc()) ||\n new URL(ownersProfile.uri).host.split('.')[0]\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"homepage.js","names":["generateHomepage","subject","store","fetcher","loadProfile","ownersProfile","name","getName","wrapper","document","createElement","classList","add","appendChild","createTitle","uri","createDataSection","dataSection","title","innerText","listGroup","publicDataLink","href","window","location","profileLink","profileLinkPost","pod","site","webId","sym","load","anyValue","ns","vcard","doc","foaf","URL","host","split"],"sources":["../../src/dashboard/homepage.ts"],"sourcesContent":["import { Fetcher, IndexedFormula, NamedNode, sym } from 'rdflib'\nimport { ns } from 'solid-ui'\n\nexport async function generateHomepage (\n subject: NamedNode,\n store: IndexedFormula,\n fetcher: Fetcher\n): Promise<HTMLElement> {\n const ownersProfile = await loadProfile(subject, fetcher)\n const name = getName(store, ownersProfile)\n\n const wrapper = document.createElement('div')\n wrapper.classList.add('container')\n wrapper.appendChild(createTitle(ownersProfile.uri, name))\n wrapper.appendChild(createDataSection(name))\n\n return wrapper\n}\n\nfunction createDataSection (name: string): HTMLElement {\n const dataSection = document.createElement('section')\n\n const title = document.createElement('h2')\n title.innerText = 'Data'\n dataSection.appendChild(title)\n\n const listGroup = document.createElement('div')\n listGroup.classList.add('list-group')\n dataSection.appendChild(listGroup)\n\n const publicDataLink = document.createElement('a')\n publicDataLink.classList.add('list-group-item')\n publicDataLink.href = window.document.location.href + 'public/'\n publicDataLink.innerText = `View ${name}'s files`\n listGroup.appendChild(publicDataLink)\n\n return dataSection\n}\n\nfunction createTitle (uri: string, name: string): HTMLElement {\n const profileLink = document.createElement('a')\n profileLink.href = uri\n profileLink.innerText = name\n\n const profileLinkPost = document.createElement('span')\n profileLinkPost.innerText = '\\'s Pod'\n\n const title = document.createElement('h1')\n title.appendChild(profileLink)\n title.appendChild(profileLinkPost)\n\n return title\n}\n\nasync function loadProfile (\n subject: NamedNode,\n fetcher: Fetcher\n): Promise<NamedNode> {\n const pod = subject.site().uri\n // TODO: This is a hack - we cannot assume that the profile is at this document, but we will live with it for now\n const webId = sym(`${pod}profile/card#me`)\n await fetcher.load(webId)\n return webId\n}\n\nfunction getName (store: IndexedFormula, ownersProfile: NamedNode): string {\n return (\n store.anyValue(ownersProfile, ns.vcard('fn'), null, ownersProfile.doc()) ||\n store.anyValue(ownersProfile, ns.foaf('name'), null, ownersProfile.doc()) ||\n new URL(ownersProfile.uri).host.split('.')[0]\n )\n}\n"],"mappings":"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"}
@@ -1,20 +1,26 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.dataContentPane = void 0;
8
+ var UI = _interopRequireWildcard(require("solid-ui"));
9
+ 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); }
10
+ 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; }
3
11
  /* Data content Pane
4
12
  **
5
13
  ** This pane shows the content of a particular RDF resource
6
14
  ** or at least the RDF semantics we attribute to that resource.
7
15
  */
16
+
8
17
  // To do: - Only take data from one graph
9
18
  // - Only do forwards not backward?
10
19
  // - Expand automatically all the way down
11
20
  // - original source view? Use ffox view source
12
- var UI = require('solid-ui');
13
-
14
- var $rdf = require('rdflib');
15
21
 
16
22
  var ns = UI.ns;
17
- module.exports = {
23
+ var dataContentPane = {
18
24
  icon: UI.icons.originalIconBase + 'rdf_flyer.24.gif',
19
25
  name: 'dataContents',
20
26
  audience: [ns.solid('Developer')],
@@ -22,62 +28,51 @@ module.exports = {
22
28
  if ('http://www.w3.org/2007/ont/link#ProtocolEvent' in context.session.store.findTypeURIs(subject)) {
23
29
  return null;
24
30
  }
25
-
26
31
  var n = context.session.store.statementsMatching(undefined, undefined, undefined, subject).length;
27
32
  if (n === 0) return null;
28
33
  return 'Data (' + n + ')';
29
34
  },
30
-
31
35
  /*
32
36
  shouldGetFocus: function(subject) {
33
37
  return store.whether(subject, UI.ns.rdf('type'), UI.ns.link('RDFDocument'))
34
38
  },
35
39
  */
36
40
  statementsAsTables: function statementsAsTables(sts, context, initialRoots) {
37
- var myDocument = context.dom; // const outliner = context.getOutliner(myDocument)
38
-
41
+ var myDocument = context.dom;
42
+ // const outliner = context.getOutliner(myDocument)
39
43
  var rep = myDocument.createElement('table');
40
44
  var sz = UI.rdf.Serializer(context.session.store);
41
45
  var res = sz.rootSubjects(sts);
42
46
  var roots = res.roots;
43
47
  var subjects = res.subjects;
44
48
  var loopBreakers = res.loopBreakers;
45
-
46
49
  for (var x in loopBreakers) {
47
50
  console.log('\tdataContentPane: loopbreaker:' + x);
48
51
  }
49
-
50
52
  var doneBnodes = {}; // For preventing looping
51
-
52
53
  var referencedBnodes = {}; // Bnodes which need to be named alas
53
- // The property tree for a single subject or anonymous node
54
54
 
55
+ // The property tree for a single subject or anonymous node
55
56
  function propertyTree(subject) {
56
57
  // print('Proprty tree for '+subject)
57
58
  var rep = myDocument.createElement('table');
58
59
  var lastPred = null;
59
60
  var sts = subjects[sz.toStr(subject)]; // relevant statements
60
-
61
61
  if (!sts) {
62
62
  // No statements in tree
63
63
  rep.appendChild(myDocument.createTextNode('...')); // just empty bnode as object
64
-
65
64
  return rep;
66
65
  }
67
-
68
66
  sts.sort();
69
67
  var same = 0;
70
68
  var predicateTD; // The cell which holds the predicate
71
-
72
69
  for (var i = 0; i < sts.length; i++) {
73
70
  var st = sts[i];
74
71
  var tr = myDocument.createElement('tr');
75
-
76
72
  if (st.predicate.uri !== lastPred) {
77
73
  if (lastPred && same > 1) {
78
74
  predicateTD.setAttribute('rowspan', '' + same);
79
75
  }
80
-
81
76
  predicateTD = myDocument.createElement('td');
82
77
  predicateTD.setAttribute('class', 'pred');
83
78
  var anchor = myDocument.createElement('a');
@@ -89,22 +84,19 @@ module.exports = {
89
84
  lastPred = st.predicate.uri;
90
85
  same = 0;
91
86
  }
92
-
93
87
  same++;
94
88
  var objectTD = myDocument.createElement('td');
95
89
  objectTD.appendChild(objectTree(st.object));
96
90
  tr.appendChild(objectTD);
97
91
  rep.appendChild(tr);
98
92
  }
99
-
100
93
  if (lastPred && same > 1) predicateTD.setAttribute('rowspan', '' + same);
101
94
  return rep;
102
- } // Convert a set of statements into a nested tree of tables
103
-
95
+ }
104
96
 
97
+ // Convert a set of statements into a nested tree of tables
105
98
  function objectTree(obj) {
106
99
  var res, anchor;
107
-
108
100
  switch (obj.termType) {
109
101
  case 'NamedNode':
110
102
  anchor = myDocument.createElement('a');
@@ -112,7 +104,6 @@ module.exports = {
112
104
  anchor.addEventListener('click', UI.widgets.openHrefInOutlineMode, true);
113
105
  anchor.appendChild(myDocument.createTextNode(UI.utils.label(obj)));
114
106
  return anchor;
115
-
116
107
  case 'Literal':
117
108
  if (!obj.datatype || !obj.datatype.uri) {
118
109
  res = myDocument.createElement('div');
@@ -123,10 +114,8 @@ module.exports = {
123
114
  res = myDocument.createElement('div');
124
115
  res.setAttribute('class', 'embeddedXHTML');
125
116
  res.innerHTML = obj.value; // Try that @@@ beware embedded dangerous code
126
-
127
117
  return res;
128
118
  }
129
-
130
119
  return myDocument.createTextNode(obj.value);
131
120
  // placeholder - could be smarter,
132
121
 
@@ -135,56 +124,43 @@ module.exports = {
135
124
  if (obj.toNT() in doneBnodes) {
136
125
  // Break infinite recursion
137
126
  referencedBnodes[obj.toNT()] = true;
138
-
139
127
  var _anchor = myDocument.createElement('a');
140
-
141
128
  _anchor.setAttribute('href', '#' + obj.toNT().slice(2));
142
-
143
129
  _anchor.setAttribute('class', 'bnodeRef');
144
-
145
130
  _anchor.textContent = '*' + obj.toNT().slice(3);
146
131
  return _anchor;
147
132
  }
148
-
149
133
  doneBnodes[obj.toNT()] = true; // Flag to prevent infinite recursion in propertyTree
150
-
151
134
  var newTable = propertyTree(obj);
152
135
  doneBnodes[obj.toNT()] = newTable; // Track where we mentioned it first
153
-
154
136
  if (UI.utils.ancestor(newTable, 'TABLE') && UI.utils.ancestor(newTable, 'TABLE').style.backgroundColor === 'white') {
155
137
  newTable.style.backgroundColor = '#eee';
156
138
  } else {
157
139
  newTable.style.backgroundColor = 'white';
158
140
  }
159
-
160
141
  return newTable;
161
142
  }
162
-
163
143
  case 'Collection':
164
144
  res = myDocument.createElement('table');
165
145
  res.setAttribute('class', 'collectionAsTables');
166
-
167
146
  for (var i = 0; i < obj.elements.length; i++) {
168
147
  var tr = myDocument.createElement('tr');
169
148
  res.appendChild(tr);
170
149
  tr.appendChild(objectTree(obj.elements[i]));
171
150
  }
172
-
173
151
  return res;
174
-
175
152
  case 'Graph':
176
153
  res = context.session.paneRegistry.byName('dataContents').statementsAsTables(obj.statements, context);
177
154
  res.setAttribute('class', 'nestedFormula');
178
155
  return res;
179
-
180
156
  case 'Variable':
181
157
  res = myDocument.createTextNode('?' + obj.uri);
182
158
  return res;
183
159
  }
184
-
185
160
  throw new Error('Unhandled node type: ' + obj.termType);
186
- } // roots.sort()
161
+ }
187
162
 
163
+ // roots.sort()
188
164
 
189
165
  if (initialRoots) {
190
166
  roots = initialRoots.concat(roots.filter(function (x) {
@@ -192,11 +168,9 @@ module.exports = {
192
168
  // Max 2
193
169
  if (x.sameTerm(initialRoots[i])) return false;
194
170
  }
195
-
196
171
  return true;
197
172
  }));
198
173
  }
199
-
200
174
  for (var i = 0; i < roots.length; i++) {
201
175
  var tr = myDocument.createElement('tr');
202
176
  rep.appendChild(tr);
@@ -205,7 +179,6 @@ module.exports = {
205
179
  var TDTree = myDocument.createElement('td');
206
180
  tr.appendChild(TDTree);
207
181
  var root = roots[i];
208
-
209
182
  if (root.termType === 'BlankNode') {
210
183
  subjectTD.appendChild(myDocument.createTextNode(UI.utils.label(root))); // Don't recurse!
211
184
  } else {
@@ -214,31 +187,27 @@ module.exports = {
214
187
 
215
188
  TDTree.appendChild(propertyTree(root));
216
189
  }
217
-
218
190
  for (var bNT in referencedBnodes) {
219
191
  // Add number to refer to
220
- var table = doneBnodes[bNT]; // let tr = myDocument.createElement('tr')
221
-
192
+ var table = doneBnodes[bNT];
193
+ // let tr = myDocument.createElement('tr')
222
194
  var anchor = myDocument.createElement('a');
223
195
  anchor.setAttribute('id', bNT.slice(2));
224
196
  anchor.setAttribute('class', 'bnodeDef');
225
197
  anchor.textContent = bNT.slice(3) + ')';
226
198
  table.insertBefore(anchor, table.firstChild);
227
199
  }
228
-
229
200
  return rep;
230
201
  },
231
202
  // statementsAsTables
232
203
  // View the data in a file in user-friendly way
233
204
  render: function render(subject, context) {
234
205
  var myDocument = context.dom;
235
-
236
206
  function alternativeRendering() {
237
207
  var sz = UI.rdf.Serializer(context.session.store);
238
208
  var res = sz.rootSubjects(sts);
239
209
  var roots = res.roots;
240
210
  var p = {};
241
-
242
211
  p.render = function (s2) {
243
212
  var div = myDocument.createElement('div');
244
213
  div.setAttribute('class', 'withinDocumentPane');
@@ -248,7 +217,6 @@ module.exports = {
248
217
  });
249
218
  return div;
250
219
  };
251
-
252
220
  for (var i = 0; i < roots.length; i++) {
253
221
  var tr = myDocument.createElement('TR');
254
222
  var root = roots[i];
@@ -261,36 +229,33 @@ module.exports = {
261
229
  });
262
230
  }
263
231
  }
264
-
265
232
  function mainRendering() {
266
233
  var initialRoots = []; // Ordering: start with stuff about this doc
267
-
268
234
  if (kb.holds(subject, undefined, undefined, subject)) {
269
235
  initialRoots.push(subject);
270
- } // Then about the primary topic of the document if any
271
-
272
-
236
+ }
237
+ // Then about the primary topic of the document if any
273
238
  var ps = kb.any(subject, UI.ns.foaf('primaryTopic'), undefined, subject);
274
239
  if (ps) initialRoots.push(ps);
275
240
  div.appendChild(context.session.paneRegistry.byName('dataContents').statementsAsTables(sts, context, initialRoots));
276
241
  }
277
-
278
242
  var outliner = context.getOutliner(myDocument);
279
243
  var kb = context.session.store;
280
244
  var div = myDocument.createElement('div');
281
- div.setAttribute('class', 'dataContentPane'); // Because of smushing etc, this will not be a copy of the original source
245
+ div.setAttribute('class', 'dataContentPane');
246
+ // Because of smushing etc, this will not be a copy of the original source
282
247
  // We could instead either fetch and re-parse the source,
283
248
  // or we could keep all the pre-smushed triples.
284
-
285
249
  var sts = kb.statementsMatching(undefined, undefined, undefined, subject); // @@ slow with current store!
286
250
 
287
- if ($rdf.keepThisCodeForLaterButDisableFerossConstantConditionPolice) {
251
+ if (false) {
252
+ // keep code
288
253
  alternativeRendering();
289
254
  } else {
290
255
  mainRendering();
291
256
  }
292
-
293
257
  return div;
294
258
  }
295
259
  };
260
+ exports.dataContentPane = dataContentPane;
296
261
  //# sourceMappingURL=dataContentPane.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dataContentPane.js","names":["UI","require","$rdf","ns","module","exports","icon","icons","originalIconBase","name","audience","solid","label","subject","context","session","store","findTypeURIs","n","statementsMatching","undefined","length","statementsAsTables","sts","initialRoots","myDocument","dom","rep","createElement","sz","rdf","Serializer","res","rootSubjects","roots","subjects","loopBreakers","x","console","log","doneBnodes","referencedBnodes","propertyTree","lastPred","toStr","appendChild","createTextNode","sort","same","predicateTD","i","st","tr","predicate","uri","setAttribute","anchor","addEventListener","widgets","openHrefInOutlineMode","utils","predicateLabelForXML","objectTD","objectTree","object","obj","termType","datatype","textContent","value","innerHTML","toNT","slice","newTable","ancestor","style","backgroundColor","elements","paneRegistry","byName","statements","Error","concat","filter","sameTerm","subjectTD","TDTree","root","bNT","table","insertBefore","firstChild","render","alternativeRendering","p","s2","div","plist","kb","outliner","appendPropertyTRs","_pred","_inverse","verticalAlign","td","outlineObjectTD","outlineExpand","pane","mainRendering","holds","push","ps","any","foaf","getOutliner","keepThisCodeForLaterButDisableFerossConstantConditionPolice"],"sources":["../src/dataContentPane.js"],"sourcesContent":["/* Data content Pane\n **\n ** This pane shows the content of a particular RDF resource\n ** or at least the RDF semantics we attribute to that resource.\n */\n\n// To do: - Only take data from one graph\n// - Only do forwards not backward?\n// - Expand automatically all the way down\n// - original source view? Use ffox view source\n\nconst UI = require('solid-ui')\nconst $rdf = require('rdflib')\nconst ns = UI.ns\n\nmodule.exports = {\n icon: UI.icons.originalIconBase + 'rdf_flyer.24.gif',\n\n name: 'dataContents',\n\n audience: [ns.solid('Developer')],\n\n label: function (subject, context) {\n if (\n 'http://www.w3.org/2007/ont/link#ProtocolEvent' in\n context.session.store.findTypeURIs(subject)\n ) {\n return null\n }\n const n = context.session.store.statementsMatching(\n undefined,\n undefined,\n undefined,\n subject\n ).length\n if (n === 0) return null\n return 'Data (' + n + ')'\n },\n /*\n shouldGetFocus: function(subject) {\n return store.whether(subject, UI.ns.rdf('type'), UI.ns.link('RDFDocument'))\n },\n*/\n statementsAsTables: function statementsAsTables (sts, context, initialRoots) {\n const myDocument = context.dom\n // const outliner = context.getOutliner(myDocument)\n const rep = myDocument.createElement('table')\n const sz = UI.rdf.Serializer(context.session.store)\n const res = sz.rootSubjects(sts)\n let roots = res.roots\n const subjects = res.subjects\n const loopBreakers = res.loopBreakers\n for (const x in loopBreakers) {\n console.log('\\tdataContentPane: loopbreaker:' + x)\n }\n const doneBnodes = {} // For preventing looping\n const referencedBnodes = {} // Bnodes which need to be named alas\n\n // The property tree for a single subject or anonymous node\n function propertyTree (subject) {\n // print('Proprty tree for '+subject)\n const rep = myDocument.createElement('table')\n let lastPred = null\n const sts = subjects[sz.toStr(subject)] // relevant statements\n if (!sts) {\n // No statements in tree\n rep.appendChild(myDocument.createTextNode('...')) // just empty bnode as object\n return rep\n }\n sts.sort()\n let same = 0\n let predicateTD // The cell which holds the predicate\n for (let i = 0; i < sts.length; i++) {\n const st = sts[i]\n const tr = myDocument.createElement('tr')\n if (st.predicate.uri !== lastPred) {\n if (lastPred && same > 1) {\n predicateTD.setAttribute('rowspan', '' + same)\n }\n predicateTD = myDocument.createElement('td')\n predicateTD.setAttribute('class', 'pred')\n const anchor = myDocument.createElement('a')\n anchor.setAttribute('href', st.predicate.uri)\n anchor.addEventListener(\n 'click',\n UI.widgets.openHrefInOutlineMode,\n true\n )\n anchor.appendChild(\n myDocument.createTextNode(\n UI.utils.predicateLabelForXML(st.predicate)\n )\n )\n predicateTD.appendChild(anchor)\n tr.appendChild(predicateTD)\n lastPred = st.predicate.uri\n same = 0\n }\n same++\n const objectTD = myDocument.createElement('td')\n objectTD.appendChild(objectTree(st.object))\n tr.appendChild(objectTD)\n rep.appendChild(tr)\n }\n if (lastPred && same > 1) predicateTD.setAttribute('rowspan', '' + same)\n return rep\n }\n\n // Convert a set of statements into a nested tree of tables\n function objectTree (obj) {\n let res, anchor\n switch (obj.termType) {\n case 'NamedNode':\n anchor = myDocument.createElement('a')\n anchor.setAttribute('href', obj.uri)\n anchor.addEventListener(\n 'click',\n UI.widgets.openHrefInOutlineMode,\n true\n )\n anchor.appendChild(myDocument.createTextNode(UI.utils.label(obj)))\n return anchor\n\n case 'Literal':\n if (!obj.datatype || !obj.datatype.uri) {\n res = myDocument.createElement('div')\n res.setAttribute('style', 'white-space: pre-wrap;')\n res.textContent = obj.value\n return res\n } else if (\n obj.datatype.uri ===\n 'http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral'\n ) {\n res = myDocument.createElement('div')\n res.setAttribute('class', 'embeddedXHTML')\n res.innerHTML = obj.value // Try that @@@ beware embedded dangerous code\n return res\n }\n return myDocument.createTextNode(obj.value) // placeholder - could be smarter,\n\n case 'BlankNode': {\n if (obj.toNT() in doneBnodes) {\n // Break infinite recursion\n referencedBnodes[obj.toNT()] = true\n const anchor = myDocument.createElement('a')\n anchor.setAttribute('href', '#' + obj.toNT().slice(2))\n anchor.setAttribute('class', 'bnodeRef')\n anchor.textContent = '*' + obj.toNT().slice(3)\n return anchor\n }\n doneBnodes[obj.toNT()] = true // Flag to prevent infinite recursion in propertyTree\n const newTable = propertyTree(obj)\n doneBnodes[obj.toNT()] = newTable // Track where we mentioned it first\n if (\n UI.utils.ancestor(newTable, 'TABLE') &&\n UI.utils.ancestor(newTable, 'TABLE').style.backgroundColor ===\n 'white'\n ) {\n newTable.style.backgroundColor = '#eee'\n } else {\n newTable.style.backgroundColor = 'white'\n }\n return newTable\n }\n case 'Collection':\n res = myDocument.createElement('table')\n res.setAttribute('class', 'collectionAsTables')\n for (let i = 0; i < obj.elements.length; i++) {\n const tr = myDocument.createElement('tr')\n res.appendChild(tr)\n tr.appendChild(objectTree(obj.elements[i]))\n }\n return res\n case 'Graph':\n res = context.session.paneRegistry\n .byName('dataContents')\n .statementsAsTables(obj.statements, context)\n res.setAttribute('class', 'nestedFormula')\n return res\n case 'Variable':\n res = myDocument.createTextNode('?' + obj.uri)\n return res\n }\n throw new Error('Unhandled node type: ' + obj.termType)\n }\n\n // roots.sort()\n\n if (initialRoots) {\n roots = initialRoots.concat(\n roots.filter(function (x) {\n for (let i = 0; i < initialRoots.length; i++) {\n // Max 2\n if (x.sameTerm(initialRoots[i])) return false\n }\n return true\n })\n )\n }\n for (let i = 0; i < roots.length; i++) {\n const tr = myDocument.createElement('tr')\n rep.appendChild(tr)\n const subjectTD = myDocument.createElement('td')\n tr.appendChild(subjectTD)\n const TDTree = myDocument.createElement('td')\n tr.appendChild(TDTree)\n const root = roots[i]\n if (root.termType === 'BlankNode') {\n subjectTD.appendChild(myDocument.createTextNode(UI.utils.label(root))) // Don't recurse!\n } else {\n subjectTD.appendChild(objectTree(root)) // won't have tree\n }\n TDTree.appendChild(propertyTree(root))\n }\n for (const bNT in referencedBnodes) {\n // Add number to refer to\n const table = doneBnodes[bNT]\n // let tr = myDocument.createElement('tr')\n const anchor = myDocument.createElement('a')\n anchor.setAttribute('id', bNT.slice(2))\n anchor.setAttribute('class', 'bnodeDef')\n anchor.textContent = bNT.slice(3) + ')'\n table.insertBefore(anchor, table.firstChild)\n }\n return rep\n }, // statementsAsTables\n // View the data in a file in user-friendly way\n render: function (subject, context) {\n const myDocument = context.dom\n\n function alternativeRendering () {\n const sz = UI.rdf.Serializer(context.session.store)\n const res = sz.rootSubjects(sts)\n const roots = res.roots\n const p = {}\n p.render = function (s2) {\n const div = myDocument.createElement('div')\n div.setAttribute('class', 'withinDocumentPane')\n const plist = kb.statementsMatching(s2, undefined, undefined, subject)\n outliner.appendPropertyTRs(div, plist, false, function (\n _pred,\n _inverse\n ) {\n return true\n })\n return div\n }\n for (let i = 0; i < roots.length; i++) {\n const tr = myDocument.createElement('TR')\n const root = roots[i]\n tr.style.verticalAlign = 'top'\n const td = outliner.outlineObjectTD(root, undefined, tr)\n tr.appendChild(td)\n div.appendChild(tr)\n outliner.outlineExpand(td, root, { pane: p })\n }\n }\n\n function mainRendering () {\n const initialRoots = [] // Ordering: start with stuff about this doc\n if (kb.holds(subject, undefined, undefined, subject)) {\n initialRoots.push(subject)\n }\n // Then about the primary topic of the document if any\n const ps = kb.any(subject, UI.ns.foaf('primaryTopic'), undefined, subject)\n if (ps) initialRoots.push(ps)\n div.appendChild(\n context.session.paneRegistry\n .byName('dataContents')\n .statementsAsTables(sts, context, initialRoots)\n )\n }\n\n const outliner = context.getOutliner(myDocument)\n const kb = context.session.store\n const div = myDocument.createElement('div')\n div.setAttribute('class', 'dataContentPane')\n // Because of smushing etc, this will not be a copy of the original source\n // We could instead either fetch and re-parse the source,\n // or we could keep all the pre-smushed triples.\n const sts = kb.statementsMatching(undefined, undefined, undefined, subject) // @@ slow with current store!\n\n if ($rdf.keepThisCodeForLaterButDisableFerossConstantConditionPolice) {\n alternativeRendering()\n } else {\n mainRendering()\n }\n return div\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"dataContentPane.js","names":["ns","UI","dataContentPane","icon","icons","originalIconBase","name","audience","solid","label","subject","context","session","store","findTypeURIs","n","statementsMatching","undefined","length","statementsAsTables","sts","initialRoots","myDocument","dom","rep","createElement","sz","rdf","Serializer","res","rootSubjects","roots","subjects","loopBreakers","x","console","log","doneBnodes","referencedBnodes","propertyTree","lastPred","toStr","appendChild","createTextNode","sort","same","predicateTD","i","st","tr","predicate","uri","setAttribute","anchor","addEventListener","widgets","openHrefInOutlineMode","utils","predicateLabelForXML","objectTD","objectTree","object","obj","termType","datatype","textContent","value","innerHTML","toNT","slice","newTable","ancestor","style","backgroundColor","elements","paneRegistry","byName","statements","Error","concat","filter","sameTerm","subjectTD","TDTree","root","bNT","table","insertBefore","firstChild","render","alternativeRendering","p","s2","div","plist","kb","outliner","appendPropertyTRs","_pred","_inverse","verticalAlign","td","outlineObjectTD","outlineExpand","pane","mainRendering","holds","push","ps","any","foaf","getOutliner"],"sources":["../src/dataContentPane.js"],"sourcesContent":["/* Data content Pane\n **\n ** This pane shows the content of a particular RDF resource\n ** or at least the RDF semantics we attribute to that resource.\n */\n\n// To do: - Only take data from one graph\n// - Only do forwards not backward?\n// - Expand automatically all the way down\n// - original source view? Use ffox view source\n\nimport * as UI from 'solid-ui'\nconst ns = UI.ns\n\nexport const dataContentPane = {\n icon: UI.icons.originalIconBase + 'rdf_flyer.24.gif',\n\n name: 'dataContents',\n\n audience: [ns.solid('Developer')],\n\n label: function (subject, context) {\n if (\n 'http://www.w3.org/2007/ont/link#ProtocolEvent' in\n context.session.store.findTypeURIs(subject)\n ) {\n return null\n }\n const n = context.session.store.statementsMatching(\n undefined,\n undefined,\n undefined,\n subject\n ).length\n if (n === 0) return null\n return 'Data (' + n + ')'\n },\n /*\n shouldGetFocus: function(subject) {\n return store.whether(subject, UI.ns.rdf('type'), UI.ns.link('RDFDocument'))\n },\n*/\n statementsAsTables: function statementsAsTables (sts, context, initialRoots) {\n const myDocument = context.dom\n // const outliner = context.getOutliner(myDocument)\n const rep = myDocument.createElement('table')\n const sz = UI.rdf.Serializer(context.session.store)\n const res = sz.rootSubjects(sts)\n let roots = res.roots\n const subjects = res.subjects\n const loopBreakers = res.loopBreakers\n for (const x in loopBreakers) {\n console.log('\\tdataContentPane: loopbreaker:' + x)\n }\n const doneBnodes = {} // For preventing looping\n const referencedBnodes = {} // Bnodes which need to be named alas\n\n // The property tree for a single subject or anonymous node\n function propertyTree (subject) {\n // print('Proprty tree for '+subject)\n const rep = myDocument.createElement('table')\n let lastPred = null\n const sts = subjects[sz.toStr(subject)] // relevant statements\n if (!sts) {\n // No statements in tree\n rep.appendChild(myDocument.createTextNode('...')) // just empty bnode as object\n return rep\n }\n sts.sort()\n let same = 0\n let predicateTD // The cell which holds the predicate\n for (let i = 0; i < sts.length; i++) {\n const st = sts[i]\n const tr = myDocument.createElement('tr')\n if (st.predicate.uri !== lastPred) {\n if (lastPred && same > 1) {\n predicateTD.setAttribute('rowspan', '' + same)\n }\n predicateTD = myDocument.createElement('td')\n predicateTD.setAttribute('class', 'pred')\n const anchor = myDocument.createElement('a')\n anchor.setAttribute('href', st.predicate.uri)\n anchor.addEventListener(\n 'click',\n UI.widgets.openHrefInOutlineMode,\n true\n )\n anchor.appendChild(\n myDocument.createTextNode(\n UI.utils.predicateLabelForXML(st.predicate)\n )\n )\n predicateTD.appendChild(anchor)\n tr.appendChild(predicateTD)\n lastPred = st.predicate.uri\n same = 0\n }\n same++\n const objectTD = myDocument.createElement('td')\n objectTD.appendChild(objectTree(st.object))\n tr.appendChild(objectTD)\n rep.appendChild(tr)\n }\n if (lastPred && same > 1) predicateTD.setAttribute('rowspan', '' + same)\n return rep\n }\n\n // Convert a set of statements into a nested tree of tables\n function objectTree (obj) {\n let res, anchor\n switch (obj.termType) {\n case 'NamedNode':\n anchor = myDocument.createElement('a')\n anchor.setAttribute('href', obj.uri)\n anchor.addEventListener(\n 'click',\n UI.widgets.openHrefInOutlineMode,\n true\n )\n anchor.appendChild(myDocument.createTextNode(UI.utils.label(obj)))\n return anchor\n\n case 'Literal':\n if (!obj.datatype || !obj.datatype.uri) {\n res = myDocument.createElement('div')\n res.setAttribute('style', 'white-space: pre-wrap;')\n res.textContent = obj.value\n return res\n } else if (\n obj.datatype.uri ===\n 'http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral'\n ) {\n res = myDocument.createElement('div')\n res.setAttribute('class', 'embeddedXHTML')\n res.innerHTML = obj.value // Try that @@@ beware embedded dangerous code\n return res\n }\n return myDocument.createTextNode(obj.value) // placeholder - could be smarter,\n\n case 'BlankNode': {\n if (obj.toNT() in doneBnodes) {\n // Break infinite recursion\n referencedBnodes[obj.toNT()] = true\n const anchor = myDocument.createElement('a')\n anchor.setAttribute('href', '#' + obj.toNT().slice(2))\n anchor.setAttribute('class', 'bnodeRef')\n anchor.textContent = '*' + obj.toNT().slice(3)\n return anchor\n }\n doneBnodes[obj.toNT()] = true // Flag to prevent infinite recursion in propertyTree\n const newTable = propertyTree(obj)\n doneBnodes[obj.toNT()] = newTable // Track where we mentioned it first\n if (\n UI.utils.ancestor(newTable, 'TABLE') &&\n UI.utils.ancestor(newTable, 'TABLE').style.backgroundColor ===\n 'white'\n ) {\n newTable.style.backgroundColor = '#eee'\n } else {\n newTable.style.backgroundColor = 'white'\n }\n return newTable\n }\n case 'Collection':\n res = myDocument.createElement('table')\n res.setAttribute('class', 'collectionAsTables')\n for (let i = 0; i < obj.elements.length; i++) {\n const tr = myDocument.createElement('tr')\n res.appendChild(tr)\n tr.appendChild(objectTree(obj.elements[i]))\n }\n return res\n case 'Graph':\n res = context.session.paneRegistry\n .byName('dataContents')\n .statementsAsTables(obj.statements, context)\n res.setAttribute('class', 'nestedFormula')\n return res\n case 'Variable':\n res = myDocument.createTextNode('?' + obj.uri)\n return res\n }\n throw new Error('Unhandled node type: ' + obj.termType)\n }\n\n // roots.sort()\n\n if (initialRoots) {\n roots = initialRoots.concat(\n roots.filter(function (x) {\n for (let i = 0; i < initialRoots.length; i++) {\n // Max 2\n if (x.sameTerm(initialRoots[i])) return false\n }\n return true\n })\n )\n }\n for (let i = 0; i < roots.length; i++) {\n const tr = myDocument.createElement('tr')\n rep.appendChild(tr)\n const subjectTD = myDocument.createElement('td')\n tr.appendChild(subjectTD)\n const TDTree = myDocument.createElement('td')\n tr.appendChild(TDTree)\n const root = roots[i]\n if (root.termType === 'BlankNode') {\n subjectTD.appendChild(myDocument.createTextNode(UI.utils.label(root))) // Don't recurse!\n } else {\n subjectTD.appendChild(objectTree(root)) // won't have tree\n }\n TDTree.appendChild(propertyTree(root))\n }\n for (const bNT in referencedBnodes) {\n // Add number to refer to\n const table = doneBnodes[bNT]\n // let tr = myDocument.createElement('tr')\n const anchor = myDocument.createElement('a')\n anchor.setAttribute('id', bNT.slice(2))\n anchor.setAttribute('class', 'bnodeDef')\n anchor.textContent = bNT.slice(3) + ')'\n table.insertBefore(anchor, table.firstChild)\n }\n return rep\n }, // statementsAsTables\n // View the data in a file in user-friendly way\n render: function (subject, context) {\n const myDocument = context.dom\n\n function alternativeRendering () {\n const sz = UI.rdf.Serializer(context.session.store)\n const res = sz.rootSubjects(sts)\n const roots = res.roots\n const p = {}\n p.render = function (s2) {\n const div = myDocument.createElement('div')\n div.setAttribute('class', 'withinDocumentPane')\n const plist = kb.statementsMatching(s2, undefined, undefined, subject)\n outliner.appendPropertyTRs(div, plist, false, function (\n _pred,\n _inverse\n ) {\n return true\n })\n return div\n }\n for (let i = 0; i < roots.length; i++) {\n const tr = myDocument.createElement('TR')\n const root = roots[i]\n tr.style.verticalAlign = 'top'\n const td = outliner.outlineObjectTD(root, undefined, tr)\n tr.appendChild(td)\n div.appendChild(tr)\n outliner.outlineExpand(td, root, { pane: p })\n }\n }\n\n function mainRendering () {\n const initialRoots = [] // Ordering: start with stuff about this doc\n if (kb.holds(subject, undefined, undefined, subject)) {\n initialRoots.push(subject)\n }\n // Then about the primary topic of the document if any\n const ps = kb.any(subject, UI.ns.foaf('primaryTopic'), undefined, subject)\n if (ps) initialRoots.push(ps)\n div.appendChild(\n context.session.paneRegistry\n .byName('dataContents')\n .statementsAsTables(sts, context, initialRoots)\n )\n }\n\n const outliner = context.getOutliner(myDocument)\n const kb = context.session.store\n const div = myDocument.createElement('div')\n div.setAttribute('class', 'dataContentPane')\n // Because of smushing etc, this will not be a copy of the original source\n // We could instead either fetch and re-parse the source,\n // or we could keep all the pre-smushed triples.\n const sts = kb.statementsMatching(undefined, undefined, undefined, subject) // @@ slow with current store!\n\n if (false) { // keep code\n alternativeRendering()\n } else {\n mainRendering()\n }\n return div\n }\n}\n"],"mappings":";;;;;;;AAWA;AAA8B;AAAA;AAX9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAGA,IAAMA,EAAE,GAAGC,EAAE,CAACD,EAAE;AAET,IAAME,eAAe,GAAG;EAC7BC,IAAI,EAAEF,EAAE,CAACG,KAAK,CAACC,gBAAgB,GAAG,kBAAkB;EAEpDC,IAAI,EAAE,cAAc;EAEpBC,QAAQ,EAAE,CAACP,EAAE,CAACQ,KAAK,CAAC,WAAW,CAAC,CAAC;EAEjCC,KAAK,EAAE,eAAUC,OAAO,EAAEC,OAAO,EAAE;IACjC,IACE,+CAA+C,IAC/CA,OAAO,CAACC,OAAO,CAACC,KAAK,CAACC,YAAY,CAACJ,OAAO,CAAC,EAC3C;MACA,OAAO,IAAI;IACb;IACA,IAAMK,CAAC,GAAGJ,OAAO,CAACC,OAAO,CAACC,KAAK,CAACG,kBAAkB,CAChDC,SAAS,EACTA,SAAS,EACTA,SAAS,EACTP,OAAO,CACR,CAACQ,MAAM;IACR,IAAIH,CAAC,KAAK,CAAC,EAAE,OAAO,IAAI;IACxB,OAAO,QAAQ,GAAGA,CAAC,GAAG,GAAG;EAC3B,CAAC;EACD;AACF;AACA;AACA;AACA;EACEI,kBAAkB,EAAE,SAASA,kBAAkB,CAAEC,GAAG,EAAET,OAAO,EAAEU,YAAY,EAAE;IAC3E,IAAMC,UAAU,GAAGX,OAAO,CAACY,GAAG;IAC9B;IACA,IAAMC,GAAG,GAAGF,UAAU,CAACG,aAAa,CAAC,OAAO,CAAC;IAC7C,IAAMC,EAAE,GAAGzB,EAAE,CAAC0B,GAAG,CAACC,UAAU,CAACjB,OAAO,CAACC,OAAO,CAACC,KAAK,CAAC;IACnD,IAAMgB,GAAG,GAAGH,EAAE,CAACI,YAAY,CAACV,GAAG,CAAC;IAChC,IAAIW,KAAK,GAAGF,GAAG,CAACE,KAAK;IACrB,IAAMC,QAAQ,GAAGH,GAAG,CAACG,QAAQ;IAC7B,IAAMC,YAAY,GAAGJ,GAAG,CAACI,YAAY;IACrC,KAAK,IAAMC,CAAC,IAAID,YAAY,EAAE;MAC5BE,OAAO,CAACC,GAAG,CAAC,iCAAiC,GAAGF,CAAC,CAAC;IACpD;IACA,IAAMG,UAAU,GAAG,CAAC,CAAC,EAAC;IACtB,IAAMC,gBAAgB,GAAG,CAAC,CAAC,EAAC;;IAE5B;IACA,SAASC,YAAY,CAAE7B,OAAO,EAAE;MAC9B;MACA,IAAMc,GAAG,GAAGF,UAAU,CAACG,aAAa,CAAC,OAAO,CAAC;MAC7C,IAAIe,QAAQ,GAAG,IAAI;MACnB,IAAMpB,GAAG,GAAGY,QAAQ,CAACN,EAAE,CAACe,KAAK,CAAC/B,OAAO,CAAC,CAAC,EAAC;MACxC,IAAI,CAACU,GAAG,EAAE;QACR;QACAI,GAAG,CAACkB,WAAW,CAACpB,UAAU,CAACqB,cAAc,CAAC,KAAK,CAAC,CAAC,EAAC;QAClD,OAAOnB,GAAG;MACZ;MACAJ,GAAG,CAACwB,IAAI,EAAE;MACV,IAAIC,IAAI,GAAG,CAAC;MACZ,IAAIC,WAAW,EAAC;MAChB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG3B,GAAG,CAACF,MAAM,EAAE6B,CAAC,EAAE,EAAE;QACnC,IAAMC,EAAE,GAAG5B,GAAG,CAAC2B,CAAC,CAAC;QACjB,IAAME,EAAE,GAAG3B,UAAU,CAACG,aAAa,CAAC,IAAI,CAAC;QACzC,IAAIuB,EAAE,CAACE,SAAS,CAACC,GAAG,KAAKX,QAAQ,EAAE;UACjC,IAAIA,QAAQ,IAAIK,IAAI,GAAG,CAAC,EAAE;YACxBC,WAAW,CAACM,YAAY,CAAC,SAAS,EAAE,EAAE,GAAGP,IAAI,CAAC;UAChD;UACAC,WAAW,GAAGxB,UAAU,CAACG,aAAa,CAAC,IAAI,CAAC;UAC5CqB,WAAW,CAACM,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC;UACzC,IAAMC,MAAM,GAAG/B,UAAU,CAACG,aAAa,CAAC,GAAG,CAAC;UAC5C4B,MAAM,CAACD,YAAY,CAAC,MAAM,EAAEJ,EAAE,CAACE,SAAS,CAACC,GAAG,CAAC;UAC7CE,MAAM,CAACC,gBAAgB,CACrB,OAAO,EACPrD,EAAE,CAACsD,OAAO,CAACC,qBAAqB,EAChC,IAAI,CACL;UACDH,MAAM,CAACX,WAAW,CAChBpB,UAAU,CAACqB,cAAc,CACvB1C,EAAE,CAACwD,KAAK,CAACC,oBAAoB,CAACV,EAAE,CAACE,SAAS,CAAC,CAC5C,CACF;UACDJ,WAAW,CAACJ,WAAW,CAACW,MAAM,CAAC;UAC/BJ,EAAE,CAACP,WAAW,CAACI,WAAW,CAAC;UAC3BN,QAAQ,GAAGQ,EAAE,CAACE,SAAS,CAACC,GAAG;UAC3BN,IAAI,GAAG,CAAC;QACV;QACAA,IAAI,EAAE;QACN,IAAMc,QAAQ,GAAGrC,UAAU,CAACG,aAAa,CAAC,IAAI,CAAC;QAC/CkC,QAAQ,CAACjB,WAAW,CAACkB,UAAU,CAACZ,EAAE,CAACa,MAAM,CAAC,CAAC;QAC3CZ,EAAE,CAACP,WAAW,CAACiB,QAAQ,CAAC;QACxBnC,GAAG,CAACkB,WAAW,CAACO,EAAE,CAAC;MACrB;MACA,IAAIT,QAAQ,IAAIK,IAAI,GAAG,CAAC,EAAEC,WAAW,CAACM,YAAY,CAAC,SAAS,EAAE,EAAE,GAAGP,IAAI,CAAC;MACxE,OAAOrB,GAAG;IACZ;;IAEA;IACA,SAASoC,UAAU,CAAEE,GAAG,EAAE;MACxB,IAAIjC,GAAG,EAAEwB,MAAM;MACf,QAAQS,GAAG,CAACC,QAAQ;QAClB,KAAK,WAAW;UACdV,MAAM,GAAG/B,UAAU,CAACG,aAAa,CAAC,GAAG,CAAC;UACtC4B,MAAM,CAACD,YAAY,CAAC,MAAM,EAAEU,GAAG,CAACX,GAAG,CAAC;UACpCE,MAAM,CAACC,gBAAgB,CACrB,OAAO,EACPrD,EAAE,CAACsD,OAAO,CAACC,qBAAqB,EAChC,IAAI,CACL;UACDH,MAAM,CAACX,WAAW,CAACpB,UAAU,CAACqB,cAAc,CAAC1C,EAAE,CAACwD,KAAK,CAAChD,KAAK,CAACqD,GAAG,CAAC,CAAC,CAAC;UAClE,OAAOT,MAAM;QAEf,KAAK,SAAS;UACZ,IAAI,CAACS,GAAG,CAACE,QAAQ,IAAI,CAACF,GAAG,CAACE,QAAQ,CAACb,GAAG,EAAE;YACtCtB,GAAG,GAAGP,UAAU,CAACG,aAAa,CAAC,KAAK,CAAC;YACrCI,GAAG,CAACuB,YAAY,CAAC,OAAO,EAAE,wBAAwB,CAAC;YACnDvB,GAAG,CAACoC,WAAW,GAAGH,GAAG,CAACI,KAAK;YAC3B,OAAOrC,GAAG;UACZ,CAAC,MAAM,IACLiC,GAAG,CAACE,QAAQ,CAACb,GAAG,KAChB,uDAAuD,EACvD;YACAtB,GAAG,GAAGP,UAAU,CAACG,aAAa,CAAC,KAAK,CAAC;YACrCI,GAAG,CAACuB,YAAY,CAAC,OAAO,EAAE,eAAe,CAAC;YAC1CvB,GAAG,CAACsC,SAAS,GAAGL,GAAG,CAACI,KAAK,EAAC;YAC1B,OAAOrC,GAAG;UACZ;UACA,OAAOP,UAAU,CAACqB,cAAc,CAACmB,GAAG,CAACI,KAAK,CAAC;QAAC;;QAE9C,KAAK,WAAW;UAAE;YAChB,IAAIJ,GAAG,CAACM,IAAI,EAAE,IAAI/B,UAAU,EAAE;cAC5B;cACAC,gBAAgB,CAACwB,GAAG,CAACM,IAAI,EAAE,CAAC,GAAG,IAAI;cACnC,IAAMf,OAAM,GAAG/B,UAAU,CAACG,aAAa,CAAC,GAAG,CAAC;cAC5C4B,OAAM,CAACD,YAAY,CAAC,MAAM,EAAE,GAAG,GAAGU,GAAG,CAACM,IAAI,EAAE,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC;cACtDhB,OAAM,CAACD,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC;cACxCC,OAAM,CAACY,WAAW,GAAG,GAAG,GAAGH,GAAG,CAACM,IAAI,EAAE,CAACC,KAAK,CAAC,CAAC,CAAC;cAC9C,OAAOhB,OAAM;YACf;YACAhB,UAAU,CAACyB,GAAG,CAACM,IAAI,EAAE,CAAC,GAAG,IAAI,EAAC;YAC9B,IAAME,QAAQ,GAAG/B,YAAY,CAACuB,GAAG,CAAC;YAClCzB,UAAU,CAACyB,GAAG,CAACM,IAAI,EAAE,CAAC,GAAGE,QAAQ,EAAC;YAClC,IACErE,EAAE,CAACwD,KAAK,CAACc,QAAQ,CAACD,QAAQ,EAAE,OAAO,CAAC,IACpCrE,EAAE,CAACwD,KAAK,CAACc,QAAQ,CAACD,QAAQ,EAAE,OAAO,CAAC,CAACE,KAAK,CAACC,eAAe,KACxD,OAAO,EACT;cACAH,QAAQ,CAACE,KAAK,CAACC,eAAe,GAAG,MAAM;YACzC,CAAC,MAAM;cACLH,QAAQ,CAACE,KAAK,CAACC,eAAe,GAAG,OAAO;YAC1C;YACA,OAAOH,QAAQ;UACjB;QACA,KAAK,YAAY;UACfzC,GAAG,GAAGP,UAAU,CAACG,aAAa,CAAC,OAAO,CAAC;UACvCI,GAAG,CAACuB,YAAY,CAAC,OAAO,EAAE,oBAAoB,CAAC;UAC/C,KAAK,IAAIL,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGe,GAAG,CAACY,QAAQ,CAACxD,MAAM,EAAE6B,CAAC,EAAE,EAAE;YAC5C,IAAME,EAAE,GAAG3B,UAAU,CAACG,aAAa,CAAC,IAAI,CAAC;YACzCI,GAAG,CAACa,WAAW,CAACO,EAAE,CAAC;YACnBA,EAAE,CAACP,WAAW,CAACkB,UAAU,CAACE,GAAG,CAACY,QAAQ,CAAC3B,CAAC,CAAC,CAAC,CAAC;UAC7C;UACA,OAAOlB,GAAG;QACZ,KAAK,OAAO;UACVA,GAAG,GAAGlB,OAAO,CAACC,OAAO,CAAC+D,YAAY,CAC/BC,MAAM,CAAC,cAAc,CAAC,CACtBzD,kBAAkB,CAAC2C,GAAG,CAACe,UAAU,EAAElE,OAAO,CAAC;UAC9CkB,GAAG,CAACuB,YAAY,CAAC,OAAO,EAAE,eAAe,CAAC;UAC1C,OAAOvB,GAAG;QACZ,KAAK,UAAU;UACbA,GAAG,GAAGP,UAAU,CAACqB,cAAc,CAAC,GAAG,GAAGmB,GAAG,CAACX,GAAG,CAAC;UAC9C,OAAOtB,GAAG;MAAA;MAEd,MAAM,IAAIiD,KAAK,CAAC,uBAAuB,GAAGhB,GAAG,CAACC,QAAQ,CAAC;IACzD;;IAEA;;IAEA,IAAI1C,YAAY,EAAE;MAChBU,KAAK,GAAGV,YAAY,CAAC0D,MAAM,CACzBhD,KAAK,CAACiD,MAAM,CAAC,UAAU9C,CAAC,EAAE;QACxB,KAAK,IAAIa,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG1B,YAAY,CAACH,MAAM,EAAE6B,CAAC,EAAE,EAAE;UAC5C;UACA,IAAIb,CAAC,CAAC+C,QAAQ,CAAC5D,YAAY,CAAC0B,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK;QAC/C;QACA,OAAO,IAAI;MACb,CAAC,CAAC,CACH;IACH;IACA,KAAK,IAAIA,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGhB,KAAK,CAACb,MAAM,EAAE6B,CAAC,EAAE,EAAE;MACrC,IAAME,EAAE,GAAG3B,UAAU,CAACG,aAAa,CAAC,IAAI,CAAC;MACzCD,GAAG,CAACkB,WAAW,CAACO,EAAE,CAAC;MACnB,IAAMiC,SAAS,GAAG5D,UAAU,CAACG,aAAa,CAAC,IAAI,CAAC;MAChDwB,EAAE,CAACP,WAAW,CAACwC,SAAS,CAAC;MACzB,IAAMC,MAAM,GAAG7D,UAAU,CAACG,aAAa,CAAC,IAAI,CAAC;MAC7CwB,EAAE,CAACP,WAAW,CAACyC,MAAM,CAAC;MACtB,IAAMC,IAAI,GAAGrD,KAAK,CAACgB,CAAC,CAAC;MACrB,IAAIqC,IAAI,CAACrB,QAAQ,KAAK,WAAW,EAAE;QACjCmB,SAAS,CAACxC,WAAW,CAACpB,UAAU,CAACqB,cAAc,CAAC1C,EAAE,CAACwD,KAAK,CAAChD,KAAK,CAAC2E,IAAI,CAAC,CAAC,CAAC,EAAC;MACzE,CAAC,MAAM;QACLF,SAAS,CAACxC,WAAW,CAACkB,UAAU,CAACwB,IAAI,CAAC,CAAC,EAAC;MAC1C;;MACAD,MAAM,CAACzC,WAAW,CAACH,YAAY,CAAC6C,IAAI,CAAC,CAAC;IACxC;IACA,KAAK,IAAMC,GAAG,IAAI/C,gBAAgB,EAAE;MAClC;MACA,IAAMgD,KAAK,GAAGjD,UAAU,CAACgD,GAAG,CAAC;MAC7B;MACA,IAAMhC,MAAM,GAAG/B,UAAU,CAACG,aAAa,CAAC,GAAG,CAAC;MAC5C4B,MAAM,CAACD,YAAY,CAAC,IAAI,EAAEiC,GAAG,CAAChB,KAAK,CAAC,CAAC,CAAC,CAAC;MACvChB,MAAM,CAACD,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC;MACxCC,MAAM,CAACY,WAAW,GAAGoB,GAAG,CAAChB,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG;MACvCiB,KAAK,CAACC,YAAY,CAAClC,MAAM,EAAEiC,KAAK,CAACE,UAAU,CAAC;IAC9C;IACA,OAAOhE,GAAG;EACZ,CAAC;EAAE;EACH;EACAiE,MAAM,EAAE,gBAAU/E,OAAO,EAAEC,OAAO,EAAE;IAClC,IAAMW,UAAU,GAAGX,OAAO,CAACY,GAAG;IAE9B,SAASmE,oBAAoB,GAAI;MAC/B,IAAMhE,EAAE,GAAGzB,EAAE,CAAC0B,GAAG,CAACC,UAAU,CAACjB,OAAO,CAACC,OAAO,CAACC,KAAK,CAAC;MACnD,IAAMgB,GAAG,GAAGH,EAAE,CAACI,YAAY,CAACV,GAAG,CAAC;MAChC,IAAMW,KAAK,GAAGF,GAAG,CAACE,KAAK;MACvB,IAAM4D,CAAC,GAAG,CAAC,CAAC;MACZA,CAAC,CAACF,MAAM,GAAG,UAAUG,EAAE,EAAE;QACvB,IAAMC,GAAG,GAAGvE,UAAU,CAACG,aAAa,CAAC,KAAK,CAAC;QAC3CoE,GAAG,CAACzC,YAAY,CAAC,OAAO,EAAE,oBAAoB,CAAC;QAC/C,IAAM0C,KAAK,GAAGC,EAAE,CAAC/E,kBAAkB,CAAC4E,EAAE,EAAE3E,SAAS,EAAEA,SAAS,EAAEP,OAAO,CAAC;QACtEsF,QAAQ,CAACC,iBAAiB,CAACJ,GAAG,EAAEC,KAAK,EAAE,KAAK,EAAE,UAC5CI,KAAK,EACLC,QAAQ,EACR;UACA,OAAO,IAAI;QACb,CAAC,CAAC;QACF,OAAON,GAAG;MACZ,CAAC;MACD,KAAK,IAAI9C,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGhB,KAAK,CAACb,MAAM,EAAE6B,CAAC,EAAE,EAAE;QACrC,IAAME,EAAE,GAAG3B,UAAU,CAACG,aAAa,CAAC,IAAI,CAAC;QACzC,IAAM2D,IAAI,GAAGrD,KAAK,CAACgB,CAAC,CAAC;QACrBE,EAAE,CAACuB,KAAK,CAAC4B,aAAa,GAAG,KAAK;QAC9B,IAAMC,EAAE,GAAGL,QAAQ,CAACM,eAAe,CAAClB,IAAI,EAAEnE,SAAS,EAAEgC,EAAE,CAAC;QACxDA,EAAE,CAACP,WAAW,CAAC2D,EAAE,CAAC;QAClBR,GAAG,CAACnD,WAAW,CAACO,EAAE,CAAC;QACnB+C,QAAQ,CAACO,aAAa,CAACF,EAAE,EAAEjB,IAAI,EAAE;UAAEoB,IAAI,EAAEb;QAAE,CAAC,CAAC;MAC/C;IACF;IAEA,SAASc,aAAa,GAAI;MACxB,IAAMpF,YAAY,GAAG,EAAE,EAAC;MACxB,IAAI0E,EAAE,CAACW,KAAK,CAAChG,OAAO,EAAEO,SAAS,EAAEA,SAAS,EAAEP,OAAO,CAAC,EAAE;QACpDW,YAAY,CAACsF,IAAI,CAACjG,OAAO,CAAC;MAC5B;MACA;MACA,IAAMkG,EAAE,GAAGb,EAAE,CAACc,GAAG,CAACnG,OAAO,EAAET,EAAE,CAACD,EAAE,CAAC8G,IAAI,CAAC,cAAc,CAAC,EAAE7F,SAAS,EAAEP,OAAO,CAAC;MAC1E,IAAIkG,EAAE,EAAEvF,YAAY,CAACsF,IAAI,CAACC,EAAE,CAAC;MAC7Bf,GAAG,CAACnD,WAAW,CACb/B,OAAO,CAACC,OAAO,CAAC+D,YAAY,CACzBC,MAAM,CAAC,cAAc,CAAC,CACtBzD,kBAAkB,CAACC,GAAG,EAAET,OAAO,EAAEU,YAAY,CAAC,CAClD;IACH;IAEA,IAAM2E,QAAQ,GAAGrF,OAAO,CAACoG,WAAW,CAACzF,UAAU,CAAC;IAChD,IAAMyE,EAAE,GAAGpF,OAAO,CAACC,OAAO,CAACC,KAAK;IAChC,IAAMgF,GAAG,GAAGvE,UAAU,CAACG,aAAa,CAAC,KAAK,CAAC;IAC3CoE,GAAG,CAACzC,YAAY,CAAC,OAAO,EAAE,iBAAiB,CAAC;IAC5C;IACA;IACA;IACA,IAAMhC,GAAG,GAAG2E,EAAE,CAAC/E,kBAAkB,CAACC,SAAS,EAAEA,SAAS,EAAEA,SAAS,EAAEP,OAAO,CAAC,EAAC;;IAE5E,IAAI,KAAK,EAAE;MAAE;MACXgF,oBAAoB,EAAE;IACxB,CAAC,MAAM;MACLe,aAAa,EAAE;IACjB;IACA,OAAOZ,GAAG;EACZ;AACF,CAAC;AAAA"}