@contentful/field-editor-reference 4.3.10 → 4.5.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.
@@ -9,12 +9,13 @@ var React__default = _interopDefault(React);
9
9
  var emotion = require('emotion');
10
10
  var tokens = _interopDefault(require('@contentful/f36-tokens'));
11
11
  var get = _interopDefault(require('lodash/get'));
12
- var f36Icons = require('@contentful/f36-icons');
13
12
  var f36Components = require('@contentful/f36-components');
13
+ var f36Icons = require('@contentful/f36-icons');
14
14
  var moment = _interopDefault(require('moment'));
15
15
  var deepEqual = _interopDefault(require('deep-equal'));
16
16
  var fieldEditorShared = require('@contentful/field-editor-shared');
17
17
  var constate = _interopDefault(require('constate'));
18
+ var contentfulManagement = require('contentful-management');
18
19
  var isNumber = _interopDefault(require('lodash/isNumber'));
19
20
  var arrayMove = _interopDefault(require('array-move'));
20
21
  var reactSortableHoc = require('react-sortable-hoc');
@@ -89,6 +90,44 @@ function _objectWithoutPropertiesLoose(source, excluded) {
89
90
  return target;
90
91
  }
91
92
 
93
+ function _unsupportedIterableToArray(o, minLen) {
94
+ if (!o) return;
95
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
96
+ var n = Object.prototype.toString.call(o).slice(8, -1);
97
+ if (n === "Object" && o.constructor) n = o.constructor.name;
98
+ if (n === "Map" || n === "Set") return Array.from(o);
99
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
100
+ }
101
+
102
+ function _arrayLikeToArray(arr, len) {
103
+ if (len == null || len > arr.length) len = arr.length;
104
+
105
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
106
+
107
+ return arr2;
108
+ }
109
+
110
+ function _createForOfIteratorHelperLoose(o, allowArrayLike) {
111
+ var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
112
+ if (it) return (it = it.call(o)).next.bind(it);
113
+
114
+ if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
115
+ if (it) o = it;
116
+ var i = 0;
117
+ return function () {
118
+ if (i >= o.length) return {
119
+ done: true
120
+ };
121
+ return {
122
+ done: false,
123
+ value: o[i++]
124
+ };
125
+ };
126
+ }
127
+
128
+ throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
129
+ }
130
+
92
131
  var container = /*#__PURE__*/emotion.css({
93
132
  display: 'flex',
94
133
  border: "1px dashed " + tokens.gray500,
@@ -115,20 +154,10 @@ var styles = {
115
154
  position: 'relative',
116
155
  padding: "0 " + tokens.spacing2Xs
117
156
  }),
118
- searchInput: function searchInput(parentHasDropdown) {
119
- return emotion.css({
120
- '& > input': {
121
- borderColor: 'transparent',
122
- borderRadius: parentHasDropdown ? 0 : undefined,
123
- borderLeft: parentHasDropdown ? 'none' : undefined,
124
- borderRight: parentHasDropdown ? 'none' : undefined,
125
- paddingRight: tokens.spacing2Xl,
126
- '::placeholder': {
127
- color: tokens.gray600
128
- }
129
- }
130
- });
131
- },
157
+ searchInput: /*#__PURE__*/emotion.css({
158
+ paddingRight: tokens.spacingXl,
159
+ textOverflow: 'ellipsis'
160
+ }),
132
161
  searchIcon: /*#__PURE__*/emotion.css({
133
162
  position: 'absolute',
134
163
  right: tokens.spacingM,
@@ -277,7 +306,7 @@ var CreateEntryMenuTrigger = function CreateEntryMenuTrigger(_ref) {
277
306
  ref: textField,
278
307
  className: styles.inputWrapper
279
308
  }, React__default.createElement(f36Components.TextInput, {
280
- className: styles.searchInput(hasDropdown),
309
+ className: styles.searchInput,
281
310
  placeholder: "Search all content types",
282
311
  testId: "add-entry-menu-search",
283
312
  value: searchInput,
@@ -1839,7 +1868,7 @@ function AssetThumbnail(props) {
1839
1868
  }
1840
1869
 
1841
1870
  function reducer(state, action) {
1842
- var _extends2, _extends3, _extends4, _extends5, _extends6;
1871
+ var _extends2, _extends3, _extends4, _extends5, _extends6, _extends7, _extends8;
1843
1872
 
1844
1873
  switch (action.type) {
1845
1874
  case 'set_entry':
@@ -1867,6 +1896,16 @@ function reducer(state, action) {
1867
1896
  scheduledActions: _extends({}, state.scheduledActions, (_extends6 = {}, _extends6[action.key] = action.actions, _extends6))
1868
1897
  });
1869
1898
 
1899
+ case 'set_resource':
1900
+ return _extends({}, state, {
1901
+ resources: _extends({}, state.resources, (_extends7 = {}, _extends7[action.resourceType + "." + action.urn] = action.resourceInfo, _extends7))
1902
+ });
1903
+
1904
+ case 'set_resource_failed':
1905
+ return _extends({}, state, {
1906
+ resources: _extends({}, state.resources, (_extends8 = {}, _extends8[action.resourceType + "." + action.urn] = 'failed', _extends8))
1907
+ });
1908
+
1870
1909
  default:
1871
1910
  return state;
1872
1911
  }
@@ -1875,10 +1914,34 @@ function reducer(state, action) {
1875
1914
  var initialState = {
1876
1915
  entries: {},
1877
1916
  assets: {},
1878
- scheduledActions: {}
1917
+ scheduledActions: {},
1918
+ resources: {}
1919
+ };
1920
+
1921
+ var isNotNil = function isNotNil(entity) {
1922
+ return Boolean(entity && entity !== 'failed');
1923
+ };
1924
+
1925
+ var nonNilResources = function nonNilResources(map) {
1926
+ return Object.entries(map).filter(function (_ref) {
1927
+ var value = _ref[1];
1928
+ return isNotNil(value);
1929
+ });
1879
1930
  };
1880
1931
 
1881
1932
  function useEntitiesStore(props) {
1933
+ var spaceId = props.sdk.ids.space;
1934
+ var environmentId = props.sdk.ids.environment;
1935
+
1936
+ var _React$useState = React.useState(function () {
1937
+ return contentfulManagement.createClient({
1938
+ apiAdapter: props.sdk.cmaAdapter
1939
+ }, {
1940
+ type: 'plain'
1941
+ });
1942
+ }),
1943
+ cmaClient = _React$useState[0];
1944
+
1882
1945
  var _React$useReducer = React.useReducer(reducer, initialState),
1883
1946
  state = _React$useReducer[0],
1884
1947
  dispatch = _React$useReducer[1];
@@ -1906,78 +1969,348 @@ function useEntitiesStore(props) {
1906
1969
  return [];
1907
1970
  });
1908
1971
  }, [props.sdk.space, state.scheduledActions]);
1909
- var loadEntry = React.useCallback(function (id) {
1910
- return props.sdk.space.getEntry(id).then(function (entry) {
1911
- dispatch({
1912
- type: 'set_entry',
1913
- id: id,
1914
- entry: entry
1915
- });
1916
- return entry;
1917
- })["catch"](function () {
1918
- dispatch({
1919
- type: 'set_entry_failed',
1920
- id: id
1921
- });
1922
- });
1923
- }, [props.sdk.space]);
1924
- var loadAsset = React.useCallback(function (id) {
1925
- return props.sdk.space.getAsset(id).then(function (asset) {
1926
- dispatch({
1927
- type: 'set_asset',
1928
- id: id,
1929
- asset: asset
1930
- });
1931
- return asset;
1932
- })["catch"](function () {
1933
- dispatch({
1934
- type: 'set_asset_failed',
1935
- id: id
1936
- });
1937
- });
1938
- }, [props.sdk.space]);
1939
- var getOrLoadAsset = React.useCallback(function (id) {
1940
- if (state.assets[id] && state.assets[id] !== 'failed') {
1941
- return Promise.resolve(state.assets[id]);
1942
- }
1972
+ var loadEntry = React.useCallback( /*#__PURE__*/function () {
1973
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee(entryId) {
1974
+ var entry;
1975
+ return runtime_1.wrap(function _callee$(_context) {
1976
+ while (1) {
1977
+ switch (_context.prev = _context.next) {
1978
+ case 0:
1979
+ _context.prev = 0;
1980
+ _context.next = 3;
1981
+ return cmaClient.entry.get({
1982
+ spaceId: spaceId,
1983
+ environmentId: environmentId,
1984
+ entryId: entryId
1985
+ });
1943
1986
 
1944
- return loadAsset(id);
1945
- }, [state.assets, loadAsset]);
1946
- var getOrLoadEntry = React.useCallback(function (id) {
1947
- if (state.entries[id] && state.entries[id] !== 'failed') {
1948
- return Promise.resolve(state.entries[id]);
1949
- }
1987
+ case 3:
1988
+ entry = _context.sent;
1989
+ dispatch({
1990
+ type: 'set_entry',
1991
+ id: entryId,
1992
+ entry: entry
1993
+ });
1994
+ return _context.abrupt("return", entry);
1995
+
1996
+ case 8:
1997
+ _context.prev = 8;
1998
+ _context.t0 = _context["catch"](0);
1999
+ dispatch({
2000
+ type: 'set_entry_failed',
2001
+ id: entryId
2002
+ });
2003
+ return _context.abrupt("return");
2004
+
2005
+ case 12:
2006
+ case "end":
2007
+ return _context.stop();
2008
+ }
2009
+ }
2010
+ }, _callee, null, [[0, 8]]);
2011
+ }));
2012
+
2013
+ return function (_x) {
2014
+ return _ref2.apply(this, arguments);
2015
+ };
2016
+ }(), [cmaClient, spaceId, environmentId]);
2017
+ var getEntry = React.useCallback( /*#__PURE__*/function () {
2018
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee2(entryId) {
2019
+ var cachedEntry;
2020
+ return runtime_1.wrap(function _callee2$(_context2) {
2021
+ while (1) {
2022
+ switch (_context2.prev = _context2.next) {
2023
+ case 0:
2024
+ cachedEntry = state.entries[entryId];
2025
+
2026
+ if (!isNotNil(cachedEntry)) {
2027
+ _context2.next = 3;
2028
+ break;
2029
+ }
2030
+
2031
+ return _context2.abrupt("return", cachedEntry);
2032
+
2033
+ case 3:
2034
+ return _context2.abrupt("return", loadEntry(entryId));
2035
+
2036
+ case 4:
2037
+ case "end":
2038
+ return _context2.stop();
2039
+ }
2040
+ }
2041
+ }, _callee2);
2042
+ }));
2043
+
2044
+ return function (_x2) {
2045
+ return _ref3.apply(this, arguments);
2046
+ };
2047
+ }(), [loadEntry, state.entries]);
2048
+ var loadAsset = React.useCallback( /*#__PURE__*/function () {
2049
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee3(assetId) {
2050
+ var asset;
2051
+ return runtime_1.wrap(function _callee3$(_context3) {
2052
+ while (1) {
2053
+ switch (_context3.prev = _context3.next) {
2054
+ case 0:
2055
+ _context3.prev = 0;
2056
+ _context3.next = 3;
2057
+ return cmaClient.asset.get({
2058
+ spaceId: spaceId,
2059
+ environmentId: environmentId,
2060
+ assetId: assetId
2061
+ });
2062
+
2063
+ case 3:
2064
+ asset = _context3.sent;
2065
+ dispatch({
2066
+ type: 'set_asset',
2067
+ id: assetId,
2068
+ asset: asset
2069
+ });
2070
+ return _context3.abrupt("return", asset);
2071
+
2072
+ case 8:
2073
+ _context3.prev = 8;
2074
+ _context3.t0 = _context3["catch"](0);
2075
+ dispatch({
2076
+ type: 'set_asset_failed',
2077
+ id: assetId
2078
+ });
2079
+ return _context3.abrupt("return");
1950
2080
 
1951
- return loadEntry(id);
1952
- }, [state.entries, loadEntry]);
2081
+ case 12:
2082
+ case "end":
2083
+ return _context3.stop();
2084
+ }
2085
+ }
2086
+ }, _callee3, null, [[0, 8]]);
2087
+ }));
2088
+
2089
+ return function (_x3) {
2090
+ return _ref4.apply(this, arguments);
2091
+ };
2092
+ }(), [cmaClient, spaceId, environmentId]);
2093
+ var getAsset = React.useCallback( /*#__PURE__*/function () {
2094
+ var _ref5 = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee4(assetId) {
2095
+ var cachedAsset;
2096
+ return runtime_1.wrap(function _callee4$(_context4) {
2097
+ while (1) {
2098
+ switch (_context4.prev = _context4.next) {
2099
+ case 0:
2100
+ cachedAsset = state.assets[assetId];
2101
+
2102
+ if (!isNotNil(cachedAsset)) {
2103
+ _context4.next = 3;
2104
+ break;
2105
+ }
2106
+
2107
+ return _context4.abrupt("return", cachedAsset);
2108
+
2109
+ case 3:
2110
+ return _context4.abrupt("return", loadAsset(assetId));
2111
+
2112
+ case 4:
2113
+ case "end":
2114
+ return _context4.stop();
2115
+ }
2116
+ }
2117
+ }, _callee4);
2118
+ }));
2119
+
2120
+ return function (_x4) {
2121
+ return _ref5.apply(this, arguments);
2122
+ };
2123
+ }(), [loadAsset, state.assets]);
2124
+ var loadContentfulEntry = React.useCallback( /*#__PURE__*/function () {
2125
+ var _ref6 = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee5(urn) {
2126
+ var _locales$items$find;
2127
+
2128
+ var resourceId, _resourceId$split, spaceId, entryId, environmentId, _yield$Promise$all, space, entry, contentTypeId, _yield$Promise$all2, contentType, locales, defaultLocaleCode;
2129
+
2130
+ return runtime_1.wrap(function _callee5$(_context5) {
2131
+ while (1) {
2132
+ switch (_context5.prev = _context5.next) {
2133
+ case 0:
2134
+ resourceId = urn.split(':', 6)[5];
2135
+ _resourceId$split = resourceId.split('/'), spaceId = _resourceId$split[1], entryId = _resourceId$split[3];
2136
+ environmentId = 'master';
2137
+ _context5.t0 = Promise;
2138
+ _context5.next = 6;
2139
+ return cmaClient.space.get({
2140
+ spaceId: spaceId
2141
+ });
2142
+
2143
+ case 6:
2144
+ _context5.t1 = _context5.sent;
2145
+ _context5.next = 9;
2146
+ return cmaClient.entry.get({
2147
+ spaceId: spaceId,
2148
+ environmentId: environmentId,
2149
+ entryId: entryId
2150
+ });
2151
+
2152
+ case 9:
2153
+ _context5.t2 = _context5.sent;
2154
+ _context5.t3 = [_context5.t1, _context5.t2];
2155
+ _context5.next = 13;
2156
+ return _context5.t0.all.call(_context5.t0, _context5.t3);
2157
+
2158
+ case 13:
2159
+ _yield$Promise$all = _context5.sent;
2160
+ space = _yield$Promise$all[0];
2161
+ entry = _yield$Promise$all[1];
2162
+ contentTypeId = entry.sys.contentType.sys.id;
2163
+ _context5.t4 = Promise;
2164
+ _context5.next = 20;
2165
+ return cmaClient.contentType.get({
2166
+ contentTypeId: contentTypeId,
2167
+ spaceId: spaceId,
2168
+ environmentId: environmentId
2169
+ });
2170
+
2171
+ case 20:
2172
+ _context5.t5 = _context5.sent;
2173
+ _context5.next = 23;
2174
+ return cmaClient.locale.getMany({
2175
+ spaceId: spaceId,
2176
+ environmentId: environmentId,
2177
+ query: {
2178
+ limit: 100
2179
+ }
2180
+ });
2181
+
2182
+ case 23:
2183
+ _context5.t6 = _context5.sent;
2184
+ _context5.t7 = [_context5.t5, _context5.t6];
2185
+ _context5.next = 27;
2186
+ return _context5.t4.all.call(_context5.t4, _context5.t7);
2187
+
2188
+ case 27:
2189
+ _yield$Promise$all2 = _context5.sent;
2190
+ contentType = _yield$Promise$all2[0];
2191
+ locales = _yield$Promise$all2[1];
2192
+ defaultLocaleCode = (_locales$items$find = locales.items.find(function (locale) {
2193
+ return locale["default"];
2194
+ })) == null ? void 0 : _locales$items$find.code;
2195
+ return _context5.abrupt("return", {
2196
+ resource: entry,
2197
+ defaultLocaleCode: defaultLocaleCode,
2198
+ space: space,
2199
+ contentType: contentType
2200
+ });
2201
+
2202
+ case 32:
2203
+ case "end":
2204
+ return _context5.stop();
2205
+ }
2206
+ }
2207
+ }, _callee5);
2208
+ }));
2209
+
2210
+ return function (_x5) {
2211
+ return _ref6.apply(this, arguments);
2212
+ };
2213
+ }(), [cmaClient]);
2214
+ var getResource = React.useCallback( /*#__PURE__*/function () {
2215
+ var _ref7 = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee6(resourceType, urn) {
2216
+ var cachedResource, resourceInfo;
2217
+ return runtime_1.wrap(function _callee6$(_context6) {
2218
+ while (1) {
2219
+ switch (_context6.prev = _context6.next) {
2220
+ case 0:
2221
+ cachedResource = state.resources[resourceType + "." + urn];
2222
+
2223
+ if (!isNotNil(cachedResource)) {
2224
+ _context6.next = 3;
2225
+ break;
2226
+ }
2227
+
2228
+ return _context6.abrupt("return", cachedResource);
2229
+
2230
+ case 3:
2231
+ _context6.prev = 3;
2232
+
2233
+ if (!(resourceType === 'Contentful:Entry')) {
2234
+ _context6.next = 8;
2235
+ break;
2236
+ }
2237
+
2238
+ _context6.next = 7;
2239
+ return loadContentfulEntry(urn);
2240
+
2241
+ case 7:
2242
+ resourceInfo = _context6.sent;
2243
+
2244
+ case 8:
2245
+ dispatch({
2246
+ type: 'set_resource',
2247
+ resourceType: resourceType,
2248
+ urn: urn,
2249
+ resourceInfo: resourceInfo
2250
+ });
2251
+ return _context6.abrupt("return", resourceInfo);
2252
+
2253
+ case 12:
2254
+ _context6.prev = 12;
2255
+ _context6.t0 = _context6["catch"](3);
2256
+ dispatch({
2257
+ type: 'set_resource_failed',
2258
+ resourceType: resourceType,
2259
+ urn: urn
2260
+ });
2261
+ return _context6.abrupt("return");
2262
+
2263
+ case 16:
2264
+ case "end":
2265
+ return _context6.stop();
2266
+ }
2267
+ }
2268
+ }, _callee6, null, [[3, 12]]);
2269
+ }));
2270
+
2271
+ return function (_x6, _x7) {
2272
+ return _ref7.apply(this, arguments);
2273
+ };
2274
+ }(), [loadContentfulEntry, state.resources]);
1953
2275
  React.useEffect(function () {
1954
2276
  // @ts-expect-error
1955
2277
  if (typeof props.sdk.space.onEntityChanged !== 'undefined') {
1956
2278
  // @ts-expect-error
1957
2279
  var onEntityChanged = props.sdk.space.onEntityChanged;
1958
2280
  var listeners = [];
1959
- Object.keys(state.entries).forEach(function (id) {
1960
- if (state.entries[id] && state.entries['id'] !== 'failed') {
1961
- listeners.push(onEntityChanged('Entry', id, function (entry) {
1962
- return dispatch({
1963
- type: 'set_entry',
1964
- id: id,
1965
- entry: entry
1966
- });
1967
- }));
1968
- }
1969
- });
1970
- Object.keys(state.assets).forEach(function (id) {
1971
- if (state.assets[id] && state.assets['id'] !== 'failed') {
1972
- listeners.push(onEntityChanged('Asset', id, function (asset) {
1973
- return dispatch({
1974
- type: 'set_asset',
1975
- id: id,
1976
- asset: asset
1977
- });
1978
- }));
1979
- }
1980
- });
2281
+
2282
+ var _loop = function _loop() {
2283
+ var _step$value = _step.value,
2284
+ id = _step$value[0];
2285
+ listeners.push(onEntityChanged('Entry', id, function (entry) {
2286
+ return dispatch({
2287
+ type: 'set_entry',
2288
+ id: id,
2289
+ entry: entry
2290
+ });
2291
+ }));
2292
+ };
2293
+
2294
+ for (var _iterator = _createForOfIteratorHelperLoose(nonNilResources(state.entries)), _step; !(_step = _iterator()).done;) {
2295
+ _loop();
2296
+ }
2297
+
2298
+ var _loop2 = function _loop2() {
2299
+ var _step2$value = _step2.value,
2300
+ id = _step2$value[0];
2301
+ listeners.push(onEntityChanged('Asset', id, function (asset) {
2302
+ return dispatch({
2303
+ type: 'set_asset',
2304
+ id: id,
2305
+ asset: asset
2306
+ });
2307
+ }));
2308
+ };
2309
+
2310
+ for (var _iterator2 = _createForOfIteratorHelperLoose(nonNilResources(state.assets)), _step2; !(_step2 = _iterator2()).done;) {
2311
+ _loop2();
2312
+ }
2313
+
1981
2314
  return function () {
1982
2315
  return listeners.forEach(function (off) {
1983
2316
  return off();
@@ -1985,29 +2318,46 @@ function useEntitiesStore(props) {
1985
2318
  };
1986
2319
  }
1987
2320
 
1988
- return props.sdk.navigator.onSlideInNavigation(function (_ref) {
1989
- var oldSlideLevel = _ref.oldSlideLevel,
1990
- newSlideLevel = _ref.newSlideLevel;
2321
+ return props.sdk.navigator.onSlideInNavigation(function (_ref8) {
2322
+ var oldSlideLevel = _ref8.oldSlideLevel,
2323
+ newSlideLevel = _ref8.newSlideLevel;
1991
2324
 
1992
2325
  if (oldSlideLevel > newSlideLevel) {
1993
- Object.keys(state.entries).map(function (id) {
1994
- if (state.entries[id] && state.entries[id] !== 'failed') {
1995
- loadEntry(id);
1996
- }
1997
- });
1998
- Object.keys(state.assets).map(function (id) {
1999
- if (state.assets[id] && state.assets[id] !== 'failed') {
2000
- loadAsset(id);
2001
- }
2002
- });
2326
+ for (var _iterator3 = _createForOfIteratorHelperLoose(nonNilResources(state.entries)), _step3; !(_step3 = _iterator3()).done;) {
2327
+ var _step3$value = _step3.value,
2328
+ id = _step3$value[0];
2329
+ loadEntry(id);
2330
+ }
2331
+
2332
+ for (var _iterator4 = _createForOfIteratorHelperLoose(nonNilResources(state.assets)), _step4; !(_step4 = _iterator4()).done;) {
2333
+ var _step4$value = _step4.value,
2334
+ _id = _step4$value[0];
2335
+ loadAsset(_id);
2336
+ }
2003
2337
  }
2004
2338
  }); // eslint-disable-next-line react-hooks/exhaustive-deps -- TODO: Evaluate the dependencies
2005
2339
  }, [props.sdk, state.assets, state.entries]);
2006
- return _extends({
2007
- getOrLoadEntry: getOrLoadEntry,
2008
- getOrLoadAsset: getOrLoadAsset,
2009
- loadEntityScheduledActions: loadEntityScheduledActions
2010
- }, state);
2340
+ return React.useMemo(function () {
2341
+ return {
2342
+ /**
2343
+ * @deprecated use `getEntry` instead
2344
+ */
2345
+ getOrLoadEntry: getEntry,
2346
+
2347
+ /**
2348
+ * @deprecated use `getAsset` instead
2349
+ */
2350
+ getOrLoadAsset: getAsset,
2351
+ getResource: getResource,
2352
+ getEntry: getEntry,
2353
+ getAsset: getAsset,
2354
+ loadEntityScheduledActions: loadEntityScheduledActions,
2355
+ entries: state.entries,
2356
+ assets: state.assets,
2357
+ scheduledActions: state.scheduledActions,
2358
+ resources: state.resources
2359
+ };
2360
+ }, [getResource, getEntry, getAsset, loadEntityScheduledActions, state.entries, state.assets, state.scheduledActions, state.resources]);
2011
2361
  }
2012
2362
 
2013
2363
  var _constate = /*#__PURE__*/constate(useEntitiesStore),
@@ -2464,11 +2814,40 @@ SingleReferenceEditor.defaultProps = {
2464
2814
  hasCardRemoveActions: true
2465
2815
  };
2466
2816
 
2817
+ var styles$1 = {
2818
+ spaceIcon: /*#__PURE__*/emotion.css({
2819
+ flexShrink: 0,
2820
+ fill: tokens.purple600
2821
+ }),
2822
+ spaceName: /*#__PURE__*/emotion.css({
2823
+ color: tokens.gray700,
2824
+ fontSize: tokens.fontSizeS,
2825
+ fontWeight: tokens.fontWeightDemiBold
2826
+ })
2827
+ };
2828
+ function SpaceName(props) {
2829
+ return React.createElement(f36Components.Tooltip, {
2830
+ placement: "top",
2831
+ as: "div",
2832
+ content: "Space"
2833
+ }, React.createElement(f36Components.Flex, {
2834
+ alignItems: "center",
2835
+ gap: "spacingXs",
2836
+ marginRight: "spacingS"
2837
+ }, React.createElement(f36Icons.FolderOpenTrimmedIcon, {
2838
+ className: styles$1.spaceIcon,
2839
+ size: "tiny",
2840
+ "aria-label": "Source space"
2841
+ }), React.createElement(f36Components.Text, {
2842
+ className: styles$1.spaceName
2843
+ }, props.spaceName)));
2844
+ }
2845
+
2467
2846
  var getEntryTitle = fieldEditorShared.entityHelpers.getEntryTitle,
2468
2847
  getEntityDescription = fieldEditorShared.entityHelpers.getEntityDescription,
2469
2848
  getEntryStatus = fieldEditorShared.entityHelpers.getEntryStatus,
2470
2849
  getEntryImage = fieldEditorShared.entityHelpers.getEntryImage;
2471
- var styles$1 = {
2850
+ var styles$2 = {
2472
2851
  scheduleIcon: /*#__PURE__*/emotion.css({
2473
2852
  marginRight: tokens.spacing2Xs
2474
2853
  })
@@ -2533,12 +2912,17 @@ function WrappedEntryCard(props) {
2533
2912
  size: props.size,
2534
2913
  isSelected: props.isSelected,
2535
2914
  status: status,
2536
- icon: React.createElement(ScheduledIconWithTooltip, {
2915
+ style: props.spaceName ? {
2916
+ backgroundColor: tokens.gray100
2917
+ } : undefined,
2918
+ icon: props.spaceName ? React.createElement(SpaceName, {
2919
+ spaceName: props.spaceName
2920
+ }) : React.createElement(ScheduledIconWithTooltip, {
2537
2921
  getEntityScheduledActions: props.getEntityScheduledActions,
2538
2922
  entityType: "Entry",
2539
2923
  entityId: props.entry.sys.id
2540
2924
  }, React.createElement(f36Icons.ClockIcon, {
2541
- className: styles$1.scheduleIcon,
2925
+ className: styles$2.scheduleIcon,
2542
2926
  size: "small",
2543
2927
  variant: "muted",
2544
2928
  testId: "schedule-icon"
@@ -2643,13 +3027,13 @@ function _openEntry() {
2643
3027
 
2644
3028
  function FetchingWrappedEntryCard(props) {
2645
3029
  var _useEntities = useEntities(),
2646
- getOrLoadEntry = _useEntities.getOrLoadEntry,
2647
- getOrLoadAsset = _useEntities.getOrLoadAsset,
3030
+ getEntry = _useEntities.getEntry,
3031
+ getAsset = _useEntities.getAsset,
2648
3032
  loadEntityScheduledActions = _useEntities.loadEntityScheduledActions,
2649
3033
  entries = _useEntities.entries;
2650
3034
 
2651
3035
  React.useEffect(function () {
2652
- getOrLoadEntry(props.entryId); // eslint-disable-next-line react-hooks/exhaustive-deps -- TODO: Evaluate the dependencies
3036
+ getEntry(props.entryId); // eslint-disable-next-line react-hooks/exhaustive-deps -- TODO: Evaluate the dependencies
2653
3037
  }, [props.entryId]);
2654
3038
  var size = props.viewType === 'link' ? 'small' : 'default';
2655
3039
  var entry = entries[props.entryId];
@@ -2764,7 +3148,7 @@ function FetchingWrappedEntryCard(props) {
2764
3148
  hasCardEditActions: hasCardEditActions,
2765
3149
  hasCardMoveActions: hasCardMoveActions,
2766
3150
  hasCardRemoveActions: hasCardRemoveActions,
2767
- getAsset: getOrLoadAsset,
3151
+ getAsset: getAsset,
2768
3152
  getEntityScheduledActions: loadEntityScheduledActions,
2769
3153
  entry: (props == null ? void 0 : props.entity) || sharedCardProps.entity,
2770
3154
  entryUrl: (props == null ? void 0 : props.entityUrl) || sharedCardProps.entityUrl
@@ -2913,8 +3297,8 @@ MultipleReferenceEditor.defaultProps = {
2913
3297
  hasCardEditActions: true
2914
3298
  };
2915
3299
 
2916
- var styles$2 = {
2917
- containter: /*#__PURE__*/emotion.css({
3300
+ var styles$3 = {
3301
+ container: /*#__PURE__*/emotion.css({
2918
3302
  position: 'relative'
2919
3303
  }),
2920
3304
  item: /*#__PURE__*/emotion.css({
@@ -2931,13 +3315,13 @@ var DragHandle = function DragHandle(props) {
2931
3315
 
2932
3316
  var SortableLink = /*#__PURE__*/reactSortableHoc.SortableElement(function (props) {
2933
3317
  return React__default.createElement("div", {
2934
- className: styles$2.item
3318
+ className: styles$3.item
2935
3319
  }, props.children);
2936
3320
  });
2937
3321
  var SortableLinkList = /*#__PURE__*/reactSortableHoc.SortableContainer(function (props) {
2938
3322
  var lastIndex = props.items.length - 1;
2939
3323
  return React__default.createElement("div", {
2940
- className: styles$2.containter
3324
+ className: styles$3.container
2941
3325
  }, props.items.map(function (item, index) {
2942
3326
  return React__default.createElement(SortableLink, {
2943
3327
  disabled: props.isDisabled,
@@ -3046,7 +3430,7 @@ var groupToIconMap = {
3046
3430
  code: 'code',
3047
3431
  markup: 'markup'
3048
3432
  };
3049
- var styles$3 = {
3433
+ var styles$4 = {
3050
3434
  scheduleIcon: /*#__PURE__*/emotion.css({
3051
3435
  marginRight: tokens.spacing2Xs
3052
3436
  })
@@ -3108,7 +3492,7 @@ var WrappedAssetCard = function WrappedAssetCard(props) {
3108
3492
  entityType: "Asset",
3109
3493
  entityId: props.asset.sys.id
3110
3494
  }, React__default.createElement(f36Icons.ClockIcon, {
3111
- className: styles$3.scheduleIcon,
3495
+ className: styles$4.scheduleIcon,
3112
3496
  size: "small",
3113
3497
  variant: "muted",
3114
3498
  testId: "schedule-icon"
@@ -3139,7 +3523,7 @@ var WrappedAssetCard = function WrappedAssetCard(props) {
3139
3523
  };
3140
3524
  WrappedAssetCard.defaultProps = defaultProps$1;
3141
3525
 
3142
- var styles$4 = {
3526
+ var styles$5 = {
3143
3527
  scheduleIcon: /*#__PURE__*/emotion.css({
3144
3528
  marginRight: tokens.spacing2Xs
3145
3529
  })
@@ -3183,7 +3567,7 @@ var WrappedAssetLink = function WrappedAssetLink(props) {
3183
3567
  entityType: "Asset",
3184
3568
  entityId: props.asset.sys.id
3185
3569
  }, React__default.createElement(f36Icons.ClockIcon, {
3186
- className: styles$4.scheduleIcon,
3570
+ className: styles$5.scheduleIcon,
3187
3571
  size: "small",
3188
3572
  variant: "muted",
3189
3573
  testId: "schedule-icon"
@@ -3209,12 +3593,12 @@ var WrappedAssetLink = function WrappedAssetLink(props) {
3209
3593
 
3210
3594
  function FetchingWrappedAssetCard(props) {
3211
3595
  var _useEntities = useEntities(),
3212
- getOrLoadAsset = _useEntities.getOrLoadAsset,
3596
+ getAsset = _useEntities.getAsset,
3213
3597
  loadEntityScheduledActions = _useEntities.loadEntityScheduledActions,
3214
3598
  assets = _useEntities.assets;
3215
3599
 
3216
3600
  React.useEffect(function () {
3217
- getOrLoadAsset(props.assetId); // eslint-disable-next-line react-hooks/exhaustive-deps -- TODO: Evaluate the dependencies
3601
+ getAsset(props.assetId); // eslint-disable-next-line react-hooks/exhaustive-deps -- TODO: Evaluate the dependencies
3218
3602
  }, [props.assetId]);
3219
3603
  var asset = assets[props.assetId];
3220
3604
  var entityKey = asset === 'failed' ? 'failed' : asset === undefined ? 'undefined' : ":" + asset.sys.id + ":" + asset.sys.version;
@@ -3382,7 +3766,7 @@ SingleMediaEditor.defaultProps = {
3382
3766
  isInitiallyDisabled: true
3383
3767
  };
3384
3768
 
3385
- var styles$5 = {
3769
+ var styles$6 = {
3386
3770
  gridContainter: /*#__PURE__*/emotion.css({
3387
3771
  position: 'relative',
3388
3772
  display: 'flex',
@@ -3406,12 +3790,12 @@ var DragHandle$1 = function DragHandle(props) {
3406
3790
 
3407
3791
  var SortableLink$1 = /*#__PURE__*/reactSortableHoc.SortableElement(function (props) {
3408
3792
  return React__default.createElement("div", {
3409
- className: styles$5.item
3793
+ className: styles$6.item
3410
3794
  }, props.children);
3411
3795
  });
3412
3796
  var SortableLinkList$1 = /*#__PURE__*/reactSortableHoc.SortableContainer(function (props) {
3413
3797
  return React__default.createElement("div", {
3414
- className: props.viewType === 'card' ? styles$5.gridContainter : styles$5.container
3798
+ className: props.viewType === 'card' ? styles$6.gridContainter : styles$6.container
3415
3799
  }, props.items.map(function (item, index) {
3416
3800
  return React__default.createElement(SortableLink$1, {
3417
3801
  disabled: props.isDisabled,