From dc02437227e7db51f61a02c52bbe0171a4b1de3c Mon Sep 17 00:00:00 2001 From: ryanc16 Date: Mon, 14 Oct 2019 19:39:46 -0400 Subject: [PATCH] adding leaflet-groupedlayercontrol types (#39044) * adding leaflet-groupedlayercontrol types * Adding typescript version information to index.d.ts file. * Updating formatting in types * Adding dom to libs in tsconfig * Updating formatting issues in index.d.ts file --- types/leaflet-groupedlayercontrol/index.d.ts | 29 +++++++++++++++++++ .../leaflet-groupedlayercontrol-tests.ts | 26 +++++++++++++++++ .../leaflet-groupedlayercontrol/tsconfig.json | 24 +++++++++++++++ types/leaflet-groupedlayercontrol/tslint.json | 1 + 4 files changed, 80 insertions(+) create mode 100644 types/leaflet-groupedlayercontrol/index.d.ts create mode 100644 types/leaflet-groupedlayercontrol/leaflet-groupedlayercontrol-tests.ts create mode 100644 types/leaflet-groupedlayercontrol/tsconfig.json create mode 100644 types/leaflet-groupedlayercontrol/tslint.json diff --git a/types/leaflet-groupedlayercontrol/index.d.ts b/types/leaflet-groupedlayercontrol/index.d.ts new file mode 100644 index 0000000000..892b63680a --- /dev/null +++ b/types/leaflet-groupedlayercontrol/index.d.ts @@ -0,0 +1,29 @@ +// Type definitions for leaflet-groupedlayercontrol 0.6 +// Project: https://github.com/ismyrnow/leaflet-groupedlayercontrol +// Definitions by: Ryan Conklin +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.3 + +import * as L from 'leaflet'; + +declare module 'leaflet' { + namespace Control { + class GroupedLayers extends Control { + constructor(baseLayers: { [index: string]: Layer }, groupedOverlays: { [index: string]: { [index: string]: LayerGroup } }, options: GroupedLayersOptions); + } + } + + namespace control { + function groupedLayers(baseLayers: { [index: string]: Layer }, groupedOverlays: { [index: string]: { [index: string]: LayerGroup } }, options: GroupedLayersOptions): Control; + } + + interface GroupedLayersOptions extends ControlOptions { + /** Default: true */ + collapsed?: boolean; + /** Default: true */ + autoZIndex?: boolean; + exclusiveGroups?: string[]; + /** Default: false */ + groupCheckboxes?: boolean; + } +} diff --git a/types/leaflet-groupedlayercontrol/leaflet-groupedlayercontrol-tests.ts b/types/leaflet-groupedlayercontrol/leaflet-groupedlayercontrol-tests.ts new file mode 100644 index 0000000000..2acfe4175f --- /dev/null +++ b/types/leaflet-groupedlayercontrol/leaflet-groupedlayercontrol-tests.ts @@ -0,0 +1,26 @@ +import * as L from 'leaflet'; +import 'leaflet-groupedlayercontrol'; + +const map: L.Map = L.map('#map'); + +const baseLayers = { + street: L.tileLayer('...') +}; + +const groupedOverlays = { + overlayGroup1: { + overlay1: L.layerGroup(), + overlay2: L.layerGroup() + }, + overlayGroup2: { + overlay3: L.layerGroup() + } +}; + +const groupedLayersOptions: L.GroupedLayersOptions = { + position: 'topleft', + exclusiveGroups: ['overlayGroup1', 'overlayGroup2'], + groupCheckboxes: false +}; + +L.control.groupedLayers(baseLayers, groupedOverlays, groupedLayersOptions).addTo(map); diff --git a/types/leaflet-groupedlayercontrol/tsconfig.json b/types/leaflet-groupedlayercontrol/tsconfig.json new file mode 100644 index 0000000000..f2073b7115 --- /dev/null +++ b/types/leaflet-groupedlayercontrol/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6", + "dom" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictFunctionTypes": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "leaflet-groupedlayercontrol-tests.ts" + ] +} diff --git a/types/leaflet-groupedlayercontrol/tslint.json b/types/leaflet-groupedlayercontrol/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/leaflet-groupedlayercontrol/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }