ts-maps 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/README.md +284 -0
  2. package/dist/apply-transform.d.ts +47 -0
  3. package/dist/base-element.d.ts +5 -0
  4. package/dist/base.d.ts +19 -0
  5. package/dist/brasil.d.ts +1 -0
  6. package/dist/canada.d.ts +1 -0
  7. package/dist/canvas-element.d.ts +8 -0
  8. package/dist/coords-to-point.d.ts +26 -0
  9. package/dist/create-lines.d.ts +39 -0
  10. package/dist/create-markers.d.ts +51 -0
  11. package/dist/create-regions.d.ts +19 -0
  12. package/dist/create-series.d.ts +20 -0
  13. package/dist/data-visualization.d.ts +99 -0
  14. package/dist/deep-merge.d.ts +44 -0
  15. package/dist/event-handler.d.ts +12 -0
  16. package/dist/events.d.ts +14 -0
  17. package/dist/get-inset-for-point.d.ts +24 -0
  18. package/dist/get-marker-position.d.ts +15 -0
  19. package/dist/image-element.d.ts +7 -0
  20. package/dist/index.d.ts +12 -0
  21. package/dist/index.js +2027 -0
  22. package/dist/interactable.d.ts +7 -0
  23. package/dist/italy.d.ts +1 -0
  24. package/dist/legend.d.ts +6 -0
  25. package/dist/line.d.ts +29 -0
  26. package/dist/map.d.ts +422 -0
  27. package/dist/marker.d.ts +31 -0
  28. package/dist/options.d.ts +5 -0
  29. package/dist/ordinal-scale.d.ts +32 -0
  30. package/dist/projection.d.ts +18 -0
  31. package/dist/region.d.ts +21 -0
  32. package/dist/reposition-labels.d.ts +27 -0
  33. package/dist/reposition-lines.d.ts +32 -0
  34. package/dist/reposition-markers.d.ts +26 -0
  35. package/dist/resize.d.ts +5 -0
  36. package/dist/series.d.ts +4 -0
  37. package/dist/set-focus.d.ts +58 -0
  38. package/dist/set-scale.d.ts +80 -0
  39. package/dist/setup-container-events.d.ts +48 -0
  40. package/dist/setup-container-touch-events.d.ts +68 -0
  41. package/dist/setup-element-events.d.ts +125 -0
  42. package/dist/setup-zoom-buttons.d.ts +21 -0
  43. package/dist/shape-element.d.ts +10 -0
  44. package/dist/spain.d.ts +1 -0
  45. package/dist/text-element.d.ts +1 -0
  46. package/dist/tooltip.d.ts +80 -0
  47. package/dist/types.d.ts +398 -0
  48. package/dist/update-size.d.ts +6 -0
  49. package/dist/us-aea-en.d.ts +266 -0
  50. package/dist/us-lcc-en.d.ts +266 -0
  51. package/dist/us-merc-en.d.ts +266 -0
  52. package/dist/us-mill-en.d.ts +266 -0
  53. package/dist/utils.d.ts +21 -0
  54. package/dist/vector-map.d.ts +15 -0
  55. package/dist/world-merc.d.ts +1 -0
  56. package/dist/world.d.ts +1 -0
  57. package/package.json +57 -0
@@ -0,0 +1,398 @@
1
+ import type { Tooltip } from './components/tooltip';
2
+
3
+ export declare interface MapOptions {
4
+ selector: string
5
+ map: {
6
+ name: string
7
+ projection: 'mercator' | 'miller'
8
+ [key: string]: any
9
+ }
10
+ backgroundColor?: string
11
+ draggable?: boolean
12
+ zoomButtons?: boolean
13
+ zoomOnScroll?: boolean
14
+ zoomOnScrollSpeed?: number
15
+ zoomMax?: number
16
+ zoomMin?: number
17
+ zoomAnimate?: boolean
18
+ showTooltip?: boolean
19
+ zoomStep?: number
20
+ bindTouchEvents?: boolean
21
+ focusOn?: FocusOnOptions
22
+ markers?: MarkerConfig[]
23
+ series?: SeriesConfig
24
+ regions?: string[]
25
+ selectedRegions?: string[]
26
+ selectedMarkers?: string[]
27
+ regionsSelectable?: boolean
28
+ regionsSelectableOne?: boolean
29
+ markersSelectable?: boolean
30
+ markersSelectableOne?: boolean
31
+ regionStyle?: RegionStyle
32
+ regionLabelStyle?: RegionLabelStyle
33
+ markerStyle?: MarkerStyle
34
+ markerLabelStyle?: MarkerLabelStyle
35
+ lines?: {
36
+ elements?: LineConfig[]
37
+ style?: {
38
+ stroke?: string
39
+ strokeWidth?: number
40
+ strokeLinecap?: string
41
+ [key: string]: any
42
+ }
43
+ curvature?: number
44
+ }
45
+ visualizeData?: DataVisualizationOptions
46
+ onLoaded?: () => void
47
+ onViewportChange?: (scale: number, transX: number, transY: number) => void
48
+ onRegionClick?: (event: MouseEvent, code: string) => void
49
+ onRegionSelected?: (event: MouseEvent, code: string, isSelected: boolean, selectedRegions: string[]) => void
50
+ onMarkerClick?: (event: MouseEvent, index: string) => void
51
+ onMarkerSelected?: (event: MouseEvent, index: string, isSelected: boolean, selectedMarkers: string[]) => void
52
+ onRegionTooltipShow?: (event: MouseEvent, tooltip: HTMLElement, code: string) => void
53
+ onMarkerTooltipShow?: (event: MouseEvent, tooltip: HTMLElement, code: string) => void
54
+ [key: string]: any
55
+ }
56
+ export declare interface FocusOnOptions {
57
+ region?: string
58
+ regions?: string[]
59
+ coords?: [number, number]
60
+ x?: number
61
+ y?: number
62
+ scale?: number
63
+ animate?: boolean
64
+ }
65
+ export declare interface MarkerConfig {
66
+ name: string
67
+ coords: [number, number]
68
+ style?: {
69
+ fill?: string
70
+ stroke?: string
71
+ strokeWidth?: number
72
+ r?: number
73
+ [key: string]: any
74
+ }
75
+ [key: string]: any
76
+ }
77
+ export declare interface MarkerConstructorConfig {
78
+ index: string
79
+ map: MapInterface
80
+ label?: boolean
81
+ labelsGroup?: any
82
+ cx: number
83
+ cy: number
84
+ group?: any
85
+ config: MarkerConfig
86
+ isRecentlyCreated?: boolean
87
+ }
88
+ export declare interface MarkerStyle {
89
+ initial?: {
90
+ fill?: string
91
+ stroke?: string
92
+ strokeWidth?: number
93
+ r?: number
94
+ [key: string]: any
95
+ }
96
+ hover?: {
97
+ fill?: string
98
+ stroke?: string
99
+ strokeWidth?: number
100
+ r?: number
101
+ [key: string]: any
102
+ }
103
+ selected?: {
104
+ fill?: string
105
+ stroke?: string
106
+ strokeWidth?: number
107
+ r?: number
108
+ [key: string]: any
109
+ }
110
+ selectedHover?: {
111
+ fill?: string
112
+ stroke?: string
113
+ strokeWidth?: number
114
+ r?: number
115
+ [key: string]: any
116
+ }
117
+ }
118
+ export declare interface LineConfig {
119
+ from: string
120
+ to: string
121
+ style?: {
122
+ stroke?: string
123
+ strokeWidth?: number
124
+ strokeLinecap?: string
125
+ [key: string]: any
126
+ }
127
+ [key: string]: any
128
+ }
129
+ export declare interface SeriesConfig {
130
+ attribute: string
131
+ scale?: string[]
132
+ values?: Record<string, number>
133
+ [key: string]: any
134
+ }
135
+ export declare interface DataVisualizationOptions {
136
+ scale: [string, string]
137
+ values: Record<string, number | string>
138
+ }
139
+ export declare interface GeoPoint {
140
+ x: number
141
+ y: number
142
+ }
143
+ export declare interface BBox {
144
+ bbox: [GeoPoint, GeoPoint]
145
+ }
146
+ export declare interface Inset extends BBox {
147
+ width: number
148
+ top: number
149
+ height: number
150
+ left: number
151
+ }
152
+ export declare interface Region {
153
+ path: string
154
+ name: string
155
+ }
156
+ export declare interface RegionMap {
157
+ [regionCode: string]: Region
158
+ }
159
+ export declare interface MapData {
160
+ insets: Inset[]
161
+ paths: RegionMap
162
+ height: number
163
+ projection: {
164
+ type: string
165
+ centralMeridian: number
166
+ }
167
+ width: number
168
+ }
169
+ export declare interface MapInterface {
170
+ regions: Record<string, Region>
171
+ scale: number
172
+ transX: number
173
+ transY: number
174
+ container: HTMLElement
175
+ canvas: SVGCanvasElement
176
+ params: MapOptions & {
177
+ labels?: {
178
+ markers?: boolean
179
+ regions?: boolean
180
+ }
181
+ series?: {
182
+ markers?: SeriesConfig[]
183
+ regions?: SeriesConfig[]
184
+ }
185
+ }
186
+
187
+ series: {
188
+ markers: any[]
189
+ regions: any[]
190
+ }
191
+
192
+ mercator: {
193
+ convert: (lat: number, lng: number) => { x: number, y: number } | false
194
+ }
195
+ miller: {
196
+ convert: (lat: number, lng: number) => { x: number, y: number } | false
197
+ }
198
+
199
+ _width: number
200
+ _height: number
201
+ _defaultWidth: number
202
+ _defaultHeight: number
203
+ _baseScale: number
204
+ _baseTransX: number
205
+ _baseTransY: number
206
+ _markers?: Record<string, Marker>
207
+ _lines?: Record<string, any>
208
+ _linesGroup?: any
209
+ _markersGroup?: any
210
+ _markerLabelsGroup?: any
211
+ _regionLabelsGroup?: any
212
+ _mapData: MapData
213
+ _tooltip?: Tooltip
214
+
215
+ setBackgroundColor: (color: string) => void
216
+ getSelectedRegions: () => string[]
217
+ clearSelectedRegions: (regions?: string[] | undefined) => void
218
+ setSelectedRegions: (regions: string[]) => void
219
+ getSelectedMarkers: () => string[]
220
+ clearSelectedMarkers: () => void
221
+ setSelectedMarkers: (markers: string[]) => void
222
+ addMarkers: (config: MarkerConfig | MarkerConfig[]) => void
223
+ removeMarkers: (markers?: string[]) => void
224
+ addLine: (from: string, to: string, style?: Record<string, string | number>) => void
225
+ addLines: (config: LineConfig[]) => void
226
+ removeLines: (lines: LineConfig[] | string[]) => void
227
+ removeLine: (from: string, to: string) => void
228
+ reset: () => void
229
+ updateSize: () => void
230
+ setFocus: (config: FocusOnOptions) => void
231
+ getInsetForPoint: (x: number, y: number) => any
232
+ getMarkerPosition: (config: MarkerConfig) => { x: number, y: number } | false
233
+ coordsToPoint: (lat: number, lng: number) => { x: number, y: number } | false
234
+
235
+ _repositionMarkers: () => void
236
+ _repositionLines: () => void
237
+ _repositionLabels: () => void
238
+ _setScale: (scale: number, transX: number, transY: number, isDrag?: boolean, animate?: boolean) => void
239
+ _applyTransform: () => void
240
+ _emit: (eventName: string, args: any[]) => void
241
+ }
242
+ export declare interface Region {
243
+ element: {
244
+ shape: {
245
+ style: {
246
+ initial: Record<string, string | number>
247
+ }
248
+ getBBox: () => { x: number, y: number, width: number, height: number }
249
+ }
250
+ select: (state: boolean) => void
251
+ isSelected: boolean
252
+ setStyle: (property: string, value: string) => void
253
+ updateLabelPosition: () => void
254
+ }
255
+ }
256
+ export declare interface Marker {
257
+ _uid: string
258
+ config: MarkerConfig
259
+ element: MarkerInstance
260
+ }
261
+ export declare interface Line {
262
+ element: {
263
+ remove: () => void
264
+ }
265
+ dispose: () => void
266
+ getConfig: () => LineConfig
267
+ setStyle: (style: Record<string, string | number>) => void
268
+ }
269
+ export declare interface EventRegistry {
270
+ [uid: string]: {
271
+ selector: HTMLElement
272
+ handler: EventListenerOrEventListenerObject
273
+ }
274
+ }
275
+ export declare interface SVGCanvasElement {
276
+ createGroup: (id: string) => SVGElement
277
+ createPath: (config: Record<string, any>) => SVGElement
278
+ createCircle: (config: Record<string, any>) => SVGElement
279
+ createImage: (config: Record<string, any>) => SVGElement
280
+ createText: (config: Record<string, any>) => SVGElement
281
+ applyTransformParams: (scale: number, transX: number, transY: number) => void
282
+ }
283
+ export declare interface LegendOptions {
284
+ map: MapInterface
285
+ series: any
286
+ cssClass?: string
287
+ title?: string
288
+ labelRender?: (label: string) => string
289
+ vertical?: boolean
290
+ }
291
+ export declare interface ScaleOptions {
292
+ scale: Record<string, string>
293
+ }
294
+ export declare interface SeriesOptions {
295
+ values?: Record<string, number | string>
296
+ attribute?: string
297
+ attributes?: Record<string, string>
298
+ scale?: Record<string, string> | any
299
+ legend?: LegendOptions
300
+ }
301
+ export declare interface RegionStyle {
302
+ initial?: {
303
+ fill?: string
304
+ stroke?: string
305
+ strokeWidth?: number
306
+ [key: string]: any
307
+ }
308
+ hover?: {
309
+ fill?: string
310
+ stroke?: string
311
+ strokeWidth?: number
312
+ [key: string]: any
313
+ }
314
+ selected?: {
315
+ fill?: string
316
+ stroke?: string
317
+ strokeWidth?: number
318
+ [key: string]: any
319
+ }
320
+ selectedHover?: {
321
+ fill?: string
322
+ stroke?: string
323
+ strokeWidth?: number
324
+ [key: string]: any
325
+ }
326
+ }
327
+ export declare interface RegionLabelStyle {
328
+ initial?: {
329
+ fontFamily?: string
330
+ fontSize?: string | number
331
+ fill?: string
332
+ [key: string]: any
333
+ }
334
+ hover?: {
335
+ fontFamily?: string
336
+ fontSize?: string | number
337
+ fill?: string
338
+ [key: string]: any
339
+ }
340
+ selected?: {
341
+ fontFamily?: string
342
+ fontSize?: string | number
343
+ fill?: string
344
+ [key: string]: any
345
+ }
346
+ selectedHover?: {
347
+ fontFamily?: string
348
+ fontSize?: string | number
349
+ fill?: string
350
+ [key: string]: any
351
+ }
352
+ }
353
+ export declare interface MarkerLabelStyle {
354
+ initial?: {
355
+ fontFamily?: string
356
+ fontSize?: string | number
357
+ fill?: string
358
+ [key: string]: any
359
+ }
360
+ hover?: {
361
+ fontFamily?: string
362
+ fontSize?: string | number
363
+ fill?: string
364
+ [key: string]: any
365
+ }
366
+ selected?: {
367
+ fontFamily?: string
368
+ fontSize?: string | number
369
+ fill?: string
370
+ [key: string]: any
371
+ }
372
+ selectedHover?: {
373
+ fontFamily?: string
374
+ fontSize?: string | number
375
+ fill?: string
376
+ [key: string]: any
377
+ }
378
+ }
379
+ export declare interface MarkerInstance {
380
+ constructor: (config: MarkerConstructorConfig, style: MarkerStyle) => void
381
+ select: (state: boolean) => void
382
+ isSelected: boolean
383
+ remove: () => void
384
+ setStyle: (property: string, value: string | number) => void
385
+ updateLabelPosition: () => void
386
+ }
387
+ export declare interface SeriesInstance {
388
+ constructor: (
389
+ config: SeriesConfig,
390
+ elements: Record<string, any>,
391
+ map: MapInterface
392
+ ) => void
393
+ setValues: (values: Record<string, number>) => void
394
+ clear: () => void
395
+ scale: string[]
396
+ values: Record<string, number>
397
+ attribute: string
398
+ }
@@ -0,0 +1,6 @@
1
+ export default function updateSize(this: MapInterface): void {
2
+ this._width = this.container.offsetWidth
3
+ this._height = this.container.offsetHeight
4
+ resize.call(this)
5
+ this.canvas.applyTransformParams(this.scale, this.transX, this.transY)
6
+ };