@evercam/ui 0.0.55-beta.16 → 0.0.55-beta.17

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,8 +7,6 @@ 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';
12
10
  import { VueConstructor } from "vue";
13
11
  export declare const components: {
14
12
  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>>, {
@@ -120,115 +118,7 @@ export declare const components: {
120
118
  xs: string | number | boolean;
121
119
  xl: string | number | boolean;
122
120
  }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
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
- }, {}, {
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>>, {
232
122
  playing: boolean;
233
123
  percentagePlayed: number;
234
124
  videoLength: string;
@@ -243,16 +133,9 @@ export declare const components: {
243
133
  isLoading: boolean;
244
134
  isError: boolean;
245
135
  player: import("hls.js").default;
246
- playbackRetries: number;
247
- }, {
248
- sourceItems(): import('./components/EVideoPlayer.vue').VideoSource[];
249
- hasStartedOrFinished(): boolean;
250
- withControls(): "" | "hide";
251
136
  }, {
252
137
  initHls(): void;
253
- onContainerClick(): void;
254
138
  handle404Error(): void;
255
- handleHlsError(_: import("hls.js").Events.ERROR, data: import("hls.js").ErrorData): void;
256
139
  bindEvents(): void;
257
140
  unbindEvents(): void;
258
141
  bindVideoEvent(which: string): void;
@@ -265,9 +148,9 @@ export declare const components: {
265
148
  handleScrubbingOnMouseEnd(e: MouseEvent): void;
266
149
  handleEnded(): void;
267
150
  handleLoading(): void;
268
- play(): Promise<void>;
151
+ play(): void;
269
152
  pause(): void;
270
- togglePlay(): Promise<void>;
153
+ togglePlay(): void;
271
154
  setPlaying(state: boolean): void;
272
155
  seekToPercentage(percentage: number): void;
273
156
  convertTimeToDuration(seconds: number): string;
@@ -280,144 +163,18 @@ export declare const components: {
280
163
  skip(duration?: number): void;
281
164
  toggleScrubbing(e: MouseEvent): Promise<void>;
282
165
  handleKeyDown(e: KeyboardEvent): void;
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>;
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: {};
401
174
  isHls: boolean;
402
175
  streamingToken: string;
403
176
  isLiveView: boolean;
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
- }>;
177
+ }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
421
178
  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>>, {
422
179
  tooltip: HTMLElement;
423
180
  cursor: HTMLElement;
@@ -477,6 +234,8 @@ export declare const components: {
477
234
  selectedMilestoneId: any;
478
235
  isInitialized: boolean;
479
236
  lastValidTransform: import("d3-zoom").ZoomTransform;
237
+ lastPanTransform: import("d3-zoom").ZoomTransform;
238
+ isZoomingInterval: boolean;
480
239
  }, {
481
240
  updateTimeline(): void;
482
241
  initTimeline(startDate?: string | undefined, endDate?: string | undefined): void;
@@ -491,7 +250,8 @@ export declare const components: {
491
250
  updateYScaleDomain(): void;
492
251
  initZoomBehavior(): void;
493
252
  zoomToFitMarkers(): void;
494
- translateMarkersIntoView(minTimestamp: number, maxTimestamp: number, scaleFactor: number): void;
253
+ zoomToTargetInterval(start?: string | number | undefined, end?: string | number | undefined): void;
254
+ translateIntervalIntoView(minTimestamp: number, maxTimestamp: number, scaleFactor: number): void;
495
255
  initSelectedTimestampCursor(): void;
496
256
  updateMarkers(): void;
497
257
  updateAndRedrawTimeline(): void;
@@ -554,8 +314,7 @@ export declare const components: {
554
314
  initCurtains(): void;
555
315
  createCurtains(): void;
556
316
  updateCurtains(): void;
557
- initForbiddenIntervals(): void;
558
- updateForbiddenIntervals(): void;
317
+ updateForbiddenIntervals(reset?: boolean): void;
559
318
  drawEventsGroups(): void;
560
319
  drawLineGraphEventsGroups(): void;
561
320
  drawLineGraph({ events, gElement, color, type, }: {
@@ -570,14 +329,13 @@ export declare const components: {
570
329
  color: string;
571
330
  type: string;
572
331
  }): void;
573
- drawSingleBarEventsGroup({ type, eventsGroup, index, milestone, height, dots, dotsSize, }: {
332
+ drawSingleBarEventsGroup({ type, eventsGroup, milestone, dots, dotsSize, bottom, }: {
574
333
  type: string;
575
334
  eventsGroup: import('./types').TimelineEventsGroup;
576
- index?: number | undefined;
577
335
  milestone?: boolean | undefined;
578
- height?: number | undefined;
579
336
  dots?: boolean | undefined;
580
337
  dotsSize?: number | undefined;
338
+ bottom?: boolean | undefined;
581
339
  }): void;
582
340
  drawBarEventsGroups(): void;
583
341
  drawMilestonesPlaceholder(): void;
@@ -587,6 +345,8 @@ export declare const components: {
587
345
  border: string;
588
346
  };
589
347
  getMilestoneGroupYPosition(groupName: string): number;
348
+ getBarGroupYPosition(groupName: string, bottom?: boolean | undefined): number;
349
+ getBarGroupHeight(eventsGroup: import('./types').TimelineEventsGroup): number;
590
350
  updateMilestonesPositions(): void;
591
351
  drawBarChartEventsGroups(): void;
592
352
  drawProgressIndicator({ yPosition, type, isLoading, }: {
@@ -601,7 +361,7 @@ export declare const components: {
601
361
  color: string;
602
362
  height?: number | undefined;
603
363
  }): void;
604
- drawBars({ events, gElement, yPosition, color, type, dots, dotsSize, }: {
364
+ drawBars({ events, gElement, yPosition, color, type, dots, dotsSize, height, barBorderRadius, }: {
605
365
  events: import('./types').TimelineEvent[];
606
366
  gElement: import("d3-selection").Selection<SVGGElement, any, any, any>;
607
367
  yPosition: number;
@@ -609,6 +369,8 @@ export declare const components: {
609
369
  type: string;
610
370
  dots?: boolean | undefined;
611
371
  dotsSize?: number | undefined;
372
+ height?: number | undefined;
373
+ barBorderRadius?: number | undefined;
612
374
  }): void;
613
375
  drawBarsChart({ events, gElement, color, yOffset, type, index, }: {
614
376
  events: import('./types').TimelineEvent[];
@@ -662,6 +424,7 @@ export declare const components: {
662
424
  getSortedEvents(events: import('./types').TimelineEvent[]): import('./types').TimelineEvent[];
663
425
  }, {
664
426
  combinedBarsHeight: number;
427
+ combinedBottomBarsHeight: number;
665
428
  combinedMilestonesHeight: number;
666
429
  milestonesYOffset: number;
667
430
  chartsYOffset: number;
@@ -708,12 +471,11 @@ export declare const components: {
708
471
  barYPadding: number;
709
472
  barXPadding: number;
710
473
  chartMinHeight: number;
474
+ chartMinLabelHeight: number;
711
475
  minZoom: number;
712
476
  maxZoom: number;
713
477
  minDate: string;
714
478
  maxDate: string;
715
- minVisibleDate: string;
716
- maxVisibleDate: string;
717
479
  cursorTimestamp: string | undefined;
718
480
  selectedClass: string | undefined;
719
481
  panOnDateClick: boolean;
@@ -723,10 +485,14 @@ export declare const components: {
723
485
  markers: import('./types').TimelineMarker[];
724
486
  stickyMarkers: boolean;
725
487
  fitMarkersOnChange: boolean;
726
- fitMarkersTransitionDuration: number;
488
+ zoomToIntervalTransitionDuration: number;
727
489
  zoomToBoundariesTransitionDuration: number;
728
490
  milestoneBulletSize: number;
729
491
  milestonesFirst: boolean;
492
+ forbiddenIntervals: import('./types').TimelineInterval[];
493
+ forbiddenIntervalColor: string;
494
+ focusedInterval: import('./types').TimelineInterval | undefined;
495
+ locked: boolean;
730
496
  }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
731
497
  EVideoEmbed: import("vue").DefineComponent<{
732
498
  videoUrl: {
@@ -771,118 +537,14 @@ export declare const components: {
771
537
  iframeListeners: Partial<HTMLIFrameElement>;
772
538
  iframeOptions: Record<string, any>;
773
539
  }>;
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
- }>;
540
+ 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>;
541
+ 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>;
880
542
  };
881
543
  declare const _default: {
882
544
  install(Vue: VueConstructor): void;
883
545
  };
884
546
  export default _default;
885
- export { EAvatar, EBadge, EIcon, ESpinner, ERow, ECol, EVideoPlayer, ETimeline, EVideoEmbed, EToggleSwitch, EZoomable, };
547
+ export { EAvatar, EBadge, EIcon, ESpinner, ERow, ECol, EVideoPlayer, ETimeline, EVideoEmbed, };
886
548
  export * from './constants';
887
549
  export * from './types';
888
550
  export * from './utils';
@@ -25,13 +25,6 @@ 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
- }
35
28
  export type TBadgeSize = (typeof BadgeSizes)[number];
36
29
  export type TAvatarSize = (typeof AvatarSizes)[number];
37
30
  export type TIconSize = (typeof IconSizes)[number];
@@ -105,6 +98,8 @@ export type TimelineEventsGroup = {
105
98
  milestonesDotSize?: number;
106
99
  height?: number;
107
100
  dotsSize?: number;
101
+ bottom?: boolean;
102
+ barBorderRadius?: number;
108
103
  };
109
104
  export type TimelineEventsByType = {
110
105
  [eventsType: string]: TimelineEventsGroup;
@@ -127,5 +122,18 @@ export type TimelineMarker = {
127
122
  maxDate?: string;
128
123
  [key: string]: any;
129
124
  };
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
+ };
130
138
  declare const _default: {};
131
139
  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}.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-dc8aa7bb]{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-53ecf4a3]{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-53ecf4a3]{position:relative;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;margin:0 auto}.video-container.full-screen[data-v-53ecf4a3]{max-width:initial;width:100%;max-height:100vh}video[data-v-53ecf4a3]{width:100%;height:inherit}.video-controls-container[data-v-53ecf4a3]{position:absolute;bottom:0;left:0;right:0;color:#fff;z-index:100;opacity:0;transition:opacity .15s ease-in-out}.hide[data-v-53ecf4a3]{display:none}.video-controls-container[data-v-53ecf4a3]: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-53ecf4a3],.video-container:focus-within .video-controls-container[data-v-53ecf4a3],.video-container.paused .video-controls-container[data-v-53ecf4a3]{opacity:1}.video-controls-container .controls[data-v-53ecf4a3]{display:flex;gap:.5rem;padding:.75rem 1rem;align-items:center;width:100%}.video-controls-container .controls button[data-v-53ecf4a3]{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-53ecf4a3]:hover{opacity:1}.duration-container[data-v-53ecf4a3]{display:flex;align-items:center;gap:.25rem;flex-grow:1}.video-container.captions .captions-btn[data-v-53ecf4a3]{border-bottom:3px solid red}.video-controls-container .controls button.wide-btn[data-v-53ecf4a3]{width:50px}.timeline-container[data-v-53ecf4a3]{width:100%;height:7px;margin-inline:.5rem;cursor:pointer;display:flex;align-items:center}.timeline[data-v-53ecf4a3]{background-color:#64646480;height:3px;width:100%;position:relative}.timeline[data-v-53ecf4a3]: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-53ecf4a3]: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-53ecf4a3]{--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-53ecf4a3]{display:block}.video-container.scrubbing .timeline[data-v-53ecf4a3]:before,.timeline-container:hover .timeline[data-v-53ecf4a3]:before{display:block}.video-container.scrubbing .thumb-indicator[data-v-53ecf4a3],.timeline-container:hover .thumb-indicator[data-v-53ecf4a3]{--scale: 1}.video-container.scrubbing .timeline[data-v-53ecf4a3],.timeline-container:hover .timeline[data-v-53ecf4a3]{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}.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}