1 interface StringPathBookmark {
6 interface RangeBookmark {
10 interface IdBookmark {
15 interface IndexBookmark {
19 interface PathBookmark {
22 isFakeCaret?: boolean;
25 declare type Bookmark = StringPathBookmark | RangeBookmark | IdBookmark | IndexBookmark | PathBookmark;
26 declare type NormalizedEvent<E, T = any> = E & {
27 readonly type: string;
29 readonly isDefaultPrevented: () => boolean;
30 readonly preventDefault: () => void;
31 readonly isPropagationStopped: () => boolean;
32 readonly stopPropagation: () => void;
33 readonly isImmediatePropagationStopped: () => boolean;
34 readonly stopImmediatePropagation: () => void;
36 declare type MappedEvent<T, K extends string> = K extends keyof T ? T[K] : any;
37 interface NativeEventMap {
40 'beforeinput': InputEvent;
42 'compositionend': Event;
43 'compositionstart': Event;
44 'compositionupdate': Event;
45 'contextmenu': PointerEvent;
46 'copy': ClipboardEvent;
47 'cut': ClipboardEvent;
48 'dblclick': MouseEvent;
50 'dragdrop': DragEvent;
52 'draggesture': DragEvent;
53 'dragover': DragEvent;
54 'dragstart': DragEvent;
57 'focusin': FocusEvent;
58 'focusout': FocusEvent;
60 'keydown': KeyboardEvent;
61 'keypress': KeyboardEvent;
62 'keyup': KeyboardEvent;
63 'mousedown': MouseEvent;
64 'mouseenter': MouseEvent;
65 'mouseleave': MouseEvent;
66 'mousemove': MouseEvent;
67 'mouseout': MouseEvent;
68 'mouseover': MouseEvent;
69 'mouseup': MouseEvent;
70 'paste': ClipboardEvent;
71 'selectionchange': Event;
73 'touchend': TouchEvent;
74 'touchmove': TouchEvent;
75 'touchstart': TouchEvent;
76 'touchcancel': TouchEvent;
79 declare type EditorEvent<T> = NormalizedEvent<T>;
80 interface EventDispatcherSettings {
82 toggleEvent?: (name: string, state: boolean) => void | boolean;
83 beforeFire?: <T>(args: EditorEvent<T>) => void;
85 interface EventDispatcherConstructor<T extends NativeEventMap> {
86 readonly prototype: EventDispatcher<T>;
87 new (settings?: EventDispatcherSettings): EventDispatcher<T>;
88 isNative: (name: string) => boolean;
90 declare class EventDispatcher<T> {
91 static isNative(name: string): boolean;
92 private readonly settings;
93 private readonly scope;
94 private readonly toggleEvent;
96 constructor(settings?: Record<string, any>);
97 fire<K extends string, U extends MappedEvent<T, K>>(name: K, args?: U): EditorEvent<U>;
98 dispatch<K extends string, U extends MappedEvent<T, K>>(name: K, args?: U): EditorEvent<U>;
99 on<K extends string>(name: K, callback: false | ((event: EditorEvent<MappedEvent<T, K>>) => void), prepend?: boolean, extra?: {}): this;
100 off<K extends string>(name?: K, callback?: (event: EditorEvent<MappedEvent<T, K>>) => void): this;
101 once<K extends string>(name: K, callback: (event: EditorEvent<MappedEvent<T, K>>) => void, prepend?: boolean): this;
102 has(name: string): boolean;
104 declare const enum UndoLevelType {
105 Fragmented = "fragmented",
106 Complete = "complete"
108 interface UndoLevel {
113 beforeBookmark: Bookmark;
115 interface UndoManager {
118 add: (level?: UndoLevel, event?: EditorEvent<any>) => UndoLevel;
119 dispatchChange: () => void;
120 beforeChange: () => void;
121 undo: () => UndoLevel;
122 redo: () => UndoLevel;
125 hasUndo: () => boolean;
126 hasRedo: () => boolean;
127 transact: (callback: () => void) => UndoLevel;
128 ignore: (callback: () => void) => void;
129 extra: (callback1: () => void, callback2: () => void) => void;
131 declare type SchemaType = 'html4' | 'html5' | 'html5-strict';
132 interface SchemaSettings {
133 custom_elements?: string;
134 extended_valid_elements?: string;
135 invalid_elements?: string;
136 invalid_styles?: string | Record<string, string>;
138 valid_children?: string;
139 valid_classes?: string | Record<string, string>;
140 valid_elements?: string;
141 valid_styles?: string | Record<string, string>;
142 verify_html?: boolean;
143 padd_empty_block_inline_children?: boolean;
145 interface Attribute {
147 defaultValue?: string;
148 forcedValue?: string;
149 validValues?: Record<string, {}>;
151 interface DefaultAttribute {
155 interface AttributePattern {
156 defaultValue?: string;
157 forcedValue?: string;
160 validValues?: Record<string, {}>;
162 interface ElementRule {
163 attributes: Record<string, Attribute>;
164 attributesDefault?: DefaultAttribute[];
165 attributesForced?: DefaultAttribute[];
166 attributesOrder: string[];
167 attributePatterns?: AttributePattern[];
168 attributesRequired?: string[];
170 removeEmpty?: boolean;
171 removeEmptyAttrs?: boolean;
172 paddInEmptyBlock?: boolean;
174 interface SchemaElement extends ElementRule {
176 parentsRequired?: string[];
179 interface SchemaMap {
182 interface SchemaRegExpMap {
183 [name: string]: RegExp;
187 children: Record<string, SchemaMap>;
188 elements: Record<string, SchemaElement>;
189 getValidStyles: () => Record<string, string[]> | undefined;
190 getValidClasses: () => Record<string, SchemaMap> | undefined;
191 getBlockElements: () => SchemaMap;
192 getInvalidStyles: () => Record<string, SchemaMap> | undefined;
193 getVoidElements: () => SchemaMap;
194 getTextBlockElements: () => SchemaMap;
195 getTextInlineElements: () => SchemaMap;
196 getBoolAttrs: () => SchemaMap;
197 getElementRule: (name: string) => SchemaElement | undefined;
198 getSelfClosingElements: () => SchemaMap;
199 getNonEmptyElements: () => SchemaMap;
200 getMoveCaretBeforeOnEnterElements: () => SchemaMap;
201 getWhitespaceElements: () => SchemaMap;
202 getSpecialElements: () => SchemaRegExpMap;
203 isValidChild: (name: string, child: string) => boolean;
204 isValid: (name: string, attr?: string) => boolean;
205 getCustomElements: () => SchemaMap;
206 addValidElements: (validElements: string) => void;
207 setValidElements: (validElements: string) => void;
208 addCustomElements: (customElements: string) => void;
209 addValidChildren: (validChildren: any) => void;
211 declare type Attributes$1 = Array<{
215 map: Record<string, string>;
217 interface AstNodeConstructor {
218 readonly prototype: AstNode;
219 new (name: string, type: number): AstNode;
220 create(name: string, attrs?: Record<string, string>): AstNode;
222 declare class AstNode {
223 static create(name: string, attrs?: Record<string, string>): AstNode;
226 attributes?: Attributes$1;
229 firstChild?: AstNode;
234 constructor(name: string, type: number);
235 replace(node: AstNode): AstNode;
236 attr(name: string, value: string | null): AstNode | undefined;
237 attr(name: Record<string, string | null>): AstNode | undefined;
238 attr(name: string): string | undefined;
240 wrap(wrapper: AstNode): AstNode;
243 append(node: AstNode): AstNode;
244 insert(node: AstNode, refNode: AstNode, before?: boolean): AstNode;
245 getAll(name: string): AstNode[];
246 children(): AstNode[];
248 isEmpty(elements: SchemaMap, whitespace?: SchemaMap, predicate?: (node: AstNode) => boolean): boolean;
249 walk(prev?: boolean): AstNode;
251 declare type Content = string | AstNode;
252 declare type ContentFormat = 'raw' | 'text' | 'html' | 'tree';
253 interface GetContentArgs {
254 format: ContentFormat;
259 source_view?: boolean;
262 interface SetContentArgs {
267 no_selection?: boolean;
270 interface GetSelectionContentArgs extends GetContentArgs {
272 contextual?: boolean;
274 interface SetSelectionContentArgs extends SetContentArgs {
278 interface BlobInfoData {
290 filename: () => string;
292 base64: () => string;
293 blobUri: () => string;
294 uri: () => string | undefined;
296 interface BlobCache {
298 (o: BlobInfoData): BlobInfo;
299 (id: string, blob: Blob, base64: string, name?: string, filename?: string): BlobInfo;
301 add: (blobInfo: BlobInfo) => void;
302 get: (id: string) => BlobInfo | undefined;
303 getByUri: (blobUri: string) => BlobInfo | undefined;
304 getByData: (base64: string, type: string) => BlobInfo | undefined;
305 findFirst: (predicate: (blobInfo: BlobInfo) => boolean) => BlobInfo | undefined;
306 removeByUri: (blobUri: string) => void;
309 interface BlobInfoImagePair {
310 image: HTMLImageElement;
313 declare class NodeChange {
314 private readonly editor;
316 constructor(editor: Editor);
317 nodeChanged(args?: any): void;
318 private isSameElementPath;
320 interface SelectionOverrides {
321 showCaret: (direction: number, node: Element, before: boolean, scrollIntoView?: boolean) => Range | null;
322 showBlockCaretContainer: (blockCaretContainer: Element) => void;
323 hideFakeCaret: () => void;
327 refreshContentEditable(): void;
330 declare type DecoratorData = Record<string, any>;
331 declare type Decorator = (uid: string, data: DecoratorData) => {
335 declare type AnnotationListener = (state: boolean, name: string, data?: {
339 declare type AnnotationListenerApi = AnnotationListener;
340 interface AnnotatorSettings {
342 persistent?: boolean;
344 interface Annotator {
345 register: (name: string, settings: AnnotatorSettings) => void;
346 annotate: (name: string, data: DecoratorData) => void;
347 annotationChanged: (name: string, f: AnnotationListenerApi) => void;
348 remove: (name: string) => void;
349 removeAll: (name: string) => void;
350 getAll: (name: string) => Record<string, Element[]>;
359 inflate: (rect: GeomRect, w: number, h: number) => GeomRect;
360 relativePosition: (rect: GeomRect, targetRect: GeomRect, rel: string) => GeomRect;
361 findBestRelativePosition: (rect: GeomRect, targetRect: GeomRect, constrainRect: GeomRect, rels: string[]) => string | null;
362 intersect: (rect: GeomRect, cropRect: GeomRect) => GeomRect | null;
363 clamp: (rect: GeomRect, clampRect: GeomRect, fixedSize?: boolean) => GeomRect;
364 create: (x: number, y: number, w: number, h: number) => GeomRect;
365 fromClientRect: (clientRect: DOMRect) => GeomRect;
367 interface NotificationManagerImpl {
368 open: (spec: NotificationSpec, closeCallback?: () => void) => NotificationApi;
369 close: <T extends NotificationApi>(notification: T) => void;
370 getArgs: <T extends NotificationApi>(notification: T) => NotificationSpec;
372 interface NotificationSpec {
373 type?: 'info' | 'warning' | 'error' | 'success';
376 progressBar?: boolean;
378 closeButton?: boolean;
380 interface NotificationApi {
383 value: (percent: number) => void;
385 text: (text: string) => void;
386 reposition: () => void;
387 getEl: () => HTMLElement;
388 settings: NotificationSpec;
390 interface NotificationManager {
391 open: (spec: NotificationSpec) => NotificationApi;
393 getNotifications: () => NotificationApi[];
395 interface UploadFailure {
399 declare type ProgressFn = (percent: number) => void;
400 declare type UploadHandler = (blobInfo: BlobInfo, progress: ProgressFn) => Promise<string>;
401 interface UploadResult$2 {
405 error?: UploadFailure;
407 interface RawPattern {
415 interface InlineBasePattern {
416 readonly start: string;
417 readonly end: string;
419 interface InlineFormatPattern extends InlineBasePattern {
420 readonly type: 'inline-format';
421 readonly format: string[];
423 interface InlineCmdPattern extends InlineBasePattern {
424 readonly type: 'inline-command';
425 readonly cmd: string;
426 readonly value?: any;
428 declare type InlinePattern = InlineFormatPattern | InlineCmdPattern;
429 interface BlockBasePattern {
430 readonly start: string;
432 interface BlockFormatPattern extends BlockBasePattern {
433 readonly type: 'block-format';
434 readonly format: string;
436 interface BlockCmdPattern extends BlockBasePattern {
437 readonly type: 'block-command';
438 readonly cmd: string;
439 readonly value?: any;
441 declare type BlockPattern = BlockFormatPattern | BlockCmdPattern;
442 declare type Pattern = InlinePattern | BlockPattern;
443 interface AlertBannerSpec {
445 level: 'info' | 'warn' | 'error' | 'success';
450 interface ButtonSpec {
457 borderless?: boolean;
458 buttonType?: 'primary' | 'secondary' | 'toolbar';
460 interface FormComponentSpec {
464 interface FormComponentWithLabelSpec extends FormComponentSpec {
467 interface CheckboxSpec extends FormComponentSpec {
472 interface CollectionSpec extends FormComponentWithLabelSpec {
475 interface CollectionItem {
480 interface ColorInputSpec extends FormComponentWithLabelSpec {
483 interface ColorPickerSpec extends FormComponentWithLabelSpec {
486 interface CustomEditorInit {
487 setValue: (value: string) => void;
488 getValue: () => string;
491 declare type CustomEditorInitFn = (elm: HTMLElement, settings: any) => Promise<CustomEditorInit>;
492 interface CustomEditorOldSpec extends FormComponentSpec {
493 type: 'customeditor';
495 init: (e: HTMLElement) => Promise<CustomEditorInit>;
497 interface CustomEditorNewSpec extends FormComponentSpec {
498 type: 'customeditor';
504 declare type CustomEditorSpec = CustomEditorOldSpec | CustomEditorNewSpec;
505 interface DropZoneSpec extends FormComponentWithLabelSpec {
511 items: BodyComponentSpec[];
513 interface HtmlPanelSpec {
516 presets?: 'presentation' | 'document';
518 interface IframeSpec extends FormComponentWithLabelSpec {
521 transparent?: boolean;
523 interface ImagePreviewSpec extends FormComponentSpec {
524 type: 'imagepreview';
527 interface InputSpec extends FormComponentWithLabelSpec {
530 placeholder?: string;
534 interface LabelSpec {
537 items: BodyComponentSpec[];
539 interface ListBoxSingleItemSpec {
543 interface ListBoxNestedItemSpec {
545 items: ListBoxItemSpec[];
547 declare type ListBoxItemSpec = ListBoxNestedItemSpec | ListBoxSingleItemSpec;
548 interface ListBoxSpec extends FormComponentWithLabelSpec {
550 items: ListBoxItemSpec[];
553 interface PanelSpec {
556 items: BodyComponentSpec[];
558 interface SelectBoxItemSpec {
562 interface SelectBoxSpec extends FormComponentWithLabelSpec {
564 items: SelectBoxItemSpec[];
568 interface SizeInputSpec extends FormComponentWithLabelSpec {
573 interface SliderSpec extends FormComponentSpec {
579 interface TableSpec {
584 interface TextAreaSpec extends FormComponentWithLabelSpec {
586 placeholder?: string;
590 interface UrlInputSpec extends FormComponentWithLabelSpec {
592 filetype?: 'image' | 'media' | 'file';
595 interface UrlInputData {
601 declare type BodyComponentSpec = BarSpec | ButtonSpec | CheckboxSpec | TextAreaSpec | InputSpec | ListBoxSpec | SelectBoxSpec | SizeInputSpec | SliderSpec | IframeSpec | HtmlPanelSpec | UrlInputSpec | DropZoneSpec | ColorInputSpec | GridSpec | ColorPickerSpec | ImagePreviewSpec | AlertBannerSpec | CollectionSpec | LabelSpec | TableSpec | PanelSpec | CustomEditorSpec;
604 items: BodyComponentSpec[];
606 interface CommonMenuItemSpec {
610 meta?: Record<string, any>;
613 interface CommonMenuItemInstanceApi {
614 isEnabled: () => boolean;
615 setEnabled: (state: boolean) => void;
617 interface DialogToggleMenuItemSpec extends CommonMenuItemSpec {
618 type?: 'togglemenuitem';
621 declare type DialogFooterMenuButtonItemSpec = DialogToggleMenuItemSpec;
622 interface BaseDialogFooterButtonSpec {
624 align?: 'start' | 'end';
628 buttonType?: 'primary' | 'secondary';
630 interface DialogFooterNormalButtonSpec extends BaseDialogFooterButtonSpec {
631 type: 'submit' | 'cancel' | 'custom';
634 interface DialogFooterMenuButtonSpec extends BaseDialogFooterButtonSpec {
639 items: DialogFooterMenuButtonItemSpec[];
641 declare type DialogFooterButtonSpec = DialogFooterNormalButtonSpec | DialogFooterMenuButtonSpec;
645 items: BodyComponentSpec[];
647 interface TabPanelSpec {
651 declare type DialogDataItem = any;
652 declare type DialogData = Record<string, DialogDataItem>;
653 interface DialogInstanceApi<T extends DialogData> {
655 setData: (data: Partial<T>) => void;
656 setEnabled: (name: string, state: boolean) => void;
657 focus: (name: string) => void;
658 showTab: (name: string) => void;
659 redial: (nu: DialogSpec<T>) => void;
660 block: (msg: string) => void;
664 interface DialogActionDetails {
668 interface DialogChangeDetails<T> {
671 interface DialogTabChangeDetails {
675 declare type DialogActionHandler<T> = (api: DialogInstanceApi<T>, details: DialogActionDetails) => void;
676 declare type DialogChangeHandler<T> = (api: DialogInstanceApi<T>, details: DialogChangeDetails<T>) => void;
677 declare type DialogSubmitHandler<T> = (api: DialogInstanceApi<T>) => void;
678 declare type DialogCloseHandler = () => void;
679 declare type DialogCancelHandler<T> = (api: DialogInstanceApi<T>) => void;
680 declare type DialogTabChangeHandler<T> = (api: DialogInstanceApi<T>, details: DialogTabChangeDetails) => void;
681 declare type DialogSize = 'normal' | 'medium' | 'large';
682 interface DialogSpec<T extends DialogData> {
685 body: TabPanelSpec | PanelSpec;
686 buttons: DialogFooterButtonSpec[];
687 initialData?: Partial<T>;
688 onAction?: DialogActionHandler<T>;
689 onChange?: DialogChangeHandler<T>;
690 onSubmit?: DialogSubmitHandler<T>;
691 onClose?: DialogCloseHandler;
692 onCancel?: DialogCancelHandler<T>;
693 onTabChange?: DialogTabChangeHandler<T>;
695 interface UrlDialogInstanceApi {
696 block: (msg: string) => void;
699 sendMessage: (msg: any) => void;
701 interface UrlDialogActionDetails {
705 interface UrlDialogMessage {
709 declare type UrlDialogActionHandler = (api: UrlDialogInstanceApi, actions: UrlDialogActionDetails) => void;
710 declare type UrlDialogCloseHandler = () => void;
711 declare type UrlDialogCancelHandler = (api: UrlDialogInstanceApi) => void;
712 declare type UrlDialogMessageHandler = (api: UrlDialogInstanceApi, message: UrlDialogMessage) => void;
713 interface UrlDialogFooterButtonSpec extends DialogFooterNormalButtonSpec {
714 type: 'cancel' | 'custom';
716 interface UrlDialogSpec {
721 buttons?: UrlDialogFooterButtonSpec[];
722 onAction?: UrlDialogActionHandler;
723 onClose?: UrlDialogCloseHandler;
724 onCancel?: UrlDialogCancelHandler;
725 onMessage?: UrlDialogMessageHandler;
727 declare type CardContainerDirection = 'vertical' | 'horizontal';
728 declare type CardContainerAlign = 'left' | 'right';
729 declare type CardContainerValign = 'top' | 'middle' | 'bottom';
730 interface CardContainerSpec {
731 type: 'cardcontainer';
732 items: CardItemSpec[];
733 direction?: CardContainerDirection;
734 align?: CardContainerAlign;
735 valign?: CardContainerValign;
737 interface CardImageSpec {
743 interface CardTextSpec {
749 declare type CardItemSpec = CardContainerSpec | CardImageSpec | CardTextSpec;
750 interface CardMenuItemInstanceApi extends CommonMenuItemInstanceApi {
752 interface CardMenuItemSpec extends Omit<CommonMenuItemSpec, 'text' | 'shortcut'> {
753 type: 'cardmenuitem';
755 items: CardItemSpec[];
756 onSetup?: (api: CardMenuItemInstanceApi) => (api: CardMenuItemInstanceApi) => void;
757 onAction?: (api: CardMenuItemInstanceApi) => void;
759 interface SeparatorMenuItemSpec {
763 declare type ColumnTypes$1 = number | 'auto';
764 declare type SeparatorItemSpec = SeparatorMenuItemSpec;
765 interface AutocompleterItemSpec {
766 type?: 'autocompleteitem';
770 meta?: Record<string, any>;
772 declare type AutocompleterContents = SeparatorItemSpec | AutocompleterItemSpec | CardMenuItemSpec;
773 interface AutocompleterSpec {
774 type?: 'autocompleter';
777 columns?: ColumnTypes$1;
778 matches?: (rng: Range, text: string, pattern: string) => boolean;
779 fetch: (pattern: string, maxResults: number, fetchOptions: Record<string, any>) => Promise<AutocompleterContents[]>;
780 onAction: (autocompleterApi: AutocompleterInstanceApi, rng: Range, value: string, meta: Record<string, any>) => void;
782 highlightOn?: string[];
784 interface AutocompleterInstanceApi {
786 reload: (fetchOptions: Record<string, any>) => void;
788 declare type ContextPosition = 'node' | 'selection' | 'line';
789 declare type ContextScope = 'node' | 'editor';
790 interface ContextBarSpec {
791 predicate?: (elem: Element) => boolean;
792 position?: ContextPosition;
793 scope?: ContextScope;
795 interface BaseToolbarButtonSpec<I extends BaseToolbarButtonInstanceApi> {
800 onSetup?: (api: I) => (api: I) => void;
802 interface BaseToolbarButtonInstanceApi {
803 isEnabled: () => boolean;
804 setEnabled: (state: boolean) => void;
806 interface ToolbarButtonSpec extends BaseToolbarButtonSpec<ToolbarButtonInstanceApi> {
808 onAction: (api: ToolbarButtonInstanceApi) => void;
810 interface ToolbarButtonInstanceApi extends BaseToolbarButtonInstanceApi {
812 interface BaseToolbarToggleButtonSpec<I extends BaseToolbarButtonInstanceApi> extends BaseToolbarButtonSpec<I> {
815 interface BaseToolbarToggleButtonInstanceApi extends BaseToolbarButtonInstanceApi {
816 isActive: () => boolean;
817 setActive: (state: boolean) => void;
819 interface ToolbarToggleButtonSpec extends BaseToolbarToggleButtonSpec<ToolbarToggleButtonInstanceApi> {
820 type?: 'togglebutton';
821 onAction: (api: ToolbarToggleButtonInstanceApi) => void;
823 interface ToolbarToggleButtonInstanceApi extends BaseToolbarToggleButtonInstanceApi {
825 interface ContextFormLaunchButtonApi extends BaseToolbarButtonSpec<BaseToolbarButtonInstanceApi> {
826 type: 'contextformbutton';
828 interface ContextFormLaunchToggleButtonSpec extends BaseToolbarToggleButtonSpec<BaseToolbarToggleButtonInstanceApi> {
829 type: 'contextformtogglebutton';
831 interface ContextFormButtonInstanceApi extends BaseToolbarButtonInstanceApi {
833 interface ContextFormToggleButtonInstanceApi extends BaseToolbarToggleButtonInstanceApi {
835 interface ContextFormButtonSpec extends BaseToolbarButtonSpec<ContextFormButtonInstanceApi> {
836 type?: 'contextformbutton';
838 onAction: (formApi: ContextFormInstanceApi, api: ContextFormButtonInstanceApi) => void;
840 interface ContextFormToggleButtonSpec extends BaseToolbarToggleButtonSpec<ContextFormToggleButtonInstanceApi> {
841 type?: 'contextformtogglebutton';
842 onAction: (formApi: ContextFormInstanceApi, buttonApi: ContextFormToggleButtonInstanceApi) => void;
845 interface ContextFormInstanceApi {
847 getValue: () => string;
849 interface ContextFormSpec extends ContextBarSpec {
850 type?: 'contextform';
851 initValue?: () => string;
853 launch?: ContextFormLaunchButtonApi | ContextFormLaunchToggleButtonSpec;
854 commands: Array<ContextFormToggleButtonSpec | ContextFormButtonSpec>;
856 interface ContextToolbarSpec extends ContextBarSpec {
857 type?: 'contexttoolbar';
860 interface ChoiceMenuItemSpec extends CommonMenuItemSpec {
864 interface ChoiceMenuItemInstanceApi extends CommonMenuItemInstanceApi {
865 isActive: () => boolean;
866 setActive: (state: boolean) => void;
868 interface ContextMenuItem extends CommonMenuItemSpec {
872 onAction: () => void;
874 interface ContextSubMenu extends CommonMenuItemSpec {
878 getSubmenuItems: () => string | Array<ContextMenuContents>;
880 declare type ContextMenuContents = string | ContextMenuItem | SeparatorMenuItemSpec | ContextSubMenu;
881 interface ContextMenuApi {
882 update: (element: Element) => string | Array<ContextMenuContents>;
884 interface FancyActionArgsMap {
893 interface BaseFancyMenuItemSpec<T extends keyof FancyActionArgsMap> {
894 type: 'fancymenuitem';
896 initData?: Record<string, unknown>;
897 onAction?: (data: FancyActionArgsMap[T]) => void;
899 interface InsertTableMenuItemSpec extends BaseFancyMenuItemSpec<'inserttable'> {
900 fancytype: 'inserttable';
903 interface ColorSwatchMenuItemSpec extends BaseFancyMenuItemSpec<'colorswatch'> {
904 fancytype: 'colorswatch';
906 allowCustomColors?: boolean;
907 colors: ChoiceMenuItemSpec[];
910 declare type FancyMenuItemSpec = InsertTableMenuItemSpec | ColorSwatchMenuItemSpec;
911 interface MenuItemSpec extends CommonMenuItemSpec {
914 onSetup?: (api: MenuItemInstanceApi) => (api: MenuItemInstanceApi) => void;
915 onAction?: (api: MenuItemInstanceApi) => void;
917 interface MenuItemInstanceApi extends CommonMenuItemInstanceApi {
919 declare type NestedMenuItemContents = string | MenuItemSpec | NestedMenuItemSpec | ToggleMenuItemSpec | SeparatorMenuItemSpec | FancyMenuItemSpec;
920 interface NestedMenuItemSpec extends CommonMenuItemSpec {
921 type?: 'nestedmenuitem';
923 getSubmenuItems: () => string | Array<NestedMenuItemContents>;
924 onSetup?: (api: NestedMenuItemInstanceApi) => (api: NestedMenuItemInstanceApi) => void;
926 interface NestedMenuItemInstanceApi extends CommonMenuItemInstanceApi {
928 interface ToggleMenuItemSpec extends CommonMenuItemSpec {
929 type?: 'togglemenuitem';
932 onSetup?: (api: ToggleMenuItemInstanceApi) => void;
933 onAction: (api: ToggleMenuItemInstanceApi) => void;
935 interface ToggleMenuItemInstanceApi extends CommonMenuItemInstanceApi {
936 isActive: () => boolean;
937 setActive: (state: boolean) => void;
939 type PublicDialog_d_AlertBannerSpec = AlertBannerSpec;
940 type PublicDialog_d_BarSpec = BarSpec;
941 type PublicDialog_d_BodyComponentSpec = BodyComponentSpec;
942 type PublicDialog_d_ButtonSpec = ButtonSpec;
943 type PublicDialog_d_CheckboxSpec = CheckboxSpec;
944 type PublicDialog_d_CollectionItem = CollectionItem;
945 type PublicDialog_d_CollectionSpec = CollectionSpec;
946 type PublicDialog_d_ColorInputSpec = ColorInputSpec;
947 type PublicDialog_d_ColorPickerSpec = ColorPickerSpec;
948 type PublicDialog_d_CustomEditorSpec = CustomEditorSpec;
949 type PublicDialog_d_CustomEditorInit = CustomEditorInit;
950 type PublicDialog_d_CustomEditorInitFn = CustomEditorInitFn;
951 type PublicDialog_d_DialogData = DialogData;
952 type PublicDialog_d_DialogSize = DialogSize;
953 type PublicDialog_d_DialogSpec<_0> = DialogSpec<_0>;
954 type PublicDialog_d_DialogInstanceApi<_0> = DialogInstanceApi<_0>;
955 type PublicDialog_d_DialogFooterButtonSpec = DialogFooterButtonSpec;
956 type PublicDialog_d_DialogActionDetails = DialogActionDetails;
957 type PublicDialog_d_DialogChangeDetails<_0> = DialogChangeDetails<_0>;
958 type PublicDialog_d_DialogTabChangeDetails = DialogTabChangeDetails;
959 type PublicDialog_d_DropZoneSpec = DropZoneSpec;
960 type PublicDialog_d_GridSpec = GridSpec;
961 type PublicDialog_d_HtmlPanelSpec = HtmlPanelSpec;
962 type PublicDialog_d_IframeSpec = IframeSpec;
963 type PublicDialog_d_ImagePreviewSpec = ImagePreviewSpec;
964 type PublicDialog_d_InputSpec = InputSpec;
965 type PublicDialog_d_LabelSpec = LabelSpec;
966 type PublicDialog_d_ListBoxSpec = ListBoxSpec;
967 type PublicDialog_d_ListBoxItemSpec = ListBoxItemSpec;
968 type PublicDialog_d_ListBoxNestedItemSpec = ListBoxNestedItemSpec;
969 type PublicDialog_d_ListBoxSingleItemSpec = ListBoxSingleItemSpec;
970 type PublicDialog_d_PanelSpec = PanelSpec;
971 type PublicDialog_d_SelectBoxSpec = SelectBoxSpec;
972 type PublicDialog_d_SelectBoxItemSpec = SelectBoxItemSpec;
973 type PublicDialog_d_SizeInputSpec = SizeInputSpec;
974 type PublicDialog_d_SliderSpec = SliderSpec;
975 type PublicDialog_d_TableSpec = TableSpec;
976 type PublicDialog_d_TabSpec = TabSpec;
977 type PublicDialog_d_TabPanelSpec = TabPanelSpec;
978 type PublicDialog_d_TextAreaSpec = TextAreaSpec;
979 type PublicDialog_d_UrlInputData = UrlInputData;
980 type PublicDialog_d_UrlInputSpec = UrlInputSpec;
981 type PublicDialog_d_UrlDialogSpec = UrlDialogSpec;
982 type PublicDialog_d_UrlDialogFooterButtonSpec = UrlDialogFooterButtonSpec;
983 type PublicDialog_d_UrlDialogInstanceApi = UrlDialogInstanceApi;
984 type PublicDialog_d_UrlDialogActionDetails = UrlDialogActionDetails;
985 type PublicDialog_d_UrlDialogMessage = UrlDialogMessage;
986 declare namespace PublicDialog_d {
987 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_CollectionItem as CollectionItem, 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_ImagePreviewSpec as ImagePreviewSpec, 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_SliderSpec as SliderSpec, PublicDialog_d_TableSpec as TableSpec, PublicDialog_d_TabSpec as TabSpec, PublicDialog_d_TabPanelSpec as TabPanelSpec, PublicDialog_d_TextAreaSpec as TextAreaSpec, PublicDialog_d_UrlInputData as UrlInputData, 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, };
989 type PublicInlineContent_d_AutocompleterSpec = AutocompleterSpec;
990 type PublicInlineContent_d_AutocompleterItemSpec = AutocompleterItemSpec;
991 type PublicInlineContent_d_AutocompleterContents = AutocompleterContents;
992 type PublicInlineContent_d_AutocompleterInstanceApi = AutocompleterInstanceApi;
993 type PublicInlineContent_d_ContextPosition = ContextPosition;
994 type PublicInlineContent_d_ContextScope = ContextScope;
995 type PublicInlineContent_d_ContextFormSpec = ContextFormSpec;
996 type PublicInlineContent_d_ContextFormInstanceApi = ContextFormInstanceApi;
997 type PublicInlineContent_d_ContextFormButtonSpec = ContextFormButtonSpec;
998 type PublicInlineContent_d_ContextFormButtonInstanceApi = ContextFormButtonInstanceApi;
999 type PublicInlineContent_d_ContextFormToggleButtonSpec = ContextFormToggleButtonSpec;
1000 type PublicInlineContent_d_ContextFormToggleButtonInstanceApi = ContextFormToggleButtonInstanceApi;
1001 type PublicInlineContent_d_ContextToolbarSpec = ContextToolbarSpec;
1002 type PublicInlineContent_d_SeparatorItemSpec = SeparatorItemSpec;
1003 declare namespace PublicInlineContent_d {
1004 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, };
1006 type PublicMenu_d_MenuItemSpec = MenuItemSpec;
1007 type PublicMenu_d_MenuItemInstanceApi = MenuItemInstanceApi;
1008 type PublicMenu_d_NestedMenuItemContents = NestedMenuItemContents;
1009 type PublicMenu_d_NestedMenuItemSpec = NestedMenuItemSpec;
1010 type PublicMenu_d_NestedMenuItemInstanceApi = NestedMenuItemInstanceApi;
1011 type PublicMenu_d_FancyMenuItemSpec = FancyMenuItemSpec;
1012 type PublicMenu_d_ColorSwatchMenuItemSpec = ColorSwatchMenuItemSpec;
1013 type PublicMenu_d_InsertTableMenuItemSpec = InsertTableMenuItemSpec;
1014 type PublicMenu_d_ToggleMenuItemSpec = ToggleMenuItemSpec;
1015 type PublicMenu_d_ToggleMenuItemInstanceApi = ToggleMenuItemInstanceApi;
1016 type PublicMenu_d_ChoiceMenuItemSpec = ChoiceMenuItemSpec;
1017 type PublicMenu_d_ChoiceMenuItemInstanceApi = ChoiceMenuItemInstanceApi;
1018 type PublicMenu_d_SeparatorMenuItemSpec = SeparatorMenuItemSpec;
1019 type PublicMenu_d_ContextMenuApi = ContextMenuApi;
1020 type PublicMenu_d_ContextMenuContents = ContextMenuContents;
1021 type PublicMenu_d_ContextMenuItem = ContextMenuItem;
1022 type PublicMenu_d_ContextSubMenu = ContextSubMenu;
1023 type PublicMenu_d_CardMenuItemSpec = CardMenuItemSpec;
1024 type PublicMenu_d_CardMenuItemInstanceApi = CardMenuItemInstanceApi;
1025 type PublicMenu_d_CardItemSpec = CardItemSpec;
1026 type PublicMenu_d_CardContainerSpec = CardContainerSpec;
1027 type PublicMenu_d_CardImageSpec = CardImageSpec;
1028 type PublicMenu_d_CardTextSpec = CardTextSpec;
1029 declare namespace PublicMenu_d {
1030 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, };
1032 interface SidebarInstanceApi {
1033 element: () => HTMLElement;
1035 interface SidebarSpec {
1038 onShow?: (api: SidebarInstanceApi) => void;
1039 onSetup?: (api: SidebarInstanceApi) => (api: SidebarInstanceApi) => void;
1040 onHide?: (api: SidebarInstanceApi) => void;
1042 type PublicSidebar_d_SidebarSpec = SidebarSpec;
1043 type PublicSidebar_d_SidebarInstanceApi = SidebarInstanceApi;
1044 declare namespace PublicSidebar_d {
1045 export { PublicSidebar_d_SidebarSpec as SidebarSpec, PublicSidebar_d_SidebarInstanceApi as SidebarInstanceApi, };
1047 interface ToolbarGroupSetting {
1051 declare type ToolbarConfig = string | ToolbarGroupSetting[];
1052 interface GroupToolbarButtonInstanceApi extends BaseToolbarButtonInstanceApi {
1054 interface GroupToolbarButtonSpec extends BaseToolbarButtonSpec<GroupToolbarButtonInstanceApi> {
1055 type?: 'grouptoolbarbutton';
1056 items?: ToolbarConfig;
1058 declare type MenuButtonItemTypes = NestedMenuItemContents;
1059 declare type SuccessCallback$1 = (menu: string | MenuButtonItemTypes[]) => void;
1060 interface BaseMenuButtonSpec {
1064 fetch: (success: SuccessCallback$1) => void;
1065 onSetup?: (api: BaseMenuButtonInstanceApi) => (api: BaseMenuButtonInstanceApi) => void;
1067 interface BaseMenuButtonInstanceApi {
1068 isEnabled: () => boolean;
1069 setEnabled: (state: boolean) => void;
1070 isActive: () => boolean;
1071 setActive: (state: boolean) => void;
1073 interface ToolbarMenuButtonSpec extends BaseMenuButtonSpec {
1074 type?: 'menubutton';
1075 onSetup?: (api: ToolbarMenuButtonInstanceApi) => (api: ToolbarMenuButtonInstanceApi) => void;
1077 interface ToolbarMenuButtonInstanceApi extends BaseMenuButtonInstanceApi {
1079 declare type ToolbarSplitButtonItemTypes = ChoiceMenuItemSpec | SeparatorMenuItemSpec;
1080 declare type SuccessCallback = (menu: ToolbarSplitButtonItemTypes[]) => void;
1081 declare type SelectPredicate = (value: string) => boolean;
1082 declare type PresetTypes = 'color' | 'normal' | 'listpreview';
1083 declare type ColumnTypes = number | 'auto';
1084 interface ToolbarSplitButtonSpec {
1085 type?: 'splitbutton';
1089 select?: SelectPredicate;
1090 presets?: PresetTypes;
1091 columns?: ColumnTypes;
1092 fetch: (success: SuccessCallback) => void;
1093 onSetup?: (api: ToolbarSplitButtonInstanceApi) => (api: ToolbarSplitButtonInstanceApi) => void;
1094 onAction: (api: ToolbarSplitButtonInstanceApi) => void;
1095 onItemAction: (api: ToolbarSplitButtonInstanceApi, value: string) => void;
1097 interface ToolbarSplitButtonInstanceApi {
1098 isEnabled: () => boolean;
1099 setEnabled: (state: boolean) => void;
1100 setIconFill: (id: string, value: string) => void;
1101 isActive: () => boolean;
1102 setActive: (state: boolean) => void;
1104 type PublicToolbar_d_ToolbarButtonSpec = ToolbarButtonSpec;
1105 type PublicToolbar_d_ToolbarButtonInstanceApi = ToolbarButtonInstanceApi;
1106 type PublicToolbar_d_ToolbarSplitButtonSpec = ToolbarSplitButtonSpec;
1107 type PublicToolbar_d_ToolbarSplitButtonInstanceApi = ToolbarSplitButtonInstanceApi;
1108 type PublicToolbar_d_ToolbarMenuButtonSpec = ToolbarMenuButtonSpec;
1109 type PublicToolbar_d_ToolbarMenuButtonInstanceApi = ToolbarMenuButtonInstanceApi;
1110 type PublicToolbar_d_ToolbarToggleButtonSpec = ToolbarToggleButtonSpec;
1111 type PublicToolbar_d_ToolbarToggleButtonInstanceApi = ToolbarToggleButtonInstanceApi;
1112 type PublicToolbar_d_GroupToolbarButtonSpec = GroupToolbarButtonSpec;
1113 type PublicToolbar_d_GroupToolbarButtonInstanceApi = GroupToolbarButtonInstanceApi;
1114 declare namespace PublicToolbar_d {
1115 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, };
1117 interface Registry$1 {
1118 addButton: (name: string, spec: ToolbarButtonSpec) => void;
1119 addGroupToolbarButton: (name: string, spec: GroupToolbarButtonSpec) => void;
1120 addToggleButton: (name: string, spec: ToolbarToggleButtonSpec) => void;
1121 addMenuButton: (name: string, spec: ToolbarMenuButtonSpec) => void;
1122 addSplitButton: (name: string, spec: ToolbarSplitButtonSpec) => void;
1123 addMenuItem: (name: string, spec: MenuItemSpec) => void;
1124 addNestedMenuItem: (name: string, spec: NestedMenuItemSpec) => void;
1125 addToggleMenuItem: (name: string, spec: ToggleMenuItemSpec) => void;
1126 addContextMenu: (name: string, spec: ContextMenuApi) => void;
1127 addContextToolbar: (name: string, spec: ContextToolbarSpec) => void;
1128 addContextForm: (name: string, spec: ContextFormSpec) => void;
1129 addIcon: (name: string, svgData: string) => void;
1130 addAutocompleter: (name: string, spec: AutocompleterSpec) => void;
1131 addSidebar: (name: string, spec: SidebarSpec) => void;
1133 buttons: Record<string, ToolbarButtonSpec | GroupToolbarButtonSpec | ToolbarMenuButtonSpec | ToolbarSplitButtonSpec | ToolbarToggleButtonSpec>;
1134 menuItems: Record<string, MenuItemSpec | NestedMenuItemSpec | ToggleMenuItemSpec>;
1135 popups: Record<string, AutocompleterSpec>;
1136 contextMenus: Record<string, ContextMenuApi>;
1137 contextToolbars: Record<string, ContextToolbarSpec | ContextFormSpec>;
1138 icons: Record<string, string>;
1139 sidebars: Record<string, SidebarSpec>;
1142 interface AutocompleteLookupData {
1143 readonly matchText: string;
1144 readonly items: AutocompleterContents[];
1145 readonly columns: ColumnTypes$1;
1146 readonly onAction: (autoApi: AutocompleterInstanceApi, rng: Range, value: string, meta: Record<string, any>) => void;
1147 readonly highlightOn: string[];
1149 interface AutocompleterEventArgs {
1150 readonly lookupData: AutocompleteLookupData[];
1152 interface RangeLikeObject {
1153 startContainer: Node;
1154 startOffset: number;
1158 declare type ApplyFormat = BlockFormat | InlineFormat | SelectorFormat;
1159 declare type RemoveFormat = RemoveBlockFormat | RemoveInlineFormat | RemoveSelectorFormat;
1160 declare type Format = ApplyFormat | RemoveFormat;
1161 declare type Formats = Record<string, Format | Format[]>;
1162 declare type FormatAttrOrStyleValue = string | ((vars?: FormatVars) => string);
1163 declare type FormatVars = Record<string, string | null>;
1164 interface BaseFormat<T> {
1165 ceFalseOverride?: boolean;
1166 classes?: string | string[];
1167 collapsed?: boolean;
1172 block_expand?: boolean;
1173 onmatch?: (node: Node, fmt: T, itemName: string) => boolean;
1174 remove?: 'none' | 'empty' | 'all';
1175 remove_similar?: boolean;
1178 preserve_attributes?: string[];
1182 list_block?: string;
1188 interface Selector {
1192 interface CommonFormat<T> extends BaseFormat<T> {
1193 attributes?: Record<string, FormatAttrOrStyleValue>;
1194 styles?: Record<string, FormatAttrOrStyleValue>;
1196 preview?: string | false;
1197 onformat?: (elm: Node, fmt: T, vars?: FormatVars, node?: Node | RangeLikeObject) => void;
1198 clear_child_styles?: boolean;
1199 merge_siblings?: boolean;
1200 merge_with_parents?: boolean;
1202 interface BlockFormat extends Block, CommonFormat<BlockFormat> {
1204 interface InlineFormat extends Inline, CommonFormat<InlineFormat> {
1206 interface SelectorFormat extends Selector, CommonFormat<SelectorFormat> {
1208 interface CommonRemoveFormat<T> extends BaseFormat<T> {
1209 attributes?: string[] | Record<string, FormatAttrOrStyleValue>;
1210 styles?: string[] | Record<string, FormatAttrOrStyleValue>;
1212 interface RemoveBlockFormat extends Block, CommonRemoveFormat<RemoveBlockFormat> {
1214 interface RemoveInlineFormat extends Inline, CommonRemoveFormat<RemoveInlineFormat> {
1216 interface RemoveSelectorFormat extends Selector, CommonRemoveFormat<RemoveSelectorFormat> {
1218 interface Filter<C extends Function> {
1222 interface ParserArgs {
1223 getInner?: boolean | number;
1224 forced_root_block?: boolean | string;
1226 isRootContent?: boolean;
1229 no_events?: boolean;
1232 declare type ParserFilterCallback = (nodes: AstNode[], name: string, args: ParserArgs) => void;
1233 interface ParserFilter extends Filter<ParserFilterCallback> {
1235 interface DomParserSettings {
1236 allow_html_data_urls?: boolean;
1237 allow_svg_data_urls?: boolean;
1238 allow_conditional_comments?: boolean;
1239 allow_html_in_named_anchor?: boolean;
1240 allow_script_urls?: boolean;
1241 allow_unsafe_link_target?: boolean;
1242 convert_fonts_to_spans?: boolean;
1243 fix_list_elements?: boolean;
1244 font_size_legacy_values?: string;
1245 forced_root_block?: boolean | string;
1246 forced_root_block_attrs?: Record<string, string>;
1247 preserve_cdata?: boolean;
1248 remove_trailing_brs?: boolean;
1251 inline_styles?: boolean;
1252 blob_cache?: BlobCache;
1253 document?: Document;
1255 interface DomParser {
1257 addAttributeFilter: (name: string, callback: ParserFilterCallback) => void;
1258 getAttributeFilters: () => ParserFilter[];
1259 removeAttributeFilter: (name: string, callback?: ParserFilterCallback) => void;
1260 addNodeFilter: (name: string, callback: ParserFilterCallback) => void;
1261 getNodeFilters: () => ParserFilter[];
1262 removeNodeFilter: (name: string, callback?: ParserFilterCallback) => void;
1263 parse: (html: string, args?: ParserArgs) => AstNode;
1265 interface StyleSheetLoaderSettings {
1266 maxLoadTime?: number;
1267 contentCssCors?: boolean;
1268 referrerPolicy?: ReferrerPolicy;
1270 interface StyleSheetLoader {
1271 load: (url: string) => Promise<void>;
1272 loadAll: (urls: string[]) => Promise<string[]>;
1273 unload: (url: string) => void;
1274 unloadAll: (urls: string[]) => void;
1275 _setReferrerPolicy: (referrerPolicy: ReferrerPolicy) => void;
1277 declare type Registry = Registry$1;
1278 interface EditorUiApi {
1281 setEnabled: (state: boolean) => void;
1282 isEnabled: () => boolean;
1284 interface EditorUi extends EditorUiApi {
1286 styleSheetLoader: StyleSheetLoader;
1288 type Ui_d_Registry = Registry;
1289 type Ui_d_EditorUiApi = EditorUiApi;
1290 type Ui_d_EditorUi = EditorUi;
1291 declare namespace Ui_d {
1292 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, };
1294 interface WindowParams {
1295 readonly inline?: 'cursor' | 'toolbar';
1296 readonly ariaAttrs?: boolean;
1298 declare type InstanceApi<T> = UrlDialogInstanceApi | DialogInstanceApi<T>;
1299 interface WindowManagerImpl {
1300 open: <T>(config: DialogSpec<T>, params: WindowParams, closeWindow: (dialog: DialogInstanceApi<T>) => void) => DialogInstanceApi<T>;
1301 openUrl: (config: UrlDialogSpec, closeWindow: (dialog: UrlDialogInstanceApi) => void) => UrlDialogInstanceApi;
1302 alert: (message: string, callback: () => void) => void;
1303 confirm: (message: string, callback: (state: boolean) => void) => void;
1304 close: (dialog: InstanceApi<any>) => void;
1306 interface WindowManager {
1307 open: <T>(config: DialogSpec<T>, params?: WindowParams) => DialogInstanceApi<T>;
1308 openUrl: (config: UrlDialogSpec) => UrlDialogInstanceApi;
1309 alert: (message: string, callback?: () => void, scope?: any) => void;
1310 confirm: (message: string, callback?: (state: boolean) => void, scope?: any) => void;
1313 interface ExecCommandEvent {
1318 interface BeforeGetContentEvent extends GetContentArgs {
1319 selection?: boolean;
1321 interface GetContentEvent extends BeforeGetContentEvent {
1324 interface BeforeSetContentEvent extends SetContentArgs {
1326 selection?: boolean;
1328 interface SetContentEvent extends BeforeSetContentEvent {
1331 interface NewBlockEvent {
1334 interface NodeChangeEvent {
1337 selectionChange?: boolean;
1340 interface FormatEvent {
1343 node?: Node | RangeLikeObject;
1345 interface ObjectResizeEvent {
1346 target: HTMLElement;
1351 interface ObjectSelectedEvent {
1355 interface ScrollIntoViewEvent {
1357 alignToTop: boolean;
1359 interface SetSelectionRangeEvent {
1363 interface ShowCaretEvent {
1368 interface SwitchModeEvent {
1371 interface AddUndoEvent {
1373 lastLevel: UndoLevel;
1374 originalEvent: Event;
1376 interface UndoRedoEvent {
1379 interface WindowEvent<T extends DialogData> {
1380 dialog: InstanceApi<T>;
1382 interface ProgressStateEvent {
1386 interface AfterProgressStateEvent {
1389 interface PlaceholderToggleEvent {
1392 interface LoadErrorEvent {
1395 interface PreProcessEvent extends ParserArgs {
1398 interface PostProcessEvent extends ParserArgs {
1401 interface PastePlainTextToggleEvent {
1404 interface PastePreProcessEvent {
1406 readonly internal: boolean;
1408 interface PastePostProcessEvent {
1410 readonly internal: boolean;
1412 interface NewTableRowEvent {
1413 node: HTMLTableRowElement;
1415 interface NewTableCellEvent {
1416 node: HTMLTableCellElement;
1418 interface TableEventData {
1419 readonly structure: boolean;
1420 readonly style: boolean;
1422 interface TableModifiedEvent extends TableEventData {
1423 readonly table: HTMLTableElement;
1425 interface EditorEventMap extends Omit<NativeEventMap, 'blur' | 'focus'> {
1427 relatedTarget: Editor;
1430 relatedTarget: Editor;
1433 blurredEditor: Editor;
1436 focusedEditor: Editor;
1443 'ScrollIntoView': ScrollIntoViewEvent;
1444 'AfterScrollIntoView': ScrollIntoViewEvent;
1445 'ObjectResized': ObjectResizeEvent;
1446 'ObjectResizeStart': ObjectResizeEvent;
1447 'SwitchMode': SwitchModeEvent;
1448 'ScrollWindow': UIEvent;
1449 'ResizeWindow': UIEvent;
1451 'SkinLoadError': LoadErrorEvent;
1452 'PluginLoadError': LoadErrorEvent;
1453 'ModelLoadError': LoadErrorEvent;
1454 'IconsLoadError': LoadErrorEvent;
1455 'ThemeLoadError': LoadErrorEvent;
1456 'LanguageLoadError': LoadErrorEvent;
1457 'BeforeExecCommand': ExecCommandEvent;
1458 'ExecCommand': ExecCommandEvent;
1459 'NodeChange': NodeChangeEvent;
1460 'FormatApply': FormatEvent;
1461 'FormatRemove': FormatEvent;
1462 'ShowCaret': ShowCaretEvent;
1463 'SelectionChange': {};
1464 'ObjectSelected': ObjectSelectedEvent;
1465 'BeforeObjectSelected': ObjectSelectedEvent;
1466 'GetSelectionRange': {
1469 'SetSelectionRange': SetSelectionRangeEvent;
1470 'AfterSetSelectionRange': SetSelectionRangeEvent;
1471 'BeforeGetContent': BeforeGetContentEvent;
1472 'GetContent': GetContentEvent;
1473 'BeforeSetContent': BeforeSetContentEvent;
1474 'SetContent': SetContentEvent;
1476 'PreviewFormats': {};
1477 'AfterPreviewFormats': {};
1478 'ScriptsLoaded': {};
1481 'NewBlock': NewBlockEvent;
1484 'Redo': UndoRedoEvent;
1485 'Undo': UndoRedoEvent;
1486 'BeforeAddUndo': AddUndoEvent;
1487 'AddUndo': AddUndoEvent;
1488 'CloseWindow': WindowEvent<any>;
1489 'OpenWindow': WindowEvent<any>;
1490 'ProgressState': ProgressStateEvent;
1491 'AfterProgressState': AfterProgressStateEvent;
1492 'PlaceholderToggle': PlaceholderToggleEvent;
1494 'longpress': TouchEvent;
1495 'longpresscancel': {};
1496 'PreProcess': PreProcessEvent;
1497 'PostProcess': PostProcessEvent;
1498 'AutocompleterStart': AutocompleterEventArgs;
1499 'AutocompleterUpdate': AutocompleterEventArgs;
1500 'AutocompleterEnd': {};
1501 'PastePlainTextToggle': PastePlainTextToggleEvent;
1502 'PastePreProcess': PastePreProcessEvent;
1503 'PastePostProcess': PastePostProcessEvent;
1504 'TableModified': TableModifiedEvent;
1505 'NewRow': NewTableRowEvent;
1506 'NewCell': NewTableCellEvent;
1508 interface EditorManagerEventMap {
1519 type EventTypes_d_ExecCommandEvent = ExecCommandEvent;
1520 type EventTypes_d_BeforeGetContentEvent = BeforeGetContentEvent;
1521 type EventTypes_d_GetContentEvent = GetContentEvent;
1522 type EventTypes_d_BeforeSetContentEvent = BeforeSetContentEvent;
1523 type EventTypes_d_SetContentEvent = SetContentEvent;
1524 type EventTypes_d_NewBlockEvent = NewBlockEvent;
1525 type EventTypes_d_NodeChangeEvent = NodeChangeEvent;
1526 type EventTypes_d_FormatEvent = FormatEvent;
1527 type EventTypes_d_ObjectResizeEvent = ObjectResizeEvent;
1528 type EventTypes_d_ObjectSelectedEvent = ObjectSelectedEvent;
1529 type EventTypes_d_ScrollIntoViewEvent = ScrollIntoViewEvent;
1530 type EventTypes_d_SetSelectionRangeEvent = SetSelectionRangeEvent;
1531 type EventTypes_d_ShowCaretEvent = ShowCaretEvent;
1532 type EventTypes_d_SwitchModeEvent = SwitchModeEvent;
1533 type EventTypes_d_AddUndoEvent = AddUndoEvent;
1534 type EventTypes_d_UndoRedoEvent = UndoRedoEvent;
1535 type EventTypes_d_WindowEvent<_0> = WindowEvent<_0>;
1536 type EventTypes_d_ProgressStateEvent = ProgressStateEvent;
1537 type EventTypes_d_AfterProgressStateEvent = AfterProgressStateEvent;
1538 type EventTypes_d_PlaceholderToggleEvent = PlaceholderToggleEvent;
1539 type EventTypes_d_LoadErrorEvent = LoadErrorEvent;
1540 type EventTypes_d_PreProcessEvent = PreProcessEvent;
1541 type EventTypes_d_PostProcessEvent = PostProcessEvent;
1542 type EventTypes_d_PastePlainTextToggleEvent = PastePlainTextToggleEvent;
1543 type EventTypes_d_PastePreProcessEvent = PastePreProcessEvent;
1544 type EventTypes_d_PastePostProcessEvent = PastePostProcessEvent;
1545 type EventTypes_d_NewTableRowEvent = NewTableRowEvent;
1546 type EventTypes_d_NewTableCellEvent = NewTableCellEvent;
1547 type EventTypes_d_TableEventData = TableEventData;
1548 type EventTypes_d_TableModifiedEvent = TableModifiedEvent;
1549 type EventTypes_d_EditorEventMap = EditorEventMap;
1550 type EventTypes_d_EditorManagerEventMap = EditorManagerEventMap;
1551 declare namespace EventTypes_d {
1552 export { EventTypes_d_ExecCommandEvent as ExecCommandEvent, EventTypes_d_BeforeGetContentEvent as BeforeGetContentEvent, EventTypes_d_GetContentEvent as GetContentEvent, EventTypes_d_BeforeSetContentEvent as BeforeSetContentEvent, 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_PastePlainTextToggleEvent as PastePlainTextToggleEvent, EventTypes_d_PastePreProcessEvent as PastePreProcessEvent, EventTypes_d_PastePostProcessEvent as PastePostProcessEvent, EventTypes_d_NewTableRowEvent as NewTableRowEvent, EventTypes_d_NewTableCellEvent as NewTableCellEvent, EventTypes_d_TableEventData as TableEventData, EventTypes_d_TableModifiedEvent as TableModifiedEvent, EventTypes_d_EditorEventMap as EditorEventMap, EventTypes_d_EditorManagerEventMap as EditorManagerEventMap, };
1554 type Format_d_Formats = Formats;
1555 type Format_d_Format = Format;
1556 type Format_d_ApplyFormat = ApplyFormat;
1557 type Format_d_BlockFormat = BlockFormat;
1558 type Format_d_InlineFormat = InlineFormat;
1559 type Format_d_SelectorFormat = SelectorFormat;
1560 type Format_d_RemoveFormat = RemoveFormat;
1561 type Format_d_RemoveBlockFormat = RemoveBlockFormat;
1562 type Format_d_RemoveInlineFormat = RemoveInlineFormat;
1563 type Format_d_RemoveSelectorFormat = RemoveSelectorFormat;
1564 declare namespace Format_d {
1565 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, };
1567 declare type StyleFormat = BlockStyleFormat | InlineStyleFormat | SelectorStyleFormat;
1568 declare type AllowedFormat = Separator | FormatReference | StyleFormat | NestedFormatting;
1569 interface Separator {
1572 interface FormatReference {
1577 interface NestedFormatting {
1579 items: Array<FormatReference | StyleFormat>;
1581 interface CommonStyleFormat {
1586 interface BlockStyleFormat extends BlockFormat, CommonStyleFormat {
1588 interface InlineStyleFormat extends InlineFormat, CommonStyleFormat {
1590 interface SelectorStyleFormat extends SelectorFormat, CommonStyleFormat {
1592 declare type EntityEncoding = 'named' | 'numeric' | 'raw' | 'named,numeric' | 'named+numeric' | 'numeric,named' | 'numeric+named';
1593 interface ContentLanguage {
1594 readonly title: string;
1595 readonly code: string;
1596 readonly customCode?: string;
1598 declare type ThemeInitFunc = (editor: Editor, elm: HTMLElement) => {
1599 editorContainer: HTMLElement;
1600 iframeContainer: HTMLElement;
1602 iframeHeight?: number;
1605 declare type SetupCallback = (editor: Editor) => void;
1606 declare type FilePickerCallback = (callback: Function, value: any, meta: Record<string, any>) => void;
1607 declare type FilePickerValidationStatus = 'valid' | 'unknown' | 'invalid' | 'none';
1608 declare type FilePickerValidationCallback = (info: {
1611 }, callback: (validation: {
1612 status: FilePickerValidationStatus;
1614 }) => void) => void;
1615 declare type PastePreProcessFn = (editor: Editor, args: PastePreProcessEvent) => void;
1616 declare type PastePostProcessFn = (editor: Editor, args: PastePostProcessEvent) => void;
1617 declare type URLConverter = (url: string, name: string, elm?: HTMLElement) => string;
1618 declare type URLConverterCallback = (url: string, node: Node, on_save: boolean, name: string) => string;
1619 interface ToolbarGroup {
1623 declare type ToolbarMode = 'floating' | 'sliding' | 'scrolling' | 'wrap';
1624 interface BaseEditorOptions {
1625 a11y_advanced_options?: boolean;
1626 add_form_submit_trigger?: boolean;
1627 add_unload_trigger?: boolean;
1628 allow_conditional_comments?: boolean;
1629 allow_html_data_urls?: boolean;
1630 allow_html_in_named_anchor?: boolean;
1631 allow_script_urls?: boolean;
1632 allow_svg_data_urls?: boolean;
1633 allow_unsafe_link_target?: boolean;
1634 anchor_bottom?: false | string;
1635 anchor_top?: false | string;
1636 auto_focus?: string | true;
1637 automatic_uploads?: boolean;
1639 block_formats?: string;
1640 block_unsupported_drop?: boolean;
1642 body_class?: string;
1643 br_in_pre?: boolean;
1644 br_newline_selector?: string;
1645 browser_spellcheck?: boolean;
1647 cache_suffix?: string;
1648 color_cols?: number;
1649 color_map?: string[];
1650 content_css?: boolean | string | string[];
1651 content_css_cors?: boolean;
1652 content_security_policy?: string;
1653 content_style?: string;
1654 content_langs?: ContentLanguage[];
1655 contextmenu?: string | string[] | false;
1656 contextmenu_never_use_native?: boolean;
1657 convert_fonts_to_spans?: boolean;
1658 convert_urls?: boolean;
1659 custom_colors?: boolean;
1660 custom_elements?: string;
1661 custom_ui_selector?: string;
1662 custom_undo_redo_levels?: number;
1663 deprecation_warnings?: boolean;
1664 directionality?: 'ltr' | 'rtl';
1666 document_base_url?: string;
1667 editable_class?: string;
1668 element_format?: 'xhtml' | 'html';
1669 elementpath?: boolean;
1671 end_container_on_empty_block?: boolean | string;
1673 entity_encoding?: EntityEncoding;
1674 extended_valid_elements?: string;
1675 event_root?: string;
1676 file_picker_callback?: FilePickerCallback;
1677 file_picker_types?: string;
1678 file_picker_validator_handler?: FilePickerValidationCallback;
1679 fix_list_elements?: boolean;
1680 fixed_toolbar_container?: string;
1681 fixed_toolbar_container_target?: HTMLElement;
1682 font_css?: string | string[];
1683 font_family_formats?: string;
1684 font_size_classes?: string;
1685 font_size_legacy_values?: string;
1686 font_size_style_values?: string;
1687 font_size_formats?: string;
1688 forced_root_block?: string;
1689 forced_root_block_attrs?: Record<string, string>;
1691 height?: number | string;
1692 hidden_input?: boolean;
1696 iframe_aria_text?: string;
1697 iframe_attrs?: Record<string, string>;
1698 images_file_types?: string;
1699 images_replace_blob_uris?: boolean;
1700 images_reuse_filename?: boolean;
1701 images_upload_base_path?: string;
1702 images_upload_credentials?: boolean;
1703 images_upload_handler?: UploadHandler;
1704 images_upload_url?: string;
1706 indent_after?: string;
1707 indent_before?: string;
1708 indent_use_margin?: boolean;
1709 indentation?: string;
1710 init_instance_callback?: SetupCallback;
1712 inline_boundaries?: boolean;
1713 inline_boundaries_selector?: string;
1714 inline_styles?: boolean;
1715 invalid_elements?: string;
1716 invalid_styles?: string | Record<string, string>;
1717 keep_styles?: boolean;
1719 language_load?: boolean;
1720 language_url?: string;
1721 line_height_formats?: string;
1722 max_height?: number;
1724 menu?: Record<string, {
1728 menubar?: boolean | string;
1729 min_height?: number;
1733 newline_behavior?: 'block' | 'linebreak' | 'invert' | 'default';
1734 no_newline_selector?: string;
1735 noneditable_class?: string;
1736 noneditable_regexp?: RegExp | RegExp[];
1738 object_resizing?: boolean | string;
1739 paste_as_text?: boolean;
1740 paste_block_drop?: boolean;
1741 paste_data_images?: boolean;
1742 paste_merge_formats?: boolean;
1743 paste_postprocess?: PastePostProcessFn;
1744 paste_preprocess?: PastePreProcessFn;
1745 paste_remove_styles_if_webkit?: boolean;
1746 paste_tab_spaces?: number;
1747 paste_webkit_styles?: string;
1748 placeholder?: string;
1749 preserve_cdata?: boolean;
1750 preview_styles?: false | string;
1753 referrer_policy?: ReferrerPolicy;
1754 relative_urls?: boolean;
1755 remove_script_host?: boolean;
1756 remove_trailing_brs?: boolean;
1757 removed_menuitems?: string;
1758 resize?: boolean | 'both';
1759 resize_img_proportional?: boolean;
1761 schema?: SchemaType;
1763 setup?: SetupCallback;
1764 sidebar_show?: string;
1765 skin?: boolean | string;
1767 smart_paste?: boolean;
1768 statusbar?: boolean;
1769 style_formats?: AllowedFormat[];
1770 style_formats_autohide?: boolean;
1771 style_formats_merge?: boolean;
1772 submit_patch?: boolean;
1774 table_tab_navigation?: boolean;
1775 target?: HTMLElement;
1776 text_patterns?: RawPattern[] | false;
1777 theme?: string | ThemeInitFunc | false;
1779 toolbar?: boolean | string | string[] | Array<ToolbarGroup>;
1789 toolbar_mode?: ToolbarMode;
1790 toolbar_sticky?: boolean;
1791 toolbar_sticky_offset?: number;
1792 typeahead_urls?: boolean;
1793 url_converter?: URLConverter;
1794 url_converter_scope?: any;
1795 urlconverter_callback?: URLConverterCallback;
1796 valid_children?: string;
1797 valid_classes?: string | Record<string, string>;
1798 valid_elements?: string;
1799 valid_styles?: string | Record<string, string>;
1800 verify_html?: boolean;
1802 visual_anchor_class?: string;
1803 visual_table_class?: string;
1804 width?: number | string;
1805 disable_nodechange?: boolean;
1806 forced_plugins?: string | string[];
1807 plugin_base_urls?: Record<string, string>;
1808 service_message?: string;
1811 interface RawEditorOptions extends BaseEditorOptions {
1812 external_plugins?: Record<string, string>;
1813 mobile?: RawEditorOptions;
1814 plugins?: string | string[];
1816 interface NormalizedEditorOptions extends BaseEditorOptions {
1817 external_plugins: Record<string, string>;
1818 forced_plugins: string[];
1821 interface EditorOptions extends NormalizedEditorOptions {
1822 content_css: string[];
1823 contextmenu: string[];
1825 forced_root_block: string;
1826 forced_root_block_attrs: Record<string, string>;
1827 noneditable_regexp: RegExp[];
1828 object_resizing?: string;
1829 preview_styles?: string;
1830 text_patterns?: Pattern[];
1832 declare type StyleMap = Record<string, string | number>;
1833 interface StylesSettings {
1834 allow_script_urls?: boolean;
1835 allow_svg_data_urls?: boolean;
1836 url_converter?: URLConverter;
1837 url_converter_scope?: any;
1840 parse: (css: string) => Record<string, string>;
1841 serialize: (styles: StyleMap, elementName?: string) => string;
1843 declare type EventUtilsCallback<T> = (event: EventUtilsEvent<T>) => void;
1844 declare type EventUtilsEvent<T> = NormalizedEvent<T> & {
1847 interface EventUtilsConstructor {
1848 readonly prototype: EventUtils;
1852 declare class EventUtils {
1853 static Event: EventUtils;
1855 events: Record<string, any>;
1856 private readonly expando;
1858 private hasMouseEnterLeave;
1859 private mouseEnterLeave;
1862 bind<K extends keyof HTMLElementEventMap>(target: any, name: K, callback: EventUtilsCallback<HTMLElementEventMap[K]>, scope?: any): EventUtilsCallback<HTMLElementEventMap[K]>;
1863 bind<T = any>(target: any, names: string, callback: EventUtilsCallback<T>, scope?: any): EventUtilsCallback<T>;
1864 unbind<K extends keyof HTMLElementEventMap>(target: any, name: K, callback?: EventUtilsCallback<HTMLElementEventMap[K]>): this;
1865 unbind<T = any>(target: any, names: string, callback?: EventUtilsCallback<T>): this;
1866 unbind(target: any): this;
1867 fire(target: any, name: string, args?: {}): this;
1868 dispatch(target: any, name: string, args?: {}): this;
1869 clean(target: any): this;
1871 cancel<T = any>(e: EventUtilsEvent<T>): boolean;
1872 private executeHandlers;
1874 interface DOMUtilsSettings {
1876 url_converter: URLConverter;
1877 url_converter_scope: any;
1879 keep_values: boolean;
1880 update_styles: boolean;
1881 root_element: HTMLElement;
1883 onSetAttrib: Function;
1884 contentCssCors: boolean;
1885 referrerPolicy: ReferrerPolicy;
1887 declare type Target = Node | Window;
1888 declare type RunArguments<T extends Node = Node> = string | T | Array<string | T>;
1889 declare type BoundEvent = [
1892 EventUtilsCallback<any>,
1895 declare type Callback<K extends string> = EventUtilsCallback<MappedEvent<HTMLElementEventMap, K>>;
1896 declare type RunResult<T, R> = T extends Array<any> ? false | R[] : false | R;
1897 interface DOMUtils {
1899 settings: Partial<DOMUtilsSettings>;
1901 files: Record<string, boolean>;
1904 styleSheetLoader: StyleSheetLoader;
1905 boundEvents: BoundEvent[];
1910 isBlock: (node: string | Node) => boolean;
1911 clone: (node: Node, deep: boolean) => Node;
1912 getRoot: () => HTMLElement;
1913 getViewPort: (argWin?: Window) => GeomRect;
1914 getRect: (elm: string | HTMLElement) => GeomRect;
1915 getSize: (elm: string | HTMLElement) => {
1920 <K extends keyof HTMLElementTagNameMap>(node: string | Node, selector: K, root?: Node): HTMLElementTagNameMap[K] | null;
1921 <T extends HTMLElement>(node: string | Node, selector: (node: HTMLElement) => node is T, root?: Node): T | null;
1922 <T extends Element = Element>(node: string | Node, selector?: string | ((node: HTMLElement) => boolean | void), root?: Node): T | null;
1925 <K extends keyof HTMLElementTagNameMap>(elm: string | Node, selector: K, root?: Node, collect?: boolean): Array<HTMLElementTagNameMap[K]>;
1926 <T extends HTMLElement>(node: string | Node, selector: (node: HTMLElement) => node is T, root?: Node): T[];
1927 <T extends Element = Element>(elm: string | Node, selector?: string | ((node: HTMLElement) => boolean | void), root?: Node, collect?: boolean): T[];
1929 get: (elm: string | Node) => HTMLElement | null;
1930 getNext: (node: Node, selector: string | ((node: Node) => boolean)) => Node | null;
1931 getPrev: (node: Node, selector: string | ((node: Node) => boolean)) => Node | null;
1933 <K extends keyof HTMLElementTagNameMap>(selector: K, scope?: string | Node): Array<HTMLElementTagNameMap[K]>;
1934 <T extends HTMLElement = HTMLElement>(selector: string, scope?: string | Node): T[];
1936 is: (elm: Node | Node[], selector: string) => boolean;
1937 add: (parentElm: RunArguments, name: string | Node, attrs?: Record<string, string | boolean | number>, html?: string | Node, create?: boolean) => HTMLElement;
1939 <K extends keyof HTMLElementTagNameMap>(name: K, attrs?: Record<string, string | boolean | number>, html?: string | Node): HTMLElementTagNameMap[K];
1940 (name: string, attrs?: Record<string, string | boolean | number>, html?: string | Node): HTMLElement;
1942 createHTML: (name: string, attrs?: Record<string, string>, html?: string) => string;
1943 createFragment: (html?: string) => DocumentFragment;
1944 remove: <T extends Node>(node: string | T | T[], keepChildren?: boolean) => RunResult<typeof node, T>;
1945 setStyle: (elm: string | Node | Node[], name: string, value: string | number | null) => void;
1946 getStyle: (elm: string | Node, name: string, computed?: boolean) => string | undefined;
1947 setStyles: (elm: string | Node | Node[], stylesArg: StyleMap) => void;
1948 removeAllAttribs: (e: RunArguments<Element>) => void;
1949 setAttrib: (elm: string | Node | Node[], name: string, value: string | boolean | number | null) => void;
1950 setAttribs: (elm: string | Node | Node[], attrs: Record<string, string | boolean | number | null>) => void;
1951 getAttrib: (elm: string | Node, name: string, defaultVal?: string) => string;
1952 getPos: (elm: string | Node, rootElm?: Node) => {
1956 parseStyle: (cssText: string) => Record<string, string>;
1957 serializeStyle: (stylesArg: StyleMap, name?: string) => string;
1958 addStyle: (cssText: string) => void;
1959 loadCSS: (url: string) => void;
1960 addClass: (elm: string | Node | Node[], cls: string) => void;
1961 removeClass: (elm: string | Node | Node[], cls: string) => void;
1962 hasClass: (elm: string | Node, cls: string) => boolean;
1963 toggleClass: (elm: string | Node | Node[], cls: string, state?: boolean) => void;
1964 show: (elm: string | Node | Node[]) => void;
1965 hide: (elm: string | Node | Node[]) => void;
1966 isHidden: (elm: string | Node) => boolean;
1967 uniqueId: (prefix?: string) => string;
1968 setHTML: (elm: string | Node | Node[], html: string) => void;
1969 getOuterHTML: (elm: string | Node) => string;
1970 setOuterHTML: (elm: string | Node | Node[], html: string) => void;
1971 decode: (text: string) => string;
1972 encode: (text: string) => string;
1974 <T extends Node>(node: T | T[], reference: string | Node): T;
1975 <T extends Node>(node: RunArguments<T>, reference: string | Node): RunResult<typeof node, T>;
1978 <T extends Node>(newElm: Node, oldElm: T | T[], keepChildren?: boolean): T;
1979 <T extends Node>(newElm: Node, oldElm: RunArguments<T>, keepChildren?: boolean): false | T;
1982 <K extends keyof HTMLElementTagNameMap>(elm: Element, name: K): HTMLElementTagNameMap[K];
1983 (elm: Element, name: string): Element;
1985 findCommonAncestor: (a: Node, b: Node) => Node;
1986 run<R, T extends Node>(this: DOMUtils, elm: T | T[], func: (node: T) => R, scope?: any): typeof elm extends Array<any> ? R[] : R;
1987 run<R, T extends Node>(this: DOMUtils, elm: RunArguments<T>, func: (node: T) => R, scope?: any): RunResult<typeof elm, R>;
1988 getAttribs: (elm: string | Node) => NamedNodeMap | Attr[];
1989 isEmpty: (node: Node, elements?: Record<string, any>) => boolean;
1990 createRng: () => Range;
1991 nodeIndex: (node: Node, normalized?: boolean) => number;
1993 <T extends Node>(parentElm: Node, splitElm: Node, replacementElm: T): T;
1994 <T extends Node>(parentElm: Node, splitElm: T): T;
1997 <K extends string>(target: Target, name: K, func: Callback<K>, scope?: any): Callback<K>;
1998 <K extends string>(target: Target[], name: K, func: Callback<K>, scope?: any): Callback<K>[];
2001 <K extends string>(target: Target, name?: K, func?: EventUtilsCallback<MappedEvent<HTMLElementEventMap, K>>): EventUtils;
2002 <K extends string>(target: Target[], name?: K, func?: EventUtilsCallback<MappedEvent<HTMLElementEventMap, K>>): EventUtils[];
2004 fire: (target: Node | Window, name: string, evt?: {}) => EventUtils;
2005 dispatch: (target: Node | Window, name: string, evt?: {}) => EventUtils;
2006 getContentEditable: (node: Node) => string | null;
2007 getContentEditableParent: (node: Node) => string | null;
2008 destroy: () => void;
2009 isChildOf: (node: Node, parent: Node) => boolean;
2010 dumpRng: (r: Range) => string;
2012 interface ClientRect {
2020 interface BookmarkManager {
2021 getBookmark: (type: number, normalized?: boolean) => Bookmark;
2022 moveToBookmark: (bookmark: Bookmark) => void;
2024 interface ControlSelection {
2025 isResizable: (elm: Element) => boolean;
2026 showResizeRect: (elm: Element) => void;
2027 hideResizeRect: () => void;
2028 updateResizeRect: (evt: EditorEvent<any>) => void;
2029 destroy: () => void;
2031 interface WriterSettings {
2032 element_format?: 'xhtml' | 'html';
2034 entity_encoding?: EntityEncoding;
2036 indent_after?: string;
2037 indent_before?: string;
2039 declare type Attributes = Array<{
2044 cdata: (text: string) => void;
2045 comment: (text: string) => void;
2046 doctype: (text: string) => void;
2047 end: (name: string) => void;
2048 getContent: () => string;
2049 pi: (name: string, text?: string) => void;
2051 start: (name: string, attrs?: Attributes, empty?: boolean) => void;
2052 text: (text: string, raw?: boolean) => void;
2054 interface HtmlSerializerSettings extends WriterSettings {
2058 interface HtmlSerializer {
2059 serialize: (node: AstNode) => string;
2061 interface DomSerializerSettings extends DomParserSettings, WriterSettings, SchemaSettings, HtmlSerializerSettings {
2062 url_converter?: URLConverter;
2063 url_converter_scope?: {};
2065 interface DomSerializerImpl {
2067 addNodeFilter: (name: string, callback: ParserFilterCallback) => void;
2068 addAttributeFilter: (name: string, callback: ParserFilterCallback) => void;
2069 getNodeFilters: () => ParserFilter[];
2070 getAttributeFilters: () => ParserFilter[];
2071 removeNodeFilter: (name: string, callback?: ParserFilterCallback) => void;
2072 removeAttributeFilter: (name: string, callback?: ParserFilterCallback) => void;
2074 (node: Element, parserArgs: {
2076 } & ParserArgs): AstNode;
2077 (node: Element, parserArgs?: ParserArgs): string;
2079 addRules: (rules: string) => void;
2080 setRules: (rules: string) => void;
2081 addTempAttr: (name: string) => void;
2082 getTempAttrs: () => string[];
2084 interface DomSerializer extends DomSerializerImpl {
2086 interface EditorSelection {
2087 bookmarkManager: BookmarkManager;
2088 controlSelection: ControlSelection;
2091 serializer: DomSerializer;
2093 collapse: (toStart?: boolean) => void;
2094 setCursorLocation: {
2095 (node: Node, offset: number): void;
2101 } & Partial<GetSelectionContentArgs>): AstNode;
2102 (args?: Partial<GetSelectionContentArgs>): string;
2104 setContent: (content: string, args?: Partial<SetSelectionContentArgs>) => void;
2105 getBookmark: (type?: number, normalized?: boolean) => Bookmark;
2106 moveToBookmark: (bookmark: Bookmark) => void;
2107 select: (node: Node, content?: boolean) => Node;
2108 isCollapsed: () => boolean;
2109 isForward: () => boolean;
2110 setNode: (elm: Element) => Element;
2111 getNode: () => Element;
2112 getSel: () => Selection | null;
2113 setRng: (rng: Range, forward?: boolean) => void;
2114 getRng: () => Range;
2115 getStart: (real?: boolean) => Element;
2116 getEnd: (real?: boolean) => Element;
2117 getSelectedBlocks: (startElm?: Element, endElm?: Element) => Element[];
2118 normalize: () => Range;
2119 selectorChanged: (selector: string, callback: (active: boolean, args: {
2123 }) => void) => EditorSelection;
2124 selectorChangedWithUnbind: (selector: string, callback: (active: boolean, args: {
2131 getScrollContainer: () => HTMLElement;
2132 scrollIntoView: (elm?: HTMLElement, alignToTop?: boolean) => void;
2133 placeCaretAt: (clientX: number, clientY: number) => void;
2134 getBoundingClientRect: () => ClientRect | DOMRect;
2135 destroy: () => void;
2137 declare type EditorCommandCallback = (ui: boolean, value: any) => void;
2138 declare type EditorCommandsCallback = (command: string, ui: boolean, value: any) => void;
2139 interface Commands {
2140 state: Record<string, (command: string) => boolean>;
2141 exec: Record<string, EditorCommandsCallback>;
2142 value: Record<string, (command: string) => string>;
2144 interface ExecCommandArgs {
2145 skip_focus?: boolean;
2147 interface EditorCommandsConstructor {
2148 readonly prototype: EditorCommands;
2149 new (editor: Editor): EditorCommands;
2151 declare class EditorCommands {
2152 private readonly editor;
2154 constructor(editor: Editor);
2155 execCommand(command: string, ui?: boolean, value?: any, args?: ExecCommandArgs): boolean;
2156 queryCommandState(command: string): boolean;
2157 queryCommandValue(command: string): string;
2158 addCommands<K extends keyof Commands>(commandList: Commands[K], type: K): void;
2159 addCommands(commandList: Record<string, EditorCommandsCallback>): void;
2160 addCommand(command: string, callback: EditorCommandCallback, scope?: any): void;
2161 queryCommandSupported(command: string): boolean;
2162 addQueryStateHandler(command: string, callback: () => boolean, scope?: any): void;
2163 addQueryValueHandler(command: string, callback: () => string, scope?: any): void;
2165 interface RawString {
2168 declare type Primitive = string | number | boolean | Record<string | number, any> | Function;
2169 declare type TokenisedString = [
2173 declare type Untranslated = Primitive | TokenisedString | RawString;
2174 declare type TranslatedString = string;
2176 getData: () => Record<string, Record<string, string>>;
2177 setCode: (newCode: string) => void;
2178 getCode: () => string;
2179 add: (code: string, items: Record<string, string>) => void;
2180 translate: (text: Untranslated) => TranslatedString;
2181 isRtl: () => boolean;
2182 hasCode: (code: string) => boolean;
2184 interface Observable<T> {
2185 fire<K extends string, U extends MappedEvent<T, K>>(name: K, args?: U, bubble?: boolean): EditorEvent<U>;
2186 dispatch<K extends string, U extends MappedEvent<T, K>>(name: K, args?: U, bubble?: boolean): EditorEvent<U>;
2187 on<K extends string>(name: K, callback: (event: EditorEvent<MappedEvent<T, K>>) => void, prepend?: boolean): EventDispatcher<T>;
2188 off<K extends string>(name?: K, callback?: (event: EditorEvent<MappedEvent<T, K>>) => void): EventDispatcher<T>;
2189 once<K extends string>(name: K, callback: (event: EditorEvent<MappedEvent<T, K>>) => void): EventDispatcher<T>;
2190 hasEventListeners(name: string): boolean;
2192 interface URISettings {
2195 interface URIConstructor {
2196 readonly prototype: URI;
2197 new (url: string, settings?: URISettings): URI;
2198 getDocumentBaseUrl: (loc: {
2204 parseDataUri: (uri: string) => {
2209 interface SafeUriOptions {
2210 readonly allow_html_data_urls?: boolean;
2211 readonly allow_script_urls?: boolean;
2212 readonly allow_svg_data_urls?: boolean;
2215 static parseDataUri(uri: string): {
2219 static isDomSafe(uri: string, context?: string, options?: SafeUriOptions): boolean;
2220 static getDocumentBaseUrl(loc: {
2240 settings: URISettings;
2241 constructor(url: string, settings?: URISettings);
2242 setPath(path: string): void;
2243 toRelative(uri: string): string;
2244 toAbsolute(uri: string, noHost?: boolean): string;
2245 isSameOrigin(uri: URI): boolean;
2246 toRelPath(base: string, path: string): string;
2247 toAbsPath(base: string, path: string): string;
2248 getURI(noProtoHost?: boolean): string;
2250 interface EditorManager extends Observable<EditorManagerEventMap> {
2251 defaultOptions: RawEditorOptions;
2252 majorVersion: string;
2253 minorVersion: string;
2254 releaseDate: string;
2255 activeEditor: Editor;
2256 focusedEditor: Editor;
2259 documentBaseURL: string;
2262 add(this: EditorManager, editor: Editor): Editor;
2263 addI18n: (code: string, item: Record<string, string>) => void;
2264 createEditor(this: EditorManager, id: string, options: RawEditorOptions): Editor;
2265 execCommand(this: EditorManager, cmd: string, ui: boolean, value: any): boolean;
2266 get(this: EditorManager): Editor[];
2267 get(this: EditorManager, id: number | string): Editor;
2268 init(this: EditorManager, options: RawEditorOptions): Promise<Editor[]>;
2269 overrideDefaults(this: EditorManager, defaultOptions: Partial<RawEditorOptions>): void;
2270 remove(this: EditorManager): void;
2271 remove(this: EditorManager, selector: string | Editor): Editor | void;
2272 setActive(this: EditorManager, editor: Editor): void;
2273 setup(this: EditorManager): void;
2274 translate: (text: Untranslated) => TranslatedString;
2275 triggerSave: () => void;
2276 _setBaseUrl(this: EditorManager, baseUrl: string): void;
2278 interface EditorObservable extends Observable<EditorEventMap> {
2279 bindPendingEventDelegates(this: Editor): void;
2280 toggleNativeEvent(this: Editor, name: string, state: boolean): any;
2281 unbindAllNativeEvents(this: Editor): void;
2283 interface ProcessorSuccess<T> {
2287 interface ProcessorError {
2291 declare type SimpleProcessor = (value: unknown) => boolean;
2292 declare type Processor<T> = (value: unknown) => ProcessorSuccess<T> | ProcessorError;
2293 interface BuiltInOptionTypeMap {
2298 'function': Function;
2300 'string[]': string[];
2304 declare type BuiltInOptionType = keyof BuiltInOptionTypeMap;
2305 interface BaseOptionSpec {
2306 immutable?: boolean;
2307 deprecated?: boolean;
2310 interface BuiltInOptionSpec<K extends BuiltInOptionType> extends BaseOptionSpec {
2312 default?: BuiltInOptionTypeMap[K];
2314 interface SimpleOptionSpec<T> extends BaseOptionSpec {
2315 processor: SimpleProcessor;
2318 interface OptionSpec<T, U> extends BaseOptionSpec {
2319 processor: Processor<U>;
2324 <K extends BuiltInOptionType>(name: string, spec: BuiltInOptionSpec<K>): void;
2325 <K extends keyof NormalizedEditorOptions>(name: K, spec: OptionSpec<NormalizedEditorOptions[K], EditorOptions[K]> | SimpleOptionSpec<NormalizedEditorOptions[K]>): void;
2326 <T, U>(name: string, spec: OptionSpec<T, U>): void;
2327 <T>(name: string, spec: SimpleOptionSpec<T>): void;
2329 isRegistered: (name: string) => boolean;
2331 <K extends keyof EditorOptions>(name: K): EditorOptions[K] | undefined;
2332 <T>(name: string): T | undefined;
2334 set: <K extends string, T>(name: K, value: K extends keyof NormalizedEditorOptions ? NormalizedEditorOptions[K] : T) => boolean;
2335 unset: (name: string) => boolean;
2336 isSet: (name: string) => boolean;
2338 interface UploadResult$1 {
2339 element: HTMLImageElement;
2345 interface EditorUpload {
2346 blobCache: BlobCache;
2347 addFilter: (filter: (img: HTMLImageElement) => boolean) => void;
2348 uploadImages: () => Promise<UploadResult$1[]>;
2349 uploadImagesAuto: () => Promise<UploadResult$1[]>;
2350 scanForImages: () => Promise<BlobInfoImagePair[]>;
2351 destroy: () => void;
2353 declare type FormatChangeCallback = (state: boolean, data: {
2358 interface FormatRegistry {
2360 (name: string): Format[] | undefined;
2361 (): Record<string, Format[]>;
2363 has: (name: string) => boolean;
2364 register: (name: string | Formats, format?: Format[] | Format) => void;
2365 unregister: (name: string) => Formats;
2367 interface Formatter extends FormatRegistry {
2368 apply: (name: string, vars?: FormatVars, node?: Node | RangeLikeObject) => void;
2369 remove: (name: string, vars?: FormatVars, node?: Node | Range, similar?: boolean) => void;
2370 toggle: (name: string, vars?: FormatVars, node?: Node) => void;
2371 match: (name: string, vars?: FormatVars, node?: Node, similar?: boolean) => boolean;
2372 closest: (names: string[]) => string | null;
2373 matchAll: (names: string[], vars?: FormatVars) => string[];
2374 matchNode: (node: Node, name: string, vars?: FormatVars, similar?: boolean) => Format | undefined;
2375 canApply: (name: string) => boolean;
2376 formatChanged: (names: string, callback: FormatChangeCallback, similar?: boolean, vars?: FormatVars) => {
2379 getCssText: (format: string | Format) => string;
2381 interface EditorMode {
2382 isReadOnly: () => boolean;
2383 set: (mode: string) => void;
2385 register: (mode: string, api: EditorModeApi) => void;
2387 interface EditorModeApi {
2388 activate: () => void;
2389 deactivate: () => void;
2390 editorReadOnly: boolean;
2394 readonly getSelectedCells: () => HTMLTableCellElement[];
2395 readonly clearSelectedCells: (container: Node) => void;
2398 declare type ModelManager = AddOnManager<Model>;
2400 getMetadata?: () => {
2404 init?: (editor: Editor, url: string) => void;
2407 declare type PluginManager = AddOnManager<void | Plugin>;
2408 interface ShortcutsConstructor {
2409 readonly prototype: Shortcuts;
2410 new (editor: Editor): Shortcuts;
2412 declare type CommandFunc = string | [
2417 declare class Shortcuts {
2418 private readonly editor;
2419 private readonly shortcuts;
2420 private pendingPatterns;
2421 constructor(editor: Editor);
2422 add(pattern: string, desc: string, cmdFunc: CommandFunc, scope?: any): boolean;
2423 remove(pattern: string): boolean;
2424 private normalizeCommandFunc;
2425 private createShortcut;
2426 private hasModifier;
2427 private isFunctionKey;
2428 private matchShortcut;
2429 private executeShortcutAction;
2434 execCommand?: (command: string, ui?: boolean, value?: any) => boolean;
2435 destroy?: () => void;
2436 init?: (editor: Editor, url: string) => void;
2438 iframeContainer?: HTMLIFrameElement;
2439 editorContainer: HTMLElement;
2440 api?: Partial<EditorUiApi>;
2442 getNotificationManagerImpl?: () => NotificationManagerImpl;
2443 getWindowManagerImpl?: () => WindowManagerImpl;
2445 declare type ThemeManager = AddOnManager<void | Theme>;
2446 interface EditorConstructor {
2447 readonly prototype: Editor;
2448 new (id: string, options: RawEditorOptions, editorManager: EditorManager): Editor;
2450 declare class Editor implements EditorObservable {
2451 documentBaseUrl: string;
2454 plugins: Record<string, Plugin>;
2455 documentBaseURI: URI;
2457 contentCSS: string[];
2458 contentStyles: string[];
2462 shortcuts: Shortcuts;
2463 loadedCSS: Record<string, any>;
2464 editorCommands: EditorCommands;
2466 editorManager: EditorManager;
2468 isNotDirty: boolean;
2469 annotator: Annotator;
2470 bodyElement: HTMLElement;
2473 container: HTMLElement;
2474 contentAreaContainer: HTMLElement;
2475 contentDocument: Document;
2476 contentWindow: Window;
2477 delegates: Record<string, (event: any) => void>;
2480 editorContainer: HTMLElement;
2481 editorUpload: EditorUpload;
2482 eventRoot?: Element;
2483 formatter: Formatter;
2484 formElement: HTMLElement;
2485 formEventDelegate: (e: Event) => void;
2486 hasHiddenInput: boolean;
2489 iframeElement: HTMLIFrameElement | null;
2491 initialized: boolean;
2492 notificationManager: NotificationManager;
2494 orgVisibility: string;
2500 selection: EditorSelection;
2501 serializer: DomSerializer;
2502 startContent: string;
2503 targetElm: HTMLElement;
2506 undoManager: UndoManager;
2507 windowManager: WindowManager;
2508 _beforeUnload: () => void;
2509 _eventDispatcher: EventDispatcher<NativeEventMap>;
2510 _nodeChangeDispatcher: NodeChange;
2511 _pendingNativeEvents: string[];
2512 _selectionOverrides: SelectionOverrides;
2513 _skinLoaded: boolean;
2514 bindPendingEventDelegates: EditorObservable['bindPendingEventDelegates'];
2515 toggleNativeEvent: EditorObservable['toggleNativeEvent'];
2516 unbindAllNativeEvents: EditorObservable['unbindAllNativeEvents'];
2517 fire: EditorObservable['fire'];
2518 dispatch: EditorObservable['dispatch'];
2519 on: EditorObservable['on'];
2520 off: EditorObservable['off'];
2521 once: EditorObservable['once'];
2522 hasEventListeners: EditorObservable['hasEventListeners'];
2523 constructor(id: string, options: RawEditorOptions, editorManager: EditorManager);
2525 focus(skipFocus?: boolean): void;
2526 hasFocus(): boolean;
2527 translate(text: Untranslated): TranslatedString;
2528 getParam<K extends BuiltInOptionType>(name: string, defaultVal: BuiltInOptionTypeMap[K], type: K): BuiltInOptionTypeMap[K];
2529 getParam<K extends keyof NormalizedEditorOptions>(name: K, defaultVal?: NormalizedEditorOptions[K], type?: BuiltInOptionType): NormalizedEditorOptions[K];
2530 getParam<T>(name: string, defaultVal: T, type?: BuiltInOptionType): T;
2531 hasPlugin(name: string, loaded?: boolean): boolean;
2532 nodeChanged(args?: any): void;
2533 addCommand(name: string, callback: EditorCommandCallback, scope?: object): void;
2534 addQueryStateHandler(name: string, callback: () => boolean, scope?: any): void;
2535 addQueryValueHandler(name: string, callback: () => string, scope?: any): void;
2536 addShortcut(pattern: string, desc: string, cmdFunc: string | [
2540 ] | (() => void), scope?: any): void;
2541 execCommand(cmd: string, ui?: boolean, value?: any, args?: ExecCommandArgs): boolean;
2542 queryCommandState(cmd: string): boolean;
2543 queryCommandValue(cmd: string): string;
2544 queryCommandSupported(cmd: string): boolean;
2547 isHidden(): boolean;
2548 setProgressState(state: boolean, time?: number): void;
2549 load(args?: any): string;
2550 save(args?: any): string;
2551 setContent(content: string, args?: Partial<SetContentArgs>): string;
2552 setContent(content: AstNode, args?: Partial<SetContentArgs>): AstNode;
2553 setContent(content: Content, args?: Partial<SetContentArgs>): Content;
2556 } & Partial<GetContentArgs>): AstNode;
2557 getContent(args?: Partial<GetContentArgs>): string;
2558 insertContent(content: string, args?: any): void;
2559 resetContent(initialContent?: string): void;
2561 setDirty(state: boolean): void;
2562 getContainer(): HTMLElement;
2563 getContentAreaContainer(): HTMLElement;
2564 getElement(): HTMLElement;
2567 getBody(): HTMLElement;
2568 convertURL(url: string, name: string, elm?: any): string;
2569 addVisual(elm?: HTMLElement): void;
2571 destroy(automatic?: boolean): void;
2572 uploadImages(): Promise<UploadResult$1[]>;
2573 _scanForImages(): Promise<BlobInfoImagePair[]>;
2575 interface UrlObject {
2580 declare type WaitState = 'added' | 'loaded';
2581 declare type AddOnConstructor<T> = (editor: Editor, url: string) => T;
2582 interface AddOnManager<T> {
2583 items: AddOnConstructor<T>[];
2584 urls: Record<string, string>;
2585 lookup: Record<string, {
2586 instance: AddOnConstructor<T>;
2588 get: (name: string) => AddOnConstructor<T>;
2589 requireLangPack: (name: string, languages: string) => void;
2590 add: (id: string, addOn: AddOnConstructor<T>) => AddOnConstructor<T>;
2591 remove: (name: string) => void;
2592 createUrl: (baseUrl: UrlObject, dep: string | UrlObject) => UrlObject;
2593 load: (name: string, addOnUrl: string | UrlObject) => Promise<void>;
2594 waitFor: (name: string, state?: WaitState) => Promise<void>;
2596 interface RangeUtils {
2597 walk: (rng: Range, callback: (nodes: Node[]) => void) => void;
2598 split: (rng: Range) => RangeLikeObject;
2599 normalize: (rng: Range) => boolean;
2601 interface ScriptLoaderSettings {
2602 referrerPolicy?: ReferrerPolicy;
2604 interface ScriptLoaderConstructor {
2605 readonly prototype: ScriptLoader;
2606 new (): ScriptLoader;
2607 ScriptLoader: ScriptLoader;
2609 declare class ScriptLoader {
2610 static ScriptLoader: ScriptLoader;
2614 private scriptLoadedCallbacks;
2615 private queueLoadedCallbacks;
2617 constructor(settings?: ScriptLoaderSettings);
2618 _setReferrerPolicy(referrerPolicy: ReferrerPolicy): void;
2619 loadScript(url: string): Promise<void>;
2620 isDone(url: string): boolean;
2621 markDone(url: string): void;
2622 add(url: string): Promise<void>;
2623 load(url: string): Promise<void>;
2624 remove(url: string): void;
2625 loadQueue(): Promise<void>;
2626 loadScripts(scripts: string[]): Promise<void>;
2628 declare type TextProcessCallback = (node: Text, offset: number, text: string) => number;
2633 interface TextSeeker {
2634 backwards: (node: Node, offset: number, process: TextProcessCallback, root?: Node) => Spot | null;
2635 forwards: (node: Node, offset: number, process: TextProcessCallback, root?: Node) => Spot | null;
2637 interface DomTreeWalkerConstructor {
2638 readonly prototype: DomTreeWalker;
2639 new (startNode: Node, rootNode: Node): DomTreeWalker;
2641 declare class DomTreeWalker {
2642 private readonly rootNode;
2644 constructor(startNode: Node, rootNode: Node);
2645 current(): Node | undefined;
2646 next(shallow?: boolean): Node | undefined;
2647 prev(shallow?: boolean): Node | undefined;
2648 prev2(shallow?: boolean): Node | undefined;
2649 private findSibling;
2650 private findPreviousNode;
2657 transparentSrc: string;
2658 documentMode: number;
2661 canHaveCSP: boolean;
2662 windowsPhone: boolean;
2664 current: string | undefined;
2666 isEdge: () => boolean;
2667 isChromium: () => boolean;
2668 isIE: () => boolean;
2669 isOpera: () => boolean;
2670 isFirefox: () => boolean;
2671 isSafari: () => boolean;
2674 current: string | undefined;
2676 isWindows: () => boolean;
2677 isiOS: () => boolean;
2678 isAndroid: () => boolean;
2679 isMacOS: () => boolean;
2680 isLinux: () => boolean;
2681 isSolaris: () => boolean;
2682 isFreeBSD: () => boolean;
2683 isChromeOS: () => boolean;
2686 isiPad: () => boolean;
2687 isiPhone: () => boolean;
2688 isTablet: () => boolean;
2689 isPhone: () => boolean;
2690 isTouch: () => boolean;
2691 isWebView: () => boolean;
2692 isDesktop: () => boolean;
2695 interface FakeClipboardItem {
2696 readonly items: Record<string, any>;
2697 readonly types: ReadonlyArray<string>;
2698 readonly getType: <D = any>(type: string) => D | undefined;
2700 interface FakeClipboard {
2701 readonly FakeClipboardItem: (items: Record<string, any>) => FakeClipboardItem;
2702 readonly write: (data: FakeClipboardItem[]) => void;
2703 readonly read: () => FakeClipboardItem[] | undefined;
2704 readonly clear: () => void;
2706 interface FocusManager {
2707 isEditorUIElement: (elm: Element) => boolean;
2709 interface EntitiesMap {
2710 [name: string]: string;
2712 interface Entities {
2713 encodeRaw: (text: string, attr?: boolean) => string;
2714 encodeAllRaw: (text: string) => string;
2715 encodeNumeric: (text: string, attr?: boolean) => string;
2716 encodeNamed: (text: string, attr?: boolean, entities?: EntitiesMap) => string;
2717 getEncodeFunc: (name: string, entities?: EntitiesMap | string) => (text: string, attr?: boolean) => string;
2718 decode: (text: string) => string;
2720 interface IconPack {
2721 icons: Record<string, string>;
2723 interface IconManager {
2724 add: (id: string, iconPack: IconPack) => void;
2725 get: (id: string) => IconPack;
2726 has: (id: string) => boolean;
2728 interface Resource {
2729 load: <T = any>(id: string, url: string) => Promise<T>;
2730 add: (id: string, data: any) => void;
2731 unload: (id: string) => void;
2734 setEditorInterval: (editor: Editor, callback: () => void, time?: number) => number;
2735 setEditorTimeout: (editor: Editor, callback: () => void, time?: number) => number;
2737 declare type UploadResult = UploadResult$2;
2738 interface ImageUploader {
2739 upload: (blobInfos: BlobInfo[], showNotification?: boolean) => Promise<UploadResult[]>;
2741 declare type ArrayCallback$1<T, R> = (x: T, i: number, xs: ReadonlyArray<T>) => R;
2742 declare type ObjCallback$1<T, R> = (value: T, key: string, obj: Record<string, T>) => R;
2743 declare type ArrayCallback<T, R> = ArrayCallback$1<T, R>;
2744 declare type ObjCallback<T, R> = ObjCallback$1<T, R>;
2746 is: (obj: any, type: string) => boolean;
2747 isArray: <T>(arr: any) => arr is Array<T>;
2748 inArray: <T>(arr: ArrayLike<T>, value: T) => number;
2750 <T>(arr: ArrayLike<T> | null | undefined, pred?: ArrayCallback<T, boolean>): T[];
2751 <T>(arr: Record<string, T> | null | undefined, pred?: ObjCallback<T, boolean>): T[];
2753 trim: (str: string | null | undefined) => string;
2754 toArray: <T>(obj: ArrayLike<T>) => T[];
2755 hasOwn: (obj: any, name: string) => boolean;
2756 makeMap: <T>(items: ArrayLike<T> | string, delim?: string | RegExp, map?: Record<string, T | string>) => Record<string, T | string>;
2758 <T>(arr: ArrayLike<T> | null | undefined, cb: ArrayCallback<T, void | boolean>, scope?: any): boolean;
2759 <T>(obj: Record<string, T> | null | undefined, cb: ObjCallback<T, void | boolean>, scope?: any): boolean;
2762 <T, R>(arr: ArrayLike<T> | null | undefined, cb: ArrayCallback<T, R>): R[];
2763 <T, R>(obj: Record<string, T> | null | undefined, cb: ObjCallback<T, R>): R[];
2765 extend: (obj: Object, ext: Object, ...objs: Object[]) => any;
2766 walk: <T = any>(obj: T, f: Function, n?: keyof T, scope?: any) => void;
2767 resolve: (path: string, o?: Object) => any;
2768 explode: (s: string, d?: string | RegExp) => string[];
2769 _addCacheSuffix: (url: string) => string;
2771 interface KeyboardLikeEvent {
2792 modifierPressed: (e: KeyboardLikeEvent) => boolean;
2793 metaKeyPressed: (e: KeyboardLikeEvent) => boolean;
2795 interface DOMUtilsNamespace {
2796 (doc: Document, settings: Partial<DOMUtilsSettings>): DOMUtils;
2798 nodeIndex: (node: Node, normalized?: boolean) => number;
2800 interface RangeUtilsNamespace {
2801 (dom: DOMUtils): RangeUtils;
2802 compareRanges: (rng1: RangeLikeObject, rng2: RangeLikeObject) => boolean;
2803 getCaretRangeFromPoint: (clientX: number, clientY: number, doc: Document) => Range;
2804 getSelectedNode: (range: Range) => Node;
2805 getNode: (container: Node, offset: number) => Node;
2807 interface AddOnManagerNamespace {
2808 <T>(): AddOnManager<T>;
2809 language: string | undefined;
2810 languageLoad: boolean;
2812 PluginManager: PluginManager;
2813 ThemeManager: ThemeManager;
2814 ModelManager: ModelManager;
2816 interface BookmarkManagerNamespace {
2817 (selection: EditorSelection): BookmarkManager;
2818 isBookmarkNode: (node: Node) => boolean;
2820 interface TinyMCE extends EditorManager {
2828 URI: URIConstructor;
2829 EventDispatcher: EventDispatcherConstructor<any>;
2830 Observable: Observable<any>;
2832 LocalStorage: Storage;
2833 ImageUploader: ImageUploader;
2836 EventUtils: EventUtilsConstructor;
2837 TreeWalker: DomTreeWalkerConstructor;
2838 TextSeeker: (dom: DOMUtils, isBlockBoundary?: (node: Node) => boolean) => TextSeeker;
2839 DOMUtils: DOMUtilsNamespace;
2840 ScriptLoader: ScriptLoaderConstructor;
2841 RangeUtils: RangeUtilsNamespace;
2842 Serializer: (settings: DomSerializerSettings, editor?: Editor) => DomSerializer;
2843 ControlSelection: (selection: EditorSelection, editor: Editor) => ControlSelection;
2844 BookmarkManager: BookmarkManagerNamespace;
2845 Selection: (dom: DOMUtils, win: Window, serializer: DomSerializer, editor: Editor) => EditorSelection;
2846 StyleSheetLoader: (documentOrShadowRoot: Document | ShadowRoot, settings: StyleSheetLoaderSettings) => StyleSheetLoader;
2850 Styles: (settings?: StylesSettings, schema?: Schema) => Styles;
2852 Node: AstNodeConstructor;
2853 Schema: (settings?: SchemaSettings) => Schema;
2854 DomParser: (settings?: DomParserSettings, schema?: Schema) => DomParser;
2855 Writer: (settings?: WriterSettings) => Writer;
2856 Serializer: (settings?: HtmlSerializerSettings, schema?: Schema) => HtmlSerializer;
2858 AddOnManager: AddOnManagerNamespace;
2859 Annotator: (editor: Editor) => Annotator;
2860 Editor: EditorConstructor;
2861 EditorCommands: EditorCommandsConstructor;
2862 EditorManager: EditorManager;
2863 EditorObservable: EditorObservable;
2865 FocusManager: FocusManager;
2866 Formatter: (editor: Editor) => Formatter;
2867 NotificationManager: (editor: Editor) => NotificationManager;
2868 Shortcuts: ShortcutsConstructor;
2869 UndoManager: (editor: Editor) => UndoManager;
2870 WindowManager: (editor: Editor) => WindowManager;
2872 ScriptLoader: ScriptLoader;
2873 PluginManager: PluginManager;
2874 ThemeManager: ThemeManager;
2875 ModelManager: ModelManager;
2876 IconManager: IconManager;
2878 FakeClipboard: FakeClipboard;
2879 trim: Tools['trim'];
2880 isArray: Tools['isArray'];
2882 toArray: Tools['toArray'];
2883 makeMap: Tools['makeMap'];
2884 each: Tools['each'];
2886 grep: Tools['grep'];
2887 inArray: Tools['inArray'];
2888 extend: Tools['extend'];
2889 walk: Tools['walk'];
2890 resolve: Tools['resolve'];
2891 explode: Tools['explode'];
2892 _addCacheSuffix: Tools['_addCacheSuffix'];
2894 declare const tinymce: TinyMCE;
2895 export { AddOnManager, Annotator, AstNode, Bookmark, BookmarkManager, ControlSelection, DOMUtils, Delay, DomParser, DomParserSettings, DomSerializer, DomSerializerSettings, DomTreeWalker, Editor, EditorCommands, EditorEvent, EditorManager, EditorModeApi, EditorObservable, EditorOptions, EditorSelection, Entities, Env, EventDispatcher, EventUtils, EventTypes_d as Events, FakeClipboard, FocusManager, Format_d as Formats, Formatter, GeomRect, HtmlSerializer, HtmlSerializerSettings, I18n, IconManager, Model, ModelManager, NotificationApi, NotificationManager, NotificationSpec, Observable, Plugin, PluginManager, RangeUtils, RawEditorOptions, Rect, Resource, Schema, SchemaSettings, ScriptLoader, Shortcuts, StyleSheetLoader, Styles, TextSeeker, Theme, ThemeManager, TinyMCE, Tools, URI, Ui_d as Ui, UndoManager, VK, WindowManager, Writer, WriterSettings, tinymce as default };