@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.
- package/.eslintrc.json +37 -0
- package/.storybook/main.ts +40 -0
- package/.storybook/preview.tsx +46 -0
- package/LICENCE +18 -0
- package/README.md +83 -0
- package/babel.config.json +5 -0
- package/dist/app/App.d.ts +2 -0
- package/dist/app/EmbeddedComponent.d.ts +3 -0
- package/dist/app/index.d.ts +0 -0
- package/dist/app/lookup.d.ts +82 -0
- package/dist/crate-builder/CrateManager/contexts.d.ts +6 -0
- package/dist/crate-builder/CrateManager/crate-manager-benchmarking.spec.d.ts +1 -0
- package/dist/crate-builder/CrateManager/crate-manager-loading-exporting.spec.d.ts +1 -0
- package/dist/crate-builder/CrateManager/crate-manager-operations.spec.d.ts +0 -0
- package/dist/crate-builder/CrateManager/crate-manager.d.ts +641 -0
- package/dist/crate-builder/CrateManager/crate-manager.spec.d.ts +1 -0
- package/dist/crate-builder/CrateManager/lib.d.ts +26 -0
- package/dist/crate-builder/CrateManager/lib.spec.d.ts +1 -0
- package/dist/crate-builder/CrateManager/profile-manager.d.ts +143 -0
- package/dist/crate-builder/CrateManager/profile-manager.spec.d.ts +1 -0
- package/dist/crate-builder/CrateManager/schema-type-definitions.json.d.ts +35125 -0
- package/dist/crate-builder/CrateManager/validate-identifier.d.ts +10 -0
- package/dist/crate-builder/CrateManager/validate-identifier.spec.d.ts +1 -0
- package/dist/crate-builder/RenderEntity/Add.d.ts +26 -0
- package/dist/crate-builder/RenderEntity/AddControl.d.ts +14 -0
- package/dist/crate-builder/RenderEntity/AddControl.stories.d.ts +29 -0
- package/dist/crate-builder/RenderEntity/AutoComplete.d.ts +12 -0
- package/dist/crate-builder/RenderEntity/BulkAdd.d.ts +10 -0
- package/dist/crate-builder/RenderEntity/DeleteProperty.d.ts +8 -0
- package/dist/crate-builder/RenderEntity/DialogAddProperty.d.ts +9 -0
- package/dist/crate-builder/RenderEntity/DialogBrowseEntities.d.ts +8 -0
- package/dist/crate-builder/RenderEntity/DialogEditContext.d.ts +8 -0
- package/dist/crate-builder/RenderEntity/DialogPreviewCrate.d.ts +7 -0
- package/dist/crate-builder/RenderEntity/DialogSaveCrateAsTemplate.d.ts +13 -0
- package/dist/crate-builder/RenderEntity/DialogSaveEntityTemplate.d.ts +14 -0
- package/dist/crate-builder/RenderEntity/DisplayPropertyName.d.ts +8 -0
- package/dist/crate-builder/RenderEntity/DisplayPropertyName.stories.d.ts +6 -0
- package/dist/crate-builder/RenderEntity/EntityId.d.ts +13 -0
- package/dist/crate-builder/RenderEntity/EntityName.d.ts +13 -0
- package/dist/crate-builder/RenderEntity/EntityProperty.d.ts +19 -0
- package/dist/crate-builder/RenderEntity/EntityPropertyInstance.d.ts +25 -0
- package/dist/crate-builder/RenderEntity/EntityType.d.ts +12 -0
- package/dist/crate-builder/RenderEntity/ItemLink.d.ts +14 -0
- package/dist/crate-builder/RenderEntity/PaginateLinkedEntities.d.ts +23 -0
- package/dist/crate-builder/RenderEntity/PaginateLinkedEntities.stories.d.ts +7 -0
- package/dist/crate-builder/RenderEntity/PropertyHelp.d.ts +6 -0
- package/dist/crate-builder/RenderEntity/RenderControls.d.ts +22 -0
- package/dist/crate-builder/RenderEntity/RenderLinkedItem.d.ts +20 -0
- package/dist/crate-builder/RenderEntity/RenderPropertyHelp.d.ts +6 -0
- package/dist/crate-builder/RenderEntity/RenderReverseConnections.d.ts +16 -0
- package/dist/crate-builder/RenderEntity/RenderTypes.d.ts +6 -0
- package/dist/crate-builder/RenderEntity/Shell2.d.ts +14 -0
- package/dist/crate-builder/RenderEntity/UnlinkEntity.d.ts +14 -0
- package/dist/crate-builder/RenderEntity/auto-complete.lib.d.ts +25 -0
- package/dist/crate-builder/RenderEntity/keys.d.ts +4 -0
- package/dist/crate-builder/RenderEntity/layout.d.ts +14 -0
- package/dist/crate-builder/RenderEntity/layout.spec.d.ts +1 -0
- package/dist/crate-builder/Shell.d.ts +40 -0
- package/dist/crate-builder/editor-state.d.ts +72 -0
- package/dist/crate-builder/helpers.d.ts +9 -0
- package/dist/crate-builder/i18n.d.ts +2 -0
- package/dist/crate-builder/lib/validate-iri.d.ts +6 -0
- package/dist/crate-builder/locales/en.d.ts +79 -0
- package/dist/crate-builder/locales/hu.d.ts +79 -0
- package/dist/crate-builder/primitives/Boolean.d.ts +11 -0
- package/dist/crate-builder/primitives/Boolean.stories.d.ts +7 -0
- package/dist/crate-builder/primitives/Date.d.ts +11 -0
- package/dist/crate-builder/primitives/Date.stories.d.ts +5 -0
- package/dist/crate-builder/primitives/DateTime.d.ts +11 -0
- package/dist/crate-builder/primitives/DateTime.stories.d.ts +5 -0
- package/dist/crate-builder/primitives/Geo.d.ts +12 -0
- package/dist/crate-builder/primitives/Geo.stories.d.ts +26 -0
- package/dist/crate-builder/primitives/Map.SelectArea.d.ts +9 -0
- package/dist/crate-builder/primitives/Map.d.ts +15 -0
- package/dist/crate-builder/primitives/Map.stories.d.ts +6 -0
- package/dist/crate-builder/primitives/Number.d.ts +16 -0
- package/dist/crate-builder/primitives/Number.stories.d.ts +10 -0
- package/dist/crate-builder/primitives/Select.d.ts +15 -0
- package/dist/crate-builder/primitives/Select.stories.d.ts +9 -0
- package/dist/crate-builder/primitives/SelectObject.d.ts +13 -0
- package/dist/crate-builder/primitives/SelectObject.stories.d.ts +5 -0
- package/dist/crate-builder/primitives/SelectUrl.d.ts +14 -0
- package/dist/crate-builder/primitives/SelectUrl.stories.d.ts +7 -0
- package/dist/crate-builder/primitives/Text.d.ts +19 -0
- package/dist/crate-builder/primitives/Text.stories.d.ts +13 -0
- package/dist/crate-builder/primitives/Time.d.ts +11 -0
- package/dist/crate-builder/primitives/Time.stories.d.ts +7 -0
- package/dist/crate-builder/primitives/Url.d.ts +11 -0
- package/dist/crate-builder/primitives/Url.stories.d.ts +7 -0
- package/dist/crate-builder/primitives/Value.d.ts +7 -0
- package/dist/crate-builder/primitives/Value.stories.d.ts +7 -0
- package/dist/crate-builder/primitives/date-libs.d.ts +1 -0
- package/dist/crate-builder/property-definitions.d.ts +78 -0
- package/dist/crate-builder/store.d.ts +8 -0
- package/dist/favicon.ico +0 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.html +43 -0
- package/dist/logo192.png +0 -0
- package/dist/logo512.png +0 -0
- package/dist/manifest.json +25 -0
- package/dist/marker-icon.png +0 -0
- package/dist/marker-shadow.png +0 -0
- package/dist/recrate.es.js +158699 -0
- package/dist/recrate.umd.js +158717 -0
- package/dist/robots.txt +3 -0
- package/dist/style.css +1721 -0
- package/dist/types.d.ts +42 -0
- package/docker-compose.yml +30 -0
- package/docs/.nojekyll +1 -0
- package/docs/assets/highlight.css +99 -0
- package/docs/assets/icons.js +18 -0
- package/docs/assets/icons.svg +1 -0
- package/docs/assets/main.js +60 -0
- package/docs/assets/navigation.js +1 -0
- package/docs/assets/search.js +1 -0
- package/docs/assets/style.css +1448 -0
- package/docs/classes/src_crate_builder_CrateManager_crate_manager.CrateManager.html +240 -0
- package/docs/classes/src_crate_builder_CrateManager_profile_manager.ProfileManager.html +42 -0
- package/docs/classes/src_crate_builder_editor_state.EditorState.html +28 -0
- package/docs/classes/src_crate_builder_types.CrateManagerType.html +57 -0
- package/docs/classes/src_crate_builder_types.ProfileManagerType.html +13 -0
- package/docs/functions/src_crate_builder_CrateManager_lib.isURL.html +2 -0
- package/docs/functions/src_crate_builder_CrateManager_lib.mintNewCrate.html +3 -0
- package/docs/functions/src_crate_builder_CrateManager_lib.normalise.html +5 -0
- package/docs/functions/src_crate_builder_CrateManager_lib.normaliseEntityType.html +1 -0
- package/docs/index.html +58 -0
- package/docs/interfaces/src_crate_builder_types.NormalisedCrate.html +3 -0
- package/docs/interfaces/src_crate_builder_types.NormalisedEntityDefinition.html +4 -0
- package/docs/interfaces/src_crate_builder_types.NormalisedProfile.html +9 -0
- package/docs/interfaces/src_crate_builder_types.ProfileLayout.html +2 -0
- package/docs/interfaces/src_crate_builder_types.ProfileLayoutGroup.html +9 -0
- package/docs/interfaces/src_crate_builder_types.UnverifiedCrate.html +3 -0
- package/docs/interfaces/src_crate_builder_types.UnverifiedEntityDefinition.html +4 -0
- package/docs/modules/src_crate_builder_CrateManager_crate_manager.html +2 -0
- package/docs/modules/src_crate_builder_CrateManager_lib.html +6 -0
- package/docs/modules/src_crate_builder_CrateManager_profile_manager.html +2 -0
- package/docs/modules/src_crate_builder_editor_state.html +2 -0
- package/docs/modules/src_crate_builder_types.html +16 -0
- package/docs/types/src_crate_builder_types.EntityReference.html +1 -0
- package/docs/types/src_crate_builder_types.NormalisedContext.html +1 -0
- package/docs/types/src_crate_builder_types.PrimitiveType.html +1 -0
- package/docs/types/src_crate_builder_types.ProfileAssociation.html +1 -0
- package/docs/types/src_crate_builder_types.ProfileInput.html +1 -0
- package/docs/types/src_crate_builder_types.UnverifiedContext.html +1 -0
- package/docs/variables/src_crate_builder_CrateManager_lib.urlProtocols.html +1 -0
- package/index.html +13 -0
- package/load-data-packs.cjs +38 -0
- package/package.json +135 -0
- package/postcss.config.cjs +6 -0
- package/public/favicon.ico +0 -0
- package/public/index.html +43 -0
- package/public/logo192.png +0 -0
- package/public/logo512.png +0 -0
- package/public/manifest.json +25 -0
- package/public/marker-icon.png +0 -0
- package/public/marker-shadow.png +0 -0
- package/public/robots.txt +3 -0
- package/react-app-env.d.ts +1 -0
- package/rollup.config.js +26 -0
- package/src/app/App.tsx +13 -0
- package/src/app/EmbeddedComponent.tsx +432 -0
- package/src/app/index.html +20 -0
- package/src/app/index.tsx +19 -0
- package/src/app/lookup.ts +141 -0
- package/src/app/override-styles.css +96 -0
- package/src/crate-builder/CrateManager/contexts/1.1-context.jsonld +2660 -0
- package/src/crate-builder/CrateManager/contexts/1.2-DRAFT-context.jsonld +2918 -0
- package/src/crate-builder/CrateManager/contexts.ts +42 -0
- package/src/crate-builder/CrateManager/crate-manager-benchmarking.spec.ts +31 -0
- package/src/crate-builder/CrateManager/crate-manager-loading-exporting.spec.ts +431 -0
- package/src/crate-builder/CrateManager/crate-manager-operations.spec.ts +298 -0
- package/src/crate-builder/CrateManager/crate-manager.spec.ts +2336 -0
- package/src/crate-builder/CrateManager/crate-manager.ts +2111 -0
- package/src/crate-builder/CrateManager/lib.spec.ts +133 -0
- package/src/crate-builder/CrateManager/lib.ts +170 -0
- package/src/crate-builder/CrateManager/profile-manager.spec.ts +593 -0
- package/src/crate-builder/CrateManager/profile-manager.ts +367 -0
- package/src/crate-builder/CrateManager/schema-type-definitions.json +35122 -0
- package/src/crate-builder/CrateManager/validate-identifier.spec.ts +82 -0
- package/src/crate-builder/CrateManager/validate-identifier.ts +65 -0
- package/src/crate-builder/RenderEntity/Add.tsx +249 -0
- package/src/crate-builder/RenderEntity/AddControl.stories.tsx +126 -0
- package/src/crate-builder/RenderEntity/AddControl.tsx +84 -0
- package/src/crate-builder/RenderEntity/AutoComplete.tsx +215 -0
- package/src/crate-builder/RenderEntity/BulkAdd.tsx +136 -0
- package/src/crate-builder/RenderEntity/DeleteProperty.tsx +33 -0
- package/src/crate-builder/RenderEntity/DialogAddProperty.tsx +83 -0
- package/src/crate-builder/RenderEntity/DialogBrowseEntities.tsx +136 -0
- package/src/crate-builder/RenderEntity/DialogEditContext.tsx +107 -0
- package/src/crate-builder/RenderEntity/DialogPreviewCrate.tsx +54 -0
- package/src/crate-builder/RenderEntity/DialogSaveCrateAsTemplate.tsx +65 -0
- package/src/crate-builder/RenderEntity/DialogSaveEntityTemplate.tsx +87 -0
- package/src/crate-builder/RenderEntity/DisplayPropertyName.stories.tsx +30 -0
- package/src/crate-builder/RenderEntity/DisplayPropertyName.tsx +21 -0
- package/src/crate-builder/RenderEntity/EntityId.tsx +75 -0
- package/src/crate-builder/RenderEntity/EntityName.tsx +49 -0
- package/src/crate-builder/RenderEntity/EntityProperty.tsx +188 -0
- package/src/crate-builder/RenderEntity/EntityPropertyInstance.tsx +255 -0
- package/src/crate-builder/RenderEntity/EntityType.tsx +95 -0
- package/src/crate-builder/RenderEntity/ItemLink.tsx +37 -0
- package/src/crate-builder/RenderEntity/PaginateLinkedEntities.stories.tsx +43 -0
- package/src/crate-builder/RenderEntity/PaginateLinkedEntities.tsx +141 -0
- package/src/crate-builder/RenderEntity/PropertyHelp.tsx +39 -0
- package/src/crate-builder/RenderEntity/RenderControls.tsx +278 -0
- package/src/crate-builder/RenderEntity/RenderLinkedItem.tsx +139 -0
- package/src/crate-builder/RenderEntity/RenderPropertyHelp.tsx +41 -0
- package/src/crate-builder/RenderEntity/RenderReverseConnections.tsx +150 -0
- package/src/crate-builder/RenderEntity/RenderTypes.tsx +102 -0
- package/src/crate-builder/RenderEntity/Shell2.tsx +576 -0
- package/src/crate-builder/RenderEntity/UnlinkEntity.tsx +30 -0
- package/src/crate-builder/RenderEntity/auto-complete.lib.ts +184 -0
- package/src/crate-builder/RenderEntity/keys.ts +4 -0
- package/src/crate-builder/RenderEntity/layout.spec.js +593 -0
- package/src/crate-builder/RenderEntity/layout.ts +220 -0
- package/src/crate-builder/Shell.tsx +323 -0
- package/src/crate-builder/component.css +65 -0
- package/src/crate-builder/editor-state.ts +114 -0
- package/src/crate-builder/helpers.ts +16 -0
- package/src/crate-builder/i18n.ts +22 -0
- package/src/crate-builder/lib/validate-iri.js +69 -0
- package/src/crate-builder/lib/validate-iri.ts +57 -0
- package/src/crate-builder/locales/en.js +149 -0
- package/src/crate-builder/locales/hu.js +147 -0
- package/src/crate-builder/primitives/Boolean.stories.tsx +33 -0
- package/src/crate-builder/primitives/Boolean.tsx +67 -0
- package/src/crate-builder/primitives/Date.stories.tsx +32 -0
- package/src/crate-builder/primitives/Date.tsx +58 -0
- package/src/crate-builder/primitives/DateTime.stories.tsx +32 -0
- package/src/crate-builder/primitives/DateTime.tsx +64 -0
- package/src/crate-builder/primitives/Geo.stories.tsx +57 -0
- package/src/crate-builder/primitives/Geo.tsx +225 -0
- package/src/crate-builder/primitives/Map.SelectArea.js +359 -0
- package/src/crate-builder/primitives/Map.stories.tsx +61 -0
- package/src/crate-builder/primitives/Map.tsx +124 -0
- package/src/crate-builder/primitives/Number.stories.tsx +74 -0
- package/src/crate-builder/primitives/Number.tsx +166 -0
- package/src/crate-builder/primitives/Select.stories.tsx +66 -0
- package/src/crate-builder/primitives/Select.tsx +122 -0
- package/src/crate-builder/primitives/SelectObject.stories.tsx +29 -0
- package/src/crate-builder/primitives/SelectObject.tsx +105 -0
- package/src/crate-builder/primitives/SelectUrl.stories.tsx +42 -0
- package/src/crate-builder/primitives/SelectUrl.tsx +110 -0
- package/src/crate-builder/primitives/Text.stories.tsx +106 -0
- package/src/crate-builder/primitives/Text.tsx +197 -0
- package/src/crate-builder/primitives/Time.stories.tsx +38 -0
- package/src/crate-builder/primitives/Time.tsx +71 -0
- package/src/crate-builder/primitives/Url.stories.tsx +43 -0
- package/src/crate-builder/primitives/Url.tsx +75 -0
- package/src/crate-builder/primitives/Value.stories.tsx +37 -0
- package/src/crate-builder/primitives/Value.tsx +30 -0
- package/src/crate-builder/primitives/date-libs.ts +12 -0
- package/src/crate-builder/profile-schema.json +145 -0
- package/src/crate-builder/property-definitions.ts +78 -0
- package/src/crate-builder/store.ts +14 -0
- package/src/crate-builder/tailwind.css +7 -0
- package/src/crate-builder/types.d.ts +318 -0
- package/src/examples/collection/collections-entity-example.json +131 -0
- package/src/examples/collection/crate-builder-entity-example.json +33 -0
- package/src/examples/item/complex-collection/ro-crate-metadata.json +174 -0
- package/src/examples/item/complex-item/ro-crate-metadata.json +769 -0
- package/src/examples/item/crate-with-language.json +38 -0
- package/src/examples/item/empty/ro-crate-metadata.json +20 -0
- package/src/examples/item/item-with-relationship-and-action/ro-crate-metadata.json +66 -0
- package/src/examples/item/large-crate/ro-crate-metadata.json +5762 -0
- package/src/examples/item/multiple-types/ro-crate-metadata.json +20 -0
- package/src/examples/item/ridiculously-big-collection/ro-crate-metadata.json +162977 -0
- package/src/examples/profile/aroma.complex.profile.json +11098 -0
- package/src/examples/profile/aroma.profile.json +9158 -0
- package/src/examples/profile/nyingarn-item-profile.json +426 -0
- package/src/examples/profile/profile-to-test-inverse-associations.json +73 -0
- package/src/examples/profile/profile-to-test-multiple-types.json +31 -0
- package/src/examples/profile/profile-with-all-primitives-and-groups.json +207 -0
- package/src/examples/profile/profile-with-all-primitives.json +244 -0
- package/src/examples/profile/profile-with-constraints.json +446 -0
- package/src/examples/profile/profile-with-resolve.json +57 -0
- package/src/examples/profile/vocabulary-creation-profile.json +231 -0
- package/src/images.d.ts +5 -0
- package/src/index.ts +10 -0
- package/src/types.ts +104 -0
- package/tailwind.config.js +20 -0
- package/tsconfig.app.json +31 -0
- package/tsconfig.json +26 -0
- package/typedoc.json +11 -0
- package/update-deps.sh +4 -0
- package/vite-env.d.ts +1 -0
- 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`.
|
|
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 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
File without changes
|