@atlaskit/editor-synced-block-renderer 3.1.0 → 3.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/afm-cc/tsconfig.json +3 -0
  3. package/afm-products/tsconfig.json +3 -0
  4. package/dist/cjs/getSyncedBlockNodeComponent.js +18 -19
  5. package/dist/cjs/getSyncedBlockRenderer.js +10 -5
  6. package/dist/cjs/types.js +5 -0
  7. package/dist/cjs/ui/AKRendererWrapper.js +67 -0
  8. package/dist/cjs/ui/SyncedBlockNodeComponentRenderer.js +14 -19
  9. package/dist/cjs/ui/SyncedBlockRenderer.js +15 -30
  10. package/dist/es2019/getSyncedBlockNodeComponent.js +14 -13
  11. package/dist/es2019/getSyncedBlockRenderer.js +4 -0
  12. package/dist/es2019/types.js +1 -0
  13. package/dist/es2019/ui/AKRendererWrapper.js +60 -0
  14. package/dist/es2019/ui/SyncedBlockNodeComponentRenderer.js +14 -18
  15. package/dist/es2019/ui/SyncedBlockRenderer.js +13 -29
  16. package/dist/esm/getSyncedBlockNodeComponent.js +19 -19
  17. package/dist/esm/getSyncedBlockRenderer.js +10 -5
  18. package/dist/esm/types.js +1 -0
  19. package/dist/esm/ui/AKRendererWrapper.js +59 -0
  20. package/dist/esm/ui/SyncedBlockNodeComponentRenderer.js +14 -19
  21. package/dist/esm/ui/SyncedBlockRenderer.js +15 -30
  22. package/dist/types/getSyncedBlockNodeComponent.d.ts +9 -3
  23. package/dist/types/getSyncedBlockRenderer.d.ts +9 -2
  24. package/dist/types/types.d.ts +2 -0
  25. package/dist/types/ui/AKRendererWrapper.d.ts +9 -0
  26. package/dist/types/ui/SyncedBlockNodeComponentRenderer.d.ts +6 -2
  27. package/dist/types/ui/SyncedBlockRenderer.d.ts +3 -1
  28. package/dist/types-ts4.5/getSyncedBlockNodeComponent.d.ts +9 -3
  29. package/dist/types-ts4.5/getSyncedBlockRenderer.d.ts +9 -2
  30. package/dist/types-ts4.5/types.d.ts +2 -0
  31. package/dist/types-ts4.5/ui/AKRendererWrapper.d.ts +9 -0
  32. package/dist/types-ts4.5/ui/SyncedBlockNodeComponentRenderer.d.ts +6 -2
  33. package/dist/types-ts4.5/ui/SyncedBlockRenderer.d.ts +3 -1
  34. package/package.json +2 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # @atlaskit/editor-synced-block-renderer
2
2
 
3
+ ## 3.1.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [`9e1ddcc85a330`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/9e1ddcc85a330) -
8
+ EDITOR-2673 Enable nested tables in reference synced blocks
9
+
10
+ ## 3.1.1
11
+
12
+ ### Patch Changes
13
+
14
+ - [`aa14795cecd60`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/aa14795cecd60) -
15
+ EDITOR-2350 Pass media options to sync block nested renderer.
16
+ - Updated dependencies
17
+
3
18
  ## 3.1.0
4
19
 
5
20
  ### Minor Changes
@@ -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
  },
@@ -28,6 +28,9 @@
28
28
  {
29
29
  "path": "../../../design-system/css/afm-products/tsconfig.json"
30
30
  },
31
+ {
32
+ "path": "../../editor-plugin-synced-block/afm-products/tsconfig.json"
33
+ },
31
34
  {
32
35
  "path": "../../editor-synced-block-provider/afm-products/tsconfig.json"
33
36
  },
@@ -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
+ });
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.AKRendererWrapper = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _renderer = require("@atlaskit/renderer");
10
+ var _actions = require("@atlaskit/renderer/actions");
11
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
12
+ var ValidationContextWrapper = function ValidationContextWrapper(_ref) {
13
+ var children = _ref.children;
14
+ var validationContextValue = (0, _react.useMemo)(function () {
15
+ return {
16
+ allowNestedTables: true
17
+ };
18
+ }, []);
19
+ return /*#__PURE__*/_react.default.createElement(_renderer.ValidationContextProvider, {
20
+ value: validationContextValue
21
+ }, children);
22
+ };
23
+ var AKRendererWrapper = exports.AKRendererWrapper = /*#__PURE__*/(0, _react.memo)(function (_ref2) {
24
+ var doc = _ref2.doc,
25
+ dataProviders = _ref2.dataProviders,
26
+ options = _ref2.options;
27
+ var _ref3 = options !== null && options !== void 0 ? options : {},
28
+ allowAltTextOnImages = _ref3.allowAltTextOnImages,
29
+ allowAnnotations = _ref3.allowAnnotations,
30
+ allowColumnSorting = _ref3.allowColumnSorting,
31
+ allowCopyToClipboard = _ref3.allowCopyToClipboard,
32
+ allowCustomPanels = _ref3.allowCustomPanels,
33
+ allowHeadingAnchorLinks = _ref3.allowHeadingAnchorLinks,
34
+ allowPlaceholderText = _ref3.allowPlaceholderText,
35
+ allowRendererContainerStyles = _ref3.allowRendererContainerStyles,
36
+ allowSelectAllTrap = _ref3.allowSelectAllTrap,
37
+ allowUgcScrubber = _ref3.allowUgcScrubber,
38
+ allowWrapCodeBlock = _ref3.allowWrapCodeBlock,
39
+ emojiResourceConfig = _ref3.emojiResourceConfig,
40
+ media = _ref3.media,
41
+ smartLinks = _ref3.smartLinks,
42
+ stickyHeaders = _ref3.stickyHeaders;
43
+ return /*#__PURE__*/_react.default.createElement(_actions.RendererActionsContext, null, /*#__PURE__*/_react.default.createElement(ValidationContextWrapper, null, /*#__PURE__*/_react.default.createElement("div", {
44
+ "data-testid": "sync-block-renderer-wrapper"
45
+ }, /*#__PURE__*/_react.default.createElement(_renderer.ReactRenderer, {
46
+ appearance: "full-width",
47
+ adfStage: "stage0",
48
+ document: doc,
49
+ disableHeadingIDs: true,
50
+ dataProviders: dataProviders,
51
+ allowAltTextOnImages: allowAltTextOnImages,
52
+ allowAnnotations: allowAnnotations,
53
+ allowColumnSorting: allowColumnSorting,
54
+ allowCopyToClipboard: allowCopyToClipboard,
55
+ allowCustomPanels: allowCustomPanels,
56
+ allowHeadingAnchorLinks: allowHeadingAnchorLinks,
57
+ allowPlaceholderText: allowPlaceholderText,
58
+ allowRendererContainerStyles: allowRendererContainerStyles,
59
+ allowSelectAllTrap: allowSelectAllTrap,
60
+ allowUgcScrubber: allowUgcScrubber,
61
+ allowWrapCodeBlock: allowWrapCodeBlock,
62
+ emojiResourceConfig: emojiResourceConfig,
63
+ media: media,
64
+ smartLinks: smartLinks,
65
+ stickyHeaders: stickyHeaders
66
+ }))));
67
+ });
@@ -7,14 +7,16 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.SyncedBlockNodeComponentRenderer = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _editorSyncedBlockProvider = require("@atlaskit/editor-synced-block-provider");
10
- var _renderer = require("@atlaskit/renderer");
11
- var _actions = require("@atlaskit/renderer/actions");
10
+ var _AKRendererWrapper = require("./AKRendererWrapper");
12
11
  var _SyncedBlockErrorComponent = require("./SyncedBlockErrorComponent");
13
12
  var _SyncedBlockLoadingState = require("./SyncedBlockLoadingState");
14
- var SyncedBlockNodeComponentRenderer = exports.SyncedBlockNodeComponentRenderer = function SyncedBlockNodeComponentRenderer(props) {
15
- var resourceId = props.resourceId,
16
- localId = props.localId,
17
- syncBlockStoreManager = props.syncBlockStoreManager;
13
+ var SyncedBlockNodeComponentRenderer = exports.SyncedBlockNodeComponentRenderer = function SyncedBlockNodeComponentRenderer(_ref) {
14
+ var nodeProps = _ref.nodeProps,
15
+ syncBlockStoreManager = _ref.syncBlockStoreManager,
16
+ rendererOptions = _ref.rendererOptions;
17
+ var resourceId = nodeProps.resourceId,
18
+ localId = nodeProps.localId,
19
+ providers = nodeProps.providers;
18
20
  var _useFetchSyncBlockDat = (0, _editorSyncedBlockProvider.useFetchSyncBlockData)(syncBlockStoreManager, resourceId, localId),
19
21
  syncBlockInstance = _useFetchSyncBlockDat.syncBlockInstance,
20
22
  isLoading = _useFetchSyncBlockDat.isLoading;
@@ -25,7 +27,7 @@ var SyncedBlockNodeComponentRenderer = exports.SyncedBlockNodeComponentRenderer
25
27
  var _syncBlockInstance$er;
26
28
  return /*#__PURE__*/_react.default.createElement(_SyncedBlockErrorComponent.SyncedBlockErrorComponent, {
27
29
  error: (_syncBlockInstance$er = syncBlockInstance === null || syncBlockInstance === void 0 ? void 0 : syncBlockInstance.error) !== null && _syncBlockInstance$er !== void 0 ? _syncBlockInstance$er : _editorSyncedBlockProvider.SyncBlockError.Errored,
28
- resourceId: props.resourceId
30
+ resourceId: resourceId
29
31
  });
30
32
  }
31
33
  var syncBlockDoc = {
@@ -33,16 +35,9 @@ var SyncedBlockNodeComponentRenderer = exports.SyncedBlockNodeComponentRenderer
33
35
  version: 1,
34
36
  type: 'doc'
35
37
  };
36
- return /*#__PURE__*/_react.default.createElement(_actions.RendererActionsContext, null, /*#__PURE__*/_react.default.createElement("div", {
37
- "data-sync-block": true,
38
- "data-testid": "sync-block-renderer-wrapper",
39
- "data-resource-id": props.resourceId,
40
- "data-local-id": props.localId
41
- }, /*#__PURE__*/_react.default.createElement(_renderer.ReactRenderer, {
42
- appearance: "full-width",
43
- adfStage: "stage0",
44
- document: syncBlockDoc,
45
- disableHeadingIDs: true,
46
- dataProviders: props.providers
47
- })));
38
+ return /*#__PURE__*/_react.default.createElement(_AKRendererWrapper.AKRendererWrapper, {
39
+ doc: syncBlockDoc,
40
+ dataProviders: providers,
41
+ options: rendererOptions
42
+ });
48
43
  };
@@ -8,8 +8,7 @@ exports.convertSyncBlockRendererDataProvidersToProviderFactory = exports.SyncedB
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  var _providerFactory = require("@atlaskit/editor-common/provider-factory");
10
10
  var _editorSyncedBlockProvider = require("@atlaskit/editor-synced-block-provider");
11
- var _renderer = require("@atlaskit/renderer");
12
- var _actions = require("@atlaskit/renderer/actions");
11
+ var _AKRendererWrapper = require("./AKRendererWrapper");
13
12
  var _SyncedBlockErrorComponent = require("./SyncedBlockErrorComponent");
14
13
  var _SyncedBlockLoadingState = require("./SyncedBlockLoadingState");
15
14
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
@@ -23,33 +22,13 @@ var convertSyncBlockRendererDataProvidersToProviderFactory = exports.convertSync
23
22
  taskDecisionProvider: dataProviders === null || dataProviders === void 0 ? void 0 : dataProviders.taskDecisionProvider
24
23
  });
25
24
  };
26
- var SyncedBlockRendererWrapper = function SyncedBlockRendererWrapper(_ref) {
27
- var fetchedData = _ref.fetchedData,
28
- providerFactory = _ref.providerFactory;
29
- var syncBlockDoc = (0, _react.useMemo)(function () {
30
- var _fetchedData$content;
31
- return {
32
- content: (_fetchedData$content = fetchedData.content) !== null && _fetchedData$content !== void 0 ? _fetchedData$content : [],
33
- version: 1,
34
- type: 'doc'
35
- };
36
- }, [fetchedData]);
37
- return /*#__PURE__*/_react.default.createElement(_actions.RendererActionsContext, null, /*#__PURE__*/_react.default.createElement("div", {
38
- "data-testid": "sync-block-renderer-wrapper"
39
- }, /*#__PURE__*/_react.default.createElement(_renderer.ReactRenderer, {
40
- appearance: "full-width",
41
- adfStage: "stage0",
42
- document: syncBlockDoc,
43
- disableHeadingIDs: true,
44
- dataProviders: providerFactory
45
- })));
46
- };
47
- var SyncedBlockRendererComponent = function SyncedBlockRendererComponent(_ref2) {
48
- var useFetchSyncBlockData = _ref2.useFetchSyncBlockData,
49
- syncBlockRendererDataProviders = _ref2.syncBlockRendererDataProviders;
25
+ var SyncedBlockRendererComponent = function SyncedBlockRendererComponent(_ref) {
26
+ var useFetchSyncBlockData = _ref.useFetchSyncBlockData,
27
+ syncBlockRendererDataProviders = _ref.syncBlockRendererDataProviders,
28
+ syncBlockRendererOptions = _ref.syncBlockRendererOptions;
50
29
  var _useFetchSyncBlockDat = useFetchSyncBlockData(),
51
30
  syncBlockInstance = _useFetchSyncBlockDat.syncBlockInstance;
52
- var providerFactory = (0, _react.useMemo)(function () {
31
+ var dataProviders = (0, _react.useMemo)(function () {
53
32
  return convertSyncBlockRendererDataProvidersToProviderFactory(syncBlockRendererDataProviders);
54
33
  }, [syncBlockRendererDataProviders]);
55
34
  if (!syncBlockInstance) {
@@ -62,9 +41,15 @@ var SyncedBlockRendererComponent = function SyncedBlockRendererComponent(_ref2)
62
41
  resourceId: syncBlockInstance.resourceId
63
42
  });
64
43
  }
65
- return /*#__PURE__*/_react.default.createElement(SyncedBlockRendererWrapper, {
66
- fetchedData: syncBlockInstance.data,
67
- providerFactory: providerFactory
44
+ var syncBlockDoc = {
45
+ content: syncBlockInstance.data.content,
46
+ version: 1,
47
+ type: 'doc'
48
+ };
49
+ return /*#__PURE__*/_react.default.createElement(_AKRendererWrapper.AKRendererWrapper, {
50
+ doc: syncBlockDoc,
51
+ dataProviders: dataProviders,
52
+ options: syncBlockRendererOptions
68
53
  });
69
54
  };
70
55
  var SyncedBlockRenderer = exports.SyncedBlockRenderer = /*#__PURE__*/(0, _react.memo)(SyncedBlockRendererComponent);
@@ -1,26 +1,27 @@
1
- import { SyncBlockStoreManager } from '@atlaskit/editor-synced-block-provider';
1
+ import { convertSyncBlockJSONNodeToSyncBlockNode, SyncBlockStoreManager } from '@atlaskit/editor-synced-block-provider';
2
2
  import { SyncedBlockNodeComponentRenderer } from './ui/SyncedBlockNodeComponentRenderer';
3
- const 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 {};
@@ -0,0 +1,60 @@
1
+ import React, { memo, useMemo } from 'react';
2
+ import { ReactRenderer, ValidationContextProvider } from '@atlaskit/renderer';
3
+ import { RendererActionsContext } from '@atlaskit/renderer/actions';
4
+ const ValidationContextWrapper = ({
5
+ children
6
+ }) => {
7
+ const validationContextValue = useMemo(() => ({
8
+ allowNestedTables: true
9
+ }), []);
10
+ return /*#__PURE__*/React.createElement(ValidationContextProvider, {
11
+ value: validationContextValue
12
+ }, children);
13
+ };
14
+ export const AKRendererWrapper = /*#__PURE__*/memo(({
15
+ doc,
16
+ dataProviders,
17
+ options
18
+ }) => {
19
+ const {
20
+ allowAltTextOnImages,
21
+ allowAnnotations,
22
+ allowColumnSorting,
23
+ allowCopyToClipboard,
24
+ allowCustomPanels,
25
+ allowHeadingAnchorLinks,
26
+ allowPlaceholderText,
27
+ allowRendererContainerStyles,
28
+ allowSelectAllTrap,
29
+ allowUgcScrubber,
30
+ allowWrapCodeBlock,
31
+ emojiResourceConfig,
32
+ media,
33
+ smartLinks,
34
+ stickyHeaders
35
+ } = options !== null && options !== void 0 ? options : {};
36
+ return /*#__PURE__*/React.createElement(RendererActionsContext, null, /*#__PURE__*/React.createElement(ValidationContextWrapper, null, /*#__PURE__*/React.createElement("div", {
37
+ "data-testid": "sync-block-renderer-wrapper"
38
+ }, /*#__PURE__*/React.createElement(ReactRenderer, {
39
+ appearance: "full-width",
40
+ adfStage: "stage0",
41
+ document: doc,
42
+ disableHeadingIDs: true,
43
+ dataProviders: dataProviders,
44
+ allowAltTextOnImages: allowAltTextOnImages,
45
+ allowAnnotations: allowAnnotations,
46
+ allowColumnSorting: allowColumnSorting,
47
+ allowCopyToClipboard: allowCopyToClipboard,
48
+ allowCustomPanels: allowCustomPanels,
49
+ allowHeadingAnchorLinks: allowHeadingAnchorLinks,
50
+ allowPlaceholderText: allowPlaceholderText,
51
+ allowRendererContainerStyles: allowRendererContainerStyles,
52
+ allowSelectAllTrap: allowSelectAllTrap,
53
+ allowUgcScrubber: allowUgcScrubber,
54
+ allowWrapCodeBlock: allowWrapCodeBlock,
55
+ emojiResourceConfig: emojiResourceConfig,
56
+ media: media,
57
+ smartLinks: smartLinks,
58
+ stickyHeaders: stickyHeaders
59
+ }))));
60
+ });
@@ -1,15 +1,18 @@
1
1
  import React from 'react';
2
2
  import { SyncBlockError, useFetchSyncBlockData } from '@atlaskit/editor-synced-block-provider';
3
- import { ReactRenderer } from '@atlaskit/renderer';
4
- import { RendererActionsContext } from '@atlaskit/renderer/actions';
3
+ import { AKRendererWrapper } from './AKRendererWrapper';
5
4
  import { SyncedBlockErrorComponent } from './SyncedBlockErrorComponent';
6
5
  import { SyncedBlockLoadingState } from './SyncedBlockLoadingState';
7
- export const SyncedBlockNodeComponentRenderer = props => {
6
+ export const SyncedBlockNodeComponentRenderer = ({
7
+ nodeProps,
8
+ syncBlockStoreManager,
9
+ rendererOptions
10
+ }) => {
8
11
  const {
9
12
  resourceId,
10
13
  localId,
11
- syncBlockStoreManager
12
- } = props;
14
+ providers
15
+ } = nodeProps;
13
16
  const {
14
17
  syncBlockInstance,
15
18
  isLoading
@@ -21,7 +24,7 @@ export const SyncedBlockNodeComponentRenderer = props => {
21
24
  var _syncBlockInstance$er;
22
25
  return /*#__PURE__*/React.createElement(SyncedBlockErrorComponent, {
23
26
  error: (_syncBlockInstance$er = syncBlockInstance === null || syncBlockInstance === void 0 ? void 0 : syncBlockInstance.error) !== null && _syncBlockInstance$er !== void 0 ? _syncBlockInstance$er : SyncBlockError.Errored,
24
- resourceId: props.resourceId
27
+ resourceId: resourceId
25
28
  });
26
29
  }
27
30
  const syncBlockDoc = {
@@ -29,16 +32,9 @@ export const SyncedBlockNodeComponentRenderer = props => {
29
32
  version: 1,
30
33
  type: 'doc'
31
34
  };
32
- return /*#__PURE__*/React.createElement(RendererActionsContext, null, /*#__PURE__*/React.createElement("div", {
33
- "data-sync-block": true,
34
- "data-testid": "sync-block-renderer-wrapper",
35
- "data-resource-id": props.resourceId,
36
- "data-local-id": props.localId
37
- }, /*#__PURE__*/React.createElement(ReactRenderer, {
38
- appearance: "full-width",
39
- adfStage: "stage0",
40
- document: syncBlockDoc,
41
- disableHeadingIDs: true,
42
- dataProviders: props.providers
43
- })));
35
+ return /*#__PURE__*/React.createElement(AKRendererWrapper, {
36
+ doc: syncBlockDoc,
37
+ dataProviders: providers,
38
+ options: rendererOptions
39
+ });
44
40
  };
@@ -1,8 +1,7 @@
1
1
  import React, { memo, useMemo } from 'react';
2
2
  import { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
3
3
  import { SyncBlockError } from '@atlaskit/editor-synced-block-provider';
4
- import { ReactRenderer } from '@atlaskit/renderer';
5
- import { RendererActionsContext } from '@atlaskit/renderer/actions';
4
+ import { AKRendererWrapper } from './AKRendererWrapper';
6
5
  import { SyncedBlockErrorComponent } from './SyncedBlockErrorComponent';
7
6
  import { SyncedBlockLoadingState } from './SyncedBlockLoadingState';
8
7
  export const convertSyncBlockRendererDataProvidersToProviderFactory = dataProviders => {
@@ -15,36 +14,15 @@ export const convertSyncBlockRendererDataProvidersToProviderFactory = dataProvid
15
14
  taskDecisionProvider: dataProviders === null || dataProviders === void 0 ? void 0 : dataProviders.taskDecisionProvider
16
15
  });
17
16
  };
18
- const SyncedBlockRendererWrapper = ({
19
- fetchedData,
20
- providerFactory
21
- }) => {
22
- const syncBlockDoc = useMemo(() => {
23
- var _fetchedData$content;
24
- return {
25
- content: (_fetchedData$content = fetchedData.content) !== null && _fetchedData$content !== void 0 ? _fetchedData$content : [],
26
- version: 1,
27
- type: 'doc'
28
- };
29
- }, [fetchedData]);
30
- return /*#__PURE__*/React.createElement(RendererActionsContext, null, /*#__PURE__*/React.createElement("div", {
31
- "data-testid": "sync-block-renderer-wrapper"
32
- }, /*#__PURE__*/React.createElement(ReactRenderer, {
33
- appearance: "full-width",
34
- adfStage: "stage0",
35
- document: syncBlockDoc,
36
- disableHeadingIDs: true,
37
- dataProviders: providerFactory
38
- })));
39
- };
40
17
  const SyncedBlockRendererComponent = ({
41
18
  useFetchSyncBlockData,
42
- syncBlockRendererDataProviders
19
+ syncBlockRendererDataProviders,
20
+ syncBlockRendererOptions
43
21
  }) => {
44
22
  const {
45
23
  syncBlockInstance
46
24
  } = useFetchSyncBlockData();
47
- const providerFactory = useMemo(() => {
25
+ const dataProviders = useMemo(() => {
48
26
  return convertSyncBlockRendererDataProvidersToProviderFactory(syncBlockRendererDataProviders);
49
27
  }, [syncBlockRendererDataProviders]);
50
28
  if (!syncBlockInstance) {
@@ -57,9 +35,15 @@ const SyncedBlockRendererComponent = ({
57
35
  resourceId: syncBlockInstance.resourceId
58
36
  });
59
37
  }
60
- return /*#__PURE__*/React.createElement(SyncedBlockRendererWrapper, {
61
- fetchedData: syncBlockInstance.data,
62
- providerFactory: providerFactory
38
+ const syncBlockDoc = {
39
+ content: syncBlockInstance.data.content,
40
+ version: 1,
41
+ type: 'doc'
42
+ };
43
+ return /*#__PURE__*/React.createElement(AKRendererWrapper, {
44
+ doc: syncBlockDoc,
45
+ dataProviders: dataProviders,
46
+ options: syncBlockRendererOptions
63
47
  });
64
48
  };
65
49
  export const SyncedBlockRenderer = /*#__PURE__*/memo(SyncedBlockRendererComponent);
@@ -1,30 +1,30 @@
1
- import _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 {};
@@ -0,0 +1,59 @@
1
+ import React, { memo, useMemo } from 'react';
2
+ import { ReactRenderer, ValidationContextProvider } from '@atlaskit/renderer';
3
+ import { RendererActionsContext } from '@atlaskit/renderer/actions';
4
+ var ValidationContextWrapper = function ValidationContextWrapper(_ref) {
5
+ var children = _ref.children;
6
+ var validationContextValue = useMemo(function () {
7
+ return {
8
+ allowNestedTables: true
9
+ };
10
+ }, []);
11
+ return /*#__PURE__*/React.createElement(ValidationContextProvider, {
12
+ value: validationContextValue
13
+ }, children);
14
+ };
15
+ export var AKRendererWrapper = /*#__PURE__*/memo(function (_ref2) {
16
+ var doc = _ref2.doc,
17
+ dataProviders = _ref2.dataProviders,
18
+ options = _ref2.options;
19
+ var _ref3 = options !== null && options !== void 0 ? options : {},
20
+ allowAltTextOnImages = _ref3.allowAltTextOnImages,
21
+ allowAnnotations = _ref3.allowAnnotations,
22
+ allowColumnSorting = _ref3.allowColumnSorting,
23
+ allowCopyToClipboard = _ref3.allowCopyToClipboard,
24
+ allowCustomPanels = _ref3.allowCustomPanels,
25
+ allowHeadingAnchorLinks = _ref3.allowHeadingAnchorLinks,
26
+ allowPlaceholderText = _ref3.allowPlaceholderText,
27
+ allowRendererContainerStyles = _ref3.allowRendererContainerStyles,
28
+ allowSelectAllTrap = _ref3.allowSelectAllTrap,
29
+ allowUgcScrubber = _ref3.allowUgcScrubber,
30
+ allowWrapCodeBlock = _ref3.allowWrapCodeBlock,
31
+ emojiResourceConfig = _ref3.emojiResourceConfig,
32
+ media = _ref3.media,
33
+ smartLinks = _ref3.smartLinks,
34
+ stickyHeaders = _ref3.stickyHeaders;
35
+ return /*#__PURE__*/React.createElement(RendererActionsContext, null, /*#__PURE__*/React.createElement(ValidationContextWrapper, null, /*#__PURE__*/React.createElement("div", {
36
+ "data-testid": "sync-block-renderer-wrapper"
37
+ }, /*#__PURE__*/React.createElement(ReactRenderer, {
38
+ appearance: "full-width",
39
+ adfStage: "stage0",
40
+ document: doc,
41
+ disableHeadingIDs: true,
42
+ dataProviders: dataProviders,
43
+ allowAltTextOnImages: allowAltTextOnImages,
44
+ allowAnnotations: allowAnnotations,
45
+ allowColumnSorting: allowColumnSorting,
46
+ allowCopyToClipboard: allowCopyToClipboard,
47
+ allowCustomPanels: allowCustomPanels,
48
+ allowHeadingAnchorLinks: allowHeadingAnchorLinks,
49
+ allowPlaceholderText: allowPlaceholderText,
50
+ allowRendererContainerStyles: allowRendererContainerStyles,
51
+ allowSelectAllTrap: allowSelectAllTrap,
52
+ allowUgcScrubber: allowUgcScrubber,
53
+ allowWrapCodeBlock: allowWrapCodeBlock,
54
+ emojiResourceConfig: emojiResourceConfig,
55
+ media: media,
56
+ smartLinks: smartLinks,
57
+ stickyHeaders: stickyHeaders
58
+ }))));
59
+ });
@@ -1,13 +1,15 @@
1
1
  import React from 'react';
2
2
  import { SyncBlockError, useFetchSyncBlockData } from '@atlaskit/editor-synced-block-provider';
3
- import { ReactRenderer } from '@atlaskit/renderer';
4
- import { RendererActionsContext } from '@atlaskit/renderer/actions';
3
+ import { AKRendererWrapper } from './AKRendererWrapper';
5
4
  import { SyncedBlockErrorComponent } from './SyncedBlockErrorComponent';
6
5
  import { SyncedBlockLoadingState } from './SyncedBlockLoadingState';
7
- export var SyncedBlockNodeComponentRenderer = function SyncedBlockNodeComponentRenderer(props) {
8
- var resourceId = props.resourceId,
9
- localId = props.localId,
10
- syncBlockStoreManager = props.syncBlockStoreManager;
6
+ export var SyncedBlockNodeComponentRenderer = function SyncedBlockNodeComponentRenderer(_ref) {
7
+ var nodeProps = _ref.nodeProps,
8
+ syncBlockStoreManager = _ref.syncBlockStoreManager,
9
+ rendererOptions = _ref.rendererOptions;
10
+ var resourceId = nodeProps.resourceId,
11
+ localId = nodeProps.localId,
12
+ providers = nodeProps.providers;
11
13
  var _useFetchSyncBlockDat = useFetchSyncBlockData(syncBlockStoreManager, resourceId, localId),
12
14
  syncBlockInstance = _useFetchSyncBlockDat.syncBlockInstance,
13
15
  isLoading = _useFetchSyncBlockDat.isLoading;
@@ -18,7 +20,7 @@ export var SyncedBlockNodeComponentRenderer = function SyncedBlockNodeComponentR
18
20
  var _syncBlockInstance$er;
19
21
  return /*#__PURE__*/React.createElement(SyncedBlockErrorComponent, {
20
22
  error: (_syncBlockInstance$er = syncBlockInstance === null || syncBlockInstance === void 0 ? void 0 : syncBlockInstance.error) !== null && _syncBlockInstance$er !== void 0 ? _syncBlockInstance$er : SyncBlockError.Errored,
21
- resourceId: props.resourceId
23
+ resourceId: resourceId
22
24
  });
23
25
  }
24
26
  var syncBlockDoc = {
@@ -26,16 +28,9 @@ export var SyncedBlockNodeComponentRenderer = function SyncedBlockNodeComponentR
26
28
  version: 1,
27
29
  type: 'doc'
28
30
  };
29
- return /*#__PURE__*/React.createElement(RendererActionsContext, null, /*#__PURE__*/React.createElement("div", {
30
- "data-sync-block": true,
31
- "data-testid": "sync-block-renderer-wrapper",
32
- "data-resource-id": props.resourceId,
33
- "data-local-id": props.localId
34
- }, /*#__PURE__*/React.createElement(ReactRenderer, {
35
- appearance: "full-width",
36
- adfStage: "stage0",
37
- document: syncBlockDoc,
38
- disableHeadingIDs: true,
39
- dataProviders: props.providers
40
- })));
31
+ return /*#__PURE__*/React.createElement(AKRendererWrapper, {
32
+ doc: syncBlockDoc,
33
+ dataProviders: providers,
34
+ options: rendererOptions
35
+ });
41
36
  };
@@ -1,8 +1,7 @@
1
1
  import React, { memo, useMemo } from 'react';
2
2
  import { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
3
3
  import { SyncBlockError } from '@atlaskit/editor-synced-block-provider';
4
- import { ReactRenderer } from '@atlaskit/renderer';
5
- import { RendererActionsContext } from '@atlaskit/renderer/actions';
4
+ import { AKRendererWrapper } from './AKRendererWrapper';
6
5
  import { SyncedBlockErrorComponent } from './SyncedBlockErrorComponent';
7
6
  import { SyncedBlockLoadingState } from './SyncedBlockLoadingState';
8
7
  export var convertSyncBlockRendererDataProvidersToProviderFactory = function convertSyncBlockRendererDataProvidersToProviderFactory(dataProviders) {
@@ -15,33 +14,13 @@ export var convertSyncBlockRendererDataProvidersToProviderFactory = function con
15
14
  taskDecisionProvider: dataProviders === null || dataProviders === void 0 ? void 0 : dataProviders.taskDecisionProvider
16
15
  });
17
16
  };
18
- var SyncedBlockRendererWrapper = function SyncedBlockRendererWrapper(_ref) {
19
- var fetchedData = _ref.fetchedData,
20
- providerFactory = _ref.providerFactory;
21
- var syncBlockDoc = useMemo(function () {
22
- var _fetchedData$content;
23
- return {
24
- content: (_fetchedData$content = fetchedData.content) !== null && _fetchedData$content !== void 0 ? _fetchedData$content : [],
25
- version: 1,
26
- type: 'doc'
27
- };
28
- }, [fetchedData]);
29
- return /*#__PURE__*/React.createElement(RendererActionsContext, null, /*#__PURE__*/React.createElement("div", {
30
- "data-testid": "sync-block-renderer-wrapper"
31
- }, /*#__PURE__*/React.createElement(ReactRenderer, {
32
- appearance: "full-width",
33
- adfStage: "stage0",
34
- document: syncBlockDoc,
35
- disableHeadingIDs: true,
36
- dataProviders: providerFactory
37
- })));
38
- };
39
- var SyncedBlockRendererComponent = function SyncedBlockRendererComponent(_ref2) {
40
- var useFetchSyncBlockData = _ref2.useFetchSyncBlockData,
41
- syncBlockRendererDataProviders = _ref2.syncBlockRendererDataProviders;
17
+ var SyncedBlockRendererComponent = function SyncedBlockRendererComponent(_ref) {
18
+ var useFetchSyncBlockData = _ref.useFetchSyncBlockData,
19
+ syncBlockRendererDataProviders = _ref.syncBlockRendererDataProviders,
20
+ syncBlockRendererOptions = _ref.syncBlockRendererOptions;
42
21
  var _useFetchSyncBlockDat = useFetchSyncBlockData(),
43
22
  syncBlockInstance = _useFetchSyncBlockDat.syncBlockInstance;
44
- var providerFactory = useMemo(function () {
23
+ var dataProviders = useMemo(function () {
45
24
  return convertSyncBlockRendererDataProvidersToProviderFactory(syncBlockRendererDataProviders);
46
25
  }, [syncBlockRendererDataProviders]);
47
26
  if (!syncBlockInstance) {
@@ -54,9 +33,15 @@ var SyncedBlockRendererComponent = function SyncedBlockRendererComponent(_ref2)
54
33
  resourceId: syncBlockInstance.resourceId
55
34
  });
56
35
  }
57
- return /*#__PURE__*/React.createElement(SyncedBlockRendererWrapper, {
58
- fetchedData: syncBlockInstance.data,
59
- providerFactory: providerFactory
36
+ var syncBlockDoc = {
37
+ content: syncBlockInstance.data.content,
38
+ version: 1,
39
+ type: 'doc'
40
+ };
41
+ return /*#__PURE__*/React.createElement(AKRendererWrapper, {
42
+ doc: syncBlockDoc,
43
+ dataProviders: dataProviders,
44
+ options: syncBlockRendererOptions
60
45
  });
61
46
  };
62
47
  export var SyncedBlockRenderer = /*#__PURE__*/memo(SyncedBlockRendererComponent);
@@ -1,5 +1,11 @@
1
1
  import type { DocNode } from '@atlaskit/adf-schema';
2
- import { 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'>;
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { DocNode } from '@atlaskit/adf-schema';
3
+ import type { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
4
+ import type { SyncedBlockRendererOptions } from '../types';
5
+ export declare const AKRendererWrapper: React.MemoExoticComponent<({ doc, dataProviders, options, }: {
6
+ dataProviders: ProviderFactory | undefined;
7
+ doc: DocNode;
8
+ options: SyncedBlockRendererOptions | undefined;
9
+ }) => React.JSX.Element>;
@@ -1,11 +1,15 @@
1
1
  import React from 'react';
2
2
  import type { SyncBlockStoreManager } from '@atlaskit/editor-synced-block-provider';
3
3
  import { type NodeProps } from '@atlaskit/renderer';
4
+ import type { SyncedBlockRendererOptions } from '../types';
4
5
  export interface SyncedBlockProps {
5
6
  localId?: string;
6
7
  resourceId?: string;
7
8
  }
8
9
  export type SyncedBlockNodeProps = NodeProps<SyncedBlockProps>;
9
- export 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'>;
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { DocNode } from '@atlaskit/adf-schema';
3
+ import type { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
4
+ import type { SyncedBlockRendererOptions } from '../types';
5
+ export declare const AKRendererWrapper: React.MemoExoticComponent<({ doc, dataProviders, options, }: {
6
+ dataProviders: ProviderFactory | undefined;
7
+ doc: DocNode;
8
+ options: SyncedBlockRendererOptions | undefined;
9
+ }) => React.JSX.Element>;
@@ -1,11 +1,15 @@
1
1
  import React from 'react';
2
2
  import type { SyncBlockStoreManager } from '@atlaskit/editor-synced-block-provider';
3
3
  import { type NodeProps } from '@atlaskit/renderer';
4
+ import type { SyncedBlockRendererOptions } from '../types';
4
5
  export interface SyncedBlockProps {
5
6
  localId?: string;
6
7
  resourceId?: string;
7
8
  }
8
9
  export type SyncedBlockNodeProps = NodeProps<SyncedBlockProps>;
9
- export 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.2",
4
4
  "description": "SyncedBlockRenderer for @atlaskit/editor-plugin-synced-block",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -30,6 +30,7 @@
30
30
  "dependencies": {
31
31
  "@atlaskit/button": "^23.5.0",
32
32
  "@atlaskit/css": "^0.15.0",
33
+ "@atlaskit/editor-plugin-synced-block": "^4.1.0",
33
34
  "@atlaskit/editor-prosemirror": "7.0.0",
34
35
  "@atlaskit/editor-synced-block-provider": "^2.6.0",
35
36
  "@atlaskit/heading": "^5.2.0",