From cfca13ec2dedfb64aa870a18053cd1b25a4beea3 Mon Sep 17 00:00:00 2001 From: Stan Kurek <33377239+stankurek@users.noreply.github.com> Date: Thu, 22 Aug 2019 00:36:52 +0200 Subject: [PATCH] Added type definitions for leaflet-responsive-popup (#37814) * Added type definitions for leaflet-responsive-popup * Added function responsivePopup and capitalized class name to ResponsivePopup. Extended tests to initialize a class and to invoke a function. Strictness turned on (tsconfig). --- types/leaflet-responsive-popup/index.d.ts | 19 ++++++++++ .../leaflet-responsive-popup-tests.ts | 37 +++++++++++++++++++ types/leaflet-responsive-popup/tsconfig.json | 24 ++++++++++++ types/leaflet-responsive-popup/tslint.json | 1 + 4 files changed, 81 insertions(+) create mode 100644 types/leaflet-responsive-popup/index.d.ts create mode 100644 types/leaflet-responsive-popup/leaflet-responsive-popup-tests.ts create mode 100644 types/leaflet-responsive-popup/tsconfig.json create mode 100644 types/leaflet-responsive-popup/tslint.json diff --git a/types/leaflet-responsive-popup/index.d.ts b/types/leaflet-responsive-popup/index.d.ts new file mode 100644 index 0000000000..10c43f818e --- /dev/null +++ b/types/leaflet-responsive-popup/index.d.ts @@ -0,0 +1,19 @@ +// Type definitions for leaflet-responsive-popup 0.6 +// Project: https://github.com/yafred/leaflet-responsive-popup +// Definitions by: Stan Kurek +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.3 + +import * as L from 'leaflet'; + +declare module 'leaflet' { + interface ResponsivePopupOptions extends PopupOptions { + hasTip?: boolean; + } + + class ResponsivePopup extends Popup { + constructor(options?: ResponsivePopupOptions, source?: Layer); + } + + function responsivePopup(options?: ResponsivePopupOptions, source?: Layer): ResponsivePopup; +} diff --git a/types/leaflet-responsive-popup/leaflet-responsive-popup-tests.ts b/types/leaflet-responsive-popup/leaflet-responsive-popup-tests.ts new file mode 100644 index 0000000000..a3d9d7222b --- /dev/null +++ b/types/leaflet-responsive-popup/leaflet-responsive-popup-tests.ts @@ -0,0 +1,37 @@ +import * as L from 'leaflet'; +import 'leaflet-responsive-popup'; + +const osmUrl = 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'; +const osmAttrib = '© OpenStreetMap contributors'; +const osmTile = L.tileLayer(osmUrl, { maxZoom: 18, attribution: osmAttrib }); +const map = new L.Map('map', { + layers: [osmTile], + center: new L.LatLng(50.054, 19.933), + zoom: 13, +}); + +const circle1 = L.circle([50.054, 19.933], { + color: 'red', + fillColor: '#f03', + fillOpacity: 0.5, + radius: 120, +}).addTo(map); + +const popup1 = L.responsivePopup({ hasTip: false, autoPan: false }, circle1) + .setLatLng([50.054, 19.933]) + .setContent('Test popup 1'); + +circle1.bindPopup(popup1); + +const circle2 = L.circle([50.154, 20.033], { + color: 'red', + fillColor: '#f03', + fillOpacity: 0.5, + radius: 120, +}).addTo(map); + +const popup2 = new L.ResponsivePopup({ hasTip: false, autoPan: false }, circle2) + .setLatLng([50.154, 20.033]) + .setContent('Test popup 2'); + +circle2.bindPopup(popup2); diff --git a/types/leaflet-responsive-popup/tsconfig.json b/types/leaflet-responsive-popup/tsconfig.json new file mode 100644 index 0000000000..bb095cc8ab --- /dev/null +++ b/types/leaflet-responsive-popup/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", + "leaflet-responsive-popup-tests.ts" + ] +} diff --git a/types/leaflet-responsive-popup/tslint.json b/types/leaflet-responsive-popup/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/leaflet-responsive-popup/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }