@vizor-vr/player 0.2.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.
- package/LICENSE +21 -0
- package/README.md +58 -0
- package/dist/__tests__/adapter-factory.test.d.ts +2 -0
- package/dist/__tests__/adapter-factory.test.d.ts.map +1 -0
- package/dist/__tests__/analytics-collector.test.d.ts +2 -0
- package/dist/__tests__/analytics-collector.test.d.ts.map +1 -0
- package/dist/__tests__/annotation-manager.test.d.ts +2 -0
- package/dist/__tests__/annotation-manager.test.d.ts.map +1 -0
- package/dist/__tests__/annotation-popup.test.d.ts +2 -0
- package/dist/__tests__/annotation-popup.test.d.ts.map +1 -0
- package/dist/__tests__/annotation-sprite.test.d.ts +2 -0
- package/dist/__tests__/annotation-sprite.test.d.ts.map +1 -0
- package/dist/__tests__/audio-manager.test.d.ts +2 -0
- package/dist/__tests__/audio-manager.test.d.ts.map +1 -0
- package/dist/__tests__/base-element-attrs.test.d.ts +2 -0
- package/dist/__tests__/base-element-attrs.test.d.ts.map +1 -0
- package/dist/__tests__/camera-controller.test.d.ts +2 -0
- package/dist/__tests__/camera-controller.test.d.ts.map +1 -0
- package/dist/__tests__/caption-renderer.test.d.ts +2 -0
- package/dist/__tests__/caption-renderer.test.d.ts.map +1 -0
- package/dist/__tests__/cc-button.test.d.ts +2 -0
- package/dist/__tests__/cc-button.test.d.ts.map +1 -0
- package/dist/__tests__/chat-button.test.d.ts +2 -0
- package/dist/__tests__/chat-button.test.d.ts.map +1 -0
- package/dist/__tests__/chat-panel.test.d.ts +2 -0
- package/dist/__tests__/chat-panel.test.d.ts.map +1 -0
- package/dist/__tests__/cinema-projection.test.d.ts +2 -0
- package/dist/__tests__/cinema-projection.test.d.ts.map +1 -0
- package/dist/__tests__/collab-client.test.d.ts +2 -0
- package/dist/__tests__/collab-client.test.d.ts.map +1 -0
- package/dist/__tests__/compass.test.d.ts +2 -0
- package/dist/__tests__/compass.test.d.ts.map +1 -0
- package/dist/__tests__/controls-overlay.test.d.ts +2 -0
- package/dist/__tests__/controls-overlay.test.d.ts.map +1 -0
- package/dist/__tests__/cubemap-projection.test.d.ts +2 -0
- package/dist/__tests__/cubemap-projection.test.d.ts.map +1 -0
- package/dist/__tests__/dash-adapter.test.d.ts +2 -0
- package/dist/__tests__/dash-adapter.test.d.ts.map +1 -0
- package/dist/__tests__/eac-projection.test.d.ts +2 -0
- package/dist/__tests__/eac-projection.test.d.ts.map +1 -0
- package/dist/__tests__/equirect-projection.test.d.ts +2 -0
- package/dist/__tests__/equirect-projection.test.d.ts.map +1 -0
- package/dist/__tests__/event-emitter.test.d.ts +2 -0
- package/dist/__tests__/event-emitter.test.d.ts.map +1 -0
- package/dist/__tests__/feature-gates-branding.test.d.ts +2 -0
- package/dist/__tests__/feature-gates-branding.test.d.ts.map +1 -0
- package/dist/__tests__/feature-gates.test.d.ts +2 -0
- package/dist/__tests__/feature-gates.test.d.ts.map +1 -0
- package/dist/__tests__/fisheye-projection.test.d.ts +2 -0
- package/dist/__tests__/fisheye-projection.test.d.ts.map +1 -0
- package/dist/__tests__/flat-projection.test.d.ts +2 -0
- package/dist/__tests__/flat-projection.test.d.ts.map +1 -0
- package/dist/__tests__/flat-video-integration.test.d.ts +2 -0
- package/dist/__tests__/flat-video-integration.test.d.ts.map +1 -0
- package/dist/__tests__/fullscreen-button.test.d.ts +2 -0
- package/dist/__tests__/fullscreen-button.test.d.ts.map +1 -0
- package/dist/__tests__/gaze-cursor-manager.test.d.ts +2 -0
- package/dist/__tests__/gaze-cursor-manager.test.d.ts.map +1 -0
- package/dist/__tests__/gaze-sender.test.d.ts +2 -0
- package/dist/__tests__/gaze-sender.test.d.ts.map +1 -0
- package/dist/__tests__/gaze-tracker.test.d.ts +2 -0
- package/dist/__tests__/gaze-tracker.test.d.ts.map +1 -0
- package/dist/__tests__/hls-adapter.test.d.ts +2 -0
- package/dist/__tests__/hls-adapter.test.d.ts.map +1 -0
- package/dist/__tests__/hotspot-interaction.test.d.ts +2 -0
- package/dist/__tests__/hotspot-interaction.test.d.ts.map +1 -0
- package/dist/__tests__/hotspot-manager.test.d.ts +2 -0
- package/dist/__tests__/hotspot-manager.test.d.ts.map +1 -0
- package/dist/__tests__/hotspot-renderer.test.d.ts +2 -0
- package/dist/__tests__/hotspot-renderer.test.d.ts.map +1 -0
- package/dist/__tests__/integrity.test.d.ts +2 -0
- package/dist/__tests__/integrity.test.d.ts.map +1 -0
- package/dist/__tests__/keyboard-shortcuts.test.d.ts +2 -0
- package/dist/__tests__/keyboard-shortcuts.test.d.ts.map +1 -0
- package/dist/__tests__/license-checker.test.d.ts +2 -0
- package/dist/__tests__/license-checker.test.d.ts.map +1 -0
- package/dist/__tests__/live-indicator.test.d.ts +2 -0
- package/dist/__tests__/live-indicator.test.d.ts.map +1 -0
- package/dist/__tests__/live.test.d.ts +2 -0
- package/dist/__tests__/live.test.d.ts.map +1 -0
- package/dist/__tests__/master-key.test.d.ts +2 -0
- package/dist/__tests__/master-key.test.d.ts.map +1 -0
- package/dist/__tests__/media-element.test.d.ts +2 -0
- package/dist/__tests__/media-element.test.d.ts.map +1 -0
- package/dist/__tests__/meta-config.test.d.ts +2 -0
- package/dist/__tests__/meta-config.test.d.ts.map +1 -0
- package/dist/__tests__/play-button.test.d.ts +2 -0
- package/dist/__tests__/play-button.test.d.ts.map +1 -0
- package/dist/__tests__/player-exports.test.d.ts +2 -0
- package/dist/__tests__/player-exports.test.d.ts.map +1 -0
- package/dist/__tests__/player-state.test.d.ts +2 -0
- package/dist/__tests__/player-state.test.d.ts.map +1 -0
- package/dist/__tests__/playlist-controls.test.d.ts +2 -0
- package/dist/__tests__/playlist-controls.test.d.ts.map +1 -0
- package/dist/__tests__/playlist-panel.test.d.ts +2 -0
- package/dist/__tests__/playlist-panel.test.d.ts.map +1 -0
- package/dist/__tests__/playlist.test.d.ts +2 -0
- package/dist/__tests__/playlist.test.d.ts.map +1 -0
- package/dist/__tests__/progressive-adapter.test.d.ts +2 -0
- package/dist/__tests__/progressive-adapter.test.d.ts.map +1 -0
- package/dist/__tests__/quality-selector.test.d.ts +2 -0
- package/dist/__tests__/quality-selector.test.d.ts.map +1 -0
- package/dist/__tests__/renderer.test.d.ts +2 -0
- package/dist/__tests__/renderer.test.d.ts.map +1 -0
- package/dist/__tests__/security/license-key-exposure.test.d.ts +2 -0
- package/dist/__tests__/security/license-key-exposure.test.d.ts.map +1 -0
- package/dist/__tests__/security/sanitize-xss.test.d.ts +2 -0
- package/dist/__tests__/security/sanitize-xss.test.d.ts.map +1 -0
- package/dist/__tests__/security/sri-generation.test.d.ts +2 -0
- package/dist/__tests__/security/sri-generation.test.d.ts.map +1 -0
- package/dist/__tests__/security/xss-annotations.test.d.ts +2 -0
- package/dist/__tests__/security/xss-annotations.test.d.ts.map +1 -0
- package/dist/__tests__/security/xss-captions.test.d.ts +2 -0
- package/dist/__tests__/security/xss-captions.test.d.ts.map +1 -0
- package/dist/__tests__/seek-bar.test.d.ts +2 -0
- package/dist/__tests__/seek-bar.test.d.ts.map +1 -0
- package/dist/__tests__/source-manager.test.d.ts +2 -0
- package/dist/__tests__/source-manager.test.d.ts.map +1 -0
- package/dist/__tests__/sprint1-memory-disposal.test.d.ts +10 -0
- package/dist/__tests__/sprint1-memory-disposal.test.d.ts.map +1 -0
- package/dist/__tests__/sprint3-frustum-adaptive.test.d.ts +9 -0
- package/dist/__tests__/sprint3-frustum-adaptive.test.d.ts.map +1 -0
- package/dist/__tests__/sprint5-bundle-memory.test.d.ts +18 -0
- package/dist/__tests__/sprint5-bundle-memory.test.d.ts.map +1 -0
- package/dist/__tests__/voice-button.test.d.ts +2 -0
- package/dist/__tests__/voice-button.test.d.ts.map +1 -0
- package/dist/__tests__/voice-manager.test.d.ts +2 -0
- package/dist/__tests__/voice-manager.test.d.ts.map +1 -0
- package/dist/__tests__/volume-control.test.d.ts +2 -0
- package/dist/__tests__/volume-control.test.d.ts.map +1 -0
- package/dist/__tests__/vr-button.test.d.ts +2 -0
- package/dist/__tests__/vr-button.test.d.ts.map +1 -0
- package/dist/__tests__/vz-cinema-element.test.d.ts +2 -0
- package/dist/__tests__/vz-cinema-element.test.d.ts.map +1 -0
- package/dist/__tests__/vz-img-element.test.d.ts +2 -0
- package/dist/__tests__/vz-img-element.test.d.ts.map +1 -0
- package/dist/__tests__/vz-playlist-element.test.d.ts +2 -0
- package/dist/__tests__/vz-playlist-element.test.d.ts.map +1 -0
- package/dist/__tests__/vz-tour-element.test.d.ts +2 -0
- package/dist/__tests__/vz-tour-element.test.d.ts.map +1 -0
- package/dist/__tests__/vz-tour-img.test.d.ts +2 -0
- package/dist/__tests__/vz-tour-img.test.d.ts.map +1 -0
- package/dist/__tests__/vz-tour-portal.test.d.ts +2 -0
- package/dist/__tests__/vz-tour-portal.test.d.ts.map +1 -0
- package/dist/__tests__/vz-video-element.test.d.ts +2 -0
- package/dist/__tests__/vz-video-element.test.d.ts.map +1 -0
- package/dist/__tests__/watermark-guard.test.d.ts +2 -0
- package/dist/__tests__/watermark-guard.test.d.ts.map +1 -0
- package/dist/__tests__/watermark.test.d.ts +2 -0
- package/dist/__tests__/watermark.test.d.ts.map +1 -0
- package/dist/__tests__/webvtt-parser.test.d.ts +2 -0
- package/dist/__tests__/webvtt-parser.test.d.ts.map +1 -0
- package/dist/__tests__/xr-controller.test.d.ts +2 -0
- package/dist/__tests__/xr-controller.test.d.ts.map +1 -0
- package/dist/__tests__/xr-manager.test.d.ts +2 -0
- package/dist/__tests__/xr-manager.test.d.ts.map +1 -0
- package/dist/analytics/analytics-collector.d.ts +29 -0
- package/dist/analytics/analytics-collector.d.ts.map +1 -0
- package/dist/analytics/gaze-tracker.d.ts +44 -0
- package/dist/analytics/gaze-tracker.d.ts.map +1 -0
- package/dist/analytics/index.d.ts +32 -0
- package/dist/analytics/index.d.ts.map +1 -0
- package/dist/annotations/annotation-manager.d.ts +31 -0
- package/dist/annotations/annotation-manager.d.ts.map +1 -0
- package/dist/annotations/annotation-popup.d.ts +21 -0
- package/dist/annotations/annotation-popup.d.ts.map +1 -0
- package/dist/annotations/annotation-sprite.d.ts +10 -0
- package/dist/annotations/annotation-sprite.d.ts.map +1 -0
- package/dist/annotations/index.d.ts +4 -0
- package/dist/annotations/index.d.ts.map +1 -0
- package/dist/annotations-C0ugfCn4.js +2158 -0
- package/dist/annotations-C0ugfCn4.js.map +1 -0
- package/dist/audio/ambisonic-renderer.d.ts +36 -0
- package/dist/audio/ambisonic-renderer.d.ts.map +1 -0
- package/dist/audio/audio-manager.d.ts +44 -0
- package/dist/audio/audio-manager.d.ts.map +1 -0
- package/dist/captions/caption-renderer.d.ts +57 -0
- package/dist/captions/caption-renderer.d.ts.map +1 -0
- package/dist/captions/index.d.ts +3 -0
- package/dist/captions/index.d.ts.map +1 -0
- package/dist/captions/webvtt-parser.d.ts +31 -0
- package/dist/captions/webvtt-parser.d.ts.map +1 -0
- package/dist/captions-BP0H2E03.js +274 -0
- package/dist/captions-BP0H2E03.js.map +1 -0
- package/dist/collab-BXPomrS0.js +978 -0
- package/dist/collab-BXPomrS0.js.map +1 -0
- package/dist/collaborative/chat-button.d.ts +22 -0
- package/dist/collaborative/chat-button.d.ts.map +1 -0
- package/dist/collaborative/chat-panel.d.ts +46 -0
- package/dist/collaborative/chat-panel.d.ts.map +1 -0
- package/dist/collaborative/collab-client.d.ts +73 -0
- package/dist/collaborative/collab-client.d.ts.map +1 -0
- package/dist/collaborative/gaze-cursor-manager.d.ts +29 -0
- package/dist/collaborative/gaze-cursor-manager.d.ts.map +1 -0
- package/dist/collaborative/gaze-sender.d.ts +29 -0
- package/dist/collaborative/gaze-sender.d.ts.map +1 -0
- package/dist/collaborative/voice-button.d.ts +25 -0
- package/dist/collaborative/voice-button.d.ts.map +1 -0
- package/dist/collaborative/voice-manager.d.ts +45 -0
- package/dist/collaborative/voice-manager.d.ts.map +1 -0
- package/dist/config/format-registry.d.ts +2 -0
- package/dist/config/format-registry.d.ts.map +1 -0
- package/dist/config/meta-config.d.ts +14 -0
- package/dist/config/meta-config.d.ts.map +1 -0
- package/dist/controls/cc-button.d.ts +24 -0
- package/dist/controls/cc-button.d.ts.map +1 -0
- package/dist/controls/compass.d.ts +15 -0
- package/dist/controls/compass.d.ts.map +1 -0
- package/dist/controls/controls-overlay.d.ts +46 -0
- package/dist/controls/controls-overlay.d.ts.map +1 -0
- package/dist/controls/fullscreen-button.d.ts +16 -0
- package/dist/controls/fullscreen-button.d.ts.map +1 -0
- package/dist/controls/icons.d.ts +23 -0
- package/dist/controls/icons.d.ts.map +1 -0
- package/dist/controls/keyboard-shortcuts.d.ts +21 -0
- package/dist/controls/keyboard-shortcuts.d.ts.map +1 -0
- package/dist/controls/live-indicator.d.ts +17 -0
- package/dist/controls/live-indicator.d.ts.map +1 -0
- package/dist/controls/play-button.d.ts +14 -0
- package/dist/controls/play-button.d.ts.map +1 -0
- package/dist/controls/playlist-controls.d.ts +18 -0
- package/dist/controls/playlist-controls.d.ts.map +1 -0
- package/dist/controls/playlist-panel.d.ts +27 -0
- package/dist/controls/playlist-panel.d.ts.map +1 -0
- package/dist/controls/quality-menu.d.ts +17 -0
- package/dist/controls/quality-menu.d.ts.map +1 -0
- package/dist/controls/seek-bar.d.ts +23 -0
- package/dist/controls/seek-bar.d.ts.map +1 -0
- package/dist/controls/volume-control.d.ts +14 -0
- package/dist/controls/volume-control.d.ts.map +1 -0
- package/dist/controls/vr-button.d.ts +14 -0
- package/dist/controls/vr-button.d.ts.map +1 -0
- package/dist/core/base-element.d.ts +53 -0
- package/dist/core/base-element.d.ts.map +1 -0
- package/dist/core/event-emitter.d.ts +23 -0
- package/dist/core/event-emitter.d.ts.map +1 -0
- package/dist/core/html-element.d.ts +13 -0
- package/dist/core/html-element.d.ts.map +1 -0
- package/dist/core/media-element.d.ts +86 -0
- package/dist/core/media-element.d.ts.map +1 -0
- package/dist/core/player-state.d.ts +63 -0
- package/dist/core/player-state.d.ts.map +1 -0
- package/dist/dash-adapter-tid9ZyhO.js +75 -0
- package/dist/dash-adapter-tid9ZyhO.js.map +1 -0
- package/dist/elements/vz-annotation.d.ts +26 -0
- package/dist/elements/vz-annotation.d.ts.map +1 -0
- package/dist/elements/vz-cinema.d.ts +28 -0
- package/dist/elements/vz-cinema.d.ts.map +1 -0
- package/dist/elements/vz-img.d.ts +27 -0
- package/dist/elements/vz-img.d.ts.map +1 -0
- package/dist/elements/vz-live.d.ts +36 -0
- package/dist/elements/vz-live.d.ts.map +1 -0
- package/dist/elements/vz-playlist.d.ts +74 -0
- package/dist/elements/vz-playlist.d.ts.map +1 -0
- package/dist/elements/vz-tour-img.d.ts +21 -0
- package/dist/elements/vz-tour-img.d.ts.map +1 -0
- package/dist/elements/vz-tour-portal.d.ts +19 -0
- package/dist/elements/vz-tour-portal.d.ts.map +1 -0
- package/dist/elements/vz-tour.d.ts +49 -0
- package/dist/elements/vz-tour.d.ts.map +1 -0
- package/dist/elements/vz-video.d.ts +21 -0
- package/dist/elements/vz-video.d.ts.map +1 -0
- package/dist/hls-adapter-BivH46L_.js +97 -0
- package/dist/hls-adapter-BivH46L_.js.map +1 -0
- package/dist/hotspots/hotspot-interaction.d.ts +23 -0
- package/dist/hotspots/hotspot-interaction.d.ts.map +1 -0
- package/dist/hotspots/hotspot-manager.d.ts +18 -0
- package/dist/hotspots/hotspot-manager.d.ts.map +1 -0
- package/dist/hotspots/hotspot-renderer.d.ts +26 -0
- package/dist/hotspots/hotspot-renderer.d.ts.map +1 -0
- package/dist/index.d.ts +48 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/license/feature-gates.d.ts +6 -0
- package/dist/license/feature-gates.d.ts.map +1 -0
- package/dist/license/integrity.d.ts +33 -0
- package/dist/license/integrity.d.ts.map +1 -0
- package/dist/license/license-checker.d.ts +18 -0
- package/dist/license/license-checker.d.ts.map +1 -0
- package/dist/license/master-key.d.ts +14 -0
- package/dist/license/master-key.d.ts.map +1 -0
- package/dist/license/watermark-guard.d.ts +24 -0
- package/dist/license/watermark-guard.d.ts.map +1 -0
- package/dist/license/watermark.d.ts +19 -0
- package/dist/license/watermark.d.ts.map +1 -0
- package/dist/register-CwnmiGEs.js +5740 -0
- package/dist/register-CwnmiGEs.js.map +1 -0
- package/dist/register.d.ts +6 -0
- package/dist/register.d.ts.map +1 -0
- package/dist/register.js +5 -0
- package/dist/register.js.map +1 -0
- package/dist/renderer/camera-controller.d.ts +75 -0
- package/dist/renderer/camera-controller.d.ts.map +1 -0
- package/dist/renderer/projections/cinema-projection.d.ts +32 -0
- package/dist/renderer/projections/cinema-projection.d.ts.map +1 -0
- package/dist/renderer/projections/cubemap-projection.d.ts +34 -0
- package/dist/renderer/projections/cubemap-projection.d.ts.map +1 -0
- package/dist/renderer/projections/eac-projection.d.ts +35 -0
- package/dist/renderer/projections/eac-projection.d.ts.map +1 -0
- package/dist/renderer/projections/equirect-projection.d.ts +27 -0
- package/dist/renderer/projections/equirect-projection.d.ts.map +1 -0
- package/dist/renderer/projections/fisheye-projection.d.ts +28 -0
- package/dist/renderer/projections/fisheye-projection.d.ts.map +1 -0
- package/dist/renderer/projections/flat-projection.d.ts +32 -0
- package/dist/renderer/projections/flat-projection.d.ts.map +1 -0
- package/dist/renderer/projections/projection.d.ts +18 -0
- package/dist/renderer/projections/projection.d.ts.map +1 -0
- package/dist/renderer/renderer.d.ts +72 -0
- package/dist/renderer/renderer.d.ts.map +1 -0
- package/dist/renderer/shaders/eac.glsl.d.ts +12 -0
- package/dist/renderer/shaders/eac.glsl.d.ts.map +1 -0
- package/dist/renderer/shaders/fisheye.glsl.d.ts +22 -0
- package/dist/renderer/shaders/fisheye.glsl.d.ts.map +1 -0
- package/dist/spatial-BeadwNJA.js +146 -0
- package/dist/spatial-BeadwNJA.js.map +1 -0
- package/dist/sri.json +12 -0
- package/dist/streaming/adapter-factory.d.ts +8 -0
- package/dist/streaming/adapter-factory.d.ts.map +1 -0
- package/dist/streaming/dash-adapter.d.ts +21 -0
- package/dist/streaming/dash-adapter.d.ts.map +1 -0
- package/dist/streaming/hls-adapter.d.ts +26 -0
- package/dist/streaming/hls-adapter.d.ts.map +1 -0
- package/dist/streaming/progressive-adapter.d.ts +18 -0
- package/dist/streaming/progressive-adapter.d.ts.map +1 -0
- package/dist/streaming/quality-selector.d.ts +25 -0
- package/dist/streaming/quality-selector.d.ts.map +1 -0
- package/dist/streaming/source-manager.d.ts +46 -0
- package/dist/streaming/source-manager.d.ts.map +1 -0
- package/dist/streaming/types.d.ts +25 -0
- package/dist/streaming/types.d.ts.map +1 -0
- package/dist/styles/controls.d.ts +15 -0
- package/dist/styles/controls.d.ts.map +1 -0
- package/dist/three-Bci7aSeI.js +20078 -0
- package/dist/three-Bci7aSeI.js.map +1 -0
- package/dist/utils/fullscreen.d.ts +6 -0
- package/dist/utils/fullscreen.d.ts.map +1 -0
- package/dist/utils/sanitize.d.ts +19 -0
- package/dist/utils/sanitize.d.ts.map +1 -0
- package/dist/vizor.js +113 -0
- package/dist/vizor.js.map +1 -0
- package/dist/xr/xr-controller.d.ts +27 -0
- package/dist/xr/xr-controller.d.ts.map +1 -0
- package/dist/xr/xr-manager.d.ts +43 -0
- package/dist/xr/xr-manager.d.ts.map +1 -0
- package/package.json +94 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { AnnotationData } from '@vizor-vr/shared';
|
|
2
|
+
import { HTMLElementBase } from '../core/html-element.js';
|
|
3
|
+
/**
|
|
4
|
+
* <vz-annotation> — child element of vz-video/vz-img for interactive annotations.
|
|
5
|
+
*
|
|
6
|
+
* This is a data-holder element with no shadow DOM. The parent media element's
|
|
7
|
+
* AnnotationManager reads these elements to create 3D sprite markers.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```html
|
|
11
|
+
* <vz-video format="MONO_360">
|
|
12
|
+
* <source src="video.mp4" type="video/mp4" />
|
|
13
|
+
* <vz-annotation lat="10" lon="45" time-start="5" time-end="15" title="Look here">
|
|
14
|
+
* <p>Rich HTML content</p>
|
|
15
|
+
* </vz-annotation>
|
|
16
|
+
* </vz-video>
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare class VzAnnotationElement extends HTMLElementBase {
|
|
20
|
+
static get observedAttributes(): string[];
|
|
21
|
+
/** Parse this element's attributes into an AnnotationData object */
|
|
22
|
+
getData(): AnnotationData;
|
|
23
|
+
}
|
|
24
|
+
/** Register the <vz-annotation> custom element */
|
|
25
|
+
export declare function registerAnnotation(): void;
|
|
26
|
+
//# sourceMappingURL=vz-annotation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vz-annotation.d.ts","sourceRoot":"","sources":["../../src/elements/vz-annotation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,mBAAoB,SAAQ,eAAe;IACtD,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAED,oEAAoE;IACpE,OAAO,IAAI,cAAc;CAuB1B;AAED,kDAAkD;AAClD,wBAAgB,kBAAkB,IAAI,IAAI,CAIzC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { VzMediaElement } from '../core/media-element.js';
|
|
2
|
+
/**
|
|
3
|
+
* <vz-cinema> - Virtual cinema: flat video on a screen inside a panoramic room.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```html
|
|
7
|
+
* <vz-cinema
|
|
8
|
+
* room-src="cinema-room.jpg"
|
|
9
|
+
* screen-width="3"
|
|
10
|
+
* screen-height="1.8"
|
|
11
|
+
* screen-distance="2.5"
|
|
12
|
+
* style="width:100%; aspect-ratio:16/9"
|
|
13
|
+
* >
|
|
14
|
+
* <source src="movie.mp4" type="video/mp4" />
|
|
15
|
+
* </vz-cinema>
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare class VzCinemaElement extends VzMediaElement {
|
|
19
|
+
private cinemaProjection;
|
|
20
|
+
static get observedAttributes(): string[];
|
|
21
|
+
protected onMediaConnected(): void;
|
|
22
|
+
protected onMediaDisconnected(): void;
|
|
23
|
+
private setupCinemaProjection;
|
|
24
|
+
private getNumAttr;
|
|
25
|
+
}
|
|
26
|
+
/** Register the <vz-cinema> custom element */
|
|
27
|
+
export declare function registerCinema(): void;
|
|
28
|
+
//# sourceMappingURL=vz-cinema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vz-cinema.d.ts","sourceRoot":"","sources":["../../src/elements/vz-cinema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,eAAgB,SAAQ,cAAc;IACjD,OAAO,CAAC,gBAAgB,CAAiC;IAEzD,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAMxC;IAED,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAclC,SAAS,CAAC,mBAAmB,IAAI,IAAI;IAIrC,OAAO,CAAC,qBAAqB;IAiC7B,OAAO,CAAC,UAAU;CAMnB;AAED,8CAA8C;AAC9C,wBAAgB,cAAc,IAAI,IAAI,CAIrC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { VzBaseElement } from '../core/base-element.js';
|
|
2
|
+
/**
|
|
3
|
+
* <vz-img> - VR-capable panoramic image viewer element.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```html
|
|
7
|
+
* <vz-img src="panorama.jpg" format="MONO_360" title="My Panorama" />
|
|
8
|
+
* ```
|
|
9
|
+
*/
|
|
10
|
+
export declare class VzImgElement extends VzBaseElement {
|
|
11
|
+
static get observedAttributes(): string[];
|
|
12
|
+
private renderer;
|
|
13
|
+
private containerEl;
|
|
14
|
+
private controlsOverlay;
|
|
15
|
+
private compass;
|
|
16
|
+
private fullscreenButton;
|
|
17
|
+
private cleanupFullscreen;
|
|
18
|
+
protected onConnected(): void;
|
|
19
|
+
protected onDisconnected(): void;
|
|
20
|
+
toggleFullscreen(): void;
|
|
21
|
+
protected onAttributeChanged(name: string): void;
|
|
22
|
+
protected onResize(): void;
|
|
23
|
+
private loadImage;
|
|
24
|
+
}
|
|
25
|
+
/** Register the <vz-img> custom element */
|
|
26
|
+
export declare function registerImg(): void;
|
|
27
|
+
//# sourceMappingURL=vz-img.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vz-img.d.ts","sourceRoot":"","sources":["../../src/elements/vz-img.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAOxD;;;;;;;GAOG;AACH,qBAAa,YAAa,SAAQ,aAAa;IAG7C,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAED,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,iBAAiB,CAA6B;IAEtD,SAAS,CAAC,WAAW,IAAI,IAAI;IA4C7B,SAAS,CAAC,cAAc,IAAI,IAAI;IAQhC,gBAAgB,IAAI,IAAI;IAQxB,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAShD,SAAS,CAAC,QAAQ,IAAI,IAAI;IAI1B,OAAO,CAAC,SAAS;CAelB;AAED,2CAA2C;AAC3C,wBAAgB,WAAW,IAAI,IAAI,CAIlC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { VzMediaElement } from '../core/media-element.js';
|
|
2
|
+
/**
|
|
3
|
+
* <vz-live> - Live streaming VR video element.
|
|
4
|
+
*
|
|
5
|
+
* Supports flat + 360° live HLS/DASH streams.
|
|
6
|
+
* Automatically configures the player for live mode:
|
|
7
|
+
* - Sets `isLive = true` state
|
|
8
|
+
* - Shows LIVE indicator instead of time display
|
|
9
|
+
* - Disables seek bar scrubbing (or shows DVR window)
|
|
10
|
+
* - Auto-seeks to live edge on load
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```html
|
|
14
|
+
* <vz-live title="Live Concert" format="MONO_360" style="width: 100%; aspect-ratio: 16/9;">
|
|
15
|
+
* <source src="https://stream.example.com/live.m3u8" type="application/x-mpegURL" />
|
|
16
|
+
* </vz-live>
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare class VzLiveElement extends VzMediaElement {
|
|
20
|
+
private liveEdgeInterval;
|
|
21
|
+
/** Live edge threshold in seconds — within this range = "at live edge" */
|
|
22
|
+
private static readonly LIVE_EDGE_THRESHOLD;
|
|
23
|
+
protected onMediaConnected(): void;
|
|
24
|
+
protected onMediaDisconnected(): void;
|
|
25
|
+
/**
|
|
26
|
+
* Seek to the live edge of the stream.
|
|
27
|
+
*/
|
|
28
|
+
seekToLiveEdge(): void;
|
|
29
|
+
/**
|
|
30
|
+
* Check if we're at the live edge by comparing currentTime to seekable end.
|
|
31
|
+
*/
|
|
32
|
+
private checkLiveEdge;
|
|
33
|
+
}
|
|
34
|
+
/** Register the <vz-live> custom element */
|
|
35
|
+
export declare function registerLive(): void;
|
|
36
|
+
//# sourceMappingURL=vz-live.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vz-live.d.ts","sourceRoot":"","sources":["../../src/elements/vz-live.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,aAAc,SAAQ,cAAc;IAC/C,OAAO,CAAC,gBAAgB,CAA+C;IAEvE,0EAA0E;IAC1E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAM;IAEjD,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAkBlC,SAAS,CAAC,mBAAmB,IAAI,IAAI;IAOrC;;OAEG;IACH,cAAc,IAAI,IAAI;IAatB;;OAEG;IACH,OAAO,CAAC,aAAa;CAetB;AAED,4CAA4C;AAC5C,wBAAgB,YAAY,IAAI,IAAI,CAInC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <vz-playlist> - Container element managing a queue of <vz-video> players.
|
|
3
|
+
*
|
|
4
|
+
* Only one child video is active (visible/playing) at a time.
|
|
5
|
+
* Auto-advances when the current video ends.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```html
|
|
9
|
+
* <vz-playlist autoplay loop-playlist>
|
|
10
|
+
* <vz-video title="Video 1" format="MONO_360">
|
|
11
|
+
* <source src="video1.mp4" type="video/mp4" />
|
|
12
|
+
* </vz-video>
|
|
13
|
+
* <vz-video title="Video 2" format="MONO_FLAT">
|
|
14
|
+
* <source src="video2.mp4" type="video/mp4" />
|
|
15
|
+
* </vz-video>
|
|
16
|
+
* </vz-playlist>
|
|
17
|
+
*
|
|
18
|
+
* <!-- With expandable sidebar -->
|
|
19
|
+
* <vz-playlist panel="expandable" autoplay>
|
|
20
|
+
* ...
|
|
21
|
+
* </vz-playlist>
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
import { HTMLElementBase } from '../core/html-element.js';
|
|
25
|
+
export interface PlaylistItem {
|
|
26
|
+
index: number;
|
|
27
|
+
element: HTMLElement;
|
|
28
|
+
title: string;
|
|
29
|
+
format: string;
|
|
30
|
+
poster: string;
|
|
31
|
+
}
|
|
32
|
+
export declare class VzPlaylistElement extends HTMLElementBase {
|
|
33
|
+
private shadow;
|
|
34
|
+
private items;
|
|
35
|
+
private currentIndex;
|
|
36
|
+
private playlistControls;
|
|
37
|
+
private playlistPanel;
|
|
38
|
+
private endedHandler;
|
|
39
|
+
private connected;
|
|
40
|
+
constructor();
|
|
41
|
+
static get observedAttributes(): string[];
|
|
42
|
+
get autoplay(): boolean;
|
|
43
|
+
set autoplay(val: boolean);
|
|
44
|
+
get loopPlaylist(): boolean;
|
|
45
|
+
set loopPlaylist(val: boolean);
|
|
46
|
+
get panelMode(): 'none' | 'expandable';
|
|
47
|
+
connectedCallback(): void;
|
|
48
|
+
disconnectedCallback(): void;
|
|
49
|
+
attributeChangedCallback(_name: string, _oldVal: string | null, _newVal: string | null): void;
|
|
50
|
+
/** Navigate to item at index */
|
|
51
|
+
goTo(index: number): void;
|
|
52
|
+
/** Go to next item */
|
|
53
|
+
next(): void;
|
|
54
|
+
/** Go to previous item */
|
|
55
|
+
previous(): void;
|
|
56
|
+
/** Shuffle the playlist order */
|
|
57
|
+
shuffle(): void;
|
|
58
|
+
/** Get current item index */
|
|
59
|
+
get currentItemIndex(): number;
|
|
60
|
+
/** Get total item count */
|
|
61
|
+
get itemCount(): number;
|
|
62
|
+
/** Get the active player element */
|
|
63
|
+
get activeElement(): HTMLElement | null;
|
|
64
|
+
/** Toggle the playlist panel open/closed */
|
|
65
|
+
togglePanel(): void;
|
|
66
|
+
private parseItems;
|
|
67
|
+
private attachEndedListener;
|
|
68
|
+
private detachEndedListener;
|
|
69
|
+
private injectControls;
|
|
70
|
+
private injectStyles;
|
|
71
|
+
}
|
|
72
|
+
/** Register the <vz-playlist> custom element */
|
|
73
|
+
export declare function registerPlaylist(): void;
|
|
74
|
+
//# sourceMappingURL=vz-playlist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vz-playlist.d.ts","sourceRoot":"","sources":["../../src/elements/vz-playlist.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,iBAAkB,SAAQ,eAAe;IACpD,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,SAAS,CAAS;;IAO1B,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAID,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,QAAQ,CAAC,GAAG,EAAE,OAAO,EAMxB;IAED,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,IAAI,YAAY,CAAC,GAAG,EAAE,OAAO,EAM5B;IAED,IAAI,SAAS,IAAI,MAAM,GAAG,YAAY,CAGrC;IAED,iBAAiB,IAAI,IAAI;IAiDzB,oBAAoB,IAAI,IAAI;IAS5B,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAM7F,gCAAgC;IAChC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IA4DzB,sBAAsB;IACtB,IAAI,IAAI,IAAI;IAQZ,0BAA0B;IAC1B,QAAQ,IAAI,IAAI;IAQhB,iCAAiC;IACjC,OAAO,IAAI,IAAI;IAqBf,6BAA6B;IAC7B,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED,2BAA2B;IAC3B,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,oCAAoC;IACpC,IAAI,aAAa,IAAI,WAAW,GAAG,IAAI,CAEtC;IAED,4CAA4C;IAC5C,WAAW,IAAI,IAAI;IAMnB,OAAO,CAAC,UAAU;IAgBlB,OAAO,CAAC,mBAAmB;IAwB3B,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,cAAc;IA0CtB,OAAO,CAAC,YAAY;CA2BrB;AAED,gDAAgD;AAChD,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { TourProbe } from '@vizor-vr/shared';
|
|
2
|
+
import { HTMLElementBase } from '../core/html-element.js';
|
|
3
|
+
/**
|
|
4
|
+
* <vz-tour-img> - A single panoramic probe in a tour.
|
|
5
|
+
* Parsed by the parent <vz-tour> to build the navigable data structure.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```html
|
|
9
|
+
* <vz-tour-img probe-id="lobby" format="MONO_360" src="lobby.jpg" title="Lobby">
|
|
10
|
+
* <vz-tour-portal to="office" lat="10" lon="45" title="Go to Office" />
|
|
11
|
+
* </vz-tour-img>
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export declare class VzTourImgElement extends HTMLElementBase {
|
|
15
|
+
static get observedAttributes(): string[];
|
|
16
|
+
/** Parse this element and its portal children into a TourProbe data object */
|
|
17
|
+
getProbeData(): TourProbe;
|
|
18
|
+
}
|
|
19
|
+
/** Register the <vz-tour-img> custom element */
|
|
20
|
+
export declare function registerTourImg(): void;
|
|
21
|
+
//# sourceMappingURL=vz-tour-img.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vz-tour-img.d.ts","sourceRoot":"","sources":["../../src/elements/vz-tour-img.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAY,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D;;;;;;;;;;GAUG;AACH,qBAAa,gBAAiB,SAAQ,eAAe;IACnD,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAED,8EAA8E;IAC9E,YAAY,IAAI,SAAS;CAqB1B;AAED,gDAAgD;AAChD,wBAAgB,eAAe,IAAI,IAAI,CAItC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { TourPortal } from '@vizor-vr/shared';
|
|
2
|
+
import { HTMLElementBase } from '../core/html-element.js';
|
|
3
|
+
/**
|
|
4
|
+
* <vz-tour-portal> - Declarative portal (navigation hotspot) definition.
|
|
5
|
+
* Must be a child of <vz-tour-img>.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```html
|
|
9
|
+
* <vz-tour-portal to="office" lat="10" lon="45" title="Go to Office" />
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
export declare class VzTourPortalElement extends HTMLElementBase {
|
|
13
|
+
static get observedAttributes(): string[];
|
|
14
|
+
/** Parse this element's attributes into a TourPortal data object */
|
|
15
|
+
getPortalData(): TourPortal;
|
|
16
|
+
}
|
|
17
|
+
/** Register the <vz-tour-portal> custom element */
|
|
18
|
+
export declare function registerTourPortal(): void;
|
|
19
|
+
//# sourceMappingURL=vz-tour-portal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vz-tour-portal.d.ts","sourceRoot":"","sources":["../../src/elements/vz-tour-portal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;;;;;;;GAQG;AACH,qBAAa,mBAAoB,SAAQ,eAAe;IACtD,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAED,oEAAoE;IACpE,aAAa,IAAI,UAAU;CAS5B;AAED,mDAAmD;AACnD,wBAAgB,kBAAkB,IAAI,IAAI,CAIzC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { VzBaseElement } from '../core/base-element.js';
|
|
2
|
+
/**
|
|
3
|
+
* <vz-tour> - Interactive panoramic tour with navigable probes.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```html
|
|
7
|
+
* <vz-tour start-probe-id="lobby" style="width:100%; aspect-ratio:16/9">
|
|
8
|
+
* <vz-tour-img probe-id="lobby" format="MONO_360" src="lobby.jpg" title="Lobby">
|
|
9
|
+
* <vz-tour-portal to="office" lat="10" lon="45" title="Go to Office" />
|
|
10
|
+
* </vz-tour-img>
|
|
11
|
+
* <vz-tour-img probe-id="office" format="MONO_360" src="office.jpg" title="Office">
|
|
12
|
+
* <vz-tour-portal to="lobby" lat="0" lon="-135" title="Back to Lobby" />
|
|
13
|
+
* </vz-tour-img>
|
|
14
|
+
* </vz-tour>
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare class VzTourElement extends VzBaseElement {
|
|
18
|
+
private renderer;
|
|
19
|
+
private containerEl;
|
|
20
|
+
private probes;
|
|
21
|
+
private currentProbeId;
|
|
22
|
+
private hotspotManager;
|
|
23
|
+
private textureCache;
|
|
24
|
+
private controlsOverlay;
|
|
25
|
+
private compass;
|
|
26
|
+
private fullscreenButton;
|
|
27
|
+
private vrButton;
|
|
28
|
+
private xrManager;
|
|
29
|
+
private cleanupFullscreen;
|
|
30
|
+
private loader;
|
|
31
|
+
protected onConnected(): void;
|
|
32
|
+
protected onDisconnected(): void;
|
|
33
|
+
protected onAttributeChanged(_name: string): void;
|
|
34
|
+
protected onResize(): void;
|
|
35
|
+
/** Navigate to a specific probe by ID */
|
|
36
|
+
navigateTo(probeId: string): Promise<void>;
|
|
37
|
+
/** Get current probe ID */
|
|
38
|
+
get currentProbe(): string | null;
|
|
39
|
+
toggleFullscreen(): void;
|
|
40
|
+
/** Parse all <vz-tour-img> children into the probes map */
|
|
41
|
+
private parseProbes;
|
|
42
|
+
/** Load a texture, using cache if available */
|
|
43
|
+
private loadOrGetTexture;
|
|
44
|
+
/** Preload textures for neighboring probes (fire-and-forget) */
|
|
45
|
+
private preloadNeighbors;
|
|
46
|
+
}
|
|
47
|
+
/** Register the <vz-tour> custom element */
|
|
48
|
+
export declare function registerTour(): void;
|
|
49
|
+
//# sourceMappingURL=vz-tour.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vz-tour.d.ts","sourceRoot":"","sources":["../../src/elements/vz-tour.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAWxD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,aAAc,SAAQ,aAAa;IAC9C,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,MAAM,CAAuB;IAErC,SAAS,CAAC,WAAW,IAAI,IAAI;IAuE7B,SAAS,CAAC,cAAc,IAAI,IAAI;IAkBhC,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIjD,SAAS,CAAC,QAAQ,IAAI,IAAI;IAI1B,yCAAyC;IACnC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmDhD,2BAA2B;IAC3B,IAAI,YAAY,IAAI,MAAM,GAAG,IAAI,CAEhC;IAED,gBAAgB,IAAI,IAAI;IAQxB,2DAA2D;IAC3D,OAAO,CAAC,WAAW;IAcnB,+CAA+C;IAC/C,OAAO,CAAC,gBAAgB;IAkBxB,gEAAgE;IAChE,OAAO,CAAC,gBAAgB;CAczB;AAED,4CAA4C;AAC5C,wBAAgB,YAAY,IAAI,IAAI,CAInC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { VzMediaElement } from '../core/media-element.js';
|
|
2
|
+
/**
|
|
3
|
+
* <vz-video> - VR-capable video player element.
|
|
4
|
+
*
|
|
5
|
+
* Supports all VzFormat types (mono/stereo, 180/360, flat, cubemap).
|
|
6
|
+
* Mirrors the HTML5 <video> API with added VR capabilities.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```html
|
|
10
|
+
* <vz-video title="My Video" format="STEREO_360_LR" poster="thumb.jpg">
|
|
11
|
+
* <source src="video.mp4" type="video/mp4" />
|
|
12
|
+
* </vz-video>
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export declare class VzVideoElement extends VzMediaElement {
|
|
16
|
+
protected onMediaConnected(): void;
|
|
17
|
+
protected onMediaDisconnected(): void;
|
|
18
|
+
}
|
|
19
|
+
/** Register the <vz-video> custom element */
|
|
20
|
+
export declare function registerVideo(): void;
|
|
21
|
+
//# sourceMappingURL=vz-video.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vz-video.d.ts","sourceRoot":"","sources":["../../src/elements/vz-video.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D;;;;;;;;;;;;GAYG;AACH,qBAAa,cAAe,SAAQ,cAAc;IAChD,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAKlC,SAAS,CAAC,mBAAmB,IAAI,IAAI;CAGtC;AAED,6CAA6C;AAC7C,wBAAgB,aAAa,IAAI,IAAI,CAIpC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
class HlsAdapter {
|
|
2
|
+
videoElement = null;
|
|
3
|
+
hls = null;
|
|
4
|
+
_isAttached = false;
|
|
5
|
+
_isNative = false;
|
|
6
|
+
levels = [];
|
|
7
|
+
/** Enable low-latency mode for live streams */
|
|
8
|
+
lowLatencyMode = false;
|
|
9
|
+
get supportsABR() {
|
|
10
|
+
return !this._isNative;
|
|
11
|
+
}
|
|
12
|
+
get isAttached() {
|
|
13
|
+
return this._isAttached;
|
|
14
|
+
}
|
|
15
|
+
attach(videoElement) {
|
|
16
|
+
this.videoElement = videoElement;
|
|
17
|
+
this._isAttached = true;
|
|
18
|
+
}
|
|
19
|
+
async load(url) {
|
|
20
|
+
if (!this.videoElement) return;
|
|
21
|
+
if (this.videoElement.canPlayType("application/vnd.apple.mpegurl")) {
|
|
22
|
+
this.videoElement.src = url;
|
|
23
|
+
this._isNative = true;
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
try {
|
|
27
|
+
const HlsModule = await import("hls.js");
|
|
28
|
+
const Hls = HlsModule.default;
|
|
29
|
+
if (!Hls.isSupported()) {
|
|
30
|
+
console.error("[Vizor] HLS.js is not supported in this browser");
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
if (this.hls) {
|
|
34
|
+
this.hls.destroy();
|
|
35
|
+
}
|
|
36
|
+
const hls = new Hls({
|
|
37
|
+
enableWorker: true,
|
|
38
|
+
lowLatencyMode: this.lowLatencyMode,
|
|
39
|
+
...this.lowLatencyMode ? { liveSyncDurationCount: 3, liveMaxLatencyDurationCount: 6 } : {}
|
|
40
|
+
});
|
|
41
|
+
hls.attachMedia(this.videoElement);
|
|
42
|
+
hls.loadSource(url);
|
|
43
|
+
hls.on(Hls.Events.MANIFEST_PARSED, () => {
|
|
44
|
+
this.levels = hls.levels.map(
|
|
45
|
+
(level, i) => ({
|
|
46
|
+
label: level.height ? `${level.height}p` : `Level ${i}`,
|
|
47
|
+
width: level.width,
|
|
48
|
+
height: level.height,
|
|
49
|
+
bitrate: level.bitrate,
|
|
50
|
+
active: i === hls.currentLevel
|
|
51
|
+
})
|
|
52
|
+
);
|
|
53
|
+
});
|
|
54
|
+
hls.on(Hls.Events.ERROR, (_event, data) => {
|
|
55
|
+
if (data.fatal) {
|
|
56
|
+
console.error("[Vizor] Fatal HLS error:", data.type, data.details);
|
|
57
|
+
switch (data.type) {
|
|
58
|
+
case Hls.ErrorTypes.NETWORK_ERROR:
|
|
59
|
+
hls.startLoad();
|
|
60
|
+
break;
|
|
61
|
+
case Hls.ErrorTypes.MEDIA_ERROR:
|
|
62
|
+
hls.recoverMediaError();
|
|
63
|
+
break;
|
|
64
|
+
default:
|
|
65
|
+
this.destroy();
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
this.hls = hls;
|
|
71
|
+
} catch (e) {
|
|
72
|
+
console.error("[Vizor] Failed to load hls.js:", e);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
getQualityLevels() {
|
|
76
|
+
return this.levels;
|
|
77
|
+
}
|
|
78
|
+
setQualityLevel(index) {
|
|
79
|
+
if (!this.hls || this._isNative) return;
|
|
80
|
+
const hls = this.hls;
|
|
81
|
+
hls.currentLevel = index;
|
|
82
|
+
}
|
|
83
|
+
destroy() {
|
|
84
|
+
if (this.hls && !this._isNative) {
|
|
85
|
+
this.hls.destroy();
|
|
86
|
+
}
|
|
87
|
+
this.hls = null;
|
|
88
|
+
this.videoElement = null;
|
|
89
|
+
this._isAttached = false;
|
|
90
|
+
this._isNative = false;
|
|
91
|
+
this.levels = [];
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
export {
|
|
95
|
+
HlsAdapter
|
|
96
|
+
};
|
|
97
|
+
//# sourceMappingURL=hls-adapter-BivH46L_.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hls-adapter-BivH46L_.js","sources":["../src/streaming/hls-adapter.ts"],"sourcesContent":["import type { QualityLevel } from '@vizor-vr/shared';\nimport type { IStreamingAdapter } from './types.js';\n\n/**\n * HLS streaming adapter wrapping hls.js.\n * Lazy-loaded via dynamic import — only included in the bundle\n * when an HLS source is detected.\n *\n * Falls back to native HLS on Safari (no hls.js needed).\n */\nexport class HlsAdapter implements IStreamingAdapter {\n private videoElement: HTMLVideoElement | null = null;\n private hls: unknown | null = null;\n private _isAttached = false;\n private _isNative = false;\n private levels: QualityLevel[] = [];\n\n /** Enable low-latency mode for live streams */\n lowLatencyMode = false;\n\n get supportsABR(): boolean {\n return !this._isNative;\n }\n\n get isAttached(): boolean {\n return this._isAttached;\n }\n\n attach(videoElement: HTMLVideoElement): void {\n this.videoElement = videoElement;\n this._isAttached = true;\n }\n\n async load(url: string): Promise<void> {\n if (!this.videoElement) return;\n\n // Safari supports HLS natively — no need for hls.js\n if (this.videoElement.canPlayType('application/vnd.apple.mpegurl')) {\n this.videoElement.src = url;\n this._isNative = true;\n return;\n }\n\n try {\n const HlsModule = await import('hls.js');\n const Hls = HlsModule.default;\n\n if (!Hls.isSupported()) {\n console.error('[Vizor] HLS.js is not supported in this browser');\n return;\n }\n\n // Destroy previous instance\n if (this.hls) {\n (this.hls as { destroy(): void }).destroy();\n }\n\n const hls = new Hls({\n enableWorker: true,\n lowLatencyMode: this.lowLatencyMode,\n ...(this.lowLatencyMode\n ? { liveSyncDurationCount: 3, liveMaxLatencyDurationCount: 6 }\n : {}),\n });\n\n hls.attachMedia(this.videoElement);\n hls.loadSource(url);\n\n hls.on(Hls.Events.MANIFEST_PARSED, () => {\n this.levels = hls.levels.map(\n (level: { height: number; width: number; bitrate: number }, i: number) => ({\n label: level.height ? `${level.height}p` : `Level ${i}`,\n width: level.width,\n height: level.height,\n bitrate: level.bitrate,\n active: i === hls.currentLevel,\n }),\n );\n });\n\n hls.on(Hls.Events.ERROR, (_event: string, data: { fatal: boolean; type: string; details: string }) => {\n if (data.fatal) {\n console.error('[Vizor] Fatal HLS error:', data.type, data.details);\n switch (data.type) {\n case Hls.ErrorTypes.NETWORK_ERROR:\n hls.startLoad();\n break;\n case Hls.ErrorTypes.MEDIA_ERROR:\n hls.recoverMediaError();\n break;\n default:\n this.destroy();\n break;\n }\n }\n });\n\n this.hls = hls;\n } catch (e) {\n console.error('[Vizor] Failed to load hls.js:', e);\n }\n }\n\n getQualityLevels(): QualityLevel[] {\n return this.levels;\n }\n\n setQualityLevel(index: number): void {\n if (!this.hls || this._isNative) return;\n const hls = this.hls as { currentLevel: number };\n hls.currentLevel = index; // -1 = auto\n }\n\n destroy(): void {\n if (this.hls && !this._isNative) {\n (this.hls as { destroy(): void }).destroy();\n }\n this.hls = null;\n this.videoElement = null;\n this._isAttached = false;\n this._isNative = false;\n this.levels = [];\n }\n}\n"],"names":[],"mappings":"AAUO,MAAM,WAAwC;AAAA,EAC3C,eAAwC;AAAA,EACxC,MAAsB;AAAA,EACtB,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,SAAyB,CAAA;AAAA;AAAA,EAGjC,iBAAiB;AAAA,EAEjB,IAAI,cAAuB;AACzB,WAAO,CAAC,KAAK;AAAA,EACf;AAAA,EAEA,IAAI,aAAsB;AACxB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,OAAO,cAAsC;AAC3C,SAAK,eAAe;AACpB,SAAK,cAAc;AAAA,EACrB;AAAA,EAEA,MAAM,KAAK,KAA4B;AACrC,QAAI,CAAC,KAAK,aAAc;AAGxB,QAAI,KAAK,aAAa,YAAY,+BAA+B,GAAG;AAClE,WAAK,aAAa,MAAM;AACxB,WAAK,YAAY;AACjB;AAAA,IACF;AAEA,QAAI;AACF,YAAM,YAAY,MAAM,OAAO,QAAQ;AACvC,YAAM,MAAM,UAAU;AAEtB,UAAI,CAAC,IAAI,eAAe;AACtB,gBAAQ,MAAM,iDAAiD;AAC/D;AAAA,MACF;AAGA,UAAI,KAAK,KAAK;AACX,aAAK,IAA4B,QAAA;AAAA,MACpC;AAEA,YAAM,MAAM,IAAI,IAAI;AAAA,QAClB,cAAc;AAAA,QACd,gBAAgB,KAAK;AAAA,QACrB,GAAI,KAAK,iBACL,EAAE,uBAAuB,GAAG,6BAA6B,MACzD,CAAA;AAAA,MAAC,CACN;AAED,UAAI,YAAY,KAAK,YAAY;AACjC,UAAI,WAAW,GAAG;AAElB,UAAI,GAAG,IAAI,OAAO,iBAAiB,MAAM;AACvC,aAAK,SAAS,IAAI,OAAO;AAAA,UACvB,CAAC,OAA2D,OAAe;AAAA,YACzE,OAAO,MAAM,SAAS,GAAG,MAAM,MAAM,MAAM,SAAS,CAAC;AAAA,YACrD,OAAO,MAAM;AAAA,YACb,QAAQ,MAAM;AAAA,YACd,SAAS,MAAM;AAAA,YACf,QAAQ,MAAM,IAAI;AAAA,UAAA;AAAA,QACpB;AAAA,MAEJ,CAAC;AAED,UAAI,GAAG,IAAI,OAAO,OAAO,CAAC,QAAgB,SAA4D;AACpG,YAAI,KAAK,OAAO;AACd,kBAAQ,MAAM,4BAA4B,KAAK,MAAM,KAAK,OAAO;AACjE,kBAAQ,KAAK,MAAA;AAAA,YACX,KAAK,IAAI,WAAW;AAClB,kBAAI,UAAA;AACJ;AAAA,YACF,KAAK,IAAI,WAAW;AAClB,kBAAI,kBAAA;AACJ;AAAA,YACF;AACE,mBAAK,QAAA;AACL;AAAA,UAAA;AAAA,QAEN;AAAA,MACF,CAAC;AAED,WAAK,MAAM;AAAA,IACb,SAAS,GAAG;AACV,cAAQ,MAAM,kCAAkC,CAAC;AAAA,IACnD;AAAA,EACF;AAAA,EAEA,mBAAmC;AACjC,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,gBAAgB,OAAqB;AACnC,QAAI,CAAC,KAAK,OAAO,KAAK,UAAW;AACjC,UAAM,MAAM,KAAK;AACjB,QAAI,eAAe;AAAA,EACrB;AAAA,EAEA,UAAgB;AACd,QAAI,KAAK,OAAO,CAAC,KAAK,WAAW;AAC9B,WAAK,IAA4B,QAAA;AAAA,IACpC;AACA,SAAK,MAAM;AACX,SAAK,eAAe;AACpB,SAAK,cAAc;AACnB,SAAK,YAAY;AACjB,SAAK,SAAS,CAAA;AAAA,EAChB;AACF;"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { PerspectiveCamera, Sprite } from 'three';
|
|
2
|
+
export type HotspotClickHandler = (portalTo: string) => void;
|
|
3
|
+
/**
|
|
4
|
+
* Handles click detection on hotspot sprites via raycasting.
|
|
5
|
+
* Converts mouse/touch clicks to normalized device coordinates,
|
|
6
|
+
* raycasts through the scene, and triggers navigation on hit.
|
|
7
|
+
*/
|
|
8
|
+
export declare class HotspotInteraction {
|
|
9
|
+
private raycaster;
|
|
10
|
+
private pointer;
|
|
11
|
+
private camera;
|
|
12
|
+
private getSprites;
|
|
13
|
+
private onClick;
|
|
14
|
+
private domElement;
|
|
15
|
+
private cleanups;
|
|
16
|
+
constructor(camera: PerspectiveCamera, domElement: HTMLElement, getSprites: () => Sprite[], onClick: HotspotClickHandler);
|
|
17
|
+
/** Start listening for click events */
|
|
18
|
+
attach(): void;
|
|
19
|
+
/** Stop listening */
|
|
20
|
+
detach(): void;
|
|
21
|
+
dispose(): void;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=hotspot-interaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hotspot-interaction.d.ts","sourceRoot":"","sources":["../../src/hotspots/hotspot-interaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEvD,MAAM,MAAM,mBAAmB,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;AAE7D;;;;GAIG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,QAAQ,CAAyB;gBAGvC,MAAM,EAAE,iBAAiB,EACzB,UAAU,EAAE,WAAW,EACvB,UAAU,EAAE,MAAM,MAAM,EAAE,EAC1B,OAAO,EAAE,mBAAmB;IAQ9B,uCAAuC;IACvC,MAAM,IAAI,IAAI;IAuBd,qBAAqB;IACrB,MAAM,IAAI,IAAI;IAKd,OAAO,IAAI,IAAI;CAGhB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Scene, PerspectiveCamera } from 'three';
|
|
2
|
+
import type { TourPortal } from '@vizor-vr/shared';
|
|
3
|
+
import { type HotspotClickHandler } from './hotspot-interaction.js';
|
|
4
|
+
/**
|
|
5
|
+
* Orchestrates hotspot rendering and interaction.
|
|
6
|
+
* Used by VzTourElement to manage portal sprites and click detection.
|
|
7
|
+
*/
|
|
8
|
+
export declare class HotspotManager {
|
|
9
|
+
private renderer;
|
|
10
|
+
private interaction;
|
|
11
|
+
constructor(scene: Scene, camera: PerspectiveCamera, domElement: HTMLElement, onNavigate: HotspotClickHandler);
|
|
12
|
+
/** Set portals for the current probe */
|
|
13
|
+
setPortals(portals: TourPortal[]): void;
|
|
14
|
+
/** Clear all hotspots */
|
|
15
|
+
clear(): void;
|
|
16
|
+
dispose(): void;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=hotspot-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hotspot-manager.d.ts","sourceRoot":"","sources":["../../src/hotspots/hotspot-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAsB,KAAK,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAExF;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,WAAW,CAAqB;gBAGtC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,iBAAiB,EACzB,UAAU,EAAE,WAAW,EACvB,UAAU,EAAE,mBAAmB;IAYjC,wCAAwC;IACxC,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI;IAIvC,yBAAyB;IACzB,KAAK,IAAI,IAAI;IAIb,OAAO,IAAI,IAAI;CAIhB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Sprite } from 'three';
|
|
2
|
+
import type { Scene } from 'three';
|
|
3
|
+
import type { TourPortal } from '@vizor-vr/shared';
|
|
4
|
+
export interface HotspotSprite {
|
|
5
|
+
portal: TourPortal;
|
|
6
|
+
sprite: Sprite;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Renders 3D sprite labels for tour portal hotspots.
|
|
10
|
+
* Positioned on the inside of the panoramic sphere at each portal's lat/lon.
|
|
11
|
+
*/
|
|
12
|
+
export declare class HotspotRenderer {
|
|
13
|
+
private sprites;
|
|
14
|
+
private scene;
|
|
15
|
+
constructor(scene: Scene);
|
|
16
|
+
/** Create sprite meshes for all portals and add to scene */
|
|
17
|
+
setPortals(portals: TourPortal[]): void;
|
|
18
|
+
/** Remove all hotspot sprites from scene */
|
|
19
|
+
clear(): void;
|
|
20
|
+
/** Get all current sprites (for raycasting) */
|
|
21
|
+
getSprites(): Sprite[];
|
|
22
|
+
dispose(): void;
|
|
23
|
+
private createSprite;
|
|
24
|
+
private roundRect;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=hotspot-renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hotspot-renderer.d.ts","sourceRoot":"","sources":["../../src/hotspots/hotspot-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EAIP,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGnD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAQD;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,KAAK,CAAQ;gBAET,KAAK,EAAE,KAAK;IAIxB,4DAA4D;IAC5D,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI;IAWvC,4CAA4C;IAC5C,KAAK,IAAI,IAAI;IASb,+CAA+C;IAC/C,UAAU,IAAI,MAAM,EAAE;IAItB,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,YAAY;IAqDpB,OAAO,CAAC,SAAS;CAelB"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export { VzBaseElement } from './core/base-element.js';
|
|
2
|
+
export { VzMediaElement } from './core/media-element.js';
|
|
3
|
+
export { PlayerState } from './core/player-state.js';
|
|
4
|
+
export type { PlayerStateShape } from './core/player-state.js';
|
|
5
|
+
export { VzEventEmitter } from './core/event-emitter.js';
|
|
6
|
+
export { VzVideoElement, registerVideo } from './elements/vz-video.js';
|
|
7
|
+
export { VzImgElement, registerImg } from './elements/vz-img.js';
|
|
8
|
+
export { VzTourElement, registerTour } from './elements/vz-tour.js';
|
|
9
|
+
export { VzTourImgElement, registerTourImg } from './elements/vz-tour-img.js';
|
|
10
|
+
export { VzTourPortalElement, registerTourPortal } from './elements/vz-tour-portal.js';
|
|
11
|
+
export { VzCinemaElement, registerCinema } from './elements/vz-cinema.js';
|
|
12
|
+
export { VzLiveElement, registerLive } from './elements/vz-live.js';
|
|
13
|
+
export { VzPlaylistElement, registerPlaylist } from './elements/vz-playlist.js';
|
|
14
|
+
export { VzAnnotationElement, registerAnnotation } from './elements/vz-annotation.js';
|
|
15
|
+
export { VzRenderer } from './renderer/renderer.js';
|
|
16
|
+
export { CameraController } from './renderer/camera-controller.js';
|
|
17
|
+
export { SourceManager } from './streaming/source-manager.js';
|
|
18
|
+
export { QualitySelector } from './streaming/quality-selector.js';
|
|
19
|
+
export type { IStreamingAdapter, AdapterType } from './streaming/types.js';
|
|
20
|
+
export { ControlsOverlay } from './controls/controls-overlay.js';
|
|
21
|
+
export { KeyboardShortcuts } from './controls/keyboard-shortcuts.js';
|
|
22
|
+
export { XRManager } from './xr/xr-manager.js';
|
|
23
|
+
export { AudioManager } from './audio/audio-manager.js';
|
|
24
|
+
export type { AudioFormat } from './audio/audio-manager.js';
|
|
25
|
+
export { CaptionRenderer, parseWebVTT } from './captions/index.js';
|
|
26
|
+
export type { CaptionTrack, VttCue } from './captions/index.js';
|
|
27
|
+
export { AnnotationManager } from './annotations/annotation-manager.js';
|
|
28
|
+
export { AnnotationSprite } from './annotations/annotation-sprite.js';
|
|
29
|
+
export { AnnotationPopup } from './annotations/annotation-popup.js';
|
|
30
|
+
export { CollaborativeClient } from './collaborative/collab-client.js';
|
|
31
|
+
export type { CollabClientOptions } from './collaborative/collab-client.js';
|
|
32
|
+
export { GazeCursorManager } from './collaborative/gaze-cursor-manager.js';
|
|
33
|
+
export { GazeSender } from './collaborative/gaze-sender.js';
|
|
34
|
+
export { ChatPanel } from './collaborative/chat-panel.js';
|
|
35
|
+
export { ChatButton } from './collaborative/chat-button.js';
|
|
36
|
+
export { VoiceManager } from './collaborative/voice-manager.js';
|
|
37
|
+
export { VoiceButton } from './collaborative/voice-button.js';
|
|
38
|
+
export { initAnalytics } from './analytics/index.js';
|
|
39
|
+
export type { AnalyticsHandle, AnalyticsOptions } from './analytics/index.js';
|
|
40
|
+
export { HotspotManager } from './hotspots/hotspot-manager.js';
|
|
41
|
+
export { checkLicense } from './license/license-checker.js';
|
|
42
|
+
export type { LicenseConfig } from './license/license-checker.js';
|
|
43
|
+
export { isFeatureEnabled, getEnabledFeatures } from './license/feature-gates.js';
|
|
44
|
+
export { createWatermark, removeWatermark } from './license/watermark.js';
|
|
45
|
+
export type { WatermarkOptions } from './license/watermark.js';
|
|
46
|
+
export { registerAll } from './register.js';
|
|
47
|
+
export type { VzFormat, FormatMeta, StereoMode, PlayerConfig, PlaybackState, VzEvent, VzMediaEvent, VzCustomEvent, LicenseTier, FeatureFlags, LicenseResult, LicenseMode, QualityLevel, } from '@vizor-vr/shared';
|
|
48
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGzD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAGtF,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAGnE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAG3E,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAGrE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACnE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAGpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,YAAY,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAG9D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG9E,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAG/D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,YAAY,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC1E,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG/D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,YAAY,EACV,QAAQ,EACR,UAAU,EACV,UAAU,EACV,YAAY,EACZ,aAAa,EACb,OAAO,EACP,YAAY,EACZ,aAAa,EACb,WAAW,EACX,YAAY,EACZ,aAAa,EACb,WAAW,EACX,YAAY,GACb,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { FeatureFlags, LicenseResult } from '@vizor-vr/shared';
|
|
2
|
+
/** Check if a specific feature is enabled for the current license */
|
|
3
|
+
export declare function isFeatureEnabled(feature: keyof FeatureFlags, license: LicenseResult): boolean;
|
|
4
|
+
/** Get all enabled feature names for a license */
|
|
5
|
+
export declare function getEnabledFeatures(license: LicenseResult): Array<keyof FeatureFlags>;
|
|
6
|
+
//# sourceMappingURL=feature-gates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature-gates.d.ts","sourceRoot":"","sources":["../../src/license/feature-gates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEpE,qEAAqE;AACrE,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,YAAY,EAC3B,OAAO,EAAE,aAAa,GACrB,OAAO,CAET;AAED,kDAAkD;AAClD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG,KAAK,CAAC,MAAM,YAAY,CAAC,CAIpF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { LicenseResult } from '@vizor-vr/shared';
|
|
2
|
+
/**
|
|
3
|
+
* Compute a SHA-256 hash of a function's source code.
|
|
4
|
+
* Uses the Web Crypto API (available in all modern browsers).
|
|
5
|
+
*/
|
|
6
|
+
export declare function computeFunctionHash(fn: Function): Promise<string>;
|
|
7
|
+
/**
|
|
8
|
+
* Register a function for integrity checking.
|
|
9
|
+
* Must be called during initialization, before any potential tampering.
|
|
10
|
+
*/
|
|
11
|
+
export declare function registerIntegrityCheck(name: string, fn: Function): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Verify integrity of all registered functions.
|
|
14
|
+
*
|
|
15
|
+
* If any function's source has changed since registration,
|
|
16
|
+
* returns a free-tier result (tamper detected).
|
|
17
|
+
* Otherwise returns null (integrity OK).
|
|
18
|
+
*/
|
|
19
|
+
export declare function verifyIntegrity(): Promise<LicenseResult | null>;
|
|
20
|
+
/**
|
|
21
|
+
* Verify a specific function's integrity against its registered hash.
|
|
22
|
+
* Returns a free-tier result if tampered, null if OK.
|
|
23
|
+
*/
|
|
24
|
+
export declare function verifyFunctionIntegrity(name: string, fn: Function): Promise<LicenseResult | null>;
|
|
25
|
+
/**
|
|
26
|
+
* Check if integrity system has been initialized.
|
|
27
|
+
*/
|
|
28
|
+
export declare function isIntegrityInitialized(): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Get count of registered checks.
|
|
31
|
+
*/
|
|
32
|
+
export declare function getRegisteredCheckCount(): number;
|
|
33
|
+
//# sourceMappingURL=integrity.d.ts.map
|