@contentful/field-editor-reference 5.9.0 → 5.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/__fixtures__/FakeSdk.js +183 -0
- package/dist/cjs/__fixtures__/asset/index.js +37 -0
- package/dist/cjs/__fixtures__/content-type/index.js +16 -0
- package/dist/cjs/__fixtures__/entry/index.js +33 -0
- package/dist/cjs/__fixtures__/fixtures.js +71 -0
- package/dist/cjs/__fixtures__/locale/index.js +40 -0
- package/dist/cjs/__fixtures__/space/index.js +16 -0
- package/dist/cjs/assets/MultipleMediaEditor.js +86 -0
- package/dist/cjs/assets/SingleMediaEditor.js +69 -0
- package/dist/cjs/assets/WrappedAssetCard/AssetCardActions.js +125 -0
- package/dist/cjs/assets/WrappedAssetCard/FetchingWrappedAssetCard.js +171 -0
- package/dist/cjs/assets/WrappedAssetCard/WrappedAssetCard.js +159 -0
- package/dist/cjs/assets/WrappedAssetCard/WrappedAssetLink.js +130 -0
- package/dist/cjs/assets/index.js +24 -0
- package/dist/cjs/common/EntityStore.js +420 -0
- package/dist/cjs/common/MultipleReferenceEditor.js +164 -0
- package/dist/cjs/common/ReferenceEditor.js +74 -0
- package/dist/cjs/common/SingleReferenceEditor.js +118 -0
- package/dist/cjs/common/SortableLinkList.js +95 -0
- package/dist/cjs/common/customCardTypes.js +44 -0
- package/dist/cjs/common/useAccessApi.js +19 -0
- package/dist/cjs/common/useContentTypePermissions.js +54 -0
- package/dist/cjs/common/useEditorPermissions.js +77 -0
- package/dist/cjs/common/useEditorPermissions.spec.js +205 -0
- package/dist/cjs/components/AssetThumbnail/AssetThumbnail.js +62 -0
- package/dist/cjs/components/CreateEntryLinkButton/CreateEntryLinkButton.js +102 -0
- package/dist/cjs/components/CreateEntryLinkButton/CreateEntryLinkButton.spec.js +254 -0
- package/dist/cjs/components/CreateEntryLinkButton/CreateEntryMenuTrigger.js +199 -0
- package/dist/cjs/components/CreateEntryLinkButton/CreateEntryMenuTrigger.spec.js +190 -0
- package/dist/cjs/components/CreateEntryLinkButton/useGlobalMouseUp.js +19 -0
- package/dist/cjs/components/LinkActions/CombinedLinkActions.js +167 -0
- package/dist/cjs/components/LinkActions/LinkActions.js +123 -0
- package/dist/cjs/components/LinkActions/LinkEntityActions.js +186 -0
- package/dist/cjs/components/LinkActions/NoLinkPermissionsInfo.js +54 -0
- package/dist/cjs/components/LinkActions/helpers.js +78 -0
- package/dist/cjs/components/LinkActions/redesignStyles.js +44 -0
- package/dist/cjs/components/LinkActions/styles.js +33 -0
- package/dist/cjs/components/MissingEntityCard/MissingEntityCard.js +75 -0
- package/dist/cjs/components/MissingEntityCard/styles.js +29 -0
- package/dist/cjs/components/ScheduledIconWithTooltip/ScheduleTooltip.js +75 -0
- package/dist/cjs/components/ScheduledIconWithTooltip/ScheduledIconWithTooltip.js +81 -0
- package/dist/cjs/components/ScheduledIconWithTooltip/formatDateAndTime.js +45 -0
- package/dist/cjs/components/SpaceName/SpaceName.js +91 -0
- package/dist/cjs/components/index.js +44 -0
- package/dist/cjs/entries/MultipleEntryReferenceEditor.js +86 -0
- package/dist/cjs/entries/SingleEntryReferenceEditor.js +74 -0
- package/dist/cjs/entries/WrappedEntryCard/FetchingWrappedEntryCard.js +189 -0
- package/dist/cjs/entries/WrappedEntryCard/WrappedEntryCard.js +181 -0
- package/dist/cjs/entries/index.js +24 -0
- package/dist/cjs/index.js +92 -0
- package/dist/cjs/resources/Cards/ContentfulEntryCard.js +87 -0
- package/dist/cjs/resources/Cards/ResourceCard.js +111 -0
- package/dist/cjs/resources/Cards/UnsupportedEntityCard.js +64 -0
- package/dist/cjs/resources/MultipleResourceReferenceEditor.js +157 -0
- package/dist/cjs/resources/MultipleResourceReferenceEditor.spec.js +297 -0
- package/dist/cjs/resources/SingleResourceReferenceEditor.js +87 -0
- package/dist/cjs/resources/SingleResourceReferenceEditor.spec.js +161 -0
- package/dist/cjs/resources/index.js +19 -0
- package/dist/cjs/resources/testHelpers/resourceEditorHelpers.js +121 -0
- package/dist/cjs/resources/useResourceLinkActions.js +88 -0
- package/dist/cjs/types.js +22 -0
- package/dist/cjs/utils/fromFieldValidations.js +54 -0
- package/dist/esm/__fixtures__/FakeSdk.js +173 -0
- package/dist/esm/__fixtures__/asset/index.js +6 -0
- package/dist/esm/__fixtures__/content-type/index.js +2 -0
- package/dist/esm/__fixtures__/entry/index.js +5 -0
- package/dist/esm/__fixtures__/fixtures.js +6 -0
- package/dist/esm/__fixtures__/locale/index.js +15 -0
- package/dist/esm/__fixtures__/space/index.js +2 -0
- package/dist/esm/assets/MultipleMediaEditor.js +37 -0
- package/dist/esm/assets/SingleMediaEditor.js +20 -0
- package/dist/esm/assets/WrappedAssetCard/AssetCardActions.js +63 -0
- package/dist/esm/assets/WrappedAssetCard/FetchingWrappedAssetCard.js +122 -0
- package/dist/esm/assets/WrappedAssetCard/WrappedAssetCard.js +105 -0
- package/dist/esm/assets/WrappedAssetCard/WrappedAssetLink.js +76 -0
- package/dist/esm/assets/index.js +3 -0
- package/dist/esm/common/EntityStore.js +347 -0
- package/dist/esm/common/MultipleReferenceEditor.js +111 -0
- package/dist/esm/common/ReferenceEditor.js +20 -0
- package/dist/esm/common/SingleReferenceEditor.js +70 -0
- package/dist/esm/common/SortableLinkList.js +41 -0
- package/dist/esm/common/customCardTypes.js +1 -0
- package/dist/esm/common/useAccessApi.js +9 -0
- package/dist/esm/common/useContentTypePermissions.js +44 -0
- package/dist/esm/common/useEditorPermissions.js +67 -0
- package/dist/esm/common/useEditorPermissions.spec.js +201 -0
- package/dist/esm/components/AssetThumbnail/AssetThumbnail.js +13 -0
- package/dist/esm/components/CreateEntryLinkButton/CreateEntryLinkButton.js +48 -0
- package/dist/esm/components/CreateEntryLinkButton/CreateEntryLinkButton.spec.js +206 -0
- package/dist/esm/components/CreateEntryLinkButton/CreateEntryMenuTrigger.js +145 -0
- package/dist/esm/components/CreateEntryLinkButton/CreateEntryMenuTrigger.spec.js +142 -0
- package/dist/esm/components/CreateEntryLinkButton/useGlobalMouseUp.js +9 -0
- package/dist/esm/components/LinkActions/CombinedLinkActions.js +118 -0
- package/dist/esm/components/LinkActions/LinkActions.js +66 -0
- package/dist/esm/components/LinkActions/LinkEntityActions.js +127 -0
- package/dist/esm/components/LinkActions/NoLinkPermissionsInfo.js +5 -0
- package/dist/esm/components/LinkActions/helpers.js +57 -0
- package/dist/esm/components/LinkActions/redesignStyles.js +18 -0
- package/dist/esm/components/LinkActions/styles.js +10 -0
- package/dist/esm/components/MissingEntityCard/MissingEntityCard.js +26 -0
- package/dist/esm/components/MissingEntityCard/styles.js +11 -0
- package/dist/esm/components/ScheduledIconWithTooltip/ScheduleTooltip.js +18 -0
- package/dist/esm/components/ScheduledIconWithTooltip/ScheduledIconWithTooltip.js +32 -0
- package/dist/esm/components/ScheduledIconWithTooltip/formatDateAndTime.js +19 -0
- package/dist/esm/components/SpaceName/SpaceName.js +37 -0
- package/dist/esm/components/index.js +8 -0
- package/dist/esm/entries/MultipleEntryReferenceEditor.js +37 -0
- package/dist/esm/entries/SingleEntryReferenceEditor.js +25 -0
- package/dist/esm/entries/WrappedEntryCard/FetchingWrappedEntryCard.js +135 -0
- package/dist/esm/entries/WrappedEntryCard/WrappedEntryCard.js +127 -0
- package/dist/esm/entries/index.js +3 -0
- package/dist/esm/index.js +7 -0
- package/dist/esm/resources/Cards/ContentfulEntryCard.js +38 -0
- package/dist/esm/resources/Cards/ResourceCard.js +62 -0
- package/dist/esm/resources/Cards/UnsupportedEntityCard.js +15 -0
- package/dist/esm/resources/MultipleResourceReferenceEditor.js +104 -0
- package/dist/esm/resources/MultipleResourceReferenceEditor.spec.js +254 -0
- package/dist/esm/resources/SingleResourceReferenceEditor.js +33 -0
- package/dist/esm/resources/SingleResourceReferenceEditor.spec.js +118 -0
- package/dist/esm/resources/index.js +2 -0
- package/dist/esm/resources/testHelpers/resourceEditorHelpers.js +103 -0
- package/dist/esm/resources/useResourceLinkActions.js +78 -0
- package/dist/esm/types.js +1 -0
- package/dist/esm/utils/fromFieldValidations.js +39 -0
- package/dist/{__fixtures__ → types/__fixtures__}/FakeSdk.d.ts +8 -8
- package/dist/{__fixtures__ → types/__fixtures__}/asset/index.d.ts +6 -6
- package/dist/{__fixtures__ → types/__fixtures__}/content-type/index.d.ts +2 -2
- package/dist/{__fixtures__ → types/__fixtures__}/entry/index.d.ts +5 -5
- package/dist/{__fixtures__ → types/__fixtures__}/fixtures.d.ts +6 -6
- package/dist/{__fixtures__ → types/__fixtures__}/locale/index.d.ts +42 -42
- package/dist/{__fixtures__ → types/__fixtures__}/space/index.d.ts +2 -2
- package/dist/{assets → types/assets}/MultipleMediaEditor.d.ts +10 -10
- package/dist/types/assets/SingleMediaEditor.d.ts +10 -0
- package/dist/{assets → types/assets}/WrappedAssetCard/AssetCardActions.d.ts +11 -11
- package/dist/{assets → types/assets}/WrappedAssetCard/FetchingWrappedAssetCard.d.ts +17 -17
- package/dist/{assets → types/assets}/WrappedAssetCard/WrappedAssetCard.d.ts +24 -24
- package/dist/{assets → types/assets}/WrappedAssetCard/WrappedAssetLink.d.ts +16 -16
- package/dist/{assets → types/assets}/index.d.ts +3 -3
- package/dist/{common → types/common}/EntityStore.d.ts +62 -62
- package/dist/{common → types/common}/MultipleReferenceEditor.d.ts +25 -25
- package/dist/{common → types/common}/ReferenceEditor.d.ts +46 -46
- package/dist/{common → types/common}/SingleReferenceEditor.d.ts +24 -24
- package/dist/{common → types/common}/SortableLinkList.d.ts +19 -19
- package/dist/{common → types/common}/customCardTypes.d.ts +29 -29
- package/dist/types/common/useAccessApi.d.ts +16 -0
- package/dist/{common → types/common}/useContentTypePermissions.d.ts +17 -17
- package/dist/{common → types/common}/useEditorPermissions.d.ts +17 -17
- package/dist/types/common/useEditorPermissions.spec.d.ts +1 -0
- package/dist/{components → types/components}/AssetThumbnail/AssetThumbnail.d.ts +7 -7
- package/dist/{components → types/components}/CreateEntryLinkButton/CreateEntryLinkButton.d.ts +19 -19
- package/dist/types/components/CreateEntryLinkButton/CreateEntryLinkButton.spec.d.ts +1 -0
- package/dist/{components → types/components}/CreateEntryLinkButton/CreateEntryMenuTrigger.d.ts +31 -31
- package/dist/types/components/CreateEntryLinkButton/CreateEntryMenuTrigger.spec.d.ts +1 -0
- package/dist/{components → types/components}/CreateEntryLinkButton/useGlobalMouseUp.d.ts +1 -1
- package/dist/{components → types/components}/LinkActions/CombinedLinkActions.d.ts +10 -10
- package/dist/{components → types/components}/LinkActions/LinkActions.d.ts +26 -26
- package/dist/{components → types/components}/LinkActions/LinkEntityActions.d.ts +24 -24
- package/dist/types/components/LinkActions/NoLinkPermissionsInfo.d.ts +2 -0
- package/dist/{components → types/components}/LinkActions/helpers.d.ts +26 -26
- package/dist/{components → types/components}/LinkActions/redesignStyles.d.ts +3 -3
- package/dist/{components → types/components}/LinkActions/styles.d.ts +2 -2
- package/dist/{components → types/components}/MissingEntityCard/MissingEntityCard.d.ts +8 -8
- package/dist/{components → types/components}/MissingEntityCard/styles.d.ts +2 -2
- package/dist/{components → types/components}/ScheduledIconWithTooltip/ScheduleTooltip.d.ts +11 -11
- package/dist/{components → types/components}/ScheduledIconWithTooltip/ScheduledIconWithTooltip.d.ts +10 -10
- package/dist/{components → types/components}/ScheduledIconWithTooltip/formatDateAndTime.d.ts +15 -15
- package/dist/types/components/SpaceName/SpaceName.d.ts +6 -0
- package/dist/{components → types/components}/index.d.ts +9 -9
- package/dist/{entries → types/entries}/MultipleEntryReferenceEditor.d.ts +3 -3
- package/dist/{entries → types/entries}/SingleEntryReferenceEditor.d.ts +8 -8
- package/dist/{entries → types/entries}/WrappedEntryCard/FetchingWrappedEntryCard.d.ts +18 -18
- package/dist/{entries → types/entries}/WrappedEntryCard/WrappedEntryCard.d.ts +35 -35
- package/dist/{entries → types/entries}/index.d.ts +3 -3
- package/dist/{index.d.ts → types/index.d.ts} +9 -8
- package/dist/{resources → types/resources}/Cards/ContentfulEntryCard.d.ts +21 -21
- package/dist/{resources → types/resources}/Cards/ResourceCard.d.ts +12 -12
- package/dist/{resources → types/resources}/Cards/UnsupportedEntityCard.d.ts +4 -4
- package/dist/{resources → types/resources}/MultipleResourceReferenceEditor.d.ts +7 -7
- package/dist/types/resources/MultipleResourceReferenceEditor.spec.d.ts +1 -0
- package/dist/{resources → types/resources}/SingleResourceReferenceEditor.d.ts +7 -7
- package/dist/types/resources/SingleResourceReferenceEditor.spec.d.ts +1 -0
- package/dist/{resources → types/resources}/index.d.ts +2 -2
- package/dist/{resources → types/resources}/testHelpers/resourceEditorHelpers.d.ts +50 -50
- package/dist/{resources → types/resources}/useResourceLinkActions.d.ts +7 -7
- package/dist/{types.d.ts → types/types.d.ts} +104 -104
- package/dist/{utils → types/utils}/fromFieldValidations.d.ts +21 -21
- package/package.json +25 -11
- package/CHANGELOG.md +0 -860
- package/dist/assets/SingleMediaEditor.d.ts +0 -10
- package/dist/common/useAccessApi.d.ts +0 -16
- package/dist/components/LinkActions/NoLinkPermissionsInfo.d.ts +0 -2
- package/dist/components/SpaceName/SpaceName.d.ts +0 -6
- package/dist/field-editor-reference.cjs.development.js +0 -2753
- package/dist/field-editor-reference.cjs.development.js.map +0 -1
- package/dist/field-editor-reference.cjs.production.min.js +0 -2
- package/dist/field-editor-reference.cjs.production.min.js.map +0 -1
- package/dist/field-editor-reference.esm.js +0 -2727
- package/dist/field-editor-reference.esm.js.map +0 -1
- package/dist/index.js +0 -8
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "SingleReferenceEditor", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return SingleReferenceEditor;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _react = _interop_require_wildcard(require("react"));
|
|
12
|
+
const _components = require("../components");
|
|
13
|
+
const _LinkEntityActions = require("../components/LinkActions/LinkEntityActions");
|
|
14
|
+
const _ReferenceEditor = require("./ReferenceEditor");
|
|
15
|
+
const _useEditorPermissions = require("./useEditorPermissions");
|
|
16
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
17
|
+
if (typeof WeakMap !== "function") return null;
|
|
18
|
+
var cacheBabelInterop = new WeakMap();
|
|
19
|
+
var cacheNodeInterop = new WeakMap();
|
|
20
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
21
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
22
|
+
})(nodeInterop);
|
|
23
|
+
}
|
|
24
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
25
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
26
|
+
return obj;
|
|
27
|
+
}
|
|
28
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
29
|
+
return {
|
|
30
|
+
default: obj
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
34
|
+
if (cache && cache.has(obj)) {
|
|
35
|
+
return cache.get(obj);
|
|
36
|
+
}
|
|
37
|
+
var newObj = {};
|
|
38
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
39
|
+
for(var key in obj){
|
|
40
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
41
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
42
|
+
if (desc && (desc.get || desc.set)) {
|
|
43
|
+
Object.defineProperty(newObj, key, desc);
|
|
44
|
+
} else {
|
|
45
|
+
newObj[key] = obj[key];
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
newObj.default = obj;
|
|
50
|
+
if (cache) {
|
|
51
|
+
cache.set(obj, newObj);
|
|
52
|
+
}
|
|
53
|
+
return newObj;
|
|
54
|
+
}
|
|
55
|
+
function Editor(props) {
|
|
56
|
+
const { setValue , entityType } = props;
|
|
57
|
+
const editorPermissions = (0, _useEditorPermissions.useEditorPermissions)(props);
|
|
58
|
+
const onCreate = (0, _react.useCallback)((id)=>void setValue({
|
|
59
|
+
sys: {
|
|
60
|
+
type: 'Link',
|
|
61
|
+
linkType: entityType,
|
|
62
|
+
id
|
|
63
|
+
}
|
|
64
|
+
}), [
|
|
65
|
+
setValue,
|
|
66
|
+
entityType
|
|
67
|
+
]);
|
|
68
|
+
const onLink = (0, _react.useCallback)((ids)=>{
|
|
69
|
+
const [id] = ids;
|
|
70
|
+
setValue({
|
|
71
|
+
sys: {
|
|
72
|
+
type: 'Link',
|
|
73
|
+
linkType: entityType,
|
|
74
|
+
id
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
}, [
|
|
78
|
+
setValue,
|
|
79
|
+
entityType
|
|
80
|
+
]);
|
|
81
|
+
const linkActionsProps = (0, _LinkEntityActions.useLinkActionsProps)({
|
|
82
|
+
...props,
|
|
83
|
+
canLinkMultiple: false,
|
|
84
|
+
editorPermissions,
|
|
85
|
+
onCreate,
|
|
86
|
+
onLink
|
|
87
|
+
});
|
|
88
|
+
const customCardRenderer = (0, _react.useCallback)((cardProps, _, renderDefaultCard)=>props.renderCustomCard ? props.renderCustomCard(cardProps, linkActionsProps, renderDefaultCard) : false, [
|
|
89
|
+
linkActionsProps
|
|
90
|
+
]);
|
|
91
|
+
if (!props.entityId) {
|
|
92
|
+
return _react.createElement(_components.LinkEntityActions, {
|
|
93
|
+
renderCustomActions: props.renderCustomActions,
|
|
94
|
+
...linkActionsProps
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
return props.children({
|
|
98
|
+
...props,
|
|
99
|
+
renderCustomCard: props.renderCustomCard && customCardRenderer
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
function SingleReferenceEditor(props) {
|
|
103
|
+
const allContentTypes = props.sdk.space.getCachedContentTypes();
|
|
104
|
+
return _react.createElement(_ReferenceEditor.ReferenceEditor, props, ({ value , setValue , disabled , externalReset })=>{
|
|
105
|
+
return _react.createElement(Editor, {
|
|
106
|
+
...props,
|
|
107
|
+
key: `${externalReset}-reference`,
|
|
108
|
+
entityId: value ? value.sys.id : '',
|
|
109
|
+
isDisabled: disabled,
|
|
110
|
+
setValue: setValue,
|
|
111
|
+
allContentTypes: allContentTypes
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
SingleReferenceEditor.defaultProps = {
|
|
116
|
+
hasCardEditActions: true,
|
|
117
|
+
hasCardRemoveActions: true
|
|
118
|
+
};
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "SortableLinkList", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return SortableLinkList;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _react = _interop_require_wildcard(require("react"));
|
|
12
|
+
const _reactsortablehoc = require("react-sortable-hoc");
|
|
13
|
+
const _f36tokens = _interop_require_default(require("@contentful/f36-tokens"));
|
|
14
|
+
const _emotion = require("emotion");
|
|
15
|
+
function _interop_require_default(obj) {
|
|
16
|
+
return obj && obj.__esModule ? obj : {
|
|
17
|
+
default: obj
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
21
|
+
if (typeof WeakMap !== "function") return null;
|
|
22
|
+
var cacheBabelInterop = new WeakMap();
|
|
23
|
+
var cacheNodeInterop = new WeakMap();
|
|
24
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
25
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
26
|
+
})(nodeInterop);
|
|
27
|
+
}
|
|
28
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
29
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
30
|
+
return obj;
|
|
31
|
+
}
|
|
32
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
33
|
+
return {
|
|
34
|
+
default: obj
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
38
|
+
if (cache && cache.has(obj)) {
|
|
39
|
+
return cache.get(obj);
|
|
40
|
+
}
|
|
41
|
+
var newObj = {};
|
|
42
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
43
|
+
for(var key in obj){
|
|
44
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
45
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
46
|
+
if (desc && (desc.get || desc.set)) {
|
|
47
|
+
Object.defineProperty(newObj, key, desc);
|
|
48
|
+
} else {
|
|
49
|
+
newObj[key] = obj[key];
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
newObj.default = obj;
|
|
54
|
+
if (cache) {
|
|
55
|
+
cache.set(obj, newObj);
|
|
56
|
+
}
|
|
57
|
+
return newObj;
|
|
58
|
+
}
|
|
59
|
+
const styles = {
|
|
60
|
+
container: (0, _emotion.css)({
|
|
61
|
+
position: 'relative'
|
|
62
|
+
}),
|
|
63
|
+
item: (0, _emotion.css)({
|
|
64
|
+
marginBottom: _f36tokens.default.spacingM,
|
|
65
|
+
zIndex: _f36tokens.default.zIndexModal
|
|
66
|
+
})
|
|
67
|
+
};
|
|
68
|
+
const DragHandle = (props)=>{
|
|
69
|
+
const SortableDragHandle = (0, _reactsortablehoc.SortableHandle)(()=>props.drag);
|
|
70
|
+
return _react.createElement(SortableDragHandle, null);
|
|
71
|
+
};
|
|
72
|
+
const SortableLink = (0, _reactsortablehoc.SortableElement)((props)=>_react.createElement("div", {
|
|
73
|
+
className: styles.item
|
|
74
|
+
}, props.children));
|
|
75
|
+
const SortableLinkListInternal = (0, _reactsortablehoc.SortableContainer)((props)=>{
|
|
76
|
+
return _react.createElement("div", {
|
|
77
|
+
className: (0, _emotion.cx)(styles.container, props.className)
|
|
78
|
+
}, props.items.map((item, index)=>_react.createElement(SortableLink, {
|
|
79
|
+
disabled: props.isDisabled,
|
|
80
|
+
key: `${item.sys.urn ?? item.sys.id}-${index}`,
|
|
81
|
+
index: index
|
|
82
|
+
}, props.children({
|
|
83
|
+
items: props.items,
|
|
84
|
+
isDisabled: props.isDisabled,
|
|
85
|
+
item,
|
|
86
|
+
index,
|
|
87
|
+
DragHandle: props.isDisabled ? undefined : DragHandle
|
|
88
|
+
}))));
|
|
89
|
+
});
|
|
90
|
+
function SortableLinkList(props) {
|
|
91
|
+
return _react.createElement(SortableLinkListInternal, {
|
|
92
|
+
distance: 1,
|
|
93
|
+
...props
|
|
94
|
+
}, props.children);
|
|
95
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
const _react = _interop_require_wildcard(require("react"));
|
|
6
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
7
|
+
if (typeof WeakMap !== "function") return null;
|
|
8
|
+
var cacheBabelInterop = new WeakMap();
|
|
9
|
+
var cacheNodeInterop = new WeakMap();
|
|
10
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
11
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
12
|
+
})(nodeInterop);
|
|
13
|
+
}
|
|
14
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
15
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
16
|
+
return obj;
|
|
17
|
+
}
|
|
18
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
19
|
+
return {
|
|
20
|
+
default: obj
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
24
|
+
if (cache && cache.has(obj)) {
|
|
25
|
+
return cache.get(obj);
|
|
26
|
+
}
|
|
27
|
+
var newObj = {};
|
|
28
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
29
|
+
for(var key in obj){
|
|
30
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
31
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
32
|
+
if (desc && (desc.get || desc.set)) {
|
|
33
|
+
Object.defineProperty(newObj, key, desc);
|
|
34
|
+
} else {
|
|
35
|
+
newObj[key] = obj[key];
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
newObj.default = obj;
|
|
40
|
+
if (cache) {
|
|
41
|
+
cache.set(obj, newObj);
|
|
42
|
+
}
|
|
43
|
+
return newObj;
|
|
44
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "useAccessApi", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return useAccessApi;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const AllowActionsOnContentType = ()=>Promise.resolve(true);
|
|
12
|
+
function useAccessApi(accessApi) {
|
|
13
|
+
const canPerformAction = accessApi.can;
|
|
14
|
+
const canPerformActionOnEntryOfType = accessApi.canPerformActionOnEntryOfType ?? AllowActionsOnContentType;
|
|
15
|
+
return {
|
|
16
|
+
canPerformAction,
|
|
17
|
+
canPerformActionOnEntryOfType
|
|
18
|
+
};
|
|
19
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "useContentTypePermissions", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return useContentTypePermissions;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _react = require("react");
|
|
12
|
+
const _useAccessApi = require("./useAccessApi");
|
|
13
|
+
async function filter(arr, predicate) {
|
|
14
|
+
const fail = Symbol();
|
|
15
|
+
const results = await Promise.all(arr.map(async (item)=>await predicate(item) ? item : fail));
|
|
16
|
+
return results.filter((x)=>x !== fail);
|
|
17
|
+
}
|
|
18
|
+
function useContentTypePermissions(props) {
|
|
19
|
+
const availableContentTypes = (0, _react.useMemo)(()=>{
|
|
20
|
+
if (props.entityType === 'Asset') {
|
|
21
|
+
return [];
|
|
22
|
+
}
|
|
23
|
+
if (props.validations.contentTypes) {
|
|
24
|
+
return props.allContentTypes.filter((ct)=>props.validations.contentTypes?.includes(ct.sys.id));
|
|
25
|
+
}
|
|
26
|
+
return props.allContentTypes;
|
|
27
|
+
}, [
|
|
28
|
+
props.allContentTypes,
|
|
29
|
+
props.validations.contentTypes,
|
|
30
|
+
props.entityType
|
|
31
|
+
]);
|
|
32
|
+
const [creatableContentTypes, setCreatableContentTypes] = (0, _react.useState)(availableContentTypes);
|
|
33
|
+
const [readableContentTypes, setReadableContentTypes] = (0, _react.useState)(availableContentTypes);
|
|
34
|
+
const { canPerformActionOnEntryOfType } = (0, _useAccessApi.useAccessApi)(props.sdk.access);
|
|
35
|
+
(0, _react.useEffect)(()=>{
|
|
36
|
+
function getContentTypes(action) {
|
|
37
|
+
return filter(availableContentTypes, (ct)=>canPerformActionOnEntryOfType(action, ct.sys.id));
|
|
38
|
+
}
|
|
39
|
+
async function checkContentTypeAccess() {
|
|
40
|
+
const creatable = await getContentTypes('create');
|
|
41
|
+
const readable = await getContentTypes('read');
|
|
42
|
+
setCreatableContentTypes(creatable);
|
|
43
|
+
setReadableContentTypes(readable);
|
|
44
|
+
}
|
|
45
|
+
void checkContentTypeAccess();
|
|
46
|
+
}, [
|
|
47
|
+
availableContentTypes
|
|
48
|
+
]);
|
|
49
|
+
return {
|
|
50
|
+
creatableContentTypes,
|
|
51
|
+
readableContentTypes,
|
|
52
|
+
availableContentTypes
|
|
53
|
+
};
|
|
54
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "useEditorPermissions", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return useEditorPermissions;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _react = require("react");
|
|
12
|
+
const _fromFieldValidations = require("../utils/fromFieldValidations");
|
|
13
|
+
const _useAccessApi = require("./useAccessApi");
|
|
14
|
+
const _useContentTypePermissions = require("./useContentTypePermissions");
|
|
15
|
+
function useEditorPermissions(props) {
|
|
16
|
+
const { sdk , entityType , parameters } = props;
|
|
17
|
+
const validations = (0, _react.useMemo)(()=>(0, _fromFieldValidations.fromFieldValidations)(props.sdk.field), [
|
|
18
|
+
props.sdk.field
|
|
19
|
+
]);
|
|
20
|
+
const [canCreateEntity, setCanCreateEntity] = (0, _react.useState)(true);
|
|
21
|
+
const [canLinkEntity, setCanLinkEntity] = (0, _react.useState)(true);
|
|
22
|
+
const { creatableContentTypes , readableContentTypes , availableContentTypes } = (0, _useContentTypePermissions.useContentTypePermissions)({
|
|
23
|
+
...props,
|
|
24
|
+
validations
|
|
25
|
+
});
|
|
26
|
+
const { canPerformAction } = (0, _useAccessApi.useAccessApi)(sdk.access);
|
|
27
|
+
(0, _react.useEffect)(()=>{
|
|
28
|
+
if (parameters.instance.showCreateEntityAction === false) {
|
|
29
|
+
setCanCreateEntity(false);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
async function checkCreateAccess() {
|
|
33
|
+
if (entityType === 'Asset') {
|
|
34
|
+
const canCreate = await canPerformAction('create', 'Asset') || true;
|
|
35
|
+
setCanCreateEntity(canCreate);
|
|
36
|
+
}
|
|
37
|
+
if (entityType === 'Entry') {
|
|
38
|
+
const canCreate = creatableContentTypes.length > 0 || true;
|
|
39
|
+
setCanCreateEntity(canCreate);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
void checkCreateAccess();
|
|
43
|
+
}, [
|
|
44
|
+
entityType,
|
|
45
|
+
parameters.instance,
|
|
46
|
+
creatableContentTypes
|
|
47
|
+
]);
|
|
48
|
+
(0, _react.useEffect)(()=>{
|
|
49
|
+
if (parameters.instance.showLinkEntityAction === false) {
|
|
50
|
+
setCanLinkEntity(false);
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
async function checkLinkAccess() {
|
|
54
|
+
if (entityType === 'Asset') {
|
|
55
|
+
const canRead = await canPerformAction('read', 'Asset') || true;
|
|
56
|
+
setCanLinkEntity(canRead);
|
|
57
|
+
}
|
|
58
|
+
if (entityType === 'Entry') {
|
|
59
|
+
const canRead = true;
|
|
60
|
+
setCanLinkEntity(canRead);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
void checkLinkAccess();
|
|
64
|
+
}, [
|
|
65
|
+
entityType,
|
|
66
|
+
parameters.instance,
|
|
67
|
+
readableContentTypes
|
|
68
|
+
]);
|
|
69
|
+
return {
|
|
70
|
+
canCreateEntity,
|
|
71
|
+
canLinkEntity,
|
|
72
|
+
creatableContentTypes,
|
|
73
|
+
readableContentTypes,
|
|
74
|
+
availableContentTypes,
|
|
75
|
+
validations
|
|
76
|
+
};
|
|
77
|
+
}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
const _fieldeditortestutils = require("@contentful/field-editor-test-utils");
|
|
6
|
+
const _reacthooks = require("@testing-library/react-hooks");
|
|
7
|
+
const _useEditorPermissions = require("./useEditorPermissions");
|
|
8
|
+
describe('useEditorPermissions', ()=>{
|
|
9
|
+
const makeFieldExtensionSDK = (customizeMock)=>({
|
|
10
|
+
field: (0, _fieldeditortestutils.createFakeFieldAPI)(customizeMock)[0],
|
|
11
|
+
access: {
|
|
12
|
+
can: jest.fn().mockResolvedValue(true),
|
|
13
|
+
canPerformActionOnEntryOfType: jest.fn().mockResolvedValue(true)
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
const makeContentType = (id)=>({
|
|
17
|
+
sys: {
|
|
18
|
+
id
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
const renderEditorPermissions = async ({ entityType , params ={} , allContentTypes =[] , customizeMock , customizeSdk })=>{
|
|
22
|
+
const sdk = makeFieldExtensionSDK(customizeMock);
|
|
23
|
+
customizeSdk?.(sdk);
|
|
24
|
+
const renderResult = (0, _reacthooks.renderHook)(()=>(0, _useEditorPermissions.useEditorPermissions)({
|
|
25
|
+
sdk,
|
|
26
|
+
allContentTypes,
|
|
27
|
+
entityType,
|
|
28
|
+
parameters: {
|
|
29
|
+
instance: params
|
|
30
|
+
}
|
|
31
|
+
}));
|
|
32
|
+
await renderResult.waitForNextUpdate();
|
|
33
|
+
return {
|
|
34
|
+
...renderResult,
|
|
35
|
+
sdk
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
describe(`behaviour on Asset`, ()=>{
|
|
39
|
+
it(`wont check access when turned off via instance params`, async ()=>{
|
|
40
|
+
const { result , sdk } = await renderEditorPermissions({
|
|
41
|
+
entityType: 'Asset',
|
|
42
|
+
params: {
|
|
43
|
+
showCreateEntityAction: false,
|
|
44
|
+
showLinkEntityAction: false
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
expect(result.current.canCreateEntity).toBe(false);
|
|
48
|
+
expect(result.current.canLinkEntity).toBe(false);
|
|
49
|
+
expect(sdk.access.can).not.toHaveBeenCalledWith();
|
|
50
|
+
});
|
|
51
|
+
it(`checks basic access`, async ()=>{
|
|
52
|
+
const { sdk } = await renderEditorPermissions({
|
|
53
|
+
entityType: 'Asset'
|
|
54
|
+
});
|
|
55
|
+
expect(sdk.access.can).toHaveBeenCalledWith('create', 'Asset');
|
|
56
|
+
expect(sdk.access.can).toHaveBeenCalledWith('read', 'Asset');
|
|
57
|
+
});
|
|
58
|
+
it(`defaults link asset action visibility to true`, async ()=>{
|
|
59
|
+
const { result } = await renderEditorPermissions({
|
|
60
|
+
entityType: 'Asset'
|
|
61
|
+
});
|
|
62
|
+
expect(result.current.canLinkEntity).toBeTruthy();
|
|
63
|
+
});
|
|
64
|
+
it(`returns empty contentTypes`, async ()=>{
|
|
65
|
+
const { result } = await renderEditorPermissions({
|
|
66
|
+
entityType: 'Asset',
|
|
67
|
+
allContentTypes: [
|
|
68
|
+
makeContentType('one')
|
|
69
|
+
]
|
|
70
|
+
});
|
|
71
|
+
expect(result.current.creatableContentTypes).toEqual([]);
|
|
72
|
+
expect(result.current.readableContentTypes).toEqual([]);
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
describe(`behaviour on Entry`, ()=>{
|
|
76
|
+
const allowContentTypes = (sdk, allowedAction, ...allowed)=>{
|
|
77
|
+
sdk.access.canPerformActionOnEntryOfType.mockImplementation(async (action, contentTypeId)=>{
|
|
78
|
+
if (allowedAction === action && allowed.includes(contentTypeId)) {
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
return false;
|
|
82
|
+
});
|
|
83
|
+
};
|
|
84
|
+
it(`wont check access when turned off via instance params`, async ()=>{
|
|
85
|
+
const { result , sdk } = await renderEditorPermissions({
|
|
86
|
+
entityType: 'Entry',
|
|
87
|
+
params: {
|
|
88
|
+
showCreateEntityAction: false,
|
|
89
|
+
showLinkEntityAction: false
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
expect(result.current.canCreateEntity).toBe(false);
|
|
93
|
+
expect(result.current.canLinkEntity).toBe(false);
|
|
94
|
+
expect(sdk.access.can).not.toHaveBeenCalledWith();
|
|
95
|
+
});
|
|
96
|
+
it(`only allows creation when one content-type can be created`, async ()=>{
|
|
97
|
+
const allContentTypes = [
|
|
98
|
+
makeContentType('one'),
|
|
99
|
+
makeContentType('two')
|
|
100
|
+
];
|
|
101
|
+
const { result } = await renderEditorPermissions({
|
|
102
|
+
entityType: 'Entry',
|
|
103
|
+
allContentTypes,
|
|
104
|
+
customizeSdk: (sdk)=>{
|
|
105
|
+
allowContentTypes(sdk, 'create', 'one');
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
expect(result.current.canCreateEntity).toBe(true);
|
|
109
|
+
});
|
|
110
|
+
it.skip(`denies creation when no content-type can be created`, async ()=>{
|
|
111
|
+
const allContentTypes = [
|
|
112
|
+
makeContentType('one'),
|
|
113
|
+
makeContentType('two')
|
|
114
|
+
];
|
|
115
|
+
const { result } = await renderEditorPermissions({
|
|
116
|
+
entityType: 'Entry',
|
|
117
|
+
allContentTypes,
|
|
118
|
+
customizeSdk: (sdk)=>{
|
|
119
|
+
allowContentTypes(sdk, 'create');
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
expect(result.current.canCreateEntity).toBe(false);
|
|
123
|
+
});
|
|
124
|
+
it(`only allows linking when one content-type can be read`, async ()=>{
|
|
125
|
+
const allContentTypes = [
|
|
126
|
+
makeContentType('one'),
|
|
127
|
+
makeContentType('two')
|
|
128
|
+
];
|
|
129
|
+
const { result } = await renderEditorPermissions({
|
|
130
|
+
entityType: 'Entry',
|
|
131
|
+
allContentTypes,
|
|
132
|
+
customizeSdk: (sdk)=>{
|
|
133
|
+
allowContentTypes(sdk, 'read', 'one');
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
expect(result.current.canLinkEntity).toBe(true);
|
|
137
|
+
});
|
|
138
|
+
it.skip(`denies creation when no content-type can be read`, async ()=>{
|
|
139
|
+
const allContentTypes = [
|
|
140
|
+
makeContentType('one'),
|
|
141
|
+
makeContentType('two')
|
|
142
|
+
];
|
|
143
|
+
const { result } = await renderEditorPermissions({
|
|
144
|
+
entityType: 'Entry',
|
|
145
|
+
allContentTypes,
|
|
146
|
+
customizeSdk: (sdk)=>{
|
|
147
|
+
allowContentTypes(sdk, 'read');
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
expect(result.current.canLinkEntity).toBe(false);
|
|
151
|
+
});
|
|
152
|
+
it(`returns creatableContentTypes from validations that can be created`, async ()=>{
|
|
153
|
+
const allContentTypes = [
|
|
154
|
+
makeContentType('one'),
|
|
155
|
+
makeContentType('two')
|
|
156
|
+
];
|
|
157
|
+
const { result } = await renderEditorPermissions({
|
|
158
|
+
entityType: 'Entry',
|
|
159
|
+
allContentTypes,
|
|
160
|
+
customizeMock: (field)=>{
|
|
161
|
+
field.validations = [
|
|
162
|
+
{
|
|
163
|
+
linkContentType: [
|
|
164
|
+
'two'
|
|
165
|
+
]
|
|
166
|
+
}
|
|
167
|
+
];
|
|
168
|
+
return field;
|
|
169
|
+
},
|
|
170
|
+
customizeSdk: (sdk)=>{
|
|
171
|
+
allowContentTypes(sdk, 'create', 'two');
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
expect(result.current.creatableContentTypes).toEqual([
|
|
175
|
+
allContentTypes[1]
|
|
176
|
+
]);
|
|
177
|
+
});
|
|
178
|
+
it(`returns readableContentTypes from validations that can be read`, async ()=>{
|
|
179
|
+
const allContentTypes = [
|
|
180
|
+
makeContentType('one'),
|
|
181
|
+
makeContentType('two')
|
|
182
|
+
];
|
|
183
|
+
const { result } = await renderEditorPermissions({
|
|
184
|
+
entityType: 'Entry',
|
|
185
|
+
allContentTypes,
|
|
186
|
+
customizeMock: (field)=>{
|
|
187
|
+
field.validations = [
|
|
188
|
+
{
|
|
189
|
+
linkContentType: [
|
|
190
|
+
'two'
|
|
191
|
+
]
|
|
192
|
+
}
|
|
193
|
+
];
|
|
194
|
+
return field;
|
|
195
|
+
},
|
|
196
|
+
customizeSdk: (sdk)=>{
|
|
197
|
+
allowContentTypes(sdk, 'read', 'two');
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
expect(result.current.readableContentTypes).toEqual([
|
|
201
|
+
allContentTypes[1]
|
|
202
|
+
]);
|
|
203
|
+
});
|
|
204
|
+
});
|
|
205
|
+
});
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "AssetThumbnail", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return AssetThumbnail;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _react = _interop_require_wildcard(require("react"));
|
|
12
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
13
|
+
if (typeof WeakMap !== "function") return null;
|
|
14
|
+
var cacheBabelInterop = new WeakMap();
|
|
15
|
+
var cacheNodeInterop = new WeakMap();
|
|
16
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
17
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
18
|
+
})(nodeInterop);
|
|
19
|
+
}
|
|
20
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
21
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
22
|
+
return obj;
|
|
23
|
+
}
|
|
24
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
25
|
+
return {
|
|
26
|
+
default: obj
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
30
|
+
if (cache && cache.has(obj)) {
|
|
31
|
+
return cache.get(obj);
|
|
32
|
+
}
|
|
33
|
+
var newObj = {};
|
|
34
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
35
|
+
for(var key in obj){
|
|
36
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
37
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
38
|
+
if (desc && (desc.get || desc.set)) {
|
|
39
|
+
Object.defineProperty(newObj, key, desc);
|
|
40
|
+
} else {
|
|
41
|
+
newObj[key] = obj[key];
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
newObj.default = obj;
|
|
46
|
+
if (cache) {
|
|
47
|
+
cache.set(obj, newObj);
|
|
48
|
+
}
|
|
49
|
+
return newObj;
|
|
50
|
+
}
|
|
51
|
+
const dimensions = {
|
|
52
|
+
width: 70,
|
|
53
|
+
height: 70
|
|
54
|
+
};
|
|
55
|
+
function AssetThumbnail(props) {
|
|
56
|
+
return _react.createElement("img", {
|
|
57
|
+
alt: props.file.fileName,
|
|
58
|
+
src: `${props.file.url}?w=${dimensions.width}&h=${dimensions.height}&fit=thumb`,
|
|
59
|
+
height: dimensions.height,
|
|
60
|
+
width: dimensions.width
|
|
61
|
+
});
|
|
62
|
+
}
|