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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
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
+
3
10
  ## 3.1.1
4
11
 
5
12
  ### Patch Changes
@@ -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
  },
@@ -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,8 +7,7 @@ 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
13
  var SyncedBlockNodeComponentRenderer = exports.SyncedBlockNodeComponentRenderer = function SyncedBlockNodeComponentRenderer(_ref) {
@@ -18,22 +17,6 @@ var SyncedBlockNodeComponentRenderer = exports.SyncedBlockNodeComponentRenderer
18
17
  var resourceId = nodeProps.resourceId,
19
18
  localId = nodeProps.localId,
20
19
  providers = nodeProps.providers;
21
- var _ref2 = rendererOptions !== null && rendererOptions !== void 0 ? rendererOptions : {},
22
- allowAltTextOnImages = _ref2.allowAltTextOnImages,
23
- allowAnnotations = _ref2.allowAnnotations,
24
- allowColumnSorting = _ref2.allowColumnSorting,
25
- allowCopyToClipboard = _ref2.allowCopyToClipboard,
26
- allowCustomPanels = _ref2.allowCustomPanels,
27
- allowHeadingAnchorLinks = _ref2.allowHeadingAnchorLinks,
28
- allowPlaceholderText = _ref2.allowPlaceholderText,
29
- allowRendererContainerStyles = _ref2.allowRendererContainerStyles,
30
- allowSelectAllTrap = _ref2.allowSelectAllTrap,
31
- allowUgcScrubber = _ref2.allowUgcScrubber,
32
- allowWrapCodeBlock = _ref2.allowWrapCodeBlock,
33
- emojiResourceConfig = _ref2.emojiResourceConfig,
34
- media = _ref2.media,
35
- smartLinks = _ref2.smartLinks,
36
- stickyHeaders = _ref2.stickyHeaders;
37
20
  var _useFetchSyncBlockDat = (0, _editorSyncedBlockProvider.useFetchSyncBlockData)(syncBlockStoreManager, resourceId, localId),
38
21
  syncBlockInstance = _useFetchSyncBlockDat.syncBlockInstance,
39
22
  isLoading = _useFetchSyncBlockDat.isLoading;
@@ -52,31 +35,9 @@ var SyncedBlockNodeComponentRenderer = exports.SyncedBlockNodeComponentRenderer
52
35
  version: 1,
53
36
  type: 'doc'
54
37
  };
55
- return /*#__PURE__*/_react.default.createElement(_actions.RendererActionsContext, null, /*#__PURE__*/_react.default.createElement("div", {
56
- "data-sync-block": true,
57
- "data-testid": "sync-block-renderer-wrapper",
58
- "data-resource-id": resourceId,
59
- "data-local-id": localId
60
- }, /*#__PURE__*/_react.default.createElement(_renderer.ReactRenderer, {
61
- appearance: "full-width",
62
- adfStage: "stage0",
63
- document: syncBlockDoc,
64
- disableHeadingIDs: true,
38
+ return /*#__PURE__*/_react.default.createElement(_AKRendererWrapper.AKRendererWrapper, {
39
+ doc: syncBlockDoc,
65
40
  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
81
- })));
41
+ options: rendererOptions
42
+ });
82
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,66 +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
- options = _ref.options;
30
- var syncBlockDoc = (0, _react.useMemo)(function () {
31
- var _fetchedData$content;
32
- return {
33
- content: (_fetchedData$content = fetchedData.content) !== null && _fetchedData$content !== void 0 ? _fetchedData$content : [],
34
- version: 1,
35
- type: 'doc'
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;
54
- return /*#__PURE__*/_react.default.createElement(_actions.RendererActionsContext, null, /*#__PURE__*/_react.default.createElement("div", {
55
- "data-testid": "sync-block-renderer-wrapper"
56
- }, /*#__PURE__*/_react.default.createElement(_renderer.ReactRenderer, {
57
- appearance: "full-width",
58
- adfStage: "stage0",
59
- document: syncBlockDoc,
60
- disableHeadingIDs: true,
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
77
- })));
78
- };
79
- var SyncedBlockRendererComponent = function SyncedBlockRendererComponent(_ref3) {
80
- var useFetchSyncBlockData = _ref3.useFetchSyncBlockData,
81
- syncBlockRendererDataProviders = _ref3.syncBlockRendererDataProviders,
82
- syncBlockRendererOptions = _ref3.syncBlockRendererOptions;
25
+ var SyncedBlockRendererComponent = function SyncedBlockRendererComponent(_ref) {
26
+ var useFetchSyncBlockData = _ref.useFetchSyncBlockData,
27
+ syncBlockRendererDataProviders = _ref.syncBlockRendererDataProviders,
28
+ syncBlockRendererOptions = _ref.syncBlockRendererOptions;
83
29
  var _useFetchSyncBlockDat = useFetchSyncBlockData(),
84
30
  syncBlockInstance = _useFetchSyncBlockDat.syncBlockInstance;
85
- var providerFactory = (0, _react.useMemo)(function () {
31
+ var dataProviders = (0, _react.useMemo)(function () {
86
32
  return convertSyncBlockRendererDataProvidersToProviderFactory(syncBlockRendererDataProviders);
87
33
  }, [syncBlockRendererDataProviders]);
88
34
  if (!syncBlockInstance) {
@@ -95,9 +41,14 @@ var SyncedBlockRendererComponent = function SyncedBlockRendererComponent(_ref3)
95
41
  resourceId: syncBlockInstance.resourceId
96
42
  });
97
43
  }
98
- return /*#__PURE__*/_react.default.createElement(SyncedBlockRendererWrapper, {
99
- fetchedData: syncBlockInstance.data,
100
- 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,
101
52
  options: syncBlockRendererOptions
102
53
  });
103
54
  };
@@ -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,7 +1,6 @@
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
6
  export const SyncedBlockNodeComponentRenderer = ({
@@ -14,23 +13,6 @@ export const SyncedBlockNodeComponentRenderer = ({
14
13
  localId,
15
14
  providers
16
15
  } = nodeProps;
17
- const {
18
- allowAltTextOnImages,
19
- allowAnnotations,
20
- allowColumnSorting,
21
- allowCopyToClipboard,
22
- allowCustomPanels,
23
- allowHeadingAnchorLinks,
24
- allowPlaceholderText,
25
- allowRendererContainerStyles,
26
- allowSelectAllTrap,
27
- allowUgcScrubber,
28
- allowWrapCodeBlock,
29
- emojiResourceConfig,
30
- media,
31
- smartLinks,
32
- stickyHeaders
33
- } = rendererOptions !== null && rendererOptions !== void 0 ? rendererOptions : {};
34
16
  const {
35
17
  syncBlockInstance,
36
18
  isLoading
@@ -50,31 +32,9 @@ export const SyncedBlockNodeComponentRenderer = ({
50
32
  version: 1,
51
33
  type: 'doc'
52
34
  };
53
- return /*#__PURE__*/React.createElement(RendererActionsContext, null, /*#__PURE__*/React.createElement("div", {
54
- "data-sync-block": true,
55
- "data-testid": "sync-block-renderer-wrapper",
56
- "data-resource-id": resourceId,
57
- "data-local-id": localId
58
- }, /*#__PURE__*/React.createElement(ReactRenderer, {
59
- appearance: "full-width",
60
- adfStage: "stage0",
61
- document: syncBlockDoc,
62
- disableHeadingIDs: true,
35
+ return /*#__PURE__*/React.createElement(AKRendererWrapper, {
36
+ doc: syncBlockDoc,
63
37
  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
79
- })));
38
+ options: rendererOptions
39
+ });
80
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,61 +14,6 @@ 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
- options
22
- }) => {
23
- const syncBlockDoc = useMemo(() => {
24
- var _fetchedData$content;
25
- return {
26
- content: (_fetchedData$content = fetchedData.content) !== null && _fetchedData$content !== void 0 ? _fetchedData$content : [],
27
- version: 1,
28
- type: 'doc'
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 : {};
48
- return /*#__PURE__*/React.createElement(RendererActionsContext, null, /*#__PURE__*/React.createElement("div", {
49
- "data-testid": "sync-block-renderer-wrapper"
50
- }, /*#__PURE__*/React.createElement(ReactRenderer, {
51
- appearance: "full-width",
52
- adfStage: "stage0",
53
- document: syncBlockDoc,
54
- disableHeadingIDs: true,
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
71
- })));
72
- };
73
17
  const SyncedBlockRendererComponent = ({
74
18
  useFetchSyncBlockData,
75
19
  syncBlockRendererDataProviders,
@@ -78,7 +22,7 @@ const SyncedBlockRendererComponent = ({
78
22
  const {
79
23
  syncBlockInstance
80
24
  } = useFetchSyncBlockData();
81
- const providerFactory = useMemo(() => {
25
+ const dataProviders = useMemo(() => {
82
26
  return convertSyncBlockRendererDataProvidersToProviderFactory(syncBlockRendererDataProviders);
83
27
  }, [syncBlockRendererDataProviders]);
84
28
  if (!syncBlockInstance) {
@@ -91,9 +35,14 @@ const SyncedBlockRendererComponent = ({
91
35
  resourceId: syncBlockInstance.resourceId
92
36
  });
93
37
  }
94
- return /*#__PURE__*/React.createElement(SyncedBlockRendererWrapper, {
95
- fetchedData: syncBlockInstance.data,
96
- 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,
97
46
  options: syncBlockRendererOptions
98
47
  });
99
48
  };
@@ -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,7 +1,6 @@
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
6
  export var SyncedBlockNodeComponentRenderer = function SyncedBlockNodeComponentRenderer(_ref) {
@@ -11,22 +10,6 @@ export var SyncedBlockNodeComponentRenderer = function SyncedBlockNodeComponentR
11
10
  var resourceId = nodeProps.resourceId,
12
11
  localId = nodeProps.localId,
13
12
  providers = nodeProps.providers;
14
- var _ref2 = rendererOptions !== null && rendererOptions !== void 0 ? rendererOptions : {},
15
- allowAltTextOnImages = _ref2.allowAltTextOnImages,
16
- allowAnnotations = _ref2.allowAnnotations,
17
- allowColumnSorting = _ref2.allowColumnSorting,
18
- allowCopyToClipboard = _ref2.allowCopyToClipboard,
19
- allowCustomPanels = _ref2.allowCustomPanels,
20
- allowHeadingAnchorLinks = _ref2.allowHeadingAnchorLinks,
21
- allowPlaceholderText = _ref2.allowPlaceholderText,
22
- allowRendererContainerStyles = _ref2.allowRendererContainerStyles,
23
- allowSelectAllTrap = _ref2.allowSelectAllTrap,
24
- allowUgcScrubber = _ref2.allowUgcScrubber,
25
- allowWrapCodeBlock = _ref2.allowWrapCodeBlock,
26
- emojiResourceConfig = _ref2.emojiResourceConfig,
27
- media = _ref2.media,
28
- smartLinks = _ref2.smartLinks,
29
- stickyHeaders = _ref2.stickyHeaders;
30
13
  var _useFetchSyncBlockDat = useFetchSyncBlockData(syncBlockStoreManager, resourceId, localId),
31
14
  syncBlockInstance = _useFetchSyncBlockDat.syncBlockInstance,
32
15
  isLoading = _useFetchSyncBlockDat.isLoading;
@@ -45,31 +28,9 @@ export var SyncedBlockNodeComponentRenderer = function SyncedBlockNodeComponentR
45
28
  version: 1,
46
29
  type: 'doc'
47
30
  };
48
- return /*#__PURE__*/React.createElement(RendererActionsContext, null, /*#__PURE__*/React.createElement("div", {
49
- "data-sync-block": true,
50
- "data-testid": "sync-block-renderer-wrapper",
51
- "data-resource-id": resourceId,
52
- "data-local-id": localId
53
- }, /*#__PURE__*/React.createElement(ReactRenderer, {
54
- appearance: "full-width",
55
- adfStage: "stage0",
56
- document: syncBlockDoc,
57
- disableHeadingIDs: true,
31
+ return /*#__PURE__*/React.createElement(AKRendererWrapper, {
32
+ doc: syncBlockDoc,
58
33
  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
74
- })));
34
+ options: rendererOptions
35
+ });
75
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,66 +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
- options = _ref.options;
22
- var syncBlockDoc = useMemo(function () {
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
- 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;
46
- return /*#__PURE__*/React.createElement(RendererActionsContext, null, /*#__PURE__*/React.createElement("div", {
47
- "data-testid": "sync-block-renderer-wrapper"
48
- }, /*#__PURE__*/React.createElement(ReactRenderer, {
49
- appearance: "full-width",
50
- adfStage: "stage0",
51
- document: syncBlockDoc,
52
- disableHeadingIDs: true,
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
69
- })));
70
- };
71
- var SyncedBlockRendererComponent = function SyncedBlockRendererComponent(_ref3) {
72
- var useFetchSyncBlockData = _ref3.useFetchSyncBlockData,
73
- syncBlockRendererDataProviders = _ref3.syncBlockRendererDataProviders,
74
- syncBlockRendererOptions = _ref3.syncBlockRendererOptions;
17
+ var SyncedBlockRendererComponent = function SyncedBlockRendererComponent(_ref) {
18
+ var useFetchSyncBlockData = _ref.useFetchSyncBlockData,
19
+ syncBlockRendererDataProviders = _ref.syncBlockRendererDataProviders,
20
+ syncBlockRendererOptions = _ref.syncBlockRendererOptions;
75
21
  var _useFetchSyncBlockDat = useFetchSyncBlockData(),
76
22
  syncBlockInstance = _useFetchSyncBlockDat.syncBlockInstance;
77
- var providerFactory = useMemo(function () {
23
+ var dataProviders = useMemo(function () {
78
24
  return convertSyncBlockRendererDataProvidersToProviderFactory(syncBlockRendererDataProviders);
79
25
  }, [syncBlockRendererDataProviders]);
80
26
  if (!syncBlockInstance) {
@@ -87,9 +33,14 @@ var SyncedBlockRendererComponent = function SyncedBlockRendererComponent(_ref3)
87
33
  resourceId: syncBlockInstance.resourceId
88
34
  });
89
35
  }
90
- return /*#__PURE__*/React.createElement(SyncedBlockRendererWrapper, {
91
- fetchedData: syncBlockInstance.data,
92
- 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,
93
44
  options: syncBlockRendererOptions
94
45
  });
95
46
  };
@@ -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>;
@@ -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>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-synced-block-renderer",
3
- "version": "3.1.1",
3
+ "version": "3.1.2",
4
4
  "description": "SyncedBlockRenderer for @atlaskit/editor-plugin-synced-block",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",