@m4l/gclick 0.11.0-beta-refactor-videojs-v10-player.0 → 0.11.0

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 (68) hide show
  1. package/components/CameraStream/defaults/DefaultPhaseStreaming.d.ts +1 -1
  2. package/components/CameraStream/defaults/DefaultPhaseStreaming.d.ts.map +1 -1
  3. package/components/CameraStreams/CameraStreamPlayersContext.d.ts +12 -20
  4. package/components/CameraStreams/CameraStreamPlayersContext.d.ts.map +1 -1
  5. package/components/CameraStreams/CameraStreamsProvider.d.ts +1 -1
  6. package/components/CameraStreams/CameraStreamsProvider.d.ts.map +1 -1
  7. package/components/CameraStreams/CameraStreamsProvider.js +16 -18
  8. package/components/CameraStreams/createCameraStreamPlayersRegistry.d.ts.map +1 -1
  9. package/components/CameraStreams/createCameraStreamPlayersRegistry.js +6 -16
  10. package/components/CameraStreams/types.d.ts +4 -11
  11. package/components/CameraStreams/types.d.ts.map +1 -1
  12. package/components/CameraStreams/useCameraStreamPlayers.d.ts +0 -4
  13. package/components/CameraStreams/useCameraStreamPlayers.d.ts.map +1 -1
  14. package/components/CameraStreams/useCameraStreamPlayers.js +18 -15
  15. package/components/GaugeCircular/GaugeCircular.js +16 -16
  16. package/components/GaugeCircular/types.d.ts +4 -0
  17. package/components/GaugeCircular/types.d.ts.map +1 -1
  18. package/components/VideoPlayer/VideoPlayer.d.ts +23 -30
  19. package/components/VideoPlayer/VideoPlayer.d.ts.map +1 -1
  20. package/components/VideoPlayer/VideoPlayer.js +256 -33
  21. package/components/VideoPlayer/VideoPlayer.styles.d.ts +7 -8
  22. package/components/VideoPlayer/VideoPlayer.styles.d.ts.map +1 -1
  23. package/components/VideoPlayer/VideoPlayer.styles.js +31 -9
  24. package/components/VideoPlayer/constants.d.ts +15 -11
  25. package/components/VideoPlayer/constants.d.ts.map +1 -1
  26. package/components/VideoPlayer/constants.js +15 -4
  27. package/components/VideoPlayer/index.d.ts +3 -3
  28. package/components/VideoPlayer/index.d.ts.map +1 -1
  29. package/components/VideoPlayer/slots/VideoPlayerSlots.d.ts +3 -5
  30. package/components/VideoPlayer/slots/VideoPlayerSlots.d.ts.map +1 -1
  31. package/components/VideoPlayer/slots/VideoPlayerSlots.js +12 -8
  32. package/components/VideoPlayer/slots/slots.d.ts +2 -2
  33. package/components/VideoPlayer/slots/slots.d.ts.map +1 -1
  34. package/components/VideoPlayer/slots/slots.js +1 -1
  35. package/components/VideoPlayer/types.d.ts +101 -65
  36. package/components/VideoPlayer/types.d.ts.map +1 -1
  37. package/components/VideoPlayer/utils.d.ts +6 -15
  38. package/components/VideoPlayer/utils.d.ts.map +1 -1
  39. package/components/VideoPlayer/utils.js +1 -5
  40. package/components/VideoTimeLineSelector/store/VideoTimeLineSelectorContext.d.ts.map +1 -1
  41. package/components/VideoTimeLineSelector/subcomponents/ChartTimeLine/ChartTimeLine.d.ts.map +1 -1
  42. package/components/indicators/IndicatorBattery/IndicatorBattery.d.ts.map +1 -1
  43. package/components/indicators/IndicatorBattery/IndicatorBattery.js +73 -66
  44. package/components/maps/components/GpsMap/constants.d.ts +1 -1
  45. package/components/maps/components/GpsMap/constants.js +1 -1
  46. package/index.js +27 -27
  47. package/package.json +4 -4
  48. package/components/CameraStreams/subcomponents/CameraStreamsSuspensionController.d.ts +0 -18
  49. package/components/CameraStreams/subcomponents/CameraStreamsSuspensionController.d.ts.map +0 -1
  50. package/components/CameraStreams/subcomponents/CameraStreamsSuspensionController.js +0 -35
  51. package/components/VideoPlayer/hlsConfig.d.ts +0 -20
  52. package/components/VideoPlayer/hlsConfig.d.ts.map +0 -1
  53. package/components/VideoPlayer/hlsConfig.js +0 -19
  54. package/components/VideoPlayer/hooks/usePlayerControl.d.ts +0 -12
  55. package/components/VideoPlayer/hooks/usePlayerControl.d.ts.map +0 -1
  56. package/components/VideoPlayer/hooks/usePlayerControl.js +0 -78
  57. package/components/VideoPlayer/hooks/usePlayerEvents.d.ts +0 -25
  58. package/components/VideoPlayer/hooks/usePlayerEvents.d.ts.map +0 -1
  59. package/components/VideoPlayer/hooks/usePlayerEvents.js +0 -18
  60. package/components/VideoPlayer/player.factory.d.ts +0 -32
  61. package/components/VideoPlayer/player.factory.d.ts.map +0 -1
  62. package/components/VideoPlayer/player.factory.js +0 -8
  63. package/components/VideoPlayer/subcomponents/GclickVideoSkin.d.ts +0 -20
  64. package/components/VideoPlayer/subcomponents/GclickVideoSkin.d.ts.map +0 -1
  65. package/components/VideoPlayer/subcomponents/GclickVideoSkin.js +0 -187
  66. package/components/VideoPlayer/subcomponents/VideoPlayerStage.d.ts +0 -27
  67. package/components/VideoPlayer/subcomponents/VideoPlayerStage.d.ts.map +0 -1
  68. package/components/VideoPlayer/subcomponents/VideoPlayerStage.js +0 -61
@@ -22,7 +22,7 @@ import { CameraStreamPhaseStreamingSlotProps } from '../types';
22
22
  * the consumer can override only a badge (via `slots.liveBadge` /
23
23
  * `slots.replayBadge`) without rewriting this whole component.
24
24
  *
25
- * Registers its `VideoPlayerControl` in the `CameraStreamPlayersRegistry` while
25
+ * Registers its `VideoPlayerHandle` in the `CameraStreamPlayersRegistry` while
26
26
  * mounted, so `useCameraStreamPlayers()` can drive this player's transport
27
27
  * (pause / mute / fullscreen / snapshot) from outside the slot. The
28
28
  * registration is null-safe: if the slot is rendered without a provider (e.g.
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultPhaseStreaming.d.ts","sourceRoot":"","sources":["../../../../../../../packages/gclick/src/components/CameraStream/defaults/DefaultPhaseStreaming.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,UAAU,CAAC;AAcpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,SAAS,EACT,MAAM,EACN,IAAI,EACJ,KAAK,EACL,OAAO,EACP,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,eAAe,GAChB,EAAE,mCAAmC,oDAyFrC"}
1
+ {"version":3,"file":"DefaultPhaseStreaming.d.ts","sourceRoot":"","sources":["../../../../../../../packages/gclick/src/components/CameraStream/defaults/DefaultPhaseStreaming.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,UAAU,CAAC;AAcpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,SAAS,EACT,MAAM,EACN,IAAI,EACJ,KAAK,EACL,OAAO,EACP,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,eAAe,GAChB,EAAE,mCAAmC,oDAsFrC"}
@@ -1,34 +1,26 @@
1
- import { VideoPlayerControl } from '../VideoPlayer/types';
1
+ import { VideoPlayerHandle } from '../VideoPlayer/types';
2
2
  import { PlayerKey } from './types';
3
3
  /**
4
- * Imperative registry of live {@link VideoPlayerControl}s keyed by `PlayerKey`.
4
+ * Imperative registry of live `VideoPlayerHandle`s keyed by `PlayerKey`.
5
5
  *
6
- * Kept OUTSIDE the Zustand store on purpose: a control is a mutable adapter
7
- * over a video.js v10 player store, not serializable FSM state. Putting it in
8
- * the store would break the devtools/immer "state is serializable" invariant
9
- * and blur the SRP boundary (store = coordination/FSM, registry = video
10
- * transport).
6
+ * Kept OUTSIDE the Zustand store on purpose: a handle is a mutable,
7
+ * video.js-bound object, not serializable FSM state. Putting it in the store
8
+ * would break the devtools/immer "state is serializable" invariant and blur
9
+ * the SRP boundary (store = coordination/FSM, registry = video transport).
11
10
  *
12
- * The default `phaseStreaming` slot registers its control on mount and
11
+ * The default `phaseStreaming` slot registers its handle on mount and
13
12
  * unregisters on unmount, so external imperative control works without the
14
13
  * consumer overriding any slot.
15
14
  */
16
15
  export interface CameraStreamPlayersRegistry {
17
- /** Register (or replace) the control for a player key. */
18
- register(key: PlayerKey, control: VideoPlayerControl): void;
19
- /** Remove the control for a player key (called on unmount). */
16
+ /** Register (or replace) the handle for a player key. */
17
+ register(key: PlayerKey, handle: VideoPlayerHandle): void;
18
+ /** Remove the handle for a player key (called on unmount). */
20
19
  unregister(key: PlayerKey): void;
21
- /** Resolve the control for a player key, or `null` when not registered. */
22
- get(key: PlayerKey): VideoPlayerControl | null;
20
+ /** Resolve the handle for a player key, or `null` when not registered. */
21
+ get(key: PlayerKey): VideoPlayerHandle | null;
23
22
  /** Every currently-registered player key. */
24
23
  keys(): PlayerKey[];
25
- /**
26
- * Subscribe to registration changes (a control registered or unregistered).
27
- * Returns an unsubscribe function. Lets the suspension coordinator catch
28
- * players that start streaming *after* the subtree was already suspended (an
29
- * in-flight request resolving while hidden), which a one-shot snapshot misses.
30
- */
31
- subscribe(listener: () => void): () => void;
32
24
  }
33
25
  /**
34
26
  * Context carrying the scoped registry down the tree. Mirrors the
@@ -1 +1 @@
1
- {"version":3,"file":"CameraStreamPlayersContext.d.ts","sourceRoot":"","sources":["../../../../../../packages/gclick/src/components/CameraStreams/CameraStreamPlayersContext.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,2BAA2B;IAC1C,0DAA0D;IAC1D,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC5D,+DAA+D;IAC/D,UAAU,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;IACjC,2EAA2E;IAC3E,GAAG,CAAC,GAAG,EAAE,SAAS,GAAG,kBAAkB,GAAG,IAAI,CAAC;IAC/C,6CAA6C;IAC7C,IAAI,IAAI,SAAS,EAAE,CAAC;IACpB;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;CAC7C;AAED;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,6DACkB,CAAC"}
1
+ {"version":3,"file":"CameraStreamPlayersContext.d.ts","sourceRoot":"","sources":["../../../../../../packages/gclick/src/components/CameraStreams/CameraStreamPlayersContext.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,2BAA2B;IAC1C,yDAAyD;IACzD,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC1D,8DAA8D;IAC9D,UAAU,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;IACjC,0EAA0E;IAC1E,GAAG,CAAC,GAAG,EAAE,SAAS,GAAG,iBAAiB,GAAG,IAAI,CAAC;IAC9C,6CAA6C;IAC7C,IAAI,IAAI,SAAS,EAAE,CAAC;CACrB;AAED;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,6DACkB,CAAC"}
@@ -9,7 +9,7 @@ import { CameraStreamsProviderProps } from './types';
9
9
  * and call `useCameraStreams()` from any descendant.
10
10
  *
11
11
  * Alongside the store it provides a `CameraStreamPlayersRegistry` (a separate
12
- * ref-based map of live `VideoPlayerControl`s). The default `phaseStreaming`
12
+ * ref-based map of live `VideoPlayerHandle`s). The default `phaseStreaming`
13
13
  * slot registers into it, so `useCameraStreamPlayers()` can drive the video
14
14
  * transport (pause / mute / fullscreen / snapshot) from outside the slot.
15
15
  */
@@ -1 +1 @@
1
- {"version":3,"file":"CameraStreamsProvider.d.ts","sourceRoot":"","sources":["../../../../../../packages/gclick/src/components/CameraStreams/CameraStreamsProvider.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAE1D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,oDAkCtE"}
1
+ {"version":3,"file":"CameraStreamsProvider.d.ts","sourceRoot":"","sources":["../../../../../../packages/gclick/src/components/CameraStreams/CameraStreamsProvider.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAE1D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,oDAiCtE"}
@@ -1,29 +1,27 @@
1
- import { jsx as t, jsxs as c } from "@emotion/react/jsx-runtime";
1
+ import { jsx as t, jsxs as l } from "@emotion/react/jsx-runtime";
2
2
  import { useRef as o } from "react";
3
- import { useModuleDictionary as f } from "@m4l/core";
4
- import { resolveCameraStreamsDictionaryLabels as u } from "./dictionary.js";
5
- import { CameraStreamsContext as p } from "./CameraStreamsContext.js";
6
- import { CameraStreamPlayersContext as C } from "./CameraStreamPlayersContext.js";
7
- import { createCameraStreamsStore as S } from "./store.js";
8
- import { createCameraStreamPlayersRegistry as d } from "./createCameraStreamPlayersRegistry.js";
9
- import { CameraStreamsEngine as y } from "./subcomponents/CameraStreamsEngine.js";
10
- import { CameraStreamsSuspensionController as v } from "./subcomponents/CameraStreamsSuspensionController.js";
11
- function M(a) {
12
- const { children: m, labels: s, suspended: i = !1, ...n } = a, { getLabel: l } = f(), r = o(null);
13
- r.current || (r.current = S({
3
+ import { useModuleDictionary as c } from "@m4l/core";
4
+ import { resolveCameraStreamsDictionaryLabels as f } from "./dictionary.js";
5
+ import { CameraStreamsContext as u } from "./CameraStreamsContext.js";
6
+ import { CameraStreamPlayersContext as p } from "./CameraStreamPlayersContext.js";
7
+ import { createCameraStreamsStore as C } from "./store.js";
8
+ import { createCameraStreamPlayersRegistry as S } from "./createCameraStreamPlayersRegistry.js";
9
+ import { CameraStreamsEngine as d } from "./subcomponents/CameraStreamsEngine.js";
10
+ function D(a) {
11
+ const { children: m, labels: i, ...n } = a, { getLabel: s } = c(), r = o(null);
12
+ r.current || (r.current = C({
14
13
  ...n,
15
14
  labels: {
16
- ...u(l),
17
- ...s ?? {}
15
+ ...f(s),
16
+ ...i ?? {}
18
17
  }
19
18
  }));
20
19
  const e = o(null);
21
- return e.current || (e.current = d()), /* @__PURE__ */ t(p.Provider, { value: r.current, children: /* @__PURE__ */ c(C.Provider, { value: e.current, children: [
22
- /* @__PURE__ */ t(y, {}),
23
- /* @__PURE__ */ t(v, { suspended: i }),
20
+ return e.current || (e.current = S()), /* @__PURE__ */ t(u.Provider, { value: r.current, children: /* @__PURE__ */ l(p.Provider, { value: e.current, children: [
21
+ /* @__PURE__ */ t(d, {}),
24
22
  m
25
23
  ] }) });
26
24
  }
27
25
  export {
28
- M as CameraStreamsProvider
26
+ D as CameraStreamsProvider
29
27
  };
@@ -1 +1 @@
1
- {"version":3,"file":"createCameraStreamPlayersRegistry.d.ts","sourceRoot":"","sources":["../../../../../../packages/gclick/src/components/CameraStreams/createCameraStreamPlayersRegistry.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAIhF;;;GAGG;AACH,wBAAgB,iCAAiC,IAAI,2BAA2B,CAkC/E"}
1
+ {"version":3,"file":"createCameraStreamPlayersRegistry.d.ts","sourceRoot":"","sources":["../../../../../../packages/gclick/src/components/CameraStreams/createCameraStreamPlayersRegistry.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAIhF;;;GAGG;AACH,wBAAgB,iCAAiC,IAAI,2BAA2B,CAgB/E"}
@@ -1,30 +1,20 @@
1
- function o() {
2
- const r = /* @__PURE__ */ new Map(), t = /* @__PURE__ */ new Set(), n = () => {
3
- t.forEach((e) => e());
4
- };
1
+ function n() {
2
+ const r = /* @__PURE__ */ new Map();
5
3
  return {
6
- /** Store (or replace) the control for a key and notify subscribers. */
7
- register(e, s) {
8
- r.set(e, s), n();
4
+ register(e, t) {
5
+ r.set(e, t);
9
6
  },
10
- /** Drop the control for a key and notify subscribers. */
11
7
  unregister(e) {
12
- r.delete(e), n();
8
+ r.delete(e);
13
9
  },
14
10
  get(e) {
15
11
  return r.get(e) ?? null;
16
12
  },
17
13
  keys() {
18
14
  return Array.from(r.keys());
19
- },
20
- /** Register a change listener; returns a function that removes it. */
21
- subscribe(e) {
22
- return t.add(e), () => {
23
- t.delete(e);
24
- };
25
15
  }
26
16
  };
27
17
  }
28
18
  export {
29
- o as createCameraStreamPlayersRegistry
19
+ n as createCameraStreamPlayersRegistry
30
20
  };
@@ -1,5 +1,6 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { ChannelType } from '../VideoTimeLineSelector/types';
3
+ import { VideoPlayerHandle } from '../VideoPlayer/types';
3
4
  /**
4
5
  * String identifier reused as the per-channel key. Mirrors `ChannelType['id']`
5
6
  * so consumers can index without conversion. A channel is one transport stream
@@ -264,16 +265,6 @@ export interface CameraStreamsStoreInitProps extends Omit<InitialCameraStreamsSt
264
265
  /** Provider props — init slice + React children. */
265
266
  export interface CameraStreamsProviderProps extends InitialCameraStreamsStoreProps {
266
267
  children: ReactNode;
267
- /**
268
- * Soft-suspend the provider while the subtree is hidden (e.g. behind an
269
- * inactive tab kept alive via `display:none`). When it flips to `true` the
270
- * playing clips are paused — freeing video decode — while their state, the
271
- * store and the DOM stay intact; flipping back to `false` resumes exactly the
272
- * clips that were playing. Idle/ended/user-paused players are left untouched.
273
- * Defaults to `false` (no suspension). Tab-agnostic: callers map their own
274
- * visibility (`suspended={!isActive}`).
275
- */
276
- suspended?: boolean;
277
268
  }
278
269
  /**
279
270
  * Public surface of `useCameraStreams()`. Selectors live on the headless hook
@@ -287,7 +278,7 @@ export interface UseCameraStreamsResult {
287
278
  }
288
279
  /**
289
280
  * Live playback status of one player, derived on demand from its
290
- * `VideoPlayerControl`. Distinct from the FSM `phase` (which describes the
281
+ * `VideoPlayerHandle`. Distinct from the FSM `phase` (which describes the
291
282
  * request lifecycle) — this reflects the `<video>` element transport state.
292
283
  */
293
284
  export interface CameraStreamPlaybackState {
@@ -326,6 +317,8 @@ export interface UseCameraStreamPlayersResult {
326
317
  snapshot(key: PlayerKey): string | null;
327
318
  /** Read the live playback status of one player, or `null` when not streaming. */
328
319
  getPlaybackState(key: PlayerKey): CameraStreamPlaybackState | null;
320
+ /** Escape hatch: the raw `VideoPlayerHandle` of one player, or `null`. */
321
+ getHandle(key: PlayerKey): VideoPlayerHandle | null;
329
322
  }
330
323
  /**
331
324
  * Compose a stable `PlayerKey` from its components. Centralised so producers
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../packages/gclick/src/components/CameraStreams/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../packages/gclick/src/components/CameraStreams/types.ts"],"names":[],"mappings":"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"}
@@ -6,10 +6,6 @@ import { UseCameraStreamPlayersResult } from './types';
6
6
  * (`pause / mute / seek / fullscreen / snapshot`) of players that are already
7
7
  * streaming — without the consumer overriding the `phaseStreaming` slot.
8
8
  *
9
- * Each registered player is a {@link VideoPlayerControl} — a thin adapter over
10
- * the player's video.js v10 store — so every action below dispatches a store
11
- * action under the hood.
12
- *
13
9
  * Bulk-able mutations accept an optional `keys` array: omit it to act on every
14
10
  * registered player, or pass a subset to scope the action.
15
11
  *
@@ -1 +1 @@
1
- {"version":3,"file":"useCameraStreamPlayers.d.ts","sourceRoot":"","sources":["../../../../../../packages/gclick/src/components/CameraStreams/useCameraStreamPlayers.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAa,4BAA4B,EAAE,MAAM,SAAS,CAAC;AAEvE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,IAAI,4BAA4B,CA+DrE"}
1
+ {"version":3,"file":"useCameraStreamPlayers.d.ts","sourceRoot":"","sources":["../../../../../../packages/gclick/src/components/CameraStreams/useCameraStreamPlayers.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAa,4BAA4B,EAAE,MAAM,SAAS,CAAC;AAEvE;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,IAAI,4BAA4B,CAkErE"}
@@ -1,13 +1,13 @@
1
- import { useContext as u, useMemo as i } from "react";
1
+ import { useContext as u, useMemo as n } from "react";
2
2
  import { CameraStreamPlayersContext as o } from "./CameraStreamPlayersContext.js";
3
3
  function c() {
4
- const s = u(o);
5
- if (!s)
4
+ const r = u(o);
5
+ if (!r)
6
6
  throw new Error(
7
7
  "useCameraStreamPlayers must be used inside a <CameraStreamsProvider>."
8
8
  );
9
- return i(() => {
10
- const a = (e) => (e ?? s.keys()).map((r) => s.get(r)).filter((r) => r !== null);
9
+ return n(() => {
10
+ const a = (e) => (e ?? r.keys()).map((s) => r.get(s)).filter((s) => s !== null);
11
11
  return {
12
12
  pause(e) {
13
13
  a(e).forEach((t) => t.pause());
@@ -16,37 +16,40 @@ function c() {
16
16
  await Promise.all(a(e).map((t) => t.play()));
17
17
  },
18
18
  setMuted(e, t) {
19
- a(t).forEach((r) => r.setMuted(e));
19
+ a(t).forEach((s) => s.setMuted(e));
20
20
  },
21
21
  toggleMuted(e) {
22
- a(e).forEach((t) => t.setMuted(!t.isMuted()));
22
+ a(e).forEach((t) => t.setMuted(!t.getMuted()));
23
23
  },
24
24
  seek(e, t) {
25
- a(t).forEach((r) => r.seek(e));
25
+ a(t).forEach((s) => s.seek(e));
26
26
  },
27
27
  setPlaybackRate(e, t) {
28
- a(t).forEach((r) => r.setPlaybackRate(e));
28
+ a(t).forEach((s) => s.setPlaybackRate(e));
29
29
  },
30
30
  requestFullscreen(e) {
31
- return s.get(e)?.requestFullscreen() ?? Promise.resolve();
31
+ return r.get(e)?.requestFullscreen() ?? Promise.resolve();
32
32
  },
33
33
  requestPictureInPicture(e) {
34
- return s.get(e)?.requestPictureInPicture() ?? Promise.resolve();
34
+ return r.get(e)?.requestPictureInPicture() ?? Promise.resolve();
35
35
  },
36
36
  snapshot(e) {
37
- return s.get(e)?.snapshot() ?? null;
37
+ return r.get(e)?.snapshot() ?? null;
38
38
  },
39
39
  /** Read the live mute/pause/live status of one player, or null when absent. */
40
40
  getPlaybackState(e) {
41
- const t = s.get(e);
41
+ const t = r.get(e);
42
42
  return t ? {
43
- isMuted: t.isMuted(),
43
+ isMuted: t.getMuted(),
44
44
  isPaused: t.isPaused(),
45
45
  isLive: t.isLive()
46
46
  } : null;
47
+ },
48
+ getHandle(e) {
49
+ return r.get(e);
47
50
  }
48
51
  };
49
- }, [s]);
52
+ }, [r]);
50
53
  }
51
54
  export {
52
55
  c as useCameraStreamPlayers
@@ -1,28 +1,28 @@
1
- import { jsxs as t, jsx as r } from "@emotion/react/jsx-runtime";
2
- import { useModuleSkeleton as u } from "@m4l/core";
3
- import { GAUGE_CIRCULAR_CLASSES as m } from "./constants.js";
4
- import { GaugeFullCircleRootStyled as s, GaugeFullCircleCircularBgStyled as c, GaugeFullCircleInnerStyled as n } from "./slots/GaugeCircularSlots.js";
5
- import C from "clsx";
6
- import { CircularProgress as S } from "./subcomponents/CircularProgress/CircularProgress.js";
7
- const h = (l) => {
8
- const { value: a, children: o, className: i } = l, e = u() ? 0 : Math.max(0, Math.min(100, a));
9
- return /* @__PURE__ */ t(
10
- s,
1
+ import { jsxs as u, jsx as r } from "@emotion/react/jsx-runtime";
2
+ import { useModuleSkeleton as m } from "@m4l/core";
3
+ import { GAUGE_CIRCULAR_CLASSES as s } from "./constants.js";
4
+ import { GaugeFullCircleRootStyled as c, GaugeFullCircleCircularBgStyled as n, GaugeFullCircleInnerStyled as C } from "./slots/GaugeCircularSlots.js";
5
+ import S from "clsx";
6
+ import { CircularProgress as g } from "./subcomponents/CircularProgress/CircularProgress.js";
7
+ const b = (a) => {
8
+ const { value: l, ariaLabel: o = "GaugeCircular", children: i, className: t } = a, e = m() ? 0 : Math.max(0, Math.min(100, l));
9
+ return /* @__PURE__ */ u(
10
+ c,
11
11
  {
12
12
  role: "progressbar",
13
- "aria-label": "GaugeCircular",
13
+ "aria-label": o,
14
14
  "aria-valuenow": e,
15
15
  "aria-valuemin": 0,
16
16
  "aria-valuemax": 100,
17
- className: C(m.root, i),
17
+ className: S(s.root, t),
18
18
  children: [
19
- /* @__PURE__ */ r(c, {}),
20
- /* @__PURE__ */ r(S, { value: e }),
21
- /* @__PURE__ */ r(n, { children: o })
19
+ /* @__PURE__ */ r(n, {}),
20
+ /* @__PURE__ */ r(g, { value: e }),
21
+ /* @__PURE__ */ r(C, { children: i })
22
22
  ]
23
23
  }
24
24
  );
25
25
  };
26
26
  export {
27
- h as GaugeCircular
27
+ b as GaugeCircular
28
28
  };
@@ -7,6 +7,10 @@ export interface GaugeCircularProps {
7
7
  * Porcentaje de la barra, debe ser un número entre 0 y 100
8
8
  */
9
9
  value: number;
10
+ /**
11
+ * Etiqueta accesible expuesta por el progressbar
12
+ */
13
+ ariaLabel?: string;
10
14
  /**
11
15
  * Clase para el contenedor del gauge
12
16
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../packages/gclick/src/components/GaugeCircular/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,MAAM,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAEzC,MAAM,MAAM,sBAAsB,GAAG,MAAM,OAAO,kBAAkB,CAAC;AAErE,MAAM,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,sBAAsB,EAAE,OAAO,4BAA4B,EAAE,KAAK,CAAC,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../packages/gclick/src/components/GaugeCircular/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,MAAM,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAEzC,MAAM,MAAM,sBAAsB,GAAG,MAAM,OAAO,kBAAkB,CAAC;AAErE,MAAM,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,sBAAsB,EAAE,OAAO,4BAA4B,EAAE,KAAK,CAAC,CAAA"}
@@ -1,37 +1,30 @@
1
1
  import { VideoPlayerProps } from './types';
2
2
  /**
3
- * HLS-capable video player built on video.js v10 (`@videojs/react`).
3
+ * HLS-capable video player built on top of `video.js`. Pure wrapper around
4
+ * the video.js lifecycle: no UI state for loading, error, or "no source" —
5
+ * those concerns live one layer up (`@m4l/gclick/CameraStream`). When `src`
6
+ * is null or empty the component returns `null`, so consumers are expected
7
+ * to gate the mount based on their own state.
4
8
  *
5
- * v10 is declarative and store-driven: a module-scope factory
6
- * (`player.factory.ts`) yields a `Provider` + `Container` + `usePlayer`; this
7
- * component mounts the provider once a source exists and renders the player
8
- * inside it. There is no video.js `Player` object — playback is driven through
9
- * the store, surfaced to consumers as a thin {@link VideoPlayerControl} handle.
9
+ * Visually neutral slot-based styling allows consumers to override the
10
+ * root and the video wrapper via the M4L theme overrides
11
+ * (`theme.components.M4LVideoPlayer.styleOverrides`).
10
12
  *
11
- * Pure wrapper around the player lifecycle: no UI state for loading, error or
12
- * "no source" those live one layer up (`@m4l/gclick/CameraStream`). When
13
- * `src` is null/empty the component returns `null` (unmounting the provider and
14
- * tearing the player down), so consumers gate the mount based on their own
15
- * state.
13
+ * React 19 hooks used:
14
+ * - `useEffectEvent` keeps every callback prop (`onPlayerReady`,
15
+ * `onPlayerError`, `onDurationChange`, …) out of the player-init effect's
16
+ * dependency array, so consumers can pass inline callbacks without forcing
17
+ * the player to be recreated on every render.
18
+ * - `ref` is accepted as a regular prop (no `forwardRef` needed) and is wired
19
+ * to a `VideoPlayerHandle` via `useImperativeHandle`.
16
20
  *
17
- * Highlights:
18
- * - **One composed v10 skin** the chrome (controls, layout, poster, native
19
- * live button) is owned by `GclickVideoSkin`, assembled from the dependency's
20
- * building blocks + official `media-*` classes (no custom per-control CSS).
21
- * - **Live VOD in one skin** — while the manifest is live the control bar
22
- * shows the native `<LiveButton>` and hides the seek region; once it ends
23
- * (`#EXT-X-ENDLIST` `streamType: on-demand`) the seek bar + time displays
24
- * appear. Driven by `isLive`, so the skin never swaps and the `<video>` is
25
- * never remounted (no reload). See `GclickVideoSkin`.
26
- * - **Signed-cookie HLS** — the `<video>` is configured so every manifest +
27
- * segment request carries the CloudFront cookies (see `hlsConfig.ts`).
28
- * - **Flat frame** — only one styling override on our side: the skin's
29
- * `--media-border-radius` is set to `0` so the chrome is edge-to-edge and
30
- * couples to the parent surface (see `VideoPlayer.styles.ts`).
31
- * - **Poster** — `poster` is forwarded to the skin's poster slot (e.g. a cloud
32
- * recording snapshot).
33
- * - **React 19 ref-as-prop** — `ref` resolves to a {@link VideoPlayerControl}
34
- * without `forwardRef`.
21
+ * Multi-instance robustness:
22
+ * - Before initialising, the effect calls `videojs.getPlayer(videoElement)`
23
+ * and disposes any previous Player still attached to the same DOM node.
24
+ * Prevents the "Player already exists" warning when the effect re-runs
25
+ * (StrictMode double invoke, `mode` change, fast tab swap).
26
+ * - On unmount, the previous `<video>` children are removed from the
27
+ * wrapper so a later remount cannot reuse a disposed node.
35
28
  */
36
- export declare function VideoPlayer({ src, mode, poster, className, onReady, onPlay, onPause, onEnded, onWaiting, onError, onDurationChange, ref, }: VideoPlayerProps): import("@emotion/react/jsx-runtime").JSX.Element | null;
29
+ export declare function VideoPlayer({ src, mode, className, onPlayerReady, onPlayerError, onLoadedMetadata, onDurationChange, onPlay, onPause, onEnded, onWaiting, onStalled, ref, }: VideoPlayerProps): import("@emotion/react/jsx-runtime").JSX.Element | null;
37
30
  //# sourceMappingURL=VideoPlayer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VideoPlayer.d.ts","sourceRoot":"","sources":["../../../../../../packages/gclick/src/components/VideoPlayer/VideoPlayer.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,WAAW,CAAC,EAC1B,GAAG,EACH,IAAa,EACb,MAAM,EACN,SAAS,EACT,OAAO,EACP,MAAM,EACN,OAAO,EACP,OAAO,EACP,SAAS,EACT,OAAO,EACP,gBAAgB,EAChB,GAAG,GACJ,EAAE,gBAAgB,2DA4BlB"}
1
+ {"version":3,"file":"VideoPlayer.d.ts","sourceRoot":"","sources":["../../../../../../packages/gclick/src/components/VideoPlayer/VideoPlayer.tsx"],"names":[],"mappings":"AAcA,OAAO,4BAA4B,CAAC;AAYpC,OAAO,KAAK,EAGV,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,WAAW,CAAC,EAC1B,GAAG,EACH,IAAa,EACb,SAAS,EACT,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,MAAM,EACN,OAAO,EACP,OAAO,EACP,SAAS,EACT,SAAS,EACT,GAAG,GACJ,EAAE,gBAAgB,2DAoVlB"}