@atlaskit/editor-synced-block-provider 2.9.0 → 2.9.1

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,14 @@
1
1
  # @atlaskit/editor-synced-block-provider
2
2
 
3
+ ## 2.9.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [`e3aafa008fcf4`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/e3aafa008fcf4) -
8
+ EDITOR-2771 Pass parent Editor/Renderer data providers through SyncBlockDataProvider to the nested
9
+ renderer
10
+ - Updated dependencies
11
+
3
12
  ## 2.9.0
4
13
 
5
14
  ### Minor Changes
@@ -72,8 +72,9 @@ var useFetchSyncBlockData = exports.useFetchSyncBlockData = function useFetchSyn
72
72
  };
73
73
  }, [localId, referenceSyncBlockStoreManager, resourceId]);
74
74
  return {
75
- syncBlockInstance: syncBlockInstance,
76
75
  isLoading: isLoading,
77
- reloadData: reloadData
76
+ providerFactory: referenceSyncBlockStoreManager.getProviderFactory(resourceId || ''),
77
+ reloadData: reloadData,
78
+ syncBlockInstance: syncBlockInstance
78
79
  };
79
80
  };
@@ -22,7 +22,15 @@ var _sourceInfo = require("../utils/sourceInfo");
22
22
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
23
23
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
24
24
  var SyncBlockProvider = exports.SyncBlockProvider = /*#__PURE__*/function (_SyncBlockDataProvide) {
25
- function SyncBlockProvider(fetchProvider, writeProvider, sourceId) {
25
+ /**
26
+ * Constructor for the SyncBlockProvider
27
+ *
28
+ * @param fetchProvider
29
+ * @param writeProvider
30
+ * @param sourceId
31
+ * @param nestedRendererDataProviders
32
+ */
33
+ function SyncBlockProvider(fetchProvider, writeProvider, sourceId, providerOptions) {
26
34
  var _this;
27
35
  (0, _classCallCheck2.default)(this, SyncBlockProvider);
28
36
  _this = _callSuper(this, SyncBlockProvider);
@@ -30,19 +38,44 @@ var SyncBlockProvider = exports.SyncBlockProvider = /*#__PURE__*/function (_Sync
30
38
  _this.fetchProvider = fetchProvider;
31
39
  _this.writeProvider = writeProvider;
32
40
  _this.sourceId = sourceId;
41
+ _this.providerOptions = providerOptions;
33
42
  return _this;
34
43
  }
44
+
45
+ /**
46
+ * Check if the node is supported by the provider
47
+ *
48
+ * @param node
49
+ *
50
+ * @returns True if the node is supported, false otherwise
51
+ */
35
52
  (0, _inherits2.default)(SyncBlockProvider, _SyncBlockDataProvide);
36
53
  return (0, _createClass2.default)(SyncBlockProvider, [{
37
54
  key: "isNodeSupported",
38
55
  value: function isNodeSupported(node) {
39
- return node.type === 'syncBlock';
56
+ return node.type === 'syncBlock' || node.type === 'bodiedSyncBlock';
40
57
  }
58
+
59
+ /**
60
+ * Get the data key for the node
61
+ *
62
+ * @param node
63
+ *
64
+ * @returns The data key
65
+ */
41
66
  }, {
42
67
  key: "nodeDataKey",
43
68
  value: function nodeDataKey(node) {
44
69
  return node.attrs.localId;
45
70
  }
71
+
72
+ /**
73
+ * Fetch the data from the fetch provider
74
+ *
75
+ * @param nodes
76
+ *
77
+ * @returns Array of {resourceId?: string, error?: string}.
78
+ */
46
79
  }, {
47
80
  key: "fetchNodesData",
48
81
  value: function fetchNodesData(nodes) {
@@ -70,6 +103,7 @@ var SyncBlockProvider = exports.SyncBlockProvider = /*#__PURE__*/function (_Sync
70
103
  }
71
104
 
72
105
  /**
106
+ * Write the data to the write provider
73
107
  *
74
108
  * @param nodes
75
109
  * @param data
@@ -114,10 +148,18 @@ var SyncBlockProvider = exports.SyncBlockProvider = /*#__PURE__*/function (_Sync
114
148
  return _writeNodesData.apply(this, arguments);
115
149
  }
116
150
  return writeNodesData;
117
- }())
151
+ }()
152
+ /**
153
+ * Delete the data from the write provider
154
+ *
155
+ * @param resourceIds
156
+ *
157
+ * @returns Array of {resourceId?: string, error?: string}.
158
+ */
159
+ )
118
160
  }, {
119
161
  key: "deleteNodesData",
120
- value: function () {
162
+ value: (function () {
121
163
  var _deleteNodesData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(resourceIds) {
122
164
  var _this4 = this;
123
165
  var results;
@@ -152,11 +194,25 @@ var SyncBlockProvider = exports.SyncBlockProvider = /*#__PURE__*/function (_Sync
152
194
  }
153
195
  return deleteNodesData;
154
196
  }()
197
+ /**
198
+ * Get the source id
199
+ *
200
+ * @returns The source id
201
+ */
202
+ )
155
203
  }, {
156
204
  key: "getSourceId",
157
205
  value: function getSourceId() {
158
206
  return this.sourceId;
159
207
  }
208
+
209
+ /**
210
+ * Retrieve the source info from the source id
211
+ *
212
+ * @param node
213
+ *
214
+ * @returns The source info
215
+ */
160
216
  }, {
161
217
  key: "retrieveSyncBlockSourceInfo",
162
218
  value: function retrieveSyncBlockSourceInfo(node) {
@@ -182,10 +238,21 @@ var SyncBlockProvider = exports.SyncBlockProvider = /*#__PURE__*/function (_Sync
182
238
  value: function generateResourceId(sourceId, localId) {
183
239
  return this.writeProvider.generateResourceId(sourceId, localId);
184
240
  }
241
+
242
+ /**
243
+ * Get the synced block renderer provider options
244
+ *
245
+ * @returns The synced block renderer provider options
246
+ */
247
+ }, {
248
+ key: "getSyncedBlockRendererProviderOptions",
249
+ value: function getSyncedBlockRendererProviderOptions() {
250
+ return this.providerOptions;
251
+ }
185
252
  }]);
186
253
  }(_types2.SyncBlockDataProvider);
187
- var useMemoizedSyncedBlockProvider = exports.useMemoizedSyncedBlockProvider = function useMemoizedSyncedBlockProvider(fetchProvider, writeProvider, sourceId) {
254
+ var useMemoizedSyncedBlockProvider = exports.useMemoizedSyncedBlockProvider = function useMemoizedSyncedBlockProvider(fetchProvider, writeProvider, sourceId, providerOptions) {
188
255
  return (0, _react.useMemo)(function () {
189
- return new SyncBlockProvider(fetchProvider, writeProvider, sourceId);
190
- }, [fetchProvider, writeProvider, sourceId]);
256
+ return new SyncBlockProvider(fetchProvider, writeProvider, sourceId, providerOptions);
257
+ }, [fetchProvider, writeProvider, sourceId, providerOptions]);
191
258
  };
@@ -11,6 +11,7 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
11
11
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
13
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
+ var _providerFactory = require("@atlaskit/editor-common/provider-factory");
14
15
  var _types = require("../common/types");
15
16
  var _resolveSyncBlockInstance = require("../utils/resolveSyncBlockInstance");
16
17
  var _utils = require("../utils/utils");
@@ -28,6 +29,7 @@ var ReferenceSyncBlockStoreManager = exports.ReferenceSyncBlockStoreManager = /*
28
29
  this.titleSubscriptions = new Map();
29
30
  this.dataProvider = dataProvider;
30
31
  this.syncBlockURLRequests = new Map();
32
+ this.providerFactories = new Map();
31
33
  }
32
34
 
33
35
  /**
@@ -243,6 +245,7 @@ var ReferenceSyncBlockStoreManager = exports.ReferenceSyncBlockStoreManager = /*
243
245
  key: "deleteFromCache",
244
246
  value: function deleteFromCache(resourceId) {
245
247
  this.syncBlockCache.delete(resourceId);
248
+ this.providerFactories.delete(resourceId);
246
249
  }
247
250
  }, {
248
251
  key: "subscribeToSyncBlock",
@@ -338,12 +341,35 @@ var ReferenceSyncBlockStoreManager = exports.ReferenceSyncBlockStoreManager = /*
338
341
  }
339
342
  return (_syncBlock$data = syncBlock.data) === null || _syncBlock$data === void 0 ? void 0 : _syncBlock$data.sourceURL;
340
343
  }
344
+ }, {
345
+ key: "getProviderFactory",
346
+ value: function getProviderFactory(resourceId) {
347
+ if (!this.dataProvider) {
348
+ return undefined;
349
+ }
350
+ var _this$dataProvider$ge = this.dataProvider.getSyncedBlockRendererProviderOptions(),
351
+ parentDataProviders = _this$dataProvider$ge.parentDataProviders;
352
+ if (!this.providerFactories.has(resourceId)) {
353
+ // TODO: EDITOR-2771 - In follow up PR, create media & emoji providers per ref sync block
354
+ // The media & emoji providers will be set later, once we get ref sync block data with page ID
355
+ // So we need to keep the reference to the Provider Factory so we can then set media & emoji providers later
356
+ this.providerFactories.set(resourceId, _providerFactory.ProviderFactory.create({
357
+ emojiProvider: parentDataProviders === null || parentDataProviders === void 0 ? void 0 : parentDataProviders.emojiProvider,
358
+ mediaProvider: parentDataProviders === null || parentDataProviders === void 0 ? void 0 : parentDataProviders.mediaProvider,
359
+ mentionProvider: parentDataProviders === null || parentDataProviders === void 0 ? void 0 : parentDataProviders.mentionProvider,
360
+ profilecardProvider: parentDataProviders === null || parentDataProviders === void 0 ? void 0 : parentDataProviders.profilecardProvider,
361
+ taskDecisionProvider: parentDataProviders === null || parentDataProviders === void 0 ? void 0 : parentDataProviders.taskDecisionProvider
362
+ }));
363
+ }
364
+ return this.providerFactories.get(resourceId);
365
+ }
341
366
  }, {
342
367
  key: "destroy",
343
368
  value: function destroy() {
344
369
  this.syncBlockCache.clear();
345
370
  this.subscriptions.clear();
346
371
  this.syncBlockURLRequests.clear();
372
+ this.providerFactories.clear();
347
373
  }
348
374
  }]);
349
375
  }();
@@ -171,6 +171,11 @@ var SyncBlockStoreManager = exports.SyncBlockStoreManager = /*#__PURE__*/functio
171
171
  // only applicable to source sync block, for now (will be refactored further)
172
172
  this.sourceSyncBlockStoreManager.rebaseTransaction(incomingTr, state);
173
173
  }
174
+ }, {
175
+ key: "getReferenceSyncBlockProviderFactory",
176
+ value: function getReferenceSyncBlockProviderFactory(resourceId) {
177
+ return this.referenceSyncBlockStoreManager.getProviderFactory(resourceId);
178
+ }
174
179
  }, {
175
180
  key: "destroy",
176
181
  value: function destroy() {
@@ -36,8 +36,9 @@ export const useFetchSyncBlockData = (manager, resourceId, localId) => {
36
36
  };
37
37
  }, [localId, referenceSyncBlockStoreManager, resourceId]);
38
38
  return {
39
- syncBlockInstance,
40
39
  isLoading,
41
- reloadData
40
+ providerFactory: referenceSyncBlockStoreManager.getProviderFactory(resourceId || ''),
41
+ reloadData,
42
+ syncBlockInstance
42
43
  };
43
44
  };
@@ -5,19 +5,52 @@ import { SyncBlockDataProvider } from '../providers/types';
5
5
  import { getLocalIdFromAri, getPageARIFromResourceId } from '../utils/ari';
6
6
  import { fetchSourceInfo } from '../utils/sourceInfo';
7
7
  export class SyncBlockProvider extends SyncBlockDataProvider {
8
- constructor(fetchProvider, writeProvider, sourceId) {
8
+ /**
9
+ * Constructor for the SyncBlockProvider
10
+ *
11
+ * @param fetchProvider
12
+ * @param writeProvider
13
+ * @param sourceId
14
+ * @param nestedRendererDataProviders
15
+ */
16
+ constructor(fetchProvider, writeProvider, sourceId, providerOptions) {
9
17
  super();
10
18
  _defineProperty(this, "name", 'syncBlockProvider');
11
19
  this.fetchProvider = fetchProvider;
12
20
  this.writeProvider = writeProvider;
13
21
  this.sourceId = sourceId;
22
+ this.providerOptions = providerOptions;
14
23
  }
24
+
25
+ /**
26
+ * Check if the node is supported by the provider
27
+ *
28
+ * @param node
29
+ *
30
+ * @returns True if the node is supported, false otherwise
31
+ */
15
32
  isNodeSupported(node) {
16
- return node.type === 'syncBlock';
33
+ return node.type === 'syncBlock' || node.type === 'bodiedSyncBlock';
17
34
  }
35
+
36
+ /**
37
+ * Get the data key for the node
38
+ *
39
+ * @param node
40
+ *
41
+ * @returns The data key
42
+ */
18
43
  nodeDataKey(node) {
19
44
  return node.attrs.localId;
20
45
  }
46
+
47
+ /**
48
+ * Fetch the data from the fetch provider
49
+ *
50
+ * @param nodes
51
+ *
52
+ * @returns Array of {resourceId?: string, error?: string}.
53
+ */
21
54
  fetchNodesData(nodes) {
22
55
  const resourceIdSet = new Set(nodes.map(node => node.attrs.resourceId));
23
56
  const resourceIds = [...resourceIdSet];
@@ -38,6 +71,7 @@ export class SyncBlockProvider extends SyncBlockDataProvider {
38
71
  }
39
72
 
40
73
  /**
74
+ * Write the data to the write provider
41
75
  *
42
76
  * @param nodes
43
77
  * @param data
@@ -62,6 +96,14 @@ export class SyncBlockProvider extends SyncBlockDataProvider {
62
96
  }
63
97
  });
64
98
  }
99
+
100
+ /**
101
+ * Delete the data from the write provider
102
+ *
103
+ * @param resourceIds
104
+ *
105
+ * @returns Array of {resourceId?: string, error?: string}.
106
+ */
65
107
  async deleteNodesData(resourceIds) {
66
108
  const results = await Promise.allSettled(resourceIds.map(resourceId => this.writeProvider.deleteData(resourceId)));
67
109
  return results.map((result, index) => {
@@ -76,9 +118,23 @@ export class SyncBlockProvider extends SyncBlockDataProvider {
76
118
  }
77
119
  });
78
120
  }
121
+
122
+ /**
123
+ * Get the source id
124
+ *
125
+ * @returns The source id
126
+ */
79
127
  getSourceId() {
80
128
  return this.sourceId;
81
129
  }
130
+
131
+ /**
132
+ * Retrieve the source info from the source id
133
+ *
134
+ * @param node
135
+ *
136
+ * @returns The source info
137
+ */
82
138
  retrieveSyncBlockSourceInfo(node) {
83
139
  const {
84
140
  resourceId
@@ -102,9 +158,18 @@ export class SyncBlockProvider extends SyncBlockDataProvider {
102
158
  generateResourceId(sourceId, localId) {
103
159
  return this.writeProvider.generateResourceId(sourceId, localId);
104
160
  }
161
+
162
+ /**
163
+ * Get the synced block renderer provider options
164
+ *
165
+ * @returns The synced block renderer provider options
166
+ */
167
+ getSyncedBlockRendererProviderOptions() {
168
+ return this.providerOptions;
169
+ }
105
170
  }
106
- export const useMemoizedSyncedBlockProvider = (fetchProvider, writeProvider, sourceId) => {
171
+ export const useMemoizedSyncedBlockProvider = (fetchProvider, writeProvider, sourceId, providerOptions) => {
107
172
  return useMemo(() => {
108
- return new SyncBlockProvider(fetchProvider, writeProvider, sourceId);
109
- }, [fetchProvider, writeProvider, sourceId]);
173
+ return new SyncBlockProvider(fetchProvider, writeProvider, sourceId, providerOptions);
174
+ }, [fetchProvider, writeProvider, sourceId, providerOptions]);
110
175
  };
@@ -1,4 +1,5 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
2
3
  import { SyncBlockError } from '../common/types';
3
4
  import { resolveSyncBlockInstance } from '../utils/resolveSyncBlockInstance';
4
5
  import { createSyncBlockNode } from '../utils/utils';
@@ -10,6 +11,7 @@ export class ReferenceSyncBlockStoreManager {
10
11
  this.titleSubscriptions = new Map();
11
12
  this.dataProvider = dataProvider;
12
13
  this.syncBlockURLRequests = new Map();
14
+ this.providerFactories = new Map();
13
15
  }
14
16
 
15
17
  /**
@@ -134,6 +136,7 @@ export class ReferenceSyncBlockStoreManager {
134
136
  }
135
137
  deleteFromCache(resourceId) {
136
138
  this.syncBlockCache.delete(resourceId);
139
+ this.providerFactories.delete(resourceId);
137
140
  }
138
141
  subscribeToSyncBlock(resourceId, localId, callback) {
139
142
  // add to subscriptions map
@@ -227,9 +230,31 @@ export class ReferenceSyncBlockStoreManager {
227
230
  }
228
231
  return (_syncBlock$data = syncBlock.data) === null || _syncBlock$data === void 0 ? void 0 : _syncBlock$data.sourceURL;
229
232
  }
233
+ getProviderFactory(resourceId) {
234
+ if (!this.dataProvider) {
235
+ return undefined;
236
+ }
237
+ const {
238
+ parentDataProviders
239
+ } = this.dataProvider.getSyncedBlockRendererProviderOptions();
240
+ if (!this.providerFactories.has(resourceId)) {
241
+ // TODO: EDITOR-2771 - In follow up PR, create media & emoji providers per ref sync block
242
+ // The media & emoji providers will be set later, once we get ref sync block data with page ID
243
+ // So we need to keep the reference to the Provider Factory so we can then set media & emoji providers later
244
+ this.providerFactories.set(resourceId, ProviderFactory.create({
245
+ emojiProvider: parentDataProviders === null || parentDataProviders === void 0 ? void 0 : parentDataProviders.emojiProvider,
246
+ mediaProvider: parentDataProviders === null || parentDataProviders === void 0 ? void 0 : parentDataProviders.mediaProvider,
247
+ mentionProvider: parentDataProviders === null || parentDataProviders === void 0 ? void 0 : parentDataProviders.mentionProvider,
248
+ profilecardProvider: parentDataProviders === null || parentDataProviders === void 0 ? void 0 : parentDataProviders.profilecardProvider,
249
+ taskDecisionProvider: parentDataProviders === null || parentDataProviders === void 0 ? void 0 : parentDataProviders.taskDecisionProvider
250
+ }));
251
+ }
252
+ return this.providerFactories.get(resourceId);
253
+ }
230
254
  destroy() {
231
255
  this.syncBlockCache.clear();
232
256
  this.subscriptions.clear();
233
257
  this.syncBlockURLRequests.clear();
258
+ this.providerFactories.clear();
234
259
  }
235
260
  }
@@ -122,6 +122,9 @@ export class SyncBlockStoreManager {
122
122
  // only applicable to source sync block, for now (will be refactored further)
123
123
  this.sourceSyncBlockStoreManager.rebaseTransaction(incomingTr, state);
124
124
  }
125
+ getReferenceSyncBlockProviderFactory(resourceId) {
126
+ return this.referenceSyncBlockStoreManager.getProviderFactory(resourceId);
127
+ }
125
128
  destroy() {
126
129
  this.referenceSyncBlockStoreManager.destroy();
127
130
  }
@@ -65,8 +65,9 @@ export var useFetchSyncBlockData = function useFetchSyncBlockData(manager, resou
65
65
  };
66
66
  }, [localId, referenceSyncBlockStoreManager, resourceId]);
67
67
  return {
68
- syncBlockInstance: syncBlockInstance,
69
68
  isLoading: isLoading,
70
- reloadData: reloadData
69
+ providerFactory: referenceSyncBlockStoreManager.getProviderFactory(resourceId || ''),
70
+ reloadData: reloadData,
71
+ syncBlockInstance: syncBlockInstance
71
72
  };
72
73
  };
@@ -15,7 +15,15 @@ import { SyncBlockDataProvider } from '../providers/types';
15
15
  import { getLocalIdFromAri, getPageARIFromResourceId } from '../utils/ari';
16
16
  import { fetchSourceInfo } from '../utils/sourceInfo';
17
17
  export var SyncBlockProvider = /*#__PURE__*/function (_SyncBlockDataProvide) {
18
- function SyncBlockProvider(fetchProvider, writeProvider, sourceId) {
18
+ /**
19
+ * Constructor for the SyncBlockProvider
20
+ *
21
+ * @param fetchProvider
22
+ * @param writeProvider
23
+ * @param sourceId
24
+ * @param nestedRendererDataProviders
25
+ */
26
+ function SyncBlockProvider(fetchProvider, writeProvider, sourceId, providerOptions) {
19
27
  var _this;
20
28
  _classCallCheck(this, SyncBlockProvider);
21
29
  _this = _callSuper(this, SyncBlockProvider);
@@ -23,19 +31,44 @@ export var SyncBlockProvider = /*#__PURE__*/function (_SyncBlockDataProvide) {
23
31
  _this.fetchProvider = fetchProvider;
24
32
  _this.writeProvider = writeProvider;
25
33
  _this.sourceId = sourceId;
34
+ _this.providerOptions = providerOptions;
26
35
  return _this;
27
36
  }
37
+
38
+ /**
39
+ * Check if the node is supported by the provider
40
+ *
41
+ * @param node
42
+ *
43
+ * @returns True if the node is supported, false otherwise
44
+ */
28
45
  _inherits(SyncBlockProvider, _SyncBlockDataProvide);
29
46
  return _createClass(SyncBlockProvider, [{
30
47
  key: "isNodeSupported",
31
48
  value: function isNodeSupported(node) {
32
- return node.type === 'syncBlock';
49
+ return node.type === 'syncBlock' || node.type === 'bodiedSyncBlock';
33
50
  }
51
+
52
+ /**
53
+ * Get the data key for the node
54
+ *
55
+ * @param node
56
+ *
57
+ * @returns The data key
58
+ */
34
59
  }, {
35
60
  key: "nodeDataKey",
36
61
  value: function nodeDataKey(node) {
37
62
  return node.attrs.localId;
38
63
  }
64
+
65
+ /**
66
+ * Fetch the data from the fetch provider
67
+ *
68
+ * @param nodes
69
+ *
70
+ * @returns Array of {resourceId?: string, error?: string}.
71
+ */
39
72
  }, {
40
73
  key: "fetchNodesData",
41
74
  value: function fetchNodesData(nodes) {
@@ -63,6 +96,7 @@ export var SyncBlockProvider = /*#__PURE__*/function (_SyncBlockDataProvide) {
63
96
  }
64
97
 
65
98
  /**
99
+ * Write the data to the write provider
66
100
  *
67
101
  * @param nodes
68
102
  * @param data
@@ -107,10 +141,18 @@ export var SyncBlockProvider = /*#__PURE__*/function (_SyncBlockDataProvide) {
107
141
  return _writeNodesData.apply(this, arguments);
108
142
  }
109
143
  return writeNodesData;
110
- }())
144
+ }()
145
+ /**
146
+ * Delete the data from the write provider
147
+ *
148
+ * @param resourceIds
149
+ *
150
+ * @returns Array of {resourceId?: string, error?: string}.
151
+ */
152
+ )
111
153
  }, {
112
154
  key: "deleteNodesData",
113
- value: function () {
155
+ value: (function () {
114
156
  var _deleteNodesData = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(resourceIds) {
115
157
  var _this4 = this;
116
158
  var results;
@@ -145,11 +187,25 @@ export var SyncBlockProvider = /*#__PURE__*/function (_SyncBlockDataProvide) {
145
187
  }
146
188
  return deleteNodesData;
147
189
  }()
190
+ /**
191
+ * Get the source id
192
+ *
193
+ * @returns The source id
194
+ */
195
+ )
148
196
  }, {
149
197
  key: "getSourceId",
150
198
  value: function getSourceId() {
151
199
  return this.sourceId;
152
200
  }
201
+
202
+ /**
203
+ * Retrieve the source info from the source id
204
+ *
205
+ * @param node
206
+ *
207
+ * @returns The source info
208
+ */
153
209
  }, {
154
210
  key: "retrieveSyncBlockSourceInfo",
155
211
  value: function retrieveSyncBlockSourceInfo(node) {
@@ -175,10 +231,21 @@ export var SyncBlockProvider = /*#__PURE__*/function (_SyncBlockDataProvide) {
175
231
  value: function generateResourceId(sourceId, localId) {
176
232
  return this.writeProvider.generateResourceId(sourceId, localId);
177
233
  }
234
+
235
+ /**
236
+ * Get the synced block renderer provider options
237
+ *
238
+ * @returns The synced block renderer provider options
239
+ */
240
+ }, {
241
+ key: "getSyncedBlockRendererProviderOptions",
242
+ value: function getSyncedBlockRendererProviderOptions() {
243
+ return this.providerOptions;
244
+ }
178
245
  }]);
179
246
  }(SyncBlockDataProvider);
180
- export var useMemoizedSyncedBlockProvider = function useMemoizedSyncedBlockProvider(fetchProvider, writeProvider, sourceId) {
247
+ export var useMemoizedSyncedBlockProvider = function useMemoizedSyncedBlockProvider(fetchProvider, writeProvider, sourceId, providerOptions) {
181
248
  return useMemo(function () {
182
- return new SyncBlockProvider(fetchProvider, writeProvider, sourceId);
183
- }, [fetchProvider, writeProvider, sourceId]);
249
+ return new SyncBlockProvider(fetchProvider, writeProvider, sourceId, providerOptions);
250
+ }, [fetchProvider, writeProvider, sourceId, providerOptions]);
184
251
  };
@@ -9,6 +9,7 @@ import _regeneratorRuntime from "@babel/runtime/regenerator";
9
9
  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; } } }; }
10
10
  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; } }
11
11
  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; }
12
+ import { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
12
13
  import { SyncBlockError } from '../common/types';
13
14
  import { resolveSyncBlockInstance } from '../utils/resolveSyncBlockInstance';
14
15
  import { createSyncBlockNode } from '../utils/utils';
@@ -21,6 +22,7 @@ export var ReferenceSyncBlockStoreManager = /*#__PURE__*/function () {
21
22
  this.titleSubscriptions = new Map();
22
23
  this.dataProvider = dataProvider;
23
24
  this.syncBlockURLRequests = new Map();
25
+ this.providerFactories = new Map();
24
26
  }
25
27
 
26
28
  /**
@@ -236,6 +238,7 @@ export var ReferenceSyncBlockStoreManager = /*#__PURE__*/function () {
236
238
  key: "deleteFromCache",
237
239
  value: function deleteFromCache(resourceId) {
238
240
  this.syncBlockCache.delete(resourceId);
241
+ this.providerFactories.delete(resourceId);
239
242
  }
240
243
  }, {
241
244
  key: "subscribeToSyncBlock",
@@ -331,12 +334,35 @@ export var ReferenceSyncBlockStoreManager = /*#__PURE__*/function () {
331
334
  }
332
335
  return (_syncBlock$data = syncBlock.data) === null || _syncBlock$data === void 0 ? void 0 : _syncBlock$data.sourceURL;
333
336
  }
337
+ }, {
338
+ key: "getProviderFactory",
339
+ value: function getProviderFactory(resourceId) {
340
+ if (!this.dataProvider) {
341
+ return undefined;
342
+ }
343
+ var _this$dataProvider$ge = this.dataProvider.getSyncedBlockRendererProviderOptions(),
344
+ parentDataProviders = _this$dataProvider$ge.parentDataProviders;
345
+ if (!this.providerFactories.has(resourceId)) {
346
+ // TODO: EDITOR-2771 - In follow up PR, create media & emoji providers per ref sync block
347
+ // The media & emoji providers will be set later, once we get ref sync block data with page ID
348
+ // So we need to keep the reference to the Provider Factory so we can then set media & emoji providers later
349
+ this.providerFactories.set(resourceId, ProviderFactory.create({
350
+ emojiProvider: parentDataProviders === null || parentDataProviders === void 0 ? void 0 : parentDataProviders.emojiProvider,
351
+ mediaProvider: parentDataProviders === null || parentDataProviders === void 0 ? void 0 : parentDataProviders.mediaProvider,
352
+ mentionProvider: parentDataProviders === null || parentDataProviders === void 0 ? void 0 : parentDataProviders.mentionProvider,
353
+ profilecardProvider: parentDataProviders === null || parentDataProviders === void 0 ? void 0 : parentDataProviders.profilecardProvider,
354
+ taskDecisionProvider: parentDataProviders === null || parentDataProviders === void 0 ? void 0 : parentDataProviders.taskDecisionProvider
355
+ }));
356
+ }
357
+ return this.providerFactories.get(resourceId);
358
+ }
334
359
  }, {
335
360
  key: "destroy",
336
361
  value: function destroy() {
337
362
  this.syncBlockCache.clear();
338
363
  this.subscriptions.clear();
339
364
  this.syncBlockURLRequests.clear();
365
+ this.providerFactories.clear();
340
366
  }
341
367
  }]);
342
368
  }();
@@ -165,6 +165,11 @@ export var SyncBlockStoreManager = /*#__PURE__*/function () {
165
165
  // only applicable to source sync block, for now (will be refactored further)
166
166
  this.sourceSyncBlockStoreManager.rebaseTransaction(incomingTr, state);
167
167
  }
168
+ }, {
169
+ key: "getReferenceSyncBlockProviderFactory",
170
+ value: function getReferenceSyncBlockProviderFactory(resourceId) {
171
+ return this.referenceSyncBlockStoreManager.getProviderFactory(resourceId);
172
+ }
168
173
  }, {
169
174
  key: "destroy",
170
175
  value: function destroy() {
@@ -1,7 +1,9 @@
1
+ import type { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
1
2
  import type { SyncBlockInstance } from '../providers/types';
2
3
  import type { SyncBlockStoreManager } from '../store-manager/syncBlockStoreManager';
3
4
  export interface UseFetchSyncBlockDataResult {
4
5
  isLoading: boolean;
6
+ providerFactory: ProviderFactory | undefined;
5
7
  reloadData: () => Promise<void>;
6
8
  syncBlockInstance: SyncBlockInstance | null;
7
9
  }
@@ -1,16 +1,47 @@
1
1
  import type { JSONNode } from '@atlaskit/editor-json-transformer/types';
2
2
  import { type SyncBlockData, type SyncBlockNode } from '../common/types';
3
- import { SyncBlockDataProvider, type ADFFetchProvider, type ADFWriteProvider, type DeleteSyncBlockResult, type SyncBlockInstance, type SyncBlockSourceInfo, type WriteSyncBlockResult } from '../providers/types';
3
+ import { SyncBlockDataProvider, type ADFFetchProvider, type ADFWriteProvider, type DeleteSyncBlockResult, type SyncBlockInstance, type SyncBlockSourceInfo, type SyncedBlockRendererProviderOptions, type WriteSyncBlockResult } from '../providers/types';
4
4
  export declare class SyncBlockProvider extends SyncBlockDataProvider {
5
5
  name: string;
6
6
  private fetchProvider;
7
7
  private writeProvider;
8
8
  private sourceId;
9
- constructor(fetchProvider: ADFFetchProvider, writeProvider: ADFWriteProvider, sourceId: string);
9
+ private providerOptions;
10
+ /**
11
+ * Constructor for the SyncBlockProvider
12
+ *
13
+ * @param fetchProvider
14
+ * @param writeProvider
15
+ * @param sourceId
16
+ * @param nestedRendererDataProviders
17
+ */
18
+ constructor(fetchProvider: ADFFetchProvider, writeProvider: ADFWriteProvider, sourceId: string, providerOptions: SyncedBlockRendererProviderOptions);
19
+ /**
20
+ * Check if the node is supported by the provider
21
+ *
22
+ * @param node
23
+ *
24
+ * @returns True if the node is supported, false otherwise
25
+ */
10
26
  isNodeSupported(node: JSONNode): node is SyncBlockNode;
27
+ /**
28
+ * Get the data key for the node
29
+ *
30
+ * @param node
31
+ *
32
+ * @returns The data key
33
+ */
11
34
  nodeDataKey(node: SyncBlockNode): string;
35
+ /**
36
+ * Fetch the data from the fetch provider
37
+ *
38
+ * @param nodes
39
+ *
40
+ * @returns Array of {resourceId?: string, error?: string}.
41
+ */
12
42
  fetchNodesData(nodes: SyncBlockNode[]): Promise<SyncBlockInstance[]>;
13
43
  /**
44
+ * Write the data to the write provider
14
45
  *
15
46
  * @param nodes
16
47
  * @param data
@@ -19,9 +50,34 @@ export declare class SyncBlockProvider extends SyncBlockDataProvider {
19
50
  * resourceId: resource id of the node if write successfully , error: reason for when write failed
20
51
  */
21
52
  writeNodesData(nodes: SyncBlockNode[], data: SyncBlockData[]): Promise<Array<WriteSyncBlockResult>>;
53
+ /**
54
+ * Delete the data from the write provider
55
+ *
56
+ * @param resourceIds
57
+ *
58
+ * @returns Array of {resourceId?: string, error?: string}.
59
+ */
22
60
  deleteNodesData(resourceIds: string[]): Promise<Array<DeleteSyncBlockResult>>;
61
+ /**
62
+ * Get the source id
63
+ *
64
+ * @returns The source id
65
+ */
23
66
  getSourceId(): string;
67
+ /**
68
+ * Retrieve the source info from the source id
69
+ *
70
+ * @param node
71
+ *
72
+ * @returns The source info
73
+ */
24
74
  retrieveSyncBlockSourceInfo(node: SyncBlockNode): Promise<SyncBlockSourceInfo | undefined>;
25
75
  generateResourceId(sourceId: string, localId: string): string;
76
+ /**
77
+ * Get the synced block renderer provider options
78
+ *
79
+ * @returns The synced block renderer provider options
80
+ */
81
+ getSyncedBlockRendererProviderOptions(): SyncedBlockRendererProviderOptions;
26
82
  }
27
- export declare const useMemoizedSyncedBlockProvider: (fetchProvider: ADFFetchProvider, writeProvider: ADFWriteProvider, sourceId: string) => SyncBlockProvider;
83
+ export declare const useMemoizedSyncedBlockProvider: (fetchProvider: ADFFetchProvider, writeProvider: ADFWriteProvider, sourceId: string, providerOptions: SyncedBlockRendererProviderOptions) => SyncBlockProvider;
@@ -1,3 +1,5 @@
1
+ import type { SyncedBlockRendererDataProviders, MediaProvider } from '@atlaskit/editor-common/provider-factory';
2
+ import type { EmojiProvider } from '@atlaskit/emoji';
1
3
  import { NodeDataProvider } from '@atlaskit/node-data-provider';
2
4
  import type { SyncBlockData, ResourceId, SyncBlockError, SyncBlockNode } from '../common/types';
3
5
  /**
@@ -31,11 +33,24 @@ export interface ADFWriteProvider {
31
33
  generateResourceId: (sourceId: string, localId: string) => ResourceId;
32
34
  writeData: (data: SyncBlockData) => Promise<WriteSyncBlockResult>;
33
35
  }
36
+ export type MediaEmojiProviderOptions = {
37
+ contentId: string;
38
+ contentType: string;
39
+ spaceKey?: string | null;
40
+ };
41
+ export type SyncedBlockRendererProviderOptions = {
42
+ parentDataProviders?: SyncedBlockRendererDataProviders;
43
+ providerCreator?: {
44
+ createEmojiProvider: ((options: MediaEmojiProviderOptions) => Promise<EmojiProvider>) | undefined;
45
+ createMediaProvider: ((options: MediaEmojiProviderOptions) => Promise<MediaProvider>) | undefined;
46
+ };
47
+ };
34
48
  export declare abstract class SyncBlockDataProvider extends NodeDataProvider<SyncBlockNode, SyncBlockInstance> {
35
49
  abstract writeNodesData(nodes: SyncBlockNode[], data: SyncBlockData[]): Promise<Array<WriteSyncBlockResult>>;
36
50
  abstract deleteNodesData(resourceIds: string[]): Promise<Array<DeleteSyncBlockResult>>;
37
51
  abstract getSourceId(): ResourceId;
38
52
  abstract retrieveSyncBlockSourceInfo(node: SyncBlockNode): Promise<SyncBlockSourceInfo | undefined>;
53
+ abstract getSyncedBlockRendererProviderOptions(): SyncedBlockRendererProviderOptions;
39
54
  /**
40
55
  * Generates a resource ID from a source ID and local ID.
41
56
  * @param sourceId - The source document ID (e.g., page ARI)
@@ -1,3 +1,4 @@
1
+ import { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
1
2
  import { type Node as PMNode } from '@atlaskit/editor-prosemirror/model';
2
3
  import { type ResourceId, type SyncBlockNode } from '../common/types';
3
4
  import type { SyncBlockInstance, SubscriptionCallback, SyncBlockDataProvider, TitleSubscriptionCallback } from '../providers/types';
@@ -6,6 +7,7 @@ export declare class ReferenceSyncBlockStoreManager {
6
7
  private syncBlockCache;
7
8
  private subscriptions;
8
9
  private titleSubscriptions;
10
+ private providerFactories;
9
11
  private syncBlockURLRequests;
10
12
  private isRefreshingSubscriptions;
11
13
  constructor(dataProvider?: SyncBlockDataProvider);
@@ -29,5 +31,6 @@ export declare class ReferenceSyncBlockStoreManager {
29
31
  * @returns
30
32
  */
31
33
  getSyncBlockURL(resourceId: ResourceId): string | undefined;
34
+ getProviderFactory(resourceId: ResourceId): ProviderFactory | undefined;
32
35
  destroy(): void;
33
36
  }
@@ -1,3 +1,4 @@
1
+ import type { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
1
2
  import type { EditorView } from '@atlaskit/editor-prosemirror/dist/types/view';
2
3
  import { type Node as PMNode } from '@atlaskit/editor-prosemirror/model';
3
4
  import type { EditorState, Transaction } from '@atlaskit/editor-prosemirror/state';
@@ -60,5 +61,6 @@ export declare class SyncBlockStoreManager {
60
61
  refreshSubscriptions(): void;
61
62
  deleteSyncBlocksWithConfirmation(tr: Transaction, syncBlockIds: SyncBlockAttrs[]): Promise<void>;
62
63
  rebaseTransaction(incomingTr: Transaction, state: EditorState): void;
64
+ getReferenceSyncBlockProviderFactory(resourceId: ResourceId): ProviderFactory | undefined;
63
65
  destroy(): void;
64
66
  }
@@ -1,7 +1,9 @@
1
+ import type { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
1
2
  import type { SyncBlockInstance } from '../providers/types';
2
3
  import type { SyncBlockStoreManager } from '../store-manager/syncBlockStoreManager';
3
4
  export interface UseFetchSyncBlockDataResult {
4
5
  isLoading: boolean;
6
+ providerFactory: ProviderFactory | undefined;
5
7
  reloadData: () => Promise<void>;
6
8
  syncBlockInstance: SyncBlockInstance | null;
7
9
  }
@@ -1,16 +1,47 @@
1
1
  import type { JSONNode } from '@atlaskit/editor-json-transformer/types';
2
2
  import { type SyncBlockData, type SyncBlockNode } from '../common/types';
3
- import { SyncBlockDataProvider, type ADFFetchProvider, type ADFWriteProvider, type DeleteSyncBlockResult, type SyncBlockInstance, type SyncBlockSourceInfo, type WriteSyncBlockResult } from '../providers/types';
3
+ import { SyncBlockDataProvider, type ADFFetchProvider, type ADFWriteProvider, type DeleteSyncBlockResult, type SyncBlockInstance, type SyncBlockSourceInfo, type SyncedBlockRendererProviderOptions, type WriteSyncBlockResult } from '../providers/types';
4
4
  export declare class SyncBlockProvider extends SyncBlockDataProvider {
5
5
  name: string;
6
6
  private fetchProvider;
7
7
  private writeProvider;
8
8
  private sourceId;
9
- constructor(fetchProvider: ADFFetchProvider, writeProvider: ADFWriteProvider, sourceId: string);
9
+ private providerOptions;
10
+ /**
11
+ * Constructor for the SyncBlockProvider
12
+ *
13
+ * @param fetchProvider
14
+ * @param writeProvider
15
+ * @param sourceId
16
+ * @param nestedRendererDataProviders
17
+ */
18
+ constructor(fetchProvider: ADFFetchProvider, writeProvider: ADFWriteProvider, sourceId: string, providerOptions: SyncedBlockRendererProviderOptions);
19
+ /**
20
+ * Check if the node is supported by the provider
21
+ *
22
+ * @param node
23
+ *
24
+ * @returns True if the node is supported, false otherwise
25
+ */
10
26
  isNodeSupported(node: JSONNode): node is SyncBlockNode;
27
+ /**
28
+ * Get the data key for the node
29
+ *
30
+ * @param node
31
+ *
32
+ * @returns The data key
33
+ */
11
34
  nodeDataKey(node: SyncBlockNode): string;
35
+ /**
36
+ * Fetch the data from the fetch provider
37
+ *
38
+ * @param nodes
39
+ *
40
+ * @returns Array of {resourceId?: string, error?: string}.
41
+ */
12
42
  fetchNodesData(nodes: SyncBlockNode[]): Promise<SyncBlockInstance[]>;
13
43
  /**
44
+ * Write the data to the write provider
14
45
  *
15
46
  * @param nodes
16
47
  * @param data
@@ -19,9 +50,34 @@ export declare class SyncBlockProvider extends SyncBlockDataProvider {
19
50
  * resourceId: resource id of the node if write successfully , error: reason for when write failed
20
51
  */
21
52
  writeNodesData(nodes: SyncBlockNode[], data: SyncBlockData[]): Promise<Array<WriteSyncBlockResult>>;
53
+ /**
54
+ * Delete the data from the write provider
55
+ *
56
+ * @param resourceIds
57
+ *
58
+ * @returns Array of {resourceId?: string, error?: string}.
59
+ */
22
60
  deleteNodesData(resourceIds: string[]): Promise<Array<DeleteSyncBlockResult>>;
61
+ /**
62
+ * Get the source id
63
+ *
64
+ * @returns The source id
65
+ */
23
66
  getSourceId(): string;
67
+ /**
68
+ * Retrieve the source info from the source id
69
+ *
70
+ * @param node
71
+ *
72
+ * @returns The source info
73
+ */
24
74
  retrieveSyncBlockSourceInfo(node: SyncBlockNode): Promise<SyncBlockSourceInfo | undefined>;
25
75
  generateResourceId(sourceId: string, localId: string): string;
76
+ /**
77
+ * Get the synced block renderer provider options
78
+ *
79
+ * @returns The synced block renderer provider options
80
+ */
81
+ getSyncedBlockRendererProviderOptions(): SyncedBlockRendererProviderOptions;
26
82
  }
27
- export declare const useMemoizedSyncedBlockProvider: (fetchProvider: ADFFetchProvider, writeProvider: ADFWriteProvider, sourceId: string) => SyncBlockProvider;
83
+ export declare const useMemoizedSyncedBlockProvider: (fetchProvider: ADFFetchProvider, writeProvider: ADFWriteProvider, sourceId: string, providerOptions: SyncedBlockRendererProviderOptions) => SyncBlockProvider;
@@ -1,3 +1,5 @@
1
+ import type { SyncedBlockRendererDataProviders, MediaProvider } from '@atlaskit/editor-common/provider-factory';
2
+ import type { EmojiProvider } from '@atlaskit/emoji';
1
3
  import { NodeDataProvider } from '@atlaskit/node-data-provider';
2
4
  import type { SyncBlockData, ResourceId, SyncBlockError, SyncBlockNode } from '../common/types';
3
5
  /**
@@ -31,11 +33,24 @@ export interface ADFWriteProvider {
31
33
  generateResourceId: (sourceId: string, localId: string) => ResourceId;
32
34
  writeData: (data: SyncBlockData) => Promise<WriteSyncBlockResult>;
33
35
  }
36
+ export type MediaEmojiProviderOptions = {
37
+ contentId: string;
38
+ contentType: string;
39
+ spaceKey?: string | null;
40
+ };
41
+ export type SyncedBlockRendererProviderOptions = {
42
+ parentDataProviders?: SyncedBlockRendererDataProviders;
43
+ providerCreator?: {
44
+ createEmojiProvider: ((options: MediaEmojiProviderOptions) => Promise<EmojiProvider>) | undefined;
45
+ createMediaProvider: ((options: MediaEmojiProviderOptions) => Promise<MediaProvider>) | undefined;
46
+ };
47
+ };
34
48
  export declare abstract class SyncBlockDataProvider extends NodeDataProvider<SyncBlockNode, SyncBlockInstance> {
35
49
  abstract writeNodesData(nodes: SyncBlockNode[], data: SyncBlockData[]): Promise<Array<WriteSyncBlockResult>>;
36
50
  abstract deleteNodesData(resourceIds: string[]): Promise<Array<DeleteSyncBlockResult>>;
37
51
  abstract getSourceId(): ResourceId;
38
52
  abstract retrieveSyncBlockSourceInfo(node: SyncBlockNode): Promise<SyncBlockSourceInfo | undefined>;
53
+ abstract getSyncedBlockRendererProviderOptions(): SyncedBlockRendererProviderOptions;
39
54
  /**
40
55
  * Generates a resource ID from a source ID and local ID.
41
56
  * @param sourceId - The source document ID (e.g., page ARI)
@@ -1,3 +1,4 @@
1
+ import { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
1
2
  import { type Node as PMNode } from '@atlaskit/editor-prosemirror/model';
2
3
  import { type ResourceId, type SyncBlockNode } from '../common/types';
3
4
  import type { SyncBlockInstance, SubscriptionCallback, SyncBlockDataProvider, TitleSubscriptionCallback } from '../providers/types';
@@ -6,6 +7,7 @@ export declare class ReferenceSyncBlockStoreManager {
6
7
  private syncBlockCache;
7
8
  private subscriptions;
8
9
  private titleSubscriptions;
10
+ private providerFactories;
9
11
  private syncBlockURLRequests;
10
12
  private isRefreshingSubscriptions;
11
13
  constructor(dataProvider?: SyncBlockDataProvider);
@@ -29,5 +31,6 @@ export declare class ReferenceSyncBlockStoreManager {
29
31
  * @returns
30
32
  */
31
33
  getSyncBlockURL(resourceId: ResourceId): string | undefined;
34
+ getProviderFactory(resourceId: ResourceId): ProviderFactory | undefined;
32
35
  destroy(): void;
33
36
  }
@@ -1,3 +1,4 @@
1
+ import type { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
1
2
  import type { EditorView } from '@atlaskit/editor-prosemirror/dist/types/view';
2
3
  import { type Node as PMNode } from '@atlaskit/editor-prosemirror/model';
3
4
  import type { EditorState, Transaction } from '@atlaskit/editor-prosemirror/state';
@@ -60,5 +61,6 @@ export declare class SyncBlockStoreManager {
60
61
  refreshSubscriptions(): void;
61
62
  deleteSyncBlocksWithConfirmation(tr: Transaction, syncBlockIds: SyncBlockAttrs[]): Promise<void>;
62
63
  rebaseTransaction(incomingTr: Transaction, state: EditorState): void;
64
+ getReferenceSyncBlockProviderFactory(resourceId: ResourceId): ProviderFactory | undefined;
63
65
  destroy(): void;
64
66
  }
package/package.json CHANGED
@@ -38,6 +38,7 @@
38
38
  "uuid": "^3.1.0"
39
39
  },
40
40
  "peerDependencies": {
41
+ "@atlaskit/editor-common": "^110.30.0",
41
42
  "react": "^18.2.0"
42
43
  },
43
44
  "devDependencies": {
@@ -83,7 +84,7 @@
83
84
  }
84
85
  },
85
86
  "name": "@atlaskit/editor-synced-block-provider",
86
- "version": "2.9.0",
87
+ "version": "2.9.1",
87
88
  "description": "Synced Block Provider for @atlaskit/editor-plugin-synced-block",
88
89
  "author": "Atlassian Pty Ltd",
89
90
  "license": "Apache-2.0",