From 38095e40c6d348f3c59c172a1e2c9be36f63e1dc Mon Sep 17 00:00:00 2001 From: Sumit Kumar Maitra Date: Mon, 25 Jan 2016 20:17:23 +0000 Subject: [PATCH] Adding type definitions for Quill JS (http://quilljs.com) --- quill/quill-tests.ts | 173 +++++++++++++++++++++++++++++++++++++++++++ quill/quill.d.ts | 100 +++++++++++++++++++++++++ 2 files changed, 273 insertions(+) create mode 100644 quill/quill-tests.ts create mode 100644 quill/quill.d.ts diff --git a/quill/quill-tests.ts b/quill/quill-tests.ts new file mode 100644 index 0000000000..014ea85c2d --- /dev/null +++ b/quill/quill-tests.ts @@ -0,0 +1,173 @@ +/// +/// + +export var Quill = require("quill"); + +function test_quill() { + + var quillEditor = new Quill('#editor', { + modules: + { + "toolbar": { container: "#toolbar" } + }, + theme: 'snow' + }); +} + +function test_getText() { + var quillEditor = new Quill('#editor'); + var strValue: string = quillEditor.getText(); +} + +function test_getText_StartingAt() { + var quillEditor = new Quill('#editor'); + var strValue: string = quillEditor.getText(10); +} + +function test_getText_substring() { + var quillEditor = new Quill('#editor'); + var strValue: string = quillEditor.getText(0, 10); +} + +function test_getLength() { + var quillEditor = new Quill('#editor'); + var num: number = quillEditor.getLength(); +} + +function test_getContents() { + var quillEditor = new Quill('#editor'); + var delta: DeltaStatic = quillEditor.getContents(); +} + +function test_insertText() { + var quillEditor = new Quill('#editor'); + quillEditor.insertText(0, "Hello World"); +} + +function test_deleteText() { + var quillEditor = new Quill('#editor'); + quillEditor.deleteText(0, 10); +} + +function test_formatText() { + var quillEditor = new Quill('#editor'); + quillEditor.formatText(0, 5, 'bold', true); +} + +function test_formatText2() { + var quillEditor = new Quill('#editor'); + + quillEditor.formatText(0, 5, { + 'bold': false, + 'color': 'rgb(0, 0, 255)' + }); +} + +function test_formatLine() { + var quillEditor = new Quill('#editor'); + quillEditor.formatLine(1, 3, 'align', 'right'); +} + +function test_insertEmbed() { + var quillEditor = new Quill('#editor'); + + quillEditor.insertEmbed(10, 'image', 'http://quilljs.com/images/cloud.png'); +} + +function test_updateContents() { + var quillEditor = new Quill('#editor'); + quillEditor.updateContents({ + ops: [ + { retain: 6 }, // Keep 'Hello ' + { delete: 5 }, // 'World' is deleted + { insert: 'Quill' }, // Insert 'Quill' + { retain: 1, attributes: { bold: true } } // Apply bold to exclamation mark + ] + }); +} + +function test_setContents() { + var quillEditor = new Quill('#editor'); + + quillEditor.setContents([ + { insert: 'Hello ' }, + { insert: 'World!', attributes: { bold: true } }, + { insert: '\n' } + ]); +} + +function test_setHTML() { + var quillEditor = new Quill('#editor'); + + quillEditor.setHTML('
Hello
'); +} + +function test_setText() { + var quillEditor = new Quill('#editor'); + quillEditor.setText('Hello\n'); +} + + +function test_getSelection() { + var quillEditor = new Quill('#editor'); + + var range = quillEditor.getSelection(); + if (range) { + if (range.start == range.end) { + console.log('User cursor is at index', range.start); + } else { + var text = quillEditor.getText(range.start, range.end); + console.log('User has highlighted: ', text); + } + } else { + console.log('User cursor is not in editor'); + } +} + +function test_setSelection() { + var quillEditor = new Quill('#editor'); + quillEditor.setSelection(0, 5); +} + +function test_prepareFormat() { + var quillEditor = new Quill('#editor'); + quillEditor.prepareFormat('bold', true); +} + +function test_focus() { + var quillEditor = new Quill('#editor'); + quillEditor.focus(); +} + +function test_getBounds() { + var quillEditor = new Quill('#editor'); + quillEditor.setText('Hello\nWorld\n'); +} + +function test_addModule() { + var quillEditor = new Quill('#editor'); + + var toolbar = quillEditor.addModule('toolbar', { + container: '#toolbar-container' + }); +} + +function test_getModule() +{ + var quillEditor = new Quill('#editor'); + + var toolbar = quillEditor.getModule('toolbar'); +} + + +function test_addFormat() +{ + var quillEditor = new Quill('#editor'); + quillEditor.addFormat('strike', { tag: 'S', prepare: 'strikeThrough' }); +} + +function test_addContainer() +{ + var quillEditor = new Quill('#editor'); + quillEditor.addContainer('ql-custom'); +} diff --git a/quill/quill.d.ts b/quill/quill.d.ts new file mode 100644 index 0000000000..e45f77d0dc --- /dev/null +++ b/quill/quill.d.ts @@ -0,0 +1,100 @@ +// Type definitions for Quill +// Project: http://quilljs.com +// Definitions by: Sumit +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +declare interface DeltaStatic{ + ops : Array; +} + +declare interface QuillStatic { + on(eventName: string, callback: (delta: DeltaStatic, source: string) => void): EventEmitter2; + addModule(id: string, options: any) : Object; + + getText(): string; + getText(start: number): string; + getText(start: number, end: number): string; + + getLength(): number; + + getContents(): DeltaStatic; + getContents(start: number): DeltaStatic; + getContents(start: number, end: number): DeltaStatic; + + getHTML(): string; + + insertText(index: number, text: string): void; + insertText(index: number, text: string, name: string, value: string): void; + insertText(index: number, text: string, formats: any): void; + insertText(index: number, text: string, source: string) : void; + insertText(index: number, text: string, name: string, value: string, source: string): void; + insertText(index: number, text: string, formats: any, source: string): void; + + deleteText(start: number, end: number): void; + deleteText(start: number, end: number, source: string): void; + + formatText(start: number, end: number): void; + formatText(start: number, end: number, name: string, value: string): void; + formatText(start: number, end: number, formats: any): void; + formatText(start: number, end: number, source: string): void; + formatText(start: number, end: number, name: string, value: string, source: string): void; + formatText(start: number, end: number, formats: string, source: string): void; + + + formatLine(start: number, end: number): void; + formatLine(start: number, end: number, name: string, value: string): void; + formatLine(start: number, end: number, formats: any): void; + formatLine(start: number, end: number, source: string): void; + formatLine(start: number, end: number, name: string, value: string, source: string): void; + formatLine(start: number, end: number, formats: any, source: string): void; + + + insertEmbed(index: number, type: string, url: string): void; + insertEmbed(index: number, type: string, url: string, source: string): void; + + updateContents(delta: DeltaStatic): void; + + setContents(delta: DeltaStatic): void; + + setHTML(html: string): void; + + setText(text: string): void; + + getSelection(): string; + + setSelection(start: number, end: number): void; + setSelection(start: number, end: number, source: string): void; + setSelection(range: any): void; + setSelection(range: any, source: string): void; + + prepareFormat(format: string, value: string): void; + + focus(): void; + + getBounds(index: number): any; + + registerModule(name: string, callback: (quill: QuillStatic, options: any) => {}): any; + + addModule(name: string, options: any): any; + + getModule(name: string): any; + + onModuleLoad(name: string, callback: (input: any) => {}): void; + + addFormat(name: string, config: any): void; + + addContainer(cssClass: string, before: number): HTMLDivElement; +} + +declare var Quill: QuillStatic; + +declare var Delta: DeltaStatic; + +declare module "Delta"{ + export = Delta; +} +declare module "Quill" { + export = Quill; +}