@atlaskit/editor-common 70.1.2 → 70.2.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 +40 -0
- package/dist/cjs/__tests_external__/index.js +1 -9
- package/dist/cjs/__tests_external__/page-objects/Editor.js +0 -7
- package/dist/cjs/__tests_external__/page-objects/EditorSmartLink.js +7 -1
- package/dist/cjs/__tests_external__/page-objects/Renderer.js +0 -9
- package/dist/cjs/in-product.js +0 -6
- package/dist/cjs/react-node-view/index.js +19 -17
- package/dist/cjs/styles/index.js +12 -0
- package/dist/cjs/styles/shared/code-block.js +5 -3
- package/dist/cjs/styles/shared/lists.js +4 -2
- package/dist/cjs/styles/shared/table.js +1 -1
- package/dist/cjs/{__tests_external__/cases/media/test-cases/types.js → types/copy-button.js} +0 -0
- package/dist/cjs/ui/DropList/index.js +1 -1
- package/dist/cjs/ui/Expand/index.js +2 -2
- package/dist/cjs/ui/IntlProviderIfMissingWrapper/index.js +33 -0
- package/dist/cjs/ui/Popup/index.js +2 -2
- package/dist/cjs/ui/PortalProvider/index.js +62 -47
- package/dist/cjs/ui/index.js +8 -0
- package/dist/cjs/utils/breakout.js +53 -2
- package/dist/cjs/utils/collab.js +22 -0
- package/dist/cjs/utils/dom.js +16 -0
- package/dist/cjs/utils/get-performance-options.js +70 -0
- package/dist/cjs/utils/index.js +57 -1
- package/dist/cjs/utils/outdated-browsers.js +41 -0
- package/dist/cjs/utils/referentiality.js +49 -0
- package/dist/cjs/utils/sendLogs.js +19 -0
- package/dist/cjs/version.json +1 -1
- package/dist/cjs/with-plugin-state/index.js +61 -54
- package/dist/es2019/__tests_external__/index.js +1 -2
- package/dist/es2019/__tests_external__/page-objects/Editor.js +0 -6
- package/dist/es2019/__tests_external__/page-objects/EditorSmartLink.js +4 -1
- package/dist/es2019/__tests_external__/page-objects/Renderer.js +0 -6
- package/dist/es2019/in-product.js +1 -1
- package/dist/es2019/react-node-view/index.js +19 -24
- package/dist/es2019/styles/index.js +2 -2
- package/dist/es2019/styles/shared/code-block.js +13 -1
- package/dist/es2019/styles/shared/lists.js +2 -1
- package/dist/es2019/styles/shared/table.js +4 -2
- package/dist/es2019/{__tests_external__/cases/media/test-cases/types.js → types/copy-button.js} +0 -0
- package/dist/es2019/ui/DropList/index.js +1 -1
- package/dist/es2019/ui/Expand/index.js +17 -15
- package/dist/es2019/ui/IntlProviderIfMissingWrapper/index.js +18 -0
- package/dist/es2019/ui/Popup/index.js +2 -1
- package/dist/es2019/ui/PortalProvider/index.js +33 -14
- package/dist/es2019/ui/index.js +2 -1
- package/dist/es2019/utils/breakout.js +47 -1
- package/dist/es2019/utils/collab.js +13 -0
- package/dist/es2019/utils/dom.js +16 -0
- package/dist/es2019/utils/get-performance-options.js +57 -0
- package/dist/es2019/utils/index.js +6 -2
- package/dist/es2019/utils/outdated-browsers.js +32 -0
- package/dist/es2019/utils/referentiality.js +34 -0
- package/dist/es2019/utils/sendLogs.js +8 -0
- package/dist/es2019/version.json +1 -1
- package/dist/es2019/with-plugin-state/index.js +55 -52
- package/dist/esm/__tests_external__/index.js +1 -2
- package/dist/esm/__tests_external__/page-objects/Editor.js +0 -7
- package/dist/esm/__tests_external__/page-objects/EditorSmartLink.js +7 -1
- package/dist/esm/__tests_external__/page-objects/Renderer.js +0 -9
- package/dist/esm/in-product.js +1 -1
- package/dist/esm/react-node-view/index.js +19 -22
- package/dist/esm/styles/index.js +2 -2
- package/dist/esm/styles/shared/code-block.js +4 -3
- package/dist/esm/styles/shared/lists.js +2 -1
- package/dist/esm/styles/shared/table.js +1 -1
- package/dist/esm/{__tests_external__/cases/media/test-cases/types.js → types/copy-button.js} +0 -0
- package/dist/esm/ui/DropList/index.js +1 -1
- package/dist/esm/ui/Expand/index.js +2 -2
- package/dist/esm/ui/IntlProviderIfMissingWrapper/index.js +19 -0
- package/dist/esm/ui/Popup/index.js +2 -2
- package/dist/esm/ui/PortalProvider/index.js +59 -48
- package/dist/esm/ui/index.js +2 -1
- package/dist/esm/utils/breakout.js +46 -1
- package/dist/esm/utils/collab.js +13 -0
- package/dist/esm/utils/dom.js +16 -0
- package/dist/esm/utils/get-performance-options.js +55 -0
- package/dist/esm/utils/index.js +6 -2
- package/dist/esm/utils/outdated-browsers.js +32 -0
- package/dist/esm/utils/referentiality.js +40 -0
- package/dist/esm/utils/sendLogs.js +10 -0
- package/dist/esm/version.json +1 -1
- package/dist/esm/with-plugin-state/index.js +59 -54
- package/dist/types/__tests_external__/index.d.ts +0 -1
- package/dist/types/__tests_external__/page-objects/Editor.d.ts +0 -1
- package/dist/types/__tests_external__/page-objects/Renderer.d.ts +0 -1
- package/dist/types/analytics/types/events.d.ts +1 -0
- package/dist/types/extensions/types/extension-handler.d.ts +1 -0
- package/dist/types/in-product.d.ts +1 -1
- package/dist/types/styles/index.d.ts +2 -2
- package/dist/types/styles/shared/code-block.d.ts +1 -0
- package/dist/types/styles/shared/lists.d.ts +1 -0
- package/dist/types/types/copy-button.d.ts +20 -0
- package/dist/types/types/editor-actions.d.ts +1 -0
- package/dist/types/types/editor-container-width.d.ts +14 -0
- package/dist/types/types/feature-flags.d.ts +0 -6
- package/dist/types/types/floating-toolbar.d.ts +23 -2
- package/dist/types/types/index.d.ts +2 -1
- package/dist/types/ui/IntlProviderIfMissingWrapper/index.d.ts +6 -0
- package/dist/types/ui/Popup/index.d.ts +1 -0
- package/dist/types/ui/PortalProvider/index.d.ts +2 -1
- package/dist/types/ui/index.d.ts +1 -0
- package/dist/types/ui-menu/ToolbarButton/index.d.ts +1 -1
- package/dist/types/utils/breakout.d.ts +25 -0
- package/dist/types/utils/collab.d.ts +2 -0
- package/dist/types/utils/dom.d.ts +15 -1
- package/dist/types/utils/get-performance-options.d.ts +18 -0
- package/dist/types/utils/getModeFromTheme.d.ts +1 -1
- package/dist/types/utils/index.d.ts +5 -1
- package/dist/types/utils/outdated-browsers.d.ts +1 -0
- package/dist/types/utils/referentiality.d.ts +3 -0
- package/dist/types/utils/sendLogs.d.ts +1 -0
- package/dist/types/with-plugin-state/index.d.ts +4 -2
- package/dist/types-ts4.0/__tests_external__/index.d.ts +0 -1
- package/dist/types-ts4.0/__tests_external__/page-objects/Editor.d.ts +0 -1
- package/dist/types-ts4.0/__tests_external__/page-objects/Renderer.d.ts +0 -1
- package/dist/types-ts4.0/analytics/types/events.d.ts +1 -0
- package/dist/types-ts4.0/extensions/types/extension-handler.d.ts +1 -0
- package/dist/types-ts4.0/in-product.d.ts +1 -1
- package/dist/types-ts4.0/styles/index.d.ts +2 -2
- package/dist/types-ts4.0/styles/shared/code-block.d.ts +1 -0
- package/dist/types-ts4.0/styles/shared/lists.d.ts +1 -0
- package/dist/types-ts4.0/types/copy-button.d.ts +20 -0
- package/dist/types-ts4.0/types/editor-actions.d.ts +1 -0
- package/dist/types-ts4.0/types/editor-container-width.d.ts +14 -0
- package/dist/types-ts4.0/types/feature-flags.d.ts +0 -6
- package/dist/types-ts4.0/types/floating-toolbar.d.ts +23 -2
- package/dist/types-ts4.0/types/index.d.ts +2 -1
- package/dist/types-ts4.0/ui/IntlProviderIfMissingWrapper/index.d.ts +6 -0
- package/dist/types-ts4.0/ui/Popup/index.d.ts +1 -0
- package/dist/types-ts4.0/ui/PortalProvider/index.d.ts +2 -1
- package/dist/types-ts4.0/ui/index.d.ts +1 -0
- package/dist/types-ts4.0/ui-menu/ToolbarButton/index.d.ts +1 -1
- package/dist/types-ts4.0/utils/breakout.d.ts +25 -0
- package/dist/types-ts4.0/utils/collab.d.ts +2 -0
- package/dist/types-ts4.0/utils/dom.d.ts +15 -1
- package/dist/types-ts4.0/utils/get-performance-options.d.ts +18 -0
- package/dist/types-ts4.0/utils/getModeFromTheme.d.ts +1 -1
- package/dist/types-ts4.0/utils/index.d.ts +5 -1
- package/dist/types-ts4.0/utils/outdated-browsers.d.ts +1 -0
- package/dist/types-ts4.0/utils/referentiality.d.ts +3 -0
- package/dist/types-ts4.0/utils/sendLogs.d.ts +1 -0
- package/dist/types-ts4.0/with-plugin-state/index.d.ts +4 -2
- package/package.json +12 -10
- package/report.api.md +7 -3
- package/tsconfig.json +2 -1
- package/dist/cjs/__tests_external__/cases/media/test-cases/alt-text.js +0 -45
- package/dist/cjs/__tests_external__/cases/media/test-cases/caption.js +0 -44
- package/dist/cjs/__tests_external__/cases/media/test-cases/index.js +0 -23
- package/dist/cjs/__tests_external__/cases/media/test-cases/upload.js +0 -38
- package/dist/cjs/__tests_external__/page-objects/EditorMedia.js +0 -98
- package/dist/cjs/cypress-config.js +0 -3
- package/dist/es2019/__tests_external__/cases/media/test-cases/alt-text.js +0 -29
- package/dist/es2019/__tests_external__/cases/media/test-cases/caption.js +0 -28
- package/dist/es2019/__tests_external__/cases/media/test-cases/index.js +0 -8
- package/dist/es2019/__tests_external__/cases/media/test-cases/upload.js +0 -23
- package/dist/es2019/__tests_external__/page-objects/EditorMedia.js +0 -51
- package/dist/es2019/cypress-config.js +0 -1
- package/dist/esm/__tests_external__/cases/media/test-cases/alt-text.js +0 -32
- package/dist/esm/__tests_external__/cases/media/test-cases/caption.js +0 -31
- package/dist/esm/__tests_external__/cases/media/test-cases/index.js +0 -10
- package/dist/esm/__tests_external__/cases/media/test-cases/upload.js +0 -26
- package/dist/esm/__tests_external__/page-objects/EditorMedia.js +0 -83
- package/dist/esm/cypress-config.js +0 -1
- package/dist/types/__tests_external__/cases/media/test-cases/alt-text.d.ts +0 -3
- package/dist/types/__tests_external__/cases/media/test-cases/caption.d.ts +0 -3
- package/dist/types/__tests_external__/cases/media/test-cases/index.d.ts +0 -3
- package/dist/types/__tests_external__/cases/media/test-cases/types.d.ts +0 -4
- package/dist/types/__tests_external__/cases/media/test-cases/upload.d.ts +0 -7
- package/dist/types/__tests_external__/page-objects/EditorMedia.d.ts +0 -19
- package/dist/types/cypress-config.d.ts +0 -1
- package/dist/types-ts4.0/__tests_external__/cases/media/test-cases/alt-text.d.ts +0 -3
- package/dist/types-ts4.0/__tests_external__/cases/media/test-cases/caption.d.ts +0 -3
- package/dist/types-ts4.0/__tests_external__/cases/media/test-cases/index.d.ts +0 -3
- package/dist/types-ts4.0/__tests_external__/cases/media/test-cases/types.d.ts +0 -4
- package/dist/types-ts4.0/__tests_external__/cases/media/test-cases/upload.d.ts +0 -7
- package/dist/types-ts4.0/__tests_external__/page-objects/EditorMedia.d.ts +0 -19
- package/dist/types-ts4.0/cypress-config.d.ts +0 -1
|
@@ -7,17 +7,21 @@ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstruct
|
|
|
7
7
|
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
8
8
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
9
9
|
|
|
10
|
+
var _class;
|
|
11
|
+
|
|
10
12
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
11
13
|
|
|
12
14
|
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; } }
|
|
13
15
|
|
|
14
16
|
import React from 'react';
|
|
17
|
+
import PropTypes from 'prop-types';
|
|
15
18
|
import { createPortal, unmountComponentAtNode, unstable_renderSubtreeIntoContainer } from 'react-dom';
|
|
16
19
|
import { injectIntl, RawIntlProvider, useIntl } from 'react-intl-next';
|
|
17
20
|
import { default as AnalyticsReactContext } from '@atlaskit/analytics-next-stable-react-context';
|
|
18
21
|
import { useGlobalTheme } from '@atlaskit/theme/components';
|
|
19
22
|
import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '../../analytics';
|
|
20
23
|
import { EventDispatcher } from '../../event-dispatcher';
|
|
24
|
+
import IntlProviderIfMissingWrapper from '../IntlProviderIfMissingWrapper';
|
|
21
25
|
import { PortalProviderThemeProviders } from './PortalProviderThemesProvider';
|
|
22
26
|
export var PortalProviderAPI = /*#__PURE__*/function (_EventDispatcher) {
|
|
23
27
|
_inherits(PortalProviderAPI, _EventDispatcher);
|
|
@@ -47,8 +51,6 @@ export var PortalProviderAPI = /*#__PURE__*/function (_EventDispatcher) {
|
|
|
47
51
|
_createClass(PortalProviderAPI, [{
|
|
48
52
|
key: "render",
|
|
49
53
|
value: function render(children, container) {
|
|
50
|
-
var _this2 = this;
|
|
51
|
-
|
|
52
54
|
var hasAnalyticsContext = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
53
55
|
var hasIntlContext = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
54
56
|
this.portals.set(container, {
|
|
@@ -56,14 +58,10 @@ export var PortalProviderAPI = /*#__PURE__*/function (_EventDispatcher) {
|
|
|
56
58
|
hasAnalyticsContext: hasAnalyticsContext,
|
|
57
59
|
hasIntlContext: hasIntlContext
|
|
58
60
|
});
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}, children());
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
var wrappedChildren = this.useAnalyticsContext ? /*#__PURE__*/React.createElement(AnalyticsContextWrapper, null, childrenWithThemeProviders()) : childrenWithThemeProviders();
|
|
61
|
+
var childrenWithThemeProviders = /*#__PURE__*/React.createElement(PortalProviderThemeProviders, {
|
|
62
|
+
mode: this.themeMode
|
|
63
|
+
}, children());
|
|
64
|
+
var wrappedChildren = this.useAnalyticsContext ? /*#__PURE__*/React.createElement(AnalyticsContextWrapper, null, childrenWithThemeProviders) : childrenWithThemeProviders;
|
|
67
65
|
|
|
68
66
|
if (hasIntlContext) {
|
|
69
67
|
wrappedChildren = /*#__PURE__*/React.createElement(RawIntlProvider, {
|
|
@@ -79,36 +77,33 @@ export var PortalProviderAPI = /*#__PURE__*/function (_EventDispatcher) {
|
|
|
79
77
|
}, {
|
|
80
78
|
key: "forceUpdate",
|
|
81
79
|
value: function forceUpdate(_ref) {
|
|
82
|
-
var
|
|
80
|
+
var _this2 = this;
|
|
83
81
|
|
|
84
82
|
var intl = _ref.intl,
|
|
85
83
|
themeMode = _ref.themeMode;
|
|
86
84
|
this.intl = intl;
|
|
87
85
|
this.themeMode = themeMode;
|
|
88
86
|
this.portals.forEach(function (portal, container) {
|
|
89
|
-
if (!portal.hasAnalyticsContext && !
|
|
87
|
+
if (!portal.hasAnalyticsContext && !_this2.useAnalyticsContext && !portal.hasIntlContext) {
|
|
90
88
|
return;
|
|
91
89
|
}
|
|
92
90
|
|
|
93
91
|
var wrappedChildren = portal.children();
|
|
92
|
+
var childrenWithThemeProviders = /*#__PURE__*/React.createElement(PortalProviderThemeProviders, {
|
|
93
|
+
mode: themeMode
|
|
94
|
+
}, wrappedChildren);
|
|
94
95
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
mode: themeMode
|
|
98
|
-
}, wrappedChildren);
|
|
99
|
-
};
|
|
100
|
-
|
|
101
|
-
if (portal.hasAnalyticsContext && _this3.useAnalyticsContext) {
|
|
102
|
-
wrappedChildren = /*#__PURE__*/React.createElement(AnalyticsContextWrapper, null, childrenWithThemeProviders());
|
|
96
|
+
if (portal.hasAnalyticsContext && _this2.useAnalyticsContext) {
|
|
97
|
+
wrappedChildren = /*#__PURE__*/React.createElement(AnalyticsContextWrapper, null, childrenWithThemeProviders);
|
|
103
98
|
}
|
|
104
99
|
|
|
105
100
|
if (portal.hasIntlContext) {
|
|
106
101
|
wrappedChildren = /*#__PURE__*/React.createElement(RawIntlProvider, {
|
|
107
|
-
value:
|
|
108
|
-
}, childrenWithThemeProviders
|
|
102
|
+
value: _this2.intl
|
|
103
|
+
}, childrenWithThemeProviders);
|
|
109
104
|
}
|
|
110
105
|
|
|
111
|
-
unstable_renderSubtreeIntoContainer(
|
|
106
|
+
unstable_renderSubtreeIntoContainer(_this2.context, wrappedChildren, container);
|
|
112
107
|
});
|
|
113
108
|
}
|
|
114
109
|
}, {
|
|
@@ -155,13 +150,13 @@ var BasePortalProvider = /*#__PURE__*/function (_React$Component) {
|
|
|
155
150
|
var _super2 = _createSuper(BasePortalProvider);
|
|
156
151
|
|
|
157
152
|
function BasePortalProvider(props) {
|
|
158
|
-
var
|
|
153
|
+
var _this3;
|
|
159
154
|
|
|
160
155
|
_classCallCheck(this, BasePortalProvider);
|
|
161
156
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
return
|
|
157
|
+
_this3 = _super2.call(this, props);
|
|
158
|
+
_this3.portalProviderAPI = new PortalProviderAPI(props.intl, props.onAnalyticsEvent, props.useAnalyticsContext, props.themeMode);
|
|
159
|
+
return _this3;
|
|
165
160
|
}
|
|
166
161
|
|
|
167
162
|
_createClass(BasePortalProvider, [{
|
|
@@ -185,51 +180,66 @@ var BasePortalProvider = /*#__PURE__*/function (_React$Component) {
|
|
|
185
180
|
_defineProperty(BasePortalProvider, "displayName", 'PortalProvider');
|
|
186
181
|
|
|
187
182
|
export var PortalProvider = injectIntl(BasePortalProvider);
|
|
188
|
-
export var PortalProviderWithThemeProviders = function PortalProviderWithThemeProviders(
|
|
183
|
+
export var PortalProviderWithThemeProviders = function PortalProviderWithThemeProviders(_ref2) {
|
|
184
|
+
var onAnalyticsEvent = _ref2.onAnalyticsEvent,
|
|
185
|
+
useAnalyticsContext = _ref2.useAnalyticsContext,
|
|
186
|
+
render = _ref2.render;
|
|
187
|
+
return /*#__PURE__*/React.createElement(IntlProviderIfMissingWrapper, null, /*#__PURE__*/React.createElement(PortalProviderWithThemeAndIntlProviders, {
|
|
188
|
+
onAnalyticsEvent: onAnalyticsEvent,
|
|
189
|
+
useAnalyticsContext: useAnalyticsContext,
|
|
190
|
+
render: render
|
|
191
|
+
}));
|
|
192
|
+
};
|
|
193
|
+
|
|
194
|
+
var PortalProviderWithThemeAndIntlProviders = function PortalProviderWithThemeAndIntlProviders(_ref3) {
|
|
195
|
+
var onAnalyticsEvent = _ref3.onAnalyticsEvent,
|
|
196
|
+
useAnalyticsContext = _ref3.useAnalyticsContext,
|
|
197
|
+
render = _ref3.render;
|
|
189
198
|
var intl = useIntl();
|
|
190
199
|
var globalTheme = useGlobalTheme();
|
|
191
200
|
return /*#__PURE__*/React.createElement(BasePortalProvider, {
|
|
192
201
|
intl: intl,
|
|
193
202
|
themeMode: globalTheme.mode,
|
|
194
|
-
onAnalyticsEvent:
|
|
195
|
-
useAnalyticsContext:
|
|
196
|
-
render:
|
|
203
|
+
onAnalyticsEvent: onAnalyticsEvent,
|
|
204
|
+
useAnalyticsContext: useAnalyticsContext,
|
|
205
|
+
render: render
|
|
197
206
|
});
|
|
198
207
|
};
|
|
208
|
+
|
|
199
209
|
export var PortalRenderer = /*#__PURE__*/function (_React$Component2) {
|
|
200
210
|
_inherits(PortalRenderer, _React$Component2);
|
|
201
211
|
|
|
202
212
|
var _super3 = _createSuper(PortalRenderer);
|
|
203
213
|
|
|
204
214
|
function PortalRenderer(props) {
|
|
205
|
-
var
|
|
215
|
+
var _this4;
|
|
206
216
|
|
|
207
217
|
_classCallCheck(this, PortalRenderer);
|
|
208
218
|
|
|
209
|
-
|
|
219
|
+
_this4 = _super3.call(this, props);
|
|
210
220
|
|
|
211
|
-
_defineProperty(_assertThisInitialized(
|
|
212
|
-
return
|
|
221
|
+
_defineProperty(_assertThisInitialized(_this4), "handleUpdate", function (portals) {
|
|
222
|
+
return _this4.setState({
|
|
213
223
|
portals: portals
|
|
214
224
|
});
|
|
215
225
|
});
|
|
216
226
|
|
|
217
|
-
props.portalProviderAPI.setContext(_assertThisInitialized(
|
|
218
|
-
props.portalProviderAPI.on('update',
|
|
219
|
-
|
|
227
|
+
props.portalProviderAPI.setContext(_assertThisInitialized(_this4));
|
|
228
|
+
props.portalProviderAPI.on('update', _this4.handleUpdate);
|
|
229
|
+
_this4.state = {
|
|
220
230
|
portals: new Map()
|
|
221
231
|
};
|
|
222
|
-
return
|
|
232
|
+
return _this4;
|
|
223
233
|
}
|
|
224
234
|
|
|
225
235
|
_createClass(PortalRenderer, [{
|
|
226
236
|
key: "render",
|
|
227
237
|
value: function render() {
|
|
228
238
|
var portals = this.state.portals;
|
|
229
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, Array.from(portals.entries()).map(function (
|
|
230
|
-
var
|
|
231
|
-
container =
|
|
232
|
-
children =
|
|
239
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, Array.from(portals.entries()).map(function (_ref4) {
|
|
240
|
+
var _ref5 = _slicedToArray(_ref4, 2),
|
|
241
|
+
container = _ref5[0],
|
|
242
|
+
children = _ref5[1];
|
|
233
243
|
|
|
234
244
|
return /*#__PURE__*/createPortal(children, container);
|
|
235
245
|
}));
|
|
@@ -246,8 +256,7 @@ var dummyAnalyticsContext = {
|
|
|
246
256
|
getAtlaskitAnalyticsContext: function getAtlaskitAnalyticsContext() {},
|
|
247
257
|
getAtlaskitAnalyticsEventHandlers: function getAtlaskitAnalyticsEventHandlers() {}
|
|
248
258
|
};
|
|
249
|
-
|
|
250
|
-
var AnalyticsContextWrapper = /*#__PURE__*/function (_React$Component3) {
|
|
259
|
+
var AnalyticsContextWrapper = (_class = /*#__PURE__*/function (_React$Component3) {
|
|
251
260
|
_inherits(AnalyticsContextWrapper, _React$Component3);
|
|
252
261
|
|
|
253
262
|
var _super4 = _createSuper(AnalyticsContextWrapper);
|
|
@@ -261,10 +270,10 @@ var AnalyticsContextWrapper = /*#__PURE__*/function (_React$Component3) {
|
|
|
261
270
|
_createClass(AnalyticsContextWrapper, [{
|
|
262
271
|
key: "render",
|
|
263
272
|
value: function render() {
|
|
264
|
-
var
|
|
273
|
+
var _ref6 = this.context.contextAdapter.analytics || {
|
|
265
274
|
value: dummyAnalyticsContext
|
|
266
275
|
},
|
|
267
|
-
value =
|
|
276
|
+
value = _ref6.value;
|
|
268
277
|
|
|
269
278
|
return /*#__PURE__*/React.createElement(AnalyticsReactContext.Provider, {
|
|
270
279
|
value: value
|
|
@@ -273,4 +282,6 @@ var AnalyticsContextWrapper = /*#__PURE__*/function (_React$Component3) {
|
|
|
273
282
|
}]);
|
|
274
283
|
|
|
275
284
|
return AnalyticsContextWrapper;
|
|
276
|
-
}(React.Component)
|
|
285
|
+
}(React.Component), _defineProperty(_class, "contextTypes", {
|
|
286
|
+
contextAdapter: PropTypes.object
|
|
287
|
+
}), _class);
|
package/dist/esm/ui/index.js
CHANGED
|
@@ -15,4 +15,5 @@ export { WithCreateAnalyticsEvent } from './WithCreateAnalyticsEvent';
|
|
|
15
15
|
export { messages as expandMessages, sharedExpandStyles, ExpandIconWrapper, expandLayoutWrapperStyle, ExpandLayoutWrapperWithRef } from './Expand';
|
|
16
16
|
export { ErrorMessage, HelperMessage, ValidMessage } from './Messages';
|
|
17
17
|
export { clearNextSiblingMarginTopStyle, clearNextSiblingBlockMarkMarginTopStyle } from './clear-next-sibling-margin-top';
|
|
18
|
-
export { IntlErrorBoundary, REACT_INTL_ERROR_MESSAGE } from './IntlErrorBoundary';
|
|
18
|
+
export { IntlErrorBoundary, REACT_INTL_ERROR_MESSAGE } from './IntlErrorBoundary';
|
|
19
|
+
export { default as IntlProviderIfMissingWrapper } from './IntlProviderIfMissingWrapper';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { akEditorBreakoutPadding, akEditorDefaultLayoutWidth, akEditorFullWidthLayoutWidth, akEditorWideLayoutWidth, breakoutWideScaleRatio } from '@atlaskit/editor-shared-styles';
|
|
2
2
|
import { mapBreakpointToLayoutMaxWidth } from '../ui/BaseTheme';
|
|
3
3
|
import { getBreakpoint } from '../ui/WidthProvider';
|
|
4
|
+
import { parsePx } from './dom';
|
|
4
5
|
/**
|
|
5
6
|
* Variables required to construct a context for breakout ssr inline script.
|
|
6
7
|
*
|
|
@@ -15,6 +16,11 @@ var breakoutConsts = {
|
|
|
15
16
|
wideLayoutWidth: akEditorWideLayoutWidth,
|
|
16
17
|
mapBreakpointToLayoutMaxWidth: mapBreakpointToLayoutMaxWidth,
|
|
17
18
|
getBreakpoint: getBreakpoint,
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Consumers are opinionated that this will always return a string ending in
|
|
22
|
+
* `px` when called with `full-width` or `wide` as the layout parameter.
|
|
23
|
+
*/
|
|
18
24
|
calcBreakoutWidth: function calcBreakoutWidth(layout, containerWidth) {
|
|
19
25
|
var effectiveFullWidth = containerWidth - breakoutConsts.padding;
|
|
20
26
|
|
|
@@ -62,4 +68,43 @@ export var absoluteBreakoutWidth = function absoluteBreakoutWidth(layout, contai
|
|
|
62
68
|
};
|
|
63
69
|
export { breakoutConsts };
|
|
64
70
|
export var calcWideWidth = breakoutConsts.calcWideWidth;
|
|
65
|
-
export var calcBreakoutWidth = breakoutConsts.calcBreakoutWidth;
|
|
71
|
+
export var calcBreakoutWidth = breakoutConsts.calcBreakoutWidth;
|
|
72
|
+
export function calculateBreakoutStyles(_ref) {
|
|
73
|
+
var mode = _ref.mode,
|
|
74
|
+
widthStateLineLength = _ref.widthStateLineLength,
|
|
75
|
+
widthStateWidth = _ref.widthStateWidth;
|
|
76
|
+
var breakoutWidth = calcBreakoutWidth(mode, widthStateWidth);
|
|
77
|
+
var breakoutWidthPx = parsePx(breakoutWidth);
|
|
78
|
+
|
|
79
|
+
if (!widthStateLineLength) {
|
|
80
|
+
// lineLength is not normally undefined when this is run for,
|
|
81
|
+
// consumers but can be in SSR, initial render or test (jsdom)
|
|
82
|
+
// environments.
|
|
83
|
+
//
|
|
84
|
+
// this approach doesn't work well with position: fixed, so
|
|
85
|
+
// it breaks things like sticky headers.
|
|
86
|
+
//
|
|
87
|
+
// It can also cause bluriness for some child content (such as iframes)
|
|
88
|
+
return {
|
|
89
|
+
type: 'line-length-unknown',
|
|
90
|
+
width: breakoutWidth,
|
|
91
|
+
transform: 'translateX(-50%)',
|
|
92
|
+
marginLeft: '50%'
|
|
93
|
+
};
|
|
94
|
+
} // NOTE
|
|
95
|
+
// At time of writing -- when toggling between full-width and
|
|
96
|
+
// full-page appearance modes. There is a slight delay before
|
|
97
|
+
// the widthState is updated.
|
|
98
|
+
// During this period -- the marginLeftPx will be incorrect.
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
var marginLeftPx = -(breakoutWidthPx - widthStateLineLength) / 2;
|
|
102
|
+
return {
|
|
103
|
+
type: 'line-length-known',
|
|
104
|
+
width: breakoutWidth,
|
|
105
|
+
marginLeft: "".concat(marginLeftPx, "px")
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
export function calcBreakoutWidthPx(mode, widthStateWidth) {
|
|
109
|
+
return parsePx(calcBreakoutWidth(mode, widthStateWidth));
|
|
110
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export var getParticipantsCount = function getParticipantsCount(editorState) {
|
|
2
|
+
var _collabEditPlugin$$pa, _collabEditPlugin$$pa2;
|
|
3
|
+
|
|
4
|
+
// TODO: ED-15663
|
|
5
|
+
// Please, do not copy or use this kind of code below
|
|
6
|
+
// @ts-ignore
|
|
7
|
+
if (!editorState || !editorState['collabEditPlugin$']) {
|
|
8
|
+
return 1;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
var participantsCount = (_collabEditPlugin$$pa = (_collabEditPlugin$$pa2 = editorState['collabEditPlugin$'].participants) === null || _collabEditPlugin$$pa2 === void 0 ? void 0 : _collabEditPlugin$$pa2.size()) !== null && _collabEditPlugin$$pa !== void 0 ? _collabEditPlugin$$pa : 1;
|
|
12
|
+
return participantsCount;
|
|
13
|
+
};
|
package/dist/esm/utils/dom.js
CHANGED
|
@@ -90,6 +90,22 @@ export function closest(node, s) {
|
|
|
90
90
|
export function closestElement(node, s) {
|
|
91
91
|
return closest(node, s);
|
|
92
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* Util for converting a css pixel size value to a number (of pixels).
|
|
95
|
+
*
|
|
96
|
+
* ie.
|
|
97
|
+
* ```ts
|
|
98
|
+
* const pixels = parsePx('10px')
|
|
99
|
+
* // ^$ const pixels: number
|
|
100
|
+
* ```
|
|
101
|
+
* * ```ts
|
|
102
|
+
* const pixels = parsePx('10')
|
|
103
|
+
* // ^$ const pixels: number | undefined
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
// At time of writting prettier would strip the extend here.
|
|
107
|
+
// prettier-ignore
|
|
108
|
+
|
|
93
109
|
export function parsePx(pxStr) {
|
|
94
110
|
if (!pxStr.endsWith('px')) {
|
|
95
111
|
return undefined;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { ACTION, ACTION_SUBJECT, EVENT_TYPE } from '../analytics';
|
|
2
|
+
import { getParticipantsCount } from './collab';
|
|
3
|
+
import { startMeasure, stopMeasure } from './performance/measure'; // This was existing logic when converting from ReactNodeView
|
|
4
|
+
// our current sampling for this event is not bound by node.type
|
|
5
|
+
|
|
6
|
+
var nodeViewRenderedEventsCounter = 0;
|
|
7
|
+
var DEFAULT_SAMPLING_RATE = 100;
|
|
8
|
+
var DEFAULT_SLOW_THRESHOLD = 7;
|
|
9
|
+
export function getPerformanceOptions(view) {
|
|
10
|
+
var _nodeViewTracking$sam, _nodeViewTracking$slo;
|
|
11
|
+
|
|
12
|
+
// TODO: ED-15663
|
|
13
|
+
// Please, do not copy or use this kind of code below
|
|
14
|
+
// @ts-ignore
|
|
15
|
+
var fakePluginKey = {
|
|
16
|
+
key: 'analyticsPlugin$',
|
|
17
|
+
getState: function getState(state) {
|
|
18
|
+
return state['analyticsPlugin$'];
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
var pluginState = fakePluginKey.getState(view.state);
|
|
22
|
+
var nodeViewTracking = pluginState && pluginState.performanceTracking ? pluginState.performanceTracking.nodeViewTracking || {} : {};
|
|
23
|
+
var samplingRate = (_nodeViewTracking$sam = nodeViewTracking.samplingRate) !== null && _nodeViewTracking$sam !== void 0 ? _nodeViewTracking$sam : DEFAULT_SAMPLING_RATE;
|
|
24
|
+
var slowThreshold = (_nodeViewTracking$slo = nodeViewTracking.slowThreshold) !== null && _nodeViewTracking$slo !== void 0 ? _nodeViewTracking$slo : DEFAULT_SLOW_THRESHOLD;
|
|
25
|
+
return {
|
|
26
|
+
trackingEnabled: !!nodeViewTracking.enabled,
|
|
27
|
+
samplingRate: samplingRate,
|
|
28
|
+
slowThreshold: slowThreshold
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export function startMeasureReactNodeViewRendered(_ref) {
|
|
32
|
+
var nodeTypeName = _ref.nodeTypeName;
|
|
33
|
+
startMeasure("\uD83E\uDD89".concat(nodeTypeName, "::ReactNodeView"));
|
|
34
|
+
}
|
|
35
|
+
export function stopMeasureReactNodeViewRendered(_ref2) {
|
|
36
|
+
var nodeTypeName = _ref2.nodeTypeName,
|
|
37
|
+
dispatchAnalyticsEvent = _ref2.dispatchAnalyticsEvent,
|
|
38
|
+
editorState = _ref2.editorState,
|
|
39
|
+
samplingRate = _ref2.samplingRate,
|
|
40
|
+
slowThreshold = _ref2.slowThreshold;
|
|
41
|
+
stopMeasure("\uD83E\uDD89".concat(nodeTypeName, "::ReactNodeView"), function (duration) {
|
|
42
|
+
if (++nodeViewRenderedEventsCounter % samplingRate === 0 && duration > slowThreshold) {
|
|
43
|
+
dispatchAnalyticsEvent({
|
|
44
|
+
action: ACTION.REACT_NODEVIEW_RENDERED,
|
|
45
|
+
actionSubject: ACTION_SUBJECT.EDITOR,
|
|
46
|
+
eventType: EVENT_TYPE.OPERATIONAL,
|
|
47
|
+
attributes: {
|
|
48
|
+
node: nodeTypeName,
|
|
49
|
+
duration: duration,
|
|
50
|
+
participants: getParticipantsCount(editorState)
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
package/dist/esm/utils/index.js
CHANGED
|
@@ -5,7 +5,7 @@ export { default as ErrorReporter } from './error-reporter';
|
|
|
5
5
|
export { isPastDate, timestampToIsoFormat, timestampToString, timestampToTaskContext, timestampToUTCDate, todayTimestampInUTC } from './date';
|
|
6
6
|
export { isElementInTableCell, isTextSelection, isLastItemMediaGroup, setNodeSelection, setTextSelection, nonNullable, stepAddsOneOf, stepHasSlice, extractSliceFromStep, isValidPosition } from './editor-core-utils';
|
|
7
7
|
export { withImageLoader } from './imageLoader';
|
|
8
|
-
export { absoluteBreakoutWidth, calcBreakoutWidth, calcWideWidth, breakoutConsts } from './breakout';
|
|
8
|
+
export { absoluteBreakoutWidth, calcBreakoutWidth, calcWideWidth, breakoutConsts, calculateBreakoutStyles, calcBreakoutWidthPx } from './breakout';
|
|
9
9
|
export { findChangedNodesFromTransaction, validNode, validateNodes, isType, isParagraph, isText, isLinkMark, SelectedState, isNodeSelectedOrInRange, isSupportedInParent } from './nodes';
|
|
10
10
|
export { pluginFactory } from './plugin-state-factory';
|
|
11
11
|
export { getFragmentBackingArray, mapFragment, mapSlice, flatmap, mapChildren } from './slice';
|
|
@@ -26,8 +26,12 @@ export { isTextInput } from './is-text-input';
|
|
|
26
26
|
export { ZERO_WIDTH_SPACE, ZERO_WIDTH_JOINER } from './whitespace';
|
|
27
27
|
export { shouldForceTracking } from './should-force-tracking';
|
|
28
28
|
export { getModeFromTheme } from './getModeFromTheme';
|
|
29
|
+
export { getPerformanceOptions, startMeasureReactNodeViewRendered, stopMeasureReactNodeViewRendered } from './get-performance-options';
|
|
29
30
|
export { sniffUserBrowserExtensions } from './browser-extensions';
|
|
30
31
|
export { RenderCountProfiler } from './profiler/render-count';
|
|
31
32
|
export { validateADFEntity, validationErrorHandler } from './validate-using-spec';
|
|
32
33
|
export { getShallowPropsDifference, getPropsDifference } from './compare-props';
|
|
33
|
-
export { useComponentRenderTracking } from './performance/hooks/use-component-render-tracking';
|
|
34
|
+
export { useComponentRenderTracking } from './performance/hooks/use-component-render-tracking';
|
|
35
|
+
export { isOutdatedBrowser } from './outdated-browsers';
|
|
36
|
+
export { isReferencedSource } from './referentiality';
|
|
37
|
+
export { sendLogs } from './sendLogs';
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export var isOutdatedBrowser = function isOutdatedBrowser(userAgent) {
|
|
2
|
+
// Take browsers in both Desktop and Mobile (includes Chrome, Firefox, Edge and Safari) within last 2 years
|
|
3
|
+
var chrome = /Chrome\//.test(userAgent) && !/OPR\//.test(userAgent);
|
|
4
|
+
var chromeVersion = chrome ? parseInt((userAgent.match(/Chrome\/(\d+)/) || [])[1], 10) : 0;
|
|
5
|
+
|
|
6
|
+
if (chromeVersion >= 84) {
|
|
7
|
+
return false;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
var gecko = /gecko\/\d/i.test(userAgent);
|
|
11
|
+
var geckoVersion = gecko ? parseInt((userAgent.match(/Firefox\/(\d+)/) || [])[1], 10) : 0;
|
|
12
|
+
|
|
13
|
+
if (geckoVersion >= 84) {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
var edge = /Edge\/(\d+)/.exec(userAgent);
|
|
18
|
+
var edgeVersion = edge ? +edge[1] : 0;
|
|
19
|
+
|
|
20
|
+
if (edgeVersion >= 84) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
var safari = !chrome && !gecko && /Version\/([0-9\._]+).*Safari/.test(userAgent);
|
|
25
|
+
var safariVersion = safari ? parseInt((userAgent.match(/Version\/([0-9\._]+).*Safari/) || [])[1], 10) : 0;
|
|
26
|
+
|
|
27
|
+
if (safariVersion >= 12) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return true;
|
|
32
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export var isReferencedSource = function isReferencedSource(state, node) {
|
|
2
|
+
var _node$attrs, _node$marks, _node$marks$find, _node$marks$find$attr;
|
|
3
|
+
|
|
4
|
+
if (!node) {
|
|
5
|
+
return false;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
var found = false; // Handle nodes having 2 uuids. They could have a localId or a fragment. Regardless this needs
|
|
9
|
+
// to check if either id is used by a data consumer.
|
|
10
|
+
|
|
11
|
+
var localIds = new Set([(_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.localId, (_node$marks = node.marks) === null || _node$marks === void 0 ? void 0 : (_node$marks$find = _node$marks.find(function (mark) {
|
|
12
|
+
return mark.type === state.schema.marks.fragment;
|
|
13
|
+
})) === null || _node$marks$find === void 0 ? void 0 : (_node$marks$find$attr = _node$marks$find.attrs) === null || _node$marks$find$attr === void 0 ? void 0 : _node$marks$find$attr.localId].filter(Boolean)); // If there are no uuids on the node then it's not possible for it to be referenced anywhere.
|
|
14
|
+
|
|
15
|
+
if (!localIds.size) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
state.doc.descendants(function (node) {
|
|
20
|
+
var _dataConsumer$attrs$s, _dataConsumer$attrs$s2;
|
|
21
|
+
|
|
22
|
+
if (found) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
var dataConsumer = node.marks.find(function (mark) {
|
|
27
|
+
return mark.type === state.schema.marks.dataConsumer;
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
if (!dataConsumer) {
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
found = (_dataConsumer$attrs$s = (_dataConsumer$attrs$s2 = dataConsumer.attrs.sources) === null || _dataConsumer$attrs$s2 === void 0 ? void 0 : _dataConsumer$attrs$s2.some(function (src) {
|
|
35
|
+
return localIds.has(src);
|
|
36
|
+
})) !== null && _dataConsumer$attrs$s !== void 0 ? _dataConsumer$attrs$s : false;
|
|
37
|
+
return !found;
|
|
38
|
+
});
|
|
39
|
+
return found;
|
|
40
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export var sendLogs = function sendLogs(body) {
|
|
2
|
+
return fetch('https://analytics.atlassian.com/analytics/events', {
|
|
3
|
+
method: 'POST',
|
|
4
|
+
headers: {
|
|
5
|
+
Accept: 'application/json, */*',
|
|
6
|
+
'Content-Type': 'application/json'
|
|
7
|
+
},
|
|
8
|
+
body: JSON.stringify(body)
|
|
9
|
+
});
|
|
10
|
+
};
|
package/dist/esm/version.json
CHANGED