@atlaskit/editor-core 197.2.7 → 197.4.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 +51 -0
- package/afm-cc/tsconfig.json +0 -3
- package/afm-jira/tsconfig.json +0 -3
- package/dist/cjs/actions/index.js +16 -42
- package/dist/cjs/composable-editor/editor-internal.js +9 -7
- package/dist/cjs/composable-editor/hooks/useProviders.js +11 -1
- package/dist/cjs/composable-editor/utils/handleProviders.js +3 -1
- package/dist/cjs/create-editor/ReactEditorView.js +13 -9
- package/dist/cjs/presets/universal.js +15 -11
- package/dist/cjs/ui/Appearance/FullPage/FullPage.js +1 -3
- package/dist/cjs/ui/Appearance/FullPage/FullPageToolbar.js +1 -9
- package/dist/cjs/ui/ContentStyles/expand.js +9 -4
- package/dist/cjs/ui/ContentStyles/layout.js +8 -2
- package/dist/cjs/ui/Toolbar/ToolbarWithSizeDetector.js +3 -1
- package/dist/cjs/ui/ToolbarFeedback/index.js +5 -210
- package/dist/cjs/utils/action.js +9 -38
- package/dist/cjs/utils/getNodesCount.js +13 -0
- package/dist/cjs/utils/index.js +2 -2
- package/dist/cjs/utils/performance/getTimeSince.js +16 -0
- package/dist/cjs/utils/performance/track-transactions.js +5 -4
- package/dist/cjs/utils/{document.js → processRawFragmentValue.js} +2 -10
- package/dist/cjs/version-wrapper.js +1 -1
- package/dist/es2019/actions/index.js +4 -14
- package/dist/es2019/composable-editor/editor-internal.js +9 -7
- package/dist/es2019/composable-editor/hooks/useProviders.js +11 -1
- package/dist/es2019/composable-editor/utils/handleProviders.js +3 -1
- package/dist/es2019/create-editor/ReactEditorView.js +8 -4
- package/dist/es2019/index.js +8 -1
- package/dist/es2019/presets/universal.js +15 -11
- package/dist/es2019/ui/Appearance/FullPage/FullPage.js +1 -3
- package/dist/es2019/ui/Appearance/FullPage/FullPageToolbar.js +1 -9
- package/dist/es2019/ui/ContentStyles/expand.js +16 -2
- package/dist/es2019/ui/ContentStyles/layout.js +25 -15
- package/dist/es2019/ui/Toolbar/ToolbarWithSizeDetector.js +3 -1
- package/dist/es2019/ui/ToolbarFeedback/index.js +5 -188
- package/dist/es2019/utils/action.js +0 -10
- package/dist/es2019/utils/getNodesCount.js +7 -0
- package/dist/es2019/utils/index.js +1 -1
- package/dist/es2019/utils/performance/getTimeSince.js +8 -0
- package/dist/es2019/utils/performance/track-transactions.js +2 -1
- package/dist/es2019/utils/{document.js → processRawFragmentValue.js} +1 -8
- package/dist/es2019/version-wrapper.js +1 -1
- package/dist/esm/actions/index.js +17 -43
- package/dist/esm/composable-editor/editor-internal.js +9 -7
- package/dist/esm/composable-editor/hooks/useProviders.js +11 -1
- package/dist/esm/composable-editor/utils/handleProviders.js +3 -1
- package/dist/esm/create-editor/ReactEditorView.js +8 -4
- package/dist/esm/index.js +8 -1
- package/dist/esm/presets/universal.js +15 -11
- package/dist/esm/ui/Appearance/FullPage/FullPage.js +1 -3
- package/dist/esm/ui/Appearance/FullPage/FullPageToolbar.js +1 -9
- package/dist/esm/ui/ContentStyles/expand.js +9 -4
- package/dist/esm/ui/ContentStyles/layout.js +7 -2
- package/dist/esm/ui/Toolbar/ToolbarWithSizeDetector.js +3 -1
- package/dist/esm/ui/ToolbarFeedback/index.js +5 -212
- package/dist/esm/utils/action.js +9 -37
- package/dist/esm/utils/getNodesCount.js +7 -0
- package/dist/esm/utils/index.js +1 -1
- package/dist/esm/utils/performance/getTimeSince.js +10 -0
- package/dist/esm/utils/performance/track-transactions.js +2 -1
- package/dist/esm/utils/{document.js → processRawFragmentValue.js} +1 -8
- package/dist/esm/version-wrapper.js +1 -1
- package/dist/types/actions/index.d.ts +0 -1
- package/dist/types/composable-editor/hooks/useProviders.d.ts +3 -1
- package/dist/types/create-editor/ReactEditorView.d.ts +2 -1
- package/dist/types/create-editor/create-universal-preset.d.ts +1456 -77
- package/dist/types/index.d.ts +8 -1
- package/dist/types/presets/default.d.ts +1297 -45
- package/dist/types/presets/universal.d.ts +1457 -77
- package/dist/types/presets/useUniversalPreset.d.ts +2205 -826
- package/dist/types/types/editor-appearance-component.d.ts +0 -1
- package/dist/types/ui/Appearance/FullPage/FullPageToolbar.d.ts +0 -1
- package/dist/types/ui/Appearance/FullPage/StyledComponents.d.ts +1 -1
- package/dist/types/ui/ContentStyles/index.d.ts +2 -2
- package/dist/types/ui/ToolbarFeedback/index.d.ts +1 -26
- package/dist/types/utils/action.d.ts +0 -4
- package/dist/types/utils/getNodesCount.d.ts +2 -0
- package/dist/types/utils/index.d.ts +1 -1
- package/dist/types/utils/performance/getTimeSince.d.ts +8 -0
- package/dist/{types-ts4.5/utils/document.d.ts → types/utils/processRawFragmentValue.d.ts} +1 -2
- package/dist/types-ts4.5/actions/index.d.ts +0 -1
- package/dist/types-ts4.5/composable-editor/hooks/useProviders.d.ts +3 -1
- package/dist/types-ts4.5/create-editor/ReactEditorView.d.ts +2 -1
- package/dist/types-ts4.5/create-editor/create-universal-preset.d.ts +1648 -60
- package/dist/types-ts4.5/index.d.ts +8 -1
- package/dist/types-ts4.5/presets/default.d.ts +1466 -24
- package/dist/types-ts4.5/presets/universal.d.ts +1649 -60
- package/dist/types-ts4.5/presets/useUniversalPreset.d.ts +2424 -836
- package/dist/types-ts4.5/types/editor-appearance-component.d.ts +0 -1
- package/dist/types-ts4.5/ui/Appearance/FullPage/FullPageToolbar.d.ts +0 -1
- package/dist/types-ts4.5/ui/Appearance/FullPage/StyledComponents.d.ts +1 -1
- package/dist/types-ts4.5/ui/ContentStyles/index.d.ts +2 -2
- package/dist/types-ts4.5/ui/ToolbarFeedback/index.d.ts +1 -26
- package/dist/types-ts4.5/utils/action.d.ts +0 -7
- package/dist/types-ts4.5/utils/getNodesCount.d.ts +2 -0
- package/dist/types-ts4.5/utils/index.d.ts +1 -1
- package/dist/types-ts4.5/utils/performance/getTimeSince.d.ts +8 -0
- package/dist/{types/utils/document.d.ts → types-ts4.5/utils/processRawFragmentValue.d.ts} +1 -2
- package/package.json +20 -22
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
2
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
3
3
|
import { useEffect } from 'react';
|
|
4
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
4
5
|
import { usePresetContext } from '../../presets/context';
|
|
5
6
|
/**
|
|
6
7
|
* This hook is used to replace the old approach of using the `providerFactory`.
|
|
@@ -13,7 +14,8 @@ import { usePresetContext } from '../../presets/context';
|
|
|
13
14
|
export var useProviders = function useProviders(_ref) {
|
|
14
15
|
var contextIdentifierProvider = _ref.contextIdentifierProvider,
|
|
15
16
|
mediaProvider = _ref.mediaProvider,
|
|
16
|
-
cardProvider = _ref.cardProvider
|
|
17
|
+
cardProvider = _ref.cardProvider,
|
|
18
|
+
emojiProvider = _ref.emojiProvider;
|
|
17
19
|
var editorApi = usePresetContext();
|
|
18
20
|
useEffect(function () {
|
|
19
21
|
function setProvider() {
|
|
@@ -61,4 +63,12 @@ export var useProviders = function useProviders(_ref) {
|
|
|
61
63
|
editorApi === null || editorApi === void 0 || (_editorApi$card = editorApi.card) === null || _editorApi$card === void 0 || _editorApi$card.actions.setProvider(cardProvider);
|
|
62
64
|
}
|
|
63
65
|
}, [cardProvider, editorApi]);
|
|
66
|
+
useEffect(function () {
|
|
67
|
+
if (fg('platform_editor_get_emoji_provider_from_config')) {
|
|
68
|
+
if (emojiProvider) {
|
|
69
|
+
var _editorApi$emoji;
|
|
70
|
+
editorApi === null || editorApi === void 0 || (_editorApi$emoji = editorApi.emoji) === null || _editorApi$emoji === void 0 || _editorApi$emoji.actions.setProvider(emojiProvider);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}, [emojiProvider, editorApi]);
|
|
64
74
|
};
|
|
@@ -23,7 +23,9 @@ export default function handleProviders(providerFactory, _ref, extensionProvider
|
|
|
23
23
|
autoformattingProvider = _ref.autoformattingProvider,
|
|
24
24
|
searchProvider = _ref.searchProvider,
|
|
25
25
|
cardProvider = _ref.cardProvider;
|
|
26
|
-
|
|
26
|
+
if (!fg('platform_editor_get_emoji_provider_from_config')) {
|
|
27
|
+
providerFactory.setProvider('emojiProvider', emojiProvider);
|
|
28
|
+
}
|
|
27
29
|
providerFactory.setProvider('mentionProvider', mentionProvider);
|
|
28
30
|
providerFactory.setProvider('taskDecisionProvider', taskDecisionProvider);
|
|
29
31
|
providerFactory.setProvider('contextIdentifierProvider', contextIdentifierProvider);
|
|
@@ -16,18 +16,22 @@ import { injectIntl } from 'react-intl-next';
|
|
|
16
16
|
import { ACTION, ACTION_SUBJECT, EVENT_TYPE, fireAnalyticsEvent, FULL_WIDTH_MODE, getAnalyticsEventsFromTransaction, PLATFORMS } from '@atlaskit/editor-common/analytics';
|
|
17
17
|
import { browser } from '@atlaskit/editor-common/browser';
|
|
18
18
|
import { getDocStructure } from '@atlaskit/editor-common/core-utils';
|
|
19
|
+
import { countNodes as _countNodes } from '@atlaskit/editor-common/count-nodes';
|
|
19
20
|
import { getEnabledFeatureFlagKeys } from '@atlaskit/editor-common/normalize-feature-flags';
|
|
20
21
|
import { startMeasure, stopMeasure } from '@atlaskit/editor-common/performance-measures';
|
|
22
|
+
import { measureRender } from '@atlaskit/editor-common/performance/measure-render';
|
|
23
|
+
import { getResponseEndTime } from '@atlaskit/editor-common/performance/navigation';
|
|
21
24
|
import { EditorPluginInjectionAPI } from '@atlaskit/editor-common/preset';
|
|
25
|
+
import { processRawValue } from '@atlaskit/editor-common/process-raw-value';
|
|
22
26
|
import { EditorExperience, ExperienceStore, RELIABILITY_INTERVAL } from '@atlaskit/editor-common/ufo';
|
|
23
|
-
import { countNodes as _countNodes, getResponseEndTime, measureRender, processRawValue, shouldForceTracking } from '@atlaskit/editor-common/utils';
|
|
24
27
|
import { analyticsEventKey, getAnalyticsEventSeverity } from '@atlaskit/editor-common/utils/analytics';
|
|
25
28
|
import { EditorState, Selection, TextSelection } from '@atlaskit/editor-prosemirror/state';
|
|
26
29
|
import { EditorView } from '@atlaskit/editor-prosemirror/view';
|
|
30
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
27
31
|
import { createDispatch, EventDispatcher } from '../event-dispatcher';
|
|
28
32
|
import { EditorAPIContext } from '../presets/context';
|
|
29
|
-
import { getNodesCount } from '../utils/document';
|
|
30
33
|
import { findChangedNodesFromTransaction } from '../utils/findChangedNodesFromTransaction';
|
|
34
|
+
import { getNodesCount } from '../utils/getNodesCount';
|
|
31
35
|
import { isFullPage } from '../utils/is-full-page';
|
|
32
36
|
import { RenderTracking } from '../utils/performance/components/RenderTracking';
|
|
33
37
|
import measurements from '../utils/performance/measure-enum';
|
|
@@ -405,7 +409,7 @@ export var ReactEditorView = /*#__PURE__*/function (_React$Component) {
|
|
|
405
409
|
startTime = _ref3.startTime,
|
|
406
410
|
distortedDuration = _ref3.distortedDuration;
|
|
407
411
|
var proseMirrorRenderedTracking = (_this$props$editorPro4 = _this.props.editorProps) === null || _this$props$editorPro4 === void 0 || (_this$props$editorPro4 = _this$props$editorPro4.performanceTracking) === null || _this$props$editorPro4 === void 0 ? void 0 : _this$props$editorPro4.proseMirrorRenderedTracking;
|
|
408
|
-
var forceSeverityTracking = typeof proseMirrorRenderedTracking === 'undefined'
|
|
412
|
+
var forceSeverityTracking = typeof proseMirrorRenderedTracking === 'undefined';
|
|
409
413
|
_this.proseMirrorRenderedSeverity = !!forceSeverityTracking || proseMirrorRenderedTracking !== null && proseMirrorRenderedTracking !== void 0 && proseMirrorRenderedTracking.trackSeverity ? getAnalyticsEventSeverity(duration, (_proseMirrorRenderedT = proseMirrorRenderedTracking === null || proseMirrorRenderedTracking === void 0 ? void 0 : proseMirrorRenderedTracking.severityNormalThreshold) !== null && _proseMirrorRenderedT !== void 0 ? _proseMirrorRenderedT : PROSEMIRROR_RENDERED_NORMAL_SEVERITY_THRESHOLD, (_proseMirrorRenderedT2 = proseMirrorRenderedTracking === null || proseMirrorRenderedTracking === void 0 ? void 0 : proseMirrorRenderedTracking.severityDegradedThreshold) !== null && _proseMirrorRenderedT2 !== void 0 ? _proseMirrorRenderedT2 : PROSEMIRROR_RENDERED_DEGRADED_SEVERITY_THRESHOLD) : undefined;
|
|
410
414
|
if (_this.view) {
|
|
411
415
|
var _this$pluginInjection2, _this$experienceStore10;
|
|
@@ -547,7 +551,7 @@ export var ReactEditorView = /*#__PURE__*/function (_React$Component) {
|
|
|
547
551
|
});
|
|
548
552
|
var _api = _this.pluginInjectionAPI.api();
|
|
549
553
|
(_props$setEditorApi = props.setEditorApi) === null || _props$setEditorApi === void 0 || _props$setEditorApi.call(props, _api);
|
|
550
|
-
if (props.editorProps.editorActions) {
|
|
554
|
+
if (props.editorProps.editorActions && !fg('platform_editor_remove_editor_actions_workaround')) {
|
|
551
555
|
// @ts-expect-error
|
|
552
556
|
props.editorProps.editorActions.__EDITOR_INTERNALS_DO_NOT_USE__API = _api;
|
|
553
557
|
}
|
package/dist/esm/index.js
CHANGED
|
@@ -6,7 +6,14 @@ export { default as WithEditorActions } from './ui/WithEditorActions';
|
|
|
6
6
|
export { default as WithHelpTrigger } from './ui/WithHelpTrigger';
|
|
7
7
|
export { default as CollapsedEditor } from './ui/CollapsedEditor';
|
|
8
8
|
export { default as ToolbarHelp } from './ui/ToolbarHelp';
|
|
9
|
-
export {
|
|
9
|
+
export {
|
|
10
|
+
/**
|
|
11
|
+
* @deprecated
|
|
12
|
+
* DO NOT USE THIS WILL BE REMOVED SOON.
|
|
13
|
+
*
|
|
14
|
+
* This was intended for rollout of bitbucket only.
|
|
15
|
+
*/
|
|
16
|
+
default as ToolbarFeedback } from './ui/ToolbarFeedback';
|
|
10
17
|
export {
|
|
11
18
|
/**
|
|
12
19
|
* @deprecated
|
|
@@ -50,6 +50,7 @@ import { tasksAndDecisionsPlugin } from '@atlaskit/editor-plugins/tasks-and-deci
|
|
|
50
50
|
import { textColorPlugin } from '@atlaskit/editor-plugins/text-color';
|
|
51
51
|
import { toolbarListsIndentationPlugin } from '@atlaskit/editor-plugins/toolbar-lists-indentation';
|
|
52
52
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
53
|
+
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
53
54
|
import { isFullPage as fullPageCheck } from '../utils/is-full-page';
|
|
54
55
|
import { version as coreVersion } from '../version-wrapper';
|
|
55
56
|
import { createDefaultPreset } from './default';
|
|
@@ -136,11 +137,16 @@ export default function createUniversalPresetInternal(_ref) {
|
|
|
136
137
|
HighlightComponent: (_props$mention2 = props.mention) === null || _props$mention2 === void 0 ? void 0 : _props$mention2.HighlightComponent,
|
|
137
138
|
profilecardProvider: (_props$mention3 = props.mention) === null || _props$mention3 === void 0 ? void 0 : _props$mention3.profilecardProvider
|
|
138
139
|
}, initialPluginConfiguration === null || initialPluginConfiguration === void 0 ? void 0 : initialPluginConfiguration.mentionsPlugin)], Boolean(props.mentionProvider)).maybeAdd([emojiPlugin, {
|
|
140
|
+
emojiProvider: props.emojiProvider,
|
|
139
141
|
emojiNodeDataProvider: initialPluginConfiguration === null || initialPluginConfiguration === void 0 || (_initialPluginConfigu = initialPluginConfiguration.emoji) === null || _initialPluginConfigu === void 0 ? void 0 : _initialPluginConfigu.emojiNodeDataProvider
|
|
140
142
|
}], Boolean(props.emojiProvider)).maybeAdd([tablesPlugin, _objectSpread({
|
|
141
143
|
tableOptions: !props.allowTables || typeof props.allowTables === 'boolean' ? {} : props.allowTables,
|
|
142
|
-
dragAndDropEnabled: (featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.tableDragAndDrop) && (isFullPage || (isComment || isChromeless) &&
|
|
143
|
-
|
|
144
|
+
dragAndDropEnabled: (featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.tableDragAndDrop) && (isFullPage || (isComment || isChromeless) && editorExperiment('support_table_in_comment', true, {
|
|
145
|
+
exposure: true
|
|
146
|
+
})),
|
|
147
|
+
isTableScalingEnabled: (featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.tablePreserveWidth) && (isFullPage || isComment && editorExperiment('support_table_in_comment', true, {
|
|
148
|
+
exposure: true
|
|
149
|
+
})),
|
|
144
150
|
allowContextualMenu: !isMobile,
|
|
145
151
|
fullWidthEnabled: appearance === 'full-width',
|
|
146
152
|
wasFullWidthEnabled: prevAppearance && prevAppearance === 'full-width',
|
|
@@ -211,7 +217,11 @@ export default function createUniversalPresetInternal(_ref) {
|
|
|
211
217
|
tableSelectorSupported: (featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.tableSelector) && isFullPage,
|
|
212
218
|
nativeStatusSupported: !statusMenuDisabled,
|
|
213
219
|
showElementBrowserLink: props.elementBrowser && props.elementBrowser.showModal || false,
|
|
214
|
-
replacePlusMenuWithElementBrowser: props.elementBrowser && props.elementBrowser.replacePlusMenu || false
|
|
220
|
+
replacePlusMenuWithElementBrowser: props.elementBrowser && props.elementBrowser.replacePlusMenu || false,
|
|
221
|
+
// @ts-ignore
|
|
222
|
+
// For platform_editor_element_level_templates experiment only
|
|
223
|
+
// clean up ticket ED-24873
|
|
224
|
+
UNSAFE_editorAppearance: appearance
|
|
215
225
|
}]).maybeAdd([beforePrimaryToolbarPlugin, {
|
|
216
226
|
beforePrimaryToolbarComponents: // @ts-expect-error 2339: Property 'before' does not exist on type 'PrimaryToolbarComponents'.
|
|
217
227
|
(_props$primaryToolbar = props.primaryToolbarComponents) === null || _props$primaryToolbar === void 0 ? void 0 : _props$primaryToolbar.before
|
|
@@ -222,15 +232,9 @@ export default function createUniversalPresetInternal(_ref) {
|
|
|
222
232
|
// https://hello.atlassian.net/wiki/spaces/PCG/pages/2851572180/Editor+toolbar+for+live+pages+and+edit+in+context+projects
|
|
223
233
|
collabEdit: props.collabEdit,
|
|
224
234
|
takeFullWidth: !hasBeforePrimaryToolbar(props.primaryToolbarComponents),
|
|
225
|
-
showAvatarGroup:
|
|
226
|
-
// Cleanup: `platform_editor_remove_hide_avatar_group_prop`
|
|
227
|
-
// Remove `!props.hideAvatarGroup`
|
|
228
|
-
!props.hideAvatarGroup && featureFlags.showAvatarGroupAsPlugin === true && !featureFlags.twoLineEditorToolbar
|
|
235
|
+
showAvatarGroup: featureFlags.showAvatarGroupAsPlugin === true && !featureFlags.twoLineEditorToolbar
|
|
229
236
|
}]).maybeAdd([findReplacePlugin, {
|
|
230
|
-
takeFullWidth:
|
|
231
|
-
// Cleanup: `platform_editor_remove_hide_avatar_group_prop`
|
|
232
|
-
// Remove `!props.hideAvatarGroup`
|
|
233
|
-
!props.hideAvatarGroup && !!featureFlags.showAvatarGroupAsPlugin === false && !hasBeforePrimaryToolbar(props.primaryToolbarComponents),
|
|
237
|
+
takeFullWidth: !!featureFlags.showAvatarGroupAsPlugin === false && !hasBeforePrimaryToolbar(props.primaryToolbarComponents),
|
|
234
238
|
twoLineEditorToolbar: !!props.primaryToolbarComponents && !!featureFlags.twoLineEditorToolbar
|
|
235
239
|
}], Boolean(props.allowFindReplace)).maybeAdd(borderPlugin, Boolean(props.allowBorderMark || props.UNSAFE_allowBorderMark)).maybeAdd(fragmentPlugin, Boolean(props.allowFragmentMark)).add(pasteOptionsToolbarPlugin).add([codeBidiWarningPlugin, {
|
|
236
240
|
appearance: appearance
|
|
@@ -10,7 +10,6 @@ import { jsx } from '@emotion/react';
|
|
|
10
10
|
import { browser } from '@atlaskit/editor-common/browser';
|
|
11
11
|
import { useSharedPluginState } from '@atlaskit/editor-common/hooks';
|
|
12
12
|
import { ContextPanelWidthProvider } from '@atlaskit/editor-common/ui';
|
|
13
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
14
13
|
import { FullPageContentArea } from './FullPageContentArea';
|
|
15
14
|
import { FullPageToolbar } from './FullPageToolbar';
|
|
16
15
|
import { fullPageEditorWrapper } from './StyledComponents';
|
|
@@ -87,8 +86,7 @@ export var FullPageEditor = function FullPageEditor(props) {
|
|
|
87
86
|
primaryToolbarComponents: primaryToolbarComponents,
|
|
88
87
|
providerFactory: props.providerFactory,
|
|
89
88
|
showKeyline: showKeyline,
|
|
90
|
-
featureFlags: props.featureFlags
|
|
91
|
-
hideAvatarGroup: fg('platform_editor_remove_hide_avatar_group_prop') ? undefined : props.hideAvatarGroup
|
|
89
|
+
featureFlags: props.featureFlags
|
|
92
90
|
}), jsx(FullPageContentArea, {
|
|
93
91
|
editorAPI: editorAPI,
|
|
94
92
|
ref: scrollContentContainerRef,
|
|
@@ -17,7 +17,7 @@ import Toolbar from '../../Toolbar';
|
|
|
17
17
|
import { BeforePrimaryToolbarWrapper } from './BeforeWrapper';
|
|
18
18
|
import { customToolbarWrapperStyle, mainToolbarFirstChildStyle, mainToolbarIconBeforeStyle, mainToolbarSecondChildStyle, mainToolbarStyle, MAXIMUM_TWO_LINE_TOOLBAR_BREAKPOINT, nonCustomToolbarWrapperStyle } from './MainToolbar';
|
|
19
19
|
export var EditorToolbar = /*#__PURE__*/React.memo(function (props) {
|
|
20
|
-
var _props$featureFlags, _props$customPrimaryT
|
|
20
|
+
var _props$featureFlags, _props$customPrimaryT;
|
|
21
21
|
var _useState = useState(false),
|
|
22
22
|
_useState2 = _slicedToArray(_useState, 2),
|
|
23
23
|
shouldSplitToolbar = _useState2[0],
|
|
@@ -54,14 +54,6 @@ export var EditorToolbar = /*#__PURE__*/React.memo(function (props) {
|
|
|
54
54
|
css: customToolbarWrapperStyle
|
|
55
55
|
}, twoLineEditorToolbar && !!props.customPrimaryToolbarComponents && 'before' in props.customPrimaryToolbarComponents ? jsx(BeforePrimaryToolbarWrapper, {
|
|
56
56
|
beforePrimaryToolbarComponents: (_props$customPrimaryT = props.customPrimaryToolbarComponents) === null || _props$customPrimaryT === void 0 ? void 0 : _props$customPrimaryT.before
|
|
57
|
-
}) : null, !fg('platform_editor_remove_hide_avatar_group_prop') ? props.hideAvatarGroup || (props === null || props === void 0 || (_props$featureFlags2 = props.featureFlags) === null || _props$featureFlags2 === void 0 ? void 0 : _props$featureFlags2.showAvatarGroupAsPlugin) === true && !((_props$featureFlags3 = props.featureFlags) !== null && _props$featureFlags3 !== void 0 && _props$featureFlags3.twoLineEditorToolbar) ? null : // Avatars are moved to Confluence codebase for Edit in Context
|
|
58
|
-
// When Edit in Context is enabled customPrimaryToolbarComponents is undefined
|
|
59
|
-
// For more details please check
|
|
60
|
-
// https://hello.atlassian.net/wiki/spaces/PCG/pages/2851572180/Editor+toolbar+for+live+pages+and+edit+in+context+projects
|
|
61
|
-
editorAPI === null || editorAPI === void 0 || (_editorAPI$avatarGrou = editorAPI.avatarGroup) === null || _editorAPI$avatarGrou === void 0 ? void 0 : _editorAPI$avatarGrou.actions.getToolbarItem({
|
|
62
|
-
inviteToEditComponent: (_props$collabEdit = props.collabEdit) === null || _props$collabEdit === void 0 ? void 0 : _props$collabEdit.inviteToEditComponent,
|
|
63
|
-
inviteToEditHandler: (_props$collabEdit2 = props.collabEdit) === null || _props$collabEdit2 === void 0 ? void 0 : _props$collabEdit2.inviteToEditHandler,
|
|
64
|
-
isInviteToEditButtonSelected: (_props$collabEdit3 = props.collabEdit) === null || _props$collabEdit3 === void 0 ? void 0 : _props$collabEdit3.isInviteToEditButtonSelected
|
|
65
57
|
}) : null, editorAPI !== null && editorAPI !== void 0 && editorAPI.findReplace && twoLineEditorToolbar ? editorAPI === null || editorAPI === void 0 ? void 0 : editorAPI.findReplace.actions.getToolbarButton({
|
|
66
58
|
popupsBoundariesElement: props.popupsBoundariesElement,
|
|
67
59
|
popupsMountPoint: props.popupsMountPoint,
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
|
|
2
|
-
var _templateObject;
|
|
2
|
+
var _templateObject, _templateObject2;
|
|
3
3
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
4
4
|
import { css } from '@emotion/react';
|
|
5
5
|
import { BreakoutCssClassName, expandClassNames, sharedExpandStyles } from '@atlaskit/editor-common/styles';
|
|
6
6
|
import { akEditorSelectedNodeClassName, akLayoutGutterOffset, getSelectionStyles, SelectionStyle } from '@atlaskit/editor-shared-styles';
|
|
7
7
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
8
8
|
import { N100A, N40A, N50A, R300, R50 } from '@atlaskit/theme/colors';
|
|
9
|
+
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
9
10
|
var EXPAND_SELECTED_BACKGROUND = "var(--ds-background-neutral-subtle, rgba(255, 255, 255, 0.6))";
|
|
10
11
|
var EXPAND_ICON_COLOR = function EXPAND_ICON_COLOR() {
|
|
11
12
|
return css({
|
|
@@ -14,15 +15,19 @@ var EXPAND_ICON_COLOR = function EXPAND_ICON_COLOR() {
|
|
|
14
15
|
};
|
|
15
16
|
var DANGER_STATE_BACKGROUND_COLOR = "var(--ds-background-danger, ".concat(R50, ")");
|
|
16
17
|
var DANGER_STATE_BORDER_COLOR = "var(--ds-border-danger, ".concat(R300, ")");
|
|
18
|
+
var firstNodeWithNotMarginTop = function firstNodeWithNotMarginTop() {
|
|
19
|
+
return editorExperiment('nested-dnd', true) ? // eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression
|
|
20
|
+
css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n\t\t\t\t> :nth-child(1 of :not(style, .ProseMirror-gapcursor, .ProseMirror-widget, span)) {\n\t\t\t\t\tmargin-top: 0;\n\t\t\t\t}\n\n\t\t\t\t> div.ak-editor-expand[data-node-type='nestedExpand'] {\n\t\t\t\t\tmargin-top: ", ";\n\t\t\t\t}\n\t\t\t"])), "var(--ds-space-050, 0.25rem)") : '';
|
|
21
|
+
};
|
|
17
22
|
|
|
18
23
|
/* eslint-disable @atlaskit/design-system/ensure-design-token-usage */
|
|
19
24
|
// eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- Needs manual remediation
|
|
20
25
|
export var expandStyles = function expandStyles() {
|
|
21
|
-
return css(
|
|
26
|
+
return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n\t.", " > div {\n\t\tdisplay: flex;\n\t}\n\n\t.", " {\n\t\t", "\n\n\t\tcursor: pointer;\n\t\tbox-sizing: border-box;\n\n\t\ttd > & {\n\t\t\tmargin-top: 0;\n\t\t}\n\n\t\t.", " svg {\n\t\t\t", ";\n\t\t\ttransform: rotate(90deg);\n\t\t}\n\n\t\t&.", ":not(.danger) {\n\t\t\t", "\n\t\t}\n\n\t\t&.danger {\n\t\t\tbackground: ", ";\n\t\t\tborder-color: ", ";\n\t\t}\n\t}\n\n\t.ProseMirror\n\t\t> .", ",\n\t\t.", "\n\t\t> .", " {\n\t\tmargin-left: -", "px;\n\t\tmargin-right: -", "px;\n\t}\n\n\t.", " {\n\t\t", "\n\t\tcursor: text;\n\t\tpadding-top: 0px;\n\t\t", "\n\t}\n\n\t.", " {\n\t\t", "\n\t}\n\n\t.", " {\n\t\t", ";\n\t\talign-items: center;\n\t\toverflow: visible;\n\t}\n\n\t.", " {\n\t\tbackground: ", ";\n\t\tborder-color: ", ";\n\n\t\t.", " {\n\t\t\tpadding-top: ", ";\n\n\t\t\t", "\n\t\t}\n\t}\n\n\t.", " {\n\t\twidth: 100%;\n\t}\n\n\t/* stylelint-disable property-no-unknown, value-keyword-case */\n\t.", ":(.", ") {\n\t\t.expand-content-wrapper {\n\t\t\theight: auto;\n\t\t}\n\t}\n\t/* stylelint-enable property-no-unknown, value-keyword-case */\n\n\t.", ":not(.", ") {\n\t\t.ak-editor-expand__content {\n\t\t\tposition: absolute;\n\t\t\theight: 1px;\n\t\t\twidth: 1px;\n\t\t\toverflow: hidden;\n\t\t\tclip: rect(1px, 1px, 1px, 1px);\n\t\t\twhite-space: nowrap;\n\t\t}\n\n\t\t.", " svg {\n\t\t\t", ";\n\t\t\ttransform: rotate(0deg);\n\t\t}\n\n\t\t&:not(.", "):not(.danger) {\n\t\t\tbackground: transparent;\n\t\t\tborder-color: transparent;\n\n\t\t\t&:hover {\n\t\t\t\tborder-color: ", ";\n\t\t\t\tbackground: ", ";\n\t\t\t}\n\t\t}\n\t}\n"])), expandClassNames.icon, expandClassNames.prefix, sharedExpandStyles.containerStyles({
|
|
22
27
|
expanded: false,
|
|
23
28
|
focused: false
|
|
24
|
-
})(), expandClassNames.iconContainer, EXPAND_ICON_COLOR(), akEditorSelectedNodeClassName, getSelectionStyles([SelectionStyle.Blanket, SelectionStyle.Border]), DANGER_STATE_BACKGROUND_COLOR, DANGER_STATE_BORDER_COLOR, expandClassNames.type('expand'), BreakoutCssClassName.BREAKOUT_MARK_DOM, expandClassNames.type('expand'), akLayoutGutterOffset, akLayoutGutterOffset, expandClassNames.content, sharedExpandStyles.contentStyles({
|
|
29
|
+
})(), expandClassNames.iconContainer, EXPAND_ICON_COLOR(), akEditorSelectedNodeClassName, getSelectionStyles([SelectionStyle.Blanket, SelectionStyle.Border]), DANGER_STATE_BACKGROUND_COLOR, DANGER_STATE_BORDER_COLOR, expandClassNames.type('expand'), BreakoutCssClassName.BREAKOUT_MARK_DOM, expandClassNames.type('expand'), akLayoutGutterOffset + (editorExperiment('nested-dnd', true) ? 8 : 0), akLayoutGutterOffset + (editorExperiment('nested-dnd', true) ? 8 : 0), expandClassNames.content, sharedExpandStyles.contentStyles({
|
|
25
30
|
expanded: false,
|
|
26
31
|
focused: false
|
|
27
|
-
})(), fg('platform_editor_drag_and_drop_expand_style_fix') && "overflow-x: clip;", expandClassNames.titleInput, sharedExpandStyles.titleInputStyles(), expandClassNames.titleContainer, sharedExpandStyles.titleContainerStyles(), expandClassNames.expanded, EXPAND_SELECTED_BACKGROUND, "var(--ds-border, ".concat(N40A, ")"), expandClassNames.content, "var(--ds-space-100, 8px)", expandClassNames.inputContainer, expandClassNames.prefix, expandClassNames.expanded, expandClassNames.prefix, expandClassNames.expanded, expandClassNames.iconContainer, EXPAND_ICON_COLOR(), akEditorSelectedNodeClassName, "var(--ds-border, ".concat(N50A, ")"), EXPAND_SELECTED_BACKGROUND);
|
|
32
|
+
})(), fg('platform_editor_drag_and_drop_expand_style_fix') && "overflow-x: clip;", expandClassNames.titleInput, sharedExpandStyles.titleInputStyles(), expandClassNames.titleContainer, sharedExpandStyles.titleContainerStyles(), expandClassNames.expanded, EXPAND_SELECTED_BACKGROUND, "var(--ds-border, ".concat(N40A, ")"), expandClassNames.content, "var(--ds-space-100, 8px)", firstNodeWithNotMarginTop(), expandClassNames.inputContainer, expandClassNames.prefix, expandClassNames.expanded, expandClassNames.prefix, expandClassNames.expanded, expandClassNames.iconContainer, EXPAND_ICON_COLOR(), akEditorSelectedNodeClassName, "var(--ds-border, ".concat(N50A, ")"), EXPAND_SELECTED_BACKGROUND);
|
|
28
33
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
|
|
2
|
-
var _templateObject;
|
|
2
|
+
var _templateObject, _templateObject2, _templateObject3;
|
|
3
3
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
4
4
|
import { css } from '@emotion/react';
|
|
5
5
|
import { columnLayoutSharedStyle, LAYOUT_COLUMN_PADDING, LAYOUT_SECTION_MARGIN } from '@atlaskit/editor-common/styles';
|
|
@@ -9,8 +9,13 @@ import { akEditorDeleteBackground, akEditorDeleteBorder, akEditorSelectedBorderS
|
|
|
9
9
|
import { N40A, N50A } from '@atlaskit/theme/colors';
|
|
10
10
|
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
11
11
|
export { LAYOUT_COLUMN_PADDING, LAYOUT_SECTION_MARGIN };
|
|
12
|
+
var firstNodeWithNotMarginTop = function firstNodeWithNotMarginTop() {
|
|
13
|
+
return editorExperiment('nested-dnd', true) ? // eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression
|
|
14
|
+
css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n\t\t\t\t> :nth-child(1 of :not(style, .ProseMirror-gapcursor, .ProseMirror-widget, span)) {\n\t\t\t\t\tmargin-top: 0;\n\t\t\t\t}\n\t\t\t"]))) : // eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression
|
|
15
|
+
css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n\t\t\t\t> :not(style):first-child,\n\t\t\t\t> style:first-child + * {\n\t\t\t\t\tmargin-top: 0;\n\t\t\t\t}\n\n\t\t\t\t> .ProseMirror-gapcursor:first-child + *,\n\t\t\t\t> style:first-child + .ProseMirror-gapcursor + * {\n\t\t\t\t\tmargin-top: 0;\n\t\t\t\t}\n\n\t\t\t\t> .ProseMirror-gapcursor:first-child + span + * {\n\t\t\t\t\tmargin-top: 0;\n\t\t\t\t}\n\t\t\t"])));
|
|
16
|
+
};
|
|
12
17
|
|
|
13
18
|
// eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- Needs manual remediation
|
|
14
19
|
export var layoutStyles = function layoutStyles(viewMode) {
|
|
15
|
-
return css(
|
|
20
|
+
return css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n\t.ProseMirror {\n\t\t", " [data-layout-section] {\n\t\t\t// TODO: Migrate away from gridSize\n\t\t\t// Recommendation: Replace directly with 7px\n\t\t\tmargin: ", " -", "px 0;\n\t\t\ttransition: border-color 0.3s ", ";\n\t\t\tcursor: ", ";\n\n\t\t\t/* Inner cursor located 26px from left */\n\t\t\t[data-layout-column] {\n\t\t\t\tflex: 1;\n\t\t\t\tmin-width: 0;\n\t\t\t\tborder: ", "px solid\n\t\t\t\t\t", ";\n\t\t\t\tborder-radius: 4px;\n\t\t\t\tpadding: ", "px\n\t\t\t\t\t", "px;\n\t\t\t\tbox-sizing: border-box;\n\n\t\t\t\t> div {\n\t\t\t\t\t", "\n\n\t\t\t\t\t> .embedCardView-content-wrap:first-of-type .rich-media-item {\n\t\t\t\t\t\tmargin-top: 0;\n\t\t\t\t\t}\n\n\t\t\t\t\t> .mediaSingleView-content-wrap:first-of-type .rich-media-item {\n\t\t\t\t\t\tmargin-top: 0;\n\t\t\t\t\t}\n\n\t\t\t\t\t> .ProseMirror-gapcursor.-right:first-child\n\t\t\t\t\t\t+ .mediaSingleView-content-wrap\n\t\t\t\t\t\t.rich-media-item,\n\t\t\t\t\t> style:first-child\n\t\t\t\t\t\t+ .ProseMirror-gapcursor.-right\n\t\t\t\t\t\t+ .mediaSingleView-content-wrap\n\t\t\t\t\t\t.rich-media-item,\n\t\t\t\t\t> .ProseMirror-gapcursor.-right:first-of-type\n\t\t\t\t\t\t+ .embedCardView-content-wrap\n\t\t\t\t\t\t.rich-media-item {\n\t\t\t\t\t\tmargin-top: 0;\n\t\t\t\t\t}\n\n\t\t\t\t\t> .ProseMirror-gapcursor:first-child\n\t\t\t\t\t\t+ span\n\t\t\t\t\t\t+ .mediaSingleView-content-wrap\n\t\t\t\t\t\t.rich-media-item,\n\t\t\t\t\t> style:first-child\n\t\t\t\t\t\t+ .ProseMirror-gapcursor\n\t\t\t\t\t\t+ span\n\t\t\t\t\t\t+ .mediaSingleView-content-wrap\n\t\t\t\t\t\t.rich-media-item {\n\t\t\t\t\t\tmargin-top: 0;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* Prevent first DecisionWrapper's margin-top: 8px from shifting decisions down\n and shrinking layout's node selectable area (leniency margin) */\n\t\t\t\t\t> [data-node-type='decisionList'] {\n\t\t\t\t\t\tli:first-of-type [data-decision-wrapper] {\n\t\t\t\t\t\t\tmargin-top: 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t/* Make the 'content' fill the entire height of the layout column to allow click\n handler of layout section nodeview to target only data-layout-column */\n\t\t\t\t[data-layout-content] {\n\t\t\t\t\theight: 100%;\n\t\t\t\t\tcursor: text;\n\t\t\t\t\t.mediaGroupView-content-wrap {\n\t\t\t\t\t\tclear: both;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t[data-layout-column] + [data-layout-column] {\n\t\t\t\tmargin-left: ", "px;\n\t\t\t}\n\n\t\t\t@media screen and (max-width: ", "px) {\n\t\t\t\t[data-layout-column] + [data-layout-column] {\n\t\t\t\t\tmargin-left: 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// TODO: Remove the border styles below once design tokens have been enabled and fallbacks are no longer triggered.\n\t\t\t// This is because the default state already uses the same token and, as such, the hover style won't change anything.\n\t\t\t// https://product-fabric.atlassian.net/browse/DSP-4441\n\t\t\t/* Shows the border when cursor is inside a layout */\n\t\t\t&.selected [data-layout-column],\n\t\t\t&:hover [data-layout-column] {\n\t\t\t\tborder: ", "px solid\n\t\t\t\t\t", ";\n\t\t\t}\n\n\t\t\t&.selected.danger > [data-layout-column] {\n\t\t\t\tbackground-color: ", ";\n\t\t\t\tborder-color: ", ";\n\t\t\t}\n\n\t\t\t&.", ":not(.danger) {\n\t\t\t\t[data-layout-column] {\n\t\t\t\t\t", "\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t.fabric-editor--full-width-mode .ProseMirror {\n\t\t[data-layout-section] {\n\t\t\t.", " {\n\t\t\t\tmargin: 0 ", "px;\n\t\t\t}\n\t\t}\n\t}\n"])), columnLayoutSharedStyle, "var(--ds-space-100, 8px)", akLayoutGutterOffset + (editorExperiment('nested-dnd', true) ? 8 : 0), akEditorSwoopCubicBezier, viewMode === 'view' ? 'default' : 'pointer', viewMode === 'view' ? 0 : akEditorSelectedBorderSize, "var(--ds-border, ".concat(N40A, ")"), LAYOUT_COLUMN_PADDING, LAYOUT_COLUMN_PADDING + (editorExperiment('nested-dnd', true) ? 8 : 0), firstNodeWithNotMarginTop(), LAYOUT_SECTION_MARGIN, gridMediumMaxWidth, viewMode === 'view' ? 0 : akEditorSelectedBorderSize, "var(--ds-border, ".concat(N50A, ")"), "var(--ds-background-danger, ".concat(akEditorDeleteBackground, ")"), "var(--ds-border-danger, ".concat(akEditorDeleteBorder, ")"), akEditorSelectedNodeClassName, getSelectionStyles([SelectionStyle.Border, SelectionStyle.Blanket]), TableCssClassName.TABLE_CONTAINER, tableMarginFullWidthMode);
|
|
16
21
|
};
|
|
@@ -9,6 +9,7 @@ import React, { useMemo } from 'react';
|
|
|
9
9
|
|
|
10
10
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
11
11
|
import { css, jsx } from '@emotion/react';
|
|
12
|
+
import { isSSR } from '@atlaskit/editor-common/core-utils';
|
|
12
13
|
import { akEditorMobileMaxWidth } from '@atlaskit/editor-shared-styles';
|
|
13
14
|
import { WidthObserver } from '@atlaskit/width-detector';
|
|
14
15
|
import { isFullPage } from '../../utils/is-full-page';
|
|
@@ -34,7 +35,8 @@ export var ToolbarWithSizeDetector = function ToolbarWithSizeDetector(props) {
|
|
|
34
35
|
var elementWidth = useElementWidth(ref, {
|
|
35
36
|
skip: typeof width !== 'undefined'
|
|
36
37
|
});
|
|
37
|
-
var
|
|
38
|
+
var defaultToolbarSize = isSSR() && isFullPage(props.appearance) ? ToolbarSize.XXL : undefined;
|
|
39
|
+
var toolbarSize = typeof width === 'undefined' && typeof elementWidth === 'undefined' ? defaultToolbarSize : widthToToolbarSize(width || elementWidth, props.appearance);
|
|
38
40
|
var toolbarStyle = useMemo(function () {
|
|
39
41
|
var toolbarWidth = isFullPage(props.appearance) && props.twoLineEditorToolbar ? ToolbarSize.S : ToolbarSize.M;
|
|
40
42
|
var toolbarMinWidth = toolbarSizeToWidth(toolbarWidth, props.appearance);
|
|
@@ -1,214 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
|
|
6
|
-
import _inherits from "@babel/runtime/helpers/inherits";
|
|
7
|
-
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
8
|
-
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
9
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
10
|
-
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
11
|
-
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; }
|
|
12
|
-
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) { _defineProperty(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; }
|
|
13
|
-
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); }; }
|
|
14
|
-
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
15
|
-
/**
|
|
16
|
-
* @jsxRuntime classic
|
|
17
|
-
* @jsx jsx
|
|
18
|
-
*/
|
|
19
|
-
import { PureComponent } from 'react';
|
|
20
|
-
|
|
21
|
-
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
22
|
-
import { jsx } from '@emotion/react';
|
|
23
|
-
import PropTypes from 'prop-types';
|
|
24
|
-
import ButtonGroup from '@atlaskit/button/button-group';
|
|
25
|
-
import Button from '@atlaskit/button/new';
|
|
26
|
-
import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '@atlaskit/editor-common/analytics';
|
|
27
|
-
import { Popup } from '@atlaskit/editor-common/ui';
|
|
28
|
-
import { ToolbarButton } from '@atlaskit/editor-common/ui-menu';
|
|
29
|
-
import { withReactEditorViewOuterListeners as withOuterListeners } from '@atlaskit/editor-common/ui-react';
|
|
30
|
-
import { analyticsEventKey } from '@atlaskit/editor-common/utils/analytics';
|
|
31
|
-
import Spinner from '@atlaskit/spinner';
|
|
32
|
-
import { createDispatch } from '../../event-dispatcher';
|
|
33
|
-
import { usePresetContext } from '../../presets/context';
|
|
34
|
-
import deprecationWarnings from '../../utils/deprecation-warnings';
|
|
35
|
-
import { buttonContent, confirmationHeader, confirmationImg, confirmationPopup, confirmationText, wrapper } from './styles';
|
|
36
|
-
var PopupWithOutsideListeners = withOuterListeners(Popup);
|
|
37
|
-
var POPUP_HEIGHT = 388;
|
|
38
|
-
var POPUP_WIDTH = 280;
|
|
39
|
-
var EDITOR_IMAGE_URL = 'https://confluence.atlassian.com/download/attachments/945114421/editorillustration@2x.png?api=v2';
|
|
40
|
-
var deprecations = [{
|
|
41
|
-
property: 'packageVersion',
|
|
42
|
-
description: 'To pass package version use feedbackInfo property – <Editor feedbackInfo={{ packageVersion }} />',
|
|
43
|
-
type: 'removed'
|
|
44
|
-
}, {
|
|
45
|
-
property: 'packageName',
|
|
46
|
-
description: 'To pass package name use feedbackInfo property – <Editor feedbackInfo={{ packageName }} />',
|
|
47
|
-
type: 'removed'
|
|
48
|
-
}, {
|
|
49
|
-
property: 'labels',
|
|
50
|
-
description: 'To pass feedback labels use feedbackInfo property – <Editor feedbackInfo={{ labels }} />',
|
|
51
|
-
type: 'removed'
|
|
52
|
-
}];
|
|
53
|
-
var ToolbarFeedbackInternal = /*#__PURE__*/function (_PureComponent) {
|
|
54
|
-
_inherits(ToolbarFeedbackInternal, _PureComponent);
|
|
55
|
-
var _super = _createSuper(ToolbarFeedbackInternal);
|
|
56
|
-
function ToolbarFeedbackInternal(props) {
|
|
57
|
-
var _this;
|
|
58
|
-
_classCallCheck(this, ToolbarFeedbackInternal);
|
|
59
|
-
_this = _super.call(this, props);
|
|
60
|
-
_defineProperty(_assertThisInitialized(_this), "state", {
|
|
61
|
-
jiraIssueCollectorScriptLoading: false,
|
|
62
|
-
showOptOutOption: false
|
|
63
|
-
});
|
|
64
|
-
_defineProperty(_assertThisInitialized(_this), "handleRef", function (ref) {
|
|
65
|
-
if (ref) {
|
|
66
|
-
_this.setState({
|
|
67
|
-
target: ref
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
// Create a FeedbackInfo instance from props.
|
|
72
|
-
_defineProperty(_assertThisInitialized(_this), "getFeedbackInfo", function () {
|
|
73
|
-
var _this$props = _this.props,
|
|
74
|
-
product = _this$props.product,
|
|
75
|
-
packageVersion = _this$props.packageVersion,
|
|
76
|
-
packageName = _this$props.packageName,
|
|
77
|
-
labels = _this$props.labels;
|
|
78
|
-
return _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, product !== undefined && {
|
|
79
|
-
product: product
|
|
80
|
-
}), packageVersion !== undefined && {
|
|
81
|
-
packageVersion: packageVersion
|
|
82
|
-
}), packageName !== undefined && {
|
|
83
|
-
packageName: packageName
|
|
84
|
-
}), labels !== undefined && {
|
|
85
|
-
labels: labels
|
|
86
|
-
});
|
|
87
|
-
});
|
|
88
|
-
_defineProperty(_assertThisInitialized(_this), "collectFeedback", function () {
|
|
89
|
-
if (_this.props.product === 'bitbucket') {
|
|
90
|
-
_this.setState({
|
|
91
|
-
showOptOutOption: true
|
|
92
|
-
});
|
|
93
|
-
} else {
|
|
94
|
-
_this.openFeedbackPopup();
|
|
95
|
-
}
|
|
96
|
-
});
|
|
97
|
-
_defineProperty(_assertThisInitialized(_this), "toggleShowOptOutOption", function () {
|
|
98
|
-
_this.setState({
|
|
99
|
-
showOptOutOption: !_this.state.showOptOutOption
|
|
100
|
-
});
|
|
101
|
-
});
|
|
102
|
-
_defineProperty(_assertThisInitialized(_this), "openJiraIssueCollector", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
103
|
-
var _this$props$api, _window$localStorage$, _this$props$api2;
|
|
104
|
-
var contentId, sessionId, tabId;
|
|
105
|
-
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
106
|
-
while (1) switch (_context.prev = _context.next) {
|
|
107
|
-
case 0:
|
|
108
|
-
_this.setState({
|
|
109
|
-
jiraIssueCollectorScriptLoading: true,
|
|
110
|
-
showOptOutOption: false
|
|
111
|
-
});
|
|
112
|
-
contentId = (_this$props$api = _this.props.api) === null || _this$props$api === void 0 || (_this$props$api = _this$props$api.contextIdentifier) === null || _this$props$api === void 0 || (_this$props$api = _this$props$api.sharedState.currentState()) === null || _this$props$api === void 0 || (_this$props$api = _this$props$api.contextIdentifierProvider) === null || _this$props$api === void 0 ? void 0 : _this$props$api.objectId;
|
|
113
|
-
sessionId = (_window$localStorage$ = window.localStorage.getItem('awc.session.id')) === null || _window$localStorage$ === void 0 ? void 0 : _window$localStorage$.toString();
|
|
114
|
-
tabId = window.sessionStorage['awc.tab.id'];
|
|
115
|
-
_context.next = 6;
|
|
116
|
-
return (_this$props$api2 = _this.props.api) === null || _this$props$api2 === void 0 || (_this$props$api2 = _this$props$api2.feedbackDialog) === null || _this$props$api2 === void 0 ? void 0 : _this$props$api2.actions.openFeedbackDialog(_objectSpread(_objectSpread({}, _this.getFeedbackInfo()), {}, {
|
|
117
|
-
sessionId: sessionId,
|
|
118
|
-
contentId: contentId,
|
|
119
|
-
tabId: tabId
|
|
120
|
-
}));
|
|
121
|
-
case 6:
|
|
122
|
-
_this.setState({
|
|
123
|
-
jiraIssueCollectorScriptLoading: false
|
|
124
|
-
});
|
|
125
|
-
case 7:
|
|
126
|
-
case "end":
|
|
127
|
-
return _context.stop();
|
|
128
|
-
}
|
|
129
|
-
}, _callee);
|
|
130
|
-
})));
|
|
131
|
-
_defineProperty(_assertThisInitialized(_this), "openFeedbackPopup", function () {
|
|
132
|
-
var dispatch = createDispatch(_this.context.editorActions.eventDispatcher);
|
|
133
|
-
dispatch(analyticsEventKey, {
|
|
134
|
-
payload: {
|
|
135
|
-
action: ACTION.CLICKED,
|
|
136
|
-
actionSubject: ACTION_SUBJECT.BUTTON,
|
|
137
|
-
actionSubjectId: ACTION_SUBJECT_ID.BUTTON_FEEDBACK,
|
|
138
|
-
eventType: EVENT_TYPE.UI
|
|
139
|
-
}
|
|
140
|
-
});
|
|
141
|
-
_this.openJiraIssueCollector();
|
|
142
|
-
return true;
|
|
143
|
-
});
|
|
144
|
-
_defineProperty(_assertThisInitialized(_this), "openLearnMorePage", function () {
|
|
145
|
-
window.open('https://confluence.atlassian.com/x/NU1VO', '_blank');
|
|
146
|
-
_this.toggleShowOptOutOption();
|
|
147
|
-
});
|
|
148
|
-
_defineProperty(_assertThisInitialized(_this), "hasJquery", function () {
|
|
149
|
-
return typeof window.jQuery !== 'undefined';
|
|
150
|
-
});
|
|
151
|
-
deprecationWarnings(ToolbarFeedback.name, props, deprecations);
|
|
152
|
-
return _this;
|
|
1
|
+
export default function ToolbarFeedback() {
|
|
2
|
+
if (process.env.NODE_ENV === 'development') {
|
|
3
|
+
// eslint-disable-next-line no-console
|
|
4
|
+
console.warn('ToolbarFeedback component is no longer available. This will be deprecated soon.');
|
|
153
5
|
}
|
|
154
|
-
|
|
155
|
-
key: "render",
|
|
156
|
-
value: function render() {
|
|
157
|
-
var _this$props2 = this.props,
|
|
158
|
-
popupsMountPoint = _this$props2.popupsMountPoint,
|
|
159
|
-
popupsBoundariesElement = _this$props2.popupsBoundariesElement,
|
|
160
|
-
popupsScrollableElement = _this$props2.popupsScrollableElement;
|
|
161
|
-
var iconBefore = this.state.jiraIssueCollectorScriptLoading ? jsx(Spinner, null) : undefined;
|
|
162
|
-
|
|
163
|
-
// JIRA issue collector script is using jQuery internally
|
|
164
|
-
return this.hasJquery() ?
|
|
165
|
-
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
|
|
166
|
-
jsx("div", {
|
|
167
|
-
css: wrapper
|
|
168
|
-
}, jsx(ToolbarButton, {
|
|
169
|
-
ref: this.handleRef,
|
|
170
|
-
iconBefore: iconBefore,
|
|
171
|
-
onClick: this.collectFeedback,
|
|
172
|
-
selected: false,
|
|
173
|
-
spacing: "compact"
|
|
174
|
-
}, jsx("span", {
|
|
175
|
-
css: buttonContent
|
|
176
|
-
}, "Feedback")), this.state.showOptOutOption && jsx(PopupWithOutsideListeners, {
|
|
177
|
-
target: this.state.target,
|
|
178
|
-
mountTo: popupsMountPoint,
|
|
179
|
-
boundariesElement: popupsBoundariesElement,
|
|
180
|
-
scrollableElement: popupsScrollableElement,
|
|
181
|
-
fitHeight: POPUP_HEIGHT,
|
|
182
|
-
fitWidth: POPUP_WIDTH,
|
|
183
|
-
handleClickOutside: this.toggleShowOptOutOption,
|
|
184
|
-
handleEscapeKeydown: this.toggleShowOptOutOption
|
|
185
|
-
}, jsx("div", {
|
|
186
|
-
css: confirmationPopup
|
|
187
|
-
}, jsx("div", {
|
|
188
|
-
css: confirmationHeader
|
|
189
|
-
}, jsx("img", {
|
|
190
|
-
css: confirmationImg,
|
|
191
|
-
src: EDITOR_IMAGE_URL
|
|
192
|
-
})), jsx("div", {
|
|
193
|
-
css: confirmationText
|
|
194
|
-
}, jsx("div", null, "We are rolling out a new editing experience across Atlassian products. Help us improve by providing feedback."), jsx("div", null, "You can opt-out for now by turning off the \"Atlassian Editor\" feature on the Labs page in Bitbucket settings."), jsx(ButtonGroup, null, jsx(Button, {
|
|
195
|
-
appearance: "primary",
|
|
196
|
-
onClick: this.openFeedbackPopup
|
|
197
|
-
}, "Give feedback"), jsx(Button, {
|
|
198
|
-
appearance: "default",
|
|
199
|
-
onClick: this.openLearnMorePage
|
|
200
|
-
}, "Learn more")))))) : null;
|
|
201
|
-
}
|
|
202
|
-
}]);
|
|
203
|
-
return ToolbarFeedbackInternal;
|
|
204
|
-
}(PureComponent);
|
|
205
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
206
|
-
_defineProperty(ToolbarFeedbackInternal, "contextTypes", {
|
|
207
|
-
editorActions: PropTypes.object.isRequired
|
|
208
|
-
});
|
|
209
|
-
export default function ToolbarFeedback(props) {
|
|
210
|
-
var api = usePresetContext();
|
|
211
|
-
return jsx(ToolbarFeedbackInternal, _extends({
|
|
212
|
-
api: api
|
|
213
|
-
}, props));
|
|
6
|
+
return null;
|
|
214
7
|
}
|
package/dist/esm/utils/action.js
CHANGED
|
@@ -10,57 +10,29 @@ var mediaPluginKey = {
|
|
|
10
10
|
return state['mediaPlugin$'];
|
|
11
11
|
}
|
|
12
12
|
};
|
|
13
|
-
export function
|
|
14
|
-
return _temporaryFixForConfigPanel.apply(this, arguments);
|
|
15
|
-
}
|
|
16
|
-
function _temporaryFixForConfigPanel() {
|
|
17
|
-
_temporaryFixForConfigPanel = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(editorView, api) {
|
|
18
|
-
var _api$extension;
|
|
19
|
-
var extensionPluginState;
|
|
20
|
-
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
21
|
-
while (1) switch (_context.prev = _context.next) {
|
|
22
|
-
case 0:
|
|
23
|
-
extensionPluginState = api === null || api === void 0 || (_api$extension = api.extension) === null || _api$extension === void 0 ? void 0 : _api$extension.sharedState.currentState();
|
|
24
|
-
if (!(extensionPluginState && extensionPluginState.showContextPanel)) {
|
|
25
|
-
_context.next = 4;
|
|
26
|
-
break;
|
|
27
|
-
}
|
|
28
|
-
_context.next = 4;
|
|
29
|
-
return new Promise(function (resolve) {
|
|
30
|
-
var _api$extension2, _api$contextPanel;
|
|
31
|
-
api === null || api === void 0 || (_api$extension2 = api.extension) === null || _api$extension2 === void 0 || _api$extension2.actions.forceAutoSave(api === null || api === void 0 || (_api$contextPanel = api.contextPanel) === null || _api$contextPanel === void 0 ? void 0 : _api$contextPanel.actions.applyChange)(resolve)(editorView.state, editorView.dispatch);
|
|
32
|
-
});
|
|
33
|
-
case 4:
|
|
34
|
-
case "end":
|
|
35
|
-
return _context.stop();
|
|
36
|
-
}
|
|
37
|
-
}, _callee);
|
|
38
|
-
}));
|
|
39
|
-
return _temporaryFixForConfigPanel.apply(this, arguments);
|
|
40
|
-
}
|
|
41
|
-
export function getEditorValueWithMedia(_x3) {
|
|
13
|
+
export function getEditorValueWithMedia(_x) {
|
|
42
14
|
return _getEditorValueWithMedia.apply(this, arguments);
|
|
43
15
|
}
|
|
44
16
|
function _getEditorValueWithMedia() {
|
|
45
|
-
_getEditorValueWithMedia = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function
|
|
17
|
+
_getEditorValueWithMedia = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(editorView) {
|
|
46
18
|
var mediaPluginState;
|
|
47
|
-
return _regeneratorRuntime.wrap(function
|
|
48
|
-
while (1) switch (
|
|
19
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
20
|
+
while (1) switch (_context.prev = _context.next) {
|
|
49
21
|
case 0:
|
|
50
22
|
mediaPluginState = editorView.state && mediaPluginKey.getState(editorView.state);
|
|
51
23
|
if (!(mediaPluginState && mediaPluginState.waitForMediaUpload)) {
|
|
52
|
-
|
|
24
|
+
_context.next = 4;
|
|
53
25
|
break;
|
|
54
26
|
}
|
|
55
|
-
|
|
27
|
+
_context.next = 4;
|
|
56
28
|
return mediaPluginState.waitForPendingTasks();
|
|
57
29
|
case 4:
|
|
58
|
-
return
|
|
30
|
+
return _context.abrupt("return", editorView.state.doc);
|
|
59
31
|
case 5:
|
|
60
32
|
case "end":
|
|
61
|
-
return
|
|
33
|
+
return _context.stop();
|
|
62
34
|
}
|
|
63
|
-
},
|
|
35
|
+
}, _callee);
|
|
64
36
|
}));
|
|
65
37
|
return _getEditorValueWithMedia.apply(this, arguments);
|
|
66
38
|
}
|
package/dist/esm/utils/index.js
CHANGED