@atlaskit/editor-plugin-block-controls 20.0.2 → 20.1.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 +25 -0
- package/dist/cjs/blockControlsPlugin.js +53 -17
- package/dist/cjs/editor-commands/move-node.js +1 -1
- package/dist/cjs/editor-commands/show-drag-handle.js +17 -5
- package/dist/cjs/pm-plugins/decorations-anchor.js +3 -2
- package/dist/cjs/pm-plugins/decorations-drop-target-active.js +3 -2
- package/dist/cjs/pm-plugins/decorations-drop-target.js +3 -2
- package/dist/cjs/pm-plugins/decorations-surface-anchor.js +72 -0
- package/dist/cjs/pm-plugins/handle-mouse-down.js +2 -1
- package/dist/cjs/pm-plugins/handle-mouse-over.js +4 -3
- package/dist/cjs/pm-plugins/handle-sparse-mouse-over.js +125 -0
- package/dist/cjs/pm-plugins/interaction-tracking/pm-plugin.js +1 -1
- package/dist/cjs/pm-plugins/main.js +68 -56
- package/dist/cjs/pm-plugins/sparse-surfaces.js +49 -0
- package/dist/cjs/pm-plugins/utils/drag-handle-positions.js +1 -1
- package/dist/cjs/pm-plugins/utils/sparse-surface-candidates.js +419 -0
- package/dist/cjs/pm-plugins/utils/sparse-surfaces-mapping.js +108 -0
- package/dist/cjs/pm-plugins/utils/sparse-surfaces-state.js +53 -0
- package/dist/cjs/pm-plugins/utils/sparse-surfaces-view.js +134 -0
- package/dist/cjs/pm-plugins/utils/surface-viewport.js +223 -0
- package/dist/cjs/pm-plugins/utils/transactions.js +5 -0
- package/dist/cjs/pm-plugins/utils/validation.js +1 -1
- package/dist/cjs/ui/block-controls-left-surfaces.js +31 -25
- package/dist/cjs/ui/block-controls-right-surfaces.js +31 -25
- package/dist/cjs/ui/block-controls-surface-context.js +1 -0
- package/dist/cjs/ui/block-controls-surface-drag-handle-registration.js +6 -7
- package/dist/cjs/ui/block-controls-surface-drag-handle.js +6 -2
- package/dist/cjs/ui/consts.js +1 -1
- package/dist/cjs/ui/drag-handle.js +6 -4
- package/dist/cjs/ui/drop-target-layout.js +3 -2
- package/dist/cjs/ui/drop-target.js +4 -3
- package/dist/cjs/ui/global-styles.js +70 -28
- package/dist/cjs/ui/inline-drop-target.js +6 -5
- package/dist/cjs/ui/use-block-controls-surface-drag-source.js +1 -1
- package/dist/cjs/ui/utils/anchor-name.js +2 -1
- package/dist/cjs/ui/utils/dom-attr-name.js +3 -2
- package/dist/cjs/ui/utils/get-surface-placement.js +2 -1
- package/dist/cjs/ui/utils/partition-components-by-persistence.js +1 -1
- package/dist/cjs/ui/visibility-container.js +1 -1
- package/dist/es2019/blockControlsPlugin.js +42 -8
- package/dist/es2019/editor-commands/move-node.js +1 -1
- package/dist/es2019/editor-commands/show-drag-handle.js +14 -2
- package/dist/es2019/entry-points/block-decoration-utils-anchor-name.js +1 -0
- package/dist/es2019/entry-points/block-decoration-utils-consts.js +1 -0
- package/dist/es2019/entry-points/block-decoration-utils-dom-attr-name.js +1 -0
- package/dist/es2019/entry-points/block-decoration-utils-drag-handle-positions.js +1 -0
- package/dist/es2019/entry-points/block-decoration-utils-visibility-container.js +1 -0
- package/dist/es2019/entry-points/block-decoration-utils-widget-positions.js +1 -0
- package/dist/es2019/entry-points/blockControlsPlugin.js +1 -0
- package/dist/es2019/pm-plugins/decorations-anchor.js +3 -2
- package/dist/es2019/pm-plugins/decorations-drop-target-active.js +3 -2
- package/dist/es2019/pm-plugins/decorations-drop-target.js +3 -2
- package/dist/es2019/pm-plugins/decorations-surface-anchor.js +56 -0
- package/dist/es2019/pm-plugins/handle-mouse-down.js +2 -1
- package/dist/es2019/pm-plugins/handle-mouse-over.js +4 -3
- package/dist/es2019/pm-plugins/handle-sparse-mouse-over.js +116 -0
- package/dist/es2019/pm-plugins/interaction-tracking/pm-plugin.js +1 -1
- package/dist/es2019/pm-plugins/main.js +72 -56
- package/dist/es2019/pm-plugins/sparse-surfaces.js +37 -0
- package/dist/es2019/pm-plugins/utils/drag-handle-positions.js +1 -1
- package/dist/es2019/pm-plugins/utils/sparse-surface-candidates.js +305 -0
- package/dist/es2019/pm-plugins/utils/sparse-surfaces-mapping.js +78 -0
- package/dist/es2019/pm-plugins/utils/sparse-surfaces-state.js +39 -0
- package/dist/es2019/pm-plugins/utils/sparse-surfaces-view.js +121 -0
- package/dist/es2019/pm-plugins/utils/surface-viewport.js +192 -0
- package/dist/es2019/pm-plugins/utils/transactions.js +5 -0
- package/dist/es2019/pm-plugins/utils/update-selection.js +1 -2
- package/dist/es2019/pm-plugins/utils/validation.js +1 -1
- package/dist/es2019/ui/block-controls-left-surfaces.js +21 -14
- package/dist/es2019/ui/block-controls-right-surfaces.js +21 -14
- package/dist/es2019/ui/block-controls-surface-context.js +1 -0
- package/dist/es2019/ui/block-controls-surface-drag-handle-registration.js +4 -5
- package/dist/es2019/ui/block-controls-surface-drag-handle.js +6 -2
- package/dist/es2019/ui/consts.js +1 -1
- package/dist/es2019/ui/drag-handle.js +6 -4
- package/dist/es2019/ui/drop-target-layout.js +3 -2
- package/dist/es2019/ui/drop-target.js +4 -3
- package/dist/es2019/ui/global-styles.js +68 -29
- package/dist/es2019/ui/inline-drop-target.js +7 -5
- package/dist/es2019/ui/use-block-controls-surface-drag-source.js +1 -1
- package/dist/es2019/ui/utils/anchor-name.js +2 -1
- package/dist/es2019/ui/utils/dom-attr-name.js +3 -2
- package/dist/es2019/ui/utils/get-surface-placement.js +2 -1
- package/dist/es2019/ui/utils/partition-components-by-persistence.js +1 -1
- package/dist/es2019/ui/visibility-container.js +1 -1
- package/dist/esm/blockControlsPlugin.js +53 -17
- package/dist/esm/editor-commands/move-node.js +1 -1
- package/dist/esm/editor-commands/show-drag-handle.js +17 -5
- package/dist/esm/entry-points/block-decoration-utils-anchor-name.js +1 -0
- package/dist/esm/entry-points/block-decoration-utils-consts.js +1 -0
- package/dist/esm/entry-points/block-decoration-utils-dom-attr-name.js +1 -0
- package/dist/esm/entry-points/block-decoration-utils-drag-handle-positions.js +1 -0
- package/dist/esm/entry-points/block-decoration-utils-visibility-container.js +1 -0
- package/dist/esm/entry-points/block-decoration-utils-widget-positions.js +1 -0
- package/dist/esm/entry-points/blockControlsPlugin.js +1 -0
- package/dist/esm/pm-plugins/decorations-anchor.js +3 -2
- package/dist/esm/pm-plugins/decorations-drop-target-active.js +3 -2
- package/dist/esm/pm-plugins/decorations-drop-target.js +3 -2
- package/dist/esm/pm-plugins/decorations-surface-anchor.js +65 -0
- package/dist/esm/pm-plugins/handle-mouse-down.js +2 -1
- package/dist/esm/pm-plugins/handle-mouse-over.js +4 -3
- package/dist/esm/pm-plugins/handle-sparse-mouse-over.js +119 -0
- package/dist/esm/pm-plugins/interaction-tracking/pm-plugin.js +1 -1
- package/dist/esm/pm-plugins/main.js +68 -56
- package/dist/esm/pm-plugins/sparse-surfaces.js +43 -0
- package/dist/esm/pm-plugins/utils/drag-handle-positions.js +1 -1
- package/dist/esm/pm-plugins/utils/sparse-surface-candidates.js +413 -0
- package/dist/esm/pm-plugins/utils/sparse-surfaces-mapping.js +101 -0
- package/dist/esm/pm-plugins/utils/sparse-surfaces-state.js +46 -0
- package/dist/esm/pm-plugins/utils/sparse-surfaces-view.js +127 -0
- package/dist/esm/pm-plugins/utils/surface-viewport.js +217 -0
- package/dist/esm/pm-plugins/utils/transactions.js +5 -0
- package/dist/esm/pm-plugins/utils/update-selection.js +1 -2
- package/dist/esm/pm-plugins/utils/validation.js +1 -1
- package/dist/esm/ui/block-controls-left-surfaces.js +33 -27
- package/dist/esm/ui/block-controls-right-surfaces.js +33 -27
- package/dist/esm/ui/block-controls-surface-context.js +1 -0
- package/dist/esm/ui/block-controls-surface-drag-handle-registration.js +7 -8
- package/dist/esm/ui/block-controls-surface-drag-handle.js +6 -2
- package/dist/esm/ui/consts.js +1 -1
- package/dist/esm/ui/drag-handle.js +6 -4
- package/dist/esm/ui/drop-target-layout.js +3 -2
- package/dist/esm/ui/drop-target.js +4 -3
- package/dist/esm/ui/global-styles.js +71 -29
- package/dist/esm/ui/inline-drop-target.js +7 -5
- package/dist/esm/ui/use-block-controls-surface-drag-source.js +1 -1
- package/dist/esm/ui/utils/anchor-name.js +2 -1
- package/dist/esm/ui/utils/dom-attr-name.js +3 -2
- package/dist/esm/ui/utils/get-surface-placement.js +2 -1
- package/dist/esm/ui/utils/partition-components-by-persistence.js +1 -1
- package/dist/esm/ui/visibility-container.js +1 -1
- package/dist/types/blockControlsPluginType.d.ts +11 -4
- package/dist/types/pm-plugins/decorations-surface-anchor.d.ts +22 -0
- package/dist/types/pm-plugins/handle-sparse-mouse-over.d.ts +5 -0
- package/dist/types/pm-plugins/main.d.ts +2 -9
- package/dist/types/pm-plugins/sparse-surfaces.d.ts +8 -0
- package/dist/types/pm-plugins/utils/sparse-surface-candidates.d.ts +89 -0
- package/dist/types/pm-plugins/utils/sparse-surfaces-mapping.d.ts +20 -0
- package/dist/types/pm-plugins/utils/sparse-surfaces-state.d.ts +27 -0
- package/dist/types/pm-plugins/utils/sparse-surfaces-view.d.ts +15 -0
- package/dist/types/pm-plugins/utils/surface-viewport.d.ts +10 -0
- package/dist/types/ui/inline-drop-target.d.ts +4 -0
- package/dist/types/ui/utils/get-surface-placement.d.ts +3 -2
- package/package.json +7 -7
- package/dist/cjs/pm-plugins/utils/surface-node-positions.js +0 -100
- package/dist/es2019/pm-plugins/utils/surface-node-positions.js +0 -78
- package/dist/esm/pm-plugins/utils/surface-node-positions.js +0 -93
- package/dist/types/pm-plugins/utils/surface-node-positions.d.ts +0 -14
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import type { EditorState, ReadonlyTransaction, Transaction } from '@atlaskit/editor-prosemirror/state';
|
|
2
|
+
import type { ResolvedSurface } from '@atlaskit/editor-ui-control-model/surface-renderer/types';
|
|
3
|
+
import type { ActiveNode } from '../../blockControlsPluginType';
|
|
4
|
+
export type SparseCandidateRange = {
|
|
5
|
+
from: number;
|
|
6
|
+
to: number;
|
|
7
|
+
};
|
|
8
|
+
export type SparseCandidateInvalidation = {
|
|
9
|
+
all?: boolean;
|
|
10
|
+
ids?: readonly string[];
|
|
11
|
+
positions?: readonly number[];
|
|
12
|
+
ranges?: readonly SparseCandidateRange[];
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Viewport positions are post-transaction positions supplied by the DOM observer. The reducer
|
|
16
|
+
* never needs to inspect DOM or search document IDs for viewport discovery.
|
|
17
|
+
*/
|
|
18
|
+
export type SparseCandidateMeta = {
|
|
19
|
+
/** Menu/root targets may carry context distinct from global hover activeNode; map changes invalidate positions. */
|
|
20
|
+
activeNodesByPosition?: ReadonlyMap<number, ActiveNode>;
|
|
21
|
+
changedRange?: SparseCandidateRange;
|
|
22
|
+
/** Set by view reconciliation when mapping and predicate evaluation are split. */
|
|
23
|
+
documentChanged?: boolean;
|
|
24
|
+
/** Registry changes must use `invalidation: { all: true }`. */
|
|
25
|
+
invalidation?: SparseCandidateInvalidation;
|
|
26
|
+
/** Complete current set; pass [] when menu/hover protection ends. */
|
|
27
|
+
protectedPositions?: readonly number[];
|
|
28
|
+
/** Property presence is significant: `visiblePositions: []` clears visible candidates. */
|
|
29
|
+
visiblePositions?: readonly number[];
|
|
30
|
+
};
|
|
31
|
+
export type SparseSurfaceCandidate = {
|
|
32
|
+
contextRevision: string;
|
|
33
|
+
/** Optional stable node id, used only when matching cached invalidations. */
|
|
34
|
+
id?: string;
|
|
35
|
+
/** Persistent controls keep their candidate and DOM anchor outside the viewport. */
|
|
36
|
+
isPersistent: boolean;
|
|
37
|
+
/** PM structural sharing lets reconcile detect changed cached nodes cheaply. */
|
|
38
|
+
nodeRef: object;
|
|
39
|
+
nodeSize: number;
|
|
40
|
+
nodeType: string;
|
|
41
|
+
pos: number;
|
|
42
|
+
/** False entries stay cached, so hidden nodes are not re-preflighted on re-entry. */
|
|
43
|
+
renders: boolean;
|
|
44
|
+
};
|
|
45
|
+
export type SparseSurfaceCandidateState = {
|
|
46
|
+
activeRevision: string;
|
|
47
|
+
candidates: ReadonlyMap<number, SparseSurfaceCandidate>;
|
|
48
|
+
positions: readonly number[];
|
|
49
|
+
protectedPositions: readonly number[];
|
|
50
|
+
visiblePositions: readonly number[];
|
|
51
|
+
};
|
|
52
|
+
export type SparseSurfaceCandidateInput = {
|
|
53
|
+
activeNode?: ActiveNode | null;
|
|
54
|
+
meta?: SparseCandidateMeta;
|
|
55
|
+
newState: EditorState;
|
|
56
|
+
previousState: SparseSurfaceCandidateState;
|
|
57
|
+
resolvedSurfaces: readonly ResolvedSurface[];
|
|
58
|
+
tr: Transaction;
|
|
59
|
+
};
|
|
60
|
+
export declare const emptySparseSurfaceCandidateState: SparseSurfaceCandidateState;
|
|
61
|
+
export type MapSparseSurfaceCandidatesInput = {
|
|
62
|
+
newState: EditorState;
|
|
63
|
+
previousState: SparseSurfaceCandidateState;
|
|
64
|
+
tr: Transaction | ReadonlyTransaction;
|
|
65
|
+
};
|
|
66
|
+
/** Map cache state during PM apply. This phase never calls isHidden or scans doc. */
|
|
67
|
+
export declare const mapSparseSurfaceCandidates: ({ newState, previousState, tr, }: MapSparseSurfaceCandidatesInput) => SparseSurfaceCandidateState;
|
|
68
|
+
export type ReconcileSparseSurfaceCandidatesInput = {
|
|
69
|
+
activeNode?: ActiveNode | null;
|
|
70
|
+
activeNodesByPosition?: ReadonlyMap<number, ActiveNode>;
|
|
71
|
+
changedRange?: SparseCandidateRange;
|
|
72
|
+
documentChanged?: boolean;
|
|
73
|
+
invalidation?: SparseCandidateInvalidation;
|
|
74
|
+
newState: EditorState;
|
|
75
|
+
protectedPositions?: readonly number[];
|
|
76
|
+
resolvedSurfaces: readonly ResolvedSurface[];
|
|
77
|
+
state: SparseSurfaceCandidateState;
|
|
78
|
+
visiblePositions?: readonly number[];
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Reconcile after view state is current. Predicate work stays bounded to cache,
|
|
82
|
+
* exact visible positions, explicit ranges, and protected active/menu positions.
|
|
83
|
+
*/
|
|
84
|
+
export declare const reconcileSparseSurfaceCandidates: ({ activeNodesByPosition, activeNode, changedRange, documentChanged, invalidation, newState, protectedPositions, resolvedSurfaces, state, visiblePositions, }: ReconcileSparseSurfaceCandidatesInput) => SparseSurfaceCandidateState;
|
|
85
|
+
/**
|
|
86
|
+
* Update sparse candidates. Viewport and invalidation metadata are the only
|
|
87
|
+
* discovery inputs; active changes re-evaluate retained cache, never document.
|
|
88
|
+
*/
|
|
89
|
+
export declare const reduceSparseSurfaceCandidates: ({ activeNode, meta, newState, previousState, resolvedSurfaces, tr, }: SparseSurfaceCandidateInput) => SparseSurfaceCandidateState;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { BlockControlsSurfaceInvalidation } from '@atlaskit/editor-common/block-controls/surface-candidate-invalidation';
|
|
2
|
+
import type { EditorState, ReadonlyTransaction } from '@atlaskit/editor-prosemirror/state';
|
|
3
|
+
import type { SparseSurfacesState } from './sparse-surfaces-state';
|
|
4
|
+
export type PendingSparseSurfacesState = Pick<SparseSurfacesState, 'invalidation'>;
|
|
5
|
+
export declare const reducePendingState: ({ invalidation, previous, tr, }: {
|
|
6
|
+
invalidation: BlockControlsSurfaceInvalidation | undefined;
|
|
7
|
+
previous: SparseSurfacesState;
|
|
8
|
+
tr: ReadonlyTransaction;
|
|
9
|
+
}) => PendingSparseSurfacesState;
|
|
10
|
+
export declare const isUnchangedTransaction: ({ pending, previous, tr, }: {
|
|
11
|
+
pending: PendingSparseSurfacesState;
|
|
12
|
+
previous: SparseSurfacesState;
|
|
13
|
+
tr: ReadonlyTransaction;
|
|
14
|
+
}) => boolean;
|
|
15
|
+
export declare const mapTransactionState: ({ newState, pending, previous, tr, }: {
|
|
16
|
+
newState: EditorState;
|
|
17
|
+
pending: PendingSparseSurfacesState;
|
|
18
|
+
previous: SparseSurfacesState;
|
|
19
|
+
tr: ReadonlyTransaction;
|
|
20
|
+
}) => SparseSurfacesState;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { BlockControlsSurfaceInvalidation } from '@atlaskit/editor-common/block-controls/surface-candidate-invalidation';
|
|
2
|
+
import type { EditorState, ReadonlyTransaction } from '@atlaskit/editor-prosemirror/state';
|
|
3
|
+
import { DecorationSet } from '@atlaskit/editor-prosemirror/view';
|
|
4
|
+
import type { ActiveNode } from '../../blockControlsPluginType';
|
|
5
|
+
import type { SparseSurfaceCandidateState } from './sparse-surface-candidates';
|
|
6
|
+
export type SparseSurfacesState = {
|
|
7
|
+
activeNodesByPosition: ReadonlyMap<number, ActiveNode>;
|
|
8
|
+
anchors: ReadonlyMap<number, string>;
|
|
9
|
+
candidates: SparseSurfaceCandidateState;
|
|
10
|
+
decorations: DecorationSet;
|
|
11
|
+
documentChanged: boolean;
|
|
12
|
+
invalidation?: BlockControlsSurfaceInvalidation;
|
|
13
|
+
};
|
|
14
|
+
export type SparseSurfacesReconciliation = Pick<SparseSurfacesState, 'activeNodesByPosition' | 'anchors' | 'candidates' | 'decorations'>;
|
|
15
|
+
export type SparseSurfacesMeta = {
|
|
16
|
+
reconciliation: SparseSurfacesReconciliation;
|
|
17
|
+
type: 'commitReconciliation';
|
|
18
|
+
};
|
|
19
|
+
export declare const createInitialSparseSurfacesState: (candidates: SparseSurfaceCandidateState) => SparseSurfacesState;
|
|
20
|
+
export type ApplySparseSurfacesTransactionInput = {
|
|
21
|
+
invalidation: BlockControlsSurfaceInvalidation | undefined;
|
|
22
|
+
meta: SparseSurfacesMeta | undefined;
|
|
23
|
+
newState: EditorState;
|
|
24
|
+
previous: SparseSurfacesState;
|
|
25
|
+
tr: ReadonlyTransaction;
|
|
26
|
+
};
|
|
27
|
+
export declare const applySparseSurfacesTransaction: (input: ApplySparseSurfacesTransactionInput) => SparseSurfacesState;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ExtractInjectionAPI } from '@atlaskit/editor-common/types';
|
|
2
|
+
import type { EditorState, PluginKey } from '@atlaskit/editor-prosemirror/state';
|
|
3
|
+
import type { EditorView } from '@atlaskit/editor-prosemirror/view';
|
|
4
|
+
import type { BlockControlsPlugin } from '../../blockControlsPluginType';
|
|
5
|
+
import type { SparseSurfacesState } from './sparse-surfaces-state';
|
|
6
|
+
type SparseSurfacesPluginView = {
|
|
7
|
+
destroy: () => void;
|
|
8
|
+
update: (view: EditorView, previousState: EditorState) => void;
|
|
9
|
+
};
|
|
10
|
+
export declare const createSparseSurfacesView: ({ api, pluginKey, view, }: {
|
|
11
|
+
api: ExtractInjectionAPI<BlockControlsPlugin> | undefined;
|
|
12
|
+
pluginKey: PluginKey<SparseSurfacesState>;
|
|
13
|
+
view: EditorView;
|
|
14
|
+
}) => SparseSurfacesPluginView;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { EditorView } from '@atlaskit/editor-prosemirror/view';
|
|
2
|
+
export type SurfaceViewportPositions = readonly number[];
|
|
3
|
+
/**
|
|
4
|
+
* Tracks block DOM nodes that intersect the browser viewport. The browser owns clipping and
|
|
5
|
+
* visibility decisions; this helper only translates observer targets back to PM positions.
|
|
6
|
+
*/
|
|
7
|
+
export declare const observeSurfaceViewport: (view: EditorView, onChange: (positions: SurfaceViewportPositions) => void) => {
|
|
8
|
+
destroy: () => void;
|
|
9
|
+
update: () => void;
|
|
10
|
+
};
|
|
@@ -58,11 +58,12 @@ export type SurfaceWrapperPlacement = {
|
|
|
58
58
|
*/
|
|
59
59
|
export declare const toMeasuredSurfaceWrapperPlacement: (placement: SurfacePlacement) => SurfaceWrapperPlacement;
|
|
60
60
|
export type AnchoredSurfacePlacementOptions = {
|
|
61
|
-
/** The target node's CSS anchor name,
|
|
61
|
+
/** The target node's CSS anchor name, from a sparse marker or native `data-node-anchor`. */
|
|
62
62
|
anchorName: string;
|
|
63
|
+
layout?: string;
|
|
63
64
|
nodeType: string;
|
|
64
65
|
nodeTypeWithLevel: string;
|
|
65
66
|
parentNodeType?: string;
|
|
66
67
|
side: SurfaceSide;
|
|
67
68
|
};
|
|
68
|
-
export declare const getAnchoredSurfacePlacement: ({ anchorName, nodeType, nodeTypeWithLevel, parentNodeType, side, }: AnchoredSurfacePlacementOptions) => SurfaceWrapperPlacement;
|
|
69
|
+
export declare const getAnchoredSurfacePlacement: ({ anchorName, layout, nodeType, nodeTypeWithLevel, parentNodeType, side, }: AnchoredSurfacePlacementOptions) => SurfaceWrapperPlacement;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-plugin-block-controls",
|
|
3
|
-
"version": "20.0
|
|
3
|
+
"version": "20.1.0",
|
|
4
4
|
"description": "Block controls plugin for @atlaskit/editor-core",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"atlaskit:src": "src/index.ts",
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@atlaskit/browser-apis": "^1.2.0",
|
|
29
|
-
"@atlaskit/button": "^25.
|
|
29
|
+
"@atlaskit/button": "^25.4.0",
|
|
30
30
|
"@atlaskit/css": "^1.1.0",
|
|
31
31
|
"@atlaskit/docs": "^12.2.0",
|
|
32
32
|
"@atlaskit/editor-plugin-accessibility-utils": "^19.0.0",
|
|
@@ -40,16 +40,16 @@
|
|
|
40
40
|
"@atlaskit/editor-plugin-metrics": "^20.0.0",
|
|
41
41
|
"@atlaskit/editor-plugin-quick-insert": "^19.0.0",
|
|
42
42
|
"@atlaskit/editor-plugin-selection": "^19.0.0",
|
|
43
|
-
"@atlaskit/editor-plugin-show-diff": "^17.
|
|
43
|
+
"@atlaskit/editor-plugin-show-diff": "^17.1.0",
|
|
44
44
|
"@atlaskit/editor-plugin-toolbar": "^16.0.0",
|
|
45
45
|
"@atlaskit/editor-plugin-type-ahead": "^20.0.0",
|
|
46
|
-
"@atlaskit/editor-plugin-ui-control-registry": "^13.
|
|
46
|
+
"@atlaskit/editor-plugin-ui-control-registry": "^13.1.0",
|
|
47
47
|
"@atlaskit/editor-plugin-user-intent": "^17.0.0",
|
|
48
48
|
"@atlaskit/editor-plugin-width": "^20.0.0",
|
|
49
49
|
"@atlaskit/editor-prosemirror": "^9.0.0",
|
|
50
50
|
"@atlaskit/editor-shared-styles": "^4.3.0",
|
|
51
51
|
"@atlaskit/editor-tables": "^3.2.0",
|
|
52
|
-
"@atlaskit/editor-ui-control-model": "^2.
|
|
52
|
+
"@atlaskit/editor-ui-control-model": "^2.10.0",
|
|
53
53
|
"@atlaskit/icon": "^37.7.0",
|
|
54
54
|
"@atlaskit/icon-lab": "^7.9.0",
|
|
55
55
|
"@atlaskit/link": "^5.1.0",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"@atlaskit/primitives": "^22.5.0",
|
|
62
62
|
"@atlaskit/section-message": "^10.2.0",
|
|
63
63
|
"@atlaskit/theme": "^28.2.0",
|
|
64
|
-
"@atlaskit/tmp-editor-statsig": "^
|
|
64
|
+
"@atlaskit/tmp-editor-statsig": "^201.0.0",
|
|
65
65
|
"@atlaskit/tokens": "^18.2.0",
|
|
66
66
|
"@atlaskit/tooltip": "^24.3.0",
|
|
67
67
|
"@babel/runtime": "^7.0.0",
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
"uuid": "^11.1.1"
|
|
74
74
|
},
|
|
75
75
|
"peerDependencies": {
|
|
76
|
-
"@atlaskit/editor-common": "^123.
|
|
76
|
+
"@atlaskit/editor-common": "^123.3.0",
|
|
77
77
|
"react": "^18.2.0 || ^19.2.0",
|
|
78
78
|
"react-dom": "^18.2.0 || ^19.2.0",
|
|
79
79
|
"react-intl": "^5.25.1 || ^6.0.0 || ^7.0.0"
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.updateSurfaceNodePositions = exports.getSurfaceNodePositions = void 0;
|
|
8
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
|
-
var _blockControlUiContext = require("@atlaskit/editor-common/block-controls/block-control-ui-context");
|
|
10
|
-
var _createSurfaceContext = require("@atlaskit/editor-ui-control-model/create-surface-context");
|
|
11
|
-
var _surfaceRenderer = require("@atlaskit/editor-ui-control-model/surface-renderer");
|
|
12
|
-
var _blockControlsSurfaceContext = require("../../ui/block-controls-surface-context");
|
|
13
|
-
var _hasSurfaceControls = require("../../ui/utils/has-surface-controls");
|
|
14
|
-
var createSurfaceContextAtPosition = function createSurfaceContextAtPosition(state, position, activeNode) {
|
|
15
|
-
var blockControlsContext = (0, _blockControlsSurfaceContext.createBlockControlsSurfaceContextForPosition)(state, position, activeNode);
|
|
16
|
-
return blockControlsContext ? (0, _createSurfaceContext.createSurfaceContext)(_blockControlUiContext.BLOCK_CONTROL_UI_CONTEXT, blockControlsContext) : undefined;
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* A position qualifies as soon as ANY of the given surfaces would render something for it.
|
|
21
|
-
* The surface context depends only on state/position/activeNode, not on which surface is being
|
|
22
|
-
* checked, so it's built once here rather than once per surface inside the `.some()`.
|
|
23
|
-
*/
|
|
24
|
-
var willAnySurfaceRenderAt = function willAnySurfaceRenderAt(surfaces, state, position, activeNode) {
|
|
25
|
-
var surfaceContext = createSurfaceContextAtPosition(state, position, activeNode);
|
|
26
|
-
return surfaces.some(function (_ref) {
|
|
27
|
-
var childrenMap = _ref.childrenMap,
|
|
28
|
-
root = _ref.root;
|
|
29
|
-
return (0, _surfaceRenderer.willComponentRender)(root, childrenMap, surfaceContext);
|
|
30
|
-
});
|
|
31
|
-
};
|
|
32
|
-
var getSurfaceNodePositions = exports.getSurfaceNodePositions = function getSurfaceNodePositions(state, resolvedSurfaces, activeNode) {
|
|
33
|
-
var from = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
|
|
34
|
-
var to = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : state.doc.content.size;
|
|
35
|
-
var surfaces = resolvedSurfaces.flatMap(function (_ref2) {
|
|
36
|
-
var childrenMap = _ref2.childrenMap,
|
|
37
|
-
components = _ref2.components,
|
|
38
|
-
root = _ref2.root;
|
|
39
|
-
return root && (0, _hasSurfaceControls.hasSurfaceControls)(components) ? [{
|
|
40
|
-
childrenMap: childrenMap,
|
|
41
|
-
root: root
|
|
42
|
-
}] : [];
|
|
43
|
-
});
|
|
44
|
-
if (surfaces.length === 0) {
|
|
45
|
-
return [];
|
|
46
|
-
}
|
|
47
|
-
var positions = [];
|
|
48
|
-
var start = Math.max(0, from);
|
|
49
|
-
var end = Math.min(state.doc.content.size, Math.max(start, to));
|
|
50
|
-
state.doc.nodesBetween(start, end, function (node, position) {
|
|
51
|
-
if (node.isBlock && willAnySurfaceRenderAt(surfaces, state, position, activeNode)) {
|
|
52
|
-
positions.push(position);
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
return positions;
|
|
56
|
-
};
|
|
57
|
-
var hasActiveNodeChanged = function hasActiveNodeChanged(previousActiveNode, activeNode) {
|
|
58
|
-
return (previousActiveNode === null || previousActiveNode === void 0 ? void 0 : previousActiveNode.pos) !== (activeNode === null || activeNode === void 0 ? void 0 : activeNode.pos) || (previousActiveNode === null || previousActiveNode === void 0 ? void 0 : previousActiveNode.nodeType) !== (activeNode === null || activeNode === void 0 ? void 0 : activeNode.nodeType) || (previousActiveNode === null || previousActiveNode === void 0 ? void 0 : previousActiveNode.rootPos) !== (activeNode === null || activeNode === void 0 ? void 0 : activeNode.rootPos);
|
|
59
|
-
};
|
|
60
|
-
var updateSurfaceNodePositions = exports.updateSurfaceNodePositions = function updateSurfaceNodePositions(_ref3) {
|
|
61
|
-
var activeNode = _ref3.activeNode,
|
|
62
|
-
currentPositions = _ref3.currentPositions,
|
|
63
|
-
from = _ref3.from,
|
|
64
|
-
newState = _ref3.newState,
|
|
65
|
-
previousActiveNode = _ref3.previousActiveNode,
|
|
66
|
-
resolvedSurfaces = _ref3.resolvedSurfaces,
|
|
67
|
-
to = _ref3.to,
|
|
68
|
-
tr = _ref3.tr;
|
|
69
|
-
var activeNodeChanged = hasActiveNodeChanged(previousActiveNode, activeNode);
|
|
70
|
-
if (!tr.docChanged && !activeNodeChanged) {
|
|
71
|
-
return currentPositions;
|
|
72
|
-
}
|
|
73
|
-
var nextActiveNode = activeNode !== null && activeNode !== void 0 ? activeNode : undefined;
|
|
74
|
-
if (activeNodeChanged) {
|
|
75
|
-
return getSurfaceNodePositions(newState, resolvedSurfaces, nextActiveNode);
|
|
76
|
-
}
|
|
77
|
-
var surfaces = resolvedSurfaces.flatMap(function (_ref4) {
|
|
78
|
-
var childrenMap = _ref4.childrenMap,
|
|
79
|
-
components = _ref4.components,
|
|
80
|
-
root = _ref4.root;
|
|
81
|
-
return root && (0, _hasSurfaceControls.hasSurfaceControls)(components) ? [{
|
|
82
|
-
childrenMap: childrenMap,
|
|
83
|
-
root: root
|
|
84
|
-
}] : [];
|
|
85
|
-
});
|
|
86
|
-
var mappedPositions = currentPositions.map(function (position) {
|
|
87
|
-
return tr.mapping.mapResult(position, -1);
|
|
88
|
-
}).filter(function (result) {
|
|
89
|
-
return !result.deleted;
|
|
90
|
-
}).map(function (result) {
|
|
91
|
-
return result.pos;
|
|
92
|
-
}).filter(function (position) {
|
|
93
|
-
var node = newState.doc.nodeAt(position);
|
|
94
|
-
return Boolean((node === null || node === void 0 ? void 0 : node.isBlock) && willAnySurfaceRenderAt(surfaces, newState, position, nextActiveNode));
|
|
95
|
-
});
|
|
96
|
-
var changedPositions = getSurfaceNodePositions(newState, resolvedSurfaces, nextActiveNode, from - 1, to + 1);
|
|
97
|
-
return Array.from(new Set([].concat((0, _toConsumableArray2.default)(mappedPositions), (0, _toConsumableArray2.default)(changedPositions)))).sort(function (first, second) {
|
|
98
|
-
return first - second;
|
|
99
|
-
});
|
|
100
|
-
};
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { BLOCK_CONTROL_UI_CONTEXT } from '@atlaskit/editor-common/block-controls/block-control-ui-context';
|
|
2
|
-
import { createSurfaceContext } from '@atlaskit/editor-ui-control-model/create-surface-context';
|
|
3
|
-
import { willComponentRender } from '@atlaskit/editor-ui-control-model/surface-renderer';
|
|
4
|
-
import { createBlockControlsSurfaceContextForPosition } from '../../ui/block-controls-surface-context';
|
|
5
|
-
import { hasSurfaceControls } from '../../ui/utils/has-surface-controls';
|
|
6
|
-
const createSurfaceContextAtPosition = (state, position, activeNode) => {
|
|
7
|
-
const blockControlsContext = createBlockControlsSurfaceContextForPosition(state, position, activeNode);
|
|
8
|
-
return blockControlsContext ? createSurfaceContext(BLOCK_CONTROL_UI_CONTEXT, blockControlsContext) : undefined;
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* A position qualifies as soon as ANY of the given surfaces would render something for it.
|
|
13
|
-
* The surface context depends only on state/position/activeNode, not on which surface is being
|
|
14
|
-
* checked, so it's built once here rather than once per surface inside the `.some()`.
|
|
15
|
-
*/
|
|
16
|
-
const willAnySurfaceRenderAt = (surfaces, state, position, activeNode) => {
|
|
17
|
-
const surfaceContext = createSurfaceContextAtPosition(state, position, activeNode);
|
|
18
|
-
return surfaces.some(({
|
|
19
|
-
childrenMap,
|
|
20
|
-
root
|
|
21
|
-
}) => willComponentRender(root, childrenMap, surfaceContext));
|
|
22
|
-
};
|
|
23
|
-
export const getSurfaceNodePositions = (state, resolvedSurfaces, activeNode, from = 0, to = state.doc.content.size) => {
|
|
24
|
-
const surfaces = resolvedSurfaces.flatMap(({
|
|
25
|
-
childrenMap,
|
|
26
|
-
components,
|
|
27
|
-
root
|
|
28
|
-
}) => root && hasSurfaceControls(components) ? [{
|
|
29
|
-
childrenMap,
|
|
30
|
-
root
|
|
31
|
-
}] : []);
|
|
32
|
-
if (surfaces.length === 0) {
|
|
33
|
-
return [];
|
|
34
|
-
}
|
|
35
|
-
const positions = [];
|
|
36
|
-
const start = Math.max(0, from);
|
|
37
|
-
const end = Math.min(state.doc.content.size, Math.max(start, to));
|
|
38
|
-
state.doc.nodesBetween(start, end, (node, position) => {
|
|
39
|
-
if (node.isBlock && willAnySurfaceRenderAt(surfaces, state, position, activeNode)) {
|
|
40
|
-
positions.push(position);
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
return positions;
|
|
44
|
-
};
|
|
45
|
-
const hasActiveNodeChanged = (previousActiveNode, activeNode) => (previousActiveNode === null || previousActiveNode === void 0 ? void 0 : previousActiveNode.pos) !== (activeNode === null || activeNode === void 0 ? void 0 : activeNode.pos) || (previousActiveNode === null || previousActiveNode === void 0 ? void 0 : previousActiveNode.nodeType) !== (activeNode === null || activeNode === void 0 ? void 0 : activeNode.nodeType) || (previousActiveNode === null || previousActiveNode === void 0 ? void 0 : previousActiveNode.rootPos) !== (activeNode === null || activeNode === void 0 ? void 0 : activeNode.rootPos);
|
|
46
|
-
export const updateSurfaceNodePositions = ({
|
|
47
|
-
activeNode,
|
|
48
|
-
currentPositions,
|
|
49
|
-
from,
|
|
50
|
-
newState,
|
|
51
|
-
previousActiveNode,
|
|
52
|
-
resolvedSurfaces,
|
|
53
|
-
to,
|
|
54
|
-
tr
|
|
55
|
-
}) => {
|
|
56
|
-
const activeNodeChanged = hasActiveNodeChanged(previousActiveNode, activeNode);
|
|
57
|
-
if (!tr.docChanged && !activeNodeChanged) {
|
|
58
|
-
return currentPositions;
|
|
59
|
-
}
|
|
60
|
-
const nextActiveNode = activeNode !== null && activeNode !== void 0 ? activeNode : undefined;
|
|
61
|
-
if (activeNodeChanged) {
|
|
62
|
-
return getSurfaceNodePositions(newState, resolvedSurfaces, nextActiveNode);
|
|
63
|
-
}
|
|
64
|
-
const surfaces = resolvedSurfaces.flatMap(({
|
|
65
|
-
childrenMap,
|
|
66
|
-
components,
|
|
67
|
-
root
|
|
68
|
-
}) => root && hasSurfaceControls(components) ? [{
|
|
69
|
-
childrenMap,
|
|
70
|
-
root
|
|
71
|
-
}] : []);
|
|
72
|
-
const mappedPositions = currentPositions.map(position => tr.mapping.mapResult(position, -1)).filter(result => !result.deleted).map(result => result.pos).filter(position => {
|
|
73
|
-
const node = newState.doc.nodeAt(position);
|
|
74
|
-
return Boolean((node === null || node === void 0 ? void 0 : node.isBlock) && willAnySurfaceRenderAt(surfaces, newState, position, nextActiveNode));
|
|
75
|
-
});
|
|
76
|
-
const changedPositions = getSurfaceNodePositions(newState, resolvedSurfaces, nextActiveNode, from - 1, to + 1);
|
|
77
|
-
return Array.from(new Set([...mappedPositions, ...changedPositions])).sort((first, second) => first - second);
|
|
78
|
-
};
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
2
|
-
import { BLOCK_CONTROL_UI_CONTEXT } from '@atlaskit/editor-common/block-controls/block-control-ui-context';
|
|
3
|
-
import { createSurfaceContext } from '@atlaskit/editor-ui-control-model/create-surface-context';
|
|
4
|
-
import { willComponentRender } from '@atlaskit/editor-ui-control-model/surface-renderer';
|
|
5
|
-
import { createBlockControlsSurfaceContextForPosition } from '../../ui/block-controls-surface-context';
|
|
6
|
-
import { hasSurfaceControls } from '../../ui/utils/has-surface-controls';
|
|
7
|
-
var createSurfaceContextAtPosition = function createSurfaceContextAtPosition(state, position, activeNode) {
|
|
8
|
-
var blockControlsContext = createBlockControlsSurfaceContextForPosition(state, position, activeNode);
|
|
9
|
-
return blockControlsContext ? createSurfaceContext(BLOCK_CONTROL_UI_CONTEXT, blockControlsContext) : undefined;
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* A position qualifies as soon as ANY of the given surfaces would render something for it.
|
|
14
|
-
* The surface context depends only on state/position/activeNode, not on which surface is being
|
|
15
|
-
* checked, so it's built once here rather than once per surface inside the `.some()`.
|
|
16
|
-
*/
|
|
17
|
-
var willAnySurfaceRenderAt = function willAnySurfaceRenderAt(surfaces, state, position, activeNode) {
|
|
18
|
-
var surfaceContext = createSurfaceContextAtPosition(state, position, activeNode);
|
|
19
|
-
return surfaces.some(function (_ref) {
|
|
20
|
-
var childrenMap = _ref.childrenMap,
|
|
21
|
-
root = _ref.root;
|
|
22
|
-
return willComponentRender(root, childrenMap, surfaceContext);
|
|
23
|
-
});
|
|
24
|
-
};
|
|
25
|
-
export var getSurfaceNodePositions = function getSurfaceNodePositions(state, resolvedSurfaces, activeNode) {
|
|
26
|
-
var from = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
|
|
27
|
-
var to = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : state.doc.content.size;
|
|
28
|
-
var surfaces = resolvedSurfaces.flatMap(function (_ref2) {
|
|
29
|
-
var childrenMap = _ref2.childrenMap,
|
|
30
|
-
components = _ref2.components,
|
|
31
|
-
root = _ref2.root;
|
|
32
|
-
return root && hasSurfaceControls(components) ? [{
|
|
33
|
-
childrenMap: childrenMap,
|
|
34
|
-
root: root
|
|
35
|
-
}] : [];
|
|
36
|
-
});
|
|
37
|
-
if (surfaces.length === 0) {
|
|
38
|
-
return [];
|
|
39
|
-
}
|
|
40
|
-
var positions = [];
|
|
41
|
-
var start = Math.max(0, from);
|
|
42
|
-
var end = Math.min(state.doc.content.size, Math.max(start, to));
|
|
43
|
-
state.doc.nodesBetween(start, end, function (node, position) {
|
|
44
|
-
if (node.isBlock && willAnySurfaceRenderAt(surfaces, state, position, activeNode)) {
|
|
45
|
-
positions.push(position);
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
return positions;
|
|
49
|
-
};
|
|
50
|
-
var hasActiveNodeChanged = function hasActiveNodeChanged(previousActiveNode, activeNode) {
|
|
51
|
-
return (previousActiveNode === null || previousActiveNode === void 0 ? void 0 : previousActiveNode.pos) !== (activeNode === null || activeNode === void 0 ? void 0 : activeNode.pos) || (previousActiveNode === null || previousActiveNode === void 0 ? void 0 : previousActiveNode.nodeType) !== (activeNode === null || activeNode === void 0 ? void 0 : activeNode.nodeType) || (previousActiveNode === null || previousActiveNode === void 0 ? void 0 : previousActiveNode.rootPos) !== (activeNode === null || activeNode === void 0 ? void 0 : activeNode.rootPos);
|
|
52
|
-
};
|
|
53
|
-
export var updateSurfaceNodePositions = function updateSurfaceNodePositions(_ref3) {
|
|
54
|
-
var activeNode = _ref3.activeNode,
|
|
55
|
-
currentPositions = _ref3.currentPositions,
|
|
56
|
-
from = _ref3.from,
|
|
57
|
-
newState = _ref3.newState,
|
|
58
|
-
previousActiveNode = _ref3.previousActiveNode,
|
|
59
|
-
resolvedSurfaces = _ref3.resolvedSurfaces,
|
|
60
|
-
to = _ref3.to,
|
|
61
|
-
tr = _ref3.tr;
|
|
62
|
-
var activeNodeChanged = hasActiveNodeChanged(previousActiveNode, activeNode);
|
|
63
|
-
if (!tr.docChanged && !activeNodeChanged) {
|
|
64
|
-
return currentPositions;
|
|
65
|
-
}
|
|
66
|
-
var nextActiveNode = activeNode !== null && activeNode !== void 0 ? activeNode : undefined;
|
|
67
|
-
if (activeNodeChanged) {
|
|
68
|
-
return getSurfaceNodePositions(newState, resolvedSurfaces, nextActiveNode);
|
|
69
|
-
}
|
|
70
|
-
var surfaces = resolvedSurfaces.flatMap(function (_ref4) {
|
|
71
|
-
var childrenMap = _ref4.childrenMap,
|
|
72
|
-
components = _ref4.components,
|
|
73
|
-
root = _ref4.root;
|
|
74
|
-
return root && hasSurfaceControls(components) ? [{
|
|
75
|
-
childrenMap: childrenMap,
|
|
76
|
-
root: root
|
|
77
|
-
}] : [];
|
|
78
|
-
});
|
|
79
|
-
var mappedPositions = currentPositions.map(function (position) {
|
|
80
|
-
return tr.mapping.mapResult(position, -1);
|
|
81
|
-
}).filter(function (result) {
|
|
82
|
-
return !result.deleted;
|
|
83
|
-
}).map(function (result) {
|
|
84
|
-
return result.pos;
|
|
85
|
-
}).filter(function (position) {
|
|
86
|
-
var node = newState.doc.nodeAt(position);
|
|
87
|
-
return Boolean((node === null || node === void 0 ? void 0 : node.isBlock) && willAnySurfaceRenderAt(surfaces, newState, position, nextActiveNode));
|
|
88
|
-
});
|
|
89
|
-
var changedPositions = getSurfaceNodePositions(newState, resolvedSurfaces, nextActiveNode, from - 1, to + 1);
|
|
90
|
-
return Array.from(new Set([].concat(_toConsumableArray(mappedPositions), _toConsumableArray(changedPositions)))).sort(function (first, second) {
|
|
91
|
-
return first - second;
|
|
92
|
-
});
|
|
93
|
-
};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { EditorState, ReadonlyTransaction } from '@atlaskit/editor-prosemirror/state';
|
|
2
|
-
import type { ResolvedSurface } from '@atlaskit/editor-ui-control-model/surface-renderer/types';
|
|
3
|
-
import type { ActiveNode } from '../../blockControlsPluginType';
|
|
4
|
-
export declare const getSurfaceNodePositions: (state: EditorState, resolvedSurfaces: readonly ResolvedSurface[], activeNode?: ActiveNode, from?: number, to?: number) => number[];
|
|
5
|
-
export declare const updateSurfaceNodePositions: ({ activeNode, currentPositions, from, newState, previousActiveNode, resolvedSurfaces, to, tr, }: {
|
|
6
|
-
activeNode: ActiveNode | null | undefined;
|
|
7
|
-
currentPositions: number[];
|
|
8
|
-
from: number;
|
|
9
|
-
newState: EditorState;
|
|
10
|
-
previousActiveNode: ActiveNode | null | undefined;
|
|
11
|
-
resolvedSurfaces: readonly ResolvedSurface[];
|
|
12
|
-
to: number;
|
|
13
|
-
tr: ReadonlyTransaction;
|
|
14
|
-
}) => number[];
|