@evercam/ui 0.0.55-beta.12 → 0.0.55-beta.13

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.
@@ -7,6 +7,8 @@ import ECol from './components/ECol.vue';
7
7
  import EVideoPlayer from './components/EVideoPlayer.vue';
8
8
  import ETimeline from './components/ETimeline.vue';
9
9
  import EVideoEmbed from './components/EVideoEmbed.vue';
10
+ import EToggleSwitch from './components/EToggleSwitch.vue';
11
+ import EZoomable from './components/EZoomable.vue';
10
12
  import { VueConstructor } from "vue";
11
13
  export declare const components: {
12
14
  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>>, {
@@ -118,7 +120,115 @@ export declare const components: {
118
120
  xs: string | number | boolean;
119
121
  xl: string | number | boolean;
120
122
  }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
121
- 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>>, {
123
+ EVideoPlayer: import("vue").DefineComponent<{
124
+ targetTimestamp: {
125
+ type: (StringConstructor | DateConstructor)[];
126
+ default: undefined;
127
+ };
128
+ sources: {
129
+ type: import("vue").PropType<string | import('./components/EVideoPlayer.vue').VideoSource[]>;
130
+ required: true;
131
+ };
132
+ videoListeners: {
133
+ type: import("vue").PropType<Partial<HTMLVideoElement>>;
134
+ default: () => {};
135
+ };
136
+ videoOptions: {
137
+ type: import("vue").PropType<Partial<HTMLVideoElement>>;
138
+ default: () => {};
139
+ };
140
+ isHls: {
141
+ type: BooleanConstructor;
142
+ default: boolean;
143
+ };
144
+ streamingToken: {
145
+ type: StringConstructor;
146
+ default: string;
147
+ };
148
+ isLiveView: {
149
+ type: BooleanConstructor;
150
+ default: boolean;
151
+ };
152
+ pauseOnClick: {
153
+ type: BooleanConstructor;
154
+ default: boolean;
155
+ };
156
+ isHlsLoading: {
157
+ type: BooleanConstructor;
158
+ default: boolean;
159
+ };
160
+ isPlaying: {
161
+ type: BooleanConstructor;
162
+ default: boolean;
163
+ };
164
+ preloadedInterval: {
165
+ type: import("vue").PropType<{
166
+ start: string;
167
+ end: string;
168
+ }>;
169
+ default: () => {};
170
+ };
171
+ selectedResolution: {
172
+ type: import("vue").PropType<import('./components/EVideoPlayer.vue').EdgeVideoResolution | undefined>;
173
+ default: undefined;
174
+ };
175
+ isLive: {
176
+ type: BooleanConstructor;
177
+ default: boolean;
178
+ };
179
+ isZoomable: {
180
+ type: BooleanConstructor;
181
+ default: boolean;
182
+ };
183
+ zoomableIgnorePointerEvents: {
184
+ type: BooleanConstructor;
185
+ default: boolean;
186
+ };
187
+ blurBackground: {
188
+ type: BooleanConstructor;
189
+ default: boolean;
190
+ };
191
+ isRecordings: {
192
+ type: BooleanConstructor;
193
+ default: boolean;
194
+ };
195
+ progressBarEvents: {
196
+ type: ArrayConstructor;
197
+ default: () => never[];
198
+ };
199
+ progressBarFrames: {
200
+ type: ArrayConstructor;
201
+ default: () => never[];
202
+ };
203
+ progressBarFrameIndex: {
204
+ type: NumberConstructor;
205
+ default: number;
206
+ };
207
+ progressBarPreloadedFrames: {
208
+ type: ArrayConstructor;
209
+ default: () => never[];
210
+ };
211
+ thumbnailsUrls: {
212
+ type: import("vue").PropType<string[]>;
213
+ default: () => never[];
214
+ };
215
+ timezone: {
216
+ type: StringConstructor;
217
+ default: string;
218
+ };
219
+ playPauseAnimation: {
220
+ type: BooleanConstructor;
221
+ default: boolean;
222
+ };
223
+ disablePlayPauseAnimation: {
224
+ type: BooleanConstructor;
225
+ default: boolean;
226
+ };
227
+ isWebRtc: {
228
+ type: BooleanConstructor;
229
+ default: boolean;
230
+ };
231
+ }, {}, {
122
232
  playing: boolean;
123
233
  percentagePlayed: number;
124
234
  videoLength: string;
@@ -133,9 +243,16 @@ export declare const components: {
133
243
  isLoading: boolean;
134
244
  isError: boolean;
135
245
  player: import("hls.js").default;
246
+ playbackRetries: number;
247
+ }, {
248
+ sourceItems(): import('./components/EVideoPlayer.vue').VideoSource[];
249
+ hasStartedOrFinished(): boolean;
250
+ withControls(): "" | "hide";
136
251
  }, {
137
252
  initHls(): void;
253
+ onContainerClick(): void;
138
254
  handle404Error(): void;
255
+ handleHlsError(_: import("hls.js").Events.ERROR, data: import("hls.js").ErrorData): void;
139
256
  bindEvents(): void;
140
257
  unbindEvents(): void;
141
258
  bindVideoEvent(which: string): void;
@@ -148,9 +265,9 @@ export declare const components: {
148
265
  handleScrubbingOnMouseEnd(e: MouseEvent): void;
149
266
  handleEnded(): void;
150
267
  handleLoading(): void;
151
- play(): void;
268
+ play(): Promise<void>;
152
269
  pause(): void;
153
- togglePlay(): void;
270
+ togglePlay(): Promise<void>;
154
271
  setPlaying(state: boolean): void;
155
272
  seekToPercentage(percentage: number): void;
156
273
  convertTimeToDuration(seconds: number): string;
@@ -163,18 +280,144 @@ export declare const components: {
163
280
  skip(duration?: number): void;
164
281
  toggleScrubbing(e: MouseEvent): Promise<void>;
165
282
  handleKeyDown(e: KeyboardEvent): void;
166
- }, {
167
- sourceItems: import('./components/EVideoPlayer.vue').VideoSource[];
168
- hasStartedOrFinished: boolean;
169
- withControls: "" | "hide";
170
- }, {
171
- sources: string | import('./components/EVideoPlayer.vue').VideoSource[];
172
- videoListeners: {};
173
- videoOptions: {};
283
+ }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
284
+ targetTimestamp: {
285
+ type: (StringConstructor | DateConstructor)[];
286
+ default: undefined;
287
+ };
288
+ sources: {
289
+ type: import("vue").PropType<string | import('./components/EVideoPlayer.vue').VideoSource[]>;
290
+ required: true;
291
+ };
292
+ videoListeners: {
293
+ type: import("vue").PropType<Partial<HTMLVideoElement>>;
294
+ default: () => {};
295
+ };
296
+ videoOptions: {
297
+ type: import("vue").PropType<Partial<HTMLVideoElement>>;
298
+ default: () => {};
299
+ };
300
+ isHls: {
301
+ type: BooleanConstructor;
302
+ default: boolean;
303
+ };
304
+ streamingToken: {
305
+ type: StringConstructor;
306
+ default: string;
307
+ };
308
+ isLiveView: {
309
+ type: BooleanConstructor;
310
+ default: boolean;
311
+ };
312
+ pauseOnClick: {
313
+ type: BooleanConstructor;
314
+ default: boolean;
315
+ };
316
+ isHlsLoading: {
317
+ type: BooleanConstructor;
318
+ default: boolean;
319
+ };
320
+ isPlaying: {
321
+ type: BooleanConstructor;
322
+ default: boolean;
323
+ };
324
+ preloadedInterval: {
325
+ type: import("vue").PropType<{
326
+ start: string;
327
+ end: string;
328
+ }>;
329
+ default: () => {};
330
+ };
331
+ selectedResolution: {
332
+ type: import("vue").PropType<import('./components/EVideoPlayer.vue').EdgeVideoResolution | undefined>;
333
+ default: undefined;
334
+ };
335
+ isLive: {
336
+ type: BooleanConstructor;
337
+ default: boolean;
338
+ };
339
+ isZoomable: {
340
+ type: BooleanConstructor;
341
+ default: boolean;
342
+ };
343
+ zoomableIgnorePointerEvents: {
344
+ type: BooleanConstructor;
345
+ default: boolean;
346
+ };
347
+ blurBackground: {
348
+ type: BooleanConstructor;
349
+ default: boolean;
350
+ };
351
+ isRecordings: {
352
+ type: BooleanConstructor;
353
+ default: boolean;
354
+ };
355
+ progressBarEvents: {
356
+ type: ArrayConstructor;
357
+ default: () => never[];
358
+ };
359
+ progressBarFrames: {
360
+ type: ArrayConstructor;
361
+ default: () => never[];
362
+ };
363
+ progressBarFrameIndex: {
364
+ type: NumberConstructor;
365
+ default: number;
366
+ };
367
+ progressBarPreloadedFrames: {
368
+ type: ArrayConstructor;
369
+ default: () => never[];
370
+ };
371
+ thumbnailsUrls: {
372
+ type: import("vue").PropType<string[]>;
373
+ default: () => never[];
374
+ };
375
+ timezone: {
376
+ type: StringConstructor;
377
+ default: string;
378
+ };
379
+ playPauseAnimation: {
380
+ type: BooleanConstructor;
381
+ default: boolean;
382
+ };
383
+ disablePlayPauseAnimation: {
384
+ type: BooleanConstructor;
385
+ default: boolean;
386
+ };
387
+ isWebRtc: {
388
+ type: BooleanConstructor;
389
+ default: boolean;
390
+ };
391
+ }>>, {
392
+ timezone: string;
393
+ isPlaying: boolean;
394
+ isLive: boolean;
395
+ targetTimestamp: string | Date;
396
+ thumbnailsUrls: string[];
397
+ selectedResolution: import('./components/EVideoPlayer.vue').EdgeVideoResolution | undefined;
398
+ isHlsLoading: boolean;
399
+ videoListeners: Partial<HTMLVideoElement>;
400
+ videoOptions: Partial<HTMLVideoElement>;
174
401
  isHls: boolean;
175
402
  streamingToken: string;
176
403
  isLiveView: boolean;
177
- }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
404
+ pauseOnClick: boolean;
405
+ preloadedInterval: {
406
+ start: string;
407
+ end: string;
408
+ };
409
+ isZoomable: boolean;
410
+ zoomableIgnorePointerEvents: boolean;
411
+ blurBackground: boolean;
412
+ isRecordings: boolean;
413
+ progressBarEvents: unknown[];
414
+ progressBarFrames: unknown[];
415
+ progressBarFrameIndex: number;
416
+ progressBarPreloadedFrames: unknown[];
417
+ playPauseAnimation: boolean;
418
+ disablePlayPauseAnimation: boolean;
419
+ isWebRtc: boolean;
420
+ }>;
178
421
  ETimeline: 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>>, {
179
422
  tooltip: HTMLElement;
180
423
  cursor: HTMLElement;
@@ -311,7 +554,8 @@ export declare const components: {
311
554
  initCurtains(): void;
312
555
  createCurtains(): void;
313
556
  updateCurtains(): void;
314
- updateForbiddenIntervals(reset?: boolean): void;
557
+ initForbiddenIntervals(): void;
558
+ updateForbiddenIntervals(): void;
315
559
  drawEventsGroups(): void;
316
560
  drawLineGraphEventsGroups(): void;
317
561
  drawLineGraph({ events, gElement, color, type, }: {
@@ -326,13 +570,14 @@ export declare const components: {
326
570
  color: string;
327
571
  type: string;
328
572
  }): void;
329
- drawSingleBarEventsGroup({ type, eventsGroup, milestone, dots, dotsSize, bottom, }: {
573
+ drawSingleBarEventsGroup({ type, eventsGroup, index, milestone, height, dots, dotsSize, }: {
330
574
  type: string;
331
575
  eventsGroup: import('./types').TimelineEventsGroup;
576
+ index?: number | undefined;
332
577
  milestone?: boolean | undefined;
578
+ height?: number | undefined;
333
579
  dots?: boolean | undefined;
334
580
  dotsSize?: number | undefined;
335
- bottom?: boolean | undefined;
336
581
  }): void;
337
582
  drawBarEventsGroups(): void;
338
583
  drawMilestonesPlaceholder(): void;
@@ -342,8 +587,6 @@ export declare const components: {
342
587
  border: string;
343
588
  };
344
589
  getMilestoneGroupYPosition(groupName: string): number;
345
- getBarGroupYPosition(groupName: string, bottom?: boolean | undefined): number;
346
- getBarGroupHeight(eventsGroup: import('./types').TimelineEventsGroup): number;
347
590
  updateMilestonesPositions(): void;
348
591
  drawBarChartEventsGroups(): void;
349
592
  drawProgressIndicator({ yPosition, type, isLoading, }: {
@@ -358,7 +601,7 @@ export declare const components: {
358
601
  color: string;
359
602
  height?: number | undefined;
360
603
  }): void;
361
- drawBars({ events, gElement, yPosition, color, type, dots, dotsSize, height, barBorderRadius, }: {
604
+ drawBars({ events, gElement, yPosition, color, type, dots, dotsSize, }: {
362
605
  events: import('./types').TimelineEvent[];
363
606
  gElement: import("d3-selection").Selection<SVGGElement, any, any, any>;
364
607
  yPosition: number;
@@ -366,8 +609,6 @@ export declare const components: {
366
609
  type: string;
367
610
  dots?: boolean | undefined;
368
611
  dotsSize?: number | undefined;
369
- height?: number | undefined;
370
- barBorderRadius?: number | undefined;
371
612
  }): void;
372
613
  drawBarsChart({ events, gElement, color, yOffset, type, index, }: {
373
614
  events: import('./types').TimelineEvent[];
@@ -421,7 +662,6 @@ export declare const components: {
421
662
  getSortedEvents(events: import('./types').TimelineEvent[]): import('./types').TimelineEvent[];
422
663
  }, {
423
664
  combinedBarsHeight: number;
424
- combinedBottomBarsHeight: number;
425
665
  combinedMilestonesHeight: number;
426
666
  milestonesYOffset: number;
427
667
  chartsYOffset: number;
@@ -468,11 +708,12 @@ export declare const components: {
468
708
  barYPadding: number;
469
709
  barXPadding: number;
470
710
  chartMinHeight: number;
471
- chartMinLabelHeight: number;
472
711
  minZoom: number;
473
712
  maxZoom: number;
474
713
  minDate: string;
475
714
  maxDate: string;
715
+ minVisibleDate: string;
716
+ maxVisibleDate: string;
476
717
  cursorTimestamp: string | undefined;
477
718
  selectedClass: string | undefined;
478
719
  panOnDateClick: boolean;
@@ -486,8 +727,6 @@ export declare const components: {
486
727
  zoomToBoundariesTransitionDuration: number;
487
728
  milestoneBulletSize: number;
488
729
  milestonesFirst: boolean;
489
- forbiddenIntervals: import('./types').TimelineForbiddenInterval[];
490
- forbiddenIntervalColor: string;
491
730
  }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
492
731
  EVideoEmbed: import("vue").DefineComponent<{
493
732
  videoUrl: {
@@ -532,12 +771,118 @@ export declare const components: {
532
771
  iframeListeners: Partial<HTMLIFrameElement>;
533
772
  iframeOptions: Record<string, any>;
534
773
  }>;
774
+ EToggleSwitch: import("vue").DefineComponent<{
775
+ options: {
776
+ type: import("vue").PropType<import('./components/EToggleSwitch.vue').EToggleSwitchOptions[]>;
777
+ required: true;
778
+ };
779
+ color: {
780
+ type: import("vue").PropType<"primary" | "brand" | "gray">;
781
+ default: string;
782
+ };
783
+ size: {
784
+ type: import("vue").PropType<"lg" | "md" | "sm">;
785
+ default: string;
786
+ };
787
+ defaultValue: {
788
+ type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
789
+ default: null;
790
+ };
791
+ }, {}, {
792
+ value: any;
793
+ }, {}, {
794
+ handleClick(value: any): void;
795
+ }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
796
+ options: {
797
+ type: import("vue").PropType<import('./components/EToggleSwitch.vue').EToggleSwitchOptions[]>;
798
+ required: true;
799
+ };
800
+ color: {
801
+ type: import("vue").PropType<"primary" | "brand" | "gray">;
802
+ default: string;
803
+ };
804
+ size: {
805
+ type: import("vue").PropType<"lg" | "md" | "sm">;
806
+ default: string;
807
+ };
808
+ defaultValue: {
809
+ type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
810
+ default: null;
811
+ };
812
+ }>>, {
813
+ color: "primary" | "brand" | "gray";
814
+ size: "lg" | "md" | "sm";
815
+ defaultValue: string | number | boolean;
816
+ }>;
817
+ EZoomable: import("vue").DefineComponent<{
818
+ ignorePointerEvents: {
819
+ type: BooleanConstructor;
820
+ default: boolean;
821
+ };
822
+ withOverlay: {
823
+ type: BooleanConstructor;
824
+ default: boolean;
825
+ };
826
+ }, {}, {
827
+ scale: number;
828
+ minScale: number;
829
+ maxScale: number;
830
+ top: number;
831
+ left: number;
832
+ isPanning: boolean;
833
+ panStart: {
834
+ x: number;
835
+ y: number;
836
+ };
837
+ isPinching: boolean;
838
+ previousPinchDistance: number;
839
+ pinchDistance: number;
840
+ pointers: {};
841
+ transform: string;
842
+ }, {
843
+ contentStyle(): {
844
+ transform: string;
845
+ };
846
+ isZoomed(): boolean;
847
+ }, {
848
+ updateZoomScale(): void;
849
+ handleZoom(e: any): void;
850
+ handleMouseDown(e: any): void;
851
+ handleMouseUp(): void;
852
+ handleMouseLeave(): void;
853
+ handleMouseMove(e: any): void;
854
+ applyBoundsCorrection(): void;
855
+ updateTransform(): void;
856
+ getPointersDistance(a: any, b: any): number;
857
+ getPointersMidPoint(a: any, b: any): {
858
+ x: any;
859
+ y: any;
860
+ };
861
+ updatePointerEvent(e: any): void;
862
+ clearPointerEvent(e: any): void;
863
+ updatePinchDistance(): void;
864
+ handlePointerDown(e: any): void;
865
+ handlePointerMove(e: any): void;
866
+ handlePointerUp(e: any): void;
867
+ }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
868
+ ignorePointerEvents: {
869
+ type: BooleanConstructor;
870
+ default: boolean;
871
+ };
872
+ withOverlay: {
873
+ type: BooleanConstructor;
874
+ default: boolean;
875
+ };
876
+ }>>, {
877
+ ignorePointerEvents: boolean;
878
+ withOverlay: boolean;
879
+ }>;
535
880
  };
536
881
  declare const _default: {
537
882
  install(Vue: VueConstructor): void;
538
883
  };
539
884
  export default _default;
540
- export { EAvatar, EBadge, EIcon, ESpinner, ERow, ECol, EVideoPlayer, ETimeline, EVideoEmbed, };
885
+ export { EAvatar, EBadge, EIcon, ESpinner, ERow, ECol, EVideoPlayer, ETimeline, EVideoEmbed, EToggleSwitch, EZoomable, };
541
886
  export * from './constants';
542
887
  export * from './types';
543
888
  export * from './utils';
@@ -25,6 +25,13 @@ export declare enum BaseColor {
25
25
  brand = "brand",
26
26
  default = "default"
27
27
  }
28
+ export declare enum ImageQuality {
29
+ _360 = "360",
30
+ _480 = "480",
31
+ _720 = "720",
32
+ _1080 = "1080",
33
+ auto = "auto"
34
+ }
28
35
  export type TBadgeSize = (typeof BadgeSizes)[number];
29
36
  export type TAvatarSize = (typeof AvatarSizes)[number];
30
37
  export type TIconSize = (typeof IconSizes)[number];
@@ -98,8 +105,6 @@ export type TimelineEventsGroup = {
98
105
  milestonesDotSize?: number;
99
106
  height?: number;
100
107
  dotsSize?: number;
101
- bottom?: boolean;
102
- barBorderRadius?: number;
103
108
  };
104
109
  export type TimelineEventsByType = {
105
110
  [eventsType: string]: TimelineEventsGroup;
@@ -122,9 +127,5 @@ export type TimelineMarker = {
122
127
  maxDate?: string;
123
128
  [key: string]: any;
124
129
  };
125
- export type TimelineForbiddenInterval = {
126
- startDate: Date | string | number;
127
- endDate: Date | string | number;
128
- };
129
130
  declare const _default: {};
130
131
  export default _default;
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}.spinner-container[data-v-9071f674]{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-9071f674]{position:relative;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;margin:0 auto}.video-container.full-screen[data-v-9071f674]{max-width:initial;width:100%;max-height:100vh}video[data-v-9071f674]{width:100%;height:inherit}.video-controls-container[data-v-9071f674]{position:absolute;bottom:0;left:0;right:0;color:#fff;z-index:100;opacity:0;transition:opacity .15s ease-in-out}.hide[data-v-9071f674]{display:none}.video-controls-container[data-v-9071f674]: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-9071f674],.video-container:focus-within .video-controls-container[data-v-9071f674],.video-container.paused .video-controls-container[data-v-9071f674]{opacity:1}.video-controls-container .controls[data-v-9071f674]{display:flex;gap:.5rem;padding:.75rem 1rem;align-items:center;width:100%}.video-controls-container .controls button[data-v-9071f674]{background:none;border:none;color:inherit;padding:0;height:32px;width:32px;font-size:1.35rem;cursor:pointer;opacity:.85;transition:opacity .15s ease-in-out}.video-controls-container .controls button[data-v-9071f674]:hover{opacity:1}.duration-container[data-v-9071f674]{display:flex;align-items:center;gap:.25rem;flex-grow:1}.video-container.captions .captions-btn[data-v-9071f674]{border-bottom:3px solid red}.video-controls-container .controls button.wide-btn[data-v-9071f674]{width:50px}.timeline-container[data-v-9071f674]{width:100%;height:7px;margin-inline:.5rem;cursor:pointer;display:flex;align-items:center}.timeline[data-v-9071f674]{background-color:#64646480;height:3px;width:100%;position:relative}.timeline[data-v-9071f674]: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-9071f674]: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-9071f674]{--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-9071f674]{display:block}.video-container.scrubbing .timeline[data-v-9071f674]:before,.timeline-container:hover .timeline[data-v-9071f674]:before{display:block}.video-container.scrubbing .thumb-indicator[data-v-9071f674],.timeline-container:hover .thumb-indicator[data-v-9071f674]{--scale: 1}.video-container.scrubbing .timeline[data-v-9071f674],.timeline-container:hover .timeline[data-v-9071f674]{height:100%}.e-tl-milestone{position:absolute;border-radius:10em;box-sizing:border-box}.e-tl-milestone-content{cursor:pointer}.e-tl-milestone--bullet{transform:translate(-50%,-50%)}.e-tl-milestone--bullet .e-tl-milestone-content{opacity:0;width:0;height:0;white-space:nowrap;pointer-events:none;cursor:pointer}.e-tl-milestone--bullet.e-tl-milestone--hovered{cursor:pointer;min-height:26px;padding:0 8px;border-radius:.5em}.e-tl-milestone--bullet.e-tl-milestone--hovered .e-tl-milestone-content{opacity:1;font-size:small;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.e-tl-milestone--bullet .e-tl-milestone-label{position:absolute;top:0;left:0;opacity:1;pointer-events:none;height:100%;width:100%}.e-tl-milestone--bullet.e-tl-milestone--hovered .e-tl-milestone-label{opacity:0}.e-tl-milestone--dot{transform:translateY(-50%)}.e-tl-milestone-dot--hovered .e-tl-milestone-dot-container{padding:0 3em;transform:translate(-50%);opacity:1}.e-tl-milestone-dot-line{position:absolute}.e-tl-milestone-dot-dot{position:absolute;border-radius:50%}.e-tl-milestone-dot-container{opacity:0;position:absolute;padding:0 .3em;transform:translate(-50%,-100%);cursor:pointer}.e-timeline svg{display:block}.e-timeline .x-axis-overview .domain,.e-timeline .x-axis-detailed .domain,.e-timeline .x-axis-overviewBackground .domain,.e-timeline .x-axis-detailedBackground .domain{display:none}.e-timeline .x-axis-detailedBackground .domain,.e-timeline .x-axis-detailedBackground text{display:none}.e-timeline .x-axis-overview>g.tick>line{opacity:.1;stroke-width:3;stroke-linecap:round}.e-timeline .x-axis-detailed>g.tick>line{opacity:.1;stroke-linecap:round}.e-timeline .x-axis-detailedBackground>g.tick>line{opacity:.075;stroke-linecap:round}.e-timeline--dark .tick line{stroke:#fff}.e-timeline--dark .tick text{fill:#fff}@keyframes moveGradient{0%{transform:translate(-50%)}to{transform:translate(100%)}}@keyframes pulse-rect{0%{filter:saturate(3.5) drop-shadow(0 0 1px #0008)}50%{filter:saturate(.5) drop-shadow(0 0 0 #0000)}to{filter:saturate(3.5) drop-shadow(0 0 1px #0008)}}@keyframes pulse-circle{0%{r:4px}50%{r:1px}to{r:4px}}.loading-indicator{animation:moveGradient 1.5s ease-in infinite}.line-graph-dot--active{animation:pulse-circle 1s ease-in-out infinite}.event-rect--hovered{animation:pulse-rect 1s ease-in-out infinite}@keyframes dash{0%{filter:saturate(1) drop-shadow(0 0 0 #0000)}50%{stroke-width:2px;filter:saturate(2.5) drop-shadow(0 0 0 #0006)}to{filter:saturate(1) drop-shadow(0 0 0 #0000)}}.line-graph-group--highlighted path{animation:dash 1s ease-in-out infinite}.e-timeline--dragging{cursor:ew-resize}.curtain{cursor:ew-resize;fill:#3332;stroke-width:1px;stroke:#3338;transition:stroke-width .2s}.e-timeline--dragging .curtain{stroke-width:3px}.e-timeline--dark .curtain{fill:#fff3;stroke:#fff7}.event-bar-hover-zone{cursor:pointer}.external-labels-container{position:absolute;top:-1.5em;left:0}.external-label{margin-right:.35em;border-width:.5px;border-radius:.2em}.external-label__content{cursor:pointer;font-size:.8em;font-weight:500;padding:0 .6em;line-height:1.4em}.marker-label{transition:transform .2s;transform:translateY(-32px);position:absolute;width:max-content}.marker-label-text{position:absolute;width:max-content;font-size:.8em;font-weight:500;padding:0 .75em;border-radius:.4em .4em .4em 0;box-shadow:0 0 5px -1px #000000f5}.marker-label-text:after{content:"";background:inherit;width:5px;height:5px;bottom:-5px;position:absolute;left:2px;clip-path:path("M 0,5 L 0,0 L 5,0 A 5,5 0 0 0 0,5")}.marker-label-text:before{content:"";background:inherit;height:20px;top:18px;position:absolute;width:2px;left:0}.marker{top:0;filter:saturate(.9)}.marker-line{position:absolute;width:2px;top:-24px;transition:top .2s,height .2s}.marker:hover{cursor:pointer;opacity:1;filter:saturate(1.1)}.marker:hover .marker-label{transform:translateY(-38px);height:61px;width:255px;padding-bottom:42px}.marker:hover .marker-label-text{box-shadow:2px 2px 11px -4px #000}.marker--hidden:hover .marker-label{transform:translateY(-54px)}.marker--draggable,.marker--draggable:hover{user-select:none;cursor:grab}.marker--dragged:hover{cursor:grabbing}.forbidden-interval{opacity:.2}.e-timeline-milestones{height:0}.video-embed[data-v-0ecf4a71]{position:relative;width:100%!important;padding-bottom:56.25%}.video-embed iframe[data-v-0ecf4a71]{position:absolute;top:0;left:0;width:100%;height:100%}
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}.text-shadow{text-shadow:0 0 4px rgb(0 0 0 / 75%)}.text-drop-shadow{filter:drop-shadow(0 0 5px #0009)}.hover-filter-drop{filter:drop-shadow(0 0 4px rgba(255,255,255,.67))}select{background-image:none!important}.player-progress-tooltip-shadow[data-v-92f9461c]{text-shadow:0 0 4px rgba(0,0,0,.75)}.img-shadow{box-shadow:#0000 0 0,#0000 0 0,#0000004a 0 20px 25px -5px,#00000069 0 8px 10px -6px}.e-transform-0[data-v-3fb6736d]{transform-origin:0 0}.image-player-overlay{position:absolute;left:50%;top:50%;width:52px;height:52px;z-index:19;margin-left:-26px;margin-top:-26px;background:rgba(0,0,0,.5);border-radius:26px;-webkit-animation:overlay-fadeout .5s linear 1 normal forwards;animation:overlay-fadeout .5s linear 1 normal forwards;pointer-events:none}.image-player-overlay__wrapper{height:40px;width:40px}.image-player-overlay__wrapper>path{fill:#fff}@-webkit-keyframes overlay-fadeout{0%{opacity:1}to{opacity:0;-webkit-transform:scale(2);transform:scale(2)}}@keyframes overlay-fadeout{0%{opacity:1}to{opacity:0;-webkit-transform:scale(2);transform:scale(2)}}.spinner-container[data-v-207d017d]{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-207d017d]{position:relative;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;margin:0 auto}.video-container.full-screen[data-v-207d017d]{max-width:initial;width:100%;max-height:100vh}video[data-v-207d017d]{width:100%;height:inherit}.video-controls-container[data-v-207d017d]{position:absolute;bottom:0;left:0;right:0;color:#fff;z-index:100;opacity:0;transition:opacity .15s ease-in-out}.hide[data-v-207d017d]{display:none}.video-controls-container[data-v-207d017d]: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-207d017d],.video-container:focus-within .video-controls-container[data-v-207d017d],.video-container.paused .video-controls-container[data-v-207d017d]{opacity:1}.video-controls-container .controls[data-v-207d017d]{display:flex;gap:.5rem;padding:.75rem 1rem;align-items:center;width:100%}.video-controls-container .controls button[data-v-207d017d]{background:none;border:none;color:inherit;padding:0;height:32px;width:32px;font-size:1.35rem;cursor:pointer;opacity:.85;transition:opacity .15s ease-in-out}.video-controls-container .controls button[data-v-207d017d]:hover{opacity:1}.duration-container[data-v-207d017d]{display:flex;align-items:center;gap:.25rem;flex-grow:1}.video-container.captions .captions-btn[data-v-207d017d]{border-bottom:3px solid red}.video-controls-container .controls button.wide-btn[data-v-207d017d]{width:50px}.timeline-container[data-v-207d017d]{width:100%;height:7px;margin-inline:.5rem;cursor:pointer;display:flex;align-items:center}.timeline[data-v-207d017d]{background-color:#64646480;height:3px;width:100%;position:relative}.timeline[data-v-207d017d]: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-207d017d]: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-207d017d]{--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-207d017d]{display:block}.video-container.scrubbing .timeline[data-v-207d017d]:before,.timeline-container:hover .timeline[data-v-207d017d]:before{display:block}.video-container.scrubbing .thumb-indicator[data-v-207d017d],.timeline-container:hover .thumb-indicator[data-v-207d017d]{--scale: 1}.video-container.scrubbing .timeline[data-v-207d017d],.timeline-container:hover .timeline[data-v-207d017d]{height:100%}.e-tl-milestone{position:absolute;border-radius:10em;box-sizing:border-box}.e-tl-milestone-content{cursor:pointer}.e-tl-milestone--bullet{transform:translate(-50%,-50%)}.e-tl-milestone--bullet .e-tl-milestone-content{opacity:0;width:0;height:0;white-space:nowrap;pointer-events:none;cursor:pointer}.e-tl-milestone--bullet.e-tl-milestone--hovered{cursor:pointer;min-height:26px;padding:0 8px;border-radius:.5em}.e-tl-milestone--bullet.e-tl-milestone--hovered .e-tl-milestone-content{opacity:1;font-size:small;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.e-tl-milestone--bullet .e-tl-milestone-label{position:absolute;top:0;left:0;opacity:1;pointer-events:none;height:100%;width:100%}.e-tl-milestone--bullet.e-tl-milestone--hovered .e-tl-milestone-label{opacity:0}.e-tl-milestone--dot{transform:translateY(-50%)}.e-tl-milestone-dot--hovered .e-tl-milestone-dot-container{padding:0 3em;transform:translate(-50%);opacity:1}.e-tl-milestone-dot-line{position:absolute}.e-tl-milestone-dot-dot{position:absolute;border-radius:50%}.e-tl-milestone-dot-container{opacity:0;position:absolute;padding:0 .3em;transform:translate(-50%,-100%);cursor:pointer}.e-timeline svg{display:block}.e-timeline .x-axis-overview .domain,.e-timeline .x-axis-detailed .domain,.e-timeline .x-axis-overviewBackground .domain,.e-timeline .x-axis-detailedBackground .domain{display:none}.e-timeline .x-axis-detailedBackground .domain,.e-timeline .x-axis-detailedBackground text{display:none}.e-timeline .x-axis-overview>g.tick>line{opacity:.1;stroke-width:3;stroke-linecap:round}.e-timeline .x-axis-detailed>g.tick>line{opacity:.1;stroke-linecap:round}.e-timeline .x-axis-detailedBackground>g.tick>line{opacity:.075;stroke-linecap:round}.e-timeline--dark .tick line{stroke:#fff}.e-timeline--dark .tick text{fill:#fff}@keyframes moveGradient{0%{transform:translate(-50%)}to{transform:translate(100%)}}@keyframes pulse-rect{0%{filter:saturate(3.5) drop-shadow(0 0 1px #0008)}50%{filter:saturate(.5) drop-shadow(0 0 0 #0000)}to{filter:saturate(3.5) drop-shadow(0 0 1px #0008)}}@keyframes pulse-circle{0%{r:4px}50%{r:1px}to{r:4px}}.loading-indicator{animation:moveGradient 1.5s ease-in infinite}.line-graph-dot--active{animation:pulse-circle 1s ease-in-out infinite}.event-rect--hovered{animation:pulse-rect 1s ease-in-out infinite}@keyframes dash{0%{filter:saturate(1) drop-shadow(0 0 0 #0000)}50%{stroke-width:2px;filter:saturate(2.5) drop-shadow(0 0 0 #0006)}to{filter:saturate(1) drop-shadow(0 0 0 #0000)}}.line-graph-group--highlighted path{animation:dash 1s ease-in-out infinite}.e-timeline--dragging{cursor:ew-resize}.curtain{cursor:ew-resize;fill:#3332;stroke-width:1px;stroke:#3338;transition:stroke-width .2s}.e-timeline--dragging .curtain{stroke-width:3px}.e-timeline--dark .curtain{fill:#fff3;stroke:#fff7}.event-bar-hover-zone{cursor:pointer}.external-labels-container{position:absolute;top:-1.5em;left:0}.external-label{margin-right:.35em;border-width:.5px;border-radius:.2em}.external-label__content{cursor:pointer;font-size:.8em;font-weight:500;padding:0 .6em;line-height:1.4em}.marker-label{transition:transform .2s;transform:translateY(-32px);position:absolute;width:max-content}.marker-label-text{position:absolute;width:max-content;font-size:.8em;font-weight:500;padding:0 .75em;border-radius:.4em .4em .4em 0;box-shadow:0 0 5px -1px #000000f5}.marker-label-text:after{content:"";background:inherit;width:5px;height:5px;bottom:-5px;position:absolute;left:2px;clip-path:path("M 0,5 L 0,0 L 5,0 A 5,5 0 0 0 0,5")}.marker-label-text:before{content:"";background:inherit;height:20px;top:18px;position:absolute;width:2px;left:0}.marker{top:0;filter:saturate(.9)}.marker-line{position:absolute;width:2px;top:-24px;transition:top .2s,height .2s}.marker:hover{cursor:pointer;opacity:1;filter:saturate(1.1)}.marker:hover .marker-label{transform:translateY(-38px);height:61px;width:255px;padding-bottom:42px}.marker:hover .marker-label-text{box-shadow:2px 2px 11px -4px #000}.marker--hidden:hover .marker-label{transform:translateY(-54px)}.marker--draggable,.marker--draggable:hover{user-select:none;cursor:grab}.marker--dragged:hover{cursor:grabbing}.forbidden-interval{opacity:.2}.e-timeline-milestones{height:0}.video-embed[data-v-0ecf4a71]{position:relative;width:100%!important;padding-bottom:56.25%}.video-embed iframe[data-v-0ecf4a71]{position:absolute;top:0;left:0;width:100%;height:100%}