@atlaskit/editor-core 204.6.3 → 204.7.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 +21 -0
- package/dist/cjs/ui/Addon/click-area-helper.js +5 -2
- package/dist/cjs/ui/Appearance/FullPage/FullPageContentArea.js +5 -1
- package/dist/cjs/utils/extensions.js +38 -4
- package/dist/cjs/version-wrapper.js +1 -1
- package/dist/es2019/ui/Addon/click-area-helper.js +5 -2
- package/dist/es2019/ui/Appearance/FullPage/FullPageContentArea.js +5 -1
- package/dist/es2019/utils/extensions.js +28 -4
- package/dist/es2019/version-wrapper.js +1 -1
- package/dist/esm/ui/Addon/click-area-helper.js +5 -2
- package/dist/esm/ui/Appearance/FullPage/FullPageContentArea.js +5 -1
- package/dist/esm/utils/extensions.js +38 -4
- package/dist/esm/version-wrapper.js +1 -1
- package/dist/types/create-editor/create-universal-preset.d.ts +1 -0
- package/dist/types/presets/universal.d.ts +1 -0
- package/dist/types/presets/useUniversalPreset.d.ts +1 -0
- package/dist/types/ui/Appearance/FullPage/FullPageContentArea.d.ts +1 -1
- package/dist/types-ts4.5/create-editor/create-universal-preset.d.ts +1 -0
- package/dist/types-ts4.5/presets/universal.d.ts +1 -0
- package/dist/types-ts4.5/presets/useUniversalPreset.d.ts +1 -0
- package/dist/types-ts4.5/ui/Appearance/FullPage/FullPageContentArea.d.ts +1 -1
- package/package.json +13 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# @atlaskit/editor-core
|
|
2
2
|
|
|
3
|
+
## 204.7.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#130191](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/130191)
|
|
8
|
+
[`e1cf89e2fc15b`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/e1cf89e2fc15b) -
|
|
9
|
+
[ED-26903] Add class to full page editor content area region
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Updated dependencies
|
|
14
|
+
|
|
15
|
+
## 204.6.4
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- [#130479](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/130479)
|
|
20
|
+
[`e78bc5ec9103d`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/e78bc5ec9103d) -
|
|
21
|
+
Call quick insert get items with dummy extension API if extension plugin is not enabled.
|
|
22
|
+
- Updated dependencies
|
|
23
|
+
|
|
3
24
|
## 204.6.3
|
|
4
25
|
|
|
5
26
|
### Patch Changes
|
|
@@ -8,6 +8,7 @@ var _collab = require("@atlaskit/editor-common/collab");
|
|
|
8
8
|
var _commands = require("@atlaskit/editor-common/commands");
|
|
9
9
|
var _selection = require("@atlaskit/editor-common/selection");
|
|
10
10
|
var _utils = require("@atlaskit/editor-common/utils");
|
|
11
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
11
12
|
var _contentComponentWrapper = require("./ClickAreaBlock/contentComponentWrapper");
|
|
12
13
|
// we ignore all of the clicks made inside <div class="ak-editor-content-area" /> (but not clicks on the node itself)
|
|
13
14
|
var insideContentArea = function insideContentArea(ref) {
|
|
@@ -45,7 +46,7 @@ var checkForModal = exports.checkForModal = function checkForModal(target) {
|
|
|
45
46
|
return true;
|
|
46
47
|
};
|
|
47
48
|
var clickAreaClickHandler = exports.clickAreaClickHandler = function clickAreaClickHandler(view, event) {
|
|
48
|
-
var _view$hasFocus, _event$currentTarget;
|
|
49
|
+
var _view$hasFocus, _target$parentElement, _event$currentTarget;
|
|
49
50
|
var isEditorFocused = !!(view !== null && view !== void 0 && (_view$hasFocus = view.hasFocus) !== null && _view$hasFocus !== void 0 && _view$hasFocus.call(view));
|
|
50
51
|
if (!(event.target instanceof HTMLElement)) {
|
|
51
52
|
return;
|
|
@@ -79,7 +80,9 @@ var clickAreaClickHandler = exports.clickAreaClickHandler = function clickAreaCl
|
|
|
79
80
|
// Ignored via go/ees005
|
|
80
81
|
// eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
81
82
|
(0, _utils.closestElement)(selection === null || selection === void 0 ? void 0 : selection.anchorNode, '[data-editor-popup]');
|
|
82
|
-
|
|
83
|
+
|
|
84
|
+
// For clicks directly on the content component -- they should not be ignored
|
|
85
|
+
var isContentComponent = (0, _platformFeatureFlags.fg)('platform_editor_keep_focus_on_content_comp_clicks') ? target === null || target === void 0 || (_target$parentElement = target.parentElement) === null || _target$parentElement === void 0 ? void 0 : _target$parentElement.closest("[".concat(_contentComponentWrapper.ignoreAttribute, "]")) : !!(0, _utils.closestElement)(target, "[".concat(_contentComponentWrapper.ignoreAttribute, "]")) || (target === null || target === void 0 ? void 0 : target.getAttribute(_contentComponentWrapper.ignoreAttribute)) === 'true';
|
|
83
86
|
|
|
84
87
|
// This is a super workaround to find when events are coming from Confluence InlineComment modal
|
|
85
88
|
// We don't own those components, so we can't change them
|
|
@@ -11,6 +11,7 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
11
11
|
var _react2 = require("@emotion/react");
|
|
12
12
|
var _reactIntlNext = require("react-intl-next");
|
|
13
13
|
var _messages = require("@atlaskit/editor-common/messages");
|
|
14
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
14
15
|
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
|
15
16
|
var _ClickAreaBlock = _interopRequireDefault(require("../../Addon/ClickAreaBlock"));
|
|
16
17
|
var _contentComponentWrapper = require("../../Addon/ClickAreaBlock/contentComponentWrapper");
|
|
@@ -86,7 +87,10 @@ var Content = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
86
87
|
fullWidthMode: fullWidthMode,
|
|
87
88
|
layoutMaxWidth: theme.layoutMaxWidth,
|
|
88
89
|
isEditorToolbarHidden: props.isEditorToolbarHidden
|
|
89
|
-
}))
|
|
90
|
+
}))
|
|
91
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop
|
|
92
|
+
,
|
|
93
|
+
className: (0, _platformFeatureFlags.fg)('platform_editor_lcm_styling_uplift') ? 'ak-editor-content-area-region' : undefined,
|
|
90
94
|
"data-editor-editable-content": true,
|
|
91
95
|
"data-editor-primary-toolbar-hidden": props.isEditorToolbarHidden && (0, _experiments.editorExperiment)('platform_editor_controls', 'variant1') ? 'true' : undefined,
|
|
92
96
|
role: "region",
|
|
@@ -52,6 +52,31 @@ function sendExtensionQuickInsertAnalytics(item, selection, createAnalyticsEvent
|
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
|
+
var showDummyAPIWarning = function showDummyAPIWarning(location) {
|
|
56
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
57
|
+
// eslint-disable-next-line no-console
|
|
58
|
+
console.warn("Extension plugin not attached to editor - cannot use extension API in ".concat(location));
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
var dummyExtensionAPI = {
|
|
62
|
+
editInContextPanel: function editInContextPanel() {
|
|
63
|
+
return showDummyAPIWarning('editInContextPanel');
|
|
64
|
+
},
|
|
65
|
+
_editInLegacyMacroBrowser: function _editInLegacyMacroBrowser() {
|
|
66
|
+
return showDummyAPIWarning('_editInLegacyMacroBrowser');
|
|
67
|
+
},
|
|
68
|
+
doc: {
|
|
69
|
+
insertAfter: function insertAfter() {
|
|
70
|
+
return showDummyAPIWarning('doc:insertAfter');
|
|
71
|
+
},
|
|
72
|
+
scrollTo: function scrollTo() {
|
|
73
|
+
return showDummyAPIWarning('doc:scrollTo');
|
|
74
|
+
},
|
|
75
|
+
update: function update() {
|
|
76
|
+
return showDummyAPIWarning('doc:update');
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
};
|
|
55
80
|
function extensionProviderToQuickInsertProvider(_x, _x2, _x3, _x4) {
|
|
56
81
|
return _extensionProviderToQuickInsertProvider.apply(this, arguments);
|
|
57
82
|
} // Ignored via go/ees005
|
|
@@ -92,10 +117,8 @@ function _extensionProviderToQuickInsertProvider() {
|
|
|
92
117
|
if ((0, _platformFeatureFlags.fg)('platform_editor_add_extension_api_to_quick_insert')) {
|
|
93
118
|
var _apiRef$current;
|
|
94
119
|
var extensionAPI = apiRef === null || apiRef === void 0 || (_apiRef$current = apiRef.current) === null || _apiRef$current === void 0 || (_apiRef$current = _apiRef$current.extension) === null || _apiRef$current === void 0 || (_apiRef$current = _apiRef$current.actions) === null || _apiRef$current === void 0 ? void 0 : _apiRef$current.api();
|
|
95
|
-
// While
|
|
96
|
-
//
|
|
97
|
-
// - The extension module handler can only be called from an active editor with the extension plugin
|
|
98
|
-
// Therefore this should always be run unless there is something very wrong.
|
|
120
|
+
// While this should only run when the extension some setups of editor
|
|
121
|
+
// may not have the extension API
|
|
99
122
|
if (extensionAPI) {
|
|
100
123
|
(0, _extensions.resolveImport)(item.node(extensionAPI)).then(function (node) {
|
|
101
124
|
sendExtensionQuickInsertAnalytics(item, state.selection, createAnalyticsEvent, source);
|
|
@@ -103,6 +126,17 @@ function _extensionProviderToQuickInsertProvider() {
|
|
|
103
126
|
editorActions.replaceSelection(node);
|
|
104
127
|
}
|
|
105
128
|
});
|
|
129
|
+
} else {
|
|
130
|
+
// Originally it was understood we could only use this if we were using the extension plugin
|
|
131
|
+
// However there are some edge cases where this is not true (ie. in jira)
|
|
132
|
+
// Since making it optional now would be a breaking change - instead we can just pass a dummy
|
|
133
|
+
// extension API to consumers that warns them of using the methods.
|
|
134
|
+
(0, _extensions.resolveImport)(item.node(dummyExtensionAPI)).then(function (node) {
|
|
135
|
+
sendExtensionQuickInsertAnalytics(item, state.selection, createAnalyticsEvent, source);
|
|
136
|
+
if (node) {
|
|
137
|
+
editorActions.replaceSelection(node);
|
|
138
|
+
}
|
|
139
|
+
});
|
|
106
140
|
}
|
|
107
141
|
} else {
|
|
108
142
|
// @ts-expect-error No longer supported without extension API - this will be removed once we cleanup the FG.
|
|
@@ -2,6 +2,7 @@ import { tintDirtyTransaction } from '@atlaskit/editor-common/collab';
|
|
|
2
2
|
import { addParagraphAtEnd } from '@atlaskit/editor-common/commands';
|
|
3
3
|
import { setSelectionTopLevelBlocks } from '@atlaskit/editor-common/selection';
|
|
4
4
|
import { closestElement } from '@atlaskit/editor-common/utils';
|
|
5
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
5
6
|
import { ignoreAttribute } from './ClickAreaBlock/contentComponentWrapper';
|
|
6
7
|
|
|
7
8
|
// we ignore all of the clicks made inside <div class="ak-editor-content-area" /> (but not clicks on the node itself)
|
|
@@ -40,7 +41,7 @@ export const checkForModal = target => {
|
|
|
40
41
|
return true;
|
|
41
42
|
};
|
|
42
43
|
const clickAreaClickHandler = (view, event) => {
|
|
43
|
-
var _view$hasFocus, _event$currentTarget;
|
|
44
|
+
var _view$hasFocus, _target$parentElement, _event$currentTarget;
|
|
44
45
|
const isEditorFocused = !!(view !== null && view !== void 0 && (_view$hasFocus = view.hasFocus) !== null && _view$hasFocus !== void 0 && _view$hasFocus.call(view));
|
|
45
46
|
if (!(event.target instanceof HTMLElement)) {
|
|
46
47
|
return;
|
|
@@ -74,7 +75,9 @@ const clickAreaClickHandler = (view, event) => {
|
|
|
74
75
|
// Ignored via go/ees005
|
|
75
76
|
// eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
76
77
|
closestElement(selection === null || selection === void 0 ? void 0 : selection.anchorNode, '[data-editor-popup]');
|
|
77
|
-
|
|
78
|
+
|
|
79
|
+
// For clicks directly on the content component -- they should not be ignored
|
|
80
|
+
const isContentComponent = fg('platform_editor_keep_focus_on_content_comp_clicks') ? target === null || target === void 0 ? void 0 : (_target$parentElement = target.parentElement) === null || _target$parentElement === void 0 ? void 0 : _target$parentElement.closest(`[${ignoreAttribute}]`) : !!closestElement(target, `[${ignoreAttribute}]`) || (target === null || target === void 0 ? void 0 : target.getAttribute(ignoreAttribute)) === 'true';
|
|
78
81
|
|
|
79
82
|
// This is a super workaround to find when events are coming from Confluence InlineComment modal
|
|
80
83
|
// We don't own those components, so we can't change them
|
|
@@ -9,6 +9,7 @@ import React, { useImperativeHandle, useRef } from 'react';
|
|
|
9
9
|
import { jsx, useTheme } from '@emotion/react';
|
|
10
10
|
import { injectIntl } from 'react-intl-next';
|
|
11
11
|
import { fullPageMessages as messages } from '@atlaskit/editor-common/messages';
|
|
12
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
12
13
|
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
13
14
|
// Ignored via go/ees005
|
|
14
15
|
// eslint-disable-next-line import/no-named-as-default
|
|
@@ -74,7 +75,10 @@ const Content = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
74
75
|
fullWidthMode,
|
|
75
76
|
layoutMaxWidth: theme.layoutMaxWidth,
|
|
76
77
|
isEditorToolbarHidden: props.isEditorToolbarHidden
|
|
77
|
-
})]
|
|
78
|
+
})]
|
|
79
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop
|
|
80
|
+
,
|
|
81
|
+
className: fg('platform_editor_lcm_styling_uplift') ? 'ak-editor-content-area-region' : undefined,
|
|
78
82
|
"data-editor-editable-content": true,
|
|
79
83
|
"data-editor-primary-toolbar-hidden": props.isEditorToolbarHidden && editorExperiment('platform_editor_controls', 'variant1') ? 'true' : undefined,
|
|
80
84
|
role: "region",
|
|
@@ -40,6 +40,21 @@ function sendExtensionQuickInsertAnalytics(item, selection, createAnalyticsEvent
|
|
|
40
40
|
});
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
+
const showDummyAPIWarning = location => {
|
|
44
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
45
|
+
// eslint-disable-next-line no-console
|
|
46
|
+
console.warn(`Extension plugin not attached to editor - cannot use extension API in ${location}`);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
const dummyExtensionAPI = {
|
|
50
|
+
editInContextPanel: () => showDummyAPIWarning('editInContextPanel'),
|
|
51
|
+
_editInLegacyMacroBrowser: () => showDummyAPIWarning('_editInLegacyMacroBrowser'),
|
|
52
|
+
doc: {
|
|
53
|
+
insertAfter: () => showDummyAPIWarning('doc:insertAfter'),
|
|
54
|
+
scrollTo: () => showDummyAPIWarning('doc:scrollTo'),
|
|
55
|
+
update: () => showDummyAPIWarning('doc:update')
|
|
56
|
+
}
|
|
57
|
+
};
|
|
43
58
|
export async function extensionProviderToQuickInsertProvider(extensionProvider, editorActions, apiRef, createAnalyticsEvent) {
|
|
44
59
|
const extensions = await extensionProvider.getExtensions();
|
|
45
60
|
return {
|
|
@@ -64,10 +79,8 @@ export async function extensionProviderToQuickInsertProvider(extensionProvider,
|
|
|
64
79
|
if (fg('platform_editor_add_extension_api_to_quick_insert')) {
|
|
65
80
|
var _apiRef$current, _apiRef$current$exten, _apiRef$current$exten2;
|
|
66
81
|
const extensionAPI = apiRef === null || apiRef === void 0 ? void 0 : (_apiRef$current = apiRef.current) === null || _apiRef$current === void 0 ? void 0 : (_apiRef$current$exten = _apiRef$current.extension) === null || _apiRef$current$exten === void 0 ? void 0 : (_apiRef$current$exten2 = _apiRef$current$exten.actions) === null || _apiRef$current$exten2 === void 0 ? void 0 : _apiRef$current$exten2.api();
|
|
67
|
-
// While
|
|
68
|
-
//
|
|
69
|
-
// - The extension module handler can only be called from an active editor with the extension plugin
|
|
70
|
-
// Therefore this should always be run unless there is something very wrong.
|
|
82
|
+
// While this should only run when the extension some setups of editor
|
|
83
|
+
// may not have the extension API
|
|
71
84
|
if (extensionAPI) {
|
|
72
85
|
resolveImport(item.node(extensionAPI)).then(node => {
|
|
73
86
|
sendExtensionQuickInsertAnalytics(item, state.selection, createAnalyticsEvent, source);
|
|
@@ -75,6 +88,17 @@ export async function extensionProviderToQuickInsertProvider(extensionProvider,
|
|
|
75
88
|
editorActions.replaceSelection(node);
|
|
76
89
|
}
|
|
77
90
|
});
|
|
91
|
+
} else {
|
|
92
|
+
// Originally it was understood we could only use this if we were using the extension plugin
|
|
93
|
+
// However there are some edge cases where this is not true (ie. in jira)
|
|
94
|
+
// Since making it optional now would be a breaking change - instead we can just pass a dummy
|
|
95
|
+
// extension API to consumers that warns them of using the methods.
|
|
96
|
+
resolveImport(item.node(dummyExtensionAPI)).then(node => {
|
|
97
|
+
sendExtensionQuickInsertAnalytics(item, state.selection, createAnalyticsEvent, source);
|
|
98
|
+
if (node) {
|
|
99
|
+
editorActions.replaceSelection(node);
|
|
100
|
+
}
|
|
101
|
+
});
|
|
78
102
|
}
|
|
79
103
|
} else {
|
|
80
104
|
// @ts-expect-error No longer supported without extension API - this will be removed once we cleanup the FG.
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export const name = "@atlaskit/editor-core";
|
|
2
|
-
export const version = "204.
|
|
2
|
+
export const version = "204.7.0";
|
|
@@ -2,6 +2,7 @@ import { tintDirtyTransaction } from '@atlaskit/editor-common/collab';
|
|
|
2
2
|
import { addParagraphAtEnd } from '@atlaskit/editor-common/commands';
|
|
3
3
|
import { setSelectionTopLevelBlocks } from '@atlaskit/editor-common/selection';
|
|
4
4
|
import { closestElement } from '@atlaskit/editor-common/utils';
|
|
5
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
5
6
|
import { ignoreAttribute } from './ClickAreaBlock/contentComponentWrapper';
|
|
6
7
|
|
|
7
8
|
// we ignore all of the clicks made inside <div class="ak-editor-content-area" /> (but not clicks on the node itself)
|
|
@@ -40,7 +41,7 @@ export var checkForModal = function checkForModal(target) {
|
|
|
40
41
|
return true;
|
|
41
42
|
};
|
|
42
43
|
var clickAreaClickHandler = function clickAreaClickHandler(view, event) {
|
|
43
|
-
var _view$hasFocus, _event$currentTarget;
|
|
44
|
+
var _view$hasFocus, _target$parentElement, _event$currentTarget;
|
|
44
45
|
var isEditorFocused = !!(view !== null && view !== void 0 && (_view$hasFocus = view.hasFocus) !== null && _view$hasFocus !== void 0 && _view$hasFocus.call(view));
|
|
45
46
|
if (!(event.target instanceof HTMLElement)) {
|
|
46
47
|
return;
|
|
@@ -74,7 +75,9 @@ var clickAreaClickHandler = function clickAreaClickHandler(view, event) {
|
|
|
74
75
|
// Ignored via go/ees005
|
|
75
76
|
// eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
76
77
|
closestElement(selection === null || selection === void 0 ? void 0 : selection.anchorNode, '[data-editor-popup]');
|
|
77
|
-
|
|
78
|
+
|
|
79
|
+
// For clicks directly on the content component -- they should not be ignored
|
|
80
|
+
var isContentComponent = fg('platform_editor_keep_focus_on_content_comp_clicks') ? target === null || target === void 0 || (_target$parentElement = target.parentElement) === null || _target$parentElement === void 0 ? void 0 : _target$parentElement.closest("[".concat(ignoreAttribute, "]")) : !!closestElement(target, "[".concat(ignoreAttribute, "]")) || (target === null || target === void 0 ? void 0 : target.getAttribute(ignoreAttribute)) === 'true';
|
|
78
81
|
|
|
79
82
|
// This is a super workaround to find when events are coming from Confluence InlineComment modal
|
|
80
83
|
// We don't own those components, so we can't change them
|
|
@@ -10,6 +10,7 @@ import React, { useImperativeHandle, useRef } from 'react';
|
|
|
10
10
|
import { jsx, useTheme } from '@emotion/react';
|
|
11
11
|
import { injectIntl } from 'react-intl-next';
|
|
12
12
|
import { fullPageMessages as messages } from '@atlaskit/editor-common/messages';
|
|
13
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
13
14
|
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
14
15
|
// Ignored via go/ees005
|
|
15
16
|
// eslint-disable-next-line import/no-named-as-default
|
|
@@ -75,7 +76,10 @@ var Content = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
75
76
|
fullWidthMode: fullWidthMode,
|
|
76
77
|
layoutMaxWidth: theme.layoutMaxWidth,
|
|
77
78
|
isEditorToolbarHidden: props.isEditorToolbarHidden
|
|
78
|
-
}))
|
|
79
|
+
}))
|
|
80
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop
|
|
81
|
+
,
|
|
82
|
+
className: fg('platform_editor_lcm_styling_uplift') ? 'ak-editor-content-area-region' : undefined,
|
|
79
83
|
"data-editor-editable-content": true,
|
|
80
84
|
"data-editor-primary-toolbar-hidden": props.isEditorToolbarHidden && editorExperiment('platform_editor_controls', 'variant1') ? 'true' : undefined,
|
|
81
85
|
role: "region",
|
|
@@ -44,6 +44,31 @@ function sendExtensionQuickInsertAnalytics(item, selection, createAnalyticsEvent
|
|
|
44
44
|
});
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
+
var showDummyAPIWarning = function showDummyAPIWarning(location) {
|
|
48
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
49
|
+
// eslint-disable-next-line no-console
|
|
50
|
+
console.warn("Extension plugin not attached to editor - cannot use extension API in ".concat(location));
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
var dummyExtensionAPI = {
|
|
54
|
+
editInContextPanel: function editInContextPanel() {
|
|
55
|
+
return showDummyAPIWarning('editInContextPanel');
|
|
56
|
+
},
|
|
57
|
+
_editInLegacyMacroBrowser: function _editInLegacyMacroBrowser() {
|
|
58
|
+
return showDummyAPIWarning('_editInLegacyMacroBrowser');
|
|
59
|
+
},
|
|
60
|
+
doc: {
|
|
61
|
+
insertAfter: function insertAfter() {
|
|
62
|
+
return showDummyAPIWarning('doc:insertAfter');
|
|
63
|
+
},
|
|
64
|
+
scrollTo: function scrollTo() {
|
|
65
|
+
return showDummyAPIWarning('doc:scrollTo');
|
|
66
|
+
},
|
|
67
|
+
update: function update() {
|
|
68
|
+
return showDummyAPIWarning('doc:update');
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
};
|
|
47
72
|
export function extensionProviderToQuickInsertProvider(_x, _x2, _x3, _x4) {
|
|
48
73
|
return _extensionProviderToQuickInsertProvider.apply(this, arguments);
|
|
49
74
|
}
|
|
@@ -86,10 +111,8 @@ function _extensionProviderToQuickInsertProvider() {
|
|
|
86
111
|
if (fg('platform_editor_add_extension_api_to_quick_insert')) {
|
|
87
112
|
var _apiRef$current;
|
|
88
113
|
var extensionAPI = apiRef === null || apiRef === void 0 || (_apiRef$current = apiRef.current) === null || _apiRef$current === void 0 || (_apiRef$current = _apiRef$current.extension) === null || _apiRef$current === void 0 || (_apiRef$current = _apiRef$current.actions) === null || _apiRef$current === void 0 ? void 0 : _apiRef$current.api();
|
|
89
|
-
// While
|
|
90
|
-
//
|
|
91
|
-
// - The extension module handler can only be called from an active editor with the extension plugin
|
|
92
|
-
// Therefore this should always be run unless there is something very wrong.
|
|
114
|
+
// While this should only run when the extension some setups of editor
|
|
115
|
+
// may not have the extension API
|
|
93
116
|
if (extensionAPI) {
|
|
94
117
|
resolveImport(item.node(extensionAPI)).then(function (node) {
|
|
95
118
|
sendExtensionQuickInsertAnalytics(item, state.selection, createAnalyticsEvent, source);
|
|
@@ -97,6 +120,17 @@ function _extensionProviderToQuickInsertProvider() {
|
|
|
97
120
|
editorActions.replaceSelection(node);
|
|
98
121
|
}
|
|
99
122
|
});
|
|
123
|
+
} else {
|
|
124
|
+
// Originally it was understood we could only use this if we were using the extension plugin
|
|
125
|
+
// However there are some edge cases where this is not true (ie. in jira)
|
|
126
|
+
// Since making it optional now would be a breaking change - instead we can just pass a dummy
|
|
127
|
+
// extension API to consumers that warns them of using the methods.
|
|
128
|
+
resolveImport(item.node(dummyExtensionAPI)).then(function (node) {
|
|
129
|
+
sendExtensionQuickInsertAnalytics(item, state.selection, createAnalyticsEvent, source);
|
|
130
|
+
if (node) {
|
|
131
|
+
editorActions.replaceSelection(node);
|
|
132
|
+
}
|
|
133
|
+
});
|
|
100
134
|
}
|
|
101
135
|
} else {
|
|
102
136
|
// @ts-expect-error No longer supported without extension API - this will be removed once we cleanup the FG.
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export var name = "@atlaskit/editor-core";
|
|
2
|
-
export var version = "204.
|
|
2
|
+
export var version = "204.7.0";
|
|
@@ -22,6 +22,7 @@ export declare function createUniversalPreset({ props, prevProps, initialPluginC
|
|
|
22
22
|
dependencies: import("packages/editor/editor-plugin-find-replace/dist/types/findReplacePluginType").FindReplacePluginDependencies;
|
|
23
23
|
actions: {
|
|
24
24
|
getToolbarButton: (params: import("@atlaskit/editor-plugins/find-replace").FindReplaceToolbarButtonActionProps) => import("react").ReactNode;
|
|
25
|
+
activateFindReplace: (triggerMethod?: import("@atlaskit/editor-common/analytics").TRIGGER_METHOD.SHORTCUT | import("@atlaskit/editor-common/analytics").TRIGGER_METHOD.TOOLBAR | import("@atlaskit/editor-common/analytics").TRIGGER_METHOD.EXTERNAL | undefined) => boolean;
|
|
25
26
|
};
|
|
26
27
|
}, {
|
|
27
28
|
takeFullWidth: boolean;
|
|
@@ -74,6 +74,7 @@ export default function createUniversalPresetInternal({ appearance, props, featu
|
|
|
74
74
|
dependencies: import("packages/editor/editor-plugin-find-replace/dist/types/findReplacePluginType").FindReplacePluginDependencies;
|
|
75
75
|
actions: {
|
|
76
76
|
getToolbarButton: (params: import("@atlaskit/editor-plugins/find-replace").FindReplaceToolbarButtonActionProps) => import("react").ReactNode;
|
|
77
|
+
activateFindReplace: (triggerMethod?: import("@atlaskit/editor-common/analytics").TRIGGER_METHOD.SHORTCUT | import("@atlaskit/editor-common/analytics").TRIGGER_METHOD.TOOLBAR | import("@atlaskit/editor-common/analytics").TRIGGER_METHOD.EXTERNAL | undefined) => boolean;
|
|
77
78
|
};
|
|
78
79
|
}, {
|
|
79
80
|
takeFullWidth: boolean;
|
|
@@ -22,6 +22,7 @@ export default function useUniversalPreset({ props, initialPluginConfiguration }
|
|
|
22
22
|
dependencies: import("packages/editor/editor-plugin-find-replace/dist/types/findReplacePluginType").FindReplacePluginDependencies;
|
|
23
23
|
actions: {
|
|
24
24
|
getToolbarButton: (params: import("@atlaskit/editor-plugins/find-replace").FindReplaceToolbarButtonActionProps) => import("react").ReactNode;
|
|
25
|
+
activateFindReplace: (triggerMethod?: import("@atlaskit/editor-common/analytics").TRIGGER_METHOD.SHORTCUT | import("@atlaskit/editor-common/analytics").TRIGGER_METHOD.TOOLBAR | import("@atlaskit/editor-common/analytics").TRIGGER_METHOD.EXTERNAL | undefined) => boolean;
|
|
25
26
|
};
|
|
26
27
|
}, {
|
|
27
28
|
takeFullWidth: boolean;
|
|
@@ -14,7 +14,7 @@ import { type ViewMode } from '@atlaskit/editor-plugins/editor-viewmode';
|
|
|
14
14
|
import type { EditorView } from '@atlaskit/editor-prosemirror/view';
|
|
15
15
|
import type EditorActions from '../../../actions';
|
|
16
16
|
import type { ContentComponents, ReactComponents } from '../../../types';
|
|
17
|
-
import {
|
|
17
|
+
import type { ScrollContainerRefs } from './types';
|
|
18
18
|
interface FullPageEditorContentAreaProps {
|
|
19
19
|
editorAPI: PublicPluginAPI<[OptionalPlugin<ContextPanelPlugin>]> | undefined;
|
|
20
20
|
appearance: EditorAppearance | undefined;
|
|
@@ -106,6 +106,7 @@ export declare function createUniversalPreset({ props, prevProps, initialPluginC
|
|
|
106
106
|
dependencies: import("packages/editor/editor-plugin-find-replace/dist/types/findReplacePluginType").FindReplacePluginDependencies;
|
|
107
107
|
actions: {
|
|
108
108
|
getToolbarButton: (params: import("@atlaskit/editor-plugins/find-replace").FindReplaceToolbarButtonActionProps) => import("react").ReactNode;
|
|
109
|
+
activateFindReplace: (triggerMethod?: import("@atlaskit/editor-common/analytics").TRIGGER_METHOD.SHORTCUT | import("@atlaskit/editor-common/analytics").TRIGGER_METHOD.TOOLBAR | import("@atlaskit/editor-common/analytics").TRIGGER_METHOD.EXTERNAL | undefined) => boolean;
|
|
109
110
|
};
|
|
110
111
|
}, {
|
|
111
112
|
takeFullWidth: boolean;
|
|
@@ -158,6 +158,7 @@ export default function createUniversalPresetInternal({ appearance, props, featu
|
|
|
158
158
|
dependencies: import("packages/editor/editor-plugin-find-replace/dist/types/findReplacePluginType").FindReplacePluginDependencies;
|
|
159
159
|
actions: {
|
|
160
160
|
getToolbarButton: (params: import("@atlaskit/editor-plugins/find-replace").FindReplaceToolbarButtonActionProps) => import("react").ReactNode;
|
|
161
|
+
activateFindReplace: (triggerMethod?: import("@atlaskit/editor-common/analytics").TRIGGER_METHOD.SHORTCUT | import("@atlaskit/editor-common/analytics").TRIGGER_METHOD.TOOLBAR | import("@atlaskit/editor-common/analytics").TRIGGER_METHOD.EXTERNAL | undefined) => boolean;
|
|
161
162
|
};
|
|
162
163
|
}, {
|
|
163
164
|
takeFullWidth: boolean;
|
|
@@ -106,6 +106,7 @@ export default function useUniversalPreset({ props, initialPluginConfiguration }
|
|
|
106
106
|
dependencies: import("packages/editor/editor-plugin-find-replace/dist/types/findReplacePluginType").FindReplacePluginDependencies;
|
|
107
107
|
actions: {
|
|
108
108
|
getToolbarButton: (params: import("@atlaskit/editor-plugins/find-replace").FindReplaceToolbarButtonActionProps) => import("react").ReactNode;
|
|
109
|
+
activateFindReplace: (triggerMethod?: import("@atlaskit/editor-common/analytics").TRIGGER_METHOD.SHORTCUT | import("@atlaskit/editor-common/analytics").TRIGGER_METHOD.TOOLBAR | import("@atlaskit/editor-common/analytics").TRIGGER_METHOD.EXTERNAL | undefined) => boolean;
|
|
109
110
|
};
|
|
110
111
|
}, {
|
|
111
112
|
takeFullWidth: boolean;
|
|
@@ -14,7 +14,7 @@ import { type ViewMode } from '@atlaskit/editor-plugins/editor-viewmode';
|
|
|
14
14
|
import type { EditorView } from '@atlaskit/editor-prosemirror/view';
|
|
15
15
|
import type EditorActions from '../../../actions';
|
|
16
16
|
import type { ContentComponents, ReactComponents } from '../../../types';
|
|
17
|
-
import {
|
|
17
|
+
import type { ScrollContainerRefs } from './types';
|
|
18
18
|
interface FullPageEditorContentAreaProps {
|
|
19
19
|
editorAPI: PublicPluginAPI<[
|
|
20
20
|
OptionalPlugin<ContextPanelPlugin>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-core",
|
|
3
|
-
"version": "204.
|
|
3
|
+
"version": "204.7.0",
|
|
4
4
|
"description": "A package contains Atlassian editor core functionality",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
"@atlaskit/collab-provider": "^10.10.0",
|
|
92
92
|
"@atlaskit/editor-plugin-annotation": "^2.1.0",
|
|
93
93
|
"@atlaskit/editor-plugin-card": "^5.4.0",
|
|
94
|
-
"@atlaskit/editor-plugin-list": "^4.
|
|
94
|
+
"@atlaskit/editor-plugin-list": "^4.2.0",
|
|
95
95
|
"@atlaskit/editor-plugin-paste": "^3.1.0",
|
|
96
96
|
"@atlaskit/link-provider": "^2.0.0",
|
|
97
97
|
"@atlaskit/logo": "^16.0.0",
|
|
@@ -117,7 +117,7 @@
|
|
|
117
117
|
"@types/is-number": "^7.0.0",
|
|
118
118
|
"diff": "^4.0.1",
|
|
119
119
|
"enzyme": "^3.10.0",
|
|
120
|
-
"jscodeshift": "^0.
|
|
120
|
+
"jscodeshift": "^17.0.0",
|
|
121
121
|
"mockdate": "^3.0.5",
|
|
122
122
|
"raf-stub": "^2.0.1",
|
|
123
123
|
"react": "^18.2.0",
|
|
@@ -522,6 +522,10 @@
|
|
|
522
522
|
"type": "boolean",
|
|
523
523
|
"referenceOnly": true
|
|
524
524
|
},
|
|
525
|
+
"platform_editor_split_list_item_for_gap_cursor": {
|
|
526
|
+
"type": "boolean",
|
|
527
|
+
"referenceOnly": true
|
|
528
|
+
},
|
|
525
529
|
"platform_editor_non_macros_list_indent_fix": {
|
|
526
530
|
"type": "boolean",
|
|
527
531
|
"referenceOnly": true
|
|
@@ -550,6 +554,9 @@
|
|
|
550
554
|
"type": "boolean",
|
|
551
555
|
"referenceOnly": true
|
|
552
556
|
},
|
|
557
|
+
"platform_editor_lcm_styling_uplift": {
|
|
558
|
+
"type": "boolean"
|
|
559
|
+
},
|
|
553
560
|
"platform_editor_scroll_table_flickering_fix": {
|
|
554
561
|
"type": "boolean",
|
|
555
562
|
"referenceOnly": true
|
|
@@ -565,6 +572,9 @@
|
|
|
565
572
|
"platform_editor_tables_numbered_column_correction": {
|
|
566
573
|
"type": "boolean",
|
|
567
574
|
"referenceOnly": true
|
|
575
|
+
},
|
|
576
|
+
"platform_editor_keep_focus_on_content_comp_clicks": {
|
|
577
|
+
"type": "boolean"
|
|
568
578
|
}
|
|
569
579
|
},
|
|
570
580
|
"stricter": {
|