@evercam/ui 0.0.45-beta.6 → 0.0.46
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.
- package/README.md +47 -47
- package/dist/attributes.json +6 -6
- package/dist/index.mjs +1294 -6876
- package/dist/index.mjs.map +1 -1
- package/dist/index.umd.js +2 -2
- package/dist/index.umd.js.map +1 -1
- package/dist/src/components/ETimeline.vue.d.ts +10 -3
- package/dist/src/components/EVideoEmbed.vue.d.ts +45 -0
- package/dist/src/components/EVideoPlayer.vue.d.ts +1 -4
- package/dist/src/index.d.ts +53 -6
- package/dist/style.css +1 -1
- package/dist/styles.css +3214 -3211
- package/dist/tags.json +2 -2
- package/dist/web-types.json +22 -12
- package/package.json +76 -76
|
@@ -4,6 +4,8 @@ import { D3ZoomEvent } from "d3";
|
|
|
4
4
|
import { TimelineAxesConfig, TimelineAxis, TimelineTicksConfig, Timestamp } from '../types';
|
|
5
5
|
export type TimelineBarEvent = {
|
|
6
6
|
timestamp: string | Date;
|
|
7
|
+
color?: string;
|
|
8
|
+
text?: string;
|
|
7
9
|
[key: string]: any;
|
|
8
10
|
};
|
|
9
11
|
export type TimelineRangeEvent = {
|
|
@@ -24,6 +26,7 @@ export declare enum TimelineChartType {
|
|
|
24
26
|
export type TimelineEventsGroup = {
|
|
25
27
|
label: string;
|
|
26
28
|
color: string;
|
|
29
|
+
bgColor?: string;
|
|
27
30
|
isLoading?: Boolean;
|
|
28
31
|
isHidden?: Boolean;
|
|
29
32
|
chartType?: TimelineChartType;
|
|
@@ -46,7 +49,6 @@ declare const _default: import("vue/types/vue").ExtendedVue<Vue<Record<string, a
|
|
|
46
49
|
zoomBehavior: d3.ZoomBehavior<SVGSVGElement, unknown>;
|
|
47
50
|
isMouseDown: boolean;
|
|
48
51
|
axisHeight: number;
|
|
49
|
-
eventGroupPadding: number;
|
|
50
52
|
isHoveringEvent: boolean;
|
|
51
53
|
hoveredEvent: TimelineEvent;
|
|
52
54
|
isHoveringTimeline: boolean;
|
|
@@ -76,6 +78,8 @@ declare const _default: import("vue/types/vue").ExtendedVue<Vue<Record<string, a
|
|
|
76
78
|
rightCurtainWidth: number;
|
|
77
79
|
isHoveringCurtain: boolean;
|
|
78
80
|
isDraggingCurtain: boolean;
|
|
81
|
+
characterWidth: number;
|
|
82
|
+
textPadding: number;
|
|
79
83
|
}, {
|
|
80
84
|
initTimeline(startDate?: string, endDate?: string): void;
|
|
81
85
|
initRefs(): void;
|
|
@@ -130,6 +134,7 @@ declare const _default: import("vue/types/vue").ExtendedVue<Vue<Record<string, a
|
|
|
130
134
|
updateLineGraphHoverZones(): void;
|
|
131
135
|
getEventRectX(d: TimelineEvent): any;
|
|
132
136
|
getEventRectWidth(d: TimelineEvent): number;
|
|
137
|
+
getEventText(e: TimelineEvent): string;
|
|
133
138
|
initCurtains(): void;
|
|
134
139
|
drawEventsGroups(): void;
|
|
135
140
|
drawLineGraphEventsGroups(): void;
|
|
@@ -170,7 +175,7 @@ declare const _default: import("vue/types/vue").ExtendedVue<Vue<Record<string, a
|
|
|
170
175
|
color: string;
|
|
171
176
|
label: string;
|
|
172
177
|
}): void;
|
|
173
|
-
getTextFillColor(baseColor: string): string;
|
|
178
|
+
getTextFillColor(baseColor: string, k?: number): string;
|
|
174
179
|
getLabelBackgroundColor(baseColor: string): string;
|
|
175
180
|
tzStringToDate(timestamp: Timestamp): Date;
|
|
176
181
|
dateToTzString(date: Date): string;
|
|
@@ -182,6 +187,7 @@ declare const _default: import("vue/types/vue").ExtendedVue<Vue<Record<string, a
|
|
|
182
187
|
fillTimeGaps(events: TimelineEvent[]): TimelineEvent[];
|
|
183
188
|
getNormalizedEvents(events: TimelineEvent[]): TimelineEvent[];
|
|
184
189
|
}, {
|
|
190
|
+
barChartHeight: number;
|
|
185
191
|
classes: Record<string, string | Record<string, boolean>>;
|
|
186
192
|
lineGraphGroups: TimelineEventsByType;
|
|
187
193
|
lineGraphChartHeight: number;
|
|
@@ -212,7 +218,8 @@ declare const _default: import("vue/types/vue").ExtendedVue<Vue<Record<string, a
|
|
|
212
218
|
curtains: boolean;
|
|
213
219
|
showLabels: boolean;
|
|
214
220
|
rectMinWidth: number;
|
|
215
|
-
|
|
221
|
+
barHeight: number;
|
|
222
|
+
barYPadding: number;
|
|
216
223
|
lineGraphMinHeight: number;
|
|
217
224
|
minZoom: number;
|
|
218
225
|
maxZoom: number;
|
|
@@ -0,0 +1,45 @@
|
|
|
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;
|
|
@@ -2,9 +2,7 @@ import Vue from "vue";
|
|
|
2
2
|
export type VideoSource = {
|
|
3
3
|
type: string;
|
|
4
4
|
src: string;
|
|
5
|
-
srcObject?: MediaStream;
|
|
6
5
|
};
|
|
7
|
-
export type MediaType = "video" | "webRtc" | "ptz" | "hls";
|
|
8
6
|
export declare const VIDEO_PLAYER_EVENTS: string[];
|
|
9
7
|
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>>, {
|
|
10
8
|
playing: boolean;
|
|
@@ -21,7 +19,7 @@ declare const _default: import("vue/types/vue").ExtendedVue<Vue<Record<string, a
|
|
|
21
19
|
isLoading: boolean;
|
|
22
20
|
isError: boolean;
|
|
23
21
|
}, {
|
|
24
|
-
handle404Error(
|
|
22
|
+
handle404Error(): void;
|
|
25
23
|
bindEvents(): void;
|
|
26
24
|
unbindEvents(): void;
|
|
27
25
|
bindVideoEvent(which: string): void;
|
|
@@ -55,7 +53,6 @@ declare const _default: import("vue/types/vue").ExtendedVue<Vue<Record<string, a
|
|
|
55
53
|
hasStartedOrFinished: boolean;
|
|
56
54
|
withControls: "" | "hide";
|
|
57
55
|
}, {
|
|
58
|
-
type: string;
|
|
59
56
|
sources: string | VideoSource[];
|
|
60
57
|
videoListeners: {};
|
|
61
58
|
videoOptions: {};
|
package/dist/src/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ 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';
|
|
9
10
|
import { VueConstructor } from "vue";
|
|
10
11
|
export declare const components: {
|
|
11
12
|
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>>, {
|
|
@@ -132,7 +133,7 @@ export declare const components: {
|
|
|
132
133
|
isLoading: boolean;
|
|
133
134
|
isError: boolean;
|
|
134
135
|
}, {
|
|
135
|
-
handle404Error(
|
|
136
|
+
handle404Error(): void;
|
|
136
137
|
bindEvents(): void;
|
|
137
138
|
unbindEvents(): void;
|
|
138
139
|
bindVideoEvent(which: string): void;
|
|
@@ -166,7 +167,6 @@ export declare const components: {
|
|
|
166
167
|
hasStartedOrFinished: boolean;
|
|
167
168
|
withControls: "" | "hide";
|
|
168
169
|
}, {
|
|
169
|
-
type: string;
|
|
170
170
|
sources: string | import('./components/EVideoPlayer.vue').VideoSource[];
|
|
171
171
|
videoListeners: {};
|
|
172
172
|
videoOptions: {};
|
|
@@ -185,7 +185,6 @@ export declare const components: {
|
|
|
185
185
|
zoomBehavior: import("d3-zoom").ZoomBehavior<SVGSVGElement, unknown>;
|
|
186
186
|
isMouseDown: boolean;
|
|
187
187
|
axisHeight: number;
|
|
188
|
-
eventGroupPadding: number;
|
|
189
188
|
isHoveringEvent: boolean;
|
|
190
189
|
hoveredEvent: import('./components/ETimeline.vue').TimelineEvent;
|
|
191
190
|
isHoveringTimeline: boolean;
|
|
@@ -215,6 +214,8 @@ export declare const components: {
|
|
|
215
214
|
rightCurtainWidth: number;
|
|
216
215
|
isHoveringCurtain: boolean;
|
|
217
216
|
isDraggingCurtain: boolean;
|
|
217
|
+
characterWidth: number;
|
|
218
|
+
textPadding: number;
|
|
218
219
|
}, {
|
|
219
220
|
initTimeline(startDate?: string | undefined, endDate?: string | undefined): void;
|
|
220
221
|
initRefs(): void;
|
|
@@ -269,6 +270,7 @@ export declare const components: {
|
|
|
269
270
|
updateLineGraphHoverZones(): void;
|
|
270
271
|
getEventRectX(d: import('./components/ETimeline.vue').TimelineEvent): any;
|
|
271
272
|
getEventRectWidth(d: import('./components/ETimeline.vue').TimelineEvent): number;
|
|
273
|
+
getEventText(e: import('./components/ETimeline.vue').TimelineEvent): string;
|
|
272
274
|
initCurtains(): void;
|
|
273
275
|
drawEventsGroups(): void;
|
|
274
276
|
drawLineGraphEventsGroups(): void;
|
|
@@ -309,7 +311,7 @@ export declare const components: {
|
|
|
309
311
|
color: string;
|
|
310
312
|
label: string;
|
|
311
313
|
}): void;
|
|
312
|
-
getTextFillColor(baseColor: string): string;
|
|
314
|
+
getTextFillColor(baseColor: string, k?: number): string;
|
|
313
315
|
getLabelBackgroundColor(baseColor: string): string;
|
|
314
316
|
tzStringToDate(timestamp: import('./types').Timestamp): Date;
|
|
315
317
|
dateToTzString(date: Date): string;
|
|
@@ -321,6 +323,7 @@ export declare const components: {
|
|
|
321
323
|
fillTimeGaps(events: import('./components/ETimeline.vue').TimelineEvent[]): import('./components/ETimeline.vue').TimelineEvent[];
|
|
322
324
|
getNormalizedEvents(events: import('./components/ETimeline.vue').TimelineEvent[]): import('./components/ETimeline.vue').TimelineEvent[];
|
|
323
325
|
}, {
|
|
326
|
+
barChartHeight: number;
|
|
324
327
|
classes: Record<string, string | Record<string, boolean>>;
|
|
325
328
|
lineGraphGroups: import('./components/ETimeline.vue').TimelineEventsByType;
|
|
326
329
|
lineGraphChartHeight: number;
|
|
@@ -351,18 +354,62 @@ export declare const components: {
|
|
|
351
354
|
curtains: boolean;
|
|
352
355
|
showLabels: boolean;
|
|
353
356
|
rectMinWidth: number;
|
|
354
|
-
|
|
357
|
+
barHeight: number;
|
|
358
|
+
barYPadding: number;
|
|
355
359
|
lineGraphMinHeight: number;
|
|
356
360
|
minZoom: number;
|
|
357
361
|
maxZoom: number;
|
|
358
362
|
cursorTimestamp: string | undefined;
|
|
359
363
|
}, {}, 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
|
+
}>;
|
|
360
407
|
};
|
|
361
408
|
declare const _default: {
|
|
362
409
|
install(Vue: VueConstructor): void;
|
|
363
410
|
};
|
|
364
411
|
export default _default;
|
|
365
|
-
export { EAvatar, EBadge, EIcon, ESpinner, ERow, ECol, EVideoPlayer, ETimeline };
|
|
412
|
+
export { EAvatar, EBadge, EIcon, ESpinner, ERow, ECol, EVideoPlayer, ETimeline, EVideoEmbed, };
|
|
366
413
|
export * from './constants';
|
|
367
414
|
export * from './types';
|
|
368
415
|
export * from './utils';
|
package/dist/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.e-spinner[data-v-
|
|
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%}
|