diff --git a/types/masonry-layout/index.d.ts b/types/masonry-layout/index.d.ts index 4517606ce7..140dd7f257 100644 --- a/types/masonry-layout/index.d.ts +++ b/types/masonry-layout/index.d.ts @@ -1,50 +1,45 @@ // Type definitions for Masonry 4.0 // Project: https://github.com/desandro/masonry -// Definitions by: Mark Wilson +// Definitions by: Mark Wilson , Travis Brown // Definitions: https://github.com/borisyankov/DefinitelyTyped /// -// Modified from original definitions by: -// Travis Brown < https://github.com/warriorrocker> +export = Masonry; + +declare class Masonry { + constructor(options?: Masonry.Options); + constructor(selector: string, options?: Masonry.Options); + + masonry?(): void; + masonry?(eventName: string, listener: any): void; + + // layout + layout?(): void; + layoutItems?(items: any[], isStill?: boolean): void; + stamp?(elements: any[]): void; + unstamp?(elements: any[]): void; + + // add and remove items + appended?(elements: any[]): void; + prepended?(elements: any[]): void; + addItems?(elements: any[]): void; + remove?(elements: any[]): void; + + // events + on?(eventName: string, listener: any): void; + off?(eventName: string, listener: any): void; + once?(eventName: string, listener: any): void; + + // utilities + reloadItems?(): void; + destroy?(): void; + getItemElements?(): any[]; + data?(element: Element): Masonry; +} declare namespace Masonry { - - class Masonry implements MasonryGrid { - constructor(options?: MasonryOptions); - constructor(selector: string, options?: MasonryOptions); - } - - interface MasonryGrid { - masonry?(): void; - masonry?(eventName: string, listener: any): void; - - // layout - layout?(): void; - layoutItems?(items: any[], isStill?: boolean): void; - stamp?(elements: any[]): void; - unstamp?(elements: any[]): void; - - // add and remove items - appended?(elements: any[]): void; - prepended?(elements: any[]): void; - addItems?(elements: any[]): void; - remove?(elements: any[]): void; - - // events - on?(eventName: string, listener: any): void; - off?(eventName: string, listener: any): void; - once?(eventName: string, listener: any): void; - - // utilities - reloadItems?(): void; - destroy?(): void; - getItemElements?(): any[]; - data?(element: Element): Masonry; - } - - interface MasonryOptions { - + interface Options { // layout itemSelector?: string; columnWidth?: any; @@ -63,8 +58,8 @@ declare namespace Masonry { } } -export = Masonry; - -interface JQuery { - masonry(options?: Masonry.MasonryOptions): JQuery; +declare global { + interface JQuery { + masonry(options?: Masonry.Options): JQuery; + } } diff --git a/types/masonry-layout/masonry-layout-tests.ts b/types/masonry-layout/masonry-layout-tests.ts index 7a4f023fae..30378f356e 100644 --- a/types/masonry-layout/masonry-layout-tests.ts +++ b/types/masonry-layout/masonry-layout-tests.ts @@ -1,36 +1,35 @@ -// test file for masonry-layout.d.ts import * as $ from "jquery"; -import { Masonry } from "./index"; +import Masonry = require("masonry-layout"); // responsive layouts -// function testResponsiveLayouts() { -// $(document).ready(function () { -// $('.grid').masonry({ -// itemSelector: '.grid-item', -// columnWidth: '.grid-sizer', -// percentPosition: true -// }); -// }); -// }; +function testResponsiveLayouts() { + $(document).ready(() => { + $('.grid').masonry({ + itemSelector: '.grid-item', + columnWidth: '.grid-sizer', + percentPosition: true + }); + }); +} // recommended Options function testRecommendedOptions() { - // $(document).ready(function () { - // $('.grid').masonry({ - // columnWidth: 200, - // itemSelector: '.grid-item' - // }); - // }); + $(document).ready(() => { + $('.grid').masonry({ + columnWidth: 200, + itemSelector: '.grid-item' + }); + }); - var msnry = new Masonry('.grid', { + const msnry = new Masonry('.grid', { columnWidth: 200, itemSelector: '.grid-item' }); -}; +} // extended Options function testExtendedOptions() { - var msnry = new Masonry('.grid', { + const msnry = new Masonry('.grid', { itemSelector: '.grid-item', columnWidth: '.grid-sizer', percentPosition: true, @@ -46,4 +45,4 @@ function testExtendedOptions() { resize: true, initLayout: true }); -}; +} diff --git a/types/masonry-layout/tslint.json b/types/masonry-layout/tslint.json new file mode 100644 index 0000000000..2221e40e4a --- /dev/null +++ b/types/masonry-layout/tslint.json @@ -0,0 +1 @@ +{ "extends": "../tslint.json" } \ No newline at end of file