@atlaskit/editor-plugin-block-menu 18.0.6 → 18.0.7

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-plugin-block-menu
2
2
 
3
+ ## 18.0.7
4
+
5
+ ### Patch Changes
6
+
7
+ - [`45f8d6aea7dc6`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/45f8d6aea7dc6) -
8
+ Clean up the permanently enabled `platform_editor_block_menu_transform_extensions` feature gate.
9
+
3
10
  ## 18.0.6
4
11
 
5
12
  ### Patch Changes
@@ -25,7 +25,7 @@ var blockMenuPlugin = exports.blockMenuPlugin = function blockMenuPlugin(_ref) {
25
25
  var api = _ref.api,
26
26
  config = _ref.config;
27
27
  var registry = (0, _editorActions.createBlockMenuRegistry)();
28
- var transformSourceRegistry = (0, _isExperimentEnabled.isExperimentEnabled)('platform_editor_block_menu_transform_extensions') ? (0, _transformSourceRegistry.createBlockMenuTransformSourceRegistry)() : undefined;
28
+ var transformSourceRegistry = (0, _transformSourceRegistry.createBlockMenuTransformSourceRegistry)();
29
29
  registry.register((0, _blockMenuComponents.getBlockMenuComponents)({
30
30
  api: api,
31
31
  config: config
@@ -81,11 +81,7 @@ var blockMenuPlugin = exports.blockMenuPlugin = function blockMenuPlugin(_ref) {
81
81
  });
82
82
  },
83
83
  registerBlockMenuTransforms: function registerBlockMenuTransforms(transforms) {
84
- if ((0, _isExperimentEnabled.isExperimentEnabled)('platform_editor_block_menu_transform_extensions')) {
85
- var _transformSourceRegis;
86
- return (_transformSourceRegis = transformSourceRegistry === null || transformSourceRegistry === void 0 ? void 0 : transformSourceRegistry.register(transforms)) !== null && _transformSourceRegis !== void 0 ? _transformSourceRegis : function () {};
87
- }
88
- return function () {};
84
+ return transformSourceRegistry.register(transforms);
89
85
  }
90
86
  },
91
87
  commands: {
@@ -8,7 +8,6 @@ exports.isTransformToTargetDisabled = exports.canParentContainNodeType = void 0;
8
8
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
9
  var _selection = require("@atlaskit/editor-common/selection");
10
10
  var _model = require("@atlaskit/editor-prosemirror/model");
11
- var _isExperimentEnabled = require("@atlaskit/platform-feature-experiments/is-experiment-enabled");
12
11
  var _transform = require("../editor-commands/transform-node-utils/transform");
13
12
  var _types = require("../editor-commands/transform-node-utils/types");
14
13
  var _utils = require("../editor-commands/transform-node-utils/utils");
@@ -81,14 +80,13 @@ var isTransformToTargetDisabled = exports.isTransformToTargetDisabled = function
81
80
  if (!range) {
82
81
  return false;
83
82
  }
84
- if ((0, _isExperimentEnabled.isExperimentEnabled)('platform_editor_block_menu_transform_extensions')) {
85
- var sourceNode = (0, _transformSource.getSingleTransformSourceNode)(selection, range);
86
- if ((0, _transformSource.isExtensionTransformSource)(sourceNode)) {
87
- return (transformRegistry === null || transformRegistry === void 0 ? void 0 : transformRegistry.resolve({
88
- source: sourceNode.toJSON(),
89
- targetTypeName: targetNodeTypeName
90
- }).status) !== 'supported';
91
- }
83
+ var sourceNode = (0, _transformSource.getSingleTransformSourceNode)(selection, range);
84
+ if ((0, _transformSource.isExtensionTransformSource)(sourceNode)) {
85
+ var _transformRegistry$re;
86
+ return (transformRegistry === null || transformRegistry === void 0 || (_transformRegistry$re = transformRegistry.resolve({
87
+ source: sourceNode.toJSON(),
88
+ targetTypeName: targetNodeTypeName
89
+ })) === null || _transformRegistry$re === void 0 ? void 0 : _transformRegistry$re.status) !== 'supported';
92
90
  }
93
91
  var selectedNodes = (0, _utils.getBlockNodesInRange)(range);
94
92
  var parent = range.parent;
@@ -33,86 +33,81 @@ var transformNode = exports.transformNode = function transformNode(api, transfor
33
33
  return null;
34
34
  }
35
35
  var analytics = (0, _transformAnalytics.createTransformAnalytics)(api, tr, preservedSelection);
36
- if ((0, _isExperimentEnabled.isExperimentEnabled)('platform_editor_block_menu_transform_extensions')) {
37
- var _expandSelectionToBlo = (0, _selection.expandSelectionToBlockRange)(preservedSelection),
38
- _$from = _expandSelectionToBlo.$from,
39
- _$to = _expandSelectionToBlo.$to,
40
- range = _expandSelectionToBlo.range;
41
- var sourceNode = (0, _transformSource.getSingleTransformSourceNode)(preservedSelection, range);
42
- if ((0, _transformSource.isExtensionTransformSource)(sourceNode)) {
43
- var _metadata$targetTypeN;
44
- var context = {
45
- source: sourceNode.toJSON(),
46
- targetTypeName: (_metadata$targetTypeN = metadata === null || metadata === void 0 ? void 0 : metadata.targetTypeName) !== null && _metadata$targetTypeN !== void 0 ? _metadata$targetTypeN : targetType.name
47
- };
48
- var resolution = transformRegistry === null || transformRegistry === void 0 ? void 0 : transformRegistry.resolve(context);
49
- if (!resolution || resolution.status === 'unsupported') {
36
+ var _expandSelectionToBlo = (0, _selection.expandSelectionToBlockRange)(preservedSelection),
37
+ $from = _expandSelectionToBlo.$from,
38
+ $to = _expandSelectionToBlo.$to,
39
+ range = _expandSelectionToBlo.range;
40
+ var sourceNode = (0, _transformSource.getSingleTransformSourceNode)(preservedSelection, range);
41
+ if ((0, _transformSource.isExtensionTransformSource)(sourceNode)) {
42
+ var _metadata$targetTypeN;
43
+ var context = {
44
+ source: sourceNode.toJSON(),
45
+ targetTypeName: (_metadata$targetTypeN = metadata === null || metadata === void 0 ? void 0 : metadata.targetTypeName) !== null && _metadata$targetTypeN !== void 0 ? _metadata$targetTypeN : targetType.name
46
+ };
47
+ var resolution = transformRegistry === null || transformRegistry === void 0 ? void 0 : transformRegistry.resolve(context);
48
+ if (!resolution || resolution.status === 'unsupported') {
49
+ return tr;
50
+ }
51
+ var _measureId = "transformNode_".concat(targetType.name, "_").concat(Date.now());
52
+ (0, _performanceMeasures.startMeasure)(_measureId);
53
+ try {
54
+ var _api$blockControls2, _api$blockControls3;
55
+ var transformResult = resolution.transform.transform(context);
56
+ if (!transformResult) {
57
+ (0, _performanceMeasures.stopMeasure)(_measureId);
50
58
  return tr;
51
59
  }
52
- var _measureId = "transformNode_".concat(targetType.name, "_").concat(Date.now());
53
- (0, _performanceMeasures.startMeasure)(_measureId);
54
- try {
55
- var _api$blockControls2, _api$blockControls3;
56
- var transformResult = resolution.transform.transform(context);
57
- if (!transformResult) {
58
- (0, _performanceMeasures.stopMeasure)(_measureId);
59
- return tr;
60
- }
61
- if (!Array.isArray(transformResult.output) || transformResult.output.length === 0) {
62
- throw new Error('Block menu transform returned no output');
63
- }
64
- var resultNodes = transformResult.output.map(function (nodeAdf) {
65
- var node = _model.Node.fromJSON(tr.doc.type.schema, nodeAdf);
66
- node.check();
67
- return node;
68
- });
69
- if (!range || !range.parent.canReplace(range.startIndex, range.endIndex, _model.Fragment.from(resultNodes))) {
70
- throw new Error('Block menu transform output is invalid at the selected position');
60
+ if (!Array.isArray(transformResult.output) || transformResult.output.length === 0) {
61
+ throw new Error('Block menu transform returned no output');
62
+ }
63
+ var resultNodes = transformResult.output.map(function (nodeAdf) {
64
+ var node = _model.Node.fromJSON(tr.doc.type.schema, nodeAdf);
65
+ node.check();
66
+ return node;
67
+ });
68
+ if (!range || !range.parent.canReplace(range.startIndex, range.endIndex, _model.Fragment.from(resultNodes))) {
69
+ throw new Error('Block menu transform output is invalid at the selected position');
70
+ }
71
+ var sliceStart = $from.pos;
72
+ tr.replaceWith(sliceStart, $to.pos, resultNodes);
73
+ var insertedNode = tr.doc.nodeAt(sliceStart);
74
+ var nextSelection = insertedNode && _state.NodeSelection.isSelectable(insertedNode) ? _state.NodeSelection.create(tr.doc, sliceStart) : _state.Selection.near(tr.doc.resolve(sliceStart));
75
+ tr.setSelection(nextSelection);
76
+ api === null || api === void 0 || (_api$blockControls2 = api.blockControls) === null || _api$blockControls2 === void 0 || _api$blockControls2.commands.stopPreservingSelection()({
77
+ tr: tr
78
+ });
79
+ api === null || api === void 0 || (_api$blockControls3 = api.blockControls) === null || _api$blockControls3 === void 0 || _api$blockControls3.commands.toggleBlockMenu({
80
+ closeMenu: true
81
+ })({
82
+ tr: tr
83
+ });
84
+ var _tr$doc$type$schema$n = tr.doc.type.schema.nodes,
85
+ expand = _tr$doc$type$schema$n.expand,
86
+ nestedExpand = _tr$doc$type$schema$n.nestedExpand;
87
+ resultNodes.forEach(function (node) {
88
+ if (node.type === expand || node.type === nestedExpand) {
89
+ _expand2.expandedState.set(node, true);
71
90
  }
72
- var sliceStart = _$from.pos;
73
- tr.replaceWith(sliceStart, _$to.pos, resultNodes);
74
- var insertedNode = tr.doc.nodeAt(sliceStart);
75
- var nextSelection = insertedNode && _state.NodeSelection.isSelectable(insertedNode) ? _state.NodeSelection.create(tr.doc, sliceStart) : _state.Selection.near(tr.doc.resolve(sliceStart));
76
- tr.setSelection(nextSelection);
77
- api === null || api === void 0 || (_api$blockControls2 = api.blockControls) === null || _api$blockControls2 === void 0 || _api$blockControls2.commands.stopPreservingSelection()({
78
- tr: tr
79
- });
80
- api === null || api === void 0 || (_api$blockControls3 = api.blockControls) === null || _api$blockControls3 === void 0 || _api$blockControls3.commands.toggleBlockMenu({
81
- closeMenu: true
82
- })({
83
- tr: tr
84
- });
85
- var _tr$doc$type$schema$n = tr.doc.type.schema.nodes,
86
- expand = _tr$doc$type$schema$n.expand,
87
- nestedExpand = _tr$doc$type$schema$n.nestedExpand;
88
- resultNodes.forEach(function (node) {
89
- if (node.type === expand || node.type === nestedExpand) {
90
- _expand2.expandedState.set(node, true);
91
- }
92
- });
93
- (0, _performanceMeasures.stopMeasure)(_measureId, function (duration, startTime) {
94
- analytics.transformed(duration, startTime, {
95
- isNested: (0, _isNestedNode.isNestedNode)(preservedSelection, ''),
96
- isSuggested: Boolean(metadata === null || metadata === void 0 ? void 0 : metadata.isSuggested),
97
- outputNodesCount: resultNodes.length,
98
- sourceNodes: [sourceNode],
99
- targetNodeType: targetType.name
100
- });
91
+ });
92
+ (0, _performanceMeasures.stopMeasure)(_measureId, function (duration, startTime) {
93
+ analytics.transformed(duration, startTime, {
94
+ isNested: (0, _isNestedNode.isNestedNode)(preservedSelection, ''),
95
+ isSuggested: Boolean(metadata === null || metadata === void 0 ? void 0 : metadata.isSuggested),
96
+ outputNodesCount: resultNodes.length,
97
+ sourceNodes: [sourceNode],
98
+ targetNodeType: targetType.name
101
99
  });
102
- } catch (error) {
103
- (0, _performanceMeasures.stopMeasure)(_measureId);
104
- analytics.errored(error, [sourceNode], targetType.name);
105
- }
106
- return tr;
100
+ });
101
+ } catch (error) {
102
+ (0, _performanceMeasures.stopMeasure)(_measureId);
103
+ analytics.errored(error, [sourceNode], targetType.name);
107
104
  }
105
+ return tr;
108
106
  }
109
107
  var measureId = "transformNode_".concat(targetType.name, "_").concat(Date.now());
110
108
  (0, _performanceMeasures.startMeasure)(measureId);
111
109
  var docBeforeTransform = tr.doc;
112
110
  var nodes = tr.doc.type.schema.nodes;
113
- var _expandSelectionToBlo2 = (0, _selection.expandSelectionToBlockRange)(preservedSelection),
114
- $from = _expandSelectionToBlo2.$from,
115
- $to = _expandSelectionToBlo2.$to;
116
111
  var selectedParent = $from.parent;
117
112
  var isParentLayout = selectedParent.type === nodes.layoutColumn;
118
113
  var isNested = (0, _isNestedNode.isNestedNode)(preservedSelection, '') && !isParentLayout;
@@ -1,25 +1,16 @@
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.checkIsFormatMenuHidden = void 0;
8
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
- var _memoizeOne = _interopRequireDefault(require("memoize-one"));
10
7
  var _utils = require("@atlaskit/editor-prosemirror/utils");
11
- var _isExperimentEnabled = require("@atlaskit/platform-feature-experiments/is-experiment-enabled");
12
- var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
13
- var getDisabledNodeTypes = (0, _memoizeOne.default)(function (nodes) {
14
- return [nodes.rule].concat((0, _toConsumableArray2.default)((0, _expValEquals.expValEquals)('confluence_native_tabs_experiment', 'isEnabled', true) ? [nodes.multiBodiedExtension] : []));
15
- });
16
8
  var getIsFormatMenuHidden = function getIsFormatMenuHidden(selection, schema) {
17
9
  var nodes = schema.nodes;
18
10
  if (!nodes) {
19
11
  return false;
20
12
  }
21
- var disabledNodeTypes = (0, _isExperimentEnabled.isExperimentEnabled)('platform_editor_block_menu_transform_extensions') ? [nodes.rule] : getDisabledNodeTypes(nodes);
22
- var disabledNode = (0, _utils.findSelectedNodeOfType)(disabledNodeTypes)(selection);
13
+ var disabledNode = (0, _utils.findSelectedNodeOfType)([nodes.rule])(selection);
23
14
  return !!disabledNode;
24
15
  };
25
16
  var checkIsFormatMenuHidden = exports.checkIsFormatMenuHidden = function checkIsFormatMenuHidden(api) {
@@ -18,7 +18,7 @@ export const blockMenuPlugin = ({
18
18
  config
19
19
  }) => {
20
20
  const registry = createBlockMenuRegistry();
21
- const transformSourceRegistry = isExperimentEnabled('platform_editor_block_menu_transform_extensions') ? createBlockMenuTransformSourceRegistry() : undefined;
21
+ const transformSourceRegistry = createBlockMenuTransformSourceRegistry();
22
22
  registry.register(getBlockMenuComponents({
23
23
  api,
24
24
  config
@@ -67,13 +67,7 @@ export const blockMenuPlugin = ({
67
67
  transformRegistry: transformSourceRegistry
68
68
  });
69
69
  },
70
- registerBlockMenuTransforms: transforms => {
71
- if (isExperimentEnabled('platform_editor_block_menu_transform_extensions')) {
72
- var _transformSourceRegis;
73
- return (_transformSourceRegis = transformSourceRegistry === null || transformSourceRegistry === void 0 ? void 0 : transformSourceRegistry.register(transforms)) !== null && _transformSourceRegis !== void 0 ? _transformSourceRegis : () => {};
74
- }
75
- return () => {};
76
- }
70
+ registerBlockMenuTransforms: transforms => transformSourceRegistry.register(transforms)
77
71
  },
78
72
  commands: {
79
73
  transformInlineNode: metadata => transformInlineNode(api)(metadata),
@@ -1,6 +1,5 @@
1
1
  import { expandSelectionToBlockRange } from '@atlaskit/editor-common/selection';
2
2
  import { Fragment } from '@atlaskit/editor-prosemirror/model';
3
- import { isExperimentEnabled } from '@atlaskit/platform-feature-experiments/is-experiment-enabled';
4
3
  import { isTransformDisabledBasedOnStepsConfig } from '../editor-commands/transform-node-utils/transform';
5
4
  import { toNodeTypeValue } from '../editor-commands/transform-node-utils/types';
6
5
  import { getBlockNodesInRange, getTargetNodeTypeNameInContext } from '../editor-commands/transform-node-utils/utils';
@@ -72,14 +71,13 @@ export const isTransformToTargetDisabled = ({
72
71
  if (!range) {
73
72
  return false;
74
73
  }
75
- if (isExperimentEnabled('platform_editor_block_menu_transform_extensions')) {
76
- const sourceNode = getSingleTransformSourceNode(selection, range);
77
- if (isExtensionTransformSource(sourceNode)) {
78
- return (transformRegistry === null || transformRegistry === void 0 ? void 0 : transformRegistry.resolve({
79
- source: sourceNode.toJSON(),
80
- targetTypeName: targetNodeTypeName
81
- }).status) !== 'supported';
82
- }
74
+ const sourceNode = getSingleTransformSourceNode(selection, range);
75
+ if (isExtensionTransformSource(sourceNode)) {
76
+ var _transformRegistry$re;
77
+ return (transformRegistry === null || transformRegistry === void 0 ? void 0 : (_transformRegistry$re = transformRegistry.resolve({
78
+ source: sourceNode.toJSON(),
79
+ targetTypeName: targetNodeTypeName
80
+ })) === null || _transformRegistry$re === void 0 ? void 0 : _transformRegistry$re.status) !== 'supported';
83
81
  }
84
82
  const selectedNodes = getBlockNodesInRange(range);
85
83
  const parent = range.parent;
@@ -26,80 +26,78 @@ export const transformNode = (api, transformRegistry) => (targetType, metadata)
26
26
  return null;
27
27
  }
28
28
  const analytics = createTransformAnalytics(api, tr, preservedSelection);
29
- if (isExperimentEnabled('platform_editor_block_menu_transform_extensions')) {
30
- const {
31
- $from,
32
- $to,
33
- range
34
- } = expandSelectionToBlockRange(preservedSelection);
35
- const sourceNode = getSingleTransformSourceNode(preservedSelection, range);
36
- if (isExtensionTransformSource(sourceNode)) {
37
- var _metadata$targetTypeN;
38
- const context = {
39
- source: sourceNode.toJSON(),
40
- targetTypeName: (_metadata$targetTypeN = metadata === null || metadata === void 0 ? void 0 : metadata.targetTypeName) !== null && _metadata$targetTypeN !== void 0 ? _metadata$targetTypeN : targetType.name
41
- };
42
- const resolution = transformRegistry === null || transformRegistry === void 0 ? void 0 : transformRegistry.resolve(context);
43
- if (!resolution || resolution.status === 'unsupported') {
29
+ const {
30
+ $from,
31
+ $to,
32
+ range
33
+ } = expandSelectionToBlockRange(preservedSelection);
34
+ const sourceNode = getSingleTransformSourceNode(preservedSelection, range);
35
+ if (isExtensionTransformSource(sourceNode)) {
36
+ var _metadata$targetTypeN;
37
+ const context = {
38
+ source: sourceNode.toJSON(),
39
+ targetTypeName: (_metadata$targetTypeN = metadata === null || metadata === void 0 ? void 0 : metadata.targetTypeName) !== null && _metadata$targetTypeN !== void 0 ? _metadata$targetTypeN : targetType.name
40
+ };
41
+ const resolution = transformRegistry === null || transformRegistry === void 0 ? void 0 : transformRegistry.resolve(context);
42
+ if (!resolution || resolution.status === 'unsupported') {
43
+ return tr;
44
+ }
45
+ const measureId = `transformNode_${targetType.name}_${Date.now()}`;
46
+ startMeasure(measureId);
47
+ try {
48
+ var _api$blockControls2, _api$blockControls3;
49
+ const transformResult = resolution.transform.transform(context);
50
+ if (!transformResult) {
51
+ stopMeasure(measureId);
44
52
  return tr;
45
53
  }
46
- const measureId = `transformNode_${targetType.name}_${Date.now()}`;
47
- startMeasure(measureId);
48
- try {
49
- var _api$blockControls2, _api$blockControls3;
50
- const transformResult = resolution.transform.transform(context);
51
- if (!transformResult) {
52
- stopMeasure(measureId);
53
- return tr;
54
- }
55
- if (!Array.isArray(transformResult.output) || transformResult.output.length === 0) {
56
- throw new Error('Block menu transform returned no output');
57
- }
58
- const resultNodes = transformResult.output.map(nodeAdf => {
59
- const node = Node.fromJSON(tr.doc.type.schema, nodeAdf);
60
- node.check();
61
- return node;
62
- });
63
- if (!range || !range.parent.canReplace(range.startIndex, range.endIndex, Fragment.from(resultNodes))) {
64
- throw new Error('Block menu transform output is invalid at the selected position');
54
+ if (!Array.isArray(transformResult.output) || transformResult.output.length === 0) {
55
+ throw new Error('Block menu transform returned no output');
56
+ }
57
+ const resultNodes = transformResult.output.map(nodeAdf => {
58
+ const node = Node.fromJSON(tr.doc.type.schema, nodeAdf);
59
+ node.check();
60
+ return node;
61
+ });
62
+ if (!range || !range.parent.canReplace(range.startIndex, range.endIndex, Fragment.from(resultNodes))) {
63
+ throw new Error('Block menu transform output is invalid at the selected position');
64
+ }
65
+ const sliceStart = $from.pos;
66
+ tr.replaceWith(sliceStart, $to.pos, resultNodes);
67
+ const insertedNode = tr.doc.nodeAt(sliceStart);
68
+ const nextSelection = insertedNode && NodeSelection.isSelectable(insertedNode) ? NodeSelection.create(tr.doc, sliceStart) : Selection.near(tr.doc.resolve(sliceStart));
69
+ tr.setSelection(nextSelection);
70
+ api === null || api === void 0 ? void 0 : (_api$blockControls2 = api.blockControls) === null || _api$blockControls2 === void 0 ? void 0 : _api$blockControls2.commands.stopPreservingSelection()({
71
+ tr
72
+ });
73
+ api === null || api === void 0 ? void 0 : (_api$blockControls3 = api.blockControls) === null || _api$blockControls3 === void 0 ? void 0 : _api$blockControls3.commands.toggleBlockMenu({
74
+ closeMenu: true
75
+ })({
76
+ tr
77
+ });
78
+ const {
79
+ expand,
80
+ nestedExpand
81
+ } = tr.doc.type.schema.nodes;
82
+ resultNodes.forEach(node => {
83
+ if (node.type === expand || node.type === nestedExpand) {
84
+ expandedState.set(node, true);
65
85
  }
66
- const sliceStart = $from.pos;
67
- tr.replaceWith(sliceStart, $to.pos, resultNodes);
68
- const insertedNode = tr.doc.nodeAt(sliceStart);
69
- const nextSelection = insertedNode && NodeSelection.isSelectable(insertedNode) ? NodeSelection.create(tr.doc, sliceStart) : Selection.near(tr.doc.resolve(sliceStart));
70
- tr.setSelection(nextSelection);
71
- api === null || api === void 0 ? void 0 : (_api$blockControls2 = api.blockControls) === null || _api$blockControls2 === void 0 ? void 0 : _api$blockControls2.commands.stopPreservingSelection()({
72
- tr
73
- });
74
- api === null || api === void 0 ? void 0 : (_api$blockControls3 = api.blockControls) === null || _api$blockControls3 === void 0 ? void 0 : _api$blockControls3.commands.toggleBlockMenu({
75
- closeMenu: true
76
- })({
77
- tr
78
- });
79
- const {
80
- expand,
81
- nestedExpand
82
- } = tr.doc.type.schema.nodes;
83
- resultNodes.forEach(node => {
84
- if (node.type === expand || node.type === nestedExpand) {
85
- expandedState.set(node, true);
86
- }
87
- });
88
- stopMeasure(measureId, (duration, startTime) => {
89
- analytics.transformed(duration, startTime, {
90
- isNested: isNestedNode(preservedSelection, ''),
91
- isSuggested: Boolean(metadata === null || metadata === void 0 ? void 0 : metadata.isSuggested),
92
- outputNodesCount: resultNodes.length,
93
- sourceNodes: [sourceNode],
94
- targetNodeType: targetType.name
95
- });
86
+ });
87
+ stopMeasure(measureId, (duration, startTime) => {
88
+ analytics.transformed(duration, startTime, {
89
+ isNested: isNestedNode(preservedSelection, ''),
90
+ isSuggested: Boolean(metadata === null || metadata === void 0 ? void 0 : metadata.isSuggested),
91
+ outputNodesCount: resultNodes.length,
92
+ sourceNodes: [sourceNode],
93
+ targetNodeType: targetType.name
96
94
  });
97
- } catch (error) {
98
- stopMeasure(measureId);
99
- analytics.errored(error, [sourceNode], targetType.name);
100
- }
101
- return tr;
95
+ });
96
+ } catch (error) {
97
+ stopMeasure(measureId);
98
+ analytics.errored(error, [sourceNode], targetType.name);
102
99
  }
100
+ return tr;
103
101
  }
104
102
  const measureId = `transformNode_${targetType.name}_${Date.now()}`;
105
103
  startMeasure(measureId);
@@ -107,10 +105,6 @@ export const transformNode = (api, transformRegistry) => (targetType, metadata)
107
105
  const {
108
106
  nodes
109
107
  } = tr.doc.type.schema;
110
- const {
111
- $from,
112
- $to
113
- } = expandSelectionToBlockRange(preservedSelection);
114
108
  const selectedParent = $from.parent;
115
109
  const isParentLayout = selectedParent.type === nodes.layoutColumn;
116
110
  const isNested = isNestedNode(preservedSelection, '') && !isParentLayout;
@@ -1,15 +1,10 @@
1
- import memoizeOne from 'memoize-one';
2
1
  import { findSelectedNodeOfType } from '@atlaskit/editor-prosemirror/utils';
3
- import { isExperimentEnabled } from '@atlaskit/platform-feature-experiments/is-experiment-enabled';
4
- import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
5
- const getDisabledNodeTypes = memoizeOne(nodes => [nodes.rule, ...(expValEquals('confluence_native_tabs_experiment', 'isEnabled', true) ? [nodes.multiBodiedExtension] : [])]);
6
2
  const getIsFormatMenuHidden = (selection, schema) => {
7
3
  const nodes = schema.nodes;
8
4
  if (!nodes) {
9
5
  return false;
10
6
  }
11
- const disabledNodeTypes = isExperimentEnabled('platform_editor_block_menu_transform_extensions') ? [nodes.rule] : getDisabledNodeTypes(nodes);
12
- const disabledNode = findSelectedNodeOfType(disabledNodeTypes)(selection);
7
+ const disabledNode = findSelectedNodeOfType([nodes.rule])(selection);
13
8
  return !!disabledNode;
14
9
  };
15
10
  export const checkIsFormatMenuHidden = api => {
@@ -18,7 +18,7 @@ export var blockMenuPlugin = function blockMenuPlugin(_ref) {
18
18
  var api = _ref.api,
19
19
  config = _ref.config;
20
20
  var registry = createBlockMenuRegistry();
21
- var transformSourceRegistry = isExperimentEnabled('platform_editor_block_menu_transform_extensions') ? createBlockMenuTransformSourceRegistry() : undefined;
21
+ var transformSourceRegistry = createBlockMenuTransformSourceRegistry();
22
22
  registry.register(getBlockMenuComponents({
23
23
  api: api,
24
24
  config: config
@@ -74,11 +74,7 @@ export var blockMenuPlugin = function blockMenuPlugin(_ref) {
74
74
  });
75
75
  },
76
76
  registerBlockMenuTransforms: function registerBlockMenuTransforms(transforms) {
77
- if (isExperimentEnabled('platform_editor_block_menu_transform_extensions')) {
78
- var _transformSourceRegis;
79
- return (_transformSourceRegis = transformSourceRegistry === null || transformSourceRegistry === void 0 ? void 0 : transformSourceRegistry.register(transforms)) !== null && _transformSourceRegis !== void 0 ? _transformSourceRegis : function () {};
80
- }
81
- return function () {};
77
+ return transformSourceRegistry.register(transforms);
82
78
  }
83
79
  },
84
80
  commands: {
@@ -1,7 +1,6 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
2
  import { expandSelectionToBlockRange } from '@atlaskit/editor-common/selection';
3
3
  import { Fragment } from '@atlaskit/editor-prosemirror/model';
4
- import { isExperimentEnabled } from '@atlaskit/platform-feature-experiments/is-experiment-enabled';
5
4
  import { isTransformDisabledBasedOnStepsConfig } from '../editor-commands/transform-node-utils/transform';
6
5
  import { toNodeTypeValue } from '../editor-commands/transform-node-utils/types';
7
6
  import { getBlockNodesInRange, getTargetNodeTypeNameInContext } from '../editor-commands/transform-node-utils/utils';
@@ -74,14 +73,13 @@ export var isTransformToTargetDisabled = function isTransformToTargetDisabled(_r
74
73
  if (!range) {
75
74
  return false;
76
75
  }
77
- if (isExperimentEnabled('platform_editor_block_menu_transform_extensions')) {
78
- var sourceNode = getSingleTransformSourceNode(selection, range);
79
- if (isExtensionTransformSource(sourceNode)) {
80
- return (transformRegistry === null || transformRegistry === void 0 ? void 0 : transformRegistry.resolve({
81
- source: sourceNode.toJSON(),
82
- targetTypeName: targetNodeTypeName
83
- }).status) !== 'supported';
84
- }
76
+ var sourceNode = getSingleTransformSourceNode(selection, range);
77
+ if (isExtensionTransformSource(sourceNode)) {
78
+ var _transformRegistry$re;
79
+ return (transformRegistry === null || transformRegistry === void 0 || (_transformRegistry$re = transformRegistry.resolve({
80
+ source: sourceNode.toJSON(),
81
+ targetTypeName: targetNodeTypeName
82
+ })) === null || _transformRegistry$re === void 0 ? void 0 : _transformRegistry$re.status) !== 'supported';
85
83
  }
86
84
  var selectedNodes = getBlockNodesInRange(range);
87
85
  var parent = range.parent;
@@ -27,86 +27,81 @@ export var transformNode = function transformNode(api, transformRegistry) {
27
27
  return null;
28
28
  }
29
29
  var analytics = createTransformAnalytics(api, tr, preservedSelection);
30
- if (isExperimentEnabled('platform_editor_block_menu_transform_extensions')) {
31
- var _expandSelectionToBlo = expandSelectionToBlockRange(preservedSelection),
32
- _$from = _expandSelectionToBlo.$from,
33
- _$to = _expandSelectionToBlo.$to,
34
- range = _expandSelectionToBlo.range;
35
- var sourceNode = getSingleTransformSourceNode(preservedSelection, range);
36
- if (isExtensionTransformSource(sourceNode)) {
37
- var _metadata$targetTypeN;
38
- var context = {
39
- source: sourceNode.toJSON(),
40
- targetTypeName: (_metadata$targetTypeN = metadata === null || metadata === void 0 ? void 0 : metadata.targetTypeName) !== null && _metadata$targetTypeN !== void 0 ? _metadata$targetTypeN : targetType.name
41
- };
42
- var resolution = transformRegistry === null || transformRegistry === void 0 ? void 0 : transformRegistry.resolve(context);
43
- if (!resolution || resolution.status === 'unsupported') {
30
+ var _expandSelectionToBlo = expandSelectionToBlockRange(preservedSelection),
31
+ $from = _expandSelectionToBlo.$from,
32
+ $to = _expandSelectionToBlo.$to,
33
+ range = _expandSelectionToBlo.range;
34
+ var sourceNode = getSingleTransformSourceNode(preservedSelection, range);
35
+ if (isExtensionTransformSource(sourceNode)) {
36
+ var _metadata$targetTypeN;
37
+ var context = {
38
+ source: sourceNode.toJSON(),
39
+ targetTypeName: (_metadata$targetTypeN = metadata === null || metadata === void 0 ? void 0 : metadata.targetTypeName) !== null && _metadata$targetTypeN !== void 0 ? _metadata$targetTypeN : targetType.name
40
+ };
41
+ var resolution = transformRegistry === null || transformRegistry === void 0 ? void 0 : transformRegistry.resolve(context);
42
+ if (!resolution || resolution.status === 'unsupported') {
43
+ return tr;
44
+ }
45
+ var _measureId = "transformNode_".concat(targetType.name, "_").concat(Date.now());
46
+ startMeasure(_measureId);
47
+ try {
48
+ var _api$blockControls2, _api$blockControls3;
49
+ var transformResult = resolution.transform.transform(context);
50
+ if (!transformResult) {
51
+ stopMeasure(_measureId);
44
52
  return tr;
45
53
  }
46
- var _measureId = "transformNode_".concat(targetType.name, "_").concat(Date.now());
47
- startMeasure(_measureId);
48
- try {
49
- var _api$blockControls2, _api$blockControls3;
50
- var transformResult = resolution.transform.transform(context);
51
- if (!transformResult) {
52
- stopMeasure(_measureId);
53
- return tr;
54
- }
55
- if (!Array.isArray(transformResult.output) || transformResult.output.length === 0) {
56
- throw new Error('Block menu transform returned no output');
57
- }
58
- var resultNodes = transformResult.output.map(function (nodeAdf) {
59
- var node = Node.fromJSON(tr.doc.type.schema, nodeAdf);
60
- node.check();
61
- return node;
62
- });
63
- if (!range || !range.parent.canReplace(range.startIndex, range.endIndex, Fragment.from(resultNodes))) {
64
- throw new Error('Block menu transform output is invalid at the selected position');
54
+ if (!Array.isArray(transformResult.output) || transformResult.output.length === 0) {
55
+ throw new Error('Block menu transform returned no output');
56
+ }
57
+ var resultNodes = transformResult.output.map(function (nodeAdf) {
58
+ var node = Node.fromJSON(tr.doc.type.schema, nodeAdf);
59
+ node.check();
60
+ return node;
61
+ });
62
+ if (!range || !range.parent.canReplace(range.startIndex, range.endIndex, Fragment.from(resultNodes))) {
63
+ throw new Error('Block menu transform output is invalid at the selected position');
64
+ }
65
+ var sliceStart = $from.pos;
66
+ tr.replaceWith(sliceStart, $to.pos, resultNodes);
67
+ var insertedNode = tr.doc.nodeAt(sliceStart);
68
+ var nextSelection = insertedNode && NodeSelection.isSelectable(insertedNode) ? NodeSelection.create(tr.doc, sliceStart) : Selection.near(tr.doc.resolve(sliceStart));
69
+ tr.setSelection(nextSelection);
70
+ api === null || api === void 0 || (_api$blockControls2 = api.blockControls) === null || _api$blockControls2 === void 0 || _api$blockControls2.commands.stopPreservingSelection()({
71
+ tr: tr
72
+ });
73
+ api === null || api === void 0 || (_api$blockControls3 = api.blockControls) === null || _api$blockControls3 === void 0 || _api$blockControls3.commands.toggleBlockMenu({
74
+ closeMenu: true
75
+ })({
76
+ tr: tr
77
+ });
78
+ var _tr$doc$type$schema$n = tr.doc.type.schema.nodes,
79
+ expand = _tr$doc$type$schema$n.expand,
80
+ nestedExpand = _tr$doc$type$schema$n.nestedExpand;
81
+ resultNodes.forEach(function (node) {
82
+ if (node.type === expand || node.type === nestedExpand) {
83
+ expandedState.set(node, true);
65
84
  }
66
- var sliceStart = _$from.pos;
67
- tr.replaceWith(sliceStart, _$to.pos, resultNodes);
68
- var insertedNode = tr.doc.nodeAt(sliceStart);
69
- var nextSelection = insertedNode && NodeSelection.isSelectable(insertedNode) ? NodeSelection.create(tr.doc, sliceStart) : Selection.near(tr.doc.resolve(sliceStart));
70
- tr.setSelection(nextSelection);
71
- api === null || api === void 0 || (_api$blockControls2 = api.blockControls) === null || _api$blockControls2 === void 0 || _api$blockControls2.commands.stopPreservingSelection()({
72
- tr: tr
73
- });
74
- api === null || api === void 0 || (_api$blockControls3 = api.blockControls) === null || _api$blockControls3 === void 0 || _api$blockControls3.commands.toggleBlockMenu({
75
- closeMenu: true
76
- })({
77
- tr: tr
78
- });
79
- var _tr$doc$type$schema$n = tr.doc.type.schema.nodes,
80
- expand = _tr$doc$type$schema$n.expand,
81
- nestedExpand = _tr$doc$type$schema$n.nestedExpand;
82
- resultNodes.forEach(function (node) {
83
- if (node.type === expand || node.type === nestedExpand) {
84
- expandedState.set(node, true);
85
- }
86
- });
87
- stopMeasure(_measureId, function (duration, startTime) {
88
- analytics.transformed(duration, startTime, {
89
- isNested: isNestedNode(preservedSelection, ''),
90
- isSuggested: Boolean(metadata === null || metadata === void 0 ? void 0 : metadata.isSuggested),
91
- outputNodesCount: resultNodes.length,
92
- sourceNodes: [sourceNode],
93
- targetNodeType: targetType.name
94
- });
85
+ });
86
+ stopMeasure(_measureId, function (duration, startTime) {
87
+ analytics.transformed(duration, startTime, {
88
+ isNested: isNestedNode(preservedSelection, ''),
89
+ isSuggested: Boolean(metadata === null || metadata === void 0 ? void 0 : metadata.isSuggested),
90
+ outputNodesCount: resultNodes.length,
91
+ sourceNodes: [sourceNode],
92
+ targetNodeType: targetType.name
95
93
  });
96
- } catch (error) {
97
- stopMeasure(_measureId);
98
- analytics.errored(error, [sourceNode], targetType.name);
99
- }
100
- return tr;
94
+ });
95
+ } catch (error) {
96
+ stopMeasure(_measureId);
97
+ analytics.errored(error, [sourceNode], targetType.name);
101
98
  }
99
+ return tr;
102
100
  }
103
101
  var measureId = "transformNode_".concat(targetType.name, "_").concat(Date.now());
104
102
  startMeasure(measureId);
105
103
  var docBeforeTransform = tr.doc;
106
104
  var nodes = tr.doc.type.schema.nodes;
107
- var _expandSelectionToBlo2 = expandSelectionToBlockRange(preservedSelection),
108
- $from = _expandSelectionToBlo2.$from,
109
- $to = _expandSelectionToBlo2.$to;
110
105
  var selectedParent = $from.parent;
111
106
  var isParentLayout = selectedParent.type === nodes.layoutColumn;
112
107
  var isNested = isNestedNode(preservedSelection, '') && !isParentLayout;
@@ -1,18 +1,10 @@
1
- import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
- import memoizeOne from 'memoize-one';
3
1
  import { findSelectedNodeOfType } from '@atlaskit/editor-prosemirror/utils';
4
- import { isExperimentEnabled } from '@atlaskit/platform-feature-experiments/is-experiment-enabled';
5
- import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
6
- var getDisabledNodeTypes = memoizeOne(function (nodes) {
7
- return [nodes.rule].concat(_toConsumableArray(expValEquals('confluence_native_tabs_experiment', 'isEnabled', true) ? [nodes.multiBodiedExtension] : []));
8
- });
9
2
  var getIsFormatMenuHidden = function getIsFormatMenuHidden(selection, schema) {
10
3
  var nodes = schema.nodes;
11
4
  if (!nodes) {
12
5
  return false;
13
6
  }
14
- var disabledNodeTypes = isExperimentEnabled('platform_editor_block_menu_transform_extensions') ? [nodes.rule] : getDisabledNodeTypes(nodes);
15
- var disabledNode = findSelectedNodeOfType(disabledNodeTypes)(selection);
7
+ var disabledNode = findSelectedNodeOfType([nodes.rule])(selection);
16
8
  return !!disabledNode;
17
9
  };
18
10
  export var checkIsFormatMenuHidden = function checkIsFormatMenuHidden(api) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-plugin-block-menu",
3
- "version": "18.0.6",
3
+ "version": "18.0.7",
4
4
  "description": "BlockMenu plugin for @atlaskit/editor-core",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
package/tsconfig.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "extends": "./tsconfig.dev.json",
2
+ "extends": "./tsconfig.app.json",
3
3
  "compilerOptions": {
4
4
  "disableReferencedProjectLoad": true,
5
5
  "disableSolutionSearching": true