@atlaskit/editor-core 187.48.0 → 187.48.4
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 +521 -507
- package/dist/cjs/{editor-next → composable-editor}/editor-internal.js +2 -22
- package/dist/cjs/{editor-next/index.js → composable-editor/editor.js} +14 -8
- package/dist/cjs/composable-editor.js +2 -3
- package/dist/cjs/editor.js +4 -4
- package/dist/cjs/plugins/floating-toolbar/ui/Toolbar.js +3 -70
- package/dist/cjs/plugins/floating-toolbar/utils.js +0 -41
- package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/index.js +3 -1
- package/dist/cjs/plugins/view-update-subscription/subscribe/toolbarAndPickerUpdates.js +28 -11
- package/dist/cjs/ui/CollapsedEditor/index.js +3 -3
- package/dist/cjs/version-wrapper.js +1 -1
- package/dist/es2019/{editor-next → composable-editor}/editor-internal.js +1 -23
- package/dist/es2019/{editor-next/index.js → composable-editor/editor.js} +14 -6
- package/dist/es2019/composable-editor.js +1 -1
- package/dist/es2019/editor.js +4 -4
- package/dist/es2019/plugins/floating-toolbar/ui/Toolbar.js +1 -52
- package/dist/es2019/plugins/floating-toolbar/utils.js +0 -36
- package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/index.js +3 -1
- package/dist/es2019/plugins/view-update-subscription/subscribe/toolbarAndPickerUpdates.js +21 -4
- package/dist/es2019/ui/CollapsedEditor/index.js +3 -3
- package/dist/es2019/version-wrapper.js +1 -1
- package/dist/esm/{editor-next → composable-editor}/editor-internal.js +1 -20
- package/dist/esm/{editor-next/index.js → composable-editor/editor.js} +14 -6
- package/dist/esm/composable-editor.js +1 -1
- package/dist/esm/editor.js +4 -4
- package/dist/esm/plugins/floating-toolbar/ui/Toolbar.js +1 -66
- package/dist/esm/plugins/floating-toolbar/utils.js +0 -37
- package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/index.js +3 -1
- package/dist/esm/plugins/view-update-subscription/subscribe/toolbarAndPickerUpdates.js +21 -4
- package/dist/esm/ui/CollapsedEditor/index.js +3 -3
- package/dist/esm/version-wrapper.js +1 -1
- package/dist/{types-ts4.5/editor-next → types/composable-editor}/editor-internal.d.ts +4 -13
- package/dist/types/{editor-next/index.d.ts → composable-editor/editor.d.ts} +2 -4
- package/dist/types/{editor-next → composable-editor}/hooks/useMeasureEditorMountTime.d.ts +3 -3
- package/dist/types/{editor-next → composable-editor}/utils/getBaseFontSize.d.ts +1 -1
- package/dist/{types-ts4.5/editor-next → types/composable-editor}/utils/getProvidersFromEditorProps.d.ts +2 -2
- package/dist/types/{editor-next → composable-editor}/utils/sendDurationAnalytics.d.ts +4 -4
- package/dist/{types-ts4.5/editor-next → types/composable-editor}/utils/trackEditorActions.d.ts +3 -3
- package/dist/types/composable-editor.d.ts +1 -1
- package/dist/types/plugins/floating-toolbar/pm-plugins/toolbar-data/commands.d.ts +1 -1
- package/dist/types/plugins/floating-toolbar/pm-plugins/toolbar-data/plugin.d.ts +1 -1
- package/dist/types/plugins/floating-toolbar/ui/Select.d.ts +1 -1
- package/dist/types/plugins/floating-toolbar/ui/Toolbar.d.ts +3 -4
- package/dist/types/plugins/floating-toolbar/utils.d.ts +0 -2
- package/dist/{types/editor-next → types-ts4.5/composable-editor}/editor-internal.d.ts +4 -13
- package/dist/types-ts4.5/{editor-next/index.d.ts → composable-editor/editor.d.ts} +2 -4
- package/dist/types-ts4.5/{editor-next → composable-editor}/hooks/useMeasureEditorMountTime.d.ts +3 -3
- package/dist/types-ts4.5/{editor-next → composable-editor}/utils/getBaseFontSize.d.ts +1 -1
- package/dist/{types/editor-next → types-ts4.5/composable-editor}/utils/getProvidersFromEditorProps.d.ts +2 -2
- package/dist/types-ts4.5/{editor-next → composable-editor}/utils/sendDurationAnalytics.d.ts +4 -4
- package/dist/{types/editor-next → types-ts4.5/composable-editor}/utils/trackEditorActions.d.ts +3 -3
- package/dist/types-ts4.5/composable-editor.d.ts +1 -1
- package/dist/types-ts4.5/plugins/floating-toolbar/pm-plugins/toolbar-data/commands.d.ts +1 -1
- package/dist/types-ts4.5/plugins/floating-toolbar/pm-plugins/toolbar-data/plugin.d.ts +1 -1
- package/dist/types-ts4.5/plugins/floating-toolbar/ui/Select.d.ts +1 -1
- package/dist/types-ts4.5/plugins/floating-toolbar/ui/Toolbar.d.ts +3 -4
- package/dist/types-ts4.5/plugins/floating-toolbar/utils.d.ts +0 -2
- package/package.json +2 -2
- /package/dist/cjs/{editor-next → composable-editor}/hooks/useEditorMeasuresConstructor.js +0 -0
- /package/dist/cjs/{editor-next → composable-editor}/hooks/useMeasureEditorMountTime.js +0 -0
- /package/dist/cjs/{editor-next → composable-editor}/hooks/useProviderFactory.js +0 -0
- /package/dist/cjs/{editor-next → composable-editor}/utils/editorMeasureTTICallback.js +0 -0
- /package/dist/cjs/{editor-next → composable-editor}/utils/getBaseFontSize.js +0 -0
- /package/dist/cjs/{editor-next → composable-editor}/utils/getProvidersFromEditorProps.js +0 -0
- /package/dist/cjs/{editor-next → composable-editor}/utils/handleProviders.js +0 -0
- /package/dist/cjs/{editor-next → composable-editor}/utils/sendDurationAnalytics.js +0 -0
- /package/dist/cjs/{editor-next → composable-editor}/utils/trackEditorActions.js +0 -0
- /package/dist/es2019/{editor-next → composable-editor}/hooks/useEditorMeasuresConstructor.js +0 -0
- /package/dist/es2019/{editor-next → composable-editor}/hooks/useMeasureEditorMountTime.js +0 -0
- /package/dist/es2019/{editor-next → composable-editor}/hooks/useProviderFactory.js +0 -0
- /package/dist/es2019/{editor-next → composable-editor}/utils/editorMeasureTTICallback.js +0 -0
- /package/dist/es2019/{editor-next → composable-editor}/utils/getBaseFontSize.js +0 -0
- /package/dist/es2019/{editor-next → composable-editor}/utils/getProvidersFromEditorProps.js +0 -0
- /package/dist/es2019/{editor-next → composable-editor}/utils/handleProviders.js +0 -0
- /package/dist/es2019/{editor-next → composable-editor}/utils/sendDurationAnalytics.js +0 -0
- /package/dist/es2019/{editor-next → composable-editor}/utils/trackEditorActions.js +0 -0
- /package/dist/esm/{editor-next → composable-editor}/hooks/useEditorMeasuresConstructor.js +0 -0
- /package/dist/esm/{editor-next → composable-editor}/hooks/useMeasureEditorMountTime.js +0 -0
- /package/dist/esm/{editor-next → composable-editor}/hooks/useProviderFactory.js +0 -0
- /package/dist/esm/{editor-next → composable-editor}/utils/editorMeasureTTICallback.js +0 -0
- /package/dist/esm/{editor-next → composable-editor}/utils/getBaseFontSize.js +0 -0
- /package/dist/esm/{editor-next → composable-editor}/utils/getProvidersFromEditorProps.js +0 -0
- /package/dist/esm/{editor-next → composable-editor}/utils/handleProviders.js +0 -0
- /package/dist/esm/{editor-next → composable-editor}/utils/sendDurationAnalytics.js +0 -0
- /package/dist/esm/{editor-next → composable-editor}/utils/trackEditorActions.js +0 -0
- /package/dist/types/{editor-next → composable-editor}/hooks/useEditorMeasuresConstructor.d.ts +0 -0
- /package/dist/types/{editor-next → composable-editor}/hooks/useProviderFactory.d.ts +0 -0
- /package/dist/types/{editor-next → composable-editor}/utils/editorMeasureTTICallback.d.ts +0 -0
- /package/dist/types/{editor-next → composable-editor}/utils/handleProviders.d.ts +0 -0
- /package/dist/types-ts4.5/{editor-next → composable-editor}/hooks/useEditorMeasuresConstructor.d.ts +0 -0
- /package/dist/types-ts4.5/{editor-next → composable-editor}/hooks/useProviderFactory.d.ts +0 -0
- /package/dist/types-ts4.5/{editor-next → composable-editor}/utils/editorMeasureTTICallback.d.ts +0 -0
- /package/dist/types-ts4.5/{editor-next → composable-editor}/utils/handleProviders.d.ts +0 -0
|
@@ -4,8 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.
|
|
8
|
-
exports.default = EditorInternal;
|
|
7
|
+
exports.EditorInternal = EditorInternal;
|
|
9
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
9
|
var _react = require("react");
|
|
11
10
|
var _react2 = require("@emotion/react");
|
|
@@ -20,33 +19,14 @@ var _contextAdapter = require("../nodeviews/context-adapter");
|
|
|
20
19
|
var _EditorContext = _interopRequireDefault(require("../ui/EditorContext"));
|
|
21
20
|
var _context = require("../presets/context");
|
|
22
21
|
var _RenderTracking = require("../utils/performance/components/RenderTracking");
|
|
23
|
-
var _useMeasureEditorMountTime = _interopRequireDefault(require("./hooks/useMeasureEditorMountTime"));
|
|
24
|
-
var _useProviderFactory = _interopRequireDefault(require("./hooks/useProviderFactory"));
|
|
25
22
|
var _getBaseFontSize = require("./utils/getBaseFontSize");
|
|
26
23
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
27
24
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /** @jsx jsx */
|
|
28
|
-
/**
|
|
29
|
-
* EditorInternal is used for the internal editor react component
|
|
30
|
-
* with the lifecycle methods extracted into hooks.
|
|
31
|
-
*/
|
|
32
|
-
function EditorInternal(props) {
|
|
33
|
-
var editorProps = props.props,
|
|
34
|
-
getExperienceStore = props.getExperienceStore,
|
|
35
|
-
editorActions = props.editorActions,
|
|
36
|
-
createAnalyticsEvent = props.createAnalyticsEvent;
|
|
37
|
-
(0, _useMeasureEditorMountTime.default)(editorProps, getExperienceStore, createAnalyticsEvent);
|
|
38
|
-
var providerFactory = (0, _useProviderFactory.default)(editorProps, editorActions, createAnalyticsEvent);
|
|
39
|
-
var updatedProps = _objectSpread(_objectSpread({}, props), {}, {
|
|
40
|
-
providerFactory: providerFactory
|
|
41
|
-
});
|
|
42
|
-
return (0, _react2.jsx)(EditorInternalWithoutHooks, updatedProps);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
25
|
/**
|
|
46
26
|
* EditorInternalComponent is used to capture the common component
|
|
47
27
|
* from the `render` method of `Editor` and share it with `EditorNext`.
|
|
48
28
|
*/
|
|
49
|
-
function
|
|
29
|
+
function EditorInternal(_ref) {
|
|
50
30
|
var _props$performanceTra, _props$performanceTra2, _props$performanceTra3, _props$performanceTra4;
|
|
51
31
|
var props = _ref.props,
|
|
52
32
|
handleAnalyticsEvent = _ref.handleAnalyticsEvent,
|
|
@@ -4,8 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.
|
|
8
|
-
exports.default = EditorNext;
|
|
7
|
+
exports.ComposableEditor = ComposableEditor;
|
|
9
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
9
|
var _react = require("react");
|
|
11
10
|
var _react2 = require("@emotion/react");
|
|
@@ -22,11 +21,16 @@ var _analyticsNext = require("@atlaskit/analytics-next");
|
|
|
22
21
|
var _hooks = require("@atlaskit/editor-common/hooks");
|
|
23
22
|
var _EditorContext = require("../ui/EditorContext");
|
|
24
23
|
var _measureEnum = _interopRequireDefault(require("../utils/performance/measure-enum"));
|
|
25
|
-
var _editorInternal =
|
|
24
|
+
var _editorInternal = require("./editor-internal");
|
|
26
25
|
var _sendDurationAnalytics = _interopRequireDefault(require("./utils/sendDurationAnalytics"));
|
|
27
26
|
var _trackEditorActions = _interopRequireDefault(require("./utils/trackEditorActions"));
|
|
27
|
+
var _useMeasureEditorMountTime = _interopRequireDefault(require("./hooks/useMeasureEditorMountTime"));
|
|
28
|
+
var _useProviderFactory = _interopRequireDefault(require("./hooks/useProviderFactory"));
|
|
28
29
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
29
30
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /** @jsx jsx */
|
|
31
|
+
/**
|
|
32
|
+
* Editor wrapper that deals with the lifecycle logic of the editor
|
|
33
|
+
*/
|
|
30
34
|
function Editor(passedProps) {
|
|
31
35
|
var _editorContext$editor;
|
|
32
36
|
var defaultProps = {
|
|
@@ -75,7 +79,9 @@ function Editor(passedProps) {
|
|
|
75
79
|
editorActions.current._privateUnregisterEditor();
|
|
76
80
|
(_props$onDestroy = props.onDestroy) === null || _props$onDestroy === void 0 ? void 0 : _props$onDestroy.call(props);
|
|
77
81
|
};
|
|
78
|
-
|
|
82
|
+
(0, _useMeasureEditorMountTime.default)(props, getExperienceStore, createAnalyticsEvent);
|
|
83
|
+
var providerFactory = (0, _useProviderFactory.default)(props, editorActions.current, createAnalyticsEvent);
|
|
84
|
+
return (0, _react2.jsx)(_editorInternal.EditorInternal, {
|
|
79
85
|
props: props,
|
|
80
86
|
handleAnalyticsEvent: handleAnalyticsEvent,
|
|
81
87
|
createAnalyticsEvent: createAnalyticsEvent,
|
|
@@ -85,12 +91,12 @@ function Editor(passedProps) {
|
|
|
85
91
|
return (_props$onSave = props.onSave) === null || _props$onSave === void 0 ? void 0 : _props$onSave.call(props, view);
|
|
86
92
|
},
|
|
87
93
|
editorActions: editorActions.current,
|
|
88
|
-
getExperienceStore: getExperienceStore,
|
|
89
94
|
onEditorCreated: onEditorCreated,
|
|
90
|
-
onEditorDestroyed: onEditorDestroyed
|
|
95
|
+
onEditorDestroyed: onEditorDestroyed,
|
|
96
|
+
providerFactory: providerFactory
|
|
91
97
|
});
|
|
92
98
|
}
|
|
93
|
-
function
|
|
99
|
+
function ComposableEditor(props) {
|
|
94
100
|
var editorSessionId = (0, _react.useRef)((0, _v.default)());
|
|
95
101
|
return (0, _react2.jsx)(_analyticsNamespacedContext.FabricEditorAnalyticsContext, {
|
|
96
102
|
data: {
|
|
@@ -102,7 +108,7 @@ function EditorNext(props) {
|
|
|
102
108
|
}
|
|
103
109
|
}, (0, _react2.jsx)(Editor, props));
|
|
104
110
|
}
|
|
105
|
-
|
|
111
|
+
ComposableEditor.propTypes = {
|
|
106
112
|
minHeight: function minHeight(_ref) {
|
|
107
113
|
var appearance = _ref.appearance,
|
|
108
114
|
_minHeight = _ref.minHeight;
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
Object.defineProperty(exports, "ComposableEditor", {
|
|
8
7
|
enumerable: true,
|
|
9
8
|
get: function get() {
|
|
10
|
-
return
|
|
9
|
+
return _editor.ComposableEditor;
|
|
11
10
|
}
|
|
12
11
|
});
|
|
13
|
-
var
|
|
12
|
+
var _editor = require("./composable-editor/editor");
|
package/dist/cjs/editor.js
CHANGED
|
@@ -15,16 +15,16 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
15
15
|
var _react = _interopRequireDefault(require("react"));
|
|
16
16
|
var _react2 = require("@emotion/react");
|
|
17
17
|
var _editorDeprecationWarnings = _interopRequireDefault(require("./utils/editorDeprecationWarnings"));
|
|
18
|
-
var
|
|
18
|
+
var _composableEditor = require("./composable-editor");
|
|
19
19
|
var _useUniversalPreset = _interopRequireDefault(require("./labs/next/presets/useUniversalPreset"));
|
|
20
20
|
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); }; }
|
|
21
21
|
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 */
|
|
22
|
-
var
|
|
22
|
+
var ComposableEditorWrapper = function ComposableEditorWrapper(_ref) {
|
|
23
23
|
var props = _ref.props;
|
|
24
24
|
var preset = (0, _useUniversalPreset.default)({
|
|
25
25
|
props: props
|
|
26
26
|
});
|
|
27
|
-
return (0, _react2.jsx)(
|
|
27
|
+
return (0, _react2.jsx)(_composableEditor.ComposableEditor, (0, _extends2.default)({
|
|
28
28
|
preset: preset
|
|
29
29
|
}, props));
|
|
30
30
|
};
|
|
@@ -41,7 +41,7 @@ var Editor = /*#__PURE__*/function (_React$Component) {
|
|
|
41
41
|
(0, _createClass2.default)(Editor, [{
|
|
42
42
|
key: "render",
|
|
43
43
|
value: function render() {
|
|
44
|
-
return (0, _react2.jsx)(
|
|
44
|
+
return (0, _react2.jsx)(ComposableEditorWrapper, {
|
|
45
45
|
props: this.props
|
|
46
46
|
});
|
|
47
47
|
}
|
|
@@ -5,7 +5,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.
|
|
8
|
+
exports.default = void 0;
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
11
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
@@ -22,7 +22,6 @@ var _editorPalette = require("@atlaskit/editor-palette");
|
|
|
22
22
|
var _components = require("@atlaskit/theme/components");
|
|
23
23
|
var _constants = require("@atlaskit/theme/constants");
|
|
24
24
|
var _colors = require("@atlaskit/theme/colors");
|
|
25
|
-
var _utils = require("../utils");
|
|
26
25
|
var _commands = require("../pm-plugins/toolbar-data/commands");
|
|
27
26
|
var _ui = require("@atlaskit/editor-common/ui");
|
|
28
27
|
var _Dropdown = _interopRequireDefault(require("./Dropdown"));
|
|
@@ -30,6 +29,7 @@ var _Select = _interopRequireDefault(require("./Select"));
|
|
|
30
29
|
var _Separator = _interopRequireDefault(require("./Separator"));
|
|
31
30
|
var _Input = _interopRequireDefault(require("./Input"));
|
|
32
31
|
var _ExtensionsPlaceholder = require("./ExtensionsPlaceholder");
|
|
32
|
+
var _floatingToolbar = require("@atlaskit/editor-common/floating-toolbar");
|
|
33
33
|
var _uiMenu = require("@atlaskit/editor-common/ui-menu");
|
|
34
34
|
var _uiColor = require("@atlaskit/editor-common/ui-color");
|
|
35
35
|
var _EmojiPickerButton = require("./EmojiPickerButton");
|
|
@@ -244,7 +244,7 @@ var ToolbarItems = /*#__PURE__*/_react.default.memo(function (_ref) {
|
|
|
244
244
|
}
|
|
245
245
|
// only rerender toolbar items if the node is different
|
|
246
246
|
// otherwise it causes an issue where multiple popups stays open
|
|
247
|
-
return !(prevProps.node.type !== nextProps.node.type || prevProps.node.attrs.localId !== nextProps.node.attrs.localId || !areSameItems(prevProps.items, nextProps.items) || !prevProps.mounted !== !nextProps.mounted);
|
|
247
|
+
return !(prevProps.node.type !== nextProps.node.type || prevProps.node.attrs.localId !== nextProps.node.attrs.localId || !(0, _floatingToolbar.areSameItems)(prevProps.items, nextProps.items) || !prevProps.mounted !== !nextProps.mounted);
|
|
248
248
|
});
|
|
249
249
|
var toolbarContainer = function toolbarContainer(theme, scrollable, hasSelect, firstElementIsSelect) {
|
|
250
250
|
return (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n background-color: ", ";\n border-radius: ", "px;\n box-shadow: ", ";\n display: flex;\n line-height: 1;\n box-sizing: border-box;\n\n & > div > div {\n align-items: center;\n }\n ", "\n"])), (0, _components.themed)({
|
|
@@ -255,73 +255,6 @@ var toolbarContainer = function toolbarContainer(theme, scrollable, hasSelect, f
|
|
|
255
255
|
var toolbarOverflow = function toolbarOverflow(scrollable, scrollDisabled, firstElementIsSelect) {
|
|
256
256
|
return (0, _react2.css)(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["\n ", "\n"])), scrollable ? (0, _react2.css)(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2.default)(["\n ", "\n -webkit-overflow-scrolling: touch;\n padding: ", " 0 50px;\n > div {\n > div:first-child {\n ", "\n }\n > div:last-child {\n margin-right: ", ";\n }\n }\n "])), scrollDisabled ? (0, _react2.css)(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2.default)(["\n overflow: hidden;\n "]))) : (0, _react2.css)(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2.default)(["\n overflow-x: auto;\n overflow-y: hidden;\n "]))), "var(--ds-space-050, 4px)", firstElementIsSelect ? (0, _react2.css)(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2.default)(["\n margin-left: ", ";\n "])), "var(--ds-space-050, 4px)") : (0, _react2.css)(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2.default)(["\n margin-left: ", ";\n "])), "var(--ds-space-100, 8px)"), "var(--ds-space-100, 8px)") : (0, _react2.css)(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n "]))));
|
|
257
257
|
};
|
|
258
|
-
function makeSameType(_a, _b) {
|
|
259
|
-
return true;
|
|
260
|
-
}
|
|
261
|
-
var compareItemWithKeys = function compareItemWithKeys(leftItem, rightItem) {
|
|
262
|
-
var excludedKeys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
263
|
-
return Object.keys(leftItem).filter(function (key) {
|
|
264
|
-
return excludedKeys.indexOf(key) === -1;
|
|
265
|
-
}).every(function (key) {
|
|
266
|
-
return leftItem[key] instanceof Object ? (0, _utils.shallowEqual)(leftItem[key], rightItem[key]) : leftItem[key] === rightItem[key];
|
|
267
|
-
});
|
|
268
|
-
};
|
|
269
|
-
var isSameItem = function isSameItem(leftItem, rightItem) {
|
|
270
|
-
if (leftItem.type !== rightItem.type) {
|
|
271
|
-
return false;
|
|
272
|
-
}
|
|
273
|
-
switch (leftItem.type) {
|
|
274
|
-
case 'button':
|
|
275
|
-
// Need to typecast `rightItem as typeof leftItem` otherwise we will
|
|
276
|
-
// have to put the `type !==` inside each case.
|
|
277
|
-
return compareItemWithKeys(leftItem, rightItem, ['type', 'onClick', 'onMouseEnter', 'onMouseLeave']);
|
|
278
|
-
case 'copy-button':
|
|
279
|
-
return compareItemWithKeys(leftItem, rightItem, ['type', 'items']);
|
|
280
|
-
case 'input':
|
|
281
|
-
return compareItemWithKeys(leftItem, rightItem, ['type', 'onSubmit', 'onBlur']);
|
|
282
|
-
case 'select':
|
|
283
|
-
if (makeSameType(leftItem, rightItem) && Array.isArray(leftItem.options) && Array.isArray(rightItem.options) && !(0, _utils.compareArrays)(leftItem.options, rightItem.options, function (left, right) {
|
|
284
|
-
return compareItemWithKeys(left, right);
|
|
285
|
-
})) {
|
|
286
|
-
return false;
|
|
287
|
-
}
|
|
288
|
-
return compareItemWithKeys(leftItem, rightItem, ['type', 'onChange', 'options']);
|
|
289
|
-
case 'dropdown':
|
|
290
|
-
if (makeSameType(leftItem, rightItem) && Array.isArray(leftItem.options) && Array.isArray(rightItem.options) &&
|
|
291
|
-
// @ts-expect-error TS2345: Argument of type 'DropdownOptionT<Function>[]' is not assignable to parameter of type 'any[][]'
|
|
292
|
-
!(0, _utils.compareArrays)(leftItem.options, rightItem.options, function (left, right) {
|
|
293
|
-
return (
|
|
294
|
-
// @ts-expect-error TS2322: Type '"onClick"' is not assignable to type 'keyof any[]'
|
|
295
|
-
compareItemWithKeys(left, right, ['onClick'])
|
|
296
|
-
);
|
|
297
|
-
})) {
|
|
298
|
-
return false;
|
|
299
|
-
}
|
|
300
|
-
return compareItemWithKeys(leftItem, rightItem, ['type', 'options']);
|
|
301
|
-
case 'custom':
|
|
302
|
-
return false;
|
|
303
|
-
case 'separator':
|
|
304
|
-
return compareItemWithKeys(leftItem, rightItem);
|
|
305
|
-
case 'extensions-placeholder':
|
|
306
|
-
return compareItemWithKeys(leftItem, rightItem);
|
|
307
|
-
}
|
|
308
|
-
};
|
|
309
|
-
exports.isSameItem = isSameItem;
|
|
310
|
-
var areSameItems = function areSameItems(leftArr, rightArr) {
|
|
311
|
-
if (leftArr === undefined && rightArr === undefined) {
|
|
312
|
-
return true;
|
|
313
|
-
}
|
|
314
|
-
if (leftArr === undefined || rightArr === undefined) {
|
|
315
|
-
return false;
|
|
316
|
-
}
|
|
317
|
-
if (leftArr.length !== rightArr.length) {
|
|
318
|
-
return false;
|
|
319
|
-
}
|
|
320
|
-
return leftArr.every(function (item, index) {
|
|
321
|
-
return isSameItem(rightArr[index], item);
|
|
322
|
-
});
|
|
323
|
-
};
|
|
324
|
-
exports.areSameItems = areSameItems;
|
|
325
258
|
var Toolbar = /*#__PURE__*/function (_Component) {
|
|
326
259
|
(0, _inherits2.default)(Toolbar, _Component);
|
|
327
260
|
var _super = _createSuper(Toolbar);
|
|
@@ -3,49 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.compareArrays = void 0;
|
|
7
6
|
exports.findNode = findNode;
|
|
8
|
-
exports.shallowEqual = void 0;
|
|
9
|
-
var shallowEqual = function shallowEqual(objA, objB) {
|
|
10
|
-
if (objA === objB) {
|
|
11
|
-
return true;
|
|
12
|
-
}
|
|
13
|
-
if (objA == null || objB == null) {
|
|
14
|
-
return false;
|
|
15
|
-
}
|
|
16
|
-
var keysA = Object.keys(objA);
|
|
17
|
-
var keysB = Object.keys(objB);
|
|
18
|
-
if (keysA.length !== keysB.length) {
|
|
19
|
-
return false;
|
|
20
|
-
}
|
|
21
|
-
var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);
|
|
22
|
-
for (var idx = 0; idx < keysA.length; idx++) {
|
|
23
|
-
var key = keysA[idx];
|
|
24
|
-
if (!bHasOwnProperty(key)) {
|
|
25
|
-
return false;
|
|
26
|
-
}
|
|
27
|
-
if (objA[key] !== objB[key]) {
|
|
28
|
-
return false;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
return true;
|
|
32
|
-
};
|
|
33
|
-
exports.shallowEqual = shallowEqual;
|
|
34
|
-
var compareArrays = function compareArrays(left, right) {
|
|
35
|
-
var compareFn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : shallowEqual;
|
|
36
|
-
if (left.length !== right.length) {
|
|
37
|
-
return false;
|
|
38
|
-
}
|
|
39
|
-
for (var idx = 0; idx < left.length; idx++) {
|
|
40
|
-
if (!compareFn(left[idx], right[idx])) {
|
|
41
|
-
return false;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
return true;
|
|
45
|
-
};
|
|
46
|
-
|
|
47
7
|
// find node in descendants by condition
|
|
48
|
-
exports.compareArrays = compareArrays;
|
|
49
8
|
function findNode(parent, predicate) {
|
|
50
9
|
var matchedNode;
|
|
51
10
|
parent.descendants(function (node) {
|
|
@@ -21,6 +21,7 @@ var _picker = require("@atlaskit/emoji/picker");
|
|
|
21
21
|
var _ui = require("@atlaskit/editor-common/ui");
|
|
22
22
|
var _ToolbarButton = _interopRequireDefault(require("../../../../ui/ToolbarButton"));
|
|
23
23
|
var _styles = require("@atlaskit/editor-common/styles");
|
|
24
|
+
var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
|
|
24
25
|
var _actions = require("../../../date/actions");
|
|
25
26
|
var _actions2 = require("../../../placeholder-text/actions");
|
|
26
27
|
var _actions3 = require("../../../layout/actions");
|
|
@@ -438,7 +439,8 @@ var ToolbarInsertBlock = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
438
439
|
mountTo: popupsMountPoint,
|
|
439
440
|
boundariesElement: popupsBoundariesElement,
|
|
440
441
|
scrollableElement: popupsScrollableElement,
|
|
441
|
-
focusTrap: true
|
|
442
|
+
focusTrap: true,
|
|
443
|
+
zIndex: _editorSharedStyles.akEditorMenuZIndex
|
|
442
444
|
}, (0, _react2.jsx)(EmojiPickerWithListeners, {
|
|
443
445
|
emojiProvider: emojiProvider,
|
|
444
446
|
onSelection: this.handleSelectedEmoji,
|
|
@@ -4,10 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.subscribeToToolbarAndPickerUpdates = void 0;
|
|
7
|
-
var
|
|
8
|
-
var _floatingToolbar = require("../../floating-toolbar");
|
|
9
|
-
var _pluginKey2 = require("../../status/plugin-key");
|
|
10
|
-
var _Toolbar = require("../../floating-toolbar/ui/Toolbar");
|
|
7
|
+
var _floatingToolbar = require("@atlaskit/editor-common/floating-toolbar");
|
|
11
8
|
var _utils = require("../../type-ahead/utils");
|
|
12
9
|
var _ = require("..");
|
|
13
10
|
var areToolbarsSame = function areToolbarsSame(left, right) {
|
|
@@ -27,7 +24,7 @@ var areToolbarsSame = function areToolbarsSame(left, right) {
|
|
|
27
24
|
}
|
|
28
25
|
var leftItems = Array.isArray(leftConfig.items) ? leftConfig.items : leftConfig.items(left.node);
|
|
29
26
|
var rightItems = Array.isArray(rightConfig.items) ? rightConfig.items : rightConfig.items(right.node);
|
|
30
|
-
return (0,
|
|
27
|
+
return (0, _floatingToolbar.areSameItems)(leftItems, rightItems);
|
|
31
28
|
};
|
|
32
29
|
var subscribeToToolbarAndPickerUpdates = function subscribeToToolbarAndPickerUpdates(editorView, cb) {
|
|
33
30
|
var lastUpdatedState = null;
|
|
@@ -39,16 +36,36 @@ var subscribeToToolbarAndPickerUpdates = function subscribeToToolbarAndPickerUpd
|
|
|
39
36
|
if ((0, _utils.isTypeAheadOpen)(newEditorState)) {
|
|
40
37
|
return;
|
|
41
38
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
var
|
|
39
|
+
|
|
40
|
+
// Creating fake plugin keys for these plugins for the mean time until all these plugins are extracted.
|
|
41
|
+
var datePluginKey = {
|
|
42
|
+
key: 'datePlugin$',
|
|
43
|
+
getState: function getState(state) {
|
|
44
|
+
return state['datePlugin$'];
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
var statusPluginKey = {
|
|
48
|
+
key: 'statusPlugin$',
|
|
49
|
+
getState: function getState(state) {
|
|
50
|
+
return state['statusPlugin$'];
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
var floatingToolbarPluginKey = {
|
|
54
|
+
key: 'floatingToolbarPluginKey$',
|
|
55
|
+
getState: function getState(state) {
|
|
56
|
+
return state['floatingToolbarPluginKey$'];
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
var dateState = datePluginKey.getState(newEditorState);
|
|
60
|
+
var statusState = statusPluginKey.getState(newEditorState);
|
|
61
|
+
var _ref2 = floatingToolbarPluginKey.getState(newEditorState),
|
|
45
62
|
getConfigWithNodeInfo = _ref2.getConfigWithNodeInfo;
|
|
46
63
|
var toolbarConfig = getConfigWithNodeInfo(newEditorState);
|
|
47
64
|
var shouldCallback = false;
|
|
48
65
|
if (lastUpdatedState) {
|
|
49
|
-
var oldDateState =
|
|
50
|
-
var oldStatusState =
|
|
51
|
-
var _ref3 =
|
|
66
|
+
var oldDateState = datePluginKey.getState(lastUpdatedState);
|
|
67
|
+
var oldStatusState = statusPluginKey.getState(lastUpdatedState);
|
|
68
|
+
var _ref3 = floatingToolbarPluginKey.getState(lastUpdatedState),
|
|
52
69
|
getOldConfigWithNodeInfo = _ref3.getConfigWithNodeInfo;
|
|
53
70
|
var oldToolbarConfig = getOldConfigWithNodeInfo(lastUpdatedState);
|
|
54
71
|
var isToolbarEqual = areToolbarsSame(toolbarConfig, oldToolbarConfig);
|
|
@@ -15,7 +15,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
15
15
|
var _ui = require("@atlaskit/editor-common/ui");
|
|
16
16
|
var _react = _interopRequireDefault(require("react"));
|
|
17
17
|
var _editor = _interopRequireDefault(require("../../editor"));
|
|
18
|
-
var
|
|
18
|
+
var _composableEditor = require("../../composable-editor");
|
|
19
19
|
var _EditorWithActions = _interopRequireDefault(require("../../labs/EditorWithActions"));
|
|
20
20
|
var _ChromeCollapsed = _interopRequireDefault(require("../ChromeCollapsed"));
|
|
21
21
|
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); }; }
|
|
@@ -52,10 +52,10 @@ var CollapsedEditor = /*#__PURE__*/function (_React$Component) {
|
|
|
52
52
|
value: function render() {
|
|
53
53
|
var _this2 = this;
|
|
54
54
|
var child = _react.default.Children.only(this.props.children);
|
|
55
|
-
if (child.type !== _editor.default && child.type !== _EditorWithActions.default && child.type !==
|
|
55
|
+
if (child.type !== _editor.default && child.type !== _EditorWithActions.default && child.type !== _composableEditor.ComposableEditor) {
|
|
56
56
|
throw new Error('Expected child to be of type `Editor`');
|
|
57
57
|
}
|
|
58
|
-
this.functionalEditor = child.type ===
|
|
58
|
+
this.functionalEditor = child.type === _composableEditor.ComposableEditor;
|
|
59
59
|
if (!this.props.isExpanded) {
|
|
60
60
|
return /*#__PURE__*/_react.default.createElement(_ui.IntlProviderIfMissingWrapper, null, /*#__PURE__*/_react.default.createElement(_ChromeCollapsed.default, {
|
|
61
61
|
onFocus: this.props.onFocus,
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.version = exports.nextMajorVersion = exports.name = void 0;
|
|
7
7
|
var name = "@atlaskit/editor-core";
|
|
8
8
|
exports.name = name;
|
|
9
|
-
var version = "187.48.
|
|
9
|
+
var version = "187.48.4";
|
|
10
10
|
exports.version = version;
|
|
11
11
|
var nextMajorVersion = function nextMajorVersion() {
|
|
12
12
|
return [Number(version.split('.')[0]) + 1, 0, 0].join('.');
|
|
@@ -12,34 +12,12 @@ import { ContextAdapter } from '../nodeviews/context-adapter';
|
|
|
12
12
|
import EditorContext from '../ui/EditorContext';
|
|
13
13
|
import { useSetPresetContext } from '../presets/context';
|
|
14
14
|
import { RenderTracking } from '../utils/performance/components/RenderTracking';
|
|
15
|
-
import useMeasureEditorMountTime from './hooks/useMeasureEditorMountTime';
|
|
16
|
-
import useProviderFactory from './hooks/useProviderFactory';
|
|
17
15
|
import { getBaseFontSize } from './utils/getBaseFontSize';
|
|
18
|
-
/**
|
|
19
|
-
* EditorInternal is used for the internal editor react component
|
|
20
|
-
* with the lifecycle methods extracted into hooks.
|
|
21
|
-
*/
|
|
22
|
-
export default function EditorInternal(props) {
|
|
23
|
-
const {
|
|
24
|
-
props: editorProps,
|
|
25
|
-
getExperienceStore,
|
|
26
|
-
editorActions,
|
|
27
|
-
createAnalyticsEvent
|
|
28
|
-
} = props;
|
|
29
|
-
useMeasureEditorMountTime(editorProps, getExperienceStore, createAnalyticsEvent);
|
|
30
|
-
const providerFactory = useProviderFactory(editorProps, editorActions, createAnalyticsEvent);
|
|
31
|
-
const updatedProps = {
|
|
32
|
-
...props,
|
|
33
|
-
providerFactory
|
|
34
|
-
};
|
|
35
|
-
return jsx(EditorInternalWithoutHooks, updatedProps);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
16
|
/**
|
|
39
17
|
* EditorInternalComponent is used to capture the common component
|
|
40
18
|
* from the `render` method of `Editor` and share it with `EditorNext`.
|
|
41
19
|
*/
|
|
42
|
-
export function
|
|
20
|
+
export function EditorInternal({
|
|
43
21
|
props,
|
|
44
22
|
handleAnalyticsEvent,
|
|
45
23
|
createAnalyticsEvent,
|
|
@@ -14,10 +14,16 @@ import { useAnalyticsEvents } from '@atlaskit/analytics-next';
|
|
|
14
14
|
import { useConstructor } from '@atlaskit/editor-common/hooks';
|
|
15
15
|
import { useEditorContext } from '../ui/EditorContext';
|
|
16
16
|
import measurements from '../utils/performance/measure-enum';
|
|
17
|
-
import EditorInternal from './editor-internal';
|
|
17
|
+
import { EditorInternal } from './editor-internal';
|
|
18
18
|
import sendDurationAnalytics from './utils/sendDurationAnalytics';
|
|
19
19
|
import trackEditorActions from './utils/trackEditorActions';
|
|
20
|
-
|
|
20
|
+
import useMeasureEditorMountTime from './hooks/useMeasureEditorMountTime';
|
|
21
|
+
import useProviderFactory from './hooks/useProviderFactory';
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Editor wrapper that deals with the lifecycle logic of the editor
|
|
25
|
+
*/
|
|
26
|
+
function Editor(passedProps) {
|
|
21
27
|
var _editorContext$editor;
|
|
22
28
|
const defaultProps = {
|
|
23
29
|
appearance: 'comment',
|
|
@@ -61,6 +67,8 @@ export function Editor(passedProps) {
|
|
|
61
67
|
editorActions.current._privateUnregisterEditor();
|
|
62
68
|
(_props$onDestroy = props.onDestroy) === null || _props$onDestroy === void 0 ? void 0 : _props$onDestroy.call(props);
|
|
63
69
|
};
|
|
70
|
+
useMeasureEditorMountTime(props, getExperienceStore, createAnalyticsEvent);
|
|
71
|
+
const providerFactory = useProviderFactory(props, editorActions.current, createAnalyticsEvent);
|
|
64
72
|
return jsx(EditorInternal, {
|
|
65
73
|
props: props,
|
|
66
74
|
handleAnalyticsEvent: handleAnalyticsEvent,
|
|
@@ -71,12 +79,12 @@ export function Editor(passedProps) {
|
|
|
71
79
|
return (_props$onSave = props.onSave) === null || _props$onSave === void 0 ? void 0 : _props$onSave.call(props, view);
|
|
72
80
|
},
|
|
73
81
|
editorActions: editorActions.current,
|
|
74
|
-
getExperienceStore: getExperienceStore,
|
|
75
82
|
onEditorCreated: onEditorCreated,
|
|
76
|
-
onEditorDestroyed: onEditorDestroyed
|
|
83
|
+
onEditorDestroyed: onEditorDestroyed,
|
|
84
|
+
providerFactory: providerFactory
|
|
77
85
|
});
|
|
78
86
|
}
|
|
79
|
-
export
|
|
87
|
+
export function ComposableEditor(props) {
|
|
80
88
|
const editorSessionId = useRef(uuid());
|
|
81
89
|
return jsx(FabricEditorAnalyticsContext, {
|
|
82
90
|
data: {
|
|
@@ -88,7 +96,7 @@ export default function EditorNext(props) {
|
|
|
88
96
|
}
|
|
89
97
|
}, jsx(Editor, props));
|
|
90
98
|
}
|
|
91
|
-
|
|
99
|
+
ComposableEditor.propTypes = {
|
|
92
100
|
minHeight: ({
|
|
93
101
|
appearance,
|
|
94
102
|
minHeight
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { ComposableEditor } from './composable-editor/editor';
|
package/dist/es2019/editor.js
CHANGED
|
@@ -4,15 +4,15 @@ import _extends from "@babel/runtime/helpers/extends";
|
|
|
4
4
|
import React from 'react';
|
|
5
5
|
import { jsx } from '@emotion/react';
|
|
6
6
|
import editorDeprecationWarnings from './utils/editorDeprecationWarnings';
|
|
7
|
-
import
|
|
7
|
+
import { ComposableEditor } from './composable-editor';
|
|
8
8
|
import useUniversalPreset from './labs/next/presets/useUniversalPreset';
|
|
9
|
-
const
|
|
9
|
+
const ComposableEditorWrapper = ({
|
|
10
10
|
props
|
|
11
11
|
}) => {
|
|
12
12
|
const preset = useUniversalPreset({
|
|
13
13
|
props
|
|
14
14
|
});
|
|
15
|
-
return jsx(
|
|
15
|
+
return jsx(ComposableEditor, _extends({
|
|
16
16
|
preset: preset
|
|
17
17
|
}, props));
|
|
18
18
|
};
|
|
@@ -22,7 +22,7 @@ export default class Editor extends React.Component {
|
|
|
22
22
|
editorDeprecationWarnings(props);
|
|
23
23
|
}
|
|
24
24
|
render() {
|
|
25
|
-
return jsx(
|
|
25
|
+
return jsx(ComposableEditorWrapper, {
|
|
26
26
|
props: this.props
|
|
27
27
|
});
|
|
28
28
|
}
|
|
@@ -8,7 +8,6 @@ import { hexToEditorBackgroundPaletteColor } from '@atlaskit/editor-palette';
|
|
|
8
8
|
import { themed } from '@atlaskit/theme/components';
|
|
9
9
|
import { borderRadius } from '@atlaskit/theme/constants';
|
|
10
10
|
import { DN70 } from '@atlaskit/theme/colors';
|
|
11
|
-
import { compareArrays, shallowEqual } from '../utils';
|
|
12
11
|
import { showConfirmDialog } from '../pm-plugins/toolbar-data/commands';
|
|
13
12
|
import { FloatingToolbarButton as Button, Announcer } from '@atlaskit/editor-common/ui';
|
|
14
13
|
import Dropdown from './Dropdown';
|
|
@@ -16,6 +15,7 @@ import Select from './Select';
|
|
|
16
15
|
import Separator from './Separator';
|
|
17
16
|
import Input from './Input';
|
|
18
17
|
import { ExtensionsPlaceholder } from './ExtensionsPlaceholder';
|
|
18
|
+
import { areSameItems } from '@atlaskit/editor-common/floating-toolbar';
|
|
19
19
|
import { ColorPickerButton } from '@atlaskit/editor-common/ui-menu';
|
|
20
20
|
import { backgroundPaletteTooltipMessages } from '@atlaskit/editor-common/ui-color';
|
|
21
21
|
import { EmojiPickerButton } from './EmojiPickerButton';
|
|
@@ -265,57 +265,6 @@ const toolbarOverflow = (scrollable, scrollDisabled, firstElementIsSelect) => cs
|
|
|
265
265
|
display: flex;
|
|
266
266
|
`}
|
|
267
267
|
`;
|
|
268
|
-
function makeSameType(_a, _b) {
|
|
269
|
-
return true;
|
|
270
|
-
}
|
|
271
|
-
const compareItemWithKeys = (leftItem, rightItem, excludedKeys = []) => Object.keys(leftItem).filter(key => excludedKeys.indexOf(key) === -1).every(key => leftItem[key] instanceof Object ? shallowEqual(leftItem[key], rightItem[key]) : leftItem[key] === rightItem[key]);
|
|
272
|
-
export const isSameItem = (leftItem, rightItem) => {
|
|
273
|
-
if (leftItem.type !== rightItem.type) {
|
|
274
|
-
return false;
|
|
275
|
-
}
|
|
276
|
-
switch (leftItem.type) {
|
|
277
|
-
case 'button':
|
|
278
|
-
// Need to typecast `rightItem as typeof leftItem` otherwise we will
|
|
279
|
-
// have to put the `type !==` inside each case.
|
|
280
|
-
return compareItemWithKeys(leftItem, rightItem, ['type', 'onClick', 'onMouseEnter', 'onMouseLeave']);
|
|
281
|
-
case 'copy-button':
|
|
282
|
-
return compareItemWithKeys(leftItem, rightItem, ['type', 'items']);
|
|
283
|
-
case 'input':
|
|
284
|
-
return compareItemWithKeys(leftItem, rightItem, ['type', 'onSubmit', 'onBlur']);
|
|
285
|
-
case 'select':
|
|
286
|
-
if (makeSameType(leftItem, rightItem) && Array.isArray(leftItem.options) && Array.isArray(rightItem.options) && !compareArrays(leftItem.options, rightItem.options, (left, right) => compareItemWithKeys(left, right))) {
|
|
287
|
-
return false;
|
|
288
|
-
}
|
|
289
|
-
return compareItemWithKeys(leftItem, rightItem, ['type', 'onChange', 'options']);
|
|
290
|
-
case 'dropdown':
|
|
291
|
-
if (makeSameType(leftItem, rightItem) && Array.isArray(leftItem.options) && Array.isArray(rightItem.options) &&
|
|
292
|
-
// @ts-expect-error TS2345: Argument of type 'DropdownOptionT<Function>[]' is not assignable to parameter of type 'any[][]'
|
|
293
|
-
!compareArrays(leftItem.options, rightItem.options, (left, right) =>
|
|
294
|
-
// @ts-expect-error TS2322: Type '"onClick"' is not assignable to type 'keyof any[]'
|
|
295
|
-
compareItemWithKeys(left, right, ['onClick']))) {
|
|
296
|
-
return false;
|
|
297
|
-
}
|
|
298
|
-
return compareItemWithKeys(leftItem, rightItem, ['type', 'options']);
|
|
299
|
-
case 'custom':
|
|
300
|
-
return false;
|
|
301
|
-
case 'separator':
|
|
302
|
-
return compareItemWithKeys(leftItem, rightItem);
|
|
303
|
-
case 'extensions-placeholder':
|
|
304
|
-
return compareItemWithKeys(leftItem, rightItem);
|
|
305
|
-
}
|
|
306
|
-
};
|
|
307
|
-
export const areSameItems = (leftArr, rightArr) => {
|
|
308
|
-
if (leftArr === undefined && rightArr === undefined) {
|
|
309
|
-
return true;
|
|
310
|
-
}
|
|
311
|
-
if (leftArr === undefined || rightArr === undefined) {
|
|
312
|
-
return false;
|
|
313
|
-
}
|
|
314
|
-
if (leftArr.length !== rightArr.length) {
|
|
315
|
-
return false;
|
|
316
|
-
}
|
|
317
|
-
return leftArr.every((item, index) => isSameItem(rightArr[index], item));
|
|
318
|
-
};
|
|
319
268
|
class Toolbar extends Component {
|
|
320
269
|
constructor(props) {
|
|
321
270
|
super(props);
|