readonly isImmediatePropagationStopped: () => boolean;
readonly stopImmediatePropagation: () => void;
};
-declare type MappedEvent<T, K extends string> = K extends keyof T ? T[K] : any;
+declare type MappedEvent<T extends {}, K extends string> = K extends keyof T ? T[K] : any;
interface NativeEventMap {
'beforepaste': Event;
'blur': FocusEvent;
toggleEvent?: (name: string, state: boolean) => void | boolean;
beforeFire?: <T>(args: EditorEvent<T>) => void;
}
-interface EventDispatcherConstructor<T extends NativeEventMap> {
+interface EventDispatcherConstructor<T extends {}> {
readonly prototype: EventDispatcher<T>;
new (settings?: EventDispatcherSettings): EventDispatcher<T>;
isNative: (name: string) => boolean;
}
-declare class EventDispatcher<T> {
+declare class EventDispatcher<T extends {}> {
static isNative(name: string): boolean;
private readonly settings;
private readonly scope;
private readonly toggleEvent;
private bindings;
- constructor(settings?: Record<string, any>);
+ constructor(settings?: EventDispatcherSettings);
fire<K extends string, U extends MappedEvent<T, K>>(name: K, args?: U): EditorEvent<U>;
dispatch<K extends string, U extends MappedEvent<T, K>>(name: K, args?: U): EditorEvent<U>;
- on<K extends string>(name: K, callback: false | ((event: EditorEvent<MappedEvent<T, K>>) => void), prepend?: boolean, extra?: {}): this;
+ on<K extends string>(name: K, callback: false | ((event: EditorEvent<MappedEvent<T, K>>) => void | boolean), prepend?: boolean, extra?: {}): this;
off<K extends string>(name?: K, callback?: (event: EditorEvent<MappedEvent<T, K>>) => void): this;
once<K extends string>(name: K, callback: (event: EditorEvent<MappedEvent<T, K>>) => void, prepend?: boolean): this;
has(name: string): boolean;
Fragmented = "fragmented",
Complete = "complete"
}
-interface UndoLevel {
+interface BaseUndoLevel {
type: UndoLevelType;
+ bookmark: Bookmark | null;
+ beforeBookmark: Bookmark | null;
+}
+interface FragmentedUndoLevel extends BaseUndoLevel {
+ type: UndoLevelType.Fragmented;
fragments: string[];
+ content: '';
+}
+interface CompleteUndoLevel extends BaseUndoLevel {
+ type: UndoLevelType.Complete;
+ fragments: null;
content: string;
- bookmark: Bookmark;
- beforeBookmark: Bookmark;
}
+declare type NewUndoLevel = CompleteUndoLevel | FragmentedUndoLevel;
+declare type UndoLevel = NewUndoLevel & {
+ bookmark: Bookmark;
+};
interface UndoManager {
data: UndoLevel[];
typing: boolean;
- add: (level?: UndoLevel, event?: EditorEvent<any>) => UndoLevel;
+ add: (level?: Partial<UndoLevel>, event?: EditorEvent<any>) => UndoLevel | null;
dispatchChange: () => void;
beforeChange: () => void;
- undo: () => UndoLevel;
- redo: () => UndoLevel;
+ undo: () => UndoLevel | undefined;
+ redo: () => UndoLevel | undefined;
clear: () => void;
reset: () => void;
hasUndo: () => boolean;
hasRedo: () => boolean;
- transact: (callback: () => void) => UndoLevel;
+ transact: (callback: () => void) => UndoLevel | null;
ignore: (callback: () => void) => void;
extra: (callback1: () => void, callback2: () => void) => void;
}
declare type SchemaType = 'html4' | 'html5' | 'html5-strict';
-interface SchemaSettings {
+interface ElementSettings {
+ block_elements?: string;
+ boolean_attributes?: string;
+ move_caret_before_on_enter_elements?: string;
+ non_empty_elements?: string;
+ self_closing_elements?: string;
+ text_block_elements?: string;
+ text_inline_elements?: string;
+ void_elements?: string;
+ whitespace_elements?: string;
+ transparent_elements?: string;
+}
+interface SchemaSettings extends ElementSettings {
custom_elements?: string;
extended_valid_elements?: string;
invalid_elements?: string;
name: string;
value: string;
}
-interface AttributePattern {
- defaultValue?: string;
- forcedValue?: string;
+interface AttributePattern extends Attribute {
pattern: RegExp;
- required?: boolean;
- validValues?: Record<string, {}>;
}
interface ElementRule {
attributes: Record<string, Attribute>;
getNonEmptyElements: () => SchemaMap;
getMoveCaretBeforeOnEnterElements: () => SchemaMap;
getWhitespaceElements: () => SchemaMap;
+ getTransparentElements: () => SchemaMap;
getSpecialElements: () => SchemaRegExpMap;
isValidChild: (name: string, child: string) => boolean;
isValid: (name: string, attr?: string) => boolean;
type: number;
attributes?: Attributes$1;
value?: string;
- parent?: AstNode;
- firstChild?: AstNode;
- lastChild?: AstNode;
- next?: AstNode;
- prev?: AstNode;
+ parent?: AstNode | null;
+ firstChild?: AstNode | null;
+ lastChild?: AstNode | null;
+ next?: AstNode | null;
+ prev?: AstNode | null;
raw?: boolean;
constructor(name: string, type: number);
replace(node: AstNode): AstNode;
- attr(name: string, value: string | null): AstNode | undefined;
- attr(name: Record<string, string | null>): AstNode | undefined;
+ attr(name: string, value: string | null | undefined): AstNode | undefined;
+ attr(name: Record<string, string | null | undefined> | undefined): AstNode | undefined;
attr(name: string): string | undefined;
clone(): AstNode;
wrap(wrapper: AstNode): AstNode;
children(): AstNode[];
empty(): AstNode;
isEmpty(elements: SchemaMap, whitespace?: SchemaMap, predicate?: (node: AstNode) => boolean): boolean;
- walk(prev?: boolean): AstNode;
+ walk(prev?: boolean): AstNode | null | undefined;
}
declare type Content = string | AstNode;
declare type ContentFormat = 'raw' | 'text' | 'html' | 'tree';
no_events?: boolean;
no_selection?: boolean;
paste?: boolean;
+ load?: boolean;
+ initial?: boolean;
+ [key: string]: any;
}
interface GetSelectionContentArgs extends GetContentArgs {
selection?: boolean;
private readonly editor;
private lastPath;
constructor(editor: Editor);
- nodeChanged(args?: any): void;
+ nodeChanged(args?: Record<string, any>): void;
private isSameElementPath;
}
interface SelectionOverrides {
- showCaret: (direction: number, node: Element, before: boolean, scrollIntoView?: boolean) => Range | null;
- showBlockCaretContainer: (blockCaretContainer: Element) => void;
+ showCaret: (direction: number, node: HTMLElement, before: boolean, scrollIntoView?: boolean) => Range | null;
+ showBlockCaretContainer: (blockCaretContainer: HTMLElement) => void;
hideFakeCaret: () => void;
destroy: () => void;
}
fromClientRect: (clientRect: DOMRect) => GeomRect;
}
interface NotificationManagerImpl {
- open: (spec: NotificationSpec, closeCallback?: () => void) => NotificationApi;
+ open: (spec: NotificationSpec, closeCallback: () => void) => NotificationApi;
close: <T extends NotificationApi>(notification: T) => void;
getArgs: <T extends NotificationApi>(notification: T) => NotificationSpec;
}
}
declare type BlockPattern = BlockFormatPattern | BlockCmdPattern;
declare type Pattern = InlinePattern | BlockPattern;
+interface DynamicPatternContext {
+ readonly text: string;
+ readonly block: Element;
+}
+declare type DynamicPatternsLookup = (ctx: DynamicPatternContext) => Pattern[];
+declare type RawDynamicPatternsLookup = (ctx: DynamicPatternContext) => RawPattern[];
interface AlertBannerSpec {
type: 'alertbanner';
level: 'info' | 'warn' | 'error' | 'success';
}
interface ColorInputSpec extends FormComponentWithLabelSpec {
type: 'colorinput';
+ storageKey?: string;
}
interface ColorPickerSpec extends FormComponentWithLabelSpec {
type: 'colorpicker';
newTabName: string;
oldTabName: string;
}
-declare type DialogActionHandler<T> = (api: DialogInstanceApi<T>, details: DialogActionDetails) => void;
-declare type DialogChangeHandler<T> = (api: DialogInstanceApi<T>, details: DialogChangeDetails<T>) => void;
-declare type DialogSubmitHandler<T> = (api: DialogInstanceApi<T>) => void;
+declare type DialogActionHandler<T extends DialogData> = (api: DialogInstanceApi<T>, details: DialogActionDetails) => void;
+declare type DialogChangeHandler<T extends DialogData> = (api: DialogInstanceApi<T>, details: DialogChangeDetails<T>) => void;
+declare type DialogSubmitHandler<T extends DialogData> = (api: DialogInstanceApi<T>) => void;
declare type DialogCloseHandler = () => void;
-declare type DialogCancelHandler<T> = (api: DialogInstanceApi<T>) => void;
-declare type DialogTabChangeHandler<T> = (api: DialogInstanceApi<T>, details: DialogTabChangeDetails) => void;
+declare type DialogCancelHandler<T extends DialogData> = (api: DialogInstanceApi<T>) => void;
+declare type DialogTabChangeHandler<T extends DialogData> = (api: DialogInstanceApi<T>, details: DialogTabChangeDetails) => void;
declare type DialogSize = 'normal' | 'medium' | 'large';
interface DialogSpec<T extends DialogData> {
title: string;
declare type AutocompleterContents = SeparatorItemSpec | AutocompleterItemSpec | CardMenuItemSpec;
interface AutocompleterSpec {
type?: 'autocompleter';
- ch: string;
+ ch?: string;
+ trigger?: string;
minChars?: number;
columns?: ColumnTypes$1;
matches?: (rng: Range, text: string, pattern: string) => boolean;
fancytype: 'colorswatch';
initData?: {
allowCustomColors?: boolean;
- colors: ChoiceMenuItemSpec[];
+ colors?: ChoiceMenuItemSpec[];
+ storageKey?: string;
};
}
declare type FancyMenuItemSpec = InsertTableMenuItemSpec | ColorSwatchMenuItemSpec;
type PublicDialog_d_CustomEditorInitFn = CustomEditorInitFn;
type PublicDialog_d_DialogData = DialogData;
type PublicDialog_d_DialogSize = DialogSize;
-type PublicDialog_d_DialogSpec<_0> = DialogSpec<_0>;
-type PublicDialog_d_DialogInstanceApi<_0> = DialogInstanceApi<_0>;
+type PublicDialog_d_DialogSpec<T extends DialogData> = DialogSpec<T>;
+type PublicDialog_d_DialogInstanceApi<T extends DialogData> = DialogInstanceApi<T>;
type PublicDialog_d_DialogFooterButtonSpec = DialogFooterButtonSpec;
type PublicDialog_d_DialogActionDetails = DialogActionDetails;
-type PublicDialog_d_DialogChangeDetails<_0> = DialogChangeDetails<_0>;
+type PublicDialog_d_DialogChangeDetails<T> = DialogChangeDetails<T>;
type PublicDialog_d_DialogTabChangeDetails = DialogTabChangeDetails;
type PublicDialog_d_DropZoneSpec = DropZoneSpec;
type PublicDialog_d_GridSpec = GridSpec;
}
declare type MenuButtonItemTypes = NestedMenuItemContents;
declare type SuccessCallback$1 = (menu: string | MenuButtonItemTypes[]) => void;
+interface MenuButtonFetchContext {
+ pattern: string;
+}
interface BaseMenuButtonSpec {
text?: string;
tooltip?: string;
icon?: string;
- fetch: (success: SuccessCallback$1) => void;
+ search?: boolean | {
+ placeholder?: string;
+ };
+ fetch: (success: SuccessCallback$1, fetchContext: MenuButtonFetchContext) => void;
onSetup?: (api: BaseMenuButtonInstanceApi) => (api: BaseMenuButtonInstanceApi) => void;
}
interface BaseMenuButtonInstanceApi {
declare namespace PublicToolbar_d {
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, };
}
+interface ViewNormalButtonSpec {
+ type: 'button';
+ text: string;
+ buttonType?: 'primary' | 'secondary';
+ onAction: () => void;
+}
+declare type ViewButtonSpec = ViewNormalButtonSpec;
+interface ViewInstanceApi {
+ getContainer: () => HTMLElement;
+}
+interface ViewSpec {
+ buttons?: ViewButtonSpec[];
+ onShow: (api: ViewInstanceApi) => void;
+ onHide: (api: ViewInstanceApi) => void;
+}
+type PublicView_d_ViewSpec = ViewSpec;
+type PublicView_d_ViewInstanceApi = ViewInstanceApi;
+declare namespace PublicView_d {
+ export { PublicView_d_ViewSpec as ViewSpec, PublicView_d_ViewInstanceApi as ViewInstanceApi, };
+}
interface Registry$1 {
addButton: (name: string, spec: ToolbarButtonSpec) => void;
addGroupToolbarButton: (name: string, spec: GroupToolbarButtonSpec) => void;
addIcon: (name: string, svgData: string) => void;
addAutocompleter: (name: string, spec: AutocompleterSpec) => void;
addSidebar: (name: string, spec: SidebarSpec) => void;
+ addView: (name: string, spec: ViewSpec) => void;
getAll: () => {
buttons: Record<string, ToolbarButtonSpec | GroupToolbarButtonSpec | ToolbarMenuButtonSpec | ToolbarSplitButtonSpec | ToolbarToggleButtonSpec>;
menuItems: Record<string, MenuItemSpec | NestedMenuItemSpec | ToggleMenuItemSpec>;
contextToolbars: Record<string, ContextToolbarSpec | ContextFormSpec>;
icons: Record<string, string>;
sidebars: Record<string, SidebarSpec>;
+ views: Record<string, ViewSpec>;
};
}
interface AutocompleteLookupData {
declare type RemoveFormat = RemoveBlockFormat | RemoveInlineFormat | RemoveSelectorFormat;
declare type Format = ApplyFormat | RemoveFormat;
declare type Formats = Record<string, Format | Format[]>;
-declare type FormatAttrOrStyleValue = string | ((vars?: FormatVars) => string);
+declare type FormatAttrOrStyleValue = string | ((vars?: FormatVars) => string | null);
declare type FormatVars = Record<string, string | null>;
interface BaseFormat<T> {
ceFalseOverride?: boolean;
links?: boolean;
mixed?: boolean;
block_expand?: boolean;
- onmatch?: (node: Node, fmt: T, itemName: string) => boolean;
+ onmatch?: (node: Element, fmt: T, itemName: string) => boolean;
remove?: 'none' | 'empty' | 'all';
remove_similar?: boolean;
split?: boolean;
styles?: Record<string, FormatAttrOrStyleValue>;
toggle?: boolean;
preview?: string | false;
- onformat?: (elm: Node, fmt: T, vars?: FormatVars, node?: Node | RangeLikeObject) => void;
+ onformat?: (elm: Element, fmt: T, vars?: FormatVars, node?: Node | RangeLikeObject | null) => void;
clear_child_styles?: boolean;
merge_siblings?: boolean;
merge_with_parents?: boolean;
unload: (url: string) => void;
unloadAll: (urls: string[]) => void;
_setReferrerPolicy: (referrerPolicy: ReferrerPolicy) => void;
+ _setContentCssCors: (contentCssCors: boolean) => void;
}
declare type Registry = Registry$1;
interface EditorUiApi {
type Ui_d_EditorUiApi = EditorUiApi;
type Ui_d_EditorUi = EditorUi;
declare namespace Ui_d {
- 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, };
+ export { Ui_d_Registry as Registry, PublicDialog_d as Dialog, PublicInlineContent_d as InlineContent, PublicMenu_d as Menu, PublicView_d as View, PublicSidebar_d as Sidebar, PublicToolbar_d as Toolbar, Ui_d_EditorUiApi as EditorUiApi, Ui_d_EditorUi as EditorUi, };
}
interface WindowParams {
readonly inline?: 'cursor' | 'toolbar';
readonly ariaAttrs?: boolean;
}
-declare type InstanceApi<T> = UrlDialogInstanceApi | DialogInstanceApi<T>;
+declare type InstanceApi<T extends DialogData> = UrlDialogInstanceApi | DialogInstanceApi<T>;
interface WindowManagerImpl {
- open: <T>(config: DialogSpec<T>, params: WindowParams, closeWindow: (dialog: DialogInstanceApi<T>) => void) => DialogInstanceApi<T>;
+ open: <T extends DialogData>(config: DialogSpec<T>, params: WindowParams | undefined, closeWindow: (dialog: DialogInstanceApi<T>) => void) => DialogInstanceApi<T>;
openUrl: (config: UrlDialogSpec, closeWindow: (dialog: UrlDialogInstanceApi) => void) => UrlDialogInstanceApi;
alert: (message: string, callback: () => void) => void;
confirm: (message: string, callback: (state: boolean) => void) => void;
close: (dialog: InstanceApi<any>) => void;
}
interface WindowManager {
- open: <T>(config: DialogSpec<T>, params?: WindowParams) => DialogInstanceApi<T>;
+ open: <T extends DialogData>(config: DialogSpec<T>, params?: WindowParams) => DialogInstanceApi<T>;
openUrl: (config: UrlDialogSpec) => UrlDialogInstanceApi;
alert: (message: string, callback?: () => void, scope?: any) => void;
confirm: (message: string, callback?: (state: boolean) => void, scope?: any) => void;
}
interface ExecCommandEvent {
command: string;
- ui?: boolean;
+ ui: boolean;
value?: any;
}
interface BeforeGetContentEvent extends GetContentArgs {
interface SetContentEvent extends BeforeSetContentEvent {
content: string;
}
+interface SaveContentEvent extends GetContentEvent {
+ save: boolean;
+}
interface NewBlockEvent {
newBlock: Element;
}
interface FormatEvent {
format: string;
vars?: FormatVars;
- node?: Node | RangeLikeObject;
+ node?: Node | RangeLikeObject | null;
}
interface ObjectResizeEvent {
target: HTMLElement;
}
interface ScrollIntoViewEvent {
elm: HTMLElement;
- alignToTop: boolean;
+ alignToTop: boolean | undefined;
}
interface SetSelectionRangeEvent {
range: Range;
- forward: boolean;
+ forward: boolean | undefined;
}
interface ShowCaretEvent {
target: Node;
interface SwitchModeEvent {
mode: string;
}
-interface AddUndoEvent {
+interface ChangeEvent {
level: UndoLevel;
- lastLevel: UndoLevel;
- originalEvent: Event;
+ lastLevel: UndoLevel | undefined;
+}
+interface AddUndoEvent extends ChangeEvent {
+ originalEvent: Event | undefined;
}
interface UndoRedoEvent {
level: UndoLevel;
interface TableModifiedEvent extends TableEventData {
readonly table: HTMLTableElement;
}
+interface BeforeOpenNotificationEvent {
+ notification: NotificationSpec;
+}
+interface OpenNotificationEvent {
+ notification: NotificationApi;
+}
interface EditorEventMap extends Omit<NativeEventMap, 'blur' | 'focus'> {
'activate': {
- relatedTarget: Editor;
+ relatedTarget: Editor | null;
};
'deactivate': {
relatedTarget: Editor;
};
'focus': {
- blurredEditor: Editor;
+ blurredEditor: Editor | null;
};
'blur': {
- focusedEditor: Editor;
+ focusedEditor: Editor | null;
};
'resize': UIEvent;
'scroll': UIEvent;
'ObjectResized': ObjectResizeEvent;
'ObjectResizeStart': ObjectResizeEvent;
'SwitchMode': SwitchModeEvent;
- 'ScrollWindow': UIEvent;
+ 'ScrollWindow': Event;
'ResizeWindow': UIEvent;
'SkinLoaded': {};
'SkinLoadError': LoadErrorEvent;
'GetContent': GetContentEvent;
'BeforeSetContent': BeforeSetContentEvent;
'SetContent': SetContentEvent;
- 'LoadContent': {};
+ 'SaveContent': SaveContentEvent;
+ 'RawSaveContent': SaveContentEvent;
+ 'LoadContent': {
+ load: boolean;
+ element: HTMLElement;
+ };
'PreviewFormats': {};
'AfterPreviewFormats': {};
'ScriptsLoaded': {};
'Undo': UndoRedoEvent;
'BeforeAddUndo': AddUndoEvent;
'AddUndo': AddUndoEvent;
+ 'change': ChangeEvent;
'CloseWindow': WindowEvent<any>;
'OpenWindow': WindowEvent<any>;
'ProgressState': ProgressStateEvent;
'TableModified': TableModifiedEvent;
'NewRow': NewTableRowEvent;
'NewCell': NewTableCellEvent;
+ 'SetAttrib': SetAttribEvent;
+ 'hide': {};
+ 'show': {};
+ 'dirty': {};
+ 'BeforeOpenNotification': BeforeOpenNotificationEvent;
+ 'OpenNotification': OpenNotificationEvent;
}
interface EditorManagerEventMap {
'AddEditor': {
type EventTypes_d_GetContentEvent = GetContentEvent;
type EventTypes_d_BeforeSetContentEvent = BeforeSetContentEvent;
type EventTypes_d_SetContentEvent = SetContentEvent;
+type EventTypes_d_SaveContentEvent = SaveContentEvent;
type EventTypes_d_NewBlockEvent = NewBlockEvent;
type EventTypes_d_NodeChangeEvent = NodeChangeEvent;
type EventTypes_d_FormatEvent = FormatEvent;
type EventTypes_d_SetSelectionRangeEvent = SetSelectionRangeEvent;
type EventTypes_d_ShowCaretEvent = ShowCaretEvent;
type EventTypes_d_SwitchModeEvent = SwitchModeEvent;
+type EventTypes_d_ChangeEvent = ChangeEvent;
type EventTypes_d_AddUndoEvent = AddUndoEvent;
type EventTypes_d_UndoRedoEvent = UndoRedoEvent;
-type EventTypes_d_WindowEvent<_0> = WindowEvent<_0>;
+type EventTypes_d_WindowEvent<T extends DialogData> = WindowEvent<T>;
type EventTypes_d_ProgressStateEvent = ProgressStateEvent;
type EventTypes_d_AfterProgressStateEvent = AfterProgressStateEvent;
type EventTypes_d_PlaceholderToggleEvent = PlaceholderToggleEvent;
type EventTypes_d_NewTableCellEvent = NewTableCellEvent;
type EventTypes_d_TableEventData = TableEventData;
type EventTypes_d_TableModifiedEvent = TableModifiedEvent;
+type EventTypes_d_BeforeOpenNotificationEvent = BeforeOpenNotificationEvent;
+type EventTypes_d_OpenNotificationEvent = OpenNotificationEvent;
type EventTypes_d_EditorEventMap = EditorEventMap;
type EventTypes_d_EditorManagerEventMap = EditorManagerEventMap;
declare namespace EventTypes_d {
- 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, };
+ 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_SaveContentEvent as SaveContentEvent, 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_ChangeEvent as ChangeEvent, 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_BeforeOpenNotificationEvent as BeforeOpenNotificationEvent, EventTypes_d_OpenNotificationEvent as OpenNotificationEvent, EventTypes_d_EditorEventMap as EditorEventMap, EventTypes_d_EditorManagerEventMap as EditorManagerEventMap, };
}
type Format_d_Formats = Formats;
type Format_d_Format = Format;
api?: EditorUiApi;
};
declare type SetupCallback = (editor: Editor) => void;
-declare type FilePickerCallback = (callback: Function, value: any, meta: Record<string, any>) => void;
+declare type FilePickerCallback = (callback: (value: string, meta?: Record<string, any>) => void, value: string, meta: Record<string, any>) => void;
declare type FilePickerValidationStatus = 'valid' | 'unknown' | 'invalid' | 'none';
declare type FilePickerValidationCallback = (info: {
type: string;
}) => void) => void;
declare type PastePreProcessFn = (editor: Editor, args: PastePreProcessEvent) => void;
declare type PastePostProcessFn = (editor: Editor, args: PastePostProcessEvent) => void;
-declare type URLConverter = (url: string, name: string, elm?: HTMLElement) => string;
-declare type URLConverterCallback = (url: string, node: Node, on_save: boolean, name: string) => string;
+declare type URLConverter = (url: string, name: string, elm?: string | Element) => string;
+declare type URLConverterCallback = (url: string, node: Node | string | undefined, on_save: boolean, name: string) => string;
interface ToolbarGroup {
name?: string;
items: string[];
}
declare type ToolbarMode = 'floating' | 'sliding' | 'scrolling' | 'wrap';
+declare type ToolbarLocation = 'top' | 'bottom' | 'auto';
interface BaseEditorOptions {
a11y_advanced_options?: boolean;
add_form_submit_trigger?: boolean;
branding?: boolean;
cache_suffix?: string;
color_cols?: number;
+ color_cols_foreground?: number;
+ color_cols_background?: number;
color_map?: string[];
+ color_map_foreground?: string[];
+ color_map_background?: string[];
+ color_default_foreground?: string;
+ color_default_background?: string;
content_css?: boolean | string | string[];
content_css_cors?: boolean;
content_security_policy?: string;
directionality?: 'ltr' | 'rtl';
doctype?: string;
document_base_url?: string;
+ draggable_modal?: boolean;
editable_class?: string;
element_format?: 'xhtml' | 'html';
elementpath?: boolean;
forced_root_block?: string;
forced_root_block_attrs?: Record<string, string>;
formats?: Formats;
+ format_noneditable_selector?: string;
height?: number | string;
hidden_input?: boolean;
icons?: string;
placeholder?: string;
preserve_cdata?: boolean;
preview_styles?: false | string;
+ promotion?: boolean;
protect?: RegExp[];
readonly?: boolean;
referrer_policy?: ReferrerPolicy;
table_tab_navigation?: boolean;
target?: HTMLElement;
text_patterns?: RawPattern[] | false;
+ text_patterns_lookup?: RawDynamicPatternsLookup;
theme?: string | ThemeInitFunc | false;
theme_url?: string;
toolbar?: boolean | string | string[] | Array<ToolbarGroup>;
toolbar7?: string;
toolbar8?: string;
toolbar9?: string;
+ toolbar_groups?: Record<string, GroupToolbarButtonSpec>;
+ toolbar_location?: ToolbarLocation;
toolbar_mode?: ToolbarMode;
toolbar_sticky?: boolean;
toolbar_sticky_offset?: number;
plugins: string[];
}
interface EditorOptions extends NormalizedEditorOptions {
+ a11y_advanced_options: boolean;
+ allow_unsafe_link_target: boolean;
+ anchor_bottom: string;
+ anchor_top: string;
+ automatic_uploads: boolean;
+ block_formats: string;
+ body_class: string;
+ body_id: string;
+ br_newline_selector: string;
+ color_map: string[];
+ color_cols: number;
+ color_cols_foreground: number;
+ color_cols_background: number;
+ color_default_background: string;
+ color_default_foreground: string;
content_css: string[];
contextmenu: string[];
+ custom_colors: boolean;
+ document_base_url: string;
+ draggable_modal: boolean;
+ editable_class: string;
font_css: string[];
+ font_family_formats: string;
+ font_size_classes: string;
+ font_size_formats: string;
+ font_size_legacy_values: string;
+ font_size_style_values: string;
forced_root_block: string;
forced_root_block_attrs: Record<string, string>;
+ format_noneditable_selector: string;
+ height: number | string;
+ iframe_attrs: Record<string, string>;
+ images_file_types: string;
+ images_upload_base_path: string;
+ images_upload_credentials: boolean;
+ images_upload_url: string;
+ indent_use_margin: boolean;
+ indentation: string;
+ inline: boolean;
+ inline_boundaries_selector: string;
+ language: string;
+ language_load: boolean;
+ language_url: string;
+ line_height_formats: string;
+ menu: Record<string, {
+ title: string;
+ items: string;
+ }>;
+ menubar: boolean | string;
+ model: string;
+ no_newline_selector: string;
+ noneditable_class: string;
noneditable_regexp: RegExp[];
- object_resizing?: string;
- preview_styles?: string;
- text_patterns?: Pattern[];
+ object_resizing: string;
+ paste_as_text: boolean;
+ preview_styles: string;
+ promotion: boolean;
+ readonly: boolean;
+ removed_menuitems: string;
+ toolbar: boolean | string | string[] | Array<ToolbarGroup>;
+ toolbar_groups: Record<string, GroupToolbarButtonSpec>;
+ toolbar_location: ToolbarLocation;
+ toolbar_mode: ToolbarMode;
+ toolbar_persist: boolean;
+ toolbar_sticky: boolean;
+ toolbar_sticky_offset: number;
+ text_patterns: Pattern[];
+ text_patterns_lookup: DynamicPatternsLookup;
+ visual: boolean;
+ visual_anchor_class: string;
+ visual_table_class: string;
+ width: number | string;
}
declare type StyleMap = Record<string, string | number>;
interface StylesSettings {
url_converter_scope?: any;
}
interface Styles {
- parse: (css: string) => Record<string, string>;
+ parse: (css: string | undefined) => Record<string, string>;
serialize: (styles: StyleMap, elementName?: string) => string;
}
-declare type EventUtilsCallback<T> = (event: EventUtilsEvent<T>) => void;
+declare type EventUtilsCallback<T> = (event: EventUtilsEvent<T>) => void | boolean;
declare type EventUtilsEvent<T> = NormalizedEvent<T> & {
metaKey: boolean;
};
+interface Callback$1<T> {
+ func: EventUtilsCallback<T>;
+ scope: any;
+}
+interface CallbackList<T> extends Array<Callback$1<T>> {
+ fakeName: string | false;
+ capture: boolean;
+ nativeHandler: EventListener;
+}
interface EventUtilsConstructor {
readonly prototype: EventUtils;
new (): EventUtils;
declare class EventUtils {
static Event: EventUtils;
domLoaded: boolean;
- events: Record<string, any>;
+ events: Record<number, Record<string, CallbackList<any>>>;
private readonly expando;
private hasFocusIn;
- private hasMouseEnterLeave;
- private mouseEnterLeave;
private count;
constructor();
bind<K extends keyof HTMLElementEventMap>(target: any, name: K, callback: EventUtilsCallback<HTMLElementEventMap[K]>, scope?: any): EventUtilsCallback<HTMLElementEventMap[K]>;
dispatch(target: any, name: string, args?: {}): this;
clean(target: any): this;
destroy(): void;
- cancel<T = any>(e: EventUtilsEvent<T>): boolean;
+ cancel<T>(e: EventUtilsEvent<T>): boolean;
private executeHandlers;
}
+interface SetAttribEvent {
+ attrElm: HTMLElement;
+ attrName: string;
+ attrValue: string | boolean | number | null;
+}
interface DOMUtilsSettings {
schema: Schema;
url_converter: URLConverter;
ownEvents: boolean;
keep_values: boolean;
update_styles: boolean;
- root_element: HTMLElement;
- collect: Function;
- onSetAttrib: Function;
+ root_element: HTMLElement | null;
+ collect: boolean;
+ onSetAttrib: (event: SetAttribEvent) => void;
contentCssCors: boolean;
referrerPolicy: ReferrerPolicy;
}
declare type Target = Node | Window;
-declare type RunArguments<T extends Node = Node> = string | T | Array<string | T>;
+declare type RunArguments<T extends Node = Node> = string | T | Array<string | T> | null;
declare type BoundEvent = [
Target,
string,
any
];
declare type Callback<K extends string> = EventUtilsCallback<MappedEvent<HTMLElementEventMap, K>>;
-declare type RunResult<T, R> = T extends Array<any> ? false | R[] : false | R;
+declare type RunResult<T, R> = T extends Array<any> ? R[] : false | R;
interface DOMUtils {
doc: Document;
settings: Partial<DOMUtilsSettings>;
styles: Styles;
schema: Schema;
events: EventUtils;
- root: Node;
- isBlock: (node: string | Node) => boolean;
+ root: Node | null;
+ isBlock: {
+ (node: Node | null): node is HTMLElement;
+ (node: string): boolean;
+ };
clone: (node: Node, deep: boolean) => Node;
getRoot: () => HTMLElement;
getViewPort: (argWin?: Window) => GeomRect;
h: number;
};
getParent: {
- <K extends keyof HTMLElementTagNameMap>(node: string | Node, selector: K, root?: Node): HTMLElementTagNameMap[K] | null;
- <T extends HTMLElement>(node: string | Node, selector: (node: HTMLElement) => node is T, root?: Node): T | null;
- <T extends Element = Element>(node: string | Node, selector?: string | ((node: HTMLElement) => boolean | void), root?: Node): T | null;
+ <K extends keyof HTMLElementTagNameMap>(node: string | Node | null, selector: K, root?: Node): HTMLElementTagNameMap[K] | null;
+ <T extends Element>(node: string | Node | null, selector: string | ((node: Node) => node is T), root?: Node): T | null;
+ (node: string | Node | null, selector?: string | ((node: Node) => boolean | void), root?: Node): Node | null;
};
getParents: {
- <K extends keyof HTMLElementTagNameMap>(elm: string | Node, selector: K, root?: Node, collect?: boolean): Array<HTMLElementTagNameMap[K]>;
- <T extends HTMLElement>(node: string | Node, selector: (node: HTMLElement) => node is T, root?: Node): T[];
- <T extends Element = Element>(elm: string | Node, selector?: string | ((node: HTMLElement) => boolean | void), root?: Node, collect?: boolean): T[];
+ <K extends keyof HTMLElementTagNameMap>(elm: string | HTMLElementTagNameMap[K] | null, selector: K, root?: Node, collect?: boolean): Array<HTMLElementTagNameMap[K]>;
+ <T extends Element>(node: string | Node | null, selector: string | ((node: Node) => node is T), root?: Node, collect?: boolean): T[];
+ (elm: string | Node | null, selector?: string | ((node: Node) => boolean | void), root?: Node, collect?: boolean): Node[];
+ };
+ get: {
+ <T extends Node>(elm: T): T;
+ (elm: string): HTMLElement | null;
};
- get: (elm: string | Node) => HTMLElement | null;
- getNext: (node: Node, selector: string | ((node: Node) => boolean)) => Node | null;
- getPrev: (node: Node, selector: string | ((node: Node) => boolean)) => Node | null;
+ getNext: (node: Node | null, selector: string | ((node: Node) => boolean)) => Node | null;
+ getPrev: (node: Node | null, selector: string | ((node: Node) => boolean)) => Node | null;
select: {
<K extends keyof HTMLElementTagNameMap>(selector: K, scope?: string | Node): Array<HTMLElementTagNameMap[K]>;
<T extends HTMLElement = HTMLElement>(selector: string, scope?: string | Node): T[];
};
- is: (elm: Node | Node[], selector: string) => boolean;
- add: (parentElm: RunArguments, name: string | Node, attrs?: Record<string, string | boolean | number>, html?: string | Node, create?: boolean) => HTMLElement;
+ is: {
+ <T extends Element>(elm: Node | Node[] | null, selector: string): elm is T;
+ (elm: Node | Node[] | null, selector: string): boolean;
+ };
+ add: (parentElm: RunArguments, name: string | Element, attrs?: Record<string, string | boolean | number | null>, html?: string | Node | null, create?: boolean) => HTMLElement;
create: {
- <K extends keyof HTMLElementTagNameMap>(name: K, attrs?: Record<string, string | boolean | number>, html?: string | Node): HTMLElementTagNameMap[K];
- (name: string, attrs?: Record<string, string | boolean | number>, html?: string | Node): HTMLElement;
+ <K extends keyof HTMLElementTagNameMap>(name: K, attrs?: Record<string, string | boolean | number | null>, html?: string | Node | null): HTMLElementTagNameMap[K];
+ (name: string, attrs?: Record<string, string | boolean | number | null>, html?: string | Node | null): HTMLElement;
};
- createHTML: (name: string, attrs?: Record<string, string>, html?: string) => string;
+ createHTML: (name: string, attrs?: Record<string, string | null>, html?: string) => string;
createFragment: (html?: string) => DocumentFragment;
- remove: <T extends Node>(node: string | T | T[], keepChildren?: boolean) => RunResult<typeof node, T>;
- setStyle: (elm: string | Node | Node[], name: string, value: string | number | null) => void;
- getStyle: (elm: string | Node, name: string, computed?: boolean) => string | undefined;
- setStyles: (elm: string | Node | Node[], stylesArg: StyleMap) => void;
+ remove: {
+ <T extends Node>(node: T | T[], keepChildren?: boolean): typeof node extends Array<any> ? T[] : T;
+ <T extends Node>(node: string, keepChildren?: boolean): T | false;
+ };
+ getStyle: {
+ (elm: Element, name: string, computed: true): string;
+ (elm: string | Element | null, name: string, computed?: boolean): string | undefined;
+ };
+ setStyle: (elm: string | Element | Element[], name: string, value: string | number | null) => void;
+ setStyles: (elm: string | Element | Element[], stylesArg: StyleMap) => void;
removeAllAttribs: (e: RunArguments<Element>) => void;
- setAttrib: (elm: string | Node | Node[], name: string, value: string | boolean | number | null) => void;
- setAttribs: (elm: string | Node | Node[], attrs: Record<string, string | boolean | number | null>) => void;
- getAttrib: (elm: string | Node, name: string, defaultVal?: string) => string;
- getPos: (elm: string | Node, rootElm?: Node) => {
+ setAttrib: (elm: RunArguments<Element>, name: string, value: string | boolean | number | null) => void;
+ setAttribs: (elm: RunArguments<Element>, attrs: Record<string, string | boolean | number | null>) => void;
+ getAttrib: (elm: string | Element | null, name: string, defaultVal?: string) => string;
+ getAttribs: (elm: string | Element) => NamedNodeMap | Attr[];
+ getPos: (elm: string | Element, rootElm?: Node) => {
x: number;
y: number;
};
serializeStyle: (stylesArg: StyleMap, name?: string) => string;
addStyle: (cssText: string) => void;
loadCSS: (url: string) => void;
- addClass: (elm: string | Node | Node[], cls: string) => void;
- removeClass: (elm: string | Node | Node[], cls: string) => void;
- hasClass: (elm: string | Node, cls: string) => boolean;
- toggleClass: (elm: string | Node | Node[], cls: string, state?: boolean) => void;
+ hasClass: (elm: string | Element, cls: string) => boolean;
+ addClass: (elm: RunArguments<Element>, cls: string) => void;
+ removeClass: (elm: RunArguments<Element>, cls: string) => void;
+ toggleClass: (elm: RunArguments<Element>, cls: string, state?: boolean) => void;
show: (elm: string | Node | Node[]) => void;
hide: (elm: string | Node | Node[]) => void;
isHidden: (elm: string | Node) => boolean;
uniqueId: (prefix?: string) => string;
- setHTML: (elm: string | Node | Node[], html: string) => void;
+ setHTML: (elm: RunArguments<Element>, html: string) => void;
getOuterHTML: (elm: string | Node) => string;
setOuterHTML: (elm: string | Node | Node[], html: string) => void;
decode: (text: string) => string;
<K extends keyof HTMLElementTagNameMap>(elm: Element, name: K): HTMLElementTagNameMap[K];
(elm: Element, name: string): Element;
};
- findCommonAncestor: (a: Node, b: Node) => Node;
+ findCommonAncestor: (a: Node, b: Node) => Node | null;
run<R, T extends Node>(this: DOMUtils, elm: T | T[], func: (node: T) => R, scope?: any): typeof elm extends Array<any> ? R[] : R;
run<R, T extends Node>(this: DOMUtils, elm: RunArguments<T>, func: (node: T) => R, scope?: any): RunResult<typeof elm, R>;
- getAttribs: (elm: string | Node) => NamedNodeMap | Attr[];
isEmpty: (node: Node, elements?: Record<string, any>) => boolean;
createRng: () => Range;
nodeIndex: (node: Node, normalized?: boolean) => number;
split: {
- <T extends Node>(parentElm: Node, splitElm: Node, replacementElm: T): T;
- <T extends Node>(parentElm: Node, splitElm: T): T;
+ <T extends Node>(parentElm: Node, splitElm: Node, replacementElm: T): T | undefined;
+ <T extends Node>(parentElm: Node, splitElm: T): T | undefined;
};
bind: {
<K extends string>(target: Target, name: K, func: Callback<K>, scope?: any): Callback<K>;
height: number;
}
interface BookmarkManager {
- getBookmark: (type: number, normalized?: boolean) => Bookmark;
+ getBookmark: (type?: number, normalized?: boolean) => Bookmark;
moveToBookmark: (bookmark: Bookmark) => void;
}
interface ControlSelection {
isResizable: (elm: Element) => boolean;
- showResizeRect: (elm: Element) => void;
+ showResizeRect: (elm: HTMLElement) => void;
hideResizeRect: () => void;
updateResizeRect: (evt: EditorEvent<any>) => void;
destroy: () => void;
getContent: () => string;
pi: (name: string, text?: string) => void;
reset: () => void;
- start: (name: string, attrs?: Attributes, empty?: boolean) => void;
+ start: (name: string, attrs?: Attributes | null, empty?: boolean) => void;
text: (text: string, raw?: boolean) => void;
}
interface HtmlSerializerSettings extends WriterSettings {
isCollapsed: () => boolean;
isForward: () => boolean;
setNode: (elm: Element) => Element;
- getNode: () => Element;
+ getNode: () => HTMLElement;
getSel: () => Selection | null;
setRng: (rng: Range, forward?: boolean) => void;
getRng: () => Range;
selectorChanged: (selector: string, callback: (active: boolean, args: {
node: Node;
selector: String;
- parents: Element[];
+ parents: Node[];
}) => void) => EditorSelection;
selectorChangedWithUnbind: (selector: string, callback: (active: boolean, args: {
node: Node;
selector: String;
- parents: Element[];
+ parents: Node[];
}) => void) => {
unbind: () => void;
};
- getScrollContainer: () => HTMLElement;
+ getScrollContainer: () => HTMLElement | undefined;
scrollIntoView: (elm?: HTMLElement, alignToTop?: boolean) => void;
placeCaretAt: (clientX: number, clientY: number) => void;
getBoundingClientRect: () => ClientRect | DOMRect;
destroy: () => void;
+ expand: (options?: {
+ type: 'word';
+ }) => void;
}
-declare type EditorCommandCallback = (ui: boolean, value: any) => void;
-declare type EditorCommandsCallback = (command: string, ui: boolean, value: any) => void;
+declare type EditorCommandCallback<S> = (this: S, ui: boolean, value: any) => void;
+declare type EditorCommandsCallback = (command: string, ui: boolean, value?: any) => void;
interface Commands {
state: Record<string, (command: string) => boolean>;
exec: Record<string, EditorCommandsCallback>;
queryCommandValue(command: string): string;
addCommands<K extends keyof Commands>(commandList: Commands[K], type: K): void;
addCommands(commandList: Record<string, EditorCommandsCallback>): void;
- addCommand(command: string, callback: EditorCommandCallback, scope?: any): void;
+ addCommand<S>(command: string, callback: EditorCommandCallback<S>, scope: S): void;
+ addCommand(command: string, callback: EditorCommandCallback<Editor>): void;
queryCommandSupported(command: string): boolean;
- addQueryStateHandler(command: string, callback: () => boolean, scope?: any): void;
- addQueryValueHandler(command: string, callback: () => string, scope?: any): void;
+ addQueryStateHandler<S>(command: string, callback: (this: S) => boolean, scope: S): void;
+ addQueryStateHandler(command: string, callback: (this: Editor) => boolean): void;
+ addQueryValueHandler<S>(command: string, callback: (this: S) => string, scope: S): void;
+ addQueryValueHandler(command: string, callback: (this: Editor) => string): void;
}
interface RawString {
raw: string;
string,
...Primitive[]
];
-declare type Untranslated = Primitive | TokenisedString | RawString;
+declare type Untranslated = Primitive | TokenisedString | RawString | null | undefined;
declare type TranslatedString = string;
interface I18n {
getData: () => Record<string, Record<string, string>>;
isRtl: () => boolean;
hasCode: (code: string) => boolean;
}
-interface Observable<T> {
+interface Observable<T extends {}> {
fire<K extends string, U extends MappedEvent<T, K>>(name: K, args?: U, bubble?: boolean): EditorEvent<U>;
dispatch<K extends string, U extends MappedEvent<T, K>>(name: K, args?: U, bubble?: boolean): EditorEvent<U>;
on<K extends string>(name: K, callback: (event: EditorEvent<MappedEvent<T, K>>) => void, prepend?: boolean): EventDispatcher<T>;
}
declare class URI {
static parseDataUri(uri: string): {
- type: string;
+ type: string | undefined;
data: string;
};
static isDomSafe(uri: string, context?: string, options?: SafeUriOptions): boolean;
pathname?: string;
}): string;
source: string;
- protocol: string;
- authority: string;
- userInfo: string;
- user: string;
- password: string;
- host: string;
- port: string;
- relative: string;
+ protocol: string | undefined;
+ authority: string | undefined;
+ userInfo: string | undefined;
+ user: string | undefined;
+ password: string | undefined;
+ host: string | undefined;
+ port: string | undefined;
+ relative: string | undefined;
path: string;
directory: string;
- file: string;
- query: string;
- anchor: string;
+ file: string | undefined;
+ query: string | undefined;
+ anchor: string | undefined;
settings: URISettings;
constructor(url: string, settings?: URISettings);
setPath(path: string): void;
majorVersion: string;
minorVersion: string;
releaseDate: string;
- activeEditor: Editor;
- focusedEditor: Editor;
+ activeEditor: Editor | null;
+ focusedEditor: Editor | null;
baseURI: URI;
baseURL: string;
documentBaseURL: string;
createEditor(this: EditorManager, id: string, options: RawEditorOptions): Editor;
execCommand(this: EditorManager, cmd: string, ui: boolean, value: any): boolean;
get(this: EditorManager): Editor[];
- get(this: EditorManager, id: number | string): Editor;
+ get(this: EditorManager, id: number | string): Editor | null;
init(this: EditorManager, options: RawEditorOptions): Promise<Editor[]>;
overrideDefaults(this: EditorManager, defaultOptions: Partial<RawEditorOptions>): void;
remove(this: EditorManager): void;
- remove(this: EditorManager, selector: string | Editor): Editor | void;
+ remove(this: EditorManager, selector: string): void;
+ remove(this: EditorManager, editor: Editor): Editor | null;
setActive(this: EditorManager, editor: Editor): void;
setup(this: EditorManager): void;
translate: (text: Untranslated) => TranslatedString;
}
interface EditorObservable extends Observable<EditorEventMap> {
bindPendingEventDelegates(this: Editor): void;
- toggleNativeEvent(this: Editor, name: string, state: boolean): any;
+ toggleNativeEvent(this: Editor, name: string, state: boolean): void;
unbindAllNativeEvents(this: Editor): void;
}
interface ProcessorSuccess<T> {
};
isRegistered: (name: string) => boolean;
get: {
- <K extends keyof EditorOptions>(name: K): EditorOptions[K] | undefined;
+ <K extends keyof EditorOptions>(name: K): EditorOptions[K];
<T>(name: string): T | undefined;
};
set: <K extends string, T>(name: K, value: K extends keyof NormalizedEditorOptions ? NormalizedEditorOptions[K] : T) => boolean;
declare type FormatChangeCallback = (state: boolean, data: {
node: Node;
format: string;
- parents: any;
+ parents: Element[];
}) => void;
interface FormatRegistry {
get: {
unregister: (name: string) => Formats;
}
interface Formatter extends FormatRegistry {
- apply: (name: string, vars?: FormatVars, node?: Node | RangeLikeObject) => void;
+ apply: (name: string, vars?: FormatVars, node?: Node | RangeLikeObject | null) => void;
remove: (name: string, vars?: FormatVars, node?: Node | Range, similar?: boolean) => void;
toggle: (name: string, vars?: FormatVars, node?: Node) => void;
match: (name: string, vars?: FormatVars, node?: Node, similar?: boolean) => boolean;
closest: (names: string[]) => string | null;
matchAll: (names: string[], vars?: FormatVars) => string[];
- matchNode: (node: Node, name: string, vars?: FormatVars, similar?: boolean) => Format | undefined;
+ matchNode: (node: Node | null, name: string, vars?: FormatVars, similar?: boolean) => Format | undefined;
canApply: (name: string) => boolean;
formatChanged: (names: string, callback: FormatChangeCallback, similar?: boolean, vars?: FormatVars) => {
unbind: () => void;
};
- getCssText: (format: string | Format) => string;
+ getCssText: (format: string | ApplyFormat) => string;
}
interface EditorMode {
isReadOnly: () => boolean;
private readonly shortcuts;
private pendingPatterns;
constructor(editor: Editor);
- add(pattern: string, desc: string, cmdFunc: CommandFunc, scope?: any): boolean;
+ add(pattern: string, desc: string | null, cmdFunc: CommandFunc, scope?: any): boolean;
remove(pattern: string): boolean;
private normalizeCommandFunc;
private createShortcut;
private matchShortcut;
private executeShortcutAction;
}
+interface RenderResult {
+ iframeContainer?: HTMLElement;
+ editorContainer: HTMLElement;
+ api?: Partial<EditorUiApi>;
+}
interface Theme {
ui?: any;
inline?: any;
execCommand?: (command: string, ui?: boolean, value?: any) => boolean;
destroy?: () => void;
init?: (editor: Editor, url: string) => void;
- renderUI?: () => {
- iframeContainer?: HTMLIFrameElement;
- editorContainer: HTMLElement;
- api?: Partial<EditorUiApi>;
- };
+ renderUI?: () => RenderResult;
getNotificationManagerImpl?: () => NotificationManagerImpl;
getWindowManagerImpl?: () => WindowManagerImpl;
}
editorCommands: EditorCommands;
suffix: string;
editorManager: EditorManager;
+ hidden: boolean;
inline: boolean;
+ hasVisual: boolean;
isNotDirty: boolean;
annotator: Annotator;
- bodyElement: HTMLElement;
+ bodyElement: HTMLElement | undefined;
bookmark: any;
composing: boolean;
container: HTMLElement;
contentAreaContainer: HTMLElement;
contentDocument: Document;
contentWindow: Window;
- delegates: Record<string, (event: any) => void>;
+ delegates: Record<string, EventUtilsCallback<any>> | undefined;
destroyed: boolean;
dom: DOMUtils;
editorContainer: HTMLElement;
editorUpload: EditorUpload;
- eventRoot?: Element;
+ eventRoot: Element | undefined;
formatter: Formatter;
- formElement: HTMLElement;
- formEventDelegate: (e: Event) => void;
+ formElement: HTMLElement | undefined;
+ formEventDelegate: ((e: Event) => void) | undefined;
hasHiddenInput: boolean;
- hasVisual: boolean;
- hidden: boolean;
iframeElement: HTMLIFrameElement | null;
- iframeHTML: string;
+ iframeHTML: string | undefined;
initialized: boolean;
notificationManager: NotificationManager;
orgDisplay: string;
- orgVisibility: string;
+ orgVisibility: string | undefined;
parser: DomParser;
quirks: Quirks;
readonly: boolean;
model: Model;
undoManager: UndoManager;
windowManager: WindowManager;
- _beforeUnload: () => void;
- _eventDispatcher: EventDispatcher<NativeEventMap>;
+ _beforeUnload: (() => void) | undefined;
+ _eventDispatcher: EventDispatcher<NativeEventMap> | undefined;
_nodeChangeDispatcher: NodeChange;
_pendingNativeEvents: string[];
_selectionOverrides: SelectionOverrides;
getParam<T>(name: string, defaultVal: T, type?: BuiltInOptionType): T;
hasPlugin(name: string, loaded?: boolean): boolean;
nodeChanged(args?: any): void;
- addCommand(name: string, callback: EditorCommandCallback, scope?: object): void;
- addQueryStateHandler(name: string, callback: () => boolean, scope?: any): void;
- addQueryValueHandler(name: string, callback: () => string, scope?: any): void;
+ addCommand<S>(name: string, callback: EditorCommandCallback<S>, scope: S): void;
+ addCommand(name: string, callback: EditorCommandCallback<Editor>): void;
+ addQueryStateHandler<S>(name: string, callback: (this: S) => boolean, scope?: S): void;
+ addQueryStateHandler(name: string, callback: (this: Editor) => boolean): void;
+ addQueryValueHandler<S>(name: string, callback: (this: S) => string, scope: S): void;
+ addQueryValueHandler(name: string, callback: (this: Editor) => string): void;
addShortcut(pattern: string, desc: string, cmdFunc: string | [
string,
boolean,
hide(): void;
isHidden(): boolean;
setProgressState(state: boolean, time?: number): void;
- load(args?: any): string;
- save(args?: any): string;
+ load(args?: Partial<SetContentArgs>): string;
+ save(args?: Partial<GetContentArgs>): string;
setContent(content: string, args?: Partial<SetContentArgs>): string;
setContent(content: AstNode, args?: Partial<SetContentArgs>): AstNode;
setContent(content: Content, args?: Partial<SetContentArgs>): Content;
getWin(): Window;
getDoc(): Document;
getBody(): HTMLElement;
- convertURL(url: string, name: string, elm?: any): string;
+ convertURL(url: string, name: string, elm?: string | Element): string;
addVisual(elm?: HTMLElement): void;
remove(): void;
destroy(automatic?: boolean): void;
lookup: Record<string, {
instance: AddOnConstructor<T>;
}>;
- get: (name: string) => AddOnConstructor<T>;
- requireLangPack: (name: string, languages: string) => void;
+ get: (name: string) => AddOnConstructor<T> | undefined;
+ requireLangPack: (name: string, languages?: string) => void;
add: (id: string, addOn: AddOnConstructor<T>) => AddOnConstructor<T>;
remove: (name: string) => void;
createUrl: (baseUrl: UrlObject, dep: string | UrlObject) => UrlObject;
walk: (rng: Range, callback: (nodes: Node[]) => void) => void;
split: (rng: Range) => RangeLikeObject;
normalize: (rng: Range) => boolean;
+ expand: (rng: Range, options?: {
+ type: 'word';
+ }) => Range;
}
interface ScriptLoaderSettings {
referrerPolicy?: ReferrerPolicy;
private readonly rootNode;
private node;
constructor(startNode: Node, rootNode: Node);
- current(): Node | undefined;
- next(shallow?: boolean): Node | undefined;
- prev(shallow?: boolean): Node | undefined;
- prev2(shallow?: boolean): Node | undefined;
+ current(): Node | null | undefined;
+ next(shallow?: boolean): Node | null | undefined;
+ prev(shallow?: boolean): Node | null | undefined;
+ prev2(shallow?: boolean): Node | null | undefined;
private findSibling;
private findPreviousNode;
}
encodeAllRaw: (text: string) => string;
encodeNumeric: (text: string, attr?: boolean) => string;
encodeNamed: (text: string, attr?: boolean, entities?: EntitiesMap) => string;
- getEncodeFunc: (name: string, entities?: EntitiesMap | string) => (text: string, attr?: boolean) => string;
+ getEncodeFunc: (name: string, entities?: string) => (text: string, attr?: boolean) => string;
decode: (text: string) => string;
}
interface IconPack {
add: (id: string, data: any) => void;
unload: (id: string) => void;
}
+type TextPatterns_d_Pattern = Pattern;
+type TextPatterns_d_RawPattern = RawPattern;
+type TextPatterns_d_DynamicPatternsLookup = DynamicPatternsLookup;
+type TextPatterns_d_RawDynamicPatternsLookup = RawDynamicPatternsLookup;
+type TextPatterns_d_DynamicPatternContext = DynamicPatternContext;
+type TextPatterns_d_BlockCmdPattern = BlockCmdPattern;
+type TextPatterns_d_BlockPattern = BlockPattern;
+type TextPatterns_d_BlockFormatPattern = BlockFormatPattern;
+type TextPatterns_d_InlineCmdPattern = InlineCmdPattern;
+type TextPatterns_d_InlinePattern = InlinePattern;
+type TextPatterns_d_InlineFormatPattern = InlineFormatPattern;
+declare namespace TextPatterns_d {
+ export { TextPatterns_d_Pattern as Pattern, TextPatterns_d_RawPattern as RawPattern, TextPatterns_d_DynamicPatternsLookup as DynamicPatternsLookup, TextPatterns_d_RawDynamicPatternsLookup as RawDynamicPatternsLookup, TextPatterns_d_DynamicPatternContext as DynamicPatternContext, TextPatterns_d_BlockCmdPattern as BlockCmdPattern, TextPatterns_d_BlockPattern as BlockPattern, TextPatterns_d_BlockFormatPattern as BlockFormatPattern, TextPatterns_d_InlineCmdPattern as InlineCmdPattern, TextPatterns_d_InlinePattern as InlinePattern, TextPatterns_d_InlineFormatPattern as InlineFormatPattern, };
+}
interface Delay {
setEditorInterval: (editor: Editor, callback: () => void, time?: number) => number;
setEditorTimeout: (editor: Editor, callback: () => void, time?: number) => number;
interface ImageUploader {
upload: (blobInfos: BlobInfo[], showNotification?: boolean) => Promise<UploadResult[]>;
}
-declare type ArrayCallback$1<T, R> = (x: T, i: number, xs: ReadonlyArray<T>) => R;
-declare type ObjCallback$1<T, R> = (value: T, key: string, obj: Record<string, T>) => R;
+declare type ArrayCallback$1<T, R> = (this: any, x: T, i: number, xs: ArrayLike<T>) => R;
+declare type ObjCallback$1<T, R> = (this: any, value: T, key: string, obj: Record<string, T>) => R;
declare type ArrayCallback<T, R> = ArrayCallback$1<T, R>;
declare type ObjCallback<T, R> = ObjCallback$1<T, R>;
+declare type WalkCallback<T> = (this: any, o: T, i: string, n: keyof T | undefined) => boolean | void;
interface Tools {
- is: (obj: any, type: string) => boolean;
+ is: (obj: any, type?: string) => boolean;
isArray: <T>(arr: any) => arr is Array<T>;
inArray: <T>(arr: ArrayLike<T>, value: T) => number;
grep: {
trim: (str: string | null | undefined) => string;
toArray: <T>(obj: ArrayLike<T>) => T[];
hasOwn: (obj: any, name: string) => boolean;
- makeMap: <T>(items: ArrayLike<T> | string, delim?: string | RegExp, map?: Record<string, T | string>) => Record<string, T | string>;
+ makeMap: (items: ArrayLike<string> | string | undefined, delim?: string | RegExp, map?: Record<string, {}>) => Record<string, {}>;
each: {
<T>(arr: ArrayLike<T> | null | undefined, cb: ArrayCallback<T, void | boolean>, scope?: any): boolean;
<T>(obj: Record<string, T> | null | undefined, cb: ObjCallback<T, void | boolean>, scope?: any): boolean;
<T, R>(obj: Record<string, T> | null | undefined, cb: ObjCallback<T, R>): R[];
};
extend: (obj: Object, ext: Object, ...objs: Object[]) => any;
- walk: <T = any>(obj: T, f: Function, n?: keyof T, scope?: any) => void;
+ walk: <T extends Record<string, any>>(obj: T, f: WalkCallback<T>, n?: keyof T, scope?: any) => void;
resolve: (path: string, o?: Object) => any;
- explode: (s: string, d?: string | RegExp) => string[];
+ explode: (s: string | string[], d?: string | RegExp) => string[];
_addCacheSuffix: (url: string) => string;
}
interface KeyboardLikeEvent {
_addCacheSuffix: Tools['_addCacheSuffix'];
}
declare const tinymce: TinyMCE;
-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 };
+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, TextPatterns_d as TextPatterns, TextSeeker, Theme, ThemeManager, TinyMCE, Tools, URI, Ui_d as Ui, UndoManager, VK, WindowManager, Writer, WriterSettings, tinymce as default };