@evercam/ui 0.0.55-beta.21 → 0.0.55-beta.22

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,7 +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 EReadMore from './components/EReadMore.vue';
10
+ import EToggleSwitch from './components/EToggleSwitch.vue';
11
+ import EZoomable from './components/EZoomable.vue';
11
12
  import { VueConstructor } from "vue";
12
13
  export declare const components: {
13
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>>, {
@@ -119,7 +120,72 @@ export declare const components: {
119
120
  xs: string | number | boolean;
120
121
  xl: string | number | boolean;
121
122
  }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
122
- 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
+ pauseOnClick: {
149
+ type: BooleanConstructor;
150
+ default: boolean;
151
+ };
152
+ isHlsLoading: {
153
+ type: BooleanConstructor;
154
+ default: boolean;
155
+ };
156
+ isPlaying: {
157
+ type: BooleanConstructor;
158
+ default: boolean;
159
+ };
160
+ selectedResolution: {
161
+ type: import("vue").PropType<import('./components/EVideoPlayer.vue').EdgeVideoResolution | undefined>;
162
+ default: undefined;
163
+ };
164
+ isZoomable: {
165
+ type: BooleanConstructor;
166
+ default: boolean;
167
+ };
168
+ zoomableIgnorePointerEvents: {
169
+ type: BooleanConstructor;
170
+ default: boolean;
171
+ };
172
+ timezone: {
173
+ type: StringConstructor;
174
+ default: string;
175
+ };
176
+ playPauseAnimation: {
177
+ type: BooleanConstructor;
178
+ default: boolean;
179
+ };
180
+ disablePlayPauseAnimation: {
181
+ type: BooleanConstructor;
182
+ default: boolean;
183
+ };
184
+ isWebRtc: {
185
+ type: BooleanConstructor;
186
+ default: boolean;
187
+ };
188
+ }, {}, {
123
189
  playing: boolean;
124
190
  percentagePlayed: number;
125
191
  videoLength: string;
@@ -134,10 +200,23 @@ export declare const components: {
134
200
  isLoading: boolean;
135
201
  isError: boolean;
136
202
  player: import("hls.js").default;
203
+ playbackRetries: number;
204
+ preloadedSeconds: number;
205
+ preloadedInterval: {
206
+ start: string;
207
+ end: string;
208
+ };
209
+ }, {
210
+ sourceItems(): import('./components/EVideoPlayer.vue').VideoSource[];
211
+ hasStartedOrFinished(): boolean;
212
+ withControls(): "" | "hide";
137
213
  }, {
138
214
  initHls(): void;
215
+ onContainerClick(): void;
139
216
  handle404Error(): void;
217
+ handleHlsError(_: import("hls.js").Events.ERROR, data: import("hls.js").ErrorData): void;
140
218
  bindEvents(): void;
219
+ onProgress(): void;
141
220
  unbindEvents(): void;
142
221
  bindVideoEvent(which: string): void;
143
222
  initializePlayer(): void;
@@ -149,9 +228,9 @@ export declare const components: {
149
228
  handleScrubbingOnMouseEnd(e: MouseEvent): void;
150
229
  handleEnded(): void;
151
230
  handleLoading(): void;
152
- play(): void;
231
+ play(): Promise<void>;
153
232
  pause(): void;
154
- togglePlay(): void;
233
+ togglePlay(): Promise<void>;
155
234
  setPlaying(state: boolean): void;
156
235
  seekToPercentage(percentage: number): void;
157
236
  convertTimeToDuration(seconds: number): string;
@@ -164,18 +243,88 @@ export declare const components: {
164
243
  skip(duration?: number): void;
165
244
  toggleScrubbing(e: MouseEvent): Promise<void>;
166
245
  handleKeyDown(e: KeyboardEvent): void;
167
- }, {
168
- sourceItems: import('./components/EVideoPlayer.vue').VideoSource[];
169
- hasStartedOrFinished: boolean;
170
- withControls: "" | "hide";
171
- }, {
172
- sources: string | import('./components/EVideoPlayer.vue').VideoSource[];
173
- videoListeners: {};
174
- videoOptions: {};
246
+ }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
247
+ targetTimestamp: {
248
+ type: (StringConstructor | DateConstructor)[];
249
+ default: undefined;
250
+ };
251
+ sources: {
252
+ type: import("vue").PropType<string | import('./components/EVideoPlayer.vue').VideoSource[]>;
253
+ required: true;
254
+ };
255
+ videoListeners: {
256
+ type: import("vue").PropType<Partial<HTMLVideoElement>>;
257
+ default: () => {};
258
+ };
259
+ videoOptions: {
260
+ type: import("vue").PropType<Partial<HTMLVideoElement>>;
261
+ default: () => {};
262
+ };
263
+ isHls: {
264
+ type: BooleanConstructor;
265
+ default: boolean;
266
+ };
267
+ streamingToken: {
268
+ type: StringConstructor;
269
+ default: string;
270
+ };
271
+ pauseOnClick: {
272
+ type: BooleanConstructor;
273
+ default: boolean;
274
+ };
275
+ isHlsLoading: {
276
+ type: BooleanConstructor;
277
+ default: boolean;
278
+ };
279
+ isPlaying: {
280
+ type: BooleanConstructor;
281
+ default: boolean;
282
+ };
283
+ selectedResolution: {
284
+ type: import("vue").PropType<import('./components/EVideoPlayer.vue').EdgeVideoResolution | undefined>;
285
+ default: undefined;
286
+ };
287
+ isZoomable: {
288
+ type: BooleanConstructor;
289
+ default: boolean;
290
+ };
291
+ zoomableIgnorePointerEvents: {
292
+ type: BooleanConstructor;
293
+ default: boolean;
294
+ };
295
+ timezone: {
296
+ type: StringConstructor;
297
+ default: string;
298
+ };
299
+ playPauseAnimation: {
300
+ type: BooleanConstructor;
301
+ default: boolean;
302
+ };
303
+ disablePlayPauseAnimation: {
304
+ type: BooleanConstructor;
305
+ default: boolean;
306
+ };
307
+ isWebRtc: {
308
+ type: BooleanConstructor;
309
+ default: boolean;
310
+ };
311
+ }>>, {
312
+ timezone: string;
313
+ isPlaying: boolean;
314
+ targetTimestamp: string | Date;
315
+ videoListeners: Partial<HTMLVideoElement>;
316
+ videoOptions: Partial<HTMLVideoElement>;
175
317
  isHls: boolean;
176
318
  streamingToken: string;
177
- isLiveView: boolean;
178
- }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
319
+ pauseOnClick: boolean;
320
+ isHlsLoading: boolean;
321
+ selectedResolution: import('./components/EVideoPlayer.vue').EdgeVideoResolution | undefined;
322
+ isZoomable: boolean;
323
+ zoomableIgnorePointerEvents: boolean;
324
+ playPauseAnimation: boolean;
325
+ disablePlayPauseAnimation: boolean;
326
+ isWebRtc: boolean;
327
+ }>;
179
328
  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>>, {
180
329
  tooltip: HTMLElement;
181
330
  cursor: HTMLElement;
@@ -235,8 +384,6 @@ export declare const components: {
235
384
  selectedMilestoneId: any;
236
385
  isInitialized: boolean;
237
386
  lastValidTransform: import("d3-zoom").ZoomTransform;
238
- lastPanTransform: import("d3-zoom").ZoomTransform;
239
- isZoomingInterval: boolean;
240
387
  }, {
241
388
  updateTimeline(): void;
242
389
  initTimeline(startDate?: string | undefined, endDate?: string | undefined): void;
@@ -251,8 +398,7 @@ export declare const components: {
251
398
  updateYScaleDomain(): void;
252
399
  initZoomBehavior(): void;
253
400
  zoomToFitMarkers(): void;
254
- zoomToTargetInterval(start?: string | number | undefined, end?: string | number | undefined): void;
255
- translateIntervalIntoView(minTimestamp: number, maxTimestamp: number, scaleFactor: number): void;
401
+ translateMarkersIntoView(minTimestamp: number, maxTimestamp: number, scaleFactor: number): void;
256
402
  initSelectedTimestampCursor(): void;
257
403
  updateMarkers(): void;
258
404
  updateAndRedrawTimeline(): void;
@@ -315,7 +461,8 @@ export declare const components: {
315
461
  initCurtains(): void;
316
462
  createCurtains(): void;
317
463
  updateCurtains(): void;
318
- updateForbiddenIntervals(reset?: boolean): void;
464
+ initForbiddenIntervals(): void;
465
+ updateForbiddenIntervals(): void;
319
466
  drawEventsGroups(): void;
320
467
  drawLineGraphEventsGroups(): void;
321
468
  drawLineGraph({ events, gElement, color, type, }: {
@@ -330,13 +477,14 @@ export declare const components: {
330
477
  color: string;
331
478
  type: string;
332
479
  }): void;
333
- drawSingleBarEventsGroup({ type, eventsGroup, milestone, dots, dotsSize, bottom, }: {
480
+ drawSingleBarEventsGroup({ type, eventsGroup, index, milestone, height, dots, dotsSize, }: {
334
481
  type: string;
335
482
  eventsGroup: import('./types').TimelineEventsGroup;
483
+ index?: number | undefined;
336
484
  milestone?: boolean | undefined;
485
+ height?: number | undefined;
337
486
  dots?: boolean | undefined;
338
487
  dotsSize?: number | undefined;
339
- bottom?: boolean | undefined;
340
488
  }): void;
341
489
  drawBarEventsGroups(): void;
342
490
  drawMilestonesPlaceholder(): void;
@@ -346,8 +494,6 @@ export declare const components: {
346
494
  border: string;
347
495
  };
348
496
  getMilestoneGroupYPosition(groupName: string): number;
349
- getBarGroupYPosition(groupName: string, bottom?: boolean | undefined): number;
350
- getBarGroupHeight(eventsGroup: import('./types').TimelineEventsGroup): number;
351
497
  updateMilestonesPositions(): void;
352
498
  drawBarChartEventsGroups(): void;
353
499
  drawProgressIndicator({ yPosition, type, isLoading, }: {
@@ -362,7 +508,7 @@ export declare const components: {
362
508
  color: string;
363
509
  height?: number | undefined;
364
510
  }): void;
365
- drawBars({ events, gElement, yPosition, color, type, dots, dotsSize, height, barBorderRadius, }: {
511
+ drawBars({ events, gElement, yPosition, color, type, dots, dotsSize, }: {
366
512
  events: import('./types').TimelineEvent[];
367
513
  gElement: import("d3-selection").Selection<SVGGElement, any, any, any>;
368
514
  yPosition: number;
@@ -370,8 +516,6 @@ export declare const components: {
370
516
  type: string;
371
517
  dots?: boolean | undefined;
372
518
  dotsSize?: number | undefined;
373
- height?: number | undefined;
374
- barBorderRadius?: number | undefined;
375
519
  }): void;
376
520
  drawBarsChart({ events, gElement, color, yOffset, type, index, }: {
377
521
  events: import('./types').TimelineEvent[];
@@ -425,7 +569,6 @@ export declare const components: {
425
569
  getSortedEvents(events: import('./types').TimelineEvent[]): import('./types').TimelineEvent[];
426
570
  }, {
427
571
  combinedBarsHeight: number;
428
- combinedBottomBarsHeight: number;
429
572
  combinedMilestonesHeight: number;
430
573
  milestonesYOffset: number;
431
574
  chartsYOffset: number;
@@ -472,11 +615,12 @@ export declare const components: {
472
615
  barYPadding: number;
473
616
  barXPadding: number;
474
617
  chartMinHeight: number;
475
- chartMinLabelHeight: number;
476
618
  minZoom: number;
477
619
  maxZoom: number;
478
620
  minDate: string;
479
621
  maxDate: string;
622
+ minVisibleDate: string;
623
+ maxVisibleDate: string;
480
624
  cursorTimestamp: string | undefined;
481
625
  selectedClass: string | undefined;
482
626
  panOnDateClick: boolean;
@@ -486,14 +630,10 @@ export declare const components: {
486
630
  markers: import('./types').TimelineMarker[];
487
631
  stickyMarkers: boolean;
488
632
  fitMarkersOnChange: boolean;
489
- zoomToIntervalTransitionDuration: number;
633
+ fitMarkersTransitionDuration: number;
490
634
  zoomToBoundariesTransitionDuration: number;
491
635
  milestoneBulletSize: number;
492
636
  milestonesFirst: boolean;
493
- forbiddenIntervals: import('./types').TimelineInterval[];
494
- forbiddenIntervalColor: string;
495
- focusedInterval: import('./types').TimelineInterval | undefined;
496
- locked: boolean;
497
637
  }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
498
638
  EVideoEmbed: import("vue").DefineComponent<{
499
639
  videoUrl: {
@@ -538,36 +678,100 @@ export declare const components: {
538
678
  iframeListeners: Partial<HTMLIFrameElement>;
539
679
  iframeOptions: Record<string, any>;
540
680
  }>;
541
- EHeatmapBar: 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>>, {}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
542
- EHoursHeatmap: 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>>, {}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
543
- EReadMore: 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>>, {
544
- showAllContent: boolean;
681
+ EToggleSwitch: 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>>, {
682
+ value: any;
545
683
  }, {
546
- displayContent(): any;
547
- displayArrayContent(): any;
548
- displayTextContent(): any;
549
- toggleContentExpansion(): void;
684
+ getButtonClasses(optionValue: any): {
685
+ "e-bg-inherit": boolean;
686
+ "e-bg-brand-600": boolean;
687
+ "e-bg-gray-600": boolean;
688
+ "e-bg-[#629efc] e-text-gray-900 e-font-normal": boolean;
689
+ };
690
+ handleClick(value: any): void;
550
691
  }, {
551
- hiddenContentLength: number;
552
- isArrayContent: boolean;
553
- isHiddenTextContent: boolean;
554
- isHiddenArrayContent: boolean;
555
- isContentExpanded: boolean;
556
- computedMoreText: string;
692
+ sizeClasses: {
693
+ container: import('./components/EToggleSwitch.vue').CssClassMap;
694
+ button: import('./components/EToggleSwitch.vue').CssClassMap;
695
+ text: import('./components/EToggleSwitch.vue').CssClassMap;
696
+ };
697
+ containerClasses: import('./components/EToggleSwitch.vue').CssClassMap;
698
+ textClasses: import('./components/EToggleSwitch.vue').CssClassMap;
699
+ buttonBaseClasses: import('./components/EToggleSwitch.vue').CssClassMap;
557
700
  }, {
558
- content: string | unknown[] | (() => null);
559
- maxLength: number;
560
- showAll: boolean;
561
- expandText: string;
562
- collapseText: string;
563
- moreTextWithPlaceholder: string;
701
+ options: import('./components/EToggleSwitch.vue').EToggleSwitchOption[];
702
+ color: string;
703
+ size: import('./types').Size;
704
+ defaultValue: string | number | boolean;
564
705
  }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
706
+ EZoomable: import("vue").DefineComponent<{
707
+ ignorePointerEvents: {
708
+ type: BooleanConstructor;
709
+ default: boolean;
710
+ };
711
+ withOverlay: {
712
+ type: BooleanConstructor;
713
+ default: boolean;
714
+ };
715
+ }, {}, {
716
+ scale: number;
717
+ minScale: number;
718
+ maxScale: number;
719
+ top: number;
720
+ left: number;
721
+ isPanning: boolean;
722
+ panStart: {
723
+ x: number;
724
+ y: number;
725
+ };
726
+ isPinching: boolean;
727
+ previousPinchDistance: number;
728
+ pinchDistance: number;
729
+ pointers: {};
730
+ transform: string;
731
+ }, {
732
+ contentStyle(): {
733
+ transform: string;
734
+ };
735
+ isZoomed(): boolean;
736
+ }, {
737
+ updateZoomScale(): void;
738
+ handleZoom(e: any): void;
739
+ handleMouseDown(e: any): void;
740
+ handleMouseUp(): void;
741
+ handleMouseLeave(): void;
742
+ handleMouseMove(e: any): void;
743
+ applyBoundsCorrection(): void;
744
+ updateTransform(): void;
745
+ getPointersDistance(a: any, b: any): number;
746
+ getPointersMidPoint(a: any, b: any): {
747
+ x: any;
748
+ y: any;
749
+ };
750
+ updatePointerEvent(e: any): void;
751
+ clearPointerEvent(e: any): void;
752
+ updatePinchDistance(): void;
753
+ handlePointerDown(e: any): void;
754
+ handlePointerMove(e: any): void;
755
+ handlePointerUp(e: any): void;
756
+ }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
757
+ ignorePointerEvents: {
758
+ type: BooleanConstructor;
759
+ default: boolean;
760
+ };
761
+ withOverlay: {
762
+ type: BooleanConstructor;
763
+ default: boolean;
764
+ };
765
+ }>>, {
766
+ ignorePointerEvents: boolean;
767
+ withOverlay: boolean;
768
+ }>;
565
769
  };
566
770
  declare const _default: {
567
771
  install(Vue: VueConstructor): void;
568
772
  };
569
773
  export default _default;
570
- export { EAvatar, EBadge, EIcon, ESpinner, ERow, ECol, EVideoPlayer, ETimeline, EVideoEmbed, EReadMore, };
774
+ export { EAvatar, EBadge, EIcon, ESpinner, ERow, ECol, EVideoPlayer, ETimeline, EVideoEmbed, EToggleSwitch, EZoomable, };
571
775
  export * from './constants';
572
776
  export * from './types';
573
777
  export * from './utils';
@@ -1,4 +1,4 @@
1
- import { BadgeSizes, AvatarSizes, IconSizes, BadgeColors } from './constants';
1
+ import { BadgeSizes, AvatarSizes, IconSizes, BadgeColors, ToggleSwitchSizes } from './constants';
2
2
  export declare enum Size {
3
3
  dot = "dot",
4
4
  xs = "xs",
@@ -25,9 +25,17 @@ 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];
38
+ export type TToggleSwitchSize = (typeof ToggleSwitchSizes)[number];
31
39
  export type TBadgeColor = (typeof BadgeColors)[number];
32
40
  export type TailwindColorClass = string;
33
41
  export type FlexJustifyContent = "around" | "between" | "center" | "end" | "evenly" | "normal" | "start" | "stretch";
@@ -98,8 +106,6 @@ export type TimelineEventsGroup = {
98
106
  milestonesDotSize?: number;
99
107
  height?: number;
100
108
  dotsSize?: number;
101
- bottom?: boolean;
102
- barBorderRadius?: number;
103
109
  };
104
110
  export type TimelineEventsByType = {
105
111
  [eventsType: string]: TimelineEventsGroup;
@@ -122,18 +128,5 @@ export type TimelineMarker = {
122
128
  maxDate?: string;
123
129
  [key: string]: any;
124
130
  };
125
- export type TimelineInterval = {
126
- startDate: Date | string | number;
127
- endDate: Date | string | number;
128
- };
129
- export type HeatmapBarItem = {
130
- name: string;
131
- count: string;
132
- value: string | number;
133
- };
134
- export type HoursHeatmapChartItem = {
135
- count: number;
136
- timestamp: Timestamp;
137
- };
138
131
  declare const _default: {};
139
132
  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%}.e-heatmap-bar__label{white-space:nowrap;width:6rem;min-width:6rem}.e-heatmap-bar__item{height:16px;margin:2px;position:relative;cursor:pointer;border-radius:2px;min-width:0}.e-heatmap-bar__item:hover{box-shadow:0 0 0 1.5px #5c6d97}.e-heatmap-bar__item--selected{box-shadow:0 0 0 2px #151e3a}.e-heatmap-bar__item__count{font-size:12px;color:#fff;font-weight:500}.e-heatmap-bar__item__count--light{color:#0a214bbd}.e-heatmap-bar__item__name{position:absolute;top:-25px}.e-heatmap-bar:not(.e-heatmap-bar--dense) .e-heatmap-bar__item{min-width:35px}
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}.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-1c971559]{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-1c971559]{position:relative;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;margin:0 auto}.video-container.full-screen[data-v-1c971559]{max-width:initial;width:100%;max-height:100vh}video[data-v-1c971559]{width:100%;height:inherit}.video-controls-container[data-v-1c971559]{position:absolute;bottom:0;left:0;right:0;color:#fff;z-index:100;opacity:0;transition:opacity .15s ease-in-out}.hide[data-v-1c971559]{display:none}.video-controls-container[data-v-1c971559]: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-1c971559],.video-container:focus-within .video-controls-container[data-v-1c971559],.video-container.paused .video-controls-container[data-v-1c971559]{opacity:1}.video-controls-container .controls[data-v-1c971559]{display:flex;gap:.5rem;padding:.75rem 1rem;align-items:center;width:100%}.video-controls-container .controls button[data-v-1c971559]{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-1c971559]:hover{opacity:1}.duration-container[data-v-1c971559]{display:flex;align-items:center;gap:.25rem;flex-grow:1}.video-container.captions .captions-btn[data-v-1c971559]{border-bottom:3px solid red}.video-controls-container .controls button.wide-btn[data-v-1c971559]{width:50px}.timeline-container[data-v-1c971559]{width:100%;height:7px;margin-inline:.5rem;cursor:pointer;display:flex;align-items:center}.timeline[data-v-1c971559]{background-color:#64646480;height:3px;width:100%;position:relative}.timeline[data-v-1c971559]: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-1c971559]: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-1c971559]{--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-1c971559]{display:block}.video-container.scrubbing .timeline[data-v-1c971559]:before,.timeline-container:hover .timeline[data-v-1c971559]:before{display:block}.video-container.scrubbing .thumb-indicator[data-v-1c971559],.timeline-container:hover .thumb-indicator[data-v-1c971559]{--scale: 1}.video-container.scrubbing .timeline[data-v-1c971559],.timeline-container:hover .timeline[data-v-1c971559]{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%}