@coze-editor/core 0.1.0-alpha.02803c
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/LICENSE +21 -0
- package/dist/esm/index.js +472 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/index.d.mts +149 -0
- package/dist/index.d.ts +149 -0
- package/dist/index.js +515 -0
- package/dist/index.js.map +1 -0
- package/package.json +46 -0
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { EditorView, ViewUpdate } from '@codemirror/view';
|
|
2
|
+
import { Extension, StateEffect } from '@codemirror/state';
|
|
3
|
+
import { Emitter, EventType } from 'mitt';
|
|
4
|
+
|
|
5
|
+
declare const EVENT_SILENT: unique symbol;
|
|
6
|
+
interface APIContext {
|
|
7
|
+
view: EditorView;
|
|
8
|
+
get: (key: string) => unknown;
|
|
9
|
+
set: (values: Record<string, unknown>) => void;
|
|
10
|
+
}
|
|
11
|
+
interface APIPluginSpec<Name extends string, Params extends any[], ReturnValue = unknown> {
|
|
12
|
+
type: 'api';
|
|
13
|
+
name: Name;
|
|
14
|
+
handler: (context: APIContext) => (...params: Params) => ReturnValue;
|
|
15
|
+
}
|
|
16
|
+
interface OptionPluginSpec<Name extends string, Value = unknown> {
|
|
17
|
+
type: 'option';
|
|
18
|
+
name: Name;
|
|
19
|
+
handler: (value: Value) => Extension | undefined;
|
|
20
|
+
}
|
|
21
|
+
interface EventPluginSpec<Name extends string, Value = unknown> {
|
|
22
|
+
type: 'event';
|
|
23
|
+
name: Name;
|
|
24
|
+
handler: (update: ViewUpdate) => Value | typeof EVENT_SILENT;
|
|
25
|
+
}
|
|
26
|
+
interface DOMEventHandlerPluginSpec<T extends string> {
|
|
27
|
+
type: 'domEventHandler';
|
|
28
|
+
name: T;
|
|
29
|
+
}
|
|
30
|
+
interface ExtensionPluginSpec {
|
|
31
|
+
type: 'extension';
|
|
32
|
+
extension: Extension;
|
|
33
|
+
}
|
|
34
|
+
type EditorPluginSpec<T extends string, U extends any[], V> = APIPluginSpec<T, U, V> | OptionPluginSpec<T, U> | EventPluginSpec<T, U> | DOMEventHandlerPluginSpec<T> | ExtensionPluginSpec;
|
|
35
|
+
declare function option<Name extends string, Value>(name: Name, handler: (value: Value) => Extension): OptionPluginSpec<Name, Value>;
|
|
36
|
+
declare function api<Name extends string, Params extends any[], ReturnValue>(name: Name, handler: (context: APIContext) => (...params: Params) => ReturnValue): APIPluginSpec<Name, Params, ReturnValue>;
|
|
37
|
+
declare function event<Name extends string, Params>(name: Name, handler: (update: ViewUpdate) => Params | typeof EVENT_SILENT): EventPluginSpec<Name, Params>;
|
|
38
|
+
declare function domEventHandler<Name extends keyof HTMLElementEventMap>(name: Name): DOMEventHandlerPluginSpec<Name>;
|
|
39
|
+
declare function extension(ext: Extension): ExtensionPluginSpec;
|
|
40
|
+
type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
|
|
41
|
+
type InferValues<Plugin extends EditorPluginSpec<string, any, any>> = UnionToIntersection<Plugin extends OptionPluginSpec<infer Name, infer Value> ? {
|
|
42
|
+
[K in Name]: Value;
|
|
43
|
+
} : never>;
|
|
44
|
+
type InferAPI<Plugin extends EditorPluginSpec<string, any, any>> = UnionToIntersection<Plugin extends APIPluginSpec<infer Name, infer Params, infer ReturnValue> ? {
|
|
45
|
+
[K in Name]: (...params: Params) => ReturnValue;
|
|
46
|
+
} : never>;
|
|
47
|
+
type InferEvents<Plugin extends EditorPluginSpec<string, any, any>> = UnionToIntersection<Plugin extends EventPluginSpec<infer Name, infer Params> ? {
|
|
48
|
+
[K in Name]: Params;
|
|
49
|
+
} : Plugin extends DOMEventHandlerPluginSpec<infer Name> ? Name extends keyof HTMLElementEventMap ? {
|
|
50
|
+
[K in Name]: HTMLElementEventMap[Name];
|
|
51
|
+
} : {
|
|
52
|
+
[K in Name]: unknown;
|
|
53
|
+
} : never>;
|
|
54
|
+
interface Core {
|
|
55
|
+
API: typeof api;
|
|
56
|
+
Extesion: typeof extension;
|
|
57
|
+
Event: typeof event;
|
|
58
|
+
Option: typeof option;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
type OptionFunction<T = unknown> = (value: T) => Extension | undefined;
|
|
62
|
+
declare class OptionHandler<Value = unknown> {
|
|
63
|
+
fn: OptionFunction;
|
|
64
|
+
private compartment;
|
|
65
|
+
extension: Extension | undefined;
|
|
66
|
+
value: Value | undefined;
|
|
67
|
+
constructor(fn: OptionFunction);
|
|
68
|
+
init(value: Value): Extension;
|
|
69
|
+
set(value: Value): StateEffect<unknown> | undefined;
|
|
70
|
+
}
|
|
71
|
+
declare class Options {
|
|
72
|
+
cachedValues: any;
|
|
73
|
+
handlers: Record<string, OptionHandler[]>;
|
|
74
|
+
add(name: string, handler: OptionHandler): void;
|
|
75
|
+
init(values: Record<string, unknown>): Extension[];
|
|
76
|
+
get<T = unknown>(key: string | number | symbol): T;
|
|
77
|
+
set(values: Record<string, unknown>): StateEffect<unknown>[];
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
declare enum InjectPosition {
|
|
81
|
+
Head = "head",
|
|
82
|
+
Tail = "tail"
|
|
83
|
+
}
|
|
84
|
+
type Eject = () => void;
|
|
85
|
+
interface Injector {
|
|
86
|
+
view: EditorView | null;
|
|
87
|
+
provideView: (view: EditorView) => void;
|
|
88
|
+
inject: (extension: Extension, position?: InjectPosition) => Eject;
|
|
89
|
+
getCompartment: (position: InjectPosition) => Extension;
|
|
90
|
+
}
|
|
91
|
+
declare function createInjector(): Injector;
|
|
92
|
+
|
|
93
|
+
interface EditorOptions<T, U> {
|
|
94
|
+
parent: HTMLElement;
|
|
95
|
+
root?: Document | ShadowRoot;
|
|
96
|
+
defaultValue?: string;
|
|
97
|
+
options: T;
|
|
98
|
+
extensions?: Extension[];
|
|
99
|
+
}
|
|
100
|
+
type InferOnOff<Events> = <K extends keyof Events>(eventName: K, handler: (params: Events[K]) => void) => void;
|
|
101
|
+
type InferEventMap<Events> = {
|
|
102
|
+
[K in keyof Events]: (params: Events[K]) => void;
|
|
103
|
+
};
|
|
104
|
+
type InferGet<Values> = <K extends keyof Values>(key: K) => Values[K] | undefined;
|
|
105
|
+
type InferSet<Values> = (values: Values) => void;
|
|
106
|
+
interface BuiltinEditorAPI {
|
|
107
|
+
$view: EditorView;
|
|
108
|
+
$on: (name: string, handler: Function) => void;
|
|
109
|
+
$off: (name: string, handler: Function) => void;
|
|
110
|
+
$get: (key: string) => unknown;
|
|
111
|
+
$set: (key: string, value: unknown) => void;
|
|
112
|
+
$destroy: () => void;
|
|
113
|
+
$inject: (extension: Extension, position?: InjectPosition) => () => void;
|
|
114
|
+
}
|
|
115
|
+
type InferEditorAPIFromPlugins<T extends EditorPluginSpec<string, any, any>[], Events = InferEvents<T[number]>, AllValues = InferValues<T[number]>, Values = Partial<AllValues>> = InferAPI<T[number]> & {
|
|
116
|
+
$on: InferOnOff<Events>;
|
|
117
|
+
} & {
|
|
118
|
+
$off: InferOnOff<Events>;
|
|
119
|
+
} & {
|
|
120
|
+
$get: InferGet<AllValues>;
|
|
121
|
+
} & {
|
|
122
|
+
$set: InferSet<Values>;
|
|
123
|
+
} & Pick<BuiltinEditorAPI, '$view' | '$destroy' | '$inject'> & {
|
|
124
|
+
__private_eventmap: InferEventMap<Events>;
|
|
125
|
+
};
|
|
126
|
+
declare function create<T extends EditorPluginSpec<string, any, any>[]>({ plugins, injector, }: {
|
|
127
|
+
plugins: T;
|
|
128
|
+
injector?: Injector;
|
|
129
|
+
}): {
|
|
130
|
+
render: (opts: EditorOptions<Partial<InferValues<T[number]>>, InferEvents<T[number]>>) => InferEditorAPIFromPlugins<T, ((T[number] extends infer T_1 ? T_1 extends T[number] ? T_1 extends EventPluginSpec<infer Name extends string, infer Params> ? { [K in Name]: Params; } : T_1 extends DOMEventHandlerPluginSpec<infer Name_1 extends string> ? Name_1 extends keyof HTMLElementEventMap ? { [K_1 in Name_1]: HTMLElementEventMap[Name_1]; } : { [K_2 in Name_1]: unknown; } : never : never : never) extends infer T_2 ? T_2 extends (T[number] extends infer T_3 ? T_3 extends T[number] ? T_3 extends EventPluginSpec<infer Name extends string, infer Params> ? { [K in Name]: Params; } : T_3 extends DOMEventHandlerPluginSpec<infer Name_1 extends string> ? Name_1 extends keyof HTMLElementEventMap ? { [K_1 in Name_1]: HTMLElementEventMap[Name_1]; } : { [K_2 in Name_1]: unknown; } : never : never : never) ? T_2 extends any ? (k: T_2) => void : never : never : never) extends (k: infer I) => void ? I : never, ((T[number] extends infer T_4 ? T_4 extends T[number] ? T_4 extends OptionPluginSpec<infer Name_2 extends string, infer Value> ? { [K_3 in Name_2]: Value; } : never : never : never) extends infer T_5 ? T_5 extends (T[number] extends infer T_6 ? T_6 extends T[number] ? T_6 extends OptionPluginSpec<infer Name_2 extends string, infer Value> ? { [K_3 in Name_2]: Value; } : never : never : never) ? T_5 extends any ? (k: T_5) => void : never : never : never) extends (k: infer I) => void ? I : never, Partial<((T[number] extends infer T_7 ? T_7 extends T[number] ? T_7 extends OptionPluginSpec<infer Name_2 extends string, infer Value> ? { [K_3 in Name_2]: Value; } : never : never : never) extends infer T_8 ? T_8 extends (T[number] extends infer T_9 ? T_9 extends T[number] ? T_9 extends OptionPluginSpec<infer Name_2 extends string, infer Value> ? { [K_3 in Name_2]: Value; } : never : never : never) ? T_8 extends any ? (k: T_8) => void : never : never : never) extends (k: infer I) => void ? I : never>>;
|
|
131
|
+
getExtensions: (values: EditorOptions<Partial<InferValues<T[number]>>, InferEvents<T[number]>>["options"], { options, events, }: {
|
|
132
|
+
options: Options;
|
|
133
|
+
events: Emitter<Record<string, unknown>>;
|
|
134
|
+
}) => Extension[];
|
|
135
|
+
createAPI: ({ view, options, events, }: {
|
|
136
|
+
view: EditorView;
|
|
137
|
+
options: Options;
|
|
138
|
+
events: Emitter<Record<EventType, unknown>>;
|
|
139
|
+
}) => InferEditorAPIFromPlugins<T, ((T[number] extends infer T_1 ? T_1 extends T[number] ? T_1 extends EventPluginSpec<infer Name extends string, infer Params> ? { [K in Name]: Params; } : T_1 extends DOMEventHandlerPluginSpec<infer Name_1 extends string> ? Name_1 extends keyof HTMLElementEventMap ? { [K_1 in Name_1]: HTMLElementEventMap[Name_1]; } : { [K_2 in Name_1]: unknown; } : never : never : never) extends infer T_2 ? T_2 extends (T[number] extends infer T_3 ? T_3 extends T[number] ? T_3 extends EventPluginSpec<infer Name extends string, infer Params> ? { [K in Name]: Params; } : T_3 extends DOMEventHandlerPluginSpec<infer Name_1 extends string> ? Name_1 extends keyof HTMLElementEventMap ? { [K_1 in Name_1]: HTMLElementEventMap[Name_1]; } : { [K_2 in Name_1]: unknown; } : never : never : never) ? T_2 extends any ? (k: T_2) => void : never : never : never) extends (k: infer I) => void ? I : never, ((T[number] extends infer T_4 ? T_4 extends T[number] ? T_4 extends OptionPluginSpec<infer Name_2 extends string, infer Value> ? { [K_3 in Name_2]: Value; } : never : never : never) extends infer T_5 ? T_5 extends (T[number] extends infer T_6 ? T_6 extends T[number] ? T_6 extends OptionPluginSpec<infer Name_2 extends string, infer Value> ? { [K_3 in Name_2]: Value; } : never : never : never) ? T_5 extends any ? (k: T_5) => void : never : never : never) extends (k: infer I) => void ? I : never, Partial<((T[number] extends infer T_7 ? T_7 extends T[number] ? T_7 extends OptionPluginSpec<infer Name_2 extends string, infer Value> ? { [K_3 in Name_2]: Value; } : never : never : never) extends infer T_8 ? T_8 extends (T[number] extends infer T_9 ? T_9 extends T[number] ? T_9 extends OptionPluginSpec<infer Name_2 extends string, infer Value> ? { [K_3 in Name_2]: Value; } : never : never : never) ? T_8 extends any ? (k: T_8) => void : never : never : never) extends (k: infer I) => void ? I : never>>;
|
|
140
|
+
createOptions: () => Options;
|
|
141
|
+
createEvents: () => Emitter<Record<EventType, unknown>>;
|
|
142
|
+
eventKeys: string[];
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
declare function asyncOption<Name extends string, Value>(name: Name, handler: (value: Value) => Promise<Extension>, options?: {
|
|
146
|
+
reset?: boolean;
|
|
147
|
+
}): [ExtensionPluginSpec, OptionPluginSpec<Name, Value>];
|
|
148
|
+
|
|
149
|
+
export { type APIContext, type APIPluginSpec, type BuiltinEditorAPI, type Core, type DOMEventHandlerPluginSpec, EVENT_SILENT, type EditorOptions, type EditorPluginSpec, type EventPluginSpec, type ExtensionPluginSpec, type InferEditorAPIFromPlugins, type InferEvents, type InferValues, InjectPosition, type Injector, type OptionPluginSpec, api, asyncOption, create, createInjector, domEventHandler, event, extension, option };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { EditorView, ViewUpdate } from '@codemirror/view';
|
|
2
|
+
import { Extension, StateEffect } from '@codemirror/state';
|
|
3
|
+
import { Emitter, EventType } from 'mitt';
|
|
4
|
+
|
|
5
|
+
declare const EVENT_SILENT: unique symbol;
|
|
6
|
+
interface APIContext {
|
|
7
|
+
view: EditorView;
|
|
8
|
+
get: (key: string) => unknown;
|
|
9
|
+
set: (values: Record<string, unknown>) => void;
|
|
10
|
+
}
|
|
11
|
+
interface APIPluginSpec<Name extends string, Params extends any[], ReturnValue = unknown> {
|
|
12
|
+
type: 'api';
|
|
13
|
+
name: Name;
|
|
14
|
+
handler: (context: APIContext) => (...params: Params) => ReturnValue;
|
|
15
|
+
}
|
|
16
|
+
interface OptionPluginSpec<Name extends string, Value = unknown> {
|
|
17
|
+
type: 'option';
|
|
18
|
+
name: Name;
|
|
19
|
+
handler: (value: Value) => Extension | undefined;
|
|
20
|
+
}
|
|
21
|
+
interface EventPluginSpec<Name extends string, Value = unknown> {
|
|
22
|
+
type: 'event';
|
|
23
|
+
name: Name;
|
|
24
|
+
handler: (update: ViewUpdate) => Value | typeof EVENT_SILENT;
|
|
25
|
+
}
|
|
26
|
+
interface DOMEventHandlerPluginSpec<T extends string> {
|
|
27
|
+
type: 'domEventHandler';
|
|
28
|
+
name: T;
|
|
29
|
+
}
|
|
30
|
+
interface ExtensionPluginSpec {
|
|
31
|
+
type: 'extension';
|
|
32
|
+
extension: Extension;
|
|
33
|
+
}
|
|
34
|
+
type EditorPluginSpec<T extends string, U extends any[], V> = APIPluginSpec<T, U, V> | OptionPluginSpec<T, U> | EventPluginSpec<T, U> | DOMEventHandlerPluginSpec<T> | ExtensionPluginSpec;
|
|
35
|
+
declare function option<Name extends string, Value>(name: Name, handler: (value: Value) => Extension): OptionPluginSpec<Name, Value>;
|
|
36
|
+
declare function api<Name extends string, Params extends any[], ReturnValue>(name: Name, handler: (context: APIContext) => (...params: Params) => ReturnValue): APIPluginSpec<Name, Params, ReturnValue>;
|
|
37
|
+
declare function event<Name extends string, Params>(name: Name, handler: (update: ViewUpdate) => Params | typeof EVENT_SILENT): EventPluginSpec<Name, Params>;
|
|
38
|
+
declare function domEventHandler<Name extends keyof HTMLElementEventMap>(name: Name): DOMEventHandlerPluginSpec<Name>;
|
|
39
|
+
declare function extension(ext: Extension): ExtensionPluginSpec;
|
|
40
|
+
type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
|
|
41
|
+
type InferValues<Plugin extends EditorPluginSpec<string, any, any>> = UnionToIntersection<Plugin extends OptionPluginSpec<infer Name, infer Value> ? {
|
|
42
|
+
[K in Name]: Value;
|
|
43
|
+
} : never>;
|
|
44
|
+
type InferAPI<Plugin extends EditorPluginSpec<string, any, any>> = UnionToIntersection<Plugin extends APIPluginSpec<infer Name, infer Params, infer ReturnValue> ? {
|
|
45
|
+
[K in Name]: (...params: Params) => ReturnValue;
|
|
46
|
+
} : never>;
|
|
47
|
+
type InferEvents<Plugin extends EditorPluginSpec<string, any, any>> = UnionToIntersection<Plugin extends EventPluginSpec<infer Name, infer Params> ? {
|
|
48
|
+
[K in Name]: Params;
|
|
49
|
+
} : Plugin extends DOMEventHandlerPluginSpec<infer Name> ? Name extends keyof HTMLElementEventMap ? {
|
|
50
|
+
[K in Name]: HTMLElementEventMap[Name];
|
|
51
|
+
} : {
|
|
52
|
+
[K in Name]: unknown;
|
|
53
|
+
} : never>;
|
|
54
|
+
interface Core {
|
|
55
|
+
API: typeof api;
|
|
56
|
+
Extesion: typeof extension;
|
|
57
|
+
Event: typeof event;
|
|
58
|
+
Option: typeof option;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
type OptionFunction<T = unknown> = (value: T) => Extension | undefined;
|
|
62
|
+
declare class OptionHandler<Value = unknown> {
|
|
63
|
+
fn: OptionFunction;
|
|
64
|
+
private compartment;
|
|
65
|
+
extension: Extension | undefined;
|
|
66
|
+
value: Value | undefined;
|
|
67
|
+
constructor(fn: OptionFunction);
|
|
68
|
+
init(value: Value): Extension;
|
|
69
|
+
set(value: Value): StateEffect<unknown> | undefined;
|
|
70
|
+
}
|
|
71
|
+
declare class Options {
|
|
72
|
+
cachedValues: any;
|
|
73
|
+
handlers: Record<string, OptionHandler[]>;
|
|
74
|
+
add(name: string, handler: OptionHandler): void;
|
|
75
|
+
init(values: Record<string, unknown>): Extension[];
|
|
76
|
+
get<T = unknown>(key: string | number | symbol): T;
|
|
77
|
+
set(values: Record<string, unknown>): StateEffect<unknown>[];
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
declare enum InjectPosition {
|
|
81
|
+
Head = "head",
|
|
82
|
+
Tail = "tail"
|
|
83
|
+
}
|
|
84
|
+
type Eject = () => void;
|
|
85
|
+
interface Injector {
|
|
86
|
+
view: EditorView | null;
|
|
87
|
+
provideView: (view: EditorView) => void;
|
|
88
|
+
inject: (extension: Extension, position?: InjectPosition) => Eject;
|
|
89
|
+
getCompartment: (position: InjectPosition) => Extension;
|
|
90
|
+
}
|
|
91
|
+
declare function createInjector(): Injector;
|
|
92
|
+
|
|
93
|
+
interface EditorOptions<T, U> {
|
|
94
|
+
parent: HTMLElement;
|
|
95
|
+
root?: Document | ShadowRoot;
|
|
96
|
+
defaultValue?: string;
|
|
97
|
+
options: T;
|
|
98
|
+
extensions?: Extension[];
|
|
99
|
+
}
|
|
100
|
+
type InferOnOff<Events> = <K extends keyof Events>(eventName: K, handler: (params: Events[K]) => void) => void;
|
|
101
|
+
type InferEventMap<Events> = {
|
|
102
|
+
[K in keyof Events]: (params: Events[K]) => void;
|
|
103
|
+
};
|
|
104
|
+
type InferGet<Values> = <K extends keyof Values>(key: K) => Values[K] | undefined;
|
|
105
|
+
type InferSet<Values> = (values: Values) => void;
|
|
106
|
+
interface BuiltinEditorAPI {
|
|
107
|
+
$view: EditorView;
|
|
108
|
+
$on: (name: string, handler: Function) => void;
|
|
109
|
+
$off: (name: string, handler: Function) => void;
|
|
110
|
+
$get: (key: string) => unknown;
|
|
111
|
+
$set: (key: string, value: unknown) => void;
|
|
112
|
+
$destroy: () => void;
|
|
113
|
+
$inject: (extension: Extension, position?: InjectPosition) => () => void;
|
|
114
|
+
}
|
|
115
|
+
type InferEditorAPIFromPlugins<T extends EditorPluginSpec<string, any, any>[], Events = InferEvents<T[number]>, AllValues = InferValues<T[number]>, Values = Partial<AllValues>> = InferAPI<T[number]> & {
|
|
116
|
+
$on: InferOnOff<Events>;
|
|
117
|
+
} & {
|
|
118
|
+
$off: InferOnOff<Events>;
|
|
119
|
+
} & {
|
|
120
|
+
$get: InferGet<AllValues>;
|
|
121
|
+
} & {
|
|
122
|
+
$set: InferSet<Values>;
|
|
123
|
+
} & Pick<BuiltinEditorAPI, '$view' | '$destroy' | '$inject'> & {
|
|
124
|
+
__private_eventmap: InferEventMap<Events>;
|
|
125
|
+
};
|
|
126
|
+
declare function create<T extends EditorPluginSpec<string, any, any>[]>({ plugins, injector, }: {
|
|
127
|
+
plugins: T;
|
|
128
|
+
injector?: Injector;
|
|
129
|
+
}): {
|
|
130
|
+
render: (opts: EditorOptions<Partial<InferValues<T[number]>>, InferEvents<T[number]>>) => InferEditorAPIFromPlugins<T, ((T[number] extends infer T_1 ? T_1 extends T[number] ? T_1 extends EventPluginSpec<infer Name extends string, infer Params> ? { [K in Name]: Params; } : T_1 extends DOMEventHandlerPluginSpec<infer Name_1 extends string> ? Name_1 extends keyof HTMLElementEventMap ? { [K_1 in Name_1]: HTMLElementEventMap[Name_1]; } : { [K_2 in Name_1]: unknown; } : never : never : never) extends infer T_2 ? T_2 extends (T[number] extends infer T_3 ? T_3 extends T[number] ? T_3 extends EventPluginSpec<infer Name extends string, infer Params> ? { [K in Name]: Params; } : T_3 extends DOMEventHandlerPluginSpec<infer Name_1 extends string> ? Name_1 extends keyof HTMLElementEventMap ? { [K_1 in Name_1]: HTMLElementEventMap[Name_1]; } : { [K_2 in Name_1]: unknown; } : never : never : never) ? T_2 extends any ? (k: T_2) => void : never : never : never) extends (k: infer I) => void ? I : never, ((T[number] extends infer T_4 ? T_4 extends T[number] ? T_4 extends OptionPluginSpec<infer Name_2 extends string, infer Value> ? { [K_3 in Name_2]: Value; } : never : never : never) extends infer T_5 ? T_5 extends (T[number] extends infer T_6 ? T_6 extends T[number] ? T_6 extends OptionPluginSpec<infer Name_2 extends string, infer Value> ? { [K_3 in Name_2]: Value; } : never : never : never) ? T_5 extends any ? (k: T_5) => void : never : never : never) extends (k: infer I) => void ? I : never, Partial<((T[number] extends infer T_7 ? T_7 extends T[number] ? T_7 extends OptionPluginSpec<infer Name_2 extends string, infer Value> ? { [K_3 in Name_2]: Value; } : never : never : never) extends infer T_8 ? T_8 extends (T[number] extends infer T_9 ? T_9 extends T[number] ? T_9 extends OptionPluginSpec<infer Name_2 extends string, infer Value> ? { [K_3 in Name_2]: Value; } : never : never : never) ? T_8 extends any ? (k: T_8) => void : never : never : never) extends (k: infer I) => void ? I : never>>;
|
|
131
|
+
getExtensions: (values: EditorOptions<Partial<InferValues<T[number]>>, InferEvents<T[number]>>["options"], { options, events, }: {
|
|
132
|
+
options: Options;
|
|
133
|
+
events: Emitter<Record<string, unknown>>;
|
|
134
|
+
}) => Extension[];
|
|
135
|
+
createAPI: ({ view, options, events, }: {
|
|
136
|
+
view: EditorView;
|
|
137
|
+
options: Options;
|
|
138
|
+
events: Emitter<Record<EventType, unknown>>;
|
|
139
|
+
}) => InferEditorAPIFromPlugins<T, ((T[number] extends infer T_1 ? T_1 extends T[number] ? T_1 extends EventPluginSpec<infer Name extends string, infer Params> ? { [K in Name]: Params; } : T_1 extends DOMEventHandlerPluginSpec<infer Name_1 extends string> ? Name_1 extends keyof HTMLElementEventMap ? { [K_1 in Name_1]: HTMLElementEventMap[Name_1]; } : { [K_2 in Name_1]: unknown; } : never : never : never) extends infer T_2 ? T_2 extends (T[number] extends infer T_3 ? T_3 extends T[number] ? T_3 extends EventPluginSpec<infer Name extends string, infer Params> ? { [K in Name]: Params; } : T_3 extends DOMEventHandlerPluginSpec<infer Name_1 extends string> ? Name_1 extends keyof HTMLElementEventMap ? { [K_1 in Name_1]: HTMLElementEventMap[Name_1]; } : { [K_2 in Name_1]: unknown; } : never : never : never) ? T_2 extends any ? (k: T_2) => void : never : never : never) extends (k: infer I) => void ? I : never, ((T[number] extends infer T_4 ? T_4 extends T[number] ? T_4 extends OptionPluginSpec<infer Name_2 extends string, infer Value> ? { [K_3 in Name_2]: Value; } : never : never : never) extends infer T_5 ? T_5 extends (T[number] extends infer T_6 ? T_6 extends T[number] ? T_6 extends OptionPluginSpec<infer Name_2 extends string, infer Value> ? { [K_3 in Name_2]: Value; } : never : never : never) ? T_5 extends any ? (k: T_5) => void : never : never : never) extends (k: infer I) => void ? I : never, Partial<((T[number] extends infer T_7 ? T_7 extends T[number] ? T_7 extends OptionPluginSpec<infer Name_2 extends string, infer Value> ? { [K_3 in Name_2]: Value; } : never : never : never) extends infer T_8 ? T_8 extends (T[number] extends infer T_9 ? T_9 extends T[number] ? T_9 extends OptionPluginSpec<infer Name_2 extends string, infer Value> ? { [K_3 in Name_2]: Value; } : never : never : never) ? T_8 extends any ? (k: T_8) => void : never : never : never) extends (k: infer I) => void ? I : never>>;
|
|
140
|
+
createOptions: () => Options;
|
|
141
|
+
createEvents: () => Emitter<Record<EventType, unknown>>;
|
|
142
|
+
eventKeys: string[];
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
declare function asyncOption<Name extends string, Value>(name: Name, handler: (value: Value) => Promise<Extension>, options?: {
|
|
146
|
+
reset?: boolean;
|
|
147
|
+
}): [ExtensionPluginSpec, OptionPluginSpec<Name, Value>];
|
|
148
|
+
|
|
149
|
+
export { type APIContext, type APIPluginSpec, type BuiltinEditorAPI, type Core, type DOMEventHandlerPluginSpec, EVENT_SILENT, type EditorOptions, type EditorPluginSpec, type EventPluginSpec, type ExtensionPluginSpec, type InferEditorAPIFromPlugins, type InferEvents, type InferValues, InjectPosition, type Injector, type OptionPluginSpec, api, asyncOption, create, createInjector, domEventHandler, event, extension, option };
|