@deck.gl/widgets 9.2.10 → 9.3.0-alpha.1
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 +23 -18
- package/dist/context-menu-widget.d.ts.map +1 -1
- package/dist/context-menu-widget.js +44 -48
- package/dist/context-menu-widget.js.map +1 -1
- package/dist/dist.dev.js +2533 -420
- 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/index.cjs +921 -370
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/info-widget.d.ts +38 -17
- package/dist/info-widget.d.ts.map +1 -1
- package/dist/info-widget.js +40 -130
- package/dist/info-widget.js.map +1 -1
- package/dist/lib/components/dropdown-menu.d.ts +10 -4
- package/dist/lib/components/dropdown-menu.d.ts.map +1 -1
- package/dist/lib/components/dropdown-menu.js +12 -7
- package/dist/lib/components/dropdown-menu.js.map +1 -1
- package/dist/lib/components/icon-menu.d.ts.map +1 -1
- package/dist/lib/components/icon-menu.js +2 -3
- package/dist/lib/components/icon-menu.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/popup-widget.d.ts +63 -0
- package/dist/popup-widget.d.ts.map +1 -0
- package/dist/popup-widget.js +70 -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/stats-widget.d.ts +4 -0
- package/dist/stats-widget.d.ts.map +1 -1
- package/dist/stats-widget.js +3 -3
- package/dist/stats-widget.js.map +1 -1
- package/dist/stylesheet.css +244 -29
- 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 +46 -18
- package/dist/timeline-widget.js.map +1 -1
- 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 +86 -76
- package/src/fullscreen-widget.tsx +1 -1
- package/src/geocoder-widget.tsx +17 -24
- package/src/gimbal-widget.tsx +4 -26
- package/src/index.ts +11 -6
- package/src/info-widget.tsx +93 -157
- package/src/lib/components/dropdown-menu.tsx +42 -20
- package/src/lib/components/icon-menu.tsx +3 -4
- 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/popup-widget.tsx +163 -0
- package/src/reset-view-widget.tsx +12 -11
- package/src/scrollbar-widget.tsx +288 -0
- package/src/stats-widget.tsx +10 -4
- package/src/stylesheet.css +244 -29
- package/src/theme-widget.tsx +7 -5
- package/src/themes.ts +35 -4
- package/src/timeline-widget.tsx +96 -33
- package/src/zoom-widget.tsx +25 -21
- 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/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/src/lib/components/grouped-icon-button.tsx +0 -27
- package/src/lib/components/simple-menu.tsx +0 -52
|
@@ -22,18 +22,19 @@ export class ResetViewWidget extends Widget {
|
|
|
22
22
|
}
|
|
23
23
|
handleClick() {
|
|
24
24
|
const initialViewState = this.props.initialViewState || this.deck?.props.initialViewState;
|
|
25
|
-
this.
|
|
25
|
+
this.resetViewState(initialViewState);
|
|
26
26
|
}
|
|
27
|
-
|
|
28
|
-
const
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
27
|
+
resetViewState(viewState) {
|
|
28
|
+
const viewIds = this.viewId ? [this.viewId] : (this.deck?.getViews().map(v => v.id) ?? []);
|
|
29
|
+
for (const viewId of viewIds) {
|
|
30
|
+
const nextViewState = {
|
|
31
|
+
...(viewState?.[viewId] ?? viewState)
|
|
32
|
+
// only works for geospatial?
|
|
33
|
+
// transitionDuration: this.props.transitionDuration,
|
|
34
|
+
// transitionInterpolator: new FlyToInterpolator()
|
|
35
|
+
};
|
|
36
|
+
this.setViewState(viewId, nextViewState);
|
|
37
|
+
}
|
|
37
38
|
}
|
|
38
39
|
}
|
|
39
40
|
ResetViewWidget.defaultProps = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reset-view-widget.js","sourceRoot":"","sources":["../src/reset-view-widget.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAC,MAAM,EAAC,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAAC,UAAU,EAAC,wCAAqC;AAiBxD;;GAEG;AACH,MAAM,OAAO,eAAmD,SAAQ,MAGvE;IAaC,YAAY,QAAsC,EAAE;QAClD,KAAK,CAAC,KAAK,CAAC,CAAC;QAJf,cAAS,GAAG,wBAAwB,CAAC;QACrC,cAAS,GAAoB,UAAU,CAAC;QAItC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,QAAQ,CAAC,KAA4C;QACnD,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,CACJ,KAAC,UAAU,IACT,SAAS,EAAC,yBAAyB,EACnC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EACvB,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GACpC,EACF,WAAW,CACZ,CAAC;IACJ,CAAC;IAED,WAAW;QACT,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,gBAAgB,CAAC;QAC1F,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"reset-view-widget.js","sourceRoot":"","sources":["../src/reset-view-widget.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAC,MAAM,EAAC,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAAC,UAAU,EAAC,wCAAqC;AAiBxD;;GAEG;AACH,MAAM,OAAO,eAAmD,SAAQ,MAGvE;IAaC,YAAY,QAAsC,EAAE;QAClD,KAAK,CAAC,KAAK,CAAC,CAAC;QAJf,cAAS,GAAG,wBAAwB,CAAC;QACrC,cAAS,GAAoB,UAAU,CAAC;QAItC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,QAAQ,CAAC,KAA4C;QACnD,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,CACJ,KAAC,UAAU,IACT,SAAS,EAAC,yBAAyB,EACnC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EACvB,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GACpC,EACF,WAAW,CACZ,CAAC;IACJ,CAAC;IAED,WAAW;QACT,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,gBAAgB,CAAC;QAC1F,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IACxC,CAAC;IAED,cAAc,CAAC,SAAgC;QAC7C,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,aAAa,GAAG;gBACpB,GAAG,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;gBACrC,6BAA6B;gBAC7B,qDAAqD;gBACrD,kDAAkD;aACnD,CAAC;YACF,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;;AAlDM,4BAAY,GAAmC;IACpD,GAAG,MAAM,CAAC,YAAY;IACtB,EAAE,EAAE,YAAY;IAChB,SAAS,EAAE,UAAU;IACrB,KAAK,EAAE,YAAY;IACnB,gBAAgB,EAAE,SAAU;IAC5B,MAAM,EAAE,IAAI;CACb,AAPkB,CAOjB"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { Widget } from '@deck.gl/core';
|
|
2
|
+
import type { Position, Viewport, WidgetPlacement, WidgetProps } from '@deck.gl/core';
|
|
3
|
+
export type ScrollbarOrientation = 'vertical' | 'horizontal';
|
|
4
|
+
export type ContentBounds = [min: Position, max: Position];
|
|
5
|
+
export type ScrollbarDecoration = {
|
|
6
|
+
contentBounds: ContentBounds;
|
|
7
|
+
color: string;
|
|
8
|
+
title?: string;
|
|
9
|
+
/** Callback when the decoration is clicked. Return `true` to mark the event as handled, and prevent the default behavior. */
|
|
10
|
+
onClick?: (evt: MouseEvent) => boolean;
|
|
11
|
+
};
|
|
12
|
+
export type ScrollbarWidgetProps = WidgetProps & {
|
|
13
|
+
/** The full extent of the scrollable content, in world coordinates.
|
|
14
|
+
* The widget relies on this value to calculate the position and size of the slider button and track.
|
|
15
|
+
* If not supplied, the scrollbar will always be hidden.
|
|
16
|
+
*/
|
|
17
|
+
contentBounds?: ContentBounds | null;
|
|
18
|
+
placement?: WidgetPlacement;
|
|
19
|
+
viewId?: string | null;
|
|
20
|
+
/** Direction of the scrollbar. `'horizontal'` scrolls the camera along the X axis, and `'vertical'` scrolls the camera along the Y axis.
|
|
21
|
+
* @default 'vertical'
|
|
22
|
+
*/
|
|
23
|
+
orientation?: ScrollbarOrientation;
|
|
24
|
+
stepSize?: number | null;
|
|
25
|
+
pageSize?: number | null;
|
|
26
|
+
/** Label of the step button at the start.
|
|
27
|
+
* @default 'Scroll left' | 'Scroll up'
|
|
28
|
+
*/
|
|
29
|
+
startButtonAriaLabel?: string;
|
|
30
|
+
/** Label of the end button at the start.
|
|
31
|
+
* @default 'Scroll right' | 'Scroll down'
|
|
32
|
+
*/
|
|
33
|
+
endButtonAriaLabel?: string;
|
|
34
|
+
/** If `true`, mouse wheel events over the canvas will be intercepted by this scrollbar.
|
|
35
|
+
* Useful when simulating the native scrollbar's behavior.
|
|
36
|
+
* @default false
|
|
37
|
+
*/
|
|
38
|
+
captureWheel?: boolean;
|
|
39
|
+
/** Custom markers to overlay on the track. */
|
|
40
|
+
decorations?: ScrollbarDecoration[];
|
|
41
|
+
};
|
|
42
|
+
type ScrollbarWidgetRequiredProps = Required<ScrollbarWidgetProps>;
|
|
43
|
+
/** A scrollbar widget to be used with OrthographicView */
|
|
44
|
+
export declare class ScrollbarWidget extends Widget<ScrollbarWidgetProps> {
|
|
45
|
+
static defaultProps: ScrollbarWidgetRequiredProps;
|
|
46
|
+
className: string;
|
|
47
|
+
placement: WidgetPlacement;
|
|
48
|
+
private viewport?;
|
|
49
|
+
private contentSize;
|
|
50
|
+
private viewportSize;
|
|
51
|
+
private scrollOffset;
|
|
52
|
+
constructor(props: ScrollbarWidgetProps);
|
|
53
|
+
onViewportChange(viewport: Viewport): void;
|
|
54
|
+
onRenderHTML(): void;
|
|
55
|
+
onRemove(): void;
|
|
56
|
+
private updateViewport;
|
|
57
|
+
private getDecorations;
|
|
58
|
+
private getWheelEventTarget;
|
|
59
|
+
private getMaxScroll;
|
|
60
|
+
private getClampedOffset;
|
|
61
|
+
private isVertical;
|
|
62
|
+
private getEffectiveStep;
|
|
63
|
+
private getEffectivePage;
|
|
64
|
+
private emitScroll;
|
|
65
|
+
private handleRangeChange;
|
|
66
|
+
}
|
|
67
|
+
export {};
|
|
68
|
+
//# sourceMappingURL=scrollbar-widget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scrollbar-widget.d.ts","sourceRoot":"","sources":["../src/scrollbar-widget.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAIpF,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG,YAAY,CAAC;AAE7D,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;AAE3D,MAAM,MAAM,mBAAmB,GAAG;IAChC,aAAa,EAAE,aAAa,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6HAA6H;IAC7H,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC;CACxC,CAAC;AAYF,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG;IAC/C;;;OAGG;IACH,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;OAEG;IACH,WAAW,CAAC,EAAE,oBAAoB,CAAC;IAInC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAIzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACrC,CAAC;AAEF,KAAK,4BAA4B,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAAC;AAEnE,0DAA0D;AAC1D,qBAAa,eAAgB,SAAQ,MAAM,CAAC,oBAAoB,CAAC;IAC/D,OAAgB,YAAY,EAAE,4BAA4B,CAYxD;IAEO,SAAS,SAA2B;IAE7C,SAAS,EAAE,eAAe,CAAU;IAEpC,OAAO,CAAC,QAAQ,CAAC,CAAW;IAC5B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,YAAY,CAAK;gBAEb,KAAK,EAAE,oBAAoB;IAS9B,gBAAgB,CAAC,QAAQ,EAAE,QAAQ;IAKnC,YAAY,IAAI,IAAI;IAsCpB,QAAQ,IAAI,IAAI;IAOzB,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,cAAc;IAsCtB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,UAAU;IAyBlB,OAAO,CAAC,iBAAiB,CAEvB;CACH"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import { jsx as _jsx } from "preact/jsx-runtime";
|
|
2
|
+
import { Widget } from '@deck.gl/core';
|
|
3
|
+
import { render } from 'preact';
|
|
4
|
+
import { RangeInput } from "./lib/components/range-input.js";
|
|
5
|
+
const clamp = (value, min, max) => {
|
|
6
|
+
if (value < min) {
|
|
7
|
+
return min;
|
|
8
|
+
}
|
|
9
|
+
if (value > max) {
|
|
10
|
+
return max;
|
|
11
|
+
}
|
|
12
|
+
return value;
|
|
13
|
+
};
|
|
14
|
+
/** A scrollbar widget to be used with OrthographicView */
|
|
15
|
+
export class ScrollbarWidget extends Widget {
|
|
16
|
+
constructor(props) {
|
|
17
|
+
const resolved = {
|
|
18
|
+
...ScrollbarWidget.defaultProps,
|
|
19
|
+
...props
|
|
20
|
+
};
|
|
21
|
+
super(resolved);
|
|
22
|
+
this.className = 'deck-widget-scrollbar';
|
|
23
|
+
this.placement = 'fill';
|
|
24
|
+
this.contentSize = 0;
|
|
25
|
+
this.viewportSize = 0;
|
|
26
|
+
this.scrollOffset = 0;
|
|
27
|
+
this.handleRangeChange = (nextValue) => {
|
|
28
|
+
this.emitScroll(nextValue[0]);
|
|
29
|
+
};
|
|
30
|
+
this.viewId = resolved.viewId ?? null;
|
|
31
|
+
}
|
|
32
|
+
onViewportChange(viewport) {
|
|
33
|
+
this.viewport = viewport;
|
|
34
|
+
this.onRenderHTML();
|
|
35
|
+
}
|
|
36
|
+
onRenderHTML() {
|
|
37
|
+
const element = this.rootElement;
|
|
38
|
+
if (!element) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
element.dataset.placement = this.props.placement;
|
|
42
|
+
const viewport = this.viewport;
|
|
43
|
+
this.updateViewport(viewport);
|
|
44
|
+
const clampedOffset = this.getClampedOffset();
|
|
45
|
+
const wheelTarget = this.getWheelEventTarget(this.props.captureWheel ? 'global' : 'local');
|
|
46
|
+
const decorations = this.getDecorations(viewport);
|
|
47
|
+
const isVertical = this.isVertical();
|
|
48
|
+
const startLabel = this.props.startButtonAriaLabel ?? (isVertical ? 'Scroll up' : 'Scroll left');
|
|
49
|
+
const endLabel = this.props.endButtonAriaLabel ?? (isVertical ? 'Scroll down' : 'Scroll right');
|
|
50
|
+
const ui = (_jsx(RangeInput, { min: 0, max: Math.max(0, this.contentSize), step: this.getEffectiveStep(), pageSize: this.getEffectivePage(), value: [clampedOffset, clampedOffset + this.viewportSize], orientation: this.props.orientation, stepButtons: true, startButtonAriaLabel: startLabel, endButtonAriaLabel: endLabel, eventTarget: wheelTarget, decorations: decorations, onChange: this.handleRangeChange }));
|
|
51
|
+
render(ui, element);
|
|
52
|
+
}
|
|
53
|
+
onRemove() {
|
|
54
|
+
if (this.rootElement) {
|
|
55
|
+
render(null, this.rootElement);
|
|
56
|
+
}
|
|
57
|
+
super.onRemove();
|
|
58
|
+
}
|
|
59
|
+
updateViewport(viewport) {
|
|
60
|
+
if (!viewport) {
|
|
61
|
+
this.contentSize = 0;
|
|
62
|
+
this.scrollOffset = 0;
|
|
63
|
+
this.viewportSize = 0;
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
const { contentBounds } = this.props;
|
|
67
|
+
const isVertical = this.isVertical();
|
|
68
|
+
const projectedBounds = contentBounds
|
|
69
|
+
? projectBounds(contentBounds, viewport, isVertical)
|
|
70
|
+
: [0, 0];
|
|
71
|
+
this.contentSize = projectedBounds[1] - projectedBounds[0];
|
|
72
|
+
this.scrollOffset = -projectedBounds[0];
|
|
73
|
+
this.viewportSize = isVertical ? viewport.height : viewport.width;
|
|
74
|
+
}
|
|
75
|
+
getDecorations(viewport) {
|
|
76
|
+
const { decorations = [], contentBounds } = this.props;
|
|
77
|
+
if (!viewport || !contentBounds || decorations.length === 0) {
|
|
78
|
+
return [];
|
|
79
|
+
}
|
|
80
|
+
const isVertical = this.isVertical();
|
|
81
|
+
const [contentStart] = projectBounds(contentBounds, viewport, isVertical);
|
|
82
|
+
return decorations.map(decoration => {
|
|
83
|
+
const [start, end] = projectBounds(decoration.contentBounds, viewport, isVertical);
|
|
84
|
+
const onClick = decoration.onClick
|
|
85
|
+
? (e) => {
|
|
86
|
+
const handled = decoration.onClick?.(e);
|
|
87
|
+
if (handled) {
|
|
88
|
+
e.stopPropagation();
|
|
89
|
+
e.preventDefault();
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
: undefined;
|
|
93
|
+
return {
|
|
94
|
+
position: [start - contentStart, end - contentStart],
|
|
95
|
+
element: (_jsx("div", { style: {
|
|
96
|
+
pointerEvents: onClick ? 'all' : 'none',
|
|
97
|
+
width: '100%',
|
|
98
|
+
height: '100%',
|
|
99
|
+
backgroundColor: decoration.color
|
|
100
|
+
}, title: decoration.title, onClick: onClick }))
|
|
101
|
+
};
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
getWheelEventTarget(mode) {
|
|
105
|
+
if (mode === null)
|
|
106
|
+
return null;
|
|
107
|
+
if (mode === 'local')
|
|
108
|
+
return this.rootElement;
|
|
109
|
+
return this.deck?.props.parent || this.deck?.getCanvas()?.parentElement || this.rootElement;
|
|
110
|
+
}
|
|
111
|
+
getMaxScroll() {
|
|
112
|
+
return Math.max(0, this.contentSize - this.viewportSize);
|
|
113
|
+
}
|
|
114
|
+
getClampedOffset() {
|
|
115
|
+
const maxScroll = this.getMaxScroll();
|
|
116
|
+
return clamp(this.scrollOffset, 0, maxScroll);
|
|
117
|
+
}
|
|
118
|
+
isVertical() {
|
|
119
|
+
return this.props.orientation !== 'horizontal';
|
|
120
|
+
}
|
|
121
|
+
getEffectiveStep() {
|
|
122
|
+
if (typeof this.props.stepSize === 'number' && !Number.isNaN(this.props.stepSize)) {
|
|
123
|
+
return this.props.stepSize;
|
|
124
|
+
}
|
|
125
|
+
return Math.max(1, this.viewportSize / 10 || 1);
|
|
126
|
+
}
|
|
127
|
+
getEffectivePage() {
|
|
128
|
+
if (typeof this.props.pageSize === 'number' && !Number.isNaN(this.props.pageSize)) {
|
|
129
|
+
return this.props.pageSize;
|
|
130
|
+
}
|
|
131
|
+
return this.viewportSize;
|
|
132
|
+
}
|
|
133
|
+
emitScroll(next) {
|
|
134
|
+
const maxScroll = this.getMaxScroll();
|
|
135
|
+
const target = clamp(Math.round(next), 0, maxScroll);
|
|
136
|
+
const viewport = this.viewport;
|
|
137
|
+
if (viewport && target !== this.getClampedOffset()) {
|
|
138
|
+
const pixel = viewport.project(viewport.position);
|
|
139
|
+
if (this.isVertical()) {
|
|
140
|
+
pixel[1] -= target - this.scrollOffset;
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
pixel[0] -= target - this.scrollOffset;
|
|
144
|
+
}
|
|
145
|
+
const { target: newTarget } = viewport.panByPosition(viewport.position, pixel);
|
|
146
|
+
// @ts-expect-error Using private method temporary until there's a public one
|
|
147
|
+
this.deck._onViewStateChange({
|
|
148
|
+
viewId: viewport.id,
|
|
149
|
+
viewState: {
|
|
150
|
+
...this.getViewState(viewport.id),
|
|
151
|
+
target: newTarget
|
|
152
|
+
},
|
|
153
|
+
interactionState: {}
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
ScrollbarWidget.defaultProps = {
|
|
159
|
+
...Widget.defaultProps,
|
|
160
|
+
contentBounds: null,
|
|
161
|
+
placement: 'top-right',
|
|
162
|
+
viewId: null,
|
|
163
|
+
orientation: 'vertical',
|
|
164
|
+
stepSize: null,
|
|
165
|
+
pageSize: null,
|
|
166
|
+
startButtonAriaLabel: '',
|
|
167
|
+
endButtonAriaLabel: '',
|
|
168
|
+
captureWheel: false,
|
|
169
|
+
decorations: []
|
|
170
|
+
};
|
|
171
|
+
function projectBounds(bounds, viewport, isVertical) {
|
|
172
|
+
return bounds
|
|
173
|
+
.map(([x, y]) => viewport.project([x, y, 0]))
|
|
174
|
+
.reduce((range, [x, y]) => {
|
|
175
|
+
const value = isVertical ? y : x;
|
|
176
|
+
range[0] = Math.min(range[0], value);
|
|
177
|
+
range[1] = Math.max(range[1], value);
|
|
178
|
+
return range;
|
|
179
|
+
}, [Infinity, -Infinity]);
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=scrollbar-widget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scrollbar-widget.js","sourceRoot":"","sources":["../src/scrollbar-widget.tsx"],"names":[],"mappings":"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"}
|
package/dist/stats-widget.d.ts
CHANGED
|
@@ -8,6 +8,10 @@ export type StatsWidgetProps = WidgetProps & {
|
|
|
8
8
|
viewId?: string | null;
|
|
9
9
|
/** Type of stats to display. */
|
|
10
10
|
type?: 'deck' | 'luma' | 'device' | 'custom';
|
|
11
|
+
/** Expand the stats UI by default.
|
|
12
|
+
* @default false
|
|
13
|
+
*/
|
|
14
|
+
defaultIsExpanded?: boolean;
|
|
11
15
|
/** Stats object to visualize. */
|
|
12
16
|
stats?: Stats;
|
|
13
17
|
/** Title shown in the header of the pop-up. Defaults to stats.id. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats-widget.d.ts","sourceRoot":"","sources":["../src/stats-widget.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAAE,KAAK,eAAe,EAAE,KAAK,WAAW,EAAC,MAAM,eAAe,CAAC;AAG7E,OAAO,KAAK,EAAC,KAAK,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"stats-widget.d.ts","sourceRoot":"","sources":["../src/stats-widget.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAAE,KAAK,eAAe,EAAE,KAAK,WAAW,EAAC,MAAM,eAAe,CAAC;AAG7E,OAAO,KAAK,EAAC,KAAK,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;AAajD,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAMrE,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG;IAC3C,8DAA8D;IAC9D,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC7C;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iCAAiC;IACjC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC;IAC/D,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC,CAAC;AAEF,oDAAoD;AACpD,qBAAa,WAAY,SAAQ,MAAM,CAAC,gBAAgB,CAAC;IACvD,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAY7C;IAEF,SAAS,SAAuB;IAChC,SAAS,EAAiB,eAAe,CAAC;IAE1C,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,WAAW,CAAyC;IAC5D,OAAO,CAAC,cAAc,CAA0B;IAChD,SAAS,EAAE,OAAO,CAAQ;gBAEd,KAAK,GAAE,gBAAqB;IAQxC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAgBhD,KAAK,IAAI,IAAI;IAIb,YAAY,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAwC5C,QAAQ,IAAI,IAAI;IAOhB,SAAS,CAAC,SAAS,IAAI,KAAK,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE;IAoB7D,SAAS,CAAC,gBAAgB,QAAO,IAAI,CAGnC;IAEF,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM;CAevE"}
|
package/dist/stats-widget.js
CHANGED
|
@@ -5,8 +5,6 @@ import { jsx as _jsx, jsxs as _jsxs } from "preact/jsx-runtime";
|
|
|
5
5
|
import { Widget } from '@deck.gl/core';
|
|
6
6
|
import { luma } from '@luma.gl/core';
|
|
7
7
|
import { render } from 'preact';
|
|
8
|
-
const RIGHT_ARROW = '\u25b6';
|
|
9
|
-
const DOWN_ARROW = '\u2b07';
|
|
10
8
|
const DEFAULT_COUNT_FORMATTER = (stat) => `${stat.name}: ${stat.count}`;
|
|
11
9
|
function formatTime(time) {
|
|
12
10
|
return time < 1000 ? `${time.toFixed(2)}ms` : `${(time / 1000).toFixed(2)}s`;
|
|
@@ -36,6 +34,7 @@ export class StatsWidget extends Widget {
|
|
|
36
34
|
};
|
|
37
35
|
this._formatters = { ...DEFAULT_FORMATTERS };
|
|
38
36
|
this._resetOnUpdate = { ...this.props.resetOnUpdate };
|
|
37
|
+
this.collapsed = !props.defaultIsExpanded;
|
|
39
38
|
this.setProps(props);
|
|
40
39
|
}
|
|
41
40
|
setProps(props) {
|
|
@@ -72,7 +71,7 @@ export class StatsWidget extends Widget {
|
|
|
72
71
|
});
|
|
73
72
|
});
|
|
74
73
|
}
|
|
75
|
-
render(_jsxs("div", { className: "deck-widget-stats-container", style: { cursor: 'default' }, children: [_jsxs("div", { className: "deck-widget-stats-header", style: { cursor: 'pointer', pointerEvents: 'auto' }, onClick: this._toggleCollapsed, children: [
|
|
74
|
+
render(_jsxs("div", { className: "deck-widget-stats-container", style: { cursor: 'default' }, children: [_jsxs("div", { className: "deck-widget-stats-header", style: { cursor: 'pointer', pointerEvents: 'auto' }, onClick: this._toggleCollapsed, children: [_jsx("b", { children: title }), _jsx("button", { className: "deck-widget-dropdown-button", children: _jsx("span", { className: `deck-widget-dropdown-icon ${collapsed ? '' : 'open'}` }) })] }), !collapsed && _jsx("div", { className: "deck-widget-stats-content", children: items })] }), rootElement);
|
|
76
75
|
}
|
|
77
76
|
onRedraw() {
|
|
78
77
|
const framesPerUpdate = Math.max(1, this.props.framesPerUpdate || 1);
|
|
@@ -118,6 +117,7 @@ StatsWidget.defaultProps = {
|
|
|
118
117
|
type: 'deck',
|
|
119
118
|
placement: 'top-left',
|
|
120
119
|
viewId: null,
|
|
120
|
+
defaultIsExpanded: false,
|
|
121
121
|
stats: undefined,
|
|
122
122
|
title: 'Stats',
|
|
123
123
|
framesPerUpdate: 1,
|
package/dist/stats-widget.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats-widget.js","sourceRoot":"","sources":["../src/stats-widget.tsx"],"names":[],"mappings":";AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,MAAM,EAAyC,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAC,IAAI,EAAC,MAAM,eAAe,CAAC;AACnC,OAAO,EAAC,MAAM,EAAC,MAAM,QAAQ,CAAC;AAG9B,MAAM,
|
|
1
|
+
{"version":3,"file":"stats-widget.js","sourceRoot":"","sources":["../src/stats-widget.tsx"],"names":[],"mappings":"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"}
|