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

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,7 @@ 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
+ import EReadMore from './components/EReadMore.vue';
12
11
  import { VueConstructor } from "vue";
13
12
  export declare const components: {
14
13
  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 +119,7 @@ export declare const components: {
120
119
  xs: string | number | boolean;
121
120
  xl: string | number | boolean;
122
121
  }, {}, 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
- }, {}, {
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>>, {
232
123
  playing: boolean;
233
124
  percentagePlayed: number;
234
125
  videoLength: string;
@@ -243,16 +134,9 @@ export declare const components: {
243
134
  isLoading: boolean;
244
135
  isError: boolean;
245
136
  player: import("hls.js").default;
246
- playbackRetries: number;
247
- }, {
248
- sourceItems(): import('./components/EVideoPlayer.vue').VideoSource[];
249
- hasStartedOrFinished(): boolean;
250
- withControls(): "" | "hide";
251
137
  }, {
252
138
  initHls(): void;
253
- onContainerClick(): void;
254
139
  handle404Error(): void;
255
- handleHlsError(_: import("hls.js").Events.ERROR, data: import("hls.js").ErrorData): void;
256
140
  bindEvents(): void;
257
141
  unbindEvents(): void;
258
142
  bindVideoEvent(which: string): void;
@@ -265,9 +149,9 @@ export declare const components: {
265
149
  handleScrubbingOnMouseEnd(e: MouseEvent): void;
266
150
  handleEnded(): void;
267
151
  handleLoading(): void;
268
- play(): Promise<void>;
152
+ play(): void;
269
153
  pause(): void;
270
- togglePlay(): Promise<void>;
154
+ togglePlay(): void;
271
155
  setPlaying(state: boolean): void;
272
156
  seekToPercentage(percentage: number): void;
273
157
  convertTimeToDuration(seconds: number): string;
@@ -280,144 +164,18 @@ export declare const components: {
280
164
  skip(duration?: number): void;
281
165
  toggleScrubbing(e: MouseEvent): Promise<void>;
282
166
  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>;
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: {};
401
175
  isHls: boolean;
402
176
  streamingToken: string;
403
177
  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
- }>;
178
+ }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
421
179
  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
180
  tooltip: HTMLElement;
423
181
  cursor: HTMLElement;
@@ -477,6 +235,8 @@ export declare const components: {
477
235
  selectedMilestoneId: any;
478
236
  isInitialized: boolean;
479
237
  lastValidTransform: import("d3-zoom").ZoomTransform;
238
+ lastPanTransform: import("d3-zoom").ZoomTransform;
239
+ isZoomingInterval: boolean;
480
240
  }, {
481
241
  updateTimeline(): void;
482
242
  initTimeline(startDate?: string | undefined, endDate?: string | undefined): void;
@@ -491,7 +251,8 @@ export declare const components: {
491
251
  updateYScaleDomain(): void;
492
252
  initZoomBehavior(): void;
493
253
  zoomToFitMarkers(): void;
494
- translateMarkersIntoView(minTimestamp: number, maxTimestamp: number, scaleFactor: number): void;
254
+ zoomToTargetInterval(start?: string | number | undefined, end?: string | number | undefined): void;
255
+ translateIntervalIntoView(minTimestamp: number, maxTimestamp: number, scaleFactor: number): void;
495
256
  initSelectedTimestampCursor(): void;
496
257
  updateMarkers(): void;
497
258
  updateAndRedrawTimeline(): void;
@@ -554,8 +315,7 @@ export declare const components: {
554
315
  initCurtains(): void;
555
316
  createCurtains(): void;
556
317
  updateCurtains(): void;
557
- initForbiddenIntervals(): void;
558
- updateForbiddenIntervals(): void;
318
+ updateForbiddenIntervals(reset?: boolean): void;
559
319
  drawEventsGroups(): void;
560
320
  drawLineGraphEventsGroups(): void;
561
321
  drawLineGraph({ events, gElement, color, type, }: {
@@ -570,14 +330,13 @@ export declare const components: {
570
330
  color: string;
571
331
  type: string;
572
332
  }): void;
573
- drawSingleBarEventsGroup({ type, eventsGroup, index, milestone, height, dots, dotsSize, }: {
333
+ drawSingleBarEventsGroup({ type, eventsGroup, milestone, dots, dotsSize, bottom, }: {
574
334
  type: string;
575
335
  eventsGroup: import('./types').TimelineEventsGroup;
576
- index?: number | undefined;
577
336
  milestone?: boolean | undefined;
578
- height?: number | undefined;
579
337
  dots?: boolean | undefined;
580
338
  dotsSize?: number | undefined;
339
+ bottom?: boolean | undefined;
581
340
  }): void;
582
341
  drawBarEventsGroups(): void;
583
342
  drawMilestonesPlaceholder(): void;
@@ -587,6 +346,8 @@ export declare const components: {
587
346
  border: string;
588
347
  };
589
348
  getMilestoneGroupYPosition(groupName: string): number;
349
+ getBarGroupYPosition(groupName: string, bottom?: boolean | undefined): number;
350
+ getBarGroupHeight(eventsGroup: import('./types').TimelineEventsGroup): number;
590
351
  updateMilestonesPositions(): void;
591
352
  drawBarChartEventsGroups(): void;
592
353
  drawProgressIndicator({ yPosition, type, isLoading, }: {
@@ -601,7 +362,7 @@ export declare const components: {
601
362
  color: string;
602
363
  height?: number | undefined;
603
364
  }): void;
604
- drawBars({ events, gElement, yPosition, color, type, dots, dotsSize, }: {
365
+ drawBars({ events, gElement, yPosition, color, type, dots, dotsSize, height, barBorderRadius, }: {
605
366
  events: import('./types').TimelineEvent[];
606
367
  gElement: import("d3-selection").Selection<SVGGElement, any, any, any>;
607
368
  yPosition: number;
@@ -609,6 +370,8 @@ export declare const components: {
609
370
  type: string;
610
371
  dots?: boolean | undefined;
611
372
  dotsSize?: number | undefined;
373
+ height?: number | undefined;
374
+ barBorderRadius?: number | undefined;
612
375
  }): void;
613
376
  drawBarsChart({ events, gElement, color, yOffset, type, index, }: {
614
377
  events: import('./types').TimelineEvent[];
@@ -662,6 +425,7 @@ export declare const components: {
662
425
  getSortedEvents(events: import('./types').TimelineEvent[]): import('./types').TimelineEvent[];
663
426
  }, {
664
427
  combinedBarsHeight: number;
428
+ combinedBottomBarsHeight: number;
665
429
  combinedMilestonesHeight: number;
666
430
  milestonesYOffset: number;
667
431
  chartsYOffset: number;
@@ -708,12 +472,11 @@ export declare const components: {
708
472
  barYPadding: number;
709
473
  barXPadding: number;
710
474
  chartMinHeight: number;
475
+ chartMinLabelHeight: number;
711
476
  minZoom: number;
712
477
  maxZoom: number;
713
478
  minDate: string;
714
479
  maxDate: string;
715
- minVisibleDate: string;
716
- maxVisibleDate: string;
717
480
  cursorTimestamp: string | undefined;
718
481
  selectedClass: string | undefined;
719
482
  panOnDateClick: boolean;
@@ -723,10 +486,14 @@ export declare const components: {
723
486
  markers: import('./types').TimelineMarker[];
724
487
  stickyMarkers: boolean;
725
488
  fitMarkersOnChange: boolean;
726
- fitMarkersTransitionDuration: number;
489
+ zoomToIntervalTransitionDuration: number;
727
490
  zoomToBoundariesTransitionDuration: number;
728
491
  milestoneBulletSize: number;
729
492
  milestonesFirst: boolean;
493
+ forbiddenIntervals: import('./types').TimelineInterval[];
494
+ forbiddenIntervalColor: string;
495
+ focusedInterval: import('./types').TimelineInterval | undefined;
496
+ locked: boolean;
730
497
  }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
731
498
  EVideoEmbed: import("vue").DefineComponent<{
732
499
  videoUrl: {
@@ -771,118 +538,15 @@ export declare const components: {
771
538
  iframeListeners: Partial<HTMLIFrameElement>;
772
539
  iframeOptions: Record<string, any>;
773
540
  }>;
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
- }>;
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: any;
880
544
  };
881
545
  declare const _default: {
882
546
  install(Vue: VueConstructor): void;
883
547
  };
884
548
  export default _default;
885
- export { EAvatar, EBadge, EIcon, ESpinner, ERow, ECol, EVideoPlayer, ETimeline, EVideoEmbed, EToggleSwitch, EZoomable, };
549
+ export { EAvatar, EBadge, EIcon, ESpinner, ERow, ECol, EVideoPlayer, ETimeline, EVideoEmbed, EReadMore, };
886
550
  export * from './constants';
887
551
  export * from './types';
888
552
  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}