@evercam/ui 0.0.46 → 0.0.47-beta.2

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,40 +1,8 @@
1
1
  import * as d3 from "d3";
2
2
  import Vue from "vue";
3
3
  import { D3ZoomEvent } from "d3";
4
- import { TimelineAxesConfig, TimelineAxis, TimelineTicksConfig, Timestamp } from '../types';
5
- export type TimelineBarEvent = {
6
- timestamp: string | Date;
7
- color?: string;
8
- text?: string;
9
- [key: string]: any;
10
- };
11
- export type TimelineRangeEvent = {
12
- startDate: string | Date;
13
- endDate: string | Date;
14
- [key: string]: any;
15
- };
16
- export type TimelineCountEvent = {
17
- timestamp: string | Date;
18
- count: number;
19
- [key: string]: any;
20
- };
21
- export type TimelineEvent = TimelineBarEvent | TimelineRangeEvent | TimelineCountEvent;
22
- export declare enum TimelineChartType {
23
- bars = "bars",
24
- lineGraph = "lineGraph"
25
- }
26
- export type TimelineEventsGroup = {
27
- label: string;
28
- color: string;
29
- bgColor?: string;
30
- isLoading?: Boolean;
31
- isHidden?: Boolean;
32
- chartType?: TimelineChartType;
33
- events: Array<TimelineEvent>;
34
- };
35
- export type TimelineEventsByType = {
36
- [eventsType: string]: TimelineEventsGroup;
37
- };
4
+ import { TimelineAxesConfig, TimelineAxis, TimelineTicksConfig, Timestamp, TimelineCountEvent, TimelineEvent, TimelineEventsByType } from '../types';
5
+ import { TimelinePrecision } from "@evercam/shared/types";
38
6
  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>>, {
39
7
  tooltip: HTMLElement;
40
8
  cursor: HTMLElement;
@@ -49,6 +17,7 @@ declare const _default: import("vue/types/vue").ExtendedVue<Vue<Record<string, a
49
17
  zoomBehavior: d3.ZoomBehavior<SVGSVGElement, unknown>;
50
18
  isMouseDown: boolean;
51
19
  axisHeight: number;
20
+ eventGroupPadding: number;
52
21
  isHoveringEvent: boolean;
53
22
  hoveredEvent: TimelineEvent;
54
23
  isHoveringTimeline: boolean;
@@ -78,8 +47,6 @@ declare const _default: import("vue/types/vue").ExtendedVue<Vue<Record<string, a
78
47
  rightCurtainWidth: number;
79
48
  isHoveringCurtain: boolean;
80
49
  isDraggingCurtain: boolean;
81
- characterWidth: number;
82
- textPadding: number;
83
50
  }, {
84
51
  initTimeline(startDate?: string, endDate?: string): void;
85
52
  initRefs(): void;
@@ -134,7 +101,6 @@ declare const _default: import("vue/types/vue").ExtendedVue<Vue<Record<string, a
134
101
  updateLineGraphHoverZones(): void;
135
102
  getEventRectX(d: TimelineEvent): any;
136
103
  getEventRectWidth(d: TimelineEvent): number;
137
- getEventText(e: TimelineEvent): string;
138
104
  initCurtains(): void;
139
105
  drawEventsGroups(): void;
140
106
  drawLineGraphEventsGroups(): void;
@@ -175,7 +141,7 @@ declare const _default: import("vue/types/vue").ExtendedVue<Vue<Record<string, a
175
141
  color: string;
176
142
  label: string;
177
143
  }): void;
178
- getTextFillColor(baseColor: string, k?: number): string;
144
+ getTextFillColor(baseColor: string): string;
179
145
  getLabelBackgroundColor(baseColor: string): string;
180
146
  tzStringToDate(timestamp: Timestamp): Date;
181
147
  dateToTzString(date: Date): string;
@@ -184,10 +150,12 @@ declare const _default: import("vue/types/vue").ExtendedVue<Vue<Record<string, a
184
150
  endDate: string;
185
151
  };
186
152
  getFormattedTimestamp(timestamp: Timestamp): string;
187
- fillTimeGaps(events: TimelineEvent[]): TimelineEvent[];
188
- getNormalizedEvents(events: TimelineEvent[]): TimelineEvent[];
153
+ fillTimeGaps(events: TimelineEvent[]): (import('../types').TimelineBarEvent | import('../types').TimelineRangeEvent | {
154
+ timestamp: any;
155
+ count: number;
156
+ })[];
157
+ fillEvents(events: TimelineEvent[]): TimelineEvent[];
189
158
  }, {
190
- barChartHeight: number;
191
159
  classes: Record<string, string | Record<string, boolean>>;
192
160
  lineGraphGroups: TimelineEventsByType;
193
161
  lineGraphChartHeight: number;
@@ -202,7 +170,7 @@ declare const _default: import("vue/types/vue").ExtendedVue<Vue<Record<string, a
202
170
  latestEvent: TimelineEvent;
203
171
  allLineChartTimestamps: string[];
204
172
  placeholderLineChartGroup: TimelineEvent[];
205
- normalizedLineGraphGroups: TimelineEventsByType;
173
+ filledGapsLineGraphGroups: TimelineEventsByType;
206
174
  isInteractingWithCurtain: boolean;
207
175
  }, {
208
176
  eventsGroups: {};
@@ -213,13 +181,12 @@ declare const _default: import("vue/types/vue").ExtendedVue<Vue<Record<string, a
213
181
  selectedTimestamp: string;
214
182
  showEventTooltip: boolean;
215
183
  disableZoom: boolean;
216
- normalizeEvents: boolean;
184
+ insertZerosAtInterval: TimelinePrecision;
217
185
  flattenLineGraphEnds: boolean;
218
186
  curtains: boolean;
219
187
  showLabels: boolean;
220
188
  rectMinWidth: number;
221
- barHeight: number;
222
- barYPadding: number;
189
+ barChartHeight: number;
223
190
  lineGraphMinHeight: number;
224
191
  minZoom: number;
225
192
  maxZoom: number;
@@ -6,7 +6,6 @@ import ERow from './components/ERow.vue';
6
6
  import ECol from './components/ECol.vue';
7
7
  import EVideoPlayer from './components/EVideoPlayer.vue';
8
8
  import ETimeline from './components/ETimeline.vue';
9
- import EVideoEmbed from './components/EVideoEmbed.vue';
10
9
  import { VueConstructor } from "vue";
11
10
  export declare const components: {
12
11
  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>>, {
@@ -185,8 +184,9 @@ export declare const components: {
185
184
  zoomBehavior: import("d3-zoom").ZoomBehavior<SVGSVGElement, unknown>;
186
185
  isMouseDown: boolean;
187
186
  axisHeight: number;
187
+ eventGroupPadding: number;
188
188
  isHoveringEvent: boolean;
189
- hoveredEvent: import('./components/ETimeline.vue').TimelineEvent;
189
+ hoveredEvent: import('./types').TimelineEvent;
190
190
  isHoveringTimeline: boolean;
191
191
  hoveredTimestamp: string;
192
192
  eventTooltipStyle: {};
@@ -214,8 +214,6 @@ export declare const components: {
214
214
  rightCurtainWidth: number;
215
215
  isHoveringCurtain: boolean;
216
216
  isDraggingCurtain: boolean;
217
- characterWidth: number;
218
- textPadding: number;
219
217
  }, {
220
218
  initTimeline(startDate?: string | undefined, endDate?: string | undefined): void;
221
219
  initRefs(): void;
@@ -245,9 +243,9 @@ export declare const components: {
245
243
  handleMouseLeave(): void;
246
244
  handleMouseMove(event: MouseEvent): void;
247
245
  handleClick(event: MouseEvent): void;
248
- handleLineMouseOver(_event: MouseEvent, eventData: import('./components/ETimeline.vue').TimelineCountEvent, eventType: string): void;
246
+ handleLineMouseOver(_event: MouseEvent, eventData: import('./types').TimelineCountEvent, eventType: string): void;
249
247
  handleLineMouseOut(): void;
250
- handleBarMouseOver(_event: MouseEvent, eventData: import('./components/ETimeline.vue').TimelineEvent, eventType: string): void;
248
+ handleBarMouseOver(_event: MouseEvent, eventData: import('./types').TimelineEvent, eventType: string): void;
251
249
  handleBarMouseOut(): void;
252
250
  handleLabelMouseOver(groupType: string): void;
253
251
  handleLabelMouseLeave(groupType: string): void;
@@ -268,20 +266,19 @@ export declare const components: {
268
266
  updateBarCharts(): void;
269
267
  updateLineGraphs(): void;
270
268
  updateLineGraphHoverZones(): void;
271
- getEventRectX(d: import('./components/ETimeline.vue').TimelineEvent): any;
272
- getEventRectWidth(d: import('./components/ETimeline.vue').TimelineEvent): number;
273
- getEventText(e: import('./components/ETimeline.vue').TimelineEvent): string;
269
+ getEventRectX(d: import('./types').TimelineEvent): any;
270
+ getEventRectWidth(d: import('./types').TimelineEvent): number;
274
271
  initCurtains(): void;
275
272
  drawEventsGroups(): void;
276
273
  drawLineGraphEventsGroups(): void;
277
274
  drawLineGraph({ events, gElement, color, type, }: {
278
- events: import('./components/ETimeline.vue').TimelineEvent[];
275
+ events: import('./types').TimelineEvent[];
279
276
  gElement: import("d3-selection").Selection<SVGGElement, any, any, any>;
280
277
  color: string;
281
278
  type: string;
282
279
  }): void;
283
280
  drawLineGraphHoverZones({ events, gElement, color, type, }: {
284
- events: import('./components/ETimeline.vue').TimelineCountEvent[];
281
+ events: import('./types').TimelineCountEvent[];
285
282
  gElement: import("d3-selection").Selection<SVGGElement, any, any, any>;
286
283
  color: string;
287
284
  type: string;
@@ -299,7 +296,7 @@ export declare const components: {
299
296
  color: string;
300
297
  }): void;
301
298
  drawBars({ events, gElement, yPosition, color, type, }: {
302
- events: import('./components/ETimeline.vue').TimelineEvent[];
299
+ events: import('./types').TimelineEvent[];
303
300
  gElement: import("d3-selection").Selection<SVGGElement, any, any, any>;
304
301
  yPosition: number;
305
302
  color: string;
@@ -311,7 +308,7 @@ export declare const components: {
311
308
  color: string;
312
309
  label: string;
313
310
  }): void;
314
- getTextFillColor(baseColor: string, k?: number): string;
311
+ getTextFillColor(baseColor: string): string;
315
312
  getLabelBackgroundColor(baseColor: string): string;
316
313
  tzStringToDate(timestamp: import('./types').Timestamp): Date;
317
314
  dateToTzString(date: Date): string;
@@ -320,25 +317,27 @@ export declare const components: {
320
317
  endDate: string;
321
318
  };
322
319
  getFormattedTimestamp(timestamp: import('./types').Timestamp): string;
323
- fillTimeGaps(events: import('./components/ETimeline.vue').TimelineEvent[]): import('./components/ETimeline.vue').TimelineEvent[];
324
- getNormalizedEvents(events: import('./components/ETimeline.vue').TimelineEvent[]): import('./components/ETimeline.vue').TimelineEvent[];
320
+ fillTimeGaps(events: import('./types').TimelineEvent[]): (import('./types').TimelineBarEvent | import('./types').TimelineRangeEvent | {
321
+ timestamp: any;
322
+ count: number;
323
+ })[];
324
+ fillEvents(events: import('./types').TimelineEvent[]): import('./types').TimelineEvent[];
325
325
  }, {
326
- barChartHeight: number;
327
326
  classes: Record<string, string | Record<string, boolean>>;
328
- lineGraphGroups: import('./components/ETimeline.vue').TimelineEventsByType;
327
+ lineGraphGroups: import('./types').TimelineEventsByType;
329
328
  lineGraphChartHeight: number;
330
- barGroups: import('./components/ETimeline.vue').TimelineEventsByType;
329
+ barGroups: import('./types').TimelineEventsByType;
331
330
  hasLineGraphChart: boolean;
332
331
  labelRectWidth: number;
333
332
  combinedXAxesHeight: number;
334
333
  timelineHeight: number;
335
- filteredEventsGroups: import('./components/ETimeline.vue').TimelineEventsByType;
336
- allEventsSorted: import('./components/ETimeline.vue').TimelineEvent[];
337
- oldestEvent: import('./components/ETimeline.vue').TimelineEvent;
338
- latestEvent: import('./components/ETimeline.vue').TimelineEvent;
334
+ filteredEventsGroups: import('./types').TimelineEventsByType;
335
+ allEventsSorted: import('./types').TimelineEvent[];
336
+ oldestEvent: import('./types').TimelineEvent;
337
+ latestEvent: import('./types').TimelineEvent;
339
338
  allLineChartTimestamps: string[];
340
- placeholderLineChartGroup: import('./components/ETimeline.vue').TimelineEvent[];
341
- normalizedLineGraphGroups: import('./components/ETimeline.vue').TimelineEventsByType;
339
+ placeholderLineChartGroup: import('./types').TimelineEvent[];
340
+ filledGapsLineGraphGroups: import('./types').TimelineEventsByType;
342
341
  isInteractingWithCurtain: boolean;
343
342
  }, {
344
343
  eventsGroups: {};
@@ -349,67 +348,23 @@ export declare const components: {
349
348
  selectedTimestamp: string;
350
349
  showEventTooltip: boolean;
351
350
  disableZoom: boolean;
352
- normalizeEvents: boolean;
351
+ insertZerosAtInterval: import("@evercam/shared/types").TimelinePrecision;
353
352
  flattenLineGraphEnds: boolean;
354
353
  curtains: boolean;
355
354
  showLabels: boolean;
356
355
  rectMinWidth: number;
357
- barHeight: number;
358
- barYPadding: number;
356
+ barChartHeight: number;
359
357
  lineGraphMinHeight: number;
360
358
  minZoom: number;
361
359
  maxZoom: number;
362
360
  cursorTimestamp: string | undefined;
363
361
  }, {}, import("vue/types/v3-component-options").ComponentOptionsMixin, import("vue/types/v3-component-options").ComponentOptionsMixin>;
364
- EVideoEmbed: import("vue").DefineComponent<{
365
- videoUrl: {
366
- type: StringConstructor;
367
- required: true;
368
- };
369
- platform: {
370
- type: import("vue").PropType<"youtube" | "vimeo">;
371
- required: true;
372
- validator: (value: string) => boolean;
373
- };
374
- iframeListeners: {
375
- type: import("vue").PropType<Partial<HTMLIFrameElement>>;
376
- default: () => {};
377
- };
378
- iframeOptions: {
379
- type: ObjectConstructor;
380
- default: () => {};
381
- };
382
- }, {}, {}, {
383
- videoId(): string | undefined;
384
- embedUrl(): string;
385
- }, {}, import("vue/types/v3-component-options").ComponentOptionsMixin, import("vue/types/v3-component-options").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
386
- videoUrl: {
387
- type: StringConstructor;
388
- required: true;
389
- };
390
- platform: {
391
- type: import("vue").PropType<"youtube" | "vimeo">;
392
- required: true;
393
- validator: (value: string) => boolean;
394
- };
395
- iframeListeners: {
396
- type: import("vue").PropType<Partial<HTMLIFrameElement>>;
397
- default: () => {};
398
- };
399
- iframeOptions: {
400
- type: ObjectConstructor;
401
- default: () => {};
402
- };
403
- }>>, {
404
- iframeListeners: Partial<HTMLIFrameElement>;
405
- iframeOptions: Record<string, any>;
406
- }>;
407
362
  };
408
363
  declare const _default: {
409
364
  install(Vue: VueConstructor): void;
410
365
  };
411
366
  export default _default;
412
- export { EAvatar, EBadge, EIcon, ESpinner, ERow, ECol, EVideoPlayer, ETimeline, EVideoEmbed, };
367
+ export { EAvatar, EBadge, EIcon, ESpinner, ERow, ECol, EVideoPlayer, ETimeline };
413
368
  export * from './constants';
414
369
  export * from './types';
415
370
  export * from './utils';
@@ -48,5 +48,35 @@ export type TimelineAxesConfig = {
48
48
  [key in TimelineAxis]: TimelineTicksConfig[];
49
49
  };
50
50
  export type Timestamp = Date | string | number;
51
+ export type TimelineBarEvent = {
52
+ timestamp: string | Date;
53
+ [key: string]: any;
54
+ };
55
+ export type TimelineRangeEvent = {
56
+ startDate: string | Date;
57
+ endDate: string | Date;
58
+ [key: string]: any;
59
+ };
60
+ export type TimelineCountEvent = {
61
+ timestamp: string | Date;
62
+ count: number;
63
+ [key: string]: any;
64
+ };
65
+ export type TimelineEvent = TimelineBarEvent | TimelineRangeEvent | TimelineCountEvent;
66
+ export declare enum TimelineChartType {
67
+ bars = "bars",
68
+ lineGraph = "lineGraph"
69
+ }
70
+ export type TimelineEventsGroup = {
71
+ label: string;
72
+ color: string;
73
+ isLoading?: Boolean;
74
+ isHidden?: Boolean;
75
+ chartType?: TimelineChartType;
76
+ events: Array<TimelineEvent>;
77
+ };
78
+ export type TimelineEventsByType = {
79
+ [eventsType: string]: TimelineEventsGroup;
80
+ };
51
81
  declare const _default: {};
52
82
  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}.spinner-container[data-v-dd8ff405]{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-dd8ff405]{position:relative;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;margin:0 auto}.video-container.full-screen[data-v-dd8ff405]{max-width:initial;width:100%;max-height:100vh}video[data-v-dd8ff405]{width:100%;height:inherit}.video-controls-container[data-v-dd8ff405]{position:absolute;bottom:0;left:0;right:0;color:#fff;z-index:100;opacity:0;transition:opacity .15s ease-in-out}.hide[data-v-dd8ff405]{display:none}.video-controls-container[data-v-dd8ff405]: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-dd8ff405],.video-container:focus-within .video-controls-container[data-v-dd8ff405],.video-container.paused .video-controls-container[data-v-dd8ff405]{opacity:1}.video-controls-container .controls[data-v-dd8ff405]{display:flex;gap:.5rem;padding:.75rem 1rem;align-items:center;width:100%}.video-controls-container .controls button[data-v-dd8ff405]{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-dd8ff405]:hover{opacity:1}.duration-container[data-v-dd8ff405]{display:flex;align-items:center;gap:.25rem;flex-grow:1}.video-container.captions .captions-btn[data-v-dd8ff405]{border-bottom:3px solid red}.video-controls-container .controls button.wide-btn[data-v-dd8ff405]{width:50px}.timeline-container[data-v-dd8ff405]{width:100%;height:7px;margin-inline:.5rem;cursor:pointer;display:flex;align-items:center}.timeline[data-v-dd8ff405]{background-color:#64646480;height:3px;width:100%;position:relative}.timeline[data-v-dd8ff405]: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-dd8ff405]: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-dd8ff405]{--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-dd8ff405]{display:block}.video-container.scrubbing .timeline[data-v-dd8ff405]:before,.timeline-container:hover .timeline[data-v-dd8ff405]:before{display:block}.video-container.scrubbing .thumb-indicator[data-v-dd8ff405],.timeline-container:hover .thumb-indicator[data-v-dd8ff405]{--scale: 1}.video-container.scrubbing .timeline[data-v-dd8ff405],.timeline-container:hover .timeline[data-v-dd8ff405]{height:100%}.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}.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-99c9162d]{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-99c9162d]{position:relative;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;margin:0 auto}.video-container.full-screen[data-v-99c9162d]{max-width:initial;width:100%;max-height:100vh}video[data-v-99c9162d]{width:100%;height:inherit}.video-controls-container[data-v-99c9162d]{position:absolute;bottom:0;left:0;right:0;color:#fff;z-index:100;opacity:0;transition:opacity .15s ease-in-out}.hide[data-v-99c9162d]{display:none}.video-controls-container[data-v-99c9162d]: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-99c9162d],.video-container:focus-within .video-controls-container[data-v-99c9162d],.video-container.paused .video-controls-container[data-v-99c9162d]{opacity:1}.video-controls-container .controls[data-v-99c9162d]{display:flex;gap:.5rem;padding:.75rem 1rem;align-items:center;width:100%}.video-controls-container .controls button[data-v-99c9162d]{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-99c9162d]:hover{opacity:1}.duration-container[data-v-99c9162d]{display:flex;align-items:center;gap:.25rem;flex-grow:1}.video-container.captions .captions-btn[data-v-99c9162d]{border-bottom:3px solid red}.video-controls-container .controls button.wide-btn[data-v-99c9162d]{width:50px}.timeline-container[data-v-99c9162d]{width:100%;height:7px;margin-inline:.5rem;cursor:pointer;display:flex;align-items:center}.timeline[data-v-99c9162d]{background-color:#64646480;height:3px;width:100%;position:relative}.timeline[data-v-99c9162d]: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-99c9162d]: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-99c9162d]{--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-99c9162d]{display:block}.video-container.scrubbing .timeline[data-v-99c9162d]:before,.timeline-container:hover .timeline[data-v-99c9162d]:before{display:block}.video-container.scrubbing .thumb-indicator[data-v-99c9162d],.timeline-container:hover .thumb-indicator[data-v-99c9162d]{--scale: 1}.video-container.scrubbing .timeline[data-v-99c9162d],.timeline-container:hover .timeline[data-v-99c9162d]{height:100%}.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}
package/dist/styles.css CHANGED
@@ -221,9 +221,6 @@
221
221
  .e-top-0{
222
222
  top: 0px;
223
223
  }
224
- .e-z-50{
225
- z-index: 50;
226
- }
227
224
  .e-m-2{
228
225
  margin: 0.5rem;
229
226
  }
package/dist/tags.json CHANGED
@@ -86,13 +86,12 @@
86
86
  "selected-timestamp",
87
87
  "show-event-tooltip",
88
88
  "disable-zoom",
89
- "normalize-events",
89
+ "insert-zeros-at-interval",
90
90
  "flatten-line-graph-ends",
91
91
  "curtains",
92
92
  "show-labels",
93
93
  "rect-min-width",
94
- "bar-height",
95
- "bar-ypadding",
94
+ "bar-chart-height",
96
95
  "line-graph-min-height",
97
96
  "min-zoom",
98
97
  "max-zoom",
@@ -2,7 +2,7 @@
2
2
  "$schema": "http://json.schemastore.org/web-types",
3
3
  "framework": "vue",
4
4
  "name": "@evercam/ui",
5
- "version": "0.0.46",
5
+ "version": "0.0.47-beta.2",
6
6
  "contributions": {
7
7
  "html": {
8
8
  "types-syntax": "typescript",
@@ -535,7 +535,7 @@
535
535
  {
536
536
  "name": "x-axes-config",
537
537
  "doc-url": "https://www.npmjs.com/package/@evercam/ui",
538
- "default": "() => It",
538
+ "default": "() => Vt",
539
539
  "value": {
540
540
  "kind": "expression",
541
541
  "type": "object"
@@ -596,12 +596,12 @@
596
596
  }
597
597
  },
598
598
  {
599
- "name": "normalize-events",
599
+ "name": "insert-zeros-at-interval",
600
600
  "doc-url": "https://www.npmjs.com/package/@evercam/ui",
601
- "default": "true",
601
+ "default": "undefined",
602
602
  "value": {
603
603
  "kind": "expression",
604
- "type": "boolean"
604
+ "type": "string"
605
605
  }
606
606
  },
607
607
  {
@@ -641,7 +641,7 @@
641
641
  }
642
642
  },
643
643
  {
644
- "name": "bar-height",
644
+ "name": "bar-chart-height",
645
645
  "doc-url": "https://www.npmjs.com/package/@evercam/ui",
646
646
  "default": "18",
647
647
  "value": {
@@ -649,15 +649,6 @@
649
649
  "type": "number"
650
650
  }
651
651
  },
652
- {
653
- "name": "bar-ypadding",
654
- "doc-url": "https://www.npmjs.com/package/@evercam/ui",
655
- "default": "0",
656
- "value": {
657
- "kind": "expression",
658
- "type": "number"
659
- }
660
- },
661
652
  {
662
653
  "name": "line-graph-min-height",
663
654
  "doc-url": "https://www.npmjs.com/package/@evercam/ui",
@@ -698,16 +689,6 @@
698
689
  }
699
690
  }
700
691
  ]
701
- },
702
- {
703
- "name": "EVideoEmbed",
704
- "source": {
705
- "module": "./src/components/EVideoEmbed.vue",
706
- "symbol": "EVideoEmbed"
707
- },
708
- "description": "",
709
- "doc-url": "https://ui.evercam.io/",
710
- "attributes": null
711
692
  }
712
693
  ],
713
694
  "attributes": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@evercam/ui",
3
- "version": "0.0.46",
3
+ "version": "0.0.47-beta.2",
4
4
  "license": "MIT",
5
5
  "private": false,
6
6
  "author": "Evercam - Constuction Cameras.",
@@ -65,8 +65,8 @@
65
65
  "@fontsource-variable/inter": "^5.0.8",
66
66
  "@fortawesome/fontawesome-free": "^5.15.3",
67
67
  "d3": "^7.8.5",
68
- "moment-timezone": "^0.5.43",
69
- "vue": "^2.7.14"
68
+ "vue": "^2.7.14",
69
+ "moment-timezone": "^0.5.43"
70
70
  },
71
71
  "vetur": {
72
72
  "tags": "dist/tags.json",
@@ -1,45 +0,0 @@
1
- import { PropType } from "vue";
2
- declare const _default: import("vue").DefineComponent<{
3
- videoUrl: {
4
- type: StringConstructor;
5
- required: true;
6
- };
7
- platform: {
8
- type: PropType<"youtube" | "vimeo">;
9
- required: true;
10
- validator: (value: string) => boolean;
11
- };
12
- iframeListeners: {
13
- type: PropType<Partial<HTMLIFrameElement>>;
14
- default: () => {};
15
- };
16
- iframeOptions: {
17
- type: ObjectConstructor;
18
- default: () => {};
19
- };
20
- }, {}, {}, {
21
- videoId(): string | undefined;
22
- embedUrl(): string;
23
- }, {}, import("vue/types/v3-component-options").ComponentOptionsMixin, import("vue/types/v3-component-options").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
24
- videoUrl: {
25
- type: StringConstructor;
26
- required: true;
27
- };
28
- platform: {
29
- type: PropType<"youtube" | "vimeo">;
30
- required: true;
31
- validator: (value: string) => boolean;
32
- };
33
- iframeListeners: {
34
- type: PropType<Partial<HTMLIFrameElement>>;
35
- default: () => {};
36
- };
37
- iframeOptions: {
38
- type: ObjectConstructor;
39
- default: () => {};
40
- };
41
- }>>, {
42
- iframeListeners: Partial<HTMLIFrameElement>;
43
- iframeOptions: Record<string, any>;
44
- }>;
45
- export default _default;