@arpproject/recrate 0.1.2

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 (286) hide show
  1. package/.eslintrc.json +37 -0
  2. package/.storybook/main.ts +40 -0
  3. package/.storybook/preview.tsx +46 -0
  4. package/LICENCE +18 -0
  5. package/README.md +83 -0
  6. package/babel.config.json +5 -0
  7. package/dist/app/App.d.ts +2 -0
  8. package/dist/app/EmbeddedComponent.d.ts +3 -0
  9. package/dist/app/index.d.ts +0 -0
  10. package/dist/app/lookup.d.ts +82 -0
  11. package/dist/crate-builder/CrateManager/contexts.d.ts +6 -0
  12. package/dist/crate-builder/CrateManager/crate-manager-benchmarking.spec.d.ts +1 -0
  13. package/dist/crate-builder/CrateManager/crate-manager-loading-exporting.spec.d.ts +1 -0
  14. package/dist/crate-builder/CrateManager/crate-manager-operations.spec.d.ts +0 -0
  15. package/dist/crate-builder/CrateManager/crate-manager.d.ts +641 -0
  16. package/dist/crate-builder/CrateManager/crate-manager.spec.d.ts +1 -0
  17. package/dist/crate-builder/CrateManager/lib.d.ts +26 -0
  18. package/dist/crate-builder/CrateManager/lib.spec.d.ts +1 -0
  19. package/dist/crate-builder/CrateManager/profile-manager.d.ts +143 -0
  20. package/dist/crate-builder/CrateManager/profile-manager.spec.d.ts +1 -0
  21. package/dist/crate-builder/CrateManager/schema-type-definitions.json.d.ts +35125 -0
  22. package/dist/crate-builder/CrateManager/validate-identifier.d.ts +10 -0
  23. package/dist/crate-builder/CrateManager/validate-identifier.spec.d.ts +1 -0
  24. package/dist/crate-builder/RenderEntity/Add.d.ts +26 -0
  25. package/dist/crate-builder/RenderEntity/AddControl.d.ts +14 -0
  26. package/dist/crate-builder/RenderEntity/AddControl.stories.d.ts +29 -0
  27. package/dist/crate-builder/RenderEntity/AutoComplete.d.ts +12 -0
  28. package/dist/crate-builder/RenderEntity/BulkAdd.d.ts +10 -0
  29. package/dist/crate-builder/RenderEntity/DeleteProperty.d.ts +8 -0
  30. package/dist/crate-builder/RenderEntity/DialogAddProperty.d.ts +9 -0
  31. package/dist/crate-builder/RenderEntity/DialogBrowseEntities.d.ts +8 -0
  32. package/dist/crate-builder/RenderEntity/DialogEditContext.d.ts +8 -0
  33. package/dist/crate-builder/RenderEntity/DialogPreviewCrate.d.ts +7 -0
  34. package/dist/crate-builder/RenderEntity/DialogSaveCrateAsTemplate.d.ts +13 -0
  35. package/dist/crate-builder/RenderEntity/DialogSaveEntityTemplate.d.ts +14 -0
  36. package/dist/crate-builder/RenderEntity/DisplayPropertyName.d.ts +8 -0
  37. package/dist/crate-builder/RenderEntity/DisplayPropertyName.stories.d.ts +6 -0
  38. package/dist/crate-builder/RenderEntity/EntityId.d.ts +13 -0
  39. package/dist/crate-builder/RenderEntity/EntityName.d.ts +13 -0
  40. package/dist/crate-builder/RenderEntity/EntityProperty.d.ts +19 -0
  41. package/dist/crate-builder/RenderEntity/EntityPropertyInstance.d.ts +25 -0
  42. package/dist/crate-builder/RenderEntity/EntityType.d.ts +12 -0
  43. package/dist/crate-builder/RenderEntity/ItemLink.d.ts +14 -0
  44. package/dist/crate-builder/RenderEntity/PaginateLinkedEntities.d.ts +23 -0
  45. package/dist/crate-builder/RenderEntity/PaginateLinkedEntities.stories.d.ts +7 -0
  46. package/dist/crate-builder/RenderEntity/PropertyHelp.d.ts +6 -0
  47. package/dist/crate-builder/RenderEntity/RenderControls.d.ts +22 -0
  48. package/dist/crate-builder/RenderEntity/RenderLinkedItem.d.ts +20 -0
  49. package/dist/crate-builder/RenderEntity/RenderPropertyHelp.d.ts +6 -0
  50. package/dist/crate-builder/RenderEntity/RenderReverseConnections.d.ts +16 -0
  51. package/dist/crate-builder/RenderEntity/RenderTypes.d.ts +6 -0
  52. package/dist/crate-builder/RenderEntity/Shell2.d.ts +14 -0
  53. package/dist/crate-builder/RenderEntity/UnlinkEntity.d.ts +14 -0
  54. package/dist/crate-builder/RenderEntity/auto-complete.lib.d.ts +25 -0
  55. package/dist/crate-builder/RenderEntity/keys.d.ts +4 -0
  56. package/dist/crate-builder/RenderEntity/layout.d.ts +14 -0
  57. package/dist/crate-builder/RenderEntity/layout.spec.d.ts +1 -0
  58. package/dist/crate-builder/Shell.d.ts +40 -0
  59. package/dist/crate-builder/editor-state.d.ts +72 -0
  60. package/dist/crate-builder/helpers.d.ts +9 -0
  61. package/dist/crate-builder/i18n.d.ts +2 -0
  62. package/dist/crate-builder/lib/validate-iri.d.ts +6 -0
  63. package/dist/crate-builder/locales/en.d.ts +79 -0
  64. package/dist/crate-builder/locales/hu.d.ts +79 -0
  65. package/dist/crate-builder/primitives/Boolean.d.ts +11 -0
  66. package/dist/crate-builder/primitives/Boolean.stories.d.ts +7 -0
  67. package/dist/crate-builder/primitives/Date.d.ts +11 -0
  68. package/dist/crate-builder/primitives/Date.stories.d.ts +5 -0
  69. package/dist/crate-builder/primitives/DateTime.d.ts +11 -0
  70. package/dist/crate-builder/primitives/DateTime.stories.d.ts +5 -0
  71. package/dist/crate-builder/primitives/Geo.d.ts +12 -0
  72. package/dist/crate-builder/primitives/Geo.stories.d.ts +26 -0
  73. package/dist/crate-builder/primitives/Map.SelectArea.d.ts +9 -0
  74. package/dist/crate-builder/primitives/Map.d.ts +15 -0
  75. package/dist/crate-builder/primitives/Map.stories.d.ts +6 -0
  76. package/dist/crate-builder/primitives/Number.d.ts +16 -0
  77. package/dist/crate-builder/primitives/Number.stories.d.ts +10 -0
  78. package/dist/crate-builder/primitives/Select.d.ts +15 -0
  79. package/dist/crate-builder/primitives/Select.stories.d.ts +9 -0
  80. package/dist/crate-builder/primitives/SelectObject.d.ts +13 -0
  81. package/dist/crate-builder/primitives/SelectObject.stories.d.ts +5 -0
  82. package/dist/crate-builder/primitives/SelectUrl.d.ts +14 -0
  83. package/dist/crate-builder/primitives/SelectUrl.stories.d.ts +7 -0
  84. package/dist/crate-builder/primitives/Text.d.ts +19 -0
  85. package/dist/crate-builder/primitives/Text.stories.d.ts +13 -0
  86. package/dist/crate-builder/primitives/Time.d.ts +11 -0
  87. package/dist/crate-builder/primitives/Time.stories.d.ts +7 -0
  88. package/dist/crate-builder/primitives/Url.d.ts +11 -0
  89. package/dist/crate-builder/primitives/Url.stories.d.ts +7 -0
  90. package/dist/crate-builder/primitives/Value.d.ts +7 -0
  91. package/dist/crate-builder/primitives/Value.stories.d.ts +7 -0
  92. package/dist/crate-builder/primitives/date-libs.d.ts +1 -0
  93. package/dist/crate-builder/property-definitions.d.ts +78 -0
  94. package/dist/crate-builder/store.d.ts +8 -0
  95. package/dist/favicon.ico +0 -0
  96. package/dist/index.d.ts +3 -0
  97. package/dist/index.html +43 -0
  98. package/dist/logo192.png +0 -0
  99. package/dist/logo512.png +0 -0
  100. package/dist/manifest.json +25 -0
  101. package/dist/marker-icon.png +0 -0
  102. package/dist/marker-shadow.png +0 -0
  103. package/dist/recrate.es.js +158699 -0
  104. package/dist/recrate.umd.js +158717 -0
  105. package/dist/robots.txt +3 -0
  106. package/dist/style.css +1721 -0
  107. package/dist/types.d.ts +42 -0
  108. package/docker-compose.yml +30 -0
  109. package/docs/.nojekyll +1 -0
  110. package/docs/assets/highlight.css +99 -0
  111. package/docs/assets/icons.js +18 -0
  112. package/docs/assets/icons.svg +1 -0
  113. package/docs/assets/main.js +60 -0
  114. package/docs/assets/navigation.js +1 -0
  115. package/docs/assets/search.js +1 -0
  116. package/docs/assets/style.css +1448 -0
  117. package/docs/classes/src_crate_builder_CrateManager_crate_manager.CrateManager.html +240 -0
  118. package/docs/classes/src_crate_builder_CrateManager_profile_manager.ProfileManager.html +42 -0
  119. package/docs/classes/src_crate_builder_editor_state.EditorState.html +28 -0
  120. package/docs/classes/src_crate_builder_types.CrateManagerType.html +57 -0
  121. package/docs/classes/src_crate_builder_types.ProfileManagerType.html +13 -0
  122. package/docs/functions/src_crate_builder_CrateManager_lib.isURL.html +2 -0
  123. package/docs/functions/src_crate_builder_CrateManager_lib.mintNewCrate.html +3 -0
  124. package/docs/functions/src_crate_builder_CrateManager_lib.normalise.html +5 -0
  125. package/docs/functions/src_crate_builder_CrateManager_lib.normaliseEntityType.html +1 -0
  126. package/docs/index.html +58 -0
  127. package/docs/interfaces/src_crate_builder_types.NormalisedCrate.html +3 -0
  128. package/docs/interfaces/src_crate_builder_types.NormalisedEntityDefinition.html +4 -0
  129. package/docs/interfaces/src_crate_builder_types.NormalisedProfile.html +9 -0
  130. package/docs/interfaces/src_crate_builder_types.ProfileLayout.html +2 -0
  131. package/docs/interfaces/src_crate_builder_types.ProfileLayoutGroup.html +9 -0
  132. package/docs/interfaces/src_crate_builder_types.UnverifiedCrate.html +3 -0
  133. package/docs/interfaces/src_crate_builder_types.UnverifiedEntityDefinition.html +4 -0
  134. package/docs/modules/src_crate_builder_CrateManager_crate_manager.html +2 -0
  135. package/docs/modules/src_crate_builder_CrateManager_lib.html +6 -0
  136. package/docs/modules/src_crate_builder_CrateManager_profile_manager.html +2 -0
  137. package/docs/modules/src_crate_builder_editor_state.html +2 -0
  138. package/docs/modules/src_crate_builder_types.html +16 -0
  139. package/docs/types/src_crate_builder_types.EntityReference.html +1 -0
  140. package/docs/types/src_crate_builder_types.NormalisedContext.html +1 -0
  141. package/docs/types/src_crate_builder_types.PrimitiveType.html +1 -0
  142. package/docs/types/src_crate_builder_types.ProfileAssociation.html +1 -0
  143. package/docs/types/src_crate_builder_types.ProfileInput.html +1 -0
  144. package/docs/types/src_crate_builder_types.UnverifiedContext.html +1 -0
  145. package/docs/variables/src_crate_builder_CrateManager_lib.urlProtocols.html +1 -0
  146. package/index.html +13 -0
  147. package/load-data-packs.cjs +38 -0
  148. package/package.json +135 -0
  149. package/postcss.config.cjs +6 -0
  150. package/public/favicon.ico +0 -0
  151. package/public/index.html +43 -0
  152. package/public/logo192.png +0 -0
  153. package/public/logo512.png +0 -0
  154. package/public/manifest.json +25 -0
  155. package/public/marker-icon.png +0 -0
  156. package/public/marker-shadow.png +0 -0
  157. package/public/robots.txt +3 -0
  158. package/react-app-env.d.ts +1 -0
  159. package/rollup.config.js +26 -0
  160. package/src/app/App.tsx +13 -0
  161. package/src/app/EmbeddedComponent.tsx +432 -0
  162. package/src/app/index.html +20 -0
  163. package/src/app/index.tsx +19 -0
  164. package/src/app/lookup.ts +141 -0
  165. package/src/app/override-styles.css +96 -0
  166. package/src/crate-builder/CrateManager/contexts/1.1-context.jsonld +2660 -0
  167. package/src/crate-builder/CrateManager/contexts/1.2-DRAFT-context.jsonld +2918 -0
  168. package/src/crate-builder/CrateManager/contexts.ts +42 -0
  169. package/src/crate-builder/CrateManager/crate-manager-benchmarking.spec.ts +31 -0
  170. package/src/crate-builder/CrateManager/crate-manager-loading-exporting.spec.ts +431 -0
  171. package/src/crate-builder/CrateManager/crate-manager-operations.spec.ts +298 -0
  172. package/src/crate-builder/CrateManager/crate-manager.spec.ts +2336 -0
  173. package/src/crate-builder/CrateManager/crate-manager.ts +2111 -0
  174. package/src/crate-builder/CrateManager/lib.spec.ts +133 -0
  175. package/src/crate-builder/CrateManager/lib.ts +170 -0
  176. package/src/crate-builder/CrateManager/profile-manager.spec.ts +593 -0
  177. package/src/crate-builder/CrateManager/profile-manager.ts +367 -0
  178. package/src/crate-builder/CrateManager/schema-type-definitions.json +35122 -0
  179. package/src/crate-builder/CrateManager/validate-identifier.spec.ts +82 -0
  180. package/src/crate-builder/CrateManager/validate-identifier.ts +65 -0
  181. package/src/crate-builder/RenderEntity/Add.tsx +249 -0
  182. package/src/crate-builder/RenderEntity/AddControl.stories.tsx +126 -0
  183. package/src/crate-builder/RenderEntity/AddControl.tsx +84 -0
  184. package/src/crate-builder/RenderEntity/AutoComplete.tsx +215 -0
  185. package/src/crate-builder/RenderEntity/BulkAdd.tsx +136 -0
  186. package/src/crate-builder/RenderEntity/DeleteProperty.tsx +33 -0
  187. package/src/crate-builder/RenderEntity/DialogAddProperty.tsx +83 -0
  188. package/src/crate-builder/RenderEntity/DialogBrowseEntities.tsx +136 -0
  189. package/src/crate-builder/RenderEntity/DialogEditContext.tsx +107 -0
  190. package/src/crate-builder/RenderEntity/DialogPreviewCrate.tsx +54 -0
  191. package/src/crate-builder/RenderEntity/DialogSaveCrateAsTemplate.tsx +65 -0
  192. package/src/crate-builder/RenderEntity/DialogSaveEntityTemplate.tsx +87 -0
  193. package/src/crate-builder/RenderEntity/DisplayPropertyName.stories.tsx +30 -0
  194. package/src/crate-builder/RenderEntity/DisplayPropertyName.tsx +21 -0
  195. package/src/crate-builder/RenderEntity/EntityId.tsx +75 -0
  196. package/src/crate-builder/RenderEntity/EntityName.tsx +49 -0
  197. package/src/crate-builder/RenderEntity/EntityProperty.tsx +188 -0
  198. package/src/crate-builder/RenderEntity/EntityPropertyInstance.tsx +255 -0
  199. package/src/crate-builder/RenderEntity/EntityType.tsx +95 -0
  200. package/src/crate-builder/RenderEntity/ItemLink.tsx +37 -0
  201. package/src/crate-builder/RenderEntity/PaginateLinkedEntities.stories.tsx +43 -0
  202. package/src/crate-builder/RenderEntity/PaginateLinkedEntities.tsx +141 -0
  203. package/src/crate-builder/RenderEntity/PropertyHelp.tsx +39 -0
  204. package/src/crate-builder/RenderEntity/RenderControls.tsx +278 -0
  205. package/src/crate-builder/RenderEntity/RenderLinkedItem.tsx +139 -0
  206. package/src/crate-builder/RenderEntity/RenderPropertyHelp.tsx +41 -0
  207. package/src/crate-builder/RenderEntity/RenderReverseConnections.tsx +150 -0
  208. package/src/crate-builder/RenderEntity/RenderTypes.tsx +102 -0
  209. package/src/crate-builder/RenderEntity/Shell2.tsx +576 -0
  210. package/src/crate-builder/RenderEntity/UnlinkEntity.tsx +30 -0
  211. package/src/crate-builder/RenderEntity/auto-complete.lib.ts +184 -0
  212. package/src/crate-builder/RenderEntity/keys.ts +4 -0
  213. package/src/crate-builder/RenderEntity/layout.spec.js +593 -0
  214. package/src/crate-builder/RenderEntity/layout.ts +220 -0
  215. package/src/crate-builder/Shell.tsx +323 -0
  216. package/src/crate-builder/component.css +65 -0
  217. package/src/crate-builder/editor-state.ts +114 -0
  218. package/src/crate-builder/helpers.ts +16 -0
  219. package/src/crate-builder/i18n.ts +22 -0
  220. package/src/crate-builder/lib/validate-iri.js +69 -0
  221. package/src/crate-builder/lib/validate-iri.ts +57 -0
  222. package/src/crate-builder/locales/en.js +149 -0
  223. package/src/crate-builder/locales/hu.js +147 -0
  224. package/src/crate-builder/primitives/Boolean.stories.tsx +33 -0
  225. package/src/crate-builder/primitives/Boolean.tsx +67 -0
  226. package/src/crate-builder/primitives/Date.stories.tsx +32 -0
  227. package/src/crate-builder/primitives/Date.tsx +58 -0
  228. package/src/crate-builder/primitives/DateTime.stories.tsx +32 -0
  229. package/src/crate-builder/primitives/DateTime.tsx +64 -0
  230. package/src/crate-builder/primitives/Geo.stories.tsx +57 -0
  231. package/src/crate-builder/primitives/Geo.tsx +225 -0
  232. package/src/crate-builder/primitives/Map.SelectArea.js +359 -0
  233. package/src/crate-builder/primitives/Map.stories.tsx +61 -0
  234. package/src/crate-builder/primitives/Map.tsx +124 -0
  235. package/src/crate-builder/primitives/Number.stories.tsx +74 -0
  236. package/src/crate-builder/primitives/Number.tsx +166 -0
  237. package/src/crate-builder/primitives/Select.stories.tsx +66 -0
  238. package/src/crate-builder/primitives/Select.tsx +122 -0
  239. package/src/crate-builder/primitives/SelectObject.stories.tsx +29 -0
  240. package/src/crate-builder/primitives/SelectObject.tsx +105 -0
  241. package/src/crate-builder/primitives/SelectUrl.stories.tsx +42 -0
  242. package/src/crate-builder/primitives/SelectUrl.tsx +110 -0
  243. package/src/crate-builder/primitives/Text.stories.tsx +106 -0
  244. package/src/crate-builder/primitives/Text.tsx +197 -0
  245. package/src/crate-builder/primitives/Time.stories.tsx +38 -0
  246. package/src/crate-builder/primitives/Time.tsx +71 -0
  247. package/src/crate-builder/primitives/Url.stories.tsx +43 -0
  248. package/src/crate-builder/primitives/Url.tsx +75 -0
  249. package/src/crate-builder/primitives/Value.stories.tsx +37 -0
  250. package/src/crate-builder/primitives/Value.tsx +30 -0
  251. package/src/crate-builder/primitives/date-libs.ts +12 -0
  252. package/src/crate-builder/profile-schema.json +145 -0
  253. package/src/crate-builder/property-definitions.ts +78 -0
  254. package/src/crate-builder/store.ts +14 -0
  255. package/src/crate-builder/tailwind.css +7 -0
  256. package/src/crate-builder/types.d.ts +318 -0
  257. package/src/examples/collection/collections-entity-example.json +131 -0
  258. package/src/examples/collection/crate-builder-entity-example.json +33 -0
  259. package/src/examples/item/complex-collection/ro-crate-metadata.json +174 -0
  260. package/src/examples/item/complex-item/ro-crate-metadata.json +769 -0
  261. package/src/examples/item/crate-with-language.json +38 -0
  262. package/src/examples/item/empty/ro-crate-metadata.json +20 -0
  263. package/src/examples/item/item-with-relationship-and-action/ro-crate-metadata.json +66 -0
  264. package/src/examples/item/large-crate/ro-crate-metadata.json +5762 -0
  265. package/src/examples/item/multiple-types/ro-crate-metadata.json +20 -0
  266. package/src/examples/item/ridiculously-big-collection/ro-crate-metadata.json +162977 -0
  267. package/src/examples/profile/aroma.complex.profile.json +11098 -0
  268. package/src/examples/profile/aroma.profile.json +9158 -0
  269. package/src/examples/profile/nyingarn-item-profile.json +426 -0
  270. package/src/examples/profile/profile-to-test-inverse-associations.json +73 -0
  271. package/src/examples/profile/profile-to-test-multiple-types.json +31 -0
  272. package/src/examples/profile/profile-with-all-primitives-and-groups.json +207 -0
  273. package/src/examples/profile/profile-with-all-primitives.json +244 -0
  274. package/src/examples/profile/profile-with-constraints.json +446 -0
  275. package/src/examples/profile/profile-with-resolve.json +57 -0
  276. package/src/examples/profile/vocabulary-creation-profile.json +231 -0
  277. package/src/images.d.ts +5 -0
  278. package/src/index.ts +10 -0
  279. package/src/types.ts +104 -0
  280. package/tailwind.config.js +20 -0
  281. package/tsconfig.app.json +31 -0
  282. package/tsconfig.json +26 -0
  283. package/typedoc.json +11 -0
  284. package/update-deps.sh +4 -0
  285. package/vite-env.d.ts +1 -0
  286. package/vite.config.ts +41 -0
package/.eslintrc.json ADDED
@@ -0,0 +1,37 @@
1
+ {
2
+ "env": {
3
+ "browser": true,
4
+ "es2021": true
5
+ },
6
+ "extends": [
7
+ "eslint:recommended",
8
+ "plugin:react/recommended",
9
+ "plugin:@typescript-eslint/recommended",
10
+ "plugin:react-hooks/recommended",
11
+ "plugin:storybook/recommended"
12
+ ],
13
+ "parser": "@typescript-eslint/parser",
14
+ "parserOptions": {
15
+ "ecmaFeatures": {
16
+ "jsx": true
17
+ },
18
+ "ecmaVersion": 12,
19
+ "sourceType": "module"
20
+ },
21
+ "plugins": [
22
+ "react",
23
+ "@typescript-eslint",
24
+ "react-hooks"
25
+ ],
26
+ "rules": {
27
+ "react/react-in-jsx-scope": "off",
28
+ "react/prop-types": "off",
29
+ "@typescript-eslint/explicit-module-boundary-types": "off",
30
+ "@typescript-eslint/no-explicit-any": "warn"
31
+ },
32
+ "settings": {
33
+ "react": {
34
+ "version": "detect"
35
+ }
36
+ }
37
+ }
@@ -0,0 +1,40 @@
1
+ import type { StorybookConfig } from '@storybook/react-vite';
2
+ import { mergeConfig } from 'vite';
3
+ import postcss from 'postcss';
4
+
5
+ const config: StorybookConfig = {
6
+ stories: [
7
+ '../src/**/*.stories.mdx',
8
+ '../src/**/*.stories.@(js|jsx|ts|tsx)'
9
+ ],
10
+ addons: [
11
+ {
12
+ name: '@storybook/addon-postcss',
13
+ options: {
14
+ postcssLoaderOptions: {
15
+ implementation: postcss,
16
+ },
17
+ },
18
+ },
19
+ '@storybook/addon-links',
20
+ '@storybook/addon-essentials',
21
+ '@storybook/addon-interactions',
22
+ ],
23
+ framework: {
24
+ name: '@storybook/react-vite',
25
+ options: {},
26
+ },
27
+ docs: {
28
+ autodocs: true,
29
+ },
30
+ typescript: {
31
+ reactDocgen: 'react-docgen-typescript',
32
+ },
33
+ async viteFinal(config) {
34
+ return mergeConfig(config, {
35
+ define: { 'process.env': { ...process.env } },
36
+ });
37
+ },
38
+ };
39
+
40
+ export default config;
@@ -0,0 +1,46 @@
1
+ import '../src/crate-builder/tailwind.css';
2
+ import '@fortawesome/fontawesome-free/js/all';
3
+ import { config as faConfig } from '@fortawesome/fontawesome-svg-core';
4
+ import i18next from 'i18next';
5
+ import { initReactI18next, I18nextProvider } from 'react-i18next';
6
+ import React from 'react';
7
+
8
+ // FontAwesome config
9
+ faConfig.autoReplaceSvg = 'nest';
10
+
11
+ // i18n setup (minimal, expand as needed)
12
+ i18next
13
+ .use(initReactI18next)
14
+ .init({
15
+ lng: process.env.STORYBOOK_LANG ?? 'en',
16
+ resources: {
17
+ en: {
18
+ translation: {
19
+ // Add your translations here
20
+ }
21
+ }
22
+ },
23
+ interpolation: { escapeValue: false }
24
+ });
25
+
26
+ export const decorators = [
27
+ (Story) => (
28
+ <I18nextProvider i18n={i18next}>
29
+ <Story />
30
+ </I18nextProvider>
31
+ ),
32
+ ];
33
+
34
+ const preview = {
35
+ parameters: {
36
+ actions: { argTypesRegex: '^on[A-Z].*' },
37
+ controls: {
38
+ matchers: {
39
+ color: /(background|color)$/i,
40
+ date: /Date$/,
41
+ },
42
+ },
43
+ },
44
+ };
45
+
46
+ export default preview;
package/LICENCE ADDED
@@ -0,0 +1,18 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 - present, Marco La Rosa.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
6
+ associated documentation files (the "Software"), to deal in the Software without restriction,
7
+ including without limitation the rights to use, copy, modify, merge, publish, distribute,
8
+ sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
9
+ furnished to do so, subject to the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be included in all copies or substantial
12
+ portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
15
+ NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
16
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES
17
+ OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
18
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,83 @@
1
+ # Note
2
+
3
+ For the main Describo project visit: https://www.npmjs.com/package/@describo/crate-builder-component
4
+
5
+ This is a fork of the Crate Builder Component for use in the [ARP project](https://researchdata.hu/en). Contains additions and modifications necessary for the ARP project that are not present/required/supported by the original component. We, however, try to keep compatibilioty with the original project as much as possible and update to its new version.
6
+
7
+ The package version matches the latest version of the original Crate Builder project (eg. 0.80.0) and an additional `-arp.X` marks the patch version for ARP. For example, `0.80.0-arp.12` is based on the `0.80.0` version of the Crate Builder Component and is the `12th` patched version of it for use in ARP.
8
+
9
+ # Crate Builder Component
10
+
11
+ - [Crate Builder Component](#crate-builder-component)
12
+ - [Documentation](#documentation)
13
+ - [API Documentation](#api-documentation)
14
+ - [Developing the plugin](#developing-the-plugin)
15
+ - [Storybook](#storybook)
16
+ - [Development application](#development-application)
17
+ - [Building and publishing a release](#building-and-publishing-a-release)
18
+ - [Building and publishing API docs - has to be separate stage](#building-and-publishing-api-docs---has-to-be-separate-stage)
19
+ - [Repository structure](#repository-structure)
20
+
21
+ This is the core UI component for assembling an RO-Crate inside Describo. It is a self contained
22
+ VueJS component that can be used inside your app. If you use this component, your app is responsible
23
+ for loading the crate file from the storage layer (or minting a new one if none exists) and saving
24
+ the updated crate back. Your app can also provide a profile to the component and a class to handle
25
+ template lookups.
26
+
27
+ # Documentation
28
+
29
+ Comprehensive documentation is available @
30
+ [https://describo.github.io/docs/component/introduction.html](https://describo.github.io/docs/component/introduction.html)
31
+
32
+ # API Documentation
33
+
34
+ - [CrateManager](https://describo.github.io/crate-builder-component/CrateManager.html)
35
+ - [ProfileManager](https://describo.github.io/crate-builder-component/ProfileManager.html)
36
+ - [EditorState](https://describo.github.io/crate-builder-component/EditorState.html)
37
+
38
+ # Developing the plugin
39
+
40
+ ## Storybook
41
+
42
+ [Storybook](storybook.js.org/) is used in this application. When you are just developing the
43
+ components, storybook is what you want as you can focus just on the component in isolation. To start
44
+ it run:
45
+
46
+ ```
47
+ npm run storybook
48
+ ```
49
+
50
+ ## Development application
51
+
52
+ When you want to see the component in action as a whole, there is a small VueJS app in this
53
+ codebase. To start up the dev environment:
54
+
55
+ ```
56
+ > docker compose up (starts up an elastic search container for datapack lookups)
57
+ > npm run develop
58
+
59
+ --> browse to localhost:9000
60
+ ```
61
+
62
+ # Building and publishing a release
63
+
64
+ - `npm run build`: This builds the plugin and styles that the react component uses
65
+ - `npm version {minor|patch}`
66
+ - `git push origin master --tags`
67
+ - Go to the repo and create a release from the tag, documenting what is in it.
68
+ - Publish to npm: `npm publish`
69
+ - Create an issue in the
70
+ [React component issue tracker](https://github.com/describo/crate-builder-component-react/issues)
71
+ to inform that a new release of that component needs to be built and published to npm.
72
+
73
+ # Building and publishing API docs - has to be separate stage
74
+
75
+ - `npm run docs`: Update the jsdoc documentation
76
+ - `git add . && git commit -a`
77
+ - `git push origin master --tags`
78
+
79
+ # Repository structure
80
+
81
+ - The development app is at `./src/app`. In there you will find the file main.js where we import
82
+ the plugin and wire it into Vue as well as an App.vue file where we load the component.
83
+ - The component is at `./src/crate-builder`.
@@ -0,0 +1,5 @@
1
+ {
2
+ "presets": ["@babel/preset-env"],
3
+ "ignore": ["node_modules"],
4
+ "only": ["src"]
5
+ }
@@ -0,0 +1,2 @@
1
+ declare function App(): import("react/jsx-runtime").JSX.Element;
2
+ export default App;
@@ -0,0 +1,3 @@
1
+ import { default as React } from 'react';
2
+ declare const EmbeddedComponent: React.FC;
3
+ export default EmbeddedComponent;
File without changes
@@ -0,0 +1,82 @@
1
+ export declare class Lookup {
2
+ constructor();
3
+ /**
4
+ * This method is used to lookup entities created by users and saved for their
5
+ * own personal use. How you implement that, if you do at all, is up to you.
6
+ * In desktop for example, when the user saves a template, that entity gets stored
7
+ * in their local database.
8
+ *
9
+ * @param {Object} params
10
+ * @param {Array | String} params.type: the type array or type string of the entity being looked up
11
+ * @param {String} params.queryString: the query string typed in by the user
12
+ * @param {Number} params.limit=5: the number of matches to return - default = 5
13
+ *
14
+ * @returns {Object} { documents: [...]} - Object with documents array
15
+ */
16
+ entityTemplates({ type, queryString, limit }: {
17
+ type?: undefined;
18
+ queryString?: undefined;
19
+ limit?: number | undefined;
20
+ }): Promise<{
21
+ documents: never[];
22
+ }>;
23
+ /**
24
+ *
25
+ * This method is used to lookup data packs. Data packs are JSON-LD snippets that
26
+ * have been created by an expert/s and can be trusted as being valid and correct.
27
+ *
28
+ * @param {Object} params
29
+ * @param {Object} params.elasticQuery: a query object to be used against an elastic search server
30
+ * @param {Array | String} params.type: the type array or type string of the entity being looked up
31
+ * @param {String} params.queryString: the query string typed in by the user
32
+ * @param {Array | String} params.fields: the fields to search against in the data pack json objects
33
+ * @param {Array | String} params.datapack: the datapack or packs with the data to be used for this entity type
34
+ * @param {Number} params.limit=10: the number of matches to return - default = 10
35
+ *
36
+ * @returns {Object} { documents: [...]} - Object with documents array
37
+ */
38
+ dataPacks({ elasticQuery, type, queryString, fields, datapacks, limit, }: {
39
+ elasticQuery?: undefined;
40
+ type?: undefined;
41
+ queryString?: undefined;
42
+ fields?: undefined;
43
+ datapacks?: undefined;
44
+ limit?: number | undefined;
45
+ }): Promise<{
46
+ documents: any;
47
+ }>;
48
+ /**
49
+ * This method is used to lookup user created entities in, for example, a repository. Imagine
50
+ * a user creates an entity of type Country that overlaps with a Country in the data pack (same @id for both).
51
+ * The user created Country may not be correct but if it has the same @id and is stored
52
+ * in the same index, it will overrwrite the datapack version which is valid and correct.
53
+ *
54
+ * So, by separating out general entity lookups from data packs, you can store data in a way
55
+ * where user created stuff doesn't trample known good content.
56
+ *
57
+ * @param {Object} params
58
+ * @param {Object} params.elasticQuery: a query object to be used against an elastic search server
59
+ * @param {Array | String} params.type: the type array or type string of the entity being looked up
60
+ * @param {String} params.queryString: the query string typed in by the user
61
+ * @param {Array | String} params.fields: the fields to search against in the data pack json objects
62
+ * @param {Array | String} params.datapack: the datapack or packs with the data to be used for this entity type
63
+ * @param {Number} params.limit=10: the number of matches to return - default = 10
64
+ * @returns {Object} { documents: [...]} - Object with documents array
65
+ *
66
+ * @returns
67
+ */
68
+ entities({ elasticQuery, type, queryString, fields, limit, }: {
69
+ elasticQuery?: undefined;
70
+ type?: undefined;
71
+ queryString?: undefined;
72
+ fields?: undefined;
73
+ limit?: number | undefined;
74
+ }): Promise<{
75
+ documents: any;
76
+ }>;
77
+ /** private method */
78
+ _execute({ query, indexPath }: {
79
+ query: Record<string, any>;
80
+ indexPath: string;
81
+ }): Promise<any>;
82
+ }
@@ -0,0 +1,6 @@
1
+ export declare function getContextDefinition(id: string): {
2
+ href: string;
3
+ definitions: {
4
+ [key: string]: boolean;
5
+ };
6
+ };