solid-panes 3.5.11 → 3.5.14-bbf45639

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 (85) hide show
  1. package/.github/workflows/ci.yml +1 -1
  2. package/README.md +4 -0
  3. package/lib/dashboard/basicPreferences.js +193 -264
  4. package/lib/dashboard/basicPreferences.js.map +1 -1
  5. package/lib/dashboard/dashboardPane.d.ts.map +1 -1
  6. package/lib/dashboard/dashboardPane.js +57 -75
  7. package/lib/dashboard/dashboardPane.js.map +1 -1
  8. package/lib/dashboard/homepage.js +98 -100
  9. package/lib/dashboard/homepage.js.map +1 -1
  10. package/lib/form/pane.js +1 -1
  11. package/lib/form/pane.js.map +1 -1
  12. package/lib/home/homePane.js +112 -103
  13. package/lib/home/homePane.js.map +1 -1
  14. package/lib/humanReadablePane.js +55 -23
  15. package/lib/humanReadablePane.js.map +1 -1
  16. package/lib/index.d.ts +2 -1
  17. package/lib/index.d.ts.map +1 -1
  18. package/lib/index.js +49 -89
  19. package/lib/index.js.map +1 -1
  20. package/lib/internal/internalPane.js +180 -200
  21. package/lib/internal/internalPane.js.map +1 -1
  22. package/lib/mainPage/footer.d.ts +3 -0
  23. package/lib/mainPage/footer.d.ts.map +1 -0
  24. package/lib/mainPage/footer.js +20 -0
  25. package/lib/mainPage/footer.js.map +1 -0
  26. package/lib/mainPage/header.d.ts +2 -0
  27. package/lib/mainPage/header.d.ts.map +1 -0
  28. package/lib/mainPage/header.js +142 -0
  29. package/lib/mainPage/header.js.map +1 -0
  30. package/lib/mainPage/index.d.ts +3 -0
  31. package/lib/mainPage/index.d.ts.map +1 -0
  32. package/lib/mainPage/index.js +63 -0
  33. package/lib/mainPage/index.js.map +1 -0
  34. package/lib/microblogPane/microblogPane.js +1 -1
  35. package/lib/outline/context.d.ts +2 -1
  36. package/lib/outline/context.d.ts.map +1 -1
  37. package/lib/outline/context.js +13 -17
  38. package/lib/outline/context.js.map +1 -1
  39. package/lib/outline/manager.js +178 -150
  40. package/lib/outline/manager.js.map +1 -1
  41. package/lib/outline/propertyViews.js +32 -46
  42. package/lib/outline/propertyViews.js.map +1 -1
  43. package/lib/outline/userInput.js +1 -1
  44. package/lib/outline/viewAsImage.js +22 -19
  45. package/lib/outline/viewAsImage.js.map +1 -1
  46. package/lib/outline/viewAsMbox.js +5 -15
  47. package/lib/outline/viewAsMbox.js.map +1 -1
  48. package/lib/pad/padPane.js +406 -451
  49. package/lib/pad/padPane.js.map +1 -1
  50. package/lib/profile/editProfile.view.js +101 -124
  51. package/lib/profile/editProfile.view.js.map +1 -1
  52. package/lib/profile/profile.dom.js +12 -17
  53. package/lib/profile/profile.dom.js.map +1 -1
  54. package/lib/registerPanes.js +1 -1
  55. package/lib/registerPanes.js.map +1 -1
  56. package/lib/sharing/sharingPane.js +33 -45
  57. package/lib/sharing/sharingPane.js.map +1 -1
  58. package/lib/tabbed/tabbedPane.js +87 -77
  59. package/lib/tabbed/tabbedPane.js.map +1 -1
  60. package/lib/trustedApplications/trustedApplications.dom.js +173 -182
  61. package/lib/trustedApplications/trustedApplications.dom.js.map +1 -1
  62. package/lib/trustedApplications/trustedApplications.test.js +1 -1
  63. package/lib/trustedApplications/trustedApplications.utils.js +30 -36
  64. package/lib/trustedApplications/trustedApplications.utils.js.map +1 -1
  65. package/lib/trustedApplications/trustedApplications.view.js +91 -99
  66. package/lib/trustedApplications/trustedApplications.view.js.map +1 -1
  67. package/lib/types.js +1 -4
  68. package/lib/types.js.map +1 -1
  69. package/lib/versionInfo.d.ts +0 -1
  70. package/lib/versionInfo.d.ts.map +1 -1
  71. package/lib/versionInfo.js +23 -29
  72. package/lib/versionInfo.js.map +1 -1
  73. package/package.json +29 -29
  74. package/src/dashboard/dashboardPane.ts +5 -3
  75. package/src/form/pane.js +1 -1
  76. package/src/humanReadablePane.js +38 -14
  77. package/src/index.ts +4 -3
  78. package/src/mainPage/footer.ts +19 -0
  79. package/src/mainPage/header.ts +75 -0
  80. package/src/mainPage/index.ts +20 -0
  81. package/src/outline/context.ts +2 -1
  82. package/src/outline/manager.js +26 -16
  83. package/src/registerPanes.js +2 -2
  84. package/src/versionInfo.ts +18 -19
  85. package/webpack.config.js +1 -1
@@ -1,109 +1,118 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports["default"] = void 0;
7
-
8
- var _solidUi = require("solid-ui");
9
-
10
- 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); } }
11
-
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); }); }; }
13
-
2
+ /* Home Pane
3
+ **
4
+ ** The home pane is avaiable everywhere and allows a user
5
+ ** to
6
+ ** - keep track of their stuff
7
+ ** - make new things, and possibly
8
+ ** - keep track of accounts and workspaces etc
9
+ **
10
+ */
11
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
12
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
13
+ return new (P || (P = Promise))(function (resolve, reject) {
14
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
15
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
16
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
17
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
18
+ });
19
+ };
20
+ var __generator = (this && this.__generator) || function (thisArg, body) {
21
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
22
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
23
+ function verb(n) { return function (v) { return step([n, v]); }; }
24
+ function step(op) {
25
+ if (f) throw new TypeError("Generator is already executing.");
26
+ while (_) try {
27
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
28
+ if (y = 0, t) op = [op[0] & 2, t.value];
29
+ switch (op[0]) {
30
+ case 0: case 1: t = op; break;
31
+ case 4: _.label++; return { value: op[1], done: false };
32
+ case 5: _.label++; y = op[1]; op = [0]; continue;
33
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
34
+ default:
35
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
36
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
37
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
38
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
39
+ if (t[2]) _.ops.pop();
40
+ _.trys.pop(); continue;
41
+ }
42
+ op = body.call(thisArg, _);
43
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
44
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
45
+ }
46
+ };
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ var solid_ui_1 = require("solid-ui");
14
49
  var HomePaneSource = {
15
- icon: _solidUi.icons.iconBase + 'noun_547570.svg',
16
- // noun_25830
17
- global: true,
18
- name: 'home',
19
- // Does the subject deserve an home pane?
20
- //
21
- // yes, always!
22
- //
23
- label: function label() {
24
- return 'home';
25
- },
26
- render: function render(subject, context) {
27
- var dom = context.dom;
28
-
29
- var showContent = /*#__PURE__*/function () {
30
- var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
31
- var homePaneContext, creationDiv, creationContext, relevantPanes;
32
- return regeneratorRuntime.wrap(function _callee$(_context) {
33
- while (1) {
34
- switch (_context.prev = _context.next) {
35
- case 0:
36
- homePaneContext = {
37
- div: div,
38
- dom: dom,
39
- statusArea: div,
40
- me: me
41
- };
42
- /*
43
- div.appendChild(dom.createElement('h4')).textContent = 'Login status'
44
- var loginStatusDiv = div.appendChild(context.dom.createElement('div'))
45
- // TODO: Find out what the actual type is:
46
- type UriType = unknown;
47
- loginStatusDiv.appendChild(UI.authn.loginStatusBox(context.dom, () => {
48
- // Here we know new log in status
49
- }))
50
- */
51
-
52
- div.appendChild(dom.createElement('h4')).textContent = 'Create new thing somewhere';
53
- creationDiv = div.appendChild(dom.createElement('div'));
54
- creationContext = {
55
- div: creationDiv,
56
- dom: dom,
57
- statusArea: div,
58
- me: me
59
- };
60
- _context.next = 6;
61
- return _solidUi.authn.filterAvailablePanes(context.session.paneRegistry.list);
62
-
63
- case 6:
64
- relevantPanes = _context.sent;
65
-
66
- _solidUi.create.newThingUI(creationContext, context, relevantPanes); // newUI Have to pass panes down
67
-
68
-
69
- div.appendChild(dom.createElement('h4')).textContent = 'Private things'; // TODO: Replace by a common, representative interface
70
-
71
- _solidUi.authn.registrationList(homePaneContext, {
72
- "private": true
73
- }).then(function (authContext) {
74
- div.appendChild(dom.createElement('h4')).textContent = 'Public things';
75
- div.appendChild(dom.createElement('p')).textContent = 'Things in this list are visible to others.';
76
-
77
- _solidUi.authn.registrationList(authContext, {
78
- "public": true
79
- }).then(function () {// done
80
- });
50
+ icon: solid_ui_1.icons.iconBase + 'noun_547570.svg',
51
+ global: true,
52
+ name: 'home',
53
+ // Does the subject deserve an home pane?
54
+ //
55
+ // yes, always!
56
+ //
57
+ label: function () {
58
+ return 'home';
59
+ },
60
+ render: function (subject, context) {
61
+ var dom = context.dom;
62
+ var showContent = function () {
63
+ return __awaiter(this, void 0, void 0, function () {
64
+ var homePaneContext, creationDiv, creationContext, relevantPanes;
65
+ return __generator(this, function (_a) {
66
+ switch (_a.label) {
67
+ case 0:
68
+ homePaneContext = { div: div, dom: dom, statusArea: div, me: me };
69
+ /*
70
+ div.appendChild(dom.createElement('h4')).textContent = 'Login status'
71
+ var loginStatusDiv = div.appendChild(context.dom.createElement('div'))
72
+ // TODO: Find out what the actual type is:
73
+ type UriType = unknown;
74
+ loginStatusDiv.appendChild(UI.authn.loginStatusBox(context.dom, () => {
75
+ // Here we know new log in status
76
+ }))
77
+ */
78
+ div.appendChild(dom.createElement('h4')).textContent =
79
+ 'Create new thing somewhere';
80
+ creationDiv = div.appendChild(dom.createElement('div'));
81
+ creationContext = {
82
+ div: creationDiv,
83
+ dom: dom,
84
+ statusArea: div,
85
+ me: me
86
+ };
87
+ return [4 /*yield*/, solid_ui_1.authn.filterAvailablePanes(context.session.paneRegistry.list)];
88
+ case 1:
89
+ relevantPanes = _a.sent();
90
+ solid_ui_1.create.newThingUI(creationContext, context, relevantPanes); // newUI Have to pass panes down
91
+ div.appendChild(dom.createElement('h4')).textContent = 'Private things';
92
+ // TODO: Replace by a common, representative interface
93
+ solid_ui_1.authn
94
+ .registrationList(homePaneContext, { private: true })
95
+ .then(function (authContext) {
96
+ div.appendChild(dom.createElement('h4')).textContent = 'Public things';
97
+ div.appendChild(dom.createElement('p')).textContent =
98
+ 'Things in this list are visible to others.';
99
+ solid_ui_1.authn
100
+ .registrationList(authContext, { public: true })
101
+ .then(function () {
102
+ // done
103
+ });
104
+ });
105
+ return [2 /*return*/];
106
+ }
81
107
  });
82
-
83
- case 10:
84
- case "end":
85
- return _context.stop();
86
- }
87
- }
88
- }, _callee);
89
- }));
90
-
91
- return function showContent() {
92
- return _ref.apply(this, arguments);
93
- };
94
- }();
95
-
96
- var div = dom.createElement('div');
97
-
98
- var me = _solidUi.authn.currentUser(); // this will be incorrect if not logged in
99
-
100
-
101
- showContent();
102
- return div;
103
- }
108
+ });
109
+ };
110
+ var div = dom.createElement('div');
111
+ var me = solid_ui_1.authn.currentUser(); // this will be incorrect if not logged in
112
+ showContent();
113
+ return div;
114
+ }
104
115
  }; // pane object
105
116
  // ends
106
-
107
- var _default = HomePaneSource;
108
- exports["default"] = _default;
117
+ exports.default = HomePaneSource;
109
118
  //# sourceMappingURL=homePane.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/home/homePane.ts"],"names":["HomePaneSource","icon","icons","iconBase","global","name","label","render","subject","context","dom","showContent","homePaneContext","div","statusArea","me","appendChild","createElement","textContent","creationDiv","creationContext","authn","filterAvailablePanes","session","paneRegistry","list","relevantPanes","create","newThingUI","registrationList","then","authContext","currentUser"],"mappings":";;;;;;;AAUA;;;;;;AAKA,IAAMA,cAA8B,GAAG;AACrCC,EAAAA,IAAI,EAAEC,eAAMC,QAAN,GAAiB,iBADc;AACK;AAE1CC,EAAAA,MAAM,EAAE,IAH6B;AAKrCC,EAAAA,IAAI,EAAE,MAL+B;AAOrC;AACA;AACA;AACA;AACAC,EAAAA,KAAK,EAAE,iBAAY;AACjB,WAAO,MAAP;AACD,GAboC;AAerCC,EAAAA,MAAM,EAAE,gBAAUC,OAAV,EAAmBC,OAAnB,EAA4B;AAClC,QAAMC,GAAG,GAAGD,OAAO,CAACC,GAApB;;AACA,QAAMC,WAAW;AAAA,yEAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AACZC,gBAAAA,eADY,GACM;AAAEC,kBAAAA,GAAG,EAAEA,GAAP;AAAYH,kBAAAA,GAAG,EAAEA,GAAjB;AAAsBI,kBAAAA,UAAU,EAAED,GAAlC;AAAuCE,kBAAAA,EAAE,EAAEA;AAA3C,iBADN;AAElB;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACMF,gBAAAA,GAAG,CAACG,WAAJ,CAAgBN,GAAG,CAACO,aAAJ,CAAkB,IAAlB,CAAhB,EAAyCC,WAAzC,GACE,4BADF;AAEMC,gBAAAA,WAbY,GAaEN,GAAG,CAACG,WAAJ,CAAgBN,GAAG,CAACO,aAAJ,CAAkB,KAAlB,CAAhB,CAbF;AAcZG,gBAAAA,eAdY,GAcqB;AACrCP,kBAAAA,GAAG,EAAEM,WADgC;AAErCT,kBAAAA,GAAG,EAAEA,GAFgC;AAGrCI,kBAAAA,UAAU,EAAED,GAHyB;AAIrCE,kBAAAA,EAAE,EAAEA;AAJiC,iBAdrB;AAAA;AAAA,uBAoBUM,eAAMC,oBAAN,CAC1Bb,OAAO,CAACc,OAAR,CAAgBC,YAAhB,CAA6BC,IADH,CApBV;;AAAA;AAoBZC,gBAAAA,aApBY;;AAuBlBC,gCAAOC,UAAP,CAAkBR,eAAlB,EAAmCX,OAAnC,EAA4CiB,aAA5C,EAvBkB,CAuByC;;;AAE3Db,gBAAAA,GAAG,CAACG,WAAJ,CAAgBN,GAAG,CAACO,aAAJ,CAAkB,IAAlB,CAAhB,EAAyCC,WAAzC,GAAuD,gBAAvD,CAzBkB,CA0BlB;;AACAG,+BACGQ,gBADH,CACoBjB,eADpB,EACqC;AAAE,6BAAS;AAAX,iBADrC,EAEGkB,IAFH,CAEQ,UAAUC,WAAV,EAAuB;AAC3BlB,kBAAAA,GAAG,CAACG,WAAJ,CAAgBN,GAAG,CAACO,aAAJ,CAAkB,IAAlB,CAAhB,EAAyCC,WAAzC,GAAuD,eAAvD;AACAL,kBAAAA,GAAG,CAACG,WAAJ,CAAgBN,GAAG,CAACO,aAAJ,CAAkB,GAAlB,CAAhB,EAAwCC,WAAxC,GACE,4CADF;;AAEAG,iCACGQ,gBADH,CACoBE,WADpB,EACiC;AAAE,8BAAQ;AAAV,mBADjC,EAEGD,IAFH,CAEQ,YAAY,CAChB;AACD,mBAJH;AAKD,iBAXH;;AA3BkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAH;;AAAA,sBAAXnB,WAAW;AAAA;AAAA;AAAA,OAAjB;;AAyCA,QAAME,GAAG,GAAGH,GAAG,CAACO,aAAJ,CAAkB,KAAlB,CAAZ;;AACA,QAAMF,EAAa,GAAGM,eAAMW,WAAN,EAAtB,CA5CkC,CA4CqB;;;AAEvDrB,IAAAA,WAAW;AAEX,WAAOE,GAAP;AACD;AAhEoC,CAAvC,C,CAiEE;AAEF;;eACeb,c","sourcesContent":["/* Home Pane\n **\n ** The home pane is avaiable everywhere and allows a user\n ** to\n ** - keep track of their stuff\n ** - make new things, and possibly\n ** - keep track of accounts and workspaces etc\n **\n */\n\nimport { authn, create, icons } from 'solid-ui'\nimport { PaneDefinition } from 'pane-registry'\nimport { CreateContext } from 'solid-ui/lib/create/types'\nimport { NamedNode } from 'rdflib'\n\nconst HomePaneSource: PaneDefinition = {\n icon: icons.iconBase + 'noun_547570.svg', // noun_25830\n\n global: true,\n\n name: 'home',\n\n // Does the subject deserve an home pane?\n //\n // yes, always!\n //\n label: function () {\n return 'home'\n },\n\n render: function (subject, context) {\n const dom = context.dom\n const showContent = async function () {\n const homePaneContext = { div: div, dom: dom, statusArea: div, me: me }\n /*\n div.appendChild(dom.createElement('h4')).textContent = 'Login status'\n var loginStatusDiv = div.appendChild(context.dom.createElement('div'))\n // TODO: Find out what the actual type is:\n type UriType = unknown;\n loginStatusDiv.appendChild(UI.authn.loginStatusBox(context.dom, () => {\n // Here we know new log in status\n }))\n */\n div.appendChild(dom.createElement('h4')).textContent =\n 'Create new thing somewhere'\n const creationDiv = div.appendChild(dom.createElement('div'))\n const creationContext: CreateContext = {\n div: creationDiv,\n dom: dom,\n statusArea: div,\n me: me\n }\n const relevantPanes = await authn.filterAvailablePanes(\n context.session.paneRegistry.list\n )\n create.newThingUI(creationContext, context, relevantPanes) // newUI Have to pass panes down\n\n div.appendChild(dom.createElement('h4')).textContent = 'Private things'\n // TODO: Replace by a common, representative interface\n authn\n .registrationList(homePaneContext, { private: true })\n .then(function (authContext) {\n div.appendChild(dom.createElement('h4')).textContent = 'Public things'\n div.appendChild(dom.createElement('p')).textContent =\n 'Things in this list are visible to others.'\n authn\n .registrationList(authContext, { public: true })\n .then(function () {\n // done\n })\n })\n }\n\n const div = dom.createElement('div')\n const me: NamedNode = authn.currentUser() as NamedNode // this will be incorrect if not logged in\n\n showContent()\n\n return div\n }\n} // pane object\n\n// ends\nexport default HomePaneSource\n"],"file":"homePane.js"}
1
+ {"version":3,"file":"homePane.js","sourceRoot":"","sources":["../../src/home/homePane.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,qCAA+C;AAK/C,IAAM,cAAc,GAAmB;IACrC,IAAI,EAAE,gBAAK,CAAC,QAAQ,GAAG,iBAAiB;IAExC,MAAM,EAAE,IAAI;IAEZ,IAAI,EAAE,MAAM;IAEZ,yCAAyC;IACzC,EAAE;IACF,iBAAiB;IACjB,EAAE;IACF,KAAK,EAAE;QACL,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,EAAE,UAAU,OAAO,EAAE,OAAO;QAChC,IAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;QACvB,IAAM,WAAW,GAAG;;;;;;4BACZ,eAAe,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAA;4BACvE;;;;;;;;8BAQE;4BACF,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW;gCAClD,4BAA4B,CAAA;4BACxB,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;4BACvD,eAAe,GAAkB;gCACrC,GAAG,EAAE,WAAW;gCAChB,GAAG,EAAE,GAAG;gCACR,UAAU,EAAE,GAAG;gCACf,EAAE,EAAE,EAAE;6BACP,CAAA;4BACqB,qBAAM,gBAAK,CAAC,oBAAoB,CACpD,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAClC,EAAA;;4BAFK,aAAa,GAAG,SAErB;4BACD,iBAAM,CAAC,UAAU,CAAC,eAAe,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA,CAAC,gCAAgC;4BAE3F,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,GAAG,gBAAgB,CAAA;4BACvE,sDAAsD;4BACtD,gBAAK;iCACF,gBAAgB,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;iCACpD,IAAI,CAAC,UAAU,WAAW;gCACzB,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,GAAG,eAAe,CAAA;gCACtE,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW;oCACjD,4CAA4C,CAAA;gCAC9C,gBAAK;qCACF,gBAAgB,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;qCAC/C,IAAI,CAAC;oCACJ,OAAO;gCACT,CAAC,CAAC,CAAA;4BACN,CAAC,CAAC,CAAA;;;;;SACL,CAAA;QAED,IAAM,GAAG,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QACpC,IAAM,EAAE,GAAc,gBAAK,CAAC,WAAW,EAAe,CAAA,CAAC,0CAA0C;QAEjG,WAAW,EAAE,CAAA;QAEb,OAAO,GAAG,CAAA;IACZ,CAAC;CACF,CAAA,CAAC,cAAc;AAEhB,OAAO;AACP,kBAAe,cAAc,CAAA"}
@@ -1,22 +1,28 @@
1
1
  "use strict";
2
2
 
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _solidUi = require("solid-ui");
9
+
10
+ var _rdflib = require("rdflib");
11
+
12
+ var _marked = require("marked");
13
+
3
14
  /* Human-readable Pane
4
15
  **
5
16
  ** This outline pane contains the document contents for an HTML document
6
17
  ** This is for peeking at a page, because the user might not want to leave the data browser.
7
18
  */
8
- var UI = require('solid-ui');
9
-
10
- var $rdf = require('rdflib');
11
-
12
- module.exports = {
13
- icon: UI.icons.originalIconBase + 'tango/22-text-x-generic.png',
19
+ var humanReadablePane = {
20
+ icon: _solidUi.icons.originalIconBase + 'tango/22-text-x-generic.png',
14
21
  name: 'humanReadable',
15
22
  label: function label(subject, context) {
16
- var kb = context.session.store;
17
- var ns = UI.ns; // See also the source pane, which has lower precedence.
23
+ var kb = context.session.store; // See also the source pane, which has lower precedence.
18
24
 
19
- var allowed = ['text/plain', 'text/html', 'application/xhtml+xml', 'image/png', 'image/jpeg', 'application/pdf', 'video/mp4'];
25
+ var allowed = ['text/plain', 'text/html', 'text/markdown', 'application/xhtml+xml', 'image/png', 'image/jpeg', 'application/pdf', 'video/mp4'];
20
26
 
21
27
  var hasContentTypeIn = function hasContentTypeIn(kb, x, displayables) {
22
28
  var cts = kb.fetcher.getHeader(x, 'content-type');
@@ -39,7 +45,7 @@ module.exports = {
39
45
  var t = kb.findTypeURIs(subject);
40
46
 
41
47
  for (var k = 0; k < displayables.length; k++) {
42
- if ($rdf.Util.mediaTypeClass(displayables[k]).uri in t) {
48
+ if (_rdflib.Util.mediaTypeClass(displayables[k]).uri in t) {
43
49
  return true;
44
50
  }
45
51
  }
@@ -50,7 +56,7 @@ module.exports = {
50
56
  if (!subject.uri) return null; // no bnodes
51
57
 
52
58
  var t = kb.findTypeURIs(subject);
53
- if (t[ns.link('WebPage').uri]) return 'view';
59
+ if (t[_solidUi.ns.link('WebPage').uri]) return 'view';
54
60
 
55
61
  if (hasContentTypeIn(kb, subject, allowed) || hasContentTypeIn2(kb, subject, allowed)) {
56
62
  return 'View';
@@ -61,13 +67,7 @@ module.exports = {
61
67
  render: function render(subject, context) {
62
68
  var myDocument = context.dom;
63
69
  var div = myDocument.createElement('div');
64
- var kb = context.session.store; // @@ When we can, use CSP to turn off scripts within the iframe
65
-
66
- div.setAttribute('class', 'docView');
67
- var iframe = myDocument.createElement('IFRAME');
68
- iframe.setAttribute('src', subject.uri); // allow-same-origin
69
-
70
- iframe.setAttribute('class', 'doc');
70
+ var kb = context.session.store;
71
71
  var cts = kb.fetcher.getHeader(subject.doc(), 'content-type');
72
72
  var ct = cts ? cts[0] : null;
73
73
 
@@ -75,21 +75,53 @@ module.exports = {
75
75
  console.log('humanReadablePane: c-t:' + ct);
76
76
  } else {
77
77
  console.log('humanReadablePane: unknown content-type?');
78
+ } // @@ When we can, use CSP to turn off scripts within the iframe
79
+
80
+
81
+ div.setAttribute('class', 'docView');
82
+ var element = ct === 'text/markdown' ? 'DIV' : 'IFRAME';
83
+ var frame = myDocument.createElement(element); // let dataUri
84
+ // render markdown to html
85
+
86
+ var markdownHtml = function markdownHtml() {
87
+ kb.fetcher.webOperation('GET', subject.uri).then(function (response) {
88
+ var markdownText = response.responseText;
89
+ var lines = Math.min(30, markdownText.split(/\n/).length + 5);
90
+
91
+ var res = _marked.marked.parse(markdownText); // dataUri = 'data:text/html;charset=utf-8,' + encodeURIComponent(res)
92
+ // iframe.setAttribute('src', dataUri)
93
+
94
+
95
+ frame.innerHTML = res;
96
+ frame.setAttribute('class', 'doc');
97
+ frame.setAttribute('style', "border: 1px solid; padding: 1em; height: ".concat(lines, "em; width: 800px; resize: both; overflow: auto;"));
98
+ });
99
+ };
100
+
101
+ if (ct === 'text/markdown') {
102
+ markdownHtml();
103
+ } else {
104
+ frame.setAttribute('src', subject.uri); // allow-same-origin
105
+
106
+ frame.setAttribute('class', 'doc');
107
+ frame.setAttribute('style', 'resize = both; height:120em; width:80em;');
78
108
  } // @@ Note below - if we set ANY sandbox, then Chrome and Safari won't display it if it is PDF.
79
109
  // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe
80
110
  // You can;'t have any sandbox and allow plugins.
81
111
  // We could sandbox only HTML files I suppose.
82
112
  // HTML5 bug: https://lists.w3.org/Archives/Public/public-html/2011Jun/0330.html
83
113
  // iframe.setAttribute('sandbox', 'allow-same-origin allow-forms'); // allow-scripts ?? no documents should be static
84
-
85
-
86
- iframe.setAttribute('style', 'resize = both; height: 120em; width:80em;'); // iframe.setAttribute('height', '480')
114
+ // iframe.setAttribute('height', '480')
87
115
  // iframe.setAttribute('width', '640')
88
116
 
117
+
89
118
  var tr = myDocument.createElement('TR');
90
- tr.appendChild(iframe);
119
+ tr.appendChild(frame);
91
120
  div.appendChild(tr);
92
121
  return div;
93
122
  }
94
- }; // ends
123
+ };
124
+ var _default = humanReadablePane; // ends
125
+
126
+ exports["default"] = _default;
95
127
  //# sourceMappingURL=humanReadablePane.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/humanReadablePane.js"],"names":["UI","require","$rdf","module","exports","icon","icons","originalIconBase","name","label","subject","context","kb","session","store","ns","allowed","hasContentTypeIn","x","displayables","cts","fetcher","getHeader","j","length","k","indexOf","hasContentTypeIn2","t","findTypeURIs","Util","mediaTypeClass","uri","link","render","myDocument","dom","div","createElement","setAttribute","iframe","doc","ct","console","log","tr","appendChild"],"mappings":"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","sourcesContent":["/* Human-readable Pane\n **\n ** This outline pane contains the document contents for an HTML document\n ** This is for peeking at a page, because the user might not want to leave the data browser.\n */\nconst UI = require('solid-ui')\nconst $rdf = require('rdflib')\n\nmodule.exports = {\n icon: UI.icons.originalIconBase + 'tango/22-text-x-generic.png',\n\n name: 'humanReadable',\n\n label: function (subject, context) {\n const kb = context.session.store\n const ns = UI.ns\n\n // See also the source pane, which has lower precedence.\n\n const allowed = [\n 'text/plain',\n 'text/html',\n 'application/xhtml+xml',\n 'image/png',\n 'image/jpeg',\n 'application/pdf',\n 'video/mp4'\n ]\n\n const hasContentTypeIn = function (kb, x, displayables) {\n const cts = kb.fetcher.getHeader(x, 'content-type')\n if (cts) {\n for (let j = 0; j < cts.length; j++) {\n for (let k = 0; k < displayables.length; k++) {\n if (cts[j].indexOf(displayables[k]) >= 0) {\n return true\n }\n }\n }\n }\n return false\n }\n\n // This data could come from a fetch OR from ldp container\n const hasContentTypeIn2 = function (kb, x, displayables) {\n const t = kb.findTypeURIs(subject)\n for (let k = 0; k < displayables.length; k++) {\n if ($rdf.Util.mediaTypeClass(displayables[k]).uri in t) {\n return true\n }\n }\n return false\n }\n\n if (!subject.uri) return null // no bnodes\n\n const t = kb.findTypeURIs(subject)\n if (t[ns.link('WebPage').uri]) return 'view'\n\n if (\n hasContentTypeIn(kb, subject, allowed) ||\n hasContentTypeIn2(kb, subject, allowed)\n ) {\n return 'View'\n }\n\n return null\n },\n\n render: function (subject, context) {\n const myDocument = context.dom\n const div = myDocument.createElement('div')\n const kb = context.session.store\n\n // @@ When we can, use CSP to turn off scripts within the iframe\n div.setAttribute('class', 'docView')\n const iframe = myDocument.createElement('IFRAME')\n iframe.setAttribute('src', subject.uri) // allow-same-origin\n iframe.setAttribute('class', 'doc')\n\n const cts = kb.fetcher.getHeader(subject.doc(), 'content-type')\n const ct = cts ? cts[0] : null\n if (ct) {\n console.log('humanReadablePane: c-t:' + ct)\n } else {\n console.log('humanReadablePane: unknown content-type?')\n }\n\n // @@ Note below - if we set ANY sandbox, then Chrome and Safari won't display it if it is PDF.\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe\n // You can;'t have any sandbox and allow plugins.\n // We could sandbox only HTML files I suppose.\n // HTML5 bug: https://lists.w3.org/Archives/Public/public-html/2011Jun/0330.html\n\n // iframe.setAttribute('sandbox', 'allow-same-origin allow-forms'); // allow-scripts ?? no documents should be static\n\n iframe.setAttribute('style', 'resize = both; height: 120em; width:80em;')\n // iframe.setAttribute('height', '480')\n // iframe.setAttribute('width', '640')\n const tr = myDocument.createElement('TR')\n tr.appendChild(iframe)\n div.appendChild(tr)\n return div\n }\n}\n// ends\n"],"file":"humanReadablePane.js"}
1
+ {"version":3,"sources":["../src/humanReadablePane.js"],"names":["humanReadablePane","icon","icons","originalIconBase","name","label","subject","context","kb","session","store","allowed","hasContentTypeIn","x","displayables","cts","fetcher","getHeader","j","length","k","indexOf","hasContentTypeIn2","t","findTypeURIs","Util","mediaTypeClass","uri","ns","link","render","myDocument","dom","div","createElement","doc","ct","console","log","setAttribute","element","frame","markdownHtml","webOperation","then","response","markdownText","responseText","lines","Math","min","split","res","marked","parse","innerHTML","tr","appendChild"],"mappings":"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","sourcesContent":["/* Human-readable Pane\n **\n ** This outline pane contains the document contents for an HTML document\n ** This is for peeking at a page, because the user might not want to leave the data browser.\n */\nimport { icons, ns } from 'solid-ui'\nimport { Util } from 'rdflib'\nimport { marked } from 'marked'\n\nconst humanReadablePane = {\n icon: icons.originalIconBase + 'tango/22-text-x-generic.png',\n\n name: 'humanReadable',\n\n label: function (subject, context) {\n const kb = context.session.store\n\n // See also the source pane, which has lower precedence.\n\n const allowed = [\n 'text/plain',\n 'text/html',\n 'text/markdown',\n 'application/xhtml+xml',\n 'image/png',\n 'image/jpeg',\n 'application/pdf',\n 'video/mp4'\n ]\n\n const hasContentTypeIn = function (kb, x, displayables) {\n const cts = kb.fetcher.getHeader(x, 'content-type')\n if (cts) {\n for (let j = 0; j < cts.length; j++) {\n for (let k = 0; k < displayables.length; k++) {\n if (cts[j].indexOf(displayables[k]) >= 0) {\n return true\n }\n }\n }\n }\n return false\n }\n\n // This data could come from a fetch OR from ldp container\n const hasContentTypeIn2 = function (kb, x, displayables) {\n const t = kb.findTypeURIs(subject)\n for (let k = 0; k < displayables.length; k++) {\n if (Util.mediaTypeClass(displayables[k]).uri in t) {\n return true\n }\n }\n return false\n }\n\n if (!subject.uri) return null // no bnodes\n\n const t = kb.findTypeURIs(subject)\n if (t[ns.link('WebPage').uri]) return 'view'\n\n if (\n hasContentTypeIn(kb, subject, allowed) ||\n hasContentTypeIn2(kb, subject, allowed)\n ) {\n return 'View'\n }\n\n return null\n },\n\n render: function (subject, context) {\n const myDocument = context.dom\n const div = myDocument.createElement('div')\n const kb = context.session.store\n\n const cts = kb.fetcher.getHeader(subject.doc(), 'content-type')\n const ct = cts ? cts[0] : null\n if (ct) {\n console.log('humanReadablePane: c-t:' + ct)\n } else {\n console.log('humanReadablePane: unknown content-type?')\n }\n\n // @@ When we can, use CSP to turn off scripts within the iframe\n div.setAttribute('class', 'docView')\n const element = ct === 'text/markdown' ? 'DIV' : 'IFRAME'\n const frame = myDocument.createElement(element)\n // let dataUri\n\n // render markdown to html\n const markdownHtml = function () {\n kb.fetcher.webOperation('GET', subject.uri).then(response => {\n const markdownText = response.responseText\n const lines = Math.min(30, markdownText.split(/\\n/).length + 5)\n const res = marked.parse(markdownText)\n // dataUri = 'data:text/html;charset=utf-8,' + encodeURIComponent(res)\n // iframe.setAttribute('src', dataUri)\n frame.innerHTML = res\n frame.setAttribute('class', 'doc')\n frame.setAttribute('style', `border: 1px solid; padding: 1em; height: ${lines}em; width: 800px; resize: both; overflow: auto;`)\n })\n }\n\n if (ct === 'text/markdown') {\n markdownHtml()\n } else {\n frame.setAttribute('src', subject.uri) // allow-same-origin\n frame.setAttribute('class', 'doc')\n frame.setAttribute('style', 'resize = both; height:120em; width:80em;')\n }\n\n // @@ Note below - if we set ANY sandbox, then Chrome and Safari won't display it if it is PDF.\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe\n // You can;'t have any sandbox and allow plugins.\n // We could sandbox only HTML files I suppose.\n // HTML5 bug: https://lists.w3.org/Archives/Public/public-html/2011Jun/0330.html\n\n // iframe.setAttribute('sandbox', 'allow-same-origin allow-forms'); // allow-scripts ?? no documents should be static\n\n // iframe.setAttribute('height', '480')\n // iframe.setAttribute('width', '640')\n const tr = myDocument.createElement('TR')\n tr.appendChild(frame)\n div.appendChild(tr)\n return div\n }\n}\n\nexport default humanReadablePane\n// ends\n"],"file":"humanReadablePane.js"}
package/lib/index.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  import versionInfo from './versionInfo';
2
2
  import * as UI from 'solid-ui';
3
3
  import OutlineManager from './outline/manager.js';
4
+ import initMainPage from './mainPage';
4
5
  export declare function getOutliner(dom: any): any;
5
6
  export { list, paneForIcon, paneForPredicate, register, byName } from 'pane-registry';
6
- export { OutlineManager, UI, versionInfo };
7
+ export { OutlineManager, UI, versionInfo, initMainPage };
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAcA,OAAO,WAAW,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,cAAc,MAAM,sBAAsB,CAAA;AAYjD,wBAAgB,WAAW,CAAE,GAAG,KAAA,OAW/B;AAOD,OAAO,EACL,IAAI,EACJ,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,MAAM,EACP,MAAM,eAAe,CAAA;AAWtB,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,WAAW,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAcA,OAAO,WAAW,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,MAAM,UAAU,CAAA;AAE9B,OAAO,cAAc,MAAM,sBAAsB,CAAA;AAUjD,OAAO,YAAY,MAAM,YAAY,CAAA;AAErC,wBAAgB,WAAW,CAAE,GAAG,KAAA,OAW/B;AAOD,OAAO,EACL,IAAI,EACJ,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,MAAM,EACP,MAAM,eAAe,CAAA;AAWtB,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,CAAA"}
package/lib/index.js CHANGED
@@ -1,75 +1,4 @@
1
1
  "use strict";
2
-
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- Object.defineProperty(exports, "OutlineManager", {
9
- enumerable: true,
10
- get: function get() {
11
- return _manager["default"];
12
- }
13
- });
14
- exports.UI = void 0;
15
- Object.defineProperty(exports, "byName", {
16
- enumerable: true,
17
- get: function get() {
18
- return _paneRegistry.byName;
19
- }
20
- });
21
- exports.getOutliner = getOutliner;
22
- Object.defineProperty(exports, "list", {
23
- enumerable: true,
24
- get: function get() {
25
- return _paneRegistry.list;
26
- }
27
- });
28
- Object.defineProperty(exports, "paneForIcon", {
29
- enumerable: true,
30
- get: function get() {
31
- return _paneRegistry.paneForIcon;
32
- }
33
- });
34
- Object.defineProperty(exports, "paneForPredicate", {
35
- enumerable: true,
36
- get: function get() {
37
- return _paneRegistry.paneForPredicate;
38
- }
39
- });
40
- Object.defineProperty(exports, "register", {
41
- enumerable: true,
42
- get: function get() {
43
- return _paneRegistry.register;
44
- }
45
- });
46
- Object.defineProperty(exports, "versionInfo", {
47
- enumerable: true,
48
- get: function get() {
49
- return _versionInfo["default"];
50
- }
51
- });
52
-
53
- var _versionInfo = _interopRequireDefault(require("./versionInfo"));
54
-
55
- var UI = _interopRequireWildcard(require("solid-ui"));
56
-
57
- exports.UI = UI;
58
-
59
- var _manager = _interopRequireDefault(require("./outline/manager.js"));
60
-
61
- var _registerPanes = _interopRequireDefault(require("./registerPanes.js"));
62
-
63
- var _paneRegistry = require("pane-registry");
64
-
65
- var _context = require("./outline/context");
66
-
67
- 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); }
68
-
69
- 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; }
70
-
71
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
72
-
73
2
  /* SOLID PANES
74
3
  **
75
4
  ** Panes are regions of the outline view in which a particular subject is
@@ -81,28 +10,59 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
81
10
  ** relevant to a given subject, returning null if not.
82
11
  ** If it is relevant, then it returns a suitable tooltip for a control which selects the pane
83
12
  */
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || function (mod) {
26
+ if (mod && mod.__esModule) return mod;
27
+ var result = {};
28
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
+ __setModuleDefault(result, mod);
30
+ return result;
31
+ };
32
+ var __importDefault = (this && this.__importDefault) || function (mod) {
33
+ return (mod && mod.__esModule) ? mod : { "default": mod };
34
+ };
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.initMainPage = exports.versionInfo = exports.UI = exports.OutlineManager = exports.byName = exports.register = exports.paneForPredicate = exports.paneForIcon = exports.list = exports.getOutliner = void 0;
84
37
  // create the unique UI module on which to attach panes (no, don't attach as UI dot panes any more)
85
38
  // var UI = require('solid-ui') // Note we will add the panes register to this.
39
+ var versionInfo_1 = __importDefault(require("./versionInfo"));
40
+ exports.versionInfo = versionInfo_1.default;
41
+ var UI = __importStar(require("solid-ui"));
42
+ exports.UI = UI;
43
+ var manager_js_1 = __importDefault(require("./outline/manager.js"));
44
+ exports.OutlineManager = manager_js_1.default;
45
+ var registerPanes_js_1 = __importDefault(require("./registerPanes.js"));
46
+ var pane_registry_1 = require("pane-registry");
47
+ var context_1 = require("./outline/context");
48
+ var mainPage_1 = __importDefault(require("./mainPage"));
49
+ exports.initMainPage = mainPage_1.default;
86
50
  function getOutliner(dom) {
87
- if (!dom.outlineManager) {
88
- var context = (0, _context.createContext)(dom, {
89
- list: _paneRegistry.list,
90
- paneForIcon: _paneRegistry.paneForIcon,
91
- paneForPredicate: _paneRegistry.paneForPredicate,
92
- register: _paneRegistry.register,
93
- byName: _paneRegistry.byName
94
- }, UI.store, UI.solidLogicSingleton);
95
- dom.outlineManager = new _manager["default"](context);
96
- }
97
-
98
- return dom.outlineManager;
51
+ if (!dom.outlineManager) {
52
+ var context = (0, context_1.createContext)(dom, { list: pane_registry_1.list, paneForIcon: pane_registry_1.paneForIcon, paneForPredicate: pane_registry_1.paneForPredicate, register: pane_registry_1.register, byName: pane_registry_1.byName }, UI.store, UI.solidLogicSingleton);
53
+ dom.outlineManager = new manager_js_1.default(context);
54
+ }
55
+ return dom.outlineManager;
99
56
  }
100
-
57
+ exports.getOutliner = getOutliner;
101
58
  if (typeof window !== 'undefined') {
102
- getOutliner(window.document);
59
+ getOutliner(window.document);
103
60
  }
104
-
105
- (0, _registerPanes["default"])(function (cjsOrEsModule) {
106
- return (0, _paneRegistry.register)(cjsOrEsModule["default"] || cjsOrEsModule);
107
- });
61
+ (0, registerPanes_js_1.default)(function (cjsOrEsModule) { return (0, pane_registry_1.register)(cjsOrEsModule.default || cjsOrEsModule); });
62
+ var pane_registry_2 = require("pane-registry");
63
+ Object.defineProperty(exports, "list", { enumerable: true, get: function () { return pane_registry_2.list; } });
64
+ Object.defineProperty(exports, "paneForIcon", { enumerable: true, get: function () { return pane_registry_2.paneForIcon; } });
65
+ Object.defineProperty(exports, "paneForPredicate", { enumerable: true, get: function () { return pane_registry_2.paneForPredicate; } });
66
+ Object.defineProperty(exports, "register", { enumerable: true, get: function () { return pane_registry_2.register; } });
67
+ Object.defineProperty(exports, "byName", { enumerable: true, get: function () { return pane_registry_2.byName; } });
108
68
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["getOutliner","dom","outlineManager","context","list","paneForIcon","paneForPredicate","register","byName","UI","store","solidLogicSingleton","OutlineManager","window","document","cjsOrEsModule"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA;;AACA;;;;AACA;;AACA;;AACA;;AAQA;;;;;;;;AA1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAeO,SAASA,WAAT,CAAsBC,GAAtB,EAA2B;AAChC,MAAI,CAACA,GAAG,CAACC,cAAT,EAAyB;AACvB,QAAMC,OAAO,GAAG,4BACdF,GADc,EAEd;AAAEG,MAAAA,IAAI,EAAJA,kBAAF;AAAQC,MAAAA,WAAW,EAAXA,yBAAR;AAAqBC,MAAAA,gBAAgB,EAAhBA,8BAArB;AAAuCC,MAAAA,QAAQ,EAARA,sBAAvC;AAAiDC,MAAAA,MAAM,EAANA;AAAjD,KAFc,EAGRC,EAAE,CAACC,KAHK,EAIRD,EAAE,CAACE,mBAJK,CAAhB;AAMAV,IAAAA,GAAG,CAACC,cAAJ,GAAqB,IAAIU,mBAAJ,CAAmBT,OAAnB,CAArB;AACD;;AACD,SAAOF,GAAG,CAACC,cAAX;AACD;;AACD,IAAI,OAAOW,MAAP,KAAkB,WAAtB,EAAmC;AACjCb,EAAAA,WAAW,CAACa,MAAM,CAACC,QAAR,CAAX;AACD;;AAED,+BAAc,UAACC,aAAD;AAAA,SAAwB,4BAASA,aAAa,WAAb,IAAyBA,aAAlC,CAAxB;AAAA,CAAd","sourcesContent":["/* SOLID PANES\n **\n ** Panes are regions of the outline view in which a particular subject is\n ** displayed in a particular way.\n ** Different panes about the same subject are typically stacked vertically.\n ** Panes may be used naked or with a pane selection header.\n **\n ** The label() method has two functions: it determines whether the pane is\n ** relevant to a given subject, returning null if not.\n ** If it is relevant, then it returns a suitable tooltip for a control which selects the pane\n */\n\n// create the unique UI module on which to attach panes (no, don't attach as UI dot panes any more)\n// var UI = require('solid-ui') // Note we will add the panes register to this.\nimport versionInfo from './versionInfo'\nimport * as UI from 'solid-ui'\nimport OutlineManager from './outline/manager.js'\nimport registerPanes from './registerPanes.js'\nimport {\n list,\n paneForIcon,\n paneForPredicate,\n register,\n byName,\n LiveStore\n} from 'pane-registry'\nimport { createContext } from './outline/context'\n\nexport function getOutliner (dom) {\n if (!dom.outlineManager) {\n const context = createContext(\n dom,\n { list, paneForIcon, paneForPredicate, register, byName },\n UI.store as LiveStore,\n UI.solidLogicSingleton\n )\n dom.outlineManager = new OutlineManager(context)\n }\n return dom.outlineManager\n}\nif (typeof window !== 'undefined') {\n getOutliner(window.document)\n}\n\nregisterPanes((cjsOrEsModule: any) => register(cjsOrEsModule.default || cjsOrEsModule))\n\nexport {\n list,\n paneForIcon,\n paneForPredicate,\n register,\n byName\n} from 'pane-registry'\n\n// We attach the solid-UI lower-level system for convenience\n// Currently most panes are built using it anyway.\n// It also gives access to rdflib as panes.UI.rdf\n\n// This has common outline mode functionality for the default and other other panes\n// A separate outline manager is required per DOM in cases like a browser extension\n// where there are many occurrences of window and of window.document\n// But each DOM should have just one outline manager.\n\nexport { OutlineManager, UI, versionInfo }\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,mGAAmG;AACnG,+EAA+E;AAC/E,8DAAuC;AAkDV,sBAlDtB,qBAAW,CAkDsB;AAjDxC,2CAA8B;AAiDL,gBAAE;AA/C3B,oEAAiD;AA+CxC,yBA/CF,oBAAc,CA+CE;AA9CvB,wEAA8C;AAC9C,+CAMsB;AACtB,6CAAiD;AACjD,wDAAqC;AAqCK,uBArCnC,kBAAY,CAqCmC;AAnCtD,SAAgB,WAAW,CAAE,GAAG;IAC9B,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE;QACvB,IAAM,OAAO,GAAG,IAAA,uBAAa,EAC3B,GAAG,EACH,EAAE,IAAI,sBAAA,EAAE,WAAW,6BAAA,EAAE,gBAAgB,kCAAA,EAAE,QAAQ,0BAAA,EAAE,MAAM,wBAAA,EAAE,EACnD,EAAE,CAAC,KAAkB,EACrB,EAAE,CAAC,mBAAmB,CAC7B,CAAA;QACD,GAAG,CAAC,cAAc,GAAG,IAAI,oBAAc,CAAC,OAAO,CAAC,CAAA;KACjD;IACD,OAAO,GAAG,CAAC,cAAc,CAAA;AAC3B,CAAC;AAXD,kCAWC;AACD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;IACjC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;CAC7B;AAED,IAAA,0BAAa,EAAC,UAAC,aAAkB,IAAK,OAAA,IAAA,wBAAQ,EAAC,aAAa,CAAC,OAAO,IAAI,aAAa,CAAC,EAAhD,CAAgD,CAAC,CAAA;AAEvF,+CAMsB;AALpB,qGAAA,IAAI,OAAA;AACJ,4GAAA,WAAW,OAAA;AACX,iHAAA,gBAAgB,OAAA;AAChB,yGAAA,QAAQ,OAAA;AACR,uGAAA,MAAM,OAAA"}