@atlaskit/editor-common 74.32.1 → 74.34.0
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 +16 -0
- package/dist/cjs/card/MediaAndEmbedsToolbar/index.js +23 -7
- package/dist/cjs/guideline/index.js +13 -0
- package/dist/cjs/keymaps/index.js +8 -1
- package/dist/cjs/keymaps/keymap.js +38 -0
- package/dist/cjs/monitoring/error.js +1 -1
- package/dist/cjs/styles/shared/media-single.js +2 -1
- package/dist/cjs/ui/DropList/index.js +1 -1
- package/dist/cjs/ui/MediaSingle/index.js +2 -7
- package/dist/cjs/ui/MediaSingle/styled.js +24 -2
- package/dist/cjs/ui/index.js +0 -6
- package/dist/cjs/utils/commands.js +180 -15
- package/dist/cjs/utils/editor-core-utils.js +53 -3
- package/dist/cjs/utils/index.js +54 -0
- package/dist/cjs/utils/input-rules.js +48 -2
- package/dist/cjs/utils/rich-media-utils.js +6 -3
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/card/MediaAndEmbedsToolbar/index.js +23 -8
- package/dist/es2019/guideline/index.js +1 -0
- package/dist/es2019/keymaps/index.js +3 -2
- package/dist/es2019/keymaps/keymap.js +33 -0
- package/dist/es2019/monitoring/error.js +1 -1
- package/dist/es2019/styles/shared/media-single.js +6 -5
- package/dist/es2019/ui/DropList/index.js +1 -1
- package/dist/es2019/ui/MediaSingle/index.js +1 -4
- package/dist/es2019/ui/MediaSingle/styled.js +45 -2
- package/dist/es2019/ui/index.js +1 -1
- package/dist/es2019/utils/commands.js +173 -2
- package/dist/es2019/utils/editor-core-utils.js +46 -1
- package/dist/es2019/utils/index.js +4 -4
- package/dist/es2019/utils/input-rules.js +45 -0
- package/dist/es2019/utils/rich-media-utils.js +3 -1
- package/dist/es2019/version.json +1 -1
- package/dist/esm/card/MediaAndEmbedsToolbar/index.js +24 -8
- package/dist/esm/guideline/index.js +1 -0
- package/dist/esm/keymaps/index.js +3 -2
- package/dist/esm/keymaps/keymap.js +33 -0
- package/dist/esm/monitoring/error.js +1 -1
- package/dist/esm/styles/shared/media-single.js +2 -1
- package/dist/esm/ui/DropList/index.js +1 -1
- package/dist/esm/ui/MediaSingle/index.js +1 -4
- package/dist/esm/ui/MediaSingle/styled.js +25 -3
- package/dist/esm/ui/index.js +1 -1
- package/dist/esm/utils/commands.js +170 -14
- package/dist/esm/utils/editor-core-utils.js +47 -0
- package/dist/esm/utils/index.js +4 -4
- package/dist/esm/utils/input-rules.js +44 -0
- package/dist/esm/utils/rich-media-utils.js +3 -1
- package/dist/esm/version.json +1 -1
- package/dist/types/card/MediaAndEmbedsToolbar/index.d.ts +1 -1
- package/dist/types/guideline/index.d.ts +1 -0
- package/dist/types/keymaps/index.d.ts +1 -0
- package/dist/types/keymaps/keymap.d.ts +11 -0
- package/dist/types/types/block-type.d.ts +1 -0
- package/dist/types/types/feature-flags.d.ts +8 -0
- package/dist/types/types/index.d.ts +1 -1
- package/dist/types/ui/DropList/index.d.ts +1 -1
- package/dist/types/ui/MediaSingle/index.d.ts +1 -2
- package/dist/types/ui/MediaSingle/styled.d.ts +3 -1
- package/dist/types/ui/index.d.ts +1 -1
- package/dist/types/utils/commands.d.ts +11 -5
- package/dist/types/utils/editor-core-utils.d.ts +7 -2
- package/dist/types/utils/index.d.ts +4 -4
- package/dist/types/utils/input-rules.d.ts +12 -4
- package/dist/types/utils/rich-media-utils.d.ts +1 -0
- package/dist/types-ts4.5/card/MediaAndEmbedsToolbar/index.d.ts +1 -1
- package/dist/types-ts4.5/guideline/index.d.ts +1 -0
- package/dist/types-ts4.5/keymaps/index.d.ts +1 -0
- package/dist/types-ts4.5/keymaps/keymap.d.ts +11 -0
- package/dist/types-ts4.5/types/block-type.d.ts +1 -0
- package/dist/types-ts4.5/types/feature-flags.d.ts +8 -0
- package/dist/types-ts4.5/types/index.d.ts +1 -1
- package/dist/types-ts4.5/ui/DropList/index.d.ts +1 -1
- package/dist/types-ts4.5/ui/MediaSingle/index.d.ts +1 -2
- package/dist/types-ts4.5/ui/MediaSingle/styled.d.ts +3 -1
- package/dist/types-ts4.5/ui/index.d.ts +1 -1
- package/dist/types-ts4.5/utils/commands.d.ts +11 -5
- package/dist/types-ts4.5/utils/editor-core-utils.d.ts +7 -2
- package/dist/types-ts4.5/utils/index.d.ts +4 -4
- package/dist/types-ts4.5/utils/input-rules.d.ts +12 -4
- package/dist/types-ts4.5/utils/rich-media-utils.d.ts +1 -0
- package/package.json +7 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @atlaskit/editor-common
|
|
2
2
|
|
|
3
|
+
## 74.34.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`1944b35b538`](https://bitbucket.org/atlassian/atlassian-frontend/commits/1944b35b538) - move common utilities to editor-common, to help with decoupling block-type plugin
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies
|
|
12
|
+
|
|
13
|
+
## 74.33.0
|
|
14
|
+
|
|
15
|
+
### Minor Changes
|
|
16
|
+
|
|
17
|
+
- [`936c30f8dc9`](https://bitbucket.org/atlassian/atlassian-frontend/commits/936c30f8dc9) - support new image resize experience under feature flag
|
|
18
|
+
|
|
3
19
|
## 74.32.1
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
|
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
11
|
var _state = require("@atlaskit/editor-prosemirror/state");
|
|
11
12
|
var _utils = require("@atlaskit/editor-prosemirror/utils");
|
|
12
13
|
var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
|
|
@@ -17,12 +18,15 @@ var _mediaFullWidth = _interopRequireDefault(require("@atlaskit/icon/glyph/edito
|
|
|
17
18
|
var _mediaWide = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/media-wide"));
|
|
18
19
|
var _mediaWrapLeft = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/media-wrap-left"));
|
|
19
20
|
var _mediaWrapRight = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/media-wrap-right"));
|
|
21
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
20
22
|
var _analytics = require("../../analytics");
|
|
21
23
|
var _coreUtils = require("../../core-utils");
|
|
22
24
|
var _messages = _interopRequireWildcard(require("../../messages"));
|
|
23
25
|
var _utils2 = require("../../utils");
|
|
24
26
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
25
27
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
28
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
29
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
26
30
|
// Workaround as we don't want to import this package into `editor-common`
|
|
27
31
|
// We'll get type errors if this gets out of sync with `editor-plugin-width`.
|
|
28
32
|
var alignmentIcons = [{
|
|
@@ -84,7 +88,10 @@ var makeAlign = function makeAlign(layout, nodeType, widthPluginDependencyApi, a
|
|
|
84
88
|
return false;
|
|
85
89
|
}
|
|
86
90
|
var nodeWidth = getNodeWidth(node, state.schema);
|
|
87
|
-
var newAttrs = (0,
|
|
91
|
+
var newAttrs = (0, _platformFeatureFlags.getBooleanFF)('platform.editor.media.extended-resize-experience') ? // with extended experience, change alignment does not change media single width
|
|
92
|
+
_objectSpread(_objectSpread({}, node.attrs), {}, {
|
|
93
|
+
layout: layout
|
|
94
|
+
}) : (0, _utils2.alignAttributes)(layout, node.attrs, undefined, nodeWidth, widthPluginState.lineLength);
|
|
88
95
|
var tr = state.tr.setNodeMarkup(state.selection.from, undefined, newAttrs);
|
|
89
96
|
tr.setMeta('scrollIntoView', false);
|
|
90
97
|
// when image captions are enabled, the wrong node gets selected after
|
|
@@ -113,18 +120,26 @@ var makeAlign = function makeAlign(layout, nodeType, widthPluginDependencyApi, a
|
|
|
113
120
|
return true;
|
|
114
121
|
};
|
|
115
122
|
};
|
|
116
|
-
var
|
|
123
|
+
var getToolbarLayout = function getToolbarLayout(layout) {
|
|
124
|
+
if ((0, _platformFeatureFlags.getBooleanFF)('platform.editor.media.extended-resize-experience') && _utils2.nonWrappedLayouts.includes(layout)) {
|
|
125
|
+
return 'center';
|
|
126
|
+
}
|
|
127
|
+
return layout;
|
|
128
|
+
};
|
|
129
|
+
var mapIconsToToolbarItem = function mapIconsToToolbarItem(icons, layout, intl, nodeType, widthPluginDependencyApi, analyticsApi, isChangingLayoutDisabled) {
|
|
117
130
|
return icons.map(function (toolbarItem) {
|
|
118
131
|
var id = toolbarItem.id,
|
|
119
132
|
value = toolbarItem.value;
|
|
120
|
-
return {
|
|
133
|
+
return _objectSpread({
|
|
121
134
|
id: id,
|
|
122
135
|
type: 'button',
|
|
123
136
|
icon: toolbarItem.icon,
|
|
124
137
|
title: intl.formatMessage(layoutToMessages[value]),
|
|
125
|
-
selected: layout === value,
|
|
138
|
+
selected: getToolbarLayout(layout) === value,
|
|
126
139
|
onClick: makeAlign(value, nodeType, widthPluginDependencyApi, analyticsApi)
|
|
127
|
-
}
|
|
140
|
+
}, isChangingLayoutDisabled && {
|
|
141
|
+
disabled: value !== 'center'
|
|
142
|
+
});
|
|
128
143
|
});
|
|
129
144
|
};
|
|
130
145
|
var shouldHideLayoutToolbar = function shouldHideLayoutToolbar(selection, _ref2, allowResizingInTables) {
|
|
@@ -134,13 +149,14 @@ var shouldHideLayoutToolbar = function shouldHideLayoutToolbar(selection, _ref2,
|
|
|
134
149
|
var buildLayoutButtons = function buildLayoutButtons(state, intl, nodeType, widthPluginDependencyApi, analyticsApi, allowResizing, allowResizingInTables) {
|
|
135
150
|
var allowWrapping = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : true;
|
|
136
151
|
var allowAlignment = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : true;
|
|
152
|
+
var isChangingLayoutDisabled = arguments.length > 9 ? arguments[9] : undefined;
|
|
137
153
|
var selection = state.selection;
|
|
138
154
|
if (!(selection instanceof _state.NodeSelection) || !selection.node || !nodeType || shouldHideLayoutToolbar(selection, state.schema, allowResizingInTables)) {
|
|
139
155
|
return [];
|
|
140
156
|
}
|
|
141
157
|
var layout = selection.node.attrs.layout;
|
|
142
|
-
var alignmentToolbarItems = allowAlignment ? mapIconsToToolbarItem(alignmentIcons, layout, intl, nodeType, widthPluginDependencyApi, analyticsApi) : [];
|
|
143
|
-
var wrappingToolbarItems = allowWrapping ? mapIconsToToolbarItem(wrappingIcons, layout, intl, nodeType, widthPluginDependencyApi, analyticsApi) : [];
|
|
158
|
+
var alignmentToolbarItems = allowAlignment ? mapIconsToToolbarItem(alignmentIcons, layout, intl, nodeType, widthPluginDependencyApi, analyticsApi, isChangingLayoutDisabled) : [];
|
|
159
|
+
var wrappingToolbarItems = allowWrapping ? mapIconsToToolbarItem(wrappingIcons, layout, intl, nodeType, widthPluginDependencyApi, analyticsApi, isChangingLayoutDisabled) : [];
|
|
144
160
|
var breakOutToolbarItems = !allowResizing ? mapIconsToToolbarItem(breakoutIcons, layout, intl, nodeType, widthPluginDependencyApi, analyticsApi) : [];
|
|
145
161
|
var items = [].concat((0, _toConsumableArray2.default)(alignmentToolbarItems), (0, _toConsumableArray2.default)(getSeparatorBetweenAlignmentAndWrapping(allowAlignment, allowWrapping)), (0, _toConsumableArray2.default)(wrappingToolbarItems), (0, _toConsumableArray2.default)(getSeparatorBeforeBreakoutItems(allowAlignment, allowWrapping, allowResizing)), (0, _toConsumableArray2.default)(breakOutToolbarItems));
|
|
146
162
|
return items;
|
|
@@ -21,6 +21,12 @@ Object.defineProperty(exports, "createGuidesFromLengths", {
|
|
|
21
21
|
return _fixedGuideline.createGuidesFromLengths;
|
|
22
22
|
}
|
|
23
23
|
});
|
|
24
|
+
Object.defineProperty(exports, "findClosestSnap", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function get() {
|
|
27
|
+
return _snapping.findClosestSnap;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
24
30
|
Object.defineProperty(exports, "generateDefaultGuidelines", {
|
|
25
31
|
enumerable: true,
|
|
26
32
|
get: function get() {
|
|
@@ -45,6 +51,12 @@ Object.defineProperty(exports, "getGuidelinesWithHighlights", {
|
|
|
45
51
|
return _updateGuideline.getGuidelinesWithHighlights;
|
|
46
52
|
}
|
|
47
53
|
});
|
|
54
|
+
Object.defineProperty(exports, "getSnapWidth", {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function get() {
|
|
57
|
+
return _snapping.getSnapWidth;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
48
60
|
Object.defineProperty(exports, "isVerticalPosition", {
|
|
49
61
|
enumerable: true,
|
|
50
62
|
get: function get() {
|
|
@@ -56,4 +68,5 @@ var _fixedGuideline = require("./fixedGuideline");
|
|
|
56
68
|
var _defaultGuideline = require("./defaultGuideline");
|
|
57
69
|
var _updateGuideline = require("./updateGuideline");
|
|
58
70
|
var _constants = require("./constants");
|
|
71
|
+
var _snapping = require("./snapping");
|
|
59
72
|
var _utils = require("./utils");
|
|
@@ -88,6 +88,12 @@ exports.findShortcutByKeymap = findShortcutByKeymap;
|
|
|
88
88
|
exports.forwardDelete = void 0;
|
|
89
89
|
exports.getAriaKeyshortcuts = getAriaKeyshortcuts;
|
|
90
90
|
exports.insertRule = exports.insertNewLine = exports.indentList = exports.indent = void 0;
|
|
91
|
+
Object.defineProperty(exports, "keymap", {
|
|
92
|
+
enumerable: true,
|
|
93
|
+
get: function get() {
|
|
94
|
+
return _keymap.keymap;
|
|
95
|
+
}
|
|
96
|
+
});
|
|
91
97
|
exports.makeKeyMapWithCommon = makeKeyMapWithCommon;
|
|
92
98
|
exports.makeKeymap = makeKeymap;
|
|
93
99
|
exports.toggleUnderline = exports.toggleTable = exports.toggleSuperscript = exports.toggleSubscript = exports.toggleStrikethrough = exports.toggleOrderedList = exports.toggleItalic = exports.toggleHeading6 = exports.toggleHeading5 = exports.toggleHeading4 = exports.toggleHeading3 = exports.toggleHeading2 = exports.toggleHeading1 = exports.toggleCode = exports.toggleBulletList = exports.toggleBold = exports.toggleBlockQuote = exports.tab = exports.submit = exports.splitListItem = exports.splitCodeBlock = exports.space = exports.shiftTab = exports.shiftEnter = exports.shiftBackspace = exports.setNormalText = exports.redo = exports.previousCell = exports.pastePlainText = exports.paste = exports.outdentList = exports.outdent = exports.openHelp = exports.nextCell = exports.navToFloatingToolbar = exports.navToEditorToolbar = exports.moveUp = exports.moveRight = exports.moveLeft = exports.moveDown = void 0;
|
|
@@ -100,6 +106,7 @@ var _react2 = require("@emotion/react");
|
|
|
100
106
|
var _colors = require("@atlaskit/theme/colors");
|
|
101
107
|
var _utils = require("../utils");
|
|
102
108
|
var _consts = require("./consts");
|
|
109
|
+
var _keymap = require("./keymap");
|
|
103
110
|
var _templateObject;
|
|
104
111
|
/** @jsx jsx */
|
|
105
112
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
@@ -239,7 +246,7 @@ var arrowKeysMap = {
|
|
|
239
246
|
ARROWUP: "\u2191",
|
|
240
247
|
ARROWDOWN: "\u2193"
|
|
241
248
|
};
|
|
242
|
-
var tooltipShortcutStyle = (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n border-radius: 2px;\n background-color: ", ";\n padding: 0
|
|
249
|
+
var tooltipShortcutStyle = (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n border-radius: 2px;\n background-color: ", ";\n padding: 0 ", ";\n\n /* TODO: fix in develop: https://atlassian.slack.com/archives/CFG3PSQ9E/p1647395052443259?thread_ts=1647394572.556029&cid=CFG3PSQ9E */\n /* stylelint-disable-next-line */\n label: tooltip-shortcut;\n"])), "var(--ds-background-inverse-subtle, ".concat(_colors.N400, ")"), "var(--ds-space-025, 2px)");
|
|
243
250
|
/* eslint-enable @atlaskit/design-system/ensure-design-token-usage */
|
|
244
251
|
|
|
245
252
|
function formatShortcut(keymap) {
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.keymap = keymap;
|
|
7
|
+
var _w3cKeyname = require("w3c-keyname");
|
|
8
|
+
var _keymap = require("@atlaskit/editor-prosemirror/keymap");
|
|
9
|
+
var _safePlugin = require("../safe-plugin");
|
|
10
|
+
/**
|
|
11
|
+
* A workaround for mostly Cyrillic but should have a positive affect
|
|
12
|
+
* on other languages / layouts. Attempts a similar approach to OS X.
|
|
13
|
+
* @see ED-7310
|
|
14
|
+
* @see https://github.com/ProseMirror/prosemirror/issues/957
|
|
15
|
+
* @param bindings
|
|
16
|
+
*/
|
|
17
|
+
function keymap(bindings) {
|
|
18
|
+
return new _safePlugin.SafePlugin({
|
|
19
|
+
props: {
|
|
20
|
+
handleKeyDown: function handleKeyDown(view, event) {
|
|
21
|
+
var name = (0, _w3cKeyname.keyName)(event);
|
|
22
|
+
var keyboardEvent = event;
|
|
23
|
+
if (event.ctrlKey && name.length === 1 &&
|
|
24
|
+
// Check the unicode of the character to
|
|
25
|
+
// assert that its not an ASCII character.
|
|
26
|
+
// These are characters outside Latin's range.
|
|
27
|
+
/[^\u0000-\u007f]/.test(name)) {
|
|
28
|
+
keyboardEvent = new KeyboardEvent('keydown', {
|
|
29
|
+
key: _w3cKeyname.base[event.keyCode],
|
|
30
|
+
code: event.code,
|
|
31
|
+
ctrlKey: true
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
return (0, _keymap.keydownHandler)(bindings)(view, keyboardEvent);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
@@ -16,7 +16,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
16
16
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
17
17
|
var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
|
|
18
18
|
var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
|
|
19
|
-
var packageVersion = "74.
|
|
19
|
+
var packageVersion = "74.34.0";
|
|
20
20
|
var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
|
|
21
21
|
// Remove URL as it has UGC
|
|
22
22
|
// TODO: Sanitise the URL instead of just removing it
|
|
@@ -7,9 +7,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.richMediaClassName = exports.mediaSingleSharedStyle = void 0;
|
|
8
8
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
9
9
|
var _react = require("@emotion/react");
|
|
10
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
10
11
|
var _templateObject;
|
|
11
12
|
var richMediaClassName = 'rich-media-item';
|
|
12
13
|
exports.richMediaClassName = richMediaClassName;
|
|
13
14
|
var wrappedMediaBreakoutPoint = 410;
|
|
14
|
-
var mediaSingleSharedStyle = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n li .", " {\n margin: 0;\n }\n\n /* Hack for chrome to fix media single position\n inside a list when media is the first child */\n &.ua-chrome li > .mediaSingleView-content-wrap::before {\n content: '';\n display: block;\n height: 0;\n }\n\n &.ua-firefox {\n .mediaSingleView-content-wrap {\n user-select: none;\n }\n\n .captionView-content-wrap {\n user-select: text;\n }\n }\n\n .mediaSingleView-content-wrap[layout='center'] {\n clear: both;\n }\n\n table .", " {\n margin-top:
|
|
15
|
+
var mediaSingleSharedStyle = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n li .", " {\n margin: 0;\n }\n\n /* Hack for chrome to fix media single position\n inside a list when media is the first child */\n &.ua-chrome li > .mediaSingleView-content-wrap::before {\n content: '';\n display: block;\n height: 0;\n }\n\n &.ua-firefox {\n .mediaSingleView-content-wrap {\n user-select: none;\n }\n\n .captionView-content-wrap {\n user-select: text;\n }\n }\n\n .mediaSingleView-content-wrap[layout='center'] {\n clear: both;\n }\n\n table .", " {\n margin-top: ", ";\n margin-bottom: ", ";\n clear: both;\n\n &.image-wrap-left,\n &.image-wrap-right {\n clear: none;\n\n &:first-child {\n margin-top: ", ";\n }\n }\n }\n\n .", ".image-wrap-right\n + .", ".image-wrap-left {\n clear: both;\n }\n\n .", ".image-wrap-left\n + .", ".image-wrap-right,\n .", ".image-wrap-right\n + .", ".image-wrap-left,\n .", ".image-wrap-left\n + .", ".image-wrap-left,\n .", ".image-wrap-right\n + .", ".image-wrap-right {\n margin-right: 0;\n margin-left: 0;\n }\n\n ", "\n"])), richMediaClassName, richMediaClassName, "var(--ds-space-150, 12px)", "var(--ds-space-150, 12px)", "var(--ds-space-150, 12px)", richMediaClassName, richMediaClassName, richMediaClassName, richMediaClassName, richMediaClassName, richMediaClassName, richMediaClassName, richMediaClassName, richMediaClassName, richMediaClassName, !(0, _platformFeatureFlags.getBooleanFF)('platform.editor.media.extended-resize-experience') && "@media all and (max-width: ".concat(wrappedMediaBreakoutPoint, "px) {\n div.mediaSingleView-content-wrap[layout='wrap-left'],\n div.mediaSingleView-content-wrap[data-layout='wrap-left'],\n div.mediaSingleView-content-wrap[layout='wrap-right'],\n div.mediaSingleView-content-wrap[data-layout='wrap-right'] {\n float: none;\n overflow: auto;\n margin: 12px 0;\n }\n }"));
|
|
15
16
|
exports.mediaSingleSharedStyle = mediaSingleSharedStyle;
|
|
@@ -24,7 +24,7 @@ var _templateObject, _templateObject2, _templateObject3;
|
|
|
24
24
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
25
25
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /** @jsx jsx */
|
|
26
26
|
var packageName = "@atlaskit/editor-common";
|
|
27
|
-
var packageVersion = "74.
|
|
27
|
+
var packageVersion = "74.34.0";
|
|
28
28
|
var halfFocusRing = 1;
|
|
29
29
|
var dropOffset = '0, 8';
|
|
30
30
|
var DropList = /*#__PURE__*/function (_Component) {
|
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.IMAGE_AND_BORDER_ADJUSTMENT = exports.DEFAULT_IMAGE_WIDTH = exports.DEFAULT_IMAGE_HEIGHT = void 0;
|
|
8
8
|
exports.default = MediaSingle;
|
|
9
|
-
exports.shouldAddDefaultWrappedWidth = void 0;
|
|
10
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
10
|
var _react = _interopRequireDefault(require("react"));
|
|
12
11
|
var _react2 = require("@emotion/react");
|
|
@@ -14,7 +13,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
|
|
|
14
13
|
var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
|
|
15
14
|
var _constants = require("../../media-single/constants");
|
|
16
15
|
var _utils = require("../../media-single/utils");
|
|
17
|
-
var
|
|
16
|
+
var _richMediaUtils = require("../../utils/rich-media-utils");
|
|
18
17
|
var _styled = require("./styled");
|
|
19
18
|
/** @jsx jsx */
|
|
20
19
|
|
|
@@ -29,10 +28,6 @@ var DEFAULT_IMAGE_HEIGHT = 200;
|
|
|
29
28
|
exports.DEFAULT_IMAGE_HEIGHT = DEFAULT_IMAGE_HEIGHT;
|
|
30
29
|
var IMAGE_AND_BORDER_ADJUSTMENT = 2;
|
|
31
30
|
exports.IMAGE_AND_BORDER_ADJUSTMENT = IMAGE_AND_BORDER_ADJUSTMENT;
|
|
32
|
-
var shouldAddDefaultWrappedWidth = function shouldAddDefaultWrappedWidth(layout, width, lineLength) {
|
|
33
|
-
return _grid.wrappedLayouts.indexOf(layout) > -1 && lineLength && width && width > 0.5 * lineLength;
|
|
34
|
-
};
|
|
35
|
-
exports.shouldAddDefaultWrappedWidth = shouldAddDefaultWrappedWidth;
|
|
36
31
|
function MediaSingle(_ref) {
|
|
37
32
|
var layout = _ref.layout,
|
|
38
33
|
width = _ref.width,
|
|
@@ -55,7 +50,7 @@ function MediaSingle(_ref) {
|
|
|
55
50
|
var isPixelWidth = (size === null || size === void 0 ? void 0 : size.widthType) === 'pixel';
|
|
56
51
|
var mediaSingleWidth = (size === null || size === void 0 ? void 0 : size.width) || pctWidth;
|
|
57
52
|
var children = _react.default.Children.toArray(propsChildren);
|
|
58
|
-
if (!mediaSingleWidth && shouldAddDefaultWrappedWidth(layout, width, editorWidth)) {
|
|
53
|
+
if (!mediaSingleWidth && (0, _richMediaUtils.shouldAddDefaultWrappedWidth)(layout, width, editorWidth)) {
|
|
59
54
|
// if width is not available, set to half of editor width
|
|
60
55
|
mediaSingleWidth = isPixelWidth ? editorWidth / 2 : 50;
|
|
61
56
|
}
|
|
@@ -13,6 +13,7 @@ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/hel
|
|
|
13
13
|
var _react = _interopRequireDefault(require("react"));
|
|
14
14
|
var _react2 = require("@emotion/react");
|
|
15
15
|
var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
|
|
16
|
+
var _utils = require("../../utils");
|
|
16
17
|
var _breakout = require("../../utils/breakout");
|
|
17
18
|
var _excluded = ["children"];
|
|
18
19
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
|
@@ -87,6 +88,24 @@ function calcMaxWidth(layout, containerWidth) {
|
|
|
87
88
|
return '100%';
|
|
88
89
|
}
|
|
89
90
|
}
|
|
91
|
+
var getEffectiveFullWidth = function getEffectiveFullWidth(containerWidth, fullWidthMode) {
|
|
92
|
+
if (fullWidthMode) {
|
|
93
|
+
return '100%';
|
|
94
|
+
}
|
|
95
|
+
// There is always padding for renderer, so we don't need padding for it
|
|
96
|
+
var fullWidthPadding = _editorSharedStyles.akEditorGutterPadding * 2;
|
|
97
|
+
return "".concat(Math.min(containerWidth - fullWidthPadding, _editorSharedStyles.akEditorFullWidthLayoutWidth), "px");
|
|
98
|
+
};
|
|
99
|
+
var calcMaxWidthWhenResizing = function calcMaxWidthWhenResizing(containerWidth, fullWidthMode, isNestedNode) {
|
|
100
|
+
if (isNestedNode) {
|
|
101
|
+
return '100%';
|
|
102
|
+
}
|
|
103
|
+
// non-nested node can resize up to full width
|
|
104
|
+
return getEffectiveFullWidth(containerWidth, fullWidthMode);
|
|
105
|
+
};
|
|
106
|
+
var calcMaxWidthWhenNotResizing = function calcMaxWidthWhenNotResizing(containerWidth, mediaSingleWidth) {
|
|
107
|
+
return "".concat(Math.min(mediaSingleWidth, containerWidth - _editorSharedStyles.akEditorGutterPadding * 2), "px");
|
|
108
|
+
};
|
|
90
109
|
function calcMargin(layout) {
|
|
91
110
|
switch (layout) {
|
|
92
111
|
case 'wrap-right':
|
|
@@ -119,8 +138,11 @@ var MediaSingleDimensionHelper = function MediaSingleDimensionHelper(_ref) {
|
|
|
119
138
|
layout = _ref.layout,
|
|
120
139
|
pctWidth = _ref.pctWidth,
|
|
121
140
|
mediaSingleWidth = _ref.mediaSingleWidth,
|
|
122
|
-
width = _ref.width
|
|
123
|
-
|
|
141
|
+
width = _ref.width,
|
|
142
|
+
isExtendedResizeExperienceOn = _ref.isExtendedResizeExperienceOn,
|
|
143
|
+
_ref$isNestedNode = _ref.isNestedNode,
|
|
144
|
+
isNestedNode = _ref$isNestedNode === void 0 ? false : _ref$isNestedNode;
|
|
145
|
+
return (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n /* For nested rich media items, set max-width to 100% */\n tr &,\n [data-layout-column] &,\n [data-node-type='expand'] & {\n max-width: 100%;\n }\n\n width: ", ";\n ", "\n max-width: ", ";\n &[class*='is-resizing'] {\n ", "\n }\n\n /* Handles responsiveness of non-nested, not-resizing nodes in editor */\n &[class*='not-resizing'] {\n ", "\n }\n\n float: ", ";\n margin: ", ";\n ", ";\n\n &:not(.is-resizing) {\n transition: width 100ms ease-in;\n }\n"])), mediaSingleWidth || pctWidth ? calcResizedWidth(layout, width || 0, containerWidth) : calcLegacyWidth(layout, width || 0, containerWidth, fullWidthMode, isResized), layout === 'full-width' && (0, _react2.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n min-width: 100%;\n "]))), calcMaxWidth(layout, containerWidth), isExtendedResizeExperienceOn && "max-width: ".concat(calcMaxWidthWhenResizing(containerWidth, fullWidthMode, isNestedNode), ";\n\n ").concat(_utils.nonWrappedLayouts.includes(layout) && "margin-left: 50%;\n transform: translateX(-50%);", "\n\n .new-file-experience-wrapper {\n box-shadow: none;\n }"), !isNestedNode && "max-width: ".concat(layout !== 'full-width' && mediaSingleWidth && calcMaxWidthWhenNotResizing(containerWidth, mediaSingleWidth), ";\n\n ").concat(_utils.nonWrappedLayouts.includes(layout) && "margin-left: 50%;\n transform: translateX(-50%);", "\n\n // override min-width to counteract max-width set in old experience\n ").concat(layout === 'full-width' && "min-width: ".concat(getEffectiveFullWidth(containerWidth, fullWidthMode), " !important;"), ";"), float(layout), calcMargin(layout), isImageAligned(layout));
|
|
124
146
|
};
|
|
125
147
|
exports.MediaSingleDimensionHelper = MediaSingleDimensionHelper;
|
|
126
148
|
var RenderFallbackContainer = function RenderFallbackContainer(_ref2) {
|
package/dist/cjs/ui/index.js
CHANGED
|
@@ -347,12 +347,6 @@ Object.defineProperty(exports, "sharedExpandStyles", {
|
|
|
347
347
|
return _Expand.sharedExpandStyles;
|
|
348
348
|
}
|
|
349
349
|
});
|
|
350
|
-
Object.defineProperty(exports, "shouldAddDefaultWrappedWidth", {
|
|
351
|
-
enumerable: true,
|
|
352
|
-
get: function get() {
|
|
353
|
-
return _MediaSingle.shouldAddDefaultWrappedWidth;
|
|
354
|
-
}
|
|
355
|
-
});
|
|
356
350
|
Object.defineProperty(exports, "snapTo", {
|
|
357
351
|
enumerable: true,
|
|
358
352
|
get: function get() {
|
|
@@ -4,11 +4,21 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.
|
|
7
|
+
exports.atTheBeginningOfDoc = atTheBeginningOfDoc;
|
|
8
|
+
exports.atTheEndOfDoc = atTheEndOfDoc;
|
|
9
|
+
exports.createNewParagraphBelow = exports.createNewParagraphAbove = void 0;
|
|
10
|
+
exports.createParagraphNear = createParagraphNear;
|
|
11
|
+
exports.insertContentDeleteRange = exports.filterCommand = exports.filter = exports.deleteEmptyParagraphAndMoveBlockUp = void 0;
|
|
12
|
+
exports.insertNewLine = insertNewLine;
|
|
13
|
+
exports.walkPrevNode = exports.walkNextNode = exports.isEmptySelectionAtStart = exports.isEmptySelectionAtEnd = exports.insertNewLineWithAnalytics = void 0;
|
|
8
14
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
|
+
var _model = require("@atlaskit/editor-prosemirror/model");
|
|
9
16
|
var _state = require("@atlaskit/editor-prosemirror/state");
|
|
17
|
+
var _analytics = require("../analytics");
|
|
18
|
+
var _editorAnalytics = require("../editor-analytics");
|
|
10
19
|
var _selection = require("../selection");
|
|
11
20
|
var _editorCoreUtils = require("./editor-core-utils");
|
|
21
|
+
var _nodes = require("./nodes");
|
|
12
22
|
var filter = function filter(predicates, cmd) {
|
|
13
23
|
return function (state, dispatch, view) {
|
|
14
24
|
if (!Array.isArray(predicates)) {
|
|
@@ -29,7 +39,7 @@ var filter = function filter(predicates, cmd) {
|
|
|
29
39
|
*
|
|
30
40
|
* @param $startPos Position to start walking from.
|
|
31
41
|
*/
|
|
32
|
-
exports.filterCommand = filter;
|
|
42
|
+
exports.filterCommand = exports.filter = filter;
|
|
33
43
|
var walkNextNode = function walkNextNode($startPos) {
|
|
34
44
|
var $pos = $startPos;
|
|
35
45
|
|
|
@@ -63,6 +73,162 @@ var walkPrevNode = function walkPrevNode($startPos) {
|
|
|
63
73
|
foundNode: $pos.pos > 0
|
|
64
74
|
};
|
|
65
75
|
};
|
|
76
|
+
exports.walkPrevNode = walkPrevNode;
|
|
77
|
+
function insertNewLine() {
|
|
78
|
+
return function (state, dispatch) {
|
|
79
|
+
var $from = state.selection.$from;
|
|
80
|
+
var parent = $from.parent;
|
|
81
|
+
var hardBreak = state.schema.nodes.hardBreak;
|
|
82
|
+
if (hardBreak) {
|
|
83
|
+
var hardBreakNode = hardBreak.createChecked();
|
|
84
|
+
if (parent && parent.type.validContent(_model.Fragment.from(hardBreakNode))) {
|
|
85
|
+
if (dispatch) {
|
|
86
|
+
dispatch(state.tr.replaceSelectionWith(hardBreakNode, false));
|
|
87
|
+
}
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
if (state.selection instanceof _state.TextSelection) {
|
|
92
|
+
if (dispatch) {
|
|
93
|
+
dispatch(state.tr.insertText('\n'));
|
|
94
|
+
}
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
97
|
+
return false;
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
var insertNewLineWithAnalytics = function insertNewLineWithAnalytics(editorAnalyticsAPI) {
|
|
101
|
+
return (0, _editorAnalytics.withAnalytics)(editorAnalyticsAPI, {
|
|
102
|
+
action: _analytics.ACTION.INSERTED,
|
|
103
|
+
actionSubject: _analytics.ACTION_SUBJECT.TEXT,
|
|
104
|
+
actionSubjectId: _analytics.ACTION_SUBJECT_ID.LINE_BREAK,
|
|
105
|
+
eventType: _analytics.EVENT_TYPE.TRACK
|
|
106
|
+
})(insertNewLine());
|
|
107
|
+
};
|
|
108
|
+
exports.insertNewLineWithAnalytics = insertNewLineWithAnalytics;
|
|
109
|
+
var createNewParagraphAbove = function createNewParagraphAbove(state, dispatch) {
|
|
110
|
+
var append = false;
|
|
111
|
+
if (!canMoveUp(state) && canCreateParagraphNear(state)) {
|
|
112
|
+
createParagraphNear(append)(state, dispatch);
|
|
113
|
+
return true;
|
|
114
|
+
}
|
|
115
|
+
return false;
|
|
116
|
+
};
|
|
117
|
+
exports.createNewParagraphAbove = createNewParagraphAbove;
|
|
118
|
+
var createNewParagraphBelow = function createNewParagraphBelow(state, dispatch) {
|
|
119
|
+
var append = true;
|
|
120
|
+
if (!canMoveDown(state) && canCreateParagraphNear(state)) {
|
|
121
|
+
createParagraphNear(append)(state, dispatch);
|
|
122
|
+
return true;
|
|
123
|
+
}
|
|
124
|
+
return false;
|
|
125
|
+
};
|
|
126
|
+
exports.createNewParagraphBelow = createNewParagraphBelow;
|
|
127
|
+
function canCreateParagraphNear(state) {
|
|
128
|
+
var $from = state.selection.$from;
|
|
129
|
+
var node = $from.node($from.depth);
|
|
130
|
+
var insideCodeBlock = !!node && node.type === state.schema.nodes.codeBlock;
|
|
131
|
+
var isNodeSelection = state.selection instanceof _state.NodeSelection;
|
|
132
|
+
return $from.depth > 1 || isNodeSelection || insideCodeBlock;
|
|
133
|
+
}
|
|
134
|
+
function createParagraphNear() {
|
|
135
|
+
var append = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
136
|
+
return function (state, dispatch) {
|
|
137
|
+
var paragraph = state.schema.nodes.paragraph;
|
|
138
|
+
if (!paragraph) {
|
|
139
|
+
return false;
|
|
140
|
+
}
|
|
141
|
+
var insertPos;
|
|
142
|
+
if (state.selection instanceof _state.TextSelection) {
|
|
143
|
+
if (topLevelNodeIsEmptyTextBlock(state)) {
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
146
|
+
insertPos = getInsertPosFromTextBlock(state, append);
|
|
147
|
+
} else {
|
|
148
|
+
insertPos = getInsertPosFromNonTextBlock(state, append);
|
|
149
|
+
}
|
|
150
|
+
var tr = state.tr.insert(insertPos, paragraph.createAndFill());
|
|
151
|
+
tr.setSelection(_state.TextSelection.create(tr.doc, insertPos + 1));
|
|
152
|
+
if (dispatch) {
|
|
153
|
+
dispatch(tr);
|
|
154
|
+
}
|
|
155
|
+
return true;
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
function getInsertPosFromTextBlock(state, append) {
|
|
159
|
+
var _state$selection = state.selection,
|
|
160
|
+
$from = _state$selection.$from,
|
|
161
|
+
$to = _state$selection.$to;
|
|
162
|
+
var pos;
|
|
163
|
+
if (!append) {
|
|
164
|
+
pos = $from.start(0);
|
|
165
|
+
} else {
|
|
166
|
+
pos = $to.end(0);
|
|
167
|
+
}
|
|
168
|
+
return pos;
|
|
169
|
+
}
|
|
170
|
+
function getInsertPosFromNonTextBlock(state, append) {
|
|
171
|
+
var _state$selection2 = state.selection,
|
|
172
|
+
$from = _state$selection2.$from,
|
|
173
|
+
$to = _state$selection2.$to;
|
|
174
|
+
var nodeAtSelection = state.selection instanceof _state.NodeSelection && state.doc.nodeAt(state.selection.$anchor.pos);
|
|
175
|
+
var isMediaSelection = nodeAtSelection && nodeAtSelection.type.name === 'mediaGroup';
|
|
176
|
+
var pos;
|
|
177
|
+
if (!append) {
|
|
178
|
+
// The start position is different with text block because it starts from 0
|
|
179
|
+
pos = $from.start($from.depth);
|
|
180
|
+
// The depth is different with text block because it starts from 0
|
|
181
|
+
pos = $from.depth > 0 && !isMediaSelection ? pos - 1 : pos;
|
|
182
|
+
} else {
|
|
183
|
+
pos = $to.end($to.depth);
|
|
184
|
+
pos = $to.depth > 0 && !isMediaSelection ? pos + 1 : pos;
|
|
185
|
+
}
|
|
186
|
+
return pos;
|
|
187
|
+
}
|
|
188
|
+
function topLevelNodeIsEmptyTextBlock(state) {
|
|
189
|
+
var topLevelNode = state.selection.$from.node(1);
|
|
190
|
+
return topLevelNode.isTextblock && topLevelNode.type !== state.schema.nodes.codeBlock && topLevelNode.nodeSize === 2;
|
|
191
|
+
}
|
|
192
|
+
function canMoveUp(state) {
|
|
193
|
+
var selection = state.selection;
|
|
194
|
+
/**
|
|
195
|
+
* If there's a media element on the selection it will use a gap cursor to move
|
|
196
|
+
*/
|
|
197
|
+
if (selection instanceof _state.NodeSelection && (0, _nodes.isMediaNode)(selection.node)) {
|
|
198
|
+
return true;
|
|
199
|
+
}
|
|
200
|
+
if (selection instanceof _state.TextSelection) {
|
|
201
|
+
if (!selection.empty) {
|
|
202
|
+
return true;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
return !atTheBeginningOfDoc(state);
|
|
206
|
+
}
|
|
207
|
+
function canMoveDown(state) {
|
|
208
|
+
var selection = state.selection;
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* If there's a media element on the selection it will use a gap cursor to move
|
|
212
|
+
*/
|
|
213
|
+
if (selection instanceof _state.NodeSelection && (0, _nodes.isMediaNode)(selection.node)) {
|
|
214
|
+
return true;
|
|
215
|
+
}
|
|
216
|
+
if (selection instanceof _state.TextSelection) {
|
|
217
|
+
if (!selection.empty) {
|
|
218
|
+
return true;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
return !atTheEndOfDoc(state);
|
|
222
|
+
}
|
|
223
|
+
function atTheEndOfDoc(state) {
|
|
224
|
+
var selection = state.selection,
|
|
225
|
+
doc = state.doc;
|
|
226
|
+
return doc.nodeSize - selection.$to.pos - 2 === selection.$to.depth;
|
|
227
|
+
}
|
|
228
|
+
function atTheBeginningOfDoc(state) {
|
|
229
|
+
var selection = state.selection;
|
|
230
|
+
return selection.$from.pos === selection.$from.depth;
|
|
231
|
+
}
|
|
66
232
|
|
|
67
233
|
/**
|
|
68
234
|
* If the selection is empty, is inside a paragraph node and `canNextNodeMoveUp` is true then delete current paragraph
|
|
@@ -71,15 +237,14 @@ var walkPrevNode = function walkPrevNode($startPos) {
|
|
|
71
237
|
* @param canNextNodeMoveUp check if node directly after the selection is able to be brought up to selection
|
|
72
238
|
* @returns PM Command
|
|
73
239
|
*/
|
|
74
|
-
exports.walkPrevNode = walkPrevNode;
|
|
75
240
|
var deleteEmptyParagraphAndMoveBlockUp = function deleteEmptyParagraphAndMoveBlockUp(canNextNodeMoveUp) {
|
|
76
241
|
return function (state, dispatch, view) {
|
|
77
|
-
var _state$
|
|
78
|
-
_state$
|
|
79
|
-
pos = _state$
|
|
80
|
-
parent = _state$
|
|
81
|
-
$head = _state$
|
|
82
|
-
empty = _state$
|
|
242
|
+
var _state$selection3 = state.selection,
|
|
243
|
+
_state$selection3$$fr = _state$selection3.$from,
|
|
244
|
+
pos = _state$selection3$$fr.pos,
|
|
245
|
+
parent = _state$selection3$$fr.parent,
|
|
246
|
+
$head = _state$selection3.$head,
|
|
247
|
+
empty = _state$selection3.empty,
|
|
83
248
|
tr = state.tr,
|
|
84
249
|
doc = state.doc;
|
|
85
250
|
var _walkNextNode = walkNextNode($head),
|
|
@@ -113,16 +278,16 @@ var insertContentDeleteRange = function insertContentDeleteRange(tr, getSelectio
|
|
|
113
278
|
};
|
|
114
279
|
exports.insertContentDeleteRange = insertContentDeleteRange;
|
|
115
280
|
var isEmptySelectionAtStart = function isEmptySelectionAtStart(state) {
|
|
116
|
-
var _state$
|
|
117
|
-
empty = _state$
|
|
118
|
-
$from = _state$
|
|
281
|
+
var _state$selection4 = state.selection,
|
|
282
|
+
empty = _state$selection4.empty,
|
|
283
|
+
$from = _state$selection4.$from;
|
|
119
284
|
return empty && ($from.parentOffset === 0 || state.selection instanceof _selection.GapCursorSelection);
|
|
120
285
|
};
|
|
121
286
|
exports.isEmptySelectionAtStart = isEmptySelectionAtStart;
|
|
122
287
|
var isEmptySelectionAtEnd = function isEmptySelectionAtEnd(state) {
|
|
123
|
-
var _state$
|
|
124
|
-
empty = _state$
|
|
125
|
-
$from = _state$
|
|
288
|
+
var _state$selection5 = state.selection,
|
|
289
|
+
empty = _state$selection5.empty,
|
|
290
|
+
$from = _state$selection5.$from;
|
|
126
291
|
return empty && ($from.end() === $from.pos || state.selection instanceof _selection.GapCursorSelection);
|
|
127
292
|
};
|
|
128
293
|
exports.isEmptySelectionAtEnd = isEmptySelectionAtEnd;
|