@deck.gl/widgets 9.3.0-alpha.6 → 9.3.0-beta.2

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 (55) hide show
  1. package/dist/compass-widget.d.ts +12 -0
  2. package/dist/compass-widget.d.ts.map +1 -1
  3. package/dist/compass-widget.js +9 -3
  4. package/dist/compass-widget.js.map +1 -1
  5. package/dist/dist.dev.js +285 -93
  6. package/dist/fullscreen-widget.d.ts +5 -0
  7. package/dist/fullscreen-widget.d.ts.map +1 -1
  8. package/dist/fullscreen-widget.js +18 -8
  9. package/dist/fullscreen-widget.js.map +1 -1
  10. package/dist/geocoder-widget.d.ts +13 -0
  11. package/dist/geocoder-widget.d.ts.map +1 -1
  12. package/dist/geocoder-widget.js +13 -1
  13. package/dist/geocoder-widget.js.map +1 -1
  14. package/dist/gimbal-widget.d.ts +12 -0
  15. package/dist/gimbal-widget.d.ts.map +1 -1
  16. package/dist/gimbal-widget.js +4 -1
  17. package/dist/gimbal-widget.js.map +1 -1
  18. package/dist/index.cjs +278 -90
  19. package/dist/index.cjs.map +3 -3
  20. package/dist/loading-widget.d.ts +5 -0
  21. package/dist/loading-widget.d.ts.map +1 -1
  22. package/dist/loading-widget.js +4 -1
  23. package/dist/loading-widget.js.map +1 -1
  24. package/dist/reset-view-widget.d.ts +9 -0
  25. package/dist/reset-view-widget.d.ts.map +1 -1
  26. package/dist/reset-view-widget.js +4 -1
  27. package/dist/reset-view-widget.js.map +1 -1
  28. package/dist/stats-widget.d.ts +18 -3
  29. package/dist/stats-widget.d.ts.map +1 -1
  30. package/dist/stats-widget.js +29 -12
  31. package/dist/stats-widget.js.map +1 -1
  32. package/dist/theme-widget.d.ts +20 -2
  33. package/dist/theme-widget.d.ts.map +1 -1
  34. package/dist/theme-widget.js +38 -14
  35. package/dist/theme-widget.js.map +1 -1
  36. package/dist/timeline-widget.d.ts +34 -3
  37. package/dist/timeline-widget.d.ts.map +1 -1
  38. package/dist/timeline-widget.js +98 -24
  39. package/dist/timeline-widget.js.map +1 -1
  40. package/dist/zoom-widget.d.ts +22 -1
  41. package/dist/zoom-widget.d.ts.map +1 -1
  42. package/dist/zoom-widget.js +62 -15
  43. package/dist/zoom-widget.js.map +1 -1
  44. package/dist.min.js +2 -2
  45. package/package.json +3 -3
  46. package/src/compass-widget.tsx +23 -3
  47. package/src/fullscreen-widget.tsx +24 -9
  48. package/src/geocoder-widget.tsx +23 -1
  49. package/src/gimbal-widget.tsx +17 -1
  50. package/src/loading-widget.tsx +11 -1
  51. package/src/reset-view-widget.tsx +15 -1
  52. package/src/stats-widget.tsx +43 -14
  53. package/src/theme-widget.tsx +56 -17
  54. package/src/timeline-widget.tsx +123 -24
  55. package/src/zoom-widget.tsx +108 -17
@@ -7,33 +7,63 @@ import { render } from 'preact';
7
7
  import { IconButton } from "./lib/components/icon-button.js";
8
8
  import { RangeInput } from "./lib/components/range-input.js";
9
9
  export class TimelineWidget extends Widget {
10
+ /**
11
+ * Returns the current time value.
12
+ * In controlled mode, returns the time prop.
13
+ * In uncontrolled mode, returns the internal state.
14
+ */
15
+ getTime() {
16
+ return this.props.time ?? this.currentTime;
17
+ }
18
+ /**
19
+ * Returns the current playing state.
20
+ * In controlled mode, returns the playing prop.
21
+ * In uncontrolled mode, returns the internal state.
22
+ */
23
+ getPlaying() {
24
+ return this.props.playing ?? this._playing;
25
+ }
10
26
  constructor(props = {}) {
11
27
  super(props);
12
28
  this.id = 'timeline';
13
29
  this.className = 'deck-widget-timeline';
14
30
  this.placement = 'fill';
15
- this.playing = false;
31
+ this._playing = false;
16
32
  this.timerId = null;
17
33
  this.handlePlayPause = () => {
18
- if (this.playing) {
19
- this.stop();
20
- }
21
- else {
22
- this.play();
34
+ const isPlaying = this.getPlaying();
35
+ const nextPlaying = !isPlaying;
36
+ // Always call callback if provided
37
+ this.props.onPlayingChange?.(nextPlaying);
38
+ // Only update internal state if uncontrolled
39
+ if (this.props.playing === undefined) {
40
+ if (nextPlaying) {
41
+ this.play();
42
+ }
43
+ else {
44
+ this.stop();
45
+ }
23
46
  }
47
+ // In controlled mode, parent will update playing prop which triggers start/stop via setProps
24
48
  };
25
49
  this.handleTimeChange = ([value]) => {
26
- this.currentTime = value;
27
- this.props.timeline?.setTime(value);
50
+ // Always call callback
28
51
  this.props.onTimeChange(value);
29
- this.updateHTML();
52
+ // Only update internal state if uncontrolled
53
+ if (this.props.time === undefined) {
54
+ this.currentTime = value;
55
+ this.props.timeline?.setTime(value);
56
+ this.updateHTML();
57
+ }
58
+ // In controlled mode, parent will update time prop which triggers updateHTML via setProps
30
59
  };
31
60
  this.tick = () => {
32
61
  const { timeRange: [min, max], step, loop } = this.props;
33
62
  if (step > 0) {
34
- let next = Math.round(this.currentTime / step) * step + step;
63
+ const currentTime = this.getTime();
64
+ let next = Math.round(currentTime / step) * step + step;
35
65
  if (next > max) {
36
- if (this.currentTime < max) {
66
+ if (currentTime < max) {
37
67
  next = max;
38
68
  }
39
69
  else if (loop) {
@@ -41,14 +71,20 @@ export class TimelineWidget extends Widget {
41
71
  }
42
72
  else {
43
73
  next = max;
44
- this.playing = false;
74
+ this._playing = false;
75
+ this.props.onPlayingChange?.(false);
45
76
  }
46
77
  }
47
- this.currentTime = next;
78
+ // Always call callback
48
79
  this.props.onTimeChange(next);
80
+ // Only update internal state if uncontrolled
81
+ if (this.props.time === undefined) {
82
+ this.currentTime = next;
83
+ this.props.timeline?.setTime(next);
84
+ }
49
85
  this.updateHTML();
50
86
  }
51
- if (this.playing) {
87
+ if (this._playing) {
52
88
  this.timerId = window.setTimeout(this.tick, this.props.playInterval);
53
89
  }
54
90
  else {
@@ -56,27 +92,51 @@ export class TimelineWidget extends Widget {
56
92
  }
57
93
  };
58
94
  this.currentTime = this.props.initialTime ?? this.props.timeRange[0];
59
- this.props.timeline?.setTime(this.currentTime);
95
+ // In controlled mode, sync Timeline to the controlled time prop
96
+ const syncTime = this.props.time ?? this.currentTime;
97
+ this.props.timeline?.setTime(syncTime);
60
98
  this.setProps(this.props);
61
99
  }
62
100
  setProps(props) {
101
+ const { playing: prevPlaying, time: prevTime } = this.props;
63
102
  this.viewId = props.viewId ?? this.viewId;
64
103
  super.setProps(props);
104
+ // Sync Timeline object when controlled time prop changes
105
+ if (props.time !== undefined && props.time !== prevTime) {
106
+ this.props.timeline?.setTime(props.time);
107
+ }
108
+ // Handle controlled playing state changes
109
+ if (props.playing !== undefined && props.playing !== prevPlaying) {
110
+ if (props.playing && !this._playing) {
111
+ this._startTimer();
112
+ }
113
+ else if (!props.playing && this._playing) {
114
+ this._stopTimer();
115
+ }
116
+ }
65
117
  }
66
118
  onAdd() {
67
- this.playing = false;
119
+ this._playing = false;
68
120
  this.timerId = null;
69
- if (this.props.autoPlay)
70
- this.play();
121
+ if (this.props.autoPlay) {
122
+ if (this.props.playing !== undefined) {
123
+ // In controlled mode, notify parent instead of starting directly
124
+ this.props.onPlayingChange?.(true);
125
+ }
126
+ else {
127
+ this.play();
128
+ }
129
+ }
71
130
  }
72
131
  onRemove() {
73
132
  this.stop();
74
133
  }
75
134
  onRenderHTML(rootElement) {
76
135
  const { timeRange, step, formatLabel } = this.props;
77
- const currentTime = this.currentTime;
136
+ const isPlaying = this.getPlaying();
137
+ const currentTime = this.getTime();
78
138
  rootElement.dataset.placement = this.props.placement;
79
- render(_jsxs("div", { className: "deck-widget-button-group", children: [this.playing ? (_jsx(IconButton, { label: "Pause", className: "deck-widget-timeline-pause", onClick: this.handlePlayPause })) : (_jsx(IconButton, { label: "Play", className: "deck-widget-timeline-play", onClick: this.handlePlayPause })), _jsx(RangeInput, { min: timeRange[0], max: timeRange[1], orientation: "horizontal", step: step, value: [currentTime, currentTime], onChange: this.handleTimeChange, decorations: [
139
+ render(_jsxs("div", { className: "deck-widget-button-group", children: [isPlaying ? (_jsx(IconButton, { label: "Pause", className: "deck-widget-timeline-pause", onClick: this.handlePlayPause })) : (_jsx(IconButton, { label: "Play", className: "deck-widget-timeline-play", onClick: this.handlePlayPause })), _jsx(RangeInput, { min: timeRange[0], max: timeRange[1], orientation: "horizontal", step: step, value: [currentTime, currentTime], onChange: this.handleTimeChange, decorations: [
80
140
  {
81
141
  position: [currentTime, currentTime + step],
82
142
  element: (_jsx("div", { className: "deck-widget-timeline-label deck-widget-timeline-label--current", children: formatLabel(currentTime) }))
@@ -84,22 +144,33 @@ export class TimelineWidget extends Widget {
84
144
  ] })] }), rootElement);
85
145
  }
86
146
  play() {
87
- this.playing = true;
147
+ this._playing = true;
88
148
  const { timeRange: [min, max] } = this.props;
89
- if (this.currentTime >= max) {
149
+ // In uncontrolled mode, reset to start if at end
150
+ if (this.props.time === undefined && this.getTime() >= max) {
90
151
  this.currentTime = min;
91
152
  this.props.onTimeChange(min);
153
+ this.props.timeline?.setTime(min);
92
154
  }
93
155
  this.updateHTML();
94
156
  this.tick();
95
157
  }
96
158
  stop() {
97
- this.playing = false;
159
+ this._stopTimer();
160
+ this.updateHTML();
161
+ }
162
+ /** Start the playback timer (used internally) */
163
+ _startTimer() {
164
+ this._playing = true;
165
+ this.tick();
166
+ }
167
+ /** Stop the playback timer (used internally) */
168
+ _stopTimer() {
169
+ this._playing = false;
98
170
  if (this.timerId !== null) {
99
171
  window.clearTimeout(this.timerId);
100
172
  this.timerId = null;
101
173
  }
102
- this.updateHTML();
103
174
  }
104
175
  }
105
176
  TimelineWidget.defaultProps = {
@@ -111,10 +182,13 @@ TimelineWidget.defaultProps = {
111
182
  timeRange: [0, 100],
112
183
  step: 1,
113
184
  initialTime: undefined,
185
+ time: undefined,
114
186
  onTimeChange: () => { },
115
187
  autoPlay: false,
116
188
  loop: false,
117
189
  playInterval: 1000,
190
+ playing: undefined,
191
+ onPlayingChange: () => { },
118
192
  formatLabel: String
119
193
  };
120
194
  //# sourceMappingURL=timeline-widget.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"timeline-widget.js","sourceRoot":"","sources":["../src/timeline-widget.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"timeline-widget.js","sourceRoot":"","sources":["../src/timeline-widget.tsx"],"names":[],"mappings":"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"}
@@ -13,6 +13,26 @@ export type ZoomWidgetProps = WidgetProps & {
13
13
  zoomOutLabel?: string;
14
14
  /** Zoom transition duration in ms. 0 disables the transition */
15
15
  transitionDuration?: number;
16
+ /** Which axes to apply zoom to. One of 'X', 'Y' or 'all'.
17
+ * Only effective if the current view is OrthographicView.
18
+ */
19
+ zoomAxis?: 'X' | 'Y' | 'all';
20
+ /**
21
+ * Callback when zoom buttons are clicked.
22
+ * Called for each viewport that will be zoomed.
23
+ */
24
+ onZoom?: (params: {
25
+ /** The view being zoomed */
26
+ viewId: string;
27
+ /** Zoom direction: +1 for zoom in, -1 for zoom out */
28
+ delta: number;
29
+ /** The new zoom level */
30
+ zoom: number;
31
+ /** The new zoom level of the X axis, if using OrthographicView */
32
+ zoomX?: number;
33
+ /** The new zoom level of the Y axis, if using OrthographicView */
34
+ zoomY?: number;
35
+ }) => void;
16
36
  };
17
37
  export declare class ZoomWidget extends Widget<ZoomWidgetProps> {
18
38
  static defaultProps: Required<ZoomWidgetProps>;
@@ -21,7 +41,8 @@ export declare class ZoomWidget extends Widget<ZoomWidgetProps> {
21
41
  constructor(props?: ZoomWidgetProps);
22
42
  setProps(props: Partial<ZoomWidgetProps>): void;
23
43
  onRenderHTML(rootElement: HTMLElement): void;
24
- handleZoom(viewId: string, nextZoom: number): void;
44
+ isOrthographicView(viewId: string): boolean;
45
+ handleZoom(viewId: string, delta: number): void;
25
46
  handleZoomIn(): void;
26
47
  handleZoomOut(): void;
27
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"zoom-widget.d.ts","sourceRoot":"","sources":["../src/zoom-widget.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAAwC,MAAM,eAAe,CAAC;AAC5E,OAAO,KAAK,EAAC,WAAW,EAAE,eAAe,EAAC,MAAM,eAAe,CAAC;AAKhE,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG;IAC1C,8DAA8D;IAC9D,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,0BAA0B;IAC1B,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACxC,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gEAAgE;IAChE,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,qBAAa,UAAW,SAAQ,MAAM,CAAC,eAAe,CAAC;IACrD,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,eAAe,CAAC,CAS5C;IAEF,SAAS,SAAsB;IAC/B,SAAS,EAAE,eAAe,CAAc;gBAE5B,KAAK,GAAE,eAAoB;IAKvC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,eAAe,CAAC;IAMxC,YAAY,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAkB5C,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IA6B3C,YAAY;IAQZ,aAAa;CAOd"}
1
+ {"version":3,"file":"zoom-widget.d.ts","sourceRoot":"","sources":["../src/zoom-widget.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAA0D,MAAM,eAAe,CAAC;AAC9F,OAAO,KAAK,EAAC,WAAW,EAAE,eAAe,EAAwB,MAAM,eAAe,CAAC;AAKvF,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG;IAC1C,8DAA8D;IAC9D,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,0BAA0B;IAC1B,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACxC,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gEAAgE;IAChE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC;IAC7B;;;OAGG;IACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE;QAChB,4BAA4B;QAC5B,MAAM,EAAE,MAAM,CAAC;QACf,sDAAsD;QACtD,KAAK,EAAE,MAAM,CAAC;QACd,yBAAyB;QACzB,IAAI,EAAE,MAAM,CAAC;QACb,kEAAkE;QAClE,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,kEAAkE;QAClE,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,KAAK,IAAI,CAAC;CACZ,CAAC;AAEF,qBAAa,UAAW,SAAQ,MAAM,CAAC,eAAe,CAAC;IACrD,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,eAAe,CAAC,CAW5C;IAEF,SAAS,SAAsB;IAC/B,SAAS,EAAE,eAAe,CAAc;gBAE5B,KAAK,GAAE,eAAoB;IAKvC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,eAAe,CAAC;IAMxC,YAAY,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAkB5C,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAM3C,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAmExC,YAAY;IAOZ,aAAa;CAMd"}
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "preact/jsx-runtime";
2
2
  // deck.gl
3
3
  // SPDX-License-Identifier: MIT
4
4
  // Copyright (c) vis.gl contributors
5
- import { Widget, FlyToInterpolator, LinearInterpolator } from '@deck.gl/core';
5
+ import { Widget, FlyToInterpolator, LinearInterpolator, OrthographicView } from '@deck.gl/core';
6
6
  import { render } from 'preact';
7
7
  import { ButtonGroup } from "./lib/components/button-group.js";
8
8
  import { IconButton } from "./lib/components/icon-button.js";
@@ -22,21 +22,60 @@ export class ZoomWidget extends Widget {
22
22
  const ui = (_jsxs(ButtonGroup, { orientation: this.props.orientation, children: [_jsx(IconButton, { onClick: () => this.handleZoomIn(), label: this.props.zoomInLabel, className: "deck-widget-zoom-in" }), _jsx(IconButton, { onClick: () => this.handleZoomOut(), label: this.props.zoomOutLabel, className: "deck-widget-zoom-out" })] }));
23
23
  render(ui, rootElement);
24
24
  }
25
- handleZoom(viewId, nextZoom) {
25
+ isOrthographicView(viewId) {
26
+ const deck = this.deck;
27
+ const view = deck?.isInitialized && deck.getView(viewId);
28
+ return view instanceof OrthographicView;
29
+ }
30
+ handleZoom(viewId, delta) {
26
31
  // Respect minZoom/maxZoom constraints from the view state
27
32
  const viewState = this.getViewState(viewId);
28
- if (viewState) {
29
- const { minZoom, maxZoom } = viewState;
30
- if (Number.isFinite(minZoom)) {
31
- nextZoom = Math.max(minZoom, nextZoom);
33
+ const newViewState = {};
34
+ if (this.isOrthographicView(viewId)) {
35
+ const { zoomAxis } = this.props;
36
+ const { zoomX, minZoomX, maxZoomX, zoomY, minZoomY, maxZoomY } = normalizeOrthographicViewState(viewState);
37
+ let nextZoom;
38
+ let nextZoomY;
39
+ if (zoomAxis === 'X') {
40
+ nextZoom = clamp(zoomX + delta, minZoomX, maxZoomX);
41
+ nextZoomY = zoomY;
42
+ }
43
+ else if (zoomAxis === 'Y') {
44
+ nextZoom = zoomX;
45
+ nextZoomY = clamp(zoomY + delta, minZoomY, maxZoomY);
32
46
  }
33
- if (Number.isFinite(maxZoom)) {
34
- nextZoom = Math.min(maxZoom, nextZoom);
47
+ else {
48
+ const clampedDelta = clamp(delta, Math.max(minZoomX - zoomX, minZoomY - zoomY), Math.min(maxZoomX - zoomX, maxZoomY - zoomY));
49
+ nextZoom = zoomX + clampedDelta;
50
+ nextZoomY = zoomY + clampedDelta;
35
51
  }
52
+ newViewState.zoom = [nextZoom, nextZoomY];
53
+ newViewState.zoomX = nextZoom;
54
+ newViewState.zoomY = nextZoomY;
55
+ // Call callback
56
+ this.props.onZoom?.({
57
+ viewId,
58
+ delta,
59
+ // `zoom` will not match the new state if using 2D zoom. Deprecated behavior for backward compatibility.
60
+ zoom: zoomAxis === 'Y' ? nextZoomY : nextZoom,
61
+ zoomX: nextZoom,
62
+ zoomY: nextZoomY
63
+ });
64
+ }
65
+ else {
66
+ const { zoom = 0, minZoom, maxZoom } = viewState;
67
+ const nextZoom = clamp(zoom + delta, minZoom, maxZoom);
68
+ newViewState.zoom = nextZoom;
69
+ // Call callback
70
+ this.props.onZoom?.({
71
+ viewId,
72
+ delta,
73
+ zoom: nextZoom
74
+ });
36
75
  }
37
76
  const nextViewState = {
38
77
  ...viewState,
39
- zoom: nextZoom
78
+ ...newViewState
40
79
  };
41
80
  if (this.props.transitionDuration > 0) {
42
81
  nextViewState.transitionDuration = this.props.transitionDuration;
@@ -44,7 +83,7 @@ export class ZoomWidget extends Widget {
44
83
  'latitude' in nextViewState
45
84
  ? new FlyToInterpolator()
46
85
  : new LinearInterpolator({
47
- transitionProps: ['zoom']
86
+ transitionProps: 'zoomX' in newViewState ? ['zoomX', 'zoomY'] : ['zoom']
48
87
  });
49
88
  }
50
89
  this.setViewState(viewId, nextViewState);
@@ -52,15 +91,13 @@ export class ZoomWidget extends Widget {
52
91
  handleZoomIn() {
53
92
  const viewIds = this.viewId ? [this.viewId] : (this.deck?.getViews().map(v => v.id) ?? []);
54
93
  for (const viewId of viewIds) {
55
- const viewState = this.getViewState(viewId);
56
- this.handleZoom(viewId, viewState.zoom + 1);
94
+ this.handleZoom(viewId, 1);
57
95
  }
58
96
  }
59
97
  handleZoomOut() {
60
98
  const viewIds = this.viewId ? [this.viewId] : (this.deck?.getViews().map(v => v.id) ?? []);
61
99
  for (const viewId of viewIds) {
62
- const viewState = this.getViewState(viewId);
63
- this.handleZoom(viewId, viewState.zoom - 1);
100
+ this.handleZoom(viewId, -1);
64
101
  }
65
102
  }
66
103
  }
@@ -72,6 +109,16 @@ ZoomWidget.defaultProps = {
72
109
  transitionDuration: 200,
73
110
  zoomInLabel: 'Zoom In',
74
111
  zoomOutLabel: 'Zoom Out',
75
- viewId: null
112
+ zoomAxis: 'all',
113
+ viewId: null,
114
+ onZoom: () => { }
76
115
  };
116
+ function clamp(zoom, minZoom, maxZoom) {
117
+ return zoom < minZoom ? minZoom : zoom > maxZoom ? maxZoom : zoom;
118
+ }
119
+ function normalizeOrthographicViewState({ zoom = 0, zoomX, zoomY, minZoom = -Infinity, maxZoom = Infinity, minZoomX = minZoom, maxZoomX = maxZoom, minZoomY = minZoom, maxZoomY = maxZoom }) {
120
+ zoomX = zoomX ?? (Array.isArray(zoom) ? zoom[0] : zoom);
121
+ zoomY = zoomY ?? (Array.isArray(zoom) ? zoom[1] : zoom);
122
+ return { zoomX, zoomY, minZoomX, minZoomY, maxZoomX, maxZoomY };
123
+ }
77
124
  //# sourceMappingURL=zoom-widget.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zoom-widget.js","sourceRoot":"","sources":["../src/zoom-widget.tsx"],"names":[],"mappings":";AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,MAAM,EAAE,iBAAiB,EAAE,kBAAkB,EAAC,MAAM,eAAe,CAAC;AAE5E,OAAO,EAAC,MAAM,EAAC,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAC,WAAW,EAAC,yCAAsC;AAC1D,OAAO,EAAC,UAAU,EAAC,wCAAqC;AAiBxD,MAAM,OAAO,UAAW,SAAQ,MAAuB;IAerD,YAAY,QAAyB,EAAE;QACrC,KAAK,CAAC,KAAK,CAAC,CAAC;QAJf,cAAS,GAAG,kBAAkB,CAAC;QAC/B,cAAS,GAAoB,UAAU,CAAC;QAItC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,QAAQ,CAAC,KAA+B;QACtC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;QACnD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;QAC1C,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAED,YAAY,CAAC,WAAwB;QACnC,MAAM,EAAE,GAAG,CACT,MAAC,WAAW,IAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,aAC9C,KAAC,UAAU,IACT,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,EAClC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAC7B,SAAS,EAAC,qBAAqB,GAC/B,EACF,KAAC,UAAU,IACT,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,EACnC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,EAC9B,SAAS,EAAC,sBAAsB,GAChC,IACU,CACf,CAAC;QACF,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;IAC1B,CAAC;IAED,UAAU,CAAC,MAAc,EAAE,QAAgB;QACzC,0DAA0D;QAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,EAAC,OAAO,EAAE,OAAO,EAAC,GAAG,SAAgB,CAAC;YAC5C,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7B,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACzC,CAAC;YACD,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7B,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAED,MAAM,aAAa,GAA4B;YAC7C,GAAG,SAAS;YACZ,IAAI,EAAE,QAAQ;SACf,CAAC;QACF,IAAI,IAAI,CAAC,KAAK,CAAC,kBAAkB,GAAG,CAAC,EAAE,CAAC;YACtC,aAAa,CAAC,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC;YACjE,aAAa,CAAC,sBAAsB;gBAClC,UAAU,IAAI,aAAa;oBACzB,CAAC,CAAC,IAAI,iBAAiB,EAAE;oBACzB,CAAC,CAAC,IAAI,kBAAkB,CAAC;wBACrB,eAAe,EAAE,CAAC,MAAM,CAAC;qBAC1B,CAAC,CAAC;QACX,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC3C,CAAC;IAED,YAAY;QACV,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3F,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,CAAC,UAAU,CAAC,MAAM,EAAG,SAAS,CAAC,IAAe,GAAG,CAAC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,aAAa;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3F,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,CAAC,UAAU,CAAC,MAAM,EAAG,SAAS,CAAC,IAAe,GAAG,CAAC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;;AAtFM,uBAAY,GAA8B;IAC/C,GAAG,MAAM,CAAC,YAAY;IACtB,EAAE,EAAE,MAAM;IACV,SAAS,EAAE,UAAU;IACrB,WAAW,EAAE,UAAU;IACvB,kBAAkB,EAAE,GAAG;IACvB,WAAW,EAAE,SAAS;IACtB,YAAY,EAAE,UAAU;IACxB,MAAM,EAAE,IAAI;CACb,AATkB,CASjB"}
1
+ {"version":3,"file":"zoom-widget.js","sourceRoot":"","sources":["../src/zoom-widget.tsx"],"names":[],"mappings":"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"}