ez-vid-ang 22.0.2 → 22.0.4

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/README.md CHANGED
@@ -7,11 +7,15 @@ Highly configurable, performant and easy-to-use Angular component library for vi
7
7
  ⚡ **Zoneless** - Built for zoneless Angular applications by default<br/>
8
8
  🧩 **Standalone architecture** – No NgModules required; simpler imports, better tree-shaking, and improved DX<br/>
9
9
  🚀 **High performance** – Powered by RxJS; change detection runs only when needed (no zone pollution)<br/>
10
- 🎨 **Highly customizable** – Styling variables, custom icons, and fonts. Bring your own assets<br/>
10
+ 🎨 **Highly customizable** – 200+ CSS variables, custom icons, and fonts. Bring your own assets<br/>
11
11
  ♿ **ARIA compliant** – All components follow ARIA standards and support custom inputs<br/>
12
12
  🌍 **Multilanguage support** – Configurable text inputs for full localization<br/>
13
13
  ▶️ **Inspired by modern players** – Familiar UX similar to popular platforms<br/>
14
14
  📱 **Responsive design** - Works across all screen sizes and devices<br/>
15
+ ⚙️ **Settings panel** – YouTube-style navigable settings menu with sub-menus<br/>
16
+ ⌨️ **Keyboard shortcuts overlay** – Press `?` to show all shortcuts, auto-integrated<br/>
17
+ 💾 **Configuration storage** – Persist user preferences (volume, speed, loop, cinema mode) to localStorage<br/>
18
+ 🎬 **Cinema mode** – Dim the page and focus on the video<br/>
15
19
 
16
20
  ## Example project
17
21
 
@@ -106,58 +110,57 @@ Add the required styles to your angular.json:
106
110
  > }
107
111
  > ```
108
112
 
109
- Import the needed components and types into your standalone component or NgModule:
110
- ```
111
- import { Component } from '@angular/core';
113
+ Import only the components you need every component is standalone and tree-shakable:
114
+ ```typescript
115
+ import { Component, signal } from '@angular/core';
112
116
  import {
113
- EvaActiveChapter,
114
- EvaBackward,
115
117
  EvaBuffering,
116
- EvaChapterMarker,
118
+ EvaControlsContainer,
119
+ EvaControlsDivider,
120
+ EvaFullscreen,
121
+ EvaMute,
117
122
  EvaOverlayPlay,
118
- EvaControlsContainer, EvaControlsDivider,
119
- EvaForward, EvaFullscreen, EvaHlsDirective,
120
- EvaMute, EvaMuteAria, EvaPlaybackSpeed, EvaPlayer,
121
- EvaPlayPause, EvaQualitySelector, EvaScrubBar,
122
- EvaScrubBarBufferingTime, EvaScrubBarCurrentTime,
123
- EvaSubtitleDisplay,EvaPictureInPicture,
124
- EvaTimeDisplay, EvaTrack, EvaTrackSelector,
125
- EvaVideoElementConfiguration, EvaVideoSource, EvaVolume
126
- } from "ez-vid-ang";
123
+ EvaPlayer,
124
+ EvaPlayPause,
125
+ EvaScrubBar,
126
+ EvaScrubBarBufferingTime,
127
+ EvaScrubBarCurrentTime,
128
+ EvaTimeDisplay,
129
+ EvaUserInteractionEventsDirective,
130
+ EvaVideoSource,
131
+ EvaVolume,
132
+ } from 'ez-vid-ang';
127
133
 
128
134
  @Component({
129
- selector: 'lt-home-page',
130
- templateUrl: './home-page.html',
131
- styleUrl: './home-page.scss',
135
+ selector: 'app-player',
136
+ templateUrl: './player.html',
137
+ styleUrl: './player.scss',
132
138
  imports: [
133
- EvaActiveChapter,
134
- EvaBackward,
135
139
  EvaBuffering,
136
- EvaOverlayPlay,
137
140
  EvaControlsContainer,
138
141
  EvaControlsDivider,
139
- EvaForward,
140
142
  EvaFullscreen,
141
- EvaHlsDirective,
142
143
  EvaMute,
143
- EvaPlaybackSpeed,
144
+ EvaOverlayPlay,
144
145
  EvaPlayer,
145
146
  EvaPlayPause,
146
- EvaPictureInPicture,
147
- EvaQualitySelector,
148
147
  EvaScrubBar,
149
148
  EvaScrubBarBufferingTime,
150
149
  EvaScrubBarCurrentTime,
151
- EvaSubtitleDisplay,
152
- EvaTimeDisplay,
153
- EvaTrackSelector,
154
- EvaVolume
155
- ]
150
+ EvaTimeDisplay,
151
+ EvaUserInteractionEventsDirective,
152
+ EvaVolume,
153
+ ],
156
154
  })
157
- export class HomePage {}
158
-
155
+ export class PlayerComponent {
156
+ protected readonly sources = signal<EvaVideoSource[]>([
157
+ { type: 'video/mp4', src: '/video.mp4' },
158
+ ]);
159
+ }
159
160
  ```
160
161
 
162
+ See [Simple Example](documentation/example-simple.md) and [Full-Featured Example](documentation/example-configuration.md) for complete usage.
163
+
161
164
  ## Development
162
165
 
163
166
  ### Linting
@@ -173,11 +176,11 @@ All magic numbers are centralized in `src/lib/constants.ts`. See [linting docume
173
176
 
174
177
  ## Components
175
178
 
176
- Library has four groups of components. You can click on the name to go to the documentation:
177
- - [**EvaCore**](documentation/core) – Main player component, directives, and providers
178
- - [**EvaControls**](documentation/controls) – Video control components and pipes
179
+ Library has four groups of components. Click on the name to go to the documentation:
180
+ - [**EvaCore**](documentation/core) – Main player component, directives (keyboard shortcuts, configuration storage), and providers
181
+ - [**EvaControls**](documentation/controls) – Video control components (play/pause, volume, scrub bar, fullscreen, playback speed, quality selector, track selector, loop, picture-in-picture, download, screenshot, context menu, settings panel, keyboard shortcuts overlay, cinema mode, error overlay, chapter list, and more)
179
182
  - [**EvaBuffering**](documentation/buffering) – Loading and buffering indicators
180
- - [**EvaStreaming**](documentation/streaming) – Directives for live streaming support
183
+ - [**EvaStreaming**](documentation/streaming) – Directives for HLS and DASH live streaming support
181
184
 
182
185
  ---
183
186
  ### 💖 Support This Project
@@ -108,3 +108,20 @@
108
108
  --eva-volume-knob-size: 15px;
109
109
  --eva-volume-knob-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
110
110
  }
111
+
112
+ .eva-cinema-backdrop {
113
+ position: fixed;
114
+ top: 0;
115
+ left: 0;
116
+ width: 100vw;
117
+ height: 100vh;
118
+ z-index: var(--eva-cinema-backdrop-z-index, 999);
119
+ background: var(--eva-cinema-backdrop-background, rgba(0, 0, 0, 0.7));
120
+ cursor: pointer;
121
+ animation: eva-cinema-backdrop-fade-in var(--eva-transition-duration, 0.25s) ease forwards;
122
+ }
123
+
124
+ @keyframes eva-cinema-backdrop-fade-in {
125
+ from { opacity: 0; }
126
+ to { opacity: 1; }
127
+ }