diff --git a/types/textarea-caret/index.d.ts b/types/textarea-caret/index.d.ts new file mode 100644 index 0000000000..cf1cb3bb5d --- /dev/null +++ b/types/textarea-caret/index.d.ts @@ -0,0 +1,19 @@ +// Type definitions for textarea-caret 3.0 +// Project: https://github.com/component/textarea-caret-position +// Definitions by: Brendan Forster +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.6 + +export = textarea_caret; + +interface Caret { + top: number; + left: number; + height: number; +} + +interface Options { + debug?: boolean; +} + +declare function textarea_caret(element: HTMLElement, position: number, options?: Options): Caret; diff --git a/types/textarea-caret/textarea-caret-tests.ts b/types/textarea-caret/textarea-caret-tests.ts new file mode 100644 index 0000000000..60de8a6acc --- /dev/null +++ b/types/textarea-caret/textarea-caret-tests.ts @@ -0,0 +1,8 @@ +import getCaretCoordinates = require('textarea-caret'); + +const element = document.querySelector('textarea'); + +element!.addEventListener('input', function() { + const caret = getCaretCoordinates(this, this.selectionEnd); + console.log('(top, left, height) = (%s, %s, %s)', caret.top, caret.left, caret.height); +}); diff --git a/types/textarea-caret/tsconfig.json b/types/textarea-caret/tsconfig.json new file mode 100644 index 0000000000..db5d25647a --- /dev/null +++ b/types/textarea-caret/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6", + "dom" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "textarea-caret-tests.ts" + ] +} diff --git a/types/textarea-caret/tslint.json b/types/textarea-caret/tslint.json new file mode 100644 index 0000000000..e0508241c7 --- /dev/null +++ b/types/textarea-caret/tslint.json @@ -0,0 +1,8 @@ +{ + "extends": "dtslint/dt.json", + "rules": { + "indent": [true, "spaces", 4], + "max-line-length": [true, 100], + "no-any": true + } +}