@deck.gl/widgets 9.2.11 → 9.3.0-alpha.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.
- package/dist/compass-widget.js +5 -5
- package/dist/compass-widget.js.map +1 -1
- package/dist/context-menu-widget.d.ts +27 -20
- package/dist/context-menu-widget.d.ts.map +1 -1
- package/dist/context-menu-widget.js +45 -48
- package/dist/context-menu-widget.js.map +1 -1
- package/dist/dist.dev.js +3114 -869
- package/dist/fullscreen-widget.js +1 -1
- package/dist/fullscreen-widget.js.map +1 -1
- package/dist/geocoder-widget.d.ts +2 -4
- package/dist/geocoder-widget.d.ts.map +1 -1
- package/dist/geocoder-widget.js +16 -20
- package/dist/geocoder-widget.js.map +1 -1
- package/dist/gimbal-widget.d.ts +0 -3
- package/dist/gimbal-widget.d.ts.map +1 -1
- package/dist/gimbal-widget.js +4 -22
- package/dist/gimbal-widget.js.map +1 -1
- package/dist/icon-widget.d.ts +28 -0
- package/dist/icon-widget.d.ts.map +1 -0
- package/dist/icon-widget.js +35 -0
- package/dist/icon-widget.js.map +1 -0
- package/dist/index.cjs +1271 -561
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +16 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -10
- package/dist/index.js.map +1 -1
- package/dist/info-widget.d.ts +39 -17
- package/dist/info-widget.d.ts.map +1 -1
- package/dist/info-widget.js +46 -130
- package/dist/info-widget.js.map +1 -1
- package/dist/lib/components/dropdown-menu.d.ts +12 -5
- package/dist/lib/components/dropdown-menu.d.ts.map +1 -1
- package/dist/lib/components/dropdown-menu.js +20 -11
- package/dist/lib/components/dropdown-menu.js.map +1 -1
- package/dist/lib/components/icon-button.d.ts +3 -0
- package/dist/lib/components/icon-button.d.ts.map +1 -1
- package/dist/lib/components/icon-button.js +10 -2
- package/dist/lib/components/icon-button.js.map +1 -1
- package/dist/lib/components/popover.d.ts +30 -0
- package/dist/lib/components/popover.d.ts.map +1 -0
- package/dist/lib/components/popover.js +93 -0
- package/dist/lib/components/popover.js.map +1 -0
- package/dist/lib/components/range-input.d.ts +26 -0
- package/dist/lib/components/range-input.d.ts.map +1 -0
- package/dist/lib/components/range-input.js +261 -0
- package/dist/lib/components/range-input.js.map +1 -0
- package/dist/lib/components/user-content.d.ts +8 -0
- package/dist/lib/components/user-content.d.ts.map +1 -0
- package/dist/lib/components/user-content.js +15 -0
- package/dist/lib/components/user-content.js.map +1 -0
- package/dist/lib/data-url.d.ts +5 -0
- package/dist/lib/data-url.d.ts.map +1 -0
- package/dist/lib/data-url.js +7 -0
- package/dist/lib/data-url.js.map +1 -0
- package/dist/popup-widget.d.ts +64 -0
- package/dist/popup-widget.d.ts.map +1 -0
- package/dist/popup-widget.js +76 -0
- package/dist/popup-widget.js.map +1 -0
- package/dist/reset-view-widget.d.ts +1 -1
- package/dist/reset-view-widget.d.ts.map +1 -1
- package/dist/reset-view-widget.js +12 -11
- package/dist/reset-view-widget.js.map +1 -1
- package/dist/scrollbar-widget.d.ts +68 -0
- package/dist/scrollbar-widget.d.ts.map +1 -0
- package/dist/scrollbar-widget.js +181 -0
- package/dist/scrollbar-widget.js.map +1 -0
- package/dist/selector-widget.d.ts +44 -0
- package/dist/selector-widget.d.ts.map +1 -0
- package/dist/selector-widget.js +64 -0
- package/dist/selector-widget.js.map +1 -0
- package/dist/splitter-widget.d.ts +52 -11
- package/dist/splitter-widget.d.ts.map +1 -1
- package/dist/splitter-widget.js +177 -76
- package/dist/splitter-widget.js.map +1 -1
- package/dist/stats-widget.d.ts +6 -1
- package/dist/stats-widget.d.ts.map +1 -1
- package/dist/stats-widget.js +39 -10
- package/dist/stats-widget.js.map +1 -1
- package/dist/stylesheet.css +291 -39
- package/dist/theme-widget.d.ts.map +1 -1
- package/dist/theme-widget.js +7 -5
- package/dist/theme-widget.js.map +1 -1
- package/dist/themes.d.ts +30 -0
- package/dist/themes.d.ts.map +1 -1
- package/dist/themes.js +28 -4
- package/dist/themes.js.map +1 -1
- package/dist/timeline-widget.d.ts +25 -6
- package/dist/timeline-widget.d.ts.map +1 -1
- package/dist/timeline-widget.js +51 -18
- package/dist/timeline-widget.js.map +1 -1
- package/dist/toggle-widget.d.ts +38 -0
- package/dist/toggle-widget.d.ts.map +1 -0
- package/dist/toggle-widget.js +47 -0
- package/dist/toggle-widget.js.map +1 -0
- package/dist/zoom-widget.d.ts +2 -8
- package/dist/zoom-widget.d.ts.map +1 -1
- package/dist/zoom-widget.js +23 -18
- package/dist/zoom-widget.js.map +1 -1
- package/dist.min.js +2 -2
- package/package.json +4 -3
- package/src/compass-widget.tsx +5 -5
- package/src/context-menu-widget.tsx +88 -78
- package/src/fullscreen-widget.tsx +1 -1
- package/src/geocoder-widget.tsx +17 -24
- package/src/gimbal-widget.tsx +4 -26
- package/src/icon-widget.tsx +69 -0
- package/src/index.ts +22 -15
- package/src/info-widget.tsx +100 -157
- package/src/lib/components/dropdown-menu.tsx +58 -29
- package/src/lib/components/icon-button.tsx +15 -3
- package/src/lib/components/popover.tsx +167 -0
- package/src/lib/components/range-input.tsx +432 -0
- package/src/lib/components/user-content.tsx +30 -0
- package/src/lib/data-url.ts +5 -0
- package/src/popup-widget.tsx +170 -0
- package/src/reset-view-widget.tsx +12 -11
- package/src/scrollbar-widget.tsx +288 -0
- package/src/selector-widget.tsx +111 -0
- package/src/splitter-widget.tsx +281 -96
- package/src/stats-widget.tsx +59 -12
- package/src/stylesheet.css +291 -39
- package/src/theme-widget.tsx +7 -5
- package/src/themes.ts +35 -4
- package/src/timeline-widget.tsx +103 -33
- package/src/toggle-widget.tsx +101 -0
- package/src/zoom-widget.tsx +25 -21
- package/dist/fps-widget.d.ts +0 -28
- package/dist/fps-widget.d.ts.map +0 -1
- package/dist/fps-widget.js +0 -51
- package/dist/fps-widget.js.map +0 -1
- package/dist/lib/components/grouped-icon-button.d.ts +0 -10
- package/dist/lib/components/grouped-icon-button.d.ts.map +0 -1
- package/dist/lib/components/grouped-icon-button.js +0 -7
- package/dist/lib/components/grouped-icon-button.js.map +0 -1
- package/dist/lib/components/icon-menu.d.ts +0 -16
- package/dist/lib/components/icon-menu.d.ts.map +0 -1
- package/dist/lib/components/icon-menu.js +0 -34
- package/dist/lib/components/icon-menu.js.map +0 -1
- package/dist/lib/components/simple-menu.d.ts +0 -16
- package/dist/lib/components/simple-menu.d.ts.map +0 -1
- package/dist/lib/components/simple-menu.js +0 -30
- package/dist/lib/components/simple-menu.js.map +0 -1
- package/dist/view-selector-widget.d.ts +0 -35
- package/dist/view-selector-widget.d.ts.map +0 -1
- package/dist/view-selector-widget.js +0 -63
- package/dist/view-selector-widget.js.map +0 -1
- package/src/fps-widget.tsx +0 -77
- package/src/lib/components/grouped-icon-button.tsx +0 -27
- package/src/lib/components/icon-menu.tsx +0 -71
- package/src/lib/components/simple-menu.tsx +0 -52
- package/src/view-selector-widget.tsx +0 -151
package/dist/timeline-widget.js
CHANGED
|
@@ -5,12 +5,13 @@ import { jsx as _jsx, jsxs as _jsxs } from "preact/jsx-runtime";
|
|
|
5
5
|
import { Widget } from '@deck.gl/core';
|
|
6
6
|
import { render } from 'preact';
|
|
7
7
|
import { IconButton } from "./lib/components/icon-button.js";
|
|
8
|
+
import { RangeInput } from "./lib/components/range-input.js";
|
|
8
9
|
export class TimelineWidget extends Widget {
|
|
9
10
|
constructor(props = {}) {
|
|
10
11
|
super(props);
|
|
11
12
|
this.id = 'timeline';
|
|
12
13
|
this.className = 'deck-widget-timeline';
|
|
13
|
-
this.placement = '
|
|
14
|
+
this.placement = 'fill';
|
|
14
15
|
this.playing = false;
|
|
15
16
|
this.timerId = null;
|
|
16
17
|
this.handlePlayPause = () => {
|
|
@@ -18,49 +19,77 @@ export class TimelineWidget extends Widget {
|
|
|
18
19
|
this.stop();
|
|
19
20
|
}
|
|
20
21
|
else {
|
|
21
|
-
this.
|
|
22
|
+
this.play();
|
|
22
23
|
}
|
|
23
24
|
};
|
|
24
|
-
this.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
this.
|
|
28
|
-
this.props.onTimeChange(val);
|
|
25
|
+
this.handleTimeChange = ([value]) => {
|
|
26
|
+
this.currentTime = value;
|
|
27
|
+
this.props.timeline?.setTime(value);
|
|
28
|
+
this.props.onTimeChange(value);
|
|
29
29
|
this.updateHTML();
|
|
30
30
|
};
|
|
31
31
|
this.tick = () => {
|
|
32
|
-
const [min, max] = this.props
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
next
|
|
32
|
+
const { timeRange: [min, max], step, loop } = this.props;
|
|
33
|
+
if (step > 0) {
|
|
34
|
+
let next = Math.round(this.currentTime / step) * step + step;
|
|
35
|
+
if (next > max) {
|
|
36
|
+
if (this.currentTime < max) {
|
|
37
|
+
next = max;
|
|
38
|
+
}
|
|
39
|
+
else if (loop) {
|
|
40
|
+
next = min;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
next = max;
|
|
44
|
+
this.playing = false;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
this.currentTime = next;
|
|
48
|
+
this.props.onTimeChange(next);
|
|
49
|
+
this.updateHTML();
|
|
36
50
|
}
|
|
37
|
-
this.currentTime = next;
|
|
38
|
-
this.props.onTimeChange(next);
|
|
39
|
-
this.updateHTML();
|
|
40
51
|
if (this.playing) {
|
|
41
52
|
this.timerId = window.setTimeout(this.tick, this.props.playInterval);
|
|
42
53
|
}
|
|
54
|
+
else {
|
|
55
|
+
this.timerId = null;
|
|
56
|
+
}
|
|
43
57
|
};
|
|
44
58
|
this.currentTime = this.props.initialTime ?? this.props.timeRange[0];
|
|
59
|
+
this.props.timeline?.setTime(this.currentTime);
|
|
45
60
|
this.setProps(this.props);
|
|
46
61
|
}
|
|
47
62
|
setProps(props) {
|
|
48
|
-
this.placement = props.placement ?? this.placement;
|
|
49
63
|
this.viewId = props.viewId ?? this.viewId;
|
|
50
64
|
super.setProps(props);
|
|
51
65
|
}
|
|
52
66
|
onAdd() {
|
|
53
67
|
this.playing = false;
|
|
54
68
|
this.timerId = null;
|
|
69
|
+
if (this.props.autoPlay)
|
|
70
|
+
this.play();
|
|
55
71
|
}
|
|
56
72
|
onRemove() {
|
|
57
73
|
this.stop();
|
|
58
74
|
}
|
|
59
75
|
onRenderHTML(rootElement) {
|
|
60
|
-
|
|
76
|
+
const { timeRange, step, formatLabel } = this.props;
|
|
77
|
+
const currentTime = this.currentTime;
|
|
78
|
+
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: [
|
|
80
|
+
{
|
|
81
|
+
position: [currentTime, currentTime + step],
|
|
82
|
+
element: (_jsx("div", { className: "deck-widget-timeline-label deck-widget-timeline-label--current", children: formatLabel(currentTime) }))
|
|
83
|
+
}
|
|
84
|
+
] })] }), rootElement);
|
|
61
85
|
}
|
|
62
|
-
|
|
86
|
+
play() {
|
|
63
87
|
this.playing = true;
|
|
88
|
+
const { timeRange: [min, max] } = this.props;
|
|
89
|
+
if (this.currentTime >= max) {
|
|
90
|
+
this.currentTime = min;
|
|
91
|
+
this.props.onTimeChange(min);
|
|
92
|
+
}
|
|
64
93
|
this.updateHTML();
|
|
65
94
|
this.tick();
|
|
66
95
|
}
|
|
@@ -78,10 +107,14 @@ TimelineWidget.defaultProps = {
|
|
|
78
107
|
id: 'timeline',
|
|
79
108
|
placement: 'bottom-left',
|
|
80
109
|
viewId: null,
|
|
110
|
+
timeline: null,
|
|
81
111
|
timeRange: [0, 100],
|
|
82
112
|
step: 1,
|
|
83
113
|
initialTime: undefined,
|
|
84
114
|
onTimeChange: () => { },
|
|
85
|
-
|
|
115
|
+
autoPlay: false,
|
|
116
|
+
loop: false,
|
|
117
|
+
playInterval: 1000,
|
|
118
|
+
formatLabel: String
|
|
86
119
|
};
|
|
87
120
|
//# sourceMappingURL=timeline-widget.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeline-widget.js","sourceRoot":"","sources":["../src/timeline-widget.tsx"],"names":[],"mappings":";AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,MAAM,EAAyC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"timeline-widget.js","sourceRoot":"","sources":["../src/timeline-widget.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { WidgetPlacement, WidgetProps } from '@deck.gl/core';
|
|
2
|
+
import { Widget } from '@deck.gl/core';
|
|
3
|
+
export type ToggleWidgetProps = WidgetProps & {
|
|
4
|
+
/** Widget positioning within the view. Default 'bottom-left'. */
|
|
5
|
+
placement?: WidgetPlacement;
|
|
6
|
+
/** View to attach to and interact with. Required when using multiple views. */
|
|
7
|
+
viewId?: string | null;
|
|
8
|
+
/** If the toggle is checked when first added */
|
|
9
|
+
initialChecked?: boolean;
|
|
10
|
+
/** Data url to display as icon */
|
|
11
|
+
icon: string;
|
|
12
|
+
/** Data url to display as icon when it is checked */
|
|
13
|
+
onIcon?: string;
|
|
14
|
+
/** Tooltip label */
|
|
15
|
+
label?: string;
|
|
16
|
+
/** Tooltip label when it is checked */
|
|
17
|
+
onLabel?: string;
|
|
18
|
+
/** Icon color, a CSS Color string */
|
|
19
|
+
color?: string;
|
|
20
|
+
/** Icon color when it is checked, a CSS Color string */
|
|
21
|
+
onColor?: string;
|
|
22
|
+
/** Callback when the widget is clicked */
|
|
23
|
+
onChange?: (checked: boolean) => void;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* A generic widget that displays a button with icon or text content.
|
|
27
|
+
*/
|
|
28
|
+
export declare class ToggleWidget extends Widget<ToggleWidgetProps> {
|
|
29
|
+
static defaultProps: Required<ToggleWidgetProps>;
|
|
30
|
+
className: string;
|
|
31
|
+
placement: WidgetPlacement;
|
|
32
|
+
checked: boolean;
|
|
33
|
+
constructor(props: ToggleWidgetProps);
|
|
34
|
+
setProps(props: Partial<ToggleWidgetProps>): void;
|
|
35
|
+
onRenderHTML(rootElement: HTMLElement): void;
|
|
36
|
+
private _toggle;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=toggle-widget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toggle-widget.d.ts","sourceRoot":"","sources":["../src/toggle-widget.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,eAAe,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAEhE,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AAGrC,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG;IAC5C,iEAAiE;IACjE,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,gDAAgD;IAChD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACvC,CAAC;AAEF;;GAEG;AACH,qBAAa,YAAa,SAAQ,MAAM,CAAC,iBAAiB,CAAC;IACzD,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAa9C;IAEF,SAAS,SAAwB;IACjC,SAAS,EAAE,eAAe,CAAc;IACxC,OAAO,EAAE,OAAO,CAAC;gBAEL,KAAK,EAAE,iBAAiB;IAMpC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC;IAM1C,YAAY,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IA4B5C,OAAO,CAAC,OAAO,CAIb;CACH"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { jsx as _jsx } from "preact/jsx-runtime";
|
|
2
|
+
import { render } from 'preact';
|
|
3
|
+
import { Widget } from '@deck.gl/core';
|
|
4
|
+
import { IconButton } from "./lib/components/icon-button.js";
|
|
5
|
+
/**
|
|
6
|
+
* A generic widget that displays a button with icon or text content.
|
|
7
|
+
*/
|
|
8
|
+
export class ToggleWidget extends Widget {
|
|
9
|
+
constructor(props) {
|
|
10
|
+
super(props);
|
|
11
|
+
this.className = 'deck-widget-toggle';
|
|
12
|
+
this.placement = 'top-left';
|
|
13
|
+
this._toggle = () => {
|
|
14
|
+
this.checked = !this.checked;
|
|
15
|
+
this.props.onChange?.(this.checked);
|
|
16
|
+
this.updateHTML();
|
|
17
|
+
};
|
|
18
|
+
this.checked = this.props.initialChecked;
|
|
19
|
+
this.setProps(this.props);
|
|
20
|
+
}
|
|
21
|
+
setProps(props) {
|
|
22
|
+
this.placement = props.placement ?? this.placement;
|
|
23
|
+
this.viewId = props.viewId;
|
|
24
|
+
super.setProps(props);
|
|
25
|
+
}
|
|
26
|
+
onRenderHTML(rootElement) {
|
|
27
|
+
const { className, style, icon, label, color, onIcon = icon, onLabel = label, onColor = color } = this.props;
|
|
28
|
+
const on = this.checked;
|
|
29
|
+
rootElement.dataset.checked = String(on);
|
|
30
|
+
render(_jsx(IconButton, { className: className, style: style, icon: on ? onIcon : icon, label: on ? onLabel : label, color: on ? onColor : color, onClick: this._toggle }), rootElement);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
ToggleWidget.defaultProps = {
|
|
34
|
+
...Widget.defaultProps,
|
|
35
|
+
id: 'icon',
|
|
36
|
+
placement: 'top-left',
|
|
37
|
+
viewId: null,
|
|
38
|
+
initialChecked: false,
|
|
39
|
+
icon: '',
|
|
40
|
+
onIcon: undefined,
|
|
41
|
+
label: '',
|
|
42
|
+
onLabel: undefined,
|
|
43
|
+
color: '',
|
|
44
|
+
onColor: undefined,
|
|
45
|
+
onChange: undefined
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=toggle-widget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toggle-widget.js","sourceRoot":"","sources":["../src/toggle-widget.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAC,MAAM,EAAW,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAAC,UAAU,EAAC,wCAAqC;AAyBxD;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,MAAyB;IAoBzD,YAAY,KAAwB;QAClC,KAAK,CAAC,KAAK,CAAC,CAAC;QALf,cAAS,GAAG,oBAAoB,CAAC;QACjC,cAAS,GAAoB,UAAU,CAAC;QA2ChC,YAAO,GAAG,GAAG,EAAE;YACrB,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpC,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC,CAAC;QA1CA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,QAAQ,CAAC,KAAiC;QACxC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;QACnD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC3B,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAED,YAAY,CAAC,WAAwB;QACnC,MAAM,EACJ,SAAS,EACT,KAAK,EACL,IAAI,EACJ,KAAK,EACL,KAAK,EACL,MAAM,GAAG,IAAI,EACb,OAAO,GAAG,KAAK,EACf,OAAO,GAAG,KAAK,EAChB,GAAG,IAAI,CAAC,KAAK,CAAC;QACf,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAExB,WAAW,CAAC,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAEzC,MAAM,CACJ,KAAC,UAAU,IACT,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAA0B,EACjC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EACxB,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAC3B,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAC3B,OAAO,EAAE,IAAI,CAAC,OAAO,GACrB,EACF,WAAW,CACZ,CAAC;IACJ,CAAC;;AAzDM,yBAAY,GAAgC;IACjD,GAAG,MAAM,CAAC,YAAY;IACtB,EAAE,EAAE,MAAM;IACV,SAAS,EAAE,UAAU;IACrB,MAAM,EAAE,IAAI;IACZ,cAAc,EAAE,KAAK;IACrB,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,SAAU;IAClB,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,SAAU;IACnB,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,SAAU;IACnB,QAAQ,EAAE,SAAU;CACrB,AAbkB,CAajB"}
|
package/dist/zoom-widget.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Widget } from '@deck.gl/core';
|
|
2
|
-
import type {
|
|
2
|
+
import type { WidgetProps, WidgetPlacement } from '@deck.gl/core';
|
|
3
3
|
export type ZoomWidgetProps = WidgetProps & {
|
|
4
4
|
/** Widget positioning within the view. Default 'top-left'. */
|
|
5
5
|
placement?: WidgetPlacement;
|
|
@@ -18,17 +18,11 @@ export declare class ZoomWidget extends Widget<ZoomWidgetProps> {
|
|
|
18
18
|
static defaultProps: Required<ZoomWidgetProps>;
|
|
19
19
|
className: string;
|
|
20
20
|
placement: WidgetPlacement;
|
|
21
|
-
viewports: {
|
|
22
|
-
[id: string]: Viewport;
|
|
23
|
-
};
|
|
24
21
|
constructor(props?: ZoomWidgetProps);
|
|
25
22
|
setProps(props: Partial<ZoomWidgetProps>): void;
|
|
26
23
|
onRenderHTML(rootElement: HTMLElement): void;
|
|
27
|
-
|
|
28
|
-
handleZoom(viewport: Viewport, nextZoom: number): void;
|
|
24
|
+
handleZoom(viewId: string, nextZoom: number): void;
|
|
29
25
|
handleZoomIn(): void;
|
|
30
26
|
handleZoomOut(): void;
|
|
31
|
-
/** @todo - move to deck or widget manager */
|
|
32
|
-
private setViewState;
|
|
33
27
|
}
|
|
34
28
|
//# sourceMappingURL=zoom-widget.d.ts.map
|
|
@@ -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,
|
|
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"}
|
package/dist/zoom-widget.js
CHANGED
|
@@ -5,13 +5,12 @@ import { jsx as _jsx, jsxs as _jsxs } from "preact/jsx-runtime";
|
|
|
5
5
|
import { Widget, FlyToInterpolator, LinearInterpolator } from '@deck.gl/core';
|
|
6
6
|
import { render } from 'preact';
|
|
7
7
|
import { ButtonGroup } from "./lib/components/button-group.js";
|
|
8
|
-
import {
|
|
8
|
+
import { IconButton } from "./lib/components/icon-button.js";
|
|
9
9
|
export class ZoomWidget extends Widget {
|
|
10
10
|
constructor(props = {}) {
|
|
11
11
|
super(props);
|
|
12
12
|
this.className = 'deck-widget-zoom';
|
|
13
13
|
this.placement = 'top-left';
|
|
14
|
-
this.viewports = {};
|
|
15
14
|
this.setProps(this.props);
|
|
16
15
|
}
|
|
17
16
|
setProps(props) {
|
|
@@ -20,16 +19,23 @@ export class ZoomWidget extends Widget {
|
|
|
20
19
|
super.setProps(props);
|
|
21
20
|
}
|
|
22
21
|
onRenderHTML(rootElement) {
|
|
23
|
-
const ui = (_jsxs(ButtonGroup, { orientation: this.props.orientation, children: [_jsx(
|
|
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" })] }));
|
|
24
23
|
render(ui, rootElement);
|
|
25
24
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
25
|
+
handleZoom(viewId, nextZoom) {
|
|
26
|
+
// Respect minZoom/maxZoom constraints from the view state
|
|
27
|
+
const viewState = this.getViewState(viewId);
|
|
28
|
+
if (viewState) {
|
|
29
|
+
const { minZoom, maxZoom } = viewState;
|
|
30
|
+
if (Number.isFinite(minZoom)) {
|
|
31
|
+
nextZoom = Math.max(minZoom, nextZoom);
|
|
32
|
+
}
|
|
33
|
+
if (Number.isFinite(maxZoom)) {
|
|
34
|
+
nextZoom = Math.min(maxZoom, nextZoom);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
31
37
|
const nextViewState = {
|
|
32
|
-
...
|
|
38
|
+
...viewState,
|
|
33
39
|
zoom: nextZoom
|
|
34
40
|
};
|
|
35
41
|
if (this.props.transitionDuration > 0) {
|
|
@@ -44,20 +50,19 @@ export class ZoomWidget extends Widget {
|
|
|
44
50
|
this.setViewState(viewId, nextViewState);
|
|
45
51
|
}
|
|
46
52
|
handleZoomIn() {
|
|
47
|
-
|
|
48
|
-
|
|
53
|
+
const viewIds = this.viewId ? [this.viewId] : (this.deck?.getViews().map(v => v.id) ?? []);
|
|
54
|
+
for (const viewId of viewIds) {
|
|
55
|
+
const viewState = this.getViewState(viewId);
|
|
56
|
+
this.handleZoom(viewId, viewState.zoom + 1);
|
|
49
57
|
}
|
|
50
58
|
}
|
|
51
59
|
handleZoomOut() {
|
|
52
|
-
|
|
53
|
-
|
|
60
|
+
const viewIds = this.viewId ? [this.viewId] : (this.deck?.getViews().map(v => v.id) ?? []);
|
|
61
|
+
for (const viewId of viewIds) {
|
|
62
|
+
const viewState = this.getViewState(viewId);
|
|
63
|
+
this.handleZoom(viewId, viewState.zoom - 1);
|
|
54
64
|
}
|
|
55
65
|
}
|
|
56
|
-
/** @todo - move to deck or widget manager */
|
|
57
|
-
setViewState(viewId, viewState) {
|
|
58
|
-
// @ts-ignore Using private method temporary until there's a public one
|
|
59
|
-
this.deck._onViewStateChange({ viewId, viewState, interactionState: {} });
|
|
60
|
-
}
|
|
61
66
|
}
|
|
62
67
|
ZoomWidget.defaultProps = {
|
|
63
68
|
...Widget.defaultProps,
|
package/dist/zoom-widget.js.map
CHANGED
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"zoom-widget.js","sourceRoot":"","sources":["../src/zoom-widget.tsx"],"names":[],"mappings":"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"}
|