@arpproject/recrate 0.1.7-test5 → 0.1.7-test7

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 (276) hide show
  1. package/dist/app/App.d.ts +2 -0
  2. package/dist/app/EmbeddedComponent.d.ts +3 -0
  3. package/dist/app/index.d.ts +0 -0
  4. package/dist/app/lookup.d.ts +82 -0
  5. package/dist/crate-builder/CrateManager/contexts.d.ts +6 -0
  6. package/dist/crate-builder/CrateManager/crate-manager-benchmarking.spec.d.ts +1 -0
  7. package/dist/crate-builder/CrateManager/crate-manager-loading-exporting.spec.d.ts +1 -0
  8. package/dist/crate-builder/CrateManager/crate-manager-operations.spec.d.ts +0 -0
  9. package/dist/crate-builder/CrateManager/crate-manager.d.ts +641 -0
  10. package/dist/crate-builder/CrateManager/crate-manager.spec.d.ts +1 -0
  11. package/dist/crate-builder/CrateManager/lib.d.ts +26 -0
  12. package/dist/crate-builder/CrateManager/lib.spec.d.ts +1 -0
  13. package/dist/crate-builder/CrateManager/profile-manager.d.ts +143 -0
  14. package/dist/crate-builder/CrateManager/profile-manager.spec.d.ts +1 -0
  15. package/{src/crate-builder/CrateManager/schema-type-definitions.json → dist/crate-builder/CrateManager/schema-type-definitions.json.d.ts} +4 -1
  16. package/dist/crate-builder/CrateManager/validate-identifier.d.ts +10 -0
  17. package/dist/crate-builder/CrateManager/validate-identifier.spec.d.ts +1 -0
  18. package/dist/crate-builder/RenderEntity/Add.d.ts +26 -0
  19. package/dist/crate-builder/RenderEntity/AddControl.d.ts +14 -0
  20. package/dist/crate-builder/RenderEntity/AddControl.stories.d.ts +29 -0
  21. package/dist/crate-builder/RenderEntity/AutoComplete.d.ts +12 -0
  22. package/dist/crate-builder/RenderEntity/BulkAdd.d.ts +10 -0
  23. package/dist/crate-builder/RenderEntity/DeleteProperty.d.ts +8 -0
  24. package/dist/crate-builder/RenderEntity/DialogAddProperty.d.ts +9 -0
  25. package/dist/crate-builder/RenderEntity/DialogBrowseEntities.d.ts +8 -0
  26. package/dist/crate-builder/RenderEntity/DialogEditContext.d.ts +8 -0
  27. package/dist/crate-builder/RenderEntity/DialogPreviewCrate.d.ts +7 -0
  28. package/dist/crate-builder/RenderEntity/DialogSaveCrateAsTemplate.d.ts +13 -0
  29. package/dist/crate-builder/RenderEntity/DialogSaveEntityTemplate.d.ts +14 -0
  30. package/dist/crate-builder/RenderEntity/DisplayPropertyName.d.ts +8 -0
  31. package/dist/crate-builder/RenderEntity/DisplayPropertyName.stories.d.ts +6 -0
  32. package/dist/crate-builder/RenderEntity/EntityId.d.ts +13 -0
  33. package/dist/crate-builder/RenderEntity/EntityName.d.ts +13 -0
  34. package/dist/crate-builder/RenderEntity/EntityProperty.d.ts +19 -0
  35. package/dist/crate-builder/RenderEntity/EntityPropertyInstance.d.ts +25 -0
  36. package/dist/crate-builder/RenderEntity/EntityType.d.ts +12 -0
  37. package/dist/crate-builder/RenderEntity/ItemLink.d.ts +14 -0
  38. package/dist/crate-builder/RenderEntity/PaginateLinkedEntities.d.ts +23 -0
  39. package/dist/crate-builder/RenderEntity/PaginateLinkedEntities.stories.d.ts +7 -0
  40. package/dist/crate-builder/RenderEntity/PropertyHelp.d.ts +6 -0
  41. package/dist/crate-builder/RenderEntity/RenderControls.d.ts +22 -0
  42. package/dist/crate-builder/RenderEntity/RenderLinkedItem.d.ts +20 -0
  43. package/dist/crate-builder/RenderEntity/RenderPropertyHelp.d.ts +6 -0
  44. package/dist/crate-builder/RenderEntity/RenderReverseConnections.d.ts +16 -0
  45. package/dist/crate-builder/RenderEntity/RenderTypes.d.ts +6 -0
  46. package/dist/crate-builder/RenderEntity/Shell2.d.ts +14 -0
  47. package/dist/crate-builder/RenderEntity/UnlinkEntity.d.ts +14 -0
  48. package/dist/crate-builder/RenderEntity/auto-complete.lib.d.ts +25 -0
  49. package/dist/crate-builder/RenderEntity/keys.d.ts +4 -0
  50. package/dist/crate-builder/RenderEntity/layout.d.ts +14 -0
  51. package/dist/crate-builder/RenderEntity/layout.spec.d.ts +1 -0
  52. package/dist/crate-builder/Shell.d.ts +40 -0
  53. package/dist/crate-builder/editor-state.d.ts +72 -0
  54. package/dist/crate-builder/emotionCache.d.ts +1 -0
  55. package/dist/crate-builder/helpers.d.ts +9 -0
  56. package/dist/crate-builder/i18n.d.ts +2 -0
  57. package/dist/crate-builder/lib/validate-iri.d.ts +6 -0
  58. package/dist/crate-builder/locales/en.d.ts +79 -0
  59. package/dist/crate-builder/locales/hu.d.ts +79 -0
  60. package/dist/crate-builder/primitives/Boolean.d.ts +11 -0
  61. package/dist/crate-builder/primitives/Boolean.stories.d.ts +7 -0
  62. package/dist/crate-builder/primitives/Date.d.ts +11 -0
  63. package/dist/crate-builder/primitives/Date.stories.d.ts +5 -0
  64. package/dist/crate-builder/primitives/DateTime.d.ts +11 -0
  65. package/dist/crate-builder/primitives/DateTime.stories.d.ts +5 -0
  66. package/dist/crate-builder/primitives/Geo.d.ts +12 -0
  67. package/dist/crate-builder/primitives/Geo.stories.d.ts +26 -0
  68. package/dist/crate-builder/primitives/Map.SelectArea.d.ts +9 -0
  69. package/dist/crate-builder/primitives/Map.d.ts +15 -0
  70. package/dist/crate-builder/primitives/Map.stories.d.ts +6 -0
  71. package/dist/crate-builder/primitives/Number.d.ts +16 -0
  72. package/dist/crate-builder/primitives/Number.stories.d.ts +10 -0
  73. package/dist/crate-builder/primitives/Select.d.ts +15 -0
  74. package/dist/crate-builder/primitives/Select.stories.d.ts +9 -0
  75. package/dist/crate-builder/primitives/SelectObject.d.ts +13 -0
  76. package/dist/crate-builder/primitives/SelectObject.stories.d.ts +5 -0
  77. package/dist/crate-builder/primitives/SelectUrl.d.ts +14 -0
  78. package/dist/crate-builder/primitives/SelectUrl.stories.d.ts +7 -0
  79. package/dist/crate-builder/primitives/Text.d.ts +19 -0
  80. package/dist/crate-builder/primitives/Text.stories.d.ts +13 -0
  81. package/dist/crate-builder/primitives/Time.d.ts +11 -0
  82. package/dist/crate-builder/primitives/Time.stories.d.ts +7 -0
  83. package/dist/crate-builder/primitives/Url.d.ts +11 -0
  84. package/dist/crate-builder/primitives/Url.stories.d.ts +7 -0
  85. package/dist/crate-builder/primitives/Value.d.ts +7 -0
  86. package/dist/crate-builder/primitives/Value.stories.d.ts +7 -0
  87. package/dist/crate-builder/primitives/date-libs.d.ts +1 -0
  88. package/dist/crate-builder/property-definitions.d.ts +78 -0
  89. package/dist/crate-builder/store.d.ts +8 -0
  90. package/dist/index.d.ts +5 -0
  91. package/dist/recrate.css +1896 -0
  92. package/dist/recrate.es.js +38508 -0
  93. package/dist/types.d.ts +42 -0
  94. package/package.json +41 -28
  95. package/.eslintrc.json +0 -37
  96. package/.storybook/main.ts +0 -40
  97. package/.storybook/preview.tsx +0 -46
  98. package/babel.config.json +0 -5
  99. package/docker-compose.yml +0 -30
  100. package/docs/.nojekyll +0 -1
  101. package/docs/assets/highlight.css +0 -99
  102. package/docs/assets/icons.js +0 -18
  103. package/docs/assets/icons.svg +0 -1
  104. package/docs/assets/main.js +0 -60
  105. package/docs/assets/navigation.js +0 -1
  106. package/docs/assets/search.js +0 -1
  107. package/docs/assets/style.css +0 -1448
  108. package/docs/classes/src_crate_builder_CrateManager_crate_manager.CrateManager.html +0 -240
  109. package/docs/classes/src_crate_builder_CrateManager_profile_manager.ProfileManager.html +0 -42
  110. package/docs/classes/src_crate_builder_editor_state.EditorState.html +0 -28
  111. package/docs/classes/src_crate_builder_types.CrateManagerType.html +0 -57
  112. package/docs/classes/src_crate_builder_types.ProfileManagerType.html +0 -13
  113. package/docs/functions/src_crate_builder_CrateManager_lib.isURL.html +0 -2
  114. package/docs/functions/src_crate_builder_CrateManager_lib.mintNewCrate.html +0 -3
  115. package/docs/functions/src_crate_builder_CrateManager_lib.normalise.html +0 -5
  116. package/docs/functions/src_crate_builder_CrateManager_lib.normaliseEntityType.html +0 -1
  117. package/docs/index.html +0 -58
  118. package/docs/interfaces/src_crate_builder_types.NormalisedCrate.html +0 -3
  119. package/docs/interfaces/src_crate_builder_types.NormalisedEntityDefinition.html +0 -4
  120. package/docs/interfaces/src_crate_builder_types.NormalisedProfile.html +0 -9
  121. package/docs/interfaces/src_crate_builder_types.ProfileLayout.html +0 -2
  122. package/docs/interfaces/src_crate_builder_types.ProfileLayoutGroup.html +0 -9
  123. package/docs/interfaces/src_crate_builder_types.UnverifiedCrate.html +0 -3
  124. package/docs/interfaces/src_crate_builder_types.UnverifiedEntityDefinition.html +0 -4
  125. package/docs/modules/src_crate_builder_CrateManager_crate_manager.html +0 -2
  126. package/docs/modules/src_crate_builder_CrateManager_lib.html +0 -6
  127. package/docs/modules/src_crate_builder_CrateManager_profile_manager.html +0 -2
  128. package/docs/modules/src_crate_builder_editor_state.html +0 -2
  129. package/docs/modules/src_crate_builder_types.html +0 -16
  130. package/docs/types/src_crate_builder_types.EntityReference.html +0 -1
  131. package/docs/types/src_crate_builder_types.NormalisedContext.html +0 -1
  132. package/docs/types/src_crate_builder_types.PrimitiveType.html +0 -1
  133. package/docs/types/src_crate_builder_types.ProfileAssociation.html +0 -1
  134. package/docs/types/src_crate_builder_types.ProfileInput.html +0 -1
  135. package/docs/types/src_crate_builder_types.UnverifiedContext.html +0 -1
  136. package/docs/variables/src_crate_builder_CrateManager_lib.urlProtocols.html +0 -1
  137. package/index.html +0 -13
  138. package/load-data-packs.cjs +0 -38
  139. package/postcss.config.cjs +0 -6
  140. package/react-app-env.d.ts +0 -1
  141. package/rollup.config.js +0 -26
  142. package/src/app/App.tsx +0 -13
  143. package/src/app/EmbeddedComponent.tsx +0 -432
  144. package/src/app/index.html +0 -20
  145. package/src/app/index.tsx +0 -19
  146. package/src/app/lookup.ts +0 -141
  147. package/src/app/override-styles.css +0 -96
  148. package/src/crate-builder/CrateManager/contexts/1.1-context.jsonld +0 -2660
  149. package/src/crate-builder/CrateManager/contexts/1.2-DRAFT-context.jsonld +0 -2918
  150. package/src/crate-builder/CrateManager/contexts.ts +0 -42
  151. package/src/crate-builder/CrateManager/crate-manager-benchmarking.spec.ts +0 -31
  152. package/src/crate-builder/CrateManager/crate-manager-loading-exporting.spec.ts +0 -431
  153. package/src/crate-builder/CrateManager/crate-manager-operations.spec.ts +0 -298
  154. package/src/crate-builder/CrateManager/crate-manager.spec.ts +0 -2336
  155. package/src/crate-builder/CrateManager/crate-manager.ts +0 -2111
  156. package/src/crate-builder/CrateManager/lib.spec.ts +0 -133
  157. package/src/crate-builder/CrateManager/lib.ts +0 -170
  158. package/src/crate-builder/CrateManager/profile-manager.spec.ts +0 -593
  159. package/src/crate-builder/CrateManager/profile-manager.ts +0 -367
  160. package/src/crate-builder/CrateManager/validate-identifier.spec.ts +0 -82
  161. package/src/crate-builder/CrateManager/validate-identifier.ts +0 -65
  162. package/src/crate-builder/RenderEntity/Add.tsx +0 -249
  163. package/src/crate-builder/RenderEntity/AddControl.stories.tsx +0 -126
  164. package/src/crate-builder/RenderEntity/AddControl.tsx +0 -84
  165. package/src/crate-builder/RenderEntity/AutoComplete.tsx +0 -215
  166. package/src/crate-builder/RenderEntity/BulkAdd.tsx +0 -136
  167. package/src/crate-builder/RenderEntity/DeleteProperty.tsx +0 -33
  168. package/src/crate-builder/RenderEntity/DialogAddProperty.tsx +0 -83
  169. package/src/crate-builder/RenderEntity/DialogBrowseEntities.tsx +0 -136
  170. package/src/crate-builder/RenderEntity/DialogEditContext.tsx +0 -107
  171. package/src/crate-builder/RenderEntity/DialogPreviewCrate.tsx +0 -54
  172. package/src/crate-builder/RenderEntity/DialogSaveCrateAsTemplate.tsx +0 -65
  173. package/src/crate-builder/RenderEntity/DialogSaveEntityTemplate.tsx +0 -87
  174. package/src/crate-builder/RenderEntity/DisplayPropertyName.stories.tsx +0 -30
  175. package/src/crate-builder/RenderEntity/DisplayPropertyName.tsx +0 -21
  176. package/src/crate-builder/RenderEntity/EntityId.tsx +0 -75
  177. package/src/crate-builder/RenderEntity/EntityName.tsx +0 -49
  178. package/src/crate-builder/RenderEntity/EntityProperty.tsx +0 -188
  179. package/src/crate-builder/RenderEntity/EntityPropertyInstance.tsx +0 -255
  180. package/src/crate-builder/RenderEntity/EntityType.tsx +0 -95
  181. package/src/crate-builder/RenderEntity/ItemLink.tsx +0 -37
  182. package/src/crate-builder/RenderEntity/PaginateLinkedEntities.stories.tsx +0 -43
  183. package/src/crate-builder/RenderEntity/PaginateLinkedEntities.tsx +0 -141
  184. package/src/crate-builder/RenderEntity/PropertyHelp.tsx +0 -39
  185. package/src/crate-builder/RenderEntity/RenderControls.tsx +0 -278
  186. package/src/crate-builder/RenderEntity/RenderLinkedItem.tsx +0 -139
  187. package/src/crate-builder/RenderEntity/RenderPropertyHelp.tsx +0 -41
  188. package/src/crate-builder/RenderEntity/RenderReverseConnections.tsx +0 -150
  189. package/src/crate-builder/RenderEntity/RenderTypes.tsx +0 -102
  190. package/src/crate-builder/RenderEntity/Shell2.tsx +0 -576
  191. package/src/crate-builder/RenderEntity/UnlinkEntity.tsx +0 -30
  192. package/src/crate-builder/RenderEntity/auto-complete.lib.ts +0 -184
  193. package/src/crate-builder/RenderEntity/keys.ts +0 -4
  194. package/src/crate-builder/RenderEntity/layout.spec.js +0 -593
  195. package/src/crate-builder/RenderEntity/layout.ts +0 -220
  196. package/src/crate-builder/Shell.tsx +0 -337
  197. package/src/crate-builder/component.css +0 -65
  198. package/src/crate-builder/editor-state.ts +0 -114
  199. package/src/crate-builder/emotionCache.ts +0 -8
  200. package/src/crate-builder/helpers.ts +0 -16
  201. package/src/crate-builder/i18n.ts +0 -22
  202. package/src/crate-builder/lib/validate-iri.ts +0 -57
  203. package/src/crate-builder/locales/en.js +0 -149
  204. package/src/crate-builder/locales/hu.js +0 -147
  205. package/src/crate-builder/primitives/Boolean.stories.tsx +0 -33
  206. package/src/crate-builder/primitives/Boolean.tsx +0 -67
  207. package/src/crate-builder/primitives/Date.stories.tsx +0 -32
  208. package/src/crate-builder/primitives/Date.tsx +0 -58
  209. package/src/crate-builder/primitives/DateTime.stories.tsx +0 -32
  210. package/src/crate-builder/primitives/DateTime.tsx +0 -64
  211. package/src/crate-builder/primitives/Geo.stories.tsx +0 -57
  212. package/src/crate-builder/primitives/Geo.tsx +0 -225
  213. package/src/crate-builder/primitives/Map.SelectArea.js +0 -359
  214. package/src/crate-builder/primitives/Map.stories.tsx +0 -61
  215. package/src/crate-builder/primitives/Map.tsx +0 -124
  216. package/src/crate-builder/primitives/Number.stories.tsx +0 -74
  217. package/src/crate-builder/primitives/Number.tsx +0 -166
  218. package/src/crate-builder/primitives/Select.stories.tsx +0 -66
  219. package/src/crate-builder/primitives/Select.tsx +0 -121
  220. package/src/crate-builder/primitives/SelectObject.stories.tsx +0 -29
  221. package/src/crate-builder/primitives/SelectObject.tsx +0 -105
  222. package/src/crate-builder/primitives/SelectUrl.stories.tsx +0 -42
  223. package/src/crate-builder/primitives/SelectUrl.tsx +0 -110
  224. package/src/crate-builder/primitives/Text.stories.tsx +0 -106
  225. package/src/crate-builder/primitives/Text.tsx +0 -197
  226. package/src/crate-builder/primitives/Time.stories.tsx +0 -38
  227. package/src/crate-builder/primitives/Time.tsx +0 -71
  228. package/src/crate-builder/primitives/Url.stories.tsx +0 -43
  229. package/src/crate-builder/primitives/Url.tsx +0 -75
  230. package/src/crate-builder/primitives/Value.stories.tsx +0 -37
  231. package/src/crate-builder/primitives/Value.tsx +0 -30
  232. package/src/crate-builder/primitives/date-libs.ts +0 -12
  233. package/src/crate-builder/profile-schema.json +0 -145
  234. package/src/crate-builder/property-definitions.ts +0 -78
  235. package/src/crate-builder/recrate.css +0 -3
  236. package/src/crate-builder/store.ts +0 -14
  237. package/src/crate-builder/tailwind.css +0 -5
  238. package/src/crate-builder/types.d.ts +0 -318
  239. package/src/examples/collection/collections-entity-example.json +0 -131
  240. package/src/examples/collection/crate-builder-entity-example.json +0 -33
  241. package/src/examples/item/complex-collection/ro-crate-metadata.json +0 -174
  242. package/src/examples/item/complex-item/ro-crate-metadata.json +0 -769
  243. package/src/examples/item/crate-with-language.json +0 -38
  244. package/src/examples/item/empty/ro-crate-metadata.json +0 -20
  245. package/src/examples/item/item-with-relationship-and-action/ro-crate-metadata.json +0 -66
  246. package/src/examples/item/large-crate/ro-crate-metadata.json +0 -5762
  247. package/src/examples/item/multiple-types/ro-crate-metadata.json +0 -20
  248. package/src/examples/item/ridiculously-big-collection/ro-crate-metadata.json +0 -162977
  249. package/src/examples/profile/aroma.complex.profile.json +0 -11098
  250. package/src/examples/profile/aroma.profile.json +0 -9158
  251. package/src/examples/profile/nyingarn-item-profile.json +0 -426
  252. package/src/examples/profile/profile-to-test-inverse-associations.json +0 -73
  253. package/src/examples/profile/profile-to-test-multiple-types.json +0 -31
  254. package/src/examples/profile/profile-with-all-primitives-and-groups.json +0 -207
  255. package/src/examples/profile/profile-with-all-primitives.json +0 -244
  256. package/src/examples/profile/profile-with-constraints.json +0 -446
  257. package/src/examples/profile/profile-with-resolve.json +0 -57
  258. package/src/examples/profile/vocabulary-creation-profile.json +0 -231
  259. package/src/images.d.ts +0 -5
  260. package/src/index.ts +0 -12
  261. package/src/types.ts +0 -104
  262. package/tailwind.config.js +0 -21
  263. package/tsconfig.app.json +0 -31
  264. package/tsconfig.json +0 -26
  265. package/typedoc.json +0 -11
  266. package/update-deps.sh +0 -4
  267. package/vite-env.d.ts +0 -1
  268. package/vite.config.ts +0 -67
  269. /package/{public → dist}/favicon.ico +0 -0
  270. /package/{public → dist}/index.html +0 -0
  271. /package/{public → dist}/logo192.png +0 -0
  272. /package/{public → dist}/logo512.png +0 -0
  273. /package/{public → dist}/manifest.json +0 -0
  274. /package/{public → dist}/marker-icon.png +0 -0
  275. /package/{public → dist}/marker-shadow.png +0 -0
  276. /package/{public → dist}/robots.txt +0 -0
@@ -1,136 +0,0 @@
1
- import React, { useState } from 'react';
2
- import { Button, Select, Input, Typography, Flex } from 'antd';
3
- import { DeleteOutlined, PlusOutlined } from '@ant-design/icons';
4
- import { useTranslation } from 'react-i18next';
5
-
6
- interface BulkAddProps {
7
- types: string | string[];
8
- primitives: string[];
9
- onCreateEntity: (data: { json: any }) => void;
10
- }
11
-
12
- interface DataRow {
13
- id: string;
14
- name: string;
15
- }
16
-
17
- const BulkAdd: React.FC<BulkAddProps> = ({ types, primitives, onCreateEntity }) => {
18
- const { t } = useTranslation();
19
- const [selectedType, setSelectedType] = useState<string>('');
20
- const [data, setData] = useState<DataRow[]>([
21
- { id: '', name: '' },
22
- { id: '', name: '' },
23
- { id: '', name: '' },
24
- { id: '', name: '' },
25
- { id: '', name: '' },
26
- ]);
27
-
28
- const availableTypes = Array.isArray(types)
29
- ? types.filter(t => !primitives.includes(t) && t !== 'ANY')
30
- : [];
31
-
32
- const addRow = () => {
33
- setData([...data, { id: '', name: '' }]);
34
- };
35
-
36
- const deleteRow = (index: number) => {
37
- setData(data.filter((_, idx) => idx !== index));
38
- };
39
-
40
- const updateRow = (index: number, field: keyof DataRow, value: string) => {
41
- const newData = [...data];
42
- newData[index] = { ...newData[index], [field]: value };
43
- setData(newData);
44
- };
45
-
46
- const createEntities = () => {
47
- data.forEach(entity => {
48
- if (entity.id && entity.name) {
49
- onCreateEntity({
50
- json: {
51
- '@id': entity.id,
52
- '@type': selectedType,
53
- name: entity.name,
54
- },
55
- });
56
- }
57
- });
58
- };
59
-
60
- return (
61
- <div className="flex flex-col space-y-2 m-1">
62
- <Typography.Title level={5} className="my-1 text-lg text-center">
63
- Note beforehand: This does not lookup existing entities.
64
- </Typography.Title>
65
-
66
- <div>
67
- <Typography.Text>@type</Typography.Text>
68
- <Select
69
- value={selectedType}
70
- onChange={(value) => setSelectedType(value as string)}
71
- style={{ width: '100%' }}
72
- placeholder="Select a type"
73
- size='middle'
74
- >
75
- <Select.Option value="">Select a type</Select.Option>
76
- {availableTypes.map((type) => (
77
- <Select.Option key={type} value={type}>
78
- {type}
79
- </Select.Option>
80
- ))}
81
- </Select>
82
- </div>
83
-
84
- <Flex className="flex-row space-x-1">
85
- <div className="w-1/2">@id</div>
86
- <div className="w-1/2">name</div>
87
- <div className="w-12"></div>
88
- </Flex>
89
-
90
- {data.map((row, idx) => (
91
- <Flex key={idx} className="flex-row space-x-1">
92
- <Input
93
- size='small'
94
- value={row.id}
95
- onChange={(e) => updateRow(idx, 'id', e.target.value)}
96
- style={{ flex: 1 }}
97
- />
98
- <Input
99
- size='small'
100
- value={row.name}
101
- onChange={(e) => updateRow(idx, 'name', e.target.value)}
102
- style={{ flex: 1 }}
103
- />
104
- <Button
105
- danger
106
- variant='solid'
107
- color='red'
108
- onClick={() => deleteRow(idx)}
109
- icon={<DeleteOutlined />}
110
- />
111
- </Flex>
112
- ))}
113
-
114
- <Flex justify="space-between">
115
- <Button
116
- type="primary"
117
- onClick={addRow}
118
- icon={<PlusOutlined />}
119
- >
120
- Add row
121
- </Button>
122
- <Button
123
- size='middle'
124
- variant='solid'
125
- color='green'
126
- onClick={createEntities}
127
- disabled={!selectedType}
128
- >
129
- Create these entities
130
- </Button>
131
- </Flex>
132
- </div>
133
- );
134
- };
135
-
136
- export default BulkAdd;
@@ -1,33 +0,0 @@
1
- import React from 'react';
2
- import { Button } from 'antd';
3
- import { DeleteOutlined, LinkOutlined } from '@ant-design/icons';
4
-
5
- interface DeletePropertyProps {
6
- type?: 'delete' | 'unlink';
7
- property: string;
8
- onDeleteProperty: () => void;
9
- }
10
-
11
- const DeleteProperty: React.FC<DeletePropertyProps> = ({
12
- type = 'unlink',
13
- property,
14
- onDeleteProperty
15
- }) => {
16
- const handleDelete = () => {
17
- onDeleteProperty();
18
- };
19
-
20
- return (
21
- <Button
22
- danger
23
- onClick={handleDelete}
24
- size="middle"
25
- variant='solid'
26
- color='red'
27
- className="describo-delete-property"
28
- icon={type === 'delete' ? <DeleteOutlined /> : <LinkOutlined />}
29
- />
30
- );
31
- };
32
-
33
- export default DeleteProperty;
@@ -1,83 +0,0 @@
1
- import React, { useState, useEffect, useContext } from 'react';
2
- import { Input, Flex, Typography, Drawer, Button } from 'antd';
3
- import { CloseOutlined, ArrowRightOutlined } from '@ant-design/icons';
4
- import { useTranslation } from 'react-i18next';
5
- import { ProfileManagerContext } from '../Shell';
6
-
7
- interface DialogAddPropertyProps {
8
- entity: any;
9
- onClose: () => void;
10
- open: boolean;
11
- onAddPropertyPlaceholder: (property: string) => void;
12
- }
13
-
14
- const DialogAddProperty: React.FC<DialogAddPropertyProps> = ({
15
- entity,
16
- onClose,
17
- open,
18
- onAddPropertyPlaceholder
19
- }) => {
20
- const { t } = useTranslation();
21
- const profileManager = useContext(ProfileManagerContext);
22
- const [filter, setFilter] = useState<string>('');
23
-
24
- const inputs = React.useMemo(() => {
25
- if (!entity?.['@type']) return [];
26
- const { inputs } = profileManager.getAllInputs({ entity });
27
- if (!filter) return inputs;
28
- return inputs.filter((i: any) => {
29
- const re = new RegExp(filter, 'i');
30
- return i?.name?.match(re) || i?.help?.match(re);
31
- });
32
- }, [entity, filter, profileManager]);
33
-
34
- const handlePropertySelection = (item: any) => {
35
- onAddPropertyPlaceholder(item.name);
36
- onClose();
37
- };
38
-
39
- return (
40
- <Drawer
41
- title={<Typography.Title className='m-2' level={4}>{t("add_properties_to_this_entity") || 'Add properties to this entity'}</Typography.Title>}
42
- placement="left"
43
- onClose={onClose}
44
- open={open}
45
- width={600} // Equivalent to minWidth: '600px'
46
- >
47
- <Flex vertical className="h-full">
48
- <Flex vertical gap={16} className="overflow-auto flex-grow">
49
- <Input.Search
50
- value={filter}
51
- onChange={(e) => setFilter(e.target.value)}
52
- placeholder={t('filter_attribute_set') || 'Filter the attribute set'}
53
- size="middle"
54
- />
55
- {inputs.map((item: any, idx: number) => (
56
- <div
57
- key={idx}
58
- className="cursor-pointer p-2 hover:bg-blue-100 hover:rounded active:bg-blue-400"
59
- onClick={() => handlePropertySelection(item)}
60
- >
61
- <Flex vertical className="text-black">
62
- <Flex align="center" gap={4} className="border-b border-gray-700">
63
- {item.label ? (
64
- <Typography.Text className="text-nowrap">{item.label}</Typography.Text>
65
- ) : (
66
- <Typography.Text className="text-black">{item.name}</Typography.Text>
67
- )}
68
- <ArrowRightOutlined />
69
- <Typography.Text className="text-balance">
70
- {Array.isArray(item.type) ? item.type.join(', ') : item.type || ''}
71
- </Typography.Text>
72
- </Flex>
73
- <Typography.Text type="secondary" className="w-full">{item.help}</Typography.Text>
74
- </Flex>
75
- </div>
76
- ))}
77
- </Flex>
78
- </Flex>
79
- </Drawer>
80
- );
81
- };
82
-
83
- export default DialogAddProperty;
@@ -1,136 +0,0 @@
1
- import React, { useState, useContext, useMemo } from 'react';
2
- import { Input, Select, Pagination, Flex, Drawer, Typography, Button, Card } from 'antd';
3
- import { CloseOutlined } from '@ant-design/icons';
4
- import { useTranslation } from 'react-i18next';
5
- import { compact } from 'lodash';
6
- import { CrateManagerContext } from '../Shell';
7
- import ItemLink from './ItemLink';
8
-
9
- interface DialogBrowseEntitiesProps {
10
- onClose: () => void;
11
- open: boolean;
12
- onLoadEntity: (entity: any) => void;
13
- }
14
-
15
- const DialogBrowseEntities: React.FC<DialogBrowseEntitiesProps> = ({
16
- onClose,
17
- open,
18
- onLoadEntity
19
- }) => {
20
- const { t } = useTranslation();
21
- const crateManager = useContext(CrateManagerContext);
22
- const [data, setData] = useState({
23
- filterInputModel: '',
24
- pageSize: 10,
25
- currentPage: 1,
26
- total: 0,
27
- query: '',
28
- selectedEntityType: undefined as string | undefined,
29
- });
30
-
31
- const entityTypes = useMemo(() =>
32
- crateManager.getEntityTypes(), [crateManager]);
33
-
34
- const entities = useMemo(() => {
35
- const offset = (data.currentPage - 1) * data.pageSize;
36
- let entities;
37
-
38
- if (data.query) {
39
- entities = [
40
- ...crateManager.getEntities({
41
- type: data.selectedEntityType,
42
- query: data.query,
43
- limit: data.pageSize,
44
- }),
45
- ];
46
- } else {
47
- entities = [...crateManager.getEntities({ type: data.selectedEntityType })];
48
- }
49
-
50
- entities = compact(entities);
51
- setData(prev => ({ ...prev, total: entities.length }));
52
- return entities.slice(offset, offset + data.pageSize);
53
- }, [data.currentPage, data.pageSize, data.query, data.selectedEntityType, crateManager]);
54
-
55
- const handleLoadEntity = (entity: any) => {
56
- onLoadEntity({ id: entity['@id'] });
57
- onClose();
58
- };
59
-
60
- return (
61
- <Drawer
62
- title={<Typography.Title className='m-2' level={4}>{t('browse_entities') || 'Browse Entities'}</Typography.Title>}
63
- placement="right"
64
- onClose={onClose}
65
- open={open}
66
- width={600} // Equivalent to minWidth: '600px'
67
- >
68
- <Flex vertical className="h-full">
69
- <Flex vertical gap={16} className="overflow-auto flex-grow">
70
- <Pagination
71
- current={data.currentPage}
72
- pageSize={data.pageSize}
73
- total={data.total}
74
- onChange={(page, pageSize) => setData(prev => ({ ...prev, currentPage: page, pageSize: pageSize }))}
75
- size="default"
76
- showSizeChanger={false}
77
- />
78
- <Flex gap={8}>
79
- <Select
80
- value={data.selectedEntityType || undefined}
81
- onChange={(value) => setData(prev => ({ ...prev, selectedEntityType: value as string }))}
82
- style={{ minWidth: 150 }}
83
- placeholder={t('filter_by_type')}
84
- size="middle"
85
- >
86
- <Select.Option value="">{t('filter_by_type')}</Select.Option>
87
- {entityTypes.map((t: string) => (
88
- <Select.Option key={t} value={t}>{t}</Select.Option>
89
- ))}
90
- </Select>
91
- <Input.Search
92
- style={{ flex: 1 }}
93
- size="middle"
94
- value={data.filterInputModel}
95
- onChange={(e) => {
96
- setData(prev => ({
97
- ...prev,
98
- filterInputModel: e.target.value,
99
- currentPage: 1,
100
- query: e.target.value
101
- }));
102
- }}
103
- placeholder={t('search_for_connection') || 'Search for a connection'}
104
- />
105
- </Flex>
106
- <div className="flex-grow">
107
- {entities.map((entity) => (
108
- <div key={entity['@id']} className="mb-2">
109
- <Card
110
- style={{
111
- backgroundColor: '#e6f0ff',
112
- cursor: 'pointer',
113
- transition: 'background-color 0.2s',
114
- borderLeft: '3px solid #409eff'
115
- }}
116
- hoverable
117
- >
118
- <Card.Meta
119
- title={
120
- <ItemLink
121
- entity={entity}
122
- onLoadEntity={() => handleLoadEntity(entity)}
123
- />
124
- }
125
- />
126
- </Card>
127
- </div>
128
- ))}
129
- </div>
130
- </Flex>
131
- </Flex>
132
- </Drawer>
133
- );
134
- };
135
-
136
- export default DialogBrowseEntities;
@@ -1,107 +0,0 @@
1
- import React, { useRef, useEffect, useState, useContext } from 'react';
2
- import {
3
- Drawer,
4
- Button,
5
- Flex,
6
- Typography,
7
- Divider,
8
- } from 'antd';
9
- import { CloseOutlined, SaveOutlined } from '@ant-design/icons';
10
- import { useTranslation } from 'react-i18next';
11
- import { EditorView, basicSetup } from 'codemirror';
12
- import { EditorState } from '@codemirror/state';
13
- import { javascript } from '@codemirror/lang-javascript';
14
- import { oneDark } from '@codemirror/theme-one-dark';
15
- import { CrateManagerContext } from '../Shell';
16
-
17
- interface DialogEditContextProps {
18
- onClose: () => void;
19
- onUpdateContext: (context: any) => void;
20
- open: boolean;
21
- }
22
-
23
- const DialogEditContext: React.FC<DialogEditContextProps> = ({
24
- onClose,
25
- onUpdateContext,
26
- open,
27
- }) => {
28
- const { t } = useTranslation();
29
- const crateManager = useContext(CrateManagerContext);
30
- const [error, setError] = useState(false);
31
- const editorRef = useRef<EditorView | undefined>(undefined);
32
- const containerRef = useRef<HTMLDivElement>(null);
33
-
34
- useEffect(() => {
35
- if (open) {
36
- const timeout = setTimeout(() => {
37
- if (containerRef.current) {
38
- const context = crateManager.getContext();
39
- const initialState = EditorState.create({
40
- doc: JSON.stringify(context, null, 2),
41
- extensions: [basicSetup, oneDark, javascript()],
42
- });
43
-
44
- if (editorRef.current) {
45
- editorRef.current.destroy();
46
- }
47
-
48
- editorRef.current = new EditorView({
49
- state: initialState,
50
- parent: containerRef.current,
51
- });
52
- }
53
- }, 50); // Delay just enough for the drawer to render
54
-
55
- return () => {
56
- clearTimeout(timeout);
57
- editorRef.current?.destroy();
58
- };
59
- }
60
- }, [open, crateManager]);
61
-
62
- const handleSave = () => {
63
- try {
64
- const context = JSON.parse(editorRef.current?.state.doc.toString() || '');
65
- onUpdateContext(context);
66
- setError(false);
67
- onClose();
68
- } catch (error) {
69
- console.error(error);
70
- setError(true);
71
- }
72
- };
73
-
74
- return (
75
- <Drawer
76
- title={<Typography.Title className='m-2' level={4}>{t('edit_context')}</Typography.Title>}
77
- placement="left"
78
- onClose={onClose}
79
- open={open}
80
- width={600} // Equivalent to minWidth: '600px'
81
- >
82
- <Divider style={{ margin: '16px 0' }} />
83
-
84
- <div
85
- ref={containerRef}
86
- className="cm-editor"
87
- ></div>
88
-
89
- {error && (
90
- <Typography.Text type="danger">
91
- The context is not a valid JSON data structure.
92
- </Typography.Text>
93
- )}
94
-
95
- <Button
96
- onClick={handleSave}
97
- type="primary"
98
- icon={<SaveOutlined />}
99
- style={{ marginTop: '16px' }}
100
- >
101
- {t('save_label')}
102
- </Button>
103
- </Drawer>
104
- );
105
- };
106
-
107
- export default DialogEditContext;
@@ -1,54 +0,0 @@
1
- import React, { useState, useEffect, useContext } from 'react';
2
- import { Flex, Typography, Drawer, Button } from 'antd';
3
- import { useTranslation } from 'react-i18next';
4
- import { CrateManagerContext } from '../Shell';
5
- import { CloseOutlined } from '@ant-design/icons';
6
-
7
- interface DialogPreviewCrateProps {
8
- onClose: () => void;
9
- open: boolean;
10
- }
11
-
12
- const DialogPreviewCrate: React.FC<DialogPreviewCrateProps> = ({ onClose, open }) => {
13
- const { t } = useTranslation();
14
- const crateManager = useContext(CrateManagerContext);
15
- const [crate, setCrate] = useState<any>({});
16
- const [loading, setLoading] = useState(false);
17
-
18
- useEffect(() => {
19
- if (open) { // Only load when drawer is open
20
- const loadCrate = async () => {
21
- setLoading(true);
22
- await new Promise(resolve => setTimeout(resolve, 400));
23
- setCrate(crateManager.exportCrate());
24
- setLoading(false);
25
- };
26
- loadCrate();
27
- }
28
- return () => {
29
- setCrate({});
30
- };
31
- }, [crateManager, open]); // Removed 'key' from dependencies
32
-
33
- return (
34
- <Drawer
35
- title={<Typography.Title className='m-2' level={4}>{t('preview_crate') || 'Preview Crate'}</Typography.Title>}
36
- placement="left"
37
- onClose={onClose}
38
- open={open}
39
- width={600} // Equivalent to minWidth: '600px'
40
- >
41
- <Flex vertical className="h-full">
42
- <div className="text-sm overflow-auto flex-grow">
43
- {crate['@graph'] ? (
44
- <pre className="whitespace-pre-wrap">{JSON.stringify(crate, null, 2)}</pre>
45
- ) : (
46
- <Typography.Text>{t('preview_loading')}</Typography.Text>
47
- )}
48
- </div>
49
- </Flex>
50
- </Drawer>
51
- );
52
- };
53
-
54
- export default DialogPreviewCrate;
@@ -1,65 +0,0 @@
1
- import React, { useState } from 'react';
2
- import { Flex, Input, Button, Drawer, Typography } from 'antd';
3
- import { SaveOutlined, CloseOutlined } from '@ant-design/icons';
4
- import { useTranslation } from 'react-i18next';
5
-
6
- interface DialogSaveCrateAsTemplateProps {
7
- entity: {
8
- [key: string]: any;
9
- };
10
- onClose: () => void;
11
- open: boolean;
12
- onSaveCrateTemplate: (data: { name: string }) => void;
13
- }
14
-
15
- const DialogSaveCrateAsTemplate: React.FC<DialogSaveCrateAsTemplateProps> = ({
16
- entity,
17
- onClose,
18
- open,
19
- onSaveCrateTemplate
20
- }) => {
21
- const { t } = useTranslation();
22
- const [crateName, setCrateName] = useState<string>('');
23
-
24
- const handleSave = () => {
25
- onSaveCrateTemplate({ name: crateName });
26
- setCrateName('');
27
- onClose();
28
- };
29
-
30
- return (
31
- <Drawer
32
- title={<Typography.Title className='m-2' level={4} style={{ margin: 0 }}>{t('save_template') || 'Save as Template'}</Typography.Title>}
33
- placement="right"
34
- onClose={onClose}
35
- open={open}
36
- width={600} // Equivalent to minWidth: '600px'
37
- >
38
- <Flex vertical className="h-full">
39
- <Flex vertical gap={16}>
40
- <Typography.Text className="text-sm">
41
- {t('save_template_prompt')}
42
- </Typography.Text>
43
- <Input
44
- value={crateName}
45
- onChange={(e) => setCrateName(e.target.value)}
46
- placeholder={t('provide_name_for_template') || 'Enter template name'}
47
- size="middle"
48
- />
49
- <Flex justify="flex-end">
50
- <Button
51
- onClick={handleSave}
52
- disabled={!crateName}
53
- type="primary"
54
- icon={<SaveOutlined />}
55
- >
56
- {t('save_label')}
57
- </Button>
58
- </Flex>
59
- </Flex>
60
- </Flex>
61
- </Drawer>
62
- );
63
- };
64
-
65
- export default DialogSaveCrateAsTemplate;