@evercam/ui 0.0.58-beta.2 → 0.0.58-beta.5

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.
Files changed (56) hide show
  1. package/README.md +0 -2
  2. package/dist/attributes.json +153 -2
  3. package/dist/index.mjs +3026 -20596
  4. package/dist/index.mjs.map +1 -1
  5. package/dist/index.umd.js +2 -221
  6. package/dist/index.umd.js.map +1 -1
  7. package/dist/src/components/EGlobalSearch.vue.d.ts +31 -0
  8. package/dist/src/components/EHeatmapBar.vue.d.ts +19 -1
  9. package/dist/src/components/EHoursHeatmap.vue.d.ts +14 -1
  10. package/dist/src/components/EReadMore.vue.d.ts +1 -1
  11. package/dist/src/components/EVideoEmbed.vue.d.ts +10 -44
  12. package/dist/src/components/EVideoPlayer.vue.d.ts +15 -159
  13. package/dist/src/components/EZoomable.vue.d.ts +20 -47
  14. package/dist/src/constants.d.ts +1 -0
  15. package/dist/src/index.d.ts +102 -256
  16. package/dist/src/mixins/event-listeners.d.ts +7 -0
  17. package/dist/src/mixins/inactivity-listener.d.ts +7 -2
  18. package/dist/src/mixins/timeouts.d.ts +7 -1
  19. package/dist/src/types.d.ts +28 -1
  20. package/dist/src/utils.d.ts +3 -2
  21. package/dist/style.css +1 -1
  22. package/dist/styles.css +90 -3
  23. package/dist/tags.json +49 -2
  24. package/dist/web-types.json +307 -10
  25. package/package.json +77 -78
  26. package/dist/src/components/ESvgIcon.vue.d.ts +0 -7
  27. package/dist/src/components/svg-icons/BaseIcon.vue.d.ts +0 -10
  28. package/dist/src/components/svg-icons/Bim.vue.d.ts +0 -5
  29. package/dist/src/components/svg-icons/Blur.vue.d.ts +0 -5
  30. package/dist/src/components/svg-icons/Compare.vue.d.ts +0 -5
  31. package/dist/src/components/svg-icons/ConcretePump.vue.d.ts +0 -3
  32. package/dist/src/components/svg-icons/DroneView.vue.d.ts +0 -3
  33. package/dist/src/components/svg-icons/Dumper.vue.d.ts +0 -3
  34. package/dist/src/components/svg-icons/Evercam.vue.d.ts +0 -5
  35. package/dist/src/components/svg-icons/EvercamLogo.vue.d.ts +0 -3
  36. package/dist/src/components/svg-icons/Excavator.vue.d.ts +0 -3
  37. package/dist/src/components/svg-icons/FlatbedSemiTrailer.vue.d.ts +0 -3
  38. package/dist/src/components/svg-icons/FreeDrawing.vue.d.ts +0 -5
  39. package/dist/src/components/svg-icons/IModel.vue.d.ts +0 -3
  40. package/dist/src/components/svg-icons/Inspection.vue.d.ts +0 -5
  41. package/dist/src/components/svg-icons/Loader.vue.d.ts +0 -3
  42. package/dist/src/components/svg-icons/MiniModel.vue.d.ts +0 -3
  43. package/dist/src/components/svg-icons/OtherTruck.vue.d.ts +0 -3
  44. package/dist/src/components/svg-icons/RoadVehicle.vue.d.ts +0 -3
  45. package/dist/src/components/svg-icons/Roller.vue.d.ts +0 -3
  46. package/dist/src/components/svg-icons/SemiTrailer.vue.d.ts +0 -3
  47. package/dist/src/components/svg-icons/SkidSteerLoader.vue.d.ts +0 -3
  48. package/dist/src/components/svg-icons/SmallTruck.vue.d.ts +0 -3
  49. package/dist/src/components/svg-icons/TankTruck.vue.d.ts +0 -3
  50. package/dist/src/components/svg-icons/The360.vue.d.ts +0 -3
  51. package/dist/src/components/svg-icons/TippingTruck.vue.d.ts +0 -3
  52. package/dist/src/components/svg-icons/TruckHead.vue.d.ts +0 -3
  53. package/dist/src/components/svg-icons/TruckMixer.vue.d.ts +0 -3
  54. package/dist/src/components/svg-icons/Worker.vue.d.ts +0 -3
  55. package/dist/src/components/svg-icons/ZohoCrm.vue.d.ts +0 -5
  56. package/dist/src/components/svg-icons/index.d.ts +0 -19
@@ -12,10 +12,10 @@ import EHoursHeatmap from './components/EHoursHeatmap.vue';
12
12
  import EReadMore from './components/EReadMore.vue';
13
13
  import ETruncatedDiv from './components/ETruncatedDiv.vue';
14
14
  import ECompareSeparator from './components/ECompareSeparator.vue';
15
- import ESvgIcon from './components/ESvgIcon.vue';
16
15
  import EToggleSwitch from './components/EToggleSwitch.vue';
17
16
  import EZoomable from './components/EZoomable.vue';
18
17
  import { VueConstructor } from "vue";
18
+ import EGlobalSearch from "./components/EGlobalSearch.vue";
19
19
  export declare const components: {
20
20
  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>>, {
21
21
  sizes: {
@@ -126,80 +126,7 @@ export declare const components: {
126
126
  xs: string | number | boolean;
127
127
  xl: string | number | boolean;
128
128
  }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
129
- EVideoPlayer: import("vue").DefineComponent<{
130
- targetTimestamp: {
131
- type: (StringConstructor | DateConstructor)[];
132
- default: undefined;
133
- };
134
- sources: {
135
- type: import("vue").PropType<string | import('./components/EVideoPlayer.vue').VideoSource[]>;
136
- required: true;
137
- };
138
- videoListeners: {
139
- type: import("vue").PropType<Partial<HTMLVideoElement>>;
140
- default: () => {};
141
- };
142
- videoOptions: {
143
- type: import("vue").PropType<Partial<HTMLVideoElement>>;
144
- default: () => {};
145
- };
146
- isHls: {
147
- type: BooleanConstructor;
148
- default: boolean;
149
- };
150
- streamingToken: {
151
- type: StringConstructor;
152
- default: string;
153
- };
154
- pauseOnClick: {
155
- type: BooleanConstructor;
156
- default: boolean;
157
- };
158
- isHlsLoading: {
159
- type: BooleanConstructor;
160
- default: boolean;
161
- };
162
- isPlaying: {
163
- type: BooleanConstructor;
164
- default: boolean;
165
- };
166
- isZoomable: {
167
- type: BooleanConstructor;
168
- default: boolean;
169
- };
170
- zoomableIgnorePointerEvents: {
171
- type: BooleanConstructor;
172
- default: boolean;
173
- };
174
- timezone: {
175
- type: StringConstructor;
176
- default: string;
177
- };
178
- playPauseAnimation: {
179
- type: BooleanConstructor;
180
- default: boolean;
181
- };
182
- disablePlayPauseAnimation: {
183
- type: BooleanConstructor;
184
- default: boolean;
185
- };
186
- isWebRtc: {
187
- type: BooleanConstructor;
188
- default: boolean;
189
- };
190
- withColoredLoader: {
191
- type: BooleanConstructor;
192
- default: boolean;
193
- };
194
- loaderSize: {
195
- type: StringConstructor;
196
- default: string;
197
- };
198
- withOverlayOnBackground: {
199
- type: BooleanConstructor;
200
- default: boolean;
201
- };
202
- }, {}, {
129
+ 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>>, {
203
130
  playing: boolean;
204
131
  percentagePlayed: number;
205
132
  videoLength: string;
@@ -220,10 +147,6 @@ export declare const components: {
220
147
  start: string;
221
148
  end: string;
222
149
  };
223
- }, {
224
- sourceItems(): import('./components/EVideoPlayer.vue').VideoSource[];
225
- hasStartedOrFinished(): boolean;
226
- withControls(): "" | "hide";
227
150
  }, {
228
151
  initHls(): void;
229
152
  onContainerClick(): void;
@@ -257,98 +180,31 @@ export declare const components: {
257
180
  skip(duration?: number): void;
258
181
  toggleScrubbing(e: MouseEvent): Promise<void>;
259
182
  handleKeyDown(e: KeyboardEvent): void;
260
- }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
261
- targetTimestamp: {
262
- type: (StringConstructor | DateConstructor)[];
263
- default: undefined;
264
- };
265
- sources: {
266
- type: import("vue").PropType<string | import('./components/EVideoPlayer.vue').VideoSource[]>;
267
- required: true;
268
- };
269
- videoListeners: {
270
- type: import("vue").PropType<Partial<HTMLVideoElement>>;
271
- default: () => {};
272
- };
273
- videoOptions: {
274
- type: import("vue").PropType<Partial<HTMLVideoElement>>;
275
- default: () => {};
276
- };
277
- isHls: {
278
- type: BooleanConstructor;
279
- default: boolean;
280
- };
281
- streamingToken: {
282
- type: StringConstructor;
283
- default: string;
284
- };
285
- pauseOnClick: {
286
- type: BooleanConstructor;
287
- default: boolean;
288
- };
289
- isHlsLoading: {
290
- type: BooleanConstructor;
291
- default: boolean;
292
- };
293
- isPlaying: {
294
- type: BooleanConstructor;
295
- default: boolean;
296
- };
297
- isZoomable: {
298
- type: BooleanConstructor;
299
- default: boolean;
300
- };
301
- zoomableIgnorePointerEvents: {
302
- type: BooleanConstructor;
303
- default: boolean;
304
- };
305
- timezone: {
306
- type: StringConstructor;
307
- default: string;
308
- };
309
- playPauseAnimation: {
310
- type: BooleanConstructor;
311
- default: boolean;
312
- };
313
- disablePlayPauseAnimation: {
314
- type: BooleanConstructor;
315
- default: boolean;
316
- };
317
- isWebRtc: {
318
- type: BooleanConstructor;
319
- default: boolean;
320
- };
321
- withColoredLoader: {
322
- type: BooleanConstructor;
323
- default: boolean;
324
- };
325
- loaderSize: {
326
- type: StringConstructor;
327
- default: string;
328
- };
329
- withOverlayOnBackground: {
330
- type: BooleanConstructor;
331
- default: boolean;
332
- };
333
- }>>, {
334
- timezone: string;
335
- isPlaying: boolean;
336
- targetTimestamp: string | Date;
337
- videoListeners: Partial<HTMLVideoElement>;
338
- videoOptions: Partial<HTMLVideoElement>;
183
+ }, {
184
+ posterUrl: string;
185
+ sourceItems: import('./components/EVideoPlayer.vue').VideoSource[];
186
+ hasStartedOrFinished: boolean;
187
+ withControls: "" | "hide";
188
+ }, {
189
+ targetTimestamp: string;
190
+ sources: string | import('./components/EVideoPlayer.vue').VideoSource[];
191
+ videoListeners: {};
192
+ videoOptions: {};
339
193
  isHls: boolean;
340
194
  streamingToken: string;
341
195
  pauseOnClick: boolean;
342
196
  isHlsLoading: boolean;
197
+ isPlaying: boolean;
343
198
  isZoomable: boolean;
344
199
  zoomableIgnorePointerEvents: boolean;
200
+ timezone: string;
345
201
  playPauseAnimation: boolean;
346
202
  disablePlayPauseAnimation: boolean;
347
203
  isWebRtc: boolean;
348
204
  withColoredLoader: boolean;
349
205
  loaderSize: string;
350
206
  withOverlayOnBackground: boolean;
351
- }>;
207
+ }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
352
208
  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>>, {
353
209
  tooltip: HTMLElement;
354
210
  cursor: HTMLElement;
@@ -669,57 +525,52 @@ export declare const components: {
669
525
  locked: boolean;
670
526
  timezone: string | undefined;
671
527
  }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
672
- EVideoEmbed: import("vue").DefineComponent<{
673
- videoUrl: {
674
- type: StringConstructor;
675
- required: true;
676
- };
677
- platform: {
678
- type: import("vue").PropType<"youtube" | "vimeo">;
679
- required: true;
680
- validator: (value: string) => boolean;
681
- };
682
- iframeListeners: {
683
- type: import("vue").PropType<Partial<HTMLIFrameElement>>;
684
- default: () => {};
685
- };
686
- iframeOptions: {
687
- type: ObjectConstructor;
688
- default: () => {};
689
- };
690
- }, {}, {}, {
691
- videoId(): string | undefined;
692
- embedUrl(): string;
693
- }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
694
- videoUrl: {
695
- type: StringConstructor;
696
- required: true;
697
- };
698
- platform: {
699
- type: import("vue").PropType<"youtube" | "vimeo">;
700
- required: true;
701
- validator: (value: string) => boolean;
702
- };
703
- iframeListeners: {
704
- type: import("vue").PropType<Partial<HTMLIFrameElement>>;
705
- default: () => {};
706
- };
707
- iframeOptions: {
708
- type: ObjectConstructor;
709
- default: () => {};
528
+ EVideoEmbed: 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, {
529
+ videoId: string | undefined;
530
+ embedUrl: string;
531
+ }, {
532
+ videoUrl: string;
533
+ platform: "youtube" | "vimeo";
534
+ iframeListeners: {};
535
+ iframeOptions: any;
536
+ }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
537
+ 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>>, unknown, {
538
+ getColorIndex(count: number): number;
539
+ getColor(count: number): string;
540
+ getItemStyle(count: number): {
541
+ background: string;
710
542
  };
711
- }>>, {
712
- iframeListeners: Partial<HTMLIFrameElement>;
713
- iframeOptions: Record<string, any>;
714
- }>;
715
- 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>;
716
- 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
+ }, {
544
+ heatMapBarItems: import('./types').HeatmapBarItem[];
545
+ maxCount: number;
546
+ }, {
547
+ items: unknown[];
548
+ selectedValue: string | number;
549
+ showCounts: boolean;
550
+ showNames: boolean;
551
+ colors: unknown[];
552
+ label: string;
553
+ dense: boolean;
554
+ }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
555
+ 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>>, unknown, {
556
+ getFormattedHour(h: number): string;
557
+ }, {
558
+ itemsByHour: Record<string, import('./types').HoursHeatmapChartItem>;
559
+ heatmapBarItems: any;
560
+ }, {
561
+ items: unknown[];
562
+ selectedHour: string | number;
563
+ showHours: boolean;
564
+ colors: unknown[];
565
+ label: string;
566
+ dense: boolean;
567
+ }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
717
568
  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>>, {
718
569
  showAllContent: boolean;
719
570
  }, {
720
571
  displayContent(): any;
721
572
  displayArrayContent(): any;
722
- displayTextContent(): any;
573
+ displayTextContent(): string | unknown[] | (() => null);
723
574
  toggleContentExpansion(): void;
724
575
  }, {
725
576
  hiddenContentLength: number;
@@ -772,20 +623,7 @@ export declare const components: {
772
623
  size: import('./types').Size;
773
624
  defaultValue: string | number | boolean;
774
625
  }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
775
- EZoomable: import("vue").DefineComponent<{
776
- ignorePointerEvents: {
777
- type: BooleanConstructor;
778
- default: boolean;
779
- };
780
- withOverlay: {
781
- type: BooleanConstructor;
782
- default: boolean;
783
- };
784
- disabled: {
785
- type: BooleanConstructor;
786
- default: boolean;
787
- };
788
- }, {}, {
626
+ EZoomable: 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>>, {
789
627
  scale: number;
790
628
  minScale: number;
791
629
  maxScale: number;
@@ -799,62 +637,70 @@ export declare const components: {
799
637
  isPinching: boolean;
800
638
  previousPinchDistance: number;
801
639
  pinchDistance: number;
802
- pointers: {};
640
+ pointers: Record<number, PointerEvent>;
803
641
  transform: string;
804
- }, {
805
- contentStyle(): {
806
- transform: string;
807
- };
808
- isZoomed(): boolean;
809
642
  }, {
810
643
  updateZoomScale(): void;
811
- handleZoom(e: any): void;
812
- handleMouseDown(e: any): void;
644
+ handleZoom(e: WheelEvent): void;
645
+ handleMouseDown(e: MouseEvent): void;
813
646
  handleMouseUp(): void;
814
647
  handleMouseLeave(): void;
815
- handleMouseMove(e: any): void;
648
+ handleMouseMove(e: MouseEvent): void;
816
649
  applyBoundsCorrection(): void;
817
650
  updateTransform(): void;
818
- getPointersDistance(a: any, b: any): number;
819
- getPointersMidPoint(a: any, b: any): {
820
- x: any;
821
- y: any;
651
+ getPointersDistance(a: PointerEvent, b: PointerEvent): number;
652
+ getPointersMidPoint(a: PointerEvent, b: PointerEvent): {
653
+ x: number;
654
+ y: number;
822
655
  };
823
- updatePointerEvent(e: any): void;
824
- clearPointerEvent(e: any): void;
656
+ updatePointerEvent(e: PointerEvent): void;
657
+ clearPointerEvent(e: PointerEvent): void;
825
658
  updatePinchDistance(): void;
826
- handlePointerDown(e: any): void;
827
- handlePointerMove(e: any): void;
828
- handlePointerUp(e: any): void;
829
- }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
830
- ignorePointerEvents: {
831
- type: BooleanConstructor;
832
- default: boolean;
833
- };
834
- withOverlay: {
835
- type: BooleanConstructor;
836
- default: boolean;
837
- };
838
- disabled: {
839
- type: BooleanConstructor;
840
- default: boolean;
841
- };
842
- }>>, {
659
+ handlePointerDown(e: PointerEvent): void;
660
+ handlePointerMove(e: PointerEvent): void;
661
+ handlePointerUp(e: PointerEvent): void;
662
+ }, {
663
+ contentStyle: import("vue").StyleValue;
664
+ isZoomed: boolean;
665
+ }, {
843
666
  ignorePointerEvents: boolean;
844
667
  withOverlay: boolean;
845
668
  disabled: boolean;
846
- }>;
847
- ESvgIcon: 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, {
848
- svgIconComponent: any;
849
- }, {
850
- icon: string;
851
669
  }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
670
+ EGlobalSearch: 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>>, {
671
+ search: string;
672
+ isSearching: boolean;
673
+ }, {
674
+ onInput(event: InputEvent): void;
675
+ searchObjectsByQuery(objects: import('./types').GlobalSearchResultInput[], query: string): import('./types').GlobalSearchResult[];
676
+ findMatchesInObject(obj: import('./types').GlobalSearchResultInput, query: string, path: string[]): import('./types').GlobalSearchMatch[];
677
+ matchesQuery(value: any, query: string): boolean;
678
+ isValidDate(date: string | Date): boolean;
679
+ formattedTimestamp(timestamp: string): string;
680
+ onKeyHandler(event: unknown): void;
681
+ }, {
682
+ inputClasses: Record<string, boolean>;
683
+ }, {
684
+ dark: boolean;
685
+ items: import('./types').GlobalSearchResultInput;
686
+ timezone: string;
687
+ convertedDateFormat: string;
688
+ currentDateFormat: string;
689
+ isFixedPosition: boolean;
690
+ isHidden: boolean;
691
+ deep: boolean;
692
+ }, {}, 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>>, {
693
+ eventListeners: import("./mixins/event-listeners").IEventListener[];
694
+ }, {
695
+ $addEventListener(event: string, cb: () => void, element?: Window & typeof globalThis): void;
696
+ $removeEventListeners(): void;
697
+ }, unknown, Record<never, any>, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>, import("vue").ComponentOptionsMixin>;
852
698
  };
853
699
  declare const _default: {
854
700
  install(Vue: VueConstructor): void;
855
701
  };
856
702
  export default _default;
857
- export { EAvatar, EBadge, EIcon, ESpinner, ERow, ECol, EVideoPlayer, ETimeline, EVideoEmbed, EHeatmapBar, EHoursHeatmap, EReadMore, ETruncatedDiv, ECompareSeparator, EToggleSwitch, EZoomable, ESvgIcon, };
703
+ export { EAvatar, EBadge, EIcon, ESpinner, ERow, ECol, EVideoPlayer, ETimeline, EVideoEmbed, EHeatmapBar, EHoursHeatmap, EReadMore, ETruncatedDiv, ECompareSeparator, EToggleSwitch, EZoomable, EGlobalSearch, };
858
704
  export * from './constants';
859
705
  export * from './types';
860
706
  export * from './utils';
@@ -4,6 +4,13 @@ export interface IEventListener {
4
4
  cb: () => void;
5
5
  element: EventTarget | null;
6
6
  }
7
+ export type EventListenerCallback = (e: unknown) => unknown | Promise<unknown>;
8
+ declare module "vue/types/vue" {
9
+ interface Vue {
10
+ $addEventListener: (event: string, cb: EventListenerCallback, element?: EventTarget) => void;
11
+ $removeEventListeners: () => void;
12
+ }
13
+ }
7
14
  declare const _default: 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>>, {
8
15
  eventListeners: IEventListener[];
9
16
  }, {
@@ -1,10 +1,15 @@
1
- /// <reference types="node" />
2
1
  import Vue from "vue";
3
2
  export interface InactivityListenerMixinProps {
4
3
  duration: number;
5
4
  reminders?: number[];
6
5
  callback: () => void;
7
6
  }
7
+ declare module "vue/types/vue" {
8
+ interface Vue {
9
+ $clearTimeouts: () => void;
10
+ $setTimeout: (cb: Function, timeout?: number) => void;
11
+ }
12
+ }
8
13
  declare const _default: 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>>, unknown, {
9
14
  resetInactivityListenerTimer(callback?: () => void, duration?: number, reminders?: number[]): void;
10
15
  setInactivityListenerTimer(callback?: () => void, duration?: number, reminders?: number[]): void;
@@ -19,7 +24,7 @@ declare const _default: import("vue/types/vue").ExtendedVue<Vue<Record<string, a
19
24
  }, 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
25
  timeouts: number[];
21
26
  }, {
22
- $setTimeout(cb: () => void, timeout?: number): NodeJS.Timeout;
27
+ $setTimeout(cb: Function, timeout?: number): number;
23
28
  $clearTimeouts(): void;
24
29
  }, unknown, Record<never, any>, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>, import("vue").ComponentOptionsMixin>;
25
30
  export default _default;
@@ -1,8 +1,14 @@
1
1
  import Vue from "vue";
2
+ declare module "vue/types/vue" {
3
+ interface Vue {
4
+ $clearTimeouts: () => void;
5
+ $setTimeout: (cb: Function, timeout?: number) => void;
6
+ }
7
+ }
2
8
  declare const _default: 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>>, {
3
9
  timeouts: number[];
4
10
  }, {
5
- $setTimeout(cb: () => void, timeout?: number): NodeJS.Timeout;
11
+ $setTimeout(cb: Function, timeout?: number): number;
6
12
  $clearTimeouts(): void;
7
13
  }, unknown, Record<never, any>, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
8
14
  export default _default;
@@ -40,6 +40,8 @@ export declare enum TimelineAxis {
40
40
  detailed = "detailed",
41
41
  detailedBackground = "detailedBackground"
42
42
  }
43
+ export type Variants = "solid" | "outline" | "ghost" | "link" | "filled" | "flushed" | "none";
44
+ export type InputVariants = "outline" | "filled" | "flushed" | "none";
43
45
  export type TimelineTicksConfig = {
44
46
  precision: number;
45
47
  interval: any;
@@ -129,12 +131,37 @@ export type TimelineInterval = {
129
131
  };
130
132
  export type HeatmapBarItem = {
131
133
  name: string;
132
- count: string;
134
+ count: number;
133
135
  value: string | number;
134
136
  };
135
137
  export type HoursHeatmapChartItem = {
136
138
  count: number;
137
139
  timestamp: Timestamp;
138
140
  };
141
+ export type GlobalSearchMatch = {
142
+ path: Array<string>;
143
+ value: string | number | boolean;
144
+ };
145
+ export type GlobalSearchResult = {
146
+ index: number;
147
+ matches: Array<GlobalSearchMatch>;
148
+ };
149
+ export type GlobalSearchResultInput = Array<Record<any, any> | Array<any>>;
150
+ export interface FullscreenHTMLElement extends HTMLElement {
151
+ mozRequestFullScreen?: () => Promise<void>;
152
+ webkitRequestFullScreen?: () => Promise<void>;
153
+ msRequestFullscreen?: () => Promise<void>;
154
+ }
155
+ export interface FullscreenDocument extends Document {
156
+ mozCancelFullScreen?: () => Promise<void>;
157
+ webkitCancelFullScreen?: () => Promise<void>;
158
+ msExitFullscreen?: () => Promise<void>;
159
+ mozFullScreenElement: Element | null;
160
+ webkitFullscreenElement: Element | null;
161
+ msFullscreenElement: Element | null;
162
+ webkitFullscreenEnabled: boolean;
163
+ msFullscreenEnabled: boolean;
164
+ mozFullScreenEnabled: boolean;
165
+ }
139
166
  declare const _default: {};
140
167
  export default _default;
@@ -1,4 +1,5 @@
1
1
  export declare function isFullScreen(): boolean;
2
- export declare function makeFullScreen(element: HTMLElement): Promise<unknown> | undefined;
3
- export declare function exitFullScreen(): Promise<unknown> | undefined;
2
+ export declare function makeFullScreen(element: HTMLElement): Promise<unknown>;
3
+ export declare function exitFullScreen(): Promise<void | null>;
4
4
  export declare function debounce<T extends (...args: any[]) => any>(func: T, wait?: number): (...args: Parameters<T>) => void;
5
+ export declare function clsx(...classes: string[]): string;
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-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%)}.company-logo path[data-v-f34588ff]{fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity: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-270d2bfd]{transform-origin:0 0}.spinner-container[data-v-e38adbe1]{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-e38adbe1]{position:relative;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;margin:0 auto}.video-container.full-screen[data-v-e38adbe1]{max-width:initial;width:100%;max-height:100vh}video[data-v-e38adbe1]{width:100%;height:inherit}.video-controls-container[data-v-e38adbe1]{position:absolute;bottom:0;left:0;right:0;color:#fff;z-index:100;opacity:0;transition:opacity .15s ease-in-out}.hide[data-v-e38adbe1]{display:none}.video-controls-container[data-v-e38adbe1]: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-e38adbe1],.video-container:focus-within .video-controls-container[data-v-e38adbe1],.video-container.paused .video-controls-container[data-v-e38adbe1]{opacity:1}.video-controls-container .controls[data-v-e38adbe1]{display:flex;gap:.5rem;padding:.75rem 1rem;align-items:center;width:100%}.video-controls-container .controls button[data-v-e38adbe1]{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-e38adbe1]:hover{opacity:1}.duration-container[data-v-e38adbe1]{display:flex;align-items:center;gap:.25rem;flex-grow:1}.video-container.captions .captions-btn[data-v-e38adbe1]{border-bottom:3px solid #0090ff}.video-controls-container .controls button.wide-btn[data-v-e38adbe1]{width:50px}.timeline-container[data-v-e38adbe1]{width:100%;height:7px;margin-inline:.5rem;cursor:pointer;display:flex;align-items:center}.timeline[data-v-e38adbe1]{background-color:#64646480;height:3px;width:100%;position:relative}.timeline[data-v-e38adbe1]: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-e38adbe1]: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-e38adbe1]{--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-e38adbe1]{display:block}.video-container.scrubbing .timeline[data-v-e38adbe1]:before,.timeline-container:hover .timeline[data-v-e38adbe1]:before{display:block}.video-container.scrubbing .thumb-indicator[data-v-e38adbe1],.timeline-container:hover .thumb-indicator[data-v-e38adbe1]{--scale: 1}.video-container.scrubbing .timeline[data-v-e38adbe1],.timeline-container:hover .timeline[data-v-e38adbe1]{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-7e66cb69]{position:relative;width:100%!important;padding-bottom:56.25%}.video-embed iframe[data-v-7e66cb69]{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%)}.global-search--fixed{position:fixed;top:0;right:0;z-index:999;border-radius:5px;box-shadow:#00000040 0 54px 55px,#0000001f 0 -12px 30px,#0000001f 0 4px 6px,#0000002b 0 12px 13px,#00000017 0 -3px 5px}.global-search--fixed__field{width:260px}