From e7371a544cebcbafa4c342bb9d230479a9fd5b9e Mon Sep 17 00:00:00 2001 From: Gavin Heise Date: Sun, 17 Sep 2017 00:11:16 +1000 Subject: [PATCH 1/3] Type definitions for react-mce 0.6. --- types/react-mce/index.d.ts | 84 +++++++++++++++++++++++++++++ types/react-mce/react-mce-tests.tsx | 40 ++++++++++++++ types/react-mce/tsconfig.json | 24 +++++++++ types/react-mce/tslint.json | 1 + 4 files changed, 149 insertions(+) create mode 100644 types/react-mce/index.d.ts create mode 100644 types/react-mce/react-mce-tests.tsx create mode 100644 types/react-mce/tsconfig.json create mode 100644 types/react-mce/tslint.json diff --git a/types/react-mce/index.d.ts b/types/react-mce/index.d.ts new file mode 100644 index 0000000000..ffa844201f --- /dev/null +++ b/types/react-mce/index.d.ts @@ -0,0 +1,84 @@ +// Type definitions for react-mce 0.6 +// Project: https://github.com/janstuemmel/react-mce +// Definitions by: Gavin Heise +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.1 + +import * as React from 'react'; +import * as ActualTinyMCE from 'tinymce'; + +type EventHandler = (event: any, editor: ActualTinyMCE.Editor) => void; + +interface ReactMCEProps { + // Non-events + config: ActualTinyMCE.Settings; + content?: string; + + // Events + onFocusin?: EventHandler; + onFocusout?: EventHandler; + onClick?: EventHandler; + onDblclick?: EventHandler; + onMousedown?: EventHandler; + onMouseup?: EventHandler; + onMousemove?: EventHandler; + onMouseover?: EventHandler; + onBeforepaste?: EventHandler; + onPaste?: EventHandler; + onCut?: EventHandler; + onCopy?: EventHandler; + onSelectionchange?: EventHandler; + onMouseout?: EventHandler; + onMouseenter?: EventHandler; + onMouseleave?: EventHandler; + onKeydown?: EventHandler; + onKeypress?: EventHandler; + onKeyup?: EventHandler; + onContextmenu?: EventHandler; + onDragend?: EventHandler; + onDragover?: EventHandler; + onDraggesture?: EventHandler; + onDragdrop?: EventHandler; + onDrop?: EventHandler; + onDrag?: EventHandler; + onBeforeRenderUI?: EventHandler; + onSetAttrib?: EventHandler; + onPreInit?: EventHandler; + onPostRender?: EventHandler; + onInit?: EventHandler; + onDeactivate?: EventHandler; + onActivate?: EventHandler; + onNodeChange?: EventHandler; + onBeforeExecCommand?: EventHandler; + onExecCommand?: EventHandler; + onShow?: EventHandler; + onHide?: EventHandler; + onProgressState?: EventHandler; + onLoadContent?: EventHandler; + onSaveContent?: EventHandler; + onBeforeSetContent?: EventHandler; + onSetContent?: EventHandler; + onBeforeGetContent?: EventHandler; + onGetContent?: EventHandler; + onVisualAid?: EventHandler; + onRemove?: EventHandler; + onSubmit?: EventHandler; + onReset?: EventHandler; + onBeforeAddUndo?: EventHandler; + onAddUndo?: EventHandler; + onChange?: EventHandler; + onUndo?: EventHandler; + onRedo?: EventHandler; + onClearUndos?: EventHandler; + onObjectSelected?: EventHandler; + onObjectResizeStart?: EventHandler; + onObjectResized?: EventHandler; + onPreProcess?: EventHandler; + onPostProcess?: EventHandler; + onFocus?: EventHandler; + onBlur?: EventHandler; + onDirty?: EventHandler; +} + +declare class TinyMCE extends React.Component { } +export = TinyMCE; diff --git a/types/react-mce/react-mce-tests.tsx b/types/react-mce/react-mce-tests.tsx new file mode 100644 index 0000000000..c3dbb36d3b --- /dev/null +++ b/types/react-mce/react-mce-tests.tsx @@ -0,0 +1,40 @@ +import * as React from 'react'; +import * as ReactDOM from 'react-dom'; +import TinyMCE = require('react-mce'); + +class Example extends React.Component<{}, {}> { + private _onChangeTextarea(e: any) { + console.log(e.target.getContent()); + } + + render() { + return ( +
+
+

TinyMCE Textarea

+ + this._onChangeTextarea(e)} + /> + +
+
+

TinyMCE Inline

+ + + +
+
+ ); + } +} + +ReactDOM.render(, document.getElementById('root')); diff --git a/types/react-mce/tsconfig.json b/types/react-mce/tsconfig.json new file mode 100644 index 0000000000..01c35ace6a --- /dev/null +++ b/types/react-mce/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6", + "dom" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "jsx": "react", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "react-mce-tests.tsx" + ] +} diff --git a/types/react-mce/tslint.json b/types/react-mce/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/react-mce/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } From 3b583f42551c2f254b31af350915b60d73c116bf Mon Sep 17 00:00:00 2001 From: Gavin Heise Date: Sun, 17 Sep 2017 07:18:43 +1000 Subject: [PATCH 2/3] Use generic defaults. --- types/react-mce/index.d.ts | 4 ++-- types/react-mce/react-mce-tests.tsx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/types/react-mce/index.d.ts b/types/react-mce/index.d.ts index ffa844201f..3272f2cae9 100644 --- a/types/react-mce/index.d.ts +++ b/types/react-mce/index.d.ts @@ -2,7 +2,7 @@ // Project: https://github.com/janstuemmel/react-mce // Definitions by: Gavin Heise // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -// TypeScript Version: 2.1 +// TypeScript Version: 2.4 import * as React from 'react'; import * as ActualTinyMCE from 'tinymce'; @@ -80,5 +80,5 @@ interface ReactMCEProps { onDirty?: EventHandler; } -declare class TinyMCE extends React.Component { } +declare class TinyMCE extends React.Component { } export = TinyMCE; diff --git a/types/react-mce/react-mce-tests.tsx b/types/react-mce/react-mce-tests.tsx index c3dbb36d3b..3635c37281 100644 --- a/types/react-mce/react-mce-tests.tsx +++ b/types/react-mce/react-mce-tests.tsx @@ -2,7 +2,7 @@ import * as React from 'react'; import * as ReactDOM from 'react-dom'; import TinyMCE = require('react-mce'); -class Example extends React.Component<{}, {}> { +class Example extends React.Component { private _onChangeTextarea(e: any) { console.log(e.target.getContent()); } From aa43a6c8ab6e28d17e5ce1af16e432b36a0c767f Mon Sep 17 00:00:00 2001 From: Gavin Heise Date: Sun, 17 Sep 2017 07:40:54 +1000 Subject: [PATCH 3/3] Reduce TypeScript version to 2.3 --- types/react-mce/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/react-mce/index.d.ts b/types/react-mce/index.d.ts index 3272f2cae9..861ce80e9e 100644 --- a/types/react-mce/index.d.ts +++ b/types/react-mce/index.d.ts @@ -2,7 +2,7 @@ // Project: https://github.com/janstuemmel/react-mce // Definitions by: Gavin Heise // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -// TypeScript Version: 2.4 +// TypeScript Version: 2.3 import * as React from 'react'; import * as ActualTinyMCE from 'tinymce';