diff --git a/types/tinymce/index.d.ts b/types/tinymce/index.d.ts
index 04ac24d056..70d73315ea 100644
--- a/types/tinymce/index.d.ts
+++ b/types/tinymce/index.d.ts
@@ -5,26 +5,22 @@
// Work In Progress
-import 'jquery';
+///
+export namespace tinymce {
+ const DOM: dom.DOMUtils;
+ const PluginManager: AddOnManager;
+ const ScriptLoader: dom.ScriptLoader;
-declare namespace tinymce {
+ const ThemeManager: AddOnManager;
- var DOM: dom.DOMUtils;
+ const EditorManager: EditorManager;
- var PluginManager: AddOnManager;
+ const baseURL: string;
- var ScriptLoader: dom.ScriptLoader;
-
- var ThemeManager: AddOnManager;
-
- var EditorManager: EditorManager;
-
- var baseURL: string;
-
- var activeEditor: Editor;
+ const activeEditor: Editor;
function create(s: string, p: {}, root?: {}): void;
@@ -53,10 +49,10 @@ declare namespace tinymce {
function trim(s: string): string;
function walk(o: {}, f: () => void, n?: string, s?: string): void;
-
+
function init(settings: Settings): void;
- export interface Settings {
+ interface Settings {
table_toolbar?: boolean;
auto_focus?: string;
@@ -69,17 +65,17 @@ declare namespace tinymce {
hidden_input?: boolean;
- init_instance_callback?: (editor: Editor) => void;
+ init_instance_callback?(editor: Editor): void;
plugins?: string | string[];
selector?: string;
- setup?: (edtor: Editor) => void;
+ setup?(edtor: Editor): void;
target?: Element;
- color_picker_callback?: (callback: (hexColor: string) => void, value: string) => void;
+ color_picker_callback?(callback: (hexColor: string) => void, value: string): void;
elementpath?: boolean;
@@ -217,15 +213,15 @@ declare namespace tinymce {
automatic_uploads?: boolean;
- file_browser_callback?: (field_name: string, url: string, type: string, win: Window) => void;
+ file_browser_callback?(field_name: string, url: string, type: string, win: Window): void;
file_browser_callback_types?: string;
- file_picker_callback?: (callback: (filename: string, metadata: {}) => void, valud: string, meta: {}) => void;
+ file_picker_callback?(callback: (filename: string, metadata: {}) => void, valud: string, meta: {}): void;
file_picker_types?: string;
- images_dataimg_filter?: (img: any) => void;
+ images_dataimg_filter?(img: any): void;
images_reuse_filename?: boolean;
@@ -233,7 +229,7 @@ declare namespace tinymce {
images_upload_credentials?: boolean;
- images_upload_handler?: (blobInfo: any, success: (msg: string) => void, failure: (msg: string) => void) => void;
+ images_upload_handler?(blobInfo: any, success: (msg: string) => void, failure: (msg: string) => void): void;
images_upload_url?: string;
@@ -253,7 +249,7 @@ declare namespace tinymce {
remove_script_host?: boolean;
- urlconverter_callback?: (url: string, node: HTMLElement, on_save: boolean, name: string) => void;
+ urlconverter_callback?(url: string, node: HTMLElement, on_save: boolean, name: string): void;
anchor_bottom?: string;
@@ -270,12 +266,10 @@ declare namespace tinymce {
object_resizing?: boolean | string;
type_ahead_urls?: boolean;
-
}
- export namespace settings {
-
- export interface Menu {
+ namespace settings {
+ interface Menu {
file: MenuItem;
edit: MenuItem;
insert: MenuItem;
@@ -285,14 +279,13 @@ declare namespace tinymce {
tools: MenuItem;
}
- export interface MenuItem {
+ interface MenuItem {
title: string;
items: string;
}
}
- export interface AddOnManager {
-
+ interface AddOnManager {
add(id: string, addOn: (editor: Editor, url: string) => void): Theme | Plugin;
addComponents(pluginName: string, scripts: string[]): void;
@@ -304,8 +297,7 @@ declare namespace tinymce {
requireLangPack(name: string, languages?: string): void;
}
- export class Editor extends util.Observable {
-
+ class Editor extends util.Observable {
constructor(id: string, settings: Settings, editorManager: tinymce.EditorManager);
$: dom.DomQuery;
@@ -433,8 +425,7 @@ declare namespace tinymce {
uploadImages(callback: () => void): Promise;
}
- export interface EditorCommands {
-
+ interface EditorCommands {
addCommands(command_list: {}, type?: string): void;
execCommand(command: string, ui?: boolean, value?: {}, args?: {}): boolean;
@@ -446,8 +437,7 @@ declare namespace tinymce {
queryCommandValue(command: string): {};
}
- export interface EditorManager extends util.Observable {
-
+ interface EditorManager extends util.Observable {
$: dom.DomQuery;
activeEditor: Editor;
@@ -493,8 +483,7 @@ declare namespace tinymce {
triggerSave(): void;
}
- export interface Env {
-
+ interface Env {
android: boolean;
ceFalse: boolean;
@@ -524,10 +513,8 @@ declare namespace tinymce {
webKit: boolean;
}
- export namespace Events {
-
- export interface Event {
-
+ namespace Events {
+ interface Event {
type: string;
target: string;
@@ -545,13 +532,11 @@ declare namespace tinymce {
stopPropagation(): void;
}
- export interface FocusBlurEvent extends Event {
-
+ interface FocusBlurEvent extends Event {
blurredEditor: Editor;
}
- export interface ContentEvent extends Event {
-
+ interface ContentEvent extends Event {
format: string;
set: boolean;
@@ -559,8 +544,7 @@ declare namespace tinymce {
content: string;
}
- export interface ProcessEvent extends Event {
-
+ interface ProcessEvent extends Event {
content: string;
forced_root_block: string;
@@ -576,8 +560,7 @@ declare namespace tinymce {
selection: true;
}
- export interface NodeChangeEvent extends Event {
-
+ interface NodeChangeEvent extends Event {
element: Node;
parents: Node[];
@@ -585,20 +568,17 @@ declare namespace tinymce {
selectionChange: boolean;
}
- export interface UndoRedoEvent extends Event {
-
+ interface UndoRedoEvent extends Event {
level: {};
}
- export interface ChangeEvent extends Event {
-
+ interface ChangeEvent extends Event {
lastLevel: {};
level: {};
}
- export interface CommandEvent extends Event {
-
+ interface CommandEvent extends Event {
command: string;
ui: boolean;
@@ -612,8 +592,7 @@ declare namespace tinymce {
static isEditorUIElement(elm: Element): boolean;
}
- export interface Formatter {
-
+ interface Formatter {
apply(name: string, vars?: {}, node?: html.Node): void;
canApply(name: string): boolean;
@@ -639,25 +618,21 @@ declare namespace tinymce {
unregister(name: string): void;
}
- export class Formatter implements Formatter {
-
+ class Formatter implements Formatter {
constructor(ed: Editor);
}
- export interface Shortcuts {
-
+ interface Shortcuts {
add(pattern: string, desc: string, cmdFunc: () => void | string, scope?: {}): boolean;
remove(pattern: string): boolean;
}
- export interface Theme {
-
+ interface Theme {
renderUI(obj: {}): {};
}
- export interface UndoManager {
-
+ interface UndoManager {
add(level?: {}, event?: DocumentEvent): {};
beforeChange(): void;
@@ -677,8 +652,7 @@ declare namespace tinymce {
undo(): {};
}
- export interface WindowManager {
-
+ interface WindowManager {
alert(message: string, callback: () => void, scope?: {}): void;
close(): void;
@@ -694,8 +668,7 @@ declare namespace tinymce {
setParams(params: {}): void;
}
- export interface notificationManager {
-
+ interface notificationManager {
close(): void;
getNotifications(): Array<{}>;
@@ -703,14 +676,12 @@ declare namespace tinymce {
open(args?: {}): void;
}
- export namespace ui {
- export interface ControlSettings {
+ namespace ui {
+ interface ControlSettings {
menu: ui.Menu;
}
- interface Collection {
-
- }
+ interface Collection {}
interface Container {
add(items: any): Collection;
@@ -721,19 +692,15 @@ declare namespace tinymce {
moveRel(elm: Node, rel: string): Control;
}
- interface FloatPanel extends Control, Moveable {
+ interface FloatPanel extends Control, Moveable {}
- }
-
- interface Menu extends FloatPanel, Control, Container {
-
- }
+ interface Menu extends FloatPanel, Control, Container {}
interface Factory {
create(settings: any): Control;
}
- export class Control {
+ class Control {
constructor();
$el: JQuery;
@@ -745,10 +712,8 @@ declare namespace tinymce {
}
}
- export namespace dom {
-
- export interface BookmarkManager {
-
+ namespace dom {
+ interface BookmarkManager {
getBookmark(type?: number, normalized?: boolean): {};
isBookmarkNode(node: HTMLElement): boolean;
@@ -756,8 +721,7 @@ declare namespace tinymce {
moveToBookmark(bookmark: {}): boolean;
}
- export interface DOMUtils {
-
+ interface DOMUtils {
add(parentElm: string, name: string, attrs?: {}, html?: string, create?: boolean): Element | T[];
addClass(elm: string, cls: string): string | T[];
@@ -873,13 +837,11 @@ declare namespace tinymce {
uniqueId(prefix?: string): string;
}
- export class DOMUtils implements DOMUtils {
-
+ class DOMUtils implements DOMUtils {
constructor(doc: Document, settings?: {});
}
- export interface DomQuery {
-
+ interface DomQuery {
add(items: T[], sort?: boolean): DomQuery;
addClass(className: string): DomQuery;
@@ -993,13 +955,11 @@ declare namespace tinymce {
wrapInner(content: string): DomQuery;
}
- export class DomQuery implements DomQuery {
-
+ class DomQuery implements DomQuery {
constructor(selector?: string, context?: Document);
}
- export interface EventUtils {
-
+ interface EventUtils {
bind(target: {}, names: string, callback: () => void, scope: {}): () => void;
clean(target: {}): EventUtils;
@@ -1009,15 +969,13 @@ declare namespace tinymce {
unbind(target: {}, names?: string, callback?: () => void): EventUtils;
}
- export interface RangeUtils {
-
+ interface RangeUtils {
compareRanges(rng1: Range, rng2: Range): boolean;
getCaretRangeFromPoint(clientX: number, clientY: number, doc: Document): Range;
}
- export interface ScriptLoader {
-
+ interface ScriptLoader {
add(url: string, success?: () => void, scope?: {}, failure?: () => void): void;
isDone(url: string): boolean;
@@ -1031,8 +989,7 @@ declare namespace tinymce {
markDone(url: string): void;
}
- export interface Selection {
-
+ interface Selection {
collapse(toStart?: boolean): void;
getBookmark(type?: number, normalized?: boolean): {};
@@ -1066,13 +1023,11 @@ declare namespace tinymce {
setRng(rng: Range, forward?: boolean): void;
}
- export class Selection implements Selection {
-
+ class Selection implements Selection {
constructor(dom: DOMUtils, win: Window, editor: Editor, serializer: Serializer);
}
- export interface Serializer {
-
+ interface Serializer {
addAttributeFilter(callback: () => void): void;
addNodeFilter(callback: () => void): void;
@@ -1084,16 +1039,13 @@ declare namespace tinymce {
serialize(node: HTMLElement, args: {}): void;
setRules(rules: string): void;
-
}
- export class Serializer implements Serializer {
-
+ class Serializer implements Serializer {
constructor(settings: {}, editor?: Editor);
}
- export interface TreeWalker {
-
+ interface TreeWalker {
current(): html.Node;
next(): html.Node;
@@ -1102,15 +1054,12 @@ declare namespace tinymce {
}
}
- export class TreeWalker implements TreeWalker {
-
+ class TreeWalker implements TreeWalker {
constructor(startNode: html.Node, rootNode: html.Node);
}
- export namespace geom {
-
- export interface Rect {
-
+ namespace geom {
+ interface Rect {
clamp(rect: Rect, clampRect: Rect, fixedSize: boolean): Rect;
create(x: number, y: number, w: number, h: number): Rect;
@@ -1127,10 +1076,8 @@ declare namespace tinymce {
}
}
- export namespace html {
-
- export interface DomParser {
-
+ namespace html {
+ interface DomParser {
addAttributeFilter(attributes: string, callback: () => void): void;
addNodeFilter(attributes: string, callback: () => void): void;
@@ -1140,13 +1087,11 @@ declare namespace tinymce {
parse(html: string, args?: {}): html.Node;
}
- export class DomParser implements DomParser {
-
+ class DomParser implements DomParser {
constructor(settings: {}, schema: html.Schema);
}
- export interface Entities {
-
+ interface Entities {
decode(text: string): string;
encodeAllRaw(text: string): string;
@@ -1160,8 +1105,7 @@ declare namespace tinymce {
getEncodeFunc(name: string, entities?: string): () => void;
}
- export interface Node {
-
+ interface Node {
append(node: html.Node): html.Node;
attr(name: string, value?: string): string | html.Node;
@@ -1189,23 +1133,19 @@ declare namespace tinymce {
wrap(wrapperNode: html.Node): html.Node;
}
- export class Node implements Node {
-
+ class Node implements Node {
constructor(name: string, type: number);
}
- export interface SaxParser {
-
+ interface SaxParser {
parse(html: string): void;
}
- export class SaxParser implements SaxParser {
-
+ class SaxParser implements SaxParser {
constructor(settings: {}, schema: html.Schema);
}
- export interface Schema {
-
+ interface Schema {
addCustomElements(custom_elements: string): void;
addValidChildren(valid_children: string): void;
@@ -1249,23 +1189,19 @@ declare namespace tinymce {
setValidElements(valid_elements: string): void;
}
- export class Schema implements Schema {
-
+ class Schema implements Schema {
constructor(settings: {});
}
- export interface Serializer {
-
+ interface Serializer {
serialize(node: html.Node): string;
}
- export class Serializer implements Serializer {
-
+ class Serializer implements Serializer {
constructor(settings: {}, schema: html.Schema);
}
- export interface Styles {
-
+ interface Styles {
parse(css: string): {};
serialize(styles: {}, elementName: string): string;
@@ -1273,8 +1209,7 @@ declare namespace tinymce {
toHex(color: string): string;
}
- export interface Writer {
-
+ interface Writer {
cdata(text: string): void;
doctype(text: string): void;
@@ -1293,15 +1228,12 @@ declare namespace tinymce {
}
}
- export class Writer implements Writer {
-
+ class Writer implements Writer {
constructor(settings: {});
}
- export namespace util {
-
- export interface Color {
-
+ namespace util {
+ interface Color {
parse(value: {}): util.Color;
toHex(): string;
@@ -1311,13 +1243,11 @@ declare namespace tinymce {
toRgb(): {};
}
- export class Color implements Color {
-
+ class Color implements Color {
constructor(value: string | {});
}
- export interface Delay {
-
+ interface Delay {
clearInterval(interval: number): void;
clearTimeout(timeout: number): void;
@@ -1335,8 +1265,7 @@ declare namespace tinymce {
setTimeout(callback: () => void, time: number): number;
}
- export interface EventDispatcher {
-
+ interface EventDispatcher {
fire(name: string, args?: {}): {};
has(name: string): boolean;
@@ -1350,8 +1279,7 @@ declare namespace tinymce {
once(name: string, callback: () => void, first: boolean): {};
}
- export interface i18n {
-
+ interface i18n {
rtl: boolean;
add(code: string, items: Array<{}>): void;
@@ -1363,22 +1291,19 @@ declare namespace tinymce {
translate(text: string): string;
}
- export interface JSON {
-
+ interface JSON {
parse(s: string): {};
serialize(obj: {}, quote?: string): string;
}
- export interface JSONRequest {
-
+ interface JSONRequest {
send(args: {}): void;
sendRPC(o: {}): void;
}
- export interface LocalStorage {
-
+ interface LocalStorage {
length: number;
clear(): void;
@@ -1392,8 +1317,7 @@ declare namespace tinymce {
setItem(key: string, value: string): void;
}
- export class Observable {
-
+ class Observable {
fire(name: string, args?: {}, bubble?: boolean): {};
hasEventListeners(name: string): boolean;
@@ -1405,8 +1329,7 @@ declare namespace tinymce {
once(name: string, callback: (event: any) => void): {};
}
- export interface Tools {
-
+ interface Tools {
create(s: string, p: {}, root?: {}): void;
createNS(n: string, o?: {}): {};
@@ -1436,8 +1359,7 @@ declare namespace tinymce {
walk(o: {}, f: () => void, n?: string, s?: string): void;
}
- export interface URI {
-
+ interface URI {
getURI(noProtoHost: boolean): URI;
isSameOrigin(uri: util.URI): boolean;
@@ -1453,13 +1375,11 @@ declare namespace tinymce {
toRelative(uri: string): string;
}
- export class URI implements URI {
-
+ class URI implements URI {
constructor(url: string, settings?: {});
}
- export interface XHR {
-
+ interface XHR {
fire(name: string, args?: {}, bubble?: boolean): {};
hasEventListeners(name: string): boolean;
@@ -1472,6 +1392,5 @@ declare namespace tinymce {
send(settings: {}): void;
}
-
}
}
diff --git a/types/tinymce/tinymce-tests.ts b/types/tinymce/tinymce-tests.ts
index 09c3dd523b..7165ab25a7 100644
--- a/types/tinymce/tinymce-tests.ts
+++ b/types/tinymce/tinymce-tests.ts
@@ -1,19 +1,16 @@
import { tinymce } from 'tinymce';
-tinymce.init(
- {
- selector: 'textarea',
- height: 500,
- menubar: false,
- plugins: [
- 'advlist autolink lists link image charmap print preview anchor',
- 'searchreplace visualblocks code fullscreen',
- 'insertdatetime media table contextmenu paste code'
- ],
- toolbar: 'undo redo | insert | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image',
- content_css: '//www.tinymce.com/css/codepen.min.css'
- }
-);
+tinymce.init({
+ selector: 'textarea',
+ height: 500,
+ menubar: false,
+ plugins: [
+ 'advlist autolink lists link image charmap print preview anchor',
+ 'searchreplace visualblocks code fullscreen',
+ 'insertdatetime media table contextmenu paste code'
+ ],
+ toolbar: 'undo redo | insert | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image',
+ content_css: '//www.tinymce.com/css/codepen.min.css'
+});
-
-let t = new tinymce.util.Color('#FFFFFF');
+const t = new tinymce.util.Color('#FFFFFF');
diff --git a/types/tinymce/tslint.json b/types/tinymce/tslint.json
index 377cc837d4..105f5736e6 100644
--- a/types/tinymce/tslint.json
+++ b/types/tinymce/tslint.json
@@ -1 +1,6 @@
-{ "extends": "../tslint.json" }
+{
+ "extends": "../tslint.json",
+ "rules": {
+ "no-empty-interface": false
+ }
+}