@atlaskit/editor-plugin-table 17.3.18 → 17.3.20
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 +16 -0
- package/dist/cjs/nodeviews/TableContainer.js +11 -4
- package/dist/cjs/nodeviews/TableResizer.js +10 -17
- package/dist/cjs/pm-plugins/drag-and-drop/plugin.js +9 -14
- package/dist/cjs/ui/ContentComponent.js +1 -2
- package/dist/cjs/ui/FloatingContextualMenu/ContextualMenu.js +36 -45
- package/dist/cjs/ui/FloatingContextualMenu/index.js +3 -4
- package/dist/cjs/ui/FloatingDragMenu/DragMenu.js +5 -8
- package/dist/cjs/ui/toolbar.js +1 -3
- package/dist/es2019/nodeviews/TableContainer.js +11 -4
- package/dist/es2019/nodeviews/TableResizer.js +10 -17
- package/dist/es2019/pm-plugins/drag-and-drop/plugin.js +7 -13
- package/dist/es2019/ui/ContentComponent.js +1 -2
- package/dist/es2019/ui/FloatingContextualMenu/ContextualMenu.js +6 -12
- package/dist/es2019/ui/FloatingContextualMenu/index.js +3 -4
- package/dist/es2019/ui/FloatingDragMenu/DragMenu.js +5 -8
- package/dist/es2019/ui/toolbar.js +1 -3
- package/dist/esm/nodeviews/TableContainer.js +11 -4
- package/dist/esm/nodeviews/TableResizer.js +10 -17
- package/dist/esm/pm-plugins/drag-and-drop/plugin.js +9 -14
- package/dist/esm/ui/ContentComponent.js +1 -2
- package/dist/esm/ui/FloatingContextualMenu/ContextualMenu.js +36 -45
- package/dist/esm/ui/FloatingContextualMenu/index.js +3 -4
- package/dist/esm/ui/FloatingDragMenu/DragMenu.js +5 -8
- package/dist/esm/ui/toolbar.js +1 -3
- package/dist/types/types/index.d.ts +2 -2
- package/dist/types/ui/FloatingContextualMenu/index.d.ts +1 -1
- package/dist/types-ts4.5/types/index.d.ts +2 -2
- package/dist/types-ts4.5/ui/FloatingContextualMenu/index.d.ts +1 -1
- package/package.json +4 -4
|
@@ -6,7 +6,6 @@ import { useSharedPluginStateWithSelector } from '@atlaskit/editor-common/hooks'
|
|
|
6
6
|
import { ResizerBreakoutModeLabel } from '@atlaskit/editor-common/resizer';
|
|
7
7
|
import { akEditorFloatingPanelZIndex } from '@atlaskit/editor-shared-styles';
|
|
8
8
|
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
9
|
-
import { expValNoExposure } from '@atlaskit/tmp-editor-statsig/expVal';
|
|
10
9
|
import FloatingContextualButton from './FloatingContextualButton';
|
|
11
10
|
import FloatingContextualMenu from './FloatingContextualMenu';
|
|
12
11
|
import FloatingDeleteButton from './FloatingDeleteButton';
|
|
@@ -143,7 +142,7 @@ const ContentComponentInternal = ({
|
|
|
143
142
|
isCellMenuOpenByKeyboard: isCellMenuOpenByKeyboard,
|
|
144
143
|
isCommentEditor: options === null || options === void 0 ? void 0 : options.isCommentEditor,
|
|
145
144
|
api: api,
|
|
146
|
-
isDragMenuOpen:
|
|
145
|
+
isDragMenuOpen: isDragMenuOpen
|
|
147
146
|
}), isDragAndDropEnabled && /*#__PURE__*/React.createElement(FloatingDragMenu, {
|
|
148
147
|
editorView: editorView,
|
|
149
148
|
mountPoint: popupsMountPoint,
|
|
@@ -31,9 +31,7 @@ import TableRowAddBelowIcon from '@atlaskit/icon/core/table-row-add-below';
|
|
|
31
31
|
import TableRowDeleteIcon from '@atlaskit/icon/core/table-row-delete';
|
|
32
32
|
// eslint-disable-next-line @atlaskit/design-system/no-emotion-primitives -- to be migrated to @atlaskit/primitives/compiled – go/akcss
|
|
33
33
|
import { Box, xcss } from '@atlaskit/primitives';
|
|
34
|
-
import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
|
|
35
34
|
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
36
|
-
import { expValNoExposure } from '@atlaskit/tmp-editor-statsig/expVal';
|
|
37
35
|
import { clearHoverSelection, hoverColumns, hoverMergedCells, hoverRows, setFocusToCellMenu, toggleContextualMenu } from '../../pm-plugins/commands';
|
|
38
36
|
import { deleteColumnsWithAnalytics, deleteRowsWithAnalytics, distributeColumnsWidthsWithAnalytics, emptyMultipleCellsWithAnalytics, insertColumnWithAnalytics, insertRowWithAnalytics, mergeCellsWithAnalytics, setColorWithAnalytics, sortColumnWithAnalytics, splitCellWithAnalytics } from '../../pm-plugins/commands/commands-with-analytics';
|
|
39
37
|
import { getPluginState } from '../../pm-plugins/plugin-factory';
|
|
@@ -786,7 +784,7 @@ export class ContextualMenu extends Component {
|
|
|
786
784
|
isDragAndDropEnabled,
|
|
787
785
|
isContextualMenuOpen
|
|
788
786
|
} = getPluginState(this.props.editorView.state);
|
|
789
|
-
if (isDragAndDropEnabled && this.props.isDragMenuOpen && isContextualMenuOpen
|
|
787
|
+
if (isDragAndDropEnabled && this.props.isDragMenuOpen && isContextualMenuOpen) {
|
|
790
788
|
toggleContextualMenu()(this.props.editorView.state, this.props.editorView.dispatch);
|
|
791
789
|
}
|
|
792
790
|
}
|
|
@@ -805,7 +803,10 @@ export class ContextualMenu extends Component {
|
|
|
805
803
|
const items = isDragAndDropEnabled ? this.createNewContextMenuItems() : this.createOriginalContextMenuItems();
|
|
806
804
|
let isOpenAllowed = false;
|
|
807
805
|
isOpenAllowed = isCellMenuOpenByKeyboard ? this.state.isOpenAllowed : isOpen;
|
|
808
|
-
|
|
806
|
+
return jsx(UserIntentPopupWrapper, {
|
|
807
|
+
userIntent: "tableContextualMenuPopupOpen",
|
|
808
|
+
api: api
|
|
809
|
+
}, jsx("div", {
|
|
809
810
|
"data-testid": "table-cell-contextual-menu"
|
|
810
811
|
// eslint-disable-next-line @atlassian/a11y/mouse-events-have-key-events
|
|
811
812
|
,
|
|
@@ -836,14 +837,7 @@ export class ContextualMenu extends Component {
|
|
|
836
837
|
hasSeparator: true
|
|
837
838
|
} : undefined,
|
|
838
839
|
allowEnterDefaultBehavior: this.state.isSubmenuOpen
|
|
839
|
-
}));
|
|
840
|
-
if (expValEqualsNoExposure('platform_editor_lovability_user_intent', 'isEnabled', true)) {
|
|
841
|
-
return jsx(UserIntentPopupWrapper, {
|
|
842
|
-
userIntent: "tableContextualMenuPopupOpen",
|
|
843
|
-
api: api
|
|
844
|
-
}, popupContent());
|
|
845
|
-
}
|
|
846
|
-
return popupContent();
|
|
840
|
+
})));
|
|
847
841
|
}
|
|
848
842
|
}
|
|
849
843
|
_defineProperty(ContextualMenu, "defaultProps", {
|
|
@@ -9,7 +9,6 @@ import { findDomRefAtPos } from '@atlaskit/editor-prosemirror/utils';
|
|
|
9
9
|
import { akEditorFloatingDialogZIndex, akEditorFloatingOverlapPanelZIndex } from '@atlaskit/editor-shared-styles';
|
|
10
10
|
import { findCellRectClosestToPos, getSelectionRect, isSelectionType } from '@atlaskit/editor-tables/utils';
|
|
11
11
|
import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
|
|
12
|
-
import { expValNoExposure } from '@atlaskit/tmp-editor-statsig/expVal';
|
|
13
12
|
import { getPluginState } from '../../pm-plugins/plugin-factory';
|
|
14
13
|
import { contextualMenuDropdownWidth, contextualMenuDropdownWidthDnD, contextualMenuTriggerSize, tablePopupMenuFitHeight } from '../consts';
|
|
15
14
|
|
|
@@ -29,8 +28,8 @@ const FloatingContextualMenu = ({
|
|
|
29
28
|
getEditorFeatureFlags,
|
|
30
29
|
isCellMenuOpenByKeyboard,
|
|
31
30
|
isCommentEditor,
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
api,
|
|
32
|
+
isDragMenuOpen
|
|
34
33
|
}) => {
|
|
35
34
|
if (expValEquals('platform_editor_hydratable_ui', 'isEnabled', true) && !editorView) {
|
|
36
35
|
return null;
|
|
@@ -116,7 +115,7 @@ const FloatingContextualMenu = ({
|
|
|
116
115
|
isCellMenuOpenByKeyboard: isCellMenuOpenByKeyboard,
|
|
117
116
|
isCommentEditor: isCommentEditor,
|
|
118
117
|
api: api,
|
|
119
|
-
isDragMenuOpen:
|
|
118
|
+
isDragMenuOpen: isDragMenuOpen
|
|
120
119
|
})));
|
|
121
120
|
};
|
|
122
121
|
FloatingContextualMenu.displayName = 'FloatingContextualMenu';
|
|
@@ -25,7 +25,6 @@ import { fg } from '@atlaskit/platform-feature-flags';
|
|
|
25
25
|
// eslint-disable-next-line @atlaskit/design-system/no-emotion-primitives -- to be migrated to @atlaskit/primitives/compiled – go/akcss
|
|
26
26
|
import { Box, xcss } from '@atlaskit/primitives';
|
|
27
27
|
import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
|
|
28
|
-
import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
|
|
29
28
|
import Toggle from '@atlaskit/toggle';
|
|
30
29
|
import { clearHoverSelection, hoverColumns, hoverRows } from '../../pm-plugins/commands';
|
|
31
30
|
import { setColorWithAnalytics, toggleHeaderColumnWithAnalytics, toggleHeaderRowWithAnalytics, toggleNumberColumnWithAnalytics } from '../../pm-plugins/commands/commands-with-analytics';
|
|
@@ -229,7 +228,6 @@ const DragMenu = /*#__PURE__*/React.memo(({
|
|
|
229
228
|
menuItems,
|
|
230
229
|
menuCallback
|
|
231
230
|
} = convertToDropdownItems(dragMenuConfig, formatMessage, selectionRect);
|
|
232
|
-
const isToolbarAIFCEnabled = Boolean(api === null || api === void 0 ? void 0 : api.toolbar);
|
|
233
231
|
const handleSubMenuRef = ref => {
|
|
234
232
|
// Ignored via go/ees005
|
|
235
233
|
// eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
@@ -562,7 +560,10 @@ const DragMenu = /*#__PURE__*/React.memo(({
|
|
|
562
560
|
items: [createRowNumbersMenuItem()]
|
|
563
561
|
});
|
|
564
562
|
}
|
|
565
|
-
|
|
563
|
+
return jsx(UserIntentPopupWrapper, {
|
|
564
|
+
api: api,
|
|
565
|
+
userIntent: "tableDragMenuPopupOpen"
|
|
566
|
+
}, jsx(DropdownMenu, {
|
|
566
567
|
disableKeyboardHandling: isSubmenuOpen,
|
|
567
568
|
section: {
|
|
568
569
|
hasSeparator: true
|
|
@@ -577,10 +578,6 @@ const DragMenu = /*#__PURE__*/React.memo(({
|
|
|
577
578
|
direction: direction,
|
|
578
579
|
boundariesElement: boundariesElement,
|
|
579
580
|
scrollableElement: scrollableElement
|
|
580
|
-
});
|
|
581
|
-
return isToolbarAIFCEnabled || expValEquals('platform_editor_lovability_user_intent', 'isEnabled', true) ? jsx(UserIntentPopupWrapper, {
|
|
582
|
-
api: api,
|
|
583
|
-
userIntent: expValEqualsNoExposure('platform_editor_lovability_user_intent', 'isEnabled', true) ? 'tableDragMenuPopupOpen' : undefined
|
|
584
|
-
}, Menu) : Menu;
|
|
581
|
+
}));
|
|
585
582
|
});
|
|
586
583
|
export default injectIntl(DragMenu);
|
|
@@ -415,12 +415,10 @@ export const getToolbarConfig = (getEditorContainerWidth, api, editorAnalyticsAP
|
|
|
415
415
|
// won't be suppressed.
|
|
416
416
|
const shouldSuppressAllToolbars = isTableState && pluginState.editorHasFocus && !isViewMode;
|
|
417
417
|
if (shouldSuppressAllToolbars) {
|
|
418
|
-
const userIntentEnabled = Boolean((api === null || api === void 0 ? void 0 : api.userIntent) && expValEquals('platform_editor_lovability_user_intent', 'isEnabled', true));
|
|
419
418
|
return {
|
|
420
419
|
title: toolbarTitle,
|
|
421
420
|
items: [],
|
|
422
|
-
nodeType
|
|
423
|
-
__suppressAllToolbars: userIntentEnabled ? undefined : true
|
|
421
|
+
nodeType
|
|
424
422
|
};
|
|
425
423
|
}
|
|
426
424
|
}
|
|
@@ -21,7 +21,9 @@ var InnerContainer = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
21
21
|
var className = _ref.className,
|
|
22
22
|
style = _ref.style,
|
|
23
23
|
node = _ref.node,
|
|
24
|
-
children = _ref.children
|
|
24
|
+
children = _ref.children,
|
|
25
|
+
tableWrapperHeight = _ref.tableWrapperHeight;
|
|
26
|
+
var bordersReady = expValEquals('platform_editor_table_borders_ready_fix', 'isEnabled', true) ? tableWrapperHeight !== undefined && tableWrapperHeight > 0 : undefined;
|
|
25
27
|
return /*#__PURE__*/React.createElement("div", {
|
|
26
28
|
ref: ref
|
|
27
29
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
|
|
@@ -32,6 +34,7 @@ var InnerContainer = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
32
34
|
className: className,
|
|
33
35
|
"data-number-column": node.attrs.isNumberColumnEnabled,
|
|
34
36
|
"data-layout": node.attrs.layout,
|
|
37
|
+
"data-borders-ready": bordersReady,
|
|
35
38
|
"data-testid": "table-container"
|
|
36
39
|
}, children);
|
|
37
40
|
});
|
|
@@ -326,9 +329,12 @@ export var ResizableTableContainer = /*#__PURE__*/React.memo(function (_ref4) {
|
|
|
326
329
|
ref: containerRef
|
|
327
330
|
}, /*#__PURE__*/React.createElement(TableResizer, _extends({}, tableResizerProps, {
|
|
328
331
|
disabled: isLivePageViewMode
|
|
329
|
-
}), /*#__PURE__*/React.createElement(InnerContainer
|
|
332
|
+
}), /*#__PURE__*/React.createElement(InnerContainer
|
|
333
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
|
|
334
|
+
, {
|
|
330
335
|
className: className,
|
|
331
|
-
node: node
|
|
336
|
+
node: node,
|
|
337
|
+
tableWrapperHeight: tableWrapperHeight
|
|
332
338
|
}, children))));
|
|
333
339
|
});
|
|
334
340
|
export var TableContainer = function TableContainer(_ref5) {
|
|
@@ -387,7 +393,8 @@ export var TableContainer = function TableContainer(_ref5) {
|
|
|
387
393
|
var isFullPageAppearance = !isCommentEditor && !isChromelessEditor;
|
|
388
394
|
var resizableTableWidth = isFullPageAppearance ? getTableResizerContainerForFullPageWidthInCSS(node, isTableScalingEnabled) : "calc(100cqw - calc(var(--ak-editor--large-gutter-padding) * 2))";
|
|
389
395
|
return /*#__PURE__*/React.createElement(InnerContainer, {
|
|
390
|
-
node: node
|
|
396
|
+
node: node,
|
|
397
|
+
tableWrapperHeight: tableWrapperHeight
|
|
391
398
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
|
|
392
399
|
,
|
|
393
400
|
className: classNames(className, {
|
|
@@ -19,7 +19,6 @@ import { akEditorGutterPaddingDynamic, akEditorGutterPaddingReduced, akEditorFul
|
|
|
19
19
|
import { findTable } from '@atlaskit/editor-tables/utils';
|
|
20
20
|
import { insm } from '@atlaskit/insm';
|
|
21
21
|
import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
|
|
22
|
-
import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
|
|
23
22
|
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
24
23
|
import { setTableAlignmentWithTableContentWithPosWithAnalytics } from '../pm-plugins/commands/commands-with-analytics';
|
|
25
24
|
import { updateWidthToWidest } from '../pm-plugins/commands/misc';
|
|
@@ -153,7 +152,6 @@ export var TableResizer = function TableResizer(_ref) {
|
|
|
153
152
|
setSnappingEnabled = _useState2[1];
|
|
154
153
|
var _useIntl = useIntl(),
|
|
155
154
|
formatMessage = _useIntl.formatMessage;
|
|
156
|
-
var isToolbarAIFCEnabled = Boolean(pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : pluginInjectionApi.toolbar);
|
|
157
155
|
var currentSelection = (_editorView$state = editorView.state) === null || _editorView$state === void 0 ? void 0 : _editorView$state.selection;
|
|
158
156
|
var tableFromSelection = useMemo(function () {
|
|
159
157
|
return findTable(currentSelection);
|
|
@@ -239,6 +237,7 @@ export var TableResizer = function TableResizer(_ref) {
|
|
|
239
237
|
};
|
|
240
238
|
}, [editorView, displayGuideline, displayGapCursor]);
|
|
241
239
|
var handleResizeStart = useCallback(function () {
|
|
240
|
+
var _pluginInjectionApi$u;
|
|
242
241
|
if (expValEquals('cc_editor_interactivity_monitoring', 'isEnabled', true)) {
|
|
243
242
|
var _insm$session;
|
|
244
243
|
(_insm$session = insm.session) === null || _insm$session === void 0 || _insm$session.startFeature('tableResize');
|
|
@@ -257,19 +256,16 @@ export var TableResizer = function TableResizer(_ref) {
|
|
|
257
256
|
tr.setMeta(META_KEYS.OVERFLOW_TRIGGER, {
|
|
258
257
|
name: TABLE_OVERFLOW_CHANGE_TRIGGER.RESIZED
|
|
259
258
|
});
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
tr: tr
|
|
264
|
-
});
|
|
265
|
-
}
|
|
259
|
+
pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$u = pluginInjectionApi.userIntent) === null || _pluginInjectionApi$u === void 0 || _pluginInjectionApi$u.commands.setCurrentUserIntent('resizing')({
|
|
260
|
+
tr: tr
|
|
261
|
+
});
|
|
266
262
|
dispatch(tr);
|
|
267
263
|
var visibleGuidelines = getVisibleGuidelines(isTableScalingEnabled ? defaultGuidelinesForPreserveTable(PRESERVE_TABLE_GUIDELINES_LENGTH_OFFSET, isFullWidthModeEnabled ? lineLength + 2 * getPadding(containerWidth) : containerWidth, excludeGuidelineConfig) : defaultGuidelines, containerWidth, lineLength, Boolean(isTableScalingEnabled), Boolean(isFullWidthModeEnabled));
|
|
268
264
|
setSnappingEnabled(displayGuideline(visibleGuidelines));
|
|
269
265
|
if (onResizeStart) {
|
|
270
266
|
onResizeStart();
|
|
271
267
|
}
|
|
272
|
-
}, [startMeasure, editorView, displayGapCursor, node.attrs.localId, tableRef,
|
|
268
|
+
}, [startMeasure, editorView, displayGapCursor, node.attrs.localId, tableRef, isTableScalingEnabled, isFullWidthModeEnabled, lineLength, containerWidth, excludeGuidelineConfig, displayGuideline, onResizeStart, pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$u2 = pluginInjectionApi.userIntent) === null || _pluginInjectionApi$u2 === void 0 ? void 0 : _pluginInjectionApi$u2.commands]);
|
|
273
269
|
var handleResize = useCallback(
|
|
274
270
|
// Ignored via go/ees005
|
|
275
271
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -317,7 +313,7 @@ export var TableResizer = function TableResizer(_ref) {
|
|
|
317
313
|
return rafSchd(handleResize);
|
|
318
314
|
}, [handleResize]);
|
|
319
315
|
var handleResizeStop = useCallback(function (originalState, delta) {
|
|
320
|
-
var _node$attrs$localId2, _node$attrs2;
|
|
316
|
+
var _node$attrs$localId2, _node$attrs2, _pluginInjectionApi$u3;
|
|
321
317
|
isResizing.current = false;
|
|
322
318
|
var newWidth = originalState.width + delta.width;
|
|
323
319
|
var originalNewWidth = newWidth;
|
|
@@ -334,12 +330,9 @@ export var TableResizer = function TableResizer(_ref) {
|
|
|
334
330
|
tableRef: null
|
|
335
331
|
});
|
|
336
332
|
tr.setMeta('is-resizer-resizing', false);
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
tr: tr
|
|
341
|
-
});
|
|
342
|
-
}
|
|
333
|
+
pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$u3 = pluginInjectionApi.userIntent) === null || _pluginInjectionApi$u3 === void 0 || _pluginInjectionApi$u3.commands.setCurrentUserIntent('default')({
|
|
334
|
+
tr: tr
|
|
335
|
+
});
|
|
343
336
|
var frameRateSamples = endMeasure();
|
|
344
337
|
if (frameRateSamples.length > 0) {
|
|
345
338
|
var resizeFrameRatePayloads = generateResizeFrameRatePayloads({
|
|
@@ -406,7 +399,7 @@ export var TableResizer = function TableResizer(_ref) {
|
|
|
406
399
|
(_insm$session2 = insm.session) === null || _insm$session2 === void 0 || _insm$session2.endFeature('tableResize');
|
|
407
400
|
}
|
|
408
401
|
return newWidth;
|
|
409
|
-
}, [editorView, getPos, node, isCommentEditor, widthToWidest,
|
|
402
|
+
}, [editorView, getPos, node, isCommentEditor, widthToWidest, endMeasure, displayGapCursor, displayGuideline, updateWidth, scheduleResize, onResizeStop, pluginInjectionApi, attachAnalyticsEvent, tableRef, isTableScalingEnabled, shouldUseIncreasedScalingPercent, formatMessage]);
|
|
410
403
|
var handleTableSizeChangeOnKeypress = useCallback(function (step) {
|
|
411
404
|
var newWidth = width + step;
|
|
412
405
|
if (newWidth < resizerMinWidth) {
|
|
@@ -78,19 +78,17 @@ var destroyFn = function destroyFn(editorView, editorAnalyticsAPI, isTableScalin
|
|
|
78
78
|
// watch for changes
|
|
79
79
|
return localId === (tableNode === null || tableNode === void 0 ? void 0 : tableNode.attrs.localId);
|
|
80
80
|
},
|
|
81
|
-
onDragStart: function onDragStart(
|
|
82
|
-
var
|
|
81
|
+
onDragStart: function onDragStart() {
|
|
82
|
+
var _api$userIntent;
|
|
83
83
|
if (expValEquals('cc_editor_interactivity_monitoring', 'isEnabled', true)) {
|
|
84
84
|
var _insm$session3;
|
|
85
85
|
(_insm$session3 = insm.session) === null || _insm$session3 === void 0 || _insm$session3.startFeature('tableDragAndDrop');
|
|
86
86
|
}
|
|
87
87
|
toggleDragMenu(false)(editorView.state, editorView.dispatch);
|
|
88
|
-
|
|
89
|
-
var _api$userIntent;
|
|
90
|
-
api === null || api === void 0 || api.core.actions.execute(api === null || api === void 0 || (_api$userIntent = api.userIntent) === null || _api$userIntent === void 0 ? void 0 : _api$userIntent.commands.setCurrentUserIntent('dragging'));
|
|
91
|
-
}
|
|
88
|
+
api === null || api === void 0 || api.core.actions.execute(api === null || api === void 0 || (_api$userIntent = api.userIntent) === null || _api$userIntent === void 0 ? void 0 : _api$userIntent.commands.setCurrentUserIntent('dragging'));
|
|
92
89
|
},
|
|
93
90
|
onDrag: function onDrag(event) {
|
|
91
|
+
var _api$userIntent2;
|
|
94
92
|
var data = getDraggableDataFromEvent(event);
|
|
95
93
|
// If no data can be found then it's most like we do not want to perform any drag actions
|
|
96
94
|
if (!data) {
|
|
@@ -105,10 +103,7 @@ var destroyFn = function destroyFn(editorView, editorAnalyticsAPI, isTableScalin
|
|
|
105
103
|
var dropTargetType = sourceType === 'table-row' ? DropTargetType.ROW : DropTargetType.COLUMN;
|
|
106
104
|
var hasMergedCells = hasMergedCellsInBetween([targetAdjustedIndex - 1, targetAdjustedIndex], dropTargetType)(editorView.state.selection);
|
|
107
105
|
setDropTarget(dropTargetType, targetAdjustedIndex, hasMergedCells)(editorView.state, editorView.dispatch);
|
|
108
|
-
|
|
109
|
-
var _api$userIntent2;
|
|
110
|
-
api === null || api === void 0 || api.core.actions.execute(api === null || api === void 0 || (_api$userIntent2 = api.userIntent) === null || _api$userIntent2 === void 0 ? void 0 : _api$userIntent2.commands.setCurrentUserIntent('dragging'));
|
|
111
|
-
}
|
|
106
|
+
api === null || api === void 0 || api.core.actions.execute(api === null || api === void 0 || (_api$userIntent2 = api.userIntent) === null || _api$userIntent2 === void 0 ? void 0 : _api$userIntent2.commands.setCurrentUserIntent('dragging'));
|
|
112
107
|
},
|
|
113
108
|
onDrop: function onDrop(event) {
|
|
114
109
|
var _cell$row, _cell$col, _api$userIntent3;
|
|
@@ -134,7 +129,7 @@ var destroyFn = function destroyFn(editorView, editorAnalyticsAPI, isTableScalin
|
|
|
134
129
|
}
|
|
135
130
|
};
|
|
136
131
|
tr.setMeta(tablePluginKey, action);
|
|
137
|
-
if (
|
|
132
|
+
if ((api === null || api === void 0 || (_api$userIntent3 = api.userIntent) === null || _api$userIntent3 === void 0 || (_api$userIntent3 = _api$userIntent3.sharedState.currentState()) === null || _api$userIntent3 === void 0 ? void 0 : _api$userIntent3.currentUserIntent) === 'dragging') {
|
|
138
133
|
var _api$userIntent4;
|
|
139
134
|
api === null || api === void 0 || api.core.actions.execute(api === null || api === void 0 || (_api$userIntent4 = api.userIntent) === null || _api$userIntent4 === void 0 ? void 0 : _api$userIntent4.commands.setCurrentUserIntent('default'));
|
|
140
135
|
}
|
|
@@ -220,7 +215,7 @@ export var createPlugin = function createPlugin(dispatch, editorAnalyticsAPI) {
|
|
|
220
215
|
var isCommentEditor = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
|
221
216
|
var api = arguments.length > 5 ? arguments[5] : undefined;
|
|
222
217
|
return new SafePlugin({
|
|
223
|
-
state: createPluginState(dispatch, function (
|
|
218
|
+
state: createPluginState(dispatch, function () {
|
|
224
219
|
return {
|
|
225
220
|
decorationSet: DecorationSet.empty,
|
|
226
221
|
dropTargetType: DropTargetType.NONE,
|
|
@@ -297,7 +292,7 @@ export var createPlugin = function createPlugin(dispatch, editorAnalyticsAPI) {
|
|
|
297
292
|
return decorationSet;
|
|
298
293
|
},
|
|
299
294
|
handleKeyDown: function handleKeyDown(view, event) {
|
|
300
|
-
var
|
|
295
|
+
var _ref7;
|
|
301
296
|
var tr = view.state.tr;
|
|
302
297
|
var keysToTrapWhen = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];
|
|
303
298
|
|
|
@@ -321,7 +316,7 @@ export var createPlugin = function createPlugin(dispatch, editorAnalyticsAPI) {
|
|
|
321
316
|
var isDragHandleFocused = ['drag-handle-button-row', 'drag-handle-button-column'
|
|
322
317
|
// Ignored via go/ees005
|
|
323
318
|
// eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
324
|
-
].includes((
|
|
319
|
+
].includes((_ref7 = event.target || null) === null || _ref7 === void 0 ? void 0 : _ref7.id);
|
|
325
320
|
var keysToTrap = ['Enter', ' '];
|
|
326
321
|
var _getPluginState3 = getPluginState(view.state),
|
|
327
322
|
_getPluginState3$isDr = _getPluginState3.isDragMenuOpen,
|
|
@@ -6,7 +6,6 @@ import { useSharedPluginStateWithSelector } from '@atlaskit/editor-common/hooks'
|
|
|
6
6
|
import { ResizerBreakoutModeLabel } from '@atlaskit/editor-common/resizer';
|
|
7
7
|
import { akEditorFloatingPanelZIndex } from '@atlaskit/editor-shared-styles';
|
|
8
8
|
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
9
|
-
import { expValNoExposure } from '@atlaskit/tmp-editor-statsig/expVal';
|
|
10
9
|
import FloatingContextualButton from './FloatingContextualButton';
|
|
11
10
|
import FloatingContextualMenu from './FloatingContextualMenu';
|
|
12
11
|
import FloatingDeleteButton from './FloatingDeleteButton';
|
|
@@ -140,7 +139,7 @@ var ContentComponentInternal = function ContentComponentInternal(_ref) {
|
|
|
140
139
|
isCellMenuOpenByKeyboard: isCellMenuOpenByKeyboard,
|
|
141
140
|
isCommentEditor: options === null || options === void 0 ? void 0 : options.isCommentEditor,
|
|
142
141
|
api: api,
|
|
143
|
-
isDragMenuOpen:
|
|
142
|
+
isDragMenuOpen: isDragMenuOpen
|
|
144
143
|
}), isDragAndDropEnabled && /*#__PURE__*/React.createElement(FloatingDragMenu, {
|
|
145
144
|
editorView: editorView,
|
|
146
145
|
mountPoint: popupsMountPoint,
|
|
@@ -41,9 +41,7 @@ import TableRowAddBelowIcon from '@atlaskit/icon/core/table-row-add-below';
|
|
|
41
41
|
import TableRowDeleteIcon from '@atlaskit/icon/core/table-row-delete';
|
|
42
42
|
// eslint-disable-next-line @atlaskit/design-system/no-emotion-primitives -- to be migrated to @atlaskit/primitives/compiled – go/akcss
|
|
43
43
|
import { Box, xcss } from '@atlaskit/primitives';
|
|
44
|
-
import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
|
|
45
44
|
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
46
|
-
import { expValNoExposure } from '@atlaskit/tmp-editor-statsig/expVal';
|
|
47
45
|
import { clearHoverSelection, hoverColumns, hoverMergedCells, hoverRows, setFocusToCellMenu, toggleContextualMenu } from '../../pm-plugins/commands';
|
|
48
46
|
import { deleteColumnsWithAnalytics, deleteRowsWithAnalytics, distributeColumnsWidthsWithAnalytics, emptyMultipleCellsWithAnalytics, insertColumnWithAnalytics, insertRowWithAnalytics, mergeCellsWithAnalytics, setColorWithAnalytics, sortColumnWithAnalytics, splitCellWithAnalytics } from '../../pm-plugins/commands/commands-with-analytics';
|
|
49
47
|
import { getPluginState } from '../../pm-plugins/plugin-factory';
|
|
@@ -722,14 +720,13 @@ export var ContextualMenu = /*#__PURE__*/function (_Component) {
|
|
|
722
720
|
var _getPluginState11 = getPluginState(this.props.editorView.state),
|
|
723
721
|
isDragAndDropEnabled = _getPluginState11.isDragAndDropEnabled,
|
|
724
722
|
isContextualMenuOpen = _getPluginState11.isContextualMenuOpen;
|
|
725
|
-
if (isDragAndDropEnabled && this.props.isDragMenuOpen && isContextualMenuOpen
|
|
723
|
+
if (isDragAndDropEnabled && this.props.isDragMenuOpen && isContextualMenuOpen) {
|
|
726
724
|
toggleContextualMenu()(this.props.editorView.state, this.props.editorView.dispatch);
|
|
727
725
|
}
|
|
728
726
|
}
|
|
729
727
|
}, {
|
|
730
728
|
key: "render",
|
|
731
729
|
value: function render() {
|
|
732
|
-
var _this2 = this;
|
|
733
730
|
var _this$props13 = this.props,
|
|
734
731
|
isOpen = _this$props13.isOpen,
|
|
735
732
|
offset = _this$props13.offset,
|
|
@@ -742,47 +739,41 @@ export var ContextualMenu = /*#__PURE__*/function (_Component) {
|
|
|
742
739
|
var items = isDragAndDropEnabled ? this.createNewContextMenuItems() : this.createOriginalContextMenuItems();
|
|
743
740
|
var isOpenAllowed = false;
|
|
744
741
|
isOpenAllowed = isCellMenuOpenByKeyboard ? this.state.isOpenAllowed : isOpen;
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
}
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
return jsx(UserIntentPopupWrapper, {
|
|
781
|
-
userIntent: "tableContextualMenuPopupOpen",
|
|
782
|
-
api: api
|
|
783
|
-
}, popupContent());
|
|
784
|
-
}
|
|
785
|
-
return popupContent();
|
|
742
|
+
return jsx(UserIntentPopupWrapper, {
|
|
743
|
+
userIntent: "tableContextualMenuPopupOpen",
|
|
744
|
+
api: api
|
|
745
|
+
}, jsx("div", {
|
|
746
|
+
"data-testid": "table-cell-contextual-menu"
|
|
747
|
+
// eslint-disable-next-line @atlassian/a11y/mouse-events-have-key-events
|
|
748
|
+
,
|
|
749
|
+
onMouseLeave: this.closeSubmenu,
|
|
750
|
+
ref: this.dropdownMenuRef
|
|
751
|
+
}, jsx(DropdownMenu
|
|
752
|
+
//This needs be removed when the a11y is completely handled
|
|
753
|
+
//Disabling key navigation now as it works only partially
|
|
754
|
+
, {
|
|
755
|
+
arrowKeyNavigationProviderOptions: {
|
|
756
|
+
type: ArrowKeyNavigationType.MENU,
|
|
757
|
+
disableArrowKeyNavigation: !isCellMenuOpenByKeyboard || this.state.isSubmenuOpen
|
|
758
|
+
},
|
|
759
|
+
items: items,
|
|
760
|
+
isOpen: isOpenAllowed,
|
|
761
|
+
onOpenChange: this.handleOpenChange,
|
|
762
|
+
onItemActivated: this.onMenuItemActivated,
|
|
763
|
+
onMouseEnter: this.handleItemMouseEnter,
|
|
764
|
+
onMouseLeave: this.handleItemMouseLeave,
|
|
765
|
+
fitHeight: 188,
|
|
766
|
+
fitWidth: isDragAndDropEnabled ? contextualMenuDropdownWidthDnD : contextualMenuDropdownWidth,
|
|
767
|
+
shouldFocusFirstItem: function shouldFocusFirstItem() {
|
|
768
|
+
return Boolean(isCellMenuOpenByKeyboard);
|
|
769
|
+
},
|
|
770
|
+
boundariesElement: boundariesElement,
|
|
771
|
+
offset: offset,
|
|
772
|
+
section: isDragAndDropEnabled ? {
|
|
773
|
+
hasSeparator: true
|
|
774
|
+
} : undefined,
|
|
775
|
+
allowEnterDefaultBehavior: this.state.isSubmenuOpen
|
|
776
|
+
})));
|
|
786
777
|
}
|
|
787
778
|
}]);
|
|
788
779
|
}(Component);
|
|
@@ -9,7 +9,6 @@ import { findDomRefAtPos } from '@atlaskit/editor-prosemirror/utils';
|
|
|
9
9
|
import { akEditorFloatingDialogZIndex, akEditorFloatingOverlapPanelZIndex } from '@atlaskit/editor-shared-styles';
|
|
10
10
|
import { findCellRectClosestToPos, getSelectionRect, isSelectionType } from '@atlaskit/editor-tables/utils';
|
|
11
11
|
import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
|
|
12
|
-
import { expValNoExposure } from '@atlaskit/tmp-editor-statsig/expVal';
|
|
13
12
|
import { getPluginState } from '../../pm-plugins/plugin-factory';
|
|
14
13
|
import { contextualMenuDropdownWidth, contextualMenuDropdownWidthDnD, contextualMenuTriggerSize, tablePopupMenuFitHeight } from '../consts';
|
|
15
14
|
|
|
@@ -29,8 +28,8 @@ var FloatingContextualMenu = function FloatingContextualMenu(_ref) {
|
|
|
29
28
|
getEditorFeatureFlags = _ref.getEditorFeatureFlags,
|
|
30
29
|
isCellMenuOpenByKeyboard = _ref.isCellMenuOpenByKeyboard,
|
|
31
30
|
isCommentEditor = _ref.isCommentEditor,
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
api = _ref.api,
|
|
32
|
+
isDragMenuOpen = _ref.isDragMenuOpen;
|
|
34
33
|
if (expValEquals('platform_editor_hydratable_ui', 'isEnabled', true) && !editorView) {
|
|
35
34
|
return null;
|
|
36
35
|
}
|
|
@@ -112,7 +111,7 @@ var FloatingContextualMenu = function FloatingContextualMenu(_ref) {
|
|
|
112
111
|
isCellMenuOpenByKeyboard: isCellMenuOpenByKeyboard,
|
|
113
112
|
isCommentEditor: isCommentEditor,
|
|
114
113
|
api: api,
|
|
115
|
-
isDragMenuOpen:
|
|
114
|
+
isDragMenuOpen: isDragMenuOpen
|
|
116
115
|
})));
|
|
117
116
|
};
|
|
118
117
|
FloatingContextualMenu.displayName = 'FloatingContextualMenu';
|
|
@@ -27,7 +27,6 @@ import { fg } from '@atlaskit/platform-feature-flags';
|
|
|
27
27
|
// eslint-disable-next-line @atlaskit/design-system/no-emotion-primitives -- to be migrated to @atlaskit/primitives/compiled – go/akcss
|
|
28
28
|
import { Box, xcss } from '@atlaskit/primitives';
|
|
29
29
|
import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
|
|
30
|
-
import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
|
|
31
30
|
import Toggle from '@atlaskit/toggle';
|
|
32
31
|
import { clearHoverSelection, hoverColumns, hoverRows } from '../../pm-plugins/commands';
|
|
33
32
|
import { setColorWithAnalytics, toggleHeaderColumnWithAnalytics, toggleHeaderRowWithAnalytics, toggleNumberColumnWithAnalytics } from '../../pm-plugins/commands/commands-with-analytics';
|
|
@@ -228,7 +227,6 @@ var DragMenu = /*#__PURE__*/React.memo(function (_ref) {
|
|
|
228
227
|
var _convertToDropdownIte = convertToDropdownItems(dragMenuConfig, formatMessage, selectionRect),
|
|
229
228
|
menuItems = _convertToDropdownIte.menuItems,
|
|
230
229
|
menuCallback = _convertToDropdownIte.menuCallback;
|
|
231
|
-
var isToolbarAIFCEnabled = Boolean(api === null || api === void 0 ? void 0 : api.toolbar);
|
|
232
230
|
var handleSubMenuRef = function handleSubMenuRef(ref) {
|
|
233
231
|
// Ignored via go/ees005
|
|
234
232
|
// eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
@@ -558,7 +556,10 @@ var DragMenu = /*#__PURE__*/React.memo(function (_ref) {
|
|
|
558
556
|
items: [createRowNumbersMenuItem()]
|
|
559
557
|
});
|
|
560
558
|
}
|
|
561
|
-
|
|
559
|
+
return jsx(UserIntentPopupWrapper, {
|
|
560
|
+
api: api,
|
|
561
|
+
userIntent: "tableDragMenuPopupOpen"
|
|
562
|
+
}, jsx(DropdownMenu, {
|
|
562
563
|
disableKeyboardHandling: isSubmenuOpen,
|
|
563
564
|
section: {
|
|
564
565
|
hasSeparator: true
|
|
@@ -573,10 +574,6 @@ var DragMenu = /*#__PURE__*/React.memo(function (_ref) {
|
|
|
573
574
|
direction: direction,
|
|
574
575
|
boundariesElement: boundariesElement,
|
|
575
576
|
scrollableElement: scrollableElement
|
|
576
|
-
});
|
|
577
|
-
return isToolbarAIFCEnabled || expValEquals('platform_editor_lovability_user_intent', 'isEnabled', true) ? jsx(UserIntentPopupWrapper, {
|
|
578
|
-
api: api,
|
|
579
|
-
userIntent: expValEqualsNoExposure('platform_editor_lovability_user_intent', 'isEnabled', true) ? 'tableDragMenuPopupOpen' : undefined
|
|
580
|
-
}, Menu) : Menu;
|
|
577
|
+
}));
|
|
581
578
|
});
|
|
582
579
|
export default injectIntl(DragMenu);
|
package/dist/esm/ui/toolbar.js
CHANGED
|
@@ -431,12 +431,10 @@ export var getToolbarConfig = function getToolbarConfig(getEditorContainerWidth,
|
|
|
431
431
|
// won't be suppressed.
|
|
432
432
|
var shouldSuppressAllToolbars = isTableState && pluginState.editorHasFocus && !isViewMode;
|
|
433
433
|
if (shouldSuppressAllToolbars) {
|
|
434
|
-
var userIntentEnabled = Boolean((api === null || api === void 0 ? void 0 : api.userIntent) && expValEquals('platform_editor_lovability_user_intent', 'isEnabled', true));
|
|
435
434
|
return {
|
|
436
435
|
title: toolbarTitle,
|
|
437
436
|
items: [],
|
|
438
|
-
nodeType: nodeType
|
|
439
|
-
__suppressAllToolbars: userIntentEnabled ? undefined : true
|
|
437
|
+
nodeType: nodeType
|
|
440
438
|
};
|
|
441
439
|
}
|
|
442
440
|
}
|
|
@@ -402,8 +402,8 @@ export declare const TableCssClassName: {
|
|
|
402
402
|
SELECTED_CELL: string;
|
|
403
403
|
NODEVIEW_WRAPPER: string;
|
|
404
404
|
TABLE_SELECTED: string;
|
|
405
|
-
TABLE_CELL:
|
|
406
|
-
TABLE_HEADER_CELL:
|
|
405
|
+
TABLE_CELL: "pm-table-cell-content-wrap";
|
|
406
|
+
TABLE_HEADER_CELL: "pm-table-header-content-wrap";
|
|
407
407
|
TABLE_STICKY: string;
|
|
408
408
|
TABLE_CHROMELESS: string;
|
|
409
409
|
TOP_LEFT_CELL: string;
|
|
@@ -24,7 +24,7 @@ interface Props {
|
|
|
24
24
|
targetCellPosition?: number;
|
|
25
25
|
}
|
|
26
26
|
declare const FloatingContextualMenu: {
|
|
27
|
-
({ mountPoint, boundariesElement, scrollableElement, editorView, isOpen, pluginConfig, editorAnalyticsAPI, getEditorContainerWidth, getEditorFeatureFlags, isCellMenuOpenByKeyboard, isCommentEditor,
|
|
27
|
+
({ mountPoint, boundariesElement, scrollableElement, editorView, isOpen, pluginConfig, editorAnalyticsAPI, getEditorContainerWidth, getEditorFeatureFlags, isCellMenuOpenByKeyboard, isCommentEditor, api, isDragMenuOpen, }: Props): jsx.JSX.Element | null;
|
|
28
28
|
displayName: string;
|
|
29
29
|
};
|
|
30
30
|
export default FloatingContextualMenu;
|
|
@@ -402,8 +402,8 @@ export declare const TableCssClassName: {
|
|
|
402
402
|
SELECTED_CELL: string;
|
|
403
403
|
NODEVIEW_WRAPPER: string;
|
|
404
404
|
TABLE_SELECTED: string;
|
|
405
|
-
TABLE_CELL:
|
|
406
|
-
TABLE_HEADER_CELL:
|
|
405
|
+
TABLE_CELL: "pm-table-cell-content-wrap";
|
|
406
|
+
TABLE_HEADER_CELL: "pm-table-header-content-wrap";
|
|
407
407
|
TABLE_STICKY: string;
|
|
408
408
|
TABLE_CHROMELESS: string;
|
|
409
409
|
TOP_LEFT_CELL: string;
|
|
@@ -24,7 +24,7 @@ interface Props {
|
|
|
24
24
|
targetCellPosition?: number;
|
|
25
25
|
}
|
|
26
26
|
declare const FloatingContextualMenu: {
|
|
27
|
-
({ mountPoint, boundariesElement, scrollableElement, editorView, isOpen, pluginConfig, editorAnalyticsAPI, getEditorContainerWidth, getEditorFeatureFlags, isCellMenuOpenByKeyboard, isCommentEditor,
|
|
27
|
+
({ mountPoint, boundariesElement, scrollableElement, editorView, isOpen, pluginConfig, editorAnalyticsAPI, getEditorContainerWidth, getEditorFeatureFlags, isCellMenuOpenByKeyboard, isCommentEditor, api, isDragMenuOpen, }: Props): jsx.JSX.Element | null;
|
|
28
28
|
displayName: string;
|
|
29
29
|
};
|
|
30
30
|
export default FloatingContextualMenu;
|