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

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,8 @@ import ECol from './components/ECol.vue';
7
7
  import EVideoPlayer from './components/EVideoPlayer.vue';
8
8
  import ETimeline from './components/ETimeline.vue';
9
9
  import EVideoEmbed from './components/EVideoEmbed.vue';
10
- import EToggleSwitch from './components/EToggleSwitch.vue';
11
- import EZoomable from './components/EZoomable.vue';
10
+ import EReadMore from './components/EReadMore.vue';
11
+ import ETruncatedDiv from './components/ETruncatedDiv.vue';
12
12
  import { VueConstructor } from "vue";
13
13
  export declare const components: {
14
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>>, {
@@ -120,72 +120,7 @@ export declare const components: {
120
120
  xs: string | number | boolean;
121
121
  xl: string | number | boolean;
122
122
  }, {}, 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
- 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
+ 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>>, {
189
124
  playing: boolean;
190
125
  percentagePlayed: number;
191
126
  videoLength: string;
@@ -200,23 +135,10 @@ export declare const components: {
200
135
  isLoading: boolean;
201
136
  isError: boolean;
202
137
  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";
213
138
  }, {
214
139
  initHls(): void;
215
- onContainerClick(): void;
216
140
  handle404Error(): void;
217
- handleHlsError(_: import("hls.js").Events.ERROR, data: import("hls.js").ErrorData): void;
218
141
  bindEvents(): void;
219
- onProgress(): void;
220
142
  unbindEvents(): void;
221
143
  bindVideoEvent(which: string): void;
222
144
  initializePlayer(): void;
@@ -228,9 +150,9 @@ export declare const components: {
228
150
  handleScrubbingOnMouseEnd(e: MouseEvent): void;
229
151
  handleEnded(): void;
230
152
  handleLoading(): void;
231
- play(): Promise<void>;
153
+ play(): void;
232
154
  pause(): void;
233
- togglePlay(): Promise<void>;
155
+ togglePlay(): void;
234
156
  setPlaying(state: boolean): void;
235
157
  seekToPercentage(percentage: number): void;
236
158
  convertTimeToDuration(seconds: number): string;
@@ -243,88 +165,18 @@ export declare const components: {
243
165
  skip(duration?: number): void;
244
166
  toggleScrubbing(e: MouseEvent): Promise<void>;
245
167
  handleKeyDown(e: KeyboardEvent): void;
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>;
168
+ }, {
169
+ sourceItems: import('./components/EVideoPlayer.vue').VideoSource[];
170
+ hasStartedOrFinished: boolean;
171
+ withControls: "" | "hide";
172
+ }, {
173
+ sources: string | import('./components/EVideoPlayer.vue').VideoSource[];
174
+ videoListeners: {};
175
+ videoOptions: {};
317
176
  isHls: boolean;
318
177
  streamingToken: string;
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
- }>;
178
+ isLiveView: boolean;
179
+ }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
328
180
  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>>, {
329
181
  tooltip: HTMLElement;
330
182
  cursor: HTMLElement;
@@ -384,6 +236,8 @@ export declare const components: {
384
236
  selectedMilestoneId: any;
385
237
  isInitialized: boolean;
386
238
  lastValidTransform: import("d3-zoom").ZoomTransform;
239
+ lastPanTransform: import("d3-zoom").ZoomTransform;
240
+ isZoomingInterval: boolean;
387
241
  }, {
388
242
  updateTimeline(): void;
389
243
  initTimeline(startDate?: string | undefined, endDate?: string | undefined): void;
@@ -398,7 +252,8 @@ export declare const components: {
398
252
  updateYScaleDomain(): void;
399
253
  initZoomBehavior(): void;
400
254
  zoomToFitMarkers(): void;
401
- translateMarkersIntoView(minTimestamp: number, maxTimestamp: number, scaleFactor: number): void;
255
+ zoomToTargetInterval(start?: string | number | undefined, end?: string | number | undefined): void;
256
+ translateIntervalIntoView(minTimestamp: number, maxTimestamp: number, scaleFactor: number): void;
402
257
  initSelectedTimestampCursor(): void;
403
258
  updateMarkers(): void;
404
259
  updateAndRedrawTimeline(): void;
@@ -461,8 +316,7 @@ export declare const components: {
461
316
  initCurtains(): void;
462
317
  createCurtains(): void;
463
318
  updateCurtains(): void;
464
- initForbiddenIntervals(): void;
465
- updateForbiddenIntervals(): void;
319
+ updateForbiddenIntervals(reset?: boolean): void;
466
320
  drawEventsGroups(): void;
467
321
  drawLineGraphEventsGroups(): void;
468
322
  drawLineGraph({ events, gElement, color, type, }: {
@@ -477,14 +331,13 @@ export declare const components: {
477
331
  color: string;
478
332
  type: string;
479
333
  }): void;
480
- drawSingleBarEventsGroup({ type, eventsGroup, index, milestone, height, dots, dotsSize, }: {
334
+ drawSingleBarEventsGroup({ type, eventsGroup, milestone, dots, dotsSize, bottom, }: {
481
335
  type: string;
482
336
  eventsGroup: import('./types').TimelineEventsGroup;
483
- index?: number | undefined;
484
337
  milestone?: boolean | undefined;
485
- height?: number | undefined;
486
338
  dots?: boolean | undefined;
487
339
  dotsSize?: number | undefined;
340
+ bottom?: boolean | undefined;
488
341
  }): void;
489
342
  drawBarEventsGroups(): void;
490
343
  drawMilestonesPlaceholder(): void;
@@ -494,6 +347,8 @@ export declare const components: {
494
347
  border: string;
495
348
  };
496
349
  getMilestoneGroupYPosition(groupName: string): number;
350
+ getBarGroupYPosition(groupName: string, bottom?: boolean | undefined): number;
351
+ getBarGroupHeight(eventsGroup: import('./types').TimelineEventsGroup): number;
497
352
  updateMilestonesPositions(): void;
498
353
  drawBarChartEventsGroups(): void;
499
354
  drawProgressIndicator({ yPosition, type, isLoading, }: {
@@ -508,7 +363,7 @@ export declare const components: {
508
363
  color: string;
509
364
  height?: number | undefined;
510
365
  }): void;
511
- drawBars({ events, gElement, yPosition, color, type, dots, dotsSize, }: {
366
+ drawBars({ events, gElement, yPosition, color, type, dots, dotsSize, height, barBorderRadius, }: {
512
367
  events: import('./types').TimelineEvent[];
513
368
  gElement: import("d3-selection").Selection<SVGGElement, any, any, any>;
514
369
  yPosition: number;
@@ -516,6 +371,8 @@ export declare const components: {
516
371
  type: string;
517
372
  dots?: boolean | undefined;
518
373
  dotsSize?: number | undefined;
374
+ height?: number | undefined;
375
+ barBorderRadius?: number | undefined;
519
376
  }): void;
520
377
  drawBarsChart({ events, gElement, color, yOffset, type, index, }: {
521
378
  events: import('./types').TimelineEvent[];
@@ -569,6 +426,7 @@ export declare const components: {
569
426
  getSortedEvents(events: import('./types').TimelineEvent[]): import('./types').TimelineEvent[];
570
427
  }, {
571
428
  combinedBarsHeight: number;
429
+ combinedBottomBarsHeight: number;
572
430
  combinedMilestonesHeight: number;
573
431
  milestonesYOffset: number;
574
432
  chartsYOffset: number;
@@ -615,12 +473,11 @@ export declare const components: {
615
473
  barYPadding: number;
616
474
  barXPadding: number;
617
475
  chartMinHeight: number;
476
+ chartMinLabelHeight: number;
618
477
  minZoom: number;
619
478
  maxZoom: number;
620
479
  minDate: string;
621
480
  maxDate: string;
622
- minVisibleDate: string;
623
- maxVisibleDate: string;
624
481
  cursorTimestamp: string | undefined;
625
482
  selectedClass: string | undefined;
626
483
  panOnDateClick: boolean;
@@ -630,10 +487,14 @@ export declare const components: {
630
487
  markers: import('./types').TimelineMarker[];
631
488
  stickyMarkers: boolean;
632
489
  fitMarkersOnChange: boolean;
633
- fitMarkersTransitionDuration: number;
490
+ zoomToIntervalTransitionDuration: number;
634
491
  zoomToBoundariesTransitionDuration: number;
635
492
  milestoneBulletSize: number;
636
493
  milestonesFirst: boolean;
494
+ forbiddenIntervals: import('./types').TimelineInterval[];
495
+ forbiddenIntervalColor: string;
496
+ focusedInterval: import('./types').TimelineInterval | undefined;
497
+ locked: boolean;
637
498
  }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
638
499
  EVideoEmbed: import("vue").DefineComponent<{
639
500
  videoUrl: {
@@ -678,100 +539,37 @@ export declare const components: {
678
539
  iframeListeners: Partial<HTMLIFrameElement>;
679
540
  iframeOptions: Record<string, any>;
680
541
  }>;
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;
542
+ 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>;
543
+ 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>;
544
+ 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>>, {
545
+ showAllContent: boolean;
683
546
  }, {
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;
547
+ displayContent(): any;
548
+ displayArrayContent(): any;
549
+ displayTextContent(): any;
550
+ toggleContentExpansion(): void;
691
551
  }, {
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;
552
+ hiddenContentLength: number;
553
+ isArrayContent: boolean;
554
+ isHiddenTextContent: boolean;
555
+ isHiddenArrayContent: boolean;
556
+ isContentExpanded: boolean;
557
+ computedMoreText: string;
700
558
  }, {
701
- options: import('./components/EToggleSwitch.vue').EToggleSwitchOption[];
702
- color: string;
703
- size: import('./types').Size;
704
- defaultValue: string | number | boolean;
559
+ content: string | unknown[] | (() => null);
560
+ maxLength: number;
561
+ showAll: boolean;
562
+ expandText: string;
563
+ collapseText: string;
564
+ moreTextWithPlaceholder: string;
705
565
  }, {}, 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
- }>;
566
+ ETruncatedDiv: any;
769
567
  };
770
568
  declare const _default: {
771
569
  install(Vue: VueConstructor): void;
772
570
  };
773
571
  export default _default;
774
- export { EAvatar, EBadge, EIcon, ESpinner, ERow, ECol, EVideoPlayer, ETimeline, EVideoEmbed, EToggleSwitch, EZoomable, };
572
+ export { EAvatar, EBadge, EIcon, ESpinner, ERow, ECol, EVideoPlayer, ETimeline, EVideoEmbed, EReadMore, ETruncatedDiv, };
775
573
  export * from './constants';
776
574
  export * from './types';
777
575
  export * from './utils';
@@ -1,4 +1,4 @@
1
- import { BadgeSizes, AvatarSizes, IconSizes, BadgeColors, ToggleSwitchSizes } from './constants';
1
+ import { BadgeSizes, AvatarSizes, IconSizes, BadgeColors } from './constants';
2
2
  export declare enum Size {
3
3
  dot = "dot",
4
4
  xs = "xs",
@@ -25,17 +25,9 @@ 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];
38
- export type TToggleSwitchSize = (typeof ToggleSwitchSizes)[number];
39
31
  export type TBadgeColor = (typeof BadgeColors)[number];
40
32
  export type TailwindColorClass = string;
41
33
  export type FlexJustifyContent = "around" | "between" | "center" | "end" | "evenly" | "normal" | "start" | "stretch";
@@ -106,6 +98,8 @@ export type TimelineEventsGroup = {
106
98
  milestonesDotSize?: number;
107
99
  height?: number;
108
100
  dotsSize?: number;
101
+ bottom?: boolean;
102
+ barBorderRadius?: number;
109
103
  };
110
104
  export type TimelineEventsByType = {
111
105
  [eventsType: string]: TimelineEventsGroup;
@@ -128,5 +122,18 @@ export type TimelineMarker = {
128
122
  maxDate?: string;
129
123
  [key: string]: any;
130
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
+ };
131
138
  declare const _default: {};
132
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}.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%}
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}