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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/dist/compass-widget.d.ts +12 -0
  2. package/dist/compass-widget.d.ts.map +1 -1
  3. package/dist/compass-widget.js +9 -3
  4. package/dist/compass-widget.js.map +1 -1
  5. package/dist/dist.dev.js +285 -93
  6. package/dist/fullscreen-widget.d.ts +5 -0
  7. package/dist/fullscreen-widget.d.ts.map +1 -1
  8. package/dist/fullscreen-widget.js +18 -8
  9. package/dist/fullscreen-widget.js.map +1 -1
  10. package/dist/geocoder-widget.d.ts +13 -0
  11. package/dist/geocoder-widget.d.ts.map +1 -1
  12. package/dist/geocoder-widget.js +13 -1
  13. package/dist/geocoder-widget.js.map +1 -1
  14. package/dist/gimbal-widget.d.ts +12 -0
  15. package/dist/gimbal-widget.d.ts.map +1 -1
  16. package/dist/gimbal-widget.js +4 -1
  17. package/dist/gimbal-widget.js.map +1 -1
  18. package/dist/index.cjs +278 -90
  19. package/dist/index.cjs.map +3 -3
  20. package/dist/loading-widget.d.ts +5 -0
  21. package/dist/loading-widget.d.ts.map +1 -1
  22. package/dist/loading-widget.js +4 -1
  23. package/dist/loading-widget.js.map +1 -1
  24. package/dist/reset-view-widget.d.ts +9 -0
  25. package/dist/reset-view-widget.d.ts.map +1 -1
  26. package/dist/reset-view-widget.js +4 -1
  27. package/dist/reset-view-widget.js.map +1 -1
  28. package/dist/stats-widget.d.ts +18 -3
  29. package/dist/stats-widget.d.ts.map +1 -1
  30. package/dist/stats-widget.js +29 -12
  31. package/dist/stats-widget.js.map +1 -1
  32. package/dist/theme-widget.d.ts +20 -2
  33. package/dist/theme-widget.d.ts.map +1 -1
  34. package/dist/theme-widget.js +38 -14
  35. package/dist/theme-widget.js.map +1 -1
  36. package/dist/timeline-widget.d.ts +34 -3
  37. package/dist/timeline-widget.d.ts.map +1 -1
  38. package/dist/timeline-widget.js +98 -24
  39. package/dist/timeline-widget.js.map +1 -1
  40. package/dist/zoom-widget.d.ts +22 -1
  41. package/dist/zoom-widget.d.ts.map +1 -1
  42. package/dist/zoom-widget.js +62 -15
  43. package/dist/zoom-widget.js.map +1 -1
  44. package/dist.min.js +2 -2
  45. package/package.json +3 -3
  46. package/src/compass-widget.tsx +23 -3
  47. package/src/fullscreen-widget.tsx +24 -9
  48. package/src/geocoder-widget.tsx +23 -1
  49. package/src/gimbal-widget.tsx +17 -1
  50. package/src/loading-widget.tsx +11 -1
  51. package/src/reset-view-widget.tsx +15 -1
  52. package/src/stats-widget.tsx +43 -14
  53. package/src/theme-widget.tsx +56 -17
  54. package/src/timeline-widget.tsx +123 -24
  55. package/src/zoom-widget.tsx +108 -17
@@ -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;CAChB,CAAC;AAEF;;GAEG;AACH,qBAAa,aAAc,SAAQ,MAAM,CAAC,kBAAkB,CAAC;IAC3D,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAM/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;IAS3C,WAAW;CACZ"}
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"}
@@ -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;AAYxD;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,MAA0B;IAa3D,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;YACvB,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAED,0DAA0D;IAC1D,WAAW,KAAI,CAAC;;AA9CT,0BAAY,GAAiC;IAClD,GAAG,MAAM,CAAC,YAAY;IACtB,EAAE,EAAE,SAAS;IACb,SAAS,EAAE,UAAU;IACrB,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,oBAAoB;CAC5B,AANkB,CAMjB"}
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;CACxB,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,CAOjD;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;CAYhD"}
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;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"}
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"}
@@ -11,7 +11,7 @@ export type StatsWidgetProps = WidgetProps & {
11
11
  /** Expand the stats UI by default.
12
12
  * @default false
13
13
  */
14
- defaultIsExpanded?: boolean;
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
- collapsed: boolean;
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 _toggleCollapsed: () => void;
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,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;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,gBAAgB,QAAO,IAAI,CAGnC;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"}
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"}
@@ -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.collapsed = true;
33
- this._toggleCollapsed = () => {
34
- this.collapsed = !this.collapsed;
35
- this.updateHTML();
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.collapsed = !props.defaultIsExpanded;
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 collapsed = this.collapsed;
69
- if (collapsed) {
70
- render(_jsx(FpsIcon, { getFps: this._getFps, onClick: this._toggleCollapsed }), rootElement);
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._toggleCollapsed, 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);
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 (!this.collapsed) {
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
- defaultIsExpanded: false,
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());
@@ -1 +1 @@
1
- {"version":3,"file":"stats-widget.js","sourceRoot":"","sources":["../src/stats-widget.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stats-widget.js","sourceRoot":"","sources":["../src/stats-widget.tsx"],"names":[],"mappings":"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"}
@@ -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
- _setThemeMode(themeMode: 'light' | 'dark'): void;
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,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;CAC9C,CAAC;AAEF,qBAAa,WAAY,SAAQ,MAAM,CAAC,gBAAgB,CAAC;IACvD,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAU7C;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;IAsBzC,YAAY,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAc5C,KAAK;IAKL,YAAY;IAKZ,aAAa,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM;IAgBzC,8BAA8B;IAC9B,oBAAoB,IAAI,OAAO,GAAG,MAAM;CAUzC"}
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"}
@@ -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
- switch (this.themeMode) {
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._setThemeMode('light');
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._setThemeMode('dark');
40
+ this._applyTheme('dark');
35
41
  }
36
42
  break;
37
43
  default:
38
- log.warn(`Invalid theme mode ${this.themeMode}`)();
44
+ log.warn(`Invalid theme mode ${currentMode}`)();
39
45
  }
40
46
  }
41
47
  onRenderHTML(rootElement) {
42
48
  const { lightModeLabel, darkModeLabel } = this.props;
43
- // const onClick = useCallback(this._handleClick.bind(this), [this._handleClick]);
44
- render(_jsx(IconButton, { onClick: this._handleClick.bind(this), label: this.themeMode === 'dark' ? darkModeLabel : lightModeLabel, className: this.themeMode === 'dark' ? 'deck-widget-moon' : 'deck-widget-sun' }), rootElement);
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._setThemeMode(this.themeMode);
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 newThemeMode = this.themeMode === 'dark' ? 'light' : 'dark';
52
- this._setThemeMode(newThemeMode);
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
- _setThemeMode(themeMode) {
55
- this.themeMode = themeMode;
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 = this.themeMode === 'dark' ? this.props.darkModeLabel : this.props.lightModeLabel;
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
@@ -1 +1 @@
1
- {"version":3,"file":"theme-widget.js","sourceRoot":"","sources":["../src/theme-widget.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theme-widget.js","sourceRoot":"","sources":["../src/theme-widget.tsx"],"names":[],"mappings":"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"}
@@ -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
- /** Callback when value changes. */
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 playing;
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,mCAAmC;IACnC,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,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,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IAEpB,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAchD;gBAEU,KAAK,GAAE,mBAAwB;IAO3C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,IAAI;IAKnD,KAAK,IAAI,IAAI;IAMb,QAAQ,IAAI,IAAI;IAIhB,YAAY,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IA4C5C,OAAO,CAAC,eAAe,CAMrB;IAEF,OAAO,CAAC,gBAAgB,CAKtB;IAEK,IAAI,IAAI,IAAI;IAaZ,IAAI,IAAI,IAAI;IASnB,OAAO,CAAC,IAAI,CA2BV;CACH"}
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"}