@atlaskit/editor-plugin-breakout 2.4.1 → 2.4.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 +18 -0
- package/dist/cjs/breakoutPlugin.js +39 -12
- package/dist/cjs/editor-commands/set-breakout-width.js +16 -1
- package/dist/cjs/pm-plugins/get-guidelines.js +5 -2
- package/dist/cjs/pm-plugins/pragmatic-resizer.js +60 -0
- package/dist/cjs/pm-plugins/resizer-callbacks.js +4 -4
- package/dist/cjs/pm-plugins/resizing-mark-view.js +3 -68
- package/dist/cjs/pm-plugins/utils/single-player-expand.js +27 -4
- package/dist/cjs/ui/LayoutButton.js +7 -3
- package/dist/es2019/breakoutPlugin.js +23 -4
- package/dist/es2019/editor-commands/set-breakout-width.js +16 -1
- package/dist/es2019/pm-plugins/get-guidelines.js +5 -2
- package/dist/es2019/pm-plugins/pragmatic-resizer.js +56 -0
- package/dist/es2019/pm-plugins/resizer-callbacks.js +5 -5
- package/dist/es2019/pm-plugins/resizing-mark-view.js +2 -69
- package/dist/es2019/pm-plugins/utils/single-player-expand.js +27 -3
- package/dist/es2019/ui/LayoutButton.js +7 -3
- package/dist/esm/breakoutPlugin.js +37 -12
- package/dist/esm/editor-commands/set-breakout-width.js +16 -1
- package/dist/esm/pm-plugins/get-guidelines.js +5 -2
- package/dist/esm/pm-plugins/pragmatic-resizer.js +54 -0
- package/dist/esm/pm-plugins/resizer-callbacks.js +5 -5
- package/dist/esm/pm-plugins/resizing-mark-view.js +2 -67
- package/dist/esm/pm-plugins/utils/single-player-expand.js +26 -3
- package/dist/esm/ui/LayoutButton.js +7 -3
- package/dist/types/pm-plugins/pragmatic-resizer.d.ts +10 -0
- package/dist/types/pm-plugins/resizer-callbacks.d.ts +6 -5
- package/dist/types/pm-plugins/resizing-mark-view.d.ts +0 -11
- package/dist/types/pm-plugins/utils/single-player-expand.d.ts +9 -0
- package/dist/types/ui/LayoutButton.d.ts +3 -0
- package/dist/types-ts4.5/pm-plugins/pragmatic-resizer.d.ts +10 -0
- package/dist/types-ts4.5/pm-plugins/resizer-callbacks.d.ts +6 -5
- package/dist/types-ts4.5/pm-plugins/resizing-mark-view.d.ts +0 -11
- package/dist/types-ts4.5/pm-plugins/utils/single-player-expand.d.ts +9 -0
- package/dist/types-ts4.5/ui/LayoutButton.d.ts +3 -0
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-breakout
|
|
2
2
|
|
|
3
|
+
## 2.4.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#163965](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/163965)
|
|
8
|
+
[`c08b8e623a378`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/c08b8e623a378) -
|
|
9
|
+
[ED-28046] Reduce the number of times the layout button re-renders
|
|
10
|
+
- [#164762](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/164762)
|
|
11
|
+
[`e716071496267`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/e716071496267) -
|
|
12
|
+
[ux] Fix for expands and codeblocks so they keep their settings after resize.
|
|
13
|
+
- Updated dependencies
|
|
14
|
+
|
|
15
|
+
## 2.4.2
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- Updated dependencies
|
|
20
|
+
|
|
3
21
|
## 2.4.1
|
|
4
22
|
|
|
5
23
|
### Patch Changes
|
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports.breakoutPlugin = void 0;
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
8
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
11
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
12
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
var _react =
|
|
13
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
12
14
|
var _adfSchema = require("@atlaskit/adf-schema");
|
|
13
15
|
var _hooks = require("@atlaskit/editor-common/hooks");
|
|
14
16
|
var _safePlugin = require("@atlaskit/editor-common/safe-plugin");
|
|
15
17
|
var _styles = require("@atlaskit/editor-common/styles");
|
|
18
|
+
var _usePluginStateEffect = require("@atlaskit/editor-common/use-plugin-state-effect");
|
|
16
19
|
var _useSharedPluginStateSelector = require("@atlaskit/editor-common/use-shared-plugin-state-selector");
|
|
17
20
|
var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
|
|
18
21
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
@@ -20,7 +23,9 @@ var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
|
|
20
23
|
var _pluginKey = require("./pm-plugins/plugin-key");
|
|
21
24
|
var _resizingPlugin = require("./pm-plugins/resizing-plugin");
|
|
22
25
|
var _findBreakoutNode = require("./pm-plugins/utils/find-breakout-node");
|
|
26
|
+
var _getBreakoutMode = require("./pm-plugins/utils/get-breakout-mode");
|
|
23
27
|
var _LayoutButton = _interopRequireDefault(require("./ui/LayoutButton"));
|
|
28
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
24
29
|
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; }
|
|
25
30
|
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; }
|
|
26
31
|
var BreakoutView = /*#__PURE__*/(0, _createClass2.default)(function BreakoutView(
|
|
@@ -126,13 +131,12 @@ var useOldHook = function useOldHook(api) {
|
|
|
126
131
|
};
|
|
127
132
|
};
|
|
128
133
|
var useNewHook = function useNewHook(api) {
|
|
129
|
-
var breakoutNode = (0, _useSharedPluginStateSelector.useSharedPluginStateSelector)(api, 'breakout.breakoutNode');
|
|
130
134
|
var isDragging = (0, _useSharedPluginStateSelector.useSharedPluginStateSelector)(api, 'blockControls.isDragging');
|
|
131
135
|
var isPMDragging = (0, _useSharedPluginStateSelector.useSharedPluginStateSelector)(api, 'blockControls.isPMDragging');
|
|
132
136
|
var mode = (0, _useSharedPluginStateSelector.useSharedPluginStateSelector)(api, 'editorViewMode.mode');
|
|
133
137
|
var editorDisabled = (0, _useSharedPluginStateSelector.useSharedPluginStateSelector)(api, 'editorDisabled.editorDisabled');
|
|
134
138
|
return {
|
|
135
|
-
breakoutNode:
|
|
139
|
+
breakoutNode: undefined,
|
|
136
140
|
isDragging: isDragging,
|
|
137
141
|
isPMDragging: isPMDragging,
|
|
138
142
|
mode: mode,
|
|
@@ -153,6 +157,27 @@ var LayoutButtonWrapper = function LayoutButtonWrapper(_ref2) {
|
|
|
153
157
|
isPMDragging = _useSharedState.isPMDragging,
|
|
154
158
|
mode = _useSharedState.mode,
|
|
155
159
|
editorDisabled = _useSharedState.editorDisabled;
|
|
160
|
+
var _useState = (0, _react.useState)(false),
|
|
161
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
162
|
+
breakoutNodePresent = _useState2[0],
|
|
163
|
+
setBreakoutNodePresent = _useState2[1];
|
|
164
|
+
var _useState3 = (0, _react.useState)((0, _getBreakoutMode.getBreakoutMode)(editorView.state)),
|
|
165
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
166
|
+
breakoutMode = _useState4[0],
|
|
167
|
+
setBreakoutMode = _useState4[1];
|
|
168
|
+
(0, _usePluginStateEffect.usePluginStateEffect)(api, ['breakout'], function (_ref3) {
|
|
169
|
+
var breakoutState = _ref3.breakoutState;
|
|
170
|
+
if (breakoutState !== null && breakoutState !== void 0 && breakoutState.breakoutNode && !breakoutNodePresent) {
|
|
171
|
+
setBreakoutNodePresent(true);
|
|
172
|
+
}
|
|
173
|
+
if (!(breakoutState !== null && breakoutState !== void 0 && breakoutState.breakoutNode) && breakoutNodePresent) {
|
|
174
|
+
setBreakoutNodePresent(false);
|
|
175
|
+
}
|
|
176
|
+
var nextBreakoutMode = (0, _getBreakoutMode.getBreakoutMode)(editorView.state);
|
|
177
|
+
if (nextBreakoutMode !== breakoutMode) {
|
|
178
|
+
setBreakoutMode(nextBreakoutMode);
|
|
179
|
+
}
|
|
180
|
+
});
|
|
156
181
|
var interactionState = (0, _useSharedPluginStateSelector.useSharedPluginStateSelector)(api, 'interaction.interactionState');
|
|
157
182
|
if (interactionState === 'hasNotHadInteraction' && (0, _platformFeatureFlags.fg)('platform_editor_hide_expand_selection_states')) {
|
|
158
183
|
return null;
|
|
@@ -170,12 +195,14 @@ var LayoutButtonWrapper = function LayoutButtonWrapper(_ref2) {
|
|
|
170
195
|
boundariesElement: boundariesElement,
|
|
171
196
|
scrollableElement: scrollableElement,
|
|
172
197
|
node: (_breakoutNode$node = breakoutNode === null || breakoutNode === void 0 ? void 0 : breakoutNode.node) !== null && _breakoutNode$node !== void 0 ? _breakoutNode$node : null,
|
|
173
|
-
isLivePage: isEditMode
|
|
198
|
+
isLivePage: isEditMode,
|
|
199
|
+
isBreakoutNodePresent: breakoutNodePresent,
|
|
200
|
+
breakoutMode: breakoutMode
|
|
174
201
|
}) : null;
|
|
175
202
|
};
|
|
176
|
-
var breakoutPlugin = exports.breakoutPlugin = function breakoutPlugin(
|
|
177
|
-
var options =
|
|
178
|
-
api =
|
|
203
|
+
var breakoutPlugin = exports.breakoutPlugin = function breakoutPlugin(_ref4) {
|
|
204
|
+
var options = _ref4.config,
|
|
205
|
+
api = _ref4.api;
|
|
179
206
|
return {
|
|
180
207
|
name: 'breakout',
|
|
181
208
|
pmPlugins: function pmPlugins() {
|
|
@@ -214,11 +241,11 @@ var breakoutPlugin = exports.breakoutPlugin = function breakoutPlugin(_ref3) {
|
|
|
214
241
|
}
|
|
215
242
|
return pluginState;
|
|
216
243
|
},
|
|
217
|
-
contentComponent: function contentComponent(
|
|
218
|
-
var editorView =
|
|
219
|
-
popupsMountPoint =
|
|
220
|
-
popupsBoundariesElement =
|
|
221
|
-
popupsScrollableElement =
|
|
244
|
+
contentComponent: function contentComponent(_ref5) {
|
|
245
|
+
var editorView = _ref5.editorView,
|
|
246
|
+
popupsMountPoint = _ref5.popupsMountPoint,
|
|
247
|
+
popupsBoundariesElement = _ref5.popupsBoundariesElement,
|
|
248
|
+
popupsScrollableElement = _ref5.popupsScrollableElement;
|
|
222
249
|
// This is a bit crappy, but should be resolved once we move to a static schema.
|
|
223
250
|
if (options && !options.allowBreakoutButton) {
|
|
224
251
|
return null;
|
|
@@ -4,7 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.setBreakoutWidth = setBreakoutWidth;
|
|
7
|
-
|
|
7
|
+
var _codeBlock = require("@atlaskit/editor-common/code-block");
|
|
8
|
+
var _singlePlayerExpand = require("../pm-plugins/utils/single-player-expand");
|
|
8
9
|
function setBreakoutWidth(width, mode, pos, isLivePage) {
|
|
9
10
|
return function (state, dispatch) {
|
|
10
11
|
var node = state.doc.nodeAt(pos);
|
|
@@ -15,6 +16,20 @@ function setBreakoutWidth(width, mode, pos, isLivePage) {
|
|
|
15
16
|
width: width,
|
|
16
17
|
mode: mode
|
|
17
18
|
})]);
|
|
19
|
+
if (node.type === state.schema.nodes.expand) {
|
|
20
|
+
(0, _singlePlayerExpand.updateExpandedStateNew)({
|
|
21
|
+
tr: tr,
|
|
22
|
+
node: node,
|
|
23
|
+
pos: pos,
|
|
24
|
+
isLivePage: isLivePage
|
|
25
|
+
});
|
|
26
|
+
} else if (node.type === state.schema.nodes.codeBlock) {
|
|
27
|
+
var newNode = tr.doc.nodeAt(pos);
|
|
28
|
+
var oldNode = node;
|
|
29
|
+
if (newNode) {
|
|
30
|
+
(0, _codeBlock.transferCodeBlockWrappedValue)(oldNode, newNode);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
18
33
|
if (dispatch) {
|
|
19
34
|
dispatch(tr);
|
|
20
35
|
}
|
|
@@ -6,7 +6,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.getGuidelines = void 0;
|
|
7
7
|
var _styles = require("@atlaskit/editor-common/styles");
|
|
8
8
|
var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
|
|
9
|
-
var
|
|
9
|
+
var WIDTHS = {
|
|
10
|
+
MIN: _editorSharedStyles.akEditorDefaultLayoutWidth,
|
|
11
|
+
MAX: _editorSharedStyles.akEditorFullWidthLayoutWidth
|
|
12
|
+
};
|
|
10
13
|
var GUIDELINE_KEYS = {
|
|
11
14
|
lineLength: 'grid',
|
|
12
15
|
wide: 'wide',
|
|
@@ -30,7 +33,7 @@ var getGuidelines = exports.getGuidelines = function getGuidelines(isResizing, n
|
|
|
30
33
|
lineLength = _ref.lineLength;
|
|
31
34
|
// TODO: ED-28109 - use breakoutWideScaleRatio to calculate wide guideline
|
|
32
35
|
var wide = _editorSharedStyles.akEditorCalculatedWideLayoutWidth;
|
|
33
|
-
var fullWidth = width ? Math.min(
|
|
36
|
+
var fullWidth = width ? Math.min(WIDTHS.MAX, width - 2 * (0, _editorSharedStyles.akEditorGutterPaddingDynamic)() - _editorSharedStyles.akEditorGutterPadding) : undefined;
|
|
34
37
|
if (lineLength) {
|
|
35
38
|
guidelines.push({
|
|
36
39
|
key: "".concat(GUIDELINE_KEYS.lineLength, "_left"),
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createPragmaticResizer = void 0;
|
|
7
|
+
var _adapter = require("@atlaskit/pragmatic-drag-and-drop/element/adapter");
|
|
8
|
+
var _disableNativeDragPreview = require("@atlaskit/pragmatic-drag-and-drop/element/disable-native-drag-preview");
|
|
9
|
+
var _preventUnhandled = require("@atlaskit/pragmatic-drag-and-drop/prevent-unhandled");
|
|
10
|
+
var createPragmaticResizer = exports.createPragmaticResizer = function createPragmaticResizer(_ref) {
|
|
11
|
+
var onDragStart = _ref.onDragStart,
|
|
12
|
+
onDrag = _ref.onDrag,
|
|
13
|
+
_onDrop = _ref.onDrop;
|
|
14
|
+
var registerHandle = function registerHandle(handleElement) {
|
|
15
|
+
return (0, _adapter.draggable)({
|
|
16
|
+
element: handleElement,
|
|
17
|
+
onGenerateDragPreview: function onGenerateDragPreview(_ref2) {
|
|
18
|
+
var nativeSetDragImage = _ref2.nativeSetDragImage;
|
|
19
|
+
(0, _disableNativeDragPreview.disableNativeDragPreview)({
|
|
20
|
+
nativeSetDragImage: nativeSetDragImage
|
|
21
|
+
});
|
|
22
|
+
_preventUnhandled.preventUnhandled.start();
|
|
23
|
+
},
|
|
24
|
+
onDragStart: onDragStart,
|
|
25
|
+
onDrag: onDrag,
|
|
26
|
+
onDrop: function onDrop(args) {
|
|
27
|
+
_preventUnhandled.preventUnhandled.stop();
|
|
28
|
+
_onDrop(args);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
var createHandle = function createHandle(side) {
|
|
33
|
+
var handle = document.createElement('div');
|
|
34
|
+
handle.contentEditable = 'false';
|
|
35
|
+
handle.classList.add('pm-breakout-resize-handle');
|
|
36
|
+
if (side === 'left') {
|
|
37
|
+
handle.classList.add('pm-breakout-resize-handle-left');
|
|
38
|
+
handle.setAttribute('data-testid', 'pragmatic-resizer-handle-left');
|
|
39
|
+
} else {
|
|
40
|
+
handle.classList.add('pm-breakout-resize-handle-right');
|
|
41
|
+
handle.setAttribute('data-testid', 'pragmatic-resizer-handle-right');
|
|
42
|
+
}
|
|
43
|
+
var handleInner = document.createElement('div');
|
|
44
|
+
handleInner.classList.add('pm-breakout-resize-handle-inner');
|
|
45
|
+
handle.appendChild(handleInner);
|
|
46
|
+
return handle;
|
|
47
|
+
};
|
|
48
|
+
var rightHandle = createHandle('right');
|
|
49
|
+
var leftHandle = createHandle('left');
|
|
50
|
+
var rightHandleCleanup = registerHandle(rightHandle);
|
|
51
|
+
var leftHandleCleanup = registerHandle(leftHandle);
|
|
52
|
+
return {
|
|
53
|
+
rightHandle: rightHandle,
|
|
54
|
+
leftHandle: leftHandle,
|
|
55
|
+
destroy: function destroy() {
|
|
56
|
+
rightHandleCleanup();
|
|
57
|
+
leftHandleCleanup();
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
};
|
|
@@ -3,16 +3,16 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.WIDTHS = void 0;
|
|
7
6
|
exports.createResizerCallbacks = createResizerCallbacks;
|
|
7
|
+
exports.getProposedWidth = getProposedWidth;
|
|
8
8
|
var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
|
|
9
9
|
var _setBreakoutWidth = require("../editor-commands/set-breakout-width");
|
|
10
10
|
var _getGuidelines = require("./get-guidelines");
|
|
11
11
|
var _resizingMarkView = require("./resizing-mark-view");
|
|
12
12
|
var RESIZE_RATIO = 2;
|
|
13
|
-
var WIDTHS =
|
|
14
|
-
MIN:
|
|
15
|
-
MAX:
|
|
13
|
+
var WIDTHS = {
|
|
14
|
+
MIN: _editorSharedStyles.akEditorDefaultLayoutWidth,
|
|
15
|
+
MAX: _editorSharedStyles.akEditorFullWidthLayoutWidth
|
|
16
16
|
};
|
|
17
17
|
function getProposedWidth(_ref) {
|
|
18
18
|
var _api$width$sharedStat;
|
|
@@ -8,15 +8,9 @@ exports.ResizingMarkView = exports.LOCAL_RESIZE_PROPERTY = void 0;
|
|
|
8
8
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
9
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
10
|
var _styles = require("@atlaskit/editor-common/styles");
|
|
11
|
-
var
|
|
12
|
-
var _disableNativeDragPreview = require("@atlaskit/pragmatic-drag-and-drop/element/disable-native-drag-preview");
|
|
13
|
-
var _preventUnhandled = require("@atlaskit/pragmatic-drag-and-drop/prevent-unhandled");
|
|
11
|
+
var _pragmaticResizer = require("./pragmatic-resizer");
|
|
14
12
|
var _resizerCallbacks = require("./resizer-callbacks");
|
|
15
13
|
var LOCAL_RESIZE_PROPERTY = exports.LOCAL_RESIZE_PROPERTY = '--local-resizing-width';
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
*
|
|
19
|
-
*/
|
|
20
14
|
var ResizingMarkView = exports.ResizingMarkView = /*#__PURE__*/function () {
|
|
21
15
|
/**
|
|
22
16
|
* Wrap node view in a resizing mark view
|
|
@@ -62,7 +56,7 @@ var ResizingMarkView = exports.ResizingMarkView = /*#__PURE__*/function () {
|
|
|
62
56
|
mark: mark,
|
|
63
57
|
api: api
|
|
64
58
|
});
|
|
65
|
-
var _createPragmaticResiz = createPragmaticResizer(callbacks),
|
|
59
|
+
var _createPragmaticResiz = (0, _pragmaticResizer.createPragmaticResizer)(callbacks),
|
|
66
60
|
leftHandle = _createPragmaticResiz.leftHandle,
|
|
67
61
|
rightHandle = _createPragmaticResiz.rightHandle,
|
|
68
62
|
destroy = _createPragmaticResiz.destroy;
|
|
@@ -74,74 +68,15 @@ var ResizingMarkView = exports.ResizingMarkView = /*#__PURE__*/function () {
|
|
|
74
68
|
this.mark = mark;
|
|
75
69
|
this.destroyFn = destroy;
|
|
76
70
|
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
*
|
|
80
|
-
* @example
|
|
81
|
-
*/
|
|
82
71
|
return (0, _createClass2.default)(ResizingMarkView, [{
|
|
83
72
|
key: "ignoreMutation",
|
|
84
73
|
value: function ignoreMutation() {
|
|
85
74
|
return true;
|
|
86
75
|
}
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
*
|
|
90
|
-
* @example
|
|
91
|
-
*/
|
|
92
76
|
}, {
|
|
93
77
|
key: "destroy",
|
|
94
78
|
value: function destroy() {
|
|
95
79
|
this.destroyFn();
|
|
96
80
|
}
|
|
97
81
|
}]);
|
|
98
|
-
}();
|
|
99
|
-
var createPragmaticResizer = function createPragmaticResizer(_ref) {
|
|
100
|
-
var onDragStart = _ref.onDragStart,
|
|
101
|
-
onDrag = _ref.onDrag,
|
|
102
|
-
_onDrop = _ref.onDrop;
|
|
103
|
-
var registerHandle = function registerHandle(handleElement) {
|
|
104
|
-
return (0, _adapter.draggable)({
|
|
105
|
-
element: handleElement,
|
|
106
|
-
onGenerateDragPreview: function onGenerateDragPreview(_ref2) {
|
|
107
|
-
var nativeSetDragImage = _ref2.nativeSetDragImage;
|
|
108
|
-
(0, _disableNativeDragPreview.disableNativeDragPreview)({
|
|
109
|
-
nativeSetDragImage: nativeSetDragImage
|
|
110
|
-
});
|
|
111
|
-
_preventUnhandled.preventUnhandled.start();
|
|
112
|
-
},
|
|
113
|
-
onDragStart: onDragStart,
|
|
114
|
-
onDrag: onDrag,
|
|
115
|
-
onDrop: function onDrop(args) {
|
|
116
|
-
_preventUnhandled.preventUnhandled.stop();
|
|
117
|
-
_onDrop(args);
|
|
118
|
-
}
|
|
119
|
-
});
|
|
120
|
-
};
|
|
121
|
-
var createHandle = function createHandle(side) {
|
|
122
|
-
var handle = document.createElement('div');
|
|
123
|
-
handle.contentEditable = 'false';
|
|
124
|
-
handle.classList.add('pm-breakout-resize-handle');
|
|
125
|
-
if (side === 'left') {
|
|
126
|
-
handle.classList.add('pm-breakout-resize-handle-left');
|
|
127
|
-
} else {
|
|
128
|
-
handle.classList.add('pm-breakout-resize-handle-right');
|
|
129
|
-
}
|
|
130
|
-
var handleInner = document.createElement('div');
|
|
131
|
-
handleInner.classList.add('pm-breakout-resize-handle-inner');
|
|
132
|
-
handle.appendChild(handleInner);
|
|
133
|
-
return handle;
|
|
134
|
-
};
|
|
135
|
-
var rightHandle = createHandle('right');
|
|
136
|
-
var leftHandle = createHandle('left');
|
|
137
|
-
var rightHandleCleanup = registerHandle(rightHandle);
|
|
138
|
-
var leftHandleCleanup = registerHandle(leftHandle);
|
|
139
|
-
return {
|
|
140
|
-
rightHandle: rightHandle,
|
|
141
|
-
leftHandle: leftHandle,
|
|
142
|
-
destroy: function destroy() {
|
|
143
|
-
rightHandleCleanup();
|
|
144
|
-
leftHandleCleanup();
|
|
145
|
-
}
|
|
146
|
-
};
|
|
147
|
-
};
|
|
82
|
+
}();
|
|
@@ -3,15 +3,38 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.updateExpandedState = void 0;
|
|
6
|
+
exports.updateExpandedStateNew = exports.updateExpandedState = void 0;
|
|
7
7
|
var _expand = require("@atlaskit/editor-common/expand");
|
|
8
8
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
9
|
-
var
|
|
9
|
+
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
|
10
|
+
var updateExpandedStateNew = exports.updateExpandedStateNew = function updateExpandedStateNew(_ref) {
|
|
11
|
+
var tr = _ref.tr,
|
|
12
|
+
node = _ref.node,
|
|
13
|
+
pos = _ref.pos,
|
|
14
|
+
isLivePage = _ref.isLivePage;
|
|
10
15
|
if (isLivePage || (0, _platformFeatureFlags.fg)('platform-editor-single-player-expand')) {
|
|
11
|
-
var wasExpandExpanded = _expand.expandedState.get(node
|
|
12
|
-
var newExpand = tr.doc.nodeAt(
|
|
16
|
+
var wasExpandExpanded = _expand.expandedState.get(node);
|
|
17
|
+
var newExpand = tr.doc.nodeAt(pos);
|
|
13
18
|
if (wasExpandExpanded !== undefined && newExpand) {
|
|
14
19
|
_expand.expandedState.set(newExpand, wasExpandExpanded);
|
|
15
20
|
}
|
|
16
21
|
}
|
|
22
|
+
};
|
|
23
|
+
var updateExpandedState = exports.updateExpandedState = function updateExpandedState(tr, node, isLivePage) {
|
|
24
|
+
if ((0, _experiments.editorExperiment)('platform_editor_breakout_resizing', true)) {
|
|
25
|
+
updateExpandedStateNew({
|
|
26
|
+
tr: tr,
|
|
27
|
+
node: node.node,
|
|
28
|
+
pos: node.pos,
|
|
29
|
+
isLivePage: isLivePage
|
|
30
|
+
});
|
|
31
|
+
} else {
|
|
32
|
+
if (isLivePage || (0, _platformFeatureFlags.fg)('platform-editor-single-player-expand')) {
|
|
33
|
+
var wasExpandExpanded = _expand.expandedState.get(node.node);
|
|
34
|
+
var newExpand = tr.doc.nodeAt(node.pos);
|
|
35
|
+
if (wasExpandExpanded !== undefined && newExpand) {
|
|
36
|
+
_expand.expandedState.set(newExpand, wasExpandExpanded);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
17
40
|
};
|
|
@@ -20,6 +20,7 @@ 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");
|
|
23
24
|
var _removeBreakout = require("../editor-commands/remove-breakout");
|
|
24
25
|
var _setBreakoutMode = require("../editor-commands/set-breakout-mode");
|
|
25
26
|
var _pluginKey = require("../pm-plugins/plugin-key");
|
|
@@ -66,7 +67,9 @@ var LayoutButton = function LayoutButton(_ref) {
|
|
|
66
67
|
scrollableElement = _ref.scrollableElement,
|
|
67
68
|
editorView = _ref.editorView,
|
|
68
69
|
node = _ref.node,
|
|
69
|
-
isLivePage = _ref.isLivePage
|
|
70
|
+
isLivePage = _ref.isLivePage,
|
|
71
|
+
isBreakoutNodePresent = _ref.isBreakoutNodePresent,
|
|
72
|
+
breakoutModeProp = _ref.breakoutMode;
|
|
70
73
|
var handleClick = (0, _react.useCallback)(function (breakoutMode) {
|
|
71
74
|
var state = editorView.state,
|
|
72
75
|
dispatch = editorView.dispatch;
|
|
@@ -77,10 +80,11 @@ var LayoutButton = function LayoutButton(_ref) {
|
|
|
77
80
|
}
|
|
78
81
|
}, [editorView, isLivePage]);
|
|
79
82
|
var state = editorView.state;
|
|
80
|
-
|
|
83
|
+
var exitCondition = (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', true) ? !isBreakoutNodePresent : !node;
|
|
84
|
+
if (exitCondition || !(0, _isBreakoutMarkAllowed.isBreakoutMarkAllowed)(state)) {
|
|
81
85
|
return null;
|
|
82
86
|
}
|
|
83
|
-
var breakoutMode = (0, _getBreakoutMode.getBreakoutMode)(editorView.state);
|
|
87
|
+
var breakoutMode = (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', true) ? breakoutModeProp : (0, _getBreakoutMode.getBreakoutMode)(editorView.state);
|
|
84
88
|
var titleMessage = (0, _utils.getTitle)(breakoutMode);
|
|
85
89
|
var title = formatMessage(titleMessage);
|
|
86
90
|
var nextBreakoutMode = (0, _utils.getNextBreakoutMode)(breakoutMode);
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
2
|
import { breakout } from '@atlaskit/adf-schema';
|
|
3
3
|
import { useSharedPluginState, sharedPluginStateHookMigratorFactory } 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';
|
|
6
7
|
import { useSharedPluginStateSelector } from '@atlaskit/editor-common/use-shared-plugin-state-selector';
|
|
7
8
|
import { akEditorSwoopCubicBezier } from '@atlaskit/editor-shared-styles';
|
|
8
9
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
@@ -10,6 +11,7 @@ import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
|
10
11
|
import { pluginKey } from './pm-plugins/plugin-key';
|
|
11
12
|
import { createResizingPlugin } from './pm-plugins/resizing-plugin';
|
|
12
13
|
import { findSupportedNodeForBreakout } from './pm-plugins/utils/find-breakout-node';
|
|
14
|
+
import { getBreakoutMode } from './pm-plugins/utils/get-breakout-mode';
|
|
13
15
|
import LayoutButton from './ui/LayoutButton';
|
|
14
16
|
class BreakoutView {
|
|
15
17
|
constructor(
|
|
@@ -118,13 +120,12 @@ const useOldHook = api => {
|
|
|
118
120
|
};
|
|
119
121
|
};
|
|
120
122
|
const useNewHook = api => {
|
|
121
|
-
const breakoutNode = useSharedPluginStateSelector(api, 'breakout.breakoutNode');
|
|
122
123
|
const isDragging = useSharedPluginStateSelector(api, 'blockControls.isDragging');
|
|
123
124
|
const isPMDragging = useSharedPluginStateSelector(api, 'blockControls.isPMDragging');
|
|
124
125
|
const mode = useSharedPluginStateSelector(api, 'editorViewMode.mode');
|
|
125
126
|
const editorDisabled = useSharedPluginStateSelector(api, 'editorDisabled.editorDisabled');
|
|
126
127
|
return {
|
|
127
|
-
breakoutNode,
|
|
128
|
+
breakoutNode: undefined,
|
|
128
129
|
isDragging,
|
|
129
130
|
isPMDragging,
|
|
130
131
|
mode,
|
|
@@ -147,6 +148,22 @@ const LayoutButtonWrapper = ({
|
|
|
147
148
|
mode,
|
|
148
149
|
editorDisabled
|
|
149
150
|
} = useSharedState(api);
|
|
151
|
+
const [breakoutNodePresent, setBreakoutNodePresent] = useState(false);
|
|
152
|
+
const [breakoutMode, setBreakoutMode] = useState(getBreakoutMode(editorView.state));
|
|
153
|
+
usePluginStateEffect(api, ['breakout'], ({
|
|
154
|
+
breakoutState
|
|
155
|
+
}) => {
|
|
156
|
+
if (breakoutState !== null && breakoutState !== void 0 && breakoutState.breakoutNode && !breakoutNodePresent) {
|
|
157
|
+
setBreakoutNodePresent(true);
|
|
158
|
+
}
|
|
159
|
+
if (!(breakoutState !== null && breakoutState !== void 0 && breakoutState.breakoutNode) && breakoutNodePresent) {
|
|
160
|
+
setBreakoutNodePresent(false);
|
|
161
|
+
}
|
|
162
|
+
const nextBreakoutMode = getBreakoutMode(editorView.state);
|
|
163
|
+
if (nextBreakoutMode !== breakoutMode) {
|
|
164
|
+
setBreakoutMode(nextBreakoutMode);
|
|
165
|
+
}
|
|
166
|
+
});
|
|
150
167
|
const interactionState = useSharedPluginStateSelector(api, 'interaction.interactionState');
|
|
151
168
|
if (interactionState === 'hasNotHadInteraction' && fg('platform_editor_hide_expand_selection_states')) {
|
|
152
169
|
return null;
|
|
@@ -164,7 +181,9 @@ const LayoutButtonWrapper = ({
|
|
|
164
181
|
boundariesElement: boundariesElement,
|
|
165
182
|
scrollableElement: scrollableElement,
|
|
166
183
|
node: (_breakoutNode$node = breakoutNode === null || breakoutNode === void 0 ? void 0 : breakoutNode.node) !== null && _breakoutNode$node !== void 0 ? _breakoutNode$node : null,
|
|
167
|
-
isLivePage: isEditMode
|
|
184
|
+
isLivePage: isEditMode,
|
|
185
|
+
isBreakoutNodePresent: breakoutNodePresent,
|
|
186
|
+
breakoutMode: breakoutMode
|
|
168
187
|
}) : null;
|
|
169
188
|
};
|
|
170
189
|
export const breakoutPlugin = ({
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import { transferCodeBlockWrappedValue } from '@atlaskit/editor-common/code-block';
|
|
2
|
+
import { updateExpandedStateNew } from '../pm-plugins/utils/single-player-expand';
|
|
2
3
|
export function setBreakoutWidth(width, mode, pos, isLivePage) {
|
|
3
4
|
return (state, dispatch) => {
|
|
4
5
|
const node = state.doc.nodeAt(pos);
|
|
@@ -9,6 +10,20 @@ export function setBreakoutWidth(width, mode, pos, isLivePage) {
|
|
|
9
10
|
width,
|
|
10
11
|
mode
|
|
11
12
|
})]);
|
|
13
|
+
if (node.type === state.schema.nodes.expand) {
|
|
14
|
+
updateExpandedStateNew({
|
|
15
|
+
tr,
|
|
16
|
+
node,
|
|
17
|
+
pos,
|
|
18
|
+
isLivePage
|
|
19
|
+
});
|
|
20
|
+
} else if (node.type === state.schema.nodes.codeBlock) {
|
|
21
|
+
const newNode = tr.doc.nodeAt(pos);
|
|
22
|
+
const oldNode = node;
|
|
23
|
+
if (newNode) {
|
|
24
|
+
transferCodeBlockWrappedValue(oldNode, newNode);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
12
27
|
if (dispatch) {
|
|
13
28
|
dispatch(tr);
|
|
14
29
|
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { resizerHandleThumbWidth } from '@atlaskit/editor-common/styles';
|
|
2
|
-
import { akEditorGutterPaddingDynamic, akEditorGutterPadding, akEditorCalculatedWideLayoutWidth } from '@atlaskit/editor-shared-styles';
|
|
3
|
-
|
|
2
|
+
import { akEditorGutterPaddingDynamic, akEditorGutterPadding, akEditorCalculatedWideLayoutWidth, akEditorFullWidthLayoutWidth, akEditorDefaultLayoutWidth } from '@atlaskit/editor-shared-styles';
|
|
3
|
+
const WIDTHS = {
|
|
4
|
+
MIN: akEditorDefaultLayoutWidth,
|
|
5
|
+
MAX: akEditorFullWidthLayoutWidth
|
|
6
|
+
};
|
|
4
7
|
const GUIDELINE_KEYS = {
|
|
5
8
|
lineLength: 'grid',
|
|
6
9
|
wide: 'wide',
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { draggable } from '@atlaskit/pragmatic-drag-and-drop/element/adapter';
|
|
2
|
+
import { disableNativeDragPreview } from '@atlaskit/pragmatic-drag-and-drop/element/disable-native-drag-preview';
|
|
3
|
+
import { preventUnhandled } from '@atlaskit/pragmatic-drag-and-drop/prevent-unhandled';
|
|
4
|
+
export const createPragmaticResizer = ({
|
|
5
|
+
onDragStart,
|
|
6
|
+
onDrag,
|
|
7
|
+
onDrop
|
|
8
|
+
}) => {
|
|
9
|
+
const registerHandle = handleElement => {
|
|
10
|
+
return draggable({
|
|
11
|
+
element: handleElement,
|
|
12
|
+
onGenerateDragPreview: ({
|
|
13
|
+
nativeSetDragImage
|
|
14
|
+
}) => {
|
|
15
|
+
disableNativeDragPreview({
|
|
16
|
+
nativeSetDragImage
|
|
17
|
+
});
|
|
18
|
+
preventUnhandled.start();
|
|
19
|
+
},
|
|
20
|
+
onDragStart,
|
|
21
|
+
onDrag,
|
|
22
|
+
onDrop(args) {
|
|
23
|
+
preventUnhandled.stop();
|
|
24
|
+
onDrop(args);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
const createHandle = side => {
|
|
29
|
+
const handle = document.createElement('div');
|
|
30
|
+
handle.contentEditable = 'false';
|
|
31
|
+
handle.classList.add('pm-breakout-resize-handle');
|
|
32
|
+
if (side === 'left') {
|
|
33
|
+
handle.classList.add('pm-breakout-resize-handle-left');
|
|
34
|
+
handle.setAttribute('data-testid', 'pragmatic-resizer-handle-left');
|
|
35
|
+
} else {
|
|
36
|
+
handle.classList.add('pm-breakout-resize-handle-right');
|
|
37
|
+
handle.setAttribute('data-testid', 'pragmatic-resizer-handle-right');
|
|
38
|
+
}
|
|
39
|
+
const handleInner = document.createElement('div');
|
|
40
|
+
handleInner.classList.add('pm-breakout-resize-handle-inner');
|
|
41
|
+
handle.appendChild(handleInner);
|
|
42
|
+
return handle;
|
|
43
|
+
};
|
|
44
|
+
const rightHandle = createHandle('right');
|
|
45
|
+
const leftHandle = createHandle('left');
|
|
46
|
+
const rightHandleCleanup = registerHandle(rightHandle);
|
|
47
|
+
const leftHandleCleanup = registerHandle(leftHandle);
|
|
48
|
+
return {
|
|
49
|
+
rightHandle,
|
|
50
|
+
leftHandle,
|
|
51
|
+
destroy: () => {
|
|
52
|
+
rightHandleCleanup();
|
|
53
|
+
leftHandleCleanup();
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
};
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { akEditorGutterPaddingDynamic, akEditorGutterPadding } from '@atlaskit/editor-shared-styles';
|
|
1
|
+
import { akEditorGutterPaddingDynamic, akEditorGutterPadding, akEditorDefaultLayoutWidth, akEditorFullWidthLayoutWidth } from '@atlaskit/editor-shared-styles';
|
|
2
2
|
import { setBreakoutWidth } from '../editor-commands/set-breakout-width';
|
|
3
3
|
import { getGuidelines } from './get-guidelines';
|
|
4
4
|
import { LOCAL_RESIZE_PROPERTY } from './resizing-mark-view';
|
|
5
5
|
const RESIZE_RATIO = 2;
|
|
6
|
-
|
|
7
|
-
MIN:
|
|
8
|
-
MAX:
|
|
6
|
+
const WIDTHS = {
|
|
7
|
+
MIN: akEditorDefaultLayoutWidth,
|
|
8
|
+
MAX: akEditorFullWidthLayoutWidth
|
|
9
9
|
};
|
|
10
|
-
function getProposedWidth({
|
|
10
|
+
export function getProposedWidth({
|
|
11
11
|
initialWidth,
|
|
12
12
|
location,
|
|
13
13
|
api
|