@atlaskit/editor-plugin-breakout 2.1.8 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/dist/cjs/breakoutPlugin.js +18 -47
- package/dist/cjs/ui/LayoutButton.js +3 -7
- package/dist/es2019/breakoutPlugin.js +10 -30
- package/dist/es2019/ui/LayoutButton.js +3 -7
- package/dist/esm/breakoutPlugin.js +18 -44
- package/dist/esm/ui/LayoutButton.js +3 -7
- package/dist/types/ui/LayoutButton.d.ts +0 -3
- package/dist/types-ts4.5/ui/LayoutButton.d.ts +0 -3
- package/package.json +8 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-breakout
|
|
2
2
|
|
|
3
|
+
## 2.2.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies
|
|
8
|
+
|
|
9
|
+
## 2.2.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- [#147450](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/147450)
|
|
14
|
+
[`38f270ecf0ed0`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/38f270ecf0ed0) -
|
|
15
|
+
Revert optimisation made to breakout
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- Updated dependencies
|
|
20
|
+
|
|
3
21
|
## 2.1.8
|
|
4
22
|
|
|
5
23
|
### Patch Changes
|
|
@@ -1,30 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.breakoutPlugin = void 0;
|
|
9
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
9
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
-
var _react =
|
|
11
|
+
var _react = _interopRequireDefault(require("react"));
|
|
14
12
|
var _adfSchema = require("@atlaskit/adf-schema");
|
|
15
13
|
var _hooks = require("@atlaskit/editor-common/hooks");
|
|
16
14
|
var _safePlugin = require("@atlaskit/editor-common/safe-plugin");
|
|
17
15
|
var _styles = require("@atlaskit/editor-common/styles");
|
|
18
|
-
var _usePluginStateEffect = require("@atlaskit/editor-common/use-plugin-state-effect");
|
|
19
16
|
var _useSharedPluginStateSelector = require("@atlaskit/editor-common/use-shared-plugin-state-selector");
|
|
20
17
|
var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
|
|
21
18
|
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
|
22
19
|
var _pluginKey = require("./pm-plugins/plugin-key");
|
|
23
20
|
var _findBreakoutNode = require("./pm-plugins/utils/find-breakout-node");
|
|
24
|
-
var _getBreakoutMode = require("./pm-plugins/utils/get-breakout-mode");
|
|
25
21
|
var _LayoutButton = _interopRequireDefault(require("./ui/LayoutButton"));
|
|
26
|
-
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); }
|
|
27
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(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 && {}.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; }
|
|
28
22
|
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; }
|
|
29
23
|
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; }
|
|
30
24
|
var BreakoutView = /*#__PURE__*/(0, _createClass2.default)(function BreakoutView(
|
|
@@ -115,7 +109,7 @@ function createPlugin(pluginInjectionApi, _ref) {
|
|
|
115
109
|
});
|
|
116
110
|
}
|
|
117
111
|
var LayoutButtonWrapper = function LayoutButtonWrapper(_ref2) {
|
|
118
|
-
var
|
|
112
|
+
var _breakoutNode$node;
|
|
119
113
|
var api = _ref2.api,
|
|
120
114
|
editorView = _ref2.editorView,
|
|
121
115
|
boundariesElement = _ref2.boundariesElement,
|
|
@@ -130,6 +124,12 @@ var LayoutButtonWrapper = function LayoutButtonWrapper(_ref2) {
|
|
|
130
124
|
editorDisabledState = _useSharedPluginState.editorDisabledState,
|
|
131
125
|
blockControlsState = _useSharedPluginState.blockControlsState;
|
|
132
126
|
|
|
127
|
+
// breakoutNode
|
|
128
|
+
var breakoutNodeSelector = (0, _useSharedPluginStateSelector.useSharedPluginStateSelector)(api, 'breakout.breakoutNode', {
|
|
129
|
+
disabled: (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', false)
|
|
130
|
+
});
|
|
131
|
+
var breakoutNode = (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', true) ? breakoutNodeSelector : breakoutState === null || breakoutState === void 0 ? void 0 : breakoutState.breakoutNode;
|
|
132
|
+
|
|
133
133
|
// isDragging
|
|
134
134
|
var isDraggingSelector = (0, _useSharedPluginStateSelector.useSharedPluginStateSelector)(api, 'blockControls.isDragging', {
|
|
135
135
|
disabled: (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', false)
|
|
@@ -153,33 +153,6 @@ var LayoutButtonWrapper = function LayoutButtonWrapper(_ref2) {
|
|
|
153
153
|
disabled: (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', false)
|
|
154
154
|
});
|
|
155
155
|
var editorDisabled = (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', true) ? editorDisabledSelector : editorDisabledState === null || editorDisabledState === void 0 ? void 0 : editorDisabledState.editorDisabled;
|
|
156
|
-
var _useState = (0, _react.useState)(function () {
|
|
157
|
-
var breakoutNode = (0, _findBreakoutNode.findSupportedNodeForBreakout)(editorView.state.selection);
|
|
158
|
-
return breakoutNode !== undefined;
|
|
159
|
-
}),
|
|
160
|
-
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
161
|
-
isBreakoutNodePresent = _useState2[0],
|
|
162
|
-
setIsBreakoutNodePresent = _useState2[1];
|
|
163
|
-
var _useState3 = (0, _react.useState)((0, _getBreakoutMode.getBreakoutMode)(editorView.state)),
|
|
164
|
-
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
165
|
-
breakoutMode = _useState4[0],
|
|
166
|
-
setBreakoutMode = _useState4[1];
|
|
167
|
-
(0, _usePluginStateEffect.usePluginStateEffect)(api, ['breakout'], function (_ref3) {
|
|
168
|
-
var _breakoutState$breako;
|
|
169
|
-
var breakoutState = _ref3.breakoutState;
|
|
170
|
-
if ((0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', false)) {
|
|
171
|
-
return;
|
|
172
|
-
}
|
|
173
|
-
var breakoutNode = (_breakoutState$breako = breakoutState === null || breakoutState === void 0 ? void 0 : breakoutState.breakoutNode) !== null && _breakoutState$breako !== void 0 ? _breakoutState$breako : null;
|
|
174
|
-
var isBreakoutNodeNull = breakoutNode !== null;
|
|
175
|
-
if (isBreakoutNodePresent !== isBreakoutNodeNull) {
|
|
176
|
-
setIsBreakoutNodePresent(isBreakoutNodeNull);
|
|
177
|
-
}
|
|
178
|
-
var nextBreakoutMode = (0, _getBreakoutMode.getBreakoutMode)(editorView.state);
|
|
179
|
-
if (nextBreakoutMode !== breakoutMode) {
|
|
180
|
-
setBreakoutMode(nextBreakoutMode);
|
|
181
|
-
}
|
|
182
|
-
});
|
|
183
156
|
if (isDragging || isPMDragging) {
|
|
184
157
|
if ((0, _experiments.editorExperiment)('advanced_layouts', true)) {
|
|
185
158
|
return null;
|
|
@@ -192,15 +165,13 @@ var LayoutButtonWrapper = function LayoutButtonWrapper(_ref2) {
|
|
|
192
165
|
mountPoint: mountPoint,
|
|
193
166
|
boundariesElement: boundariesElement,
|
|
194
167
|
scrollableElement: scrollableElement,
|
|
195
|
-
node: (
|
|
196
|
-
isLivePage: isEditMode
|
|
197
|
-
breakoutMode: breakoutMode,
|
|
198
|
-
isBreakoutNodePresent: isBreakoutNodePresent
|
|
168
|
+
node: (_breakoutNode$node = breakoutNode === null || breakoutNode === void 0 ? void 0 : breakoutNode.node) !== null && _breakoutNode$node !== void 0 ? _breakoutNode$node : null,
|
|
169
|
+
isLivePage: isEditMode
|
|
199
170
|
}) : null;
|
|
200
171
|
};
|
|
201
|
-
var breakoutPlugin = exports.breakoutPlugin = function breakoutPlugin(
|
|
202
|
-
var options =
|
|
203
|
-
api =
|
|
172
|
+
var breakoutPlugin = exports.breakoutPlugin = function breakoutPlugin(_ref3) {
|
|
173
|
+
var options = _ref3.config,
|
|
174
|
+
api = _ref3.api;
|
|
204
175
|
return {
|
|
205
176
|
name: 'breakout',
|
|
206
177
|
pmPlugins: function pmPlugins() {
|
|
@@ -231,11 +202,11 @@ var breakoutPlugin = exports.breakoutPlugin = function breakoutPlugin(_ref4) {
|
|
|
231
202
|
}
|
|
232
203
|
return pluginState;
|
|
233
204
|
},
|
|
234
|
-
contentComponent: function contentComponent(
|
|
235
|
-
var editorView =
|
|
236
|
-
popupsMountPoint =
|
|
237
|
-
popupsBoundariesElement =
|
|
238
|
-
popupsScrollableElement =
|
|
205
|
+
contentComponent: function contentComponent(_ref4) {
|
|
206
|
+
var editorView = _ref4.editorView,
|
|
207
|
+
popupsMountPoint = _ref4.popupsMountPoint,
|
|
208
|
+
popupsBoundariesElement = _ref4.popupsBoundariesElement,
|
|
209
|
+
popupsScrollableElement = _ref4.popupsScrollableElement;
|
|
239
210
|
// This is a bit crappy, but should be resolved once we move to a static schema.
|
|
240
211
|
if (options && !options.allowBreakoutButton) {
|
|
241
212
|
return null;
|
|
@@ -20,7 +20,6 @@ var _collapse = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/coll
|
|
|
20
20
|
var _expand = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/expand"));
|
|
21
21
|
var _colors = require("@atlaskit/theme/colors");
|
|
22
22
|
var _constants = require("@atlaskit/theme/constants");
|
|
23
|
-
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
|
24
23
|
var _removeBreakout = require("../editor-commands/remove-breakout");
|
|
25
24
|
var _setBreakoutMode = require("../editor-commands/set-breakout-mode");
|
|
26
25
|
var _pluginKey = require("../pm-plugins/plugin-key");
|
|
@@ -67,9 +66,7 @@ var LayoutButton = function LayoutButton(_ref) {
|
|
|
67
66
|
scrollableElement = _ref.scrollableElement,
|
|
68
67
|
editorView = _ref.editorView,
|
|
69
68
|
node = _ref.node,
|
|
70
|
-
isLivePage = _ref.isLivePage
|
|
71
|
-
breakoutModeProp = _ref.breakoutMode,
|
|
72
|
-
isBreakoutNodePresent = _ref.isBreakoutNodePresent;
|
|
69
|
+
isLivePage = _ref.isLivePage;
|
|
73
70
|
var handleClick = (0, _react.useCallback)(function (breakoutMode) {
|
|
74
71
|
var state = editorView.state,
|
|
75
72
|
dispatch = editorView.dispatch;
|
|
@@ -80,11 +77,10 @@ var LayoutButton = function LayoutButton(_ref) {
|
|
|
80
77
|
}
|
|
81
78
|
}, [editorView, isLivePage]);
|
|
82
79
|
var state = editorView.state;
|
|
83
|
-
|
|
84
|
-
if (exitEarly || !(0, _isBreakoutMarkAllowed.isBreakoutMarkAllowed)(state)) {
|
|
80
|
+
if (!node || !(0, _isBreakoutMarkAllowed.isBreakoutMarkAllowed)(state)) {
|
|
85
81
|
return null;
|
|
86
82
|
}
|
|
87
|
-
var breakoutMode = (0,
|
|
83
|
+
var breakoutMode = (0, _getBreakoutMode.getBreakoutMode)(editorView.state);
|
|
88
84
|
var titleMessage = (0, _utils.getTitle)(breakoutMode);
|
|
89
85
|
var title = formatMessage(titleMessage);
|
|
90
86
|
var nextBreakoutMode = (0, _utils.getNextBreakoutMode)(breakoutMode);
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { breakout } from '@atlaskit/adf-schema';
|
|
3
3
|
import { useSharedPluginState } from '@atlaskit/editor-common/hooks';
|
|
4
4
|
import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
|
|
5
5
|
import { BreakoutCssClassName } from '@atlaskit/editor-common/styles';
|
|
6
|
-
import { usePluginStateEffect } from '@atlaskit/editor-common/use-plugin-state-effect';
|
|
7
6
|
import { useSharedPluginStateSelector } from '@atlaskit/editor-common/use-shared-plugin-state-selector';
|
|
8
7
|
import { akEditorSwoopCubicBezier } from '@atlaskit/editor-shared-styles';
|
|
9
8
|
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
10
9
|
import { pluginKey } from './pm-plugins/plugin-key';
|
|
11
10
|
import { findSupportedNodeForBreakout } from './pm-plugins/utils/find-breakout-node';
|
|
12
|
-
import { getBreakoutMode } from './pm-plugins/utils/get-breakout-mode';
|
|
13
11
|
import LayoutButton from './ui/LayoutButton';
|
|
14
12
|
class BreakoutView {
|
|
15
13
|
constructor(
|
|
@@ -108,7 +106,7 @@ const LayoutButtonWrapper = ({
|
|
|
108
106
|
scrollableElement,
|
|
109
107
|
mountPoint
|
|
110
108
|
}) => {
|
|
111
|
-
var
|
|
109
|
+
var _breakoutNode$node;
|
|
112
110
|
// Re-render with `width` (but don't use state) due to https://bitbucket.org/atlassian/%7Bc8e2f021-38d2-46d0-9b7a-b3f7b428f724%7D/pull-requests/24272
|
|
113
111
|
const {
|
|
114
112
|
breakoutState,
|
|
@@ -119,6 +117,12 @@ const LayoutButtonWrapper = ({
|
|
|
119
117
|
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', true)
|
|
120
118
|
});
|
|
121
119
|
|
|
120
|
+
// breakoutNode
|
|
121
|
+
const breakoutNodeSelector = useSharedPluginStateSelector(api, 'breakout.breakoutNode', {
|
|
122
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
123
|
+
});
|
|
124
|
+
const breakoutNode = editorExperiment('platform_editor_usesharedpluginstateselector', true) ? breakoutNodeSelector : breakoutState === null || breakoutState === void 0 ? void 0 : breakoutState.breakoutNode;
|
|
125
|
+
|
|
122
126
|
// isDragging
|
|
123
127
|
const isDraggingSelector = useSharedPluginStateSelector(api, 'blockControls.isDragging', {
|
|
124
128
|
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
@@ -142,28 +146,6 @@ const LayoutButtonWrapper = ({
|
|
|
142
146
|
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
143
147
|
});
|
|
144
148
|
const editorDisabled = editorExperiment('platform_editor_usesharedpluginstateselector', true) ? editorDisabledSelector : editorDisabledState === null || editorDisabledState === void 0 ? void 0 : editorDisabledState.editorDisabled;
|
|
145
|
-
const [isBreakoutNodePresent, setIsBreakoutNodePresent] = useState(() => {
|
|
146
|
-
const breakoutNode = findSupportedNodeForBreakout(editorView.state.selection);
|
|
147
|
-
return breakoutNode !== undefined;
|
|
148
|
-
});
|
|
149
|
-
const [breakoutMode, setBreakoutMode] = useState(getBreakoutMode(editorView.state));
|
|
150
|
-
usePluginStateEffect(api, ['breakout'], ({
|
|
151
|
-
breakoutState
|
|
152
|
-
}) => {
|
|
153
|
-
var _breakoutState$breako;
|
|
154
|
-
if (editorExperiment('platform_editor_usesharedpluginstateselector', false)) {
|
|
155
|
-
return;
|
|
156
|
-
}
|
|
157
|
-
const breakoutNode = (_breakoutState$breako = breakoutState === null || breakoutState === void 0 ? void 0 : breakoutState.breakoutNode) !== null && _breakoutState$breako !== void 0 ? _breakoutState$breako : null;
|
|
158
|
-
const isBreakoutNodeNull = breakoutNode !== null;
|
|
159
|
-
if (isBreakoutNodePresent !== isBreakoutNodeNull) {
|
|
160
|
-
setIsBreakoutNodePresent(isBreakoutNodeNull);
|
|
161
|
-
}
|
|
162
|
-
const nextBreakoutMode = getBreakoutMode(editorView.state);
|
|
163
|
-
if (nextBreakoutMode !== breakoutMode) {
|
|
164
|
-
setBreakoutMode(nextBreakoutMode);
|
|
165
|
-
}
|
|
166
|
-
});
|
|
167
149
|
if (isDragging || isPMDragging) {
|
|
168
150
|
if (editorExperiment('advanced_layouts', true)) {
|
|
169
151
|
return null;
|
|
@@ -176,10 +158,8 @@ const LayoutButtonWrapper = ({
|
|
|
176
158
|
mountPoint: mountPoint,
|
|
177
159
|
boundariesElement: boundariesElement,
|
|
178
160
|
scrollableElement: scrollableElement,
|
|
179
|
-
node: (
|
|
180
|
-
isLivePage: isEditMode
|
|
181
|
-
breakoutMode: breakoutMode,
|
|
182
|
-
isBreakoutNodePresent: isBreakoutNodePresent
|
|
161
|
+
node: (_breakoutNode$node = breakoutNode === null || breakoutNode === void 0 ? void 0 : breakoutNode.node) !== null && _breakoutNode$node !== void 0 ? _breakoutNode$node : null,
|
|
162
|
+
isLivePage: isEditMode
|
|
183
163
|
}) : null;
|
|
184
164
|
};
|
|
185
165
|
export const breakoutPlugin = ({
|
|
@@ -19,7 +19,6 @@ import CollapseIcon from '@atlaskit/icon/glyph/editor/collapse';
|
|
|
19
19
|
import ExpandIcon from '@atlaskit/icon/glyph/editor/expand';
|
|
20
20
|
import { B300, N20A, N300 } from '@atlaskit/theme/colors';
|
|
21
21
|
import { layers } from '@atlaskit/theme/constants';
|
|
22
|
-
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
23
22
|
import { removeBreakout } from '../editor-commands/remove-breakout';
|
|
24
23
|
import { setBreakoutMode } from '../editor-commands/set-breakout-mode';
|
|
25
24
|
import { getPluginState } from '../pm-plugins/plugin-key';
|
|
@@ -61,9 +60,7 @@ const LayoutButton = ({
|
|
|
61
60
|
scrollableElement,
|
|
62
61
|
editorView,
|
|
63
62
|
node,
|
|
64
|
-
isLivePage
|
|
65
|
-
breakoutMode: breakoutModeProp,
|
|
66
|
-
isBreakoutNodePresent
|
|
63
|
+
isLivePage
|
|
67
64
|
}) => {
|
|
68
65
|
const handleClick = useCallback(breakoutMode => {
|
|
69
66
|
const {
|
|
@@ -79,11 +76,10 @@ const LayoutButton = ({
|
|
|
79
76
|
const {
|
|
80
77
|
state
|
|
81
78
|
} = editorView;
|
|
82
|
-
|
|
83
|
-
if (exitEarly || !isBreakoutMarkAllowed(state)) {
|
|
79
|
+
if (!node || !isBreakoutMarkAllowed(state)) {
|
|
84
80
|
return null;
|
|
85
81
|
}
|
|
86
|
-
const breakoutMode =
|
|
82
|
+
const breakoutMode = getBreakoutMode(editorView.state);
|
|
87
83
|
const titleMessage = getTitle(breakoutMode);
|
|
88
84
|
const title = formatMessage(titleMessage);
|
|
89
85
|
const nextBreakoutMode = getNextBreakoutMode(breakoutMode);
|
|
@@ -1,21 +1,18 @@
|
|
|
1
|
-
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
2
|
import _createClass from "@babel/runtime/helpers/createClass";
|
|
4
3
|
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
5
4
|
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; }
|
|
6
5
|
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; }
|
|
7
|
-
import React
|
|
6
|
+
import React from 'react';
|
|
8
7
|
import { breakout } from '@atlaskit/adf-schema';
|
|
9
8
|
import { useSharedPluginState } from '@atlaskit/editor-common/hooks';
|
|
10
9
|
import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
|
|
11
10
|
import { BreakoutCssClassName } from '@atlaskit/editor-common/styles';
|
|
12
|
-
import { usePluginStateEffect } from '@atlaskit/editor-common/use-plugin-state-effect';
|
|
13
11
|
import { useSharedPluginStateSelector } from '@atlaskit/editor-common/use-shared-plugin-state-selector';
|
|
14
12
|
import { akEditorSwoopCubicBezier } from '@atlaskit/editor-shared-styles';
|
|
15
13
|
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
16
14
|
import { pluginKey } from './pm-plugins/plugin-key';
|
|
17
15
|
import { findSupportedNodeForBreakout } from './pm-plugins/utils/find-breakout-node';
|
|
18
|
-
import { getBreakoutMode } from './pm-plugins/utils/get-breakout-mode';
|
|
19
16
|
import LayoutButton from './ui/LayoutButton';
|
|
20
17
|
var BreakoutView = /*#__PURE__*/_createClass(function BreakoutView(
|
|
21
18
|
/**
|
|
@@ -105,7 +102,7 @@ function createPlugin(pluginInjectionApi, _ref) {
|
|
|
105
102
|
});
|
|
106
103
|
}
|
|
107
104
|
var LayoutButtonWrapper = function LayoutButtonWrapper(_ref2) {
|
|
108
|
-
var
|
|
105
|
+
var _breakoutNode$node;
|
|
109
106
|
var api = _ref2.api,
|
|
110
107
|
editorView = _ref2.editorView,
|
|
111
108
|
boundariesElement = _ref2.boundariesElement,
|
|
@@ -120,6 +117,12 @@ var LayoutButtonWrapper = function LayoutButtonWrapper(_ref2) {
|
|
|
120
117
|
editorDisabledState = _useSharedPluginState.editorDisabledState,
|
|
121
118
|
blockControlsState = _useSharedPluginState.blockControlsState;
|
|
122
119
|
|
|
120
|
+
// breakoutNode
|
|
121
|
+
var breakoutNodeSelector = useSharedPluginStateSelector(api, 'breakout.breakoutNode', {
|
|
122
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
123
|
+
});
|
|
124
|
+
var breakoutNode = editorExperiment('platform_editor_usesharedpluginstateselector', true) ? breakoutNodeSelector : breakoutState === null || breakoutState === void 0 ? void 0 : breakoutState.breakoutNode;
|
|
125
|
+
|
|
123
126
|
// isDragging
|
|
124
127
|
var isDraggingSelector = useSharedPluginStateSelector(api, 'blockControls.isDragging', {
|
|
125
128
|
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
@@ -143,33 +146,6 @@ var LayoutButtonWrapper = function LayoutButtonWrapper(_ref2) {
|
|
|
143
146
|
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
144
147
|
});
|
|
145
148
|
var editorDisabled = editorExperiment('platform_editor_usesharedpluginstateselector', true) ? editorDisabledSelector : editorDisabledState === null || editorDisabledState === void 0 ? void 0 : editorDisabledState.editorDisabled;
|
|
146
|
-
var _useState = useState(function () {
|
|
147
|
-
var breakoutNode = findSupportedNodeForBreakout(editorView.state.selection);
|
|
148
|
-
return breakoutNode !== undefined;
|
|
149
|
-
}),
|
|
150
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
151
|
-
isBreakoutNodePresent = _useState2[0],
|
|
152
|
-
setIsBreakoutNodePresent = _useState2[1];
|
|
153
|
-
var _useState3 = useState(getBreakoutMode(editorView.state)),
|
|
154
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
155
|
-
breakoutMode = _useState4[0],
|
|
156
|
-
setBreakoutMode = _useState4[1];
|
|
157
|
-
usePluginStateEffect(api, ['breakout'], function (_ref3) {
|
|
158
|
-
var _breakoutState$breako;
|
|
159
|
-
var breakoutState = _ref3.breakoutState;
|
|
160
|
-
if (editorExperiment('platform_editor_usesharedpluginstateselector', false)) {
|
|
161
|
-
return;
|
|
162
|
-
}
|
|
163
|
-
var breakoutNode = (_breakoutState$breako = breakoutState === null || breakoutState === void 0 ? void 0 : breakoutState.breakoutNode) !== null && _breakoutState$breako !== void 0 ? _breakoutState$breako : null;
|
|
164
|
-
var isBreakoutNodeNull = breakoutNode !== null;
|
|
165
|
-
if (isBreakoutNodePresent !== isBreakoutNodeNull) {
|
|
166
|
-
setIsBreakoutNodePresent(isBreakoutNodeNull);
|
|
167
|
-
}
|
|
168
|
-
var nextBreakoutMode = getBreakoutMode(editorView.state);
|
|
169
|
-
if (nextBreakoutMode !== breakoutMode) {
|
|
170
|
-
setBreakoutMode(nextBreakoutMode);
|
|
171
|
-
}
|
|
172
|
-
});
|
|
173
149
|
if (isDragging || isPMDragging) {
|
|
174
150
|
if (editorExperiment('advanced_layouts', true)) {
|
|
175
151
|
return null;
|
|
@@ -182,15 +158,13 @@ var LayoutButtonWrapper = function LayoutButtonWrapper(_ref2) {
|
|
|
182
158
|
mountPoint: mountPoint,
|
|
183
159
|
boundariesElement: boundariesElement,
|
|
184
160
|
scrollableElement: scrollableElement,
|
|
185
|
-
node: (
|
|
186
|
-
isLivePage: isEditMode
|
|
187
|
-
breakoutMode: breakoutMode,
|
|
188
|
-
isBreakoutNodePresent: isBreakoutNodePresent
|
|
161
|
+
node: (_breakoutNode$node = breakoutNode === null || breakoutNode === void 0 ? void 0 : breakoutNode.node) !== null && _breakoutNode$node !== void 0 ? _breakoutNode$node : null,
|
|
162
|
+
isLivePage: isEditMode
|
|
189
163
|
}) : null;
|
|
190
164
|
};
|
|
191
|
-
export var breakoutPlugin = function breakoutPlugin(
|
|
192
|
-
var options =
|
|
193
|
-
api =
|
|
165
|
+
export var breakoutPlugin = function breakoutPlugin(_ref3) {
|
|
166
|
+
var options = _ref3.config,
|
|
167
|
+
api = _ref3.api;
|
|
194
168
|
return {
|
|
195
169
|
name: 'breakout',
|
|
196
170
|
pmPlugins: function pmPlugins() {
|
|
@@ -221,11 +195,11 @@ export var breakoutPlugin = function breakoutPlugin(_ref4) {
|
|
|
221
195
|
}
|
|
222
196
|
return pluginState;
|
|
223
197
|
},
|
|
224
|
-
contentComponent: function contentComponent(
|
|
225
|
-
var editorView =
|
|
226
|
-
popupsMountPoint =
|
|
227
|
-
popupsBoundariesElement =
|
|
228
|
-
popupsScrollableElement =
|
|
198
|
+
contentComponent: function contentComponent(_ref4) {
|
|
199
|
+
var editorView = _ref4.editorView,
|
|
200
|
+
popupsMountPoint = _ref4.popupsMountPoint,
|
|
201
|
+
popupsBoundariesElement = _ref4.popupsBoundariesElement,
|
|
202
|
+
popupsScrollableElement = _ref4.popupsScrollableElement;
|
|
229
203
|
// This is a bit crappy, but should be resolved once we move to a static schema.
|
|
230
204
|
if (options && !options.allowBreakoutButton) {
|
|
231
205
|
return null;
|
|
@@ -19,7 +19,6 @@ import CollapseIcon from '@atlaskit/icon/glyph/editor/collapse';
|
|
|
19
19
|
import ExpandIcon from '@atlaskit/icon/glyph/editor/expand';
|
|
20
20
|
import { B300, N20A, N300 } from '@atlaskit/theme/colors';
|
|
21
21
|
import { layers } from '@atlaskit/theme/constants';
|
|
22
|
-
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
23
22
|
import { removeBreakout } from '../editor-commands/remove-breakout';
|
|
24
23
|
import { setBreakoutMode } from '../editor-commands/set-breakout-mode';
|
|
25
24
|
import { getPluginState } from '../pm-plugins/plugin-key';
|
|
@@ -59,9 +58,7 @@ var LayoutButton = function LayoutButton(_ref) {
|
|
|
59
58
|
scrollableElement = _ref.scrollableElement,
|
|
60
59
|
editorView = _ref.editorView,
|
|
61
60
|
node = _ref.node,
|
|
62
|
-
isLivePage = _ref.isLivePage
|
|
63
|
-
breakoutModeProp = _ref.breakoutMode,
|
|
64
|
-
isBreakoutNodePresent = _ref.isBreakoutNodePresent;
|
|
61
|
+
isLivePage = _ref.isLivePage;
|
|
65
62
|
var handleClick = useCallback(function (breakoutMode) {
|
|
66
63
|
var state = editorView.state,
|
|
67
64
|
dispatch = editorView.dispatch;
|
|
@@ -72,11 +69,10 @@ var LayoutButton = function LayoutButton(_ref) {
|
|
|
72
69
|
}
|
|
73
70
|
}, [editorView, isLivePage]);
|
|
74
71
|
var state = editorView.state;
|
|
75
|
-
|
|
76
|
-
if (exitEarly || !isBreakoutMarkAllowed(state)) {
|
|
72
|
+
if (!node || !isBreakoutMarkAllowed(state)) {
|
|
77
73
|
return null;
|
|
78
74
|
}
|
|
79
|
-
var breakoutMode =
|
|
75
|
+
var breakoutMode = getBreakoutMode(editorView.state);
|
|
80
76
|
var titleMessage = getTitle(breakoutMode);
|
|
81
77
|
var title = formatMessage(titleMessage);
|
|
82
78
|
var nextBreakoutMode = getNextBreakoutMode(breakoutMode);
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import type { WrappedComponentProps } from 'react-intl-next';
|
|
3
|
-
import type { BreakoutMode } from '@atlaskit/editor-common/types';
|
|
4
3
|
import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
|
|
5
4
|
import type { EditorView } from '@atlaskit/editor-prosemirror/view';
|
|
6
5
|
export interface Props {
|
|
@@ -11,8 +10,6 @@ export interface Props {
|
|
|
11
10
|
scrollableElement?: HTMLElement;
|
|
12
11
|
handleClick?: Function;
|
|
13
12
|
isLivePage?: boolean;
|
|
14
|
-
breakoutMode: BreakoutMode | undefined;
|
|
15
|
-
isBreakoutNodePresent: boolean;
|
|
16
13
|
}
|
|
17
14
|
declare const _default: import("react").FC<import("react-intl-next").WithIntlProps<Props & WrappedComponentProps>> & {
|
|
18
15
|
WrappedComponent: import("react").ComponentType<Props & WrappedComponentProps>;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import type { WrappedComponentProps } from 'react-intl-next';
|
|
3
|
-
import type { BreakoutMode } from '@atlaskit/editor-common/types';
|
|
4
3
|
import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
|
|
5
4
|
import type { EditorView } from '@atlaskit/editor-prosemirror/view';
|
|
6
5
|
export interface Props {
|
|
@@ -11,8 +10,6 @@ export interface Props {
|
|
|
11
10
|
scrollableElement?: HTMLElement;
|
|
12
11
|
handleClick?: Function;
|
|
13
12
|
isLivePage?: boolean;
|
|
14
|
-
breakoutMode: BreakoutMode | undefined;
|
|
15
|
-
isBreakoutNodePresent: boolean;
|
|
16
13
|
}
|
|
17
14
|
declare const _default: import("react").FC<import("react-intl-next").WithIntlProps<Props & WrappedComponentProps>> & {
|
|
18
15
|
WrappedComponent: import("react").ComponentType<Props & WrappedComponentProps>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-plugin-breakout",
|
|
3
|
-
"version": "2.1
|
|
3
|
+
"version": "2.2.1",
|
|
4
4
|
"description": "Breakout plugin for @atlaskit/editor-core",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@atlaskit/adf-schema": "^47.6.0",
|
|
37
|
-
"@atlaskit/editor-common": "^
|
|
38
|
-
"@atlaskit/editor-plugin-block-controls": "^3.
|
|
37
|
+
"@atlaskit/editor-common": "^104.0.0",
|
|
38
|
+
"@atlaskit/editor-plugin-block-controls": "^3.13.0",
|
|
39
39
|
"@atlaskit/editor-plugin-editor-disabled": "^2.0.0",
|
|
40
40
|
"@atlaskit/editor-plugin-editor-viewmode": "^3.1.0",
|
|
41
41
|
"@atlaskit/editor-plugin-width": "^3.0.0",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"@atlaskit/icon": "^25.6.0",
|
|
45
45
|
"@atlaskit/platform-feature-flags": "^1.1.0",
|
|
46
46
|
"@atlaskit/theme": "^18.0.0",
|
|
47
|
-
"@atlaskit/tmp-editor-statsig": "^4.
|
|
47
|
+
"@atlaskit/tmp-editor-statsig": "^4.16.0",
|
|
48
48
|
"@atlaskit/tokens": "^4.8.0",
|
|
49
49
|
"@babel/runtime": "^7.0.0",
|
|
50
50
|
"@emotion/react": "^11.7.1"
|
|
@@ -55,13 +55,13 @@
|
|
|
55
55
|
"react-intl-next": "npm:react-intl@^5.18.1"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
|
-
"@af/integration-testing": "
|
|
59
|
-
"@af/visual-regression": "
|
|
58
|
+
"@af/integration-testing": "workspace:^",
|
|
59
|
+
"@af/visual-regression": "workspace:^",
|
|
60
60
|
"@atlaskit/editor-plugin-code-block": "^4.4.0",
|
|
61
61
|
"@atlaskit/editor-plugin-composition": "^1.3.0",
|
|
62
62
|
"@atlaskit/editor-plugin-decorations": "^2.0.0",
|
|
63
|
-
"@atlaskit/ssr": "
|
|
64
|
-
"@atlaskit/visual-regression": "
|
|
63
|
+
"@atlaskit/ssr": "workspace:^",
|
|
64
|
+
"@atlaskit/visual-regression": "workspace:^",
|
|
65
65
|
"@testing-library/react": "^13.4.0",
|
|
66
66
|
"typescript": "~5.4.2",
|
|
67
67
|
"wait-for-expect": "^1.2.0"
|