@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.
- package/dist/compass-widget.d.ts +12 -0
- package/dist/compass-widget.d.ts.map +1 -1
- package/dist/compass-widget.js +9 -3
- package/dist/compass-widget.js.map +1 -1
- package/dist/dist.dev.js +285 -93
- package/dist/fullscreen-widget.d.ts +5 -0
- package/dist/fullscreen-widget.d.ts.map +1 -1
- package/dist/fullscreen-widget.js +18 -8
- package/dist/fullscreen-widget.js.map +1 -1
- package/dist/geocoder-widget.d.ts +13 -0
- package/dist/geocoder-widget.d.ts.map +1 -1
- package/dist/geocoder-widget.js +13 -1
- package/dist/geocoder-widget.js.map +1 -1
- package/dist/gimbal-widget.d.ts +12 -0
- package/dist/gimbal-widget.d.ts.map +1 -1
- package/dist/gimbal-widget.js +4 -1
- package/dist/gimbal-widget.js.map +1 -1
- package/dist/index.cjs +278 -90
- package/dist/index.cjs.map +3 -3
- package/dist/loading-widget.d.ts +5 -0
- package/dist/loading-widget.d.ts.map +1 -1
- package/dist/loading-widget.js +4 -1
- package/dist/loading-widget.js.map +1 -1
- package/dist/reset-view-widget.d.ts +9 -0
- package/dist/reset-view-widget.d.ts.map +1 -1
- package/dist/reset-view-widget.js +4 -1
- package/dist/reset-view-widget.js.map +1 -1
- package/dist/stats-widget.d.ts +18 -3
- package/dist/stats-widget.d.ts.map +1 -1
- package/dist/stats-widget.js +29 -12
- package/dist/stats-widget.js.map +1 -1
- package/dist/theme-widget.d.ts +20 -2
- package/dist/theme-widget.d.ts.map +1 -1
- package/dist/theme-widget.js +38 -14
- package/dist/theme-widget.js.map +1 -1
- package/dist/timeline-widget.d.ts +34 -3
- package/dist/timeline-widget.d.ts.map +1 -1
- package/dist/timeline-widget.js +98 -24
- package/dist/timeline-widget.js.map +1 -1
- package/dist/zoom-widget.d.ts +22 -1
- package/dist/zoom-widget.d.ts.map +1 -1
- package/dist/zoom-widget.js +62 -15
- package/dist/zoom-widget.js.map +1 -1
- package/dist.min.js +2 -2
- package/package.json +3 -3
- package/src/compass-widget.tsx +23 -3
- package/src/fullscreen-widget.tsx +24 -9
- package/src/geocoder-widget.tsx +23 -1
- package/src/gimbal-widget.tsx +17 -1
- package/src/loading-widget.tsx +11 -1
- package/src/reset-view-widget.tsx +15 -1
- package/src/stats-widget.tsx +43 -14
- package/src/theme-widget.tsx +56 -17
- package/src/timeline-widget.tsx +123 -24
- package/src/zoom-widget.tsx +108 -17
package/dist/loading-widget.d.ts
CHANGED
|
@@ -8,6 +8,11 @@ export type LoadingWidgetProps = WidgetProps & {
|
|
|
8
8
|
viewId?: string | null;
|
|
9
9
|
/** Tooltip message when loading */
|
|
10
10
|
label?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Callback when the loading state changes.
|
|
13
|
+
* Called when layers transition between loading and loaded states.
|
|
14
|
+
*/
|
|
15
|
+
onLoadingChange?: (loading: boolean) => void;
|
|
11
16
|
};
|
|
12
17
|
/**
|
|
13
18
|
* A non-interactive widget that shows a loading spinner if any layers are loading data
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loading-widget.d.ts","sourceRoot":"","sources":["../src/loading-widget.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,eAAe,EAAE,KAAK,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAEvE,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AAGrC,uCAAuC;AACvC,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG;IAC7C,8DAA8D;IAC9D,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"loading-widget.d.ts","sourceRoot":"","sources":["../src/loading-widget.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,eAAe,EAAE,KAAK,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAEvE,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AAGrC,uCAAuC;AACvC,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG;IAC7C,8DAA8D;IAC9D,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAC9C,CAAC;AAEF;;GAEG;AACH,qBAAa,aAAc,SAAQ,MAAM,CAAC,kBAAkB,CAAC;IAC3D,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAO/C;IAEF,SAAS,SAAyB;IAClC,SAAS,EAAE,eAAe,CAAc;IACxC,OAAO,UAAQ;gBAEH,KAAK,GAAE,kBAAuB;IAK1C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,kBAAkB,CAAC;IAM3C,YAAY,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAc5C,QAAQ,CAAC,EAAC,MAAM,EAAC,EAAE;QAAC,MAAM,EAAE,KAAK,EAAE,CAAA;KAAC,GAAG,IAAI;IAa3C,WAAW;CACZ"}
|
package/dist/loading-widget.js
CHANGED
|
@@ -27,6 +27,8 @@ export class LoadingWidget extends Widget {
|
|
|
27
27
|
const loading = layers.some(layer => !layer.isLoaded);
|
|
28
28
|
if (loading !== this.loading) {
|
|
29
29
|
this.loading = loading;
|
|
30
|
+
// Call callback when loading state changes
|
|
31
|
+
this.props.onLoadingChange?.(loading);
|
|
30
32
|
this.updateHTML();
|
|
31
33
|
}
|
|
32
34
|
}
|
|
@@ -38,6 +40,7 @@ LoadingWidget.defaultProps = {
|
|
|
38
40
|
id: 'loading',
|
|
39
41
|
placement: 'top-left',
|
|
40
42
|
viewId: null,
|
|
41
|
-
label: 'Loading layer data'
|
|
43
|
+
label: 'Loading layer data',
|
|
44
|
+
onLoadingChange: () => { }
|
|
42
45
|
};
|
|
43
46
|
//# sourceMappingURL=loading-widget.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loading-widget.js","sourceRoot":"","sources":["../src/loading-widget.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAC,MAAM,EAAC,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAAC,UAAU,EAAC,wCAAqC;
|
|
1
|
+
{"version":3,"file":"loading-widget.js","sourceRoot":"","sources":["../src/loading-widget.tsx"],"names":[],"mappings":";AAKA,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,aAAc,SAAQ,MAA0B;IAc3D,YAAY,QAA4B,EAAE;QACxC,KAAK,CAAC,KAAK,CAAC,CAAC;QALf,cAAS,GAAG,qBAAqB,CAAC;QAClC,cAAS,GAAoB,UAAU,CAAC;QACxC,YAAO,GAAG,IAAI,CAAC;QAIb,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,QAAQ,CAAC,KAAkC;QACzC,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;QACJ,mHAAmH;QACnH,IAAI,CAAC,OAAO,IAAI,CACd,KAAC,UAAU,IACT,SAAS,EAAC,qBAAqB,EAC/B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EACvB,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GACpC,CACH,EACD,WAAW,CACZ,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,EAAC,MAAM,EAAoB;QAClC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACtD,IAAI,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YAEvB,2CAA2C;YAC3C,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,CAAC;YAEtC,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAED,0DAA0D;IAC1D,WAAW,KAAI,CAAC;;AAnDT,0BAAY,GAAiC;IAClD,GAAG,MAAM,CAAC,YAAY;IACtB,EAAE,EAAE,SAAS;IACb,SAAS,EAAE,UAAU;IACrB,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,oBAAoB;IAC3B,eAAe,EAAE,GAAG,EAAE,GAAE,CAAC;CAC1B,AAPkB,CAOjB"}
|
|
@@ -13,6 +13,15 @@ export type ResetViewWidgetProps<ViewsT extends ViewOrViews = null> = WidgetProp
|
|
|
13
13
|
initialViewState?: ViewStateMap<ViewsT>;
|
|
14
14
|
/** View to interact with. Required when using multiple views. */
|
|
15
15
|
viewId?: string | null;
|
|
16
|
+
/**
|
|
17
|
+
* Callback when the reset view button is clicked.
|
|
18
|
+
*/
|
|
19
|
+
onReset?: (params: {
|
|
20
|
+
/** The view being reset */
|
|
21
|
+
viewId: string;
|
|
22
|
+
/** The view state being reset to */
|
|
23
|
+
viewState: Record<string, unknown>;
|
|
24
|
+
}) => void;
|
|
16
25
|
};
|
|
17
26
|
/**
|
|
18
27
|
* A button widget that resets the view state of deck to an initial state.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reset-view-widget.d.ts","sourceRoot":"","sources":["../src/reset-view-widget.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,eAAe,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EAAC,YAAY,EAAE,IAAI,EAAC,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AAGrC,sFAAsF;AACtF,KAAK,WAAW,GAAG,IAAI,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;AAExC,yCAAyC;AACzC,MAAM,MAAM,oBAAoB,CAAC,MAAM,SAAS,WAAW,GAAG,IAAI,IAAI,WAAW,GAAG;IAClF,8DAA8D;IAC9D,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2FAA2F;IAC3F,gBAAgB,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACxC,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"reset-view-widget.d.ts","sourceRoot":"","sources":["../src/reset-view-widget.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,eAAe,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EAAC,YAAY,EAAE,IAAI,EAAC,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AAGrC,sFAAsF;AACtF,KAAK,WAAW,GAAG,IAAI,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;AAExC,yCAAyC;AACzC,MAAM,MAAM,oBAAoB,CAAC,MAAM,SAAS,WAAW,GAAG,IAAI,IAAI,WAAW,GAAG;IAClF,8DAA8D;IAC9D,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2FAA2F;IAC3F,gBAAgB,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACxC,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE;QACjB,2BAA2B;QAC3B,MAAM,EAAE,MAAM,CAAC;QACf,oCAAoC;QACpC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,KAAK,IAAI,CAAC;CACZ,CAAC;AAEF;;GAEG;AACH,qBAAa,eAAe,CAAC,MAAM,SAAS,WAAW,GAAG,IAAI,CAAE,SAAQ,MAAM,CAC5E,oBAAoB,CAAC,MAAM,CAAC,EAC5B,MAAM,CACP;IACC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAQjD;IAEF,SAAS,SAA4B;IACrC,SAAS,EAAE,eAAe,CAAc;gBAE5B,KAAK,GAAE,oBAAoB,CAAC,MAAM,CAAM;IAKpD,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAMrD,YAAY,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAW5C,WAAW;IAKX,cAAc,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC;CAgBhD"}
|
|
@@ -33,6 +33,8 @@ export class ResetViewWidget extends Widget {
|
|
|
33
33
|
// transitionDuration: this.props.transitionDuration,
|
|
34
34
|
// transitionInterpolator: new FlyToInterpolator()
|
|
35
35
|
};
|
|
36
|
+
// Call callback
|
|
37
|
+
this.props.onReset?.({ viewId, viewState: nextViewState });
|
|
36
38
|
this.setViewState(viewId, nextViewState);
|
|
37
39
|
}
|
|
38
40
|
}
|
|
@@ -43,6 +45,7 @@ ResetViewWidget.defaultProps = {
|
|
|
43
45
|
placement: 'top-left',
|
|
44
46
|
label: 'Reset View',
|
|
45
47
|
initialViewState: undefined,
|
|
46
|
-
viewId: null
|
|
48
|
+
viewId: null,
|
|
49
|
+
onReset: () => { }
|
|
47
50
|
};
|
|
48
51
|
//# sourceMappingURL=reset-view-widget.js.map
|
|
@@ -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;
|
|
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;AA0BxD;;GAEG;AACH,MAAM,OAAO,eAAmD,SAAQ,MAGvE;IAcC,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;YAEF,gBAAgB;YAChB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAC,MAAM,EAAE,SAAS,EAAE,aAAwC,EAAC,CAAC,CAAC;YAEpF,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;;AAvDM,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;IACZ,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;CAClB,AARkB,CAQjB"}
|
package/dist/stats-widget.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export type StatsWidgetProps = WidgetProps & {
|
|
|
11
11
|
/** Expand the stats UI by default.
|
|
12
12
|
* @default false
|
|
13
13
|
*/
|
|
14
|
-
|
|
14
|
+
initialExpanded?: boolean;
|
|
15
15
|
/** Stats object to visualize. */
|
|
16
16
|
stats?: Stats;
|
|
17
17
|
/** Title shown in the header of the pop-up. Defaults to stats.id. */
|
|
@@ -22,6 +22,15 @@ export type StatsWidgetProps = WidgetProps & {
|
|
|
22
22
|
formatters?: Record<string, string | ((stat: Stat) => string)>;
|
|
23
23
|
/** Whether to reset particular stats after each update. */
|
|
24
24
|
resetOnUpdate?: Record<string, boolean>;
|
|
25
|
+
/**
|
|
26
|
+
* Controlled expanded state. When provided, the widget is in controlled mode.
|
|
27
|
+
*/
|
|
28
|
+
expanded?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Callback when the expanded state changes (user clicks header).
|
|
31
|
+
* In controlled mode, use this to update the expanded prop.
|
|
32
|
+
*/
|
|
33
|
+
onExpandedChange?: (expanded: boolean) => void;
|
|
25
34
|
};
|
|
26
35
|
/** Displays probe.gl stats in a floating pop-up. */
|
|
27
36
|
export declare class StatsWidget extends Widget<StatsWidgetProps> {
|
|
@@ -31,14 +40,20 @@ export declare class StatsWidget extends Widget<StatsWidgetProps> {
|
|
|
31
40
|
private _counter;
|
|
32
41
|
private _formatters;
|
|
33
42
|
private _resetOnUpdate;
|
|
34
|
-
|
|
43
|
+
private _expanded;
|
|
44
|
+
/**
|
|
45
|
+
* Returns the current expanded state.
|
|
46
|
+
* In controlled mode, returns the expanded prop.
|
|
47
|
+
* In uncontrolled mode, returns the internal state.
|
|
48
|
+
*/
|
|
49
|
+
getExpanded(): boolean;
|
|
35
50
|
constructor(props?: StatsWidgetProps);
|
|
36
51
|
setProps(props: Partial<StatsWidgetProps>): void;
|
|
37
52
|
onRemove(): void;
|
|
38
53
|
onRenderHTML(rootElement: HTMLElement): void;
|
|
39
54
|
onRedraw(): void;
|
|
40
55
|
protected _getStats(): Stats | [key: string, value: number][];
|
|
41
|
-
protected
|
|
56
|
+
protected _toggleExpanded: () => void;
|
|
42
57
|
protected _getFps: () => number;
|
|
43
58
|
protected _getDeviceLabel(): string | null;
|
|
44
59
|
protected _getLines(stat: Stat | [key: string, value: number]): string;
|
|
@@ -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;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,
|
|
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,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,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;IACxC;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;CAChD,CAAC;AAEF,oDAAoD;AACpD,qBAAa,WAAY,SAAQ,MAAM,CAAC,gBAAgB,CAAC;IACvD,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAc7C;IAEF,SAAS,SAAuB;IAChC,SAAS,EAAiB,eAAe,CAAC;IAE1C,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,WAAW,CAAyC;IAC5D,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,SAAS,CAAkB;IAEnC;;;;OAIG;IACH,WAAW,IAAI,OAAO;gBAIV,KAAK,GAAE,gBAAqB;IAQxC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAgBhD,QAAQ;IAOR,YAAY,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IA+C5C,QAAQ,IAAI,IAAI;IAShB,SAAS,CAAC,SAAS,IAAI,KAAK,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE;IAoB7D,SAAS,CAAC,eAAe,QAAO,IAAI,CAYlC;IAEF,SAAS,CAAC,OAAO,QAAO,MAAM,CAG5B;IAEF,SAAS,CAAC,eAAe,IAAI,MAAM,GAAG,IAAI;IAgB1C,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
|
@@ -24,15 +24,30 @@ export const DEFAULT_FORMATTERS = {
|
|
|
24
24
|
};
|
|
25
25
|
/** Displays probe.gl stats in a floating pop-up. */
|
|
26
26
|
export class StatsWidget extends Widget {
|
|
27
|
+
/**
|
|
28
|
+
* Returns the current expanded state.
|
|
29
|
+
* In controlled mode, returns the expanded prop.
|
|
30
|
+
* In uncontrolled mode, returns the internal state.
|
|
31
|
+
*/
|
|
32
|
+
getExpanded() {
|
|
33
|
+
return this.props.expanded ?? this._expanded;
|
|
34
|
+
}
|
|
27
35
|
constructor(props = {}) {
|
|
28
36
|
super(props);
|
|
29
37
|
this.className = 'deck-widget-stats';
|
|
30
38
|
this.placement = 'top-left';
|
|
31
39
|
this._counter = 0;
|
|
32
|
-
this.
|
|
33
|
-
this.
|
|
34
|
-
|
|
35
|
-
|
|
40
|
+
this._expanded = false;
|
|
41
|
+
this._toggleExpanded = () => {
|
|
42
|
+
const nextExpanded = !this.getExpanded();
|
|
43
|
+
// Always call callback if provided
|
|
44
|
+
this.props.onExpandedChange?.(nextExpanded);
|
|
45
|
+
// Only update internal state if uncontrolled
|
|
46
|
+
if (this.props.expanded === undefined) {
|
|
47
|
+
this._expanded = nextExpanded;
|
|
48
|
+
this.updateHTML();
|
|
49
|
+
}
|
|
50
|
+
// In controlled mode, parent will update expanded prop which triggers updateHTML via setProps
|
|
36
51
|
};
|
|
37
52
|
this._getFps = () => {
|
|
38
53
|
// @ts-expect-error metrics is protected
|
|
@@ -40,7 +55,7 @@ export class StatsWidget extends Widget {
|
|
|
40
55
|
};
|
|
41
56
|
this._formatters = { ...DEFAULT_FORMATTERS };
|
|
42
57
|
this._resetOnUpdate = { ...this.props.resetOnUpdate };
|
|
43
|
-
this.
|
|
58
|
+
this._expanded = Boolean(props.initialExpanded);
|
|
44
59
|
this.setProps(props);
|
|
45
60
|
}
|
|
46
61
|
setProps(props) {
|
|
@@ -65,9 +80,9 @@ export class StatsWidget extends Widget {
|
|
|
65
80
|
}
|
|
66
81
|
}
|
|
67
82
|
onRenderHTML(rootElement) {
|
|
68
|
-
const
|
|
69
|
-
if (
|
|
70
|
-
render(_jsx(FpsIcon, { getFps: this._getFps, onClick: this.
|
|
83
|
+
const isExpanded = this.getExpanded();
|
|
84
|
+
if (!isExpanded) {
|
|
85
|
+
render(_jsx(FpsIcon, { getFps: this._getFps, onClick: this._toggleExpanded }), rootElement);
|
|
71
86
|
return;
|
|
72
87
|
}
|
|
73
88
|
const stats = this._getStats();
|
|
@@ -85,10 +100,10 @@ export class StatsWidget extends Widget {
|
|
|
85
100
|
});
|
|
86
101
|
});
|
|
87
102
|
}
|
|
88
|
-
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.
|
|
103
|
+
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._toggleExpanded, children: [_jsx("b", { children: title }), deviceLabel && _jsx("span", { className: "deck-widget-stats-device", children: deviceLabel }), _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);
|
|
89
104
|
}
|
|
90
105
|
onRedraw() {
|
|
91
|
-
if (
|
|
106
|
+
if (this.getExpanded()) {
|
|
92
107
|
const framesPerUpdate = Math.max(1, this.props.framesPerUpdate || 1);
|
|
93
108
|
if (this._counter++ % framesPerUpdate === 0) {
|
|
94
109
|
this.updateHTML();
|
|
@@ -148,13 +163,15 @@ StatsWidget.defaultProps = {
|
|
|
148
163
|
type: 'deck',
|
|
149
164
|
placement: 'top-left',
|
|
150
165
|
viewId: null,
|
|
151
|
-
|
|
166
|
+
initialExpanded: false,
|
|
152
167
|
stats: undefined,
|
|
153
168
|
title: 'Stats',
|
|
154
169
|
framesPerUpdate: 1,
|
|
155
170
|
formatters: {},
|
|
156
171
|
resetOnUpdate: {},
|
|
157
|
-
id: 'stats'
|
|
172
|
+
id: 'stats',
|
|
173
|
+
expanded: undefined,
|
|
174
|
+
onExpandedChange: () => { }
|
|
158
175
|
};
|
|
159
176
|
function FpsIcon({ getFps, onClick }) {
|
|
160
177
|
const [fps, setFps] = useState(getFps());
|
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,
|
|
1
|
+
{"version":3,"file":"stats-widget.js","sourceRoot":"","sources":["../src/stats-widget.tsx"],"names":[],"mappings":"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"}
|
package/dist/theme-widget.d.ts
CHANGED
|
@@ -13,8 +13,19 @@ export type ThemeWidgetProps = WidgetProps & {
|
|
|
13
13
|
darkModeLabel?: string;
|
|
14
14
|
/** Styles for dark mode theme */
|
|
15
15
|
darkModeTheme?: DeckWidgetTheme;
|
|
16
|
-
/** Initial theme mode. 'auto' reads the browser default setting */
|
|
16
|
+
/** Initial theme mode for uncontrolled usage. 'auto' reads the browser default setting */
|
|
17
17
|
initialThemeMode?: 'auto' | 'light' | 'dark';
|
|
18
|
+
/**
|
|
19
|
+
* Controlled theme mode. When provided, the widget is in controlled mode
|
|
20
|
+
* and this prop determines the current theme.
|
|
21
|
+
*/
|
|
22
|
+
themeMode?: 'light' | 'dark';
|
|
23
|
+
/**
|
|
24
|
+
* Callback when the user clicks the theme toggle button.
|
|
25
|
+
* In controlled mode, use this to update the themeMode prop.
|
|
26
|
+
* In uncontrolled mode, this is called after the internal state updates.
|
|
27
|
+
*/
|
|
28
|
+
onThemeModeChange?: (newMode: 'light' | 'dark') => void;
|
|
18
29
|
};
|
|
19
30
|
export declare class ThemeWidget extends Widget<ThemeWidgetProps> {
|
|
20
31
|
static defaultProps: Required<ThemeWidgetProps>;
|
|
@@ -25,8 +36,15 @@ export declare class ThemeWidget extends Widget<ThemeWidgetProps> {
|
|
|
25
36
|
setProps(props: Partial<ThemeWidgetProps>): void;
|
|
26
37
|
onRenderHTML(rootElement: HTMLElement): void;
|
|
27
38
|
onAdd(): void;
|
|
39
|
+
/**
|
|
40
|
+
* Returns the current theme mode.
|
|
41
|
+
* In controlled mode, returns the themeMode prop.
|
|
42
|
+
* In uncontrolled mode, returns the internal state.
|
|
43
|
+
*/
|
|
44
|
+
getThemeMode(): 'light' | 'dark';
|
|
28
45
|
_handleClick(): void;
|
|
29
|
-
|
|
46
|
+
/** Apply theme styling without changing internal state */
|
|
47
|
+
_applyTheme(themeMode: 'light' | 'dark'): void;
|
|
30
48
|
/** Read browser preference */
|
|
31
49
|
_getInitialThemeMode(): 'light' | 'dark';
|
|
32
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-widget.d.ts","sourceRoot":"","sources":["../src/theme-widget.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAC,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAC,MAAM,eAAe,CAAC;AAI7E,OAAO,KAAK,EAAC,eAAe,EAAC,oBAAiB;AAG9C,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,kDAAkD;IAClD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kCAAkC;IAClC,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,mDAAmD;IACnD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,
|
|
1
|
+
{"version":3,"file":"theme-widget.d.ts","sourceRoot":"","sources":["../src/theme-widget.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAC,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAC,MAAM,eAAe,CAAC;AAI7E,OAAO,KAAK,EAAC,eAAe,EAAC,oBAAiB;AAG9C,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,kDAAkD;IAClD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kCAAkC;IAClC,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,mDAAmD;IACnD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,0FAA0F;IAC1F,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAC7C;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC7B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;CACzD,CAAC;AAEF,qBAAa,WAAY,SAAQ,MAAM,CAAC,gBAAgB,CAAC;IACvD,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAY7C;IAEF,SAAS,SAAuB;IAChC,SAAS,EAAE,eAAe,CAAc;IACxC,SAAS,EAAE,OAAO,GAAG,MAAM,CAAU;gBAEzB,KAAK,GAAE,gBAAqB;IAOxC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC;IA8BzC,YAAY,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAc5C,KAAK;IAKL;;;;OAIG;IACH,YAAY,IAAI,OAAO,GAAG,MAAM;IAIhC,YAAY;IAeZ,0DAA0D;IAC1D,WAAW,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM;IAcvC,8BAA8B;IAC9B,oBAAoB,IAAI,OAAO,GAAG,MAAM;CAUzC"}
|
package/dist/theme-widget.js
CHANGED
|
@@ -19,45 +19,67 @@ export class ThemeWidget extends Widget {
|
|
|
19
19
|
}
|
|
20
20
|
// eslint-disable-next-line complexity
|
|
21
21
|
setProps(props) {
|
|
22
|
-
const { lightModeTheme, darkModeTheme } = this.props;
|
|
22
|
+
const { lightModeTheme, darkModeTheme, themeMode: prevThemeMode } = this.props;
|
|
23
23
|
this.placement = props.placement ?? this.placement;
|
|
24
24
|
this.viewId = props.viewId ?? this.viewId;
|
|
25
25
|
super.setProps(props);
|
|
26
|
-
|
|
26
|
+
const currentMode = this.getThemeMode();
|
|
27
|
+
// Handle controlled mode - apply theme when controlled prop changes
|
|
28
|
+
if (props.themeMode !== undefined && props.themeMode !== prevThemeMode) {
|
|
29
|
+
this._applyTheme(props.themeMode);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
switch (currentMode) {
|
|
27
33
|
case 'light':
|
|
28
34
|
if (props.lightModeTheme && !deepEqual(props.lightModeTheme, lightModeTheme, 1)) {
|
|
29
|
-
this.
|
|
35
|
+
this._applyTheme('light');
|
|
30
36
|
}
|
|
31
37
|
break;
|
|
32
38
|
case 'dark':
|
|
33
39
|
if (props.darkModeTheme && !deepEqual(props.darkModeTheme, darkModeTheme, 1)) {
|
|
34
|
-
this.
|
|
40
|
+
this._applyTheme('dark');
|
|
35
41
|
}
|
|
36
42
|
break;
|
|
37
43
|
default:
|
|
38
|
-
log.warn(`Invalid theme mode ${
|
|
44
|
+
log.warn(`Invalid theme mode ${currentMode}`)();
|
|
39
45
|
}
|
|
40
46
|
}
|
|
41
47
|
onRenderHTML(rootElement) {
|
|
42
48
|
const { lightModeLabel, darkModeLabel } = this.props;
|
|
43
|
-
|
|
44
|
-
render(_jsx(IconButton, { onClick: this._handleClick.bind(this), label:
|
|
49
|
+
const currentMode = this.getThemeMode();
|
|
50
|
+
render(_jsx(IconButton, { onClick: this._handleClick.bind(this), label: currentMode === 'dark' ? darkModeLabel : lightModeLabel, className: currentMode === 'dark' ? 'deck-widget-moon' : 'deck-widget-sun' }), rootElement);
|
|
45
51
|
}
|
|
46
52
|
onAdd() {
|
|
47
53
|
// Note: theme styling is applied in here onAdd() once DOM element is created
|
|
48
|
-
this.
|
|
54
|
+
this._applyTheme(this.getThemeMode());
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Returns the current theme mode.
|
|
58
|
+
* In controlled mode, returns the themeMode prop.
|
|
59
|
+
* In uncontrolled mode, returns the internal state.
|
|
60
|
+
*/
|
|
61
|
+
getThemeMode() {
|
|
62
|
+
return this.props.themeMode ?? this.themeMode;
|
|
49
63
|
}
|
|
50
64
|
_handleClick() {
|
|
51
|
-
const
|
|
52
|
-
|
|
65
|
+
const currentMode = this.getThemeMode();
|
|
66
|
+
const nextMode = currentMode === 'dark' ? 'light' : 'dark';
|
|
67
|
+
// Always call callback if provided
|
|
68
|
+
this.props.onThemeModeChange?.(nextMode);
|
|
69
|
+
// Only update internal state if uncontrolled
|
|
70
|
+
if (this.props.themeMode === undefined) {
|
|
71
|
+
this.themeMode = nextMode;
|
|
72
|
+
this._applyTheme(nextMode);
|
|
73
|
+
}
|
|
74
|
+
// In controlled mode, parent will update themeMode prop which triggers _applyTheme via setProps
|
|
53
75
|
}
|
|
54
|
-
|
|
55
|
-
|
|
76
|
+
/** Apply theme styling without changing internal state */
|
|
77
|
+
_applyTheme(themeMode) {
|
|
56
78
|
const container = this.rootElement?.closest('.deck-widget-container');
|
|
57
79
|
if (container) {
|
|
58
80
|
const themeStyle = themeMode === 'dark' ? this.props.darkModeTheme : this.props.lightModeTheme;
|
|
59
81
|
applyStyles(container, themeStyle);
|
|
60
|
-
const label =
|
|
82
|
+
const label = themeMode === 'dark' ? this.props.darkModeLabel : this.props.lightModeLabel;
|
|
61
83
|
log.log(1, `Switched theme to ${label}`, themeStyle)();
|
|
62
84
|
this.updateHTML();
|
|
63
85
|
}
|
|
@@ -83,6 +105,8 @@ ThemeWidget.defaultProps = {
|
|
|
83
105
|
lightModeTheme: LightGlassTheme,
|
|
84
106
|
darkModeLabel: 'Dark Mode',
|
|
85
107
|
darkModeTheme: DarkGlassTheme,
|
|
86
|
-
initialThemeMode: 'auto'
|
|
108
|
+
initialThemeMode: 'auto',
|
|
109
|
+
themeMode: undefined,
|
|
110
|
+
onThemeModeChange: () => { }
|
|
87
111
|
};
|
|
88
112
|
//# sourceMappingURL=theme-widget.js.map
|
package/dist/theme-widget.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-widget.js","sourceRoot":"","sources":["../src/theme-widget.tsx"],"names":[],"mappings":";AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,GAAG,EAAE,UAAU,IAAI,SAAS,EAAE,YAAY,IAAI,WAAW,EAAC,MAAM,eAAe,CAAC;AACxF,OAAO,EAAC,MAAM,EAAyC,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAC,MAAM,EAAC,MAAM,QAAQ,CAAC;AAC9B,4CAA4C;AAC5C,OAAO,EAAC,UAAU,EAAC,wCAAqC;AAExD,OAAO,EAAC,eAAe,EAAE,cAAc,EAAC,oBAAiB;
|
|
1
|
+
{"version":3,"file":"theme-widget.js","sourceRoot":"","sources":["../src/theme-widget.tsx"],"names":[],"mappings":";AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,GAAG,EAAE,UAAU,IAAI,SAAS,EAAE,YAAY,IAAI,WAAW,EAAC,MAAM,eAAe,CAAC;AACxF,OAAO,EAAC,MAAM,EAAyC,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAC,MAAM,EAAC,MAAM,QAAQ,CAAC;AAC9B,4CAA4C;AAC5C,OAAO,EAAC,UAAU,EAAC,wCAAqC;AAExD,OAAO,EAAC,eAAe,EAAE,cAAc,EAAC,oBAAiB;AA8BzD,MAAM,OAAO,WAAY,SAAQ,MAAwB;IAmBvD,YAAY,QAA0B,EAAE;QACtC,KAAK,CAAC,KAAK,CAAC,CAAC;QALf,cAAS,GAAG,mBAAmB,CAAC;QAChC,cAAS,GAAoB,UAAU,CAAC;QACxC,cAAS,GAAqB,MAAM,CAAC;QAInC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,sCAAsC;IACtC,QAAQ,CAAC,KAAgC;QACvC,MAAM,EAAC,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7E,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;QAEtB,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAExC,oEAAoE;QACpE,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,aAAa,EAAE,CAAC;YACvE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QAED,QAAQ,WAAW,EAAE,CAAC;YACpB,KAAK,OAAO;gBACV,IAAI,KAAK,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,EAAE,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC;oBAChF,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAC5B,CAAC;gBACD,MAAM;YACR,KAAK,MAAM;gBACT,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC;oBAC7E,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC3B,CAAC;gBACD,MAAM;YACR;gBACE,GAAG,CAAC,IAAI,CAAC,sBAAsB,WAAW,EAAE,CAAC,EAAE,CAAC;QACpD,CAAC;IACH,CAAC;IAED,YAAY,CAAC,WAAwB;QACnC,MAAM,EAAC,cAAc,EAAE,aAAa,EAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QACnD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAExC,MAAM,CACJ,KAAC,UAAU,IACT,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EACrC,KAAK,EAAE,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,EAC9D,SAAS,EAAE,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,GAC1E,EACF,WAAW,CACZ,CAAC;IACJ,CAAC;IAED,KAAK;QACH,6EAA6E;QAC7E,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;IAChD,CAAC;IAED,YAAY;QACV,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QAE3D,mCAAmC;QACnC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,CAAC;QAEzC,6CAA6C;QAC7C,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACvC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC1B,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC;QACD,gGAAgG;IAClG,CAAC;IAED,0DAA0D;IAC1D,WAAW,CAAC,SAA2B;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,CAAiB,wBAAwB,CAAC,CAAC;QACtF,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,UAAU,GACd,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;YAC9E,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAEnC,MAAM,KAAK,GAAG,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;YAC1F,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,qBAAqB,KAAK,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC;YAEvD,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,oBAAoB;QAClB,MAAM,EAAC,gBAAgB,EAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QACtC,IAAI,gBAAgB,KAAK,MAAM,EAAE,CAAC;YAChC,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QACD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,OAAO,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IACtF,CAAC;;AA3HM,wBAAY,GAA+B;IAChD,GAAG,MAAM,CAAC,YAAY;IACtB,EAAE,EAAE,OAAO;IACX,SAAS,EAAE,UAAU;IACrB,MAAM,EAAE,IAAI;IACZ,cAAc,EAAE,YAAY;IAC5B,cAAc,EAAE,eAAe;IAC/B,aAAa,EAAE,WAAW;IAC1B,aAAa,EAAE,cAAc;IAC7B,gBAAgB,EAAE,MAAM;IACxB,SAAS,EAAE,SAAU;IACrB,iBAAiB,EAAE,GAAG,EAAE,GAAE,CAAC;CAC5B,AAZkB,CAYjB"}
|
|
@@ -13,11 +13,16 @@ export type TimelineWidgetProps = WidgetProps & {
|
|
|
13
13
|
* @default 1
|
|
14
14
|
*/
|
|
15
15
|
step?: number;
|
|
16
|
-
/** Initial slider value.
|
|
16
|
+
/** Initial slider value for uncontrolled usage.
|
|
17
17
|
* @default `timeRange[0]`
|
|
18
18
|
*/
|
|
19
19
|
initialTime?: number;
|
|
20
|
-
/**
|
|
20
|
+
/**
|
|
21
|
+
* Controlled time value. When provided, the widget is in controlled mode
|
|
22
|
+
* for the time slider.
|
|
23
|
+
*/
|
|
24
|
+
time?: number;
|
|
25
|
+
/** Callback when time value changes (via slider or playback). */
|
|
21
26
|
onTimeChange?: (value: number) => void;
|
|
22
27
|
/** Start playing automatically
|
|
23
28
|
* @default false
|
|
@@ -31,6 +36,16 @@ export type TimelineWidgetProps = WidgetProps & {
|
|
|
31
36
|
* @default 1000
|
|
32
37
|
*/
|
|
33
38
|
playInterval?: number;
|
|
39
|
+
/**
|
|
40
|
+
* Controlled playing state. When provided, the widget is in controlled mode
|
|
41
|
+
* for play/pause.
|
|
42
|
+
*/
|
|
43
|
+
playing?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Callback when play/pause button is clicked.
|
|
46
|
+
* In controlled mode, use this to update the playing prop.
|
|
47
|
+
*/
|
|
48
|
+
onPlayingChange?: (playing: boolean) => void;
|
|
34
49
|
/** Callback to get label from time value */
|
|
35
50
|
formatLabel?: (value: number) => string;
|
|
36
51
|
};
|
|
@@ -38,9 +53,21 @@ export declare class TimelineWidget extends Widget<TimelineWidgetProps> {
|
|
|
38
53
|
id: string;
|
|
39
54
|
className: string;
|
|
40
55
|
placement: WidgetPlacement;
|
|
41
|
-
private
|
|
56
|
+
private _playing;
|
|
42
57
|
private timerId;
|
|
43
58
|
currentTime: number;
|
|
59
|
+
/**
|
|
60
|
+
* Returns the current time value.
|
|
61
|
+
* In controlled mode, returns the time prop.
|
|
62
|
+
* In uncontrolled mode, returns the internal state.
|
|
63
|
+
*/
|
|
64
|
+
getTime(): number;
|
|
65
|
+
/**
|
|
66
|
+
* Returns the current playing state.
|
|
67
|
+
* In controlled mode, returns the playing prop.
|
|
68
|
+
* In uncontrolled mode, returns the internal state.
|
|
69
|
+
*/
|
|
70
|
+
getPlaying(): boolean;
|
|
44
71
|
static defaultProps: Required<TimelineWidgetProps>;
|
|
45
72
|
constructor(props?: TimelineWidgetProps);
|
|
46
73
|
setProps(props: Partial<TimelineWidgetProps>): void;
|
|
@@ -51,6 +78,10 @@ export declare class TimelineWidget extends Widget<TimelineWidgetProps> {
|
|
|
51
78
|
private handleTimeChange;
|
|
52
79
|
play(): void;
|
|
53
80
|
stop(): void;
|
|
81
|
+
/** Start the playback timer (used internally) */
|
|
82
|
+
private _startTimer;
|
|
83
|
+
/** Stop the playback timer (used internally) */
|
|
84
|
+
private _stopTimer;
|
|
54
85
|
private tick;
|
|
55
86
|
}
|
|
56
87
|
//# sourceMappingURL=timeline-widget.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeline-widget.d.ts","sourceRoot":"","sources":["../src/timeline-widget.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAAE,KAAK,eAAe,EAAE,KAAK,WAAW,EAAC,MAAM,eAAe,CAAC;AAC7E,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AAK9C,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG;IAC9C,iEAAiE;IACjE,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC3B,mCAAmC;IACnC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,
|
|
1
|
+
{"version":3,"file":"timeline-widget.d.ts","sourceRoot":"","sources":["../src/timeline-widget.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAAE,KAAK,eAAe,EAAE,KAAK,WAAW,EAAC,MAAM,eAAe,CAAC;AAC7E,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AAK9C,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG;IAC9C,iEAAiE;IACjE,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC3B,mCAAmC;IACnC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,4CAA4C;IAC5C,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CACzC,CAAC;AAEF,qBAAa,cAAe,SAAQ,MAAM,CAAC,mBAAmB,CAAC;IAC7D,EAAE,SAAc;IAChB,SAAS,SAA0B;IACnC,SAAS,EAAE,eAAe,CAAU;IAEpC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,OAAO,IAAI,MAAM;IAIjB;;;;OAIG;IACH,UAAU,IAAI,OAAO;IAIrB,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAiBhD;gBAEU,KAAK,GAAE,mBAAwB;IAS3C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,IAAI;IAoBnD,KAAK,IAAI,IAAI;IAab,QAAQ,IAAI,IAAI;IAIhB,YAAY,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IA6C5C,OAAO,CAAC,eAAe,CAgBrB;IAEF,OAAO,CAAC,gBAAgB,CAWtB;IAEK,IAAI,IAAI,IAAI;IAeZ,IAAI,IAAI,IAAI;IAKnB,iDAAiD;IACjD,OAAO,CAAC,WAAW;IAKnB,gDAAgD;IAChD,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,IAAI,CAoCV;CACH"}
|