@atlaskit/editor-core 187.32.7 → 187.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.
Files changed (52) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/cjs/plugins/help-dialog/index.js +10 -15
  3. package/dist/cjs/plugins/help-dialog/ui/index.js +74 -104
  4. package/dist/cjs/plugins/media/ui/MediaPicker/ClipboardWrapper.js +11 -2
  5. package/dist/cjs/plugins/media/ui/MediaPicker/index.js +3 -1
  6. package/dist/cjs/plugins/quick-insert/index.js +20 -26
  7. package/dist/cjs/plugins/quick-insert/search.js +26 -18
  8. package/dist/cjs/plugins/quick-insert/ui/ModalElementBrowser/index.js +5 -9
  9. package/dist/cjs/ui/ContextPanel/index.js +23 -4
  10. package/dist/cjs/ui/ElementBrowser/InsertMenu.js +9 -11
  11. package/dist/cjs/version-wrapper.js +1 -1
  12. package/dist/es2019/plugins/help-dialog/index.js +10 -13
  13. package/dist/es2019/plugins/help-dialog/ui/index.js +65 -70
  14. package/dist/es2019/plugins/media/ui/MediaPicker/ClipboardWrapper.js +20 -9
  15. package/dist/es2019/plugins/media/ui/MediaPicker/index.js +3 -1
  16. package/dist/es2019/plugins/quick-insert/index.js +19 -24
  17. package/dist/es2019/plugins/quick-insert/search.js +11 -11
  18. package/dist/es2019/plugins/quick-insert/ui/ModalElementBrowser/index.js +4 -8
  19. package/dist/es2019/ui/ContextPanel/index.js +23 -6
  20. package/dist/es2019/ui/ElementBrowser/InsertMenu.js +9 -11
  21. package/dist/es2019/version-wrapper.js +1 -1
  22. package/dist/esm/plugins/help-dialog/index.js +10 -15
  23. package/dist/esm/plugins/help-dialog/ui/index.js +72 -104
  24. package/dist/esm/plugins/media/ui/MediaPicker/ClipboardWrapper.js +11 -2
  25. package/dist/esm/plugins/media/ui/MediaPicker/index.js +3 -1
  26. package/dist/esm/plugins/quick-insert/index.js +20 -26
  27. package/dist/esm/plugins/quick-insert/search.js +23 -16
  28. package/dist/esm/plugins/quick-insert/ui/ModalElementBrowser/index.js +4 -8
  29. package/dist/esm/ui/ContextPanel/index.js +24 -6
  30. package/dist/esm/ui/ElementBrowser/InsertMenu.js +9 -11
  31. package/dist/esm/version-wrapper.js +1 -1
  32. package/dist/types/labs/next/presets/default.d.ts +2 -2
  33. package/dist/types/plugins/help-dialog/index.d.ts +5 -0
  34. package/dist/types/plugins/help-dialog/ui/HelpDialogLoader.d.ts +1 -1
  35. package/dist/types/plugins/help-dialog/ui/index.d.ts +7 -7
  36. package/dist/types/plugins/media/ui/MediaPicker/ClipboardWrapper.d.ts +4 -3
  37. package/dist/types/plugins/quick-insert/index.d.ts +2 -3
  38. package/dist/types/plugins/quick-insert/search.d.ts +5 -3
  39. package/dist/types/ui/Appearance/FullPage/StyledComponents.d.ts +1 -1
  40. package/dist/types/ui/ContentStyles/index.d.ts +2 -2
  41. package/dist/types/ui/ContextPanel/index.d.ts +1 -1
  42. package/dist/types-ts4.5/labs/next/presets/default.d.ts +2 -2
  43. package/dist/types-ts4.5/plugins/help-dialog/index.d.ts +5 -0
  44. package/dist/types-ts4.5/plugins/help-dialog/ui/HelpDialogLoader.d.ts +1 -1
  45. package/dist/types-ts4.5/plugins/help-dialog/ui/index.d.ts +7 -7
  46. package/dist/types-ts4.5/plugins/media/ui/MediaPicker/ClipboardWrapper.d.ts +4 -3
  47. package/dist/types-ts4.5/plugins/quick-insert/index.d.ts +2 -3
  48. package/dist/types-ts4.5/plugins/quick-insert/search.d.ts +5 -3
  49. package/dist/types-ts4.5/ui/Appearance/FullPage/StyledComponents.d.ts +1 -1
  50. package/dist/types-ts4.5/ui/ContentStyles/index.d.ts +2 -2
  51. package/dist/types-ts4.5/ui/ContextPanel/index.d.ts +1 -1
  52. package/package.json +8 -7
package/CHANGELOG.md CHANGED
@@ -1,5 +1,41 @@
1
1
  # @atlaskit/editor-core
2
2
 
3
+ ## 187.34.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`3f12e00f046`](https://bitbucket.org/atlassian/atlassian-frontend/commits/3f12e00f046) - [ux] EDM-7493 Link create Jira quick insert
8
+
9
+ ## 187.33.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [`7613b6b6a51`](https://bitbucket.org/atlassian/atlassian-frontend/commits/7613b6b6a51) - [ED-19428] Decouple quick-insert plugin from editor-core
14
+
15
+ ### Patch Changes
16
+
17
+ - [`b06cd74349c`](https://bitbucket.org/atlassian/atlassian-frontend/commits/b06cd74349c) - # Media Picker
18
+
19
+ 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).
20
+
21
+ Note for migration:
22
+ 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**.
23
+
24
+ When `container` is not added, the behaviour falls back to legacy mechanism.
25
+
26
+ # Media Common
27
+
28
+ Add feature toggle (`securedClipboard` in `MediaFeatureFlags`) to control the rollout of Secured Clipboard (https://product-fabric.atlassian.net/browse/MEX-2454).
29
+
30
+ # Editor Core
31
+
32
+ Add support of the Secured Clipboard (https://product-fabric.atlassian.net/browse/MEX-2454).
33
+
34
+ Use feature flag `securedClipboard` to protect such change.
35
+
36
+ - [`93b4b1394bf`](https://bitbucket.org/atlassian/atlassian-frontend/commits/93b4b1394bf) - ED-19673: Updated shouldPanelBePositionedOverEditor to adapt to custom table width project
37
+ - Updated dependencies
38
+
3
39
  ## 187.32.7
4
40
 
5
41
  ### 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(_WithPluginState.default, {
105
- plugins: {
106
- helpDialog: _pluginKey.pluginKey
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 = _interopRequireDefault(require("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
- 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); }; }
37
- 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 */
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 = /*#__PURE__*/function (_React$Component) {
492
- (0, _inherits2.default)(HelpDialog, _React$Component);
493
- var _super = _createSuper(HelpDialog);
494
- function HelpDialog() {
495
- var _this;
496
- (0, _classCallCheck2.default)(this, HelpDialog);
497
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
498
- args[_key] = arguments[_key];
499
- }
500
- _this = _super.call.apply(_super, [this].concat(args));
501
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "formatting", []);
502
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "closeDialog", function () {
503
- var _this$props$editorVie = _this.props.editorView,
504
- tr = _this$props$editorVie.state.tr,
505
- dispatch = _this$props$editorVie.dispatch;
506
- (0, _commands.closeHelpCommand)(tr, dispatch);
507
- });
508
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleEsc", function (e) {
509
- if (e.key === 'Escape' && _this.props.isVisible) {
510
- _this.closeDialog();
511
- }
512
- });
513
- return _this;
514
- }
515
- (0, _createClass2.default)(HelpDialog, [{
516
- key: "componentDidMount",
517
- value: function componentDidMount() {
518
- document.addEventListener('keydown', this.handleEsc);
519
- }
520
- }, {
521
- key: "componentWillUnmount",
522
- value: function componentWillUnmount() {
523
- document.removeEventListener('keydown', this.handleEsc);
524
- }
525
- }, {
526
- key: "render",
527
- value: function render() {
528
- var _this2 = this;
529
- var _this$props = this.props,
530
- editorView = _this$props.editorView,
531
- intl = _this$props.intl,
532
- imageEnabled = _this$props.imageEnabled,
533
- quickInsertEnabled = _this$props.quickInsertEnabled;
534
- this.formatting = getSupportedFormatting(editorView.state.schema, intl, imageEnabled, quickInsertEnabled);
535
- return (0, _react2.jsx)(_modalDialog.ModalTransition, null, this.props.isVisible ? (0, _react2.jsx)(_modalDialog.default, {
536
- width: "large",
537
- onClose: this.closeDialog,
538
- testId: "help-modal-dialog"
539
- }, (0, _react2.jsx)(ModalHeader, null), (0, _react2.jsx)("div", {
540
- css: _styles.contentWrapper
541
- }, (0, _react2.jsx)("div", {
542
- css: _styles.line
543
- }), (0, _react2.jsx)("div", {
544
- css: _styles.content
545
- }, (0, _react2.jsx)("div", {
546
- css: _styles.column
547
- }, (0, _react2.jsx)("h2", {
548
- css: _styles.title
549
- }, (0, _react2.jsx)(_reactIntlNext.FormattedMessage, messages.keyboardShortcuts)), (0, _react2.jsx)("ul", null, this.formatting.filter(function (form) {
550
- var keymap = form.keymap && form.keymap(_this2.props);
551
- return keymap && keymap[_utils.browser.mac ? 'mac' : 'windows'];
552
- }).map(function (form) {
553
- return (0, _react2.jsx)("li", {
554
- css: _styles.row,
555
- key: "textFormatting-".concat(form.name)
556
- }, (0, _react2.jsx)("span", null, form.name), getComponentFromKeymap(form.keymap()));
557
- }), this.formatting.filter(function (form) {
558
- return shortcutNamesWithoutKeymap.indexOf(form.type) !== -1;
559
- }).filter(function (form) {
560
- return form.autoFormatting;
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: 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, _quickInsert.getQuickInsertSuggestions)({
47
- searchOptions: {
48
- query: query,
49
- disableDefaultItems: options === null || options === void 0 ? void 0 : options.disableDefaultItems
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 _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_name, providerPromise) {
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 _ref5.apply(this, arguments);
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.search = void 0;
7
- var _pluginKey = require("./plugin-key");
8
- var search = function search(_ref) {
9
- var query = _ref.query,
10
- category = _ref.category,
11
- disableDefaultItems = _ref.disableDefaultItems,
12
- featuredItems = _ref.featuredItems;
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.search = search;
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 _quickInsert = require("@atlaskit/editor-common/quick-insert");
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, _quickInsert.getQuickInsertSuggestions)({
23
- searchOptions: {
24
- query: query,
25
- category: category
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 shouldPanelBePositionedOverEditor = function shouldPanelBePositionedOverEditor(editorWidth, panelWidth) {
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
- return editorNotFullWidth && (hasSpaceForPanel || hasSpaceForWideBreakoutsAndPanel);
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 editorWidth = this.props.editorWidth;
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", {