@peers-app/peers-ui 0.13.5 → 0.14.0

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 (88) hide show
  1. package/dist/components/left-bar.js +0 -9
  2. package/dist/components/router.js +0 -44
  3. package/dist/index.d.ts +1 -1
  4. package/dist/index.js +1 -1
  5. package/dist/mention-configs.d.ts +0 -2
  6. package/dist/mention-configs.js +1 -38
  7. package/dist/screens/groups/group-details.js +1 -0
  8. package/dist/screens/search/global-search.js +2 -4
  9. package/dist/screens/workflows/workflow-details.js +5 -56
  10. package/dist/system-apps/index.d.ts +0 -4
  11. package/dist/system-apps/index.js +1 -18
  12. package/dist/tabs-layout/tabs-layout.js +12 -2
  13. package/dist/ui-defaults/index.d.ts +0 -1
  14. package/dist/ui-defaults/index.js +0 -1
  15. package/dist/ui-defaults/list-screen.js +0 -1
  16. package/docs/tabs-ui.md +6 -21
  17. package/package.json +3 -3
  18. package/src/components/left-bar.tsx +0 -12
  19. package/src/components/router.tsx +0 -48
  20. package/src/index.tsx +2 -2
  21. package/src/mention-configs.ts +1 -40
  22. package/src/screens/groups/group-details.tsx +2 -1
  23. package/src/screens/search/global-search.tsx +2 -6
  24. package/src/screens/workflows/workflow-details.tsx +3 -28
  25. package/src/system-apps/index.ts +0 -14
  26. package/src/tabs-layout/tabs-layout.tsx +17 -3
  27. package/src/ui-defaults/index.ts +0 -1
  28. package/src/ui-defaults/list-screen.tsx +0 -1
  29. package/dist/screens/events/cron.d.ts +0 -3
  30. package/dist/screens/events/cron.js +0 -77
  31. package/dist/screens/events/event-details.d.ts +0 -6
  32. package/dist/screens/events/event-details.js +0 -112
  33. package/dist/screens/events/event-handlers.d.ts +0 -7
  34. package/dist/screens/events/event-handlers.js +0 -84
  35. package/dist/screens/events/event-info.d.ts +0 -5
  36. package/dist/screens/events/event-info.js +0 -19
  37. package/dist/screens/events/event-list.d.ts +0 -2
  38. package/dist/screens/events/event-list.js +0 -107
  39. package/dist/screens/events/event-schedule.d.ts +0 -5
  40. package/dist/screens/events/event-schedule.js +0 -124
  41. package/dist/screens/knowledge/knowledge-frame-details.bk.d.ts +0 -6
  42. package/dist/screens/knowledge/knowledge-frame-details.bk.js +0 -84
  43. package/dist/screens/knowledge/knowledge-frame-details.d.ts +0 -8
  44. package/dist/screens/knowledge/knowledge-frame-details.js +0 -143
  45. package/dist/screens/knowledge/knowledge-frame-list.d.ts +0 -2
  46. package/dist/screens/knowledge/knowledge-frame-list.js +0 -45
  47. package/dist/screens/knowledge/knowledge-value-details.d.ts +0 -6
  48. package/dist/screens/knowledge/knowledge-value-details.js +0 -150
  49. package/dist/screens/knowledge/knowledge-value-list-item.d.ts +0 -5
  50. package/dist/screens/knowledge/knowledge-value-list-item.js +0 -39
  51. package/dist/screens/knowledge/knowledge-value-list.d.ts +0 -3
  52. package/dist/screens/knowledge/knowledge-value-list.js +0 -123
  53. package/dist/screens/predicates/predicate-details.d.ts +0 -6
  54. package/dist/screens/predicates/predicate-details.js +0 -103
  55. package/dist/screens/predicates/predicate-list.d.ts +0 -2
  56. package/dist/screens/predicates/predicate-list.js +0 -46
  57. package/dist/screens/workflows/workflow-subscriptions.d.ts +0 -6
  58. package/dist/screens/workflows/workflow-subscriptions.js +0 -81
  59. package/dist/system-apps/events.app.d.ts +0 -2
  60. package/dist/system-apps/events.app.js +0 -8
  61. package/dist/system-apps/knowledge-frames.app.d.ts +0 -2
  62. package/dist/system-apps/knowledge-frames.app.js +0 -9
  63. package/dist/system-apps/knowledge-values.app.d.ts +0 -2
  64. package/dist/system-apps/knowledge-values.app.js +0 -9
  65. package/dist/system-apps/predicates.app.d.ts +0 -2
  66. package/dist/system-apps/predicates.app.js +0 -8
  67. package/dist/ui-defaults/notes-editor.d.ts +0 -7
  68. package/dist/ui-defaults/notes-editor.js +0 -41
  69. package/src/screens/events/cron.ts +0 -74
  70. package/src/screens/events/event-details.tsx +0 -117
  71. package/src/screens/events/event-handlers.tsx +0 -61
  72. package/src/screens/events/event-info.tsx +0 -29
  73. package/src/screens/events/event-list.tsx +0 -104
  74. package/src/screens/events/event-schedule.tsx +0 -130
  75. package/src/screens/knowledge/knowledge-frame-details.bk.tsx +0 -160
  76. package/src/screens/knowledge/knowledge-frame-details.tsx +0 -176
  77. package/src/screens/knowledge/knowledge-frame-list.tsx +0 -49
  78. package/src/screens/knowledge/knowledge-value-details.tsx +0 -181
  79. package/src/screens/knowledge/knowledge-value-list-item.tsx +0 -48
  80. package/src/screens/knowledge/knowledge-value-list.tsx +0 -131
  81. package/src/screens/predicates/predicate-details.tsx +0 -125
  82. package/src/screens/predicates/predicate-list.tsx +0 -50
  83. package/src/screens/workflows/workflow-subscriptions.tsx +0 -58
  84. package/src/system-apps/events.app.ts +0 -7
  85. package/src/system-apps/knowledge-frames.app.ts +0 -8
  86. package/src/system-apps/knowledge-values.app.ts +0 -8
  87. package/src/system-apps/predicates.app.ts +0 -7
  88. package/src/ui-defaults/notes-editor.tsx +0 -51
@@ -1,84 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.PeerEventHandlersUI = void 0;
37
- const peers_sdk_1 = require("@peers-app/peers-sdk");
38
- const lodash_1 = require("lodash");
39
- const react_1 = __importStar(require("react"));
40
- const peers_sdk_2 = require("@peers-app/peers-sdk");
41
- const tooltip_1 = require("../../components/tooltip");
42
- const editor_inline_1 = require("../../components/markdown-editor/editor-inline");
43
- const loading_indicator_1 = require("../../components/loading-indicator");
44
- const peers_sdk_3 = require("@peers-app/peers-sdk");
45
- const hooks_1 = require("../../hooks");
46
- const PeerEventHandlersUI = (props) => {
47
- const { peerEventType, handlers } = props;
48
- const [handlersMarkdown] = (0, react_1.useState)(() => (0, peers_sdk_1.observable)(''));
49
- const markdownInitialized = (0, hooks_1.usePromise)(async () => {
50
- const workflowIds = handlers().map(h => h.handlerWorkflowId);
51
- const handlerWorkflows = await (0, peers_sdk_2.Workflows)().list({ workflowId: { $in: workflowIds } });
52
- const workflowTitles = handlerWorkflows.reduce((acc, wf) => ({ ...acc, [wf.workflowId]: wf.name }), {});
53
- const mentions = workflowIds.map(workflowId => '- ' + (0, peers_sdk_3.formatMention)({ kind: 'workflow', id: workflowId, name: workflowTitles[workflowId] ?? workflowId }));
54
- const markdown = `${mentions.join('\n') || '- '}`;
55
- handlersMarkdown(markdown);
56
- return true;
57
- });
58
- (0, hooks_1.useSubscription)(handlersMarkdown, () => {
59
- if (!markdownInitialized)
60
- return;
61
- const startWorkflowIds = handlers().map(h => h.handlerWorkflowId);
62
- const workflowIds = (0, peers_sdk_3.getAllMentions)(handlersMarkdown()).filter(m => m.kind === 'workflow').map(m => m.id);
63
- if ((0, lodash_1.isEqual)(startWorkflowIds, workflowIds))
64
- return;
65
- const newHandlers = workflowIds.map(workflowId => ({
66
- peerEventHandlerId: (0, peers_sdk_2.newid)(),
67
- peerEventTypeId: peerEventType.peerEventTypeId,
68
- handlerWorkflowId: workflowId,
69
- }));
70
- handlers(newHandlers);
71
- peerEventType.q(peerEventType.q() + 1);
72
- console.log('new handlers', newHandlers.map(h => h.handlerWorkflowId));
73
- });
74
- if (!markdownInitialized) {
75
- return react_1.default.createElement(loading_indicator_1.LoadingIndicator, null);
76
- }
77
- return (react_1.default.createElement("div", null,
78
- react_1.default.createElement("div", { className: 'mt-2' },
79
- react_1.default.createElement("small", null, "Mention workflows this event should trigger:"),
80
- react_1.default.createElement("small", null,
81
- react_1.default.createElement(tooltip_1.Tooltip, { markdownContent: `The mentions will be reformatted as a bulleted list regardless of how they are entered. All other content except for workflow mentions will be discarded.` })),
82
- react_1.default.createElement(editor_inline_1.MarkdownEditorInline, { value: handlersMarkdown }))));
83
- };
84
- exports.PeerEventHandlersUI = PeerEventHandlersUI;
@@ -1,5 +0,0 @@
1
- import React from "react";
2
- import { IDoc, IPeerEventType } from "@peers-app/peers-sdk";
3
- export declare const PeerEventInfo: (props: {
4
- peerEventType: IDoc<IPeerEventType>;
5
- }) => React.JSX.Element;
@@ -1,19 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.PeerEventInfo = void 0;
7
- const react_1 = __importDefault(require("react"));
8
- const editor_inline_1 = require("../../components/markdown-editor/editor-inline");
9
- const input_1 = require("../../components/input");
10
- const PeerEventInfo = (props) => {
11
- const { peerEventType } = props;
12
- return (react_1.default.createElement("div", null,
13
- react_1.default.createElement("small", null, "Name:"),
14
- react_1.default.createElement(input_1.Input, { value: peerEventType.qs.name, className: "form-control mb-3 p-0 ps-2", placeholder: "Event name", title: "Event name" }),
15
- react_1.default.createElement("div", { className: 'mt-2' },
16
- react_1.default.createElement("small", null, "Description:"),
17
- react_1.default.createElement(editor_inline_1.MarkdownEditorInline, { value: peerEventType.qs.description }))));
18
- };
19
- exports.PeerEventInfo = PeerEventInfo;
@@ -1,2 +0,0 @@
1
- import React from 'react';
2
- export declare function PeerEventList(): React.JSX.Element;
@@ -1,107 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.PeerEventList = PeerEventList;
37
- const peers_sdk_1 = require("@peers-app/peers-sdk");
38
- const react_1 = __importStar(require("react"));
39
- const input_1 = require("../../components/input");
40
- const lazy_list_1 = require("../../components/lazy-list");
41
- const loading_indicator_1 = require("../../components/loading-indicator");
42
- const markdown_with_mentions_1 = require("../../components/markdown-with-mentions");
43
- const globals_1 = require("../../globals");
44
- const hooks_1 = require("../../hooks");
45
- function PeerEventList() {
46
- const [searchTextObs] = (0, react_1.useState)(() => (0, peers_sdk_1.observable)(''));
47
- const [searchText] = (0, hooks_1.useObservable)(searchTextObs);
48
- const [cursorObs] = (0, react_1.useState)(() => (0, peers_sdk_1.observable)());
49
- const [cursorId] = (0, react_1.useState)(() => (0, peers_sdk_1.observable)((0, peers_sdk_1.newid)()));
50
- async function newCursor() {
51
- const cursor = await (0, peers_sdk_1.PeerEventTypes)().cursor({ name: { $matchWords: searchText } }, { sortBy: ['-createdAt'] });
52
- cursorObs(cursor);
53
- cursorId((0, peers_sdk_1.newid)());
54
- return cursor;
55
- }
56
- (0, react_1.useEffect)(() => {
57
- newCursor();
58
- }, [searchText]);
59
- async function searchSubmit(evt) {
60
- if (evt.key !== "Enter")
61
- return;
62
- if (!searchText.trim())
63
- return;
64
- const peerEventName = searchText.trim();
65
- const event = await (0, peers_sdk_1.PeerEventTypes)().initRecord({
66
- name: peerEventName,
67
- description: '',
68
- schema: {
69
- type: peers_sdk_1.IOSchemaType.none,
70
- fields: []
71
- }
72
- });
73
- await (0, peers_sdk_1.PeerEventTypes)().insert(event);
74
- (0, globals_1.mainContentPath)(`events/${event.peerEventTypeId}`);
75
- }
76
- async function loadMore(events) {
77
- let moreMatches = [];
78
- let cursor = cursorObs() || await newCursor();
79
- for await (const event of cursor) {
80
- if (events.find(e => e.peerEventTypeId === event.peerEventTypeId))
81
- continue;
82
- moreMatches.push(event);
83
- if (searchText.length && moreMatches.length > 5)
84
- break;
85
- if (moreMatches.length >= 50)
86
- break;
87
- }
88
- if (moreMatches.length === 0) {
89
- cursorObs(undefined);
90
- }
91
- return moreMatches;
92
- }
93
- return (react_1.default.createElement("div", { className: 'container-fluid' },
94
- react_1.default.createElement(input_1.Input, { value: searchTextObs, className: "form-control mt-3", style: { marginBottom: "10px" }, placeholder: "Search or create new event", autoFocus: (0, globals_1.isDesktop)() ? true : false, onKeyUp: evt => searchSubmit(evt) }),
95
- react_1.default.createElement("div", { className: "peers-list-container" },
96
- react_1.default.createElement(lazy_list_1.LazyList, { key: cursorId(), loadMore: loadMore, scrollThreshold: 0.6, renderItems: (events) => {
97
- return events.map(event => {
98
- return (react_1.default.createElement("div", { key: event.peerEventTypeId, className: 'container-fluid pb-4' },
99
- react_1.default.createElement("i", { className: "bi bi-lightning-charge-fill" }),
100
- "\u00A0",
101
- react_1.default.createElement("a", { href: `#events/${event.peerEventTypeId}` }, event.name),
102
- react_1.default.createElement("div", { style: { paddingLeft: '20px' } },
103
- react_1.default.createElement(markdown_with_mentions_1.MarkdownWithMentions, { content: event.description }))));
104
- });
105
- }, loadingIndicator: react_1.default.createElement("div", { className: "d-flex justify-content-center", style: { height: 200 } },
106
- react_1.default.createElement(loading_indicator_1.LoadingIndicator, null)), endOfList: react_1.default.createElement("div", { className: "d-flex justify-content-center", style: { height: 200 } }) }))));
107
- }
@@ -1,5 +0,0 @@
1
- import { IDoc, IPeerEventType } from "@peers-app/peers-sdk";
2
- import React from "react";
3
- export declare const PeerEventSchedule: (props: {
4
- peerEventType: IDoc<IPeerEventType>;
5
- }) => React.JSX.Element;
@@ -1,124 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.PeerEventSchedule = void 0;
37
- const react_1 = __importStar(require("react"));
38
- const input_1 = require("../../components/input");
39
- const markdown_with_mentions_1 = require("../../components/markdown-with-mentions");
40
- const tooltip_1 = require("../../components/tooltip");
41
- const hooks_1 = require("../../hooks");
42
- const cron_1 = require("./cron");
43
- const PeerEventSchedule = (props) => {
44
- const { peerEventType } = props;
45
- return (react_1.default.createElement("div", null,
46
- react_1.default.createElement("div", { className: "mt-3" }),
47
- react_1.default.createElement("small", null, "Chron Schedule"),
48
- react_1.default.createElement(CronScheduleEditor, { cronSchedule: peerEventType.qs.cronSchedule, q: peerEventType.q })));
49
- };
50
- exports.PeerEventSchedule = PeerEventSchedule;
51
- const CronScheduleEditor = (props) => {
52
- const { cronSchedule } = props;
53
- const tempSchedule = (0, hooks_1.useObservableState)(props.cronSchedule() ?? '');
54
- const cronError = (0, hooks_1.useObservableState)('');
55
- const cronExplanation = (0, hooks_1.useObservableState)('');
56
- const emptyCronMessage = [
57
- 'Enter a valid cron schedule to have this workflow automatically run.',
58
- 'For detailed information, see [Cron Schedule Syntax](https://en.wikipedia.org/wiki/Cron#CRON_expression)',
59
- 'and [CronTab.Guru](https://crontab.guru/)\n',
60
- 'The format is:',
61
- '- `minute hour day-of-month month day-of-week`. ',
62
- ' - `*` means every',
63
- ' - `1-5` means 1 through 5',
64
- ' - `1,4` means 1 and 4',
65
- '',
66
- 'Examples:',
67
- '- run every day at 3am:\n - `0 3 * * *`',
68
- '- run every Monday at 3am:\n - `0 3 * * 1`',
69
- '- run every Monday and Thursday at 3am:\n - `0 3 * * 1,4`',
70
- '- run every weekday at 3am:\n - `0 3 * * 1-5`',
71
- ].join('\n');
72
- (0, react_1.useEffect)(() => {
73
- function updateExplanation() {
74
- if (cronError()) {
75
- cronExplanation('');
76
- }
77
- else if (!tempSchedule()) {
78
- cronExplanation(emptyCronMessage);
79
- }
80
- else {
81
- cronExplanation((0, cron_1.getCronExplanation)(tempSchedule()));
82
- }
83
- }
84
- cronExplanation((0, cron_1.getCronExplanation)(tempSchedule()));
85
- const sub = tempSchedule.subscribe(() => {
86
- // validate and format cron schedule
87
- let schedule = tempSchedule() || '';
88
- schedule = schedule.trim();
89
- cronExplanation('');
90
- cronError('');
91
- cronSchedule(undefined);
92
- if (!schedule) {
93
- updateExplanation();
94
- return;
95
- }
96
- const errors = (0, cron_1.getCronErrors)(schedule);
97
- if (errors) {
98
- cronError(errors);
99
- return;
100
- }
101
- cronSchedule(schedule);
102
- updateExplanation();
103
- });
104
- const sub2 = props.q.subscribe(() => {
105
- if (props.q() === 0) {
106
- tempSchedule(cronSchedule() || '');
107
- cronError('');
108
- cronExplanation((0, cron_1.getCronExplanation)(tempSchedule()));
109
- }
110
- });
111
- return () => {
112
- sub.dispose();
113
- sub2.dispose();
114
- };
115
- }, [cronSchedule, tempSchedule]);
116
- return (react_1.default.createElement(react_1.default.Fragment, null,
117
- react_1.default.createElement(tooltip_1.Tooltip, { markdownContent: emptyCronMessage, handleClassName: `p-2 small` }),
118
- react_1.default.createElement(input_1.Input, { value: tempSchedule, className: `form-control mb-3 p-0 p-2 ` + (cronError() ? 'border-danger' : ''), placeholder: "minute hour day(of month) month day(of week)", title: "Cron Schedule", style: { fontFamily: 'monospace' } }),
119
- cronError()
120
- ? (react_1.default.createElement("div", { className: "text-danger" },
121
- react_1.default.createElement(markdown_with_mentions_1.MarkdownWithMentions, { content: cronError() })))
122
- : (react_1.default.createElement("div", null,
123
- react_1.default.createElement(markdown_with_mentions_1.MarkdownWithMentions, { content: cronExplanation() })))));
124
- };
@@ -1,6 +0,0 @@
1
- import React from "react";
2
- interface IProps {
3
- knowledgeFrameId: string;
4
- }
5
- export declare const KnowledgeFrameDetails: (props: IProps) => React.JSX.Element;
6
- export {};
@@ -1,84 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.KnowledgeFrameDetails = void 0;
7
- const peers_sdk_1 = require("@peers-app/peers-sdk");
8
- const react_1 = __importDefault(require("react"));
9
- const peers_sdk_2 = require("@peers-app/peers-sdk");
10
- const save_button_1 = require("../../components/save-button");
11
- const text_list_editor_1 = require("../../components/text-list-editor.tsx/text-list-editor");
12
- const loading_indicator_1 = require("../../components/loading-indicator");
13
- const hooks_1 = require("../../hooks");
14
- const input_1 = require("../../components/input");
15
- const KnowledgeFrameDetails = (props) => {
16
- const frame = (0, hooks_1.usePromise)(async () => {
17
- const frame = await (0, peers_sdk_2.KnowledgeFrames)().get(props.knowledgeFrameId);
18
- if (!frame) {
19
- throw new Error('Knowledge Frame not found');
20
- }
21
- return (0, peers_sdk_2.KnowledgeFrames)().initDoc(frame);
22
- }, undefined, [props.knowledgeFrameId]);
23
- const bodyObs = frame?.qs.body || (0, peers_sdk_1.observable)('');
24
- // useEffect
25
- let p = setTimeout(() => { }, 0);
26
- (0, hooks_1.useSubscription)(bodyObs, () => {
27
- clearTimeout(p);
28
- p = setTimeout(() => {
29
- // todo update frames knowledgeIds that are linked in the body
30
- frame?.save();
31
- }, 2000);
32
- });
33
- if (!frame) {
34
- return react_1.default.createElement(loading_indicator_1.LoadingIndicator, null);
35
- }
36
- return (react_1.default.createElement("div", { className: "container-fluid p-3" },
37
- react_1.default.createElement("div", { className: "d-flex" },
38
- react_1.default.createElement("div", null,
39
- react_1.default.createElement("h4", null,
40
- react_1.default.createElement("i", { className: "me-2 bi bi-window-dock" }))),
41
- react_1.default.createElement("div", { className: "flex-grow-1" },
42
- react_1.default.createElement("h4", null,
43
- react_1.default.createElement(input_1.Input, { key: frame.knowledgeFrameId, className: 'border border-0', style: { width: '100%', outline: 'none', backgroundColor: 'transparent' }, value: frame.qs.name }))),
44
- react_1.default.createElement("div", null,
45
- react_1.default.createElement(save_button_1.SaveButton, { key: frame.knowledgeFrameId, doc: frame }))),
46
- react_1.default.createElement("br", null),
47
- react_1.default.createElement(text_list_editor_1.TextListEditor, { value: bodyObs, maxHeight: 'calc(100vh - 130px)' })));
48
- };
49
- exports.KnowledgeFrameDetails = KnowledgeFrameDetails;
50
- const KnowledgeEntriesList = (props) => {
51
- const { frame } = props;
52
- (0, hooks_1.useObservable)(frame.qs.knowledgeValueIds);
53
- const knowledgeEntries = (0, hooks_1.usePromise)(async () => {
54
- return (0, peers_sdk_2.KnowledgeValues)().list({ knowledgeValueId: frame.knowledgeValueIds });
55
- }, [], [frame.knowledgeValueIds]);
56
- return (react_1.default.createElement("div", null,
57
- react_1.default.createElement(NewKnowledgeEntry, { frame: frame }),
58
- react_1.default.createElement("div", null, knowledgeEntries?.map(entry => {
59
- return (react_1.default.createElement("div", { key: entry.knowledgeValueId }, JSON.stringify(entry, null, 2)));
60
- }))));
61
- };
62
- const NewKnowledgeEntry = (props) => {
63
- const { defaultSubjectId, defaultPredicateId, frame } = props;
64
- const valueStr = (0, hooks_1.useObservableState)('', true);
65
- const addKnowledgeEntry = async (e) => {
66
- e.preventDefault();
67
- const value = valueStr().trim();
68
- throw new Error('Not implemented');
69
- // const entry = await KnowledgeValues().insert({
70
- // knowledgeValueId: newid(),
71
- // peerTypeId: 'string',
72
- // value,
73
- // // predicateId: defaultPredicateId,
74
- // // subjectId: defaultSubjectId,
75
- // // modified: Date.now(),
76
- // });
77
- // frame.knowledgeValueIds = [...frame.knowledgeValueIds, entry.knowledgeValueId];
78
- // await frame.save();
79
- // valueStr('');
80
- };
81
- return (react_1.default.createElement("div", null,
82
- react_1.default.createElement("form", { onSubmit: addKnowledgeEntry },
83
- react_1.default.createElement(input_1.Input, { value: valueStr, className: "form-control sm", type: "text", placeholder: "Add Entry" }))));
84
- };
@@ -1,8 +0,0 @@
1
- import { IKnowledgeValue } from "@peers-app/peers-sdk";
2
- import React from "react";
3
- interface IProps {
4
- knowledgeFrameId: string;
5
- }
6
- export declare const KnowledgeFrameDetails: (props: IProps) => React.JSX.Element;
7
- export declare function searchKnowledgeValues(searchText: string): Promise<IKnowledgeValue[]>;
8
- export {};
@@ -1,143 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.KnowledgeFrameDetails = void 0;
37
- exports.searchKnowledgeValues = searchKnowledgeValues;
38
- const peers_sdk_1 = require("@peers-app/peers-sdk");
39
- const lodash_1 = require("lodash");
40
- const react_1 = __importStar(require("react"));
41
- const input_1 = require("../../components/input");
42
- const loading_indicator_1 = require("../../components/loading-indicator");
43
- const save_button_1 = require("../../components/save-button");
44
- const typeahead_1 = require("../../components/typeahead/typeahead");
45
- const hooks_1 = require("../../hooks");
46
- const mention_configs_1 = require("../../mention-configs");
47
- const tabs_state_1 = require("../../tabs-layout/tabs-state");
48
- const KnowledgeFrameDetails = (props) => {
49
- const frame = (0, hooks_1.usePromise)(async () => {
50
- const frame = await (0, peers_sdk_1.KnowledgeFrames)().get(props.knowledgeFrameId);
51
- if (!frame) {
52
- throw new Error('Knowledge Frame not found');
53
- }
54
- const doc = (0, peers_sdk_1.KnowledgeFrames)().initDoc(frame);
55
- (0, tabs_state_1.updateActiveTabTitle)(doc.name || "Knowledge Frame");
56
- return doc;
57
- }, undefined, [props.knowledgeFrameId]);
58
- const typeaheadText = (0, hooks_1.useObservableState)('', true);
59
- if (!frame) {
60
- return react_1.default.createElement(loading_indicator_1.LoadingIndicator, null);
61
- }
62
- function createKnowledgeValue() {
63
- console.log('submit', { textValue: typeaheadText() });
64
- }
65
- return (react_1.default.createElement("div", { className: "container-fluid p-3" },
66
- react_1.default.createElement("div", { className: "d-flex" },
67
- react_1.default.createElement("div", null,
68
- react_1.default.createElement("h4", null,
69
- react_1.default.createElement("i", { className: "me-2 bi bi-window-dock" }))),
70
- react_1.default.createElement("div", { className: "flex-grow-1" },
71
- react_1.default.createElement("h4", null,
72
- react_1.default.createElement(input_1.Input, { key: frame.knowledgeFrameId, className: 'border border-0', style: { width: '100%', outline: 'none', backgroundColor: 'transparent' }, value: frame.qs.name }))),
73
- react_1.default.createElement("div", null,
74
- react_1.default.createElement(save_button_1.SaveButton, { key: frame.knowledgeFrameId, doc: frame }))),
75
- react_1.default.createElement("br", null),
76
- react_1.default.createElement(typeahead_1.Typeahead, { value: (0, peers_sdk_1.observable)(''), textValue: typeaheadText, mentionConfigs: mention_configs_1.mentionConfigs,
77
- // placeholder={`Search for knowledge to add or create new`}
78
- autoFocus: true, onSubmit: createKnowledgeValue }),
79
- react_1.default.createElement(KnowledgeSearchValuesList, { searchText: typeaheadText }),
80
- react_1.default.createElement(KnowledgeFrameValuesList, { frame: frame })));
81
- };
82
- exports.KnowledgeFrameDetails = KnowledgeFrameDetails;
83
- let p = undefined;
84
- const KnowledgeSearchValuesList = (props) => {
85
- const { searchText } = props;
86
- (0, hooks_1.useObservable)(searchText);
87
- const [searchResults, setSearchResults] = (0, react_1.useState)(undefined);
88
- (0, hooks_1.useSubscription)(searchText, async (text) => {
89
- clearTimeout(p);
90
- setSearchResults(undefined);
91
- if (!searchText()) {
92
- return;
93
- }
94
- p = setTimeout(async () => {
95
- p = undefined;
96
- const values = await searchKnowledgeValues(searchText());
97
- if (p)
98
- return;
99
- setSearchResults(values);
100
- }, 1000);
101
- }, true);
102
- if (!searchText()) {
103
- return null;
104
- }
105
- if (searchResults === undefined) {
106
- return (react_1.default.createElement("div", { className: "d-flex justify-content-center m-3" },
107
- react_1.default.createElement("div", { className: "spinner-grow", role: "status", style: { width: '1.2rem', height: '1.2rem', } },
108
- react_1.default.createElement("span", { className: "visually-hidden" }, "Loading..."))));
109
- }
110
- if (searchResults.length === 0) {
111
- return (react_1.default.createElement("div", { className: "d-flex justify-content-center mt-3", style: { minHeight: '35px' } },
112
- react_1.default.createElement("div", null, "No results found")));
113
- }
114
- return (react_1.default.createElement("div", { style: { minHeight: '51px' } }, searchResults.map(item => react_1.default.createElement(peers_sdk_1.PeersUI, { key: item.knowledgeValueId, uiEditMode: "view", uiCategory: "list-item", props: { knowledgeValue: item } }))));
115
- };
116
- const KnowledgeFrameValuesList = (props) => {
117
- const { frame } = props;
118
- return (react_1.default.createElement("div", null, "show values included in frame"));
119
- };
120
- async function searchKnowledgeValues(searchText) {
121
- const mentions = (0, peers_sdk_1.getAllMentions)(searchText);
122
- const typeMentions = mentions.filter(m => m.kind === "type");
123
- const otherMentions = mentions.filter(m => m.kind !== "type");
124
- const filter = {};
125
- if (typeMentions.length) {
126
- filter.peerTypeId = typeMentions.map(m => m.id);
127
- for (const typeMention of typeMentions) {
128
- searchText = searchText.replace((0, peers_sdk_1.formatMention)(typeMention), '');
129
- }
130
- }
131
- if (otherMentions.length) {
132
- for (const mention of mentions) {
133
- searchText = searchText.replace((0, peers_sdk_1.formatMention)(mention), mention.id);
134
- }
135
- }
136
- searchText = searchText.trim();
137
- let matches = await (0, peers_sdk_1.KnowledgeValues)().list(filter, { pageSize: 100, textSearch: searchText });
138
- if (searchText) {
139
- const words = searchText.toLowerCase().split(' ');
140
- matches = (0, lodash_1.sortBy)(matches, r => words.filter(w => r.name.toLowerCase().includes(w)).length).reverse();
141
- }
142
- return matches;
143
- }
@@ -1,2 +0,0 @@
1
- import React from 'react';
2
- export declare const KnowledgeFrameList: () => React.JSX.Element;
@@ -1,45 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.KnowledgeFrameList = void 0;
7
- const react_1 = __importDefault(require("react"));
8
- const peers_sdk_1 = require("@peers-app/peers-sdk");
9
- const list_screen_1 = require("../../components/list-screen");
10
- const globals_1 = require("../../globals");
11
- const KnowledgeFrameList = () => {
12
- const screenPathPart = 'knowledge-frames';
13
- const icon = 'bi bi-window-dock';
14
- return (0, list_screen_1.ListScreen)({
15
- table: (0, peers_sdk_1.KnowledgeFrames)(),
16
- sortBy: ['-modified'],
17
- placeholderName: 'frame',
18
- getFilter: (text) => {
19
- return {
20
- $or: [
21
- { name: { $matchWords: text } },
22
- { body: { $matchWords: text } },
23
- ]
24
- };
25
- },
26
- newRecord: async (text) => {
27
- const knowledgeFrame = await (0, peers_sdk_1.KnowledgeFrames)().insert({
28
- knowledgeFrameId: (0, peers_sdk_1.newid)(),
29
- name: text,
30
- knowledgeValueIds: [],
31
- body: '',
32
- modified: Date.now(),
33
- });
34
- (0, globals_1.mainContentPath)(`${screenPathPart}/${knowledgeFrame.knowledgeFrameId}`);
35
- return knowledgeFrame;
36
- },
37
- renderItem: (item) => {
38
- return (react_1.default.createElement("div", { key: item.knowledgeFrameId, className: 'container-fluid pb-4' },
39
- react_1.default.createElement("i", { style: { cursor: 'pointer' }, className: icon }),
40
- "\u00A0\u00A0",
41
- react_1.default.createElement("a", { href: `#${screenPathPart}/${item.knowledgeFrameId}` }, item.name?.trim() || 'No Name')));
42
- },
43
- });
44
- };
45
- exports.KnowledgeFrameList = KnowledgeFrameList;
@@ -1,6 +0,0 @@
1
- import React from "react";
2
- interface IProps {
3
- knowledgeValueId: string;
4
- }
5
- export declare const KnowledgeValueDetails: (props: IProps) => React.JSX.Element;
6
- export {};