@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/splitter-widget.js
CHANGED
|
@@ -1,10 +1,93 @@
|
|
|
1
|
-
import { jsx as _jsx } from "preact/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment } from "preact/jsx-runtime";
|
|
2
2
|
// deck.gl
|
|
3
3
|
// SPDX-License-Identifier: MIT
|
|
4
4
|
// Copyright (c) vis.gl contributors
|
|
5
5
|
import { render } from 'preact';
|
|
6
|
-
import { useState, useRef } from 'preact/hooks';
|
|
7
|
-
import { Widget } from '@deck.gl/core';
|
|
6
|
+
import { useState, useRef, useEffect } from 'preact/hooks';
|
|
7
|
+
import { Widget, _deepEqual as deepEqual } from '@deck.gl/core';
|
|
8
|
+
function parseViewLayout(root) {
|
|
9
|
+
const layoutsById = [];
|
|
10
|
+
const isViewLayout = (v) => 'views' in v;
|
|
11
|
+
function createManagedViewLayout(l) {
|
|
12
|
+
const id = layoutsById.length;
|
|
13
|
+
const minSplit = l.minSplit ?? 0.05;
|
|
14
|
+
const maxSplit = l.maxSplit ?? 0.95;
|
|
15
|
+
const split = Math.min(Math.max(l.initialSplit ?? 0.5, minSplit), maxSplit);
|
|
16
|
+
const managed = {
|
|
17
|
+
id,
|
|
18
|
+
orientation: l.orientation,
|
|
19
|
+
views: l.views,
|
|
20
|
+
split,
|
|
21
|
+
editable: l.editable ?? true,
|
|
22
|
+
minSplit,
|
|
23
|
+
maxSplit,
|
|
24
|
+
x: 0,
|
|
25
|
+
y: 0,
|
|
26
|
+
width: 0,
|
|
27
|
+
height: 0
|
|
28
|
+
};
|
|
29
|
+
layoutsById.push(managed);
|
|
30
|
+
managed.views = [
|
|
31
|
+
isViewLayout(l.views[0]) ? createManagedViewLayout(l.views[0]) : l.views[0],
|
|
32
|
+
isViewLayout(l.views[1]) ? createManagedViewLayout(l.views[1]) : l.views[1]
|
|
33
|
+
];
|
|
34
|
+
return managed;
|
|
35
|
+
}
|
|
36
|
+
createManagedViewLayout(root);
|
|
37
|
+
return layoutsById;
|
|
38
|
+
}
|
|
39
|
+
function evaluateViews(root) {
|
|
40
|
+
const views = [];
|
|
41
|
+
function evaluateViewLayout(l, x, y, width, height) {
|
|
42
|
+
l.x = x;
|
|
43
|
+
l.y = y;
|
|
44
|
+
l.width = width;
|
|
45
|
+
l.height = height;
|
|
46
|
+
const child1X = x;
|
|
47
|
+
const child1Y = y;
|
|
48
|
+
let child1Width = width;
|
|
49
|
+
let child1Height = height;
|
|
50
|
+
let child2X = x;
|
|
51
|
+
let child2Y = y;
|
|
52
|
+
let child2Width = width;
|
|
53
|
+
let child2Height = height;
|
|
54
|
+
if (l.orientation === 'horizontal') {
|
|
55
|
+
child1Width = width * l.split;
|
|
56
|
+
child2X = x + child1Width;
|
|
57
|
+
child2Width = width - child1Width;
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
child1Height = height * l.split;
|
|
61
|
+
child2Y = y + child1Height;
|
|
62
|
+
child2Height = height - child1Height;
|
|
63
|
+
}
|
|
64
|
+
const [view1, view2] = l.views;
|
|
65
|
+
if ('views' in view1) {
|
|
66
|
+
evaluateViewLayout(view1, child1X, child1Y, child1Width, child1Height);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
views.push(view1.clone({
|
|
70
|
+
x: `${child1X}%`,
|
|
71
|
+
y: `${child1Y}%`,
|
|
72
|
+
width: `${child1Width}%`,
|
|
73
|
+
height: `${child1Height}%`
|
|
74
|
+
}));
|
|
75
|
+
}
|
|
76
|
+
if ('views' in view2) {
|
|
77
|
+
evaluateViewLayout(view2, child2X, child2Y, child2Width, child2Height);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
views.push(view2.clone({
|
|
81
|
+
x: `${child2X}%`,
|
|
82
|
+
y: `${child2Y}%`,
|
|
83
|
+
width: `${child2Width}%`,
|
|
84
|
+
height: `${child2Height}%`
|
|
85
|
+
}));
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
evaluateViewLayout(root, 0, 0, 100, 100);
|
|
89
|
+
return views;
|
|
90
|
+
}
|
|
8
91
|
/**
|
|
9
92
|
* A draggable splitter widget that appears as a vertical or horizontal line
|
|
10
93
|
* across the deck.gl canvas. It positions itself based on the split percentage
|
|
@@ -15,29 +98,66 @@ export class SplitterWidget extends Widget {
|
|
|
15
98
|
super(props);
|
|
16
99
|
this.className = 'deck-widget-splitter';
|
|
17
100
|
this.placement = 'fill';
|
|
101
|
+
this.needsUpdate = true;
|
|
102
|
+
this.viewLayouts = parseViewLayout(this.props.viewLayout);
|
|
18
103
|
}
|
|
19
104
|
setProps(props) {
|
|
105
|
+
if (props.viewLayout && !deepEqual(props.viewLayout, this.props.viewLayout, -1)) {
|
|
106
|
+
this.viewLayouts = parseViewLayout(props.viewLayout);
|
|
107
|
+
this.views = undefined;
|
|
108
|
+
}
|
|
20
109
|
super.setProps(props);
|
|
21
110
|
}
|
|
111
|
+
onRedraw() {
|
|
112
|
+
// Actually update DOM
|
|
113
|
+
super.updateHTML();
|
|
114
|
+
}
|
|
115
|
+
// Usually widgets rerender their DOM elements here
|
|
116
|
+
// In this case we need the widget UI to synchronize with deck view states
|
|
117
|
+
// so we update deck props here and rerender DOM in the next onRedraw
|
|
118
|
+
updateHTML() {
|
|
119
|
+
if (!this.views) {
|
|
120
|
+
// viewLayouts has changed, re-evaluate
|
|
121
|
+
this.views = evaluateViews(this.viewLayouts[0]);
|
|
122
|
+
// we send a copy to the callback so that externally set views can be differentiated from internal
|
|
123
|
+
this.props.onChange(this.views.slice());
|
|
124
|
+
}
|
|
125
|
+
// This method is called inside deck.setProps > widgetManager.setProps > widget.setProps
|
|
126
|
+
// Calling deck.setProps immediately would cause infinite loop
|
|
127
|
+
requestAnimationFrame(() => {
|
|
128
|
+
this.doUpdate();
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
doUpdate() {
|
|
132
|
+
if (this.deck) {
|
|
133
|
+
const deckViews = this.deck.props.views;
|
|
134
|
+
const isManagedExternally =
|
|
135
|
+
// is not empty
|
|
136
|
+
deckViews &&
|
|
137
|
+
// is not set by us
|
|
138
|
+
deckViews !== this.lastViews;
|
|
139
|
+
if (!isManagedExternally && this.lastViews !== this.views) {
|
|
140
|
+
this.lastViews = this.views;
|
|
141
|
+
this.deck.setProps({ views: this.views });
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
onChange(newSplit, layout) {
|
|
146
|
+
layout.split = newSplit;
|
|
147
|
+
// layout has updated, re-evaluate
|
|
148
|
+
this.views = evaluateViews(this.viewLayouts[0]);
|
|
149
|
+
// we send a copy to the callback so that externally set views can be differentiated from internal
|
|
150
|
+
this.props.onChange(this.views.slice());
|
|
151
|
+
this.doUpdate();
|
|
152
|
+
}
|
|
22
153
|
onRenderHTML(rootElement) {
|
|
23
|
-
|
|
24
|
-
// TODO - Move styling to CSS
|
|
25
|
-
rootElement.style.position = 'absolute';
|
|
26
|
-
rootElement.style.top = '0';
|
|
27
|
-
rootElement.style.left = '0';
|
|
28
|
-
rootElement.style.width = '100%';
|
|
29
|
-
rootElement.style.height = '100%';
|
|
30
|
-
rootElement.style.margin = '0px';
|
|
31
|
-
render(_jsx(Splitter, { orientation: this.props.orientation, initialSplit: this.props.initialSplit, onChange: this.props.onChange, onDragStart: this.props.onDragStart, onDragEnd: this.props.onDragEnd }), rootElement);
|
|
154
|
+
render(_jsx(_Fragment, { children: this.viewLayouts.map(layout => layout.editable && (_jsx(Splitter, { ...layout, onChange: newSplit => this.onChange(newSplit, layout), onDragStart: () => this.props.onDragStart(), onDragEnd: () => this.props.onDragStart() }))) }), rootElement);
|
|
32
155
|
}
|
|
33
156
|
}
|
|
34
157
|
SplitterWidget.defaultProps = {
|
|
35
158
|
...Widget.defaultProps,
|
|
36
159
|
id: 'splitter-widget',
|
|
37
|
-
|
|
38
|
-
viewId2: '',
|
|
39
|
-
orientation: 'vertical',
|
|
40
|
-
initialSplit: 0.5,
|
|
160
|
+
viewLayout: undefined,
|
|
41
161
|
onChange: () => { },
|
|
42
162
|
onDragStart: () => { },
|
|
43
163
|
onDragEnd: () => { }
|
|
@@ -47,75 +167,56 @@ SplitterWidget.defaultProps = {
|
|
|
47
167
|
* It computes its position based on the provided split percentage and
|
|
48
168
|
* updates it during mouse drag events.
|
|
49
169
|
*/
|
|
50
|
-
function Splitter({ orientation,
|
|
51
|
-
const [
|
|
52
|
-
const dragging = useRef(false);
|
|
170
|
+
function Splitter({ orientation, x, y, width, height, split, minSplit, maxSplit, onChange, onDragStart, onDragEnd }) {
|
|
171
|
+
const [dragging, setDragging] = useState(false);
|
|
53
172
|
const containerRef = useRef(null);
|
|
173
|
+
useEffect(() => {
|
|
174
|
+
if (!dragging) {
|
|
175
|
+
return undefined;
|
|
176
|
+
}
|
|
177
|
+
const handleDragging = (event) => {
|
|
178
|
+
if (!containerRef.current)
|
|
179
|
+
return;
|
|
180
|
+
const rect = containerRef.current.getBoundingClientRect();
|
|
181
|
+
let newSplit;
|
|
182
|
+
if (orientation === 'horizontal') {
|
|
183
|
+
newSplit = (event.clientX - rect.left) / rect.width;
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
newSplit = (event.clientY - rect.top) / rect.height;
|
|
187
|
+
}
|
|
188
|
+
// Clamp newSplit between 5% and 95%
|
|
189
|
+
newSplit = Math.min(Math.max(newSplit, minSplit), maxSplit);
|
|
190
|
+
onChange?.(newSplit);
|
|
191
|
+
};
|
|
192
|
+
const handleDragEnd = () => {
|
|
193
|
+
onDragEnd?.();
|
|
194
|
+
setDragging(false);
|
|
195
|
+
};
|
|
196
|
+
document.addEventListener('pointermove', handleDragging);
|
|
197
|
+
document.addEventListener('pointerup', handleDragEnd);
|
|
198
|
+
document.addEventListener('pointerleave', handleDragEnd);
|
|
199
|
+
return () => {
|
|
200
|
+
document.removeEventListener('pointermove', handleDragging);
|
|
201
|
+
document.removeEventListener('pointerup', handleDragEnd);
|
|
202
|
+
document.removeEventListener('pointerleave', handleDragEnd);
|
|
203
|
+
};
|
|
204
|
+
}, [dragging]);
|
|
54
205
|
const handleDragStart = (event) => {
|
|
55
|
-
|
|
206
|
+
setDragging(true);
|
|
56
207
|
onDragStart?.();
|
|
57
|
-
document.addEventListener('mousemove', handleDragging);
|
|
58
|
-
document.addEventListener('mouseup', handleDragEnd);
|
|
59
208
|
event.preventDefault();
|
|
60
209
|
};
|
|
61
|
-
const handleDragging = (event) => {
|
|
62
|
-
if (!dragging.current || !containerRef.current)
|
|
63
|
-
return;
|
|
64
|
-
const rect = containerRef.current.getBoundingClientRect();
|
|
65
|
-
let newSplit;
|
|
66
|
-
if (orientation === 'vertical') {
|
|
67
|
-
newSplit = (event.clientX - rect.left) / rect.width;
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
newSplit = (event.clientY - rect.top) / rect.height;
|
|
71
|
-
}
|
|
72
|
-
// Clamp newSplit between 5% and 95%
|
|
73
|
-
newSplit = Math.min(Math.max(newSplit, 0.05), 0.95);
|
|
74
|
-
setSplit(newSplit);
|
|
75
|
-
onChange?.(newSplit);
|
|
76
|
-
};
|
|
77
|
-
const handleDragEnd = (event) => {
|
|
78
|
-
if (!dragging.current)
|
|
79
|
-
return;
|
|
80
|
-
dragging.current = false;
|
|
81
|
-
onDragEnd?.();
|
|
82
|
-
document.removeEventListener('mousemove', handleDragging);
|
|
83
|
-
document.removeEventListener('mouseup', handleDragEnd);
|
|
84
|
-
};
|
|
85
210
|
// The splitter line style based on orientation and the current split percentage.
|
|
86
|
-
const splitterStyle = orientation === '
|
|
87
|
-
? {
|
|
88
|
-
position: 'absolute',
|
|
89
|
-
top: 0,
|
|
90
|
-
bottom: 0,
|
|
91
|
-
left: `${split * 100}%`,
|
|
92
|
-
width: '4px',
|
|
93
|
-
cursor: 'col-resize',
|
|
94
|
-
background: '#ccc',
|
|
95
|
-
zIndex: 10,
|
|
96
|
-
pointerEvents: 'auto',
|
|
97
|
-
boxShadow: 'inset -1px 0 0 white, inset 1px 0 0 white'
|
|
98
|
-
}
|
|
99
|
-
: {
|
|
100
|
-
position: 'absolute',
|
|
101
|
-
left: 0,
|
|
102
|
-
right: 0,
|
|
103
|
-
top: `${split * 100}%`,
|
|
104
|
-
height: '4px',
|
|
105
|
-
cursor: 'row-resize',
|
|
106
|
-
background: '#ccc',
|
|
107
|
-
zIndex: 10,
|
|
108
|
-
pointerEvents: 'auto',
|
|
109
|
-
boxShadow: 'inset -1px 0 0 white, inset 1px 0 0 white'
|
|
110
|
-
};
|
|
211
|
+
const splitterStyle = orientation === 'horizontal' ? { left: `${split * 100}%` } : { top: `${split * 100}%` };
|
|
111
212
|
// Container style to fill the entire deck.gl canvas.
|
|
112
213
|
const containerStyle = {
|
|
113
214
|
position: 'absolute',
|
|
114
|
-
top:
|
|
115
|
-
left:
|
|
116
|
-
|
|
117
|
-
|
|
215
|
+
top: `${y}%`,
|
|
216
|
+
left: `${x}%`,
|
|
217
|
+
width: `${width}%`,
|
|
218
|
+
height: `${height}%`
|
|
118
219
|
};
|
|
119
|
-
return (_jsx("div", { ref: containerRef, style: containerStyle, children: _jsx("div", { style: splitterStyle,
|
|
220
|
+
return (_jsx("div", { ref: containerRef, style: containerStyle, children: _jsx("div", { className: `deck-widget-splitter-handle deck-widget-splitter-handle--${orientation} ${dragging ? 'active' : ''}`, style: splitterStyle, onPointerDown: handleDragStart }) }));
|
|
120
221
|
}
|
|
121
222
|
//# sourceMappingURL=splitter-widget.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"splitter-widget.js","sourceRoot":"","sources":["../src/splitter-widget.tsx"],"names":[],"mappings":";AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,
|
|
1
|
+
{"version":3,"file":"splitter-widget.js","sourceRoot":"","sources":["../src/splitter-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. */
|
|
@@ -30,11 +34,12 @@ export declare class StatsWidget extends Widget<StatsWidgetProps> {
|
|
|
30
34
|
collapsed: boolean;
|
|
31
35
|
constructor(props?: StatsWidgetProps);
|
|
32
36
|
setProps(props: Partial<StatsWidgetProps>): void;
|
|
33
|
-
|
|
37
|
+
onRemove(): void;
|
|
34
38
|
onRenderHTML(rootElement: HTMLElement): void;
|
|
35
39
|
onRedraw(): void;
|
|
36
40
|
protected _getStats(): Stats | [key: string, value: number][];
|
|
37
41
|
protected _toggleCollapsed: () => void;
|
|
42
|
+
protected _getFps: () => number;
|
|
38
43
|
protected _getLines(stat: Stat | [key: string, value: number]): string;
|
|
39
44
|
}
|
|
40
45
|
//# sourceMappingURL=stats-widget.d.ts.map
|
|
@@ -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;
|
|
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;AAI7E,OAAO,KAAK,EAAC,KAAK,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;AAcjD,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,QAAQ;IAOR,YAAY,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IA6C5C,QAAQ,IAAI,IAAI;IAShB,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,OAAO,QAAO,MAAM,CAG5B;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,8 @@ 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
|
-
|
|
9
|
-
|
|
8
|
+
import { useEffect, useState } from 'preact/hooks';
|
|
9
|
+
import { IconButton } from "./lib/components/icon-button.js";
|
|
10
10
|
const DEFAULT_COUNT_FORMATTER = (stat) => `${stat.name}: ${stat.count}`;
|
|
11
11
|
function formatTime(time) {
|
|
12
12
|
return time < 1000 ? `${time.toFixed(2)}ms` : `${(time / 1000).toFixed(2)}s`;
|
|
@@ -34,8 +34,13 @@ export class StatsWidget extends Widget {
|
|
|
34
34
|
this.collapsed = !this.collapsed;
|
|
35
35
|
this.updateHTML();
|
|
36
36
|
};
|
|
37
|
+
this._getFps = () => {
|
|
38
|
+
// @ts-expect-error metrics is protected
|
|
39
|
+
return Math.round(this.deck?.metrics.fps ?? 0);
|
|
40
|
+
};
|
|
37
41
|
this._formatters = { ...DEFAULT_FORMATTERS };
|
|
38
42
|
this._resetOnUpdate = { ...this.props.resetOnUpdate };
|
|
43
|
+
this.collapsed = !props.defaultIsExpanded;
|
|
39
44
|
this.setProps(props);
|
|
40
45
|
}
|
|
41
46
|
setProps(props) {
|
|
@@ -53,15 +58,22 @@ export class StatsWidget extends Widget {
|
|
|
53
58
|
}
|
|
54
59
|
super.setProps(props);
|
|
55
60
|
}
|
|
56
|
-
|
|
57
|
-
this.
|
|
61
|
+
onRemove() {
|
|
62
|
+
if (this.rootElement) {
|
|
63
|
+
// Make sure all preact hooks are finalized
|
|
64
|
+
render(null, this.rootElement);
|
|
65
|
+
}
|
|
58
66
|
}
|
|
59
67
|
onRenderHTML(rootElement) {
|
|
60
|
-
const stats = this._getStats();
|
|
61
68
|
const collapsed = this.collapsed;
|
|
69
|
+
if (collapsed) {
|
|
70
|
+
render(_jsx(FpsIcon, { getFps: this._getFps, onClick: this._toggleCollapsed }), rootElement);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const stats = this._getStats();
|
|
62
74
|
const title = this.props.title || ('id' in stats ? stats.id : null) || 'Stats';
|
|
63
75
|
const items = [];
|
|
64
|
-
if (
|
|
76
|
+
if (stats) {
|
|
65
77
|
stats.forEach(stat => {
|
|
66
78
|
const lines = this._getLines(stat).split('\n');
|
|
67
79
|
if (this._resetOnUpdate && this._resetOnUpdate[stat.name]) {
|
|
@@ -72,12 +84,14 @@ export class StatsWidget extends Widget {
|
|
|
72
84
|
});
|
|
73
85
|
});
|
|
74
86
|
}
|
|
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: [
|
|
87
|
+
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 open" }) })] }), _jsx("div", { className: "deck-widget-stats-content", children: items })] }), rootElement);
|
|
76
88
|
}
|
|
77
89
|
onRedraw() {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
this.
|
|
90
|
+
if (!this.collapsed) {
|
|
91
|
+
const framesPerUpdate = Math.max(1, this.props.framesPerUpdate || 1);
|
|
92
|
+
if (this._counter++ % framesPerUpdate === 0) {
|
|
93
|
+
this.updateHTML();
|
|
94
|
+
}
|
|
81
95
|
}
|
|
82
96
|
}
|
|
83
97
|
_getStats() {
|
|
@@ -118,6 +132,7 @@ StatsWidget.defaultProps = {
|
|
|
118
132
|
type: 'deck',
|
|
119
133
|
placement: 'top-left',
|
|
120
134
|
viewId: null,
|
|
135
|
+
defaultIsExpanded: false,
|
|
121
136
|
stats: undefined,
|
|
122
137
|
title: 'Stats',
|
|
123
138
|
framesPerUpdate: 1,
|
|
@@ -125,4 +140,18 @@ StatsWidget.defaultProps = {
|
|
|
125
140
|
resetOnUpdate: {},
|
|
126
141
|
id: 'stats'
|
|
127
142
|
};
|
|
143
|
+
function FpsIcon({ getFps, onClick }) {
|
|
144
|
+
const [fps, setFps] = useState(getFps());
|
|
145
|
+
useEffect(() => {
|
|
146
|
+
const onUpdate = () => {
|
|
147
|
+
setFps(getFps());
|
|
148
|
+
timer = requestAnimationFrame(onUpdate);
|
|
149
|
+
};
|
|
150
|
+
let timer = requestAnimationFrame(onUpdate);
|
|
151
|
+
return () => {
|
|
152
|
+
cancelAnimationFrame(timer);
|
|
153
|
+
};
|
|
154
|
+
}, [getFps]);
|
|
155
|
+
return (_jsx(IconButton, { onClick: onClick, children: _jsxs("div", { className: "text", children: ["FPS", _jsx("br", {}), fps] }) }));
|
|
156
|
+
}
|
|
128
157
|
//# sourceMappingURL=stats-widget.js.map
|
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;
|
|
1
|
+
{"version":3,"file":"stats-widget.js","sourceRoot":"","sources":["../src/stats-widget.tsx"],"names":[],"mappings":"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"}
|