@atlaskit/editor-plugin-extension 1.12.1 → 1.12.3

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,20 @@
1
1
  # @atlaskit/editor-plugin-extension
2
2
 
3
+ ## 1.12.3
4
+
5
+ ### Patch Changes
6
+
7
+ - [#127699](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/127699)
8
+ [`3c14790d31686`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/3c14790d31686) -
9
+ [ux] Wrap extension in lazy node view. Align bodied extension with fallback.
10
+ - Updated dependencies
11
+
12
+ ## 1.12.2
13
+
14
+ ### Patch Changes
15
+
16
+ - Updated dependencies
17
+
3
18
  ## 1.12.1
4
19
 
5
20
  ### Patch Changes
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.lazyExtensionNodeView = lazyExtensionNodeView;
8
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
9
+ var _extensibility = require("@atlaskit/editor-common/extensibility");
10
+ var _lazyNodeView = require("@atlaskit/editor-common/lazy-node-view");
11
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
12
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
13
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != (0, _typeof2.default)(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
14
+ function lazyExtensionNodeView(nodeName) {
15
+ for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
16
+ params[_key - 1] = arguments[_key];
17
+ }
18
+ if (!(0, _platformFeatureFlags.fg)('platform_editor_lazy-node-views')) {
19
+ return _extensibility.ExtensionNodeView.apply(void 0, params);
20
+ }
21
+ return (0, _lazyNodeView.withLazyLoading)({
22
+ nodeName: nodeName,
23
+ getNodeViewOptions: function getNodeViewOptions() {},
24
+ loader: function loader() {
25
+ var result = Promise.resolve().then(function () {
26
+ return _interopRequireWildcard(require( /* webpackChunkName: "@atlaskit-internal_editor-plugin-extension-nodeview" */
27
+ '@atlaskit/editor-common/extensibility'));
28
+ }).then(function (_ref) {
29
+ var ExtensionNodeView = _ref.ExtensionNodeView;
30
+ return ExtensionNodeView.apply(void 0, params);
31
+ });
32
+ return result;
33
+ }
34
+ });
35
+ }
@@ -17,6 +17,7 @@ var _macro = require("./pm-plugins/macro");
17
17
  var _actions2 = require("./pm-plugins/macro/actions");
18
18
  var _main = require("./pm-plugins/main");
19
19
  var _uniqueId = require("./pm-plugins/unique-id");
20
+ var _bodiedExtension = require("./toDOM-fixes/bodiedExtension");
20
21
  var _toolbar = require("./toolbar");
21
22
  var extensionPlugin = exports.extensionPlugin = function extensionPlugin(_ref) {
22
23
  var _api$featureFlags, _api$analytics2, _api$analytics3, _api$contextPanel3, _api$decorations, _api$contextPanel4, _api$analytics4;
@@ -37,14 +38,14 @@ var extensionPlugin = exports.extensionPlugin = function extensionPlugin(_ref) {
37
38
  node: _adfSchema.extension
38
39
  }, {
39
40
  name: 'bodiedExtension',
40
- node: _adfSchema.bodiedExtension
41
+ node: (0, _bodiedExtension.bodiedExtensionSpecWithFixedToDOM)()
41
42
  }, {
42
43
  name: 'inlineExtension',
43
44
  node: _adfSchema.inlineExtension
44
45
  }];
45
46
 
46
47
  // Revert to returning all nodes without local variable, once FF is removed
47
- if ((0, _platformFeatureFlags.getBooleanFF)('platform.editor.multi-bodied-extension_0rygg')) {
48
+ if ((0, _platformFeatureFlags.fg)('platform.editor.multi-bodied-extension_0rygg')) {
48
49
  extensionNodes.push({
49
50
  name: 'extensionFrame',
50
51
  node: _adfSchema.extensionFrame
@@ -27,13 +27,13 @@ Object.defineProperty(exports, "pluginKey", {
27
27
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
28
28
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
29
29
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
30
- var _extensibility = require("@atlaskit/editor-common/extensibility");
31
30
  var _safePlugin = require("@atlaskit/editor-common/safe-plugin");
32
31
  var _selection2 = require("@atlaskit/editor-common/selection");
33
32
  var _state = require("@atlaskit/editor-prosemirror/state");
34
33
  var _utils = require("@atlaskit/editor-prosemirror/utils");
35
34
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
36
35
  var _commands = require("../commands");
36
+ var _lazyExtension = require("../nodeviews/lazyExtension");
37
37
  var _pluginFactory = require("../plugin-factory");
38
38
  var _pluginKey = require("../plugin-key");
39
39
  var _utils2 = require("../utils");
@@ -298,12 +298,12 @@ var createPlugin = exports.createPlugin = function createPlugin(dispatch, provid
298
298
  },
299
299
  nodeViews: {
300
300
  // WARNING: referentiality-plugin also creates these nodeviews
301
- extension: (0, _extensibility.ExtensionNodeView)(portalProviderAPI, eventDispatcher, providerFactory, extensionHandlers, extensionNodeViewOptions, pluginInjectionApi, macroInteractionDesignFeatureFlags),
301
+ extension: (0, _lazyExtension.lazyExtensionNodeView)('extension', portalProviderAPI, eventDispatcher, providerFactory, extensionHandlers, extensionNodeViewOptions, pluginInjectionApi, macroInteractionDesignFeatureFlags),
302
302
  // WARNING: referentiality-plugin also creates these nodeviews
303
- bodiedExtension: (0, _extensibility.ExtensionNodeView)(portalProviderAPI, eventDispatcher, providerFactory, extensionHandlers, extensionNodeViewOptions, pluginInjectionApi, macroInteractionDesignFeatureFlags),
303
+ bodiedExtension: (0, _lazyExtension.lazyExtensionNodeView)('bodiedExtension', portalProviderAPI, eventDispatcher, providerFactory, extensionHandlers, extensionNodeViewOptions, pluginInjectionApi, macroInteractionDesignFeatureFlags),
304
304
  // WARNING: referentiality-plugin also creates these nodeviews
305
- inlineExtension: (0, _extensibility.ExtensionNodeView)(portalProviderAPI, eventDispatcher, providerFactory, extensionHandlers, extensionNodeViewOptions, pluginInjectionApi, macroInteractionDesignFeatureFlags),
306
- multiBodiedExtension: (0, _extensibility.ExtensionNodeView)(portalProviderAPI, eventDispatcher, providerFactory, extensionHandlers, extensionNodeViewOptions, pluginInjectionApi, macroInteractionDesignFeatureFlags)
305
+ inlineExtension: (0, _lazyExtension.lazyExtensionNodeView)('inlineExtension', portalProviderAPI, eventDispatcher, providerFactory, extensionHandlers, extensionNodeViewOptions, pluginInjectionApi, macroInteractionDesignFeatureFlags),
306
+ multiBodiedExtension: (0, _lazyExtension.lazyExtensionNodeView)('multiBodiedExtension', portalProviderAPI, eventDispatcher, providerFactory, extensionHandlers, extensionNodeViewOptions, pluginInjectionApi, macroInteractionDesignFeatureFlags)
307
307
  },
308
308
  createSelectionBetween: function createSelectionBetween(view, anchor, head) {
309
309
  if (!(0, _platformFeatureFlags.fg)('platform.editor.multi-bodied-extension_0rygg')) {
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.bodiedExtensionSpecWithFixedToDOM = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _adfSchema = require("@atlaskit/adf-schema");
10
+ var _lazyNodeView = require("@atlaskit/editor-common/lazy-node-view");
11
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
12
+ var _colors = require("@atlaskit/theme/colors");
13
+ 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; }
14
+ 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; }
15
+ var capitalizeFirstLetter = function capitalizeFirstLetter(str) {
16
+ return str.charAt(0).toUpperCase() + str.slice(1);
17
+ };
18
+
19
+ // @nodeSpecException:toDOM patch
20
+ var bodiedExtensionSpecWithFixedToDOM = exports.bodiedExtensionSpecWithFixedToDOM = function bodiedExtensionSpecWithFixedToDOM() {
21
+ if (!(0, _platformFeatureFlags.fg)('platform_editor_lazy-node-views')) {
22
+ return _adfSchema.bodiedExtension;
23
+ }
24
+ return _objectSpread(_objectSpread({}, _adfSchema.bodiedExtension), {}, {
25
+ toDOM: function toDOM(node) {
26
+ var attrs = {
27
+ 'data-node-type': 'bodied-extension',
28
+ 'data-extension-type': node.attrs.extensionType,
29
+ 'data-extension-key': node.attrs.extensionKey,
30
+ 'data-text': node.attrs.text,
31
+ 'data-parameters': JSON.stringify(node.attrs.parameters),
32
+ 'data-layout': node.attrs.layout,
33
+ 'data-local-id:': node.attrs.localId,
34
+ style: (0, _lazyNodeView.convertToInlineCss)({
35
+ position: 'relative',
36
+ marginTop: "var(--ds-space-300, 24px)"
37
+ })
38
+ };
39
+ var title = node.attrs && node.attrs.extensionTitle || node.attrs && node.attrs.macroMetadata && node.attrs.macroMetadata.title || node.attrs.extensionKey;
40
+ return ['div', attrs, ['span', {
41
+ // Styles based on `packages/editor/editor-common/src/extensibility/Extension/Lozenge/ExtensionLabel.tsx`
42
+ style: (0, _lazyNodeView.convertToInlineCss)({
43
+ boxShadow: "0 0 0 1px ".concat("var(--ds-border, ".concat(_colors.N30, ")")),
44
+ fontSize: '14px',
45
+ padding: "var(--ds-space-025, 2px)".concat(" ", "var(--ds-space-050, 4px)"),
46
+ color: "var(--ds-text-subtle, #44546F)",
47
+ borderTopLeftRadius: "var(--ds-border-radius, 4px)",
48
+ borderTopRightRadius: "var(--ds-border-radius, 4px)",
49
+ lineHeight: 1,
50
+ position: 'absolute',
51
+ top: '-19px'
52
+ }),
53
+ // If we put this below inside the span then we serialise the label (which causes the label to be
54
+ // be copied to the clipboard causing copy-paste issues).
55
+ // So instead we use a pseudo-element to add the title to this class
56
+ 'data-bodied-extension-label': capitalizeFirstLetter(title),
57
+ class: 'bodied-extension-to-dom-label'
58
+ }], ['div', {
59
+ style: (0, _lazyNodeView.convertToInlineCss)({
60
+ padding: "var(--ds-space-200, 16px)",
61
+ marginLeft: "var(--ds-space-negative-150, -12px)",
62
+ marginRight: "var(--ds-space-negative-150, -12px)",
63
+ boxShadow: "0 0 0 1px ".concat("var(--ds-border, ".concat(_colors.N30, ")")),
64
+ borderRadius: "var(--ds-border-radius, 4px)"
65
+ })
66
+ }, 0]];
67
+ }
68
+ });
69
+ };
@@ -0,0 +1,21 @@
1
+ import { ExtensionNodeView } from '@atlaskit/editor-common/extensibility';
2
+ import { withLazyLoading } from '@atlaskit/editor-common/lazy-node-view';
3
+ import { fg } from '@atlaskit/platform-feature-flags';
4
+ export function lazyExtensionNodeView(nodeName, ...params) {
5
+ if (!fg('platform_editor_lazy-node-views')) {
6
+ return ExtensionNodeView(...params);
7
+ }
8
+ return withLazyLoading({
9
+ nodeName,
10
+ getNodeViewOptions: () => {},
11
+ loader: () => {
12
+ const result = import( /* webpackChunkName: "@atlaskit-internal_editor-plugin-extension-nodeview" */
13
+ '@atlaskit/editor-common/extensibility').then(({
14
+ ExtensionNodeView
15
+ }) => {
16
+ return ExtensionNodeView(...params);
17
+ });
18
+ return result;
19
+ }
20
+ });
21
+ }
@@ -1,6 +1,6 @@
1
- import { bodiedExtension, extension, extensionFrame, inlineExtension, multiBodiedExtension } from '@atlaskit/adf-schema';
1
+ import { extension, extensionFrame, inlineExtension, multiBodiedExtension } from '@atlaskit/adf-schema';
2
2
  import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
3
- import { getBooleanFF } from '@atlaskit/platform-feature-flags';
3
+ import { fg } from '@atlaskit/platform-feature-flags';
4
4
  import { createEditSelectedExtensionAction, insertOrReplaceBodiedExtension, insertOrReplaceExtension } from './actions';
5
5
  import { forceAutoSave } from './commands';
6
6
  import { getContextPanel } from './context-panel';
@@ -10,6 +10,7 @@ import { createPlugin as createMacroPlugin } from './pm-plugins/macro';
10
10
  import { insertMacroFromMacroBrowser, runMacroAutoConvert } from './pm-plugins/macro/actions';
11
11
  import { createPlugin, pluginKey } from './pm-plugins/main';
12
12
  import { createPlugin as createUniqueIdPlugin } from './pm-plugins/unique-id';
13
+ import { bodiedExtensionSpecWithFixedToDOM } from './toDOM-fixes/bodiedExtension';
13
14
  import { getToolbarConfig } from './toolbar';
14
15
  export const extensionPlugin = ({
15
16
  config: options = {},
@@ -30,14 +31,14 @@ export const extensionPlugin = ({
30
31
  node: extension
31
32
  }, {
32
33
  name: 'bodiedExtension',
33
- node: bodiedExtension
34
+ node: bodiedExtensionSpecWithFixedToDOM()
34
35
  }, {
35
36
  name: 'inlineExtension',
36
37
  node: inlineExtension
37
38
  }];
38
39
 
39
40
  // Revert to returning all nodes without local variable, once FF is removed
40
- if (getBooleanFF('platform.editor.multi-bodied-extension_0rygg')) {
41
+ if (fg('platform.editor.multi-bodied-extension_0rygg')) {
41
42
  extensionNodes.push({
42
43
  name: 'extensionFrame',
43
44
  node: extensionFrame
@@ -1,10 +1,10 @@
1
- import { ExtensionNodeView } from '@atlaskit/editor-common/extensibility';
2
1
  import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
3
2
  import { createSelectionClickHandler, GapCursorSelection, isSelectionAtEndOfNode, isSelectionAtStartOfNode } from '@atlaskit/editor-common/selection';
4
3
  import { NodeSelection, TextSelection } from '@atlaskit/editor-prosemirror/state';
5
4
  import { findParentNodeOfTypeClosestToPos, findSelectedNodeOfType } from '@atlaskit/editor-prosemirror/utils';
6
5
  import { fg } from '@atlaskit/platform-feature-flags';
7
6
  import { clearEditingContext, updateState } from '../commands';
7
+ import { lazyExtensionNodeView } from '../nodeviews/lazyExtension';
8
8
  import { createCommand, createPluginState, getPluginState } from '../plugin-factory';
9
9
  import { pluginKey } from '../plugin-key';
10
10
  import { getSelectedDomElement, getSelectedExtension } from '../utils';
@@ -233,12 +233,12 @@ const createPlugin = (dispatch, providerFactory, extensionHandlers, portalProvid
233
233
  },
234
234
  nodeViews: {
235
235
  // WARNING: referentiality-plugin also creates these nodeviews
236
- extension: ExtensionNodeView(portalProviderAPI, eventDispatcher, providerFactory, extensionHandlers, extensionNodeViewOptions, pluginInjectionApi, macroInteractionDesignFeatureFlags),
236
+ extension: lazyExtensionNodeView('extension', portalProviderAPI, eventDispatcher, providerFactory, extensionHandlers, extensionNodeViewOptions, pluginInjectionApi, macroInteractionDesignFeatureFlags),
237
237
  // WARNING: referentiality-plugin also creates these nodeviews
238
- bodiedExtension: ExtensionNodeView(portalProviderAPI, eventDispatcher, providerFactory, extensionHandlers, extensionNodeViewOptions, pluginInjectionApi, macroInteractionDesignFeatureFlags),
238
+ bodiedExtension: lazyExtensionNodeView('bodiedExtension', portalProviderAPI, eventDispatcher, providerFactory, extensionHandlers, extensionNodeViewOptions, pluginInjectionApi, macroInteractionDesignFeatureFlags),
239
239
  // WARNING: referentiality-plugin also creates these nodeviews
240
- inlineExtension: ExtensionNodeView(portalProviderAPI, eventDispatcher, providerFactory, extensionHandlers, extensionNodeViewOptions, pluginInjectionApi, macroInteractionDesignFeatureFlags),
241
- multiBodiedExtension: ExtensionNodeView(portalProviderAPI, eventDispatcher, providerFactory, extensionHandlers, extensionNodeViewOptions, pluginInjectionApi, macroInteractionDesignFeatureFlags)
240
+ inlineExtension: lazyExtensionNodeView('inlineExtension', portalProviderAPI, eventDispatcher, providerFactory, extensionHandlers, extensionNodeViewOptions, pluginInjectionApi, macroInteractionDesignFeatureFlags),
241
+ multiBodiedExtension: lazyExtensionNodeView('multiBodiedExtension', portalProviderAPI, eventDispatcher, providerFactory, extensionHandlers, extensionNodeViewOptions, pluginInjectionApi, macroInteractionDesignFeatureFlags)
242
242
  },
243
243
  createSelectionBetween: function (view, anchor, head) {
244
244
  if (!fg('platform.editor.multi-bodied-extension_0rygg')) {
@@ -0,0 +1,60 @@
1
+ import { bodiedExtension } from '@atlaskit/adf-schema';
2
+ import { convertToInlineCss } from '@atlaskit/editor-common/lazy-node-view';
3
+ import { fg } from '@atlaskit/platform-feature-flags';
4
+ import { N30 } from '@atlaskit/theme/colors';
5
+ const capitalizeFirstLetter = str => {
6
+ return str.charAt(0).toUpperCase() + str.slice(1);
7
+ };
8
+
9
+ // @nodeSpecException:toDOM patch
10
+ export const bodiedExtensionSpecWithFixedToDOM = () => {
11
+ if (!fg('platform_editor_lazy-node-views')) {
12
+ return bodiedExtension;
13
+ }
14
+ return {
15
+ ...bodiedExtension,
16
+ toDOM: node => {
17
+ const attrs = {
18
+ 'data-node-type': 'bodied-extension',
19
+ 'data-extension-type': node.attrs.extensionType,
20
+ 'data-extension-key': node.attrs.extensionKey,
21
+ 'data-text': node.attrs.text,
22
+ 'data-parameters': JSON.stringify(node.attrs.parameters),
23
+ 'data-layout': node.attrs.layout,
24
+ 'data-local-id:': node.attrs.localId,
25
+ style: convertToInlineCss({
26
+ position: 'relative',
27
+ marginTop: "var(--ds-space-300, 24px)"
28
+ })
29
+ };
30
+ const title = node.attrs && node.attrs.extensionTitle || node.attrs && node.attrs.macroMetadata && node.attrs.macroMetadata.title || node.attrs.extensionKey;
31
+ return ['div', attrs, ['span', {
32
+ // Styles based on `packages/editor/editor-common/src/extensibility/Extension/Lozenge/ExtensionLabel.tsx`
33
+ style: convertToInlineCss({
34
+ boxShadow: `0 0 0 1px ${`var(--ds-border, ${N30})`}`,
35
+ fontSize: '14px',
36
+ padding: `${"var(--ds-space-025, 2px)"} ${"var(--ds-space-050, 4px)"}`,
37
+ color: "var(--ds-text-subtle, #44546F)",
38
+ borderTopLeftRadius: "var(--ds-border-radius, 4px)",
39
+ borderTopRightRadius: "var(--ds-border-radius, 4px)",
40
+ lineHeight: 1,
41
+ position: 'absolute',
42
+ top: '-19px'
43
+ }),
44
+ // If we put this below inside the span then we serialise the label (which causes the label to be
45
+ // be copied to the clipboard causing copy-paste issues).
46
+ // So instead we use a pseudo-element to add the title to this class
47
+ 'data-bodied-extension-label': capitalizeFirstLetter(title),
48
+ class: 'bodied-extension-to-dom-label'
49
+ }], ['div', {
50
+ style: convertToInlineCss({
51
+ padding: "var(--ds-space-200, 16px)",
52
+ marginLeft: "var(--ds-space-negative-150, -12px)",
53
+ marginRight: "var(--ds-space-negative-150, -12px)",
54
+ boxShadow: `0 0 0 1px ${`var(--ds-border, ${N30})`}`,
55
+ borderRadius: "var(--ds-border-radius, 4px)"
56
+ })
57
+ }, 0]];
58
+ }
59
+ };
60
+ };
@@ -0,0 +1,23 @@
1
+ import { ExtensionNodeView } from '@atlaskit/editor-common/extensibility';
2
+ import { withLazyLoading } from '@atlaskit/editor-common/lazy-node-view';
3
+ import { fg } from '@atlaskit/platform-feature-flags';
4
+ export function lazyExtensionNodeView(nodeName) {
5
+ for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
6
+ params[_key - 1] = arguments[_key];
7
+ }
8
+ if (!fg('platform_editor_lazy-node-views')) {
9
+ return ExtensionNodeView.apply(void 0, params);
10
+ }
11
+ return withLazyLoading({
12
+ nodeName: nodeName,
13
+ getNodeViewOptions: function getNodeViewOptions() {},
14
+ loader: function loader() {
15
+ var result = import( /* webpackChunkName: "@atlaskit-internal_editor-plugin-extension-nodeview" */
16
+ '@atlaskit/editor-common/extensibility').then(function (_ref) {
17
+ var ExtensionNodeView = _ref.ExtensionNodeView;
18
+ return ExtensionNodeView.apply(void 0, params);
19
+ });
20
+ return result;
21
+ }
22
+ });
23
+ }
@@ -1,6 +1,6 @@
1
- import { bodiedExtension, extension, extensionFrame, inlineExtension, multiBodiedExtension } from '@atlaskit/adf-schema';
1
+ import { extension, extensionFrame, inlineExtension, multiBodiedExtension } from '@atlaskit/adf-schema';
2
2
  import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
3
- import { getBooleanFF } from '@atlaskit/platform-feature-flags';
3
+ import { fg } from '@atlaskit/platform-feature-flags';
4
4
  import { createEditSelectedExtensionAction, insertOrReplaceBodiedExtension as _insertOrReplaceBodiedExtension, insertOrReplaceExtension as _insertOrReplaceExtension } from './actions';
5
5
  import { forceAutoSave } from './commands';
6
6
  import { getContextPanel } from './context-panel';
@@ -10,6 +10,7 @@ import { createPlugin as createMacroPlugin } from './pm-plugins/macro';
10
10
  import { insertMacroFromMacroBrowser, runMacroAutoConvert } from './pm-plugins/macro/actions';
11
11
  import { createPlugin, pluginKey } from './pm-plugins/main';
12
12
  import { createPlugin as createUniqueIdPlugin } from './pm-plugins/unique-id';
13
+ import { bodiedExtensionSpecWithFixedToDOM } from './toDOM-fixes/bodiedExtension';
13
14
  import { getToolbarConfig } from './toolbar';
14
15
  export var extensionPlugin = function extensionPlugin(_ref) {
15
16
  var _api$featureFlags, _api$analytics2, _api$analytics3, _api$contextPanel3, _api$decorations, _api$contextPanel4, _api$analytics4;
@@ -30,14 +31,14 @@ export var extensionPlugin = function extensionPlugin(_ref) {
30
31
  node: extension
31
32
  }, {
32
33
  name: 'bodiedExtension',
33
- node: bodiedExtension
34
+ node: bodiedExtensionSpecWithFixedToDOM()
34
35
  }, {
35
36
  name: 'inlineExtension',
36
37
  node: inlineExtension
37
38
  }];
38
39
 
39
40
  // Revert to returning all nodes without local variable, once FF is removed
40
- if (getBooleanFF('platform.editor.multi-bodied-extension_0rygg')) {
41
+ if (fg('platform.editor.multi-bodied-extension_0rygg')) {
41
42
  extensionNodes.push({
42
43
  name: 'extensionFrame',
43
44
  node: extensionFrame
@@ -1,13 +1,13 @@
1
1
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
2
  import _typeof from "@babel/runtime/helpers/typeof";
3
3
  import _regeneratorRuntime from "@babel/runtime/regenerator";
4
- import { ExtensionNodeView } from '@atlaskit/editor-common/extensibility';
5
4
  import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
6
5
  import { createSelectionClickHandler, GapCursorSelection, isSelectionAtEndOfNode, isSelectionAtStartOfNode } from '@atlaskit/editor-common/selection';
7
6
  import { NodeSelection, TextSelection } from '@atlaskit/editor-prosemirror/state';
8
7
  import { findParentNodeOfTypeClosestToPos, findSelectedNodeOfType } from '@atlaskit/editor-prosemirror/utils';
9
8
  import { fg } from '@atlaskit/platform-feature-flags';
10
9
  import { clearEditingContext, updateState } from '../commands';
10
+ import { lazyExtensionNodeView } from '../nodeviews/lazyExtension';
11
11
  import { createCommand, createPluginState, getPluginState } from '../plugin-factory';
12
12
  import { pluginKey } from '../plugin-key';
13
13
  import { getSelectedDomElement, getSelectedExtension } from '../utils';
@@ -272,12 +272,12 @@ var createPlugin = function createPlugin(dispatch, providerFactory, extensionHan
272
272
  },
273
273
  nodeViews: {
274
274
  // WARNING: referentiality-plugin also creates these nodeviews
275
- extension: ExtensionNodeView(portalProviderAPI, eventDispatcher, providerFactory, extensionHandlers, extensionNodeViewOptions, pluginInjectionApi, macroInteractionDesignFeatureFlags),
275
+ extension: lazyExtensionNodeView('extension', portalProviderAPI, eventDispatcher, providerFactory, extensionHandlers, extensionNodeViewOptions, pluginInjectionApi, macroInteractionDesignFeatureFlags),
276
276
  // WARNING: referentiality-plugin also creates these nodeviews
277
- bodiedExtension: ExtensionNodeView(portalProviderAPI, eventDispatcher, providerFactory, extensionHandlers, extensionNodeViewOptions, pluginInjectionApi, macroInteractionDesignFeatureFlags),
277
+ bodiedExtension: lazyExtensionNodeView('bodiedExtension', portalProviderAPI, eventDispatcher, providerFactory, extensionHandlers, extensionNodeViewOptions, pluginInjectionApi, macroInteractionDesignFeatureFlags),
278
278
  // WARNING: referentiality-plugin also creates these nodeviews
279
- inlineExtension: ExtensionNodeView(portalProviderAPI, eventDispatcher, providerFactory, extensionHandlers, extensionNodeViewOptions, pluginInjectionApi, macroInteractionDesignFeatureFlags),
280
- multiBodiedExtension: ExtensionNodeView(portalProviderAPI, eventDispatcher, providerFactory, extensionHandlers, extensionNodeViewOptions, pluginInjectionApi, macroInteractionDesignFeatureFlags)
279
+ inlineExtension: lazyExtensionNodeView('inlineExtension', portalProviderAPI, eventDispatcher, providerFactory, extensionHandlers, extensionNodeViewOptions, pluginInjectionApi, macroInteractionDesignFeatureFlags),
280
+ multiBodiedExtension: lazyExtensionNodeView('multiBodiedExtension', portalProviderAPI, eventDispatcher, providerFactory, extensionHandlers, extensionNodeViewOptions, pluginInjectionApi, macroInteractionDesignFeatureFlags)
281
281
  },
282
282
  createSelectionBetween: function createSelectionBetween(view, anchor, head) {
283
283
  if (!fg('platform.editor.multi-bodied-extension_0rygg')) {
@@ -0,0 +1,62 @@
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 { bodiedExtension } from '@atlaskit/adf-schema';
5
+ import { convertToInlineCss } from '@atlaskit/editor-common/lazy-node-view';
6
+ import { fg } from '@atlaskit/platform-feature-flags';
7
+ import { N30 } from '@atlaskit/theme/colors';
8
+ var capitalizeFirstLetter = function capitalizeFirstLetter(str) {
9
+ return str.charAt(0).toUpperCase() + str.slice(1);
10
+ };
11
+
12
+ // @nodeSpecException:toDOM patch
13
+ export var bodiedExtensionSpecWithFixedToDOM = function bodiedExtensionSpecWithFixedToDOM() {
14
+ if (!fg('platform_editor_lazy-node-views')) {
15
+ return bodiedExtension;
16
+ }
17
+ return _objectSpread(_objectSpread({}, bodiedExtension), {}, {
18
+ toDOM: function toDOM(node) {
19
+ var attrs = {
20
+ 'data-node-type': 'bodied-extension',
21
+ 'data-extension-type': node.attrs.extensionType,
22
+ 'data-extension-key': node.attrs.extensionKey,
23
+ 'data-text': node.attrs.text,
24
+ 'data-parameters': JSON.stringify(node.attrs.parameters),
25
+ 'data-layout': node.attrs.layout,
26
+ 'data-local-id:': node.attrs.localId,
27
+ style: convertToInlineCss({
28
+ position: 'relative',
29
+ marginTop: "var(--ds-space-300, 24px)"
30
+ })
31
+ };
32
+ var title = node.attrs && node.attrs.extensionTitle || node.attrs && node.attrs.macroMetadata && node.attrs.macroMetadata.title || node.attrs.extensionKey;
33
+ return ['div', attrs, ['span', {
34
+ // Styles based on `packages/editor/editor-common/src/extensibility/Extension/Lozenge/ExtensionLabel.tsx`
35
+ style: convertToInlineCss({
36
+ boxShadow: "0 0 0 1px ".concat("var(--ds-border, ".concat(N30, ")")),
37
+ fontSize: '14px',
38
+ padding: "var(--ds-space-025, 2px)".concat(" ", "var(--ds-space-050, 4px)"),
39
+ color: "var(--ds-text-subtle, #44546F)",
40
+ borderTopLeftRadius: "var(--ds-border-radius, 4px)",
41
+ borderTopRightRadius: "var(--ds-border-radius, 4px)",
42
+ lineHeight: 1,
43
+ position: 'absolute',
44
+ top: '-19px'
45
+ }),
46
+ // If we put this below inside the span then we serialise the label (which causes the label to be
47
+ // be copied to the clipboard causing copy-paste issues).
48
+ // So instead we use a pseudo-element to add the title to this class
49
+ 'data-bodied-extension-label': capitalizeFirstLetter(title),
50
+ class: 'bodied-extension-to-dom-label'
51
+ }], ['div', {
52
+ style: convertToInlineCss({
53
+ padding: "var(--ds-space-200, 16px)",
54
+ marginLeft: "var(--ds-space-negative-150, -12px)",
55
+ marginRight: "var(--ds-space-negative-150, -12px)",
56
+ boxShadow: "0 0 0 1px ".concat("var(--ds-border, ".concat(N30, ")")),
57
+ borderRadius: "var(--ds-border-radius, 4px)"
58
+ })
59
+ }, 0]];
60
+ }
61
+ });
62
+ };
@@ -0,0 +1,2 @@
1
+ import { ExtensionNodeView } from '@atlaskit/editor-common/extensibility';
2
+ export declare function lazyExtensionNodeView(nodeName: string, ...params: Parameters<typeof ExtensionNodeView>): import("@atlaskit/editor-common/lazy-node-view").NodeViewConstructor;
@@ -0,0 +1 @@
1
+ export declare const bodiedExtensionSpecWithFixedToDOM: () => import("prosemirror-model").NodeSpec;
@@ -0,0 +1,2 @@
1
+ import { ExtensionNodeView } from '@atlaskit/editor-common/extensibility';
2
+ export declare function lazyExtensionNodeView(nodeName: string, ...params: Parameters<typeof ExtensionNodeView>): import("@atlaskit/editor-common/lazy-node-view").NodeViewConstructor;
@@ -0,0 +1 @@
1
+ export declare const bodiedExtensionSpecWithFixedToDOM: () => import("prosemirror-model").NodeSpec;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-plugin-extension",
3
- "version": "1.12.1",
3
+ "version": "1.12.3",
4
4
  "description": "editor-plugin-extension plugin for @atlaskit/editor-core",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -26,12 +26,12 @@
26
26
  "dependencies": {
27
27
  "@atlaskit/adf-schema": "^40.3.0",
28
28
  "@atlaskit/adf-utils": "^19.6.0",
29
- "@atlaskit/analytics-next": "^9.3.0",
30
- "@atlaskit/avatar": "^21.11.0",
29
+ "@atlaskit/analytics-next": "^10.0.0",
30
+ "@atlaskit/avatar": "^21.12.0",
31
31
  "@atlaskit/button": "^19.1.0",
32
- "@atlaskit/checkbox": "^13.5.0",
33
- "@atlaskit/datetime-picker": "^13.7.0",
34
- "@atlaskit/editor-common": "^87.0.0",
32
+ "@atlaskit/checkbox": "^13.6.0",
33
+ "@atlaskit/datetime-picker": "^13.8.0",
34
+ "@atlaskit/editor-common": "^87.5.0",
35
35
  "@atlaskit/editor-json-transformer": "^8.17.0",
36
36
  "@atlaskit/editor-plugin-analytics": "^1.6.0",
37
37
  "@atlaskit/editor-plugin-context-identifier": "^1.2.0",
@@ -42,9 +42,9 @@
42
42
  "@atlaskit/editor-prosemirror": "5.0.1",
43
43
  "@atlaskit/editor-shared-styles": "^2.13.0",
44
44
  "@atlaskit/editor-tables": "^2.8.0",
45
- "@atlaskit/empty-state": "^7.9.0",
45
+ "@atlaskit/empty-state": "^7.10.0",
46
46
  "@atlaskit/form": "^10.4.0",
47
- "@atlaskit/icon": "^22.7.0",
47
+ "@atlaskit/icon": "^22.10.0",
48
48
  "@atlaskit/platform-feature-flags": "^0.3.0",
49
49
  "@atlaskit/primitives": "^11.1.0",
50
50
  "@atlaskit/radio": "^6.4.0",
@@ -57,7 +57,7 @@
57
57
  "@atlaskit/textfield": "^6.4.0",
58
58
  "@atlaskit/theme": "^12.11.0",
59
59
  "@atlaskit/toggle": "^13.2.0",
60
- "@atlaskit/tokens": "^1.56.0",
60
+ "@atlaskit/tokens": "^1.57.0",
61
61
  "@atlaskit/tooltip": "^18.5.0",
62
62
  "@babel/runtime": "^7.0.0",
63
63
  "@emotion/react": "^11.7.1",
@@ -114,6 +114,9 @@
114
114
  "platform-feature-flags": {
115
115
  "platform.editor.multi-bodied-extension_0rygg": {
116
116
  "type": "boolean"
117
+ },
118
+ "platform_editor_lazy-node-views": {
119
+ "type": "boolean"
117
120
  }
118
121
  }
119
122
  }