1 interface StringPathBookmark {
5 interface RangeBookmark {
12 interface IndexBookmark {
16 interface PathBookmark {
19 isFakeCaret?: boolean;
21 declare type Bookmark = StringPathBookmark | RangeBookmark | IdBookmark | IndexBookmark | PathBookmark;
22 declare type NormalizedEvent<E, T = any> = E & {
23 readonly type: string;
25 readonly isDefaultPrevented: () => boolean;
26 readonly preventDefault: () => void;
27 readonly isPropagationStopped: () => boolean;
28 readonly stopPropagation: () => void;
29 readonly isImmediatePropagationStopped: () => boolean;
30 readonly stopImmediatePropagation: () => void;
32 declare type MappedEvent<T, K extends string> = K extends keyof T ? T[K] : any;
33 interface NativeEventMap {
36 'beforeinput': InputEvent;
38 'compositionend': Event;
39 'compositionstart': Event;
40 'compositionupdate': Event;
41 'contextmenu': PointerEvent;
42 'copy': ClipboardEvent;
43 'cut': ClipboardEvent;
44 'dblclick': MouseEvent;
46 'dragdrop': DragEvent;
48 'draggesture': DragEvent;
49 'dragover': DragEvent;
50 'dragstart': DragEvent;
53 'focusin': FocusEvent;
54 'focusout': FocusEvent;
56 'keydown': KeyboardEvent;
57 'keypress': KeyboardEvent;
58 'keyup': KeyboardEvent;
59 'mousedown': MouseEvent;
60 'mouseenter': MouseEvent;
61 'mouseleave': MouseEvent;
62 'mousemove': MouseEvent;
63 'mouseout': MouseEvent;
64 'mouseover': MouseEvent;
65 'mouseup': MouseEvent;
66 'paste': ClipboardEvent;
67 'selectionchange': Event;
69 'touchend': TouchEvent;
70 'touchmove': TouchEvent;
71 'touchstart': TouchEvent;
72 'touchcancel': TouchEvent;
75 declare type EditorEvent<T> = NormalizedEvent<T>;
76 interface EventDispatcherSettings {
78 toggleEvent?: (name: string, state: boolean) => void | boolean;
79 beforeFire?: <T>(args: EditorEvent<T>) => void;
81 interface EventDispatcherConstructor<T extends NativeEventMap> {
82 readonly prototype: EventDispatcher<T>;
83 new (settings?: EventDispatcherSettings): EventDispatcher<T>;
84 isNative: (name: string) => boolean;
86 declare class EventDispatcher<T> {
87 static isNative(name: string): boolean;
88 private readonly settings;
89 private readonly scope;
90 private readonly toggleEvent;
92 constructor(settings?: Record<string, any>);
93 fire<K extends string, U extends MappedEvent<T, K>>(name: K, args?: U): EditorEvent<U>;
94 on<K extends string>(name: K, callback: false | ((event: EditorEvent<MappedEvent<T, K>>) => void), prepend?: boolean, extra?: {}): this;
95 off<K extends string>(name?: K, callback?: (event: EditorEvent<MappedEvent<T, K>>) => void): this;
96 once<K extends string>(name: K, callback: (event: EditorEvent<MappedEvent<T, K>>) => void, prepend?: boolean): this;
97 has(name: string): boolean;
99 declare const enum UndoLevelType {
100 Fragmented = "fragmented",
101 Complete = "complete"
103 interface UndoLevel {
108 beforeBookmark: Bookmark;
110 interface UndoManager {
113 add: (level?: UndoLevel, event?: EditorEvent<any>) => UndoLevel;
114 beforeChange: () => void;
115 undo: () => UndoLevel;
116 redo: () => UndoLevel;
119 hasUndo: () => boolean;
120 hasRedo: () => boolean;
121 transact: (callback: () => void) => UndoLevel;
122 ignore: (callback: () => void) => void;
123 extra: (callback1: () => void, callback2: () => void) => void;
125 declare type ArrayCallback$1<T, R> = (x: T, i: number, xs: ReadonlyArray<T>) => R;
126 declare type ObjCallback$1<T, R> = (value: T, key: string, obj: Record<string, T>) => R;
127 declare type ArrayCallback<T, R> = ArrayCallback$1<T, R>;
128 declare type ObjCallback<T, R> = ObjCallback$1<T, R>;
130 is: (obj: any, type: string) => boolean;
131 isArray: <T>(arr: any) => arr is Array<T>;
132 inArray: <T>(arr: ArrayLike<T>, value: T) => number;
134 <T>(arr: ArrayLike<T> | null | undefined, pred?: ArrayCallback<T, boolean>): T[];
135 <T>(arr: Record<string, T> | null | undefined, pred?: ObjCallback<T, boolean>): T[];
137 trim: (str: string) => string;
138 toArray: <T>(obj: ArrayLike<T>) => T[];
139 hasOwn: (obj: any, name: string) => boolean;
140 makeMap: <T>(items: ArrayLike<T> | string, delim?: string | RegExp, map?: Record<string, T | string>) => Record<string, T | string>;
142 <T>(arr: ArrayLike<T> | null | undefined, cb: ArrayCallback<T, void | boolean>, scope?: any): boolean;
143 <T>(obj: Record<string, T> | null | undefined, cb: ObjCallback<T, void | boolean>, scope?: any): boolean;
146 <T, R>(arr: ArrayLike<T> | null | undefined, cb: ArrayCallback<T, R>): R[];
147 <T, R>(obj: Record<string, T> | null | undefined, cb: ObjCallback<T, R>): R[];
149 extend: (obj: Object, ext: Object, ...objs: Object[]) => any;
150 create: (name: string, p: Object, root?: Object) => void;
151 walk: <T = any>(obj: T, f: Function, n?: keyof T, scope?: any) => void;
152 createNS: (name: string, o?: Object) => any;
153 resolve: (path: string, o?: Object) => any;
154 explode: (s: string, d?: string | RegExp) => string[];
155 _addCacheSuffix: (url: string) => string;
157 declare type EventUtilsCallback<T> = (event: EventUtilsEvent<T>) => void;
158 declare type EventUtilsEvent<T> = NormalizedEvent<T> & {
161 interface EventUtilsConstructor {
162 readonly prototype: EventUtils;
166 declare class EventUtils {
167 static Event: EventUtils;
169 events: Record<string, any>;
170 private readonly expando;
172 private hasMouseEnterLeave;
173 private mouseEnterLeave;
176 bind<K extends keyof HTMLElementEventMap>(target: any, name: K, callback: EventUtilsCallback<HTMLElementEventMap[K]>, scope?: any): EventUtilsCallback<HTMLElementEventMap[K]>;
177 bind<T = any>(target: any, names: string, callback: EventUtilsCallback<T>, scope?: any): EventUtilsCallback<T>;
178 unbind<K extends keyof HTMLElementEventMap>(target: any, name: K, callback?: EventUtilsCallback<HTMLElementEventMap[K]>): this;
179 unbind<T = any>(target: any, names: string, callback?: EventUtilsCallback<T>): this;
180 unbind(target: any): this;
181 fire(target: any, name: string, args?: {}): this;
182 clean(target: any): this;
184 cancel<T = any>(e: EventUtilsEvent<T>): boolean;
185 private executeHandlers;
187 declare type DomQuerySelector<T extends Node> = string | T | T[] | DomQuery<T>;
188 declare type DomQueryInitSelector<T extends Node> = DomQuerySelector<T> | Window;
190 get: <T extends Node>(elm: T) => string;
191 set: <T extends Node>($elm: DomQuery<T>, value: string | null) => void;
193 interface DomQueryConstructor {
194 readonly prototype: DomQuery;
195 attrHooks: Record<string, Hook>;
196 cssHooks: Record<string, Hook>;
201 createPseudo: Function;
202 match: Record<string, RegExp>;
204 find: Record<string, Function>;
205 relative: Record<string, {
209 preFilter: Record<string, Function>;
210 filter: Record<string, Function>;
211 pseudos: Record<string, Function>;
213 extend: Tools['extend'];
214 isArray: Tools['isArray'];
215 new <T extends Node = Node>(selector?: DomQueryInitSelector<T>, context?: Node): DomQuery<T>;
216 <T extends Node = Node>(selector?: DomQueryInitSelector<T>, context?: Node): DomQuery<T>;
217 overrideDefaults(callback: () => {
220 }): DomQueryConstructor;
221 makeArray<T>(object: T): T[];
222 inArray<T>(item: {}, array: T[]): number;
223 each<T>(obj: T[], callback: (i: number, value: T) => void): void;
224 each<T>(obj: T, callback: (key: string, obj: T[keyof T]) => void): void;
225 trim(str: string): string;
226 grep<T>(array: T[], callback: (item: any, i: number) => boolean): T[];
227 unique<T>(results: T[]): T[];
228 text(elem: Node): string;
229 contains(context: any, elem: Node): boolean;
230 filter(expr: string, elems: Node[], not?: boolean): any;
232 interface DomQuery<T extends Node = Node> extends ArrayLike<T> {
233 init: (selector?: DomQueryInitSelector<T>, context?: Node) => void;
237 add(items: Array<string | T> | DomQuery<T>, sort?: boolean): this;
238 addClass(className: string): this;
239 after(content: DomQuerySelector<T>): this;
240 append(content: DomQuerySelector<T>): this;
241 appendTo(val: DomQuerySelector<T>): this;
242 attr(name: string, value: string | boolean | number | null): this;
243 attr(attrs: Record<string, string | boolean | number | null>): this;
244 attr(name: string): string;
245 before(content: DomQuerySelector<T>): this;
246 children(selector?: string): DomQuery<Node & ChildNode>;
248 closest(selector: DomQuerySelector<T>): this;
249 contents(selector?: string): DomQuery<Node & ChildNode>;
250 css(name: string, value: string | number | null): this;
251 css(styles: Record<string, string | number | null>): this;
252 css(name: string): string;
253 each(callback: (i: number, value: T) => void): this;
255 eq(index: number): this;
256 filter(selector: string | ((i: number, item: any) => boolean)): this;
257 find<K extends keyof HTMLElementTagNameMap>(selector: K): DomQuery<HTMLElementTagNameMap[K]>;
258 find<T extends Node>(selector: string): DomQuery<T>;
260 hasClass(className: string): boolean;
262 html(value: string): this;
264 is(selector: string | ((i: number, item: any) => boolean)): boolean;
266 next(selector?: string): DomQuery<Node & ChildNode>;
267 nextUntil(selector: DomQuerySelector<T>, until?: string): DomQuery<Node & ChildNode>;
268 off<K extends keyof HTMLElementEventMap>(name: K, callback?: EventUtilsCallback<HTMLElementEventMap[K]>): this;
269 off<U>(name?: string, callback?: EventUtilsCallback<U>): this;
270 offset(offset?: {}): {} | this;
271 on<K extends keyof HTMLElementEventMap>(name: K, callback: EventUtilsCallback<HTMLElementEventMap[K]>): this;
272 on<U>(name: string, callback: EventUtilsCallback<U>): this;
273 parent(selector?: string): DomQuery<Node>;
274 parents(selector?: string): DomQuery<Node>;
275 parentsUntil(selector: DomQuerySelector<T>, filter?: string): DomQuery<Node>;
276 prepend(content: DomQuerySelector<T>): this;
277 prependTo(val: DomQuerySelector<T>): this;
278 prev(selector?: string): DomQuery<Node & ChildNode>;
279 prevUntil(selector: DomQuerySelector<T>, filter?: string): DomQuery<Node & ChildNode>;
280 prop(name: string, value: string): this;
281 prop(props: Record<string, string | number>): this;
282 prop(name: string): string;
283 push(...items: T[]): number;
285 removeAttr(name: string): this;
286 removeClass(className: string): this;
287 replaceWith(content: DomQuerySelector<T>): this;
289 slice(start: number, end?: number): this;
290 splice(start: number, deleteCount?: number): T[];
291 sort(compareFn?: (a: T, b: T) => number): T[];
292 text(value: string): DomQuery;
295 toggleClass(className: string, state?: boolean): this;
296 trigger(name: string | {
300 wrap(content: DomQuerySelector<T>): this;
301 wrapAll(content: DomQuerySelector<T>): this;
302 wrapInner(content: string): this;
304 declare type SchemaType = 'html4' | 'html5' | 'html5-strict';
305 interface SchemaSettings {
306 block_elements?: string;
307 boolean_attributes?: string;
308 custom_elements?: string;
309 extended_valid_elements?: string;
310 invalid_elements?: string;
311 invalid_styles?: string | Record<string, string>;
312 move_caret_before_on_enter_elements?: string;
313 non_empty_elements?: string;
315 self_closing_elements?: string;
316 short_ended_elements?: string;
318 text_block_elements?: string;
319 text_inline_elements?: string;
320 valid_children?: string;
321 valid_classes?: string | Record<string, string>;
322 valid_elements?: string;
323 valid_styles?: string | Record<string, string>;
324 verify_html?: boolean;
325 whitespace_elements?: string;
327 interface Attribute {
329 defaultValue?: string;
330 forcedValue?: string;
333 interface DefaultAttribute {
337 interface AttributePattern {
338 defaultValue?: string;
339 forcedValue?: string;
342 validValues?: Record<string, string>;
344 interface ElementRule {
345 attributes: Record<string, Attribute>;
346 attributesDefault?: DefaultAttribute[];
347 attributesForced?: DefaultAttribute[];
348 attributesOrder: string[];
349 attributePatterns?: AttributePattern[];
350 attributesRequired?: string[];
352 removeEmpty?: boolean;
353 removeEmptyAttrs?: boolean;
355 interface SchemaElement extends ElementRule {
357 parentsRequired?: string[];
360 interface SchemaMap {
363 interface SchemaRegExpMap {
364 [name: string]: RegExp;
367 children: Record<string, SchemaMap>;
368 elements: Record<string, SchemaElement>;
369 getValidStyles: () => Record<string, string[]> | undefined;
370 getValidClasses: () => Record<string, SchemaMap> | undefined;
371 getBlockElements: () => SchemaMap;
372 getInvalidStyles: () => Record<string, SchemaMap> | undefined;
373 getShortEndedElements: () => SchemaMap;
374 getTextBlockElements: () => SchemaMap;
375 getTextInlineElements: () => SchemaMap;
376 getBoolAttrs: () => SchemaMap;
377 getElementRule: (name: string) => SchemaElement | undefined;
378 getSelfClosingElements: () => SchemaMap;
379 getNonEmptyElements: () => SchemaMap;
380 getMoveCaretBeforeOnEnterElements: () => SchemaMap;
381 getWhiteSpaceElements: () => SchemaMap;
382 getSpecialElements: () => SchemaRegExpMap;
383 isValidChild: (name: string, child: string) => boolean;
384 isValid: (name: string, attr?: string) => boolean;
385 getCustomElements: () => SchemaMap;
386 addValidElements: (validElements: string) => void;
387 setValidElements: (validElements: string) => void;
388 addCustomElements: (customElements: string) => void;
389 addValidChildren: (validChildren: any) => void;
391 declare type Attributes$1 = Array<{
395 map: Record<string, string>;
397 interface AstNodeConstructor {
398 readonly prototype: AstNode;
399 new (name: string, type: number): AstNode;
400 create(name: string, attrs?: Record<string, string>): AstNode;
402 declare class AstNode {
403 static create(name: string, attrs?: Record<string, string>): AstNode;
406 attributes?: Attributes$1;
408 shortEnded?: boolean;
410 firstChild?: AstNode;
416 constructor(name: string, type: number);
417 replace(node: AstNode): AstNode;
418 attr(name: string, value: string | null): AstNode | undefined;
419 attr(name: Record<string, string | null>): AstNode | undefined;
420 attr(name: string): string | undefined;
422 wrap(wrapper: AstNode): AstNode;
425 append(node: AstNode): AstNode;
426 insert(node: AstNode, refNode: AstNode, before?: boolean): AstNode;
427 getAll(name: string): AstNode[];
428 children(): AstNode[];
430 isEmpty(elements: SchemaMap, whitespace?: SchemaMap, predicate?: (node: AstNode) => boolean): boolean;
431 walk(prev?: boolean): AstNode;
433 declare type Content = string | AstNode;
434 declare type ContentFormat = 'raw' | 'text' | 'html' | 'tree';
435 interface GetContentArgs {
436 format?: ContentFormat;
443 interface SetContentArgs {
448 no_selection?: boolean;
450 interface BlobInfoData {
462 filename: () => string;
464 base64: () => string;
465 blobUri: () => string;
466 uri: () => string | undefined;
468 interface BlobCache {
469 create: (o: string | BlobInfoData, blob?: Blob, base64?: string, name?: string, filename?: string) => BlobInfo;
470 add: (blobInfo: BlobInfo) => void;
471 get: (id: string) => BlobInfo | undefined;
472 getByUri: (blobUri: string) => BlobInfo | undefined;
473 getByData: (base64: string, type: string) => BlobInfo | undefined;
474 findFirst: (predicate: (blobInfo: BlobInfo) => boolean) => BlobInfo | undefined;
475 removeByUri: (blobUri: string) => void;
478 interface NotificationManagerImpl {
479 open: (spec: NotificationSpec, closeCallback?: () => void) => NotificationApi;
480 close: <T extends NotificationApi>(notification: T) => void;
481 reposition: <T extends NotificationApi>(notifications: T[]) => void;
482 getArgs: <T extends NotificationApi>(notification: T) => NotificationSpec;
484 interface NotificationSpec {
485 type?: 'info' | 'warning' | 'error' | 'success';
488 progressBar?: boolean;
490 closeButton?: boolean;
492 interface NotificationApi {
495 value: (percent: number) => void;
497 text: (text: string) => void;
498 moveTo: (x: number, y: number) => void;
499 moveRel: (element: Element, rel: 'tc-tc' | 'bc-bc' | 'bc-tc' | 'tc-bc' | 'banner') => void;
500 getEl: () => HTMLElement;
501 settings: NotificationSpec;
503 interface NotificationManager {
504 open: (spec: NotificationSpec) => NotificationApi;
506 getNotifications: () => NotificationApi[];
508 interface UploadFailureOptions {
511 declare type UploadHandler = (blobInfo: BlobInfo, success: (url: string) => void, failure: (err: string, options?: UploadFailureOptions) => void, progress?: (percent: number) => void) => void;
512 interface UploadResult$2 {
517 options: UploadFailureOptions;
521 interface RangeLikeObject {
522 startContainer: Node;
527 declare type ApplyFormat = BlockFormat | InlineFormat | SelectorFormat;
528 declare type RemoveFormat = RemoveBlockFormat | RemoveInlineFormat | RemoveSelectorFormat;
529 declare type Format = ApplyFormat | RemoveFormat;
530 declare type Formats = Record<string, Format | Format[]>;
531 declare type FormatAttrOrStyleValue = string | ((vars?: FormatVars) => string);
532 declare type FormatVars = Record<string, string | null>;
533 interface BaseFormat<T> {
534 ceFalseOverride?: boolean;
535 classes?: string | string[];
541 block_expand?: boolean;
542 onmatch?: (node: Node, fmt: T, itemName: string) => boolean;
543 remove?: 'none' | 'empty' | 'all';
544 remove_similar?: boolean;
547 preserve_attributes?: string[];
561 interface CommonFormat<T> extends BaseFormat<T> {
562 attributes?: Record<string, FormatAttrOrStyleValue>;
563 styles?: Record<string, FormatAttrOrStyleValue>;
565 preview?: string | false;
566 onformat?: (elm: Node, fmt: T, vars?: FormatVars, node?: Node | RangeLikeObject) => void;
567 clear_child_styles?: boolean;
568 merge_siblings?: boolean;
569 merge_with_parents?: boolean;
570 defaultBlock?: string;
572 interface BlockFormat extends Block, CommonFormat<BlockFormat> {
574 interface InlineFormat extends Inline, CommonFormat<InlineFormat> {
576 interface SelectorFormat extends Selector, CommonFormat<SelectorFormat> {
578 interface CommonRemoveFormat<T> extends BaseFormat<T> {
579 attributes?: string[] | Record<string, FormatAttrOrStyleValue>;
580 styles?: string[] | Record<string, FormatAttrOrStyleValue>;
582 interface RemoveBlockFormat extends Block, CommonRemoveFormat<RemoveBlockFormat> {
584 interface RemoveInlineFormat extends Inline, CommonRemoveFormat<RemoveInlineFormat> {
586 interface RemoveSelectorFormat extends Selector, CommonRemoveFormat<RemoveSelectorFormat> {
588 type Format_d_Formats = Formats;
589 type Format_d_Format = Format;
590 type Format_d_ApplyFormat = ApplyFormat;
591 type Format_d_BlockFormat = BlockFormat;
592 type Format_d_InlineFormat = InlineFormat;
593 type Format_d_SelectorFormat = SelectorFormat;
594 type Format_d_RemoveFormat = RemoveFormat;
595 type Format_d_RemoveBlockFormat = RemoveBlockFormat;
596 type Format_d_RemoveInlineFormat = RemoveInlineFormat;
597 type Format_d_RemoveSelectorFormat = RemoveSelectorFormat;
598 declare namespace Format_d {
599 export { Format_d_Formats as Formats, Format_d_Format as Format, Format_d_ApplyFormat as ApplyFormat, Format_d_BlockFormat as BlockFormat, Format_d_InlineFormat as InlineFormat, Format_d_SelectorFormat as SelectorFormat, Format_d_RemoveFormat as RemoveFormat, Format_d_RemoveBlockFormat as RemoveBlockFormat, Format_d_RemoveInlineFormat as RemoveInlineFormat, Format_d_RemoveSelectorFormat as RemoveSelectorFormat, };
601 declare type StyleFormat = BlockStyleFormat | InlineStyleFormat | SelectorStyleFormat;
602 declare type AllowedFormat = Separator | FormatReference | StyleFormat | NestedFormatting;
603 interface Separator {
606 interface FormatReference {
611 interface NestedFormatting {
613 items: Array<FormatReference | StyleFormat>;
615 interface CommonStyleFormat {
620 interface BlockStyleFormat extends BlockFormat, CommonStyleFormat {
622 interface InlineStyleFormat extends InlineFormat, CommonStyleFormat {
624 interface SelectorStyleFormat extends SelectorFormat, CommonStyleFormat {
626 interface AlertBannerSpec {
628 level: 'info' | 'warn' | 'error' | 'success';
633 interface ButtonSpec {
640 borderless?: boolean;
642 interface CheckboxSpec {
648 interface FormComponentSpec {
652 interface FormComponentWithLabelSpec extends FormComponentSpec {
655 interface CollectionSpec extends FormComponentWithLabelSpec {
658 interface ColorInputSpec extends FormComponentWithLabelSpec {
661 interface ColorPickerSpec extends FormComponentWithLabelSpec {
664 interface CustomEditorInit {
665 setValue: (value: string) => void;
666 getValue: () => string;
669 declare type CustomEditorInitFn = (elm: HTMLElement, settings: any) => Promise<CustomEditorInit>;
670 interface CustomEditorOldSpec extends FormComponentSpec {
671 type: 'customeditor';
673 init: (e: HTMLElement) => Promise<CustomEditorInit>;
675 interface CustomEditorNewSpec extends FormComponentSpec {
676 type: 'customeditor';
682 declare type CustomEditorSpec = CustomEditorOldSpec | CustomEditorNewSpec;
683 interface DropZoneSpec extends FormComponentWithLabelSpec {
689 items: BodyComponentSpec[];
691 interface HtmlPanelSpec {
694 presets?: 'presentation' | 'document';
696 interface IframeSpec extends FormComponentWithLabelSpec {
700 interface ImageToolsState {
704 interface ImageToolsSpec extends FormComponentWithLabelSpec {
706 currentState: ImageToolsState;
708 interface InputSpec extends FormComponentWithLabelSpec {
711 placeholder?: string;
715 interface LabelSpec {
718 items: BodyComponentSpec[];
720 interface ListBoxSingleItemSpec {
724 interface ListBoxNestedItemSpec {
726 items: ListBoxItemSpec[];
728 declare type ListBoxItemSpec = ListBoxNestedItemSpec | ListBoxSingleItemSpec;
729 interface ListBoxSpec extends FormComponentWithLabelSpec {
731 items: ListBoxItemSpec[];
734 interface PanelSpec {
737 items: BodyComponentSpec[];
739 interface SelectBoxItemSpec {
743 interface SelectBoxSpec extends FormComponentWithLabelSpec {
745 items: SelectBoxItemSpec[];
749 interface SizeInputSpec extends FormComponentWithLabelSpec {
754 interface TableSpec {
759 interface TextAreaSpec extends FormComponentWithLabelSpec {
761 placeholder?: string;
765 interface UrlInputSpec extends FormComponentWithLabelSpec {
767 filetype?: 'image' | 'media' | 'file';
770 declare type BodyComponentSpec = BarSpec | ButtonSpec | CheckboxSpec | TextAreaSpec | InputSpec | ListBoxSpec | SelectBoxSpec | SizeInputSpec | IframeSpec | HtmlPanelSpec | UrlInputSpec | DropZoneSpec | ColorInputSpec | GridSpec | ColorPickerSpec | ImageToolsSpec | AlertBannerSpec | CollectionSpec | LabelSpec | TableSpec | PanelSpec | CustomEditorSpec;
773 items: BodyComponentSpec[];
775 interface CommonMenuItemSpec {
779 meta?: Record<string, any>;
782 interface CommonMenuItemInstanceApi {
783 isDisabled: () => boolean;
784 setDisabled: (state: boolean) => void;
786 interface DialogToggleMenuItemSpec extends CommonMenuItemSpec {
787 type?: 'togglemenuitem';
790 declare type DialogFooterMenuButtonItemSpec = DialogToggleMenuItemSpec;
791 interface BaseDialogFooterButtonSpec {
793 align?: 'start' | 'end';
798 interface DialogFooterNormalButtonSpec extends BaseDialogFooterButtonSpec {
799 type: 'submit' | 'cancel' | 'custom';
802 interface DialogFooterMenuButtonSpec extends BaseDialogFooterButtonSpec {
807 items: DialogFooterMenuButtonItemSpec[];
809 declare type DialogFooterButtonSpec = DialogFooterNormalButtonSpec | DialogFooterMenuButtonSpec;
813 items: BodyComponentSpec[];
815 interface TabPanelSpec {
819 declare type DialogDataItem = any;
820 declare type DialogData = Record<string, DialogDataItem>;
821 interface DialogInstanceApi<T extends DialogData> {
823 setData: (data: Partial<T>) => void;
824 disable: (name: string) => void;
825 focus: (name: string) => void;
826 showTab: (name: string) => void;
827 redial: (nu: DialogSpec<T>) => void;
828 enable: (name: string) => void;
829 block: (msg: string) => void;
833 interface DialogActionDetails {
837 interface DialogChangeDetails<T> {
840 interface DialogTabChangeDetails {
844 declare type DialogActionHandler<T> = (api: DialogInstanceApi<T>, details: DialogActionDetails) => void;
845 declare type DialogChangeHandler<T> = (api: DialogInstanceApi<T>, details: DialogChangeDetails<T>) => void;
846 declare type DialogSubmitHandler<T> = (api: DialogInstanceApi<T>) => void;
847 declare type DialogCloseHandler = () => void;
848 declare type DialogCancelHandler<T> = (api: DialogInstanceApi<T>) => void;
849 declare type DialogTabChangeHandler<T> = (api: DialogInstanceApi<T>, details: DialogTabChangeDetails) => void;
850 declare type DialogSize = 'normal' | 'medium' | 'large';
851 interface DialogSpec<T extends DialogData> {
854 body: TabPanelSpec | PanelSpec;
855 buttons: DialogFooterButtonSpec[];
857 onAction?: DialogActionHandler<T>;
858 onChange?: DialogChangeHandler<T>;
859 onSubmit?: DialogSubmitHandler<T>;
860 onClose?: DialogCloseHandler;
861 onCancel?: DialogCancelHandler<T>;
862 onTabChange?: DialogTabChangeHandler<T>;
864 interface UrlDialogInstanceApi {
865 block: (msg: string) => void;
868 sendMessage: (msg: any) => void;
870 interface UrlDialogActionDetails {
874 interface UrlDialogMessage {
878 declare type UrlDialogActionHandler = (api: UrlDialogInstanceApi, actions: UrlDialogActionDetails) => void;
879 declare type UrlDialogCloseHandler = () => void;
880 declare type UrlDialogCancelHandler = (api: UrlDialogInstanceApi) => void;
881 declare type UrlDialogMessageHandler = (api: UrlDialogInstanceApi, message: UrlDialogMessage) => void;
882 interface UrlDialogFooterButtonSpec extends DialogFooterNormalButtonSpec {
883 type: 'cancel' | 'custom';
885 interface UrlDialogSpec {
890 buttons?: UrlDialogFooterButtonSpec[];
891 onAction?: UrlDialogActionHandler;
892 onClose?: UrlDialogCloseHandler;
893 onCancel?: UrlDialogCancelHandler;
894 onMessage?: UrlDialogMessageHandler;
896 declare type CardContainerDirection = 'vertical' | 'horizontal';
897 declare type CardContainerAlign = 'left' | 'right';
898 declare type CardContainerValign = 'top' | 'middle' | 'bottom';
899 interface CardContainerSpec {
900 type: 'cardcontainer';
901 items: CardItemSpec[];
902 direction?: CardContainerDirection;
903 align?: CardContainerAlign;
904 valign?: CardContainerValign;
906 interface CardImageSpec {
912 interface CardTextSpec {
918 declare type CardItemSpec = CardContainerSpec | CardImageSpec | CardTextSpec;
919 interface CardMenuItemInstanceApi extends CommonMenuItemInstanceApi {
921 interface CardMenuItemSpec extends Omit<CommonMenuItemSpec, 'text' | 'shortcut'> {
922 type: 'cardmenuitem';
924 items: CardItemSpec[];
925 onSetup?: (api: CardMenuItemInstanceApi) => (api: CardMenuItemInstanceApi) => void;
926 onAction?: (api: CardMenuItemInstanceApi) => void;
928 interface SeparatorMenuItemSpec {
932 declare type ColumnTypes$1 = number | 'auto';
933 declare type SeparatorItemSpec = SeparatorMenuItemSpec;
934 interface AutocompleterItemSpec {
935 type?: 'autocompleteitem';
939 meta?: Record<string, any>;
941 declare type AutocompleterContents = SeparatorItemSpec | AutocompleterItemSpec | CardMenuItemSpec;
942 interface AutocompleterSpec {
943 type?: 'autocompleter';
946 columns?: ColumnTypes$1;
947 matches?: (rng: Range, text: string, pattern: string) => boolean;
948 fetch: (pattern: string, maxResults: number, fetchOptions: Record<string, any>) => Promise<AutocompleterContents[]>;
949 onAction: (autocompleterApi: AutocompleterInstanceApi, rng: Range, value: string, meta: Record<string, any>) => void;
951 highlightOn?: string[];
953 interface AutocompleterInstanceApi {
955 reload: (fetchOptions: Record<string, any>) => void;
957 declare type ContextPosition = 'node' | 'selection' | 'line';
958 declare type ContextScope = 'node' | 'editor';
959 interface ContextBarSpec {
960 predicate?: (elem: Element) => boolean;
961 position?: ContextPosition;
962 scope?: ContextScope;
964 interface BaseToolbarButtonSpec<I extends BaseToolbarButtonInstanceApi> {
969 onSetup?: (api: I) => (api: I) => void;
971 interface BaseToolbarButtonInstanceApi {
972 isDisabled: () => boolean;
973 setDisabled: (state: boolean) => void;
975 interface ToolbarButtonSpec extends BaseToolbarButtonSpec<ToolbarButtonInstanceApi> {
977 onAction: (api: ToolbarButtonInstanceApi) => void;
979 interface ToolbarButtonInstanceApi extends BaseToolbarButtonInstanceApi {
981 interface BaseToolbarToggleButtonSpec<I extends BaseToolbarButtonInstanceApi> extends BaseToolbarButtonSpec<I> {
984 interface BaseToolbarToggleButtonInstanceApi extends BaseToolbarButtonInstanceApi {
985 isActive: () => boolean;
986 setActive: (state: boolean) => void;
988 interface ToolbarToggleButtonSpec extends BaseToolbarToggleButtonSpec<ToolbarToggleButtonInstanceApi> {
989 type?: 'togglebutton';
990 onAction: (api: ToolbarToggleButtonInstanceApi) => void;
992 interface ToolbarToggleButtonInstanceApi extends BaseToolbarToggleButtonInstanceApi {
994 interface ContextFormLaunchButtonApi extends BaseToolbarButtonSpec<BaseToolbarButtonInstanceApi> {
995 type: 'contextformbutton';
997 interface ContextFormLaunchToggleButtonSpec extends BaseToolbarToggleButtonSpec<BaseToolbarToggleButtonInstanceApi> {
998 type: 'contextformtogglebutton';
1000 interface ContextFormButtonInstanceApi extends BaseToolbarButtonInstanceApi {
1002 interface ContextFormToggleButtonInstanceApi extends BaseToolbarToggleButtonInstanceApi {
1004 interface ContextFormButtonSpec extends BaseToolbarButtonSpec<ContextFormButtonInstanceApi> {
1005 type?: 'contextformbutton';
1007 onAction: (formApi: ContextFormInstanceApi, api: ContextFormButtonInstanceApi) => void;
1009 interface ContextFormToggleButtonSpec extends BaseToolbarToggleButtonSpec<ContextFormToggleButtonInstanceApi> {
1010 type?: 'contextformtogglebutton';
1011 onAction: (formApi: ContextFormInstanceApi, buttonApi: ContextFormToggleButtonInstanceApi) => void;
1014 interface ContextFormInstanceApi {
1016 getValue: () => string;
1018 interface ContextFormSpec extends ContextBarSpec {
1019 type?: 'contextform';
1020 initValue?: () => string;
1022 launch?: ContextFormLaunchButtonApi | ContextFormLaunchToggleButtonSpec;
1023 commands: Array<ContextFormToggleButtonSpec | ContextFormButtonSpec>;
1025 interface ContextToolbarSpec extends ContextBarSpec {
1026 type?: 'contexttoolbar';
1029 interface ChoiceMenuItemSpec extends CommonMenuItemSpec {
1030 type?: 'choiceitem';
1033 interface ChoiceMenuItemInstanceApi extends CommonMenuItemInstanceApi {
1034 isActive: () => boolean;
1035 setActive: (state: boolean) => void;
1037 interface ContextMenuItem extends CommonMenuItemSpec {
1041 onAction: () => void;
1043 interface ContextSubMenu extends CommonMenuItemSpec {
1047 getSubmenuItems: () => string | Array<ContextMenuContents>;
1049 declare type ContextMenuContents = string | ContextMenuItem | SeparatorMenuItemSpec | ContextSubMenu;
1050 interface ContextMenuApi {
1051 update: (element: Element) => string | Array<ContextMenuContents>;
1053 interface FancyActionArgsMap {
1062 interface BaseFancyMenuItemSpec<T extends keyof FancyActionArgsMap> {
1063 type: 'fancymenuitem';
1065 initData?: Record<string, unknown>;
1066 onAction?: (data: FancyActionArgsMap[T]) => void;
1068 interface InsertTableMenuItemSpec extends BaseFancyMenuItemSpec<'inserttable'> {
1069 fancytype: 'inserttable';
1072 interface ColorSwatchMenuItemSpec extends BaseFancyMenuItemSpec<'colorswatch'> {
1073 fancytype: 'colorswatch';
1075 allowCustomColors?: boolean;
1076 colors: ChoiceMenuItemSpec[];
1079 declare type FancyMenuItemSpec = InsertTableMenuItemSpec | ColorSwatchMenuItemSpec;
1080 interface MenuItemSpec extends CommonMenuItemSpec {
1083 onSetup?: (api: MenuItemInstanceApi) => (api: MenuItemInstanceApi) => void;
1084 onAction?: (api: MenuItemInstanceApi) => void;
1086 interface MenuItemInstanceApi extends CommonMenuItemInstanceApi {
1088 declare type NestedMenuItemContents = string | MenuItemSpec | NestedMenuItemSpec | ToggleMenuItemSpec | SeparatorMenuItemSpec | FancyMenuItemSpec;
1089 interface NestedMenuItemSpec extends CommonMenuItemSpec {
1090 type?: 'nestedmenuitem';
1092 getSubmenuItems: () => string | Array<NestedMenuItemContents>;
1093 onSetup?: (api: NestedMenuItemInstanceApi) => (api: NestedMenuItemInstanceApi) => void;
1095 interface NestedMenuItemInstanceApi extends CommonMenuItemInstanceApi {
1097 interface ToggleMenuItemSpec extends CommonMenuItemSpec {
1098 type?: 'togglemenuitem';
1101 onSetup?: (api: ToggleMenuItemInstanceApi) => void;
1102 onAction: (api: ToggleMenuItemInstanceApi) => void;
1104 interface ToggleMenuItemInstanceApi extends CommonMenuItemInstanceApi {
1105 isActive: () => boolean;
1106 setActive: (state: boolean) => void;
1108 type PublicDialog_d_AlertBannerSpec = AlertBannerSpec;
1109 type PublicDialog_d_BarSpec = BarSpec;
1110 type PublicDialog_d_BodyComponentSpec = BodyComponentSpec;
1111 type PublicDialog_d_ButtonSpec = ButtonSpec;
1112 type PublicDialog_d_CheckboxSpec = CheckboxSpec;
1113 type PublicDialog_d_CollectionSpec = CollectionSpec;
1114 type PublicDialog_d_ColorInputSpec = ColorInputSpec;
1115 type PublicDialog_d_ColorPickerSpec = ColorPickerSpec;
1116 type PublicDialog_d_CustomEditorSpec = CustomEditorSpec;
1117 type PublicDialog_d_CustomEditorInit = CustomEditorInit;
1118 type PublicDialog_d_CustomEditorInitFn = CustomEditorInitFn;
1119 type PublicDialog_d_DialogData = DialogData;
1120 type PublicDialog_d_DialogSize = DialogSize;
1121 type PublicDialog_d_DialogSpec<_0> = DialogSpec<_0>;
1122 type PublicDialog_d_DialogInstanceApi<_0> = DialogInstanceApi<_0>;
1123 type PublicDialog_d_DialogFooterButtonSpec = DialogFooterButtonSpec;
1124 type PublicDialog_d_DialogActionDetails = DialogActionDetails;
1125 type PublicDialog_d_DialogChangeDetails<_0> = DialogChangeDetails<_0>;
1126 type PublicDialog_d_DialogTabChangeDetails = DialogTabChangeDetails;
1127 type PublicDialog_d_DropZoneSpec = DropZoneSpec;
1128 type PublicDialog_d_GridSpec = GridSpec;
1129 type PublicDialog_d_HtmlPanelSpec = HtmlPanelSpec;
1130 type PublicDialog_d_IframeSpec = IframeSpec;
1131 type PublicDialog_d_ImageToolsSpec = ImageToolsSpec;
1132 type PublicDialog_d_InputSpec = InputSpec;
1133 type PublicDialog_d_LabelSpec = LabelSpec;
1134 type PublicDialog_d_ListBoxSpec = ListBoxSpec;
1135 type PublicDialog_d_ListBoxItemSpec = ListBoxItemSpec;
1136 type PublicDialog_d_ListBoxNestedItemSpec = ListBoxNestedItemSpec;
1137 type PublicDialog_d_ListBoxSingleItemSpec = ListBoxSingleItemSpec;
1138 type PublicDialog_d_PanelSpec = PanelSpec;
1139 type PublicDialog_d_SelectBoxSpec = SelectBoxSpec;
1140 type PublicDialog_d_SelectBoxItemSpec = SelectBoxItemSpec;
1141 type PublicDialog_d_SizeInputSpec = SizeInputSpec;
1142 type PublicDialog_d_TableSpec = TableSpec;
1143 type PublicDialog_d_TabSpec = TabSpec;
1144 type PublicDialog_d_TabPanelSpec = TabPanelSpec;
1145 type PublicDialog_d_TextAreaSpec = TextAreaSpec;
1146 type PublicDialog_d_UrlInputSpec = UrlInputSpec;
1147 type PublicDialog_d_UrlDialogSpec = UrlDialogSpec;
1148 type PublicDialog_d_UrlDialogFooterButtonSpec = UrlDialogFooterButtonSpec;
1149 type PublicDialog_d_UrlDialogInstanceApi = UrlDialogInstanceApi;
1150 type PublicDialog_d_UrlDialogActionDetails = UrlDialogActionDetails;
1151 type PublicDialog_d_UrlDialogMessage = UrlDialogMessage;
1152 declare namespace PublicDialog_d {
1153 export { PublicDialog_d_AlertBannerSpec as AlertBannerSpec, PublicDialog_d_BarSpec as BarSpec, PublicDialog_d_BodyComponentSpec as BodyComponentSpec, PublicDialog_d_ButtonSpec as ButtonSpec, PublicDialog_d_CheckboxSpec as CheckboxSpec, PublicDialog_d_CollectionSpec as CollectionSpec, PublicDialog_d_ColorInputSpec as ColorInputSpec, PublicDialog_d_ColorPickerSpec as ColorPickerSpec, PublicDialog_d_CustomEditorSpec as CustomEditorSpec, PublicDialog_d_CustomEditorInit as CustomEditorInit, PublicDialog_d_CustomEditorInitFn as CustomEditorInitFn, PublicDialog_d_DialogData as DialogData, PublicDialog_d_DialogSize as DialogSize, PublicDialog_d_DialogSpec as DialogSpec, PublicDialog_d_DialogInstanceApi as DialogInstanceApi, PublicDialog_d_DialogFooterButtonSpec as DialogFooterButtonSpec, PublicDialog_d_DialogActionDetails as DialogActionDetails, PublicDialog_d_DialogChangeDetails as DialogChangeDetails, PublicDialog_d_DialogTabChangeDetails as DialogTabChangeDetails, PublicDialog_d_DropZoneSpec as DropZoneSpec, PublicDialog_d_GridSpec as GridSpec, PublicDialog_d_HtmlPanelSpec as HtmlPanelSpec, PublicDialog_d_IframeSpec as IframeSpec, PublicDialog_d_ImageToolsSpec as ImageToolsSpec, PublicDialog_d_InputSpec as InputSpec, PublicDialog_d_LabelSpec as LabelSpec, PublicDialog_d_ListBoxSpec as ListBoxSpec, PublicDialog_d_ListBoxItemSpec as ListBoxItemSpec, PublicDialog_d_ListBoxNestedItemSpec as ListBoxNestedItemSpec, PublicDialog_d_ListBoxSingleItemSpec as ListBoxSingleItemSpec, PublicDialog_d_PanelSpec as PanelSpec, PublicDialog_d_SelectBoxSpec as SelectBoxSpec, PublicDialog_d_SelectBoxItemSpec as SelectBoxItemSpec, PublicDialog_d_SizeInputSpec as SizeInputSpec, PublicDialog_d_TableSpec as TableSpec, PublicDialog_d_TabSpec as TabSpec, PublicDialog_d_TabPanelSpec as TabPanelSpec, PublicDialog_d_TextAreaSpec as TextAreaSpec, PublicDialog_d_UrlInputSpec as UrlInputSpec, PublicDialog_d_UrlDialogSpec as UrlDialogSpec, PublicDialog_d_UrlDialogFooterButtonSpec as UrlDialogFooterButtonSpec, PublicDialog_d_UrlDialogInstanceApi as UrlDialogInstanceApi, PublicDialog_d_UrlDialogActionDetails as UrlDialogActionDetails, PublicDialog_d_UrlDialogMessage as UrlDialogMessage, };
1155 type PublicInlineContent_d_AutocompleterSpec = AutocompleterSpec;
1156 type PublicInlineContent_d_AutocompleterItemSpec = AutocompleterItemSpec;
1157 type PublicInlineContent_d_AutocompleterContents = AutocompleterContents;
1158 type PublicInlineContent_d_AutocompleterInstanceApi = AutocompleterInstanceApi;
1159 type PublicInlineContent_d_ContextPosition = ContextPosition;
1160 type PublicInlineContent_d_ContextScope = ContextScope;
1161 type PublicInlineContent_d_ContextFormSpec = ContextFormSpec;
1162 type PublicInlineContent_d_ContextFormInstanceApi = ContextFormInstanceApi;
1163 type PublicInlineContent_d_ContextFormButtonSpec = ContextFormButtonSpec;
1164 type PublicInlineContent_d_ContextFormButtonInstanceApi = ContextFormButtonInstanceApi;
1165 type PublicInlineContent_d_ContextFormToggleButtonSpec = ContextFormToggleButtonSpec;
1166 type PublicInlineContent_d_ContextFormToggleButtonInstanceApi = ContextFormToggleButtonInstanceApi;
1167 type PublicInlineContent_d_ContextToolbarSpec = ContextToolbarSpec;
1168 type PublicInlineContent_d_SeparatorItemSpec = SeparatorItemSpec;
1169 declare namespace PublicInlineContent_d {
1170 export { PublicInlineContent_d_AutocompleterSpec as AutocompleterSpec, PublicInlineContent_d_AutocompleterItemSpec as AutocompleterItemSpec, PublicInlineContent_d_AutocompleterContents as AutocompleterContents, PublicInlineContent_d_AutocompleterInstanceApi as AutocompleterInstanceApi, PublicInlineContent_d_ContextPosition as ContextPosition, PublicInlineContent_d_ContextScope as ContextScope, PublicInlineContent_d_ContextFormSpec as ContextFormSpec, PublicInlineContent_d_ContextFormInstanceApi as ContextFormInstanceApi, PublicInlineContent_d_ContextFormButtonSpec as ContextFormButtonSpec, PublicInlineContent_d_ContextFormButtonInstanceApi as ContextFormButtonInstanceApi, PublicInlineContent_d_ContextFormToggleButtonSpec as ContextFormToggleButtonSpec, PublicInlineContent_d_ContextFormToggleButtonInstanceApi as ContextFormToggleButtonInstanceApi, PublicInlineContent_d_ContextToolbarSpec as ContextToolbarSpec, PublicInlineContent_d_SeparatorItemSpec as SeparatorItemSpec, };
1172 type PublicMenu_d_MenuItemSpec = MenuItemSpec;
1173 type PublicMenu_d_MenuItemInstanceApi = MenuItemInstanceApi;
1174 type PublicMenu_d_NestedMenuItemContents = NestedMenuItemContents;
1175 type PublicMenu_d_NestedMenuItemSpec = NestedMenuItemSpec;
1176 type PublicMenu_d_NestedMenuItemInstanceApi = NestedMenuItemInstanceApi;
1177 type PublicMenu_d_FancyMenuItemSpec = FancyMenuItemSpec;
1178 type PublicMenu_d_ColorSwatchMenuItemSpec = ColorSwatchMenuItemSpec;
1179 type PublicMenu_d_InsertTableMenuItemSpec = InsertTableMenuItemSpec;
1180 type PublicMenu_d_ToggleMenuItemSpec = ToggleMenuItemSpec;
1181 type PublicMenu_d_ToggleMenuItemInstanceApi = ToggleMenuItemInstanceApi;
1182 type PublicMenu_d_ChoiceMenuItemSpec = ChoiceMenuItemSpec;
1183 type PublicMenu_d_ChoiceMenuItemInstanceApi = ChoiceMenuItemInstanceApi;
1184 type PublicMenu_d_SeparatorMenuItemSpec = SeparatorMenuItemSpec;
1185 type PublicMenu_d_ContextMenuApi = ContextMenuApi;
1186 type PublicMenu_d_ContextMenuContents = ContextMenuContents;
1187 type PublicMenu_d_ContextMenuItem = ContextMenuItem;
1188 type PublicMenu_d_ContextSubMenu = ContextSubMenu;
1189 type PublicMenu_d_CardMenuItemSpec = CardMenuItemSpec;
1190 type PublicMenu_d_CardMenuItemInstanceApi = CardMenuItemInstanceApi;
1191 type PublicMenu_d_CardItemSpec = CardItemSpec;
1192 type PublicMenu_d_CardContainerSpec = CardContainerSpec;
1193 type PublicMenu_d_CardImageSpec = CardImageSpec;
1194 type PublicMenu_d_CardTextSpec = CardTextSpec;
1195 declare namespace PublicMenu_d {
1196 export { PublicMenu_d_MenuItemSpec as MenuItemSpec, PublicMenu_d_MenuItemInstanceApi as MenuItemInstanceApi, PublicMenu_d_NestedMenuItemContents as NestedMenuItemContents, PublicMenu_d_NestedMenuItemSpec as NestedMenuItemSpec, PublicMenu_d_NestedMenuItemInstanceApi as NestedMenuItemInstanceApi, PublicMenu_d_FancyMenuItemSpec as FancyMenuItemSpec, PublicMenu_d_ColorSwatchMenuItemSpec as ColorSwatchMenuItemSpec, PublicMenu_d_InsertTableMenuItemSpec as InsertTableMenuItemSpec, PublicMenu_d_ToggleMenuItemSpec as ToggleMenuItemSpec, PublicMenu_d_ToggleMenuItemInstanceApi as ToggleMenuItemInstanceApi, PublicMenu_d_ChoiceMenuItemSpec as ChoiceMenuItemSpec, PublicMenu_d_ChoiceMenuItemInstanceApi as ChoiceMenuItemInstanceApi, PublicMenu_d_SeparatorMenuItemSpec as SeparatorMenuItemSpec, PublicMenu_d_ContextMenuApi as ContextMenuApi, PublicMenu_d_ContextMenuContents as ContextMenuContents, PublicMenu_d_ContextMenuItem as ContextMenuItem, PublicMenu_d_ContextSubMenu as ContextSubMenu, PublicMenu_d_CardMenuItemSpec as CardMenuItemSpec, PublicMenu_d_CardMenuItemInstanceApi as CardMenuItemInstanceApi, PublicMenu_d_CardItemSpec as CardItemSpec, PublicMenu_d_CardContainerSpec as CardContainerSpec, PublicMenu_d_CardImageSpec as CardImageSpec, PublicMenu_d_CardTextSpec as CardTextSpec, };
1198 interface SidebarInstanceApi {
1199 element: () => HTMLElement;
1201 interface SidebarSpec {
1204 onShow?: (api: SidebarInstanceApi) => void;
1205 onSetup?: (api: SidebarInstanceApi) => (api: SidebarInstanceApi) => void;
1206 onHide?: (api: SidebarInstanceApi) => void;
1208 type PublicSidebar_d_SidebarSpec = SidebarSpec;
1209 type PublicSidebar_d_SidebarInstanceApi = SidebarInstanceApi;
1210 declare namespace PublicSidebar_d {
1211 export { PublicSidebar_d_SidebarSpec as SidebarSpec, PublicSidebar_d_SidebarInstanceApi as SidebarInstanceApi, };
1213 interface ToolbarGroupSetting {
1217 declare type ToolbarConfig = string | ToolbarGroupSetting[];
1218 interface GroupToolbarButtonInstanceApi extends BaseToolbarButtonInstanceApi {
1220 interface GroupToolbarButtonSpec extends BaseToolbarButtonSpec<GroupToolbarButtonInstanceApi> {
1221 type?: 'grouptoolbarbutton';
1222 items?: ToolbarConfig;
1224 declare type MenuButtonItemTypes = NestedMenuItemContents;
1225 declare type SuccessCallback$1 = (menu: string | MenuButtonItemTypes[]) => void;
1226 interface BaseMenuButtonSpec {
1230 fetch: (success: SuccessCallback$1) => void;
1231 onSetup?: (api: BaseMenuButtonInstanceApi) => (api: BaseMenuButtonInstanceApi) => void;
1233 interface BaseMenuButtonInstanceApi {
1234 isDisabled: () => boolean;
1235 setDisabled: (state: boolean) => void;
1236 isActive: () => boolean;
1237 setActive: (state: boolean) => void;
1239 interface ToolbarMenuButtonSpec extends BaseMenuButtonSpec {
1240 type?: 'menubutton';
1241 onSetup?: (api: ToolbarMenuButtonInstanceApi) => (api: ToolbarMenuButtonInstanceApi) => void;
1243 interface ToolbarMenuButtonInstanceApi extends BaseMenuButtonInstanceApi {
1245 declare type ToolbarSplitButtonItemTypes = ChoiceMenuItemSpec | SeparatorMenuItemSpec;
1246 declare type SuccessCallback = (menu: ToolbarSplitButtonItemTypes[]) => void;
1247 declare type SelectPredicate = (value: string) => boolean;
1248 declare type PresetTypes = 'color' | 'normal' | 'listpreview';
1249 declare type ColumnTypes = number | 'auto';
1250 interface ToolbarSplitButtonSpec {
1251 type?: 'splitbutton';
1255 select?: SelectPredicate;
1256 presets?: PresetTypes;
1257 columns?: ColumnTypes;
1258 fetch: (success: SuccessCallback) => void;
1259 onSetup?: (api: ToolbarSplitButtonInstanceApi) => (api: ToolbarSplitButtonInstanceApi) => void;
1260 onAction: (api: ToolbarSplitButtonInstanceApi) => void;
1261 onItemAction: (api: ToolbarSplitButtonInstanceApi, value: string) => void;
1263 interface ToolbarSplitButtonInstanceApi {
1264 isDisabled: () => boolean;
1265 setDisabled: (state: boolean) => void;
1266 setIconFill: (id: string, value: string) => void;
1267 setIconStroke: (id: string, value: string) => void;
1268 isActive: () => boolean;
1269 setActive: (state: boolean) => void;
1271 type PublicToolbar_d_ToolbarButtonSpec = ToolbarButtonSpec;
1272 type PublicToolbar_d_ToolbarButtonInstanceApi = ToolbarButtonInstanceApi;
1273 type PublicToolbar_d_ToolbarSplitButtonSpec = ToolbarSplitButtonSpec;
1274 type PublicToolbar_d_ToolbarSplitButtonInstanceApi = ToolbarSplitButtonInstanceApi;
1275 type PublicToolbar_d_ToolbarMenuButtonSpec = ToolbarMenuButtonSpec;
1276 type PublicToolbar_d_ToolbarMenuButtonInstanceApi = ToolbarMenuButtonInstanceApi;
1277 type PublicToolbar_d_ToolbarToggleButtonSpec = ToolbarToggleButtonSpec;
1278 type PublicToolbar_d_ToolbarToggleButtonInstanceApi = ToolbarToggleButtonInstanceApi;
1279 type PublicToolbar_d_GroupToolbarButtonSpec = GroupToolbarButtonSpec;
1280 type PublicToolbar_d_GroupToolbarButtonInstanceApi = GroupToolbarButtonInstanceApi;
1281 declare namespace PublicToolbar_d {
1282 export { PublicToolbar_d_ToolbarButtonSpec as ToolbarButtonSpec, PublicToolbar_d_ToolbarButtonInstanceApi as ToolbarButtonInstanceApi, PublicToolbar_d_ToolbarSplitButtonSpec as ToolbarSplitButtonSpec, PublicToolbar_d_ToolbarSplitButtonInstanceApi as ToolbarSplitButtonInstanceApi, PublicToolbar_d_ToolbarMenuButtonSpec as ToolbarMenuButtonSpec, PublicToolbar_d_ToolbarMenuButtonInstanceApi as ToolbarMenuButtonInstanceApi, PublicToolbar_d_ToolbarToggleButtonSpec as ToolbarToggleButtonSpec, PublicToolbar_d_ToolbarToggleButtonInstanceApi as ToolbarToggleButtonInstanceApi, PublicToolbar_d_GroupToolbarButtonSpec as GroupToolbarButtonSpec, PublicToolbar_d_GroupToolbarButtonInstanceApi as GroupToolbarButtonInstanceApi, };
1284 interface Registry$1 {
1285 addButton: (name: string, spec: ToolbarButtonSpec) => void;
1286 addGroupToolbarButton: (name: string, spec: GroupToolbarButtonSpec) => void;
1287 addToggleButton: (name: string, spec: ToolbarToggleButtonSpec) => void;
1288 addMenuButton: (name: string, spec: ToolbarMenuButtonSpec) => void;
1289 addSplitButton: (name: string, spec: ToolbarSplitButtonSpec) => void;
1290 addMenuItem: (name: string, spec: MenuItemSpec) => void;
1291 addNestedMenuItem: (name: string, spec: NestedMenuItemSpec) => void;
1292 addToggleMenuItem: (name: string, spec: ToggleMenuItemSpec) => void;
1293 addContextMenu: (name: string, spec: ContextMenuApi) => void;
1294 addContextToolbar: (name: string, spec: ContextToolbarSpec) => void;
1295 addContextForm: (name: string, spec: ContextFormSpec) => void;
1296 addIcon: (name: string, svgData: string) => void;
1297 addAutocompleter: (name: string, spec: AutocompleterSpec) => void;
1298 addSidebar: (name: string, spec: SidebarSpec) => void;
1300 buttons: Record<string, ToolbarButtonSpec | GroupToolbarButtonSpec | ToolbarMenuButtonSpec | ToolbarSplitButtonSpec | ToolbarToggleButtonSpec>;
1301 menuItems: Record<string, MenuItemSpec | NestedMenuItemSpec | ToggleMenuItemSpec>;
1302 popups: Record<string, AutocompleterSpec>;
1303 contextMenus: Record<string, ContextMenuApi>;
1304 contextToolbars: Record<string, ContextToolbarSpec | ContextFormSpec>;
1305 icons: Record<string, string>;
1306 sidebars: Record<string, SidebarSpec>;
1309 interface StyleSheetLoaderSettings {
1310 maxLoadTime?: number;
1311 contentCssCors?: boolean;
1312 referrerPolicy?: ReferrerPolicy;
1314 interface StyleSheetLoader {
1315 load: (url: string, success: () => void, failure?: () => void) => void;
1316 loadAll: (urls: string[], success: (urls: string[]) => void, failure: (urls: string[]) => void) => void;
1317 unload: (url: string) => void;
1318 unloadAll: (urls: string[]) => void;
1319 _setReferrerPolicy: (referrerPolicy: ReferrerPolicy) => void;
1321 declare type Registry = Registry$1;
1322 interface EditorUiApi {
1326 disable: () => void;
1327 isDisabled: () => boolean;
1329 interface EditorUi extends EditorUiApi {
1331 styleSheetLoader: StyleSheetLoader;
1333 type Ui_d_Registry = Registry;
1334 type Ui_d_EditorUiApi = EditorUiApi;
1335 type Ui_d_EditorUi = EditorUi;
1336 declare namespace Ui_d {
1337 export { Ui_d_Registry as Registry, PublicDialog_d as Dialog, PublicInlineContent_d as InlineContent, PublicMenu_d as Menu, PublicSidebar_d as Sidebar, PublicToolbar_d as Toolbar, Ui_d_EditorUiApi as EditorUiApi, Ui_d_EditorUi as EditorUi, };
1339 declare type EntityEncoding = 'named' | 'numeric' | 'raw' | 'named,numeric' | 'named+numeric' | 'numeric,named' | 'numeric+named';
1340 interface ContentLanguage {
1341 readonly title: string;
1342 readonly code: string;
1343 readonly customCode?: string;
1345 declare type ThemeInitFunc = (editor: Editor, elm: HTMLElement) => {
1346 editorContainer: HTMLElement;
1347 iframeContainer: HTMLElement;
1349 iframeHeight?: number;
1352 declare type SetupCallback = (editor: Editor) => void;
1353 declare type FilePickerCallback = (callback: Function, value: any, meta: Record<string, any>) => void;
1354 declare type FilePickerValidationStatus = 'valid' | 'unknown' | 'invalid' | 'none';
1355 declare type FilePickerValidationCallback = (info: {
1358 }, callback: (validation: {
1359 status: FilePickerValidationStatus;
1361 }) => void) => void;
1362 declare type URLConverter = (url: string, name: string, elm?: HTMLElement) => string;
1363 declare type URLConverterCallback = (url: string, node: Node, on_save: boolean, name: string) => void;
1364 interface ToolbarGroup {
1368 declare type ToolbarMode = 'floating' | 'sliding' | 'scrolling' | 'wrap';
1369 interface BaseEditorSettings {
1370 add_form_submit_trigger?: boolean;
1371 add_unload_trigger?: boolean;
1372 allow_conditional_comments?: boolean;
1373 allow_html_data_urls?: boolean;
1374 allow_html_in_named_anchor?: boolean;
1375 allow_script_urls?: boolean;
1376 allow_svg_data_urls?: boolean;
1377 allow_unsafe_link_target?: boolean;
1378 anchor_bottom?: false | string;
1379 anchor_top?: false | string;
1380 auto_focus?: string | true;
1381 automatic_uploads?: boolean;
1383 block_formats?: string;
1384 block_unsupported_drop?: boolean;
1386 body_class?: string;
1387 br_in_pre?: boolean;
1388 br_newline_selector?: string;
1389 browser_spellcheck?: boolean;
1391 cache_suffix?: string;
1392 color_cols?: number;
1393 color_map?: string[];
1394 content_css?: boolean | string | string[];
1395 content_css_cors?: boolean;
1396 content_security_policy?: string;
1397 content_style?: string;
1398 deprecation_warnings?: boolean;
1399 font_css?: string | string[];
1400 content_langs?: ContentLanguage[];
1401 contextmenu?: string | false;
1402 contextmenu_never_use_native?: boolean;
1403 convert_fonts_to_spans?: boolean;
1404 convert_urls?: boolean;
1405 custom_colors?: boolean;
1406 custom_elements?: string;
1407 custom_ui_selector?: string;
1408 custom_undo_redo_levels?: number;
1409 directionality?: 'ltr' | 'rtl';
1411 document_base_url?: string;
1412 element_format?: 'xhtml' | 'html';
1413 elementpath?: boolean;
1415 end_container_on_empty_block?: boolean;
1417 entity_encoding?: EntityEncoding;
1418 extended_valid_elements?: string;
1419 event_root?: string;
1420 file_picker_callback?: FilePickerCallback;
1421 file_picker_types?: string;
1422 file_picker_validator_handler?: FilePickerValidationCallback;
1423 fix_list_elements?: boolean;
1424 fixed_toolbar_container?: string;
1425 fixed_toolbar_container_target?: HTMLElement;
1426 font_formats?: string;
1427 font_size_classes?: string;
1428 font_size_legacy_values?: string;
1429 font_size_style_values?: string;
1430 fontsize_formats?: string;
1431 force_hex_style_colors?: boolean;
1432 forced_root_block?: boolean | string;
1433 forced_root_block_attrs?: Record<string, string>;
1435 gecko_spellcheck?: boolean;
1436 height?: number | string;
1437 hidden_input?: boolean;
1441 iframe_aria_text?: string;
1442 images_dataimg_filter?: (imgElm: HTMLImageElement) => boolean;
1443 images_file_types?: string;
1444 images_replace_blob_uris?: boolean;
1445 images_reuse_filename?: boolean;
1446 images_upload_base_path?: string;
1447 images_upload_credentials?: boolean;
1448 images_upload_handler?: UploadHandler;
1449 images_upload_url?: string;
1451 indent_after?: string;
1452 indent_before?: string;
1453 indent_use_margin?: boolean;
1454 indentation?: string;
1455 init_instance_callback?: SetupCallback;
1457 inline_boundaries?: boolean;
1458 inline_boundaries_selector?: string;
1459 inline_styles?: boolean;
1460 invalid_elements?: string;
1461 invalid_styles?: string | Record<string, string>;
1462 keep_styles?: boolean;
1464 language_load?: boolean;
1465 language_url?: string;
1466 lineheight_formats?: string;
1467 max_height?: number;
1469 menu?: Record<string, {
1473 menubar?: boolean | string;
1474 min_height?: number;
1476 no_newline_selector?: string;
1478 object_resizing?: boolean | string;
1479 padd_empty_with_br?: boolean;
1480 placeholder?: string;
1481 preserve_cdata?: boolean;
1482 preview_styles?: boolean | string;
1485 referrer_policy?: ReferrerPolicy;
1486 relative_urls?: boolean;
1487 remove_script_host?: boolean;
1488 remove_trailing_brs?: boolean;
1489 removed_menuitems?: string;
1490 resize?: boolean | 'both';
1491 resize_img_proportional?: boolean;
1493 schema?: SchemaType;
1495 setup?: SetupCallback;
1496 skin?: boolean | string;
1498 statusbar?: boolean;
1499 style_formats?: AllowedFormat[];
1500 style_formats_autohide?: boolean;
1501 style_formats_merge?: boolean;
1502 submit_patch?: boolean;
1504 target?: HTMLElement;
1505 theme?: string | ThemeInitFunc;
1507 toolbar?: boolean | string | string[] | Array<ToolbarGroup>;
1517 toolbar_mode?: ToolbarMode;
1518 typeahead_urls?: boolean;
1519 url_converter?: URLConverter;
1520 url_converter_scope?: any;
1521 urlconverter_callback?: string | URLConverterCallback;
1522 valid_children?: string;
1523 valid_classes?: string | Record<string, string>;
1524 valid_elements?: string;
1525 valid_styles?: string | Record<string, string>;
1526 verify_html?: boolean;
1528 visual_anchor_class?: string;
1529 visual_table_class?: string;
1530 width?: number | string;
1531 toolbar_drawer?: false | 'floating' | 'sliding' | 'scrolling';
1532 editor_deselector?: string;
1533 editor_selector?: string;
1535 filepicker_validator_handler?: FilePickerValidationCallback;
1536 mode?: 'exact' | 'textareas' | 'specific_textareas';
1537 types?: Record<string, any>[];
1538 block_elements?: string;
1539 boolean_attributes?: string;
1540 move_caret_before_on_enter_elements?: string;
1541 non_empty_elements?: string;
1542 self_closing_elements?: string;
1543 short_ended_elements?: string;
1544 text_block_elements?: string;
1545 text_inline_elements?: string;
1546 whitespace_elements?: string;
1548 disable_nodechange?: boolean;
1549 forced_plugins?: string | string[];
1550 plugin_base_urls?: Record<string, string>;
1551 service_message?: string;
1555 interface RawEditorSettings extends BaseEditorSettings {
1556 external_plugins?: Record<string, string>;
1557 mobile?: RawEditorSettings;
1558 plugins?: string | string[];
1560 interface EditorSettings extends BaseEditorSettings {
1561 external_plugins: Record<string, string>;
1564 interface ParamTypeMap {
1565 'hash': Record<string, string>;
1569 'string[]': string[];
1572 interface BlobInfoImagePair {
1573 image: HTMLImageElement;
1576 declare class NodeChange {
1577 private readonly editor;
1579 constructor(editor: Editor);
1580 nodeChanged(args?: any): void;
1581 private isSameElementPath;
1583 interface SelectionOverrides {
1584 showCaret: (direction: number, node: Element, before: boolean, scrollIntoView?: boolean) => Range | null;
1585 showBlockCaretContainer: (blockCaretContainer: Element) => void;
1586 hideFakeCaret: () => void;
1587 destroy: () => void;
1590 refreshContentEditable(): void;
1591 isHidden(): boolean;
1593 declare type DecoratorData = Record<string, any>;
1594 declare type Decorator = (uid: string, data: DecoratorData) => {
1598 declare type AnnotationListener = (state: boolean, name: string, data?: {
1602 declare type AnnotationListenerApi = AnnotationListener;
1603 interface AnnotatorSettings {
1604 decorate: Decorator;
1605 persistent?: boolean;
1607 interface Annotator {
1608 register: (name: string, settings: AnnotatorSettings) => void;
1609 annotate: (name: string, data: DecoratorData) => void;
1610 annotationChanged: (name: string, f: AnnotationListenerApi) => void;
1611 remove: (name: string) => void;
1612 getAll: (name: string) => Record<string, Element[]>;
1614 interface GeomRect {
1621 inflate: (rect: GeomRect, w: number, h: number) => GeomRect;
1622 relativePosition: (rect: GeomRect, targetRect: GeomRect, rel: string) => GeomRect;
1623 findBestRelativePosition: (rect: GeomRect, targetRect: GeomRect, constrainRect: GeomRect, rels: string[]) => string | null;
1624 intersect: (rect: GeomRect, cropRect: GeomRect) => GeomRect | null;
1625 clamp: (rect: GeomRect, clampRect: GeomRect, fixedSize?: boolean) => GeomRect;
1626 create: (x: number, y: number, w: number, h: number) => GeomRect;
1627 fromClientRect: (clientRect: DOMRect) => GeomRect;
1629 interface StyleMap {
1630 [s: string]: string | number;
1632 interface StylesSettings {
1633 allow_script_urls?: boolean;
1634 allow_svg_data_urls?: boolean;
1635 url_converter?: URLConverter;
1636 url_converter_scope?: any;
1639 toHex: (color: string) => string;
1640 parse: (css: string) => Record<string, string>;
1641 serialize: (styles: StyleMap, elementName?: string) => string;
1643 interface DOMUtilsSettings {
1645 url_converter: URLConverter;
1646 url_converter_scope: any;
1648 keep_values: boolean;
1649 hex_colors: boolean;
1650 update_styles: boolean;
1651 root_element: HTMLElement;
1653 onSetAttrib: Function;
1654 contentCssCors: boolean;
1655 referrerPolicy: ReferrerPolicy;
1657 declare type Target = Node | Window;
1658 declare type RunArguments<T extends Node = Node> = string | T | Array<string | T>;
1659 declare type BoundEvent = [
1662 EventUtilsCallback<any>,
1665 declare type Callback<K extends string> = EventUtilsCallback<MappedEvent<HTMLElementEventMap, K>>;
1666 interface DOMUtils {
1668 settings: Partial<DOMUtilsSettings>;
1670 files: Record<string, boolean>;
1673 styleSheetLoader: StyleSheetLoader;
1674 boundEvents: BoundEvent[];
1679 $: DomQueryConstructor;
1681 <T extends Node>(elm: T | T[] | DomQuery<T>): DomQuery<T>;
1682 (elm: string): DomQuery<Node>;
1684 isBlock: (node: string | Node) => boolean;
1685 clone: (node: Node, deep: boolean) => Node;
1686 getRoot: () => HTMLElement;
1687 getViewPort: (argWin?: Window) => GeomRect;
1688 getRect: (elm: string | HTMLElement) => GeomRect;
1689 getSize: (elm: string | HTMLElement) => {
1694 <K extends keyof HTMLElementTagNameMap>(node: string | Node, selector: K, root?: Node): HTMLElementTagNameMap[K] | null;
1695 <T extends HTMLElement>(node: string | Node, selector: (node: HTMLElement) => node is T, root?: Node): T | null;
1696 <T extends Element = Element>(node: string | Node, selector?: string | ((node: HTMLElement) => boolean | void), root?: Node): T | null;
1699 <K extends keyof HTMLElementTagNameMap>(elm: string | Node, selector: K, root?: Node, collect?: boolean): Array<HTMLElementTagNameMap[K]>;
1700 <T extends HTMLElement>(node: string | Node, selector: (node: HTMLElement) => node is T, root?: Node): T[];
1701 <T extends Element = Element>(elm: string | Node, selector?: string | ((node: HTMLElement) => boolean | void), root?: Node, collect?: boolean): T[];
1703 get: (elm: string | Node) => HTMLElement | null;
1704 getNext: (node: Node, selector: string | ((node: Node) => boolean)) => Node | null;
1705 getPrev: (node: Node, selector: string | ((node: Node) => boolean)) => Node | null;
1707 <K extends keyof HTMLElementTagNameMap>(selector: K, scope?: string | Node): Array<HTMLElementTagNameMap[K]>;
1708 <T extends HTMLElement = HTMLElement>(selector: string, scope?: string | Node): T[];
1710 is: (elm: Node | Node[], selector: string) => boolean;
1711 add: (parentElm: RunArguments, name: string | Node, attrs?: Record<string, string | boolean | number>, html?: string | Node, create?: boolean) => HTMLElement;
1713 <K extends keyof HTMLElementTagNameMap>(name: K, attrs?: Record<string, string | boolean | number>, html?: string | Node): HTMLElementTagNameMap[K];
1714 (name: string, attrs?: Record<string, string | boolean | number>, html?: string | Node): HTMLElement;
1716 createHTML: (name: string, attrs?: Record<string, string>, html?: string) => string;
1717 createFragment: (html?: string) => DocumentFragment;
1718 remove: <T extends Node>(node: string | T | T[] | DomQuery<T>, keepChildren?: boolean) => T | T[];
1720 (elm: string | Node | Node[], name: string, value: string | number | null): void;
1721 (elm: string | Node | Node[], styles: StyleMap): void;
1723 getStyle: (elm: string | Node, name: string, computed?: boolean) => string;
1724 setStyles: (elm: string | Node | Node[], stylesArg: StyleMap) => void;
1725 removeAllAttribs: (e: RunArguments<Element>) => void;
1726 setAttrib: (elm: string | Node | Node[], name: string, value: string | boolean | number | null) => void;
1727 setAttribs: (elm: string | Node | Node[], attrs: Record<string, string | boolean | number | null>) => void;
1728 getAttrib: (elm: string | Node, name: string, defaultVal?: string) => string;
1729 getPos: (elm: string | Node, rootElm?: Node) => {
1733 parseStyle: (cssText: string) => Record<string, string>;
1734 serializeStyle: (stylesArg: StyleMap, name?: string) => string;
1735 addStyle: (cssText: string) => void;
1736 loadCSS: (url: string) => void;
1737 addClass: (elm: string | Node | Node[], cls: string) => void;
1738 removeClass: (elm: string | Node | Node[], cls: string) => void;
1739 hasClass: (elm: string | Node, cls: string) => boolean;
1740 toggleClass: (elm: string | Node | Node[], cls: string, state?: boolean) => void;
1741 show: (elm: string | Node | Node[]) => void;
1742 hide: (elm: string | Node | Node[]) => void;
1743 isHidden: (elm: string | Node) => boolean;
1744 uniqueId: (prefix?: string) => string;
1745 setHTML: (elm: string | Node | Node[], html: string) => void;
1746 getOuterHTML: (elm: string | Node) => string;
1747 setOuterHTML: (elm: string | Node | Node[], html: string) => void;
1748 decode: (text: string) => string;
1749 encode: (text: string) => string;
1751 <T extends Node>(node: T | T[], reference: string | Node): T;
1752 <T extends Node>(node: RunArguments<T>, reference: string | Node): false | T;
1755 <T extends Node>(newElm: Node, oldElm: T | T[], keepChildren?: boolean): T;
1756 <T extends Node>(newElm: Node, oldElm: RunArguments<T>, keepChildren?: boolean): false | T;
1759 <K extends keyof HTMLElementTagNameMap>(elm: Element, name: K): HTMLElementTagNameMap[K];
1760 (elm: Element, name: string): Element;
1762 findCommonAncestor: (a: Node, b: Node) => Node;
1763 toHex: (rgbVal: string) => string;
1764 run<R, T extends Node>(this: DOMUtils, elm: T | T[], func: (node: T) => R, scope?: any): R;
1765 run<R, T extends Node>(this: DOMUtils, elm: RunArguments<T>, func: (node: T) => R, scope?: any): false | R;
1766 getAttribs: (elm: string | Node) => NamedNodeMap | Attr[];
1767 isEmpty: (node: Node, elements?: Record<string, any>) => boolean;
1768 createRng: () => Range;
1769 nodeIndex: (node: Node, normalized?: boolean) => number;
1771 <T extends Node>(parentElm: Node, splitElm: Node, replacementElm: T): T;
1772 <T extends Node>(parentElm: Node, splitElm: T): T;
1775 <K extends string>(target: Target, name: K, func: Callback<K>, scope?: any): Callback<K>;
1776 <K extends string>(target: Target[], name: K, func: Callback<K>, scope?: any): Callback<K>[];
1779 <K extends string>(target: Target, name?: K, func?: EventUtilsCallback<MappedEvent<HTMLElementEventMap, K>>): EventUtils;
1780 <K extends string>(target: Target[], name?: K, func?: EventUtilsCallback<MappedEvent<HTMLElementEventMap, K>>): EventUtils[];
1782 fire: (target: Node | Window, name: string, evt?: {}) => EventUtils;
1783 getContentEditable: (node: Node) => string | null;
1784 getContentEditableParent: (node: Node) => string | null;
1785 destroy: () => void;
1786 isChildOf: (node: Node, parent: Node) => boolean;
1787 dumpRng: (r: Range) => string;
1789 interface ClientRect {
1797 interface GetSelectionContentArgs extends GetContentArgs {
1798 selection?: boolean;
1799 contextual?: boolean;
1801 interface SelectionSetContentArgs extends SetContentArgs {
1802 selection?: boolean;
1804 interface BookmarkManager {
1805 getBookmark: (type: number, normalized?: boolean) => Bookmark;
1806 moveToBookmark: (bookmark: Bookmark) => void;
1808 interface ControlSelection {
1809 isResizable: (elm: Element) => boolean;
1810 showResizeRect: (elm: Element) => void;
1811 hideResizeRect: () => void;
1812 updateResizeRect: (evt: EditorEvent<any>) => void;
1813 destroy: () => void;
1815 interface ParserArgs {
1816 getInner?: boolean | number;
1817 forced_root_block?: boolean | string;
1819 isRootContent?: boolean;
1822 no_events?: boolean;
1825 declare type ParserFilterCallback = (nodes: AstNode[], name: string, args: ParserArgs) => void;
1826 interface ParserFilter {
1828 callbacks: ParserFilterCallback[];
1830 interface DomParserSettings {
1831 allow_html_data_urls?: boolean;
1832 allow_svg_data_urls?: boolean;
1833 allow_conditional_comments?: boolean;
1834 allow_html_in_named_anchor?: boolean;
1835 allow_script_urls?: boolean;
1836 allow_unsafe_link_target?: boolean;
1837 convert_fonts_to_spans?: boolean;
1838 fix_list_elements?: boolean;
1839 font_size_legacy_values?: string;
1840 forced_root_block?: boolean | string;
1841 forced_root_block_attrs?: Record<string, string>;
1842 padd_empty_with_br?: boolean;
1843 preserve_cdata?: boolean;
1844 remove_trailing_brs?: boolean;
1847 inline_styles?: boolean;
1848 blob_cache?: BlobCache;
1849 document?: Document;
1850 images_dataimg_filter?: (img: HTMLImageElement) => boolean;
1852 interface DomParser {
1854 addAttributeFilter: (name: string, callback: (nodes: AstNode[], name: string, args: ParserArgs) => void) => void;
1855 getAttributeFilters: () => ParserFilter[];
1856 addNodeFilter: (name: string, callback: (nodes: AstNode[], name: string, args: ParserArgs) => void) => void;
1857 getNodeFilters: () => ParserFilter[];
1858 filterNode: (node: AstNode) => AstNode;
1859 parse: (html: string, args?: ParserArgs) => AstNode;
1861 interface WriterSettings {
1862 element_format?: 'xhtml' | 'html';
1864 entity_encoding?: EntityEncoding;
1866 indent_after?: string;
1867 indent_before?: string;
1869 declare type Attributes = Array<{
1874 cdata: (text: string) => void;
1875 comment: (text: string) => void;
1876 doctype: (text: string) => void;
1877 end: (name: string) => void;
1878 getContent: () => string;
1879 pi: (name: string, text?: string) => void;
1881 start: (name: string, attrs?: Attributes, empty?: boolean) => void;
1882 text: (text: string, raw?: boolean) => void;
1884 interface HtmlSerializerSettings extends WriterSettings {
1888 interface HtmlSerializer {
1889 serialize: (node: AstNode) => string;
1891 interface DomSerializerSettings extends DomParserSettings, WriterSettings, SchemaSettings, HtmlSerializerSettings {
1892 url_converter?: URLConverter;
1893 url_converter_scope?: {};
1895 interface DomSerializerImpl {
1897 addNodeFilter: (name: string, callback: (nodes: AstNode[], name: string, args: ParserArgs) => void) => void;
1898 addAttributeFilter: (name: string, callback: (nodes: AstNode[], name: string, args: ParserArgs) => void) => void;
1899 getNodeFilters: () => ParserFilter[];
1900 getAttributeFilters: () => ParserFilter[];
1902 (node: Element, parserArgs: {
1904 } & ParserArgs): AstNode;
1905 (node: Element, parserArgs?: ParserArgs): string;
1907 addRules: (rules: string) => void;
1908 setRules: (rules: string) => void;
1909 addTempAttr: (name: string) => void;
1910 getTempAttrs: () => string[];
1912 interface DomSerializer extends DomSerializerImpl {
1914 interface EditorSelection {
1915 bookmarkManager: BookmarkManager;
1916 controlSelection: ControlSelection;
1919 serializer: DomSerializer;
1921 collapse: (toStart?: boolean) => void;
1922 setCursorLocation: {
1923 (node: Node, offset: number): void;
1929 } & GetSelectionContentArgs): AstNode;
1930 (args?: GetSelectionContentArgs): string;
1932 setContent: (content: string, args?: SelectionSetContentArgs) => void;
1933 getBookmark: (type?: number, normalized?: boolean) => Bookmark;
1934 moveToBookmark: (bookmark: Bookmark) => void;
1935 select: (node: Node, content?: boolean) => Node;
1936 isCollapsed: () => boolean;
1937 isForward: () => boolean;
1938 setNode: (elm: Element) => Element;
1939 getNode: () => Element;
1940 getSel: () => Selection | null;
1941 setRng: (rng: Range, forward?: boolean) => void;
1942 getRng: () => Range;
1943 getStart: (real?: boolean) => Element;
1944 getEnd: (real?: boolean) => Element;
1945 getSelectedBlocks: (startElm?: Element, endElm?: Element) => Element[];
1946 normalize: () => Range;
1947 selectorChanged: (selector: string, callback: (active: boolean, args: {
1951 }) => void) => EditorSelection;
1952 selectorChangedWithUnbind: (selector: string, callback: (active: boolean, args: {
1959 getScrollContainer: () => HTMLElement;
1960 scrollIntoView: (elm?: HTMLElement, alignToTop?: boolean) => void;
1961 placeCaretAt: (clientX: number, clientY: number) => void;
1962 getBoundingClientRect: () => ClientRect | DOMRect;
1963 destroy: () => void;
1965 declare type EditorCommandCallback = (ui: boolean, value: any, args: any) => void;
1966 declare type EditorCommandsCallback = (command: string, ui: boolean, value: any, args: any) => void;
1967 interface Commands {
1968 state: Record<string, (command: string) => boolean>;
1969 exec: Record<string, EditorCommandsCallback>;
1970 value: Record<string, (command: string) => string>;
1972 interface EditorCommandsConstructor {
1973 readonly prototype: EditorCommands;
1974 new (editor: Editor): EditorCommands;
1976 declare class EditorCommands {
1977 private readonly editor;
1978 private selectionBookmark;
1980 constructor(editor: Editor);
1981 execCommand(command: string, ui?: boolean, value?: any, args?: any): boolean;
1982 queryCommandState(command: string): boolean;
1983 queryCommandValue(command: string): string;
1984 addCommands<K extends keyof Commands>(commandList: Commands[K], type: K): void;
1985 addCommands(commandList: Record<string, EditorCommandsCallback>): void;
1986 addCommand(command: string, callback: EditorCommandCallback, scope?: any): void;
1987 queryCommandSupported(command: string): boolean;
1988 addQueryStateHandler(command: string, callback: () => boolean, scope?: any): void;
1989 addQueryValueHandler(command: string, callback: () => string, scope?: any): void;
1990 hasCustomCommand(command: string): boolean;
1991 private execNativeCommand;
1992 private isFormatMatch;
1993 private toggleFormat;
1994 private storeSelection;
1995 private restoreSelection;
1996 private setupCommands;
1998 interface WindowParams {
1999 readonly inline?: 'cursor' | 'toolbar';
2000 readonly ariaAttrs?: boolean;
2002 declare type InstanceApi<T> = UrlDialogInstanceApi | DialogInstanceApi<T>;
2003 interface WindowManagerImpl {
2004 open: <T>(config: DialogSpec<T>, params: WindowParams, closeWindow: (dialog: DialogInstanceApi<T>) => void) => DialogInstanceApi<T>;
2005 openUrl: (config: UrlDialogSpec, closeWindow: (dialog: UrlDialogInstanceApi) => void) => UrlDialogInstanceApi;
2006 alert: (message: string, callback: () => void) => void;
2007 confirm: (message: string, callback: (state: boolean) => void) => void;
2008 close: (dialog: InstanceApi<any>) => void;
2010 interface WindowManager {
2011 open: <T>(config: DialogSpec<T>, params?: WindowParams) => DialogInstanceApi<T>;
2012 openUrl: (config: UrlDialogSpec) => UrlDialogInstanceApi;
2013 alert: (message: string, callback?: () => void, scope?: any) => void;
2014 confirm: (message: string, callback?: (state: boolean) => void, scope?: any) => void;
2017 interface ExecCommandEvent {
2022 declare type GetContentEvent = GetContentArgs & {
2023 source_view?: boolean;
2024 selection?: boolean;
2027 declare type SetContentEvent = SetContentArgs & {
2028 source_view?: boolean;
2030 selection?: boolean;
2032 interface NewBlockEvent {
2035 interface NodeChangeEvent {
2038 selectionChange?: boolean;
2041 interface FormatEvent {
2044 node?: Node | RangeLikeObject;
2046 interface ObjectResizeEvent {
2047 target: HTMLElement;
2052 interface ObjectSelectedEvent {
2056 interface ScrollIntoViewEvent {
2058 alignToTop: boolean;
2060 interface SetSelectionRangeEvent {
2064 interface ShowCaretEvent {
2069 interface SwitchModeEvent {
2072 interface AddUndoEvent {
2074 lastLevel: UndoLevel;
2075 originalEvent: Event;
2077 interface UndoRedoEvent {
2080 interface WindowEvent<T extends DialogData> {
2081 dialog: InstanceApi<T>;
2083 interface ProgressStateEvent {
2087 interface AfterProgressStateEvent {
2090 interface PlaceholderToggleEvent {
2093 interface LoadErrorEvent {
2096 interface PreProcessEvent extends ParserArgs {
2099 interface PostProcessEvent extends ParserArgs {
2102 interface EditorEventMap extends Omit<NativeEventMap, 'blur' | 'focus'> {
2104 relatedTarget: Editor;
2107 relatedTarget: Editor;
2110 blurredEditor: Editor;
2113 focusedEditor: Editor;
2120 'ScrollIntoView': ScrollIntoViewEvent;
2121 'AfterScrollIntoView': ScrollIntoViewEvent;
2122 'ObjectResized': ObjectResizeEvent;
2123 'ObjectResizeStart': ObjectResizeEvent;
2124 'SwitchMode': SwitchModeEvent;
2125 'ScrollWindow': UIEvent;
2126 'ResizeWindow': UIEvent;
2128 'SkinLoadError': LoadErrorEvent;
2129 'PluginLoadError': LoadErrorEvent;
2130 'IconsLoadError': LoadErrorEvent;
2131 'LanguageLoadError': LoadErrorEvent;
2132 'BeforeExecCommand': ExecCommandEvent;
2133 'ExecCommand': ExecCommandEvent;
2134 'NodeChange': NodeChangeEvent;
2135 'FormatApply': FormatEvent;
2136 'FormatRemove': FormatEvent;
2137 'ShowCaret': ShowCaretEvent;
2138 'SelectionChange': {};
2139 'ObjectSelected': ObjectSelectedEvent;
2140 'BeforeObjectSelected': ObjectSelectedEvent;
2141 'GetSelectionRange': {
2144 'SetSelectionRange': SetSelectionRangeEvent;
2145 'AfterSetSelectionRange': SetSelectionRangeEvent;
2146 'BeforeGetContent': GetContentEvent;
2147 'GetContent': GetContentEvent;
2148 'BeforeSetContent': SetContentEvent;
2149 'SetContent': SetContentEvent;
2151 'PreviewFormats': {};
2152 'AfterPreviewFormats': {};
2153 'ScriptsLoaded': {};
2156 'NewBlock': NewBlockEvent;
2159 'Redo': UndoRedoEvent;
2160 'Undo': UndoRedoEvent;
2161 'BeforeAddUndo': AddUndoEvent;
2162 'AddUndo': AddUndoEvent;
2163 'CloseWindow': WindowEvent<any>;
2164 'OpenWindow': WindowEvent<any>;
2165 'ProgressState': ProgressStateEvent;
2166 'AfterProgressState': AfterProgressStateEvent;
2167 'PlaceholderToggle': PlaceholderToggleEvent;
2169 'longpress': TouchEvent;
2170 'longpresscancel': {};
2171 'PreProcess': PreProcessEvent;
2172 'PostProcess': PostProcessEvent;
2174 interface EditorManagerEventMap {
2185 type EventTypes_d_ExecCommandEvent = ExecCommandEvent;
2186 type EventTypes_d_GetContentEvent = GetContentEvent;
2187 type EventTypes_d_SetContentEvent = SetContentEvent;
2188 type EventTypes_d_NewBlockEvent = NewBlockEvent;
2189 type EventTypes_d_NodeChangeEvent = NodeChangeEvent;
2190 type EventTypes_d_FormatEvent = FormatEvent;
2191 type EventTypes_d_ObjectResizeEvent = ObjectResizeEvent;
2192 type EventTypes_d_ObjectSelectedEvent = ObjectSelectedEvent;
2193 type EventTypes_d_ScrollIntoViewEvent = ScrollIntoViewEvent;
2194 type EventTypes_d_SetSelectionRangeEvent = SetSelectionRangeEvent;
2195 type EventTypes_d_ShowCaretEvent = ShowCaretEvent;
2196 type EventTypes_d_SwitchModeEvent = SwitchModeEvent;
2197 type EventTypes_d_AddUndoEvent = AddUndoEvent;
2198 type EventTypes_d_UndoRedoEvent = UndoRedoEvent;
2199 type EventTypes_d_WindowEvent<_0> = WindowEvent<_0>;
2200 type EventTypes_d_ProgressStateEvent = ProgressStateEvent;
2201 type EventTypes_d_AfterProgressStateEvent = AfterProgressStateEvent;
2202 type EventTypes_d_PlaceholderToggleEvent = PlaceholderToggleEvent;
2203 type EventTypes_d_LoadErrorEvent = LoadErrorEvent;
2204 type EventTypes_d_PreProcessEvent = PreProcessEvent;
2205 type EventTypes_d_PostProcessEvent = PostProcessEvent;
2206 type EventTypes_d_EditorEventMap = EditorEventMap;
2207 type EventTypes_d_EditorManagerEventMap = EditorManagerEventMap;
2208 declare namespace EventTypes_d {
2209 export { EventTypes_d_ExecCommandEvent as ExecCommandEvent, EventTypes_d_GetContentEvent as GetContentEvent, EventTypes_d_SetContentEvent as SetContentEvent, EventTypes_d_NewBlockEvent as NewBlockEvent, EventTypes_d_NodeChangeEvent as NodeChangeEvent, EventTypes_d_FormatEvent as FormatEvent, EventTypes_d_ObjectResizeEvent as ObjectResizeEvent, EventTypes_d_ObjectSelectedEvent as ObjectSelectedEvent, EventTypes_d_ScrollIntoViewEvent as ScrollIntoViewEvent, EventTypes_d_SetSelectionRangeEvent as SetSelectionRangeEvent, EventTypes_d_ShowCaretEvent as ShowCaretEvent, EventTypes_d_SwitchModeEvent as SwitchModeEvent, EventTypes_d_AddUndoEvent as AddUndoEvent, EventTypes_d_UndoRedoEvent as UndoRedoEvent, EventTypes_d_WindowEvent as WindowEvent, EventTypes_d_ProgressStateEvent as ProgressStateEvent, EventTypes_d_AfterProgressStateEvent as AfterProgressStateEvent, EventTypes_d_PlaceholderToggleEvent as PlaceholderToggleEvent, EventTypes_d_LoadErrorEvent as LoadErrorEvent, EventTypes_d_PreProcessEvent as PreProcessEvent, EventTypes_d_PostProcessEvent as PostProcessEvent, EventTypes_d_EditorEventMap as EditorEventMap, EventTypes_d_EditorManagerEventMap as EditorManagerEventMap, };
2211 interface RawString {
2214 declare type Primitive = string | number | boolean | Record<string | number, any> | Function;
2215 declare type TokenisedString = [
2219 declare type Untranslated = Primitive | TokenisedString | RawString;
2220 declare type TranslatedString = string;
2222 getData: () => Record<string, Record<string, string>>;
2223 setCode: (newCode: string) => void;
2224 getCode: () => string;
2225 add: (code: string, items: Record<string, string>) => void;
2226 translate: (text: Untranslated) => TranslatedString;
2227 isRtl: () => boolean;
2228 hasCode: (code: string) => boolean;
2230 interface Observable<T> {
2231 fire<K extends string, U extends MappedEvent<T, K>>(name: K, args?: U, bubble?: boolean): EditorEvent<U>;
2232 on<K extends string>(name: K, callback: (event: EditorEvent<MappedEvent<T, K>>) => void, prepend?: boolean): EventDispatcher<T>;
2233 off<K extends string>(name?: K, callback?: (event: EditorEvent<MappedEvent<T, K>>) => void): EventDispatcher<T>;
2234 once<K extends string>(name: K, callback: (event: EditorEvent<MappedEvent<T, K>>) => void): EventDispatcher<T>;
2235 hasEventListeners(name: string): boolean;
2237 interface URISettings {
2240 interface URIConstructor {
2241 readonly prototype: URI;
2242 new (url: string, settings?: URISettings): URI;
2243 getDocumentBaseUrl: (loc: {
2249 parseDataUri: (uri: string) => {
2254 interface SafeUriOptions {
2255 readonly allow_html_data_urls?: boolean;
2256 readonly allow_script_urls?: boolean;
2257 readonly allow_svg_data_urls?: boolean;
2260 static parseDataUri(uri: string): {
2264 static isDomSafe(uri: string, context?: string, options?: SafeUriOptions): boolean;
2265 static getDocumentBaseUrl(loc: {
2285 settings: URISettings;
2286 constructor(url: string, settings?: URISettings);
2287 setPath(path: string): void;
2288 toRelative(uri: string): string;
2289 toAbsolute(uri: string, noHost?: boolean): string;
2290 isSameOrigin(uri: URI): boolean;
2291 toRelPath(base: string, path: string): string;
2292 toAbsPath(base: string, path: string): string;
2293 getURI(noProtoHost?: boolean): string;
2295 interface EditorManager extends Observable<EditorManagerEventMap> {
2296 $: DomQueryConstructor;
2297 defaultSettings: RawEditorSettings;
2298 majorVersion: string;
2299 minorVersion: string;
2300 releaseDate: string;
2302 activeEditor: Editor;
2303 focusedEditor: Editor;
2304 settings: RawEditorSettings;
2307 documentBaseURL: string;
2310 add(this: EditorManager, editor: Editor): Editor;
2311 addI18n: (code: string, item: Record<string, string>) => void;
2312 createEditor(this: EditorManager, id: string, settings: RawEditorSettings): Editor;
2313 execCommand(this: EditorManager, cmd: string, ui: boolean, value: any): boolean;
2314 get(this: EditorManager): Editor[];
2315 get(this: EditorManager, id: number | string): Editor;
2316 init(this: EditorManager, settings: RawEditorSettings): Promise<Editor[]>;
2317 overrideDefaults(this: EditorManager, defaultSettings: Partial<RawEditorSettings>): void;
2318 remove(this: EditorManager): void;
2319 remove(this: EditorManager, selector: string | Editor): Editor | void;
2320 setActive(this: EditorManager, editor: Editor): void;
2321 setup(this: EditorManager): void;
2322 translate: (text: Untranslated) => TranslatedString;
2323 triggerSave: () => void;
2324 _setBaseUrl(this: EditorManager, baseUrl: string): void;
2326 interface EditorObservable extends Observable<EditorEventMap> {
2327 bindPendingEventDelegates(this: Editor): void;
2328 toggleNativeEvent(this: Editor, name: string, state: boolean): any;
2329 unbindAllNativeEvents(this: Editor): void;
2331 interface UploadResult$1 {
2332 element: HTMLImageElement;
2337 declare type UploadCallback = (results: UploadResult$1[]) => void;
2338 interface EditorUpload {
2339 blobCache: BlobCache;
2340 addFilter: (filter: (img: HTMLImageElement) => boolean) => void;
2341 uploadImages: (callback?: UploadCallback) => Promise<UploadResult$1[]>;
2342 uploadImagesAuto: (callback?: UploadCallback) => void | Promise<UploadResult$1[]>;
2343 scanForImages: () => Promise<BlobInfoImagePair[]>;
2344 destroy: () => void;
2346 declare type FormatChangeCallback = (state: boolean, data: {
2351 interface FormatRegistry {
2353 (name: string): Format[] | undefined;
2354 (): Record<string, Format[]>;
2356 has: (name: string) => boolean;
2357 register: (name: string | Formats, format?: Format[] | Format) => void;
2358 unregister: (name: string) => Formats;
2360 interface Formatter extends FormatRegistry {
2361 apply: (name: string, vars?: FormatVars, node?: Node | RangeLikeObject) => void;
2362 remove: (name: string, vars?: FormatVars, node?: Node | Range, similar?: boolean) => void;
2363 toggle: (name: string, vars?: FormatVars, node?: Node) => void;
2364 match: (name: string, vars?: FormatVars, node?: Node, similar?: boolean) => boolean;
2365 closest: (names: string[]) => string | null;
2366 matchAll: (names: string[], vars?: FormatVars) => string[];
2367 matchNode: (node: Node, name: string, vars?: FormatVars, similar?: boolean) => Format | undefined;
2368 canApply: (name: string) => boolean;
2369 formatChanged: (names: string, callback: FormatChangeCallback, similar?: boolean, vars?: FormatVars) => {
2372 getCssText: (format: string | Format) => string;
2374 interface EditorMode {
2375 isReadOnly: () => boolean;
2376 set: (mode: string) => void;
2378 register: (mode: string, api: EditorModeApi) => void;
2380 interface EditorModeApi {
2381 activate: () => void;
2382 deactivate: () => void;
2383 editorReadOnly: boolean;
2386 getMetadata?: () => {
2392 declare type PluginManager = AddOnManager<Plugin>;
2393 interface ShortcutsConstructor {
2394 readonly prototype: Shortcuts;
2395 new (editor: Editor): Shortcuts;
2397 declare type CommandFunc = string | [
2402 declare class Shortcuts {
2403 private readonly editor;
2404 private readonly shortcuts;
2405 private pendingPatterns;
2406 constructor(editor: Editor);
2407 add(pattern: string, desc: string, cmdFunc: CommandFunc, scope?: any): boolean;
2408 remove(pattern: string): boolean;
2409 private normalizeCommandFunc;
2410 private createShortcut;
2411 private hasModifier;
2412 private isFunctionKey;
2413 private matchShortcut;
2414 private executeShortcutAction;
2419 execCommand?: (command: string, ui?: boolean, value?: any) => boolean;
2420 destroy?: () => void;
2421 init?: (editor: Editor, url: string, $: DomQueryConstructor) => void;
2423 iframeContainer?: HTMLIFrameElement;
2424 editorContainer: HTMLElement;
2425 api?: Partial<EditorUiApi>;
2427 getNotificationManagerImpl?: () => NotificationManagerImpl;
2428 getWindowManagerImpl?: () => WindowManagerImpl;
2430 declare type ThemeManager = AddOnManager<Theme>;
2431 interface EditorConstructor {
2432 readonly prototype: Editor;
2433 new (id: string, settings: RawEditorSettings, editorManager: EditorManager): Editor;
2435 declare class Editor implements EditorObservable {
2436 documentBaseUrl: string;
2438 settings: EditorSettings;
2440 plugins: Record<string, Plugin>;
2441 documentBaseURI: URI;
2443 contentCSS: string[];
2444 contentStyles: string[];
2447 setMode: (mode: string) => void;
2448 $: DomQueryConstructor;
2449 shortcuts: Shortcuts;
2450 loadedCSS: Record<string, any>;
2451 editorCommands: EditorCommands;
2453 editorManager: EditorManager;
2455 isNotDirty: boolean;
2456 callbackLookup: any;
2457 _nodeChangeDispatcher: NodeChange;
2458 editorUpload: EditorUpload;
2459 annotator: Annotator;
2460 bodyElement: HTMLElement;
2463 container: HTMLElement;
2464 contentAreaContainer: HTMLElement;
2465 contentDocument: Document;
2466 contentWindow: Window;
2467 delegates: Record<string, (event: any) => void>;
2470 editorContainer: HTMLElement;
2471 eventRoot?: Element;
2472 formatter: Formatter;
2473 formElement: HTMLElement;
2474 formEventDelegate: (e: Event) => void;
2475 hasHiddenInput: boolean;
2478 iframeElement: HTMLIFrameElement | null;
2480 initialized: boolean;
2481 notificationManager: NotificationManager;
2483 orgVisibility: string;
2489 selection: EditorSelection;
2490 serializer: DomSerializer;
2491 startContent: string;
2492 targetElm: HTMLElement;
2494 undoManager: UndoManager;
2496 windowManager: WindowManager;
2497 _beforeUnload: () => void;
2498 _eventDispatcher: EventDispatcher<NativeEventMap>;
2500 _pendingNativeEvents: string[];
2501 _selectionOverrides: SelectionOverrides;
2502 _skinLoaded: boolean;
2503 bindPendingEventDelegates: EditorObservable['bindPendingEventDelegates'];
2504 toggleNativeEvent: EditorObservable['toggleNativeEvent'];
2505 unbindAllNativeEvents: EditorObservable['unbindAllNativeEvents'];
2506 fire: EditorObservable['fire'];
2507 on: EditorObservable['on'];
2508 off: EditorObservable['off'];
2509 once: EditorObservable['once'];
2510 hasEventListeners: EditorObservable['hasEventListeners'];
2511 constructor(id: string, settings: RawEditorSettings, editorManager: EditorManager);
2513 focus(skipFocus?: boolean): void;
2514 hasFocus(): boolean;
2515 execCallback(name: string, ...x: any[]): any;
2516 translate(text: Untranslated): TranslatedString;
2517 getParam<K extends keyof ParamTypeMap>(name: string, defaultVal: ParamTypeMap[K], type: K): ParamTypeMap[K];
2518 getParam<K extends keyof EditorSettings>(name: K, defaultVal?: EditorSettings[K], type?: string): EditorSettings[K];
2519 getParam<T>(name: string, defaultVal: T, type?: string): T;
2520 hasPlugin(name: string, loaded?: boolean): boolean;
2521 nodeChanged(args?: any): void;
2522 addCommand(name: string, callback: EditorCommandCallback, scope?: object): void;
2523 addQueryStateHandler(name: string, callback: () => boolean, scope?: any): void;
2524 addQueryValueHandler(name: string, callback: () => string, scope?: any): void;
2525 addShortcut(pattern: string, desc: string, cmdFunc: string | [
2529 ] | (() => void), scope?: any): void;
2530 execCommand(cmd: string, ui?: boolean, value?: any, args?: any): boolean;
2531 queryCommandState(cmd: string): boolean;
2532 queryCommandValue(cmd: string): string;
2533 queryCommandSupported(cmd: string): boolean;
2536 isHidden(): boolean;
2537 setProgressState(state: boolean, time?: number): void;
2538 load(args?: any): string;
2539 save(args?: any): string;
2540 setContent(content: string, args?: SetContentArgs): string;
2541 setContent(content: AstNode, args?: SetContentArgs): AstNode;
2542 setContent(content: Content, args?: SetContentArgs): Content;
2545 } & GetContentArgs): AstNode;
2546 getContent(args?: GetContentArgs): string;
2547 insertContent(content: string, args?: any): void;
2548 resetContent(initialContent?: string): void;
2550 setDirty(state: boolean): void;
2551 getContainer(): HTMLElement;
2552 getContentAreaContainer(): HTMLElement;
2553 getElement(): HTMLElement;
2556 getBody(): HTMLElement;
2557 convertURL(url: string, name: string, elm?: any): string;
2558 addVisual(elm?: HTMLElement): void;
2560 destroy(automatic?: boolean): void;
2561 uploadImages(callback?: UploadCallback): Promise<UploadResult$1[]>;
2562 _scanForImages(): Promise<BlobInfoImagePair[]>;
2565 addMenuItem(): void;
2566 addContextToolbar(): void;
2568 interface UrlObject {
2573 declare type WaitState = 'added' | 'loaded';
2574 declare type AddOnCallback<T> = (editor: Editor, url: string, $?: DomQueryConstructor) => void | T;
2575 declare type AddOnConstructor<T> = new (editor: Editor, url: string, $?: DomQueryConstructor) => T;
2576 interface AddOnManager<T> {
2577 items: AddOnConstructor<T>[];
2578 urls: Record<string, string>;
2579 lookup: Record<string, {
2580 instance: AddOnConstructor<T>;
2581 dependencies?: string[];
2586 callback: () => void;
2588 get: (name: string) => AddOnConstructor<T>;
2589 dependencies: (name: string) => string[];
2590 requireLangPack: (name: string, languages: string) => void;
2591 add: (id: string, addOn: AddOnCallback<T>, dependencies?: string[]) => AddOnConstructor<T>;
2592 remove: (name: string) => void;
2593 createUrl: (baseUrl: UrlObject, dep: string | UrlObject) => UrlObject;
2594 addComponents: (pluginName: string, scripts: string[]) => void;
2595 load: (name: string, addOnUrl: string | UrlObject, success?: () => void, scope?: any, failure?: () => void) => void;
2596 waitFor: (name: string, callback: () => void, state?: WaitState) => void;
2598 interface RangeUtils {
2599 walk: (rng: Range, callback: (nodes: Node[]) => void) => void;
2600 split: (rng: Range) => RangeLikeObject;
2601 normalize: (rng: Range) => boolean;
2603 interface ScriptLoaderSettings {
2604 referrerPolicy?: ReferrerPolicy;
2606 interface ScriptLoaderConstructor {
2607 readonly prototype: ScriptLoader;
2608 new (): ScriptLoader;
2609 ScriptLoader: ScriptLoader;
2611 declare class ScriptLoader {
2612 static ScriptLoader: ScriptLoader;
2616 private scriptLoadedCallbacks;
2617 private queueLoadedCallbacks;
2619 constructor(settings?: ScriptLoaderSettings);
2620 _setReferrerPolicy(referrerPolicy: ReferrerPolicy): void;
2621 loadScript(url: string, success?: () => void, failure?: () => void): void;
2622 isDone(url: string): boolean;
2623 markDone(url: string): void;
2624 add(url: string, success?: () => void, scope?: any, failure?: () => void): void;
2625 load(url: string, success?: () => void, scope?: any, failure?: () => void): void;
2626 remove(url: string): void;
2627 loadQueue(success?: () => void, scope?: any, failure?: (urls: string[]) => void): void;
2628 loadScripts(scripts: string[], success?: () => void, scope?: any, failure?: (urls: string[]) => void): void;
2630 declare type TextProcessCallback = (node: Text, offset: number, text: string) => number;
2635 interface TextSeeker {
2636 backwards: (node: Node, offset: number, process: TextProcessCallback, root?: Node) => Spot | null;
2637 forwards: (node: Node, offset: number, process: TextProcessCallback, root?: Node) => Spot | null;
2639 interface DomTreeWalkerConstructor {
2640 readonly prototype: DomTreeWalker;
2641 new (startNode: Node, rootNode: Node): DomTreeWalker;
2643 declare class DomTreeWalker {
2644 private readonly rootNode;
2646 constructor(startNode: Node, rootNode: Node);
2648 next(shallow?: boolean): Node;
2649 prev(shallow?: boolean): Node;
2650 prev2(shallow?: boolean): Node;
2651 private findSibling;
2652 private findPreviousNode;
2666 contentEditable: boolean;
2667 transparentSrc: string;
2668 caretAfter: boolean;
2670 documentMode: number;
2675 experimentalShadowDom: boolean;
2676 canHaveCSP: boolean;
2678 windowsPhone: boolean;
2680 current: string | undefined;
2682 isEdge: () => boolean;
2683 isChrome: () => boolean;
2684 isIE: () => boolean;
2685 isOpera: () => boolean;
2686 isFirefox: () => boolean;
2687 isSafari: () => boolean;
2690 current: string | undefined;
2692 isWindows: () => boolean;
2693 isiOS: () => boolean;
2694 isAndroid: () => boolean;
2695 isOSX: () => boolean;
2696 isLinux: () => boolean;
2697 isSolaris: () => boolean;
2698 isFreeBSD: () => boolean;
2699 isChromeOS: () => boolean;
2702 isiPad: () => boolean;
2703 isiPhone: () => boolean;
2704 isTablet: () => boolean;
2705 isPhone: () => boolean;
2706 isTouch: () => boolean;
2707 isWebView: () => boolean;
2708 isDesktop: () => boolean;
2711 interface FocusManager {
2712 isEditorUIElement: (elm: Element) => boolean;
2714 interface EntitiesMap {
2715 [name: string]: string;
2717 interface Entities {
2718 encodeRaw: (text: string, attr?: boolean) => string;
2719 encodeAllRaw: (text: string) => string;
2720 encodeNumeric: (text: string, attr?: boolean) => string;
2721 encodeNamed: (text: string, attr?: boolean, entities?: EntitiesMap) => string;
2722 getEncodeFunc: (name: string, entities?: EntitiesMap | string) => (text: string, attr?: boolean) => string;
2723 decode: (text: string) => string;
2725 declare type AttrList = Array<{
2729 map: Record<string, string>;
2731 interface SaxParserSettings {
2732 allow_conditional_comments?: boolean;
2733 allow_html_data_urls?: boolean;
2734 allow_script_urls?: boolean;
2735 allow_svg_data_urls?: boolean;
2736 fix_self_closing?: boolean;
2737 preserve_cdata?: boolean;
2738 remove_internals?: boolean;
2739 self_closing_elements?: Record<string, {}>;
2741 document?: Document;
2742 cdata?: (text: string) => void;
2743 comment?: (text: string) => void;
2744 doctype?: (text: string) => void;
2745 end?: (name: string) => void;
2746 pi?: (name: string, text: string) => void;
2747 start?: (name: string, attrs: AttrList, empty: boolean) => void;
2748 text?: (text: string, raw?: boolean) => void;
2750 declare type ParserFormat = 'html' | 'xhtml' | 'xml';
2751 interface SaxParser {
2752 parse: (html: string, format?: ParserFormat) => void;
2754 interface IconPack {
2755 icons: Record<string, string>;
2757 interface IconManager {
2758 add: (id: string, iconPack: IconPack) => void;
2759 get: (id: string) => IconPack;
2760 has: (id: string) => boolean;
2762 interface Resource {
2763 load: <T = any>(id: string, url: string) => Promise<T>;
2764 add: (id: string, data: any) => void;
2766 declare type WithSubItems<T, K extends keyof T> = T[K] extends Array<any> ? (T & T[K][number]) : T;
2767 interface Props<A extends any[] = any[]> {
2768 Mixins?: Array<Record<string, any>>;
2770 Properties?: string;
2771 Statics?: Record<string, any>;
2772 Defaults?: Record<string, any>;
2773 init?: (...args: A) => void;
2775 declare type ExtendedClass<T extends Props<A>, A extends any[]> = WithSubItems<T, 'Mixins'>;
2776 interface ExtendedClassConstructor<T extends Props<A>, A extends any[] = any[]> extends Class {
2777 readonly prototype: ExtendedClass<T, A>;
2778 new (...args: A): ExtendedClass<T, A>;
2779 [key: string]: T['Statics'];
2782 extend<T extends Props<A>, A extends any[] = any[]>(props: T): ExtendedClassConstructor<T, A>;
2794 declare type ColorConstructor = new (value?: string | RGB | HSV) => Color;
2798 toHex: () => string;
2799 parse: (value: string | RGB | HSV) => Color;
2801 interface DebounceFunc<T extends (...args: any[]) => void> {
2802 (...args: Parameters<T>): void;
2806 requestAnimationFrame: (callback: () => void, element?: HTMLElement) => void;
2807 setEditorInterval: (editor: Editor, callback: () => void, time?: number) => number;
2808 setEditorTimeout: (editor: Editor, callback: () => void, time?: number) => number;
2809 setInterval: (callback: () => void, time?: number) => number;
2810 setTimeout: (callback: () => void, time?: number) => number;
2811 clearInterval: (id?: number) => void;
2812 clearTimeout: (id?: number) => void;
2813 debounce: <T extends (...args: any[]) => any>(callback: T, time?: number) => DebounceFunc<T>;
2814 throttle: <T extends (...args: any[]) => any>(callback: T, time?: number) => DebounceFunc<T>;
2816 declare type UploadResult = UploadResult$2;
2817 interface ImageUploader {
2818 upload: (blobInfos: BlobInfo[], showNotification?: boolean) => Promise<UploadResult[]>;
2820 interface JSONUtils {
2821 serialize: (obj: any) => string;
2822 parse: (text: string) => any;
2824 interface JSONPSettings {
2827 callback: (json: string) => void;
2832 send(this: JSONP, settings: JSONPSettings): void;
2834 interface JSONRequestSettings {
2835 crossDomain?: boolean;
2836 requestheaders?: Record<string, {
2843 success_scope?: any;
2844 success?: (data: any) => void;
2845 error?: (error: any, xhr: XMLHttpRequest) => void;
2847 interface JSONRequestArgs extends JSONRequestSettings {
2852 interface JSONRequestConstructor {
2853 readonly prototype: JSONRequest;
2854 new (settings?: JSONRequestSettings): JSONRequest;
2855 sendRPC: (o: JSONRequestArgs) => void;
2857 declare class JSONRequest {
2858 static sendRPC(o: JSONRequestArgs): void;
2859 settings: JSONRequestSettings;
2861 constructor(settings?: JSONRequestSettings);
2862 send(args: JSONRequestArgs): void;
2864 interface KeyboardLikeEvent {
2885 modifierPressed: (e: KeyboardLikeEvent) => boolean;
2886 metaKeyPressed: (e: KeyboardLikeEvent) => boolean;
2888 interface XHRSettings {
2890 content_type?: string;
2891 crossDomain?: boolean;
2892 data?: Document | BodyInit;
2893 requestheaders?: Record<string, {
2901 success_scope?: any;
2902 error?: (message: 'TIMED_OUT' | 'GENERAL', xhr: XMLHttpRequest, settings: XHRSettings) => void;
2903 success?: (text: string, xhr: XMLHttpRequest, settings: XHRSettings) => void;
2905 interface XHREventMap {
2907 settings: XHRSettings;
2910 xhr: XMLHttpRequest;
2911 settings: XHRSettings;
2914 interface XHR extends Observable<XHREventMap> {
2915 send(this: XHR, settings: XHRSettings): void;
2917 interface DOMUtilsNamespace {
2918 new (doc: Document, settings: Partial<DOMUtilsSettings>): DOMUtils;
2920 nodeIndex: (node: Node, normalized?: boolean) => number;
2922 interface RangeUtilsNamespace {
2923 new (dom: DOMUtils): RangeUtils;
2924 compareRanges: (rng1: RangeLikeObject, rng2: RangeLikeObject) => boolean;
2925 getCaretRangeFromPoint: (clientX: number, clientY: number, doc: Document) => Range;
2926 getSelectedNode: (range: Range) => Node;
2927 getNode: (container: Node, offset: number) => Node;
2929 interface AddOnManagerNamespace {
2930 new <T>(): AddOnManager<T>;
2931 language: string | undefined;
2932 languageLoad: boolean;
2934 PluginManager: PluginManager;
2935 ThemeManager: ThemeManager;
2937 interface BookmarkManagerNamespace {
2938 (selection: EditorSelection): BookmarkManager;
2939 isBookmarkNode: (node: Node) => boolean;
2941 interface SaxParserNamespace {
2942 new (settings?: SaxParserSettings, schema?: Schema): SaxParser;
2943 findEndTag: (schema: Schema, html: string, startIndex: number) => number;
2945 interface TinyMCE extends EditorManager {
2950 Promise: PromiseConstructor;
2954 URI: URIConstructor;
2956 EventDispatcher: EventDispatcherConstructor<any>;
2957 Observable: Observable<any>;
2961 JSONRequest: JSONRequestConstructor;
2963 LocalStorage: Storage;
2964 Color: ColorConstructor;
2965 ImageUploader: ImageUploader;
2968 EventUtils: EventUtilsConstructor;
2970 DomQuery: DomQueryConstructor;
2971 TreeWalker: DomTreeWalkerConstructor;
2972 TextSeeker: new (dom: DOMUtils, isBlockBoundary?: (node: Node) => boolean) => TextSeeker;
2973 DOMUtils: DOMUtilsNamespace;
2974 ScriptLoader: ScriptLoaderConstructor;
2975 RangeUtils: RangeUtilsNamespace;
2976 Serializer: new (settings: DomSerializerSettings, editor?: Editor) => DomSerializer;
2977 ControlSelection: (selection: EditorSelection, editor: Editor) => ControlSelection;
2978 BookmarkManager: BookmarkManagerNamespace;
2979 Selection: new (dom: DOMUtils, win: Window, serializer: DomSerializer, editor: Editor) => EditorSelection;
2980 StyleSheetLoader: new (documentOrShadowRoot: Document | ShadowRoot, settings: StyleSheetLoaderSettings) => StyleSheetLoader;
2984 Styles: new (settings?: StylesSettings, schema?: Schema) => Styles;
2986 Node: AstNodeConstructor;
2987 Schema: new (settings?: SchemaSettings) => Schema;
2988 SaxParser: SaxParserNamespace;
2989 DomParser: new (settings?: DomParserSettings, schema?: Schema) => DomParser;
2990 Writer: new (settings?: WriterSettings) => Writer;
2991 Serializer: new (settings?: HtmlSerializerSettings, schema?: Schema) => HtmlSerializer;
2993 AddOnManager: AddOnManagerNamespace;
2994 Annotator: new (editor: Editor) => Annotator;
2995 Editor: EditorConstructor;
2996 EditorCommands: EditorCommandsConstructor;
2997 EditorManager: EditorManager;
2998 EditorObservable: EditorObservable;
3000 FocusManager: FocusManager;
3001 Formatter: new (editor: Editor) => Formatter;
3002 NotificationManager: new (editor: Editor) => NotificationManager;
3003 Shortcuts: ShortcutsConstructor;
3004 UndoManager: new (editor: Editor) => UndoManager;
3005 WindowManager: new (editor: Editor) => WindowManager;
3007 ScriptLoader: ScriptLoader;
3008 PluginManager: PluginManager;
3009 ThemeManager: ThemeManager;
3010 IconManager: IconManager;
3012 trim: Tools['trim'];
3013 isArray: Tools['isArray'];
3015 toArray: Tools['toArray'];
3016 makeMap: Tools['makeMap'];
3017 each: Tools['each'];
3019 grep: Tools['grep'];
3020 inArray: Tools['inArray'];
3021 extend: Tools['extend'];
3022 create: Tools['create'];
3023 walk: Tools['walk'];
3024 createNS: Tools['createNS'];
3025 resolve: Tools['resolve'];
3026 explode: Tools['explode'];
3027 _addCacheSuffix: Tools['_addCacheSuffix'];
3030 isIE: false | number;
3034 declare const tinymce: TinyMCE;
3035 export default tinymce;
3036 export { AddOnManager, Annotator, AstNode, Bookmark, BookmarkManager, Class, Color, ControlSelection, DOMUtils, Delay, DomParser, DomParserSettings, DomQuery, DomSerializer, DomSerializerSettings, DomTreeWalker, Editor, EditorCommands, EditorEvent, EditorManager, EditorModeApi, EditorObservable, EditorSelection, EditorSettings, Entities, Env, EventDispatcher, EventUtils, EventTypes_d as Events, FocusManager, Format_d as Formats, Formatter, GeomRect, HtmlSerializer, HtmlSerializerSettings, I18n, IconManager, JSONUtils as JSON, JSONP, JSONRequest, JSONRequestArgs, JSONRequestSettings, NotificationApi, NotificationManager, NotificationSpec, Observable, Plugin, PluginManager, RangeUtils, RawEditorSettings, Rect, Resource, SaxParser, SaxParserSettings, Schema, SchemaSettings, ScriptLoader, Shortcuts, StyleSheetLoader, Styles, TextSeeker, Theme, ThemeManager, TinyMCE, Tools, URI, Ui_d as Ui, UndoManager, VK, WindowManager, Writer, WriterSettings, XHR, XHRSettings };