@atlaskit/editor-synced-block-renderer 3.1.0 → 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 CHANGED
@@ -1,5 +1,13 @@
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
+
3
11
  ## 3.1.0
4
12
 
5
13
  ### Minor Changes
@@ -24,6 +24,9 @@
24
24
  {
25
25
  "path": "../../../design-system/css/afm-cc/tsconfig.json"
26
26
  },
27
+ {
28
+ "path": "../../editor-plugin-synced-block/afm-cc/tsconfig.json"
29
+ },
27
30
  {
28
31
  "path": "../../editor-synced-block-provider/afm-cc/tsconfig.json"
29
32
  },
@@ -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
- 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; }
12
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
- var isSyncBlockDataProvider = function isSyncBlockDataProvider(dataProvider) {
14
- return dataProvider.name === 'syncBlockProvider';
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(dataProvider, doc) {
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.filter(function (node) {
22
- return node.type === 'syncBlock';
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)(_objectSpread(_objectSpread({}, props), {}, {
34
- syncBlockStoreManager: syncBlockStoreManager
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
- useFetchSyncBlockData = _ref.useFetchSyncBlockData;
13
- return /*#__PURE__*/_react.default.createElement(_SyncedBlockRenderer.SyncedBlockRenderer, {
14
- syncBlockRendererDataProviders: syncBlockRendererDataProviders,
15
- useFetchSyncBlockData: useFetchSyncBlockData
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,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -11,10 +11,29 @@ var _renderer = require("@atlaskit/renderer");
11
11
  var _actions = require("@atlaskit/renderer/actions");
12
12
  var _SyncedBlockErrorComponent = require("./SyncedBlockErrorComponent");
13
13
  var _SyncedBlockLoadingState = require("./SyncedBlockLoadingState");
14
- var SyncedBlockNodeComponentRenderer = exports.SyncedBlockNodeComponentRenderer = function SyncedBlockNodeComponentRenderer(props) {
15
- var resourceId = props.resourceId,
16
- localId = props.localId,
17
- syncBlockStoreManager = props.syncBlockStoreManager;
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;
18
37
  var _useFetchSyncBlockDat = (0, _editorSyncedBlockProvider.useFetchSyncBlockData)(syncBlockStoreManager, resourceId, localId),
19
38
  syncBlockInstance = _useFetchSyncBlockDat.syncBlockInstance,
20
39
  isLoading = _useFetchSyncBlockDat.isLoading;
@@ -25,7 +44,7 @@ var SyncedBlockNodeComponentRenderer = exports.SyncedBlockNodeComponentRenderer
25
44
  var _syncBlockInstance$er;
26
45
  return /*#__PURE__*/_react.default.createElement(_SyncedBlockErrorComponent.SyncedBlockErrorComponent, {
27
46
  error: (_syncBlockInstance$er = syncBlockInstance === null || syncBlockInstance === void 0 ? void 0 : syncBlockInstance.error) !== null && _syncBlockInstance$er !== void 0 ? _syncBlockInstance$er : _editorSyncedBlockProvider.SyncBlockError.Errored,
28
- resourceId: props.resourceId
47
+ resourceId: resourceId
29
48
  });
30
49
  }
31
50
  var syncBlockDoc = {
@@ -36,13 +55,28 @@ var SyncedBlockNodeComponentRenderer = exports.SyncedBlockNodeComponentRenderer
36
55
  return /*#__PURE__*/_react.default.createElement(_actions.RendererActionsContext, null, /*#__PURE__*/_react.default.createElement("div", {
37
56
  "data-sync-block": true,
38
57
  "data-testid": "sync-block-renderer-wrapper",
39
- "data-resource-id": props.resourceId,
40
- "data-local-id": props.localId
58
+ "data-resource-id": resourceId,
59
+ "data-local-id": localId
41
60
  }, /*#__PURE__*/_react.default.createElement(_renderer.ReactRenderer, {
42
61
  appearance: "full-width",
43
62
  adfStage: "stage0",
44
63
  document: syncBlockDoc,
45
64
  disableHeadingIDs: true,
46
- dataProviders: props.providers
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
47
81
  })));
48
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,12 +58,28 @@ 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(_ref2) {
48
- var useFetchSyncBlockData = _ref2.useFetchSyncBlockData,
49
- syncBlockRendererDataProviders = _ref2.syncBlockRendererDataProviders;
79
+ var SyncedBlockRendererComponent = function SyncedBlockRendererComponent(_ref3) {
80
+ var useFetchSyncBlockData = _ref3.useFetchSyncBlockData,
81
+ syncBlockRendererDataProviders = _ref3.syncBlockRendererDataProviders,
82
+ syncBlockRendererOptions = _ref3.syncBlockRendererOptions;
50
83
  var _useFetchSyncBlockDat = useFetchSyncBlockData(),
51
84
  syncBlockInstance = _useFetchSyncBlockDat.syncBlockInstance;
52
85
  var providerFactory = (0, _react.useMemo)(function () {
@@ -64,7 +97,8 @@ var SyncedBlockRendererComponent = function SyncedBlockRendererComponent(_ref2)
64
97
  }
65
98
  return /*#__PURE__*/_react.default.createElement(SyncedBlockRendererWrapper, {
66
99
  fetchedData: syncBlockInstance.data,
67
- providerFactory: providerFactory
100
+ providerFactory: providerFactory,
101
+ options: syncBlockRendererOptions
68
102
  });
69
103
  };
70
104
  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 isSyncBlockDataProvider = dataProvider => {
4
- return dataProvider.name === 'syncBlockProvider';
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 = (dataProvider, doc) => {
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.filter(node => node.type === 'syncBlock');
14
- const syncBlockStoreManager = isSyncBlockDataProvider(dataProvider) ? new SyncBlockStoreManager(dataProvider) : undefined;
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
- ...props,
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 {};
@@ -4,12 +4,33 @@ 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 = props => {
7
+ export const SyncedBlockNodeComponentRenderer = ({
8
+ nodeProps,
9
+ syncBlockStoreManager,
10
+ rendererOptions
11
+ }) => {
8
12
  const {
9
13
  resourceId,
10
14
  localId,
11
- syncBlockStoreManager
12
- } = props;
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 : {};
13
34
  const {
14
35
  syncBlockInstance,
15
36
  isLoading
@@ -21,7 +42,7 @@ export const SyncedBlockNodeComponentRenderer = props => {
21
42
  var _syncBlockInstance$er;
22
43
  return /*#__PURE__*/React.createElement(SyncedBlockErrorComponent, {
23
44
  error: (_syncBlockInstance$er = syncBlockInstance === null || syncBlockInstance === void 0 ? void 0 : syncBlockInstance.error) !== null && _syncBlockInstance$er !== void 0 ? _syncBlockInstance$er : SyncBlockError.Errored,
24
- resourceId: props.resourceId
45
+ resourceId: resourceId
25
46
  });
26
47
  }
27
48
  const syncBlockDoc = {
@@ -32,13 +53,28 @@ export const SyncedBlockNodeComponentRenderer = props => {
32
53
  return /*#__PURE__*/React.createElement(RendererActionsContext, null, /*#__PURE__*/React.createElement("div", {
33
54
  "data-sync-block": true,
34
55
  "data-testid": "sync-block-renderer-wrapper",
35
- "data-resource-id": props.resourceId,
36
- "data-local-id": props.localId
56
+ "data-resource-id": resourceId,
57
+ "data-local-id": localId
37
58
  }, /*#__PURE__*/React.createElement(ReactRenderer, {
38
59
  appearance: "full-width",
39
60
  adfStage: "stage0",
40
61
  document: syncBlockDoc,
41
62
  disableHeadingIDs: true,
42
- dataProviders: props.providers
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
43
79
  })));
44
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,12 +52,28 @@ 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
78
  const {
45
79
  syncBlockInstance
@@ -59,7 +93,8 @@ const SyncedBlockRendererComponent = ({
59
93
  }
60
94
  return /*#__PURE__*/React.createElement(SyncedBlockRendererWrapper, {
61
95
  fetchedData: syncBlockInstance.data,
62
- providerFactory: providerFactory
96
+ providerFactory: providerFactory,
97
+ options: syncBlockRendererOptions
63
98
  });
64
99
  };
65
100
  export const SyncedBlockRenderer = /*#__PURE__*/memo(SyncedBlockRendererComponent);
@@ -1,30 +1,30 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
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 isSyncBlockDataProvider = function isSyncBlockDataProvider(dataProvider) {
7
- return dataProvider.name === 'syncBlockProvider';
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(dataProvider, doc) {
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.filter(function (node) {
15
- return node.type === 'syncBlock';
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(_objectSpread(_objectSpread({}, props), {}, {
27
- syncBlockStoreManager: syncBlockStoreManager
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
- useFetchSyncBlockData = _ref.useFetchSyncBlockData;
6
- return /*#__PURE__*/React.createElement(SyncedBlockRenderer, {
7
- syncBlockRendererDataProviders: syncBlockRendererDataProviders,
8
- useFetchSyncBlockData: useFetchSyncBlockData
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 {};
@@ -4,10 +4,29 @@ 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 var SyncedBlockNodeComponentRenderer = function SyncedBlockNodeComponentRenderer(props) {
8
- var resourceId = props.resourceId,
9
- localId = props.localId,
10
- syncBlockStoreManager = props.syncBlockStoreManager;
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;
11
30
  var _useFetchSyncBlockDat = useFetchSyncBlockData(syncBlockStoreManager, resourceId, localId),
12
31
  syncBlockInstance = _useFetchSyncBlockDat.syncBlockInstance,
13
32
  isLoading = _useFetchSyncBlockDat.isLoading;
@@ -18,7 +37,7 @@ export var SyncedBlockNodeComponentRenderer = function SyncedBlockNodeComponentR
18
37
  var _syncBlockInstance$er;
19
38
  return /*#__PURE__*/React.createElement(SyncedBlockErrorComponent, {
20
39
  error: (_syncBlockInstance$er = syncBlockInstance === null || syncBlockInstance === void 0 ? void 0 : syncBlockInstance.error) !== null && _syncBlockInstance$er !== void 0 ? _syncBlockInstance$er : SyncBlockError.Errored,
21
- resourceId: props.resourceId
40
+ resourceId: resourceId
22
41
  });
23
42
  }
24
43
  var syncBlockDoc = {
@@ -29,13 +48,28 @@ export var SyncedBlockNodeComponentRenderer = function SyncedBlockNodeComponentR
29
48
  return /*#__PURE__*/React.createElement(RendererActionsContext, null, /*#__PURE__*/React.createElement("div", {
30
49
  "data-sync-block": true,
31
50
  "data-testid": "sync-block-renderer-wrapper",
32
- "data-resource-id": props.resourceId,
33
- "data-local-id": props.localId
51
+ "data-resource-id": resourceId,
52
+ "data-local-id": localId
34
53
  }, /*#__PURE__*/React.createElement(ReactRenderer, {
35
54
  appearance: "full-width",
36
55
  adfStage: "stage0",
37
56
  document: syncBlockDoc,
38
57
  disableHeadingIDs: true,
39
- dataProviders: props.providers
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
40
74
  })));
41
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,12 +50,28 @@ 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(_ref2) {
40
- var useFetchSyncBlockData = _ref2.useFetchSyncBlockData,
41
- syncBlockRendererDataProviders = _ref2.syncBlockRendererDataProviders;
71
+ var SyncedBlockRendererComponent = function SyncedBlockRendererComponent(_ref3) {
72
+ var useFetchSyncBlockData = _ref3.useFetchSyncBlockData,
73
+ syncBlockRendererDataProviders = _ref3.syncBlockRendererDataProviders,
74
+ syncBlockRendererOptions = _ref3.syncBlockRendererOptions;
42
75
  var _useFetchSyncBlockDat = useFetchSyncBlockData(),
43
76
  syncBlockInstance = _useFetchSyncBlockDat.syncBlockInstance;
44
77
  var providerFactory = useMemo(function () {
@@ -56,7 +89,8 @@ var SyncedBlockRendererComponent = function SyncedBlockRendererComponent(_ref2)
56
89
  }
57
90
  return /*#__PURE__*/React.createElement(SyncedBlockRendererWrapper, {
58
91
  fetchedData: syncBlockInstance.data,
59
- providerFactory: providerFactory
92
+ providerFactory: providerFactory,
93
+ options: syncBlockRendererOptions
60
94
  });
61
95
  };
62
96
  export var SyncedBlockRenderer = /*#__PURE__*/memo(SyncedBlockRendererComponent);
@@ -1,5 +1,11 @@
1
1
  import type { DocNode } from '@atlaskit/adf-schema';
2
- import { type SyncBlockInstance, type SyncBlockNode } from '@atlaskit/editor-synced-block-provider';
3
- import type { NodeDataProvider } from '@atlaskit/node-data-provider';
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
- export declare const getSyncedBlockNodeComponent: (dataProvider: NodeDataProvider<SyncBlockNode, SyncBlockInstance>, doc: DocNode) => (props: SyncedBlockNodeProps) => import("react").JSX.Element;
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 { type SyncedBlockRendererProps } from './ui/SyncedBlockRenderer';
3
- export declare const getSyncedBlockRenderer: ({ syncBlockRendererDataProviders, useFetchSyncBlockData, }: SyncedBlockRendererProps) => React.JSX.Element;
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
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 declare const SyncedBlockNodeComponentRenderer: (props: SyncedBlockNodeProps & {
10
+ export type SyncedBlockNodeComponentRendererProps = {
11
+ nodeProps: SyncedBlockNodeProps;
12
+ rendererOptions: SyncedBlockRendererOptions | undefined;
10
13
  syncBlockStoreManager: SyncBlockStoreManager;
11
- }) => React.JSX.Element;
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 { type SyncBlockInstance, type SyncBlockNode } from '@atlaskit/editor-synced-block-provider';
3
- import type { NodeDataProvider } from '@atlaskit/node-data-provider';
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
- export declare const getSyncedBlockNodeComponent: (dataProvider: NodeDataProvider<SyncBlockNode, SyncBlockInstance>, doc: DocNode) => (props: SyncedBlockNodeProps) => import("react").JSX.Element;
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 { type SyncedBlockRendererProps } from './ui/SyncedBlockRenderer';
3
- export declare const getSyncedBlockRenderer: ({ syncBlockRendererDataProviders, useFetchSyncBlockData, }: SyncedBlockRendererProps) => React.JSX.Element;
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
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 declare const SyncedBlockNodeComponentRenderer: (props: SyncedBlockNodeProps & {
10
+ export type SyncedBlockNodeComponentRendererProps = {
11
+ nodeProps: SyncedBlockNodeProps;
12
+ rendererOptions: SyncedBlockRendererOptions | undefined;
10
13
  syncBlockStoreManager: SyncBlockStoreManager;
11
- }) => React.JSX.Element;
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.0",
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,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",