@atlaskit/editor-plugin-synced-block 5.1.11 → 5.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @atlaskit/editor-plugin-synced-block
2
2
 
3
+ ## 5.1.13
4
+
5
+ ### Patch Changes
6
+
7
+ - [`7b1f7ff1a2235`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/7b1f7ff1a2235) -
8
+ [ux] [EDITOR-4536] Update synced location dropdown UI
9
+ - Updated dependencies
10
+
11
+ ## 5.1.12
12
+
13
+ ### Patch Changes
14
+
15
+ - [`f0124a523d8f1`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/f0124a523d8f1) -
16
+ [ux] [EDITOR-2845] Implement synced location for source and reference sync block
17
+ - Updated dependencies
18
+
3
19
  ## 5.1.11
4
20
 
5
21
  ### Patch Changes
@@ -7,10 +7,7 @@
7
7
  "composite": true,
8
8
  "noCheck": true
9
9
  },
10
- "include": [
11
- "../src/**/*.ts",
12
- "../src/**/*.tsx"
13
- ],
10
+ "include": ["../src/**/*.ts", "../src/**/*.tsx"],
14
11
  "exclude": [
15
12
  "../src/**/__tests__/*",
16
13
  "../src/**/*.test.*",
@@ -29,6 +26,9 @@
29
26
  {
30
27
  "path": "../../../design-system/button/afm-cc/tsconfig.json"
31
28
  },
29
+ {
30
+ "path": "../../../design-system/dropdown-menu/afm-cc/tsconfig.json"
31
+ },
32
32
  {
33
33
  "path": "../../editor-json-transformer/afm-cc/tsconfig.json"
34
34
  },
@@ -74,6 +74,9 @@
74
74
  {
75
75
  "path": "../../../design-system/icon-lab/afm-cc/tsconfig.json"
76
76
  },
77
+ {
78
+ "path": "../../../design-system/logo/afm-cc/tsconfig.json"
79
+ },
77
80
  {
78
81
  "path": "../../../design-system/lozenge/afm-cc/tsconfig.json"
79
82
  },
@@ -86,6 +89,9 @@
86
89
  {
87
90
  "path": "../../../design-system/primitives/afm-cc/tsconfig.json"
88
91
  },
92
+ {
93
+ "path": "../../../design-system/spinner/afm-cc/tsconfig.json"
94
+ },
89
95
  {
90
96
  "path": "../../tmp-editor-statsig/afm-cc/tsconfig.json"
91
97
  },
@@ -29,6 +29,9 @@
29
29
  {
30
30
  "path": "../../../design-system/button/afm-jira/tsconfig.json"
31
31
  },
32
+ {
33
+ "path": "../../../design-system/dropdown-menu/afm-jira/tsconfig.json"
34
+ },
32
35
  {
33
36
  "path": "../../editor-json-transformer/afm-jira/tsconfig.json"
34
37
  },
@@ -74,6 +77,9 @@
74
77
  {
75
78
  "path": "../../../design-system/icon-lab/afm-jira/tsconfig.json"
76
79
  },
80
+ {
81
+ "path": "../../../design-system/logo/afm-jira/tsconfig.json"
82
+ },
77
83
  {
78
84
  "path": "../../../design-system/lozenge/afm-jira/tsconfig.json"
79
85
  },
@@ -86,6 +92,9 @@
86
92
  {
87
93
  "path": "../../../design-system/primitives/afm-jira/tsconfig.json"
88
94
  },
95
+ {
96
+ "path": "../../../design-system/spinner/afm-jira/tsconfig.json"
97
+ },
89
98
  {
90
99
  "path": "../../tmp-editor-statsig/afm-jira/tsconfig.json"
91
100
  },
@@ -1,5 +1,5 @@
1
1
  {
2
- "extends": "../../../../tsconfig.entry-points.products.json",
2
+ "extends": "../../../../tsconfig.local-consumption.json",
3
3
  "compilerOptions": {
4
4
  "target": "es5",
5
5
  "outDir": "../../../../../tsDist/@atlaskit__editor-plugin-synced-block/app",
@@ -29,6 +29,9 @@
29
29
  {
30
30
  "path": "../../../design-system/button/afm-products/tsconfig.json"
31
31
  },
32
+ {
33
+ "path": "../../../design-system/dropdown-menu/afm-products/tsconfig.json"
34
+ },
32
35
  {
33
36
  "path": "../../editor-json-transformer/afm-products/tsconfig.json"
34
37
  },
@@ -74,6 +77,9 @@
74
77
  {
75
78
  "path": "../../../design-system/icon-lab/afm-products/tsconfig.json"
76
79
  },
80
+ {
81
+ "path": "../../../design-system/logo/afm-products/tsconfig.json"
82
+ },
77
83
  {
78
84
  "path": "../../../design-system/lozenge/afm-products/tsconfig.json"
79
85
  },
@@ -86,6 +92,9 @@
86
92
  {
87
93
  "path": "../../../design-system/primitives/afm-products/tsconfig.json"
88
94
  },
95
+ {
96
+ "path": "../../../design-system/spinner/afm-products/tsconfig.json"
97
+ },
89
98
  {
90
99
  "path": "../../tmp-editor-statsig/afm-products/tsconfig.json"
91
100
  },
@@ -0,0 +1,34 @@
1
+
2
+ ._2rkol0p1{border-radius:var(--ds-radius-tile,25%)}
3
+ ._y44vfmxe{animation:kgnpaw5 .7s ease-in-out}
4
+ ._1mour5cr{margin-block:var(--ds-space-negative-050,-4px)}
5
+ ._1rjcv77o{padding-block:var(--ds-space-025,2px)}
6
+ ._ku9g126e [data-ds--menu--heading-item]{margin-block:var(--ds-space-050,4px)!important}._18bk1rpy [data-ds--menu--heading-item]{color:var(--ds-text-subtlest,#6b6e76)}
7
+ ._18m915vq{overflow-y:hidden}
8
+ ._18m91wug{overflow-y:auto}
9
+ ._1bah1h6o{justify-content:center}
10
+ ._1bsb19n7{width:106px}
11
+ ._1bsb1osq{width:100%}
12
+ ._1bsbgktf{width:20px}
13
+ ._1bsbo8uj{width:235px}
14
+ ._1bsbsmdz{width:342px}
15
+ ._1bto1l2s{text-overflow:ellipsis}
16
+ ._1e0c1txw{display:flex}
17
+ ._1hmsglyw{text-decoration-line:none}
18
+ ._1reo15vq{overflow-x:hidden}
19
+ ._1tkeqkoa{min-height:9pc}
20
+ ._1ul91wqb{min-width:60px}
21
+ ._1wpz1fhb{align-self:stretch}
22
+ ._2ll012x7 a>span{column-gap:var(--ds-space-075,6px)}
23
+ ._4bfu1r31{text-decoration-color:currentColor}
24
+ ._4cvr1h6o{align-items:center}
25
+ ._4t3igktf{height:20px}
26
+ ._ahbq12x7{margin-inline-start:var(--ds-space-075,6px)}
27
+ ._ajmmnqa1{text-decoration-style:solid}
28
+ ._bfhki8nm{background-color:var(--ds-background-neutral,#0515240f)}
29
+ ._c71lko4j{max-height:19pc}
30
+ ._o5721q9c{white-space:nowrap}
31
+ ._syaz1rpy{color:var(--ds-text-subtlest,#6b6e76)}
32
+ ._syazazsu{color:var(--ds-text-subtle,#505258)}
33
+ ._y3gn1h6o{text-align:center}
34
+ @keyframes kgnpaw5{0%{opacity:0}to{opacity:1}}
@@ -0,0 +1,329 @@
1
+ /* SyncedLocationDropdown.tsx generated by @compiled/babel-plugin v0.38.1 */
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ exports.processReferenceData = exports.SyncedLocationDropdown = void 0;
10
+ require("./SyncedLocationDropdown.compiled.css");
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var React = _react;
13
+ var _runtime = require("@compiled/react/runtime");
14
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
15
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
16
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
17
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
18
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
19
+ var _dropdownMenu = _interopRequireWildcard(require("@atlaskit/dropdown-menu"));
20
+ var _messages = require("@atlaskit/editor-common/messages");
21
+ var _ui = require("@atlaskit/editor-common/ui");
22
+ var _icon = require("@atlaskit/icon");
23
+ var _pageLiveDoc = _interopRequireDefault(require("@atlaskit/icon-lab/core/page-live-doc"));
24
+ var _chevronDown = _interopRequireDefault(require("@atlaskit/icon/core/chevron-down"));
25
+ var _page = _interopRequireDefault(require("@atlaskit/icon/core/page"));
26
+ var _quotationMark = _interopRequireDefault(require("@atlaskit/icon/core/quotation-mark"));
27
+ var _statusError = _interopRequireDefault(require("@atlaskit/icon/core/status-error"));
28
+ var _logo = require("@atlaskit/logo");
29
+ var _lozenge = _interopRequireDefault(require("@atlaskit/lozenge"));
30
+ var _compiled = require("@atlaskit/primitives/compiled");
31
+ var _spinner = _interopRequireDefault(require("@atlaskit/spinner"));
32
+ var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
33
+ var _excluded = ["triggerRef"];
34
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
35
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
36
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
37
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
38
+ var fadeIn = null;
39
+ var headingStyles = null;
40
+ var dropdownItemStyles = null;
41
+
42
+ // logo icon does not fit in ADS IconTile, hence we need custom styles to match with other icons
43
+ var logoTileStyles = null;
44
+ var styles = {
45
+ title: "_1reo15vq _18m915vq _syazazsu _1bto1l2s _o5721q9c",
46
+ note: "_syaz1rpy _o5721q9c",
47
+ lozenge: "_ahbq12x7 _1ul91wqb",
48
+ noResultsContainer: "_1bsbo8uj _y3gn1h6o",
49
+ dropdownContent: "_1rjcv77o _1bsbsmdz _1tkeqkoa _c71lko4j _1e0c1txw _1bah1h6o _4cvr1h6o",
50
+ contentContainer: "_y44vfmxe _1bsb1osq _1wpz1fhb _18m91wug",
51
+ errorContainer: "_1bsbo8uj _1e0c1txw",
52
+ errorIcon: "_1mour5cr",
53
+ learnMoreLink: "_4bfu1r31 _1hmsglyw _ajmmnqa1",
54
+ requestAccess: "_1bsb19n7 _o5721q9c _ahbq12x7 _syaz1rpy"
55
+ };
56
+ var ItemTitle = function ItemTitle(_ref) {
57
+ var title = _ref.title,
58
+ formatMessage = _ref.formatMessage,
59
+ onSamePage = _ref.onSamePage,
60
+ isSource = _ref.isSource,
61
+ hasAccess = _ref.hasAccess;
62
+ return /*#__PURE__*/React.createElement(_compiled.Inline, null, /*#__PURE__*/React.createElement(_compiled.Box, {
63
+ as: "span",
64
+ xcss: styles.title
65
+ }, title), onSamePage && /*#__PURE__*/React.createElement(_compiled.Box, {
66
+ as: "span",
67
+ xcss: styles.note
68
+ }, "\xA0- ", formatMessage(_messages.syncBlockMessages.syncedLocationDropdownTitleNote)), isSource && /*#__PURE__*/React.createElement(_compiled.Box, {
69
+ as: "span",
70
+ xcss: styles.lozenge
71
+ }, /*#__PURE__*/React.createElement(_lozenge.default, null, formatMessage(_messages.syncBlockMessages.syncedLocationDropdownSourceLozenge))), !hasAccess && /*#__PURE__*/React.createElement(_compiled.Box, {
72
+ as: "span",
73
+ xcss: styles.requestAccess
74
+ }, formatMessage(_messages.syncBlockMessages.syncedLocationDropdownRequestAccess)));
75
+ };
76
+ var productIconMap = {
77
+ 'confluence-page': _logo.ConfluenceIcon,
78
+ 'jira-work-item': _logo.JiraIcon
79
+ };
80
+ var subTypeIconMap = {
81
+ live: _pageLiveDoc.default,
82
+ page: _page.default,
83
+ blogpost: _quotationMark.default
84
+ };
85
+ var getSubTypeIcon = function getSubTypeIcon(subType) {
86
+ return subType && subType in subTypeIconMap ? subTypeIconMap[subType] : _page.default;
87
+ };
88
+ var ProductIcon = function ProductIcon(_ref2) {
89
+ var _productIconMap$produ;
90
+ var product = _ref2.product;
91
+ var ProductIcon = product ? (_productIconMap$produ = productIconMap[product]) !== null && _productIconMap$produ !== void 0 ? _productIconMap$produ : _logo.AtlassianIcon : _logo.AtlassianIcon;
92
+ return /*#__PURE__*/React.createElement("span", {
93
+ className: (0, _runtime.ax)(["_2rkol0p1 _bfhki8nm _1bsbgktf _4t3igktf _1e0c1txw _4cvr1h6o _1bah1h6o"])
94
+ }, /*#__PURE__*/React.createElement(ProductIcon, {
95
+ size: "xxsmall",
96
+ appearance: "neutral"
97
+ }));
98
+ };
99
+ var ItemIcon = function ItemIcon(_ref3) {
100
+ var reference = _ref3.reference;
101
+ var hasAccess = reference.hasAccess,
102
+ subType = reference.subType;
103
+ if (hasAccess) {
104
+ return /*#__PURE__*/React.createElement(_icon.IconTile, {
105
+ icon: getSubTypeIcon(subType),
106
+ label: "",
107
+ appearance: 'gray',
108
+ size: "xsmall"
109
+ });
110
+ }
111
+ return /*#__PURE__*/React.createElement(ProductIcon, {
112
+ product: reference.productType
113
+ });
114
+ };
115
+ var processReferenceData = exports.processReferenceData = function processReferenceData(referenceData, intl) {
116
+ var formatMessage = intl.formatMessage;
117
+ var sourceInfoMap = new Map();
118
+ referenceData === null || referenceData === void 0 || referenceData.forEach(function (reference) {
119
+ if (!reference) {
120
+ return;
121
+ }
122
+ if (sourceInfoMap.has(reference.sourceAri)) {
123
+ var _sourceInfoMap$get;
124
+ (_sourceInfoMap$get = sourceInfoMap.get(reference.sourceAri)) === null || _sourceInfoMap$get === void 0 || _sourceInfoMap$get.push(reference);
125
+ } else {
126
+ sourceInfoMap.set(reference.sourceAri, [reference]);
127
+ }
128
+ });
129
+ var _iterator = _createForOfIteratorHelper(sourceInfoMap.values()),
130
+ _step;
131
+ try {
132
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
133
+ var references = _step.value;
134
+ if (references.length > 1) {
135
+ references.forEach(function (reference, index) {
136
+ return reference.title = "".concat(reference.title, ": ").concat(formatMessage(_messages.syncBlockMessages.syncedLocationDropdownTitleBlockIndex, {
137
+ index: index + 1
138
+ }));
139
+ });
140
+ }
141
+ }
142
+ } catch (err) {
143
+ _iterator.e(err);
144
+ } finally {
145
+ _iterator.f();
146
+ }
147
+ var sortedReferences = Array.from(sourceInfoMap.values()).flat().sort(function (a, b) {
148
+ if (a.isSource !== b.isSource) {
149
+ return b.isSource ? 1 : -1;
150
+ }
151
+ if (a.hasAccess !== b.hasAccess) {
152
+ return a.hasAccess ? -1 : 1;
153
+ }
154
+ return (a.title || '').localeCompare(b.title || '');
155
+ });
156
+ return sortedReferences;
157
+ };
158
+ var SyncedLocationDropdown = exports.SyncedLocationDropdown = function SyncedLocationDropdown(_ref4) {
159
+ var syncBlockStore = _ref4.syncBlockStore,
160
+ resourceId = _ref4.resourceId,
161
+ intl = _ref4.intl,
162
+ isSource = _ref4.isSource,
163
+ localId = _ref4.localId;
164
+ var formatMessage = intl.formatMessage;
165
+ var triggerTitle = formatMessage(_messages.syncBlockMessages.syncedLocationDropdownTitle);
166
+ var _useState = (0, _react.useState)(false),
167
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
168
+ isOpen = _useState2[0],
169
+ setIsOpen = _useState2[1];
170
+ return /*#__PURE__*/React.createElement(_dropdownMenu.default, {
171
+ isOpen: isOpen,
172
+ onOpenChange: function onOpenChange(_ref5) {
173
+ var isOpen = _ref5.isOpen;
174
+ return setIsOpen(isOpen);
175
+ },
176
+ trigger: function trigger(_ref6) {
177
+ var triggerRef = _ref6.triggerRef,
178
+ triggerProps = (0, _objectWithoutProperties2.default)(_ref6, _excluded);
179
+ return /*#__PURE__*/React.createElement(_ui.FloatingToolbarButton, (0, _extends2.default)({
180
+ ref: triggerRef,
181
+ areAnyNewToolbarFlagsEnabled: true,
182
+ iconAfter: /*#__PURE__*/React.createElement(_chevronDown.default, {
183
+ color: "currentColor",
184
+ spacing: "spacious",
185
+ label: "",
186
+ size: "small"
187
+ })
188
+ // eslint-disable-next-line react/jsx-props-no-spreading
189
+ }, triggerProps), triggerTitle);
190
+ }
191
+ }, isOpen && /*#__PURE__*/React.createElement(DropdownContent, {
192
+ syncBlockStore: syncBlockStore,
193
+ resourceId: resourceId,
194
+ intl: intl,
195
+ isSource: isSource,
196
+ localId: localId
197
+ }));
198
+ };
199
+ var DropdownContent = function DropdownContent(_ref7) {
200
+ var syncBlockStore = _ref7.syncBlockStore,
201
+ resourceId = _ref7.resourceId,
202
+ intl = _ref7.intl,
203
+ isSource = _ref7.isSource,
204
+ localId = _ref7.localId;
205
+ var formatMessage = intl.formatMessage;
206
+ var _useState3 = (0, _react.useState)('none'),
207
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
208
+ fetchStatus = _useState4[0],
209
+ setFetchStatus = _useState4[1];
210
+ var _useState5 = (0, _react.useState)([]),
211
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
212
+ referenceData = _useState6[0],
213
+ setReferenceData = _useState6[1];
214
+ (0, _react.useEffect)(function () {
215
+ setFetchStatus('loading');
216
+ var getReferenceData = /*#__PURE__*/function () {
217
+ var _ref8 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
218
+ var response;
219
+ return _regenerator.default.wrap(function _callee$(_context) {
220
+ while (1) switch (_context.prev = _context.next) {
221
+ case 0:
222
+ _context.next = 2;
223
+ return syncBlockStore.fetchReferencesSourceInfo(resourceId, localId, isSource);
224
+ case 2:
225
+ response = _context.sent;
226
+ if (!response.error) {
227
+ _context.next = 6;
228
+ break;
229
+ }
230
+ setFetchStatus('error');
231
+ return _context.abrupt("return");
232
+ case 6:
233
+ setReferenceData(processReferenceData(response.references, intl));
234
+ setFetchStatus('success');
235
+ case 8:
236
+ case "end":
237
+ return _context.stop();
238
+ }
239
+ }, _callee);
240
+ }));
241
+ return function getReferenceData() {
242
+ return _ref8.apply(this, arguments);
243
+ };
244
+ }();
245
+ getReferenceData();
246
+ }, [syncBlockStore, intl, isSource, localId, resourceId]);
247
+ var content = function content() {
248
+ switch (fetchStatus) {
249
+ case 'loading':
250
+ return /*#__PURE__*/React.createElement(LoadingScreen, null);
251
+ case 'error':
252
+ return /*#__PURE__*/React.createElement(ErrorScreen, {
253
+ formatMessage: formatMessage
254
+ });
255
+ case 'success':
256
+ if (referenceData.length > 0) {
257
+ return /*#__PURE__*/React.createElement("div", {
258
+ "data-testid": "synced-locations-dropdown-content",
259
+ className: (0, _runtime.ax)([styles.contentContainer, "_ku9g126e _18bk1rpy"])
260
+ }, /*#__PURE__*/React.createElement(_dropdownMenu.DropdownItemGroup, {
261
+ title: formatMessage(_messages.syncBlockMessages.syncedLocationDropdownHeading, {
262
+ count: "".concat(referenceData.length > 99 ? '99+' : referenceData.length)
263
+ })
264
+ }, referenceData.map(function (reference) {
265
+ return /*#__PURE__*/React.createElement("div", {
266
+ key: reference.title,
267
+ className: (0, _runtime.ax)(["_2ll012x7"])
268
+ }, /*#__PURE__*/React.createElement(_tooltip.default, {
269
+ content: reference.title || reference.url || ''
270
+ }, /*#__PURE__*/React.createElement(_dropdownMenu.DropdownItem, {
271
+ elemBefore: /*#__PURE__*/React.createElement(ItemIcon, {
272
+ reference: reference
273
+ }),
274
+ href: reference.url,
275
+ target: "_blank",
276
+ key: reference.title
277
+ }, /*#__PURE__*/React.createElement(ItemTitle, {
278
+ title: reference.title || reference.url || '',
279
+ formatMessage: formatMessage,
280
+ onSamePage: reference.onSamePage,
281
+ isSource: reference.isSource,
282
+ hasAccess: reference.hasAccess
283
+ }))));
284
+ })));
285
+ } else {
286
+ return /*#__PURE__*/React.createElement(NoResultScreen, {
287
+ formatMessage: formatMessage
288
+ });
289
+ }
290
+ }
291
+ };
292
+ return /*#__PURE__*/React.createElement(_compiled.Box, {
293
+ xcss: styles.dropdownContent
294
+ }, content());
295
+ };
296
+ var LoadingScreen = function LoadingScreen() {
297
+ return /*#__PURE__*/React.createElement(_compiled.Box, null, /*#__PURE__*/React.createElement(_spinner.default, null));
298
+ };
299
+ var ErrorScreen = function ErrorScreen(_ref9) {
300
+ var formatMessage = _ref9.formatMessage;
301
+ return /*#__PURE__*/React.createElement(_compiled.Box, {
302
+ xcss: styles.errorContainer
303
+ }, /*#__PURE__*/React.createElement(_compiled.Box, {
304
+ xcss: styles.errorIcon
305
+ }, /*#__PURE__*/React.createElement(_statusError.default, {
306
+ color: "var(--ds-icon-danger, #C9372C)",
307
+ spacing: "spacious",
308
+ label: "",
309
+ size: "small"
310
+ })), /*#__PURE__*/React.createElement(_compiled.Text, {
311
+ as: "p",
312
+ size: "medium"
313
+ }, formatMessage(_messages.syncBlockMessages.syncedLocationDropdownError)));
314
+ };
315
+ var NoResultScreen = function NoResultScreen(_ref0) {
316
+ var formatMessage = _ref0.formatMessage;
317
+ return /*#__PURE__*/React.createElement(_compiled.Stack, {
318
+ xcss: styles.noResultsContainer,
319
+ space: "space.100"
320
+ }, /*#__PURE__*/React.createElement(_compiled.Text, {
321
+ as: "p"
322
+ }, formatMessage(_messages.syncBlockMessages.syncedLocationDropdownNoResults)), /*#__PURE__*/React.createElement(_compiled.Text, {
323
+ as: "p"
324
+ }, /*#__PURE__*/React.createElement(_compiled.Anchor, {
325
+ href: "https://hello.atlassian.net/wiki/x/tAtCeAE",
326
+ target: "_blank",
327
+ xcss: styles.learnMoreLink
328
+ }, formatMessage(_messages.syncBlockMessages.syncedLocationDropdownLearnMoreLink))));
329
+ };
@@ -18,6 +18,7 @@ var _edit = _interopRequireDefault(require("@atlaskit/icon/core/edit"));
18
18
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
19
19
  var _editorCommands = require("../editor-commands");
20
20
  var _utils2 = require("../pm-plugins/utils/utils");
21
+ var _SyncedLocationDropdown = require("./SyncedLocationDropdown");
21
22
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
22
23
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
23
24
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -29,8 +30,12 @@ var getToolbarConfig = exports.getToolbarConfig = function getToolbarConfig(stat
29
30
  }
30
31
  var syncBlockInstance = syncBlockStore.referenceManager.getFromCache(syncBlockObject.node.attrs.resourceId);
31
32
  var isUnsyncedBlock = (syncBlockInstance === null || syncBlockInstance === void 0 ? void 0 : syncBlockInstance.error) === _editorSyncedBlockProvider.SyncBlockError.NotFound;
33
+ var isErroredBlock = syncBlockInstance === null || syncBlockInstance === void 0 ? void 0 : syncBlockInstance.error;
32
34
  var bodiedSyncBlock = state.schema.nodes.bodiedSyncBlock;
33
35
  var isBodiedSyncBlock = (0, _utils2.isBodiedSyncBlockNode)(syncBlockObject.node, bodiedSyncBlock);
36
+ var _syncBlockObject$node = syncBlockObject.node.attrs,
37
+ resourceId = _syncBlockObject$node.resourceId,
38
+ localId = _syncBlockObject$node.localId;
34
39
  var formatMessage = intl.formatMessage;
35
40
  var nodeType = syncBlockObject.node.type;
36
41
  var hoverDecoration = api === null || api === void 0 || (_api$decorations = api.decorations) === null || _api$decorations === void 0 ? void 0 : _api$decorations.actions.hoverDecoration;
@@ -53,6 +58,22 @@ var getToolbarConfig = exports.getToolbarConfig = function getToolbarConfig(stat
53
58
  }, hoverDecorationProps(nodeType, _consts.akEditorSelectedNodeClassName));
54
59
  items.push(deleteButton);
55
60
  } else {
61
+ if (!isErroredBlock && (0, _platformFeatureFlags.fg)('platform_synced_block_dogfooding')) {
62
+ var syncedLocation = {
63
+ type: 'custom',
64
+ fallback: [],
65
+ render: function render() {
66
+ return /*#__PURE__*/_react.default.createElement(_SyncedLocationDropdown.SyncedLocationDropdown, {
67
+ syncBlockStore: syncBlockStore,
68
+ resourceId: resourceId,
69
+ localId: localId,
70
+ intl: intl,
71
+ isSource: isBodiedSyncBlock
72
+ });
73
+ }
74
+ };
75
+ items.push(syncedLocation);
76
+ }
56
77
  var copyButton = _objectSpread({
57
78
  id: 'editor.syncedBlock.copy',
58
79
  type: 'button',
@@ -0,0 +1,34 @@
1
+
2
+ ._2rkol0p1{border-radius:var(--ds-radius-tile,25%)}
3
+ ._y44vfmxe{animation:kgnpaw5 .7s ease-in-out}
4
+ ._1mour5cr{margin-block:var(--ds-space-negative-050,-4px)}
5
+ ._1rjcv77o{padding-block:var(--ds-space-025,2px)}
6
+ ._ku9g126e [data-ds--menu--heading-item]{margin-block:var(--ds-space-050,4px)!important}._18bk1rpy [data-ds--menu--heading-item]{color:var(--ds-text-subtlest,#6b6e76)}
7
+ ._18m915vq{overflow-y:hidden}
8
+ ._18m91wug{overflow-y:auto}
9
+ ._1bah1h6o{justify-content:center}
10
+ ._1bsb19n7{width:106px}
11
+ ._1bsb1osq{width:100%}
12
+ ._1bsbgktf{width:20px}
13
+ ._1bsbo8uj{width:235px}
14
+ ._1bsbsmdz{width:342px}
15
+ ._1bto1l2s{text-overflow:ellipsis}
16
+ ._1e0c1txw{display:flex}
17
+ ._1hmsglyw{text-decoration-line:none}
18
+ ._1reo15vq{overflow-x:hidden}
19
+ ._1tkeqkoa{min-height:9pc}
20
+ ._1ul91wqb{min-width:60px}
21
+ ._1wpz1fhb{align-self:stretch}
22
+ ._2ll012x7 a>span{column-gap:var(--ds-space-075,6px)}
23
+ ._4bfu1r31{text-decoration-color:currentColor}
24
+ ._4cvr1h6o{align-items:center}
25
+ ._4t3igktf{height:20px}
26
+ ._ahbq12x7{margin-inline-start:var(--ds-space-075,6px)}
27
+ ._ajmmnqa1{text-decoration-style:solid}
28
+ ._bfhki8nm{background-color:var(--ds-background-neutral,#0515240f)}
29
+ ._c71lko4j{max-height:19pc}
30
+ ._o5721q9c{white-space:nowrap}
31
+ ._syaz1rpy{color:var(--ds-text-subtlest,#6b6e76)}
32
+ ._syazazsu{color:var(--ds-text-subtle,#505258)}
33
+ ._y3gn1h6o{text-align:center}
34
+ @keyframes kgnpaw5{0%{opacity:0}to{opacity:1}}