@atlaskit/editor-synced-block-provider 2.1.2 → 2.2.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 +20 -0
- package/dist/cjs/common/types.js +2 -19
- package/dist/cjs/hooks/useFetchSyncBlockData.js +43 -0
- package/dist/cjs/hooks/useHandleContentChanges.js +13 -0
- package/dist/cjs/index.js +9 -7
- package/dist/cjs/providers/{confluenceContentAPI.js → confluence/confluenceContentAPI.js} +4 -4
- package/dist/cjs/{common → providers}/syncBlockProvider.js +1 -1
- package/dist/cjs/providers/types.js +23 -0
- package/dist/cjs/store-manager/referenceSyncBlockStoreManager.js +123 -0
- package/dist/cjs/store-manager/sourceSyncBlockStoreManager.js +191 -0
- package/dist/cjs/store-manager/syncBlockStoreManager.js +111 -0
- package/dist/cjs/utils/utils.js +1 -17
- package/dist/es2019/common/types.js +1 -3
- package/dist/es2019/hooks/useFetchSyncBlockData.js +32 -0
- package/dist/es2019/hooks/useHandleContentChanges.js +7 -0
- package/dist/es2019/index.js +7 -5
- package/dist/es2019/providers/{confluenceContentAPI.js → confluence/confluenceContentAPI.js} +4 -4
- package/dist/es2019/{common → providers}/syncBlockProvider.js +1 -1
- package/dist/es2019/providers/types.js +2 -0
- package/dist/es2019/store-manager/referenceSyncBlockStoreManager.js +83 -0
- package/dist/es2019/store-manager/sourceSyncBlockStoreManager.js +115 -0
- package/dist/es2019/store-manager/syncBlockStoreManager.js +79 -0
- package/dist/es2019/utils/utils.js +0 -13
- package/dist/esm/common/types.js +1 -17
- package/dist/esm/hooks/useFetchSyncBlockData.js +36 -0
- package/dist/esm/hooks/useHandleContentChanges.js +7 -0
- package/dist/esm/index.js +7 -5
- package/dist/esm/providers/{confluenceContentAPI.js → confluence/confluenceContentAPI.js} +4 -4
- package/dist/esm/{common → providers}/syncBlockProvider.js +1 -1
- package/dist/esm/providers/types.js +16 -0
- package/dist/esm/store-manager/referenceSyncBlockStoreManager.js +116 -0
- package/dist/esm/store-manager/sourceSyncBlockStoreManager.js +184 -0
- package/dist/esm/store-manager/syncBlockStoreManager.js +105 -0
- package/dist/esm/utils/utils.js +0 -16
- package/dist/types/common/types.d.ts +12 -25
- package/dist/types/hooks/useFetchSyncBlockData.d.ts +4 -0
- package/dist/types/hooks/useHandleContentChanges.d.ts +3 -0
- package/dist/types/index.d.ts +9 -6
- package/dist/{types-ts4.5/providers → types/providers/confluence}/confluenceContentAPI.d.ts +2 -1
- package/dist/types/providers/{inMemory.d.ts → in-memory/inMemory.d.ts} +1 -1
- package/dist/types/{common → providers}/syncBlockProvider.d.ts +2 -1
- package/dist/types/providers/types.d.ts +17 -0
- package/dist/types/store-manager/referenceSyncBlockStoreManager.d.ts +23 -0
- package/dist/types/store-manager/sourceSyncBlockStoreManager.d.ts +31 -0
- package/dist/types/store-manager/syncBlockStoreManager.d.ts +36 -0
- package/dist/types/utils/utils.d.ts +1 -2
- package/dist/types-ts4.5/common/types.d.ts +12 -25
- package/dist/types-ts4.5/hooks/useFetchSyncBlockData.d.ts +4 -0
- package/dist/types-ts4.5/hooks/useHandleContentChanges.d.ts +3 -0
- package/dist/types-ts4.5/index.d.ts +9 -6
- package/dist/{types/providers → types-ts4.5/providers/confluence}/confluenceContentAPI.d.ts +2 -1
- package/dist/types-ts4.5/providers/{inMemory.d.ts → in-memory/inMemory.d.ts} +1 -1
- package/dist/types-ts4.5/{common → providers}/syncBlockProvider.d.ts +2 -1
- package/dist/types-ts4.5/providers/types.d.ts +17 -0
- package/dist/types-ts4.5/store-manager/referenceSyncBlockStoreManager.d.ts +23 -0
- package/dist/types-ts4.5/store-manager/sourceSyncBlockStoreManager.d.ts +31 -0
- package/dist/types-ts4.5/store-manager/syncBlockStoreManager.d.ts +36 -0
- package/dist/types-ts4.5/utils/utils.d.ts +1 -2
- package/package.json +3 -3
- package/dist/cjs/common/syncBlockStoreManager.js +0 -330
- package/dist/es2019/common/syncBlockStoreManager.js +0 -240
- package/dist/esm/common/syncBlockStoreManager.js +0 -323
- package/dist/types/common/syncBlockStoreManager.d.ts +0 -50
- package/dist/types-ts4.5/common/syncBlockStoreManager.d.ts +0 -50
- /package/dist/cjs/providers/{inMemory.js → in-memory/inMemory.js} +0 -0
- /package/dist/es2019/providers/{inMemory.js → in-memory/inMemory.js} +0 -0
- /package/dist/esm/providers/{inMemory.js → in-memory/inMemory.js} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# @atlaskit/editor-synced-block-provider
|
|
2
2
|
|
|
3
|
+
## 2.2.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`127d07803ff4c`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/127d07803ff4c) -
|
|
8
|
+
Internal refactor of sync block store manager
|
|
9
|
+
- Updated dependencies
|
|
10
|
+
|
|
11
|
+
## 2.2.0
|
|
12
|
+
|
|
13
|
+
### Minor Changes
|
|
14
|
+
|
|
15
|
+
- [`49860e3111ce8`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/49860e3111ce8) -
|
|
16
|
+
[ux] [EDITOR-2481] Implement plugin action flushBodiedSyncBlocks so that bodied sync block content
|
|
17
|
+
is only updated when required
|
|
18
|
+
|
|
19
|
+
### Patch Changes
|
|
20
|
+
|
|
21
|
+
- Updated dependencies
|
|
22
|
+
|
|
3
23
|
## 2.1.2
|
|
4
24
|
|
|
5
25
|
### Patch Changes
|
package/dist/cjs/common/types.js
CHANGED
|
@@ -1,29 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
|
-
exports.SyncBlockStatus =
|
|
8
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
9
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
11
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
12
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
13
|
-
var _nodeDataProvider = require("@atlaskit/node-data-provider");
|
|
14
|
-
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)); }
|
|
15
|
-
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
6
|
+
exports.SyncBlockStatus = void 0;
|
|
16
7
|
var SyncBlockStatus = exports.SyncBlockStatus = /*#__PURE__*/function (SyncBlockStatus) {
|
|
17
8
|
SyncBlockStatus["Errored"] = "errored";
|
|
18
9
|
SyncBlockStatus["NotFound"] = "not_found";
|
|
19
10
|
SyncBlockStatus["Unauthorized"] = "unauthorized";
|
|
20
11
|
return SyncBlockStatus;
|
|
21
|
-
}({});
|
|
22
|
-
var SyncBlockDataProvider = exports.SyncBlockDataProvider = /*#__PURE__*/function (_NodeDataProvider) {
|
|
23
|
-
function SyncBlockDataProvider() {
|
|
24
|
-
(0, _classCallCheck2.default)(this, SyncBlockDataProvider);
|
|
25
|
-
return _callSuper(this, SyncBlockDataProvider, arguments);
|
|
26
|
-
}
|
|
27
|
-
(0, _inherits2.default)(SyncBlockDataProvider, _NodeDataProvider);
|
|
28
|
-
return (0, _createClass2.default)(SyncBlockDataProvider);
|
|
29
|
-
}(_nodeDataProvider.NodeDataProvider);
|
|
12
|
+
}({});
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useFetchSyncBlockData = void 0;
|
|
8
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
+
var _react = require("react");
|
|
10
|
+
var _types = require("../common/types");
|
|
11
|
+
var useFetchSyncBlockData = exports.useFetchSyncBlockData = function useFetchSyncBlockData(manager, syncBlockNode) {
|
|
12
|
+
var _useState = (0, _react.useState)(null),
|
|
13
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
14
|
+
fetchSyncBlockDataResult = _useState2[0],
|
|
15
|
+
setFetchSyncBlockDataResult = _useState2[1];
|
|
16
|
+
var fetchSyncBlockNode = (0, _react.useCallback)(function () {
|
|
17
|
+
manager.fetchSyncBlockData(syncBlockNode).then(function (data) {
|
|
18
|
+
if (data && 'status' in data) {
|
|
19
|
+
// if there is an error, we don't want to replace real existing data with the error data
|
|
20
|
+
if (!fetchSyncBlockDataResult || 'status' in fetchSyncBlockDataResult) {
|
|
21
|
+
setFetchSyncBlockDataResult(data);
|
|
22
|
+
}
|
|
23
|
+
} else {
|
|
24
|
+
setFetchSyncBlockDataResult(data !== null && data !== void 0 ? data : null);
|
|
25
|
+
}
|
|
26
|
+
}).catch(function () {
|
|
27
|
+
//TODO: EDITOR-1921 - add error analytics
|
|
28
|
+
if (!fetchSyncBlockDataResult || 'status' in fetchSyncBlockDataResult) {
|
|
29
|
+
setFetchSyncBlockDataResult({
|
|
30
|
+
status: _types.SyncBlockStatus.Errored
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}, [manager, syncBlockNode, fetchSyncBlockDataResult]);
|
|
35
|
+
(0, _react.useEffect)(function () {
|
|
36
|
+
fetchSyncBlockNode();
|
|
37
|
+
var interval = window.setInterval(fetchSyncBlockNode, 3000);
|
|
38
|
+
return function () {
|
|
39
|
+
window.clearInterval(interval);
|
|
40
|
+
};
|
|
41
|
+
}, [fetchSyncBlockNode]);
|
|
42
|
+
return fetchSyncBlockDataResult;
|
|
43
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useHandleContentChanges = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var useHandleContentChanges = exports.useHandleContentChanges = function useHandleContentChanges(manager, syncBlockNode) {
|
|
9
|
+
(0, _react.useEffect)(function () {
|
|
10
|
+
//TODO: EDITOR-1921 - add error analytics
|
|
11
|
+
manager.updateSyncBlockData(syncBlockNode);
|
|
12
|
+
}, [manager, syncBlockNode]);
|
|
13
|
+
};
|
package/dist/cjs/index.js
CHANGED
|
@@ -24,7 +24,7 @@ Object.defineProperty(exports, "SyncedBlockProvider", {
|
|
|
24
24
|
Object.defineProperty(exports, "convertSyncBlockPMNodeToSyncBlockData", {
|
|
25
25
|
enumerable: true,
|
|
26
26
|
get: function get() {
|
|
27
|
-
return _utils.
|
|
27
|
+
return _utils.convertSyncBlockPMNodeToSyncBlockData;
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
30
|
Object.defineProperty(exports, "createContentAPIProvidersWithDefaultKey", {
|
|
@@ -66,13 +66,13 @@ Object.defineProperty(exports, "rebaseTransaction", {
|
|
|
66
66
|
Object.defineProperty(exports, "useFetchSyncBlockData", {
|
|
67
67
|
enumerable: true,
|
|
68
68
|
get: function get() {
|
|
69
|
-
return
|
|
69
|
+
return _useFetchSyncBlockData.useFetchSyncBlockData;
|
|
70
70
|
}
|
|
71
71
|
});
|
|
72
72
|
Object.defineProperty(exports, "useHandleContentChanges", {
|
|
73
73
|
enumerable: true,
|
|
74
74
|
get: function get() {
|
|
75
|
-
return
|
|
75
|
+
return _useHandleContentChanges.useHandleContentChanges;
|
|
76
76
|
}
|
|
77
77
|
});
|
|
78
78
|
Object.defineProperty(exports, "useMemoizedContentAPIProviders", {
|
|
@@ -87,12 +87,14 @@ Object.defineProperty(exports, "useMemoizedSyncedBlockProvider", {
|
|
|
87
87
|
return _syncBlockProvider.useMemoizedSyncedBlockProvider;
|
|
88
88
|
}
|
|
89
89
|
});
|
|
90
|
-
var _syncBlockProvider = require("./
|
|
91
|
-
var _syncBlockStoreManager = require("./
|
|
90
|
+
var _syncBlockProvider = require("./providers/syncBlockProvider");
|
|
91
|
+
var _syncBlockStoreManager = require("./store-manager/syncBlockStoreManager");
|
|
92
|
+
var _useFetchSyncBlockData = require("./hooks/useFetchSyncBlockData");
|
|
93
|
+
var _useHandleContentChanges = require("./hooks/useHandleContentChanges");
|
|
92
94
|
var _types = require("./common/types");
|
|
93
|
-
var _inMemory = require("./providers/inMemory");
|
|
95
|
+
var _inMemory = require("./providers/in-memory/inMemory");
|
|
94
96
|
var _schema = require("./common/schema");
|
|
95
|
-
var _confluenceContentAPI = require("./providers/confluenceContentAPI");
|
|
97
|
+
var _confluenceContentAPI = require("./providers/confluence/confluenceContentAPI");
|
|
96
98
|
var _ari = require("./utils/ari");
|
|
97
99
|
var _utils = require("./utils/utils");
|
|
98
100
|
var _rebaseTransaction = require("./common/rebase-transaction");
|
|
@@ -12,10 +12,10 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
|
|
|
12
12
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
13
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
14
14
|
var _react = require("react");
|
|
15
|
-
var _types = require("
|
|
16
|
-
var _ari = require("
|
|
17
|
-
var _contentProperty4 = require("
|
|
18
|
-
var _utils = require("
|
|
15
|
+
var _types = require("../../common/types");
|
|
16
|
+
var _ari = require("../../utils/ari");
|
|
17
|
+
var _contentProperty4 = require("../../utils/contentProperty");
|
|
18
|
+
var _utils = require("../../utils/utils");
|
|
19
19
|
/**
|
|
20
20
|
* Configuration for Content API providers
|
|
21
21
|
*/
|
|
@@ -14,8 +14,8 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
|
|
|
14
14
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
15
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
16
16
|
var _react = require("react");
|
|
17
|
+
var _types = require("../providers/types");
|
|
17
18
|
var _ari = require("../utils/ari");
|
|
18
|
-
var _types = require("./types");
|
|
19
19
|
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)); }
|
|
20
20
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
21
21
|
var SyncBlockProvider = exports.SyncBlockProvider = /*#__PURE__*/function (_SyncBlockDataProvide) {
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.SyncBlockDataProvider = void 0;
|
|
8
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
9
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
11
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
12
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
13
|
+
var _nodeDataProvider = require("@atlaskit/node-data-provider");
|
|
14
|
+
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)); }
|
|
15
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
16
|
+
var SyncBlockDataProvider = exports.SyncBlockDataProvider = /*#__PURE__*/function (_NodeDataProvider) {
|
|
17
|
+
function SyncBlockDataProvider() {
|
|
18
|
+
(0, _classCallCheck2.default)(this, SyncBlockDataProvider);
|
|
19
|
+
return _callSuper(this, SyncBlockDataProvider, arguments);
|
|
20
|
+
}
|
|
21
|
+
(0, _inherits2.default)(SyncBlockDataProvider, _NodeDataProvider);
|
|
22
|
+
return (0, _createClass2.default)(SyncBlockDataProvider);
|
|
23
|
+
}(_nodeDataProvider.NodeDataProvider);
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.ReferenceSyncBlockStoreManager = void 0;
|
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
11
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
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; }
|
|
14
|
+
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; }
|
|
15
|
+
var createSyncBlockNode = function createSyncBlockNode(localId, resourceId) {
|
|
16
|
+
return {
|
|
17
|
+
type: 'syncBlock',
|
|
18
|
+
attrs: {
|
|
19
|
+
localId: localId,
|
|
20
|
+
resourceId: resourceId
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
var ReferenceSyncBlockStoreManager = exports.ReferenceSyncBlockStoreManager = /*#__PURE__*/function () {
|
|
25
|
+
function ReferenceSyncBlockStoreManager(dataProvider) {
|
|
26
|
+
(0, _classCallCheck2.default)(this, ReferenceSyncBlockStoreManager);
|
|
27
|
+
this.dataProvider = dataProvider;
|
|
28
|
+
this.syncBlockCache = new Map();
|
|
29
|
+
this.syncBlockURLRequests = new Map();
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
*
|
|
34
|
+
* @param localId - The local ID of the sync block to get the source URL for
|
|
35
|
+
* @param resourceId - The resource ID of the sync block to get the source URL for
|
|
36
|
+
* Fetches source URl for a sync block and updates sync block data with the source URL asynchronously.
|
|
37
|
+
*/
|
|
38
|
+
return (0, _createClass2.default)(ReferenceSyncBlockStoreManager, [{
|
|
39
|
+
key: "fetchSyncBlockSourceURL",
|
|
40
|
+
value: function fetchSyncBlockSourceURL(_ref) {
|
|
41
|
+
var _this = this;
|
|
42
|
+
var localId = _ref.localId,
|
|
43
|
+
resourceId = _ref.resourceId;
|
|
44
|
+
if (!localId || !resourceId || !this.dataProvider) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// if the sync block is a reference block, we need to fetch the URL to the source
|
|
49
|
+
// we could optimise this further by checking if the sync block is on the same page as the source
|
|
50
|
+
if (!this.syncBlockURLRequests.get(localId)) {
|
|
51
|
+
this.syncBlockURLRequests.set(localId, true);
|
|
52
|
+
this.dataProvider.retrieveSyncBlockSourceUrl(createSyncBlockNode(localId, resourceId)).then(function (sourceURL) {
|
|
53
|
+
var existingSyncBlock = _this.syncBlockCache.get(localId);
|
|
54
|
+
if (existingSyncBlock) {
|
|
55
|
+
existingSyncBlock.sourceURL = sourceURL;
|
|
56
|
+
}
|
|
57
|
+
}).finally(function () {
|
|
58
|
+
_this.syncBlockURLRequests.set(localId, false);
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}, {
|
|
63
|
+
key: "fetchSyncBlockData",
|
|
64
|
+
value: function () {
|
|
65
|
+
var _fetchSyncBlockData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(syncBlockNode) {
|
|
66
|
+
var syncNode, existingSyncBlock, data, fetchSyncBlockDataResult;
|
|
67
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
68
|
+
while (1) switch (_context.prev = _context.next) {
|
|
69
|
+
case 0:
|
|
70
|
+
if (this.dataProvider) {
|
|
71
|
+
_context.next = 2;
|
|
72
|
+
break;
|
|
73
|
+
}
|
|
74
|
+
throw new Error('Data provider not set');
|
|
75
|
+
case 2:
|
|
76
|
+
syncNode = createSyncBlockNode(syncBlockNode.attrs.localId, syncBlockNode.attrs.resourceId); // async fetch source URL if it is not already fetched
|
|
77
|
+
existingSyncBlock = this.syncBlockCache.get(syncBlockNode.attrs.localId);
|
|
78
|
+
if (!(existingSyncBlock !== null && existingSyncBlock !== void 0 && existingSyncBlock.sourceURL)) {
|
|
79
|
+
this.fetchSyncBlockSourceURL({
|
|
80
|
+
localId: syncBlockNode.attrs.localId,
|
|
81
|
+
resourceId: syncBlockNode.attrs.resourceId
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
_context.next = 7;
|
|
85
|
+
return this.dataProvider.fetchNodesData([syncNode]);
|
|
86
|
+
case 7:
|
|
87
|
+
data = _context.sent;
|
|
88
|
+
if (data) {
|
|
89
|
+
_context.next = 10;
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
throw new Error('Failed to fetch sync block node data');
|
|
93
|
+
case 10:
|
|
94
|
+
fetchSyncBlockDataResult = data[0];
|
|
95
|
+
if (!('status' in fetchSyncBlockDataResult)) {
|
|
96
|
+
// only adds it to the map if it did not error out
|
|
97
|
+
this.syncBlockCache.set(syncBlockNode.attrs.localId, _objectSpread(_objectSpread({}, existingSyncBlock), fetchSyncBlockDataResult));
|
|
98
|
+
}
|
|
99
|
+
return _context.abrupt("return", fetchSyncBlockDataResult);
|
|
100
|
+
case 13:
|
|
101
|
+
case "end":
|
|
102
|
+
return _context.stop();
|
|
103
|
+
}
|
|
104
|
+
}, _callee, this);
|
|
105
|
+
}));
|
|
106
|
+
function fetchSyncBlockData(_x) {
|
|
107
|
+
return _fetchSyncBlockData.apply(this, arguments);
|
|
108
|
+
}
|
|
109
|
+
return fetchSyncBlockData;
|
|
110
|
+
}()
|
|
111
|
+
/**
|
|
112
|
+
* Get the URL for a sync block.
|
|
113
|
+
* @param localId - The local ID of the sync block to get the URL for
|
|
114
|
+
* @returns
|
|
115
|
+
*/
|
|
116
|
+
}, {
|
|
117
|
+
key: "getSyncBlockURL",
|
|
118
|
+
value: function getSyncBlockURL(localId) {
|
|
119
|
+
var syncBlock = this.syncBlockCache.get(localId);
|
|
120
|
+
return syncBlock === null || syncBlock === void 0 ? void 0 : syncBlock.sourceURL;
|
|
121
|
+
}
|
|
122
|
+
}]);
|
|
123
|
+
}();
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.SourceSyncBlockStoreManager = void 0;
|
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
|
+
var _uuid = _interopRequireDefault(require("uuid"));
|
|
13
|
+
var _rebaseTransaction2 = require("../common/rebase-transaction");
|
|
14
|
+
var _ari = require("../utils/ari");
|
|
15
|
+
var _utils = require("../utils/utils");
|
|
16
|
+
var SourceSyncBlockStoreManager = exports.SourceSyncBlockStoreManager = /*#__PURE__*/function () {
|
|
17
|
+
function SourceSyncBlockStoreManager(dataProvider) {
|
|
18
|
+
(0, _classCallCheck2.default)(this, SourceSyncBlockStoreManager);
|
|
19
|
+
this.dataProvider = dataProvider;
|
|
20
|
+
this.syncBlockCache = new Map();
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Add/update a sync block node to/from the local cache
|
|
25
|
+
* @param syncBlockNode - The sync block node to update
|
|
26
|
+
*/
|
|
27
|
+
return (0, _createClass2.default)(SourceSyncBlockStoreManager, [{
|
|
28
|
+
key: "updateSyncBlockData",
|
|
29
|
+
value: function updateSyncBlockData(syncBlockNode) {
|
|
30
|
+
try {
|
|
31
|
+
var _syncBlockNode$attrs = syncBlockNode.attrs,
|
|
32
|
+
localId = _syncBlockNode$attrs.localId,
|
|
33
|
+
resourceId = _syncBlockNode$attrs.resourceId;
|
|
34
|
+
if (!localId || !resourceId) {
|
|
35
|
+
throw new Error('Local ID or resource ID is not set');
|
|
36
|
+
}
|
|
37
|
+
var syncBlockData = (0, _utils.convertSyncBlockPMNodeToSyncBlockData)(syncBlockNode);
|
|
38
|
+
this.syncBlockCache.set(localId, syncBlockData);
|
|
39
|
+
} catch (_unused) {
|
|
40
|
+
//TODO: EDITOR-1921 - add error analytics
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Save content of bodiedSyncBlock nodes in local cache to backend
|
|
46
|
+
*
|
|
47
|
+
* @returns true if saving all nodes successfully, false if fail to save some/all nodes
|
|
48
|
+
*/
|
|
49
|
+
}, {
|
|
50
|
+
key: "flushBodiedSyncBlocks",
|
|
51
|
+
value: (function () {
|
|
52
|
+
var _flushBodiedSyncBlocks = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
53
|
+
var bodiedSyncBlockNodes, bodiedSyncBlockData, resourceIds;
|
|
54
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
55
|
+
while (1) switch (_context.prev = _context.next) {
|
|
56
|
+
case 0:
|
|
57
|
+
_context.prev = 0;
|
|
58
|
+
if (this.dataProvider) {
|
|
59
|
+
_context.next = 3;
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
throw new Error('Data provider not set');
|
|
63
|
+
case 3:
|
|
64
|
+
bodiedSyncBlockNodes = [];
|
|
65
|
+
bodiedSyncBlockData = [];
|
|
66
|
+
Array.from(this.syncBlockCache.values()).forEach(function (syncBlockData) {
|
|
67
|
+
bodiedSyncBlockNodes.push({
|
|
68
|
+
type: 'bodiedSyncBlock',
|
|
69
|
+
attrs: {
|
|
70
|
+
localId: syncBlockData.blockInstanceId,
|
|
71
|
+
resourceId: syncBlockData.resourceId
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
bodiedSyncBlockData.push(syncBlockData);
|
|
75
|
+
});
|
|
76
|
+
if (!(bodiedSyncBlockNodes.length === 0)) {
|
|
77
|
+
_context.next = 8;
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
return _context.abrupt("return", Promise.resolve(true));
|
|
81
|
+
case 8:
|
|
82
|
+
_context.next = 10;
|
|
83
|
+
return this.dataProvider.writeNodesData(bodiedSyncBlockNodes, bodiedSyncBlockData);
|
|
84
|
+
case 10:
|
|
85
|
+
resourceIds = _context.sent;
|
|
86
|
+
return _context.abrupt("return", resourceIds.every(function (resourceId) {
|
|
87
|
+
return resourceId !== undefined;
|
|
88
|
+
}));
|
|
89
|
+
case 14:
|
|
90
|
+
_context.prev = 14;
|
|
91
|
+
_context.t0 = _context["catch"](0);
|
|
92
|
+
return _context.abrupt("return", false);
|
|
93
|
+
case 17:
|
|
94
|
+
case "end":
|
|
95
|
+
return _context.stop();
|
|
96
|
+
}
|
|
97
|
+
}, _callee, this, [[0, 14]]);
|
|
98
|
+
}));
|
|
99
|
+
function flushBodiedSyncBlocks() {
|
|
100
|
+
return _flushBodiedSyncBlocks.apply(this, arguments);
|
|
101
|
+
}
|
|
102
|
+
return flushBodiedSyncBlocks;
|
|
103
|
+
}())
|
|
104
|
+
}, {
|
|
105
|
+
key: "setEditorView",
|
|
106
|
+
value: function setEditorView(editorView) {
|
|
107
|
+
this.editorView = editorView;
|
|
108
|
+
}
|
|
109
|
+
}, {
|
|
110
|
+
key: "registerConfirmationCallback",
|
|
111
|
+
value: function registerConfirmationCallback(callback) {
|
|
112
|
+
var _this = this;
|
|
113
|
+
this.confirmationCallback = callback;
|
|
114
|
+
return function () {
|
|
115
|
+
_this.confirmationCallback = undefined;
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
}, {
|
|
119
|
+
key: "requireConfirmationBeforeDelete",
|
|
120
|
+
value: function requireConfirmationBeforeDelete() {
|
|
121
|
+
return !!this.confirmationCallback;
|
|
122
|
+
}
|
|
123
|
+
}, {
|
|
124
|
+
key: "createSyncBlockNode",
|
|
125
|
+
value: function createSyncBlockNode() {
|
|
126
|
+
var _this$dataProvider;
|
|
127
|
+
var blockInstanceId = (0, _uuid.default)();
|
|
128
|
+
var sourceId = (_this$dataProvider = this.dataProvider) === null || _this$dataProvider === void 0 ? void 0 : _this$dataProvider.getSourceId();
|
|
129
|
+
if (!sourceId) {
|
|
130
|
+
throw new Error('Provider of sync block plugin is not set');
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// This should be generated by the data provider implementation as it differs between data providers
|
|
134
|
+
var resourceId = (0, _ari.resourceIdFromSourceAndLocalId)(sourceId, blockInstanceId);
|
|
135
|
+
var syncBlockNode = {
|
|
136
|
+
attrs: {
|
|
137
|
+
resourceId: resourceId,
|
|
138
|
+
localId: blockInstanceId
|
|
139
|
+
},
|
|
140
|
+
type: 'bodiedSyncBlock'
|
|
141
|
+
};
|
|
142
|
+
return syncBlockNode;
|
|
143
|
+
}
|
|
144
|
+
}, {
|
|
145
|
+
key: "deleteSyncBlocksWithConfirmation",
|
|
146
|
+
value: function () {
|
|
147
|
+
var _deleteSyncBlocksWithConfirmation = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(tr, syncBlockIds) {
|
|
148
|
+
var _this2 = this;
|
|
149
|
+
var confirmed, _this$editorView;
|
|
150
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
151
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
152
|
+
case 0:
|
|
153
|
+
if (!this.confirmationCallback) {
|
|
154
|
+
_context2.next = 7;
|
|
155
|
+
break;
|
|
156
|
+
}
|
|
157
|
+
this.confirmationTransaction = tr;
|
|
158
|
+
_context2.next = 4;
|
|
159
|
+
return this.confirmationCallback();
|
|
160
|
+
case 4:
|
|
161
|
+
confirmed = _context2.sent;
|
|
162
|
+
if (confirmed) {
|
|
163
|
+
(_this$editorView = this.editorView) === null || _this$editorView === void 0 || _this$editorView.dispatch(this.confirmationTransaction.setMeta('isConfirmedSyncBlockDeletion', true));
|
|
164
|
+
// Need to update the BE on deletion
|
|
165
|
+
syncBlockIds.forEach(function (_ref) {
|
|
166
|
+
var localId = _ref.localId;
|
|
167
|
+
return _this2.syncBlockCache.delete(localId);
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
this.confirmationTransaction = undefined;
|
|
171
|
+
case 7:
|
|
172
|
+
case "end":
|
|
173
|
+
return _context2.stop();
|
|
174
|
+
}
|
|
175
|
+
}, _callee2, this);
|
|
176
|
+
}));
|
|
177
|
+
function deleteSyncBlocksWithConfirmation(_x, _x2) {
|
|
178
|
+
return _deleteSyncBlocksWithConfirmation.apply(this, arguments);
|
|
179
|
+
}
|
|
180
|
+
return deleteSyncBlocksWithConfirmation;
|
|
181
|
+
}()
|
|
182
|
+
}, {
|
|
183
|
+
key: "rebaseTransaction",
|
|
184
|
+
value: function rebaseTransaction(incomingTr, state) {
|
|
185
|
+
if (!this.confirmationTransaction) {
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
this.confirmationTransaction = (0, _rebaseTransaction2.rebaseTransaction)(this.confirmationTransaction, incomingTr, state);
|
|
189
|
+
}
|
|
190
|
+
}]);
|
|
191
|
+
}();
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.SyncBlockStoreManager = void 0;
|
|
8
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
|
+
var _referenceSyncBlockStoreManager = require("./referenceSyncBlockStoreManager");
|
|
11
|
+
var _sourceSyncBlockStoreManager = require("./sourceSyncBlockStoreManager");
|
|
12
|
+
// A store manager responsible for the lifecycle and state management of sync blocks in an editor instance.
|
|
13
|
+
// Supports create, read, update, and delete operations for sync blocks.
|
|
14
|
+
// Designed to manage local in-memory state and synchronize with an external data provider.
|
|
15
|
+
// Handles caching, debouncing updates, and publish/subscribe for local changes.
|
|
16
|
+
// Ensures consistency between local and remote state, and can be used in both editor and renderer contexts.
|
|
17
|
+
var SyncBlockStoreManager = exports.SyncBlockStoreManager = /*#__PURE__*/function () {
|
|
18
|
+
function SyncBlockStoreManager(dataProvider) {
|
|
19
|
+
(0, _classCallCheck2.default)(this, SyncBlockStoreManager);
|
|
20
|
+
this.referenceSyncBlockStoreManager = new _referenceSyncBlockStoreManager.ReferenceSyncBlockStoreManager(dataProvider);
|
|
21
|
+
this.sourceSyncBlockStoreManager = new _sourceSyncBlockStoreManager.SourceSyncBlockStoreManager(dataProvider);
|
|
22
|
+
}
|
|
23
|
+
return (0, _createClass2.default)(SyncBlockStoreManager, [{
|
|
24
|
+
key: "fetchSyncBlockData",
|
|
25
|
+
value: function fetchSyncBlockData(syncBlockNode) {
|
|
26
|
+
if (this.isSourceBlock(syncBlockNode)) {
|
|
27
|
+
return Promise.reject(new Error('Invalid sync block node type provided for fetchSyncBlockData'));
|
|
28
|
+
}
|
|
29
|
+
return this.referenceSyncBlockStoreManager.fetchSyncBlockData(syncBlockNode);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Add/update a sync block node to/from the local cache
|
|
34
|
+
* @param syncBlockNode - The sync block node to update
|
|
35
|
+
*/
|
|
36
|
+
}, {
|
|
37
|
+
key: "updateSyncBlockData",
|
|
38
|
+
value: function updateSyncBlockData(syncBlockNode) {
|
|
39
|
+
if (this.isSourceBlock(syncBlockNode)) {
|
|
40
|
+
this.sourceSyncBlockStoreManager.updateSyncBlockData(syncBlockNode);
|
|
41
|
+
} else {
|
|
42
|
+
throw new Error('Invalid sync block node type provided for updateSyncBlockData');
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Save content of bodiedSyncBlock nodes in local cache to backend
|
|
48
|
+
*
|
|
49
|
+
* @returns true if saving all nodes successfully, false if fail to save some/all nodes
|
|
50
|
+
*/
|
|
51
|
+
}, {
|
|
52
|
+
key: "flushBodiedSyncBlocks",
|
|
53
|
+
value: function flushBodiedSyncBlocks() {
|
|
54
|
+
// only applicable to source sync block, for now (will be refactored further)
|
|
55
|
+
return this.sourceSyncBlockStoreManager.flushBodiedSyncBlocks();
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Get the URL for a sync block.
|
|
60
|
+
* @param localId - The local ID of the sync block to get the URL for
|
|
61
|
+
* @returns
|
|
62
|
+
*/
|
|
63
|
+
}, {
|
|
64
|
+
key: "getSyncBlockURL",
|
|
65
|
+
value: function getSyncBlockURL(localId) {
|
|
66
|
+
// only applicable to reference sync block, for now (will be refactored further)
|
|
67
|
+
return this.referenceSyncBlockStoreManager.getSyncBlockURL(localId);
|
|
68
|
+
}
|
|
69
|
+
}, {
|
|
70
|
+
key: "setEditorView",
|
|
71
|
+
value: function setEditorView(editorView) {
|
|
72
|
+
// only applicable to source sync block, for now (will be refactored further)
|
|
73
|
+
this.sourceSyncBlockStoreManager.setEditorView(editorView);
|
|
74
|
+
}
|
|
75
|
+
}, {
|
|
76
|
+
key: "isSourceBlock",
|
|
77
|
+
value: function isSourceBlock(node) {
|
|
78
|
+
return node.type.name === 'bodiedSyncBlock';
|
|
79
|
+
}
|
|
80
|
+
}, {
|
|
81
|
+
key: "registerConfirmationCallback",
|
|
82
|
+
value: function registerConfirmationCallback(callback) {
|
|
83
|
+
// only applicable to source sync block, for now (will be refactored further)
|
|
84
|
+
return this.sourceSyncBlockStoreManager.registerConfirmationCallback(callback);
|
|
85
|
+
}
|
|
86
|
+
}, {
|
|
87
|
+
key: "requireConfirmationBeforeDelete",
|
|
88
|
+
value: function requireConfirmationBeforeDelete() {
|
|
89
|
+
// only applicable to source sync block, for now (will be refactored further)
|
|
90
|
+
return this.sourceSyncBlockStoreManager.requireConfirmationBeforeDelete();
|
|
91
|
+
}
|
|
92
|
+
}, {
|
|
93
|
+
key: "createSyncBlockNode",
|
|
94
|
+
value: function createSyncBlockNode() {
|
|
95
|
+
// only applicable to source sync block, for now (will be refactored further)
|
|
96
|
+
return this.sourceSyncBlockStoreManager.createSyncBlockNode();
|
|
97
|
+
}
|
|
98
|
+
}, {
|
|
99
|
+
key: "deleteSyncBlocksWithConfirmation",
|
|
100
|
+
value: function deleteSyncBlocksWithConfirmation(tr, syncBlockIds) {
|
|
101
|
+
// only applicable to source sync block, for now (will be refactored further)
|
|
102
|
+
return this.sourceSyncBlockStoreManager.deleteSyncBlocksWithConfirmation(tr, syncBlockIds);
|
|
103
|
+
}
|
|
104
|
+
}, {
|
|
105
|
+
key: "rebaseTransaction",
|
|
106
|
+
value: function rebaseTransaction(incomingTr, state) {
|
|
107
|
+
// only applicable to source sync block, for now (will be refactored further)
|
|
108
|
+
this.sourceSyncBlockStoreManager.rebaseTransaction(incomingTr, state);
|
|
109
|
+
}
|
|
110
|
+
}]);
|
|
111
|
+
}();
|
package/dist/cjs/utils/utils.js
CHANGED
|
@@ -3,23 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.isBlogPageType = exports.
|
|
7
|
-
var _editorJsonTransformer = require("@atlaskit/editor-json-transformer");
|
|
8
|
-
var convertSyncBlockPMNodeToSyncBlockNode = exports.convertSyncBlockPMNodeToSyncBlockNode = function convertSyncBlockPMNodeToSyncBlockNode(node) {
|
|
9
|
-
var includeContent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
10
|
-
var transformer = new _editorJsonTransformer.JSONTransformer();
|
|
11
|
-
var toJSON = function toJSON(node) {
|
|
12
|
-
return transformer.encodeNode(node);
|
|
13
|
-
};
|
|
14
|
-
return {
|
|
15
|
-
type: 'syncBlock',
|
|
16
|
-
attrs: {
|
|
17
|
-
localId: node.attrs.localId,
|
|
18
|
-
resourceId: node.attrs.resourceId
|
|
19
|
-
},
|
|
20
|
-
content: includeContent ? node.content.content.map(toJSON) : undefined
|
|
21
|
-
};
|
|
22
|
-
};
|
|
6
|
+
exports.isBlogPageType = exports.convertSyncBlockPMNodeToSyncBlockData = void 0;
|
|
23
7
|
var convertSyncBlockPMNodeToSyncBlockData = exports.convertSyncBlockPMNodeToSyncBlockData = function convertSyncBlockPMNodeToSyncBlockData(node) {
|
|
24
8
|
return {
|
|
25
9
|
blockInstanceId: node.attrs.localId,
|