@atlaskit/editor-plugin-synced-block 5.3.12 → 5.3.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 +8 -0
- package/afm-cc/tsconfig.json +0 -3
- package/afm-jira/tsconfig.json +0 -3
- package/afm-products/tsconfig.json +0 -3
- package/dist/cjs/editor-commands/index.js +27 -33
- package/dist/cjs/nodeviews/bodiedSyncedBlock.js +2 -7
- package/dist/cjs/nodeviews/syncedBlock.js +4 -18
- package/dist/cjs/pm-plugins/main.js +34 -43
- package/dist/cjs/pm-plugins/utils/track-sync-blocks.js +1 -2
- package/dist/cjs/pm-plugins/utils/utils.js +1 -46
- package/dist/cjs/syncedBlockPlugin.js +3 -5
- package/dist/cjs/ui/DeleteConfirmationModal.js +4 -20
- package/dist/cjs/ui/SyncBlockLabel.js +4 -10
- package/dist/cjs/ui/SyncBlockRefresher.js +7 -9
- package/dist/cjs/ui/floating-toolbar.js +3 -3
- package/dist/es2019/editor-commands/index.js +27 -33
- package/dist/es2019/nodeviews/bodiedSyncedBlock.js +2 -7
- package/dist/es2019/nodeviews/syncedBlock.js +4 -15
- package/dist/es2019/pm-plugins/main.js +33 -42
- package/dist/es2019/pm-plugins/utils/track-sync-blocks.js +1 -2
- package/dist/es2019/pm-plugins/utils/utils.js +0 -47
- package/dist/es2019/syncedBlockPlugin.js +3 -4
- package/dist/es2019/ui/DeleteConfirmationModal.js +4 -20
- package/dist/es2019/ui/SyncBlockLabel.js +4 -10
- package/dist/es2019/ui/SyncBlockRefresher.js +7 -9
- package/dist/es2019/ui/floating-toolbar.js +3 -3
- package/dist/esm/editor-commands/index.js +27 -33
- package/dist/esm/nodeviews/bodiedSyncedBlock.js +2 -7
- package/dist/esm/nodeviews/syncedBlock.js +4 -18
- package/dist/esm/pm-plugins/main.js +34 -43
- package/dist/esm/pm-plugins/utils/track-sync-blocks.js +1 -2
- package/dist/esm/pm-plugins/utils/utils.js +0 -45
- package/dist/esm/syncedBlockPlugin.js +3 -5
- package/dist/esm/ui/DeleteConfirmationModal.js +4 -20
- package/dist/esm/ui/SyncBlockLabel.js +4 -10
- package/dist/esm/ui/SyncBlockRefresher.js +7 -9
- package/dist/esm/ui/floating-toolbar.js +3 -3
- package/dist/types/pm-plugins/utils/handle-bodied-sync-block-removal.d.ts +1 -1
- package/dist/types/pm-plugins/utils/utils.d.ts +1 -3
- package/dist/types-ts4.5/pm-plugins/utils/handle-bodied-sync-block-removal.d.ts +1 -1
- package/dist/types-ts4.5/pm-plugins/utils/utils.d.ts +1 -3
- package/package.json +1 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-synced-block
|
|
2
2
|
|
|
3
|
+
## 5.3.13
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`7ba3979b92b42`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/7ba3979b92b42) -
|
|
8
|
+
Remove platform_synced_block_dogfooding feature gate
|
|
9
|
+
- Updated dependencies
|
|
10
|
+
|
|
3
11
|
## 5.3.12
|
|
4
12
|
|
|
5
13
|
### Patch Changes
|
package/afm-cc/tsconfig.json
CHANGED
package/afm-jira/tsconfig.json
CHANGED
|
@@ -30,17 +30,15 @@ var createSyncedBlock = exports.createSyncedBlock = function createSyncedBlock(_
|
|
|
30
30
|
var paragraphNode = paragraph.createAndFill({});
|
|
31
31
|
var newBodiedSyncBlockNode = bodiedSyncBlock.createAndFill(attrs, paragraphNode ? [paragraphNode] : []);
|
|
32
32
|
if (!newBodiedSyncBlockNode) {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
});
|
|
43
|
-
}
|
|
33
|
+
fireAnalyticsEvent === null || fireAnalyticsEvent === void 0 || fireAnalyticsEvent({
|
|
34
|
+
action: _analytics.ACTION.ERROR,
|
|
35
|
+
actionSubject: _analytics.ACTION_SUBJECT.SYNCED_BLOCK,
|
|
36
|
+
actionSubjectId: _analytics.ACTION_SUBJECT_ID.SYNCED_BLOCK_CREATE,
|
|
37
|
+
attributes: {
|
|
38
|
+
error: 'Create and fill for empty content failed'
|
|
39
|
+
},
|
|
40
|
+
eventType: _analytics.EVENT_TYPE.OPERATIONAL
|
|
41
|
+
});
|
|
44
42
|
return false;
|
|
45
43
|
}
|
|
46
44
|
|
|
@@ -55,33 +53,29 @@ var createSyncedBlock = exports.createSyncedBlock = function createSyncedBlock(_
|
|
|
55
53
|
} else {
|
|
56
54
|
var conversionInfo = (0, _utils2.canBeConvertedToSyncBlock)(tr.selection);
|
|
57
55
|
if (!conversionInfo) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
});
|
|
68
|
-
}
|
|
56
|
+
fireAnalyticsEvent === null || fireAnalyticsEvent === void 0 || fireAnalyticsEvent({
|
|
57
|
+
action: _analytics.ACTION.ERROR,
|
|
58
|
+
actionSubject: _analytics.ACTION_SUBJECT.SYNCED_BLOCK,
|
|
59
|
+
actionSubjectId: _analytics.ACTION_SUBJECT_ID.SYNCED_BLOCK_CREATE,
|
|
60
|
+
attributes: {
|
|
61
|
+
error: 'Content cannot be converted to sync block'
|
|
62
|
+
},
|
|
63
|
+
eventType: _analytics.EVENT_TYPE.OPERATIONAL
|
|
64
|
+
});
|
|
69
65
|
return false;
|
|
70
66
|
}
|
|
71
67
|
var _attrs = syncBlockStore.sourceManager.generateBodiedSyncBlockAttrs();
|
|
72
68
|
var _newBodiedSyncBlockNode = bodiedSyncBlock.createAndFill(_attrs, conversionInfo.contentToInclude);
|
|
73
69
|
if (!_newBodiedSyncBlockNode) {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
});
|
|
84
|
-
}
|
|
70
|
+
fireAnalyticsEvent === null || fireAnalyticsEvent === void 0 || fireAnalyticsEvent({
|
|
71
|
+
action: _analytics.ACTION.ERROR,
|
|
72
|
+
actionSubject: _analytics.ACTION_SUBJECT.SYNCED_BLOCK,
|
|
73
|
+
actionSubjectId: _analytics.ACTION_SUBJECT_ID.SYNCED_BLOCK_CREATE,
|
|
74
|
+
attributes: {
|
|
75
|
+
error: 'Create and fill for content failed'
|
|
76
|
+
},
|
|
77
|
+
eventType: _analytics.EVENT_TYPE.OPERATIONAL
|
|
78
|
+
});
|
|
85
79
|
return false;
|
|
86
80
|
}
|
|
87
81
|
|
|
@@ -17,7 +17,6 @@ var _reactNodeView = _interopRequireDefault(require("@atlaskit/editor-common/rea
|
|
|
17
17
|
var _syncBlock = require("@atlaskit/editor-common/sync-block");
|
|
18
18
|
var _editorPluginConnectivity = require("@atlaskit/editor-plugin-connectivity");
|
|
19
19
|
var _model = require("@atlaskit/editor-prosemirror/model");
|
|
20
|
-
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
21
20
|
var _BodiedSyncBlockWrapper = require("../ui/BodiedSyncBlockWrapper");
|
|
22
21
|
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
22
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
@@ -97,7 +96,7 @@ var BodiedSyncBlock = /*#__PURE__*/function (_ReactNodeView) {
|
|
|
97
96
|
if (!syncBlockStore) {
|
|
98
97
|
return null;
|
|
99
98
|
}
|
|
100
|
-
return
|
|
99
|
+
return /*#__PURE__*/_react.default.createElement(_errorBoundary.ErrorBoundary, {
|
|
101
100
|
component: _analytics.ACTION_SUBJECT.SYNCED_BLOCK,
|
|
102
101
|
dispatchAnalyticsEvent: (_this$api6 = this.api) === null || _this$api6 === void 0 || (_this$api6 = _this$api6.analytics) === null || _this$api6 === void 0 ? void 0 : _this$api6.actions.fireAnalyticsEvent,
|
|
103
102
|
fallbackComponent: null
|
|
@@ -105,11 +104,7 @@ var BodiedSyncBlock = /*#__PURE__*/function (_ReactNodeView) {
|
|
|
105
104
|
ref: forwardRef,
|
|
106
105
|
syncBlockStore: syncBlockStore,
|
|
107
106
|
node: this.node
|
|
108
|
-
}))
|
|
109
|
-
ref: forwardRef,
|
|
110
|
-
syncBlockStore: syncBlockStore,
|
|
111
|
-
node: this.node
|
|
112
|
-
});
|
|
107
|
+
}));
|
|
113
108
|
}
|
|
114
109
|
}, {
|
|
115
110
|
key: "getContentDOM",
|
|
@@ -17,7 +17,6 @@ var _errorBoundary = require("@atlaskit/editor-common/error-boundary");
|
|
|
17
17
|
var _reactNodeView = _interopRequireDefault(require("@atlaskit/editor-common/react-node-view"));
|
|
18
18
|
var _syncBlock = require("@atlaskit/editor-common/sync-block");
|
|
19
19
|
var _editorSyncedBlockProvider = require("@atlaskit/editor-synced-block-provider");
|
|
20
|
-
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
21
20
|
var _editorCommands = require("../editor-commands");
|
|
22
21
|
var _SyncBlockRendererWrapper = require("../ui/SyncBlockRendererWrapper");
|
|
23
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)); }
|
|
@@ -49,8 +48,7 @@ var SyncBlock = exports.SyncBlock = /*#__PURE__*/function (_ReactNodeView) {
|
|
|
49
48
|
_this$api,
|
|
50
49
|
_this$api2,
|
|
51
50
|
_this2 = this,
|
|
52
|
-
_this$options2
|
|
53
|
-
_this$options3;
|
|
51
|
+
_this$options2;
|
|
54
52
|
var getPos = _ref.getPos;
|
|
55
53
|
if (!((_this$options = this.options) !== null && _this$options !== void 0 && _this$options.syncedBlockRenderer)) {
|
|
56
54
|
return null;
|
|
@@ -61,14 +59,13 @@ var SyncBlock = exports.SyncBlock = /*#__PURE__*/function (_ReactNodeView) {
|
|
|
61
59
|
if (!resourceId || !localId) {
|
|
62
60
|
return null;
|
|
63
61
|
}
|
|
64
|
-
var
|
|
65
|
-
var syncBlockStore = (_this$api$syncedBlock = (_this$api = this.api) === null || _this$api === void 0 || (_this$api = _this$api.syncedBlock) === null || _this$api === void 0 || (_this$api = _this$api.sharedState.currentState()) === null || _this$api === void 0 ? void 0 : _this$api.syncBlockStore) !== null && _this$api$syncedBlock !== void 0 ? _this$api$syncedBlock : initialSyncBlockStore;
|
|
62
|
+
var syncBlockStore = (_this$api$syncedBlock = (_this$api = this.api) === null || _this$api === void 0 || (_this$api = _this$api.syncedBlock) === null || _this$api === void 0 || (_this$api = _this$api.sharedState.currentState()) === null || _this$api === void 0 ? void 0 : _this$api.syncBlockStore) !== null && _this$api$syncedBlock !== void 0 ? _this$api$syncedBlock : this.syncBlockStore;
|
|
66
63
|
if (!syncBlockStore) {
|
|
67
64
|
return null;
|
|
68
65
|
}
|
|
69
66
|
|
|
70
67
|
// get document node from data provider
|
|
71
|
-
return
|
|
68
|
+
return /*#__PURE__*/_react.default.createElement(_errorBoundary.ErrorBoundary, {
|
|
72
69
|
component: _analytics.ACTION_SUBJECT.SYNCED_BLOCK,
|
|
73
70
|
dispatchAnalyticsEvent: (_this$api2 = this.api) === null || _this$api2 === void 0 || (_this$api2 = _this$api2.analytics) === null || _this$api2 === void 0 ? void 0 : _this$api2.actions.fireAnalyticsEvent,
|
|
74
71
|
fallbackComponent: null
|
|
@@ -93,18 +90,7 @@ var SyncBlock = exports.SyncBlock = /*#__PURE__*/function (_ReactNodeView) {
|
|
|
93
90
|
return (0, _editorSyncedBlockProvider.useFetchSyncBlockData)(syncBlockStore, resourceId, localId, (_this2$api = _this2.api) === null || _this2$api === void 0 || (_this2$api = _this2$api.analytics) === null || _this2$api === void 0 || (_this2$api = _this2$api.actions) === null || _this2$api === void 0 ? void 0 : _this2$api.fireAnalyticsEvent);
|
|
94
91
|
},
|
|
95
92
|
api: this.api
|
|
96
|
-
})))
|
|
97
|
-
localId: this.node.attrs.localId,
|
|
98
|
-
syncedBlockRenderer: (_this$options3 = this.options) === null || _this$options3 === void 0 ? void 0 : _this$options3.syncedBlockRenderer,
|
|
99
|
-
useFetchSyncBlockTitle: function useFetchSyncBlockTitle() {
|
|
100
|
-
return (0, _editorSyncedBlockProvider.useFetchSyncBlockTitle)(syncBlockStore, _this2.node);
|
|
101
|
-
},
|
|
102
|
-
useFetchSyncBlockData: function useFetchSyncBlockData() {
|
|
103
|
-
var _this2$api2;
|
|
104
|
-
return (0, _editorSyncedBlockProvider.useFetchSyncBlockData)(syncBlockStore, resourceId, localId, (_this2$api2 = _this2.api) === null || _this2$api2 === void 0 || (_this2$api2 = _this2$api2.analytics) === null || _this2$api2 === void 0 || (_this2$api2 = _this2$api2.actions) === null || _this2$api2 === void 0 ? void 0 : _this2$api2.fireAnalyticsEvent);
|
|
105
|
-
},
|
|
106
|
-
api: this.api
|
|
107
|
-
});
|
|
93
|
+
})));
|
|
108
94
|
}
|
|
109
95
|
}, {
|
|
110
96
|
key: "destroy",
|
|
@@ -15,9 +15,7 @@ var _editorPluginConnectivity = require("@atlaskit/editor-plugin-connectivity");
|
|
|
15
15
|
var _state = require("@atlaskit/editor-prosemirror/state");
|
|
16
16
|
var _view = require("@atlaskit/editor-prosemirror/view");
|
|
17
17
|
var _editorSyncedBlockProvider = require("@atlaskit/editor-synced-block-provider");
|
|
18
|
-
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
19
18
|
var _bodiedLazySyncedBlock = require("../nodeviews/bodiedLazySyncedBlock");
|
|
20
|
-
var _lazySyncedBlock = require("../nodeviews/lazySyncedBlock");
|
|
21
19
|
var _syncedBlock = require("../nodeviews/syncedBlock");
|
|
22
20
|
var _types = require("../types");
|
|
23
21
|
var _handleBodiedSyncBlockRemoval = require("./utils/handle-bodied-sync-block-removal");
|
|
@@ -64,7 +62,7 @@ var createPlugin = exports.createPlugin = function createPlugin(options, pmPlugi
|
|
|
64
62
|
var unpublishedFlagShown = new Set();
|
|
65
63
|
|
|
66
64
|
// Set up callback to detect unpublished sync blocks when they're fetched
|
|
67
|
-
|
|
65
|
+
syncBlockStore.referenceManager.setOnUnpublishedSyncBlockDetected(function (resourceId) {
|
|
68
66
|
// Only show the flag once per sync block
|
|
69
67
|
if (!unpublishedFlagShown.has(resourceId)) {
|
|
70
68
|
unpublishedFlagShown.add(resourceId);
|
|
@@ -115,7 +113,7 @@ var createPlugin = exports.createPlugin = function createPlugin(options, pmPlugi
|
|
|
115
113
|
},
|
|
116
114
|
props: {
|
|
117
115
|
nodeViews: {
|
|
118
|
-
syncBlock:
|
|
116
|
+
syncBlock: function syncBlock(node, view, getPos, _decorations) {
|
|
119
117
|
// To support SSR, pass `syncBlockStore` here
|
|
120
118
|
// and do not use lazy loading.
|
|
121
119
|
// We cannot start rendering and then load `syncBlockStore` asynchronously,
|
|
@@ -130,11 +128,7 @@ var createPlugin = exports.createPlugin = function createPlugin(options, pmPlugi
|
|
|
130
128
|
eventDispatcher: pmPluginFactoryParams.eventDispatcher,
|
|
131
129
|
syncBlockStore: syncBlockStore
|
|
132
130
|
}).init();
|
|
133
|
-
}
|
|
134
|
-
options: options,
|
|
135
|
-
pmPluginFactoryParams: pmPluginFactoryParams,
|
|
136
|
-
api: api
|
|
137
|
-
}),
|
|
131
|
+
},
|
|
138
132
|
bodiedSyncBlock: (0, _bodiedLazySyncedBlock.lazyBodiedSyncBlockView)({
|
|
139
133
|
pluginOptions: options,
|
|
140
134
|
pmPluginFactoryParams: pmPluginFactoryParams,
|
|
@@ -224,7 +218,7 @@ var createPlugin = exports.createPlugin = function createPlugin(options, pmPlugi
|
|
|
224
218
|
var isConfirmedSyncBlockDeletion = Boolean(tr.getMeta('isConfirmedSyncBlockDeletion'));
|
|
225
219
|
|
|
226
220
|
// Track newly added reference sync blocks before processing the transaction
|
|
227
|
-
if (tr.docChanged && !tr.getMeta('isRemote')
|
|
221
|
+
if (tr.docChanged && !tr.getMeta('isRemote')) {
|
|
228
222
|
var _trackSyncBlocks = (0, _trackSyncBlocks6.trackSyncBlocks)(function (node) {
|
|
229
223
|
return node.type.name === 'syncBlock';
|
|
230
224
|
}, tr, state),
|
|
@@ -249,43 +243,40 @@ var createPlugin = exports.createPlugin = function createPlugin(options, pmPlugi
|
|
|
249
243
|
bodiedSyncBlockRemoved = _trackSyncBlocks2.removed,
|
|
250
244
|
bodiedSyncBlockAdded = _trackSyncBlocks2.added;
|
|
251
245
|
if (!isOffline) {
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
eventType: _analytics.EVENT_TYPE.OPERATIONAL
|
|
269
|
-
});
|
|
246
|
+
var _trackSyncBlocks3 = (0, _trackSyncBlocks6.trackSyncBlocks)(function (node) {
|
|
247
|
+
return node.type.name === 'syncBlock';
|
|
248
|
+
}, tr, state),
|
|
249
|
+
syncBlockRemoved = _trackSyncBlocks3.removed,
|
|
250
|
+
syncBlockAdded = _trackSyncBlocks3.added;
|
|
251
|
+
syncBlockRemoved.forEach(function (syncBlock) {
|
|
252
|
+
var _api$analytics;
|
|
253
|
+
api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 || (_api$analytics = _api$analytics.actions) === null || _api$analytics === void 0 || _api$analytics.fireAnalyticsEvent({
|
|
254
|
+
action: _analytics.ACTION.DELETED,
|
|
255
|
+
actionSubject: _analytics.ACTION_SUBJECT.SYNCED_BLOCK,
|
|
256
|
+
actionSubjectId: _analytics.ACTION_SUBJECT_ID.REFERENCE_SYNCED_BLOCK_DELETE,
|
|
257
|
+
attributes: {
|
|
258
|
+
resourceId: syncBlock.attrs.resourceId,
|
|
259
|
+
blockInstanceId: syncBlock.attrs.localId
|
|
260
|
+
},
|
|
261
|
+
eventType: _analytics.EVENT_TYPE.OPERATIONAL
|
|
270
262
|
});
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
263
|
+
});
|
|
264
|
+
syncBlockAdded.forEach(function (syncBlock) {
|
|
265
|
+
var _api$analytics2;
|
|
266
|
+
api === null || api === void 0 || (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 || (_api$analytics2 = _api$analytics2.actions) === null || _api$analytics2 === void 0 || _api$analytics2.fireAnalyticsEvent({
|
|
267
|
+
action: _analytics.ACTION.INSERTED,
|
|
268
|
+
actionSubject: _analytics.ACTION_SUBJECT.SYNCED_BLOCK,
|
|
269
|
+
actionSubjectId: _analytics.ACTION_SUBJECT_ID.REFERENCE_SYNCED_BLOCK_CREATE,
|
|
270
|
+
attributes: {
|
|
271
|
+
resourceId: syncBlock.attrs.resourceId,
|
|
272
|
+
blockInstanceId: syncBlock.attrs.localId
|
|
273
|
+
},
|
|
274
|
+
eventType: _analytics.EVENT_TYPE.OPERATIONAL
|
|
283
275
|
});
|
|
284
|
-
}
|
|
285
|
-
;
|
|
276
|
+
});
|
|
286
277
|
if (bodiedSyncBlockRemoved.length > 0) {
|
|
287
278
|
confirmationTransactionRef.current = tr;
|
|
288
|
-
return (0, _handleBodiedSyncBlockRemoval.handleBodiedSyncBlockRemoval)(bodiedSyncBlockRemoved, syncBlockStore, api, confirmationTransactionRef,
|
|
279
|
+
return (0, _handleBodiedSyncBlockRemoval.handleBodiedSyncBlockRemoval)(bodiedSyncBlockRemoved, syncBlockStore, api, confirmationTransactionRef, getDeleteReason(tr));
|
|
289
280
|
}
|
|
290
281
|
if (bodiedSyncBlockAdded.length > 0) {
|
|
291
282
|
if (Boolean(tr.getMeta(_utils.pmHistoryPluginKey))) {
|
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.trackSyncBlocks = exports.hasEditInSyncBlock = void 0;
|
|
7
7
|
var _transform = require("@atlaskit/editor-prosemirror/transform");
|
|
8
8
|
var _utils = require("@atlaskit/editor-prosemirror/utils");
|
|
9
|
-
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
10
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; } } }; }
|
|
11
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; } }
|
|
12
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; }
|
|
@@ -29,7 +28,7 @@ var trackSyncBlocks = exports.trackSyncBlocks = function trackSyncBlocks(predica
|
|
|
29
28
|
var hasBodiedSyncBlockChanges = replaceSteps.some(function (step, idx) {
|
|
30
29
|
var from = step.from,
|
|
31
30
|
to = step.to;
|
|
32
|
-
var docAtStep =
|
|
31
|
+
var docAtStep = tr.docs[idx];
|
|
33
32
|
var hasChange = false;
|
|
34
33
|
if (from !== to) {
|
|
35
34
|
step.getMap().forEach(function (oldStart, oldEnd) {
|
|
@@ -3,13 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.sliceFullyContainsNode = exports.isBodiedSyncBlockNode = exports.findSyncBlockOrBodiedSyncBlock = exports.findSyncBlock = exports.findBodiedSyncBlock = exports.
|
|
6
|
+
exports.sliceFullyContainsNode = exports.isBodiedSyncBlockNode = exports.findSyncBlockOrBodiedSyncBlock = exports.findSyncBlock = exports.findBodiedSyncBlock = exports.canBeConvertedToSyncBlock = void 0;
|
|
7
7
|
var _selection = require("@atlaskit/editor-common/selection");
|
|
8
8
|
var _model = require("@atlaskit/editor-prosemirror/model");
|
|
9
|
-
var _state = require("@atlaskit/editor-prosemirror/state");
|
|
10
9
|
var _utils = require("@atlaskit/editor-prosemirror/utils");
|
|
11
|
-
var _editorTables = require("@atlaskit/editor-tables");
|
|
12
|
-
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
13
10
|
var findSyncBlock = exports.findSyncBlock = function findSyncBlock(schema, selection) {
|
|
14
11
|
var syncBlock = schema.nodes.syncBlock;
|
|
15
12
|
return (0, _utils.findSelectedNodeOfType)(syncBlock)(selection);
|
|
@@ -34,48 +31,6 @@ var UNSUPPORTED_NODE_TYPES = new Set(['inlineExtension', 'extension', 'bodiedExt
|
|
|
34
31
|
* or false if conversion is not possible
|
|
35
32
|
*/
|
|
36
33
|
var canBeConvertedToSyncBlock = exports.canBeConvertedToSyncBlock = function canBeConvertedToSyncBlock(selection) {
|
|
37
|
-
return (0, _platformFeatureFlags.fg)('platform_synced_block_dogfooding') ? canBeConvertedToSyncBlockNew(selection) : canBeConvertedToSyncBlockOld(selection);
|
|
38
|
-
};
|
|
39
|
-
var canBeConvertedToSyncBlockOld = exports.canBeConvertedToSyncBlockOld = function canBeConvertedToSyncBlockOld(selection) {
|
|
40
|
-
var schema = selection.$from.doc.type.schema;
|
|
41
|
-
var nodes = schema.nodes;
|
|
42
|
-
var from = selection.from;
|
|
43
|
-
var to = selection.to;
|
|
44
|
-
var contentToInclude = selection.content().content;
|
|
45
|
-
if (selection instanceof _editorTables.CellSelection) {
|
|
46
|
-
var table = (0, _editorTables.findTable)(selection);
|
|
47
|
-
if (!table) {
|
|
48
|
-
return false;
|
|
49
|
-
}
|
|
50
|
-
contentToInclude = _model.Fragment.from([table.node]);
|
|
51
|
-
from = table.pos;
|
|
52
|
-
to = table.pos + table.node.nodeSize;
|
|
53
|
-
} else if (selection instanceof _state.TextSelection) {
|
|
54
|
-
var trueParent = (0, _utils.findParentNodeOfType)([nodes.bulletList, nodes.orderedList, nodes.taskList, nodes.blockquote])(selection);
|
|
55
|
-
if (trueParent) {
|
|
56
|
-
contentToInclude = _model.Fragment.from([trueParent.node]);
|
|
57
|
-
from = trueParent.pos;
|
|
58
|
-
to = trueParent.pos + trueParent.node.nodeSize;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
var canBeConverted = true;
|
|
62
|
-
selection.$from.doc.nodesBetween(from, to, function (node) {
|
|
63
|
-
if (UNSUPPORTED_NODE_TYPES.has(node.type.name)) {
|
|
64
|
-
canBeConverted = false;
|
|
65
|
-
return false;
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
if (!canBeConverted) {
|
|
69
|
-
return false;
|
|
70
|
-
}
|
|
71
|
-
contentToInclude = removeBreakoutMarks(contentToInclude);
|
|
72
|
-
return {
|
|
73
|
-
contentToInclude: contentToInclude,
|
|
74
|
-
from: from,
|
|
75
|
-
to: to
|
|
76
|
-
};
|
|
77
|
-
};
|
|
78
|
-
var canBeConvertedToSyncBlockNew = exports.canBeConvertedToSyncBlockNew = function canBeConvertedToSyncBlockNew(selection) {
|
|
79
34
|
var _expandSelectionToBlo = (0, _selection.expandSelectionToBlockRange)(selection),
|
|
80
35
|
$from = _expandSelectionToBlo.$from,
|
|
81
36
|
range = _expandSelectionToBlo.range;
|
|
@@ -5,14 +5,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.syncedBlockPlugin = void 0;
|
|
8
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
8
|
var _react = _interopRequireDefault(require("react"));
|
|
10
9
|
var _adfSchema = require("@atlaskit/adf-schema");
|
|
11
10
|
var _messages = require("@atlaskit/editor-common/messages");
|
|
12
11
|
var _quickInsert = require("@atlaskit/editor-common/quick-insert");
|
|
13
12
|
var _editorSyncedBlockProvider = require("@atlaskit/editor-synced-block-provider");
|
|
14
13
|
var _lozenge = _interopRequireDefault(require("@atlaskit/lozenge"));
|
|
15
|
-
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
16
14
|
var _editorActions = require("./editor-actions");
|
|
17
15
|
var _editorCommands = require("./editor-commands");
|
|
18
16
|
var _main = require("./pm-plugins/main");
|
|
@@ -50,7 +48,7 @@ var syncedBlockPlugin = exports.syncedBlockPlugin = function syncedBlockPlugin(_
|
|
|
50
48
|
plugin: function plugin(params) {
|
|
51
49
|
return (0, _main.createPlugin)(config, params, syncBlockStore, api);
|
|
52
50
|
}
|
|
53
|
-
}
|
|
51
|
+
}, {
|
|
54
52
|
name: 'menuAndToolbarExperiencesPlugin',
|
|
55
53
|
plugin: function plugin() {
|
|
56
54
|
return (0, _menuAndToolbarExperiences.getMenuAndToolbarExperiencesPlugin)({
|
|
@@ -61,7 +59,7 @@ var syncedBlockPlugin = exports.syncedBlockPlugin = function syncedBlockPlugin(_
|
|
|
61
59
|
}
|
|
62
60
|
});
|
|
63
61
|
}
|
|
64
|
-
}]
|
|
62
|
+
}];
|
|
65
63
|
},
|
|
66
64
|
commands: {
|
|
67
65
|
copySyncedBlockReferenceToClipboard: function copySyncedBlockReferenceToClipboard(inputMethod) {
|
|
@@ -121,7 +119,7 @@ var syncedBlockPlugin = exports.syncedBlockPlugin = function syncedBlockPlugin(_
|
|
|
121
119
|
fireAnalyticsEvent: api === null || api === void 0 || (_api$analytics4 = api.analytics) === null || _api$analytics4 === void 0 ? void 0 : _api$analytics4.actions.fireAnalyticsEvent
|
|
122
120
|
});
|
|
123
121
|
},
|
|
124
|
-
testId:
|
|
122
|
+
testId: _types.SYNCED_BLOCK_BUTTON_TEST_ID.quickInsertCreate
|
|
125
123
|
}];
|
|
126
124
|
},
|
|
127
125
|
floatingToolbar: function floatingToolbar(state, intl) {
|
|
@@ -19,7 +19,6 @@ var _hooks = require("@atlaskit/editor-common/hooks");
|
|
|
19
19
|
var _messages = require("@atlaskit/editor-common/messages");
|
|
20
20
|
var _editorPluginConnectivity = require("@atlaskit/editor-plugin-connectivity");
|
|
21
21
|
var _modalDialog = _interopRequireWildcard(require("@atlaskit/modal-dialog"));
|
|
22
|
-
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
23
22
|
var _compiled = require("@atlaskit/primitives/compiled");
|
|
24
23
|
var _spinner = _interopRequireDefault(require("@atlaskit/spinner"));
|
|
25
24
|
var _main = require("../pm-plugins/main");
|
|
@@ -44,7 +43,7 @@ var styles = {
|
|
|
44
43
|
spinner: "_1mou1wug _195g1wug"
|
|
45
44
|
};
|
|
46
45
|
var DeleteConfirmationModal = exports.DeleteConfirmationModal = function DeleteConfirmationModal(_ref) {
|
|
47
|
-
var _api$core2, _api$core4, _api$core6
|
|
46
|
+
var _api$core2, _api$core4, _api$core6;
|
|
48
47
|
var syncBlockStoreManager = _ref.syncBlockStoreManager,
|
|
49
48
|
api = _ref.api;
|
|
50
49
|
var _useState = (0, _react.useState)(false),
|
|
@@ -139,7 +138,7 @@ var DeleteConfirmationModal = exports.DeleteConfirmationModal = function DeleteC
|
|
|
139
138
|
}
|
|
140
139
|
}, [api === null || api === void 0 || (_api$core6 = api.core) === null || _api$core6 === void 0 ? void 0 : _api$core6.actions, bodiedSyncBlockDeletionStatus, isOpen]);
|
|
141
140
|
(0, _react.useEffect)(function () {
|
|
142
|
-
if (isOpen && syncBlockIds !== undefined
|
|
141
|
+
if (isOpen && syncBlockIds !== undefined) {
|
|
143
142
|
var fetchReferences = /*#__PURE__*/function () {
|
|
144
143
|
var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
145
144
|
var references, totalCount;
|
|
@@ -205,7 +204,7 @@ var DeleteConfirmationModal = exports.DeleteConfirmationModal = function DeleteC
|
|
|
205
204
|
onClose: handleClick(false),
|
|
206
205
|
testId: "sync-block-delete-confirmation",
|
|
207
206
|
height: 184
|
|
208
|
-
},
|
|
207
|
+
}, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, referenceCount === undefined ? /*#__PURE__*/_react.default.createElement(_compiled.Box, {
|
|
209
208
|
xcss: styles.spinner
|
|
210
209
|
}, /*#__PURE__*/_react.default.createElement(_spinner.default, {
|
|
211
210
|
size: "large"
|
|
@@ -218,22 +217,7 @@ var DeleteConfirmationModal = exports.DeleteConfirmationModal = function DeleteC
|
|
|
218
217
|
isDisabled: (0, _editorPluginConnectivity.isOfflineMode)(mode),
|
|
219
218
|
deleteReason: deleteReason,
|
|
220
219
|
sourceCount: (syncBlockIds === null || syncBlockIds === void 0 ? void 0 : syncBlockIds.length) || 0
|
|
221
|
-
}))
|
|
222
|
-
hasCloseButton: true
|
|
223
|
-
}, /*#__PURE__*/_react.default.createElement(_modalDialog.ModalTitle, {
|
|
224
|
-
appearance: "warning"
|
|
225
|
-
}, formatMessage(_messages.syncBlockMessages.deleteConfirmationModalTitleSingle))), /*#__PURE__*/_react.default.createElement(_modalDialog.ModalBody, null, /*#__PURE__*/_react.default.createElement(_compiled.Text, null, formatMessage(_messages.syncBlockMessages.deleteConfirmationModalDescription, {
|
|
226
|
-
syncBlockCount: (_syncBlockIds$length = syncBlockIds === null || syncBlockIds === void 0 ? void 0 : syncBlockIds.length) !== null && _syncBlockIds$length !== void 0 ? _syncBlockIds$length : 1
|
|
227
|
-
}))), /*#__PURE__*/_react.default.createElement(_modalDialog.ModalFooter, null, /*#__PURE__*/_react.default.createElement(_new.default, {
|
|
228
|
-
appearance: "subtle",
|
|
229
|
-
onClick: handleClick(false)
|
|
230
|
-
}, formatMessage(_messages.syncBlockMessages.deleteConfirmationModalCancelButton)), /*#__PURE__*/_react.default.createElement(_new.default, {
|
|
231
|
-
appearance: "warning",
|
|
232
|
-
onClick: handleClick(true),
|
|
233
|
-
autoFocus: true,
|
|
234
|
-
isDisabled: (0, _editorPluginConnectivity.isOfflineMode)(mode),
|
|
235
|
-
isLoading: bodiedSyncBlockDeletionStatus === 'processing'
|
|
236
|
-
}, formatMessage(_messages.syncBlockMessages.deleteConfirmationModalDeleteButton))))));
|
|
220
|
+
}))));
|
|
237
221
|
};
|
|
238
222
|
var ModalContent = function ModalContent(_ref7) {
|
|
239
223
|
var content = _ref7.content,
|
|
@@ -12,7 +12,6 @@ var _reactIntlNext = require("react-intl-next");
|
|
|
12
12
|
var _messages = require("@atlaskit/editor-common/messages");
|
|
13
13
|
var _syncBlock = require("@atlaskit/editor-common/sync-block");
|
|
14
14
|
var _blockSynced = _interopRequireDefault(require("@atlaskit/icon-lab/core/block-synced"));
|
|
15
|
-
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
16
15
|
var _compiled = require("@atlaskit/primitives/compiled");
|
|
17
16
|
var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
|
|
18
17
|
var _visuallyHidden = _interopRequireDefault(require("@atlaskit/visually-hidden"));
|
|
@@ -32,17 +31,12 @@ var SyncBlockLabelComponent = function SyncBlockLabelComponent(_ref) {
|
|
|
32
31
|
tooltipContent = _useState2[0],
|
|
33
32
|
setTooltipContent = _useState2[1];
|
|
34
33
|
var tooltipMessage = formatMessage(_messages.syncBlockMessages.defaultSyncBlockTooltip);
|
|
35
|
-
if (
|
|
36
|
-
tooltipMessage = formatMessage(_messages.syncBlockMessages.sourceSyncBlockTooltip);
|
|
37
|
-
} else if (title) {
|
|
34
|
+
if (title) {
|
|
38
35
|
tooltipMessage = formatMessage(_messages.syncBlockMessages.referenceSyncBlockTooltip, {
|
|
39
36
|
title: title
|
|
40
37
|
});
|
|
41
38
|
}
|
|
42
39
|
var updateTooltipContent = (0, _react.useCallback)(function () {
|
|
43
|
-
if (!(0, _platformFeatureFlags.fg)('platform_synced_block_dogfooding')) {
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
40
|
var tooltipContent = tooltipMessage;
|
|
47
41
|
if (contentUpdatedAt) {
|
|
48
42
|
var elapsedTime = (0, _time.formatElapsedTime)(contentUpdatedAt, intl);
|
|
@@ -62,7 +56,7 @@ var SyncBlockLabelComponent = function SyncBlockLabelComponent(_ref) {
|
|
|
62
56
|
}, [contentUpdatedAt, formatMessage, intl, tooltipMessage]);
|
|
63
57
|
var ariaDescribedById = "sync-block-label-description-".concat(localId);
|
|
64
58
|
var getLabelContent = (0, _react.useMemo)(function () {
|
|
65
|
-
if (isUnsyncedBlock
|
|
59
|
+
if (isUnsyncedBlock) {
|
|
66
60
|
return /*#__PURE__*/_react.default.createElement(_compiled.Text, {
|
|
67
61
|
size: "small",
|
|
68
62
|
color: "color.text.subtle"
|
|
@@ -91,12 +85,12 @@ var SyncBlockLabelComponent = function SyncBlockLabelComponent(_ref) {
|
|
|
91
85
|
size: "small",
|
|
92
86
|
label: ""
|
|
93
87
|
}), getLabelContent);
|
|
94
|
-
if (
|
|
88
|
+
if (isSource || isUnsyncedBlock) {
|
|
95
89
|
return label;
|
|
96
90
|
}
|
|
97
91
|
return /*#__PURE__*/_react.default.createElement(_tooltip.default, {
|
|
98
92
|
position: "top",
|
|
99
|
-
content:
|
|
93
|
+
content: tooltipContent
|
|
100
94
|
// workaround because tooltip adds aria-describedby with a new id every time the tooltip is opened
|
|
101
95
|
// this causes an infinite rerender loop because of the forwardRef from the node view we are inside in bodiedSyncBlock
|
|
102
96
|
// tooltip content is available for screen readers in visually hidden content after the label
|
|
@@ -7,13 +7,12 @@ exports.SyncBlockRefresher = exports.SYNC_BLOCK_FETCH_INTERVAL = void 0;
|
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var _hooks = require("@atlaskit/editor-common/hooks");
|
|
9
9
|
var _editorPluginConnectivity = require("@atlaskit/editor-plugin-connectivity");
|
|
10
|
-
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
11
10
|
var SYNC_BLOCK_FETCH_INTERVAL = exports.SYNC_BLOCK_FETCH_INTERVAL = 3000;
|
|
12
11
|
|
|
13
12
|
// Component that manages synced block data synchronization.
|
|
14
|
-
//
|
|
15
|
-
//
|
|
16
|
-
//
|
|
13
|
+
// Component that manages synced block data synchronization.
|
|
14
|
+
// Uses provider-based GraphQL subscriptions for updates when online.
|
|
15
|
+
// Falls back to polling at regular intervals when offline.
|
|
17
16
|
var SyncBlockRefresher = exports.SyncBlockRefresher = function SyncBlockRefresher(_ref) {
|
|
18
17
|
var syncBlockStoreManager = _ref.syncBlockStoreManager,
|
|
19
18
|
api = _ref.api;
|
|
@@ -24,14 +23,13 @@ var SyncBlockRefresher = exports.SyncBlockRefresher = function SyncBlockRefreshe
|
|
|
24
23
|
};
|
|
25
24
|
}),
|
|
26
25
|
mode = _useSharedPluginState.mode;
|
|
27
|
-
var featureFlagEnabled = (0, _platformFeatureFlags.fg)('platform_synced_block_dogfooding');
|
|
28
26
|
var isOnline = !(0, _editorPluginConnectivity.isOfflineMode)(mode);
|
|
29
27
|
(0, _react.useEffect)(function () {
|
|
30
|
-
var useRealTimeSubscriptions =
|
|
28
|
+
var useRealTimeSubscriptions = isOnline;
|
|
31
29
|
syncBlockStoreManager.referenceManager.setRealTimeSubscriptionsEnabled(useRealTimeSubscriptions);
|
|
32
|
-
}, [syncBlockStoreManager,
|
|
30
|
+
}, [syncBlockStoreManager, isOnline]);
|
|
33
31
|
(0, _react.useEffect)(function () {
|
|
34
|
-
var useRealTimeSubscriptions =
|
|
32
|
+
var useRealTimeSubscriptions = isOnline;
|
|
35
33
|
if (useRealTimeSubscriptions) {
|
|
36
34
|
return;
|
|
37
35
|
}
|
|
@@ -50,6 +48,6 @@ var SyncBlockRefresher = exports.SyncBlockRefresher = function SyncBlockRefreshe
|
|
|
50
48
|
return function () {
|
|
51
49
|
window.clearInterval(interval);
|
|
52
50
|
};
|
|
53
|
-
}, [syncBlockStoreManager, isOnline
|
|
51
|
+
}, [syncBlockStoreManager, isOnline]);
|
|
54
52
|
return null;
|
|
55
53
|
};
|
|
@@ -58,11 +58,11 @@ var getToolbarConfig = exports.getToolbarConfig = function getToolbarConfig(stat
|
|
|
58
58
|
title: formatMessage(_messages.default.delete),
|
|
59
59
|
onClick: (0, _editorCommands.removeSyncedBlock)(api),
|
|
60
60
|
icon: _delete.default,
|
|
61
|
-
testId:
|
|
62
|
-
}, hoverDecorationProps(nodeType,
|
|
61
|
+
testId: _types.SYNCED_BLOCK_BUTTON_TEST_ID.syncedBlockToolbarReferenceDelete
|
|
62
|
+
}, hoverDecorationProps(nodeType, _consts.akEditorSelectedNodeClassName));
|
|
63
63
|
items.push(deleteButton);
|
|
64
64
|
} else {
|
|
65
|
-
if (!isErroredBlock
|
|
65
|
+
if (!isErroredBlock) {
|
|
66
66
|
var syncedLocation = {
|
|
67
67
|
type: 'custom',
|
|
68
68
|
fallback: [],
|