@atlaskit/editor-plugin-type-ahead 0.5.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +11 -0
- package/CHANGELOG.md +12 -0
- package/dist/cjs/api.js +215 -0
- package/dist/cjs/commands/insert-type-ahead-item.js +205 -0
- package/dist/cjs/commands/update-list-items.js +23 -0
- package/dist/cjs/commands/update-query.js +27 -0
- package/dist/cjs/commands/update-selected-index.js +27 -0
- package/dist/cjs/constants.js +15 -0
- package/dist/cjs/index.js +8 -1
- package/dist/cjs/insert-utils.js +107 -0
- package/dist/cjs/messages.js +79 -0
- package/dist/cjs/plugin.js +382 -0
- package/dist/cjs/pm-plugins/actions.js +16 -0
- package/dist/cjs/pm-plugins/decorations.js +148 -0
- package/dist/cjs/pm-plugins/input-rules.js +36 -0
- package/dist/cjs/pm-plugins/insert-item-plugin.js +22 -0
- package/dist/cjs/pm-plugins/key.js +8 -0
- package/dist/cjs/pm-plugins/main.js +110 -0
- package/dist/cjs/pm-plugins/reducer.js +158 -0
- package/dist/cjs/pm-plugins/utils.js +18 -0
- package/dist/cjs/stats-modifier.js +42 -0
- package/dist/cjs/transforms/close-type-ahead.js +13 -0
- package/dist/cjs/transforms/open-typeahead-at-cursor.js +75 -0
- package/dist/cjs/transforms/set-selection-before-query.js +18 -0
- package/dist/cjs/ui/AssistiveText.js +120 -0
- package/dist/cjs/ui/InputQuery.js +400 -0
- package/dist/cjs/ui/TypeAheadList.js +285 -0
- package/dist/cjs/ui/TypeAheadListItem.js +181 -0
- package/dist/cjs/ui/TypeAheadPopup.js +230 -0
- package/dist/cjs/ui/WrapperTypeAhead.js +127 -0
- package/dist/cjs/ui/hooks/use-item-insert.js +109 -0
- package/dist/cjs/ui/hooks/use-load-items.js +50 -0
- package/dist/cjs/ui/hooks/use-on-force-select.js +41 -0
- package/dist/cjs/utils.js +130 -0
- package/dist/es2019/api.js +205 -0
- package/dist/es2019/commands/insert-type-ahead-item.js +204 -0
- package/dist/es2019/commands/update-list-items.js +17 -0
- package/dist/es2019/commands/update-query.js +21 -0
- package/dist/es2019/commands/update-selected-index.js +21 -0
- package/dist/es2019/constants.js +9 -0
- package/dist/es2019/index.js +1 -1
- package/dist/es2019/insert-utils.js +106 -0
- package/dist/es2019/messages.js +73 -0
- package/dist/es2019/plugin.js +381 -0
- package/dist/es2019/pm-plugins/actions.js +10 -0
- package/dist/es2019/pm-plugins/decorations.js +148 -0
- package/dist/es2019/pm-plugins/input-rules.js +29 -0
- package/dist/es2019/pm-plugins/insert-item-plugin.js +16 -0
- package/dist/es2019/pm-plugins/key.js +2 -0
- package/dist/es2019/pm-plugins/main.js +106 -0
- package/dist/es2019/pm-plugins/reducer.js +160 -0
- package/dist/es2019/pm-plugins/utils.js +12 -0
- package/dist/es2019/stats-modifier.js +33 -0
- package/dist/es2019/transforms/close-type-ahead.js +7 -0
- package/dist/es2019/transforms/open-typeahead-at-cursor.js +71 -0
- package/dist/es2019/transforms/set-selection-before-query.js +10 -0
- package/dist/es2019/ui/AssistiveText.js +88 -0
- package/dist/es2019/ui/InputQuery.js +393 -0
- package/dist/es2019/ui/TypeAheadList.js +273 -0
- package/dist/es2019/ui/TypeAheadListItem.js +216 -0
- package/dist/es2019/ui/TypeAheadPopup.js +233 -0
- package/dist/es2019/ui/WrapperTypeAhead.js +109 -0
- package/dist/es2019/ui/hooks/use-item-insert.js +112 -0
- package/dist/es2019/ui/hooks/use-load-items.js +41 -0
- package/dist/es2019/ui/hooks/use-on-force-select.js +38 -0
- package/dist/es2019/utils.js +126 -0
- package/dist/esm/api.js +209 -0
- package/dist/esm/commands/insert-type-ahead-item.js +198 -0
- package/dist/esm/commands/update-list-items.js +17 -0
- package/dist/esm/commands/update-query.js +21 -0
- package/dist/esm/commands/update-selected-index.js +21 -0
- package/dist/esm/constants.js +9 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/insert-utils.js +101 -0
- package/dist/esm/messages.js +73 -0
- package/dist/esm/plugin.js +374 -0
- package/dist/esm/pm-plugins/actions.js +10 -0
- package/dist/esm/pm-plugins/decorations.js +141 -0
- package/dist/esm/pm-plugins/input-rules.js +29 -0
- package/dist/esm/pm-plugins/insert-item-plugin.js +16 -0
- package/dist/esm/pm-plugins/key.js +2 -0
- package/dist/esm/pm-plugins/main.js +104 -0
- package/dist/esm/pm-plugins/reducer.js +151 -0
- package/dist/esm/pm-plugins/utils.js +12 -0
- package/dist/esm/stats-modifier.js +35 -0
- package/dist/esm/transforms/close-type-ahead.js +7 -0
- package/dist/esm/transforms/open-typeahead-at-cursor.js +69 -0
- package/dist/esm/transforms/set-selection-before-query.js +12 -0
- package/dist/esm/ui/AssistiveText.js +115 -0
- package/dist/esm/ui/InputQuery.js +390 -0
- package/dist/esm/ui/TypeAheadList.js +276 -0
- package/dist/esm/ui/TypeAheadListItem.js +171 -0
- package/dist/esm/ui/TypeAheadPopup.js +220 -0
- package/dist/esm/ui/WrapperTypeAhead.js +117 -0
- package/dist/esm/ui/hooks/use-item-insert.js +103 -0
- package/dist/esm/ui/hooks/use-load-items.js +43 -0
- package/dist/esm/ui/hooks/use-on-force-select.js +35 -0
- package/dist/esm/utils.js +124 -0
- package/dist/types/api.d.ts +61 -0
- package/dist/types/commands/insert-type-ahead-item.d.ts +12 -0
- package/dist/types/commands/update-list-items.d.ts +3 -0
- package/dist/types/commands/update-query.d.ts +2 -0
- package/dist/types/commands/update-selected-index.d.ts +2 -0
- package/dist/types/constants.d.ts +8 -0
- package/dist/types/index.d.ts +2 -1
- package/dist/types/insert-utils.d.ts +18 -0
- package/dist/types/messages.d.ts +72 -0
- package/dist/types/plugin.d.ts +10 -0
- package/dist/types/pm-plugins/actions.d.ts +9 -0
- package/dist/types/pm-plugins/decorations.d.ts +14 -0
- package/dist/types/pm-plugins/input-rules.d.ts +6 -0
- package/dist/types/pm-plugins/insert-item-plugin.d.ts +2 -0
- package/dist/types/pm-plugins/key.d.ts +3 -0
- package/dist/types/pm-plugins/main.d.ts +14 -0
- package/dist/types/pm-plugins/reducer.d.ts +10 -0
- package/dist/types/pm-plugins/utils.d.ts +4 -0
- package/dist/types/stats-modifier.d.ts +20 -0
- package/dist/types/transforms/close-type-ahead.d.ts +2 -0
- package/dist/types/transforms/open-typeahead-at-cursor.d.ts +11 -0
- package/dist/types/transforms/set-selection-before-query.d.ts +2 -0
- package/dist/types/types.d.ts +64 -3
- package/dist/types/ui/AssistiveText.d.ts +33 -0
- package/dist/types/ui/InputQuery.d.ts +26 -0
- package/dist/types/ui/TypeAheadList.d.ts +25 -0
- package/dist/types/ui/TypeAheadListItem.d.ts +18 -0
- package/dist/types/ui/TypeAheadPopup.d.ts +29 -0
- package/dist/types/ui/WrapperTypeAhead.d.ts +20 -0
- package/dist/types/ui/hooks/use-item-insert.d.ts +3 -0
- package/dist/types/ui/hooks/use-load-items.d.ts +3 -0
- package/dist/types/ui/hooks/use-on-force-select.d.ts +11 -0
- package/dist/types/utils.d.ts +27 -0
- package/dist/types-ts4.5/api.d.ts +61 -0
- package/dist/types-ts4.5/commands/insert-type-ahead-item.d.ts +12 -0
- package/dist/types-ts4.5/commands/update-list-items.d.ts +3 -0
- package/dist/types-ts4.5/commands/update-query.d.ts +2 -0
- package/dist/types-ts4.5/commands/update-selected-index.d.ts +2 -0
- package/dist/types-ts4.5/constants.d.ts +8 -0
- package/dist/types-ts4.5/index.d.ts +2 -1
- package/dist/types-ts4.5/insert-utils.d.ts +18 -0
- package/dist/types-ts4.5/messages.d.ts +72 -0
- package/dist/types-ts4.5/plugin.d.ts +10 -0
- package/dist/types-ts4.5/pm-plugins/actions.d.ts +9 -0
- package/dist/types-ts4.5/pm-plugins/decorations.d.ts +14 -0
- package/dist/types-ts4.5/pm-plugins/input-rules.d.ts +6 -0
- package/dist/types-ts4.5/pm-plugins/insert-item-plugin.d.ts +2 -0
- package/dist/types-ts4.5/pm-plugins/key.d.ts +3 -0
- package/dist/types-ts4.5/pm-plugins/main.d.ts +14 -0
- package/dist/types-ts4.5/pm-plugins/reducer.d.ts +10 -0
- package/dist/types-ts4.5/pm-plugins/utils.d.ts +4 -0
- package/dist/types-ts4.5/stats-modifier.d.ts +20 -0
- package/dist/types-ts4.5/transforms/close-type-ahead.d.ts +2 -0
- package/dist/types-ts4.5/transforms/open-typeahead-at-cursor.d.ts +11 -0
- package/dist/types-ts4.5/transforms/set-selection-before-query.d.ts +2 -0
- package/dist/types-ts4.5/types.d.ts +64 -3
- package/dist/types-ts4.5/ui/AssistiveText.d.ts +33 -0
- package/dist/types-ts4.5/ui/InputQuery.d.ts +26 -0
- package/dist/types-ts4.5/ui/TypeAheadList.d.ts +25 -0
- package/dist/types-ts4.5/ui/TypeAheadListItem.d.ts +18 -0
- package/dist/types-ts4.5/ui/TypeAheadPopup.d.ts +29 -0
- package/dist/types-ts4.5/ui/WrapperTypeAhead.d.ts +20 -0
- package/dist/types-ts4.5/ui/hooks/use-item-insert.d.ts +7 -0
- package/dist/types-ts4.5/ui/hooks/use-load-items.d.ts +3 -0
- package/dist/types-ts4.5/ui/hooks/use-on-force-select.d.ts +11 -0
- package/dist/types-ts4.5/utils.d.ts +27 -0
- package/package.json +21 -28
- package/report.api.md +32 -1
- package/tmp/api-report-tmp.d.ts +29 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { IntlShape } from 'react-intl-next';
|
|
2
|
+
import type { CreateUIAnalyticsEvent } from '@atlaskit/analytics-next';
|
|
3
|
+
import type { Dispatch } from '@atlaskit/editor-common/event-dispatcher';
|
|
4
|
+
import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
|
|
5
|
+
import type { PopupMountPointReference, TypeAheadHandler } from '../types';
|
|
6
|
+
type Props = {
|
|
7
|
+
reactDispatch: Dispatch;
|
|
8
|
+
popupMountRef: PopupMountPointReference;
|
|
9
|
+
typeAheadHandlers: Array<TypeAheadHandler>;
|
|
10
|
+
createAnalyticsEvent?: CreateUIAnalyticsEvent;
|
|
11
|
+
getIntl: () => IntlShape;
|
|
12
|
+
};
|
|
13
|
+
export declare function createPlugin({ reactDispatch, popupMountRef, createAnalyticsEvent, typeAheadHandlers, getIntl, }: Props): SafePlugin;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { InsertTypeAheadStep } from '@atlaskit/adf-schema/steps';
|
|
2
|
+
import type { ReadonlyTransaction } from '@atlaskit/editor-prosemirror/state';
|
|
3
|
+
import type { CreateTypeAheadDecorations, PopupMountPointReference, RemoveTypeAheadDecorations, TypeAheadHandler, TypeAheadPluginState } from '../types';
|
|
4
|
+
export type ReducerOptions = {
|
|
5
|
+
popupMountRef: PopupMountPointReference;
|
|
6
|
+
createDecorations: CreateTypeAheadDecorations;
|
|
7
|
+
removeDecorations: RemoveTypeAheadDecorations;
|
|
8
|
+
typeAheadHandlers: Array<TypeAheadHandler>;
|
|
9
|
+
};
|
|
10
|
+
export declare const createReducer: ({ typeAheadHandlers, removeDecorations, createDecorations, }: ReducerOptions) => (tr: ReadonlyTransaction, currentPluginState: TypeAheadPluginState, typeAheadStepOverride: InsertTypeAheadStep | null) => TypeAheadPluginState;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Transaction } from '@atlaskit/editor-prosemirror/state';
|
|
2
|
+
import type { InsertionTransactionMeta } from '../types';
|
|
3
|
+
import type { ACTIONS } from './actions';
|
|
4
|
+
export declare const isInsertionTransaction: (transactions: readonly Transaction[], action: ACTIONS) => InsertionTransactionMeta | null;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { TypeAheadStatsModifier } from './types';
|
|
2
|
+
export declare class StatsModifier implements TypeAheadStatsModifier {
|
|
3
|
+
startedAt: number;
|
|
4
|
+
endedAt: number;
|
|
5
|
+
keyCount: {
|
|
6
|
+
arrowUp: number;
|
|
7
|
+
arrowDown: number;
|
|
8
|
+
};
|
|
9
|
+
constructor();
|
|
10
|
+
increaseArrowUp: () => void;
|
|
11
|
+
increaseArrowDown: () => void;
|
|
12
|
+
serialize: () => {
|
|
13
|
+
startedAt: number;
|
|
14
|
+
endedAt: number;
|
|
15
|
+
keyCount: {
|
|
16
|
+
arrowUp: number;
|
|
17
|
+
arrowDown: number;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { EditorCommand } from '@atlaskit/editor-common/types';
|
|
2
|
+
import type { Transaction } from '@atlaskit/editor-prosemirror/state';
|
|
3
|
+
import type { TypeAheadHandler, TypeAheadInputMethod } from '../types';
|
|
4
|
+
type Props = {
|
|
5
|
+
triggerHandler: TypeAheadHandler;
|
|
6
|
+
inputMethod: TypeAheadInputMethod;
|
|
7
|
+
query?: string;
|
|
8
|
+
};
|
|
9
|
+
export declare const openTypeAhead: (props: Props) => (tr: Transaction) => void;
|
|
10
|
+
export declare const openTypeAheadAtCursor: ({ triggerHandler, inputMethod, query }: Props) => EditorCommand;
|
|
11
|
+
export {};
|
package/dist/types/types.d.ts
CHANGED
|
@@ -1,9 +1,68 @@
|
|
|
1
1
|
import type { CreateUIAnalyticsEvent } from '@atlaskit/analytics-next';
|
|
2
2
|
import type { INPUT_METHOD } from '@atlaskit/editor-common/analytics';
|
|
3
3
|
import type { SelectItemMode } from '@atlaskit/editor-common/type-ahead';
|
|
4
|
-
import type { Command, NextEditorPlugin, OptionalPlugin, TypeAheadHandler, TypeAheadItem } from '@atlaskit/editor-common/types';
|
|
4
|
+
import type { Command, NextEditorPlugin, OptionalPlugin, TypeAheadForceSelect, TypeAheadHandler, TypeAheadInsert, TypeAheadItem, TypeAheadItemRenderProps, TypeAheadSelectItem, TypeAheadStats, UiComponentFactoryParams } from '@atlaskit/editor-common/types';
|
|
5
5
|
import type { AnalyticsPlugin } from '@atlaskit/editor-plugin-analytics';
|
|
6
|
-
import type { EditorState, Transaction } from '@atlaskit/editor-prosemirror/state';
|
|
6
|
+
import type { EditorState, ReadonlyTransaction, Transaction } from '@atlaskit/editor-prosemirror/state';
|
|
7
|
+
import type { DecorationSet } from '@atlaskit/editor-prosemirror/view';
|
|
8
|
+
import type { CloseSelectionOptions } from './constants';
|
|
9
|
+
export type { TypeAheadStats, TypeAheadItemRenderProps, TypeAheadInsert, TypeAheadSelectItem, TypeAheadItem, TypeAheadForceSelect, TypeAheadHandler, };
|
|
10
|
+
export type OnSelectItem = (props: {
|
|
11
|
+
index: number;
|
|
12
|
+
item: TypeAheadItem;
|
|
13
|
+
}) => void;
|
|
14
|
+
export interface TypeAheadStatsSerializable extends TypeAheadStats {
|
|
15
|
+
serialize: () => TypeAheadStats;
|
|
16
|
+
}
|
|
17
|
+
export interface TypeAheadStatsModifier extends TypeAheadStatsSerializable {
|
|
18
|
+
increaseArrowUp: () => void;
|
|
19
|
+
increaseArrowDown: () => void;
|
|
20
|
+
}
|
|
21
|
+
export interface TypeAheadStatsMobileModifier extends TypeAheadStatsSerializable {
|
|
22
|
+
resetTime: () => void;
|
|
23
|
+
closeTime: () => void;
|
|
24
|
+
}
|
|
25
|
+
export type TypeAheadPluginState = {
|
|
26
|
+
decorationSet: DecorationSet;
|
|
27
|
+
decorationElement: HTMLElement | null;
|
|
28
|
+
typeAheadHandlers: Array<TypeAheadHandler>;
|
|
29
|
+
query: string;
|
|
30
|
+
items: Array<TypeAheadItem>;
|
|
31
|
+
triggerHandler?: TypeAheadHandler;
|
|
32
|
+
selectedIndex: number;
|
|
33
|
+
stats: TypeAheadStatsSerializable | null;
|
|
34
|
+
inputMethod: TypeAheadInputMethod | null;
|
|
35
|
+
};
|
|
36
|
+
export type OnInsertSelectedItemProps = {
|
|
37
|
+
mode: SelectItemMode;
|
|
38
|
+
index: number;
|
|
39
|
+
query: string;
|
|
40
|
+
};
|
|
41
|
+
export type OnItemMatchProps = {
|
|
42
|
+
mode: SelectItemMode;
|
|
43
|
+
query: string;
|
|
44
|
+
};
|
|
45
|
+
export type OnInsertSelectedItem = (props: OnInsertSelectedItemProps) => void;
|
|
46
|
+
export type OnItemMatch = (props: OnItemMatchProps) => boolean;
|
|
47
|
+
export type OnTextInsertProps = {
|
|
48
|
+
forceFocusOnEditor: boolean;
|
|
49
|
+
setSelectionAt: CloseSelectionOptions;
|
|
50
|
+
text: string;
|
|
51
|
+
};
|
|
52
|
+
export type OnTextInsert = (props: OnTextInsertProps) => void;
|
|
53
|
+
export type InsertionTransactionMeta = (editorState: EditorState) => Transaction | false;
|
|
54
|
+
type PopupMountPoints = Pick<UiComponentFactoryParams, 'popupsMountPoint' | 'popupsBoundariesElement' | 'popupsScrollableElement'>;
|
|
55
|
+
export type PopupMountPointReference = Record<'current', PopupMountPoints | null>;
|
|
56
|
+
export type CreateTypeAheadDecorations = (tr: ReadonlyTransaction, options: {
|
|
57
|
+
triggerHandler: TypeAheadHandler;
|
|
58
|
+
inputMethod: TypeAheadInputMethod;
|
|
59
|
+
reopenQuery?: string;
|
|
60
|
+
}) => {
|
|
61
|
+
decorationSet: DecorationSet;
|
|
62
|
+
decorationElement: HTMLElement | null;
|
|
63
|
+
stats: TypeAheadStatsSerializable | null;
|
|
64
|
+
};
|
|
65
|
+
export type RemoveTypeAheadDecorations = (decorationSet?: DecorationSet) => boolean;
|
|
7
66
|
export type TypeAheadInputMethod = INPUT_METHOD.INSERT_MENU | INPUT_METHOD.KEYBOARD | INPUT_METHOD.QUICK_INSERT | INPUT_METHOD.TOOLBAR;
|
|
8
67
|
export type TypeAheadPluginOptions = {
|
|
9
68
|
isMobile?: boolean;
|
|
@@ -34,6 +93,9 @@ export type TypeAheadPlugin = NextEditorPlugin<'typeAhead', {
|
|
|
34
93
|
dependencies: [OptionalPlugin<AnalyticsPlugin>];
|
|
35
94
|
sharedState: {
|
|
36
95
|
query: string;
|
|
96
|
+
isOpen: boolean;
|
|
97
|
+
isAllowed: boolean;
|
|
98
|
+
currentHandler?: TypeAheadHandler;
|
|
37
99
|
};
|
|
38
100
|
actions: {
|
|
39
101
|
isOpen: (editorState: EditorState) => boolean;
|
|
@@ -45,4 +107,3 @@ export type TypeAheadPlugin = NextEditorPlugin<'typeAhead', {
|
|
|
45
107
|
openAtTransaction: (props: OpenTypeAheadProps) => (tr: Transaction) => boolean;
|
|
46
108
|
};
|
|
47
109
|
}>;
|
|
48
|
-
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
/// <reference types="lodash" />
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { jsx } from '@emotion/react';
|
|
5
|
+
import debounce from 'lodash/debounce';
|
|
6
|
+
type Cancelable = ReturnType<typeof debounce>;
|
|
7
|
+
type AssistiveTextProps = {
|
|
8
|
+
assistiveText: string;
|
|
9
|
+
isInFocus: boolean;
|
|
10
|
+
id: string;
|
|
11
|
+
statusDebounceMillis?: number;
|
|
12
|
+
debounce?: boolean;
|
|
13
|
+
};
|
|
14
|
+
type AssistiveTextState = {
|
|
15
|
+
bump: boolean;
|
|
16
|
+
debounced: boolean;
|
|
17
|
+
silenced: boolean;
|
|
18
|
+
};
|
|
19
|
+
declare class AssistveTextComponent extends React.Component<AssistiveTextProps, AssistiveTextState> {
|
|
20
|
+
static defaultProps: AssistiveTextProps;
|
|
21
|
+
debounceStatusUpdate: (() => void) & Cancelable;
|
|
22
|
+
state: {
|
|
23
|
+
bump: boolean;
|
|
24
|
+
debounced: boolean;
|
|
25
|
+
silenced: boolean;
|
|
26
|
+
};
|
|
27
|
+
componentWillMount(): void;
|
|
28
|
+
componentWillUnmount(): void;
|
|
29
|
+
componentWillReceiveProps(): void;
|
|
30
|
+
render(): jsx.JSX.Element;
|
|
31
|
+
}
|
|
32
|
+
export declare const AssistiveText: typeof AssistveTextComponent;
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { SelectItemMode } from '@atlaskit/editor-common/type-ahead';
|
|
4
|
+
import type { EditorView } from '@atlaskit/editor-prosemirror/view';
|
|
5
|
+
import { CloseSelectionOptions } from '../constants';
|
|
6
|
+
type InputQueryProps = {
|
|
7
|
+
triggerQueryPrefix: string;
|
|
8
|
+
onQueryChange: (query: string) => void;
|
|
9
|
+
onItemSelect: (mode: SelectItemMode) => void;
|
|
10
|
+
selectNextItem: () => void;
|
|
11
|
+
selectPreviousItem: () => void;
|
|
12
|
+
cancel: (props: {
|
|
13
|
+
forceFocusOnEditor: boolean;
|
|
14
|
+
setSelectionAt: CloseSelectionOptions;
|
|
15
|
+
addPrefixTrigger: boolean;
|
|
16
|
+
text: string;
|
|
17
|
+
}) => void;
|
|
18
|
+
onQueryFocus: () => void;
|
|
19
|
+
forceFocus: boolean;
|
|
20
|
+
onUndoRedo?: (inputType: 'historyUndo' | 'historyRedo') => boolean;
|
|
21
|
+
reopenQuery?: string;
|
|
22
|
+
editorView: EditorView;
|
|
23
|
+
items: any[];
|
|
24
|
+
};
|
|
25
|
+
export declare const InputQuery: React.FC<InputQueryProps>;
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import type { WrappedComponentProps } from 'react-intl-next';
|
|
4
|
+
import { SelectItemMode } from '@atlaskit/editor-common/type-ahead';
|
|
5
|
+
import type { EditorView } from '@atlaskit/editor-prosemirror/view';
|
|
6
|
+
import type { TypeAheadHandler, TypeAheadItem } from '../types';
|
|
7
|
+
export declare const TypeAheadList: React.FC<import("react-intl-next").WithIntlProps<{
|
|
8
|
+
items: Array<TypeAheadItem>;
|
|
9
|
+
selectedIndex: number;
|
|
10
|
+
editorView: EditorView;
|
|
11
|
+
onItemClick: (mode: SelectItemMode, index: number) => void;
|
|
12
|
+
fitHeight: number;
|
|
13
|
+
decorationElement: HTMLElement;
|
|
14
|
+
triggerHandler?: TypeAheadHandler | undefined;
|
|
15
|
+
} & WrappedComponentProps<"intl">>> & {
|
|
16
|
+
WrappedComponent: React.ComponentType<{
|
|
17
|
+
items: Array<TypeAheadItem>;
|
|
18
|
+
selectedIndex: number;
|
|
19
|
+
editorView: EditorView;
|
|
20
|
+
onItemClick: (mode: SelectItemMode, index: number) => void;
|
|
21
|
+
fitHeight: number;
|
|
22
|
+
decorationElement: HTMLElement;
|
|
23
|
+
triggerHandler?: TypeAheadHandler | undefined;
|
|
24
|
+
} & WrappedComponentProps<"intl">>;
|
|
25
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { SelectItemMode } from '@atlaskit/editor-common/type-ahead';
|
|
4
|
+
import type { TypeAheadItem } from '../types';
|
|
5
|
+
export declare const ICON_HEIGHT = 40;
|
|
6
|
+
export declare const ICON_WIDTH = 40;
|
|
7
|
+
export declare const ITEM_PADDING = 12;
|
|
8
|
+
export declare const itemIcon: import("@emotion/react").SerializedStyles;
|
|
9
|
+
type TypeAheadListItemProps = {
|
|
10
|
+
item: TypeAheadItem;
|
|
11
|
+
itemsLength: number;
|
|
12
|
+
itemIndex: number;
|
|
13
|
+
selectedIndex: number;
|
|
14
|
+
ariaLabel?: string;
|
|
15
|
+
onItemClick: (mode: SelectItemMode, index: number) => void;
|
|
16
|
+
};
|
|
17
|
+
export declare const TypeAheadListItem: React.FC<TypeAheadListItemProps>;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import type { FireAnalyticsCallback } from '@atlaskit/editor-common/analytics';
|
|
4
|
+
import type { SelectItemMode } from '@atlaskit/editor-common/type-ahead';
|
|
5
|
+
import type { DecorationSet, EditorView } from '@atlaskit/editor-prosemirror/view';
|
|
6
|
+
import { CloseSelectionOptions } from '../constants';
|
|
7
|
+
import type { OnSelectItem, TypeAheadHandler, TypeAheadItem } from '../types';
|
|
8
|
+
type TypeAheadPopupProps = {
|
|
9
|
+
triggerHandler: TypeAheadHandler;
|
|
10
|
+
editorView: EditorView;
|
|
11
|
+
anchorElement: HTMLElement;
|
|
12
|
+
popupsMountPoint?: HTMLElement;
|
|
13
|
+
popupsBoundariesElement?: HTMLElement;
|
|
14
|
+
popupsScrollableElement?: HTMLElement;
|
|
15
|
+
fireAnalyticsCallback: FireAnalyticsCallback;
|
|
16
|
+
items: Array<TypeAheadItem>;
|
|
17
|
+
selectedIndex: number;
|
|
18
|
+
setSelectedItem: OnSelectItem;
|
|
19
|
+
decorationSet: DecorationSet;
|
|
20
|
+
isEmptyQuery: boolean;
|
|
21
|
+
onItemInsert: (mode: SelectItemMode, index: number) => void;
|
|
22
|
+
cancel: (params: {
|
|
23
|
+
setSelectionAt: CloseSelectionOptions;
|
|
24
|
+
addPrefixTrigger: boolean;
|
|
25
|
+
forceFocusOnEditor: boolean;
|
|
26
|
+
}) => void;
|
|
27
|
+
};
|
|
28
|
+
export declare const TypeAheadPopup: React.FC<TypeAheadPopupProps>;
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { CreateUIAnalyticsEvent } from '@atlaskit/analytics-next';
|
|
3
|
+
import type { EditorView } from '@atlaskit/editor-prosemirror/view';
|
|
4
|
+
import type { TypeAheadHandler, TypeAheadInputMethod } from '../types';
|
|
5
|
+
type WrapperProps = {
|
|
6
|
+
triggerHandler: TypeAheadHandler;
|
|
7
|
+
editorView: EditorView;
|
|
8
|
+
anchorElement: HTMLElement;
|
|
9
|
+
getDecorationPosition: () => number | undefined;
|
|
10
|
+
shouldFocusCursorInsideQuery: boolean;
|
|
11
|
+
onUndoRedo?: (inputType: 'historyUndo' | 'historyRedo') => boolean;
|
|
12
|
+
reopenQuery?: string;
|
|
13
|
+
popupsMountPoint?: HTMLElement;
|
|
14
|
+
popupsBoundariesElement?: HTMLElement;
|
|
15
|
+
popupsScrollableElement?: HTMLElement;
|
|
16
|
+
createAnalyticsEvent?: CreateUIAnalyticsEvent;
|
|
17
|
+
inputMethod?: TypeAheadInputMethod;
|
|
18
|
+
};
|
|
19
|
+
export declare const WrapperTypeAhead: React.FC<WrapperProps>;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { EditorView } from '@atlaskit/editor-prosemirror/view';
|
|
2
|
+
import type { OnInsertSelectedItem, OnItemMatch, OnTextInsert, TypeAheadHandler, TypeAheadItem } from '../../types';
|
|
3
|
+
export declare const useItemInsert: (triggerHandler: TypeAheadHandler, editorView: EditorView, items: Array<TypeAheadItem>) => [OnInsertSelectedItem, OnTextInsert, OnItemMatch];
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { EditorView } from '@atlaskit/editor-prosemirror/view';
|
|
2
|
+
import type { TypeAheadHandler, TypeAheadItem } from '../../types';
|
|
3
|
+
type Props = {
|
|
4
|
+
triggerHandler: TypeAheadHandler;
|
|
5
|
+
items: Array<TypeAheadItem>;
|
|
6
|
+
query: string;
|
|
7
|
+
editorView: EditorView;
|
|
8
|
+
closePopup: () => void;
|
|
9
|
+
};
|
|
10
|
+
export declare const useOnForceSelect: ({ triggerHandler, items, query, editorView, closePopup, }: Props) => void;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { IntlShape } from 'react-intl-next';
|
|
2
|
+
import type { EditorState } from '@atlaskit/editor-prosemirror/state';
|
|
3
|
+
import type { EditorView } from '@atlaskit/editor-prosemirror/view';
|
|
4
|
+
import type { TypeAheadHandler, TypeAheadItem } from './types';
|
|
5
|
+
export declare const isTypeAheadHandler: (handler: any) => handler is TypeAheadHandler;
|
|
6
|
+
/** Is a typeahead plugin open? */
|
|
7
|
+
export declare const isTypeAheadOpen: (editorState: EditorState) => boolean;
|
|
8
|
+
export declare const getPluginState: (editorState: EditorState) => import("./types").TypeAheadPluginState | undefined;
|
|
9
|
+
export declare const getTypeAheadHandler: (editorState: EditorState) => TypeAheadHandler | undefined;
|
|
10
|
+
export declare const getTypeAheadQuery: (editorState: EditorState) => string | undefined;
|
|
11
|
+
export declare const isTypeAheadAllowed: (state: EditorState) => boolean;
|
|
12
|
+
export declare const findHandler: (id: string, state: EditorState) => TypeAheadHandler | null;
|
|
13
|
+
export declare const findHandlerByTrigger: ({ trigger, editorState, }: {
|
|
14
|
+
trigger: string;
|
|
15
|
+
editorState: EditorState;
|
|
16
|
+
}) => TypeAheadHandler | null;
|
|
17
|
+
type MoveSelectedIndexProps = {
|
|
18
|
+
editorView: EditorView;
|
|
19
|
+
direction: 'next' | 'previous';
|
|
20
|
+
};
|
|
21
|
+
export declare const moveSelectedIndex: ({ editorView, direction }: MoveSelectedIndexProps) => () => void;
|
|
22
|
+
type TypeAheadAssistiveLabels = {
|
|
23
|
+
popupAriaLabel: string;
|
|
24
|
+
listItemAriaLabel?: string;
|
|
25
|
+
};
|
|
26
|
+
export declare const getTypeAheadListAriaLabels: (trigger: string | undefined, intl: IntlShape, item?: TypeAheadItem) => TypeAheadAssistiveLabels;
|
|
27
|
+
export {};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { TypeAheadItem } from '@atlaskit/editor-common/provider-factory';
|
|
2
|
+
import { SelectItemMode } from '@atlaskit/editor-common/type-ahead';
|
|
3
|
+
import type { Command } from '@atlaskit/editor-common/types';
|
|
4
|
+
import type { EditorView } from '@atlaskit/editor-prosemirror/view';
|
|
5
|
+
import type { TypeAheadInputMethod } from './types';
|
|
6
|
+
import type { TypeAheadHandler } from './types';
|
|
7
|
+
type CloseOptions = {
|
|
8
|
+
insertCurrentQueryAsRawText: boolean;
|
|
9
|
+
attachCommand?: Command;
|
|
10
|
+
};
|
|
11
|
+
type InsertItemProps = {
|
|
12
|
+
contentItem: TypeAheadItem;
|
|
13
|
+
query: string;
|
|
14
|
+
sourceListItem: TypeAheadItem[];
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Please do not use it. Ping #help-editor and talk to the Lego team before use it.
|
|
18
|
+
*
|
|
19
|
+
* @private
|
|
20
|
+
* @deprecated
|
|
21
|
+
*
|
|
22
|
+
*/
|
|
23
|
+
export declare const createTypeAheadTools: (editorView: EditorView) => {
|
|
24
|
+
isOpen: () => TypeAheadHandler | false;
|
|
25
|
+
currentQuery: () => string | undefined;
|
|
26
|
+
close: (options?: CloseOptions) => boolean;
|
|
27
|
+
openMention: (inputMethod: TypeAheadInputMethod) => boolean;
|
|
28
|
+
searchMention: (query?: string) => {
|
|
29
|
+
type: (appendValue: string) => Promise<TypeAheadItem[]> | undefined;
|
|
30
|
+
result: () => Promise<TypeAheadItem[] | undefined>;
|
|
31
|
+
close: (options?: CloseOptions) => boolean;
|
|
32
|
+
insert: ({ index, mode }: {
|
|
33
|
+
index: number;
|
|
34
|
+
mode?: SelectItemMode | undefined;
|
|
35
|
+
}) => Promise<void>;
|
|
36
|
+
};
|
|
37
|
+
openQuickInsert: (inputMethod: TypeAheadInputMethod) => boolean;
|
|
38
|
+
searchQuickInsert: (query?: string) => {
|
|
39
|
+
type: (appendValue: string) => Promise<TypeAheadItem[]> | undefined;
|
|
40
|
+
result: () => Promise<TypeAheadItem[] | undefined>;
|
|
41
|
+
close: (options?: CloseOptions) => boolean;
|
|
42
|
+
insert: ({ index, mode }: {
|
|
43
|
+
index: number;
|
|
44
|
+
mode?: SelectItemMode | undefined;
|
|
45
|
+
}) => Promise<void>;
|
|
46
|
+
};
|
|
47
|
+
openEmoji: (inputMethod: TypeAheadInputMethod) => boolean;
|
|
48
|
+
searchEmoji: (query?: string) => {
|
|
49
|
+
type: (appendValue: string) => Promise<TypeAheadItem[]> | undefined;
|
|
50
|
+
result: () => Promise<TypeAheadItem[] | undefined>;
|
|
51
|
+
close: (options?: CloseOptions) => boolean;
|
|
52
|
+
insert: ({ index, mode }: {
|
|
53
|
+
index: number;
|
|
54
|
+
mode?: SelectItemMode | undefined;
|
|
55
|
+
}) => Promise<void>;
|
|
56
|
+
};
|
|
57
|
+
insertItemMention: ({ contentItem, query, sourceListItem }: InsertItemProps) => boolean;
|
|
58
|
+
insertItemEmoji: ({ contentItem, query, sourceListItem }: InsertItemProps) => boolean;
|
|
59
|
+
insertItemQuickInsert: ({ contentItem, query, sourceListItem }: InsertItemProps) => boolean;
|
|
60
|
+
};
|
|
61
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { SelectItemMode } from '@atlaskit/editor-common/type-ahead';
|
|
2
|
+
import type { EditorView } from '@atlaskit/editor-prosemirror/view';
|
|
3
|
+
import type { TypeAheadHandler, TypeAheadItem } from '../types';
|
|
4
|
+
type Props = {
|
|
5
|
+
item: TypeAheadItem;
|
|
6
|
+
handler: TypeAheadHandler;
|
|
7
|
+
mode: SelectItemMode;
|
|
8
|
+
sourceListItem: Array<TypeAheadItem>;
|
|
9
|
+
query: string;
|
|
10
|
+
};
|
|
11
|
+
export declare const insertTypeAheadItem: (view: EditorView) => ({ item, handler, mode, query, sourceListItem }: Props) => void;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const TYPE_AHEAD_DECORATION_KEY = "typeahead_decoration_key";
|
|
2
|
+
export declare const TYPE_AHEAD_DECORATION_DATA_ATTRIBUTE = "typeaheadDecoration";
|
|
3
|
+
export declare const TYPE_AHEAD_POPUP_CONTENT_CLASS = "fabric-editor-typeahead";
|
|
4
|
+
export declare const TYPE_AHEAD_DECORATION_ELEMENT_ID = "typeahaed_decoration_element_id";
|
|
5
|
+
export declare enum CloseSelectionOptions {
|
|
6
|
+
BEFORE_TEXT_INSERTED = "BEFORE_TEXT_INSERTED",
|
|
7
|
+
AFTER_TEXT_INSERTED = "AFTER_TEXT_INSERTED"
|
|
8
|
+
}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { typeAheadPlugin } from './plugin';
|
|
2
|
+
export type { TypeAheadHandler, TypeAheadInputMethod, TypeAheadPlugin, TypeAheadPluginOptions, TypeAheadPluginState, } from './types';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Fragment, Node as PMNode } from '@atlaskit/editor-prosemirror/model';
|
|
2
|
+
import type { Transaction } from '@atlaskit/editor-prosemirror/state';
|
|
3
|
+
type Position = {
|
|
4
|
+
start: number;
|
|
5
|
+
end: number;
|
|
6
|
+
};
|
|
7
|
+
export declare const insertBlockNode: ({ node, tr, position, }: {
|
|
8
|
+
node: PMNode;
|
|
9
|
+
tr: Transaction;
|
|
10
|
+
position: Position;
|
|
11
|
+
}) => Transaction;
|
|
12
|
+
export declare const insertInlineNodeOrFragment: ({ maybeFragment, tr, position, selectInlineNode, }: {
|
|
13
|
+
maybeFragment: Fragment | PMNode;
|
|
14
|
+
tr: Transaction;
|
|
15
|
+
position: Position;
|
|
16
|
+
selectInlineNode: boolean;
|
|
17
|
+
}) => Transaction;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
export declare const typeAheadListMessages: {
|
|
2
|
+
typeAheadPopupLabel: {
|
|
3
|
+
id: string;
|
|
4
|
+
defaultMessage: string;
|
|
5
|
+
description: string;
|
|
6
|
+
};
|
|
7
|
+
quickInsertPopupLabel: {
|
|
8
|
+
id: string;
|
|
9
|
+
defaultMessage: string;
|
|
10
|
+
description: string;
|
|
11
|
+
};
|
|
12
|
+
quickInsertInputLabel: {
|
|
13
|
+
id: string;
|
|
14
|
+
defaultMessage: string;
|
|
15
|
+
description: string;
|
|
16
|
+
};
|
|
17
|
+
emojiPopupLabel: {
|
|
18
|
+
id: string;
|
|
19
|
+
defaultMessage: string;
|
|
20
|
+
description: string;
|
|
21
|
+
};
|
|
22
|
+
emojiInputLabel: {
|
|
23
|
+
id: string;
|
|
24
|
+
defaultMessage: string;
|
|
25
|
+
description: string;
|
|
26
|
+
};
|
|
27
|
+
mentionPopupLabel: {
|
|
28
|
+
id: string;
|
|
29
|
+
defaultMessage: string;
|
|
30
|
+
description: string;
|
|
31
|
+
};
|
|
32
|
+
mentionInputLabel: {
|
|
33
|
+
id: string;
|
|
34
|
+
defaultMessage: string;
|
|
35
|
+
description: string;
|
|
36
|
+
};
|
|
37
|
+
metionListItemLabel: {
|
|
38
|
+
id: string;
|
|
39
|
+
defaultMessage: string;
|
|
40
|
+
description: string;
|
|
41
|
+
};
|
|
42
|
+
emojiListItemLabel: {
|
|
43
|
+
id: string;
|
|
44
|
+
defaultMessage: string;
|
|
45
|
+
description: string;
|
|
46
|
+
};
|
|
47
|
+
inputQueryAssistiveLabel: {
|
|
48
|
+
id: string;
|
|
49
|
+
defaultMessage: string;
|
|
50
|
+
description: string;
|
|
51
|
+
};
|
|
52
|
+
searchResultsLabel: {
|
|
53
|
+
id: string;
|
|
54
|
+
defaultMessage: string;
|
|
55
|
+
description: string;
|
|
56
|
+
};
|
|
57
|
+
noSearchResultsLabel: {
|
|
58
|
+
id: string;
|
|
59
|
+
defaultMessage: string;
|
|
60
|
+
description: string;
|
|
61
|
+
};
|
|
62
|
+
descriptionLabel: {
|
|
63
|
+
id: string;
|
|
64
|
+
defaultMessage: string;
|
|
65
|
+
description: string;
|
|
66
|
+
};
|
|
67
|
+
shortcutLabel: {
|
|
68
|
+
id: string;
|
|
69
|
+
defaultMessage: string;
|
|
70
|
+
description: string;
|
|
71
|
+
};
|
|
72
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { TypeAheadPlugin } from './types';
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* Revamped typeahead using decorations instead of the `typeAheadQuery` mark
|
|
5
|
+
*
|
|
6
|
+
* https://product-fabric.atlassian.net/wiki/spaces/E/pages/2992177582/Technical+TypeAhead+Data+Flow
|
|
7
|
+
*
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
10
|
+
export declare const typeAheadPlugin: TypeAheadPlugin;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare enum ACTIONS {
|
|
2
|
+
OPEN_TYPEAHEAD_AT_CURSOR = "OPEN_TYPEAHEAD_AT_CURSOR",
|
|
3
|
+
CLOSE_TYPE_AHEAD = "CLOSE_TYPE_AHEAD",
|
|
4
|
+
CHANGE_QUERY = "CHANGE_QUERY",
|
|
5
|
+
INSERT_ITEM = "INSERT_ITEM",
|
|
6
|
+
INSERT_RAW_QUERY = "INSERT_RAW_QUERY",
|
|
7
|
+
UPDATE_LIST_ITEMS = "UPDATE_LIST_ITEMS",
|
|
8
|
+
UPDATE_SELECTED_INDEX = "UPDATE_SELECTED_INDEX"
|
|
9
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { IntlShape } from 'react-intl-next';
|
|
2
|
+
import type { CreateUIAnalyticsEvent } from '@atlaskit/analytics-next';
|
|
3
|
+
import type { CreateTypeAheadDecorations, PopupMountPointReference, RemoveTypeAheadDecorations } from '../types';
|
|
4
|
+
type FactoryProps = {
|
|
5
|
+
intl: IntlShape;
|
|
6
|
+
popupMountRef: PopupMountPointReference;
|
|
7
|
+
createAnalyticsEvent?: CreateUIAnalyticsEvent;
|
|
8
|
+
};
|
|
9
|
+
type FactoryReturn = {
|
|
10
|
+
createDecorations: CreateTypeAheadDecorations;
|
|
11
|
+
removeDecorations: RemoveTypeAheadDecorations;
|
|
12
|
+
};
|
|
13
|
+
export declare const factoryDecorations: ({ intl, popupMountRef, createAnalyticsEvent, }: FactoryProps) => FactoryReturn;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
|
|
2
|
+
import type { FeatureFlags } from '@atlaskit/editor-common/types';
|
|
3
|
+
import type { Schema } from '@atlaskit/editor-prosemirror/model';
|
|
4
|
+
import type { TypeAheadHandler } from '../types';
|
|
5
|
+
export declare function inputRulePlugin(schema: Schema, typeAheads: TypeAheadHandler[], featureFlags: FeatureFlags): SafePlugin | undefined;
|
|
6
|
+
export default inputRulePlugin;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { IntlShape } from 'react-intl-next';
|
|
2
|
+
import type { CreateUIAnalyticsEvent } from '@atlaskit/analytics-next';
|
|
3
|
+
import type { Dispatch } from '@atlaskit/editor-common/event-dispatcher';
|
|
4
|
+
import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
|
|
5
|
+
import type { PopupMountPointReference, TypeAheadHandler } from '../types';
|
|
6
|
+
type Props = {
|
|
7
|
+
reactDispatch: Dispatch;
|
|
8
|
+
popupMountRef: PopupMountPointReference;
|
|
9
|
+
typeAheadHandlers: Array<TypeAheadHandler>;
|
|
10
|
+
createAnalyticsEvent?: CreateUIAnalyticsEvent;
|
|
11
|
+
getIntl: () => IntlShape;
|
|
12
|
+
};
|
|
13
|
+
export declare function createPlugin({ reactDispatch, popupMountRef, createAnalyticsEvent, typeAheadHandlers, getIntl, }: Props): SafePlugin;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { InsertTypeAheadStep } from '@atlaskit/adf-schema/steps';
|
|
2
|
+
import type { ReadonlyTransaction } from '@atlaskit/editor-prosemirror/state';
|
|
3
|
+
import type { CreateTypeAheadDecorations, PopupMountPointReference, RemoveTypeAheadDecorations, TypeAheadHandler, TypeAheadPluginState } from '../types';
|
|
4
|
+
export type ReducerOptions = {
|
|
5
|
+
popupMountRef: PopupMountPointReference;
|
|
6
|
+
createDecorations: CreateTypeAheadDecorations;
|
|
7
|
+
removeDecorations: RemoveTypeAheadDecorations;
|
|
8
|
+
typeAheadHandlers: Array<TypeAheadHandler>;
|
|
9
|
+
};
|
|
10
|
+
export declare const createReducer: ({ typeAheadHandlers, removeDecorations, createDecorations, }: ReducerOptions) => (tr: ReadonlyTransaction, currentPluginState: TypeAheadPluginState, typeAheadStepOverride: InsertTypeAheadStep | null) => TypeAheadPluginState;
|