@atlaskit/editor-synced-block-renderer 3.1.0 → 3.1.2
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 +15 -0
- package/afm-cc/tsconfig.json +3 -0
- package/afm-products/tsconfig.json +3 -0
- package/dist/cjs/getSyncedBlockNodeComponent.js +18 -19
- package/dist/cjs/getSyncedBlockRenderer.js +10 -5
- package/dist/cjs/types.js +5 -0
- package/dist/cjs/ui/AKRendererWrapper.js +67 -0
- package/dist/cjs/ui/SyncedBlockNodeComponentRenderer.js +14 -19
- package/dist/cjs/ui/SyncedBlockRenderer.js +15 -30
- package/dist/es2019/getSyncedBlockNodeComponent.js +14 -13
- package/dist/es2019/getSyncedBlockRenderer.js +4 -0
- package/dist/es2019/types.js +1 -0
- package/dist/es2019/ui/AKRendererWrapper.js +60 -0
- package/dist/es2019/ui/SyncedBlockNodeComponentRenderer.js +14 -18
- package/dist/es2019/ui/SyncedBlockRenderer.js +13 -29
- package/dist/esm/getSyncedBlockNodeComponent.js +19 -19
- package/dist/esm/getSyncedBlockRenderer.js +10 -5
- package/dist/esm/types.js +1 -0
- package/dist/esm/ui/AKRendererWrapper.js +59 -0
- package/dist/esm/ui/SyncedBlockNodeComponentRenderer.js +14 -19
- package/dist/esm/ui/SyncedBlockRenderer.js +15 -30
- package/dist/types/getSyncedBlockNodeComponent.d.ts +9 -3
- package/dist/types/getSyncedBlockRenderer.d.ts +9 -2
- package/dist/types/types.d.ts +2 -0
- package/dist/types/ui/AKRendererWrapper.d.ts +9 -0
- package/dist/types/ui/SyncedBlockNodeComponentRenderer.d.ts +6 -2
- package/dist/types/ui/SyncedBlockRenderer.d.ts +3 -1
- package/dist/types-ts4.5/getSyncedBlockNodeComponent.d.ts +9 -3
- package/dist/types-ts4.5/getSyncedBlockRenderer.d.ts +9 -2
- package/dist/types-ts4.5/types.d.ts +2 -0
- package/dist/types-ts4.5/ui/AKRendererWrapper.d.ts +9 -0
- package/dist/types-ts4.5/ui/SyncedBlockNodeComponentRenderer.d.ts +6 -2
- package/dist/types-ts4.5/ui/SyncedBlockRenderer.d.ts +3 -1
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @atlaskit/editor-synced-block-renderer
|
|
2
2
|
|
|
3
|
+
## 3.1.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`9e1ddcc85a330`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/9e1ddcc85a330) -
|
|
8
|
+
EDITOR-2673 Enable nested tables in reference synced blocks
|
|
9
|
+
|
|
10
|
+
## 3.1.1
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- [`aa14795cecd60`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/aa14795cecd60) -
|
|
15
|
+
EDITOR-2350 Pass media options to sync block nested renderer.
|
|
16
|
+
- Updated dependencies
|
|
17
|
+
|
|
3
18
|
## 3.1.0
|
|
4
19
|
|
|
5
20
|
### Minor Changes
|
package/afm-cc/tsconfig.json
CHANGED
|
@@ -1,37 +1,36 @@
|
|
|
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
6
|
exports.getSyncedBlockNodeComponent = void 0;
|
|
8
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
7
|
var _editorSyncedBlockProvider = require("@atlaskit/editor-synced-block-provider");
|
|
10
8
|
var _SyncedBlockNodeComponentRenderer = require("./ui/SyncedBlockNodeComponentRenderer");
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
var getSyncBlockNodesFromContent = function getSyncBlockNodesFromContent(content) {
|
|
10
|
+
return content.map(function (node) {
|
|
11
|
+
return (0, _editorSyncedBlockProvider.convertSyncBlockJSONNodeToSyncBlockNode)(node);
|
|
12
|
+
}).filter(function (node) {
|
|
13
|
+
return node !== undefined;
|
|
14
|
+
});
|
|
15
15
|
};
|
|
16
16
|
|
|
17
|
-
// For rendering synced block nodes in Renderer
|
|
18
|
-
var getSyncedBlockNodeComponent = exports.getSyncedBlockNodeComponent = function getSyncedBlockNodeComponent(
|
|
17
|
+
// For rendering reference synced block nodes in Renderer
|
|
18
|
+
var getSyncedBlockNodeComponent = exports.getSyncedBlockNodeComponent = function getSyncedBlockNodeComponent(_ref) {
|
|
19
|
+
var doc = _ref.doc,
|
|
20
|
+
syncBlockProvider = _ref.syncBlockProvider,
|
|
21
|
+
syncBlockRendererOptions = _ref.syncBlockRendererOptions;
|
|
19
22
|
var content = doc.content;
|
|
20
23
|
var isEmpty = !content || !Array.isArray(content) || content.length === 0;
|
|
21
|
-
var syncBlockNodes = isEmpty ? [] : content
|
|
22
|
-
|
|
23
|
-
});
|
|
24
|
-
var syncBlockStoreManager = isSyncBlockDataProvider(dataProvider) ? new _editorSyncedBlockProvider.SyncBlockStoreManager(dataProvider) : undefined;
|
|
25
|
-
if (!syncBlockStoreManager) {
|
|
26
|
-
// TODO: EDITOR-2533 - returns a function that always renders error state
|
|
27
|
-
throw new Error('Data provider is not a SyncBlockDataProvider');
|
|
28
|
-
}
|
|
24
|
+
var syncBlockNodes = isEmpty ? [] : getSyncBlockNodesFromContent(content);
|
|
25
|
+
var syncBlockStoreManager = new _editorSyncedBlockProvider.SyncBlockStoreManager(syncBlockProvider);
|
|
29
26
|
|
|
30
27
|
// Pre-fetch sync block data
|
|
31
28
|
syncBlockStoreManager.getReferenceSyncBlockStoreManager().fetchSyncBlocksData(syncBlockNodes);
|
|
32
29
|
return function (props) {
|
|
33
|
-
return (0, _SyncedBlockNodeComponentRenderer.SyncedBlockNodeComponentRenderer)(
|
|
34
|
-
|
|
35
|
-
|
|
30
|
+
return (0, _SyncedBlockNodeComponentRenderer.SyncedBlockNodeComponentRenderer)({
|
|
31
|
+
nodeProps: props,
|
|
32
|
+
syncBlockStoreManager: syncBlockStoreManager,
|
|
33
|
+
rendererOptions: syncBlockRendererOptions
|
|
34
|
+
});
|
|
36
35
|
};
|
|
37
36
|
};
|
|
@@ -7,11 +7,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.getSyncedBlockRenderer = void 0;
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
var _SyncedBlockRenderer = require("./ui/SyncedBlockRenderer");
|
|
10
|
+
// For rendering reference synced block nodes in Editor
|
|
10
11
|
var getSyncedBlockRenderer = exports.getSyncedBlockRenderer = function getSyncedBlockRenderer(_ref) {
|
|
11
12
|
var syncBlockRendererDataProviders = _ref.syncBlockRendererDataProviders,
|
|
12
|
-
|
|
13
|
-
return
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
syncBlockRendererOptions = _ref.syncBlockRendererOptions;
|
|
14
|
+
return function (_ref2) {
|
|
15
|
+
var useFetchSyncBlockData = _ref2.useFetchSyncBlockData;
|
|
16
|
+
return /*#__PURE__*/_react.default.createElement(_SyncedBlockRenderer.SyncedBlockRenderer, {
|
|
17
|
+
syncBlockRendererOptions: syncBlockRendererOptions,
|
|
18
|
+
syncBlockRendererDataProviders: syncBlockRendererDataProviders,
|
|
19
|
+
useFetchSyncBlockData: useFetchSyncBlockData
|
|
20
|
+
});
|
|
21
|
+
};
|
|
17
22
|
};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.AKRendererWrapper = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _renderer = require("@atlaskit/renderer");
|
|
10
|
+
var _actions = require("@atlaskit/renderer/actions");
|
|
11
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
12
|
+
var ValidationContextWrapper = function ValidationContextWrapper(_ref) {
|
|
13
|
+
var children = _ref.children;
|
|
14
|
+
var validationContextValue = (0, _react.useMemo)(function () {
|
|
15
|
+
return {
|
|
16
|
+
allowNestedTables: true
|
|
17
|
+
};
|
|
18
|
+
}, []);
|
|
19
|
+
return /*#__PURE__*/_react.default.createElement(_renderer.ValidationContextProvider, {
|
|
20
|
+
value: validationContextValue
|
|
21
|
+
}, children);
|
|
22
|
+
};
|
|
23
|
+
var AKRendererWrapper = exports.AKRendererWrapper = /*#__PURE__*/(0, _react.memo)(function (_ref2) {
|
|
24
|
+
var doc = _ref2.doc,
|
|
25
|
+
dataProviders = _ref2.dataProviders,
|
|
26
|
+
options = _ref2.options;
|
|
27
|
+
var _ref3 = options !== null && options !== void 0 ? options : {},
|
|
28
|
+
allowAltTextOnImages = _ref3.allowAltTextOnImages,
|
|
29
|
+
allowAnnotations = _ref3.allowAnnotations,
|
|
30
|
+
allowColumnSorting = _ref3.allowColumnSorting,
|
|
31
|
+
allowCopyToClipboard = _ref3.allowCopyToClipboard,
|
|
32
|
+
allowCustomPanels = _ref3.allowCustomPanels,
|
|
33
|
+
allowHeadingAnchorLinks = _ref3.allowHeadingAnchorLinks,
|
|
34
|
+
allowPlaceholderText = _ref3.allowPlaceholderText,
|
|
35
|
+
allowRendererContainerStyles = _ref3.allowRendererContainerStyles,
|
|
36
|
+
allowSelectAllTrap = _ref3.allowSelectAllTrap,
|
|
37
|
+
allowUgcScrubber = _ref3.allowUgcScrubber,
|
|
38
|
+
allowWrapCodeBlock = _ref3.allowWrapCodeBlock,
|
|
39
|
+
emojiResourceConfig = _ref3.emojiResourceConfig,
|
|
40
|
+
media = _ref3.media,
|
|
41
|
+
smartLinks = _ref3.smartLinks,
|
|
42
|
+
stickyHeaders = _ref3.stickyHeaders;
|
|
43
|
+
return /*#__PURE__*/_react.default.createElement(_actions.RendererActionsContext, null, /*#__PURE__*/_react.default.createElement(ValidationContextWrapper, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
44
|
+
"data-testid": "sync-block-renderer-wrapper"
|
|
45
|
+
}, /*#__PURE__*/_react.default.createElement(_renderer.ReactRenderer, {
|
|
46
|
+
appearance: "full-width",
|
|
47
|
+
adfStage: "stage0",
|
|
48
|
+
document: doc,
|
|
49
|
+
disableHeadingIDs: true,
|
|
50
|
+
dataProviders: dataProviders,
|
|
51
|
+
allowAltTextOnImages: allowAltTextOnImages,
|
|
52
|
+
allowAnnotations: allowAnnotations,
|
|
53
|
+
allowColumnSorting: allowColumnSorting,
|
|
54
|
+
allowCopyToClipboard: allowCopyToClipboard,
|
|
55
|
+
allowCustomPanels: allowCustomPanels,
|
|
56
|
+
allowHeadingAnchorLinks: allowHeadingAnchorLinks,
|
|
57
|
+
allowPlaceholderText: allowPlaceholderText,
|
|
58
|
+
allowRendererContainerStyles: allowRendererContainerStyles,
|
|
59
|
+
allowSelectAllTrap: allowSelectAllTrap,
|
|
60
|
+
allowUgcScrubber: allowUgcScrubber,
|
|
61
|
+
allowWrapCodeBlock: allowWrapCodeBlock,
|
|
62
|
+
emojiResourceConfig: emojiResourceConfig,
|
|
63
|
+
media: media,
|
|
64
|
+
smartLinks: smartLinks,
|
|
65
|
+
stickyHeaders: stickyHeaders
|
|
66
|
+
}))));
|
|
67
|
+
});
|
|
@@ -7,14 +7,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.SyncedBlockNodeComponentRenderer = void 0;
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
var _editorSyncedBlockProvider = require("@atlaskit/editor-synced-block-provider");
|
|
10
|
-
var
|
|
11
|
-
var _actions = require("@atlaskit/renderer/actions");
|
|
10
|
+
var _AKRendererWrapper = require("./AKRendererWrapper");
|
|
12
11
|
var _SyncedBlockErrorComponent = require("./SyncedBlockErrorComponent");
|
|
13
12
|
var _SyncedBlockLoadingState = require("./SyncedBlockLoadingState");
|
|
14
|
-
var SyncedBlockNodeComponentRenderer = exports.SyncedBlockNodeComponentRenderer = function SyncedBlockNodeComponentRenderer(
|
|
15
|
-
var
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
var SyncedBlockNodeComponentRenderer = exports.SyncedBlockNodeComponentRenderer = function SyncedBlockNodeComponentRenderer(_ref) {
|
|
14
|
+
var nodeProps = _ref.nodeProps,
|
|
15
|
+
syncBlockStoreManager = _ref.syncBlockStoreManager,
|
|
16
|
+
rendererOptions = _ref.rendererOptions;
|
|
17
|
+
var resourceId = nodeProps.resourceId,
|
|
18
|
+
localId = nodeProps.localId,
|
|
19
|
+
providers = nodeProps.providers;
|
|
18
20
|
var _useFetchSyncBlockDat = (0, _editorSyncedBlockProvider.useFetchSyncBlockData)(syncBlockStoreManager, resourceId, localId),
|
|
19
21
|
syncBlockInstance = _useFetchSyncBlockDat.syncBlockInstance,
|
|
20
22
|
isLoading = _useFetchSyncBlockDat.isLoading;
|
|
@@ -25,7 +27,7 @@ var SyncedBlockNodeComponentRenderer = exports.SyncedBlockNodeComponentRenderer
|
|
|
25
27
|
var _syncBlockInstance$er;
|
|
26
28
|
return /*#__PURE__*/_react.default.createElement(_SyncedBlockErrorComponent.SyncedBlockErrorComponent, {
|
|
27
29
|
error: (_syncBlockInstance$er = syncBlockInstance === null || syncBlockInstance === void 0 ? void 0 : syncBlockInstance.error) !== null && _syncBlockInstance$er !== void 0 ? _syncBlockInstance$er : _editorSyncedBlockProvider.SyncBlockError.Errored,
|
|
28
|
-
resourceId:
|
|
30
|
+
resourceId: resourceId
|
|
29
31
|
});
|
|
30
32
|
}
|
|
31
33
|
var syncBlockDoc = {
|
|
@@ -33,16 +35,9 @@ var SyncedBlockNodeComponentRenderer = exports.SyncedBlockNodeComponentRenderer
|
|
|
33
35
|
version: 1,
|
|
34
36
|
type: 'doc'
|
|
35
37
|
};
|
|
36
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}, /*#__PURE__*/_react.default.createElement(_renderer.ReactRenderer, {
|
|
42
|
-
appearance: "full-width",
|
|
43
|
-
adfStage: "stage0",
|
|
44
|
-
document: syncBlockDoc,
|
|
45
|
-
disableHeadingIDs: true,
|
|
46
|
-
dataProviders: props.providers
|
|
47
|
-
})));
|
|
38
|
+
return /*#__PURE__*/_react.default.createElement(_AKRendererWrapper.AKRendererWrapper, {
|
|
39
|
+
doc: syncBlockDoc,
|
|
40
|
+
dataProviders: providers,
|
|
41
|
+
options: rendererOptions
|
|
42
|
+
});
|
|
48
43
|
};
|
|
@@ -8,8 +8,7 @@ exports.convertSyncBlockRendererDataProvidersToProviderFactory = exports.SyncedB
|
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
var _providerFactory = require("@atlaskit/editor-common/provider-factory");
|
|
10
10
|
var _editorSyncedBlockProvider = require("@atlaskit/editor-synced-block-provider");
|
|
11
|
-
var
|
|
12
|
-
var _actions = require("@atlaskit/renderer/actions");
|
|
11
|
+
var _AKRendererWrapper = require("./AKRendererWrapper");
|
|
13
12
|
var _SyncedBlockErrorComponent = require("./SyncedBlockErrorComponent");
|
|
14
13
|
var _SyncedBlockLoadingState = require("./SyncedBlockLoadingState");
|
|
15
14
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
@@ -23,33 +22,13 @@ var convertSyncBlockRendererDataProvidersToProviderFactory = exports.convertSync
|
|
|
23
22
|
taskDecisionProvider: dataProviders === null || dataProviders === void 0 ? void 0 : dataProviders.taskDecisionProvider
|
|
24
23
|
});
|
|
25
24
|
};
|
|
26
|
-
var
|
|
27
|
-
var
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
var _fetchedData$content;
|
|
31
|
-
return {
|
|
32
|
-
content: (_fetchedData$content = fetchedData.content) !== null && _fetchedData$content !== void 0 ? _fetchedData$content : [],
|
|
33
|
-
version: 1,
|
|
34
|
-
type: 'doc'
|
|
35
|
-
};
|
|
36
|
-
}, [fetchedData]);
|
|
37
|
-
return /*#__PURE__*/_react.default.createElement(_actions.RendererActionsContext, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
38
|
-
"data-testid": "sync-block-renderer-wrapper"
|
|
39
|
-
}, /*#__PURE__*/_react.default.createElement(_renderer.ReactRenderer, {
|
|
40
|
-
appearance: "full-width",
|
|
41
|
-
adfStage: "stage0",
|
|
42
|
-
document: syncBlockDoc,
|
|
43
|
-
disableHeadingIDs: true,
|
|
44
|
-
dataProviders: providerFactory
|
|
45
|
-
})));
|
|
46
|
-
};
|
|
47
|
-
var SyncedBlockRendererComponent = function SyncedBlockRendererComponent(_ref2) {
|
|
48
|
-
var useFetchSyncBlockData = _ref2.useFetchSyncBlockData,
|
|
49
|
-
syncBlockRendererDataProviders = _ref2.syncBlockRendererDataProviders;
|
|
25
|
+
var SyncedBlockRendererComponent = function SyncedBlockRendererComponent(_ref) {
|
|
26
|
+
var useFetchSyncBlockData = _ref.useFetchSyncBlockData,
|
|
27
|
+
syncBlockRendererDataProviders = _ref.syncBlockRendererDataProviders,
|
|
28
|
+
syncBlockRendererOptions = _ref.syncBlockRendererOptions;
|
|
50
29
|
var _useFetchSyncBlockDat = useFetchSyncBlockData(),
|
|
51
30
|
syncBlockInstance = _useFetchSyncBlockDat.syncBlockInstance;
|
|
52
|
-
var
|
|
31
|
+
var dataProviders = (0, _react.useMemo)(function () {
|
|
53
32
|
return convertSyncBlockRendererDataProvidersToProviderFactory(syncBlockRendererDataProviders);
|
|
54
33
|
}, [syncBlockRendererDataProviders]);
|
|
55
34
|
if (!syncBlockInstance) {
|
|
@@ -62,9 +41,15 @@ var SyncedBlockRendererComponent = function SyncedBlockRendererComponent(_ref2)
|
|
|
62
41
|
resourceId: syncBlockInstance.resourceId
|
|
63
42
|
});
|
|
64
43
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
44
|
+
var syncBlockDoc = {
|
|
45
|
+
content: syncBlockInstance.data.content,
|
|
46
|
+
version: 1,
|
|
47
|
+
type: 'doc'
|
|
48
|
+
};
|
|
49
|
+
return /*#__PURE__*/_react.default.createElement(_AKRendererWrapper.AKRendererWrapper, {
|
|
50
|
+
doc: syncBlockDoc,
|
|
51
|
+
dataProviders: dataProviders,
|
|
52
|
+
options: syncBlockRendererOptions
|
|
68
53
|
});
|
|
69
54
|
};
|
|
70
55
|
var SyncedBlockRenderer = exports.SyncedBlockRenderer = /*#__PURE__*/(0, _react.memo)(SyncedBlockRendererComponent);
|
|
@@ -1,26 +1,27 @@
|
|
|
1
|
-
import { SyncBlockStoreManager } from '@atlaskit/editor-synced-block-provider';
|
|
1
|
+
import { convertSyncBlockJSONNodeToSyncBlockNode, SyncBlockStoreManager } from '@atlaskit/editor-synced-block-provider';
|
|
2
2
|
import { SyncedBlockNodeComponentRenderer } from './ui/SyncedBlockNodeComponentRenderer';
|
|
3
|
-
const
|
|
4
|
-
return
|
|
3
|
+
const getSyncBlockNodesFromContent = content => {
|
|
4
|
+
return content.map(node => convertSyncBlockJSONNodeToSyncBlockNode(node)).filter(node => node !== undefined);
|
|
5
5
|
};
|
|
6
6
|
|
|
7
|
-
// For rendering synced block nodes in Renderer
|
|
8
|
-
export const getSyncedBlockNodeComponent = (
|
|
7
|
+
// For rendering reference synced block nodes in Renderer
|
|
8
|
+
export const getSyncedBlockNodeComponent = ({
|
|
9
|
+
doc,
|
|
10
|
+
syncBlockProvider,
|
|
11
|
+
syncBlockRendererOptions
|
|
12
|
+
}) => {
|
|
9
13
|
const {
|
|
10
14
|
content
|
|
11
15
|
} = doc;
|
|
12
16
|
const isEmpty = !content || !Array.isArray(content) || content.length === 0;
|
|
13
|
-
const syncBlockNodes = isEmpty ? [] : content
|
|
14
|
-
const syncBlockStoreManager =
|
|
15
|
-
if (!syncBlockStoreManager) {
|
|
16
|
-
// TODO: EDITOR-2533 - returns a function that always renders error state
|
|
17
|
-
throw new Error('Data provider is not a SyncBlockDataProvider');
|
|
18
|
-
}
|
|
17
|
+
const syncBlockNodes = isEmpty ? [] : getSyncBlockNodesFromContent(content);
|
|
18
|
+
const syncBlockStoreManager = new SyncBlockStoreManager(syncBlockProvider);
|
|
19
19
|
|
|
20
20
|
// Pre-fetch sync block data
|
|
21
21
|
syncBlockStoreManager.getReferenceSyncBlockStoreManager().fetchSyncBlocksData(syncBlockNodes);
|
|
22
22
|
return props => SyncedBlockNodeComponentRenderer({
|
|
23
|
-
|
|
24
|
-
syncBlockStoreManager
|
|
23
|
+
nodeProps: props,
|
|
24
|
+
syncBlockStoreManager,
|
|
25
|
+
rendererOptions: syncBlockRendererOptions
|
|
25
26
|
});
|
|
26
27
|
};
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { SyncedBlockRenderer } from './ui/SyncedBlockRenderer';
|
|
3
|
+
// For rendering reference synced block nodes in Editor
|
|
3
4
|
export const getSyncedBlockRenderer = ({
|
|
4
5
|
syncBlockRendererDataProviders,
|
|
6
|
+
syncBlockRendererOptions
|
|
7
|
+
}) => ({
|
|
5
8
|
useFetchSyncBlockData
|
|
6
9
|
}) => {
|
|
7
10
|
return /*#__PURE__*/React.createElement(SyncedBlockRenderer, {
|
|
11
|
+
syncBlockRendererOptions: syncBlockRendererOptions,
|
|
8
12
|
syncBlockRendererDataProviders: syncBlockRendererDataProviders,
|
|
9
13
|
useFetchSyncBlockData: useFetchSyncBlockData
|
|
10
14
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import React, { memo, useMemo } from 'react';
|
|
2
|
+
import { ReactRenderer, ValidationContextProvider } from '@atlaskit/renderer';
|
|
3
|
+
import { RendererActionsContext } from '@atlaskit/renderer/actions';
|
|
4
|
+
const ValidationContextWrapper = ({
|
|
5
|
+
children
|
|
6
|
+
}) => {
|
|
7
|
+
const validationContextValue = useMemo(() => ({
|
|
8
|
+
allowNestedTables: true
|
|
9
|
+
}), []);
|
|
10
|
+
return /*#__PURE__*/React.createElement(ValidationContextProvider, {
|
|
11
|
+
value: validationContextValue
|
|
12
|
+
}, children);
|
|
13
|
+
};
|
|
14
|
+
export const AKRendererWrapper = /*#__PURE__*/memo(({
|
|
15
|
+
doc,
|
|
16
|
+
dataProviders,
|
|
17
|
+
options
|
|
18
|
+
}) => {
|
|
19
|
+
const {
|
|
20
|
+
allowAltTextOnImages,
|
|
21
|
+
allowAnnotations,
|
|
22
|
+
allowColumnSorting,
|
|
23
|
+
allowCopyToClipboard,
|
|
24
|
+
allowCustomPanels,
|
|
25
|
+
allowHeadingAnchorLinks,
|
|
26
|
+
allowPlaceholderText,
|
|
27
|
+
allowRendererContainerStyles,
|
|
28
|
+
allowSelectAllTrap,
|
|
29
|
+
allowUgcScrubber,
|
|
30
|
+
allowWrapCodeBlock,
|
|
31
|
+
emojiResourceConfig,
|
|
32
|
+
media,
|
|
33
|
+
smartLinks,
|
|
34
|
+
stickyHeaders
|
|
35
|
+
} = options !== null && options !== void 0 ? options : {};
|
|
36
|
+
return /*#__PURE__*/React.createElement(RendererActionsContext, null, /*#__PURE__*/React.createElement(ValidationContextWrapper, null, /*#__PURE__*/React.createElement("div", {
|
|
37
|
+
"data-testid": "sync-block-renderer-wrapper"
|
|
38
|
+
}, /*#__PURE__*/React.createElement(ReactRenderer, {
|
|
39
|
+
appearance: "full-width",
|
|
40
|
+
adfStage: "stage0",
|
|
41
|
+
document: doc,
|
|
42
|
+
disableHeadingIDs: true,
|
|
43
|
+
dataProviders: dataProviders,
|
|
44
|
+
allowAltTextOnImages: allowAltTextOnImages,
|
|
45
|
+
allowAnnotations: allowAnnotations,
|
|
46
|
+
allowColumnSorting: allowColumnSorting,
|
|
47
|
+
allowCopyToClipboard: allowCopyToClipboard,
|
|
48
|
+
allowCustomPanels: allowCustomPanels,
|
|
49
|
+
allowHeadingAnchorLinks: allowHeadingAnchorLinks,
|
|
50
|
+
allowPlaceholderText: allowPlaceholderText,
|
|
51
|
+
allowRendererContainerStyles: allowRendererContainerStyles,
|
|
52
|
+
allowSelectAllTrap: allowSelectAllTrap,
|
|
53
|
+
allowUgcScrubber: allowUgcScrubber,
|
|
54
|
+
allowWrapCodeBlock: allowWrapCodeBlock,
|
|
55
|
+
emojiResourceConfig: emojiResourceConfig,
|
|
56
|
+
media: media,
|
|
57
|
+
smartLinks: smartLinks,
|
|
58
|
+
stickyHeaders: stickyHeaders
|
|
59
|
+
}))));
|
|
60
|
+
});
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { SyncBlockError, useFetchSyncBlockData } from '@atlaskit/editor-synced-block-provider';
|
|
3
|
-
import {
|
|
4
|
-
import { RendererActionsContext } from '@atlaskit/renderer/actions';
|
|
3
|
+
import { AKRendererWrapper } from './AKRendererWrapper';
|
|
5
4
|
import { SyncedBlockErrorComponent } from './SyncedBlockErrorComponent';
|
|
6
5
|
import { SyncedBlockLoadingState } from './SyncedBlockLoadingState';
|
|
7
|
-
export const SyncedBlockNodeComponentRenderer =
|
|
6
|
+
export const SyncedBlockNodeComponentRenderer = ({
|
|
7
|
+
nodeProps,
|
|
8
|
+
syncBlockStoreManager,
|
|
9
|
+
rendererOptions
|
|
10
|
+
}) => {
|
|
8
11
|
const {
|
|
9
12
|
resourceId,
|
|
10
13
|
localId,
|
|
11
|
-
|
|
12
|
-
} =
|
|
14
|
+
providers
|
|
15
|
+
} = nodeProps;
|
|
13
16
|
const {
|
|
14
17
|
syncBlockInstance,
|
|
15
18
|
isLoading
|
|
@@ -21,7 +24,7 @@ export const SyncedBlockNodeComponentRenderer = props => {
|
|
|
21
24
|
var _syncBlockInstance$er;
|
|
22
25
|
return /*#__PURE__*/React.createElement(SyncedBlockErrorComponent, {
|
|
23
26
|
error: (_syncBlockInstance$er = syncBlockInstance === null || syncBlockInstance === void 0 ? void 0 : syncBlockInstance.error) !== null && _syncBlockInstance$er !== void 0 ? _syncBlockInstance$er : SyncBlockError.Errored,
|
|
24
|
-
resourceId:
|
|
27
|
+
resourceId: resourceId
|
|
25
28
|
});
|
|
26
29
|
}
|
|
27
30
|
const syncBlockDoc = {
|
|
@@ -29,16 +32,9 @@ export const SyncedBlockNodeComponentRenderer = props => {
|
|
|
29
32
|
version: 1,
|
|
30
33
|
type: 'doc'
|
|
31
34
|
};
|
|
32
|
-
return /*#__PURE__*/React.createElement(
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}, /*#__PURE__*/React.createElement(ReactRenderer, {
|
|
38
|
-
appearance: "full-width",
|
|
39
|
-
adfStage: "stage0",
|
|
40
|
-
document: syncBlockDoc,
|
|
41
|
-
disableHeadingIDs: true,
|
|
42
|
-
dataProviders: props.providers
|
|
43
|
-
})));
|
|
35
|
+
return /*#__PURE__*/React.createElement(AKRendererWrapper, {
|
|
36
|
+
doc: syncBlockDoc,
|
|
37
|
+
dataProviders: providers,
|
|
38
|
+
options: rendererOptions
|
|
39
|
+
});
|
|
44
40
|
};
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import React, { memo, useMemo } from 'react';
|
|
2
2
|
import { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
|
|
3
3
|
import { SyncBlockError } from '@atlaskit/editor-synced-block-provider';
|
|
4
|
-
import {
|
|
5
|
-
import { RendererActionsContext } from '@atlaskit/renderer/actions';
|
|
4
|
+
import { AKRendererWrapper } from './AKRendererWrapper';
|
|
6
5
|
import { SyncedBlockErrorComponent } from './SyncedBlockErrorComponent';
|
|
7
6
|
import { SyncedBlockLoadingState } from './SyncedBlockLoadingState';
|
|
8
7
|
export const convertSyncBlockRendererDataProvidersToProviderFactory = dataProviders => {
|
|
@@ -15,36 +14,15 @@ export const convertSyncBlockRendererDataProvidersToProviderFactory = dataProvid
|
|
|
15
14
|
taskDecisionProvider: dataProviders === null || dataProviders === void 0 ? void 0 : dataProviders.taskDecisionProvider
|
|
16
15
|
});
|
|
17
16
|
};
|
|
18
|
-
const SyncedBlockRendererWrapper = ({
|
|
19
|
-
fetchedData,
|
|
20
|
-
providerFactory
|
|
21
|
-
}) => {
|
|
22
|
-
const syncBlockDoc = useMemo(() => {
|
|
23
|
-
var _fetchedData$content;
|
|
24
|
-
return {
|
|
25
|
-
content: (_fetchedData$content = fetchedData.content) !== null && _fetchedData$content !== void 0 ? _fetchedData$content : [],
|
|
26
|
-
version: 1,
|
|
27
|
-
type: 'doc'
|
|
28
|
-
};
|
|
29
|
-
}, [fetchedData]);
|
|
30
|
-
return /*#__PURE__*/React.createElement(RendererActionsContext, null, /*#__PURE__*/React.createElement("div", {
|
|
31
|
-
"data-testid": "sync-block-renderer-wrapper"
|
|
32
|
-
}, /*#__PURE__*/React.createElement(ReactRenderer, {
|
|
33
|
-
appearance: "full-width",
|
|
34
|
-
adfStage: "stage0",
|
|
35
|
-
document: syncBlockDoc,
|
|
36
|
-
disableHeadingIDs: true,
|
|
37
|
-
dataProviders: providerFactory
|
|
38
|
-
})));
|
|
39
|
-
};
|
|
40
17
|
const SyncedBlockRendererComponent = ({
|
|
41
18
|
useFetchSyncBlockData,
|
|
42
|
-
syncBlockRendererDataProviders
|
|
19
|
+
syncBlockRendererDataProviders,
|
|
20
|
+
syncBlockRendererOptions
|
|
43
21
|
}) => {
|
|
44
22
|
const {
|
|
45
23
|
syncBlockInstance
|
|
46
24
|
} = useFetchSyncBlockData();
|
|
47
|
-
const
|
|
25
|
+
const dataProviders = useMemo(() => {
|
|
48
26
|
return convertSyncBlockRendererDataProvidersToProviderFactory(syncBlockRendererDataProviders);
|
|
49
27
|
}, [syncBlockRendererDataProviders]);
|
|
50
28
|
if (!syncBlockInstance) {
|
|
@@ -57,9 +35,15 @@ const SyncedBlockRendererComponent = ({
|
|
|
57
35
|
resourceId: syncBlockInstance.resourceId
|
|
58
36
|
});
|
|
59
37
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
38
|
+
const syncBlockDoc = {
|
|
39
|
+
content: syncBlockInstance.data.content,
|
|
40
|
+
version: 1,
|
|
41
|
+
type: 'doc'
|
|
42
|
+
};
|
|
43
|
+
return /*#__PURE__*/React.createElement(AKRendererWrapper, {
|
|
44
|
+
doc: syncBlockDoc,
|
|
45
|
+
dataProviders: dataProviders,
|
|
46
|
+
options: syncBlockRendererOptions
|
|
63
47
|
});
|
|
64
48
|
};
|
|
65
49
|
export const SyncedBlockRenderer = /*#__PURE__*/memo(SyncedBlockRendererComponent);
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
import
|
|
2
|
-
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; }
|
|
3
|
-
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) { _defineProperty(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; }
|
|
4
|
-
import { SyncBlockStoreManager } from '@atlaskit/editor-synced-block-provider';
|
|
1
|
+
import { convertSyncBlockJSONNodeToSyncBlockNode, SyncBlockStoreManager } from '@atlaskit/editor-synced-block-provider';
|
|
5
2
|
import { SyncedBlockNodeComponentRenderer } from './ui/SyncedBlockNodeComponentRenderer';
|
|
6
|
-
var
|
|
7
|
-
return
|
|
3
|
+
var getSyncBlockNodesFromContent = function getSyncBlockNodesFromContent(content) {
|
|
4
|
+
return content.map(function (node) {
|
|
5
|
+
return convertSyncBlockJSONNodeToSyncBlockNode(node);
|
|
6
|
+
}).filter(function (node) {
|
|
7
|
+
return node !== undefined;
|
|
8
|
+
});
|
|
8
9
|
};
|
|
9
10
|
|
|
10
|
-
// For rendering synced block nodes in Renderer
|
|
11
|
-
export var getSyncedBlockNodeComponent = function getSyncedBlockNodeComponent(
|
|
11
|
+
// For rendering reference synced block nodes in Renderer
|
|
12
|
+
export var getSyncedBlockNodeComponent = function getSyncedBlockNodeComponent(_ref) {
|
|
13
|
+
var doc = _ref.doc,
|
|
14
|
+
syncBlockProvider = _ref.syncBlockProvider,
|
|
15
|
+
syncBlockRendererOptions = _ref.syncBlockRendererOptions;
|
|
12
16
|
var content = doc.content;
|
|
13
17
|
var isEmpty = !content || !Array.isArray(content) || content.length === 0;
|
|
14
|
-
var syncBlockNodes = isEmpty ? [] : content
|
|
15
|
-
|
|
16
|
-
});
|
|
17
|
-
var syncBlockStoreManager = isSyncBlockDataProvider(dataProvider) ? new SyncBlockStoreManager(dataProvider) : undefined;
|
|
18
|
-
if (!syncBlockStoreManager) {
|
|
19
|
-
// TODO: EDITOR-2533 - returns a function that always renders error state
|
|
20
|
-
throw new Error('Data provider is not a SyncBlockDataProvider');
|
|
21
|
-
}
|
|
18
|
+
var syncBlockNodes = isEmpty ? [] : getSyncBlockNodesFromContent(content);
|
|
19
|
+
var syncBlockStoreManager = new SyncBlockStoreManager(syncBlockProvider);
|
|
22
20
|
|
|
23
21
|
// Pre-fetch sync block data
|
|
24
22
|
syncBlockStoreManager.getReferenceSyncBlockStoreManager().fetchSyncBlocksData(syncBlockNodes);
|
|
25
23
|
return function (props) {
|
|
26
|
-
return SyncedBlockNodeComponentRenderer(
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
return SyncedBlockNodeComponentRenderer({
|
|
25
|
+
nodeProps: props,
|
|
26
|
+
syncBlockStoreManager: syncBlockStoreManager,
|
|
27
|
+
rendererOptions: syncBlockRendererOptions
|
|
28
|
+
});
|
|
29
29
|
};
|
|
30
30
|
};
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { SyncedBlockRenderer } from './ui/SyncedBlockRenderer';
|
|
3
|
+
// For rendering reference synced block nodes in Editor
|
|
3
4
|
export var getSyncedBlockRenderer = function getSyncedBlockRenderer(_ref) {
|
|
4
5
|
var syncBlockRendererDataProviders = _ref.syncBlockRendererDataProviders,
|
|
5
|
-
|
|
6
|
-
return
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
syncBlockRendererOptions = _ref.syncBlockRendererOptions;
|
|
7
|
+
return function (_ref2) {
|
|
8
|
+
var useFetchSyncBlockData = _ref2.useFetchSyncBlockData;
|
|
9
|
+
return /*#__PURE__*/React.createElement(SyncedBlockRenderer, {
|
|
10
|
+
syncBlockRendererOptions: syncBlockRendererOptions,
|
|
11
|
+
syncBlockRendererDataProviders: syncBlockRendererDataProviders,
|
|
12
|
+
useFetchSyncBlockData: useFetchSyncBlockData
|
|
13
|
+
});
|
|
14
|
+
};
|
|
10
15
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import React, { memo, useMemo } from 'react';
|
|
2
|
+
import { ReactRenderer, ValidationContextProvider } from '@atlaskit/renderer';
|
|
3
|
+
import { RendererActionsContext } from '@atlaskit/renderer/actions';
|
|
4
|
+
var ValidationContextWrapper = function ValidationContextWrapper(_ref) {
|
|
5
|
+
var children = _ref.children;
|
|
6
|
+
var validationContextValue = useMemo(function () {
|
|
7
|
+
return {
|
|
8
|
+
allowNestedTables: true
|
|
9
|
+
};
|
|
10
|
+
}, []);
|
|
11
|
+
return /*#__PURE__*/React.createElement(ValidationContextProvider, {
|
|
12
|
+
value: validationContextValue
|
|
13
|
+
}, children);
|
|
14
|
+
};
|
|
15
|
+
export var AKRendererWrapper = /*#__PURE__*/memo(function (_ref2) {
|
|
16
|
+
var doc = _ref2.doc,
|
|
17
|
+
dataProviders = _ref2.dataProviders,
|
|
18
|
+
options = _ref2.options;
|
|
19
|
+
var _ref3 = options !== null && options !== void 0 ? options : {},
|
|
20
|
+
allowAltTextOnImages = _ref3.allowAltTextOnImages,
|
|
21
|
+
allowAnnotations = _ref3.allowAnnotations,
|
|
22
|
+
allowColumnSorting = _ref3.allowColumnSorting,
|
|
23
|
+
allowCopyToClipboard = _ref3.allowCopyToClipboard,
|
|
24
|
+
allowCustomPanels = _ref3.allowCustomPanels,
|
|
25
|
+
allowHeadingAnchorLinks = _ref3.allowHeadingAnchorLinks,
|
|
26
|
+
allowPlaceholderText = _ref3.allowPlaceholderText,
|
|
27
|
+
allowRendererContainerStyles = _ref3.allowRendererContainerStyles,
|
|
28
|
+
allowSelectAllTrap = _ref3.allowSelectAllTrap,
|
|
29
|
+
allowUgcScrubber = _ref3.allowUgcScrubber,
|
|
30
|
+
allowWrapCodeBlock = _ref3.allowWrapCodeBlock,
|
|
31
|
+
emojiResourceConfig = _ref3.emojiResourceConfig,
|
|
32
|
+
media = _ref3.media,
|
|
33
|
+
smartLinks = _ref3.smartLinks,
|
|
34
|
+
stickyHeaders = _ref3.stickyHeaders;
|
|
35
|
+
return /*#__PURE__*/React.createElement(RendererActionsContext, null, /*#__PURE__*/React.createElement(ValidationContextWrapper, null, /*#__PURE__*/React.createElement("div", {
|
|
36
|
+
"data-testid": "sync-block-renderer-wrapper"
|
|
37
|
+
}, /*#__PURE__*/React.createElement(ReactRenderer, {
|
|
38
|
+
appearance: "full-width",
|
|
39
|
+
adfStage: "stage0",
|
|
40
|
+
document: doc,
|
|
41
|
+
disableHeadingIDs: true,
|
|
42
|
+
dataProviders: dataProviders,
|
|
43
|
+
allowAltTextOnImages: allowAltTextOnImages,
|
|
44
|
+
allowAnnotations: allowAnnotations,
|
|
45
|
+
allowColumnSorting: allowColumnSorting,
|
|
46
|
+
allowCopyToClipboard: allowCopyToClipboard,
|
|
47
|
+
allowCustomPanels: allowCustomPanels,
|
|
48
|
+
allowHeadingAnchorLinks: allowHeadingAnchorLinks,
|
|
49
|
+
allowPlaceholderText: allowPlaceholderText,
|
|
50
|
+
allowRendererContainerStyles: allowRendererContainerStyles,
|
|
51
|
+
allowSelectAllTrap: allowSelectAllTrap,
|
|
52
|
+
allowUgcScrubber: allowUgcScrubber,
|
|
53
|
+
allowWrapCodeBlock: allowWrapCodeBlock,
|
|
54
|
+
emojiResourceConfig: emojiResourceConfig,
|
|
55
|
+
media: media,
|
|
56
|
+
smartLinks: smartLinks,
|
|
57
|
+
stickyHeaders: stickyHeaders
|
|
58
|
+
}))));
|
|
59
|
+
});
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { SyncBlockError, useFetchSyncBlockData } from '@atlaskit/editor-synced-block-provider';
|
|
3
|
-
import {
|
|
4
|
-
import { RendererActionsContext } from '@atlaskit/renderer/actions';
|
|
3
|
+
import { AKRendererWrapper } from './AKRendererWrapper';
|
|
5
4
|
import { SyncedBlockErrorComponent } from './SyncedBlockErrorComponent';
|
|
6
5
|
import { SyncedBlockLoadingState } from './SyncedBlockLoadingState';
|
|
7
|
-
export var SyncedBlockNodeComponentRenderer = function SyncedBlockNodeComponentRenderer(
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
export var SyncedBlockNodeComponentRenderer = function SyncedBlockNodeComponentRenderer(_ref) {
|
|
7
|
+
var nodeProps = _ref.nodeProps,
|
|
8
|
+
syncBlockStoreManager = _ref.syncBlockStoreManager,
|
|
9
|
+
rendererOptions = _ref.rendererOptions;
|
|
10
|
+
var resourceId = nodeProps.resourceId,
|
|
11
|
+
localId = nodeProps.localId,
|
|
12
|
+
providers = nodeProps.providers;
|
|
11
13
|
var _useFetchSyncBlockDat = useFetchSyncBlockData(syncBlockStoreManager, resourceId, localId),
|
|
12
14
|
syncBlockInstance = _useFetchSyncBlockDat.syncBlockInstance,
|
|
13
15
|
isLoading = _useFetchSyncBlockDat.isLoading;
|
|
@@ -18,7 +20,7 @@ export var SyncedBlockNodeComponentRenderer = function SyncedBlockNodeComponentR
|
|
|
18
20
|
var _syncBlockInstance$er;
|
|
19
21
|
return /*#__PURE__*/React.createElement(SyncedBlockErrorComponent, {
|
|
20
22
|
error: (_syncBlockInstance$er = syncBlockInstance === null || syncBlockInstance === void 0 ? void 0 : syncBlockInstance.error) !== null && _syncBlockInstance$er !== void 0 ? _syncBlockInstance$er : SyncBlockError.Errored,
|
|
21
|
-
resourceId:
|
|
23
|
+
resourceId: resourceId
|
|
22
24
|
});
|
|
23
25
|
}
|
|
24
26
|
var syncBlockDoc = {
|
|
@@ -26,16 +28,9 @@ export var SyncedBlockNodeComponentRenderer = function SyncedBlockNodeComponentR
|
|
|
26
28
|
version: 1,
|
|
27
29
|
type: 'doc'
|
|
28
30
|
};
|
|
29
|
-
return /*#__PURE__*/React.createElement(
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}, /*#__PURE__*/React.createElement(ReactRenderer, {
|
|
35
|
-
appearance: "full-width",
|
|
36
|
-
adfStage: "stage0",
|
|
37
|
-
document: syncBlockDoc,
|
|
38
|
-
disableHeadingIDs: true,
|
|
39
|
-
dataProviders: props.providers
|
|
40
|
-
})));
|
|
31
|
+
return /*#__PURE__*/React.createElement(AKRendererWrapper, {
|
|
32
|
+
doc: syncBlockDoc,
|
|
33
|
+
dataProviders: providers,
|
|
34
|
+
options: rendererOptions
|
|
35
|
+
});
|
|
41
36
|
};
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import React, { memo, useMemo } from 'react';
|
|
2
2
|
import { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
|
|
3
3
|
import { SyncBlockError } from '@atlaskit/editor-synced-block-provider';
|
|
4
|
-
import {
|
|
5
|
-
import { RendererActionsContext } from '@atlaskit/renderer/actions';
|
|
4
|
+
import { AKRendererWrapper } from './AKRendererWrapper';
|
|
6
5
|
import { SyncedBlockErrorComponent } from './SyncedBlockErrorComponent';
|
|
7
6
|
import { SyncedBlockLoadingState } from './SyncedBlockLoadingState';
|
|
8
7
|
export var convertSyncBlockRendererDataProvidersToProviderFactory = function convertSyncBlockRendererDataProvidersToProviderFactory(dataProviders) {
|
|
@@ -15,33 +14,13 @@ export var convertSyncBlockRendererDataProvidersToProviderFactory = function con
|
|
|
15
14
|
taskDecisionProvider: dataProviders === null || dataProviders === void 0 ? void 0 : dataProviders.taskDecisionProvider
|
|
16
15
|
});
|
|
17
16
|
};
|
|
18
|
-
var
|
|
19
|
-
var
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
var _fetchedData$content;
|
|
23
|
-
return {
|
|
24
|
-
content: (_fetchedData$content = fetchedData.content) !== null && _fetchedData$content !== void 0 ? _fetchedData$content : [],
|
|
25
|
-
version: 1,
|
|
26
|
-
type: 'doc'
|
|
27
|
-
};
|
|
28
|
-
}, [fetchedData]);
|
|
29
|
-
return /*#__PURE__*/React.createElement(RendererActionsContext, null, /*#__PURE__*/React.createElement("div", {
|
|
30
|
-
"data-testid": "sync-block-renderer-wrapper"
|
|
31
|
-
}, /*#__PURE__*/React.createElement(ReactRenderer, {
|
|
32
|
-
appearance: "full-width",
|
|
33
|
-
adfStage: "stage0",
|
|
34
|
-
document: syncBlockDoc,
|
|
35
|
-
disableHeadingIDs: true,
|
|
36
|
-
dataProviders: providerFactory
|
|
37
|
-
})));
|
|
38
|
-
};
|
|
39
|
-
var SyncedBlockRendererComponent = function SyncedBlockRendererComponent(_ref2) {
|
|
40
|
-
var useFetchSyncBlockData = _ref2.useFetchSyncBlockData,
|
|
41
|
-
syncBlockRendererDataProviders = _ref2.syncBlockRendererDataProviders;
|
|
17
|
+
var SyncedBlockRendererComponent = function SyncedBlockRendererComponent(_ref) {
|
|
18
|
+
var useFetchSyncBlockData = _ref.useFetchSyncBlockData,
|
|
19
|
+
syncBlockRendererDataProviders = _ref.syncBlockRendererDataProviders,
|
|
20
|
+
syncBlockRendererOptions = _ref.syncBlockRendererOptions;
|
|
42
21
|
var _useFetchSyncBlockDat = useFetchSyncBlockData(),
|
|
43
22
|
syncBlockInstance = _useFetchSyncBlockDat.syncBlockInstance;
|
|
44
|
-
var
|
|
23
|
+
var dataProviders = useMemo(function () {
|
|
45
24
|
return convertSyncBlockRendererDataProvidersToProviderFactory(syncBlockRendererDataProviders);
|
|
46
25
|
}, [syncBlockRendererDataProviders]);
|
|
47
26
|
if (!syncBlockInstance) {
|
|
@@ -54,9 +33,15 @@ var SyncedBlockRendererComponent = function SyncedBlockRendererComponent(_ref2)
|
|
|
54
33
|
resourceId: syncBlockInstance.resourceId
|
|
55
34
|
});
|
|
56
35
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
36
|
+
var syncBlockDoc = {
|
|
37
|
+
content: syncBlockInstance.data.content,
|
|
38
|
+
version: 1,
|
|
39
|
+
type: 'doc'
|
|
40
|
+
};
|
|
41
|
+
return /*#__PURE__*/React.createElement(AKRendererWrapper, {
|
|
42
|
+
doc: syncBlockDoc,
|
|
43
|
+
dataProviders: dataProviders,
|
|
44
|
+
options: syncBlockRendererOptions
|
|
60
45
|
});
|
|
61
46
|
};
|
|
62
47
|
export var SyncedBlockRenderer = /*#__PURE__*/memo(SyncedBlockRendererComponent);
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import type { DocNode } from '@atlaskit/adf-schema';
|
|
2
|
-
import
|
|
3
|
-
import type {
|
|
2
|
+
import type { SyncedBlockProvider } from '@atlaskit/editor-synced-block-provider';
|
|
3
|
+
import type { SyncedBlockRendererOptions } from './types';
|
|
4
4
|
import { type SyncedBlockNodeProps } from './ui/SyncedBlockNodeComponentRenderer';
|
|
5
|
-
|
|
5
|
+
type GetSyncedBlockNodeComponentProps = {
|
|
6
|
+
doc: DocNode;
|
|
7
|
+
syncBlockProvider: SyncedBlockProvider;
|
|
8
|
+
syncBlockRendererOptions: SyncedBlockRendererOptions | undefined;
|
|
9
|
+
};
|
|
10
|
+
export declare const getSyncedBlockNodeComponent: ({ doc, syncBlockProvider, syncBlockRendererOptions, }: GetSyncedBlockNodeComponentProps) => ((props: SyncedBlockNodeProps) => React.JSX.Element);
|
|
11
|
+
export {};
|
|
@@ -1,3 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import type { SyncedBlockRendererDataProviders } from '@atlaskit/editor-common/provider-factory';
|
|
3
|
+
import type { SyncedBlockRendererProps } from '@atlaskit/editor-plugin-synced-block';
|
|
4
|
+
import type { SyncedBlockRendererOptions } from './types';
|
|
5
|
+
type GetSyncedBlockRendererProps = {
|
|
6
|
+
syncBlockRendererDataProviders: SyncedBlockRendererDataProviders;
|
|
7
|
+
syncBlockRendererOptions: SyncedBlockRendererOptions | undefined;
|
|
8
|
+
};
|
|
9
|
+
export declare const getSyncedBlockRenderer: ({ syncBlockRendererDataProviders, syncBlockRendererOptions }: GetSyncedBlockRendererProps) => ({ useFetchSyncBlockData }: SyncedBlockRendererProps) => React.JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { type RendererProps } from '@atlaskit/renderer';
|
|
2
|
+
export type SyncedBlockRendererOptions = Pick<RendererProps, 'allowAltTextOnImages' | 'allowAnnotations' | 'allowColumnSorting' | 'allowCopyToClipboard' | 'allowCustomPanels' | 'allowHeadingAnchorLinks' | 'allowPlaceholderText' | 'allowRendererContainerStyles' | 'allowSelectAllTrap' | 'allowUgcScrubber' | 'allowWrapCodeBlock' | 'emojiResourceConfig' | 'media' | 'smartLinks' | 'stickyHeaders'>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { DocNode } from '@atlaskit/adf-schema';
|
|
3
|
+
import type { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
|
|
4
|
+
import type { SyncedBlockRendererOptions } from '../types';
|
|
5
|
+
export declare const AKRendererWrapper: React.MemoExoticComponent<({ doc, dataProviders, options, }: {
|
|
6
|
+
dataProviders: ProviderFactory | undefined;
|
|
7
|
+
doc: DocNode;
|
|
8
|
+
options: SyncedBlockRendererOptions | undefined;
|
|
9
|
+
}) => React.JSX.Element>;
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { SyncBlockStoreManager } from '@atlaskit/editor-synced-block-provider';
|
|
3
3
|
import { type NodeProps } from '@atlaskit/renderer';
|
|
4
|
+
import type { SyncedBlockRendererOptions } from '../types';
|
|
4
5
|
export interface SyncedBlockProps {
|
|
5
6
|
localId?: string;
|
|
6
7
|
resourceId?: string;
|
|
7
8
|
}
|
|
8
9
|
export type SyncedBlockNodeProps = NodeProps<SyncedBlockProps>;
|
|
9
|
-
export
|
|
10
|
+
export type SyncedBlockNodeComponentRendererProps = {
|
|
11
|
+
nodeProps: SyncedBlockNodeProps;
|
|
12
|
+
rendererOptions: SyncedBlockRendererOptions | undefined;
|
|
10
13
|
syncBlockStoreManager: SyncBlockStoreManager;
|
|
11
|
-
}
|
|
14
|
+
};
|
|
15
|
+
export declare const SyncedBlockNodeComponentRenderer: ({ nodeProps, syncBlockStoreManager, rendererOptions, }: SyncedBlockNodeComponentRendererProps) => React.JSX.Element;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ProviderFactory, type SyncedBlockRendererDataProviders } from '@atlaskit/editor-common/provider-factory';
|
|
3
3
|
import { type UseFetchSyncBlockDataResult } from '@atlaskit/editor-synced-block-provider';
|
|
4
|
+
import type { SyncedBlockRendererOptions } from '../types';
|
|
4
5
|
export type SyncedBlockRendererProps = {
|
|
5
6
|
syncBlockRendererDataProviders: SyncedBlockRendererDataProviders;
|
|
7
|
+
syncBlockRendererOptions: SyncedBlockRendererOptions | undefined;
|
|
6
8
|
useFetchSyncBlockData: () => UseFetchSyncBlockDataResult;
|
|
7
9
|
};
|
|
8
10
|
export declare const convertSyncBlockRendererDataProvidersToProviderFactory: (dataProviders: SyncedBlockRendererDataProviders) => ProviderFactory;
|
|
9
|
-
export declare const SyncedBlockRenderer: React.MemoExoticComponent<({ useFetchSyncBlockData, syncBlockRendererDataProviders, }: SyncedBlockRendererProps) => React.JSX.Element>;
|
|
11
|
+
export declare const SyncedBlockRenderer: React.MemoExoticComponent<({ useFetchSyncBlockData, syncBlockRendererDataProviders, syncBlockRendererOptions, }: SyncedBlockRendererProps) => React.JSX.Element>;
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import type { DocNode } from '@atlaskit/adf-schema';
|
|
2
|
-
import
|
|
3
|
-
import type {
|
|
2
|
+
import type { SyncedBlockProvider } from '@atlaskit/editor-synced-block-provider';
|
|
3
|
+
import type { SyncedBlockRendererOptions } from './types';
|
|
4
4
|
import { type SyncedBlockNodeProps } from './ui/SyncedBlockNodeComponentRenderer';
|
|
5
|
-
|
|
5
|
+
type GetSyncedBlockNodeComponentProps = {
|
|
6
|
+
doc: DocNode;
|
|
7
|
+
syncBlockProvider: SyncedBlockProvider;
|
|
8
|
+
syncBlockRendererOptions: SyncedBlockRendererOptions | undefined;
|
|
9
|
+
};
|
|
10
|
+
export declare const getSyncedBlockNodeComponent: ({ doc, syncBlockProvider, syncBlockRendererOptions, }: GetSyncedBlockNodeComponentProps) => ((props: SyncedBlockNodeProps) => React.JSX.Element);
|
|
11
|
+
export {};
|
|
@@ -1,3 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import type { SyncedBlockRendererDataProviders } from '@atlaskit/editor-common/provider-factory';
|
|
3
|
+
import type { SyncedBlockRendererProps } from '@atlaskit/editor-plugin-synced-block';
|
|
4
|
+
import type { SyncedBlockRendererOptions } from './types';
|
|
5
|
+
type GetSyncedBlockRendererProps = {
|
|
6
|
+
syncBlockRendererDataProviders: SyncedBlockRendererDataProviders;
|
|
7
|
+
syncBlockRendererOptions: SyncedBlockRendererOptions | undefined;
|
|
8
|
+
};
|
|
9
|
+
export declare const getSyncedBlockRenderer: ({ syncBlockRendererDataProviders, syncBlockRendererOptions }: GetSyncedBlockRendererProps) => ({ useFetchSyncBlockData }: SyncedBlockRendererProps) => React.JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { type RendererProps } from '@atlaskit/renderer';
|
|
2
|
+
export type SyncedBlockRendererOptions = Pick<RendererProps, 'allowAltTextOnImages' | 'allowAnnotations' | 'allowColumnSorting' | 'allowCopyToClipboard' | 'allowCustomPanels' | 'allowHeadingAnchorLinks' | 'allowPlaceholderText' | 'allowRendererContainerStyles' | 'allowSelectAllTrap' | 'allowUgcScrubber' | 'allowWrapCodeBlock' | 'emojiResourceConfig' | 'media' | 'smartLinks' | 'stickyHeaders'>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { DocNode } from '@atlaskit/adf-schema';
|
|
3
|
+
import type { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
|
|
4
|
+
import type { SyncedBlockRendererOptions } from '../types';
|
|
5
|
+
export declare const AKRendererWrapper: React.MemoExoticComponent<({ doc, dataProviders, options, }: {
|
|
6
|
+
dataProviders: ProviderFactory | undefined;
|
|
7
|
+
doc: DocNode;
|
|
8
|
+
options: SyncedBlockRendererOptions | undefined;
|
|
9
|
+
}) => React.JSX.Element>;
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { SyncBlockStoreManager } from '@atlaskit/editor-synced-block-provider';
|
|
3
3
|
import { type NodeProps } from '@atlaskit/renderer';
|
|
4
|
+
import type { SyncedBlockRendererOptions } from '../types';
|
|
4
5
|
export interface SyncedBlockProps {
|
|
5
6
|
localId?: string;
|
|
6
7
|
resourceId?: string;
|
|
7
8
|
}
|
|
8
9
|
export type SyncedBlockNodeProps = NodeProps<SyncedBlockProps>;
|
|
9
|
-
export
|
|
10
|
+
export type SyncedBlockNodeComponentRendererProps = {
|
|
11
|
+
nodeProps: SyncedBlockNodeProps;
|
|
12
|
+
rendererOptions: SyncedBlockRendererOptions | undefined;
|
|
10
13
|
syncBlockStoreManager: SyncBlockStoreManager;
|
|
11
|
-
}
|
|
14
|
+
};
|
|
15
|
+
export declare const SyncedBlockNodeComponentRenderer: ({ nodeProps, syncBlockStoreManager, rendererOptions, }: SyncedBlockNodeComponentRendererProps) => React.JSX.Element;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ProviderFactory, type SyncedBlockRendererDataProviders } from '@atlaskit/editor-common/provider-factory';
|
|
3
3
|
import { type UseFetchSyncBlockDataResult } from '@atlaskit/editor-synced-block-provider';
|
|
4
|
+
import type { SyncedBlockRendererOptions } from '../types';
|
|
4
5
|
export type SyncedBlockRendererProps = {
|
|
5
6
|
syncBlockRendererDataProviders: SyncedBlockRendererDataProviders;
|
|
7
|
+
syncBlockRendererOptions: SyncedBlockRendererOptions | undefined;
|
|
6
8
|
useFetchSyncBlockData: () => UseFetchSyncBlockDataResult;
|
|
7
9
|
};
|
|
8
10
|
export declare const convertSyncBlockRendererDataProvidersToProviderFactory: (dataProviders: SyncedBlockRendererDataProviders) => ProviderFactory;
|
|
9
|
-
export declare const SyncedBlockRenderer: React.MemoExoticComponent<({ useFetchSyncBlockData, syncBlockRendererDataProviders, }: SyncedBlockRendererProps) => React.JSX.Element>;
|
|
11
|
+
export declare const SyncedBlockRenderer: React.MemoExoticComponent<({ useFetchSyncBlockData, syncBlockRendererDataProviders, syncBlockRendererOptions, }: SyncedBlockRendererProps) => React.JSX.Element>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-synced-block-renderer",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.2",
|
|
4
4
|
"description": "SyncedBlockRenderer for @atlaskit/editor-plugin-synced-block",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@atlaskit/button": "^23.5.0",
|
|
32
32
|
"@atlaskit/css": "^0.15.0",
|
|
33
|
+
"@atlaskit/editor-plugin-synced-block": "^4.1.0",
|
|
33
34
|
"@atlaskit/editor-prosemirror": "7.0.0",
|
|
34
35
|
"@atlaskit/editor-synced-block-provider": "^2.6.0",
|
|
35
36
|
"@atlaskit/heading": "^5.2.0",
|