@evercam/ui 0.0.20 → 0.0.22-beta.1

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.
@@ -0,0 +1,63 @@
1
+ import Vue from "vue";
2
+ export type IVideoSources = string | {
3
+ type: string;
4
+ src: string;
5
+ }[];
6
+ export declare const VIDEO_PLAYER_EVENTS: string[];
7
+ declare const _default: import("vue/types/vue").ExtendedVue<Vue<Record<string, any>, Record<string, any>, never, never, (event: string, ...args: any[]) => Vue<Record<string, any>, Record<string, any>, never, never, any>>, {
8
+ playing: boolean;
9
+ percentagePlayed: number;
10
+ videoMuted: boolean;
11
+ videoLength: string;
12
+ duration: number;
13
+ videoDuration: number;
14
+ currentTime: string;
15
+ realtime: number;
16
+ isScrubbing: boolean;
17
+ wasPaused: boolean;
18
+ volume: number;
19
+ isFullscreen: boolean;
20
+ isFinished: boolean;
21
+ isLoading: boolean;
22
+ playbackRate: string;
23
+ isMiniPlayerMode: boolean;
24
+ }, {
25
+ bindEvents(): void;
26
+ bindVideoEvent(which: string): void;
27
+ handleFullscreenChange(): void;
28
+ isLooped(): boolean;
29
+ handleEnded(): void;
30
+ handleLoading(): void;
31
+ play(): void;
32
+ handleVolumeChange(e: Event): void;
33
+ setVolume(state: number): void;
34
+ pause(): void;
35
+ togglePlay(): void;
36
+ setPlaying(state: boolean): void;
37
+ seekToPercentage(percentage: number): void;
38
+ convertTimeToDuration(seconds: number): string;
39
+ mute(): void;
40
+ unmute(): void;
41
+ toggleMute(): void;
42
+ setMuted(state: boolean): void;
43
+ closeFullscreenMode(): void;
44
+ openFullscreenMode(): void;
45
+ toggleFullscreenMode(): void;
46
+ toggleMiniPlayerMode(): void;
47
+ getDuration(): void;
48
+ handleTimeUpdate(): void;
49
+ handleTimelineUpdate(e: MouseEvent): void;
50
+ skip(duration?: number): void;
51
+ toggleScrubbing(e: MouseEvent): Promise<void>;
52
+ changePlaybackSpeed(): void;
53
+ handleKeyDown(e: KeyboardEvent): void;
54
+ }, {
55
+ hasMultipleSources: boolean;
56
+ hasStartedOrFinished: boolean;
57
+ withControls: "" | "hide";
58
+ }, {
59
+ sources: IVideoSources;
60
+ videoListeners: {};
61
+ videoOptions: {};
62
+ }, {}, import("vue/types/v3-component-options").ComponentOptionsMixin, import("vue/types/v3-component-options").ComponentOptionsMixin>;
63
+ export default _default;
@@ -6,5 +6,6 @@ export declare const BadgeSizes: readonly [Size.dot, Size.xs, Size.sm, Size.md,
6
6
  export declare const AvatarSizes: readonly [Size.xs, Size.sm, Size.md, Size.lg, Size.xl, (typeof Size)["2xl"]];
7
7
  export declare const IconSizes: readonly [Size.xs, Size.sm, Size.md, Size.md, Size.lg, Size.xl, (typeof Size)["2xl"], (typeof Size)["3xl"], (typeof Size)["4xl"], (typeof Size)["5xl"], (typeof Size)["6xl"], (typeof Size)["7xl"], (typeof Size)["8xl"], (typeof Size)["9xl"]];
8
8
  export declare const BadgeColors: readonly [BaseColor.warning, BaseColor.error, BaseColor.info, BaseColor.success, BaseColor.primary, BaseColor.default];
9
+ export declare const EVENTS: string[];
9
10
  declare const _default: {};
10
11
  export default _default;
@@ -4,6 +4,7 @@ import EIcon from './components/EIcon.vue';
4
4
  import ESpinner from './components/ESpinner.vue';
5
5
  import ERow from './components/ERow.vue';
6
6
  import ECol from './components/ECol.vue';
7
+ import EVideoPlayer from './components/EVideoPlayer.vue';
7
8
  import { VueConstructor } from "vue";
8
9
  export declare const components: {
9
10
  EAvatar: import("vue/types/vue").ExtendedVue<import("vue").default<Record<string, any>, Record<string, any>, never, never, (event: string, ...args: any[]) => import("vue").default<Record<string, any>, Record<string, any>, never, never, any>>, {
@@ -115,11 +116,68 @@ export declare const components: {
115
116
  xs: string | number | boolean;
116
117
  xl: string | number | boolean;
117
118
  }, {}, import("vue/types/v3-component-options").ComponentOptionsMixin, import("vue/types/v3-component-options").ComponentOptionsMixin>;
119
+ EVideoPlayer: import("vue/types/vue").ExtendedVue<import("vue").default<Record<string, any>, Record<string, any>, never, never, (event: string, ...args: any[]) => import("vue").default<Record<string, any>, Record<string, any>, never, never, any>>, {
120
+ playing: boolean;
121
+ percentagePlayed: number;
122
+ videoMuted: boolean;
123
+ videoLength: string;
124
+ duration: number;
125
+ videoDuration: number;
126
+ currentTime: string;
127
+ realtime: number;
128
+ isScrubbing: boolean;
129
+ wasPaused: boolean;
130
+ volume: number;
131
+ isFullscreen: boolean;
132
+ isFinished: boolean;
133
+ isLoading: boolean;
134
+ playbackRate: string;
135
+ isMiniPlayerMode: boolean;
136
+ }, {
137
+ bindEvents(): void;
138
+ bindVideoEvent(which: string): void;
139
+ handleFullscreenChange(): void;
140
+ isLooped(): boolean;
141
+ handleEnded(): void;
142
+ handleLoading(): void;
143
+ play(): void;
144
+ handleVolumeChange(e: Event): void;
145
+ setVolume(state: number): void;
146
+ pause(): void;
147
+ togglePlay(): void;
148
+ setPlaying(state: boolean): void;
149
+ seekToPercentage(percentage: number): void;
150
+ convertTimeToDuration(seconds: number): string;
151
+ mute(): void;
152
+ unmute(): void;
153
+ toggleMute(): void;
154
+ setMuted(state: boolean): void;
155
+ closeFullscreenMode(): void;
156
+ openFullscreenMode(): void;
157
+ toggleFullscreenMode(): void;
158
+ toggleMiniPlayerMode(): void;
159
+ getDuration(): void;
160
+ handleTimeUpdate(): void;
161
+ handleTimelineUpdate(e: MouseEvent): void;
162
+ skip(duration?: number): void;
163
+ toggleScrubbing(e: MouseEvent): Promise<void>;
164
+ changePlaybackSpeed(): void;
165
+ handleKeyDown(e: KeyboardEvent): void;
166
+ }, {
167
+ hasMultipleSources: boolean;
168
+ hasStartedOrFinished: boolean;
169
+ withControls: "" | "hide";
170
+ }, {
171
+ sources: import('./components/EVideoPlayer.vue').IVideoSources;
172
+ videoListeners: {};
173
+ videoOptions: {};
174
+ }, {}, import("vue/types/v3-component-options").ComponentOptionsMixin, import("vue/types/v3-component-options").ComponentOptionsMixin>;
118
175
  };
119
176
  declare const _default: {
120
177
  install(Vue: VueConstructor): void;
121
178
  };
122
179
  export default _default;
123
- export { EAvatar, EBadge, EIcon, ESpinner, ERow, ECol };
180
+ export { EAvatar, EBadge, EIcon, ESpinner, ERow, ECol, EVideoPlayer };
124
181
  export * from './constants';
125
182
  export * from './types';
183
+ export * from './utils';
@@ -0,0 +1,3 @@
1
+ export declare function isFullScreen(): boolean;
2
+ export declare function makeFullScreen(element: HTMLElement): any;
3
+ export declare function exitFullScreen(): any;
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- .e-spinner[data-v-29711f67]{vertical-align:center}.e-spinner__primary[data-v-29711f67],.e-spinner__secondary[data-v-29711f67]{stroke-width:0;animation:fade-29711f67;animation-iteration-count:infinite}@keyframes fade-29711f67{0%{fill-opacity:0}50%{fill-opacity:1}to{fill-opacity:0}}.e-row.e-row--no-gutters{margin:0}.e-row.e-row--no-gutters>.e-col{padding:0}.e-col{padding:.75rem}
1
+ .e-spinner[data-v-f6962f4a]{vertical-align:center}.e-spinner__primary[data-v-f6962f4a],.e-spinner__secondary[data-v-f6962f4a]{stroke-width:0;animation:fade-f6962f4a;animation-iteration-count:infinite}@keyframes fade-f6962f4a{0%{fill-opacity:0}50%{fill-opacity:1}to{fill-opacity:0}}.e-row.e-row--no-gutters{margin:0}.e-row.e-row--no-gutters>.e-col{padding:0}.e-col{padding:.75rem}.spinner-container[data-v-428638d2]{position:absolute;background:linear-gradient(to top,rgba(0,0,0,.65),transparent);inset:0;display:flex;justify-content:center;align-items:center;vertical-align:middle}.video-container[data-v-428638d2]{position:relative;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;margin:0 auto}.video-container.theater[data-v-428638d2],.video-container.full-screen[data-v-428638d2]{max-width:initial;width:100%}.video-container.theater[data-v-428638d2]{max-height:90vh}.video-container.full-screen[data-v-428638d2]{max-height:100vh}video[data-v-428638d2]{width:100%;height:inherit}.video-controls-container[data-v-428638d2]{position:absolute;bottom:0;left:0;right:0;color:#fff;z-index:100;opacity:0;transition:opacity .15s ease-in-out}.hide[data-v-428638d2]{display:none}.video-controls-container[data-v-428638d2]:before{content:"";position:absolute;bottom:0;background:linear-gradient(to top,rgba(0,0,0,.75),transparent);width:100%;aspect-ratio:6 / 1;z-index:-1;pointer-events:none}.video-container:hover .video-controls-container[data-v-428638d2],.video-container:focus-within .video-controls-container[data-v-428638d2],.video-container.paused .video-controls-container[data-v-428638d2]{opacity:1}.video-controls-container .controls[data-v-428638d2]{display:flex;gap:.5rem;padding:.25rem;align-items:center;width:100%}.video-controls-container .controls button[data-v-428638d2]{background:none;border:none;color:inherit;padding:0;height:24px;width:24px;font-size:1.1rem;cursor:pointer;opacity:.85;transition:opacity .15s ease-in-out}.video-controls-container .controls button[data-v-428638d2]:hover{opacity:1}.pause-icon[data-v-428638d2],.play-icon[data-v-428638d2],.picture-on-picture[data-v-428638d2],.open[data-v-428638d2],.close[data-v-428638d2],.speed-btn.wide-btn[data-v-428638d2]{height:24px;width:24px}.video-container.theater .tall[data-v-428638d2]{display:none}.video-container:not(.theater) .wide[data-v-428638d2]{display:none}.volume-container[data-v-428638d2]{display:flex;align-items:center}.volume-slider[data-v-428638d2]{width:0;transform-origin:left;transform:scaleX(0);transition:width .15s ease-in-out,transform .15s ease-in-out}.volume-container:hover .volume-slider[data-v-428638d2],.volume-slider[data-v-428638d2]:focus-within{width:100px;transform:scaleX(1)}.duration-container[data-v-428638d2]{display:flex;align-items:center;gap:.25rem;flex-grow:1}.video-container.captions .captions-btn[data-v-428638d2]{border-bottom:3px solid red}.video-controls-container .controls button.wide-btn[data-v-428638d2]{width:50px}.timeline-container[data-v-428638d2]{width:100%;height:7px;margin-inline:.5rem;cursor:pointer;display:flex;align-items:center}.timeline[data-v-428638d2]{background-color:#64646480;height:3px;width:100%;position:relative}.timeline[data-v-428638d2]:before{content:"";position:absolute;left:0;top:0;bottom:0;right:calc(100% - var(--preview-position) * 100%);background-color:#969696;display:none}.timeline[data-v-428638d2]:after{content:"";position:absolute;left:0;top:0;bottom:0;right:calc(100% - var(--progress-position) * 100%);background-color:red}.timeline .thumb-indicator[data-v-428638d2]{--scale: 0;position:absolute;transform:translate(-50%) scale(var(--scale));height:200%;top:-50%;left:calc(var(--progress-position) * 100%);background-color:red;border-radius:50%;transition:transform .15s ease-in-out;aspect-ratio:1 / 1}.video-container.scrubbing .thumbnail-img[data-v-428638d2]{display:block}.video-container.scrubbing .timeline[data-v-428638d2]:before,.timeline-container:hover .timeline[data-v-428638d2]:before{display:block}.video-container.scrubbing .thumb-indicator[data-v-428638d2],.timeline-container:hover .thumb-indicator[data-v-428638d2]{--scale: 1}.video-container.scrubbing .timeline[data-v-428638d2],.timeline-container:hover .timeline[data-v-428638d2]{height:100%}