@omnsight/osint-entity-components 0.2.4 → 0.2.6
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/index.js +8 -8
- package/dist/index.mjs +796 -781
- package/package.json +15 -2
- package/src/App.tsx +397 -141
- package/src/avatars/layouts/AvatarDropdown.tsx +1 -1
- package/src/avatars/layouts/AvatarSpan.tsx +7 -2
- package/src/forms/BaseForm.tsx +138 -0
- package/src/forms/EditableAttributes.tsx +131 -0
- package/src/forms/EventForm/EditableForm.tsx +78 -0
- package/src/forms/EventForm/EditingForm.tsx +401 -0
- package/src/forms/EventForm/IconFormSection.tsx +54 -0
- package/src/forms/EventForm/StaticForm.tsx +272 -0
- package/src/forms/EventForm/index.ts +1 -0
- package/src/forms/InsightForm/EditableForm.tsx +70 -0
- package/src/forms/InsightForm/EditingForm.tsx +79 -0
- package/src/forms/InsightForm/StaticForm.tsx +139 -0
- package/src/forms/InsightForm/index.ts +1 -0
- package/src/forms/MonitoringSourceForm/EditableForm.tsx +59 -0
- package/src/forms/MonitoringSourceForm/EditingForm.tsx +192 -0
- package/src/forms/MonitoringSourceForm/StaticForm.tsx +107 -0
- package/src/forms/MonitoringSourceForm/index.ts +1 -0
- package/src/forms/OrganizationForm/EditableForm.tsx +74 -0
- package/src/forms/OrganizationForm/EditingForm.tsx +177 -0
- package/src/forms/OrganizationForm/IconFormSection.tsx +60 -0
- package/src/forms/OrganizationForm/StaticForm.tsx +209 -0
- package/src/forms/OrganizationForm/index.ts +1 -0
- package/src/forms/PersonForm/EditableForm.tsx +74 -0
- package/src/forms/PersonForm/EditingForm.tsx +187 -0
- package/src/forms/PersonForm/IconFormSection.tsx +54 -0
- package/src/forms/PersonForm/StaticForm.tsx +202 -0
- package/src/forms/PersonForm/index.ts +1 -0
- package/src/forms/RelationForm/EditableForm.tsx +74 -0
- package/src/forms/RelationForm/EditingForm.tsx +147 -0
- package/src/forms/RelationForm/StaticForm.tsx +182 -0
- package/src/forms/RelationForm/index.ts +1 -0
- package/src/forms/SourceForm/EditableForm.tsx +74 -0
- package/src/forms/SourceForm/EditingForm.tsx +199 -0
- package/src/forms/SourceForm/IconFormSection.tsx +54 -0
- package/src/forms/SourceForm/StaticForm.tsx +209 -0
- package/src/forms/SourceForm/index.ts +1 -0
- package/src/forms/WebsiteForm/EditableForm.tsx +74 -0
- package/src/forms/WebsiteForm/EditingForm.tsx +216 -0
- package/src/forms/WebsiteForm/IconFormSection.tsx +54 -0
- package/src/forms/WebsiteForm/StaticForm.tsx +225 -0
- package/src/forms/WebsiteForm/index.ts +1 -0
- package/src/forms/accessLevel.ts +48 -0
- package/src/forms/index.ts +8 -0
- package/src/icons/Event/Select.tsx +7 -6
- package/src/icons/Organization/Select.tsx +7 -6
- package/src/icons/Person/Select.tsx +7 -6
- package/src/icons/Source/Select.tsx +7 -6
- package/src/icons/Website/Select.tsx +9 -8
- package/src/inputs/CountrySelect.tsx +45 -0
- package/src/inputs/CustomDatePicker.tsx +51 -0
- package/src/inputs/CustomDateTimePicker.tsx +51 -0
- package/src/inputs/RangeDatePicker.tsx +99 -0
- package/src/inputs/TimezoneSelect.tsx +20 -0
- package/src/locales/en.json +135 -0
- package/src/locales/zh.json +135 -0
- package/src/main.tsx +20 -4
package/package.json
CHANGED
|
@@ -3,7 +3,12 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "0.2.
|
|
6
|
+
"version": "0.2.6",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/omnsight/omni-osint-entity-components.git",
|
|
10
|
+
"directory": "client"
|
|
11
|
+
},
|
|
7
12
|
"engines": {
|
|
8
13
|
"node": ">=24.0.0"
|
|
9
14
|
},
|
|
@@ -51,20 +56,28 @@
|
|
|
51
56
|
"dependencies": {
|
|
52
57
|
"@heroicons/react": "^2.2.0",
|
|
53
58
|
"@mantine/core": "^8.3.18",
|
|
59
|
+
"@mantine/dates": "^8.3.18",
|
|
54
60
|
"@mantine/hooks": "^8.3.18",
|
|
61
|
+
"@mantine/modals": "^8.3.18",
|
|
62
|
+
"@mantine/notifications": "^8.3.18",
|
|
55
63
|
"@svgr/plugin-jsx": "^8.1.0",
|
|
56
64
|
"@svgr/plugin-svgo": "^8.1.0",
|
|
65
|
+
"date-fns-tz": "^3.2.0",
|
|
66
|
+
"i18n-iso-countries": "^7.14.0",
|
|
67
|
+
"loadash": "^1.0.0",
|
|
57
68
|
"omni-monitoring-client": "latest",
|
|
58
69
|
"omni-osint-crud-client": "latest",
|
|
59
70
|
"react": "^19.2.4",
|
|
60
71
|
"react-dom": "^19.2.4",
|
|
61
72
|
"react-hook-form": "^7.72.0",
|
|
62
|
-
"react-i18next": "^16.6.6"
|
|
73
|
+
"react-i18next": "^16.6.6",
|
|
74
|
+
"react-timezone-select": "^3.3.3"
|
|
63
75
|
},
|
|
64
76
|
"devDependencies": {
|
|
65
77
|
"@eslint/js": "^9.39.4",
|
|
66
78
|
"@iconify/utils": "^3.1.0",
|
|
67
79
|
"@svgr/core": "^8.1.0",
|
|
80
|
+
"@types/lodash": "^4.17.24",
|
|
68
81
|
"@types/node": "^24.12.0",
|
|
69
82
|
"@types/react": "^19.2.14",
|
|
70
83
|
"@types/react-dom": "^19.2.3",
|
package/src/App.tsx
CHANGED
|
@@ -2,6 +2,7 @@ import {
|
|
|
2
2
|
ActionIcon,
|
|
3
3
|
Button,
|
|
4
4
|
Card,
|
|
5
|
+
Divider,
|
|
5
6
|
Group,
|
|
6
7
|
ScrollArea,
|
|
7
8
|
SimpleGrid,
|
|
@@ -11,6 +12,17 @@ import {
|
|
|
11
12
|
} from "@mantine/core";
|
|
12
13
|
import { useState } from "react";
|
|
13
14
|
import { useTranslation } from "react-i18next";
|
|
15
|
+
import { ArrowRightIcon } from "@heroicons/react/24/solid";
|
|
16
|
+
import type {
|
|
17
|
+
Person,
|
|
18
|
+
Organization,
|
|
19
|
+
Event,
|
|
20
|
+
Source,
|
|
21
|
+
Website,
|
|
22
|
+
Relation,
|
|
23
|
+
OsintView,
|
|
24
|
+
} from "omni-osint-crud-client";
|
|
25
|
+
import type { MonitoringSource } from "omni-monitoring-client";
|
|
14
26
|
import {
|
|
15
27
|
AvatarDropdown,
|
|
16
28
|
AvatarRowList,
|
|
@@ -34,15 +46,6 @@ import {
|
|
|
34
46
|
WebsiteIcon,
|
|
35
47
|
WebsiteIconSelect,
|
|
36
48
|
} from "./icons";
|
|
37
|
-
import type {
|
|
38
|
-
Person,
|
|
39
|
-
Organization,
|
|
40
|
-
Event,
|
|
41
|
-
Source,
|
|
42
|
-
Website,
|
|
43
|
-
Relation,
|
|
44
|
-
} from "omni-osint-crud-client";
|
|
45
|
-
import type { MonitoringSource } from "omni-monitoring-client";
|
|
46
49
|
import {
|
|
47
50
|
EventCard,
|
|
48
51
|
OrganizationCard,
|
|
@@ -51,66 +54,132 @@ import {
|
|
|
51
54
|
WebsiteCard,
|
|
52
55
|
MonitoringSourceCard,
|
|
53
56
|
} from "./cards";
|
|
54
|
-
import {
|
|
57
|
+
import {
|
|
58
|
+
EventForm,
|
|
59
|
+
InsightForm,
|
|
60
|
+
MonitoringSourceForm,
|
|
61
|
+
OrganizationForm,
|
|
62
|
+
PersonForm,
|
|
63
|
+
RelationForm,
|
|
64
|
+
SourceForm,
|
|
65
|
+
WebsiteForm,
|
|
66
|
+
} from "./forms";
|
|
55
67
|
|
|
56
68
|
function App() {
|
|
57
69
|
const { i18n } = useTranslation();
|
|
58
70
|
const { colorScheme, setColorScheme } = useMantineColorScheme();
|
|
71
|
+
const [isAdmin, setIsAdmin] = useState(true);
|
|
59
72
|
const [person, setPerson] = useState<Person>({
|
|
60
|
-
_id: "person
|
|
73
|
+
_id: "person/1",
|
|
61
74
|
name: "John Doe",
|
|
62
75
|
role: "professional",
|
|
63
76
|
aliases: ["John", "Johnny"],
|
|
64
77
|
tags: ["tag1", "tag2"],
|
|
78
|
+
owner: "asj1834s",
|
|
79
|
+
read: ["admin"],
|
|
80
|
+
write: ["admin"],
|
|
65
81
|
});
|
|
66
82
|
const [organization, setOrganization] = useState<Organization>({
|
|
67
|
-
_id: "org
|
|
83
|
+
_id: "org/1",
|
|
68
84
|
name: "Acme Inc.",
|
|
69
85
|
tags: ["company", "software"],
|
|
86
|
+
owner: "asj1834s",
|
|
87
|
+
read: ["admin"],
|
|
88
|
+
write: ["admin"],
|
|
70
89
|
});
|
|
71
90
|
const [event, setEvent] = useState<Event>({
|
|
72
|
-
_id: "event
|
|
91
|
+
_id: "event/1",
|
|
73
92
|
title: "New Product Launch",
|
|
74
93
|
description: "The launch of a new product",
|
|
75
94
|
happened_at: new Date().getTime() / 1000,
|
|
76
95
|
tags: ["new-product", "launch"],
|
|
96
|
+
owner: "asj1834s",
|
|
97
|
+
read: ["admin"],
|
|
98
|
+
write: ["admin"],
|
|
77
99
|
});
|
|
78
100
|
const [source, setSource] = useState<Source>({
|
|
79
|
-
_id: "source
|
|
101
|
+
_id: "source/1",
|
|
80
102
|
name: "News Article",
|
|
81
103
|
url: "https://example.com/article",
|
|
82
104
|
description: "A news article about something.",
|
|
83
105
|
tags: ["news", "article"],
|
|
106
|
+
owner: "asj1834s",
|
|
107
|
+
read: ["admin"],
|
|
108
|
+
write: ["admin"],
|
|
109
|
+
});
|
|
110
|
+
const [source2, ] = useState<Source>({
|
|
111
|
+
_id: "source/2",
|
|
112
|
+
name: "Sample Artical 2",
|
|
113
|
+
url: "https://example.com/article/2",
|
|
114
|
+
description: "A news article about something 2",
|
|
115
|
+
tags: ["news", "article", "2"],
|
|
116
|
+
owner: "asj1834s",
|
|
117
|
+
read: ["admin"],
|
|
118
|
+
write: ["admin"],
|
|
84
119
|
});
|
|
85
120
|
const [website, setWebsite] = useState<Website>({
|
|
86
|
-
_id: "website
|
|
121
|
+
_id: "website/1",
|
|
87
122
|
url: "https://example.com",
|
|
88
123
|
title: "Example Website",
|
|
89
124
|
description: "An example website.",
|
|
90
125
|
tags: ["website", "example"],
|
|
126
|
+
owner: "asj1834s",
|
|
127
|
+
read: ["admin"],
|
|
128
|
+
write: ["admin"],
|
|
91
129
|
});
|
|
92
|
-
const [
|
|
130
|
+
const [relation, setRelation] = useState<Relation>({
|
|
131
|
+
_id: "relation/1",
|
|
132
|
+
_from: "person/1",
|
|
133
|
+
_to: "org/1",
|
|
134
|
+
label: "相关人物/组织",
|
|
135
|
+
owner: "asj1834s",
|
|
136
|
+
read: ["admin"],
|
|
137
|
+
write: ["admin"],
|
|
138
|
+
});
|
|
139
|
+
const [monitoringSource, setMonitoringSource] = useState<MonitoringSource>({
|
|
93
140
|
name: "Test Monitoring Source",
|
|
94
141
|
description:
|
|
95
142
|
"This is a test description for the monitoring source card. It should truncate after a certain point to avoid overflowing the card.",
|
|
96
143
|
reliability: 75,
|
|
97
|
-
owner: "
|
|
144
|
+
owner: "asj1834s",
|
|
98
145
|
});
|
|
99
|
-
const [
|
|
100
|
-
_id: "
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
146
|
+
const [insight, setInsight] = useState<OsintView>({
|
|
147
|
+
_id: "insight/1",
|
|
148
|
+
name: "My test analysis",
|
|
149
|
+
description: "Analysis description",
|
|
150
|
+
owner: "asj1834s",
|
|
151
|
+
read: ["admin"],
|
|
152
|
+
write: ["admin"],
|
|
104
153
|
});
|
|
105
154
|
|
|
106
155
|
const cardStyle = {
|
|
107
156
|
height: 500,
|
|
108
|
-
width:
|
|
157
|
+
width: 500,
|
|
109
158
|
display: "flex",
|
|
110
159
|
alignItems: "center",
|
|
111
160
|
justifyContent: "center",
|
|
112
161
|
};
|
|
113
162
|
|
|
163
|
+
const handleSubmit = (data: any) => {
|
|
164
|
+
console.log("Submit:", data);
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
const handleUpdate = (setter: Function) => (data: any) => {
|
|
168
|
+
setter((prev: any) => ({ ...prev, ...data }));
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
const exitButton = (
|
|
172
|
+
<ActionIcon
|
|
173
|
+
variant="subtle"
|
|
174
|
+
color="gray"
|
|
175
|
+
onClick={(e) => {
|
|
176
|
+
e.stopPropagation();
|
|
177
|
+
}}
|
|
178
|
+
>
|
|
179
|
+
<ArrowRightIcon style={{ width: 18, height: 18 }} />
|
|
180
|
+
</ActionIcon>
|
|
181
|
+
);
|
|
182
|
+
|
|
114
183
|
return (
|
|
115
184
|
<>
|
|
116
185
|
<Group>
|
|
@@ -128,135 +197,322 @@ function App() {
|
|
|
128
197
|
>
|
|
129
198
|
Toggle Theme
|
|
130
199
|
</Button>
|
|
200
|
+
<Button onClick={() => setIsAdmin((p) => !p)}>Toggle Admin</Button>
|
|
131
201
|
</Group>
|
|
132
202
|
<ScrollArea style={{ height: "100vh" }}>
|
|
133
|
-
<
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
<
|
|
143
|
-
|
|
144
|
-
relation={relation}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
203
|
+
<Stack p="lg" gap="lg">
|
|
204
|
+
<Text size="xl" fw={700}>
|
|
205
|
+
Original Components
|
|
206
|
+
</Text>
|
|
207
|
+
<SimpleGrid
|
|
208
|
+
cols={{ base: 1, sm: 2, md: 3, lg: 4, xl: 5 }}
|
|
209
|
+
spacing="lg"
|
|
210
|
+
>
|
|
211
|
+
<Card withBorder style={cardStyle}>
|
|
212
|
+
<Text>Avatar List</Text>
|
|
213
|
+
<AvatarRowList>
|
|
214
|
+
<EventAvatar data={event} relation={relation} key={1} />
|
|
215
|
+
<OrganizationAvatar
|
|
216
|
+
data={organization}
|
|
217
|
+
relation={relation}
|
|
218
|
+
key={2}
|
|
219
|
+
/>
|
|
220
|
+
<PersonAvatar data={person} relation={relation} key={3} />
|
|
221
|
+
<SourceAvatar data={source} relation={relation} key={4} />
|
|
222
|
+
<WebsiteAvatar data={website} relation={relation} key={5} />
|
|
223
|
+
<EmptyAvatar />
|
|
224
|
+
</AvatarRowList>
|
|
225
|
+
</Card>
|
|
226
|
+
<Card withBorder style={cardStyle}>
|
|
227
|
+
<Text>Avatar Dropdown</Text>
|
|
228
|
+
<AvatarDropdown
|
|
229
|
+
avatarOnOpen={<Text>+</Text>}
|
|
230
|
+
avatarOnClose={<Text>-</Text>}
|
|
231
|
+
>
|
|
232
|
+
<SourceAvatar data={source} relation={relation} key={1} />
|
|
233
|
+
<SourceAvatar data={source} relation={relation} key={2} />
|
|
234
|
+
<SourceAvatar data={source} relation={relation} key={3} />
|
|
235
|
+
</AvatarDropdown>
|
|
236
|
+
</Card>
|
|
237
|
+
<Card withBorder style={cardStyle}>
|
|
238
|
+
<Text>Avatar Span</Text>
|
|
239
|
+
<AvatarSpan>
|
|
240
|
+
<EventAvatar data={event} relation={relation} key={1} />
|
|
241
|
+
<OrganizationAvatar
|
|
242
|
+
data={organization}
|
|
243
|
+
relation={relation}
|
|
244
|
+
key={2}
|
|
245
|
+
/>
|
|
246
|
+
<PersonAvatar data={person} relation={relation} key={3} />
|
|
247
|
+
<SourceAvatar data={source} relation={relation} key={4} />
|
|
248
|
+
<WebsiteAvatar data={website} relation={relation} key={5} />
|
|
249
|
+
<EmptyAvatar />
|
|
250
|
+
</AvatarSpan>
|
|
251
|
+
</Card>
|
|
252
|
+
|
|
253
|
+
<Card withBorder style={cardStyle}>
|
|
254
|
+
<Text>Avatars: </Text>
|
|
150
255
|
<EmptyAvatar />
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
>
|
|
159
|
-
<
|
|
160
|
-
<
|
|
161
|
-
<
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
<
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
256
|
+
<EventAvatar data={event} />
|
|
257
|
+
<OrganizationAvatar data={organization} />
|
|
258
|
+
<PersonAvatar data={person} />
|
|
259
|
+
<SourceAvatar data={source} />
|
|
260
|
+
<WebsiteAvatar data={website} />
|
|
261
|
+
</Card>
|
|
262
|
+
|
|
263
|
+
<Card withBorder style={cardStyle}>
|
|
264
|
+
<Text>Icons</Text>
|
|
265
|
+
<EventIcon event={event} />
|
|
266
|
+
<OrganizationIcon organization={organization} />
|
|
267
|
+
<PersonIcon person={person} />
|
|
268
|
+
<SourceIcon source={source} />
|
|
269
|
+
<WebsiteIcon website={website} />
|
|
270
|
+
</Card>
|
|
271
|
+
|
|
272
|
+
<Card withBorder style={cardStyle}>
|
|
273
|
+
<Text>Icon Select</Text>
|
|
274
|
+
<Text>Person:</Text>
|
|
275
|
+
<PersonIconSelect value={person} onChange={setPerson} />
|
|
276
|
+
<Text>Organization:</Text>
|
|
277
|
+
<OrganizationIconSelect
|
|
278
|
+
value={organization}
|
|
279
|
+
onChange={setOrganization}
|
|
172
280
|
/>
|
|
173
|
-
<
|
|
174
|
-
<
|
|
175
|
-
<
|
|
176
|
-
<
|
|
177
|
-
|
|
178
|
-
|
|
281
|
+
<Text>Event:</Text>
|
|
282
|
+
<EventIconSelect value={event} onChange={setEvent} />
|
|
283
|
+
<Text>Source:</Text>
|
|
284
|
+
<SourceIconSelect value={source} onChange={setSource} />
|
|
285
|
+
<Text>Website:</Text>
|
|
286
|
+
<WebsiteIconSelect value={website} onChange={setWebsite} />
|
|
287
|
+
</Card>
|
|
288
|
+
</SimpleGrid>
|
|
179
289
|
|
|
180
|
-
<
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
290
|
+
<Divider />
|
|
291
|
+
<Text size="xl" fw={700}>
|
|
292
|
+
Entity Cards
|
|
293
|
+
</Text>
|
|
294
|
+
<SimpleGrid
|
|
295
|
+
cols={{ base: 1, sm: 2, md: 3, lg: 4, xl: 5 }}
|
|
296
|
+
spacing="lg"
|
|
297
|
+
>
|
|
298
|
+
<EventCard
|
|
299
|
+
event={event}
|
|
300
|
+
action={
|
|
301
|
+
<ActionIcon
|
|
302
|
+
variant="subtle"
|
|
303
|
+
color="gray"
|
|
304
|
+
onClick={(e) => {
|
|
305
|
+
e.stopPropagation();
|
|
306
|
+
}}
|
|
307
|
+
>
|
|
308
|
+
<ArrowRightIcon style={{ width: 18, height: 18 }} />
|
|
309
|
+
</ActionIcon>
|
|
310
|
+
}
|
|
311
|
+
/>
|
|
312
|
+
<PersonCard person={person} />
|
|
313
|
+
<OrganizationCard organization={organization} />
|
|
314
|
+
<SourceCard source={source} />
|
|
315
|
+
<WebsiteCard website={website} />
|
|
316
|
+
<MonitoringSourceCard monitoringSource={monitoringSource} />
|
|
189
317
|
|
|
190
|
-
|
|
191
|
-
<
|
|
192
|
-
<
|
|
193
|
-
<
|
|
194
|
-
<
|
|
195
|
-
<
|
|
196
|
-
|
|
197
|
-
</Card>
|
|
318
|
+
<EventCard event={{}} />
|
|
319
|
+
<PersonCard person={{}} />
|
|
320
|
+
<OrganizationCard organization={{}} />
|
|
321
|
+
<SourceCard source={{}} />
|
|
322
|
+
<WebsiteCard website={{}} />
|
|
323
|
+
<MonitoringSourceCard monitoringSource={{ owner: "" }} />
|
|
324
|
+
</SimpleGrid>
|
|
198
325
|
|
|
199
|
-
<
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
326
|
+
<Divider />
|
|
327
|
+
|
|
328
|
+
<Text size="xl" fw={700}>
|
|
329
|
+
Input Forms For Creation
|
|
330
|
+
</Text>
|
|
331
|
+
<SimpleGrid
|
|
332
|
+
cols={{ base: 1, sm: 2, md: 3, lg: 4, xl: 5 }}
|
|
333
|
+
spacing="lg"
|
|
334
|
+
>
|
|
335
|
+
<EventForm event={{}} onSubmit={handleSubmit} isAdmin={isAdmin} />
|
|
336
|
+
<InsightForm
|
|
337
|
+
insight={{}}
|
|
338
|
+
onSubmit={handleSubmit}
|
|
339
|
+
isAdmin={isAdmin}
|
|
340
|
+
/>
|
|
341
|
+
<MonitoringSourceForm
|
|
342
|
+
source={{ owner: "" }}
|
|
343
|
+
onSubmit={handleSubmit}
|
|
344
|
+
/>
|
|
345
|
+
<OrganizationForm
|
|
346
|
+
organization={{}}
|
|
347
|
+
onSubmit={handleSubmit}
|
|
348
|
+
isAdmin={isAdmin}
|
|
349
|
+
/>
|
|
350
|
+
<PersonForm person={{}} onSubmit={handleSubmit} isAdmin={isAdmin} />
|
|
351
|
+
<RelationForm
|
|
352
|
+
relation={{ _from: "", _to: "" }}
|
|
353
|
+
onSubmit={handleSubmit}
|
|
354
|
+
isAdmin={isAdmin}
|
|
207
355
|
/>
|
|
208
|
-
<
|
|
209
|
-
<
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
</
|
|
356
|
+
<SourceForm source={{}} onSubmit={handleSubmit} isAdmin={isAdmin} />
|
|
357
|
+
<WebsiteForm
|
|
358
|
+
website={{}}
|
|
359
|
+
onSubmit={handleSubmit}
|
|
360
|
+
isAdmin={isAdmin}
|
|
361
|
+
/>
|
|
362
|
+
</SimpleGrid>
|
|
215
363
|
|
|
216
|
-
<
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
364
|
+
<Divider />
|
|
365
|
+
|
|
366
|
+
<Text size="xl" fw={700}>
|
|
367
|
+
Forms Double Clickable To Update
|
|
368
|
+
</Text>
|
|
369
|
+
<SimpleGrid
|
|
370
|
+
cols={{ base: 1, sm: 2, md: 3, lg: 4, xl: 5 }}
|
|
371
|
+
spacing="lg"
|
|
372
|
+
>
|
|
373
|
+
<EventForm
|
|
374
|
+
event={event}
|
|
375
|
+
onUpdate={handleUpdate(setEvent)}
|
|
376
|
+
onUpdatePermissive={handleUpdate(setEvent)}
|
|
377
|
+
exitButton={exitButton}
|
|
378
|
+
isAdmin={isAdmin}
|
|
379
|
+
/>
|
|
380
|
+
<InsightForm
|
|
381
|
+
insight={insight}
|
|
382
|
+
onUpdate={handleUpdate(setInsight)}
|
|
383
|
+
onUpdatePermissive={handleUpdate(setInsight)}
|
|
384
|
+
exitButton={exitButton}
|
|
385
|
+
isAdmin={isAdmin}
|
|
386
|
+
/>
|
|
387
|
+
<MonitoringSourceForm
|
|
388
|
+
source={monitoringSource}
|
|
389
|
+
onUpdate={handleUpdate(setMonitoringSource)}
|
|
390
|
+
exitButton={exitButton}
|
|
391
|
+
/>
|
|
392
|
+
<OrganizationForm
|
|
393
|
+
organization={organization}
|
|
394
|
+
onUpdate={handleUpdate(setOrganization)}
|
|
395
|
+
onUpdatePermissive={handleUpdate(setOrganization)}
|
|
396
|
+
exitButton={exitButton}
|
|
397
|
+
isAdmin={isAdmin}
|
|
398
|
+
/>
|
|
399
|
+
<PersonForm
|
|
400
|
+
person={person}
|
|
401
|
+
onUpdate={handleUpdate(setPerson)}
|
|
402
|
+
onUpdatePermissive={handleUpdate(setPerson)}
|
|
403
|
+
exitButton={exitButton}
|
|
404
|
+
isAdmin={isAdmin}
|
|
405
|
+
/>
|
|
406
|
+
<RelationForm
|
|
407
|
+
relation={relation}
|
|
408
|
+
onUpdate={handleUpdate(setRelation)}
|
|
409
|
+
onUpdatePermissive={handleUpdate(setRelation)}
|
|
410
|
+
exitButton={exitButton}
|
|
411
|
+
isAdmin={isAdmin}
|
|
412
|
+
/>
|
|
413
|
+
<SourceForm
|
|
414
|
+
source={source}
|
|
415
|
+
onUpdate={handleUpdate(setSource)}
|
|
416
|
+
onUpdatePermissive={handleUpdate(setSource)}
|
|
417
|
+
exitButton={exitButton}
|
|
418
|
+
isAdmin={isAdmin}
|
|
419
|
+
/>
|
|
420
|
+
<WebsiteForm
|
|
421
|
+
website={website}
|
|
422
|
+
onUpdate={handleUpdate(setWebsite)}
|
|
423
|
+
onUpdatePermissive={handleUpdate(setWebsite)}
|
|
424
|
+
exitButton={exitButton}
|
|
425
|
+
isAdmin={isAdmin}
|
|
426
|
+
/>
|
|
427
|
+
</SimpleGrid>
|
|
241
428
|
|
|
242
|
-
<
|
|
243
|
-
<Text>Empty Cards</Text>
|
|
244
|
-
<ScrollArea w={350} h={400}>
|
|
245
|
-
<Stack>
|
|
246
|
-
<EventCard event={{}} />
|
|
247
|
-
<PersonCard person={{}} />
|
|
248
|
-
<OrganizationCard organization={{}} />
|
|
249
|
-
<SourceCard source={{}} />
|
|
250
|
-
<WebsiteCard website={{}} />
|
|
251
|
-
<MonitoringSourceCard monitoringSource={{ owner: "" }} />
|
|
252
|
-
</Stack>
|
|
253
|
-
</ScrollArea>
|
|
254
|
-
</Card>
|
|
429
|
+
<Divider />
|
|
255
430
|
|
|
256
|
-
<
|
|
257
|
-
|
|
258
|
-
</
|
|
259
|
-
|
|
431
|
+
<Text size="xl" fw={700}>
|
|
432
|
+
Read Only Forms
|
|
433
|
+
</Text>
|
|
434
|
+
<SimpleGrid
|
|
435
|
+
cols={{ base: 1, sm: 2, md: 3, lg: 4, xl: 5 }}
|
|
436
|
+
spacing="lg"
|
|
437
|
+
>
|
|
438
|
+
<EventForm
|
|
439
|
+
event={event}
|
|
440
|
+
sources={[source, source2]}
|
|
441
|
+
exitButton={exitButton}
|
|
442
|
+
isAdmin={isAdmin}
|
|
443
|
+
/>
|
|
444
|
+
<InsightForm
|
|
445
|
+
insight={insight}
|
|
446
|
+
exitButton={exitButton}
|
|
447
|
+
isAdmin={isAdmin}
|
|
448
|
+
/>
|
|
449
|
+
<MonitoringSourceForm
|
|
450
|
+
source={monitoringSource}
|
|
451
|
+
exitButton={exitButton}
|
|
452
|
+
/>
|
|
453
|
+
<OrganizationForm
|
|
454
|
+
organization={organization}
|
|
455
|
+
exitButton={exitButton}
|
|
456
|
+
isAdmin={isAdmin}
|
|
457
|
+
/>
|
|
458
|
+
<PersonForm
|
|
459
|
+
person={person}
|
|
460
|
+
exitButton={exitButton}
|
|
461
|
+
isAdmin={isAdmin}
|
|
462
|
+
/>
|
|
463
|
+
<RelationForm
|
|
464
|
+
relation={relation}
|
|
465
|
+
exitButton={exitButton}
|
|
466
|
+
isAdmin={isAdmin}
|
|
467
|
+
/>
|
|
468
|
+
<SourceForm source={source} exitButton={exitButton} />
|
|
469
|
+
<WebsiteForm
|
|
470
|
+
website={website}
|
|
471
|
+
exitButton={exitButton}
|
|
472
|
+
isAdmin={isAdmin}
|
|
473
|
+
/>
|
|
474
|
+
</SimpleGrid>
|
|
475
|
+
|
|
476
|
+
<Divider />
|
|
477
|
+
|
|
478
|
+
<Text size="xl" fw={700}>
|
|
479
|
+
Borderless Read Only Forms
|
|
480
|
+
</Text>
|
|
481
|
+
<SimpleGrid
|
|
482
|
+
cols={{ base: 1, sm: 2, md: 3, lg: 4, xl: 5 }}
|
|
483
|
+
spacing="lg"
|
|
484
|
+
>
|
|
485
|
+
<EventForm
|
|
486
|
+
event={event}
|
|
487
|
+
style={{ border: "none", boxShadow: "none", padding: 0 }}
|
|
488
|
+
isAdmin={isAdmin}
|
|
489
|
+
/>
|
|
490
|
+
<OrganizationForm
|
|
491
|
+
organization={organization}
|
|
492
|
+
style={{ border: "none", boxShadow: "none", padding: 0 }}
|
|
493
|
+
isAdmin={isAdmin}
|
|
494
|
+
/>
|
|
495
|
+
<PersonForm
|
|
496
|
+
person={person}
|
|
497
|
+
style={{ border: "none", boxShadow: "none", padding: 0 }}
|
|
498
|
+
isAdmin={isAdmin}
|
|
499
|
+
/>
|
|
500
|
+
<RelationForm
|
|
501
|
+
relation={relation}
|
|
502
|
+
style={{ border: "none", boxShadow: "none", padding: 0 }}
|
|
503
|
+
isAdmin={isAdmin}
|
|
504
|
+
/>
|
|
505
|
+
<SourceForm
|
|
506
|
+
source={source}
|
|
507
|
+
style={{ border: "none", boxShadow: "none", padding: 0 }}
|
|
508
|
+
/>
|
|
509
|
+
<WebsiteForm
|
|
510
|
+
website={website}
|
|
511
|
+
style={{ border: "none", boxShadow: "none", padding: 0 }}
|
|
512
|
+
isAdmin={isAdmin}
|
|
513
|
+
/>
|
|
514
|
+
</SimpleGrid>
|
|
515
|
+
</Stack>
|
|
260
516
|
</ScrollArea>
|
|
261
517
|
</>
|
|
262
518
|
);
|