@evercam/ui 0.0.55-beta.36 → 0.0.55-beta.39

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.
@@ -1,3 +1,4 @@
1
+ /// <reference types="node" />
1
2
  import EAvatar from './components/EAvatar.vue';
2
3
  import EBadge from './components/EBadge.vue';
3
4
  import EIcon from './components/EIcon.vue';
@@ -7,7 +8,14 @@ import ECol from './components/ECol.vue';
7
8
  import EVideoPlayer from './components/EVideoPlayer.vue';
8
9
  import ETimeline from './components/ETimeline.vue';
9
10
  import EVideoEmbed from './components/EVideoEmbed.vue';
11
+ import EHeatmapBar from './components/EHeatmapBar.vue';
12
+ import EHoursHeatmap from './components/EHoursHeatmap.vue';
10
13
  import EReadMore from './components/EReadMore.vue';
14
+ import ETruncatedDiv from './components/ETruncatedDiv.vue';
15
+ import ECompareSeparator from './components/ECompareSeparator.vue';
16
+ import EExpandableMenu from "./components/EExpandableMenu.vue";
17
+ import EToggleSwitch from './components/EToggleSwitch.vue';
18
+ import EZoomable from './components/EZoomable.vue';
11
19
  import { VueConstructor } from "vue";
12
20
  export declare const components: {
13
21
  EAvatar: import("vue/types/vue").ExtendedVue<import("vue").default<Record<string, any>, Record<string, any>, never, never, (event: string, ...args: any[]) => import("vue").default<Record<string, any>, Record<string, any>, never, never, any>>, {
@@ -119,7 +127,80 @@ export declare const components: {
119
127
  xs: string | number | boolean;
120
128
  xl: string | number | boolean;
121
129
  }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
122
- EVideoPlayer: import("vue/types/vue").ExtendedVue<import("vue").default<Record<string, any>, Record<string, any>, never, never, (event: string, ...args: any[]) => import("vue").default<Record<string, any>, Record<string, any>, never, never, any>>, {
130
+ EVideoPlayer: import("vue").DefineComponent<{
131
+ targetTimestamp: {
132
+ type: (StringConstructor | DateConstructor)[];
133
+ default: undefined;
134
+ };
135
+ sources: {
136
+ type: import("vue").PropType<string | import('./components/EVideoPlayer.vue').VideoSource[]>;
137
+ required: true;
138
+ };
139
+ videoListeners: {
140
+ type: import("vue").PropType<Partial<HTMLVideoElement>>;
141
+ default: () => {};
142
+ };
143
+ videoOptions: {
144
+ type: import("vue").PropType<Partial<HTMLVideoElement>>;
145
+ default: () => {};
146
+ };
147
+ isHls: {
148
+ type: BooleanConstructor;
149
+ default: boolean;
150
+ };
151
+ streamingToken: {
152
+ type: StringConstructor;
153
+ default: string;
154
+ };
155
+ pauseOnClick: {
156
+ type: BooleanConstructor;
157
+ default: boolean;
158
+ };
159
+ isHlsLoading: {
160
+ type: BooleanConstructor;
161
+ default: boolean;
162
+ };
163
+ isPlaying: {
164
+ type: BooleanConstructor;
165
+ default: boolean;
166
+ };
167
+ isZoomable: {
168
+ type: BooleanConstructor;
169
+ default: boolean;
170
+ };
171
+ zoomableIgnorePointerEvents: {
172
+ type: BooleanConstructor;
173
+ default: boolean;
174
+ };
175
+ timezone: {
176
+ type: StringConstructor;
177
+ default: string;
178
+ };
179
+ playPauseAnimation: {
180
+ type: BooleanConstructor;
181
+ default: boolean;
182
+ };
183
+ disablePlayPauseAnimation: {
184
+ type: BooleanConstructor;
185
+ default: boolean;
186
+ };
187
+ isWebRtc: {
188
+ type: BooleanConstructor;
189
+ default: boolean;
190
+ };
191
+ withColoredLoader: {
192
+ type: BooleanConstructor;
193
+ default: boolean;
194
+ };
195
+ loaderSize: {
196
+ type: StringConstructor;
197
+ default: string;
198
+ };
199
+ withOverlayOnBackground: {
200
+ type: BooleanConstructor;
201
+ default: boolean;
202
+ };
203
+ }, {}, {
123
204
  playing: boolean;
124
205
  percentagePlayed: number;
125
206
  videoLength: string;
@@ -134,10 +215,23 @@ export declare const components: {
134
215
  isLoading: boolean;
135
216
  isError: boolean;
136
217
  player: import("hls.js").default;
218
+ playbackRetries: number;
219
+ preloadedSeconds: number;
220
+ preloadedInterval: {
221
+ start: string;
222
+ end: string;
223
+ };
224
+ }, {
225
+ sourceItems(): import('./components/EVideoPlayer.vue').VideoSource[];
226
+ hasStartedOrFinished(): boolean;
227
+ withControls(): "" | "hide";
137
228
  }, {
138
229
  initHls(): void;
230
+ onContainerClick(): void;
139
231
  handle404Error(): void;
232
+ handleHlsError(_: import("hls.js").Events.ERROR, data: import("hls.js").ErrorData): void;
140
233
  bindEvents(): void;
234
+ onProgress(): void;
141
235
  unbindEvents(): void;
142
236
  bindVideoEvent(which: string): void;
143
237
  initializePlayer(): void;
@@ -149,9 +243,9 @@ export declare const components: {
149
243
  handleScrubbingOnMouseEnd(e: MouseEvent): void;
150
244
  handleEnded(): void;
151
245
  handleLoading(): void;
152
- play(): void;
246
+ play(): Promise<void>;
153
247
  pause(): void;
154
- togglePlay(): void;
248
+ togglePlay(): Promise<void>;
155
249
  setPlaying(state: boolean): void;
156
250
  seekToPercentage(percentage: number): void;
157
251
  convertTimeToDuration(seconds: number): string;
@@ -164,18 +258,98 @@ export declare const components: {
164
258
  skip(duration?: number): void;
165
259
  toggleScrubbing(e: MouseEvent): Promise<void>;
166
260
  handleKeyDown(e: KeyboardEvent): void;
167
- }, {
168
- sourceItems: import('./components/EVideoPlayer.vue').VideoSource[];
169
- hasStartedOrFinished: boolean;
170
- withControls: "" | "hide";
171
- }, {
172
- sources: string | import('./components/EVideoPlayer.vue').VideoSource[];
173
- videoListeners: {};
174
- videoOptions: {};
261
+ }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
262
+ targetTimestamp: {
263
+ type: (StringConstructor | DateConstructor)[];
264
+ default: undefined;
265
+ };
266
+ sources: {
267
+ type: import("vue").PropType<string | import('./components/EVideoPlayer.vue').VideoSource[]>;
268
+ required: true;
269
+ };
270
+ videoListeners: {
271
+ type: import("vue").PropType<Partial<HTMLVideoElement>>;
272
+ default: () => {};
273
+ };
274
+ videoOptions: {
275
+ type: import("vue").PropType<Partial<HTMLVideoElement>>;
276
+ default: () => {};
277
+ };
278
+ isHls: {
279
+ type: BooleanConstructor;
280
+ default: boolean;
281
+ };
282
+ streamingToken: {
283
+ type: StringConstructor;
284
+ default: string;
285
+ };
286
+ pauseOnClick: {
287
+ type: BooleanConstructor;
288
+ default: boolean;
289
+ };
290
+ isHlsLoading: {
291
+ type: BooleanConstructor;
292
+ default: boolean;
293
+ };
294
+ isPlaying: {
295
+ type: BooleanConstructor;
296
+ default: boolean;
297
+ };
298
+ isZoomable: {
299
+ type: BooleanConstructor;
300
+ default: boolean;
301
+ };
302
+ zoomableIgnorePointerEvents: {
303
+ type: BooleanConstructor;
304
+ default: boolean;
305
+ };
306
+ timezone: {
307
+ type: StringConstructor;
308
+ default: string;
309
+ };
310
+ playPauseAnimation: {
311
+ type: BooleanConstructor;
312
+ default: boolean;
313
+ };
314
+ disablePlayPauseAnimation: {
315
+ type: BooleanConstructor;
316
+ default: boolean;
317
+ };
318
+ isWebRtc: {
319
+ type: BooleanConstructor;
320
+ default: boolean;
321
+ };
322
+ withColoredLoader: {
323
+ type: BooleanConstructor;
324
+ default: boolean;
325
+ };
326
+ loaderSize: {
327
+ type: StringConstructor;
328
+ default: string;
329
+ };
330
+ withOverlayOnBackground: {
331
+ type: BooleanConstructor;
332
+ default: boolean;
333
+ };
334
+ }>>, {
335
+ timezone: string;
336
+ isPlaying: boolean;
337
+ targetTimestamp: string | Date;
338
+ videoListeners: Partial<HTMLVideoElement>;
339
+ videoOptions: Partial<HTMLVideoElement>;
175
340
  isHls: boolean;
176
341
  streamingToken: string;
177
- isLiveView: boolean;
178
- }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
342
+ pauseOnClick: boolean;
343
+ isHlsLoading: boolean;
344
+ isZoomable: boolean;
345
+ zoomableIgnorePointerEvents: boolean;
346
+ playPauseAnimation: boolean;
347
+ disablePlayPauseAnimation: boolean;
348
+ isWebRtc: boolean;
349
+ withColoredLoader: boolean;
350
+ loaderSize: string;
351
+ withOverlayOnBackground: boolean;
352
+ }>;
179
353
  ETimeline: import("vue/types/vue").ExtendedVue<import("vue").default<Record<string, any>, Record<string, any>, never, never, (event: string, ...args: any[]) => import("vue").default<Record<string, any>, Record<string, any>, never, never, any>>, {
180
354
  tooltip: HTMLElement;
181
355
  cursor: HTMLElement;
@@ -494,6 +668,7 @@ export declare const components: {
494
668
  forbiddenIntervalColor: string;
495
669
  focusedInterval: import('./types').TimelineInterval | undefined;
496
670
  locked: boolean;
671
+ timezone: string | undefined;
497
672
  }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
498
673
  EVideoEmbed: import("vue").DefineComponent<{
499
674
  videoUrl: {
@@ -562,12 +737,173 @@ export declare const components: {
562
737
  collapseText: string;
563
738
  moreTextWithPlaceholder: string;
564
739
  }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
740
+ ETruncatedDiv: 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>>, unknown, unknown, {
741
+ containerStyle: Record<string, any>;
742
+ }, {
743
+ width: string | number;
744
+ fixedWidth: boolean;
745
+ }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
746
+ ECompareSeparator: 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>>, unknown, unknown, {
747
+ separatorStyle: Record<string, any>;
748
+ }, {
749
+ xOffset: string | number;
750
+ }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
751
+ 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>>, {
752
+ value: any;
753
+ }, {
754
+ getButtonClasses(optionValue: any): {
755
+ "e-bg-inherit": boolean;
756
+ "e-bg-brand-600": boolean;
757
+ "e-bg-gray-600": boolean;
758
+ "e-bg-[#629efc] e-text-gray-900 e-font-normal": boolean;
759
+ };
760
+ handleClick(value: any): void;
761
+ }, {
762
+ sizeClasses: {
763
+ container: import('./components/EToggleSwitch.vue').CssClassMap;
764
+ button: import('./components/EToggleSwitch.vue').CssClassMap;
765
+ text: import('./components/EToggleSwitch.vue').CssClassMap;
766
+ };
767
+ containerClasses: import('./components/EToggleSwitch.vue').CssClassMap;
768
+ textClasses: import('./components/EToggleSwitch.vue').CssClassMap;
769
+ buttonBaseClasses: import('./components/EToggleSwitch.vue').CssClassMap;
770
+ }, {
771
+ options: import('./components/EToggleSwitch.vue').EToggleSwitchOption[];
772
+ color: string;
773
+ size: import('./types').Size;
774
+ defaultValue: string | number | boolean;
775
+ }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
776
+ EZoomable: import("vue").DefineComponent<{
777
+ ignorePointerEvents: {
778
+ type: BooleanConstructor;
779
+ default: boolean;
780
+ };
781
+ withOverlay: {
782
+ type: BooleanConstructor;
783
+ default: boolean;
784
+ };
785
+ disabled: {
786
+ type: BooleanConstructor;
787
+ default: boolean;
788
+ };
789
+ }, {}, {
790
+ scale: number;
791
+ minScale: number;
792
+ maxScale: number;
793
+ top: number;
794
+ left: number;
795
+ isPanning: boolean;
796
+ panStart: {
797
+ x: number;
798
+ y: number;
799
+ };
800
+ isPinching: boolean;
801
+ previousPinchDistance: number;
802
+ pinchDistance: number;
803
+ pointers: {};
804
+ transform: string;
805
+ }, {
806
+ contentStyle(): {
807
+ transform: string;
808
+ };
809
+ isZoomed(): boolean;
810
+ }, {
811
+ updateZoomScale(): void;
812
+ handleZoom(e: any): void;
813
+ handleMouseDown(e: any): void;
814
+ handleMouseUp(): void;
815
+ handleMouseLeave(): void;
816
+ handleMouseMove(e: any): void;
817
+ applyBoundsCorrection(): void;
818
+ updateTransform(): void;
819
+ getPointersDistance(a: any, b: any): number;
820
+ getPointersMidPoint(a: any, b: any): {
821
+ x: any;
822
+ y: any;
823
+ };
824
+ updatePointerEvent(e: any): void;
825
+ clearPointerEvent(e: any): void;
826
+ updatePinchDistance(): void;
827
+ handlePointerDown(e: any): void;
828
+ handlePointerMove(e: any): void;
829
+ handlePointerUp(e: any): void;
830
+ }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
831
+ ignorePointerEvents: {
832
+ type: BooleanConstructor;
833
+ default: boolean;
834
+ };
835
+ withOverlay: {
836
+ type: BooleanConstructor;
837
+ default: boolean;
838
+ };
839
+ disabled: {
840
+ type: BooleanConstructor;
841
+ default: boolean;
842
+ };
843
+ }>>, {
844
+ ignorePointerEvents: boolean;
845
+ withOverlay: boolean;
846
+ disabled: boolean;
847
+ }>;
848
+ EExpandableMenu: import("vue").DefineComponent<{
849
+ padding: {
850
+ type: NumberConstructor;
851
+ default: number;
852
+ };
853
+ direction: {
854
+ type: import("vue").PropType<"left" | "top" | "right" | "bottom">;
855
+ default: string;
856
+ validator: (prop: string) => boolean;
857
+ };
858
+ isMobile: {
859
+ type: BooleanConstructor;
860
+ default: boolean;
861
+ };
862
+ }, {}, {
863
+ menu: boolean;
864
+ touched: boolean;
865
+ baseSize: {};
866
+ }, {
867
+ row(): boolean;
868
+ reverse(): boolean;
869
+ }, {
870
+ toggleMenu(): void;
871
+ setButtonsPositions(open: boolean): void;
872
+ }, 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>>, {
873
+ timeouts: number[];
874
+ }, {
875
+ $setTimeout(cb: () => void, timeout?: number): NodeJS.Timeout;
876
+ $clearTimeouts(): void;
877
+ }, unknown, Record<never, any>, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin> | 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>>, {
878
+ eventListeners: import("./mixins/event-listeners").IEventListener[];
879
+ }, {
880
+ $addEventListener(event: string, cb: () => void, element?: Window & typeof globalThis): void;
881
+ $removeEventListeners(): void;
882
+ }, unknown, Record<never, any>, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>, import("vue").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
883
+ padding: {
884
+ type: NumberConstructor;
885
+ default: number;
886
+ };
887
+ direction: {
888
+ type: import("vue").PropType<"left" | "top" | "right" | "bottom">;
889
+ default: string;
890
+ validator: (prop: string) => boolean;
891
+ };
892
+ isMobile: {
893
+ type: BooleanConstructor;
894
+ default: boolean;
895
+ };
896
+ }>>, {
897
+ padding: number;
898
+ isMobile: boolean;
899
+ direction: "left" | "top" | "right" | "bottom";
900
+ }>;
565
901
  };
566
902
  declare const _default: {
567
903
  install(Vue: VueConstructor): void;
568
904
  };
569
905
  export default _default;
570
- export { EAvatar, EBadge, EIcon, ESpinner, ERow, ECol, EVideoPlayer, ETimeline, EVideoEmbed, EReadMore, };
906
+ export { EAvatar, EBadge, EIcon, ESpinner, ERow, ECol, EVideoPlayer, ETimeline, EVideoEmbed, EHeatmapBar, EHoursHeatmap, EReadMore, ETruncatedDiv, ECompareSeparator, EToggleSwitch, EZoomable, EExpandableMenu, };
571
907
  export * from './constants';
572
908
  export * from './types';
573
909
  export * from './utils';
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import Vue from "vue";
3
2
  export interface InactivityListenerMixinProps {
4
3
  duration: number;
@@ -12,14 +11,14 @@ declare const _default: import("vue/types/vue").ExtendedVue<Vue<Record<string, a
12
11
  $registerInactivityListener({ callback, duration, reminders, }: InactivityListenerMixinProps): void;
13
12
  $removeInactivityListeners(): void;
14
13
  }, unknown, Record<never, any>, {}, import("vue/types/vue").ExtendedVue<Vue<Record<string, any>, Record<string, any>, never, never, (event: string, ...args: any[]) => Vue<Record<string, any>, Record<string, any>, never, never, any>>, {
15
- eventListeners: import('../mixins/event-listeners').IEventListener[];
16
- }, {
17
- $addEventListener(event: string, cb: () => void, element?: Window & typeof globalThis): void;
18
- $removeEventListeners(): void;
19
- }, unknown, Record<never, any>, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin> | import("vue/types/vue").ExtendedVue<Vue<Record<string, any>, Record<string, any>, never, never, (event: string, ...args: any[]) => Vue<Record<string, any>, Record<string, any>, never, never, any>>, {
20
14
  timeouts: number[];
21
15
  }, {
22
16
  $setTimeout(cb: () => void, timeout?: number): NodeJS.Timeout;
23
17
  $clearTimeouts(): void;
18
+ }, unknown, Record<never, any>, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin> | import("vue/types/vue").ExtendedVue<Vue<Record<string, any>, Record<string, any>, never, never, (event: string, ...args: any[]) => Vue<Record<string, any>, Record<string, any>, never, never, any>>, {
19
+ eventListeners: import('../mixins/event-listeners').IEventListener[];
20
+ }, {
21
+ $addEventListener(event: string, cb: () => void, element?: Window & typeof globalThis): void;
22
+ $removeEventListeners(): void;
24
23
  }, unknown, Record<never, any>, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>, import("vue").ComponentOptionsMixin>;
25
24
  export default _default;
@@ -1,4 +1,4 @@
1
- import { BadgeSizes, AvatarSizes, IconSizes, BadgeColors } from './constants';
1
+ import { BadgeSizes, AvatarSizes, IconSizes, BadgeColors, ToggleSwitchSizes } from './constants';
2
2
  export declare enum Size {
3
3
  dot = "dot",
4
4
  xs = "xs",
@@ -28,6 +28,7 @@ export declare enum BaseColor {
28
28
  export type TBadgeSize = (typeof BadgeSizes)[number];
29
29
  export type TAvatarSize = (typeof AvatarSizes)[number];
30
30
  export type TIconSize = (typeof IconSizes)[number];
31
+ export type TToggleSwitchSize = (typeof ToggleSwitchSizes)[number];
31
32
  export type TBadgeColor = (typeof BadgeColors)[number];
32
33
  export type TailwindColorClass = string;
33
34
  export type FlexJustifyContent = "around" | "between" | "center" | "end" | "evenly" | "normal" | "start" | "stretch";
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- .e-spinner[data-v-29711f67]{vertical-align:center}.e-spinner__primary[data-v-29711f67],.e-spinner__secondary[data-v-29711f67]{stroke-width:0;animation:fade-29711f67;animation-iteration-count:infinite}@keyframes fade-29711f67{0%{fill-opacity:0}50%{fill-opacity:1}to{fill-opacity:0}}.e-row.e-row--no-gutters{margin:0}.e-row.e-row--no-gutters>.e-col{padding:0}.e-col{padding:.75rem}.spinner-container[data-v-9071f674]{position:absolute;background:linear-gradient(to top,rgba(0,0,0,.65),transparent);inset:0;display:flex;justify-content:center;align-items:center;vertical-align:middle}.video-container[data-v-9071f674]{position:relative;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;margin:0 auto}.video-container.full-screen[data-v-9071f674]{max-width:initial;width:100%;max-height:100vh}video[data-v-9071f674]{width:100%;height:inherit}.video-controls-container[data-v-9071f674]{position:absolute;bottom:0;left:0;right:0;color:#fff;z-index:100;opacity:0;transition:opacity .15s ease-in-out}.hide[data-v-9071f674]{display:none}.video-controls-container[data-v-9071f674]:before{content:"";position:absolute;bottom:0;background:linear-gradient(to top,rgba(0,0,0,.75),transparent);width:100%;aspect-ratio:6 / 1;z-index:-1;pointer-events:none}.video-container:hover .video-controls-container[data-v-9071f674],.video-container:focus-within .video-controls-container[data-v-9071f674],.video-container.paused .video-controls-container[data-v-9071f674]{opacity:1}.video-controls-container .controls[data-v-9071f674]{display:flex;gap:.5rem;padding:.75rem 1rem;align-items:center;width:100%}.video-controls-container .controls button[data-v-9071f674]{background:none;border:none;color:inherit;padding:0;height:32px;width:32px;font-size:1.35rem;cursor:pointer;opacity:.85;transition:opacity .15s ease-in-out}.video-controls-container .controls button[data-v-9071f674]:hover{opacity:1}.duration-container[data-v-9071f674]{display:flex;align-items:center;gap:.25rem;flex-grow:1}.video-container.captions .captions-btn[data-v-9071f674]{border-bottom:3px solid red}.video-controls-container .controls button.wide-btn[data-v-9071f674]{width:50px}.timeline-container[data-v-9071f674]{width:100%;height:7px;margin-inline:.5rem;cursor:pointer;display:flex;align-items:center}.timeline[data-v-9071f674]{background-color:#64646480;height:3px;width:100%;position:relative}.timeline[data-v-9071f674]:before{content:"";position:absolute;left:0;top:0;bottom:0;right:calc(100% - var(--preview-position) * 100%);background-color:#969696;display:none}.timeline[data-v-9071f674]:after{content:"";position:absolute;left:0;top:0;bottom:0;right:calc(100% - var(--progress-position) * 100%);background-color:red}.timeline .thumb-indicator[data-v-9071f674]{--scale: 0;position:absolute;transform:translate(-50%) scale(var(--scale));height:200%;top:-50%;left:calc(var(--progress-position) * 100%);background-color:red;border-radius:50%;transition:transform .15s ease-in-out;aspect-ratio:1 / 1}.video-container.scrubbing .thumbnail-img[data-v-9071f674]{display:block}.video-container.scrubbing .timeline[data-v-9071f674]:before,.timeline-container:hover .timeline[data-v-9071f674]:before{display:block}.video-container.scrubbing .thumb-indicator[data-v-9071f674],.timeline-container:hover .thumb-indicator[data-v-9071f674]{--scale: 1}.video-container.scrubbing .timeline[data-v-9071f674],.timeline-container:hover .timeline[data-v-9071f674]{height:100%}.e-tl-milestone{position:absolute;border-radius:10em;box-sizing:border-box}.e-tl-milestone-content{cursor:pointer}.e-tl-milestone--bullet{transform:translate(-50%,-50%)}.e-tl-milestone--bullet .e-tl-milestone-content{opacity:0;width:0;height:0;white-space:nowrap;pointer-events:none;cursor:pointer}.e-tl-milestone--bullet.e-tl-milestone--hovered{cursor:pointer;min-height:26px;padding:0 8px;border-radius:.5em}.e-tl-milestone--bullet.e-tl-milestone--hovered .e-tl-milestone-content{opacity:1;font-size:small;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.e-tl-milestone--bullet .e-tl-milestone-label{position:absolute;top:0;left:0;opacity:1;pointer-events:none;height:100%;width:100%}.e-tl-milestone--bullet.e-tl-milestone--hovered .e-tl-milestone-label{opacity:0}.e-tl-milestone--dot{transform:translateY(-50%)}.e-tl-milestone-dot--hovered .e-tl-milestone-dot-container{padding:0 3em;transform:translate(-50%);opacity:1}.e-tl-milestone-dot-line{position:absolute}.e-tl-milestone-dot-dot{position:absolute;border-radius:50%}.e-tl-milestone-dot-container{opacity:0;position:absolute;padding:0 .3em;transform:translate(-50%,-100%);cursor:pointer}.e-timeline svg{display:block}.e-timeline .x-axis-overview .domain,.e-timeline .x-axis-detailed .domain,.e-timeline .x-axis-overviewBackground .domain,.e-timeline .x-axis-detailedBackground .domain{display:none}.e-timeline .x-axis-detailedBackground .domain,.e-timeline .x-axis-detailedBackground text{display:none}.e-timeline .x-axis-overview>g.tick>line{opacity:.1;stroke-width:3;stroke-linecap:round}.e-timeline .x-axis-detailed>g.tick>line{opacity:.1;stroke-linecap:round}.e-timeline .x-axis-detailedBackground>g.tick>line{opacity:.075;stroke-linecap:round}.e-timeline--dark .tick line{stroke:#fff}.e-timeline--dark .tick text{fill:#fff}@keyframes moveGradient{0%{transform:translate(-50%)}to{transform:translate(100%)}}@keyframes pulse-rect{0%{filter:saturate(3.5) drop-shadow(0 0 1px #0008)}50%{filter:saturate(.5) drop-shadow(0 0 0 #0000)}to{filter:saturate(3.5) drop-shadow(0 0 1px #0008)}}@keyframes pulse-circle{0%{r:4px}50%{r:1px}to{r:4px}}.loading-indicator{animation:moveGradient 1.5s ease-in infinite}.line-graph-dot--active{animation:pulse-circle 1s ease-in-out infinite}.event-rect--hovered{animation:pulse-rect 1s ease-in-out infinite}@keyframes dash{0%{filter:saturate(1) drop-shadow(0 0 0 #0000)}50%{stroke-width:2px;filter:saturate(2.5) drop-shadow(0 0 0 #0006)}to{filter:saturate(1) drop-shadow(0 0 0 #0000)}}.line-graph-group--highlighted path{animation:dash 1s ease-in-out infinite}.e-timeline--dragging{cursor:ew-resize}.curtain{cursor:ew-resize;fill:#3332;stroke-width:1px;stroke:#3338;transition:stroke-width .2s}.e-timeline--dragging .curtain{stroke-width:3px}.e-timeline--dark .curtain{fill:#fff3;stroke:#fff7}.event-bar-hover-zone{cursor:pointer}.external-labels-container{position:absolute;top:-1.5em;left:0}.external-label{margin-right:.35em;border-width:.5px;border-radius:.2em}.external-label__content{cursor:pointer;font-size:.8em;font-weight:500;padding:0 .6em;line-height:1.4em}.marker-label{transition:transform .2s;transform:translateY(-32px);position:absolute;width:max-content}.marker-label-text{position:absolute;width:max-content;font-size:.8em;font-weight:500;padding:0 .75em;border-radius:.4em .4em .4em 0;box-shadow:0 0 5px -1px #000000f5}.marker-label-text:after{content:"";background:inherit;width:5px;height:5px;bottom:-5px;position:absolute;left:2px;clip-path:path("M 0,5 L 0,0 L 5,0 A 5,5 0 0 0 0,5")}.marker-label-text:before{content:"";background:inherit;height:20px;top:18px;position:absolute;width:2px;left:0}.marker{top:0;filter:saturate(.9)}.marker-line{position:absolute;width:2px;top:-24px;transition:top .2s,height .2s}.marker:hover{cursor:pointer;opacity:1;filter:saturate(1.1)}.marker:hover .marker-label{transform:translateY(-38px);height:61px;width:255px;padding-bottom:42px}.marker:hover .marker-label-text{box-shadow:2px 2px 11px -4px #000}.marker--hidden:hover .marker-label{transform:translateY(-54px)}.marker--draggable,.marker--draggable:hover{user-select:none;cursor:grab}.marker--dragged:hover{cursor:grabbing}.forbidden-interval{opacity:.2}.e-timeline-milestones{height:0}.video-embed[data-v-0ecf4a71]{position:relative;width:100%!important;padding-bottom:56.25%}.video-embed iframe[data-v-0ecf4a71]{position:absolute;top:0;left:0;width:100%;height:100%}.e-heatmap-bar__label{white-space:nowrap;width:6rem;min-width:6rem}.e-heatmap-bar__item{height:16px;margin:2px;position:relative;cursor:pointer;border-radius:2px;min-width:0}.e-heatmap-bar__item:hover{box-shadow:0 0 0 1.5px #5c6d97}.e-heatmap-bar__item--selected{box-shadow:0 0 0 2px #151e3a}.e-heatmap-bar__item__count{font-size:12px;color:#fff;font-weight:500}.e-heatmap-bar__item__count--light{color:#0a214bbd}.e-heatmap-bar__item__name{position:absolute;top:-25px}.e-heatmap-bar:not(.e-heatmap-bar--dense) .e-heatmap-bar__item{min-width:35px}
1
+ .e-spinner[data-v-29711f67]{vertical-align:center}.e-spinner__primary[data-v-29711f67],.e-spinner__secondary[data-v-29711f67]{stroke-width:0;animation:fade-29711f67;animation-iteration-count:infinite}@keyframes fade-29711f67{0%{fill-opacity:0}50%{fill-opacity:1}to{fill-opacity:0}}.e-row.e-row--no-gutters{margin:0}.e-row.e-row--no-gutters>.e-col{padding:0}.e-col{padding:.75rem}.e-transform-0[data-v-8921bc32]{transform-origin:0 0}.spinner-container[data-v-97ac1907]{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-97ac1907]{position:relative;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;margin:0 auto}.video-container.full-screen[data-v-97ac1907]{max-width:initial;width:100%;max-height:100vh}video[data-v-97ac1907]{width:100%;height:inherit}.video-controls-container[data-v-97ac1907]{position:absolute;bottom:0;left:0;right:0;color:#fff;z-index:100;opacity:0;transition:opacity .15s ease-in-out}.hide[data-v-97ac1907]{display:none}.video-controls-container[data-v-97ac1907]: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-97ac1907],.video-container:focus-within .video-controls-container[data-v-97ac1907],.video-container.paused .video-controls-container[data-v-97ac1907]{opacity:1}.video-controls-container .controls[data-v-97ac1907]{display:flex;gap:.5rem;padding:.75rem 1rem;align-items:center;width:100%}.video-controls-container .controls button[data-v-97ac1907]{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-97ac1907]:hover{opacity:1}.duration-container[data-v-97ac1907]{display:flex;align-items:center;gap:.25rem;flex-grow:1}.video-container.captions .captions-btn[data-v-97ac1907]{border-bottom:3px solid #0090ff}.video-controls-container .controls button.wide-btn[data-v-97ac1907]{width:50px}.timeline-container[data-v-97ac1907]{width:100%;height:7px;margin-inline:.5rem;cursor:pointer;display:flex;align-items:center}.timeline[data-v-97ac1907]{background-color:#64646480;height:3px;width:100%;position:relative}.timeline[data-v-97ac1907]: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-97ac1907]:after{content:"";position:absolute;left:0;top:0;bottom:0;right:calc(100% - var(--progress-position) * 100%);background-color:#0090ff}.timeline .thumb-indicator[data-v-97ac1907]{--scale: 0;position:absolute;transform:translate(-50%) scale(var(--scale));height:200%;top:-50%;left:calc(var(--progress-position) * 100%);background-color:#0090ff;border-radius:50%;transition:transform .15s ease-in-out;aspect-ratio:1 / 1}.video-container.scrubbing .thumbnail-img[data-v-97ac1907]{display:block}.video-container.scrubbing .timeline[data-v-97ac1907]:before,.timeline-container:hover .timeline[data-v-97ac1907]:before{display:block}.video-container.scrubbing .thumb-indicator[data-v-97ac1907],.timeline-container:hover .thumb-indicator[data-v-97ac1907]{--scale: 1}.video-container.scrubbing .timeline[data-v-97ac1907],.timeline-container:hover .timeline[data-v-97ac1907]{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}.e-compare-separator__icon{position:absolute;width:40px;height:40px;top:50%;transform:translate(-50%,-50%);z-index:4;border-radius:50%;cursor:ew-resize;background:#1976d2;border:2px solid white;-webkit-box-shadow:0 0 8px 1px rgba(0,0,0,.3);-moz-box-shadow:0 0 8px 1px rgba(0,0,0,.3);box-shadow:0 0 8px 1px #0000004d}.e-compare-separator__line{position:absolute;top:0;width:3px;height:100%;background:white;transform:translate(-50%)}.expandable-menu{position:relative}.expandable-menu__container{position:absolute;top:0;left:0}.expandable-menu__activator{position:absolute;top:0;left:0;z-index:1}.expandable-menu__menu>*{top:0;left:0;position:absolute}.expandable-menu--closed .expandable-menu__menu{opacity:0;transition:transform .3s ease-in-out,opacity .6s}.expandable-menu--open .expandable-menu__menu{opacity:1;transition:transform .3s ease-in-out,opacity .15s}