@evercam/ui 0.0.55-beta.1 → 0.0.55-beta.10

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,7 +1,7 @@
1
1
  import * as d3 from "d3";
2
2
  import { D3ZoomEvent } from "d3";
3
3
  import Vue from "vue";
4
- import { TimelineAxesConfig, TimelineAxis, TimelineCountEvent, TimelineEvent, TimelineEventsByType, TimelineEventsGroup, TimelineIntervalChangeTrigger, TimelineMarker, TimelinePrecision, TimelineTicksConfig, Timestamp } from '../types';
4
+ import { TimelineAxesConfig, TimelineAxis, TimelineCountEvent, TimelineEvent, TimelineEventsByType, TimelineEventsGroup, TimelineForbiddenInterval, TimelineIntervalChangeTrigger, TimelineMarker, TimelinePrecision, TimelineTicksConfig, Timestamp } from '../types';
5
5
  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>>, {
6
6
  tooltip: HTMLElement;
7
7
  cursor: HTMLElement;
@@ -60,6 +60,7 @@ declare const _default: import("vue/types/vue").ExtendedVue<Vue<Record<string, a
60
60
  initialMarkerDragMouseOffset: number;
61
61
  selectedMilestoneId: any;
62
62
  isInitialized: boolean;
63
+ lastValidTransform: d3.ZoomTransform;
63
64
  }, {
64
65
  updateTimeline(): void;
65
66
  initTimeline(startDate?: string, endDate?: string): void;
@@ -103,6 +104,7 @@ declare const _default: import("vue/types/vue").ExtendedVue<Vue<Record<string, a
103
104
  handleBarMouseOut(): void;
104
105
  handleLabelMouseOver(groupType: string): void;
105
106
  handleLabelMouseLeave(groupType: string): void;
107
+ isZoomAllowed(event: D3ZoomEvent<SVGSVGElement, any>): boolean;
106
108
  handleZoom(event: D3ZoomEvent<SVGSVGElement, any>): void;
107
109
  panToTimestamp(targetTimestamp: string | Date): void;
108
110
  emitCurtainChange(): void;
@@ -125,7 +127,7 @@ declare const _default: import("vue/types/vue").ExtendedVue<Vue<Record<string, a
125
127
  getEventRectWidth(d: TimelineEvent): number;
126
128
  getEventText(e: TimelineEvent): string;
127
129
  getElementLeftPosition(element: HTMLElement): number;
128
- isTimestampAllowedForMarker(timestamp: any, marker: TimelineMarker): boolean;
130
+ isTimestampAllowedForMarker(timestamp: Date | number, marker: TimelineMarker): boolean;
129
131
  handleMarkerDrag({ marker, markerElement, dragEvent, }: {
130
132
  marker: TimelineMarker;
131
133
  markerElement: d3.Selection<any, TimelineMarker, any, any>;
@@ -136,8 +138,7 @@ declare const _default: import("vue/types/vue").ExtendedVue<Vue<Record<string, a
136
138
  initCurtains(): void;
137
139
  createCurtains(): void;
138
140
  updateCurtains(): void;
139
- initForbiddenIntervals(): void;
140
- updateForbiddenIntervals(): void;
141
+ updateForbiddenIntervals(reset?: boolean): void;
141
142
  drawEventsGroups(): void;
142
143
  drawLineGraphEventsGroups(): void;
143
144
  drawLineGraph({ events, gElement, color, type, }: {
@@ -152,12 +153,13 @@ declare const _default: import("vue/types/vue").ExtendedVue<Vue<Record<string, a
152
153
  color: string;
153
154
  type: string;
154
155
  }): void;
155
- drawSingleBarEventsGroup({ type, eventsGroup, index, milestone, height, }: {
156
+ drawSingleBarEventsGroup({ type, eventsGroup, milestone, dots, dotsSize, bottom, }: {
156
157
  type: string;
157
158
  eventsGroup: TimelineEventsGroup;
158
- index?: number | undefined;
159
159
  milestone?: boolean | undefined;
160
- height?: number | undefined;
160
+ dots?: boolean | undefined;
161
+ dotsSize?: number | undefined;
162
+ bottom?: boolean | undefined;
161
163
  }): void;
162
164
  drawBarEventsGroups(): void;
163
165
  drawMilestonesPlaceholder(): void;
@@ -167,6 +169,8 @@ declare const _default: import("vue/types/vue").ExtendedVue<Vue<Record<string, a
167
169
  border: string;
168
170
  };
169
171
  getMilestoneGroupYPosition(groupName: string): number;
172
+ getBarGroupYPosition(groupName: string, bottom?: boolean): number;
173
+ getBarGroupHeight(eventsGroup: TimelineEventsGroup): number;
170
174
  updateMilestonesPositions(): void;
171
175
  drawBarChartEventsGroups(): void;
172
176
  drawProgressIndicator({ yPosition, type, isLoading, }: {
@@ -181,12 +185,16 @@ declare const _default: import("vue/types/vue").ExtendedVue<Vue<Record<string, a
181
185
  color: string;
182
186
  height?: number | undefined;
183
187
  }): void;
184
- drawBars({ events, gElement, yPosition, color, type, }: {
188
+ drawBars({ events, gElement, yPosition, color, type, dots, dotsSize, height, barBorderRadius, }: {
185
189
  events: TimelineEvent[];
186
190
  gElement: d3.Selection<SVGGElement, any, any, any>;
187
191
  yPosition: number;
188
192
  color: string;
189
193
  type: string;
194
+ dots?: boolean | undefined;
195
+ dotsSize?: number | undefined;
196
+ height?: number | undefined;
197
+ barBorderRadius?: number | undefined;
190
198
  }): void;
191
199
  drawBarsChart({ events, gElement, color, yOffset, type, index, }: {
192
200
  events: TimelineEvent[];
@@ -236,8 +244,16 @@ declare const _default: import("vue/types/vue").ExtendedVue<Vue<Record<string, a
236
244
  count: number;
237
245
  })[];
238
246
  fillEvents(events: TimelineEvent[]): TimelineEvent[];
239
- onMilestoneClick(milestone: TimelineEvent, milestoneType: string): void;
247
+ onMilestoneClick(milestone: TimelineEvent, milestoneType: any): void;
248
+ getSortedEvents(events: TimelineEvent[]): TimelineEvent[];
240
249
  }, {
250
+ combinedBarsHeight: number;
251
+ combinedBottomBarsHeight: number;
252
+ combinedMilestonesHeight: number;
253
+ milestonesYOffset: number;
254
+ chartsYOffset: number;
255
+ barsYOffset: number;
256
+ hasMilestones: boolean;
241
257
  barChartHeight: number;
242
258
  classes: Record<string, string | Record<string, boolean>>;
243
259
  lineGraphGroups: TimelineEventsByType;
@@ -279,6 +295,7 @@ declare const _default: import("vue/types/vue").ExtendedVue<Vue<Record<string, a
279
295
  barYPadding: number;
280
296
  barXPadding: number;
281
297
  chartMinHeight: number;
298
+ chartMinLabelHeight: number;
282
299
  minZoom: number;
283
300
  maxZoom: number;
284
301
  minDate: string;
@@ -295,5 +312,8 @@ declare const _default: import("vue/types/vue").ExtendedVue<Vue<Record<string, a
295
312
  fitMarkersTransitionDuration: number;
296
313
  zoomToBoundariesTransitionDuration: number;
297
314
  milestoneBulletSize: number;
315
+ milestonesFirst: boolean;
316
+ forbiddenIntervals: TimelineForbiddenInterval[];
317
+ forbiddenIntervalColor: string;
298
318
  }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
299
319
  export default _default;
@@ -2,34 +2,54 @@ import Vue from "vue";
2
2
  import { TimelineMilestoneEvent } from '../types';
3
3
  export declare const milestoneClasses: {
4
4
  milestone: string;
5
+ milestoneBullet: string;
6
+ milestoneDot: string;
5
7
  milestoneContent: string;
6
8
  milestoneLine: string;
7
9
  milestonesContainer: string;
8
10
  milestoneHovered: string;
9
11
  milestoneSelected: string;
10
12
  milestoneLabel: string;
13
+ milestoneDotContainer: string;
14
+ milestoneDotLine: string;
15
+ milestoneDotDot: string;
16
+ milestoneDotHovered: string;
11
17
  };
12
18
  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>>, {
13
19
  milestoneClasses: {
14
20
  milestone: string;
21
+ milestoneBullet: string;
22
+ milestoneDot: string;
15
23
  milestoneContent: string;
16
24
  milestoneLine: string;
17
25
  milestonesContainer: string;
18
26
  milestoneHovered: string;
19
27
  milestoneSelected: string;
20
28
  milestoneLabel: string;
29
+ milestoneDotContainer: string;
30
+ milestoneDotLine: string;
31
+ milestoneDotDot: string;
32
+ milestoneDotHovered: string;
21
33
  };
22
34
  timeouts: number[];
23
35
  isInitialRender: boolean;
36
+ isMouseOver: boolean;
24
37
  }, {
25
- onMilestoneMouseOver(e: MouseEvent, _milestone: TimelineMilestoneEvent): void;
26
- onMilestoneMouseLeave(e: MouseEvent, _milestone: TimelineMilestoneEvent): void;
38
+ onMilestoneMouseOver(e?: MouseEvent): void;
39
+ onMilestoneMouseMove(): void;
40
+ onMilestoneMouseLeave(e?: MouseEvent): void;
27
41
  onMilestoneClick(_e: MouseEvent, milestone: TimelineMilestoneEvent): void;
28
42
  }, {
29
43
  transitionStyles: Record<string, any>;
44
+ sizeStyles: Record<string, any>;
45
+ positionStyles: Record<string, any>;
30
46
  styles: Record<string, any>;
31
47
  contentStyles: Record<string, any>;
48
+ computedTransitionDuration: number;
32
49
  labelStyles: Record<string, any>;
50
+ dotContainerStyles: Record<string, any>;
51
+ lineStyles: Record<string, any>;
52
+ dotStyles: Record<string, any>;
33
53
  }, {
34
54
  milestone: TimelineMilestoneEvent;
35
55
  size: number;
@@ -37,5 +57,9 @@ declare const _default: import("vue/types/vue").ExtendedVue<Vue<Record<string, a
37
57
  backgroundColor: string;
38
58
  borderWidth: number;
39
59
  transitionDuration: number;
60
+ dot: boolean;
61
+ dotSize: number;
62
+ lineWidth: number;
63
+ lineHeight: number;
40
64
  }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
41
65
  export default _default;
@@ -233,6 +233,7 @@ export declare const components: {
233
233
  initialMarkerDragMouseOffset: number;
234
234
  selectedMilestoneId: any;
235
235
  isInitialized: boolean;
236
+ lastValidTransform: import("d3-zoom").ZoomTransform;
236
237
  }, {
237
238
  updateTimeline(): void;
238
239
  initTimeline(startDate?: string | undefined, endDate?: string | undefined): void;
@@ -276,6 +277,7 @@ export declare const components: {
276
277
  handleBarMouseOut(): void;
277
278
  handleLabelMouseOver(groupType: string): void;
278
279
  handleLabelMouseLeave(groupType: string): void;
280
+ isZoomAllowed(event: import("d3-zoom").D3ZoomEvent<SVGSVGElement, any>): boolean;
279
281
  handleZoom(event: import("d3-zoom").D3ZoomEvent<SVGSVGElement, any>): void;
280
282
  panToTimestamp(targetTimestamp: string | Date): void;
281
283
  emitCurtainChange(): void;
@@ -298,7 +300,7 @@ export declare const components: {
298
300
  getEventRectWidth(d: import('./types').TimelineEvent): number;
299
301
  getEventText(e: import('./types').TimelineEvent): string;
300
302
  getElementLeftPosition(element: HTMLElement): number;
301
- isTimestampAllowedForMarker(timestamp: any, marker: import('./types').TimelineMarker): boolean;
303
+ isTimestampAllowedForMarker(timestamp: number | Date, marker: import('./types').TimelineMarker): boolean;
302
304
  handleMarkerDrag({ marker, markerElement, dragEvent, }: {
303
305
  marker: import('./types').TimelineMarker;
304
306
  markerElement: import("d3-selection").Selection<any, import('./types').TimelineMarker, any, any>;
@@ -309,8 +311,7 @@ export declare const components: {
309
311
  initCurtains(): void;
310
312
  createCurtains(): void;
311
313
  updateCurtains(): void;
312
- initForbiddenIntervals(): void;
313
- updateForbiddenIntervals(): void;
314
+ updateForbiddenIntervals(reset?: boolean): void;
314
315
  drawEventsGroups(): void;
315
316
  drawLineGraphEventsGroups(): void;
316
317
  drawLineGraph({ events, gElement, color, type, }: {
@@ -325,12 +326,13 @@ export declare const components: {
325
326
  color: string;
326
327
  type: string;
327
328
  }): void;
328
- drawSingleBarEventsGroup({ type, eventsGroup, index, milestone, height, }: {
329
+ drawSingleBarEventsGroup({ type, eventsGroup, milestone, dots, dotsSize, bottom, }: {
329
330
  type: string;
330
331
  eventsGroup: import('./types').TimelineEventsGroup;
331
- index?: number | undefined;
332
332
  milestone?: boolean | undefined;
333
- height?: number | undefined;
333
+ dots?: boolean | undefined;
334
+ dotsSize?: number | undefined;
335
+ bottom?: boolean | undefined;
334
336
  }): void;
335
337
  drawBarEventsGroups(): void;
336
338
  drawMilestonesPlaceholder(): void;
@@ -340,6 +342,8 @@ export declare const components: {
340
342
  border: string;
341
343
  };
342
344
  getMilestoneGroupYPosition(groupName: string): number;
345
+ getBarGroupYPosition(groupName: string, bottom?: boolean | undefined): number;
346
+ getBarGroupHeight(eventsGroup: import('./types').TimelineEventsGroup): number;
343
347
  updateMilestonesPositions(): void;
344
348
  drawBarChartEventsGroups(): void;
345
349
  drawProgressIndicator({ yPosition, type, isLoading, }: {
@@ -354,12 +358,16 @@ export declare const components: {
354
358
  color: string;
355
359
  height?: number | undefined;
356
360
  }): void;
357
- drawBars({ events, gElement, yPosition, color, type, }: {
361
+ drawBars({ events, gElement, yPosition, color, type, dots, dotsSize, height, barBorderRadius, }: {
358
362
  events: import('./types').TimelineEvent[];
359
363
  gElement: import("d3-selection").Selection<SVGGElement, any, any, any>;
360
364
  yPosition: number;
361
365
  color: string;
362
366
  type: string;
367
+ dots?: boolean | undefined;
368
+ dotsSize?: number | undefined;
369
+ height?: number | undefined;
370
+ barBorderRadius?: number | undefined;
363
371
  }): void;
364
372
  drawBarsChart({ events, gElement, color, yOffset, type, index, }: {
365
373
  events: import('./types').TimelineEvent[];
@@ -409,8 +417,16 @@ export declare const components: {
409
417
  count: number;
410
418
  })[];
411
419
  fillEvents(events: import('./types').TimelineEvent[]): import('./types').TimelineEvent[];
412
- onMilestoneClick(milestone: import('./types').TimelineEvent, milestoneType: string): void;
420
+ onMilestoneClick(milestone: import('./types').TimelineEvent, milestoneType: any): void;
421
+ getSortedEvents(events: import('./types').TimelineEvent[]): import('./types').TimelineEvent[];
413
422
  }, {
423
+ combinedBarsHeight: number;
424
+ combinedBottomBarsHeight: number;
425
+ combinedMilestonesHeight: number;
426
+ milestonesYOffset: number;
427
+ chartsYOffset: number;
428
+ barsYOffset: number;
429
+ hasMilestones: boolean;
414
430
  barChartHeight: number;
415
431
  classes: Record<string, string | Record<string, boolean>>;
416
432
  lineGraphGroups: import('./types').TimelineEventsByType;
@@ -452,6 +468,7 @@ export declare const components: {
452
468
  barYPadding: number;
453
469
  barXPadding: number;
454
470
  chartMinHeight: number;
471
+ chartMinLabelHeight: number;
455
472
  minZoom: number;
456
473
  maxZoom: number;
457
474
  minDate: string;
@@ -468,6 +485,9 @@ export declare const components: {
468
485
  fitMarkersTransitionDuration: number;
469
486
  zoomToBoundariesTransitionDuration: number;
470
487
  milestoneBulletSize: number;
488
+ milestonesFirst: boolean;
489
+ forbiddenIntervals: import('./types').TimelineForbiddenInterval[];
490
+ forbiddenIntervalColor: string;
471
491
  }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin>;
472
492
  EVideoEmbed: import("vue").DefineComponent<{
473
493
  videoUrl: {
@@ -79,19 +79,27 @@ export type TimelineMilestoneEvent = {
79
79
  export type TimelineEvent = TimelineBarEvent | TimelineRangeEvent | TimelineCountEvent | TimelineMilestoneEvent;
80
80
  export declare enum TimelineChartType {
81
81
  bars = "bars",
82
+ dots = "dots",
82
83
  lineGraph = "lineGraph",
83
84
  barChart = "barGraph",
84
85
  milestones = "milestones"
85
86
  }
86
87
  export type TimelineEventsGroup = {
88
+ events: Array<TimelineEvent>;
87
89
  label: string;
88
90
  color: string;
89
91
  bgColor?: string;
90
92
  isLoading?: Boolean;
91
93
  isHidden?: Boolean;
92
94
  chartType?: TimelineChartType;
93
- events: Array<TimelineEvent>;
95
+ dots?: boolean;
96
+ milestonesTransitionDuration?: number;
97
+ milestonesLineHeight?: number;
98
+ milestonesDotSize?: number;
94
99
  height?: number;
100
+ dotsSize?: number;
101
+ bottom?: boolean;
102
+ barBorderRadius?: number;
95
103
  };
96
104
  export type TimelineEventsByType = {
97
105
  [eventsType: string]: TimelineEventsGroup;
@@ -114,5 +122,9 @@ export type TimelineMarker = {
114
122
  maxDate?: string;
115
123
  [key: string]: any;
116
124
  };
125
+ export type TimelineForbiddenInterval = {
126
+ startDate: Date | string | number;
127
+ endDate: Date | string | number;
128
+ };
117
129
  declare const _default: {};
118
130
  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-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{opacity:0;width:0;height:0;white-space:nowrap;pointer-events:none}.e-tl-milestone--hovered{cursor:pointer;min-height:26px;padding:0 8px;border-radius:.5em}.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-label{position:absolute;top:0;left:0;opacity:1;pointer-events:none;height:100%;width:100%}.e-tl-milestone--hovered .e-tl-milestone-label{opacity:0}.e-timeline svg{display:block}.e-timeline .x-axis-overview .domain,.e-timeline .x-axis-detailed .domain,.e-timeline .x-axis-overviewBackground .domain,.e-timeline .x-axis-detailedBackground .domain{display:none}.e-timeline .x-axis-detailedBackground .domain,.e-timeline .x-axis-detailedBackground text{display:none}.e-timeline .x-axis-overview>g.tick>line{opacity:.1;stroke-width:3;stroke-linecap:round}.e-timeline .x-axis-detailed>g.tick>line{opacity:.1;stroke-linecap:round}.e-timeline .x-axis-detailedBackground>g.tick>line{opacity:.075;stroke-linecap:round}.e-timeline--dark .tick line{stroke:#fff}.e-timeline--dark .tick text{fill:#fff}@keyframes moveGradient{0%{transform:translate(-50%)}to{transform:translate(100%)}}@keyframes pulse-rect{0%{filter:saturate(3.5) drop-shadow(0 0 1px #0008)}50%{filter:saturate(.5) drop-shadow(0 0 0 #0000)}to{filter:saturate(3.5) drop-shadow(0 0 1px #0008)}}@keyframes pulse-circle{0%{r:4px}50%{r:1px}to{r:4px}}.loading-indicator{animation:moveGradient 1.5s ease-in infinite}.line-graph-dot--active{animation:pulse-circle 1s ease-in-out infinite}.event-rect--hovered{animation:pulse-rect 1s ease-in-out infinite}@keyframes dash{0%{filter:saturate(1) drop-shadow(0 0 0 #0000)}50%{stroke-width:2px;filter:saturate(2.5) drop-shadow(0 0 0 #0006)}to{filter:saturate(1) drop-shadow(0 0 0 #0000)}}.line-graph-group--highlighted path{animation:dash 1s ease-in-out infinite}.e-timeline--dragging{cursor:ew-resize}.curtain{cursor:ew-resize;fill:#3332;stroke-width:1px;stroke:#3338;transition:stroke-width .2s}.e-timeline--dragging .curtain{stroke-width:3px}.e-timeline--dark .curtain{fill:#fff3;stroke:#fff7}.event-bar-hover-zone{cursor:pointer}.external-labels-container{position:absolute;top:-1.5em;left:0}.external-label{margin-right:.35em;border-width:.5px;border-radius:.2em}.external-label__content{cursor:pointer;font-size:.8em;font-weight:500;padding:0 .6em;line-height:1.4em}.marker-label{transition:transform .2s;transform:translateY(-32px);position:absolute;width:max-content}.marker-label-text{position:absolute;width:max-content;font-size:.8em;font-weight:500;padding:0 .75em;border-radius:.4em .4em .4em 0;box-shadow:0 0 5px -1px #000000f5}.marker-label-text:after{content:"";background:inherit;width:5px;height:5px;bottom:-5px;position:absolute;left:2px;clip-path:path("M 0,5 L 0,0 L 5,0 A 5,5 0 0 0 0,5")}.marker-label-text:before{content:"";background:inherit;height:20px;top:18px;position:absolute;width:2px;left:0}.marker{top:0;filter:saturate(.9)}.marker-line{position:absolute;width:2px;top:-24px;transition:top .2s,height .2s}.marker:hover{cursor:pointer;opacity:1;filter:saturate(1.1)}.marker:hover .marker-label{transform:translateY(-38px);height:61px;width:255px;padding-bottom:42px}.marker:hover .marker-label-text{box-shadow:2px 2px 11px -4px #000}.marker--hidden:hover .marker-label{transform:translateY(-54px)}.marker--draggable,.marker--draggable:hover{user-select:none;cursor:grab}.marker--dragged:hover{cursor:grabbing}.forbidden-interval{opacity:.2}.e-timeline-milestones{height:0}.video-embed[data-v-0ecf4a71]{position:relative;width:100%!important;padding-bottom:56.25%}.video-embed iframe[data-v-0ecf4a71]{position:absolute;top:0;left:0;width:100%;height:100%}
1
+ .e-spinner[data-v-29711f67]{vertical-align:center}.e-spinner__primary[data-v-29711f67],.e-spinner__secondary[data-v-29711f67]{stroke-width:0;animation:fade-29711f67;animation-iteration-count:infinite}@keyframes fade-29711f67{0%{fill-opacity:0}50%{fill-opacity:1}to{fill-opacity:0}}.e-row.e-row--no-gutters{margin:0}.e-row.e-row--no-gutters>.e-col{padding:0}.e-col{padding:.75rem}.spinner-container[data-v-9071f674]{position:absolute;background:linear-gradient(to top,rgba(0,0,0,.65),transparent);inset:0;display:flex;justify-content:center;align-items:center;vertical-align:middle}.video-container[data-v-9071f674]{position:relative;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;margin:0 auto}.video-container.full-screen[data-v-9071f674]{max-width:initial;width:100%;max-height:100vh}video[data-v-9071f674]{width:100%;height:inherit}.video-controls-container[data-v-9071f674]{position:absolute;bottom:0;left:0;right:0;color:#fff;z-index:100;opacity:0;transition:opacity .15s ease-in-out}.hide[data-v-9071f674]{display:none}.video-controls-container[data-v-9071f674]:before{content:"";position:absolute;bottom:0;background:linear-gradient(to top,rgba(0,0,0,.75),transparent);width:100%;aspect-ratio:6 / 1;z-index:-1;pointer-events:none}.video-container:hover .video-controls-container[data-v-9071f674],.video-container:focus-within .video-controls-container[data-v-9071f674],.video-container.paused .video-controls-container[data-v-9071f674]{opacity:1}.video-controls-container .controls[data-v-9071f674]{display:flex;gap:.5rem;padding:.75rem 1rem;align-items:center;width:100%}.video-controls-container .controls button[data-v-9071f674]{background:none;border:none;color:inherit;padding:0;height:32px;width:32px;font-size:1.35rem;cursor:pointer;opacity:.85;transition:opacity .15s ease-in-out}.video-controls-container .controls button[data-v-9071f674]:hover{opacity:1}.duration-container[data-v-9071f674]{display:flex;align-items:center;gap:.25rem;flex-grow:1}.video-container.captions .captions-btn[data-v-9071f674]{border-bottom:3px solid red}.video-controls-container .controls button.wide-btn[data-v-9071f674]{width:50px}.timeline-container[data-v-9071f674]{width:100%;height:7px;margin-inline:.5rem;cursor:pointer;display:flex;align-items:center}.timeline[data-v-9071f674]{background-color:#64646480;height:3px;width:100%;position:relative}.timeline[data-v-9071f674]:before{content:"";position:absolute;left:0;top:0;bottom:0;right:calc(100% - var(--preview-position) * 100%);background-color:#969696;display:none}.timeline[data-v-9071f674]:after{content:"";position:absolute;left:0;top:0;bottom:0;right:calc(100% - var(--progress-position) * 100%);background-color:red}.timeline .thumb-indicator[data-v-9071f674]{--scale: 0;position:absolute;transform:translate(-50%) scale(var(--scale));height:200%;top:-50%;left:calc(var(--progress-position) * 100%);background-color:red;border-radius:50%;transition:transform .15s ease-in-out;aspect-ratio:1 / 1}.video-container.scrubbing .thumbnail-img[data-v-9071f674]{display:block}.video-container.scrubbing .timeline[data-v-9071f674]:before,.timeline-container:hover .timeline[data-v-9071f674]:before{display:block}.video-container.scrubbing .thumb-indicator[data-v-9071f674],.timeline-container:hover .thumb-indicator[data-v-9071f674]{--scale: 1}.video-container.scrubbing .timeline[data-v-9071f674],.timeline-container:hover .timeline[data-v-9071f674]{height:100%}.e-tl-milestone{position:absolute;border-radius:10em;box-sizing:border-box}.e-tl-milestone-content{cursor:pointer}.e-tl-milestone--bullet{transform:translate(-50%,-50%)}.e-tl-milestone--bullet .e-tl-milestone-content{opacity:0;width:0;height:0;white-space:nowrap;pointer-events:none;cursor:pointer}.e-tl-milestone--bullet.e-tl-milestone--hovered{cursor:pointer;min-height:26px;padding:0 8px;border-radius:.5em}.e-tl-milestone--bullet.e-tl-milestone--hovered .e-tl-milestone-content{opacity:1;font-size:small;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.e-tl-milestone--bullet .e-tl-milestone-label{position:absolute;top:0;left:0;opacity:1;pointer-events:none;height:100%;width:100%}.e-tl-milestone--bullet.e-tl-milestone--hovered .e-tl-milestone-label{opacity:0}.e-tl-milestone--dot{transform:translateY(-50%)}.e-tl-milestone-dot--hovered .e-tl-milestone-dot-container{padding:0 3em;transform:translate(-50%);opacity:1}.e-tl-milestone-dot-line{position:absolute}.e-tl-milestone-dot-dot{position:absolute;border-radius:50%}.e-tl-milestone-dot-container{opacity:0;position:absolute;padding:0 .3em;transform:translate(-50%,-100%);cursor:pointer}.e-timeline svg{display:block}.e-timeline .x-axis-overview .domain,.e-timeline .x-axis-detailed .domain,.e-timeline .x-axis-overviewBackground .domain,.e-timeline .x-axis-detailedBackground .domain{display:none}.e-timeline .x-axis-detailedBackground .domain,.e-timeline .x-axis-detailedBackground text{display:none}.e-timeline .x-axis-overview>g.tick>line{opacity:.1;stroke-width:3;stroke-linecap:round}.e-timeline .x-axis-detailed>g.tick>line{opacity:.1;stroke-linecap:round}.e-timeline .x-axis-detailedBackground>g.tick>line{opacity:.075;stroke-linecap:round}.e-timeline--dark .tick line{stroke:#fff}.e-timeline--dark .tick text{fill:#fff}@keyframes moveGradient{0%{transform:translate(-50%)}to{transform:translate(100%)}}@keyframes pulse-rect{0%{filter:saturate(3.5) drop-shadow(0 0 1px #0008)}50%{filter:saturate(.5) drop-shadow(0 0 0 #0000)}to{filter:saturate(3.5) drop-shadow(0 0 1px #0008)}}@keyframes pulse-circle{0%{r:4px}50%{r:1px}to{r:4px}}.loading-indicator{animation:moveGradient 1.5s ease-in infinite}.line-graph-dot--active{animation:pulse-circle 1s ease-in-out infinite}.event-rect--hovered{animation:pulse-rect 1s ease-in-out infinite}@keyframes dash{0%{filter:saturate(1) drop-shadow(0 0 0 #0000)}50%{stroke-width:2px;filter:saturate(2.5) drop-shadow(0 0 0 #0006)}to{filter:saturate(1) drop-shadow(0 0 0 #0000)}}.line-graph-group--highlighted path{animation:dash 1s ease-in-out infinite}.e-timeline--dragging{cursor:ew-resize}.curtain{cursor:ew-resize;fill:#3332;stroke-width:1px;stroke:#3338;transition:stroke-width .2s}.e-timeline--dragging .curtain{stroke-width:3px}.e-timeline--dark .curtain{fill:#fff3;stroke:#fff7}.event-bar-hover-zone{cursor:pointer}.external-labels-container{position:absolute;top:-1.5em;left:0}.external-label{margin-right:.35em;border-width:.5px;border-radius:.2em}.external-label__content{cursor:pointer;font-size:.8em;font-weight:500;padding:0 .6em;line-height:1.4em}.marker-label{transition:transform .2s;transform:translateY(-32px);position:absolute;width:max-content}.marker-label-text{position:absolute;width:max-content;font-size:.8em;font-weight:500;padding:0 .75em;border-radius:.4em .4em .4em 0;box-shadow:0 0 5px -1px #000000f5}.marker-label-text:after{content:"";background:inherit;width:5px;height:5px;bottom:-5px;position:absolute;left:2px;clip-path:path("M 0,5 L 0,0 L 5,0 A 5,5 0 0 0 0,5")}.marker-label-text:before{content:"";background:inherit;height:20px;top:18px;position:absolute;width:2px;left:0}.marker{top:0;filter:saturate(.9)}.marker-line{position:absolute;width:2px;top:-24px;transition:top .2s,height .2s}.marker:hover{cursor:pointer;opacity:1;filter:saturate(1.1)}.marker:hover .marker-label{transform:translateY(-38px);height:61px;width:255px;padding-bottom:42px}.marker:hover .marker-label-text{box-shadow:2px 2px 11px -4px #000}.marker--hidden:hover .marker-label{transform:translateY(-54px)}.marker--draggable,.marker--draggable:hover{user-select:none;cursor:grab}.marker--dragged:hover{cursor:grabbing}.forbidden-interval{opacity:.2}.e-timeline-milestones{height:0}.video-embed[data-v-0ecf4a71]{position:relative;width:100%!important;padding-bottom:56.25%}.video-embed iframe[data-v-0ecf4a71]{position:absolute;top:0;left:0;width:100%;height:100%}
package/dist/tags.json CHANGED
@@ -98,6 +98,7 @@
98
98
  "bar-ypadding",
99
99
  "bar-xpadding",
100
100
  "chart-min-height",
101
+ "chart-min-label-height",
101
102
  "min-zoom",
102
103
  "max-zoom",
103
104
  "min-date",
@@ -113,7 +114,10 @@
113
114
  "fit-markers-on-change",
114
115
  "fit-markers-transition-duration",
115
116
  "zoom-to-boundaries-transition-duration",
116
- "milestone-bullet-size"
117
+ "milestone-bullet-size",
118
+ "milestones-first",
119
+ "forbidden-intervals",
120
+ "forbidden-interval-color"
117
121
  ],
118
122
  "description": ""
119
123
  }
@@ -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.55-beta.1",
5
+ "version": "0.0.55-beta.10",
6
6
  "contributions": {
7
7
  "html": {
8
8
  "types-syntax": "typescript",
@@ -703,6 +703,15 @@
703
703
  "type": "number"
704
704
  }
705
705
  },
706
+ {
707
+ "name": "chart-min-label-height",
708
+ "doc-url": "https://www.npmjs.com/package/@evercam/ui",
709
+ "default": "18",
710
+ "value": {
711
+ "kind": "expression",
712
+ "type": "number"
713
+ }
714
+ },
706
715
  {
707
716
  "name": "min-zoom",
708
717
  "doc-url": "https://www.npmjs.com/package/@evercam/ui",
@@ -852,6 +861,33 @@
852
861
  "kind": "expression",
853
862
  "type": "number"
854
863
  }
864
+ },
865
+ {
866
+ "name": "milestones-first",
867
+ "doc-url": "https://www.npmjs.com/package/@evercam/ui",
868
+ "default": "true",
869
+ "value": {
870
+ "kind": "expression",
871
+ "type": "boolean"
872
+ }
873
+ },
874
+ {
875
+ "name": "forbidden-intervals",
876
+ "doc-url": "https://www.npmjs.com/package/@evercam/ui",
877
+ "default": "() => []",
878
+ "value": {
879
+ "kind": "expression",
880
+ "type": "array"
881
+ }
882
+ },
883
+ {
884
+ "name": "forbidden-interval-color",
885
+ "doc-url": "https://www.npmjs.com/package/@evercam/ui",
886
+ "default": "#ddd",
887
+ "value": {
888
+ "kind": "expression",
889
+ "type": "string"
890
+ }
855
891
  }
856
892
  ]
857
893
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@evercam/ui",
3
- "version": "0.0.55-beta.1",
3
+ "version": "0.0.55-beta.10",
4
4
  "license": "MIT",
5
5
  "private": false,
6
6
  "author": "Evercam - Constuction Cameras.",