@peers-app/peers-ui 0.13.6 → 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.
- package/dist/components/left-bar.js +0 -9
- package/dist/components/router.js +0 -44
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/mention-configs.d.ts +0 -2
- package/dist/mention-configs.js +1 -38
- package/dist/screens/search/global-search.js +2 -4
- package/dist/screens/workflows/workflow-details.js +5 -56
- package/dist/system-apps/index.d.ts +0 -4
- package/dist/system-apps/index.js +1 -18
- package/dist/ui-defaults/index.d.ts +0 -1
- package/dist/ui-defaults/index.js +0 -1
- package/dist/ui-defaults/list-screen.js +0 -1
- package/docs/tabs-ui.md +6 -21
- package/package.json +3 -3
- package/src/components/left-bar.tsx +0 -12
- package/src/components/router.tsx +0 -48
- package/src/index.tsx +2 -2
- package/src/mention-configs.ts +1 -40
- package/src/screens/search/global-search.tsx +2 -6
- package/src/screens/workflows/workflow-details.tsx +3 -28
- package/src/system-apps/index.ts +0 -14
- package/src/ui-defaults/index.ts +0 -1
- package/src/ui-defaults/list-screen.tsx +0 -1
- package/dist/screens/events/cron.d.ts +0 -3
- package/dist/screens/events/cron.js +0 -77
- package/dist/screens/events/event-details.d.ts +0 -6
- package/dist/screens/events/event-details.js +0 -112
- package/dist/screens/events/event-handlers.d.ts +0 -7
- package/dist/screens/events/event-handlers.js +0 -84
- package/dist/screens/events/event-info.d.ts +0 -5
- package/dist/screens/events/event-info.js +0 -19
- package/dist/screens/events/event-list.d.ts +0 -2
- package/dist/screens/events/event-list.js +0 -107
- package/dist/screens/events/event-schedule.d.ts +0 -5
- package/dist/screens/events/event-schedule.js +0 -124
- package/dist/screens/knowledge/knowledge-frame-details.bk.d.ts +0 -6
- package/dist/screens/knowledge/knowledge-frame-details.bk.js +0 -84
- package/dist/screens/knowledge/knowledge-frame-details.d.ts +0 -8
- package/dist/screens/knowledge/knowledge-frame-details.js +0 -143
- package/dist/screens/knowledge/knowledge-frame-list.d.ts +0 -2
- package/dist/screens/knowledge/knowledge-frame-list.js +0 -45
- package/dist/screens/knowledge/knowledge-value-details.d.ts +0 -6
- package/dist/screens/knowledge/knowledge-value-details.js +0 -150
- package/dist/screens/knowledge/knowledge-value-list-item.d.ts +0 -5
- package/dist/screens/knowledge/knowledge-value-list-item.js +0 -39
- package/dist/screens/knowledge/knowledge-value-list.d.ts +0 -3
- package/dist/screens/knowledge/knowledge-value-list.js +0 -123
- package/dist/screens/predicates/predicate-details.d.ts +0 -6
- package/dist/screens/predicates/predicate-details.js +0 -103
- package/dist/screens/predicates/predicate-list.d.ts +0 -2
- package/dist/screens/predicates/predicate-list.js +0 -46
- package/dist/screens/workflows/workflow-subscriptions.d.ts +0 -6
- package/dist/screens/workflows/workflow-subscriptions.js +0 -81
- package/dist/system-apps/events.app.d.ts +0 -2
- package/dist/system-apps/events.app.js +0 -8
- package/dist/system-apps/knowledge-frames.app.d.ts +0 -2
- package/dist/system-apps/knowledge-frames.app.js +0 -9
- package/dist/system-apps/knowledge-values.app.d.ts +0 -2
- package/dist/system-apps/knowledge-values.app.js +0 -9
- package/dist/system-apps/predicates.app.d.ts +0 -2
- package/dist/system-apps/predicates.app.js +0 -8
- package/dist/ui-defaults/notes-editor.d.ts +0 -7
- package/dist/ui-defaults/notes-editor.js +0 -41
- package/src/screens/events/cron.ts +0 -74
- package/src/screens/events/event-details.tsx +0 -117
- package/src/screens/events/event-handlers.tsx +0 -61
- package/src/screens/events/event-info.tsx +0 -29
- package/src/screens/events/event-list.tsx +0 -104
- package/src/screens/events/event-schedule.tsx +0 -130
- package/src/screens/knowledge/knowledge-frame-details.bk.tsx +0 -160
- package/src/screens/knowledge/knowledge-frame-details.tsx +0 -176
- package/src/screens/knowledge/knowledge-frame-list.tsx +0 -49
- package/src/screens/knowledge/knowledge-value-details.tsx +0 -181
- package/src/screens/knowledge/knowledge-value-list-item.tsx +0 -48
- package/src/screens/knowledge/knowledge-value-list.tsx +0 -131
- package/src/screens/predicates/predicate-details.tsx +0 -125
- package/src/screens/predicates/predicate-list.tsx +0 -50
- package/src/screens/workflows/workflow-subscriptions.tsx +0 -58
- package/src/system-apps/events.app.ts +0 -7
- package/src/system-apps/knowledge-frames.app.ts +0 -8
- package/src/system-apps/knowledge-values.app.ts +0 -8
- package/src/system-apps/predicates.app.ts +0 -7
- package/src/ui-defaults/notes-editor.tsx +0 -51
|
@@ -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,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,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,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;
|