@atlaskit/editor-plugin-table 10.9.7 → 10.9.9
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 +18 -0
- package/dist/cjs/nodeviews/TableComponentWithSharedState.js +33 -19
- package/dist/cjs/nodeviews/TableContainer.js +1 -1
- package/dist/cjs/nodeviews/TableResizer.js +2 -2
- package/dist/cjs/pm-plugins/utils/paste.js +26 -28
- package/dist/cjs/tablePlugin.js +1 -1
- package/dist/cjs/ui/ContentComponent.js +77 -37
- package/dist/cjs/ui/DragHandle/index.js +3 -3
- package/dist/cjs/ui/hooks/useInternalTablePluginStateSelector.js +27 -0
- package/dist/es2019/nodeviews/TableComponentWithSharedState.js +33 -19
- package/dist/es2019/nodeviews/TableContainer.js +1 -1
- package/dist/es2019/nodeviews/TableResizer.js +2 -2
- package/dist/es2019/pm-plugins/utils/paste.js +26 -28
- package/dist/es2019/tablePlugin.js +1 -1
- package/dist/es2019/ui/ContentComponent.js +66 -27
- package/dist/es2019/ui/DragHandle/index.js +3 -3
- package/dist/es2019/ui/hooks/useInternalTablePluginStateSelector.js +21 -0
- package/dist/esm/nodeviews/TableComponentWithSharedState.js +33 -19
- package/dist/esm/nodeviews/TableContainer.js +1 -1
- package/dist/esm/nodeviews/TableResizer.js +2 -2
- package/dist/esm/pm-plugins/utils/paste.js +26 -28
- package/dist/esm/tablePlugin.js +1 -1
- package/dist/esm/ui/ContentComponent.js +77 -37
- package/dist/esm/ui/DragHandle/index.js +3 -3
- package/dist/esm/ui/hooks/useInternalTablePluginStateSelector.js +21 -0
- package/dist/types/ui/hooks/useInternalTablePluginStateSelector.d.ts +20 -0
- package/dist/types-ts4.5/ui/hooks/useInternalTablePluginStateSelector.d.ts +20 -0
- package/package.json +5 -8
- package/src/nodeviews/TableComponentWithSharedState.tsx +40 -28
- package/src/nodeviews/TableContainer.tsx +1 -1
- package/src/nodeviews/TableResizer.tsx +4 -4
- package/src/pm-plugins/utils/paste.ts +31 -33
- package/src/tablePlugin.tsx +1 -1
- package/src/ui/ContentComponent.tsx +71 -35
- package/src/ui/DragHandle/index.tsx +6 -10
- package/src/ui/hooks/useInternalTablePluginStateSelector.ts +36 -0
|
@@ -599,7 +599,7 @@ const tablePlugin = ({
|
|
|
599
599
|
api: api,
|
|
600
600
|
isOpenedByKeyboard: false,
|
|
601
601
|
popupsMountPoint: popupsMountPoint,
|
|
602
|
-
target: (_sizeSelectorPluginSt = sizeSelectorPluginState === null || sizeSelectorPluginState === void 0 ? void 0 : sizeSelectorPluginState.targetRef) !== null && _sizeSelectorPluginSt !== void 0 ? _sizeSelectorPluginSt : getDomRefFromSelection(editorView, ACTION_SUBJECT_ID.PICKER_TABLE_SIZE, api === null || api === void 0 ? void 0 : (_api$analytics3 = api.analytics) === null || _api$analytics3 === void 0 ? void 0 : _api$analytics3.actions
|
|
602
|
+
target: (_sizeSelectorPluginSt = sizeSelectorPluginState === null || sizeSelectorPluginState === void 0 ? void 0 : sizeSelectorPluginState.targetRef) !== null && _sizeSelectorPluginSt !== void 0 ? _sizeSelectorPluginSt : getDomRefFromSelection(editorView, ACTION_SUBJECT_ID.PICKER_TABLE_SIZE, api === null || api === void 0 ? void 0 : (_api$analytics3 = api.analytics) === null || _api$analytics3 === void 0 ? void 0 : _api$analytics3.actions),
|
|
603
603
|
popupsBoundariesElement: popupsBoundariesElement,
|
|
604
604
|
popupsScrollableElement: popupsScrollableElement
|
|
605
605
|
}));
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ACTION_SUBJECT } from '@atlaskit/editor-common/analytics';
|
|
3
3
|
import { ErrorBoundary } from '@atlaskit/editor-common/error-boundary';
|
|
4
|
-
import { useSharedPluginStateSelector } from '@atlaskit/editor-common/use-shared-plugin-state-selector';
|
|
5
4
|
import { akEditorFloatingPanelZIndex } from '@atlaskit/editor-shared-styles';
|
|
5
|
+
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
6
6
|
import FloatingContextualButton from './FloatingContextualButton';
|
|
7
7
|
import FloatingContextualMenu from './FloatingContextualMenu';
|
|
8
8
|
import FloatingDeleteButton from './FloatingDeleteButton';
|
|
@@ -12,11 +12,8 @@ import FloatingDragMenu from './FloatingDragMenu';
|
|
|
12
12
|
import FloatingInsertButton from './FloatingInsertButton';
|
|
13
13
|
import { FloatingToolbarLabel } from './FloatingToolbarLabel/FloatingToolbarLabel';
|
|
14
14
|
import { GlobalStylesWrapper } from './global-styles';
|
|
15
|
+
import { useInternalTablePluginStateSelector } from './hooks/useInternalTablePluginStateSelector';
|
|
15
16
|
import { FullWidthDisplay } from './TableFullWidthLabel';
|
|
16
|
-
const useSharedTablePluginStateSelector = (api, key) => {
|
|
17
|
-
const value = useSharedPluginStateSelector(api, `table.${key}`);
|
|
18
|
-
return value;
|
|
19
|
-
};
|
|
20
17
|
const ContentComponentInternal = ({
|
|
21
18
|
api,
|
|
22
19
|
editorView,
|
|
@@ -31,30 +28,72 @@ const ContentComponentInternal = ({
|
|
|
31
28
|
var _api$analytics, _api$accessibilityUti;
|
|
32
29
|
const editorAnalyticsAPI = api === null || api === void 0 ? void 0 : (_api$analytics = api.analytics) === null || _api$analytics === void 0 ? void 0 : _api$analytics.actions;
|
|
33
30
|
const ariaNotifyPlugin = api === null || api === void 0 ? void 0 : (_api$accessibilityUti = api.accessibilityUtils) === null || _api$accessibilityUti === void 0 ? void 0 : _api$accessibilityUti.actions.ariaNotify;
|
|
34
|
-
const resizingTableLocalId =
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
const
|
|
50
|
-
|
|
31
|
+
const resizingTableLocalId = useInternalTablePluginStateSelector(api, 'resizingTableLocalId', {
|
|
32
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
33
|
+
});
|
|
34
|
+
const resizingTableRef = useInternalTablePluginStateSelector(api, 'resizingTableRef', {
|
|
35
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
36
|
+
});
|
|
37
|
+
const isTableResizing = useInternalTablePluginStateSelector(api, 'isTableResizing', {
|
|
38
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
39
|
+
});
|
|
40
|
+
const isResizing = useInternalTablePluginStateSelector(api, 'isResizing', {
|
|
41
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
42
|
+
});
|
|
43
|
+
const widthToWidest = useInternalTablePluginStateSelector(api, 'widthToWidest', {
|
|
44
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
45
|
+
});
|
|
46
|
+
const tableNode = useInternalTablePluginStateSelector(api, 'tableNode', {
|
|
47
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
48
|
+
});
|
|
49
|
+
const targetCellPosition = useInternalTablePluginStateSelector(api, 'targetCellPosition', {
|
|
50
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
51
|
+
});
|
|
52
|
+
const isContextualMenuOpen = useInternalTablePluginStateSelector(api, 'isContextualMenuOpen', {
|
|
53
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
54
|
+
});
|
|
55
|
+
const tableRef = useInternalTablePluginStateSelector(api, 'tableRef', {
|
|
56
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
57
|
+
});
|
|
58
|
+
const pluginConfig = useInternalTablePluginStateSelector(api, 'pluginConfig', {
|
|
59
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
60
|
+
});
|
|
61
|
+
const insertColumnButtonIndex = useInternalTablePluginStateSelector(api, 'insertColumnButtonIndex', {
|
|
62
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
63
|
+
});
|
|
64
|
+
const insertRowButtonIndex = useInternalTablePluginStateSelector(api, 'insertRowButtonIndex', {
|
|
65
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
66
|
+
});
|
|
67
|
+
const isHeaderColumnEnabled = useInternalTablePluginStateSelector(api, 'isHeaderColumnEnabled', {
|
|
68
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
69
|
+
});
|
|
70
|
+
const isHeaderRowEnabled = useInternalTablePluginStateSelector(api, 'isHeaderRowEnabled', {
|
|
71
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
72
|
+
});
|
|
73
|
+
const isDragAndDropEnabled = useInternalTablePluginStateSelector(api, 'isDragAndDropEnabled', {
|
|
74
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
75
|
+
});
|
|
76
|
+
const tableWrapperTarget = useInternalTablePluginStateSelector(api, 'tableWrapperTarget', {
|
|
77
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
78
|
+
});
|
|
79
|
+
const isCellMenuOpenByKeyboard = useInternalTablePluginStateSelector(api, 'isCellMenuOpenByKeyboard', {
|
|
80
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
81
|
+
});
|
|
51
82
|
const {
|
|
52
83
|
allowControls
|
|
53
|
-
} = pluginConfig;
|
|
54
|
-
const stickyHeader =
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
const
|
|
84
|
+
} = pluginConfig !== null && pluginConfig !== void 0 ? pluginConfig : {};
|
|
85
|
+
const stickyHeader = useInternalTablePluginStateSelector(api, 'stickyHeader', {
|
|
86
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
87
|
+
});
|
|
88
|
+
const dragMenuDirection = useInternalTablePluginStateSelector(api, 'dragMenuDirection', {
|
|
89
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
90
|
+
});
|
|
91
|
+
const dragMenuIndex = useInternalTablePluginStateSelector(api, 'dragMenuIndex', {
|
|
92
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
93
|
+
});
|
|
94
|
+
const isDragMenuOpen = useInternalTablePluginStateSelector(api, 'isDragMenuOpen', {
|
|
95
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
96
|
+
});
|
|
58
97
|
return /*#__PURE__*/React.createElement(React.Fragment, null, targetCellPosition && (tableRef || isCellMenuOpenByKeyboard) && !isResizing && options && options.allowContextualMenu && /*#__PURE__*/React.createElement(FloatingContextualButton, {
|
|
59
98
|
isNumberColumnEnabled: tableNode && tableNode.attrs.isNumberColumnEnabled,
|
|
60
99
|
editorView: editorView,
|
|
@@ -7,7 +7,6 @@ import { injectIntl } from 'react-intl-next';
|
|
|
7
7
|
import { browser } from '@atlaskit/editor-common/browser';
|
|
8
8
|
import { useSharedPluginState } from '@atlaskit/editor-common/hooks';
|
|
9
9
|
import { tableMessages as messages } from '@atlaskit/editor-common/messages';
|
|
10
|
-
import { useSharedPluginStateSelector } from '@atlaskit/editor-common/use-shared-plugin-state-selector';
|
|
11
10
|
import { TextSelection } from '@atlaskit/editor-prosemirror/state';
|
|
12
11
|
import { findTable, TableMap } from '@atlaskit/editor-tables';
|
|
13
12
|
import { draggable } from '@atlaskit/pragmatic-drag-and-drop/element/adapter';
|
|
@@ -19,6 +18,7 @@ import { findDuplicatePosition, hasMergedCellsInSelection } from '../../pm-plugi
|
|
|
19
18
|
import { TableCssClassName as ClassName } from '../../types';
|
|
20
19
|
import { dragTableInsertColumnButtonSize } from '../consts';
|
|
21
20
|
import { DragPreview } from '../DragPreview';
|
|
21
|
+
import { useInternalTablePluginStateSelector } from '../hooks/useInternalTablePluginStateSelector';
|
|
22
22
|
import { HandleIconComponent } from './HandleIconComponent';
|
|
23
23
|
const DragHandleComponent = ({
|
|
24
24
|
isDragMenuTarget,
|
|
@@ -275,13 +275,13 @@ const DragHandleComponentWithSharedState = ({
|
|
|
275
275
|
});
|
|
276
276
|
|
|
277
277
|
// hoveredColumns
|
|
278
|
-
const hoveredColumnsSelector =
|
|
278
|
+
const hoveredColumnsSelector = useInternalTablePluginStateSelector(api, 'hoveredColumns', {
|
|
279
279
|
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
280
280
|
});
|
|
281
281
|
const hoveredColumns = editorExperiment('platform_editor_usesharedpluginstateselector', true) ? hoveredColumnsSelector : tableState === null || tableState === void 0 ? void 0 : tableState.hoveredColumns;
|
|
282
282
|
|
|
283
283
|
// hoveredRows
|
|
284
|
-
const hoveredRowsSelector =
|
|
284
|
+
const hoveredRowsSelector = useInternalTablePluginStateSelector(api, 'hoveredRows', {
|
|
285
285
|
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
286
286
|
});
|
|
287
287
|
const hoveredRows = editorExperiment('platform_editor_usesharedpluginstateselector', true) ? hoveredRowsSelector : tableState === null || tableState === void 0 ? void 0 : tableState.hoveredRows;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { useSharedPluginStateSelector } from '@atlaskit/editor-common/use-shared-plugin-state-selector';
|
|
2
|
+
/**
|
|
3
|
+
* **This hook is only for internal use and should not be used outside of the table plugin.**
|
|
4
|
+
*
|
|
5
|
+
* Hook to select a value from the internal table plugin state.
|
|
6
|
+
* This is a wrapper around `useSharedPluginStateSelector` to provide access to the entire
|
|
7
|
+
* `TableSharedStateInternal` type. Since tables plugin has a lot of internal state that is not
|
|
8
|
+
* exposed via the `TableSharedState` type, we need to use this hook to access it in a type safe way.
|
|
9
|
+
*
|
|
10
|
+
* @param api The editor API
|
|
11
|
+
* @param key Key of TableSharedStateInternal to select
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
14
|
+
export const useInternalTablePluginStateSelector = (api, key, options) => {
|
|
15
|
+
// Need to disable the eslint rule here because the key is for the TableSharedStateInternal type
|
|
16
|
+
// and we are using it as a string to access the value in the useSharedPluginStateSelector
|
|
17
|
+
// which is typed only for the public TableSharedState type.
|
|
18
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
19
|
+
const value = useSharedPluginStateSelector(api, `table.${key}`, options);
|
|
20
|
+
return value;
|
|
21
|
+
};
|
|
@@ -3,18 +3,12 @@ import { useSharedPluginState } from '@atlaskit/editor-common/hooks';
|
|
|
3
3
|
import { useSharedPluginStateSelector } from '@atlaskit/editor-common/use-shared-plugin-state-selector';
|
|
4
4
|
import { findTable } from '@atlaskit/editor-tables';
|
|
5
5
|
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
6
|
+
import { useInternalTablePluginStateSelector } from '../ui/hooks/useInternalTablePluginStateSelector';
|
|
6
7
|
import TableComponent from './TableComponent';
|
|
7
8
|
|
|
8
9
|
// Ignored via go/ees005
|
|
9
10
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
10
11
|
|
|
11
|
-
var useSharedTablePluginStateSelector = function useSharedTablePluginStateSelector(api, key) {
|
|
12
|
-
var value = useSharedPluginStateSelector(api, "table.".concat(key), {
|
|
13
|
-
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
14
|
-
});
|
|
15
|
-
return value;
|
|
16
|
-
};
|
|
17
|
-
|
|
18
12
|
/**
|
|
19
13
|
* Use useSharedPluginState to control re-renders from plugin dependencies
|
|
20
14
|
*/
|
|
@@ -40,16 +34,36 @@ export var TableComponentWithSharedState = function TableComponentWithSharedStat
|
|
|
40
34
|
mediaState = _useSharedPluginState.mediaState,
|
|
41
35
|
selectionState = _useSharedPluginState.selectionState,
|
|
42
36
|
editorViewModeState = _useSharedPluginState.editorViewModeState;
|
|
43
|
-
var isTableResizingSelector =
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
var
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
var
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
var
|
|
37
|
+
var isTableResizingSelector = useInternalTablePluginStateSelector(api, 'isTableResizing', {
|
|
38
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
39
|
+
});
|
|
40
|
+
var isHeaderColumnEnabledSelector = useInternalTablePluginStateSelector(api, 'isHeaderColumnEnabled', {
|
|
41
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
42
|
+
});
|
|
43
|
+
var isHeaderRowEnabledSelector = useInternalTablePluginStateSelector(api, 'isHeaderRowEnabled', {
|
|
44
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
45
|
+
});
|
|
46
|
+
var orderingSelector = useInternalTablePluginStateSelector(api, 'ordering', {
|
|
47
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
48
|
+
});
|
|
49
|
+
var isResizingSelector = useInternalTablePluginStateSelector(api, 'isResizing', {
|
|
50
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
51
|
+
});
|
|
52
|
+
var isInDangerSelector = useInternalTablePluginStateSelector(api, 'isInDanger', {
|
|
53
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
54
|
+
});
|
|
55
|
+
var hoveredCellSelector = useInternalTablePluginStateSelector(api, 'hoveredCell', {
|
|
56
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
57
|
+
});
|
|
58
|
+
var hoveredRowsSelector = useInternalTablePluginStateSelector(api, 'hoveredRows', {
|
|
59
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
60
|
+
});
|
|
61
|
+
var isTableHoveredSelector = useInternalTablePluginStateSelector(api, 'isTableHovered', {
|
|
62
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
63
|
+
});
|
|
64
|
+
var isWholeTableInDangerSelector = useInternalTablePluginStateSelector(api, 'isWholeTableInDanger', {
|
|
65
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
66
|
+
});
|
|
53
67
|
|
|
54
68
|
// mediaState
|
|
55
69
|
var isFullscreenSelector = useSharedPluginStateSelector(api, 'media.isFullscreen', {
|
|
@@ -117,8 +131,8 @@ export var TableComponentWithSharedState = function TableComponentWithSharedStat
|
|
|
117
131
|
isMediaFullscreen: isFullscreen,
|
|
118
132
|
options: options,
|
|
119
133
|
allowControls: allowControls,
|
|
120
|
-
isHeaderRowEnabled: isHeaderRowEnabled,
|
|
121
|
-
isHeaderColumnEnabled: isHeaderColumnEnabled,
|
|
134
|
+
isHeaderRowEnabled: isHeaderRowEnabled !== null && isHeaderRowEnabled !== void 0 ? isHeaderRowEnabled : false,
|
|
135
|
+
isHeaderColumnEnabled: isHeaderColumnEnabled !== null && isHeaderColumnEnabled !== void 0 ? isHeaderColumnEnabled : false,
|
|
122
136
|
isDragAndDropEnabled: (options === null || options === void 0 ? void 0 : options.isDragAndDropEnabled) && !isLivePageViewMode,
|
|
123
137
|
isTableScalingEnabled: options === null || options === void 0 ? void 0 : options.isTableScalingEnabled,
|
|
124
138
|
allowTableAlignment: allowTableAlignment,
|
|
@@ -58,7 +58,7 @@ var AlignmentTableContainer = function AlignmentTableContainer(_ref2) {
|
|
|
58
58
|
});
|
|
59
59
|
var wasFullWidthModeEnabled = editorExperiment('platform_editor_usesharedpluginstateselector', true) ? wasFullWidthModeEnabledSelector : tableState === null || tableState === void 0 ? void 0 : tableState.wasFullWidthModeEnabled;
|
|
60
60
|
useEffect(function () {
|
|
61
|
-
if (editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
61
|
+
if (!tableState && editorExperiment('platform_editor_usesharedpluginstateselector', false)) {
|
|
62
62
|
return;
|
|
63
63
|
}
|
|
64
64
|
if (editorView && getPos) {
|
|
@@ -13,7 +13,6 @@ import { focusTableResizer, ToolTipContent } from '@atlaskit/editor-common/keyma
|
|
|
13
13
|
import { tableMessages as messages } from '@atlaskit/editor-common/messages';
|
|
14
14
|
import { logException } from '@atlaskit/editor-common/monitoring';
|
|
15
15
|
import { ResizerNext } from '@atlaskit/editor-common/resizer';
|
|
16
|
-
import { useSharedPluginStateSelector } from '@atlaskit/editor-common/use-shared-plugin-state-selector';
|
|
17
16
|
import { chainCommands } from '@atlaskit/editor-prosemirror/commands';
|
|
18
17
|
import { akEditorGutterPaddingDynamic } from '@atlaskit/editor-shared-styles';
|
|
19
18
|
import { findTable } from '@atlaskit/editor-tables/utils';
|
|
@@ -31,6 +30,7 @@ import { generateResizedPayload, generateResizeFrameRatePayloads, useMeasureFram
|
|
|
31
30
|
import { defaultGuidelines, defaultGuidelinesForPreserveTable, PRESERVE_TABLE_GUIDELINES_LENGTH_OFFSET } from '../pm-plugins/utils/guidelines';
|
|
32
31
|
import { defaultSnappingWidths, defaultTablePreserveSnappingWidths, findClosestSnap, PRESERVE_TABLE_SNAPPING_LENGTH_OFFSET } from '../pm-plugins/utils/snapping';
|
|
33
32
|
import { TABLE_GUIDELINE_VISIBLE_ADJUSTMENT, TABLE_HIGHLIGHT_GAP, TABLE_HIGHLIGHT_TOLERANCE, TABLE_SNAP_GAP } from '../ui/consts';
|
|
33
|
+
import { useInternalTablePluginStateSelector } from '../ui/hooks/useInternalTablePluginStateSelector';
|
|
34
34
|
var RESIZE_STEP_VALUE = 10;
|
|
35
35
|
var handles = {
|
|
36
36
|
right: true
|
|
@@ -133,7 +133,7 @@ export var TableResizer = function TableResizer(_ref) {
|
|
|
133
133
|
tableState = _useSharedPluginState.tableState;
|
|
134
134
|
|
|
135
135
|
// widthToWidest
|
|
136
|
-
var widthToWidestSelector =
|
|
136
|
+
var widthToWidestSelector = useInternalTablePluginStateSelector(pluginInjectionApi, 'widthToWidest', {
|
|
137
137
|
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
138
138
|
});
|
|
139
139
|
var widthToWidest = editorExperiment('platform_editor_usesharedpluginstateselector', true) ? widthToWidestSelector : tableState.widthToWidest;
|
|
@@ -194,36 +194,34 @@ var containsNonTableBlockChildren = function containsNonTableBlockChildren(fragm
|
|
|
194
194
|
};
|
|
195
195
|
export var transformSliceToRemoveOpenTable = function transformSliceToRemoveOpenTable(slice, schema) {
|
|
196
196
|
var _slice$content$firstC4;
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
// We are using `safeInsert` to paste nested tables, so we do not want to preserve this wrapping
|
|
197
|
+
// Case 1: A slice of a block selection inside a nested table
|
|
198
|
+
// Prosemirror wraps nested block selections in their respective tables
|
|
199
|
+
// We are using `safeInsert` to paste nested tables, so we do not want to preserve this wrapping
|
|
201
200
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
201
|
+
// slice starts and ends inside a nested table at the same depth
|
|
202
|
+
if (slice.openStart >= 7 && slice.openEnd >= 7) {
|
|
203
|
+
var cleaned = slice;
|
|
204
|
+
var descendedDepth = 0;
|
|
205
|
+
var tableDepthDecrement = 2;
|
|
207
206
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
}
|
|
207
|
+
// if the slice is a single cell table and contains cells with single cell tables, descend into it until we find textblock children
|
|
208
|
+
if (isFragmentSingleCellTable(slice.content, schema)) {
|
|
209
|
+
var _slice$content$firstC2;
|
|
210
|
+
(_slice$content$firstC2 = slice.content.firstChild) === null || _slice$content$firstC2 === void 0 || _slice$content$firstC2.descendants(function (node) {
|
|
211
|
+
if (isNodeSingleCellTable(node, schema)) {
|
|
212
|
+
descendedDepth += tableDepthDecrement;
|
|
213
|
+
} else if (node.type === schema.nodes.table) {
|
|
214
|
+
return false;
|
|
215
|
+
} else if (containsNonTableBlockChildren(node.content, schema)) {
|
|
216
|
+
descendedDepth += tableDepthDecrement;
|
|
217
|
+
// create a new slice with the content of non-table block children and the depth of the nested tables subtracted
|
|
218
|
+
cleaned = new Slice(node.content, slice.openStart - descendedDepth - tableDepthDecrement, slice.openEnd - descendedDepth - tableDepthDecrement);
|
|
219
|
+
return false;
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
if (!cleaned.eq(slice)) {
|
|
224
|
+
return cleaned;
|
|
227
225
|
}
|
|
228
226
|
}
|
|
229
227
|
|
package/dist/esm/tablePlugin.js
CHANGED
|
@@ -596,7 +596,7 @@ var tablePlugin = function tablePlugin(_ref) {
|
|
|
596
596
|
api: api,
|
|
597
597
|
isOpenedByKeyboard: false,
|
|
598
598
|
popupsMountPoint: popupsMountPoint,
|
|
599
|
-
target: (_sizeSelectorPluginSt = sizeSelectorPluginState === null || sizeSelectorPluginState === void 0 ? void 0 : sizeSelectorPluginState.targetRef) !== null && _sizeSelectorPluginSt !== void 0 ? _sizeSelectorPluginSt : getDomRefFromSelection(editorView, ACTION_SUBJECT_ID.PICKER_TABLE_SIZE, api === null || api === void 0 || (_api$analytics3 = api.analytics) === null || _api$analytics3 === void 0 ? void 0 : _api$analytics3.actions
|
|
599
|
+
target: (_sizeSelectorPluginSt = sizeSelectorPluginState === null || sizeSelectorPluginState === void 0 ? void 0 : sizeSelectorPluginState.targetRef) !== null && _sizeSelectorPluginSt !== void 0 ? _sizeSelectorPluginSt : getDomRefFromSelection(editorView, ACTION_SUBJECT_ID.PICKER_TABLE_SIZE, api === null || api === void 0 || (_api$analytics3 = api.analytics) === null || _api$analytics3 === void 0 ? void 0 : _api$analytics3.actions),
|
|
600
600
|
popupsBoundariesElement: popupsBoundariesElement,
|
|
601
601
|
popupsScrollableElement: popupsScrollableElement
|
|
602
602
|
}));
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ACTION_SUBJECT } from '@atlaskit/editor-common/analytics';
|
|
3
3
|
import { ErrorBoundary } from '@atlaskit/editor-common/error-boundary';
|
|
4
|
-
import { useSharedPluginStateSelector } from '@atlaskit/editor-common/use-shared-plugin-state-selector';
|
|
5
4
|
import { akEditorFloatingPanelZIndex } from '@atlaskit/editor-shared-styles';
|
|
5
|
+
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
6
6
|
import FloatingContextualButton from './FloatingContextualButton';
|
|
7
7
|
import FloatingContextualMenu from './FloatingContextualMenu';
|
|
8
8
|
import FloatingDeleteButton from './FloatingDeleteButton';
|
|
@@ -12,11 +12,8 @@ import FloatingDragMenu from './FloatingDragMenu';
|
|
|
12
12
|
import FloatingInsertButton from './FloatingInsertButton';
|
|
13
13
|
import { FloatingToolbarLabel } from './FloatingToolbarLabel/FloatingToolbarLabel';
|
|
14
14
|
import { GlobalStylesWrapper } from './global-styles';
|
|
15
|
+
import { useInternalTablePluginStateSelector } from './hooks/useInternalTablePluginStateSelector';
|
|
15
16
|
import { FullWidthDisplay } from './TableFullWidthLabel';
|
|
16
|
-
var useSharedTablePluginStateSelector = function useSharedTablePluginStateSelector(api, key) {
|
|
17
|
-
var value = useSharedPluginStateSelector(api, "table.".concat(key));
|
|
18
|
-
return value;
|
|
19
|
-
};
|
|
20
17
|
var ContentComponentInternal = function ContentComponentInternal(_ref) {
|
|
21
18
|
var _api$analytics, _api$accessibilityUti;
|
|
22
19
|
var api = _ref.api,
|
|
@@ -30,28 +27,71 @@ var ContentComponentInternal = function ContentComponentInternal(_ref) {
|
|
|
30
27
|
defaultGetEditorFeatureFlags = _ref.defaultGetEditorFeatureFlags;
|
|
31
28
|
var editorAnalyticsAPI = api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 ? void 0 : _api$analytics.actions;
|
|
32
29
|
var ariaNotifyPlugin = api === null || api === void 0 || (_api$accessibilityUti = api.accessibilityUtils) === null || _api$accessibilityUti === void 0 ? void 0 : _api$accessibilityUti.actions.ariaNotify;
|
|
33
|
-
var resizingTableLocalId =
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
var
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
var
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
var
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
var
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
var
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
var
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
var
|
|
30
|
+
var resizingTableLocalId = useInternalTablePluginStateSelector(api, 'resizingTableLocalId', {
|
|
31
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
32
|
+
});
|
|
33
|
+
var resizingTableRef = useInternalTablePluginStateSelector(api, 'resizingTableRef', {
|
|
34
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
35
|
+
});
|
|
36
|
+
var isTableResizing = useInternalTablePluginStateSelector(api, 'isTableResizing', {
|
|
37
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
38
|
+
});
|
|
39
|
+
var isResizing = useInternalTablePluginStateSelector(api, 'isResizing', {
|
|
40
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
41
|
+
});
|
|
42
|
+
var widthToWidest = useInternalTablePluginStateSelector(api, 'widthToWidest', {
|
|
43
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
44
|
+
});
|
|
45
|
+
var tableNode = useInternalTablePluginStateSelector(api, 'tableNode', {
|
|
46
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
47
|
+
});
|
|
48
|
+
var targetCellPosition = useInternalTablePluginStateSelector(api, 'targetCellPosition', {
|
|
49
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
50
|
+
});
|
|
51
|
+
var isContextualMenuOpen = useInternalTablePluginStateSelector(api, 'isContextualMenuOpen', {
|
|
52
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
53
|
+
});
|
|
54
|
+
var tableRef = useInternalTablePluginStateSelector(api, 'tableRef', {
|
|
55
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
56
|
+
});
|
|
57
|
+
var pluginConfig = useInternalTablePluginStateSelector(api, 'pluginConfig', {
|
|
58
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
59
|
+
});
|
|
60
|
+
var insertColumnButtonIndex = useInternalTablePluginStateSelector(api, 'insertColumnButtonIndex', {
|
|
61
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
62
|
+
});
|
|
63
|
+
var insertRowButtonIndex = useInternalTablePluginStateSelector(api, 'insertRowButtonIndex', {
|
|
64
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
65
|
+
});
|
|
66
|
+
var isHeaderColumnEnabled = useInternalTablePluginStateSelector(api, 'isHeaderColumnEnabled', {
|
|
67
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
68
|
+
});
|
|
69
|
+
var isHeaderRowEnabled = useInternalTablePluginStateSelector(api, 'isHeaderRowEnabled', {
|
|
70
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
71
|
+
});
|
|
72
|
+
var isDragAndDropEnabled = useInternalTablePluginStateSelector(api, 'isDragAndDropEnabled', {
|
|
73
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
74
|
+
});
|
|
75
|
+
var tableWrapperTarget = useInternalTablePluginStateSelector(api, 'tableWrapperTarget', {
|
|
76
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
77
|
+
});
|
|
78
|
+
var isCellMenuOpenByKeyboard = useInternalTablePluginStateSelector(api, 'isCellMenuOpenByKeyboard', {
|
|
79
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
80
|
+
});
|
|
81
|
+
var _ref2 = pluginConfig !== null && pluginConfig !== void 0 ? pluginConfig : {},
|
|
82
|
+
allowControls = _ref2.allowControls;
|
|
83
|
+
var stickyHeader = useInternalTablePluginStateSelector(api, 'stickyHeader', {
|
|
84
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
85
|
+
});
|
|
86
|
+
var dragMenuDirection = useInternalTablePluginStateSelector(api, 'dragMenuDirection', {
|
|
87
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
88
|
+
});
|
|
89
|
+
var dragMenuIndex = useInternalTablePluginStateSelector(api, 'dragMenuIndex', {
|
|
90
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
91
|
+
});
|
|
92
|
+
var isDragMenuOpen = useInternalTablePluginStateSelector(api, 'isDragMenuOpen', {
|
|
93
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
94
|
+
});
|
|
55
95
|
return /*#__PURE__*/React.createElement(React.Fragment, null, targetCellPosition && (tableRef || isCellMenuOpenByKeyboard) && !isResizing && options && options.allowContextualMenu && /*#__PURE__*/React.createElement(FloatingContextualButton, {
|
|
56
96
|
isNumberColumnEnabled: tableNode && tableNode.attrs.isNumberColumnEnabled,
|
|
57
97
|
editorView: editorView,
|
|
@@ -139,17 +179,17 @@ var ContentComponentInternal = function ContentComponentInternal(_ref) {
|
|
|
139
179
|
offset: [0, 10]
|
|
140
180
|
}));
|
|
141
181
|
};
|
|
142
|
-
export var ContentComponent = function ContentComponent(
|
|
182
|
+
export var ContentComponent = function ContentComponent(_ref3) {
|
|
143
183
|
var _api$featureFlags;
|
|
144
|
-
var api =
|
|
145
|
-
editorView =
|
|
146
|
-
dispatchAnalyticsEvent =
|
|
147
|
-
options =
|
|
148
|
-
popupsMountPoint =
|
|
149
|
-
popupsBoundariesElement =
|
|
150
|
-
popupsScrollableElement =
|
|
151
|
-
defaultGetEditorContainerWidth =
|
|
152
|
-
defaultGetEditorFeatureFlags =
|
|
184
|
+
var api = _ref3.api,
|
|
185
|
+
editorView = _ref3.editorView,
|
|
186
|
+
dispatchAnalyticsEvent = _ref3.dispatchAnalyticsEvent,
|
|
187
|
+
options = _ref3.options,
|
|
188
|
+
popupsMountPoint = _ref3.popupsMountPoint,
|
|
189
|
+
popupsBoundariesElement = _ref3.popupsBoundariesElement,
|
|
190
|
+
popupsScrollableElement = _ref3.popupsScrollableElement,
|
|
191
|
+
defaultGetEditorContainerWidth = _ref3.defaultGetEditorContainerWidth,
|
|
192
|
+
defaultGetEditorFeatureFlags = _ref3.defaultGetEditorFeatureFlags;
|
|
153
193
|
return /*#__PURE__*/React.createElement(ErrorBoundary, {
|
|
154
194
|
component: ACTION_SUBJECT.TABLES_PLUGIN,
|
|
155
195
|
dispatchAnalyticsEvent: dispatchAnalyticsEvent,
|
|
@@ -9,7 +9,6 @@ import { injectIntl } from 'react-intl-next';
|
|
|
9
9
|
import { browser } from '@atlaskit/editor-common/browser';
|
|
10
10
|
import { useSharedPluginState } from '@atlaskit/editor-common/hooks';
|
|
11
11
|
import { tableMessages as messages } from '@atlaskit/editor-common/messages';
|
|
12
|
-
import { useSharedPluginStateSelector } from '@atlaskit/editor-common/use-shared-plugin-state-selector';
|
|
13
12
|
import { TextSelection } from '@atlaskit/editor-prosemirror/state';
|
|
14
13
|
import { findTable, TableMap } from '@atlaskit/editor-tables';
|
|
15
14
|
import { draggable } from '@atlaskit/pragmatic-drag-and-drop/element/adapter';
|
|
@@ -21,6 +20,7 @@ import { findDuplicatePosition, hasMergedCellsInSelection } from '../../pm-plugi
|
|
|
21
20
|
import { TableCssClassName as ClassName } from '../../types';
|
|
22
21
|
import { dragTableInsertColumnButtonSize } from '../consts';
|
|
23
22
|
import { DragPreview } from '../DragPreview';
|
|
23
|
+
import { useInternalTablePluginStateSelector } from '../hooks/useInternalTablePluginStateSelector';
|
|
24
24
|
import { HandleIconComponent } from './HandleIconComponent';
|
|
25
25
|
var DragHandleComponent = function DragHandleComponent(_ref) {
|
|
26
26
|
var isDragMenuTarget = _ref.isDragMenuTarget,
|
|
@@ -268,13 +268,13 @@ var DragHandleComponentWithSharedState = function DragHandleComponentWithSharedS
|
|
|
268
268
|
tableState = _ref6.tableState;
|
|
269
269
|
|
|
270
270
|
// hoveredColumns
|
|
271
|
-
var hoveredColumnsSelector =
|
|
271
|
+
var hoveredColumnsSelector = useInternalTablePluginStateSelector(api, 'hoveredColumns', {
|
|
272
272
|
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
273
273
|
});
|
|
274
274
|
var hoveredColumns = editorExperiment('platform_editor_usesharedpluginstateselector', true) ? hoveredColumnsSelector : tableState === null || tableState === void 0 ? void 0 : tableState.hoveredColumns;
|
|
275
275
|
|
|
276
276
|
// hoveredRows
|
|
277
|
-
var hoveredRowsSelector =
|
|
277
|
+
var hoveredRowsSelector = useInternalTablePluginStateSelector(api, 'hoveredRows', {
|
|
278
278
|
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
279
279
|
});
|
|
280
280
|
var hoveredRows = editorExperiment('platform_editor_usesharedpluginstateselector', true) ? hoveredRowsSelector : tableState === null || tableState === void 0 ? void 0 : tableState.hoveredRows;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { useSharedPluginStateSelector } from '@atlaskit/editor-common/use-shared-plugin-state-selector';
|
|
2
|
+
/**
|
|
3
|
+
* **This hook is only for internal use and should not be used outside of the table plugin.**
|
|
4
|
+
*
|
|
5
|
+
* Hook to select a value from the internal table plugin state.
|
|
6
|
+
* This is a wrapper around `useSharedPluginStateSelector` to provide access to the entire
|
|
7
|
+
* `TableSharedStateInternal` type. Since tables plugin has a lot of internal state that is not
|
|
8
|
+
* exposed via the `TableSharedState` type, we need to use this hook to access it in a type safe way.
|
|
9
|
+
*
|
|
10
|
+
* @param api The editor API
|
|
11
|
+
* @param key Key of TableSharedStateInternal to select
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
14
|
+
export var useInternalTablePluginStateSelector = function useInternalTablePluginStateSelector(api, key, options) {
|
|
15
|
+
// Need to disable the eslint rule here because the key is for the TableSharedStateInternal type
|
|
16
|
+
// and we are using it as a string to access the value in the useSharedPluginStateSelector
|
|
17
|
+
// which is typed only for the public TableSharedState type.
|
|
18
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
19
|
+
var value = useSharedPluginStateSelector(api, "table.".concat(key), options);
|
|
20
|
+
return value;
|
|
21
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ExtractInjectionAPI } from '@atlaskit/editor-common/types';
|
|
2
|
+
import { TablePlugin } from '../../tablePluginType';
|
|
3
|
+
import { TableSharedStateInternal } from '../../types';
|
|
4
|
+
type Options = {
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* **This hook is only for internal use and should not be used outside of the table plugin.**
|
|
9
|
+
*
|
|
10
|
+
* Hook to select a value from the internal table plugin state.
|
|
11
|
+
* This is a wrapper around `useSharedPluginStateSelector` to provide access to the entire
|
|
12
|
+
* `TableSharedStateInternal` type. Since tables plugin has a lot of internal state that is not
|
|
13
|
+
* exposed via the `TableSharedState` type, we need to use this hook to access it in a type safe way.
|
|
14
|
+
*
|
|
15
|
+
* @param api The editor API
|
|
16
|
+
* @param key Key of TableSharedStateInternal to select
|
|
17
|
+
* @returns
|
|
18
|
+
*/
|
|
19
|
+
export declare const useInternalTablePluginStateSelector: <K extends "isFullWidthModeEnabled" | "wasFullWidthModeEnabled" | "isHeaderRowEnabled" | "isHeaderColumnEnabled" | "ordering" | "isInDanger" | "hoveredRows" | "hoveredColumns" | "hoveredCell" | "isTableHovered" | "tableNode" | "widthToWidest" | "tableRef" | "tablePos" | "targetCellPosition" | "isContextualMenuOpen" | "pluginConfig" | "insertColumnButtonIndex" | "insertRowButtonIndex" | "isDragAndDropEnabled" | "tableWrapperTarget" | "isCellMenuOpenByKeyboard" | "isWholeTableInDanger" | "isDragMenuOpen" | "dragMenuDirection" | "dragMenuIndex" | "isResizing" | "isTableResizing" | "resizingTableRef" | "resizingTableLocalId" | "stickyHeader">(api: ExtractInjectionAPI<TablePlugin> | undefined, key: K, options?: Options) => TableSharedStateInternal[K] | undefined;
|
|
20
|
+
export {};
|