@contentful/field-editor-reference 5.21.2 → 5.21.5

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 (136) hide show
  1. package/dist/cjs/__fixtures__/asset/index.js +5 -5
  2. package/dist/cjs/__fixtures__/content-type/index.js +1 -1
  3. package/dist/cjs/__fixtures__/entry/index.js +4 -4
  4. package/dist/cjs/__fixtures__/fixtures.js +5 -5
  5. package/dist/cjs/__fixtures__/locale/index.js +2 -2
  6. package/dist/cjs/__fixtures__/space/index.js +1 -1
  7. package/dist/cjs/assets/MultipleMediaEditor.js +4 -4
  8. package/dist/cjs/assets/SingleMediaEditor.js +3 -3
  9. package/dist/cjs/assets/WrappedAssetCard/AssetCardActions.js +13 -13
  10. package/dist/cjs/assets/WrappedAssetCard/FetchingWrappedAssetCard.js +7 -12
  11. package/dist/cjs/assets/WrappedAssetCard/WrappedAssetCard.js +9 -16
  12. package/dist/cjs/assets/WrappedAssetCard/WrappedAssetLink.js +7 -8
  13. package/dist/cjs/common/EntityStore.js +6 -23
  14. package/dist/cjs/common/MultipleReferenceEditor.js +7 -14
  15. package/dist/cjs/common/ReferenceEditor.js +4 -4
  16. package/dist/cjs/common/SingleReferenceEditor.js +5 -7
  17. package/dist/cjs/common/SortableLinkList.js +9 -9
  18. package/dist/cjs/common/customCardTypes.js +1 -1
  19. package/dist/cjs/common/queryClient.js +3 -6
  20. package/dist/cjs/common/useContentTypePermissions.js +0 -2
  21. package/dist/cjs/common/useEditorPermissions.js +0 -12
  22. package/dist/cjs/common/useEditorPermissions.spec.js +0 -1
  23. package/dist/cjs/components/AssetThumbnail/AssetThumbnail.js +2 -2
  24. package/dist/cjs/components/CreateEntryLinkButton/CreateEntryLinkButton.js +7 -9
  25. package/dist/cjs/components/CreateEntryLinkButton/CreateEntryLinkButton.spec.js +14 -14
  26. package/dist/cjs/components/CreateEntryLinkButton/CreateEntryMenuTrigger.js +16 -24
  27. package/dist/cjs/components/CreateEntryLinkButton/CreateEntryMenuTrigger.spec.js +11 -11
  28. package/dist/cjs/components/LinkActions/CombinedLinkActions.js +20 -25
  29. package/dist/cjs/components/LinkActions/LinkActions.js +11 -11
  30. package/dist/cjs/components/LinkActions/LinkEntityActions.js +8 -15
  31. package/dist/cjs/components/LinkActions/NoLinkPermissionsInfo.js +2 -2
  32. package/dist/cjs/components/LinkActions/helpers.js +0 -9
  33. package/dist/cjs/components/LinkActions/redesignStyles.js +1 -1
  34. package/dist/cjs/components/LinkActions/styles.js +1 -1
  35. package/dist/cjs/components/MissingEntityCard/MissingEntityCard.js +8 -8
  36. package/dist/cjs/components/ResourceEntityErrorCard/ResourceEntityErrorCard.js +3 -3
  37. package/dist/cjs/components/ResourceEntityErrorCard/UnsupportedEntityCard.js +3 -3
  38. package/dist/cjs/components/ScheduledIconWithTooltip/ScheduleTooltip.js +2 -2
  39. package/dist/cjs/components/ScheduledIconWithTooltip/ScheduledIconWithTooltip.js +2 -5
  40. package/dist/cjs/components/ScheduledIconWithTooltip/formatDateAndTime.js +1 -2
  41. package/dist/cjs/components/SpaceName/SpaceName.js +6 -6
  42. package/dist/cjs/entries/MultipleEntryReferenceEditor.js +4 -4
  43. package/dist/cjs/entries/SingleEntryReferenceEditor.js +3 -3
  44. package/dist/cjs/entries/WrappedEntryCard/FetchingWrappedEntryCard.js +7 -14
  45. package/dist/cjs/entries/WrappedEntryCard/WrappedEntryCard.js +14 -18
  46. package/dist/cjs/resources/Cards/ContentfulEntryCard.js +2 -9
  47. package/dist/cjs/resources/Cards/ResourceCard.js +8 -10
  48. package/dist/cjs/resources/Cards/ResourceCard.spec.js +7 -8
  49. package/dist/cjs/resources/MultipleResourceReferenceEditor.js +11 -12
  50. package/dist/cjs/resources/MultipleResourceReferenceEditor.spec.js +8 -27
  51. package/dist/cjs/resources/SingleResourceReferenceEditor.js +6 -6
  52. package/dist/cjs/resources/SingleResourceReferenceEditor.spec.js +5 -10
  53. package/dist/cjs/resources/testHelpers/resourceEditorHelpers.js +0 -7
  54. package/dist/cjs/resources/useResourceLinkActions.js +1 -10
  55. package/dist/cjs/utils/fromFieldValidations.js +1 -2
  56. package/dist/cjs/utils/useSortIDs.js +1 -1
  57. package/dist/esm/assets/MultipleMediaEditor.js +3 -3
  58. package/dist/esm/assets/SingleMediaEditor.js +2 -2
  59. package/dist/esm/assets/WrappedAssetCard/AssetCardActions.js +10 -10
  60. package/dist/esm/assets/WrappedAssetCard/FetchingWrappedAssetCard.js +6 -11
  61. package/dist/esm/assets/WrappedAssetCard/WrappedAssetCard.js +6 -14
  62. package/dist/esm/assets/WrappedAssetCard/WrappedAssetLink.js +5 -6
  63. package/dist/esm/common/EntityStore.js +3 -20
  64. package/dist/esm/common/MultipleReferenceEditor.js +6 -13
  65. package/dist/esm/common/ReferenceEditor.js +2 -2
  66. package/dist/esm/common/SingleReferenceEditor.js +4 -6
  67. package/dist/esm/common/SortableLinkList.js +7 -7
  68. package/dist/esm/common/queryClient.js +3 -10
  69. package/dist/esm/common/useContentTypePermissions.js +0 -2
  70. package/dist/esm/common/useEditorPermissions.js +0 -12
  71. package/dist/esm/common/useEditorPermissions.spec.js +0 -1
  72. package/dist/esm/components/AssetThumbnail/AssetThumbnail.js +1 -1
  73. package/dist/esm/components/CreateEntryLinkButton/CreateEntryLinkButton.js +4 -6
  74. package/dist/esm/components/CreateEntryLinkButton/CreateEntryLinkButton.spec.js +12 -12
  75. package/dist/esm/components/CreateEntryLinkButton/CreateEntryMenuTrigger.js +13 -21
  76. package/dist/esm/components/CreateEntryLinkButton/CreateEntryMenuTrigger.spec.js +8 -9
  77. package/dist/esm/components/LinkActions/CombinedLinkActions.js +19 -30
  78. package/dist/esm/components/LinkActions/LinkActions.js +9 -9
  79. package/dist/esm/components/LinkActions/LinkEntityActions.js +7 -14
  80. package/dist/esm/components/LinkActions/NoLinkPermissionsInfo.js +1 -1
  81. package/dist/esm/components/LinkActions/helpers.js +0 -9
  82. package/dist/esm/components/MissingEntityCard/MissingEntityCard.js +6 -6
  83. package/dist/esm/components/ResourceEntityErrorCard/ResourceEntityErrorCard.js +2 -2
  84. package/dist/esm/components/ResourceEntityErrorCard/UnsupportedEntityCard.js +2 -2
  85. package/dist/esm/components/ScheduledIconWithTooltip/ScheduleTooltip.js +1 -1
  86. package/dist/esm/components/ScheduledIconWithTooltip/ScheduledIconWithTooltip.js +1 -4
  87. package/dist/esm/components/ScheduledIconWithTooltip/formatDateAndTime.js +2 -11
  88. package/dist/esm/components/SpaceName/SpaceName.js +4 -4
  89. package/dist/esm/entries/MultipleEntryReferenceEditor.js +3 -3
  90. package/dist/esm/entries/SingleEntryReferenceEditor.js +2 -2
  91. package/dist/esm/entries/WrappedEntryCard/FetchingWrappedEntryCard.js +5 -12
  92. package/dist/esm/entries/WrappedEntryCard/WrappedEntryCard.js +12 -16
  93. package/dist/esm/resources/Cards/ContentfulEntryCard.js +1 -8
  94. package/dist/esm/resources/Cards/ResourceCard.js +7 -9
  95. package/dist/esm/resources/Cards/ResourceCard.spec.js +2 -3
  96. package/dist/esm/resources/MultipleResourceReferenceEditor.js +8 -9
  97. package/dist/esm/resources/MultipleResourceReferenceEditor.spec.js +7 -26
  98. package/dist/esm/resources/SingleResourceReferenceEditor.js +4 -4
  99. package/dist/esm/resources/SingleResourceReferenceEditor.spec.js +4 -9
  100. package/dist/esm/resources/testHelpers/resourceEditorHelpers.js +0 -7
  101. package/dist/esm/resources/useResourceLinkActions.js +1 -10
  102. package/dist/esm/utils/fromFieldValidations.js +0 -1
  103. package/dist/types/assets/MultipleMediaEditor.d.ts +2 -2
  104. package/dist/types/assets/SingleMediaEditor.d.ts +2 -2
  105. package/dist/types/assets/WrappedAssetCard/AssetCardActions.d.ts +3 -3
  106. package/dist/types/assets/WrappedAssetCard/FetchingWrappedAssetCard.d.ts +2 -2
  107. package/dist/types/assets/WrappedAssetCard/WrappedAssetCard.d.ts +2 -2
  108. package/dist/types/assets/WrappedAssetCard/WrappedAssetLink.d.ts +2 -2
  109. package/dist/types/common/EntityStore.d.ts +1 -1
  110. package/dist/types/common/MultipleReferenceEditor.d.ts +1 -1
  111. package/dist/types/common/ReferenceEditor.d.ts +1 -1
  112. package/dist/types/common/SingleReferenceEditor.d.ts +1 -1
  113. package/dist/types/common/SortableLinkList.d.ts +1 -1
  114. package/dist/types/common/queryClient.d.ts +1 -1
  115. package/dist/types/components/AssetThumbnail/AssetThumbnail.d.ts +2 -2
  116. package/dist/types/components/CreateEntryLinkButton/CreateEntryLinkButton.d.ts +1 -1
  117. package/dist/types/components/CreateEntryLinkButton/CreateEntryMenuTrigger.d.ts +1 -1
  118. package/dist/types/components/LinkActions/CombinedLinkActions.d.ts +2 -2
  119. package/dist/types/components/LinkActions/LinkActions.d.ts +1 -1
  120. package/dist/types/components/LinkActions/LinkEntityActions.d.ts +2 -2
  121. package/dist/types/components/LinkActions/NoLinkPermissionsInfo.d.ts +2 -2
  122. package/dist/types/components/MissingEntityCard/MissingEntityCard.d.ts +2 -2
  123. package/dist/types/components/ResourceEntityErrorCard/ResourceEntityErrorCard.d.ts +2 -2
  124. package/dist/types/components/ResourceEntityErrorCard/UnsupportedEntityCard.d.ts +2 -2
  125. package/dist/types/components/ScheduledIconWithTooltip/ScheduleTooltip.d.ts +1 -1
  126. package/dist/types/components/ScheduledIconWithTooltip/ScheduledIconWithTooltip.d.ts +1 -1
  127. package/dist/types/components/SpaceName/SpaceName.d.ts +2 -2
  128. package/dist/types/entries/MultipleEntryReferenceEditor.d.ts +2 -2
  129. package/dist/types/entries/SingleEntryReferenceEditor.d.ts +2 -2
  130. package/dist/types/entries/WrappedEntryCard/FetchingWrappedEntryCard.d.ts +2 -2
  131. package/dist/types/entries/WrappedEntryCard/WrappedEntryCard.d.ts +1 -1
  132. package/dist/types/resources/Cards/ContentfulEntryCard.d.ts +2 -2
  133. package/dist/types/resources/Cards/ResourceCard.d.ts +2 -2
  134. package/dist/types/resources/MultipleResourceReferenceEditor.d.ts +2 -2
  135. package/dist/types/resources/SingleResourceReferenceEditor.d.ts +2 -2
  136. package/package.json +8 -5
@@ -22,17 +22,13 @@ function mockSdkForField(fieldDefinition, fieldValue) {
22
22
  getValue: jest.fn(()=>fieldValue),
23
23
  setValue: jest.fn(()=>Promise.resolve(undefined)),
24
24
  removeValue: jest.fn(),
25
- // eslint-disable-next-line -- test helper
26
25
  onSchemaErrorsChanged: ()=>{},
27
- // eslint-disable-next-line -- test helper
28
26
  onIsDisabledChanged: ()=>{},
29
- // eslint-disable-next-line -- test helper
30
27
  onValueChanged: ()=>{},
31
28
  ...fieldDefinition,
32
29
  locale: 'en'
33
30
  },
34
31
  dialogs: {
35
- // @ts-expect-error wait app-sdk version update
36
32
  selectSingleResourceEntry: jest.fn().mockResolvedValue({
37
33
  sys: {
38
34
  type: 'Entry',
@@ -72,11 +68,8 @@ function mockSdkForField(fieldDefinition, fieldValue) {
72
68
  contentType: 'testCT'
73
69
  },
74
70
  space: {
75
- // @ts-expect-error wait app-sdk version update
76
- // eslint-disable-next-line -- test helper
77
71
  onEntityChanged: ()=>{}
78
72
  },
79
- // @ts-expect-error
80
73
  navigator: {
81
74
  onSlideInNavigation: ()=>()=>({})
82
75
  }
@@ -51,14 +51,10 @@ function useResourceLinkActions({ dialogs, field, onAfterLink, apiUrl }) {
51
51
  ]);
52
52
  const multiple = field.type === 'Array';
53
53
  const onLinkExisting = (0, _react.useMemo)(()=>{
54
- const promptSelection = multiple ? async ()=>// @ts-expect-error wait for update of app-sdk version
55
- await dialogs.selectMultipleResourceEntries({
56
- // @ts-expect-error wait for update of app-sdk version
54
+ const promptSelection = multiple ? async ()=>await dialogs.selectMultipleResourceEntries({
57
55
  allowedResources: field.allowedResources
58
56
  }) : async ()=>[
59
- // @ts-expect-error wait for update of app-sdk version
60
57
  await dialogs.selectSingleResourceEntry({
61
- // @ts-expect-error wait for update of app-sdk version
62
58
  allowedResources: field.allowedResources
63
59
  })
64
60
  ];
@@ -69,7 +65,6 @@ function useResourceLinkActions({ dialogs, field, onAfterLink, apiUrl }) {
69
65
  }
70
66
  onLinkedExisting(res);
71
67
  };
72
- // @ts-expect-error wait for update of app-sdk version
73
68
  }, [
74
69
  dialogs,
75
70
  field.allowedResources,
@@ -78,9 +73,7 @@ function useResourceLinkActions({ dialogs, field, onAfterLink, apiUrl }) {
78
73
  ]);
79
74
  return {
80
75
  onLinkExisting,
81
- // @ts-expect-error
82
76
  onLinkedExisting,
83
- // hardcoded values to match interface for standard reference field actions
84
77
  entityType: 'Entry',
85
78
  contentTypes: [],
86
79
  canCreateEntity: false,
@@ -89,9 +82,7 @@ function useResourceLinkActions({ dialogs, field, onAfterLink, apiUrl }) {
89
82
  isDisabled: false,
90
83
  isEmpty: false,
91
84
  isFull: false,
92
- // eslint-disable-next-line -- hardcoded values to match interface for standard reference field actions
93
85
  onCreate: async ()=>{},
94
- // eslint-disable-next-line -- hardcoded values to match interface for standard reference field actions
95
86
  onCreated: ()=>{}
96
87
  };
97
88
  }
@@ -8,14 +8,13 @@ Object.defineProperty(exports, "fromFieldValidations", {
8
8
  return fromFieldValidations;
9
9
  }
10
10
  });
11
- const _isNumber = /*#__PURE__*/ _interop_require_default(require("lodash/isNumber"));
11
+ const _isNumber = _interop_require_default(require("lodash/isNumber"));
12
12
  function _interop_require_default(obj) {
13
13
  return obj && obj.__esModule ? obj : {
14
14
  default: obj
15
15
  };
16
16
  }
17
17
  function fromFieldValidations(field) {
18
- // eslint-disable-next-line -- TODO: describe this disable @typescript-eslint/no-explicit-any
19
18
  const validations = [
20
19
  ...field.validations,
21
20
  ...field.type === 'Array' ? field.items?.validations ?? [] : []
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "useSortIDs", {
8
8
  return useSortIDs;
9
9
  }
10
10
  });
11
- const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
11
+ const _react = _interop_require_wildcard(require("react"));
12
12
  const _sortable = require("@dnd-kit/sortable");
13
13
  function _getRequireWildcardCache(nodeInterop) {
14
14
  if (typeof WeakMap !== "function") return null;
@@ -12,16 +12,16 @@ const styles = {
12
12
  })
13
13
  };
14
14
  export function MultipleMediaEditor(props) {
15
- return /*#__PURE__*/ React.createElement(MultipleReferenceEditor, {
15
+ return React.createElement(MultipleReferenceEditor, {
16
16
  ...props,
17
17
  entityType: "Asset"
18
- }, (childrenProps)=>/*#__PURE__*/ React.createElement(SortableLinkList, {
18
+ }, (childrenProps)=>React.createElement(SortableLinkList, {
19
19
  ...childrenProps,
20
20
  sortingStrategy: childrenProps.viewType === 'card' ? rectSortingStrategy : verticalListSortingStrategy,
21
21
  className: cx({
22
22
  [styles.gridContainer]: childrenProps.viewType === 'card'
23
23
  })
24
- }, ({ items, item, index, isDisabled, DragHandle })=>/*#__PURE__*/ React.createElement(FetchingWrappedAssetCard, {
24
+ }, ({ items, item, index, isDisabled, DragHandle })=>React.createElement(FetchingWrappedAssetCard, {
25
25
  ...childrenProps,
26
26
  isDisabled: isDisabled,
27
27
  key: `${item.sys.id}-${index}`,
@@ -2,10 +2,10 @@ import * as React from 'react';
2
2
  import { SingleReferenceEditor } from '../common/SingleReferenceEditor';
3
3
  import { FetchingWrappedAssetCard } from './WrappedAssetCard/FetchingWrappedAssetCard';
4
4
  export function SingleMediaEditor(props) {
5
- return /*#__PURE__*/ React.createElement(SingleReferenceEditor, {
5
+ return React.createElement(SingleReferenceEditor, {
6
6
  ...props,
7
7
  entityType: "Asset"
8
- }, ({ entityId, isDisabled, setValue })=>/*#__PURE__*/ React.createElement(FetchingWrappedAssetCard, {
8
+ }, ({ entityId, isDisabled, setValue })=>React.createElement(FetchingWrappedAssetCard, {
9
9
  ...props,
10
10
  viewType: "big_card",
11
11
  assetId: entityId,
@@ -48,36 +48,36 @@ export function renderAssetInfo(props) {
48
48
  const fileSize = get(entityFile, 'details.size');
49
49
  const image = get(entityFile, 'details.image');
50
50
  return [
51
- /*#__PURE__*/ React.createElement(Menu.SectionTitle, {
51
+ React.createElement(Menu.SectionTitle, {
52
52
  key: "file-section"
53
53
  }, "File info"),
54
- /*#__PURE__*/ React.createElement(Menu.Item, {
54
+ React.createElement(Menu.Item, {
55
55
  key: "file-information",
56
56
  className: styles.fileInformation.menuItem,
57
57
  isDisabled: true
58
- }, /*#__PURE__*/ React.createElement("dl", {
58
+ }, React.createElement("dl", {
59
59
  className: styles.fileInformation.dl
60
- }, fileName && /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement("dt", null, "File Name:"), /*#__PURE__*/ React.createElement(Text, {
60
+ }, fileName && React.createElement(React.Fragment, null, React.createElement("dt", null, "File Name:"), React.createElement(Text, {
61
61
  as: "dd",
62
62
  isTruncated: true
63
- }, fileName)), mimeType && /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement("dt", null, "File Type:"), /*#__PURE__*/ React.createElement(Text, {
63
+ }, fileName)), mimeType && React.createElement(React.Fragment, null, React.createElement("dt", null, "File Type:"), React.createElement(Text, {
64
64
  as: "dd",
65
65
  isTruncated: true
66
- }, mimeType)), fileSize && /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement("dt", null, "Size:"), /*#__PURE__*/ React.createElement("dd", null, shortenStorageUnit(fileSize, 'B'))), image && /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement("dt", null, "Dimensions:"), /*#__PURE__*/ React.createElement("dd", null, `${image.width} × ${image.height}`))))
66
+ }, mimeType)), fileSize && React.createElement(React.Fragment, null, React.createElement("dt", null, "Size:"), React.createElement("dd", null, shortenStorageUnit(fileSize, 'B'))), image && React.createElement(React.Fragment, null, React.createElement("dt", null, "Dimensions:"), React.createElement("dd", null, `${image.width} × ${image.height}`))))
67
67
  ];
68
68
  }
69
69
  export function renderActions(props) {
70
70
  const { entityFile, isDisabled, onEdit, onRemove } = props;
71
71
  return [
72
- /*#__PURE__*/ React.createElement(Menu.SectionTitle, {
72
+ React.createElement(Menu.SectionTitle, {
73
73
  key: "section-title"
74
74
  }, "Actions"),
75
- onEdit ? /*#__PURE__*/ React.createElement(Menu.Item, {
75
+ onEdit ? React.createElement(Menu.Item, {
76
76
  key: "edit",
77
77
  onClick: onEdit,
78
78
  testId: "card-action-edit"
79
79
  }, "Edit") : null,
80
- entityFile ? /*#__PURE__*/ React.createElement(Menu.Item, {
80
+ entityFile ? React.createElement(Menu.Item, {
81
81
  key: "download",
82
82
  onClick: ()=>{
83
83
  if (typeof entityFile.url === 'string') {
@@ -86,7 +86,7 @@ export function renderActions(props) {
86
86
  },
87
87
  testId: "card-action-download"
88
88
  }, "Download") : null,
89
- onRemove ? /*#__PURE__*/ React.createElement(Menu.Item, {
89
+ onRemove ? React.createElement(Menu.Item, {
90
90
  key: "remove",
91
91
  disabled: isDisabled,
92
92
  onClick: onRemove,
@@ -18,7 +18,6 @@ export function FetchingWrappedAssetCard(props) {
18
18
  entity: 'Asset'
19
19
  });
20
20
  }
21
- // eslint-disable-next-line react-hooks/exhaustive-deps -- TODO: Evaluate the dependencies
22
21
  }, [
23
22
  asset
24
23
  ]);
@@ -45,7 +44,7 @@ export function FetchingWrappedAssetCard(props) {
45
44
  };
46
45
  return React.useMemo(()=>{
47
46
  if (status === 'error') {
48
- const card = /*#__PURE__*/ React.createElement(MissingEntityCard, {
47
+ const card = React.createElement(MissingEntityCard, {
49
48
  entityType: "Asset",
50
49
  asSquare: props.viewType !== 'link',
51
50
  isDisabled: props.isDisabled,
@@ -77,48 +76,44 @@ export function FetchingWrappedAssetCard(props) {
77
76
  };
78
77
  if (props.viewType === 'link') {
79
78
  if (status === 'loading') {
80
- return /*#__PURE__*/ React.createElement(EntryCard, {
79
+ return React.createElement(EntryCard, {
81
80
  size: "small",
82
81
  isLoading: true
83
82
  });
84
83
  }
85
- return /*#__PURE__*/ React.createElement(WrappedAssetLink, {
84
+ return React.createElement(WrappedAssetLink, {
86
85
  ...commonProps,
87
86
  href: commonProps.entityUrl,
88
87
  getEntityScheduledActions: loadEntityScheduledActions
89
88
  });
90
89
  }
91
90
  if (status === 'loading') {
92
- return /*#__PURE__*/ React.createElement(AssetCard, {
91
+ return React.createElement(AssetCard, {
93
92
  size: size,
94
93
  isLoading: true
95
94
  });
96
95
  }
97
96
  function renderDefaultCard(props) {
98
- // isClickable has a default value, so omit it from the props
99
97
  const builtinCardProps = {
100
98
  ...commonProps,
101
99
  ...props,
102
100
  getEntityScheduledActions: loadEntityScheduledActions,
103
- asset: (props?.entity) || commonProps.asset,
101
+ asset: props?.entity || commonProps.asset,
104
102
  getAssetUrl: getEntityUrl
105
103
  };
106
- return /*#__PURE__*/ React.createElement(WrappedAssetCard, builtinCardProps);
104
+ return React.createElement(WrappedAssetCard, builtinCardProps);
107
105
  }
108
106
  if (props.renderCustomCard) {
109
107
  const customProps = {
110
108
  ...commonProps,
111
109
  entity: commonProps.asset
112
110
  };
113
- // LinkActionsProps are injected higher SingleReferenceEditor/MultipleReferenceEditor
114
111
  const renderedCustomCard = props.renderCustomCard(customProps, {}, renderDefaultCard);
115
- // Only `false` indicates to render the original card. E.g. `null` would result in no card.
116
112
  if (renderedCustomCard !== false) {
117
113
  return renderedCustomCard;
118
114
  }
119
115
  }
120
116
  return renderDefaultCard();
121
- // eslint-disable-next-line react-hooks/exhaustive-deps -- TODO: Evaluate the dependencies
122
117
  }, [
123
118
  props,
124
119
  status,
@@ -3,7 +3,6 @@ import { AssetCard } from '@contentful/f36-components';
3
3
  import { ClockIcon } from '@contentful/f36-icons';
4
4
  import tokens from '@contentful/f36-tokens';
5
5
  import { entityHelpers } from '@contentful/field-editor-shared';
6
- // @ts-expect-error
7
6
  import mimetype from '@contentful/mimetype';
8
7
  import { css } from 'emotion';
9
8
  import { MissingEntityCard, ScheduledIconWithTooltip } from '../../components';
@@ -29,7 +28,6 @@ const styles = {
29
28
  const defaultProps = {
30
29
  isClickable: true
31
30
  };
32
- // eslint-disable-next-line -- TODO: describe this disable @typescript-eslint/no-explicit-any
33
31
  function getFileType(file) {
34
32
  if (!file) {
35
33
  return 'archive';
@@ -42,10 +40,9 @@ function getFileType(file) {
42
40
  }
43
41
  export const WrappedAssetCard = (props)=>{
44
42
  const { className, onEdit, getAssetUrl, onRemove, size, isDisabled, isSelected, isClickable } = props;
45
- // @ts-expect-error
46
43
  const status = entityHelpers.getEntryStatus(props.asset.sys);
47
44
  if (status === 'deleted') {
48
- return /*#__PURE__*/ React.createElement(MissingEntityCard, {
45
+ return React.createElement(MissingEntityCard, {
49
46
  entityType: "Asset",
50
47
  asSquare: true,
51
48
  isDisabled: props.isDisabled,
@@ -60,7 +57,7 @@ export const WrappedAssetCard = (props)=>{
60
57
  });
61
58
  const entityFile = props.asset.fields.file ? props.asset.fields.file[props.localeCode] || props.asset.fields.file[props.defaultLocaleCode] : undefined;
62
59
  const href = getAssetUrl ? getAssetUrl(props.asset.sys.id) : undefined;
63
- return /*#__PURE__*/ React.createElement(AssetCard, {
60
+ return React.createElement(AssetCard, {
64
61
  as: href ? 'a' : 'article',
65
62
  type: getFileType(entityFile),
66
63
  title: entityTitle,
@@ -68,27 +65,22 @@ export const WrappedAssetCard = (props)=>{
68
65
  isSelected: isSelected,
69
66
  href: href,
70
67
  status: status,
71
- icon: /*#__PURE__*/ React.createElement(ScheduledIconWithTooltip, {
68
+ icon: React.createElement(ScheduledIconWithTooltip, {
72
69
  getEntityScheduledActions: props.getEntityScheduledActions,
73
70
  entityType: "Asset",
74
71
  entityId: props.asset.sys.id
75
- }, /*#__PURE__*/ React.createElement(ClockIcon, {
72
+ }, React.createElement(ClockIcon, {
76
73
  className: styles.scheduleIcon,
77
74
  size: "small",
78
75
  variant: "muted",
79
76
  testId: "schedule-icon"
80
77
  })),
81
78
  src: entityFile && entityFile.url ? size === 'small' ? `${entityFile.url}?w=150&h=150&fit=thumb` : `${entityFile.url}?h=300` : '',
82
- onClick: // Providing an onClick handler messes up with some rich text
83
- // features e.g. pressing ENTER on a card to add a new paragraph
84
- // underneath. It's crucial not to pass a custom handler when
85
- // isClickable is disabled which in the case of RT it's.
86
- isClickable ? (e)=>{
79
+ onClick: isClickable ? (e)=>{
87
80
  e.preventDefault();
88
81
  onEdit && onEdit();
89
82
  } : undefined,
90
- /* todo - remove this when onKeyDown is allowed as a prop for BaseCard in forma 36
91
- // @ts-expect-error */ onKeyDown: isClickable ? (e)=>{
83
+ onKeyDown: isClickable ? (e)=>{
92
84
  if (e.key === 'Enter' && onEdit) {
93
85
  e.preventDefault();
94
86
  onEdit();
@@ -13,10 +13,9 @@ const styles = {
13
13
  };
14
14
  export const WrappedAssetLink = (props)=>{
15
15
  const { className, href, onEdit, onRemove, isDisabled } = props;
16
- // @ts-expect-error
17
16
  const status = entityHelpers.getEntryStatus(props.asset.sys);
18
17
  if (status === 'deleted') {
19
- return /*#__PURE__*/ React.createElement(MissingEntityCard, {
18
+ return React.createElement(MissingEntityCard, {
20
19
  entityType: "Asset",
21
20
  isDisabled: props.isDisabled,
22
21
  onRemove: props.onRemove
@@ -29,7 +28,7 @@ export const WrappedAssetLink = (props)=>{
29
28
  defaultTitle: 'Untitled'
30
29
  });
31
30
  const entityFile = props.asset.fields.file ? props.asset.fields.file[props.localeCode] || props.asset.fields.file[props.defaultLocaleCode] : undefined;
32
- return /*#__PURE__*/ React.createElement(EntryCard, {
31
+ return React.createElement(EntryCard, {
33
32
  as: href ? 'a' : 'article',
34
33
  contentType: "Asset",
35
34
  title: entityTitle,
@@ -37,14 +36,14 @@ export const WrappedAssetLink = (props)=>{
37
36
  href: href,
38
37
  size: "small",
39
38
  status: status,
40
- thumbnailElement: entityFile && isValidImage(entityFile) ? /*#__PURE__*/ React.createElement(AssetThumbnail, {
39
+ thumbnailElement: entityFile && isValidImage(entityFile) ? React.createElement(AssetThumbnail, {
41
40
  file: entityFile
42
41
  }) : undefined,
43
- icon: /*#__PURE__*/ React.createElement(ScheduledIconWithTooltip, {
42
+ icon: React.createElement(ScheduledIconWithTooltip, {
44
43
  getEntityScheduledActions: props.getEntityScheduledActions,
45
44
  entityType: "Asset",
46
45
  entityId: props.asset.sys.id
47
- }, /*#__PURE__*/ React.createElement(ClockIcon, {
46
+ }, React.createElement(ClockIcon, {
48
47
  className: styles.scheduleIcon,
49
48
  size: "small",
50
49
  variant: "muted",
@@ -16,7 +16,6 @@ import constate from 'constate';
16
16
  import { createClient } from 'contentful-management';
17
17
  import PQueue from 'p-queue';
18
18
  import { SharedQueryClientProvider, useQuery, useQueryClient } from './queryClient';
19
- // global queue for all requests, the actual number is picked without scientific research
20
19
  const globalQueue = new PQueue({
21
20
  concurrency: 50
22
21
  });
@@ -35,7 +34,6 @@ const isEntityQueryKey = (queryKey)=>{
35
34
  };
36
35
  async function fetchContentfulEntry(params) {
37
36
  const { urn, fetch, options } = params;
38
- // TODO use resource-names package EntryResourceName `fromString` method instead when the package becomes public
39
37
  const resourceId = urn.split(':', 6)[5];
40
38
  const ENTITY_RESOURCE_ID_REGEX = RegExp("^spaces\\/(?<spaceId>[^/]+)(?:\\/environments\\/(?<environmentId>[^/]+))?\\/entries\\/(?<entityId>[^/]+)$");
41
39
  const resourceIdMatch = resourceId.match(ENTITY_RESOURCE_ID_REGEX);
@@ -149,8 +147,7 @@ const [InternalServiceProvider, useFetch, useEntityLoader, useCurrentIds] = cons
149
147
  spaceId,
150
148
  environmentId
151
149
  ];
152
- return fetch(queryKey, // @ts-expect-error
153
- ({ cmaClient })=>{
150
+ return fetch(queryKey, ({ cmaClient })=>{
154
151
  if (entityType === 'Entry') {
155
152
  return cmaClient.entry.get({
156
153
  entryId: entityId,
@@ -172,18 +169,8 @@ const [InternalServiceProvider, useFetch, useEntityLoader, useCurrentIds] = cons
172
169
  currentSpaceId,
173
170
  currentEnvironmentId
174
171
  ]);
175
- /**
176
- * Fetch all scheduled actions for a given entity.
177
- * This function fetches all schedules for all entries and then returns
178
- * a filtered result based on the entityID provided.
179
- *
180
- * The result is then reused/cached for subsequent calls to this function.
181
- */ const getEntityScheduledActions = useCallback(function getEntityScheduledActions(entityType, entityId, options) {
182
- // This is fixed to force the cache to reuse previous results
172
+ const getEntityScheduledActions = useCallback(function getEntityScheduledActions(entityType, entityId, options) {
183
173
  const fixedEntityCacheId = 'scheduledActionEntityId';
184
- // A space+environment combo can only have up to 500 scheduled actions
185
- // With this request we fetch all schedules and can reuse the results.
186
- // See https://www.contentful.com/developers/docs/references/content-management-api/#/reference/scheduled-actions/limitations
187
174
  const maxScheduledActions = 500;
188
175
  const spaceId = options?.spaceId ?? currentSpaceId;
189
176
  const environmentId = options?.environmentId ?? currentEnvironmentId;
@@ -194,7 +181,6 @@ const [InternalServiceProvider, useFetch, useEntityLoader, useCurrentIds] = cons
194
181
  spaceId,
195
182
  environmentId
196
183
  ];
197
- // Fetch + Filter by entity ID in the end
198
184
  return fetch(queryKey, async ({ cmaClient })=>{
199
185
  const response = await cmaClient.scheduledActions.getMany({
200
186
  spaceId,
@@ -239,7 +225,6 @@ const [InternalServiceProvider, useFetch, useEntityLoader, useCurrentIds] = cons
239
225
  currentSpaceId,
240
226
  environmentIds
241
227
  ]);
242
- // @ts-expect-error ...
243
228
  const onEntityChanged = props.sdk.space.onEntityChanged;
244
229
  const onSlideInNavigation = props.sdk.navigator.onSlideInNavigation;
245
230
  useEffect(()=>{
@@ -253,7 +238,6 @@ const [InternalServiceProvider, useFetch, useEntityLoader, useCurrentIds] = cons
253
238
  return onSlideInNavigation(({ oldSlideLevel, newSlideLevel })=>{
254
239
  if (oldSlideLevel > newSlideLevel) {
255
240
  findSameSpaceQueries().forEach((query)=>{
256
- // automatically refetches the query
257
241
  void queryClient.invalidateQueries(query.queryKey);
258
242
  });
259
243
  }
@@ -279,7 +263,6 @@ const [InternalServiceProvider, useFetch, useEntityLoader, useCurrentIds] = cons
279
263
  subscribeQuery(query);
280
264
  }
281
265
  if (type === 'removed') {
282
- // calling unsubscribe
283
266
  entityChangeUnsubscribers.current[queryHash]?.();
284
267
  }
285
268
  });
@@ -346,6 +329,6 @@ export function useResource(resourceType, urn, options) {
346
329
  };
347
330
  }
348
331
  function EntityProvider({ children, ...props }) {
349
- return /*#__PURE__*/ React.createElement(SharedQueryClientProvider, null, /*#__PURE__*/ React.createElement(InternalServiceProvider, props, children));
332
+ return React.createElement(SharedQueryClientProvider, null, React.createElement(InternalServiceProvider, props, children));
350
333
  }
351
334
  export { EntityProvider, useEntityLoader };
@@ -28,11 +28,7 @@ function Editor(props) {
28
28
  const { setValue, entityType, onSortingEnd, setIndexToUpdate } = props;
29
29
  const editorPermissions = useEditorPermissions(props);
30
30
  const items = React.useMemo(()=>{
31
- return (props.items || [])// If null values have found their way into the persisted
32
- // value for the multiref field, replace them with an object
33
- // that has the shape of a Link to make the missing entry/asset
34
- // card render
35
- .map((link)=>link || nullableValue);
31
+ return (props.items || []).map((link)=>link || nullableValue);
36
32
  }, [
37
33
  props.items
38
34
  ]);
@@ -41,8 +37,6 @@ function Editor(props) {
41
37
  document.body.classList.add('grabbing');
42
38
  }, []);
43
39
  const onSortEnd = useCallback(({ oldIndex, newIndex })=>{
44
- // custom callback that is invoked *before* we sort the array
45
- // e.g. in Compose we want to sort the references in the referenceMap before re-rendering drag and drop
46
40
  onSortingEnd && onSortingEnd({
47
41
  oldIndex,
48
42
  newIndex
@@ -86,25 +80,24 @@ function Editor(props) {
86
80
  onLink,
87
81
  itemsLength: items.length
88
82
  });
89
- const customCardRenderer = useCallback((cardProps, _, renderDefaultCard)=>props.renderCustomCard ? props.renderCustomCard(cardProps, linkActionsProps, renderDefaultCard) : false, // eslint-disable-next-line react-hooks/exhaustive-deps -- TODO: Evaluate the dependencies
90
- [
83
+ const customCardRenderer = useCallback((cardProps, _, renderDefaultCard)=>props.renderCustomCard ? props.renderCustomCard(cardProps, linkActionsProps, renderDefaultCard) : false, [
91
84
  linkActionsProps
92
85
  ]);
93
- return /*#__PURE__*/ React.createElement(React.Fragment, null, props.children({
86
+ return React.createElement(React.Fragment, null, props.children({
94
87
  ...props,
95
88
  onSortStart,
96
89
  onSortEnd,
97
90
  onMove,
98
91
  renderCustomCard: props.renderCustomCard && customCardRenderer
99
- }), /*#__PURE__*/ React.createElement(LinkEntityActions, {
92
+ }), React.createElement(LinkEntityActions, {
100
93
  renderCustomActions: props.renderCustomActions,
101
94
  ...linkActionsProps
102
95
  }));
103
96
  }
104
97
  export function MultipleReferenceEditor(props) {
105
98
  const allContentTypes = props.sdk.space.getCachedContentTypes();
106
- return /*#__PURE__*/ React.createElement(ReferenceEditor, props, ({ value, disabled, setValue, externalReset })=>{
107
- return /*#__PURE__*/ React.createElement(Editor, {
99
+ return React.createElement(ReferenceEditor, props, ({ value, disabled, setValue, externalReset })=>{
100
+ return React.createElement(Editor, {
108
101
  ...props,
109
102
  items: value || emptyArray,
110
103
  isDisabled: disabled,
@@ -3,9 +3,9 @@ import { FieldConnector } from '@contentful/field-editor-shared';
3
3
  import deepEqual from 'deep-equal';
4
4
  import { EntityProvider } from './EntityStore';
5
5
  export function ReferenceEditor(props) {
6
- return /*#__PURE__*/ React.createElement(EntityProvider, {
6
+ return React.createElement(EntityProvider, {
7
7
  sdk: props.sdk
8
- }, /*#__PURE__*/ React.createElement(FieldConnector, {
8
+ }, React.createElement(FieldConnector, {
9
9
  debounce: 0,
10
10
  field: props.sdk.field,
11
11
  isInitiallyDisabled: props.isInitiallyDisabled,
@@ -37,13 +37,11 @@ function Editor(props) {
37
37
  onCreate,
38
38
  onLink
39
39
  });
40
- // Inject card actions props into the given custom card renderer
41
- const customCardRenderer = useCallback((cardProps, _, renderDefaultCard)=>props.renderCustomCard ? props.renderCustomCard(cardProps, linkActionsProps, renderDefaultCard) : false, // eslint-disable-next-line react-hooks/exhaustive-deps -- TODO: Evaluate the dependencies
42
- [
40
+ const customCardRenderer = useCallback((cardProps, _, renderDefaultCard)=>props.renderCustomCard ? props.renderCustomCard(cardProps, linkActionsProps, renderDefaultCard) : false, [
43
41
  linkActionsProps
44
42
  ]);
45
43
  if (!props.entityId) {
46
- return /*#__PURE__*/ React.createElement(LinkEntityActions, {
44
+ return React.createElement(LinkEntityActions, {
47
45
  renderCustomActions: props.renderCustomActions,
48
46
  ...linkActionsProps
49
47
  });
@@ -55,8 +53,8 @@ function Editor(props) {
55
53
  }
56
54
  export function SingleReferenceEditor(props) {
57
55
  const allContentTypes = props.sdk.space.getCachedContentTypes();
58
- return /*#__PURE__*/ React.createElement(ReferenceEditor, props, ({ value, setValue, disabled, externalReset })=>{
59
- return /*#__PURE__*/ React.createElement(Editor, {
56
+ return React.createElement(ReferenceEditor, props, ({ value, setValue, disabled, externalReset })=>{
57
+ return React.createElement(Editor, {
60
58
  ...props,
61
59
  key: `${externalReset}-reference`,
62
60
  entityId: value ? value.sys.id : '',
@@ -34,16 +34,16 @@ const SortableLink = ({ id, items, item, isDisabled = false, index, children })=
34
34
  };
35
35
  const DragHandle = React.useCallback((props)=>{
36
36
  const SortableDragHandle = ()=>props.drag;
37
- return /*#__PURE__*/ React.createElement("div", {
37
+ return React.createElement("div", {
38
38
  ref: setActivatorNodeRef,
39
39
  className: styles.dragHandle,
40
40
  ...listeners
41
- }, /*#__PURE__*/ React.createElement(SortableDragHandle, null));
41
+ }, React.createElement(SortableDragHandle, null));
42
42
  }, [
43
43
  listeners,
44
44
  setActivatorNodeRef
45
45
  ]);
46
- return /*#__PURE__*/ React.createElement("div", {
46
+ return React.createElement("div", {
47
47
  ref: setNodeRef,
48
48
  style: style,
49
49
  className: cx(styles.item, {
@@ -86,17 +86,17 @@ export const SortableLinkList = ({ items, isDisabled, className, children, onSor
86
86
  sortIDs,
87
87
  rearrangeSortIDs
88
88
  ]);
89
- return /*#__PURE__*/ React.createElement(DndContext, {
89
+ return React.createElement(DndContext, {
90
90
  onDragStart: onSortStartHandler,
91
91
  onDragEnd: onSortEndHandler
92
- }, /*#__PURE__*/ React.createElement(SortableContext, {
92
+ }, React.createElement(SortableContext, {
93
93
  items: sortIDs,
94
94
  strategy: sortingStrategy
95
- }, /*#__PURE__*/ React.createElement("div", {
95
+ }, React.createElement("div", {
96
96
  className: cx(styles.container, className)
97
97
  }, items.map((item, index)=>{
98
98
  const id = sortIDs[index]?.id;
99
- return /*#__PURE__*/ React.createElement(SortableLink, {
99
+ return React.createElement(SortableLink, {
100
100
  key: id,
101
101
  id: id,
102
102
  items: items,
@@ -1,9 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { QueryClient, useQuery as useRQ } from '@tanstack/react-query';
3
- /**
4
- * A custom client context ensures zero conflict with host apps also using
5
- * React Query.
6
- */ const clientContext = /*#__PURE__*/ React.createContext(undefined);
3
+ const clientContext = React.createContext(undefined);
7
4
  export function useQueryClient() {
8
5
  const client = React.useContext(clientContext);
9
6
  return React.useMemo(()=>{
@@ -26,19 +23,15 @@ export function useQueryClient() {
26
23
  client
27
24
  ]);
28
25
  }
29
- // @ts-expect-error
30
26
  export const useQuery = (key, fn, opt)=>{
31
27
  return useRQ(key, fn, {
32
28
  ...opt,
33
29
  context: clientContext
34
30
  });
35
31
  };
36
- /**
37
- * Provides access to a query client either by sharing an existing client or
38
- * creating a new one.
39
- */ export function SharedQueryClientProvider({ children }) {
32
+ export function SharedQueryClientProvider({ children }) {
40
33
  const client = useQueryClient();
41
- return /*#__PURE__*/ React.createElement(clientContext.Provider, {
34
+ return React.createElement(clientContext.Provider, {
42
35
  value: client
43
36
  }, children);
44
37
  }
@@ -1,7 +1,6 @@
1
1
  import { useEffect, useMemo, useState } from 'react';
2
2
  import { useAccessApi } from './useAccessApi';
3
3
  async function filter(arr, predicate) {
4
- // intentionally parallel as we assume it's cached in the implementation of the access api
5
4
  const fail = Symbol();
6
5
  const results = await Promise.all(arr.map(async (item)=>await predicate(item) ? item : fail));
7
6
  return results.filter((x)=>x !== fail);
@@ -31,7 +30,6 @@ export function useContentTypePermissions(props) {
31
30
  setCreatableContentTypes(creatable);
32
31
  }
33
32
  void checkContentTypeAccess();
34
- // eslint-disable-next-line react-hooks/exhaustive-deps -- TODO: Evaluate the dependencies
35
33
  }, [
36
34
  availableContentTypes
37
35
  ]);