@atlaskit/editor-core 187.32.7 → 187.33.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 +30 -0
- package/dist/cjs/plugins/help-dialog/index.js +10 -15
- package/dist/cjs/plugins/help-dialog/ui/index.js +74 -104
- package/dist/cjs/plugins/media/ui/MediaPicker/ClipboardWrapper.js +11 -2
- package/dist/cjs/plugins/media/ui/MediaPicker/index.js +3 -1
- package/dist/cjs/plugins/quick-insert/index.js +20 -26
- package/dist/cjs/plugins/quick-insert/search.js +26 -18
- package/dist/cjs/plugins/quick-insert/ui/ModalElementBrowser/index.js +5 -9
- package/dist/cjs/ui/ContextPanel/index.js +23 -4
- package/dist/cjs/ui/ElementBrowser/InsertMenu.js +9 -11
- package/dist/cjs/version-wrapper.js +1 -1
- package/dist/es2019/plugins/help-dialog/index.js +10 -13
- package/dist/es2019/plugins/help-dialog/ui/index.js +65 -70
- package/dist/es2019/plugins/media/ui/MediaPicker/ClipboardWrapper.js +20 -9
- package/dist/es2019/plugins/media/ui/MediaPicker/index.js +3 -1
- package/dist/es2019/plugins/quick-insert/index.js +19 -24
- package/dist/es2019/plugins/quick-insert/search.js +11 -11
- package/dist/es2019/plugins/quick-insert/ui/ModalElementBrowser/index.js +4 -8
- package/dist/es2019/ui/ContextPanel/index.js +23 -6
- package/dist/es2019/ui/ElementBrowser/InsertMenu.js +9 -11
- package/dist/es2019/version-wrapper.js +1 -1
- package/dist/esm/plugins/help-dialog/index.js +10 -15
- package/dist/esm/plugins/help-dialog/ui/index.js +72 -104
- package/dist/esm/plugins/media/ui/MediaPicker/ClipboardWrapper.js +11 -2
- package/dist/esm/plugins/media/ui/MediaPicker/index.js +3 -1
- package/dist/esm/plugins/quick-insert/index.js +20 -26
- package/dist/esm/plugins/quick-insert/search.js +23 -16
- package/dist/esm/plugins/quick-insert/ui/ModalElementBrowser/index.js +4 -8
- package/dist/esm/ui/ContextPanel/index.js +24 -6
- package/dist/esm/ui/ElementBrowser/InsertMenu.js +9 -11
- package/dist/esm/version-wrapper.js +1 -1
- package/dist/types/labs/next/presets/default.d.ts +2 -2
- package/dist/types/plugins/help-dialog/index.d.ts +5 -0
- package/dist/types/plugins/help-dialog/ui/HelpDialogLoader.d.ts +1 -1
- package/dist/types/plugins/help-dialog/ui/index.d.ts +7 -7
- package/dist/types/plugins/media/ui/MediaPicker/ClipboardWrapper.d.ts +4 -3
- package/dist/types/plugins/quick-insert/index.d.ts +2 -3
- package/dist/types/plugins/quick-insert/search.d.ts +5 -3
- package/dist/types/ui/ContextPanel/index.d.ts +1 -1
- package/dist/types-ts4.5/labs/next/presets/default.d.ts +2 -2
- package/dist/types-ts4.5/plugins/help-dialog/index.d.ts +5 -0
- package/dist/types-ts4.5/plugins/help-dialog/ui/HelpDialogLoader.d.ts +1 -1
- package/dist/types-ts4.5/plugins/help-dialog/ui/index.d.ts +7 -7
- package/dist/types-ts4.5/plugins/media/ui/MediaPicker/ClipboardWrapper.d.ts +4 -3
- package/dist/types-ts4.5/plugins/quick-insert/index.d.ts +2 -3
- package/dist/types-ts4.5/plugins/quick-insert/search.d.ts +5 -3
- package/dist/types-ts4.5/ui/ContextPanel/index.d.ts +1 -1
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
# @atlaskit/editor-core
|
|
2
2
|
|
|
3
|
+
## 187.33.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`7613b6b6a51`](https://bitbucket.org/atlassian/atlassian-frontend/commits/7613b6b6a51) - [ED-19428] Decouple quick-insert plugin from editor-core
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- [`b06cd74349c`](https://bitbucket.org/atlassian/atlassian-frontend/commits/b06cd74349c) - # Media Picker
|
|
12
|
+
|
|
13
|
+
Make Clipboard secured by adding `container` and `onPaste()` to `config` `prop`. These two params address customer dissatisfaction when attachments are pasted duplicated, or to unwanted Jira issues (https://product-fabric.atlassian.net/browse/MEX-2454).
|
|
14
|
+
|
|
15
|
+
Note for migration:
|
|
16
|
+
The added `container` parameter sets a boundary for copy-paste zone. This is to filter out noise from existing practice that is problematic. **To ensure the effectiveness of this fix, please avoid using global `document` as `container` in best effort; please avoid overlapped boundary in best effort**.
|
|
17
|
+
|
|
18
|
+
When `container` is not added, the behaviour falls back to legacy mechanism.
|
|
19
|
+
|
|
20
|
+
# Media Common
|
|
21
|
+
|
|
22
|
+
Add feature toggle (`securedClipboard` in `MediaFeatureFlags`) to control the rollout of Secured Clipboard (https://product-fabric.atlassian.net/browse/MEX-2454).
|
|
23
|
+
|
|
24
|
+
# Editor Core
|
|
25
|
+
|
|
26
|
+
Add support of the Secured Clipboard (https://product-fabric.atlassian.net/browse/MEX-2454).
|
|
27
|
+
|
|
28
|
+
Use feature flag `securedClipboard` to protect such change.
|
|
29
|
+
|
|
30
|
+
- [`93b4b1394bf`](https://bitbucket.org/atlassian/atlassian-frontend/commits/93b4b1394bf) - ED-19673: Updated shouldPanelBePositionedOverEditor to adapt to custom table width project
|
|
31
|
+
- Updated dependencies
|
|
32
|
+
|
|
3
33
|
## 187.32.7
|
|
4
34
|
|
|
5
35
|
### Patch Changes
|
|
@@ -11,7 +11,6 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
11
11
|
var _keymap = require("@atlaskit/editor-prosemirror/keymap");
|
|
12
12
|
var _safePlugin = require("@atlaskit/editor-common/safe-plugin");
|
|
13
13
|
var _keymaps = require("@atlaskit/editor-common/keymaps");
|
|
14
|
-
var _WithPluginState = _interopRequireDefault(require("../../ui/WithPluginState"));
|
|
15
14
|
var _HelpDialogLoader = require("./ui/HelpDialogLoader");
|
|
16
15
|
var _analytics = require("@atlaskit/editor-common/analytics");
|
|
17
16
|
var _questionCircle = _interopRequireDefault(require("@atlaskit/icon/glyph/question-circle"));
|
|
@@ -101,21 +100,17 @@ var helpDialog = function helpDialog(_ref) {
|
|
|
101
100
|
},
|
|
102
101
|
contentComponent: function contentComponent(_ref4) {
|
|
103
102
|
var editorView = _ref4.editorView;
|
|
104
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
render: function render(_ref5) {
|
|
109
|
-
var _ref5$helpDialog = _ref5.helpDialog,
|
|
110
|
-
helpDialog = _ref5$helpDialog === void 0 ? {} : _ref5$helpDialog;
|
|
111
|
-
return /*#__PURE__*/_react.default.createElement(_HelpDialogLoader.HelpDialogLoader, {
|
|
112
|
-
editorView: editorView,
|
|
113
|
-
isVisible: helpDialog.isVisible,
|
|
114
|
-
quickInsertEnabled: !!(api !== null && api !== void 0 && api.quickInsert),
|
|
115
|
-
imageEnabled: helpDialog.imageEnabled
|
|
116
|
-
});
|
|
117
|
-
}
|
|
103
|
+
return /*#__PURE__*/_react.default.createElement(_HelpDialogLoader.HelpDialogLoader, {
|
|
104
|
+
pluginInjectionApi: api,
|
|
105
|
+
editorView: editorView,
|
|
106
|
+
quickInsertEnabled: !!(api !== null && api !== void 0 && api.quickInsert)
|
|
118
107
|
});
|
|
108
|
+
},
|
|
109
|
+
getSharedState: function getSharedState(editorState) {
|
|
110
|
+
if (!editorState) {
|
|
111
|
+
return null;
|
|
112
|
+
}
|
|
113
|
+
return _pluginKey.pluginKey.getState(editorState) || null;
|
|
119
114
|
}
|
|
120
115
|
};
|
|
121
116
|
};
|
|
@@ -6,16 +6,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.getSupportedFormatting = exports.getComponentFromKeymap = exports.formatting = exports.default = void 0;
|
|
9
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
11
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
12
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
13
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
14
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
15
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
16
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
17
10
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
18
|
-
var _react =
|
|
11
|
+
var _react = require("react");
|
|
19
12
|
var _react2 = require("@emotion/react");
|
|
20
13
|
var _reactIntlNext = require("react-intl-next");
|
|
21
14
|
var _utils = require("@atlaskit/editor-common/utils");
|
|
@@ -31,10 +24,11 @@ var _messages4 = require("../../undo-redo/messages");
|
|
|
31
24
|
var _messages5 = require("../../../ui/Alignment/messages");
|
|
32
25
|
var _commands = require("../commands");
|
|
33
26
|
var _toolbar = require("../../annotation/toolbar");
|
|
27
|
+
var _hooks = require("@atlaskit/editor-common/hooks");
|
|
34
28
|
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); }
|
|
35
29
|
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; }
|
|
36
|
-
|
|
37
|
-
|
|
30
|
+
/** @jsx jsx */
|
|
31
|
+
|
|
38
32
|
var messages = (0, _reactIntlNext.defineMessages)({
|
|
39
33
|
editorHelp: {
|
|
40
34
|
id: 'fabric.editor.editorHelp',
|
|
@@ -488,99 +482,75 @@ var ModalFooter = function ModalFooter() {
|
|
|
488
482
|
}
|
|
489
483
|
})));
|
|
490
484
|
};
|
|
491
|
-
var HelpDialog =
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
(0,
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
}
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
(0,
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
}, {
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
}).map(function (form) {
|
|
562
|
-
return (0, _react2.jsx)("li", {
|
|
563
|
-
css: _styles.row,
|
|
564
|
-
key: "autoFormatting-".concat(form.name)
|
|
565
|
-
}, (0, _react2.jsx)("span", null, form.name), form.autoFormatting());
|
|
566
|
-
}))), (0, _react2.jsx)("div", {
|
|
567
|
-
css: _styles.line
|
|
568
|
-
}), (0, _react2.jsx)("div", {
|
|
569
|
-
css: _styles.column
|
|
570
|
-
}, (0, _react2.jsx)("h2", {
|
|
571
|
-
css: _styles.title
|
|
572
|
-
}, (0, _react2.jsx)(_reactIntlNext.FormattedMessage, messages.markdown)), (0, _react2.jsx)("ul", null, this.formatting.filter(function (form) {
|
|
573
|
-
return shortcutNamesWithoutKeymap.indexOf(form.type) === -1;
|
|
574
|
-
}).map(function (form) {
|
|
575
|
-
return form.autoFormatting && (0, _react2.jsx)("li", {
|
|
576
|
-
key: "autoFormatting-".concat(form.name),
|
|
577
|
-
css: _styles.row
|
|
578
|
-
}, (0, _react2.jsx)("span", null, form.name), form.autoFormatting());
|
|
579
|
-
}))))), (0, _react2.jsx)(ModalFooter, null)) : null);
|
|
580
|
-
}
|
|
581
|
-
}]);
|
|
582
|
-
return HelpDialog;
|
|
583
|
-
}(_react.default.Component);
|
|
584
|
-
(0, _defineProperty2.default)(HelpDialog, "displayName", 'HelpDialog');
|
|
485
|
+
var HelpDialog = function HelpDialog(_ref6) {
|
|
486
|
+
var pluginInjectionApi = _ref6.pluginInjectionApi,
|
|
487
|
+
editorView = _ref6.editorView,
|
|
488
|
+
quickInsertEnabled = _ref6.quickInsertEnabled,
|
|
489
|
+
intl = _ref6.intl;
|
|
490
|
+
var _useSharedPluginState = (0, _hooks.useSharedPluginState)(pluginInjectionApi, ['helpDialog']),
|
|
491
|
+
helpDialogState = _useSharedPluginState.helpDialogState;
|
|
492
|
+
var closeDialog = (0, _react.useCallback)(function () {
|
|
493
|
+
var tr = editorView.state.tr,
|
|
494
|
+
dispatch = editorView.dispatch;
|
|
495
|
+
(0, _commands.closeHelpCommand)(tr, dispatch);
|
|
496
|
+
}, [editorView]);
|
|
497
|
+
var handleEsc = (0, _react.useCallback)(function (e) {
|
|
498
|
+
if (e.key === 'Escape' && helpDialogState !== null && helpDialogState !== void 0 && helpDialogState.isVisible) {
|
|
499
|
+
closeDialog();
|
|
500
|
+
}
|
|
501
|
+
}, [closeDialog, helpDialogState === null || helpDialogState === void 0 ? void 0 : helpDialogState.isVisible]);
|
|
502
|
+
(0, _react.useEffect)(function () {
|
|
503
|
+
document.addEventListener('keydown', handleEsc);
|
|
504
|
+
return function () {
|
|
505
|
+
document.removeEventListener('keydown', handleEsc);
|
|
506
|
+
};
|
|
507
|
+
}, [handleEsc]);
|
|
508
|
+
var formatting = getSupportedFormatting(editorView.state.schema, intl, helpDialogState === null || helpDialogState === void 0 ? void 0 : helpDialogState.imageEnabled, quickInsertEnabled);
|
|
509
|
+
return (0, _react2.jsx)(_modalDialog.ModalTransition, null, helpDialogState !== null && helpDialogState !== void 0 && helpDialogState.isVisible ? (0, _react2.jsx)(_modalDialog.default, {
|
|
510
|
+
width: "large",
|
|
511
|
+
onClose: closeDialog,
|
|
512
|
+
testId: "help-modal-dialog"
|
|
513
|
+
}, (0, _react2.jsx)(ModalHeader, null), (0, _react2.jsx)("div", {
|
|
514
|
+
css: _styles.contentWrapper
|
|
515
|
+
}, (0, _react2.jsx)("div", {
|
|
516
|
+
css: _styles.line
|
|
517
|
+
}), (0, _react2.jsx)("div", {
|
|
518
|
+
css: _styles.content
|
|
519
|
+
}, (0, _react2.jsx)("div", {
|
|
520
|
+
css: _styles.column
|
|
521
|
+
}, (0, _react2.jsx)("h2", {
|
|
522
|
+
css: _styles.title
|
|
523
|
+
}, (0, _react2.jsx)(_reactIntlNext.FormattedMessage, messages.keyboardShortcuts)), (0, _react2.jsx)("ul", null, formatting.filter(function (form) {
|
|
524
|
+
var keymap = form.keymap && form.keymap();
|
|
525
|
+
return keymap && keymap[_utils.browser.mac ? 'mac' : 'windows'];
|
|
526
|
+
}).map(function (form) {
|
|
527
|
+
return (0, _react2.jsx)("li", {
|
|
528
|
+
css: _styles.row,
|
|
529
|
+
key: "textFormatting-".concat(form.name)
|
|
530
|
+
}, (0, _react2.jsx)("span", null, form.name), getComponentFromKeymap(form.keymap()));
|
|
531
|
+
}), formatting.filter(function (form) {
|
|
532
|
+
return shortcutNamesWithoutKeymap.indexOf(form.type) !== -1;
|
|
533
|
+
}).filter(function (form) {
|
|
534
|
+
return form.autoFormatting;
|
|
535
|
+
}).map(function (form) {
|
|
536
|
+
return (0, _react2.jsx)("li", {
|
|
537
|
+
css: _styles.row,
|
|
538
|
+
key: "autoFormatting-".concat(form.name)
|
|
539
|
+
}, (0, _react2.jsx)("span", null, form.name), form.autoFormatting());
|
|
540
|
+
}))), (0, _react2.jsx)("div", {
|
|
541
|
+
css: _styles.line
|
|
542
|
+
}), (0, _react2.jsx)("div", {
|
|
543
|
+
css: _styles.column
|
|
544
|
+
}, (0, _react2.jsx)("h2", {
|
|
545
|
+
css: _styles.title
|
|
546
|
+
}, (0, _react2.jsx)(_reactIntlNext.FormattedMessage, messages.markdown)), (0, _react2.jsx)("ul", null, formatting.filter(function (form) {
|
|
547
|
+
return shortcutNamesWithoutKeymap.indexOf(form.type) === -1;
|
|
548
|
+
}).map(function (form) {
|
|
549
|
+
return form.autoFormatting && (0, _react2.jsx)("li", {
|
|
550
|
+
key: "autoFormatting-".concat(form.name),
|
|
551
|
+
css: _styles.row
|
|
552
|
+
}, (0, _react2.jsx)("span", null, form.name), form.autoFormatting());
|
|
553
|
+
}))))), (0, _react2.jsx)(ModalFooter, null)) : null);
|
|
554
|
+
};
|
|
585
555
|
var _default = (0, _reactIntlNext.injectIntl)(HelpDialog);
|
|
586
556
|
exports.default = _default;
|
|
@@ -10,7 +10,8 @@ var _PickerFacadeProvider = _interopRequireDefault(require("./PickerFacadeProvid
|
|
|
10
10
|
var _mediaPicker = require("@atlaskit/media-picker");
|
|
11
11
|
var ClipboardWrapper = function ClipboardWrapper(_ref) {
|
|
12
12
|
var mediaState = _ref.mediaState,
|
|
13
|
-
featureFlags = _ref.featureFlags
|
|
13
|
+
featureFlags = _ref.featureFlags,
|
|
14
|
+
container = _ref.container;
|
|
14
15
|
return /*#__PURE__*/_react.default.createElement(_PickerFacadeProvider.default, {
|
|
15
16
|
mediaState: mediaState,
|
|
16
17
|
analyticsName: "clipboard"
|
|
@@ -18,9 +19,17 @@ var ClipboardWrapper = function ClipboardWrapper(_ref) {
|
|
|
18
19
|
var mediaClientConfig = _ref2.mediaClientConfig,
|
|
19
20
|
config = _ref2.config,
|
|
20
21
|
pickerFacadeInstance = _ref2.pickerFacadeInstance;
|
|
22
|
+
var clipboardConfig = Object.assign({}, config);
|
|
23
|
+
if ((featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.securedClipboard) === true) {
|
|
24
|
+
clipboardConfig.container = container;
|
|
25
|
+
clipboardConfig.onPaste = function (event) {
|
|
26
|
+
event.stopPropagation();
|
|
27
|
+
return false;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
21
30
|
return /*#__PURE__*/_react.default.createElement(_mediaPicker.Clipboard, {
|
|
22
31
|
mediaClientConfig: mediaClientConfig,
|
|
23
|
-
config:
|
|
32
|
+
config: clipboardConfig,
|
|
24
33
|
onError: pickerFacadeInstance.handleUploadError,
|
|
25
34
|
onPreviewUpdate: pickerFacadeInstance.handleUploadPreviewUpdate,
|
|
26
35
|
onEnd: pickerFacadeInstance.handleReady,
|
|
@@ -29,9 +29,11 @@ var MediaPicker = function MediaPicker(_ref) {
|
|
|
29
29
|
var _useSharedPluginState = (0, _hooks.useSharedPluginState)(api, ['focus']),
|
|
30
30
|
focusState = _useSharedPluginState.focusState;
|
|
31
31
|
var featureFlags = mediaState.mediaOptions && mediaState.mediaOptions.featureFlags;
|
|
32
|
+
var container = editorDomElement;
|
|
32
33
|
var clipboard = focusState !== null && focusState !== void 0 && focusState.hasFocus ? /*#__PURE__*/_react.default.createElement(_ClipboardWrapper.ClipboardWrapper, {
|
|
33
34
|
mediaState: mediaState,
|
|
34
|
-
featureFlags: featureFlags
|
|
35
|
+
featureFlags: featureFlags,
|
|
36
|
+
container: container
|
|
35
37
|
}) : null;
|
|
36
38
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, clipboard, /*#__PURE__*/_react.default.createElement(_DropzoneWrapper.DropzoneWrapper, {
|
|
37
39
|
mediaState: mediaState,
|
|
@@ -12,14 +12,15 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
12
12
|
var _safePlugin = require("@atlaskit/editor-common/safe-plugin");
|
|
13
13
|
var _typeAhead = require("@atlaskit/editor-common/type-ahead");
|
|
14
14
|
var _pluginKey = require("./plugin-key");
|
|
15
|
-
var _search = require("./search");
|
|
16
15
|
var _ModalElementBrowser = _interopRequireDefault(require("./ui/ModalElementBrowser"));
|
|
17
16
|
var _commands = require("./commands");
|
|
18
17
|
var _quickInsert = require("@atlaskit/editor-common/quick-insert");
|
|
18
|
+
var _search = require("./search");
|
|
19
19
|
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; }
|
|
20
20
|
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; }
|
|
21
21
|
var quickInsertPlugin = function quickInsertPlugin(_ref) {
|
|
22
|
-
var options = _ref.config
|
|
22
|
+
var options = _ref.config,
|
|
23
|
+
api = _ref.api;
|
|
23
24
|
return {
|
|
24
25
|
name: 'quickInsert',
|
|
25
26
|
pmPlugins: function pmPlugins(defaultItems) {
|
|
@@ -43,14 +44,10 @@ var quickInsertPlugin = function quickInsertPlugin(_ref) {
|
|
|
43
44
|
var query = _ref3.query,
|
|
44
45
|
editorState = _ref3.editorState;
|
|
45
46
|
var quickInsertState = _pluginKey.pluginKey.getState(editorState);
|
|
46
|
-
return Promise.resolve((0,
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
},
|
|
51
|
-
lazyDefaultItems: quickInsertState === null || quickInsertState === void 0 ? void 0 : quickInsertState.lazyDefaultItems,
|
|
52
|
-
providedItems: quickInsertState === null || quickInsertState === void 0 ? void 0 : quickInsertState.providedItems
|
|
53
|
-
}));
|
|
47
|
+
return Promise.resolve((0, _search.getQuickInsertSuggestions)({
|
|
48
|
+
query: query,
|
|
49
|
+
disableDefaultItems: options === null || options === void 0 ? void 0 : options.disableDefaultItems
|
|
50
|
+
}, quickInsertState === null || quickInsertState === void 0 ? void 0 : quickInsertState.lazyDefaultItems, quickInsertState === null || quickInsertState === void 0 ? void 0 : quickInsertState.providedItems));
|
|
54
51
|
},
|
|
55
52
|
selectItem: function selectItem(state, item, insert) {
|
|
56
53
|
return item.action(insert, state);
|
|
@@ -68,7 +65,6 @@ var quickInsertPlugin = function quickInsertPlugin(_ref) {
|
|
|
68
65
|
return null;
|
|
69
66
|
},
|
|
70
67
|
getSharedState: function getSharedState(editorState) {
|
|
71
|
-
var _quickInsertState$sug;
|
|
72
68
|
if (!editorState) {
|
|
73
69
|
return null;
|
|
74
70
|
}
|
|
@@ -77,16 +73,22 @@ var quickInsertPlugin = function quickInsertPlugin(_ref) {
|
|
|
77
73
|
return null;
|
|
78
74
|
}
|
|
79
75
|
return {
|
|
80
|
-
suggestions: (_quickInsertState$sug = quickInsertState.suggestions) !== null && _quickInsertState$sug !== void 0 ? _quickInsertState$sug : [],
|
|
81
76
|
lazyDefaultItems: quickInsertState.lazyDefaultItems,
|
|
82
|
-
emptyStateHandler: quickInsertState.emptyStateHandler
|
|
77
|
+
emptyStateHandler: quickInsertState.emptyStateHandler,
|
|
78
|
+
providedItems: quickInsertState.providedItems
|
|
83
79
|
};
|
|
84
80
|
},
|
|
85
81
|
actions: {
|
|
86
|
-
insertItem: _commands.insertItem
|
|
82
|
+
insertItem: _commands.insertItem,
|
|
83
|
+
getSuggestions: function getSuggestions(searchOptions) {
|
|
84
|
+
var _api$quickInsert$shar;
|
|
85
|
+
var _ref5 = (_api$quickInsert$shar = api === null || api === void 0 ? void 0 : api.quickInsert.sharedState.currentState()) !== null && _api$quickInsert$shar !== void 0 ? _api$quickInsert$shar : {},
|
|
86
|
+
lazyDefaultItems = _ref5.lazyDefaultItems,
|
|
87
|
+
providedItems = _ref5.providedItems;
|
|
88
|
+
return (0, _search.getQuickInsertSuggestions)(searchOptions, lazyDefaultItems, providedItems);
|
|
89
|
+
}
|
|
87
90
|
},
|
|
88
91
|
commands: {
|
|
89
|
-
search: _search.search,
|
|
90
92
|
openElementBrowserModal: _commands.openElementBrowserModal
|
|
91
93
|
}
|
|
92
94
|
};
|
|
@@ -114,20 +116,12 @@ function quickInsertPluginFactory(defaultItems, providerFactory, getIntl, dispat
|
|
|
114
116
|
// getting confused when two editors exist within the same page.
|
|
115
117
|
lazyDefaultItems: function lazyDefaultItems() {
|
|
116
118
|
return (0, _quickInsert.memoProcessQuickInsertItems)(defaultItems || [], getIntl());
|
|
117
|
-
}
|
|
118
|
-
suggestions: []
|
|
119
|
+
}
|
|
119
120
|
};
|
|
120
121
|
},
|
|
121
122
|
apply: function apply(tr, pluginState) {
|
|
122
123
|
var meta = tr.getMeta(_pluginKey.pluginKey);
|
|
123
124
|
if (meta) {
|
|
124
|
-
if ('searchOptions' in meta) {
|
|
125
|
-
meta.suggestions = (0, _quickInsert.getQuickInsertSuggestions)({
|
|
126
|
-
searchOptions: meta.searchOptions,
|
|
127
|
-
lazyDefaultItems: pluginState.lazyDefaultItems,
|
|
128
|
-
providedItems: pluginState.providedItems
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
125
|
var keys = Object.keys(meta);
|
|
132
126
|
var changed = keys.some(function (key) {
|
|
133
127
|
return pluginState[key] !== meta[key];
|
|
@@ -143,7 +137,7 @@ function quickInsertPluginFactory(defaultItems, providerFactory, getIntl, dispat
|
|
|
143
137
|
},
|
|
144
138
|
view: function view(editorView) {
|
|
145
139
|
var providerHandler = /*#__PURE__*/function () {
|
|
146
|
-
var
|
|
140
|
+
var _ref6 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_name, providerPromise) {
|
|
147
141
|
var provider, providedItems;
|
|
148
142
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
149
143
|
while (1) switch (_context.prev = _context.next) {
|
|
@@ -179,7 +173,7 @@ function quickInsertPluginFactory(defaultItems, providerFactory, getIntl, dispat
|
|
|
179
173
|
}, _callee, null, [[1, 11]]);
|
|
180
174
|
}));
|
|
181
175
|
return function providerHandler(_x, _x2) {
|
|
182
|
-
return
|
|
176
|
+
return _ref6.apply(this, arguments);
|
|
183
177
|
};
|
|
184
178
|
}();
|
|
185
179
|
providerFactory.subscribe('quickInsertProvider', providerHandler);
|
|
@@ -1,25 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
|
-
exports.
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return function (_ref2) {
|
|
14
|
-
var tr = _ref2.tr;
|
|
15
|
-
return tr.setMeta(_pluginKey.pluginKey, {
|
|
16
|
-
searchOptions: {
|
|
17
|
-
query: query,
|
|
18
|
-
category: category,
|
|
19
|
-
disableDefaultItems: disableDefaultItems,
|
|
20
|
-
featuredItems: featuredItems
|
|
21
|
-
}
|
|
22
|
-
});
|
|
7
|
+
exports.getQuickInsertSuggestions = void 0;
|
|
8
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
|
+
var _utils = require("@atlaskit/editor-common/utils");
|
|
10
|
+
var _quickInsert = require("@atlaskit/editor-common/quick-insert");
|
|
11
|
+
var getQuickInsertSuggestions = function getQuickInsertSuggestions(searchOptions) {
|
|
12
|
+
var lazyDefaultItems = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {
|
|
13
|
+
return [];
|
|
23
14
|
};
|
|
15
|
+
var providedItems = arguments.length > 2 ? arguments[2] : undefined;
|
|
16
|
+
var query = searchOptions.query,
|
|
17
|
+
category = searchOptions.category,
|
|
18
|
+
disableDefaultItems = searchOptions.disableDefaultItems,
|
|
19
|
+
featuredItems = searchOptions.featuredItems;
|
|
20
|
+
var defaultItems = disableDefaultItems ? [] : lazyDefaultItems();
|
|
21
|
+
var items = providedItems ? (0, _utils.dedupe)([].concat((0, _toConsumableArray2.default)(defaultItems), (0, _toConsumableArray2.default)(providedItems)), function (item) {
|
|
22
|
+
return item.title;
|
|
23
|
+
}) : defaultItems;
|
|
24
|
+
if (featuredItems) {
|
|
25
|
+
return items.filter(function (item) {
|
|
26
|
+
return item.featured;
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
return (0, _quickInsert.find)(query || '', category === 'all' || !category ? items : items.filter(function (item) {
|
|
30
|
+
return item.categories && item.categories.includes(category);
|
|
31
|
+
}));
|
|
24
32
|
};
|
|
25
|
-
exports.
|
|
33
|
+
exports.getQuickInsertSuggestions = getQuickInsertSuggestions;
|
|
@@ -11,7 +11,7 @@ var _WithPluginState = _interopRequireDefault(require("../../../../ui/WithPlugin
|
|
|
11
11
|
var _pluginKey = require("../../plugin-key");
|
|
12
12
|
var _ModalElementBrowser = _interopRequireDefault(require("../../../../ui/ElementBrowser/ModalElementBrowser"));
|
|
13
13
|
var _commands = require("../../commands");
|
|
14
|
-
var
|
|
14
|
+
var _search = require("../../search");
|
|
15
15
|
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); }
|
|
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 Modal = function Modal(_ref) {
|
|
@@ -19,14 +19,10 @@ var Modal = function Modal(_ref) {
|
|
|
19
19
|
editorView = _ref.editorView,
|
|
20
20
|
helpUrl = _ref.helpUrl;
|
|
21
21
|
var getItems = (0, _react.useCallback)(function (query, category) {
|
|
22
|
-
return (0,
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
},
|
|
27
|
-
lazyDefaultItems: quickInsertState === null || quickInsertState === void 0 ? void 0 : quickInsertState.lazyDefaultItems,
|
|
28
|
-
providedItems: quickInsertState === null || quickInsertState === void 0 ? void 0 : quickInsertState.providedItems
|
|
29
|
-
});
|
|
22
|
+
return (0, _search.getQuickInsertSuggestions)({
|
|
23
|
+
query: query,
|
|
24
|
+
category: category
|
|
25
|
+
}, quickInsertState === null || quickInsertState === void 0 ? void 0 : quickInsertState.lazyDefaultItems, quickInsertState === null || quickInsertState === void 0 ? void 0 : quickInsertState.providedItems);
|
|
30
26
|
}, [quickInsertState === null || quickInsertState === void 0 ? void 0 : quickInsertState.lazyDefaultItems, quickInsertState === null || quickInsertState === void 0 ? void 0 : quickInsertState.providedItems]);
|
|
31
27
|
var focusInEditor = (0, _react.useCallback)(function () {
|
|
32
28
|
if (!editorView.hasFocus()) {
|
|
@@ -26,7 +26,9 @@ var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
|
|
|
26
26
|
var _ui = require("@atlaskit/editor-common/ui");
|
|
27
27
|
var _WithPluginState = _interopRequireDefault(require("../WithPluginState"));
|
|
28
28
|
var _WithEditorActions = _interopRequireDefault(require("../WithEditorActions"));
|
|
29
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
29
30
|
var _document = require("../../utils/document");
|
|
31
|
+
var _utils = require("@atlaskit/editor-prosemirror/utils");
|
|
30
32
|
var _excluded = ["actions"];
|
|
31
33
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
|
32
34
|
/** @jsx jsx */
|
|
@@ -42,7 +44,12 @@ var WIDE_EDITOR_WIDTH = _editorSharedStyles.akEditorWideLayoutWidth + _editorSha
|
|
|
42
44
|
var FULLWIDTH_MODE = 'full-width';
|
|
43
45
|
var WIDE_MODE = 'wide';
|
|
44
46
|
var absolutePanelStyles = (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n position: absolute;\n right: 0;\n height: calc(100% - ", ");\n"])), _editorSharedStyles.ATLASSIAN_NAVIGATION_HEIGHT);
|
|
45
|
-
var
|
|
47
|
+
var checkTableExistsInDoc = function checkTableExistsInDoc(editorView) {
|
|
48
|
+
var tableNodeSchema = editorView.state.schema.nodes.table;
|
|
49
|
+
var findResult = (0, _utils.findChildrenByType)(editorView.state.doc, tableNodeSchema);
|
|
50
|
+
return findResult.length > 0;
|
|
51
|
+
};
|
|
52
|
+
var shouldPanelBePositionedOverEditor = function shouldPanelBePositionedOverEditor(editorWidth, panelWidth, editorView) {
|
|
46
53
|
var lineLength = editorWidth.lineLength,
|
|
47
54
|
_editorWidth$containe = editorWidth.containerWidth,
|
|
48
55
|
containerWidth = _editorWidth$containe === void 0 ? 0 : _editorWidth$containe,
|
|
@@ -50,7 +57,17 @@ var shouldPanelBePositionedOverEditor = function shouldPanelBePositionedOverEdit
|
|
|
50
57
|
var editorNotFullWidth = !(lineLength && lineLength > _editorSharedStyles.akEditorDefaultLayoutWidth);
|
|
51
58
|
var hasSpaceForPanel = !contentBreakoutModes.length && containerWidth >= panelWidth * 2 + EDITOR_WIDTH;
|
|
52
59
|
var hasSpaceForWideBreakoutsAndPanel = !contentBreakoutModes.includes(FULLWIDTH_MODE) && contentBreakoutModes.includes(WIDE_MODE) && containerWidth >= panelWidth * 2 + WIDE_EDITOR_WIDTH;
|
|
53
|
-
|
|
60
|
+
if (!(0, _platformFeatureFlags.getBooleanFF)('platform.editor.custom-table-width') || !editorView) {
|
|
61
|
+
return editorNotFullWidth && (hasSpaceForPanel || hasSpaceForWideBreakoutsAndPanel);
|
|
62
|
+
} else {
|
|
63
|
+
// when custom table width feature flag is on,
|
|
64
|
+
// there are scenarios when a table has attr layout default, but width is in full-width or very wide
|
|
65
|
+
// but in this case we still want the shouldPanelBePositionedOverEditor return false
|
|
66
|
+
// previous logic is returning false when table layout default
|
|
67
|
+
// but when custom table width feature flag is one, we want to return false whenever there is a table in the doc
|
|
68
|
+
var isTableInDoc = checkTableExistsInDoc(editorView);
|
|
69
|
+
return editorNotFullWidth && (hasSpaceForPanel || hasSpaceForWideBreakoutsAndPanel) && !isTableInDoc;
|
|
70
|
+
}
|
|
54
71
|
};
|
|
55
72
|
exports.shouldPanelBePositionedOverEditor = shouldPanelBePositionedOverEditor;
|
|
56
73
|
var panelHidden = (0, _react2.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n width: 0;\n"])));
|
|
@@ -129,7 +146,9 @@ var SwappableContentArea = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
129
146
|
key: "render",
|
|
130
147
|
value: function render() {
|
|
131
148
|
var _this2 = this;
|
|
132
|
-
var
|
|
149
|
+
var _this$props = this.props,
|
|
150
|
+
editorWidth = _this$props.editorWidth,
|
|
151
|
+
editorView = _this$props.editorView;
|
|
133
152
|
var width = _editorSharedStyles.akEditorContextPanelWidth;
|
|
134
153
|
var userVisible = !!this.props.visible;
|
|
135
154
|
var visible = userVisible || !!this.state.currentPluginContent;
|
|
@@ -138,7 +157,7 @@ var SwappableContentArea = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
138
157
|
broadcastPosition = _ref.broadcastPosition,
|
|
139
158
|
positionedOverEditor = _ref.positionedOverEditor;
|
|
140
159
|
var contextPanelWidth = visible ? width : 0;
|
|
141
|
-
var newPosition = editorWidth ? shouldPanelBePositionedOverEditor(editorWidth, width) : false;
|
|
160
|
+
var newPosition = editorWidth ? shouldPanelBePositionedOverEditor(editorWidth, width, editorView) : false;
|
|
142
161
|
broadcastWidth(contextPanelWidth);
|
|
143
162
|
(newPosition && visible) !== positionedOverEditor && broadcastPosition(newPosition && visible);
|
|
144
163
|
return (0, _react2.jsx)("div", {
|