@atlaskit/editor-synced-block-renderer 3.0.1 → 3.1.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 +19 -0
- package/afm-cc/tsconfig.json +3 -0
- package/dist/cjs/getSyncedBlockNodeComponent.js +24 -12
- package/dist/cjs/getSyncedBlockRenderer.js +10 -5
- package/dist/cjs/types.js +5 -0
- package/dist/cjs/ui/SyncedBlockNodeComponentRenderer.js +51 -32
- package/dist/cjs/ui/SyncedBlockRenderer.js +48 -13
- package/dist/es2019/getSyncedBlockNodeComponent.js +19 -5
- package/dist/es2019/getSyncedBlockRenderer.js +4 -0
- package/dist/es2019/types.js +1 -0
- package/dist/es2019/ui/SyncedBlockNodeComponentRenderer.js +57 -25
- package/dist/es2019/ui/SyncedBlockRenderer.js +48 -11
- package/dist/esm/getSyncedBlockNodeComponent.js +24 -11
- package/dist/esm/getSyncedBlockRenderer.js +10 -5
- package/dist/esm/types.js +1 -0
- package/dist/esm/ui/SyncedBlockNodeComponentRenderer.js +52 -31
- package/dist/esm/ui/SyncedBlockRenderer.js +48 -13
- 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/SyncedBlockNodeComponentRenderer.d.ts +8 -4
- package/dist/types/ui/SyncedBlockRenderer.d.ts +5 -3
- 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/SyncedBlockNodeComponentRenderer.d.ts +8 -4
- package/dist/types-ts4.5/ui/SyncedBlockRenderer.d.ts +5 -3
- package/package.json +4 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# @atlaskit/editor-synced-block-renderer
|
|
2
2
|
|
|
3
|
+
## 3.1.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`aa14795cecd60`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/aa14795cecd60) -
|
|
8
|
+
EDITOR-2350 Pass media options to sync block nested renderer.
|
|
9
|
+
- Updated dependencies
|
|
10
|
+
|
|
11
|
+
## 3.1.0
|
|
12
|
+
|
|
13
|
+
### Minor Changes
|
|
14
|
+
|
|
15
|
+
- [`261fa27c56fd0`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/261fa27c56fd0) -
|
|
16
|
+
EDITOR-2533 implement retry function for sync-block renderer
|
|
17
|
+
|
|
18
|
+
### Patch Changes
|
|
19
|
+
|
|
20
|
+
- Updated dependencies
|
|
21
|
+
|
|
3
22
|
## 3.0.1
|
|
4
23
|
|
|
5
24
|
### Patch Changes
|
package/afm-cc/tsconfig.json
CHANGED
|
@@ -1,24 +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
|
|
7
|
+
var _editorSyncedBlockProvider = require("@atlaskit/editor-synced-block-provider");
|
|
9
8
|
var _SyncedBlockNodeComponentRenderer = require("./ui/SyncedBlockNodeComponentRenderer");
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
+
};
|
|
16
|
+
|
|
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;
|
|
13
22
|
var content = doc.content;
|
|
14
23
|
var isEmpty = !content || !Array.isArray(content) || content.length === 0;
|
|
15
|
-
var syncBlockNodes = isEmpty ? [] : content
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
24
|
+
var syncBlockNodes = isEmpty ? [] : getSyncBlockNodesFromContent(content);
|
|
25
|
+
var syncBlockStoreManager = new _editorSyncedBlockProvider.SyncBlockStoreManager(syncBlockProvider);
|
|
26
|
+
|
|
27
|
+
// Pre-fetch sync block data
|
|
28
|
+
syncBlockStoreManager.getReferenceSyncBlockStoreManager().fetchSyncBlocksData(syncBlockNodes);
|
|
19
29
|
return function (props) {
|
|
20
|
-
return (0, _SyncedBlockNodeComponentRenderer.SyncedBlockNodeComponentRenderer)(
|
|
21
|
-
|
|
22
|
-
|
|
30
|
+
return (0, _SyncedBlockNodeComponentRenderer.SyncedBlockNodeComponentRenderer)({
|
|
31
|
+
nodeProps: props,
|
|
32
|
+
syncBlockStoreManager: syncBlockStoreManager,
|
|
33
|
+
rendererOptions: syncBlockRendererOptions
|
|
34
|
+
});
|
|
23
35
|
};
|
|
24
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
|
};
|
|
@@ -1,63 +1,82 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.SyncedBlockNodeComponentRenderer = void 0;
|
|
9
|
-
var
|
|
10
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
9
|
var _editorSyncedBlockProvider = require("@atlaskit/editor-synced-block-provider");
|
|
12
10
|
var _renderer = require("@atlaskit/renderer");
|
|
13
11
|
var _actions = require("@atlaskit/renderer/actions");
|
|
14
12
|
var _SyncedBlockErrorComponent = require("./SyncedBlockErrorComponent");
|
|
15
13
|
var _SyncedBlockLoadingState = require("./SyncedBlockLoadingState");
|
|
16
|
-
|
|
17
|
-
var
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
14
|
+
var SyncedBlockNodeComponentRenderer = exports.SyncedBlockNodeComponentRenderer = function SyncedBlockNodeComponentRenderer(_ref) {
|
|
15
|
+
var nodeProps = _ref.nodeProps,
|
|
16
|
+
syncBlockStoreManager = _ref.syncBlockStoreManager,
|
|
17
|
+
rendererOptions = _ref.rendererOptions;
|
|
18
|
+
var resourceId = nodeProps.resourceId,
|
|
19
|
+
localId = nodeProps.localId,
|
|
20
|
+
providers = nodeProps.providers;
|
|
21
|
+
var _ref2 = rendererOptions !== null && rendererOptions !== void 0 ? rendererOptions : {},
|
|
22
|
+
allowAltTextOnImages = _ref2.allowAltTextOnImages,
|
|
23
|
+
allowAnnotations = _ref2.allowAnnotations,
|
|
24
|
+
allowColumnSorting = _ref2.allowColumnSorting,
|
|
25
|
+
allowCopyToClipboard = _ref2.allowCopyToClipboard,
|
|
26
|
+
allowCustomPanels = _ref2.allowCustomPanels,
|
|
27
|
+
allowHeadingAnchorLinks = _ref2.allowHeadingAnchorLinks,
|
|
28
|
+
allowPlaceholderText = _ref2.allowPlaceholderText,
|
|
29
|
+
allowRendererContainerStyles = _ref2.allowRendererContainerStyles,
|
|
30
|
+
allowSelectAllTrap = _ref2.allowSelectAllTrap,
|
|
31
|
+
allowUgcScrubber = _ref2.allowUgcScrubber,
|
|
32
|
+
allowWrapCodeBlock = _ref2.allowWrapCodeBlock,
|
|
33
|
+
emojiResourceConfig = _ref2.emojiResourceConfig,
|
|
34
|
+
media = _ref2.media,
|
|
35
|
+
smartLinks = _ref2.smartLinks,
|
|
36
|
+
stickyHeaders = _ref2.stickyHeaders;
|
|
37
|
+
var _useFetchSyncBlockDat = (0, _editorSyncedBlockProvider.useFetchSyncBlockData)(syncBlockStoreManager, resourceId, localId),
|
|
38
|
+
syncBlockInstance = _useFetchSyncBlockDat.syncBlockInstance,
|
|
39
|
+
isLoading = _useFetchSyncBlockDat.isLoading;
|
|
40
|
+
if (isLoading && !syncBlockInstance) {
|
|
34
41
|
return /*#__PURE__*/_react.default.createElement(_SyncedBlockLoadingState.SyncedBlockLoadingState, null);
|
|
35
42
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
});
|
|
39
|
-
if (fetchResult !== null && fetchResult !== void 0 && fetchResult.error || !(fetchResult !== null && fetchResult !== void 0 && fetchResult.data)) {
|
|
40
|
-
var _fetchResult$error;
|
|
43
|
+
if (syncBlockInstance !== null && syncBlockInstance !== void 0 && syncBlockInstance.error || !(syncBlockInstance !== null && syncBlockInstance !== void 0 && syncBlockInstance.data)) {
|
|
44
|
+
var _syncBlockInstance$er;
|
|
41
45
|
return /*#__PURE__*/_react.default.createElement(_SyncedBlockErrorComponent.SyncedBlockErrorComponent, {
|
|
42
|
-
error: (
|
|
43
|
-
resourceId:
|
|
46
|
+
error: (_syncBlockInstance$er = syncBlockInstance === null || syncBlockInstance === void 0 ? void 0 : syncBlockInstance.error) !== null && _syncBlockInstance$er !== void 0 ? _syncBlockInstance$er : _editorSyncedBlockProvider.SyncBlockError.Errored,
|
|
47
|
+
resourceId: resourceId
|
|
44
48
|
});
|
|
45
49
|
}
|
|
46
50
|
var syncBlockDoc = {
|
|
47
|
-
content:
|
|
51
|
+
content: syncBlockInstance.data.content,
|
|
48
52
|
version: 1,
|
|
49
53
|
type: 'doc'
|
|
50
54
|
};
|
|
51
55
|
return /*#__PURE__*/_react.default.createElement(_actions.RendererActionsContext, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
52
56
|
"data-sync-block": true,
|
|
53
57
|
"data-testid": "sync-block-renderer-wrapper",
|
|
54
|
-
"data-resource-id":
|
|
55
|
-
"data-local-id":
|
|
58
|
+
"data-resource-id": resourceId,
|
|
59
|
+
"data-local-id": localId
|
|
56
60
|
}, /*#__PURE__*/_react.default.createElement(_renderer.ReactRenderer, {
|
|
57
61
|
appearance: "full-width",
|
|
58
62
|
adfStage: "stage0",
|
|
59
63
|
document: syncBlockDoc,
|
|
60
64
|
disableHeadingIDs: true,
|
|
61
|
-
dataProviders:
|
|
65
|
+
dataProviders: providers,
|
|
66
|
+
allowAltTextOnImages: allowAltTextOnImages,
|
|
67
|
+
allowAnnotations: allowAnnotations,
|
|
68
|
+
allowColumnSorting: allowColumnSorting,
|
|
69
|
+
allowCopyToClipboard: allowCopyToClipboard,
|
|
70
|
+
allowCustomPanels: allowCustomPanels,
|
|
71
|
+
allowHeadingAnchorLinks: allowHeadingAnchorLinks,
|
|
72
|
+
allowPlaceholderText: allowPlaceholderText,
|
|
73
|
+
allowRendererContainerStyles: allowRendererContainerStyles,
|
|
74
|
+
allowSelectAllTrap: allowSelectAllTrap,
|
|
75
|
+
allowUgcScrubber: allowUgcScrubber,
|
|
76
|
+
allowWrapCodeBlock: allowWrapCodeBlock,
|
|
77
|
+
emojiResourceConfig: emojiResourceConfig,
|
|
78
|
+
media: media,
|
|
79
|
+
smartLinks: smartLinks,
|
|
80
|
+
stickyHeaders: stickyHeaders
|
|
62
81
|
})));
|
|
63
82
|
};
|
|
@@ -25,7 +25,8 @@ var convertSyncBlockRendererDataProvidersToProviderFactory = exports.convertSync
|
|
|
25
25
|
};
|
|
26
26
|
var SyncedBlockRendererWrapper = function SyncedBlockRendererWrapper(_ref) {
|
|
27
27
|
var fetchedData = _ref.fetchedData,
|
|
28
|
-
providerFactory = _ref.providerFactory
|
|
28
|
+
providerFactory = _ref.providerFactory,
|
|
29
|
+
options = _ref.options;
|
|
29
30
|
var syncBlockDoc = (0, _react.useMemo)(function () {
|
|
30
31
|
var _fetchedData$content;
|
|
31
32
|
return {
|
|
@@ -34,6 +35,22 @@ var SyncedBlockRendererWrapper = function SyncedBlockRendererWrapper(_ref) {
|
|
|
34
35
|
type: 'doc'
|
|
35
36
|
};
|
|
36
37
|
}, [fetchedData]);
|
|
38
|
+
var _ref2 = options !== null && options !== void 0 ? options : {},
|
|
39
|
+
allowAltTextOnImages = _ref2.allowAltTextOnImages,
|
|
40
|
+
allowAnnotations = _ref2.allowAnnotations,
|
|
41
|
+
allowColumnSorting = _ref2.allowColumnSorting,
|
|
42
|
+
allowCopyToClipboard = _ref2.allowCopyToClipboard,
|
|
43
|
+
allowCustomPanels = _ref2.allowCustomPanels,
|
|
44
|
+
allowHeadingAnchorLinks = _ref2.allowHeadingAnchorLinks,
|
|
45
|
+
allowPlaceholderText = _ref2.allowPlaceholderText,
|
|
46
|
+
allowRendererContainerStyles = _ref2.allowRendererContainerStyles,
|
|
47
|
+
allowSelectAllTrap = _ref2.allowSelectAllTrap,
|
|
48
|
+
allowUgcScrubber = _ref2.allowUgcScrubber,
|
|
49
|
+
allowWrapCodeBlock = _ref2.allowWrapCodeBlock,
|
|
50
|
+
emojiResourceConfig = _ref2.emojiResourceConfig,
|
|
51
|
+
media = _ref2.media,
|
|
52
|
+
smartLinks = _ref2.smartLinks,
|
|
53
|
+
stickyHeaders = _ref2.stickyHeaders;
|
|
37
54
|
return /*#__PURE__*/_react.default.createElement(_actions.RendererActionsContext, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
38
55
|
"data-testid": "sync-block-renderer-wrapper"
|
|
39
56
|
}, /*#__PURE__*/_react.default.createElement(_renderer.ReactRenderer, {
|
|
@@ -41,29 +58,47 @@ var SyncedBlockRendererWrapper = function SyncedBlockRendererWrapper(_ref) {
|
|
|
41
58
|
adfStage: "stage0",
|
|
42
59
|
document: syncBlockDoc,
|
|
43
60
|
disableHeadingIDs: true,
|
|
44
|
-
dataProviders: providerFactory
|
|
61
|
+
dataProviders: providerFactory,
|
|
62
|
+
allowAltTextOnImages: allowAltTextOnImages,
|
|
63
|
+
allowAnnotations: allowAnnotations,
|
|
64
|
+
allowColumnSorting: allowColumnSorting,
|
|
65
|
+
allowCopyToClipboard: allowCopyToClipboard,
|
|
66
|
+
allowCustomPanels: allowCustomPanels,
|
|
67
|
+
allowHeadingAnchorLinks: allowHeadingAnchorLinks,
|
|
68
|
+
allowPlaceholderText: allowPlaceholderText,
|
|
69
|
+
allowRendererContainerStyles: allowRendererContainerStyles,
|
|
70
|
+
allowSelectAllTrap: allowSelectAllTrap,
|
|
71
|
+
allowUgcScrubber: allowUgcScrubber,
|
|
72
|
+
allowWrapCodeBlock: allowWrapCodeBlock,
|
|
73
|
+
emojiResourceConfig: emojiResourceConfig,
|
|
74
|
+
media: media,
|
|
75
|
+
smartLinks: smartLinks,
|
|
76
|
+
stickyHeaders: stickyHeaders
|
|
45
77
|
})));
|
|
46
78
|
};
|
|
47
|
-
var SyncedBlockRendererComponent = function SyncedBlockRendererComponent(
|
|
48
|
-
var useFetchSyncBlockData =
|
|
49
|
-
syncBlockRendererDataProviders =
|
|
50
|
-
|
|
79
|
+
var SyncedBlockRendererComponent = function SyncedBlockRendererComponent(_ref3) {
|
|
80
|
+
var useFetchSyncBlockData = _ref3.useFetchSyncBlockData,
|
|
81
|
+
syncBlockRendererDataProviders = _ref3.syncBlockRendererDataProviders,
|
|
82
|
+
syncBlockRendererOptions = _ref3.syncBlockRendererOptions;
|
|
83
|
+
var _useFetchSyncBlockDat = useFetchSyncBlockData(),
|
|
84
|
+
syncBlockInstance = _useFetchSyncBlockDat.syncBlockInstance;
|
|
51
85
|
var providerFactory = (0, _react.useMemo)(function () {
|
|
52
86
|
return convertSyncBlockRendererDataProvidersToProviderFactory(syncBlockRendererDataProviders);
|
|
53
87
|
}, [syncBlockRendererDataProviders]);
|
|
54
|
-
if (!
|
|
88
|
+
if (!syncBlockInstance) {
|
|
55
89
|
return /*#__PURE__*/_react.default.createElement(_SyncedBlockLoadingState.SyncedBlockLoadingState, null);
|
|
56
90
|
}
|
|
57
|
-
if (
|
|
58
|
-
var
|
|
91
|
+
if (syncBlockInstance.error || !syncBlockInstance.data) {
|
|
92
|
+
var _syncBlockInstance$er;
|
|
59
93
|
return /*#__PURE__*/_react.default.createElement(_SyncedBlockErrorComponent.SyncedBlockErrorComponent, {
|
|
60
|
-
error: (
|
|
61
|
-
resourceId:
|
|
94
|
+
error: (_syncBlockInstance$er = syncBlockInstance.error) !== null && _syncBlockInstance$er !== void 0 ? _syncBlockInstance$er : _editorSyncedBlockProvider.SyncBlockError.Errored,
|
|
95
|
+
resourceId: syncBlockInstance.resourceId
|
|
62
96
|
});
|
|
63
97
|
}
|
|
64
98
|
return /*#__PURE__*/_react.default.createElement(SyncedBlockRendererWrapper, {
|
|
65
|
-
fetchedData:
|
|
66
|
-
providerFactory: providerFactory
|
|
99
|
+
fetchedData: syncBlockInstance.data,
|
|
100
|
+
providerFactory: providerFactory,
|
|
101
|
+
options: syncBlockRendererOptions
|
|
67
102
|
});
|
|
68
103
|
};
|
|
69
104
|
var SyncedBlockRenderer = exports.SyncedBlockRenderer = /*#__PURE__*/(0, _react.memo)(SyncedBlockRendererComponent);
|
|
@@ -1,13 +1,27 @@
|
|
|
1
|
+
import { convertSyncBlockJSONNodeToSyncBlockNode, SyncBlockStoreManager } from '@atlaskit/editor-synced-block-provider';
|
|
1
2
|
import { SyncedBlockNodeComponentRenderer } from './ui/SyncedBlockNodeComponentRenderer';
|
|
2
|
-
|
|
3
|
+
const getSyncBlockNodesFromContent = content => {
|
|
4
|
+
return content.map(node => convertSyncBlockJSONNodeToSyncBlockNode(node)).filter(node => node !== undefined);
|
|
5
|
+
};
|
|
6
|
+
|
|
7
|
+
// For rendering reference synced block nodes in Renderer
|
|
8
|
+
export const getSyncedBlockNodeComponent = ({
|
|
9
|
+
doc,
|
|
10
|
+
syncBlockProvider,
|
|
11
|
+
syncBlockRendererOptions
|
|
12
|
+
}) => {
|
|
3
13
|
const {
|
|
4
14
|
content
|
|
5
15
|
} = doc;
|
|
6
16
|
const isEmpty = !content || !Array.isArray(content) || content.length === 0;
|
|
7
|
-
const syncBlockNodes = isEmpty ? [] : content
|
|
8
|
-
const
|
|
17
|
+
const syncBlockNodes = isEmpty ? [] : getSyncBlockNodesFromContent(content);
|
|
18
|
+
const syncBlockStoreManager = new SyncBlockStoreManager(syncBlockProvider);
|
|
19
|
+
|
|
20
|
+
// Pre-fetch sync block data
|
|
21
|
+
syncBlockStoreManager.getReferenceSyncBlockStoreManager().fetchSyncBlocksData(syncBlockNodes);
|
|
9
22
|
return props => SyncedBlockNodeComponentRenderer({
|
|
10
|
-
|
|
11
|
-
|
|
23
|
+
nodeProps: props,
|
|
24
|
+
syncBlockStoreManager,
|
|
25
|
+
rendererOptions: syncBlockRendererOptions
|
|
12
26
|
});
|
|
13
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 {};
|
|
@@ -1,48 +1,80 @@
|
|
|
1
|
-
import React
|
|
2
|
-
import { SyncBlockError } from '@atlaskit/editor-synced-block-provider';
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { SyncBlockError, useFetchSyncBlockData } from '@atlaskit/editor-synced-block-provider';
|
|
3
3
|
import { ReactRenderer } from '@atlaskit/renderer';
|
|
4
4
|
import { RendererActionsContext } from '@atlaskit/renderer/actions';
|
|
5
5
|
import { SyncedBlockErrorComponent } from './SyncedBlockErrorComponent';
|
|
6
6
|
import { SyncedBlockLoadingState } from './SyncedBlockLoadingState';
|
|
7
|
-
export const SyncedBlockNodeComponentRenderer =
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
7
|
+
export const SyncedBlockNodeComponentRenderer = ({
|
|
8
|
+
nodeProps,
|
|
9
|
+
syncBlockStoreManager,
|
|
10
|
+
rendererOptions
|
|
11
|
+
}) => {
|
|
12
|
+
const {
|
|
13
|
+
resourceId,
|
|
14
|
+
localId,
|
|
15
|
+
providers
|
|
16
|
+
} = nodeProps;
|
|
17
|
+
const {
|
|
18
|
+
allowAltTextOnImages,
|
|
19
|
+
allowAnnotations,
|
|
20
|
+
allowColumnSorting,
|
|
21
|
+
allowCopyToClipboard,
|
|
22
|
+
allowCustomPanels,
|
|
23
|
+
allowHeadingAnchorLinks,
|
|
24
|
+
allowPlaceholderText,
|
|
25
|
+
allowRendererContainerStyles,
|
|
26
|
+
allowSelectAllTrap,
|
|
27
|
+
allowUgcScrubber,
|
|
28
|
+
allowWrapCodeBlock,
|
|
29
|
+
emojiResourceConfig,
|
|
30
|
+
media,
|
|
31
|
+
smartLinks,
|
|
32
|
+
stickyHeaders
|
|
33
|
+
} = rendererOptions !== null && rendererOptions !== void 0 ? rendererOptions : {};
|
|
34
|
+
const {
|
|
35
|
+
syncBlockInstance,
|
|
36
|
+
isLoading
|
|
37
|
+
} = useFetchSyncBlockData(syncBlockStoreManager, resourceId, localId);
|
|
38
|
+
if (isLoading && !syncBlockInstance) {
|
|
21
39
|
return /*#__PURE__*/React.createElement(SyncedBlockLoadingState, null);
|
|
22
40
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
var _fetchResult$error;
|
|
41
|
+
if (syncBlockInstance !== null && syncBlockInstance !== void 0 && syncBlockInstance.error || !(syncBlockInstance !== null && syncBlockInstance !== void 0 && syncBlockInstance.data)) {
|
|
42
|
+
var _syncBlockInstance$er;
|
|
26
43
|
return /*#__PURE__*/React.createElement(SyncedBlockErrorComponent, {
|
|
27
|
-
error: (
|
|
28
|
-
resourceId:
|
|
44
|
+
error: (_syncBlockInstance$er = syncBlockInstance === null || syncBlockInstance === void 0 ? void 0 : syncBlockInstance.error) !== null && _syncBlockInstance$er !== void 0 ? _syncBlockInstance$er : SyncBlockError.Errored,
|
|
45
|
+
resourceId: resourceId
|
|
29
46
|
});
|
|
30
47
|
}
|
|
31
48
|
const syncBlockDoc = {
|
|
32
|
-
content:
|
|
49
|
+
content: syncBlockInstance.data.content,
|
|
33
50
|
version: 1,
|
|
34
51
|
type: 'doc'
|
|
35
52
|
};
|
|
36
53
|
return /*#__PURE__*/React.createElement(RendererActionsContext, null, /*#__PURE__*/React.createElement("div", {
|
|
37
54
|
"data-sync-block": true,
|
|
38
55
|
"data-testid": "sync-block-renderer-wrapper",
|
|
39
|
-
"data-resource-id":
|
|
40
|
-
"data-local-id":
|
|
56
|
+
"data-resource-id": resourceId,
|
|
57
|
+
"data-local-id": localId
|
|
41
58
|
}, /*#__PURE__*/React.createElement(ReactRenderer, {
|
|
42
59
|
appearance: "full-width",
|
|
43
60
|
adfStage: "stage0",
|
|
44
61
|
document: syncBlockDoc,
|
|
45
62
|
disableHeadingIDs: true,
|
|
46
|
-
dataProviders:
|
|
63
|
+
dataProviders: providers,
|
|
64
|
+
allowAltTextOnImages: allowAltTextOnImages,
|
|
65
|
+
allowAnnotations: allowAnnotations,
|
|
66
|
+
allowColumnSorting: allowColumnSorting,
|
|
67
|
+
allowCopyToClipboard: allowCopyToClipboard,
|
|
68
|
+
allowCustomPanels: allowCustomPanels,
|
|
69
|
+
allowHeadingAnchorLinks: allowHeadingAnchorLinks,
|
|
70
|
+
allowPlaceholderText: allowPlaceholderText,
|
|
71
|
+
allowRendererContainerStyles: allowRendererContainerStyles,
|
|
72
|
+
allowSelectAllTrap: allowSelectAllTrap,
|
|
73
|
+
allowUgcScrubber: allowUgcScrubber,
|
|
74
|
+
allowWrapCodeBlock: allowWrapCodeBlock,
|
|
75
|
+
emojiResourceConfig: emojiResourceConfig,
|
|
76
|
+
media: media,
|
|
77
|
+
smartLinks: smartLinks,
|
|
78
|
+
stickyHeaders: stickyHeaders
|
|
47
79
|
})));
|
|
48
80
|
};
|
|
@@ -17,7 +17,8 @@ export const convertSyncBlockRendererDataProvidersToProviderFactory = dataProvid
|
|
|
17
17
|
};
|
|
18
18
|
const SyncedBlockRendererWrapper = ({
|
|
19
19
|
fetchedData,
|
|
20
|
-
providerFactory
|
|
20
|
+
providerFactory,
|
|
21
|
+
options
|
|
21
22
|
}) => {
|
|
22
23
|
const syncBlockDoc = useMemo(() => {
|
|
23
24
|
var _fetchedData$content;
|
|
@@ -27,6 +28,23 @@ const SyncedBlockRendererWrapper = ({
|
|
|
27
28
|
type: 'doc'
|
|
28
29
|
};
|
|
29
30
|
}, [fetchedData]);
|
|
31
|
+
const {
|
|
32
|
+
allowAltTextOnImages,
|
|
33
|
+
allowAnnotations,
|
|
34
|
+
allowColumnSorting,
|
|
35
|
+
allowCopyToClipboard,
|
|
36
|
+
allowCustomPanels,
|
|
37
|
+
allowHeadingAnchorLinks,
|
|
38
|
+
allowPlaceholderText,
|
|
39
|
+
allowRendererContainerStyles,
|
|
40
|
+
allowSelectAllTrap,
|
|
41
|
+
allowUgcScrubber,
|
|
42
|
+
allowWrapCodeBlock,
|
|
43
|
+
emojiResourceConfig,
|
|
44
|
+
media,
|
|
45
|
+
smartLinks,
|
|
46
|
+
stickyHeaders
|
|
47
|
+
} = options !== null && options !== void 0 ? options : {};
|
|
30
48
|
return /*#__PURE__*/React.createElement(RendererActionsContext, null, /*#__PURE__*/React.createElement("div", {
|
|
31
49
|
"data-testid": "sync-block-renderer-wrapper"
|
|
32
50
|
}, /*#__PURE__*/React.createElement(ReactRenderer, {
|
|
@@ -34,30 +52,49 @@ const SyncedBlockRendererWrapper = ({
|
|
|
34
52
|
adfStage: "stage0",
|
|
35
53
|
document: syncBlockDoc,
|
|
36
54
|
disableHeadingIDs: true,
|
|
37
|
-
dataProviders: providerFactory
|
|
55
|
+
dataProviders: providerFactory,
|
|
56
|
+
allowAltTextOnImages: allowAltTextOnImages,
|
|
57
|
+
allowAnnotations: allowAnnotations,
|
|
58
|
+
allowColumnSorting: allowColumnSorting,
|
|
59
|
+
allowCopyToClipboard: allowCopyToClipboard,
|
|
60
|
+
allowCustomPanels: allowCustomPanels,
|
|
61
|
+
allowHeadingAnchorLinks: allowHeadingAnchorLinks,
|
|
62
|
+
allowPlaceholderText: allowPlaceholderText,
|
|
63
|
+
allowRendererContainerStyles: allowRendererContainerStyles,
|
|
64
|
+
allowSelectAllTrap: allowSelectAllTrap,
|
|
65
|
+
allowUgcScrubber: allowUgcScrubber,
|
|
66
|
+
allowWrapCodeBlock: allowWrapCodeBlock,
|
|
67
|
+
emojiResourceConfig: emojiResourceConfig,
|
|
68
|
+
media: media,
|
|
69
|
+
smartLinks: smartLinks,
|
|
70
|
+
stickyHeaders: stickyHeaders
|
|
38
71
|
})));
|
|
39
72
|
};
|
|
40
73
|
const SyncedBlockRendererComponent = ({
|
|
41
74
|
useFetchSyncBlockData,
|
|
42
|
-
syncBlockRendererDataProviders
|
|
75
|
+
syncBlockRendererDataProviders,
|
|
76
|
+
syncBlockRendererOptions
|
|
43
77
|
}) => {
|
|
44
|
-
const
|
|
78
|
+
const {
|
|
79
|
+
syncBlockInstance
|
|
80
|
+
} = useFetchSyncBlockData();
|
|
45
81
|
const providerFactory = useMemo(() => {
|
|
46
82
|
return convertSyncBlockRendererDataProvidersToProviderFactory(syncBlockRendererDataProviders);
|
|
47
83
|
}, [syncBlockRendererDataProviders]);
|
|
48
|
-
if (!
|
|
84
|
+
if (!syncBlockInstance) {
|
|
49
85
|
return /*#__PURE__*/React.createElement(SyncedBlockLoadingState, null);
|
|
50
86
|
}
|
|
51
|
-
if (
|
|
52
|
-
var
|
|
87
|
+
if (syncBlockInstance.error || !syncBlockInstance.data) {
|
|
88
|
+
var _syncBlockInstance$er;
|
|
53
89
|
return /*#__PURE__*/React.createElement(SyncedBlockErrorComponent, {
|
|
54
|
-
error: (
|
|
55
|
-
resourceId:
|
|
90
|
+
error: (_syncBlockInstance$er = syncBlockInstance.error) !== null && _syncBlockInstance$er !== void 0 ? _syncBlockInstance$er : SyncBlockError.Errored,
|
|
91
|
+
resourceId: syncBlockInstance.resourceId
|
|
56
92
|
});
|
|
57
93
|
}
|
|
58
94
|
return /*#__PURE__*/React.createElement(SyncedBlockRendererWrapper, {
|
|
59
|
-
fetchedData:
|
|
60
|
-
providerFactory: providerFactory
|
|
95
|
+
fetchedData: syncBlockInstance.data,
|
|
96
|
+
providerFactory: providerFactory,
|
|
97
|
+
options: syncBlockRendererOptions
|
|
61
98
|
});
|
|
62
99
|
};
|
|
63
100
|
export const SyncedBlockRenderer = /*#__PURE__*/memo(SyncedBlockRendererComponent);
|
|
@@ -1,17 +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; }
|
|
1
|
+
import { convertSyncBlockJSONNodeToSyncBlockNode, SyncBlockStoreManager } from '@atlaskit/editor-synced-block-provider';
|
|
4
2
|
import { SyncedBlockNodeComponentRenderer } from './ui/SyncedBlockNodeComponentRenderer';
|
|
5
|
-
|
|
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
|
+
});
|
|
9
|
+
};
|
|
10
|
+
|
|
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;
|
|
6
16
|
var content = doc.content;
|
|
7
17
|
var isEmpty = !content || !Array.isArray(content) || content.length === 0;
|
|
8
|
-
var syncBlockNodes = isEmpty ? [] : content
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
18
|
+
var syncBlockNodes = isEmpty ? [] : getSyncBlockNodesFromContent(content);
|
|
19
|
+
var syncBlockStoreManager = new SyncBlockStoreManager(syncBlockProvider);
|
|
20
|
+
|
|
21
|
+
// Pre-fetch sync block data
|
|
22
|
+
syncBlockStoreManager.getReferenceSyncBlockStoreManager().fetchSyncBlocksData(syncBlockNodes);
|
|
12
23
|
return function (props) {
|
|
13
|
-
return SyncedBlockNodeComponentRenderer(
|
|
14
|
-
|
|
15
|
-
|
|
24
|
+
return SyncedBlockNodeComponentRenderer({
|
|
25
|
+
nodeProps: props,
|
|
26
|
+
syncBlockStoreManager: syncBlockStoreManager,
|
|
27
|
+
rendererOptions: syncBlockRendererOptions
|
|
28
|
+
});
|
|
16
29
|
};
|
|
17
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 {};
|
|
@@ -1,54 +1,75 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import { SyncBlockError } from '@atlaskit/editor-synced-block-provider';
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { SyncBlockError, useFetchSyncBlockData } from '@atlaskit/editor-synced-block-provider';
|
|
4
3
|
import { ReactRenderer } from '@atlaskit/renderer';
|
|
5
4
|
import { RendererActionsContext } from '@atlaskit/renderer/actions';
|
|
6
5
|
import { SyncedBlockErrorComponent } from './SyncedBlockErrorComponent';
|
|
7
6
|
import { SyncedBlockLoadingState } from './SyncedBlockLoadingState';
|
|
8
|
-
export var SyncedBlockNodeComponentRenderer = function SyncedBlockNodeComponentRenderer(
|
|
9
|
-
var
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
7
|
+
export var SyncedBlockNodeComponentRenderer = function SyncedBlockNodeComponentRenderer(_ref) {
|
|
8
|
+
var nodeProps = _ref.nodeProps,
|
|
9
|
+
syncBlockStoreManager = _ref.syncBlockStoreManager,
|
|
10
|
+
rendererOptions = _ref.rendererOptions;
|
|
11
|
+
var resourceId = nodeProps.resourceId,
|
|
12
|
+
localId = nodeProps.localId,
|
|
13
|
+
providers = nodeProps.providers;
|
|
14
|
+
var _ref2 = rendererOptions !== null && rendererOptions !== void 0 ? rendererOptions : {},
|
|
15
|
+
allowAltTextOnImages = _ref2.allowAltTextOnImages,
|
|
16
|
+
allowAnnotations = _ref2.allowAnnotations,
|
|
17
|
+
allowColumnSorting = _ref2.allowColumnSorting,
|
|
18
|
+
allowCopyToClipboard = _ref2.allowCopyToClipboard,
|
|
19
|
+
allowCustomPanels = _ref2.allowCustomPanels,
|
|
20
|
+
allowHeadingAnchorLinks = _ref2.allowHeadingAnchorLinks,
|
|
21
|
+
allowPlaceholderText = _ref2.allowPlaceholderText,
|
|
22
|
+
allowRendererContainerStyles = _ref2.allowRendererContainerStyles,
|
|
23
|
+
allowSelectAllTrap = _ref2.allowSelectAllTrap,
|
|
24
|
+
allowUgcScrubber = _ref2.allowUgcScrubber,
|
|
25
|
+
allowWrapCodeBlock = _ref2.allowWrapCodeBlock,
|
|
26
|
+
emojiResourceConfig = _ref2.emojiResourceConfig,
|
|
27
|
+
media = _ref2.media,
|
|
28
|
+
smartLinks = _ref2.smartLinks,
|
|
29
|
+
stickyHeaders = _ref2.stickyHeaders;
|
|
30
|
+
var _useFetchSyncBlockDat = useFetchSyncBlockData(syncBlockStoreManager, resourceId, localId),
|
|
31
|
+
syncBlockInstance = _useFetchSyncBlockDat.syncBlockInstance,
|
|
32
|
+
isLoading = _useFetchSyncBlockDat.isLoading;
|
|
33
|
+
if (isLoading && !syncBlockInstance) {
|
|
25
34
|
return /*#__PURE__*/React.createElement(SyncedBlockLoadingState, null);
|
|
26
35
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
});
|
|
30
|
-
if (fetchResult !== null && fetchResult !== void 0 && fetchResult.error || !(fetchResult !== null && fetchResult !== void 0 && fetchResult.data)) {
|
|
31
|
-
var _fetchResult$error;
|
|
36
|
+
if (syncBlockInstance !== null && syncBlockInstance !== void 0 && syncBlockInstance.error || !(syncBlockInstance !== null && syncBlockInstance !== void 0 && syncBlockInstance.data)) {
|
|
37
|
+
var _syncBlockInstance$er;
|
|
32
38
|
return /*#__PURE__*/React.createElement(SyncedBlockErrorComponent, {
|
|
33
|
-
error: (
|
|
34
|
-
resourceId:
|
|
39
|
+
error: (_syncBlockInstance$er = syncBlockInstance === null || syncBlockInstance === void 0 ? void 0 : syncBlockInstance.error) !== null && _syncBlockInstance$er !== void 0 ? _syncBlockInstance$er : SyncBlockError.Errored,
|
|
40
|
+
resourceId: resourceId
|
|
35
41
|
});
|
|
36
42
|
}
|
|
37
43
|
var syncBlockDoc = {
|
|
38
|
-
content:
|
|
44
|
+
content: syncBlockInstance.data.content,
|
|
39
45
|
version: 1,
|
|
40
46
|
type: 'doc'
|
|
41
47
|
};
|
|
42
48
|
return /*#__PURE__*/React.createElement(RendererActionsContext, null, /*#__PURE__*/React.createElement("div", {
|
|
43
49
|
"data-sync-block": true,
|
|
44
50
|
"data-testid": "sync-block-renderer-wrapper",
|
|
45
|
-
"data-resource-id":
|
|
46
|
-
"data-local-id":
|
|
51
|
+
"data-resource-id": resourceId,
|
|
52
|
+
"data-local-id": localId
|
|
47
53
|
}, /*#__PURE__*/React.createElement(ReactRenderer, {
|
|
48
54
|
appearance: "full-width",
|
|
49
55
|
adfStage: "stage0",
|
|
50
56
|
document: syncBlockDoc,
|
|
51
57
|
disableHeadingIDs: true,
|
|
52
|
-
dataProviders:
|
|
58
|
+
dataProviders: providers,
|
|
59
|
+
allowAltTextOnImages: allowAltTextOnImages,
|
|
60
|
+
allowAnnotations: allowAnnotations,
|
|
61
|
+
allowColumnSorting: allowColumnSorting,
|
|
62
|
+
allowCopyToClipboard: allowCopyToClipboard,
|
|
63
|
+
allowCustomPanels: allowCustomPanels,
|
|
64
|
+
allowHeadingAnchorLinks: allowHeadingAnchorLinks,
|
|
65
|
+
allowPlaceholderText: allowPlaceholderText,
|
|
66
|
+
allowRendererContainerStyles: allowRendererContainerStyles,
|
|
67
|
+
allowSelectAllTrap: allowSelectAllTrap,
|
|
68
|
+
allowUgcScrubber: allowUgcScrubber,
|
|
69
|
+
allowWrapCodeBlock: allowWrapCodeBlock,
|
|
70
|
+
emojiResourceConfig: emojiResourceConfig,
|
|
71
|
+
media: media,
|
|
72
|
+
smartLinks: smartLinks,
|
|
73
|
+
stickyHeaders: stickyHeaders
|
|
53
74
|
})));
|
|
54
75
|
};
|
|
@@ -17,7 +17,8 @@ export var convertSyncBlockRendererDataProvidersToProviderFactory = function con
|
|
|
17
17
|
};
|
|
18
18
|
var SyncedBlockRendererWrapper = function SyncedBlockRendererWrapper(_ref) {
|
|
19
19
|
var fetchedData = _ref.fetchedData,
|
|
20
|
-
providerFactory = _ref.providerFactory
|
|
20
|
+
providerFactory = _ref.providerFactory,
|
|
21
|
+
options = _ref.options;
|
|
21
22
|
var syncBlockDoc = useMemo(function () {
|
|
22
23
|
var _fetchedData$content;
|
|
23
24
|
return {
|
|
@@ -26,6 +27,22 @@ var SyncedBlockRendererWrapper = function SyncedBlockRendererWrapper(_ref) {
|
|
|
26
27
|
type: 'doc'
|
|
27
28
|
};
|
|
28
29
|
}, [fetchedData]);
|
|
30
|
+
var _ref2 = options !== null && options !== void 0 ? options : {},
|
|
31
|
+
allowAltTextOnImages = _ref2.allowAltTextOnImages,
|
|
32
|
+
allowAnnotations = _ref2.allowAnnotations,
|
|
33
|
+
allowColumnSorting = _ref2.allowColumnSorting,
|
|
34
|
+
allowCopyToClipboard = _ref2.allowCopyToClipboard,
|
|
35
|
+
allowCustomPanels = _ref2.allowCustomPanels,
|
|
36
|
+
allowHeadingAnchorLinks = _ref2.allowHeadingAnchorLinks,
|
|
37
|
+
allowPlaceholderText = _ref2.allowPlaceholderText,
|
|
38
|
+
allowRendererContainerStyles = _ref2.allowRendererContainerStyles,
|
|
39
|
+
allowSelectAllTrap = _ref2.allowSelectAllTrap,
|
|
40
|
+
allowUgcScrubber = _ref2.allowUgcScrubber,
|
|
41
|
+
allowWrapCodeBlock = _ref2.allowWrapCodeBlock,
|
|
42
|
+
emojiResourceConfig = _ref2.emojiResourceConfig,
|
|
43
|
+
media = _ref2.media,
|
|
44
|
+
smartLinks = _ref2.smartLinks,
|
|
45
|
+
stickyHeaders = _ref2.stickyHeaders;
|
|
29
46
|
return /*#__PURE__*/React.createElement(RendererActionsContext, null, /*#__PURE__*/React.createElement("div", {
|
|
30
47
|
"data-testid": "sync-block-renderer-wrapper"
|
|
31
48
|
}, /*#__PURE__*/React.createElement(ReactRenderer, {
|
|
@@ -33,29 +50,47 @@ var SyncedBlockRendererWrapper = function SyncedBlockRendererWrapper(_ref) {
|
|
|
33
50
|
adfStage: "stage0",
|
|
34
51
|
document: syncBlockDoc,
|
|
35
52
|
disableHeadingIDs: true,
|
|
36
|
-
dataProviders: providerFactory
|
|
53
|
+
dataProviders: providerFactory,
|
|
54
|
+
allowAltTextOnImages: allowAltTextOnImages,
|
|
55
|
+
allowAnnotations: allowAnnotations,
|
|
56
|
+
allowColumnSorting: allowColumnSorting,
|
|
57
|
+
allowCopyToClipboard: allowCopyToClipboard,
|
|
58
|
+
allowCustomPanels: allowCustomPanels,
|
|
59
|
+
allowHeadingAnchorLinks: allowHeadingAnchorLinks,
|
|
60
|
+
allowPlaceholderText: allowPlaceholderText,
|
|
61
|
+
allowRendererContainerStyles: allowRendererContainerStyles,
|
|
62
|
+
allowSelectAllTrap: allowSelectAllTrap,
|
|
63
|
+
allowUgcScrubber: allowUgcScrubber,
|
|
64
|
+
allowWrapCodeBlock: allowWrapCodeBlock,
|
|
65
|
+
emojiResourceConfig: emojiResourceConfig,
|
|
66
|
+
media: media,
|
|
67
|
+
smartLinks: smartLinks,
|
|
68
|
+
stickyHeaders: stickyHeaders
|
|
37
69
|
})));
|
|
38
70
|
};
|
|
39
|
-
var SyncedBlockRendererComponent = function SyncedBlockRendererComponent(
|
|
40
|
-
var useFetchSyncBlockData =
|
|
41
|
-
syncBlockRendererDataProviders =
|
|
42
|
-
|
|
71
|
+
var SyncedBlockRendererComponent = function SyncedBlockRendererComponent(_ref3) {
|
|
72
|
+
var useFetchSyncBlockData = _ref3.useFetchSyncBlockData,
|
|
73
|
+
syncBlockRendererDataProviders = _ref3.syncBlockRendererDataProviders,
|
|
74
|
+
syncBlockRendererOptions = _ref3.syncBlockRendererOptions;
|
|
75
|
+
var _useFetchSyncBlockDat = useFetchSyncBlockData(),
|
|
76
|
+
syncBlockInstance = _useFetchSyncBlockDat.syncBlockInstance;
|
|
43
77
|
var providerFactory = useMemo(function () {
|
|
44
78
|
return convertSyncBlockRendererDataProvidersToProviderFactory(syncBlockRendererDataProviders);
|
|
45
79
|
}, [syncBlockRendererDataProviders]);
|
|
46
|
-
if (!
|
|
80
|
+
if (!syncBlockInstance) {
|
|
47
81
|
return /*#__PURE__*/React.createElement(SyncedBlockLoadingState, null);
|
|
48
82
|
}
|
|
49
|
-
if (
|
|
50
|
-
var
|
|
83
|
+
if (syncBlockInstance.error || !syncBlockInstance.data) {
|
|
84
|
+
var _syncBlockInstance$er;
|
|
51
85
|
return /*#__PURE__*/React.createElement(SyncedBlockErrorComponent, {
|
|
52
|
-
error: (
|
|
53
|
-
resourceId:
|
|
86
|
+
error: (_syncBlockInstance$er = syncBlockInstance.error) !== null && _syncBlockInstance$er !== void 0 ? _syncBlockInstance$er : SyncBlockError.Errored,
|
|
87
|
+
resourceId: syncBlockInstance.resourceId
|
|
54
88
|
});
|
|
55
89
|
}
|
|
56
90
|
return /*#__PURE__*/React.createElement(SyncedBlockRendererWrapper, {
|
|
57
|
-
fetchedData:
|
|
58
|
-
providerFactory: providerFactory
|
|
91
|
+
fetchedData: syncBlockInstance.data,
|
|
92
|
+
providerFactory: providerFactory,
|
|
93
|
+
options: syncBlockRendererOptions
|
|
59
94
|
});
|
|
60
95
|
};
|
|
61
96
|
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'>;
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
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
|
-
|
|
11
|
-
|
|
10
|
+
export type SyncedBlockNodeComponentRendererProps = {
|
|
11
|
+
nodeProps: SyncedBlockNodeProps;
|
|
12
|
+
rendererOptions: SyncedBlockRendererOptions | undefined;
|
|
13
|
+
syncBlockStoreManager: SyncBlockStoreManager;
|
|
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
|
-
import { type
|
|
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;
|
|
6
|
-
|
|
7
|
+
syncBlockRendererOptions: SyncedBlockRendererOptions | undefined;
|
|
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'>;
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
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
|
-
|
|
11
|
-
|
|
10
|
+
export type SyncedBlockNodeComponentRendererProps = {
|
|
11
|
+
nodeProps: SyncedBlockNodeProps;
|
|
12
|
+
rendererOptions: SyncedBlockRendererOptions | undefined;
|
|
13
|
+
syncBlockStoreManager: SyncBlockStoreManager;
|
|
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
|
-
import { type
|
|
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;
|
|
6
|
-
|
|
7
|
+
syncBlockRendererOptions: SyncedBlockRendererOptions | undefined;
|
|
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.
|
|
3
|
+
"version": "3.1.1",
|
|
4
4
|
"description": "SyncedBlockRenderer for @atlaskit/editor-plugin-synced-block",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -30,8 +30,9 @@
|
|
|
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
|
-
"@atlaskit/editor-synced-block-provider": "^2.
|
|
35
|
+
"@atlaskit/editor-synced-block-provider": "^2.6.0",
|
|
35
36
|
"@atlaskit/heading": "^5.2.0",
|
|
36
37
|
"@atlaskit/icon": "^28.5.0",
|
|
37
38
|
"@atlaskit/image": "^3.0.0",
|
|
@@ -43,7 +44,7 @@
|
|
|
43
44
|
"relay-runtime": "npm:atl-relay-compiler@0.0.0-main-5980a913"
|
|
44
45
|
},
|
|
45
46
|
"peerDependencies": {
|
|
46
|
-
"@atlaskit/editor-common": "^110.
|
|
47
|
+
"@atlaskit/editor-common": "^110.22.0",
|
|
47
48
|
"react": "^18.2.0",
|
|
48
49
|
"react-intl-next": "npm:react-intl@^5.18.1"
|
|
49
50
|
},
|