@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
@@ -8,8 +8,8 @@ Object.defineProperty(exports, "SortableLinkList", {
8
8
  return SortableLinkList;
9
9
  }
10
10
  });
11
- const _react = /*#__PURE__*/ _interop_require_default(require("react"));
12
- const _f36tokens = /*#__PURE__*/ _interop_require_default(require("@contentful/f36-tokens"));
11
+ const _react = _interop_require_default(require("react"));
12
+ const _f36tokens = _interop_require_default(require("@contentful/f36-tokens"));
13
13
  const _core = require("@dnd-kit/core");
14
14
  const _sortable = require("@dnd-kit/sortable");
15
15
  const _utilities = require("@dnd-kit/utilities");
@@ -49,16 +49,16 @@ const SortableLink = ({ id, items, item, isDisabled = false, index, children })=
49
49
  };
50
50
  const DragHandle = _react.default.useCallback((props)=>{
51
51
  const SortableDragHandle = ()=>props.drag;
52
- return /*#__PURE__*/ _react.default.createElement("div", {
52
+ return _react.default.createElement("div", {
53
53
  ref: setActivatorNodeRef,
54
54
  className: styles.dragHandle,
55
55
  ...listeners
56
- }, /*#__PURE__*/ _react.default.createElement(SortableDragHandle, null));
56
+ }, _react.default.createElement(SortableDragHandle, null));
57
57
  }, [
58
58
  listeners,
59
59
  setActivatorNodeRef
60
60
  ]);
61
- return /*#__PURE__*/ _react.default.createElement("div", {
61
+ return _react.default.createElement("div", {
62
62
  ref: setNodeRef,
63
63
  style: style,
64
64
  className: (0, _emotion.cx)(styles.item, {
@@ -101,17 +101,17 @@ const SortableLinkList = ({ items, isDisabled, className, children, onSortStart,
101
101
  sortIDs,
102
102
  rearrangeSortIDs
103
103
  ]);
104
- return /*#__PURE__*/ _react.default.createElement(_core.DndContext, {
104
+ return _react.default.createElement(_core.DndContext, {
105
105
  onDragStart: onSortStartHandler,
106
106
  onDragEnd: onSortEndHandler
107
- }, /*#__PURE__*/ _react.default.createElement(_sortable.SortableContext, {
107
+ }, _react.default.createElement(_sortable.SortableContext, {
108
108
  items: sortIDs,
109
109
  strategy: sortingStrategy
110
- }, /*#__PURE__*/ _react.default.createElement("div", {
110
+ }, _react.default.createElement("div", {
111
111
  className: (0, _emotion.cx)(styles.container, className)
112
112
  }, items.map((item, index)=>{
113
113
  const id = sortIDs[index]?.id;
114
- return /*#__PURE__*/ _react.default.createElement(SortableLink, {
114
+ return _react.default.createElement(SortableLink, {
115
115
  key: id,
116
116
  id: id,
117
117
  items: items,
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
5
+ const _react = _interop_require_wildcard(require("react"));
6
6
  function _getRequireWildcardCache(nodeInterop) {
7
7
  if (typeof WeakMap !== "function") return null;
8
8
  var cacheBabelInterop = new WeakMap();
@@ -19,7 +19,7 @@ _export(exports, {
19
19
  return useQueryClient;
20
20
  }
21
21
  });
22
- const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
22
+ const _react = _interop_require_wildcard(require("react"));
23
23
  const _reactquery = require("@tanstack/react-query");
24
24
  function _getRequireWildcardCache(nodeInterop) {
25
25
  if (typeof WeakMap !== "function") return null;
@@ -62,10 +62,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
62
62
  }
63
63
  return newObj;
64
64
  }
65
- /**
66
- * A custom client context ensures zero conflict with host apps also using
67
- * React Query.
68
- */ const clientContext = /*#__PURE__*/ _react.createContext(undefined);
65
+ const clientContext = _react.createContext(undefined);
69
66
  function useQueryClient() {
70
67
  const client = _react.useContext(clientContext);
71
68
  return _react.useMemo(()=>{
@@ -96,7 +93,7 @@ const useQuery = (key, fn, opt)=>{
96
93
  };
97
94
  function SharedQueryClientProvider({ children }) {
98
95
  const client = useQueryClient();
99
- return /*#__PURE__*/ _react.createElement(clientContext.Provider, {
96
+ return _react.createElement(clientContext.Provider, {
100
97
  value: client
101
98
  }, children);
102
99
  }
@@ -11,7 +11,6 @@ Object.defineProperty(exports, "useContentTypePermissions", {
11
11
  const _react = require("react");
12
12
  const _useAccessApi = require("./useAccessApi");
13
13
  async function filter(arr, predicate) {
14
- // intentionally parallel as we assume it's cached in the implementation of the access api
15
14
  const fail = Symbol();
16
15
  const results = await Promise.all(arr.map(async (item)=>await predicate(item) ? item : fail));
17
16
  return results.filter((x)=>x !== fail);
@@ -41,7 +40,6 @@ function useContentTypePermissions(props) {
41
40
  setCreatableContentTypes(creatable);
42
41
  }
43
42
  void checkContentTypeAccess();
44
- // eslint-disable-next-line react-hooks/exhaustive-deps -- TODO: Evaluate the dependencies
45
43
  }, [
46
44
  availableContentTypes
47
45
  ]);
@@ -31,20 +31,15 @@ function useEditorPermissions(props) {
31
31
  }
32
32
  async function checkCreateAccess() {
33
33
  if (entityType === 'Asset') {
34
- // Hardcoded `true` value following https://contentful.atlassian.net/browse/DANTE-486
35
- // TODO: refine permissions check in order to account for tags in rules
36
34
  const canCreate = await canPerformAction('create', 'Asset') || true;
37
35
  setCanCreateEntity(canCreate);
38
36
  }
39
37
  if (entityType === 'Entry') {
40
- // Hardcoded `true` value following https://contentful.atlassian.net/browse/DANTE-486
41
- // TODO: refine permissions check in order to account for tags in rules
42
38
  const canCreate = creatableContentTypes.length > 0 || true;
43
39
  setCanCreateEntity(canCreate);
44
40
  }
45
41
  }
46
42
  void checkCreateAccess();
47
- // eslint-disable-next-line react-hooks/exhaustive-deps -- TODO: Evaluate the dependencies
48
43
  }, [
49
44
  entityType,
50
45
  parameters.instance,
@@ -57,22 +52,15 @@ function useEditorPermissions(props) {
57
52
  }
58
53
  async function checkLinkAccess() {
59
54
  if (entityType === 'Asset') {
60
- // Hardcoded `true` value following https://contentful.atlassian.net/browse/DANTE-486
61
- // TODO: refine permissions check in order to account for tags in rules
62
55
  const canRead = await canPerformAction('read', 'Asset') || true;
63
56
  setCanLinkEntity(canRead);
64
57
  }
65
58
  if (entityType === 'Entry') {
66
- // Hardcoded `true` value following https://contentful.atlassian.net/browse/DANTE-486
67
- // TODO: refine permissions check in order to account for tags in rules
68
- // TODO: always show every content type (it's just a filter) to avoid people not seeing
69
- // their (partly limited) content types
70
59
  const canRead = true;
71
60
  setCanLinkEntity(canRead);
72
61
  }
73
62
  }
74
63
  void checkLinkAccess();
75
- // eslint-disable-next-line react-hooks/exhaustive-deps -- TODO: Evaluate the dependencies
76
64
  }, [
77
65
  entityType,
78
66
  parameters.instance
@@ -134,7 +134,6 @@ describe('useEditorPermissions', ()=>{
134
134
  });
135
135
  expect(result.current.canLinkEntity).toBe(true);
136
136
  });
137
- // eslint-disable-next-line -- TODO: describe this disable jest/no-test-prefixes
138
137
  it.skip(`denies creation when no content-type can be read`, async ()=>{
139
138
  const allContentTypes = [
140
139
  makeContentType('one'),
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "AssetThumbnail", {
8
8
  return AssetThumbnail;
9
9
  }
10
10
  });
11
- const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
11
+ const _react = _interop_require_wildcard(require("react"));
12
12
  function _getRequireWildcardCache(nodeInterop) {
13
13
  if (typeof WeakMap !== "function") return null;
14
14
  var cacheBabelInterop = new WeakMap();
@@ -55,7 +55,7 @@ const dimensions = {
55
55
  height: 70
56
56
  };
57
57
  function AssetThumbnail(props) {
58
- return /*#__PURE__*/ _react.createElement("img", {
58
+ return _react.createElement("img", {
59
59
  alt: props.file.fileName,
60
60
  src: `${props.file.url}?w=${dimensions.width}&h=${dimensions.height}&fit=thumb`,
61
61
  height: dimensions.height,
@@ -8,12 +8,12 @@ Object.defineProperty(exports, "CreateEntryLinkButton", {
8
8
  return CreateEntryLinkButton;
9
9
  }
10
10
  });
11
- const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
11
+ const _react = _interop_require_wildcard(require("react"));
12
12
  const _f36components = require("@contentful/f36-components");
13
13
  const _f36icons = require("@contentful/f36-icons");
14
- const _f36tokens = /*#__PURE__*/ _interop_require_default(require("@contentful/f36-tokens"));
14
+ const _f36tokens = _interop_require_default(require("@contentful/f36-tokens"));
15
15
  const _emotion = require("emotion");
16
- const _get = /*#__PURE__*/ _interop_require_default(require("lodash/get"));
16
+ const _get = _interop_require_default(require("lodash/get"));
17
17
  const _CreateEntryMenuTrigger = require("./CreateEntryMenuTrigger");
18
18
  function _interop_require_default(obj) {
19
19
  return obj && obj.__esModule ? obj : {
@@ -80,12 +80,10 @@ const CreateEntryLinkButton = ({ contentTypes, onSelect, customDropdownItems, te
80
80
  const suggestedContentType = contentTypes.find((ct)=>ct.sys.id === suggestedContentTypeId);
81
81
  const buttonText = text || `Add ${(0, _get.default)(suggestedContentType || (contentTypes.length === 1 ? contentTypes[0] : {}), 'name', 'entry')}`;
82
82
  const hasDropdown = contentTypes.length > 1 || customDropdownItems;
83
- // TODO: Introduce `icon: string` and remove `hasPlusIcon` or remove "Plus" if we keep new layout.
84
- const plusIcon = hasPlusIcon ? /*#__PURE__*/ _react.createElement(_f36icons.PlusIcon, null) : undefined;
85
- // TODO: Always use "New content" here if we fully switch to new layout.
83
+ const plusIcon = hasPlusIcon ? _react.createElement(_f36icons.PlusIcon, null) : undefined;
86
84
  const contentTypesLabel = useExperimentalStyles ? 'New content' : undefined;
87
85
  const styles = useExperimentalStyles ? redesignStyles : standardStyles;
88
- return /*#__PURE__*/ _react.createElement(_CreateEntryMenuTrigger.CreateEntryMenuTrigger, {
86
+ return _react.createElement(_CreateEntryMenuTrigger.CreateEntryMenuTrigger, {
89
87
  contentTypes: contentTypes,
90
88
  suggestedContentTypeId: suggestedContentTypeId,
91
89
  contentTypesLabel: contentTypesLabel,
@@ -93,8 +91,8 @@ const CreateEntryLinkButton = ({ contentTypes, onSelect, customDropdownItems, te
93
91
  testId: testId,
94
92
  dropdownSettings: dropdownSettings,
95
93
  customDropdownItems: customDropdownItems
96
- }, ({ isSelecting })=>/*#__PURE__*/ _react.createElement(_f36components.Button, {
97
- endIcon: hasDropdown ? /*#__PURE__*/ _react.createElement(_f36icons.ChevronDownIcon, null) : undefined,
94
+ }, ({ isSelecting })=>_react.createElement(_f36components.Button, {
95
+ endIcon: hasDropdown ? _react.createElement(_f36icons.ChevronDownIcon, null) : undefined,
98
96
  variant: "secondary",
99
97
  className: styles.action,
100
98
  isDisabled: disabled || isSelecting,
@@ -2,10 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
5
+ const _react = _interop_require_wildcard(require("react"));
6
6
  require("@testing-library/jest-dom");
7
7
  const _react1 = require("@testing-library/react");
8
- const _noop = /*#__PURE__*/ _interop_require_default(require("lodash/noop"));
8
+ const _noop = _interop_require_default(require("lodash/noop"));
9
9
  const _CreateEntryLinkButton = require("./CreateEntryLinkButton");
10
10
  function _interop_require_default(obj) {
11
11
  return obj && obj.__esModule ? obj : {
@@ -87,14 +87,14 @@ describe('CreateEntryLinkButton general', ()=>{
87
87
  }
88
88
  };
89
89
  it('renders with multiple content types as list', ()=>{
90
- const { getByTestId } = (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, props));
90
+ const { getByTestId } = (0, _react1.render)(_react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, props));
91
91
  expect(getByTestId('create-entry-button-menu-trigger')).toBeDefined();
92
92
  const link = findButton(getByTestId);
93
93
  expect(link).toBeDefined();
94
94
  expect(link.textContent).toBe('Add entry');
95
95
  });
96
96
  it('renders dropdown menu on click when with multiple content types', ()=>{
97
- const { getByTestId } = (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, props));
97
+ const { getByTestId } = (0, _react1.render)(_react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, props));
98
98
  _react1.fireEvent.click(findButton(getByTestId));
99
99
  const menu = getByTestId('add-entry-menu');
100
100
  expect(menu).toBeDefined();
@@ -104,7 +104,7 @@ describe('CreateEntryLinkButton general', ()=>{
104
104
  });
105
105
  it('renders suggestedContentType as text when given', ()=>{
106
106
  const suggestedContentTypeId = 'ID_2';
107
- const { getByTestId } = (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
107
+ const { getByTestId } = (0, _react1.render)(_react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
108
108
  ...props,
109
109
  suggestedContentTypeId: suggestedContentTypeId
110
110
  }));
@@ -114,7 +114,7 @@ describe('CreateEntryLinkButton general', ()=>{
114
114
  expect(button.textContent).toBe(`Add ${CONTENT_TYPE_2.name}`);
115
115
  });
116
116
  it('renders the name of the content type as part of the text if only 1 content type is given', ()=>{
117
- const { getByTestId } = (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
117
+ const { getByTestId } = (0, _react1.render)(_react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
118
118
  onSelect: props.onSelect,
119
119
  contentTypes: [
120
120
  CONTENT_TYPE_1
@@ -130,7 +130,7 @@ describe('CreateEntryLinkButton general', ()=>{
130
130
  text: 'CUSTOM_TEXT',
131
131
  hasPlusIcon: true
132
132
  };
133
- const { getByTestId } = (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
133
+ const { getByTestId } = (0, _react1.render)(_react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
134
134
  ...props,
135
135
  ...propsOverrides
136
136
  }));
@@ -151,13 +151,13 @@ describe('CreateEntryLinkButton with multiple entries', ()=>{
151
151
  }
152
152
  };
153
153
  it('should render dropdown items for each content type', ()=>{
154
- const { getByTestId, getAllByTestId } = (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, props));
154
+ const { getByTestId, getAllByTestId } = (0, _react1.render)(_react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, props));
155
155
  _react1.fireEvent.click(findButton(getByTestId));
156
156
  expect(getAllByTestId('contentType')).toHaveLength(props.contentTypes.length);
157
157
  });
158
158
  it('calls onSelect after click on menu item', ()=>{
159
159
  const selectSpy = jest.fn();
160
- const { getByTestId, getAllByTestId } = (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
160
+ const { getByTestId, getAllByTestId } = (0, _react1.render)(_react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
161
161
  ...props,
162
162
  onSelect: selectSpy
163
163
  }));
@@ -177,7 +177,7 @@ describe('CreateEntryLinkButton with a single entry', ()=>{
177
177
  };
178
178
  it('should fire the onSelect function when clicked', ()=>{
179
179
  const onSelectStub = jest.fn();
180
- const { getByTestId } = (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
180
+ const { getByTestId } = (0, _react1.render)(_react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
181
181
  ...props,
182
182
  onSelect: onSelectStub
183
183
  }));
@@ -189,7 +189,7 @@ describe('CreateEntryLinkButton with a single entry', ()=>{
189
189
  describe('CreateEntryLinkButton common', ()=>{
190
190
  it('should render a spinner if onSelect returns a promise', async ()=>{
191
191
  const onSelect = jest.fn(()=>new Promise((resolve)=>setTimeout(resolve, 1000)));
192
- const { getByTestId, container } = (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
192
+ const { getByTestId, container } = (0, _react1.render)(_react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
193
193
  contentTypes: [
194
194
  CONTENT_TYPE_1
195
195
  ],
@@ -205,7 +205,7 @@ describe('CreateEntryLinkButton common', ()=>{
205
205
  });
206
206
  it('should hide a spinner after the promise from onSelect resolves', async ()=>{
207
207
  const onSelect = jest.fn(()=>new Promise((resolve)=>setTimeout(resolve, 500)));
208
- const { getByTestId, container } = (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
208
+ const { getByTestId, container } = (0, _react1.render)(_react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
209
209
  contentTypes: [
210
210
  CONTENT_TYPE_1
211
211
  ],
@@ -222,7 +222,7 @@ describe('CreateEntryLinkButton common', ()=>{
222
222
  });
223
223
  it('does not emit onSelect on subsequent click before the promise from onSelect resolves', async ()=>{
224
224
  const onSelect = jest.fn(()=>new Promise((resolve)=>setTimeout(()=>resolve(undefined), 200)));
225
- const { getByTestId } = (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
225
+ const { getByTestId } = (0, _react1.render)(_react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
226
226
  contentTypes: [
227
227
  CONTENT_TYPE_1
228
228
  ],
@@ -238,7 +238,7 @@ describe('CreateEntryLinkButton common', ()=>{
238
238
  });
239
239
  it('emits onSelect on subsequent click after the promise from onSelect resolves', async ()=>{
240
240
  const onSelect = jest.fn(()=>Promise.resolve());
241
- const { getByTestId } = (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
241
+ const { getByTestId } = (0, _react1.render)(_react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
242
242
  contentTypes: [
243
243
  CONTENT_TYPE_1
244
244
  ],
@@ -1,4 +1,4 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */ "use strict";
1
+ "use strict";
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
@@ -8,12 +8,12 @@ Object.defineProperty(exports, "CreateEntryMenuTrigger", {
8
8
  return CreateEntryMenuTrigger;
9
9
  }
10
10
  });
11
- const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
11
+ const _react = _interop_require_wildcard(require("react"));
12
12
  const _f36components = require("@contentful/f36-components");
13
13
  const _f36icons = require("@contentful/f36-icons");
14
- const _f36tokens = /*#__PURE__*/ _interop_require_default(require("@contentful/f36-tokens"));
14
+ const _f36tokens = _interop_require_default(require("@contentful/f36-tokens"));
15
15
  const _emotion = require("emotion");
16
- const _get = /*#__PURE__*/ _interop_require_default(require("lodash/get"));
16
+ const _get = _interop_require_default(require("lodash/get"));
17
17
  function _interop_require_default(obj) {
18
18
  return obj && obj.__esModule ? obj : {
19
19
  default: obj
@@ -101,14 +101,7 @@ const CreateEntryMenuTrigger = ({ contentTypes, suggestedContentTypeId, contentT
101
101
  const wrapper = (0, _react.useRef)(null);
102
102
  const textField = (0, _react.useRef)(null);
103
103
  const menuListRef = (0, _react.useRef)(null);
104
- /*
105
- By default, dropdown wraps it's content, so it's width = the width of the widest item
106
- During search, menu items change, and so the widest menu item can change
107
- This leads to menu always changing it's width
108
- To prevent this, we get the width of the menu item after the first mount of a dropdown (when all the content is displayed)
109
- And hardcode it through the class name. This way we ensure that even during search the menu will keep that max width
110
- That it had on initial mount and that fits any menu item in has
111
- */ const [dropdownWidth, setDropdownWidth] = (0, _react.useState)();
104
+ const [dropdownWidth, setDropdownWidth] = (0, _react.useState)();
112
105
  const hasDropdown = contentTypes.length > 1 || !!customDropdownItems;
113
106
  const closeMenu = ()=>setOpen(false);
114
107
  (0, _react.useEffect)(()=>{
@@ -133,7 +126,6 @@ const CreateEntryMenuTrigger = ({ contentTypes, suggestedContentTypeId, contentT
133
126
  const handleSelect = (item)=>{
134
127
  closeMenu();
135
128
  const res = onSelect(item.sys.id);
136
- // TODO: Convert to controllable component.
137
129
  if (res && typeof res.then === 'function') {
138
130
  setSelecting(true);
139
131
  res.then(()=>setSelecting(false), ()=>setSelecting(false));
@@ -153,28 +145,28 @@ const CreateEntryMenuTrigger = ({ contentTypes, suggestedContentTypeId, contentT
153
145
  }, [
154
146
  isOpen
155
147
  ]);
156
- const renderSearchResultsCount = (resultsLength)=>resultsLength ? /*#__PURE__*/ _react.default.createElement(_f36components.Menu.SectionTitle, {
148
+ const renderSearchResultsCount = (resultsLength)=>resultsLength ? _react.default.createElement(_f36components.Menu.SectionTitle, {
157
149
  testId: "add-entru-menu-search-results"
158
150
  }, resultsLength, " result", resultsLength > 1 ? 's' : '') : null;
159
151
  const isSearchable = contentTypes.length > MAX_ITEMS_WITHOUT_SEARCH;
160
152
  const maxDropdownHeight = suggestedContentTypeId ? 300 : 250;
161
153
  const suggestedContentType = contentTypes.find((ct)=>ct.sys.id === suggestedContentTypeId);
162
154
  const filteredContentTypes = contentTypes.filter((ct)=>!searchInput || (0, _get.default)(ct, 'name', 'Untitled').toLowerCase().includes(searchInput.toLowerCase()));
163
- return /*#__PURE__*/ _react.default.createElement("span", {
155
+ return _react.default.createElement("span", {
164
156
  className: styles.wrapper,
165
157
  ref: wrapper,
166
158
  "data-test-id": testId
167
- }, /*#__PURE__*/ _react.default.createElement(_f36components.Menu, {
159
+ }, _react.default.createElement(_f36components.Menu, {
168
160
  placement: menuPlacementMap[dropdownSettings.position],
169
161
  isAutoalignmentEnabled: dropdownSettings.isAutoalignmentEnabled,
170
162
  isOpen: isOpen,
171
163
  onClose: closeMenu,
172
164
  onOpen: handleMenuOpen,
173
165
  ...menuProps
174
- }, /*#__PURE__*/ _react.default.createElement(_f36components.Menu.Trigger, null, children({
166
+ }, _react.default.createElement(_f36components.Menu.Trigger, null, children({
175
167
  isOpen,
176
168
  isSelecting
177
- })), isOpen && /*#__PURE__*/ _react.default.createElement(_f36components.Menu.List, {
169
+ })), isOpen && _react.default.createElement(_f36components.Menu.List, {
178
170
  className: styles.dropdownList,
179
171
  style: {
180
172
  width: dropdownWidth != undefined ? `${dropdownWidth}px` : undefined,
@@ -182,25 +174,25 @@ const CreateEntryMenuTrigger = ({ contentTypes, suggestedContentTypeId, contentT
182
174
  },
183
175
  ref: menuListRef,
184
176
  testId: "add-entry-menu"
185
- }, Boolean(customDropdownItems) && /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, customDropdownItems, /*#__PURE__*/ _react.default.createElement(_f36components.Menu.Divider, null)), isSearchable && /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement("div", {
177
+ }, Boolean(customDropdownItems) && _react.default.createElement(_react.default.Fragment, null, customDropdownItems, _react.default.createElement(_f36components.Menu.Divider, null)), isSearchable && _react.default.createElement(_react.default.Fragment, null, _react.default.createElement("div", {
186
178
  ref: textField,
187
179
  className: styles.inputWrapper
188
- }, /*#__PURE__*/ _react.default.createElement(_f36components.TextInput, {
180
+ }, _react.default.createElement(_f36components.TextInput, {
189
181
  className: styles.searchInput,
190
182
  placeholder: "Search all content types",
191
183
  testId: "add-entry-menu-search",
192
184
  value: searchInput,
193
185
  onChange: (e)=>setSearchInput(e.target.value)
194
- }), /*#__PURE__*/ _react.default.createElement(_f36icons.SearchIcon, {
186
+ }), _react.default.createElement(_f36icons.SearchIcon, {
195
187
  className: styles.searchIcon
196
- })), /*#__PURE__*/ _react.default.createElement(_f36components.Menu.Divider, null)), searchInput && renderSearchResultsCount(filteredContentTypes.length), suggestedContentType && !searchInput && /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement(_f36components.Menu.SectionTitle, null, "Suggested Content Type"), /*#__PURE__*/ _react.default.createElement(_f36components.Menu.Item, {
188
+ })), _react.default.createElement(_f36components.Menu.Divider, null)), searchInput && renderSearchResultsCount(filteredContentTypes.length), suggestedContentType && !searchInput && _react.default.createElement(_react.default.Fragment, null, _react.default.createElement(_f36components.Menu.SectionTitle, null, "Suggested Content Type"), _react.default.createElement(_f36components.Menu.Item, {
197
189
  testId: "suggested",
198
190
  onClick: ()=>handleSelect(suggestedContentType)
199
- }, (0, _get.default)(suggestedContentType, 'name')), /*#__PURE__*/ _react.default.createElement(_f36components.Menu.Divider, null)), !searchInput && /*#__PURE__*/ _react.default.createElement(_f36components.Menu.SectionTitle, null, contentTypesLabel), filteredContentTypes.length ? filteredContentTypes.map((contentType, i)=>/*#__PURE__*/ _react.default.createElement(_f36components.Menu.Item, {
191
+ }, (0, _get.default)(suggestedContentType, 'name')), _react.default.createElement(_f36components.Menu.Divider, null)), !searchInput && _react.default.createElement(_f36components.Menu.SectionTitle, null, contentTypesLabel), filteredContentTypes.length ? filteredContentTypes.map((contentType, i)=>_react.default.createElement(_f36components.Menu.Item, {
200
192
  testId: "contentType",
201
193
  key: `${(0, _get.default)(contentType, 'name')}-${i}`,
202
194
  onClick: ()=>handleSelect(contentType)
203
- }, (0, _get.default)(contentType, 'name', 'Untitled'))) : /*#__PURE__*/ _react.default.createElement(_f36components.Menu.Item, {
195
+ }, (0, _get.default)(contentType, 'name', 'Untitled'))) : _react.default.createElement(_f36components.Menu.Item, {
204
196
  testId: "add-entru-menu-search-results"
205
197
  }, "No results found"))));
206
198
  };
@@ -2,12 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
5
+ const _react = _interop_require_wildcard(require("react"));
6
6
  const _f36components = require("@contentful/f36-components");
7
7
  require("@testing-library/jest-dom/extend-expect");
8
8
  const _react1 = require("@testing-library/react");
9
- const _noop = /*#__PURE__*/ _interop_require_default(require("lodash/noop"));
10
- const _fill = /*#__PURE__*/ _interop_require_default(require("lodash/fill"));
9
+ const _noop = _interop_require_default(require("lodash/noop"));
10
+ const _fill = _interop_require_default(require("lodash/fill"));
11
11
  const _CreateEntryMenuTrigger = require("./CreateEntryMenuTrigger");
12
12
  function _interop_require_default(obj) {
13
13
  return obj && obj.__esModule ? obj : {
@@ -89,7 +89,7 @@ describe('CreateEntryMenuTrigger general', ()=>{
89
89
  };
90
90
  let stub = jest.fn();
91
91
  beforeEach(()=>{
92
- stub = jest.fn().mockImplementation(()=>/*#__PURE__*/ _react.createElement(_f36components.Button, {
92
+ stub = jest.fn().mockImplementation(()=>_react.createElement(_f36components.Button, {
93
93
  testId: "menu-trigger"
94
94
  }));
95
95
  });
@@ -97,13 +97,13 @@ describe('CreateEntryMenuTrigger general', ()=>{
97
97
  const stub = (api)=>{
98
98
  expect(api.isOpen).toBe(false);
99
99
  expect(api.isSelecting).toBe(false);
100
- return /*#__PURE__*/ _react.createElement("span", null);
100
+ return _react.createElement("span", null);
101
101
  };
102
- (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryMenuTrigger.CreateEntryMenuTrigger, props, stub));
102
+ (0, _react1.render)(_react.createElement(_CreateEntryMenuTrigger.CreateEntryMenuTrigger, props, stub));
103
103
  });
104
104
  it('should set isSelecting to true in case onSelect returns a promise', async ()=>{
105
105
  const selectStub = jest.fn(()=>new Promise((resolve)=>setTimeout(resolve, 1000)));
106
- const { getAllByTestId, getByTestId } = (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryMenuTrigger.CreateEntryMenuTrigger, {
106
+ const { getAllByTestId, getByTestId } = (0, _react1.render)(_react.createElement(_CreateEntryMenuTrigger.CreateEntryMenuTrigger, {
107
107
  ...props,
108
108
  onSelect: selectStub
109
109
  }, stub));
@@ -117,7 +117,7 @@ describe('CreateEntryMenuTrigger general', ()=>{
117
117
  });
118
118
  it('should not set isSelecting to true in case onSelect is sync', async ()=>{
119
119
  const selectStub = jest.fn();
120
- const { getAllByTestId, getByTestId } = (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryMenuTrigger.CreateEntryMenuTrigger, {
120
+ const { getAllByTestId, getByTestId } = (0, _react1.render)(_react.createElement(_CreateEntryMenuTrigger.CreateEntryMenuTrigger, {
121
121
  ...props,
122
122
  onSelect: selectStub
123
123
  }, stub));
@@ -134,7 +134,7 @@ describe('CreateEntryMenuTrigger general', ()=>{
134
134
  expect(selectStub).toHaveBeenCalled();
135
135
  });
136
136
  it('renders text input if contentTypes.length > 20', ()=>{
137
- const { getByTestId } = (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryMenuTrigger.CreateEntryMenuTrigger, {
137
+ const { getByTestId } = (0, _react1.render)(_react.createElement(_CreateEntryMenuTrigger.CreateEntryMenuTrigger, {
138
138
  ...props,
139
139
  contentTypes: (0, _fill.default)(Array(21), CONTENT_TYPE_3)
140
140
  }, stub));
@@ -145,7 +145,7 @@ describe('CreateEntryMenuTrigger general', ()=>{
145
145
  });
146
146
  it('shows the search results if typed in input', ()=>{
147
147
  const contentTypes = (0, _fill.default)((0, _fill.default)((0, _fill.default)(Array(21), CONTENT_TYPE_1, 0, 10), CONTENT_TYPE_2, 10, 20), CONTENT_TYPE_3, 20);
148
- const { getByTestId, getAllByTestId } = (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryMenuTrigger.CreateEntryMenuTrigger, {
148
+ const { getByTestId, getAllByTestId } = (0, _react1.render)(_react.createElement(_CreateEntryMenuTrigger.CreateEntryMenuTrigger, {
149
149
  ...props,
150
150
  contentTypes: contentTypes
151
151
  }, stub));
@@ -178,7 +178,7 @@ describe('CreateEntryMenuTrigger general', ()=>{
178
178
  expect(getByTestId('add-entru-menu-search-results').textContent).toBe('No results found');
179
179
  });
180
180
  it('shows suggestedContentType in the list', ()=>{
181
- const { getByTestId } = (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryMenuTrigger.CreateEntryMenuTrigger, {
181
+ const { getByTestId } = (0, _react1.render)(_react.createElement(_CreateEntryMenuTrigger.CreateEntryMenuTrigger, {
182
182
  ...props,
183
183
  suggestedContentTypeId: props.contentTypes[0].sys.id
184
184
  }, stub));