@vidispine/vdt-react-timeline 22.4.0-pre.9 → 23.1.0-pre.1

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 (2) hide show
  1. package/dist/index.es.js +324 -587
  2. package/package.json +14 -14
package/dist/index.es.js CHANGED
@@ -14,46 +14,38 @@ import uniq from 'lodash.uniq';
14
14
  var interpolate = function interpolate(y0, y1, x0, x1, x) {
15
15
  return y0 + (x - x0) * (y1 - y0) / (x1 - x0);
16
16
  };
17
-
18
17
  var vLogImpl = function vLogImpl(component, msg, level) {
19
18
  if (process.env.NODE_ENV === 'development') {
20
19
  // eslint-disable-next-line no-console
21
20
  console[level]("".concat(component ? "".concat(component, ": ") : '').concat(msg));
22
21
  }
23
22
  };
24
-
25
23
  var vLog = {
26
24
  error: function error() {
27
25
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
28
26
  args[_key] = arguments[_key];
29
27
  }
30
-
31
28
  return vLogImpl.apply(void 0, args.concat(['error']));
32
29
  },
33
30
  warn: function warn() {
34
31
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
35
32
  args[_key2] = arguments[_key2];
36
33
  }
37
-
38
34
  return vLogImpl.apply(void 0, args.concat(['warn']));
39
35
  }
40
36
  };
41
37
  function mapPairs(arr, func) {
42
38
  var result = [];
43
-
44
39
  for (var i = 0; i < arr.length - 1; i += 1) {
45
40
  result.push(func(arr[i], arr[i + 1]));
46
41
  }
47
-
48
42
  return result;
49
43
  }
50
44
  function getStyleProperties() {
51
45
  var style = getComputedStyle(document.body);
52
-
53
46
  for (var _len3 = arguments.length, properties = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
54
47
  properties[_key3] = arguments[_key3];
55
48
  }
56
-
57
49
  return properties.map(function (prop) {
58
50
  return style.getPropertyValue(prop);
59
51
  });
@@ -61,23 +53,20 @@ function getStyleProperties() {
61
53
 
62
54
  function useOptionallyControlledState(_ref) {
63
55
  var _ref$uncontrolledDefa = _ref.uncontrolledDefaultState,
64
- uncontrolledDefaultState = _ref$uncontrolledDefa === void 0 ? undefined : _ref$uncontrolledDefa,
65
- _ref$uncontrolledOnCh = _ref.uncontrolledOnChange,
66
- uncontrolledOnChange = _ref$uncontrolledOnCh === void 0 ? undefined : _ref$uncontrolledOnCh,
67
- _ref$controlledState = _ref.controlledState,
68
- controlledState = _ref$controlledState === void 0 ? undefined : _ref$controlledState,
69
- _ref$controlledOnChan = _ref.controlledOnChange,
70
- controlledOnChange = _ref$controlledOnChan === void 0 ? undefined : _ref$controlledOnChan,
71
- componentName = _ref.componentName,
72
- stateName = _ref.stateName;
73
-
56
+ uncontrolledDefaultState = _ref$uncontrolledDefa === void 0 ? undefined : _ref$uncontrolledDefa,
57
+ _ref$uncontrolledOnCh = _ref.uncontrolledOnChange,
58
+ uncontrolledOnChange = _ref$uncontrolledOnCh === void 0 ? undefined : _ref$uncontrolledOnCh,
59
+ _ref$controlledState = _ref.controlledState,
60
+ controlledState = _ref$controlledState === void 0 ? undefined : _ref$controlledState,
61
+ _ref$controlledOnChan = _ref.controlledOnChange,
62
+ controlledOnChange = _ref$controlledOnChan === void 0 ? undefined : _ref$controlledOnChan,
63
+ componentName = _ref.componentName,
64
+ stateName = _ref.stateName;
74
65
  var _useState = useState(uncontrolledDefaultState),
75
- _useState2 = _slicedToArray(_useState, 2),
76
- uncontrolledState = _useState2[0],
77
- setUncontrolledState = _useState2[1];
78
-
66
+ _useState2 = _slicedToArray(_useState, 2),
67
+ uncontrolledState = _useState2[0],
68
+ setUncontrolledState = _useState2[1];
79
69
  var isControlled = useRef(null);
80
-
81
70
  var setIsControlled = function setIsControlled(newValue) {
82
71
  if (isControlled.current !== null && isControlled.current !== newValue) {
83
72
  if (newValue) {
@@ -86,27 +75,22 @@ function useOptionallyControlledState(_ref) {
86
75
  vLog.warn(componentName, "".concat(stateName, " changed from controlled to uncontrolled"));
87
76
  }
88
77
  }
89
-
90
78
  isControlled.current = newValue;
91
79
  };
92
-
93
80
  if (controlledState !== undefined) {
94
81
  setIsControlled(true);
95
82
  return [controlledState, controlledOnChange];
96
83
  }
97
-
98
84
  setIsControlled(false);
99
85
  return [uncontrolledState, controlledOnChange ? function () {
100
86
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
101
87
  args[_key] = arguments[_key];
102
88
  }
103
-
104
89
  if (uncontrolledOnChange) {
105
90
  uncontrolledOnChange.apply(void 0, [setUncontrolledState].concat(args));
106
91
  } else {
107
92
  setUncontrolledState.apply(void 0, args);
108
93
  }
109
-
110
94
  controlledOnChange.apply(void 0, args);
111
95
  } : uncontrolledOnChange || setUncontrolledState];
112
96
  }
@@ -115,69 +99,57 @@ function defaultGetZoomMultiplier(direction, time, perspective) {
115
99
  var multiplier = perspective.end - perspective.start < 100 && direction === 'in' ? 1 : 2;
116
100
  return direction === 'in' ? 1 / multiplier : multiplier;
117
101
  }
118
-
119
102
  function useTimelinePerspective(_ref) {
120
103
  var start = _ref.start,
121
- end = _ref.end,
122
- propDefaultPerspective = _ref.defaultPerspective,
123
- propPerspective = _ref.perspective,
124
- propOnChangePerspective = _ref.onChangePerspective,
125
- _ref$zoomMultiplier = _ref.zoomMultiplier,
126
- zoomMultiplier = _ref$zoomMultiplier === void 0 ? defaultGetZoomMultiplier : _ref$zoomMultiplier;
127
-
104
+ end = _ref.end,
105
+ propDefaultPerspective = _ref.defaultPerspective,
106
+ propPerspective = _ref.perspective,
107
+ propOnChangePerspective = _ref.onChangePerspective,
108
+ _ref$zoomMultiplier = _ref.zoomMultiplier,
109
+ zoomMultiplier = _ref$zoomMultiplier === void 0 ? defaultGetZoomMultiplier : _ref$zoomMultiplier;
128
110
  var _useOptionallyControl = useOptionallyControlledState({
129
- uncontrolledDefaultState: propDefaultPerspective || {
130
- start: start,
131
- end: end
132
- },
133
- controlledState: propPerspective,
134
- controlledOnChange: propOnChangePerspective,
135
- componentName: 'VdtTimeline',
136
- stateName: 'perspective'
137
- }),
138
- _useOptionallyControl2 = _slicedToArray(_useOptionallyControl, 2),
139
- perspective = _useOptionallyControl2[0],
140
- setPerspective = _useOptionallyControl2[1];
141
-
111
+ uncontrolledDefaultState: propDefaultPerspective || {
112
+ start: start,
113
+ end: end
114
+ },
115
+ controlledState: propPerspective,
116
+ controlledOnChange: propOnChangePerspective,
117
+ componentName: 'VdtTimeline',
118
+ stateName: 'perspective'
119
+ }),
120
+ _useOptionallyControl2 = _slicedToArray(_useOptionallyControl, 2),
121
+ perspective = _useOptionallyControl2[0],
122
+ setPerspective = _useOptionallyControl2[1];
142
123
  var getZoomMultiplier = typeof zoomMultiplier === 'function' ? zoomMultiplier : function (direction) {
143
124
  return direction === 'in' ? 1 / zoomMultiplier : zoomMultiplier;
144
125
  };
145
-
146
126
  var checkedSetPerspective = function checkedSetPerspective(perspectiveStart, perspectiveEnd) {
147
127
  setPerspective({
148
128
  start: clamp(Number(perspectiveStart), start, end),
149
129
  end: clamp(Number(perspectiveEnd), start, end)
150
130
  });
151
131
  };
152
-
153
132
  var zoom = function zoom(direction, time) {
154
133
  var perspectiveDuration = perspective.end - perspective.start;
155
134
  var normalizedTimeOffset = (time - perspective.start) / perspectiveDuration;
156
135
  var currZoomMultiplier = getZoomMultiplier(direction, time, perspective);
157
-
158
136
  if (currZoomMultiplier === 1) {
159
137
  return;
160
138
  }
161
-
162
139
  var newPerspectiveDuration = (perspective.end - perspective.start) * currZoomMultiplier;
163
140
  var newPerspectiveStart = time - normalizedTimeOffset * newPerspectiveDuration;
164
141
  var newPerspectiveEnd = time + (1 - normalizedTimeOffset) * newPerspectiveDuration;
165
-
166
142
  var perspectiveMisalignmentCorrection = function () {
167
143
  if (start > newPerspectiveStart) {
168
144
  return start - newPerspectiveStart;
169
145
  }
170
-
171
146
  if (newPerspectiveEnd > end) {
172
147
  return end - newPerspectiveEnd;
173
148
  }
174
-
175
149
  return 0;
176
150
  }();
177
-
178
151
  checkedSetPerspective(newPerspectiveStart + perspectiveMisalignmentCorrection, newPerspectiveEnd + perspectiveMisalignmentCorrection);
179
152
  };
180
-
181
153
  return {
182
154
  perspective: perspective,
183
155
  setPerspective: checkedSetPerspective,
@@ -186,19 +158,18 @@ function useTimelinePerspective(_ref) {
186
158
  }
187
159
 
188
160
  function ownKeys$a(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
189
-
190
161
  function _objectSpread$a(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$a(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$a(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
191
162
  var TimelineContext = /*#__PURE__*/createContext();
192
163
  function TimelineProvider(_ref) {
193
164
  var start = _ref.start,
194
- end = _ref.end,
195
- time = _ref.time,
196
- onChangeTime = _ref.onChangeTime,
197
- timelineRef = _ref.timelineRef,
198
- children = _ref.children,
199
- perspective = _ref.perspective,
200
- onChangePerspective = _ref.onChangePerspective,
201
- defaultPerspective = _ref.defaultPerspective;
165
+ end = _ref.end,
166
+ time = _ref.time,
167
+ onChangeTime = _ref.onChangeTime,
168
+ timelineRef = _ref.timelineRef,
169
+ children = _ref.children,
170
+ perspective = _ref.perspective,
171
+ onChangePerspective = _ref.onChangePerspective,
172
+ defaultPerspective = _ref.defaultPerspective;
202
173
  var timelinePerspective = useTimelinePerspective({
203
174
  start: start,
204
175
  end: end,
@@ -260,23 +231,20 @@ var css$7 = ":root {\n --vdt-timeline-palette-primary:#49a6dd;\n --vdt-tim
260
231
  n(css$7,{});
261
232
 
262
233
  var _excluded$9 = ["start", "end", "time", "onChangeTime", "children", "className", "perspective", "onChangePerspective", "defaultPerspective", "zoomMultiplier"];
263
-
264
234
  function ownKeys$9(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
265
-
266
235
  function _objectSpread$9(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$9(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$9(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
267
236
  function Timeline(_ref) {
268
237
  var start = _ref.start,
269
- end = _ref.end,
270
- time = _ref.time,
271
- onChangeTime = _ref.onChangeTime,
272
- children = _ref.children,
273
- className = _ref.className,
274
- perspective = _ref.perspective,
275
- onChangePerspective = _ref.onChangePerspective,
276
- defaultPerspective = _ref.defaultPerspective,
277
- zoomMultiplier = _ref.zoomMultiplier,
278
- props = _objectWithoutProperties(_ref, _excluded$9);
279
-
238
+ end = _ref.end,
239
+ time = _ref.time,
240
+ onChangeTime = _ref.onChangeTime,
241
+ children = _ref.children,
242
+ className = _ref.className,
243
+ perspective = _ref.perspective,
244
+ onChangePerspective = _ref.onChangePerspective,
245
+ defaultPerspective = _ref.defaultPerspective,
246
+ zoomMultiplier = _ref.zoomMultiplier,
247
+ props = _objectWithoutProperties(_ref, _excluded$9);
280
248
  var timelineRef = useRef();
281
249
  return /*#__PURE__*/jsx(TimelineProvider, {
282
250
  start: start,
@@ -301,27 +269,22 @@ Timeline.propTypes = {
301
269
  * Start of timeline.
302
270
  */
303
271
  start: PropTypes.number.isRequired,
304
-
305
272
  /**
306
273
  * End of timeline.
307
274
  */
308
275
  end: PropTypes.number.isRequired,
309
-
310
276
  /**
311
277
  * Place of timeline marker.
312
278
  */
313
279
  time: PropTypes.number,
314
-
315
280
  /**
316
281
  * Children components to render inside timeline.
317
282
  */
318
283
  children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),
319
-
320
284
  /**
321
285
  * Callback to trigger when changing the value of time prop.
322
286
  */
323
287
  onChangeTime: PropTypes.func,
324
-
325
288
  /**
326
289
  * Zoom level of timeline: shows ticks between start and end values (if start and end of timeline are within this range).
327
290
  */
@@ -329,12 +292,10 @@ Timeline.propTypes = {
329
292
  start: PropTypes.number,
330
293
  end: PropTypes.number
331
294
  }),
332
-
333
295
  /**
334
296
  * Callback to trigger when changing the value of perspective prop.
335
297
  */
336
298
  onChangePerspective: PropTypes.func,
337
-
338
299
  /**
339
300
  * Set default value for perspective when rendering component.
340
301
  */
@@ -342,12 +303,10 @@ Timeline.propTypes = {
342
303
  start: PropTypes.number,
343
304
  end: PropTypes.number
344
305
  }),
345
-
346
306
  /**
347
307
  * Multiply by value when zooming in.
348
308
  */
349
309
  zoomMultiplier: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),
350
-
351
310
  /**
352
311
  * Override styles with className.
353
312
  */
@@ -371,78 +330,62 @@ var css$6 = ":root {\n --vdt-timeline-palette-primary:#49a6dd;\n --vdt-tim
371
330
  n(css$6,{});
372
331
 
373
332
  var _excluded$8 = ["className", "perspective", "time", "lineWidth", "headWidth", "headHeight", "style", "onDrag", "HeadProps"];
374
-
375
333
  function ownKeys$8(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
376
-
377
334
  function _objectSpread$8(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$8(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$8(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
378
-
379
335
  var _getStyleProperties$4 = getStyleProperties('--vdt-timeline-palette-secondary'),
380
- _getStyleProperties2$4 = _slicedToArray(_getStyleProperties$4, 1),
381
- paletteSecondary$1 = _getStyleProperties2$4[0];
382
-
336
+ _getStyleProperties2$4 = _slicedToArray(_getStyleProperties$4, 1),
337
+ paletteSecondary$1 = _getStyleProperties2$4[0];
383
338
  var EmptyImage = document.createElement('img');
384
339
  EmptyImage.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';
385
340
  function TimelinePlayhead(_ref) {
386
341
  var _ref$current;
387
-
388
342
  var className = _ref.className,
389
- propPerspective = _ref.perspective,
390
- propTime = _ref.time,
391
- lineWidth = _ref.lineWidth,
392
- headWidth = _ref.headWidth,
393
- headHeight = _ref.headHeight,
394
- style = _ref.style,
395
- onDrag = _ref.onDrag,
396
- HeadProps = _ref.HeadProps,
397
- props = _objectWithoutProperties(_ref, _excluded$8);
398
-
343
+ propPerspective = _ref.perspective,
344
+ propTime = _ref.time,
345
+ lineWidth = _ref.lineWidth,
346
+ headWidth = _ref.headWidth,
347
+ headHeight = _ref.headHeight,
348
+ style = _ref.style,
349
+ onDrag = _ref.onDrag,
350
+ HeadProps = _ref.HeadProps,
351
+ props = _objectWithoutProperties(_ref, _excluded$8);
399
352
  var _ref2 = useTimeline() || {
400
- perspective: propPerspective,
401
- time: propTime
402
- },
403
- perspective = _ref2.perspective,
404
- time = _ref2.time,
405
- onChangeTime = _ref2.onChangeTime;
406
-
353
+ perspective: propPerspective,
354
+ time: propTime
355
+ },
356
+ perspective = _ref2.perspective,
357
+ time = _ref2.time,
358
+ onChangeTime = _ref2.onChangeTime;
407
359
  if (perspective === undefined) {
408
360
  vLog.error('VdtTimelinePlayhead', "missing 'perspective' prop. If the component is used outside a VdtTimelineContext, 'perspective' must be passed explicitly");
409
361
  }
410
-
411
362
  var ref = useRef();
412
363
  var containerEl = (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.parentElement;
413
364
  var containerWidth = (containerEl === null || containerEl === void 0 ? void 0 : containerEl.clientWidth) || 0;
414
-
415
365
  var _useState = useState(false),
416
- _useState2 = _slicedToArray(_useState, 2),
417
- isDragging = _useState2[0],
418
- setIsDragging = _useState2[1];
419
-
366
+ _useState2 = _slicedToArray(_useState, 2),
367
+ isDragging = _useState2[0],
368
+ setIsDragging = _useState2[1];
420
369
  var _useState3 = useState(time),
421
- _useState4 = _slicedToArray(_useState3, 2),
422
- localTime = _useState4[0],
423
- setLocalTime = _useState4[1];
424
-
370
+ _useState4 = _slicedToArray(_useState3, 2),
371
+ localTime = _useState4[0],
372
+ setLocalTime = _useState4[1];
425
373
  var markerLeft = interpolate(0, containerWidth, perspective.start, perspective.end, localTime);
426
-
427
374
  var isValidTime = function isValidTime(f) {
428
375
  return f <= perspective.end && f >= perspective.start;
429
376
  };
430
-
431
377
  var hide = !isValidTime(localTime);
432
378
  useEffect(function () {
433
379
  if (time !== undefined && !isDragging) {
434
380
  setLocalTime(time);
435
381
  }
436
382
  }, [time, isDragging]);
437
-
438
383
  var handleDrag = onDrag || onChangeTime && function (e) {
439
384
  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
440
385
  args[_key - 1] = arguments[_key];
441
386
  }
442
-
443
387
  return onChangeTime.apply(void 0, args);
444
388
  };
445
-
446
389
  return /*#__PURE__*/jsx("div", _objectSpread$8(_objectSpread$8({
447
390
  ref: ref,
448
391
  className: clsx('VdtTimelinePlayhead-root', className),
@@ -460,7 +403,6 @@ function TimelinePlayhead(_ref) {
460
403
  },
461
404
  onDragEnd: function onDragEnd() {
462
405
  setIsDragging(false);
463
-
464
406
  if (handleDrag !== null && handleDrag !== void 0 && handleDrag.flush) {
465
407
  handleDrag.flush();
466
408
  }
@@ -468,10 +410,8 @@ function TimelinePlayhead(_ref) {
468
410
  onDrag: function onDrag(e) {
469
411
  if (handleDrag) {
470
412
  var _ref$current$parentEl = ref.current.parentElement.getBoundingClientRect(),
471
- containerX = _ref$current$parentEl.x;
472
-
413
+ containerX = _ref$current$parentEl.x;
473
414
  var newTime = interpolate(perspective.start, perspective.end, 0, containerWidth, e.clientX - containerX);
474
-
475
415
  if (isValidTime(newTime)) {
476
416
  var clampedNewTime = clamp(newTime, perspective.start, perspective.end);
477
417
  handleDrag(e, clampedNewTime);
@@ -499,22 +439,18 @@ TimelinePlayhead.propTypes = {
499
439
  * Apply inline CSS styling
500
440
  */
501
441
  style: PropTypes.instanceOf(Object),
502
-
503
442
  /**
504
443
  * Height of marker head in px
505
444
  */
506
445
  headHeight: PropTypes.number,
507
-
508
446
  /**
509
447
  * Width of marker head in px
510
448
  */
511
449
  headWidth: PropTypes.number,
512
-
513
450
  /**
514
451
  * Width/thickness of marker line in px
515
452
  */
516
453
  lineWidth: PropTypes.number,
517
-
518
454
  /**
519
455
  * Zoom level when looking at playhead.
520
456
  */
@@ -522,18 +458,15 @@ TimelinePlayhead.propTypes = {
522
458
  start: PropTypes.number,
523
459
  end: PropTypes.number
524
460
  }),
525
-
526
461
  /**
527
462
  * Timeline placement of marker
528
463
  */
529
464
  time: PropTypes.number,
530
465
  onDrag: PropTypes.func,
531
-
532
466
  /**
533
467
  * Additional props for marker head
534
468
  */
535
469
  HeadProps: PropTypes.instanceOf(Object),
536
-
537
470
  /**
538
471
  * Override styles with className
539
472
  */
@@ -553,15 +486,12 @@ TimelinePlayhead.defaultProps = {
553
486
 
554
487
  function useResizeObserver(ref) {
555
488
  var _useState = useState({}),
556
- _useState2 = _slicedToArray(_useState, 2),
557
- rect = _useState2[0],
558
- setRect = _useState2[1];
559
-
489
+ _useState2 = _slicedToArray(_useState, 2),
490
+ rect = _useState2[0],
491
+ setRect = _useState2[1];
560
492
  var observerRef = useRef(new ResizeObserver(function (entries) {
561
493
  var _entries$;
562
-
563
494
  var contentRect = (_entries$ = entries[0]) === null || _entries$ === void 0 ? void 0 : _entries$.contentRect;
564
-
565
495
  if (contentRect) {
566
496
  setRect(contentRect);
567
497
  }
@@ -569,11 +499,9 @@ function useResizeObserver(ref) {
569
499
  useEffect(function () {
570
500
  var observer = observerRef === null || observerRef === void 0 ? void 0 : observerRef.current;
571
501
  var el = ref === null || ref === void 0 ? void 0 : ref.current;
572
-
573
502
  if (el) {
574
503
  observer.observe(el);
575
504
  }
576
-
577
505
  return function () {
578
506
  if (el) {
579
507
  observer.unobserve(el);
@@ -590,32 +518,28 @@ var css$4 = ".VdtTimelineWaveform-root {\n height: 40px;\n}";
590
518
  n(css$4,{});
591
519
 
592
520
  var _excluded$7 = ["amplitudeSegments", "pxPerTimeUnit", "start", "height"],
593
- _excluded2$3 = ["className", "waveform", "start", "end", "perspective", "StageProps", "LayerProps", "RectProps", "WaveRectProps"];
594
-
521
+ _excluded2$3 = ["className", "waveform", "start", "end", "perspective", "StageProps", "LayerProps", "RectProps", "WaveRectProps"];
595
522
  function ownKeys$7(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
596
-
597
523
  function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$7(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$7(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
598
-
599
524
  var _getStyleProperties$3 = getStyleProperties('--vdt-timeline-palette-primary'),
600
- _getStyleProperties2$3 = _slicedToArray(_getStyleProperties$3, 1),
601
- palettePrimary$1 = _getStyleProperties2$3[0];
602
-
525
+ _getStyleProperties2$3 = _slicedToArray(_getStyleProperties$3, 1),
526
+ palettePrimary$1 = _getStyleProperties2$3[0];
603
527
  var TimelineWaveFormRects = /*#__PURE__*/memo(function (_ref) {
604
528
  var amplitudeSegments = _ref.amplitudeSegments,
605
- pxPerTimeUnit = _ref.pxPerTimeUnit,
606
- start = _ref.start,
607
- height = _ref.height,
608
- props = _objectWithoutProperties(_ref, _excluded$7);
609
-
529
+ pxPerTimeUnit = _ref.pxPerTimeUnit,
530
+ start = _ref.start,
531
+ height = _ref.height,
532
+ props = _objectWithoutProperties(_ref, _excluded$7);
610
533
  return amplitudeSegments.map(function (_ref2, i) {
611
534
  var amplitude = _ref2.amplitude,
612
- segmentStart = _ref2.start,
613
- segmentEnd = _ref2.end;
535
+ segmentStart = _ref2.start,
536
+ segmentEnd = _ref2.end;
614
537
  var rectWidth = pxPerTimeUnit * (segmentEnd - segmentStart);
615
538
  var rectX = (segmentStart - start) * pxPerTimeUnit;
616
539
  var rectHeight = height * amplitude;
617
540
  var centeredY = (height - rectHeight) / 2;
618
- return /*#__PURE__*/jsx(Rect // eslint-disable-next-line react/no-array-index-key
541
+ return /*#__PURE__*/jsx(Rect
542
+ // eslint-disable-next-line react/no-array-index-key
619
543
  , _objectSpread$7({
620
544
  x: rectX,
621
545
  y: centeredY,
@@ -625,40 +549,34 @@ var TimelineWaveFormRects = /*#__PURE__*/memo(function (_ref) {
625
549
  }, props), i);
626
550
  });
627
551
  });
628
-
629
552
  function TimelineWaveform(_ref3) {
630
553
  var className = _ref3.className,
631
- waveform = _ref3.waveform,
632
- propStart = _ref3.start,
633
- propEnd = _ref3.end,
634
- propPerspective = _ref3.perspective,
635
- StageProps = _ref3.StageProps,
636
- LayerProps = _ref3.LayerProps,
637
- RectProps = _ref3.RectProps,
638
- WaveRectProps = _ref3.WaveRectProps,
639
- props = _objectWithoutProperties(_ref3, _excluded2$3);
640
-
554
+ waveform = _ref3.waveform,
555
+ propStart = _ref3.start,
556
+ propEnd = _ref3.end,
557
+ propPerspective = _ref3.perspective,
558
+ StageProps = _ref3.StageProps,
559
+ LayerProps = _ref3.LayerProps,
560
+ RectProps = _ref3.RectProps,
561
+ WaveRectProps = _ref3.WaveRectProps,
562
+ props = _objectWithoutProperties(_ref3, _excluded2$3);
641
563
  var _ref4 = useTimeline() || {
642
- start: propStart,
643
- end: propEnd,
644
- perspective: propPerspective
645
- },
646
- start = _ref4.start,
647
- end = _ref4.end,
648
- perspective = _ref4.perspective;
649
-
564
+ start: propStart,
565
+ end: propEnd,
566
+ perspective: propPerspective
567
+ },
568
+ start = _ref4.start,
569
+ end = _ref4.end,
570
+ perspective = _ref4.perspective;
650
571
  if (start === undefined || end === undefined || perspective === undefined) {
651
572
  vLog.error('VdtTimelineWaveform', "missing 'start', 'end' or 'perspective' props. If the component is used outside a VdtTimelineContext, 'start', 'end' or 'perspective' must be passed explicitly");
652
573
  }
653
-
654
574
  var ref = useRef();
655
-
656
575
  var _useResizeObserver = useResizeObserver(ref),
657
- _useResizeObserver$wi = _useResizeObserver.width,
658
- width = _useResizeObserver$wi === void 0 ? 0 : _useResizeObserver$wi,
659
- _useResizeObserver$he = _useResizeObserver.height,
660
- height = _useResizeObserver$he === void 0 ? 0 : _useResizeObserver$he;
661
-
576
+ _useResizeObserver$wi = _useResizeObserver.width,
577
+ width = _useResizeObserver$wi === void 0 ? 0 : _useResizeObserver$wi,
578
+ _useResizeObserver$he = _useResizeObserver.height,
579
+ height = _useResizeObserver$he === void 0 ? 0 : _useResizeObserver$he;
662
580
  var amplitudeSegments = useMemo(function () {
663
581
  return waveform.map(function (amplitude, i) {
664
582
  return {
@@ -704,17 +622,14 @@ TimelineWaveform.propTypes = {
704
622
  * Array of integers to form the wave.
705
623
  */
706
624
  waveform: PropTypes.arrayOf(PropTypes.number),
707
-
708
625
  /**
709
626
  * Set starting point of the waveform. The value provided is the value of the respective data point in passed data.
710
627
  */
711
628
  start: PropTypes.number,
712
-
713
629
  /**
714
630
  * Set ending point of the waveform. The value provided is the value of the respective data point in passed data.
715
631
  */
716
632
  end: PropTypes.number,
717
-
718
633
  /**
719
634
  * Zoom level when looking at waveform.
720
635
  */
@@ -722,27 +637,22 @@ TimelineWaveform.propTypes = {
722
637
  start: PropTypes.number,
723
638
  end: PropTypes.number
724
639
  }),
725
-
726
640
  /**
727
641
  * Props for Stage component. For more information: https://konvajs.org/api/Konva.Stage.html
728
642
  */
729
643
  StageProps: PropTypes.instanceOf(Object),
730
-
731
644
  /**
732
645
  * Props for Stage component. For more information: https://konvajs.org/api/Konva.Layer.html
733
646
  */
734
647
  LayerProps: PropTypes.instanceOf(Object),
735
-
736
648
  /**
737
649
  * Props for Stage component. For more information: https://konvajs.org/api/Konva.Rect.html
738
650
  */
739
651
  RectProps: PropTypes.instanceOf(Object),
740
-
741
652
  /**
742
653
  * Props for Stage component. For more information: https://konvajs.org/api/Konva.Rect.html
743
654
  */
744
655
  WaveRectProps: PropTypes.instanceOf(Object),
745
-
746
656
  /**
747
657
  * Override styles with className
748
658
  */
@@ -762,14 +672,12 @@ TimelineWaveform.defaultProps = {
762
672
 
763
673
  function useHover() {
764
674
  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
765
- _ref$hoverEffect = _ref.hoverEffect,
766
- hoverEffect = _ref$hoverEffect === void 0 ? function () {} : _ref$hoverEffect;
767
-
675
+ _ref$hoverEffect = _ref.hoverEffect,
676
+ hoverEffect = _ref$hoverEffect === void 0 ? function () {} : _ref$hoverEffect;
768
677
  var _useState = useState(false),
769
- _useState2 = _slicedToArray(_useState, 2),
770
- isHovering = _useState2[0],
771
- setIsHovering = _useState2[1];
772
-
678
+ _useState2 = _slicedToArray(_useState, 2),
679
+ isHovering = _useState2[0],
680
+ setIsHovering = _useState2[1];
773
681
  var cleanupHover = useRef(null);
774
682
  return {
775
683
  isHovering: isHovering,
@@ -779,88 +687,75 @@ function useHover() {
779
687
  },
780
688
  onMouseLeave: function onMouseLeave() {
781
689
  setIsHovering(false);
782
-
783
690
  if (cleanupHover.current) {
784
691
  cleanupHover.current();
785
692
  }
786
-
787
693
  cleanupHover.current = null;
788
694
  }
789
695
  };
790
696
  }
791
697
 
792
698
  var _excluded$6 = ["onClick", "x", "width", "y", "height", "padding", "start", "end", "onHover", "onMove", "onMoveStart", "onMoveEnd", "onResize", "onResizeStart", "onResizeEnd"],
793
- _excluded2$2 = ["isHovering"],
794
- _excluded3 = ["isHovering"];
795
-
699
+ _excluded2$2 = ["isHovering"],
700
+ _excluded3 = ["isHovering"];
796
701
  function ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
797
-
798
702
  function _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$6(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
799
-
800
703
  var _getStyleProperties$2 = getStyleProperties('--vdt-timeline-palette-primary', '--vdt-timeline-palette-primary-dark'),
801
- _getStyleProperties2$2 = _slicedToArray(_getStyleProperties$2, 2),
802
- palettePrimary = _getStyleProperties2$2[0],
803
- palettePrimaryDark = _getStyleProperties2$2[1];
804
-
704
+ _getStyleProperties2$2 = _slicedToArray(_getStyleProperties$2, 2),
705
+ palettePrimary = _getStyleProperties2$2[0],
706
+ palettePrimaryDark = _getStyleProperties2$2[1];
805
707
  var EVENT_RESIZER_THUMB_WIDTH = 5;
806
708
  function TimelineEvent(_ref) {
807
709
  var onClick = _ref.onClick,
808
- x = _ref.x,
809
- width = _ref.width,
810
- y = _ref.y,
811
- height = _ref.height,
812
- padding = _ref.padding,
813
- start = _ref.start,
814
- end = _ref.end,
815
- onHover = _ref.onHover,
816
- onMove = _ref.onMove,
817
- onMoveStart = _ref.onMoveStart,
818
- onMoveEnd = _ref.onMoveEnd,
819
- onResize = _ref.onResize,
820
- onResizeStart = _ref.onResizeStart,
821
- onResizeEnd = _ref.onResizeEnd,
822
- props = _objectWithoutProperties(_ref, _excluded$6);
823
-
710
+ x = _ref.x,
711
+ width = _ref.width,
712
+ y = _ref.y,
713
+ height = _ref.height,
714
+ padding = _ref.padding,
715
+ start = _ref.start,
716
+ end = _ref.end,
717
+ onHover = _ref.onHover,
718
+ onMove = _ref.onMove,
719
+ onMoveStart = _ref.onMoveStart,
720
+ onMoveEnd = _ref.onMoveEnd,
721
+ onResize = _ref.onResize,
722
+ onResizeStart = _ref.onResizeStart,
723
+ onResizeEnd = _ref.onResizeEnd,
724
+ props = _objectWithoutProperties(_ref, _excluded$6);
824
725
  if ([x, width, y, height].some(function (v) {
825
726
  return v === undefined;
826
727
  })) {
827
728
  vLog.error('VdtTimelineEvent', "missing 'x', 'width', 'y', or 'height' props. If the component is not used as a direct child of VdtTimelineTrack, 'x', 'width', 'y', or 'height' must be passed explicitly");
828
729
  }
829
-
830
730
  var eventRef = useRef();
831
-
832
731
  var _useHover = useHover({
833
- hoverEffect: function hoverEffect(e) {
834
- if (onHover) onHover(e, true);
835
- return function () {
836
- if (onHover) onHover(e, false);
837
- };
838
- }
839
- }),
840
- isHovering = _useHover.isHovering,
841
- hoverProps = _objectWithoutProperties(_useHover, _excluded2$2);
842
-
843
- var _useHover2 = useHover({
844
- hoverEffect: function hoverEffect(e) {
845
- if (onResize) {
846
- e.target.getStage().container().style.cursor = 'col-resize';
732
+ hoverEffect: function hoverEffect(e) {
733
+ if (onHover) onHover(e, true);
734
+ return function () {
735
+ if (onHover) onHover(e, false);
736
+ };
847
737
  }
848
-
849
- return function () {
738
+ }),
739
+ isHovering = _useHover.isHovering,
740
+ hoverProps = _objectWithoutProperties(_useHover, _excluded2$2);
741
+ var _useHover2 = useHover({
742
+ hoverEffect: function hoverEffect(e) {
850
743
  if (onResize) {
851
- e.target.getStage().container().style.cursor = 'default';
744
+ e.target.getStage().container().style.cursor = 'col-resize';
852
745
  }
853
- };
854
- }
855
- }),
856
- isHoveringResize = _useHover2.isHovering,
857
- resizeHoverProps = _objectWithoutProperties(_useHover2, _excluded3);
858
-
746
+ return function () {
747
+ if (onResize) {
748
+ e.target.getStage().container().style.cursor = 'default';
749
+ }
750
+ };
751
+ }
752
+ }),
753
+ isHoveringResize = _useHover2.isHovering,
754
+ resizeHoverProps = _objectWithoutProperties(_useHover2, _excluded3);
859
755
  var _useState = useState(false),
860
- _useState2 = _slicedToArray(_useState, 2),
861
- isMoving = _useState2[0],
862
- setIsMoving = _useState2[1];
863
-
756
+ _useState2 = _slicedToArray(_useState, 2),
757
+ isMoving = _useState2[0],
758
+ setIsMoving = _useState2[1];
864
759
  var hasOnClick = !!onClick;
865
760
  useEffect(function () {
866
761
  if (eventRef.current) {
@@ -869,7 +764,6 @@ function TimelineEvent(_ref) {
869
764
  if (isHovering && hasOnClick) return 'pointer';
870
765
  return 'default';
871
766
  }();
872
-
873
767
  eventRef.current.getStage().container().style.cursor = cursor;
874
768
  }
875
769
  }, [isMoving, isHovering, hasOnClick]);
@@ -884,7 +778,6 @@ function TimelineEvent(_ref) {
884
778
  var defaultHoverProps = isHovering || isHoveringResize ? {
885
779
  fill: palettePrimaryDark
886
780
  } : {};
887
-
888
781
  var resizerProps = function resizerProps(which) {
889
782
  var resizerX = which === 'start' ? x : x + width - EVENT_RESIZER_THUMB_WIDTH;
890
783
  return {
@@ -907,17 +800,14 @@ function TimelineEvent(_ref) {
907
800
  x: resizerX,
908
801
  onDragMove: function onDragMove(e) {
909
802
  if (!onResize) return;
910
-
911
803
  var _e$target$position = e.target.position(),
912
- newX = _e$target$position.x;
913
-
804
+ newX = _e$target$position.x;
914
805
  e.target.x(resizerX);
915
806
  var newPos = Math.floor(interpolate(start, end, x, x + width, newX + (which === 'start' ? 0 : EVENT_RESIZER_THUMB_WIDTH)));
916
807
  onResize(e, which, newPos);
917
808
  }
918
809
  };
919
810
  };
920
-
921
811
  return /*#__PURE__*/jsxs(Fragment, {
922
812
  children: [/*#__PURE__*/jsx(Rect, _objectSpread$6(_objectSpread$6(_objectSpread$6(_objectSpread$6({
923
813
  ref: eventRef,
@@ -931,7 +821,6 @@ function TimelineEvent(_ref) {
931
821
  onDragStart: function onDragStart(e) {
932
822
  if (!onMove) return;
933
823
  setIsMoving(true);
934
-
935
824
  if (onMoveStart) {
936
825
  onMoveStart(e);
937
826
  }
@@ -939,17 +828,14 @@ function TimelineEvent(_ref) {
939
828
  onDragEnd: function onDragEnd(e) {
940
829
  if (!onMove) return;
941
830
  setIsMoving(false);
942
-
943
831
  if (onMoveEnd) {
944
832
  onMoveEnd(e);
945
833
  }
946
834
  },
947
835
  onDragMove: function onDragMove(e) {
948
836
  if (!onMove) return;
949
-
950
837
  var _e$target$position2 = e.target.position(),
951
- newX = _e$target$position2.x;
952
-
838
+ newX = _e$target$position2.x;
953
839
  e.target.x(x);
954
840
  var newStart = Math.floor(interpolate(start, end, x, x + width, newX));
955
841
  onMove(e, newStart);
@@ -964,77 +850,62 @@ TimelineEvent.propTypes = {
964
850
  * Callback to trigger on clicking on timeline event component.
965
851
  */
966
852
  onClick: PropTypes.func,
967
-
968
853
  /**
969
854
  * Callback to trigger on hovering over timeline event component.
970
855
  */
971
856
  onHover: PropTypes.func,
972
-
973
857
  /**
974
858
  * Callback to trigger on moving a timeline event component (when mousedown and dragging).
975
859
  */
976
860
  onMove: PropTypes.func,
977
-
978
861
  /**
979
862
  * Callback to trigger on moving a timeline event component only when mousedown and dragging.
980
863
  */
981
864
  onMoveStart: PropTypes.func,
982
-
983
865
  /**
984
866
  * Callback to trigger on moving a timeline event component only when mouseup and not dragging.
985
867
  */
986
868
  onMoveEnd: PropTypes.func,
987
-
988
869
  /**
989
870
  * Callback to trigger on resizing a timeline event component.
990
871
  */
991
872
  onResize: PropTypes.func,
992
-
993
873
  /**
994
874
  * Callback to trigger on resizing a timeline event component only when mousedown and dragging.
995
875
  */
996
876
  onResizeStart: PropTypes.func,
997
-
998
877
  /**
999
878
  * Callback to trigger on resizing a timeline event component only when mouseup and not dragging.
1000
879
  */
1001
880
  onResizeEnd: PropTypes.func,
1002
-
1003
881
  /**
1004
882
  * Position of event bar in x-axis (px)
1005
883
  */
1006
884
  x: PropTypes.number,
1007
-
1008
885
  /**
1009
886
  * Width of event bar in px
1010
887
  */
1011
888
  width: PropTypes.number,
1012
-
1013
889
  /**
1014
890
  * Position of event bar in y-axis (px)
1015
891
  */
1016
892
  y: PropTypes.number,
1017
-
1018
893
  /**
1019
894
  * Height of event bar in px
1020
895
  */
1021
896
  height: PropTypes.number,
1022
-
1023
897
  /**
1024
898
  * Padding of event bar in px
1025
899
  */
1026
900
  padding: PropTypes.number,
1027
-
1028
901
  /**
1029
902
  * Start of timeline event
1030
903
  */
1031
904
  start: PropTypes.number.isRequired,
1032
-
1033
905
  /**
1034
906
  * End of timeline event
1035
907
  */
1036
908
  end: PropTypes.number.isRequired,
1037
-
1038
909
  /**
1039
910
  * Override styles with className
1040
911
  */
@@ -1058,63 +929,55 @@ TimelineEvent.defaultProps = {
1058
929
  };
1059
930
 
1060
931
  var _excluded$5 = ["className", "children", "perspective", "onClick", "style", "onHover", "StageProps", "LayerProps", "GroupProps", "RectProps"],
1061
- _excluded2$1 = ["isHovering"];
1062
-
932
+ _excluded2$1 = ["isHovering"];
1063
933
  function ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1064
-
1065
934
  function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$5(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1066
935
  function TimelineTrack(_ref) {
1067
936
  var className = _ref.className,
1068
- children = _ref.children,
1069
- propPerspective = _ref.perspective,
1070
- onClick = _ref.onClick,
1071
- style = _ref.style,
1072
- onHover = _ref.onHover,
1073
- StageProps = _ref.StageProps,
1074
- LayerProps = _ref.LayerProps,
1075
- GroupProps = _ref.GroupProps,
1076
- RectProps = _ref.RectProps,
1077
- props = _objectWithoutProperties(_ref, _excluded$5);
1078
-
937
+ children = _ref.children,
938
+ propPerspective = _ref.perspective,
939
+ onClick = _ref.onClick,
940
+ style = _ref.style,
941
+ onHover = _ref.onHover,
942
+ StageProps = _ref.StageProps,
943
+ LayerProps = _ref.LayerProps,
944
+ GroupProps = _ref.GroupProps,
945
+ RectProps = _ref.RectProps,
946
+ props = _objectWithoutProperties(_ref, _excluded$5);
1079
947
  var _ref2 = useTimeline() || {
1080
- perspective: propPerspective
1081
- },
1082
- perspective = _ref2.perspective;
1083
-
948
+ perspective: propPerspective
949
+ },
950
+ perspective = _ref2.perspective;
1084
951
  if (perspective === undefined) {
1085
952
  vLog.error('VdtTimelineTrack', "missing 'perspective' prop. If the component is used outside a VdtTimelineContext, 'perspective' must be passed explicitly");
1086
953
  }
1087
-
1088
954
  var visibleChildren = Children.toArray(children).filter(function (_ref3) {
1089
955
  var _ref3$props = _ref3.props,
1090
- childProps = _ref3$props === void 0 ? {} : _ref3$props;
956
+ childProps = _ref3$props === void 0 ? {} : _ref3$props;
1091
957
  var isOutsidePerspective = childProps.start > perspective.end || childProps.end < perspective.start;
1092
958
  return !isOutsidePerspective;
1093
959
  });
1094
960
  var eventsContainerRef = useRef();
1095
-
1096
961
  var _useResizeObserver = useResizeObserver(eventsContainerRef),
1097
- _useResizeObserver$wi = _useResizeObserver.width,
1098
- eventContainerWidth = _useResizeObserver$wi === void 0 ? 0 : _useResizeObserver$wi,
1099
- _useResizeObserver$he = _useResizeObserver.height,
1100
- eventContainerHeight = _useResizeObserver$he === void 0 ? 0 : _useResizeObserver$he; // expect children to be passed 'y' and 'height' props so that we can calculate the track height
1101
-
962
+ _useResizeObserver$wi = _useResizeObserver.width,
963
+ eventContainerWidth = _useResizeObserver$wi === void 0 ? 0 : _useResizeObserver$wi,
964
+ _useResizeObserver$he = _useResizeObserver.height,
965
+ eventContainerHeight = _useResizeObserver$he === void 0 ? 0 : _useResizeObserver$he;
1102
966
 
967
+ // expect children to be passed 'y' and 'height' props so that we can calculate the track height
1103
968
  var eventsContainerHeight = Math.max.apply(Math, _toConsumableArray(Children.map(children, function (_ref4) {
1104
969
  var _ref4$props = _ref4.props;
1105
970
  _ref4$props = _ref4$props === void 0 ? {} : _ref4$props;
1106
971
  var _ref4$props$y = _ref4$props.y,
1107
- y = _ref4$props$y === void 0 ? 0 : _ref4$props$y,
1108
- _ref4$props$height = _ref4$props.height,
1109
- height = _ref4$props$height === void 0 ? 0 : _ref4$props$height;
972
+ y = _ref4$props$y === void 0 ? 0 : _ref4$props$y,
973
+ _ref4$props$height = _ref4$props.height,
974
+ height = _ref4$props$height === void 0 ? 0 : _ref4$props$height;
1110
975
  return y + height;
1111
976
  }))) || DEFAULT_EVENT_HEIGHT;
1112
-
1113
977
  var cloneChild = function cloneChild(child) {
1114
978
  var _ref5 = child.props || {},
1115
- childStart = _ref5.start,
1116
- childEnd = _ref5.end;
1117
-
979
+ childStart = _ref5.start,
980
+ childEnd = _ref5.end;
1118
981
  var xProps = function () {
1119
982
  if (childStart !== undefined && childEnd !== undefined) {
1120
983
  var childX = interpolate(0, eventContainerWidth, perspective.start, perspective.end, childStart);
@@ -1124,34 +987,27 @@ function TimelineTrack(_ref) {
1124
987
  width: childWidth
1125
988
  };
1126
989
  }
1127
-
1128
990
  return {};
1129
991
  }();
1130
-
1131
992
  return /*#__PURE__*/cloneElement(child, _objectSpread$5(_objectSpread$5({}, child.props), xProps));
1132
993
  };
1133
-
1134
994
  var _useHover = useHover({
1135
- hoverEffect: function hoverEffect(e) {
1136
- if (onHover) onHover(e, true);
1137
- var container = e.target.getStage().container();
1138
-
1139
- if (onClick) {
1140
- container.style.cursor = 'pointer';
1141
- }
1142
-
1143
- return function () {
1144
- if (onHover) onHover(e, false);
1145
-
995
+ hoverEffect: function hoverEffect(e) {
996
+ if (onHover) onHover(e, true);
997
+ var container = e.target.getStage().container();
1146
998
  if (onClick) {
1147
- container.style.cursor = 'default';
999
+ container.style.cursor = 'pointer';
1148
1000
  }
1149
- };
1150
- }
1151
- });
1152
- _useHover.isHovering;
1153
- var hoverProps = _objectWithoutProperties(_useHover, _excluded2$1);
1154
-
1001
+ return function () {
1002
+ if (onHover) onHover(e, false);
1003
+ if (onClick) {
1004
+ container.style.cursor = 'default';
1005
+ }
1006
+ };
1007
+ }
1008
+ });
1009
+ _useHover.isHovering;
1010
+ var hoverProps = _objectWithoutProperties(_useHover, _excluded2$1);
1155
1011
  return /*#__PURE__*/jsx("div", _objectSpread$5(_objectSpread$5({
1156
1012
  ref: eventsContainerRef,
1157
1013
  className: clsx('VdtTimelineTrack-root', className),
@@ -1189,15 +1045,13 @@ TimelineTrack.propTypes = {
1189
1045
  var _child$props = child.props;
1190
1046
  _child$props = _child$props === void 0 ? {} : _child$props;
1191
1047
  var start = _child$props.start,
1192
- end = _child$props.end;
1193
-
1048
+ end = _child$props.end;
1194
1049
  if (start === undefined || end === undefined) {
1195
1050
  err = new Error("children of ".concat(componentName, " must be passed a 'start' and 'end' prop. These props are used to position the child within the track."));
1196
1051
  }
1197
1052
  });
1198
1053
  return err;
1199
1054
  },
1200
-
1201
1055
  /**
1202
1056
  * Start and end of timeline scroll, unzoomed
1203
1057
  */
@@ -1205,42 +1059,34 @@ TimelineTrack.propTypes = {
1205
1059
  start: PropTypes.number,
1206
1060
  end: PropTypes.number
1207
1061
  }),
1208
-
1209
1062
  /**
1210
1063
  * Callback to trigger on timeline track component click.
1211
1064
  */
1212
1065
  onClick: PropTypes.func,
1213
-
1214
1066
  /**
1215
1067
  * Callback to trigger on mouse hover over timeline track component.
1216
1068
  */
1217
1069
  onHover: PropTypes.func,
1218
-
1219
1070
  /**
1220
1071
  * Props for Stage component. For more information: https://konvajs.org/api/Konva.Stage.html
1221
1072
  */
1222
1073
  StageProps: PropTypes.instanceOf(Object),
1223
-
1224
1074
  /**
1225
1075
  * Props for Layer component. For more information: https://konvajs.org/api/Konva.Layer.html
1226
1076
  */
1227
1077
  LayerProps: PropTypes.instanceOf(Object),
1228
-
1229
1078
  /**
1230
1079
  * Props for Group component. For more information: https://konvajs.org/api/Konva.Group.html
1231
1080
  */
1232
1081
  GroupProps: PropTypes.instanceOf(Object),
1233
-
1234
1082
  /**
1235
1083
  * Props for Rect component. For more information: https://konvajs.org/api/Konva.Rect.html
1236
1084
  */
1237
1085
  RectProps: PropTypes.instanceOf(Object),
1238
-
1239
1086
  /**
1240
1087
  * Override styles with className
1241
1088
  */
1242
1089
  className: PropTypes.string,
1243
-
1244
1090
  /**
1245
1091
  * Apply inline CSS styling
1246
1092
  */
@@ -1263,18 +1109,15 @@ var css$3 = ":root {\n --vdt-timeline-palette-primary:#49a6dd;\n --vdt-tim
1263
1109
  n(css$3,{});
1264
1110
 
1265
1111
  var _excluded$4 = ["className", "children", "label", "LabelProps", "LabelTextProps"];
1266
-
1267
1112
  function ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1268
-
1269
1113
  function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$4(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1270
1114
  function TimelineRow(_ref) {
1271
1115
  var className = _ref.className,
1272
- children = _ref.children,
1273
- label = _ref.label,
1274
- LabelProps = _ref.LabelProps,
1275
- LabelTextProps = _ref.LabelTextProps,
1276
- props = _objectWithoutProperties(_ref, _excluded$4);
1277
-
1116
+ children = _ref.children,
1117
+ label = _ref.label,
1118
+ LabelProps = _ref.LabelProps,
1119
+ LabelTextProps = _ref.LabelTextProps,
1120
+ props = _objectWithoutProperties(_ref, _excluded$4);
1278
1121
  return /*#__PURE__*/jsxs("div", _objectSpread$4(_objectSpread$4({
1279
1122
  className: clsx('VdtTimelineRow-root', className, {
1280
1123
  'VdtTimelineRow-hasLabel': !!label
@@ -1296,27 +1139,22 @@ TimelineRow.propTypes = {
1296
1139
  * Children components to render inside row content container.
1297
1140
  */
1298
1141
  children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),
1299
-
1300
1142
  /**
1301
1143
  * Custom row label
1302
1144
  */
1303
1145
  label: PropTypes.node,
1304
-
1305
1146
  /**
1306
1147
  * Props for Layer component. For more information: https://konvajs.org/api/Konva.Label.html
1307
1148
  */
1308
1149
  LabelProps: PropTypes.instanceOf(Object),
1309
-
1310
1150
  /**
1311
1151
  * Props for Layer component. For more information: https://konvajs.org/api/Konva.Label.html
1312
1152
  */
1313
1153
  LabelTextProps: PropTypes.instanceOf(Object),
1314
-
1315
1154
  /**
1316
1155
  * Override styles with className
1317
1156
  */
1318
1157
  className: PropTypes.string,
1319
-
1320
1158
  /**
1321
1159
  * Apply inline CSS styling
1322
1160
  */
@@ -1335,47 +1173,40 @@ var css$2 = "\n.VdtTimelinePlayheadTrack-root {\n height: 40px;\n position
1335
1173
  n(css$2,{});
1336
1174
 
1337
1175
  var _excluded$3 = ["className", "children", "ticks", "onClick", "onHover", "onWheel", "onDrag", "start", "end", "perspective", "timelineRef", "StageProps", "LayerProps", "GroupProps", "RectProps", "TickGroupProps", "TickTextProps", "TickLineProps"],
1338
- _excluded2 = ["isHovering"];
1339
-
1176
+ _excluded2 = ["isHovering"];
1340
1177
  function ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1341
-
1342
1178
  function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$3(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1343
1179
  var LABEL_EDGE_MARGIN = 2;
1344
-
1345
1180
  var _getStyleProperties$1 = getStyleProperties('--vdt-timeline-palette-text-primary', '--vdt-timeline-palette-text-secondary'),
1346
- _getStyleProperties2$1 = _slicedToArray(_getStyleProperties$1, 2),
1347
- paletteTextPrimary = _getStyleProperties2$1[0],
1348
- paletteTextSecondary = _getStyleProperties2$1[1];
1349
-
1181
+ _getStyleProperties2$1 = _slicedToArray(_getStyleProperties$1, 2),
1182
+ paletteTextPrimary = _getStyleProperties2$1[0],
1183
+ paletteTextSecondary = _getStyleProperties2$1[1];
1350
1184
  function TimelineTick(_ref) {
1351
1185
  var x = _ref.x,
1352
- y = _ref.y,
1353
- minX = _ref.minX,
1354
- maxX = _ref.maxX,
1355
- label = _ref.label,
1356
- TickGroupProps = _ref.TickGroupProps,
1357
- TickTextProps = _ref.TickTextProps,
1358
- TickLineProps = _ref.TickLineProps;
1186
+ y = _ref.y,
1187
+ minX = _ref.minX,
1188
+ maxX = _ref.maxX,
1189
+ label = _ref.label,
1190
+ TickGroupProps = _ref.TickGroupProps,
1191
+ TickTextProps = _ref.TickTextProps,
1192
+ TickLineProps = _ref.TickLineProps;
1359
1193
  var hasLabel = label !== undefined;
1360
-
1361
1194
  var _ref2 = hasLabel ? {
1362
- color: paletteTextPrimary,
1363
- tickWidth: 2,
1364
- tickSize: 8
1365
- } : {
1366
- color: paletteTextSecondary,
1367
- tickWidth: 1,
1368
- tickSize: 4
1369
- },
1370
- color = _ref2.color,
1371
- tickWidth = _ref2.tickWidth,
1372
- tickSize = _ref2.tickSize;
1373
-
1195
+ color: paletteTextPrimary,
1196
+ tickWidth: 2,
1197
+ tickSize: 8
1198
+ } : {
1199
+ color: paletteTextSecondary,
1200
+ tickWidth: 1,
1201
+ tickSize: 4
1202
+ },
1203
+ color = _ref2.color,
1204
+ tickWidth = _ref2.tickWidth,
1205
+ tickSize = _ref2.tickSize;
1374
1206
  var _useState = useState(),
1375
- _useState2 = _slicedToArray(_useState, 2),
1376
- labelWidth = _useState2[0],
1377
- setLabelWidth = _useState2[1];
1378
-
1207
+ _useState2 = _slicedToArray(_useState, 2),
1208
+ labelWidth = _useState2[0],
1209
+ setLabelWidth = _useState2[1];
1379
1210
  var textRef = useRef();
1380
1211
  useEffect(function () {
1381
1212
  if (textRef.current) {
@@ -1383,11 +1214,9 @@ function TimelineTick(_ref) {
1383
1214
  }
1384
1215
  }, []);
1385
1216
  var textX = clamp(x - labelWidth / 2, minX + LABEL_EDGE_MARGIN, maxX - labelWidth - LABEL_EDGE_MARGIN) || undefined;
1386
-
1387
1217
  if (x < minX || x > maxX) {
1388
1218
  return null;
1389
1219
  }
1390
-
1391
1220
  return /*#__PURE__*/jsxs(Group, _objectSpread$3(_objectSpread$3({}, TickGroupProps), {}, {
1392
1221
  children: [/*#__PURE__*/jsx(Text, _objectSpread$3({
1393
1222
  ref: textRef,
@@ -1405,10 +1234,9 @@ function TimelineTick(_ref) {
1405
1234
  }, TickLineProps))]
1406
1235
  }));
1407
1236
  }
1408
-
1409
1237
  function defaultTicks(_ref3) {
1410
1238
  var width = _ref3.width,
1411
- perspective = _ref3.perspective;
1239
+ perspective = _ref3.perspective;
1412
1240
  var numTicks = Math.max(Math.floor(width / 90), 2);
1413
1241
  var labeledTicks = uniq(_toConsumableArray(Array(numTicks).keys()).map(function (i) {
1414
1242
  return interpolate(perspective.start, perspective.end, 0, numTicks - 1, i);
@@ -1428,84 +1256,70 @@ function defaultTicks(_ref3) {
1428
1256
  }).flat();
1429
1257
  return sortBy([].concat(_toConsumableArray(labeledTicks), _toConsumableArray(unlabeledTicks)), ['time']);
1430
1258
  }
1431
-
1432
1259
  function TimelinePlayheadTrack(_ref4) {
1433
1260
  var _trackContainerRef$cu, _timelineRef$current;
1434
-
1435
1261
  var className = _ref4.className,
1436
- children = _ref4.children,
1437
- propTicks = _ref4.ticks,
1438
- onClick = _ref4.onClick,
1439
- onHover = _ref4.onHover,
1440
- onWheel = _ref4.onWheel,
1441
- onDrag = _ref4.onDrag,
1442
- propStart = _ref4.start,
1443
- propEnd = _ref4.end,
1444
- propPerspective = _ref4.perspective,
1445
- propTimelineRef = _ref4.timelineRef,
1446
- StageProps = _ref4.StageProps,
1447
- LayerProps = _ref4.LayerProps,
1448
- GroupProps = _ref4.GroupProps,
1449
- RectProps = _ref4.RectProps,
1450
- TickGroupProps = _ref4.TickGroupProps,
1451
- TickTextProps = _ref4.TickTextProps,
1452
- TickLineProps = _ref4.TickLineProps,
1453
- props = _objectWithoutProperties(_ref4, _excluded$3);
1454
-
1262
+ children = _ref4.children,
1263
+ propTicks = _ref4.ticks,
1264
+ onClick = _ref4.onClick,
1265
+ onHover = _ref4.onHover,
1266
+ onWheel = _ref4.onWheel,
1267
+ onDrag = _ref4.onDrag,
1268
+ propStart = _ref4.start,
1269
+ propEnd = _ref4.end,
1270
+ propPerspective = _ref4.perspective,
1271
+ propTimelineRef = _ref4.timelineRef,
1272
+ StageProps = _ref4.StageProps,
1273
+ LayerProps = _ref4.LayerProps,
1274
+ GroupProps = _ref4.GroupProps,
1275
+ RectProps = _ref4.RectProps,
1276
+ TickGroupProps = _ref4.TickGroupProps,
1277
+ TickTextProps = _ref4.TickTextProps,
1278
+ TickLineProps = _ref4.TickLineProps,
1279
+ props = _objectWithoutProperties(_ref4, _excluded$3);
1455
1280
  var _ref5 = useTimeline() || {
1456
- start: propStart,
1457
- end: propEnd,
1458
- perspective: propPerspective,
1459
- timelineRef: propTimelineRef
1460
- },
1461
- start = _ref5.start,
1462
- end = _ref5.end,
1463
- perspective = _ref5.perspective,
1464
- setPerspective = _ref5.setPerspective,
1465
- zoom = _ref5.zoom,
1466
- onChangeTime = _ref5.onChangeTime,
1467
- timelineRef = _ref5.timelineRef;
1468
-
1281
+ start: propStart,
1282
+ end: propEnd,
1283
+ perspective: propPerspective,
1284
+ timelineRef: propTimelineRef
1285
+ },
1286
+ start = _ref5.start,
1287
+ end = _ref5.end,
1288
+ perspective = _ref5.perspective,
1289
+ setPerspective = _ref5.setPerspective,
1290
+ zoom = _ref5.zoom,
1291
+ onChangeTime = _ref5.onChangeTime,
1292
+ timelineRef = _ref5.timelineRef;
1469
1293
  if (start === undefined || end === undefined || perspective === undefined) {
1470
1294
  vLog.error('VdtTimelinePlayheadTrack', "missing 'start', 'end' or 'perspective' props. If the component is used outside a VdtTimelineContext, 'start', 'end' and 'perspective' must be passed explicitly");
1471
1295
  }
1472
-
1473
1296
  if (timelineRef === undefined && (children === null || children === void 0 ? void 0 : children.length) > 0) {
1474
1297
  vLog.warn('VdtTimelinePlayheadTrack', "missing 'timelineRef' prop. This ref is used to set the height of the playhead within the timeline.");
1475
1298
  }
1476
-
1477
1299
  var handleWheel = onWheel || zoom && function (e) {
1478
1300
  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
1479
1301
  args[_key - 1] = arguments[_key];
1480
1302
  }
1481
-
1482
1303
  return zoom.apply(void 0, args);
1483
1304
  };
1484
-
1485
1305
  var handleClick = onClick || onChangeTime && function (e) {
1486
1306
  for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
1487
1307
  args[_key2 - 1] = arguments[_key2];
1488
1308
  }
1489
-
1490
1309
  return onChangeTime.apply(void 0, args);
1491
1310
  };
1492
-
1493
1311
  var handleDrag = onDrag || setPerspective && function (e) {
1494
1312
  for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
1495
1313
  args[_key3 - 1] = arguments[_key3];
1496
1314
  }
1497
-
1498
1315
  return setPerspective.apply(void 0, args);
1499
1316
  };
1500
-
1501
1317
  var trackContainerRef = useRef();
1502
-
1503
1318
  var _useResizeObserver = useResizeObserver(trackContainerRef),
1504
- _useResizeObserver$wi = _useResizeObserver.width,
1505
- width = _useResizeObserver$wi === void 0 ? 0 : _useResizeObserver$wi,
1506
- _useResizeObserver$he = _useResizeObserver.height,
1507
- height = _useResizeObserver$he === void 0 ? 0 : _useResizeObserver$he;
1508
-
1319
+ _useResizeObserver$wi = _useResizeObserver.width,
1320
+ width = _useResizeObserver$wi === void 0 ? 0 : _useResizeObserver$wi,
1321
+ _useResizeObserver$he = _useResizeObserver.height,
1322
+ height = _useResizeObserver$he === void 0 ? 0 : _useResizeObserver$he;
1509
1323
  var getTicks = propTicks || defaultTicks;
1510
1324
  var timeTicks = typeof getTicks === 'function' ? getTicks({
1511
1325
  start: start,
@@ -1515,43 +1329,36 @@ function TimelinePlayheadTrack(_ref4) {
1515
1329
  }) : getTicks;
1516
1330
  var ticks = timeTicks.map(function (_ref6) {
1517
1331
  var label = _ref6.label,
1518
- time = _ref6.time;
1332
+ time = _ref6.time;
1519
1333
  return {
1520
1334
  x: interpolate(0, width, perspective.start, perspective.end, time),
1521
1335
  label: label,
1522
1336
  time: time
1523
1337
  };
1524
1338
  });
1525
-
1526
1339
  var _useResizeObserver2 = useResizeObserver(timelineRef),
1527
- timelineHeight = _useResizeObserver2.height;
1528
-
1340
+ timelineHeight = _useResizeObserver2.height;
1529
1341
  var timelineOffsetTop = ((trackContainerRef === null || trackContainerRef === void 0 ? void 0 : (_trackContainerRef$cu = trackContainerRef.current) === null || _trackContainerRef$cu === void 0 ? void 0 : _trackContainerRef$cu.offsetTop) || 0) - ((timelineRef === null || timelineRef === void 0 ? void 0 : (_timelineRef$current = timelineRef.current) === null || _timelineRef$current === void 0 ? void 0 : _timelineRef$current.offsetTop) || 0);
1530
1342
  var playheadTop = height;
1531
1343
  var playheadHeight = timelineHeight - height - timelineOffsetTop || undefined;
1532
1344
  var trackRectRef = useRef();
1533
-
1534
1345
  var _useHover = useHover({
1535
- hoverEffect: function hoverEffect(e) {
1536
- if (onHover) onHover(e, true);
1537
- var container = e.target.getStage().container();
1538
-
1539
- if (handleClick) {
1540
- container.style.cursor = 'pointer';
1541
- }
1542
-
1543
- return function () {
1544
- if (onHover) onHover(e, false);
1545
-
1346
+ hoverEffect: function hoverEffect(e) {
1347
+ if (onHover) onHover(e, true);
1348
+ var container = e.target.getStage().container();
1546
1349
  if (handleClick) {
1547
- container.style.cursor = 'default';
1350
+ container.style.cursor = 'pointer';
1548
1351
  }
1549
- };
1550
- }
1551
- });
1552
- _useHover.isHovering;
1553
- var hoverProps = _objectWithoutProperties(_useHover, _excluded2);
1554
-
1352
+ return function () {
1353
+ if (onHover) onHover(e, false);
1354
+ if (handleClick) {
1355
+ container.style.cursor = 'default';
1356
+ }
1357
+ };
1358
+ }
1359
+ });
1360
+ _useHover.isHovering;
1361
+ var hoverProps = _objectWithoutProperties(_useHover, _excluded2);
1555
1362
  return /*#__PURE__*/jsxs("div", _objectSpread$3(_objectSpread$3({
1556
1363
  ref: trackContainerRef,
1557
1364
  className: clsx('VdtTimelinePlayheadTrack-root', className)
@@ -1572,16 +1379,14 @@ function TimelinePlayheadTrack(_ref4) {
1572
1379
  onClick: function onClick(e) {
1573
1380
  if (trackRectRef.current && handleClick) {
1574
1381
  var _trackRectRef$current = trackRectRef.current.getRelativePointerPosition(),
1575
- x = _trackRectRef$current.x;
1576
-
1382
+ x = _trackRectRef$current.x;
1577
1383
  handleClick(e, interpolate(perspective.start, perspective.end, 0, width, x));
1578
1384
  }
1579
1385
  },
1580
1386
  onWheel: function onWheel(e) {
1581
1387
  if (trackRectRef.current && handleWheel) {
1582
1388
  var _trackRectRef$current2 = trackRectRef.current.getRelativePointerPosition(),
1583
- x = _trackRectRef$current2.x;
1584
-
1389
+ x = _trackRectRef$current2.x;
1585
1390
  handleWheel(e, e.evt.deltaY < 0 ? 'in' : 'out', interpolate(perspective.start, perspective.end, 0, width, x));
1586
1391
  }
1587
1392
  },
@@ -1620,8 +1425,8 @@ function TimelinePlayheadTrack(_ref4) {
1620
1425
  height: height
1621
1426
  }, RectProps)), ticks.map(function (_ref7) {
1622
1427
  var x = _ref7.x,
1623
- label = _ref7.label,
1624
- time = _ref7.time;
1428
+ label = _ref7.label,
1429
+ time = _ref7.time;
1625
1430
  return /*#__PURE__*/jsx(TimelineTick, {
1626
1431
  minX: 0,
1627
1432
  maxX: width,
@@ -1643,12 +1448,10 @@ TimelinePlayheadTrack.propTypes = {
1643
1448
  * Callback to trigger on clicking on playhead track component.
1644
1449
  */
1645
1450
  onClick: PropTypes.func,
1646
-
1647
1451
  /**
1648
1452
  * Callback to trigger on mouse hover over playhead track component.
1649
1453
  */
1650
1454
  onHover: PropTypes.func,
1651
-
1652
1455
  /**
1653
1456
  * Array of (large) timeline tick objects. Set time and label.
1654
1457
  */
@@ -1656,32 +1459,26 @@ TimelinePlayheadTrack.propTypes = {
1656
1459
  time: PropTypes.number,
1657
1460
  label: PropTypes.string
1658
1461
  })), PropTypes.func]),
1659
-
1660
1462
  /**
1661
1463
  * Callback to trigger on using the mouse wheel.
1662
1464
  */
1663
1465
  onWheel: PropTypes.func,
1664
-
1665
1466
  /**
1666
1467
  * Callback to trigger on dragging playhead track component
1667
1468
  */
1668
1469
  onDrag: PropTypes.func,
1669
-
1670
1470
  /**
1671
1471
  * Children components to render before/above the playhead track, according to top and height props passed to playhead track.
1672
1472
  */
1673
1473
  children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),
1674
-
1675
1474
  /**
1676
1475
  * Start of playhead track.
1677
1476
  */
1678
1477
  start: PropTypes.number,
1679
-
1680
1478
  /**
1681
1479
  * End of playhead track.
1682
1480
  */
1683
1481
  end: PropTypes.number,
1684
-
1685
1482
  /**
1686
1483
  * Zoom level when looking at track.
1687
1484
  */
@@ -1689,54 +1486,44 @@ TimelinePlayheadTrack.propTypes = {
1689
1486
  start: PropTypes.number,
1690
1487
  end: PropTypes.number
1691
1488
  }),
1692
-
1693
1489
  /**
1694
1490
  * Ref object to track timeline events.
1695
1491
  */
1696
1492
  timelineRef: PropTypes.shape({
1697
1493
  current: PropTypes.instanceOf(Element)
1698
1494
  }),
1699
-
1700
1495
  /**
1701
1496
  * Props for Stage component. For more information: https://konvajs.org/api/Konva.Stage.html
1702
1497
  */
1703
1498
  StageProps: PropTypes.instanceOf(Object),
1704
-
1705
1499
  /**
1706
1500
  * Props for Layer component. For more information: https://konvajs.org/api/Konva.Layer.html
1707
1501
  */
1708
1502
  LayerProps: PropTypes.instanceOf(Object),
1709
-
1710
1503
  /**
1711
1504
  * Props for Group component. For more information: https://konvajs.org/api/Konva.Group.html
1712
1505
  */
1713
1506
  GroupProps: PropTypes.instanceOf(Object),
1714
-
1715
1507
  /**
1716
1508
  * Props for React component. For more information: https://konvajs.org/api/Konva.Rect.html
1717
1509
  */
1718
1510
  RectProps: PropTypes.instanceOf(Object),
1719
-
1720
1511
  /**
1721
1512
  * Props for Group component. For more information: https://konvajs.org/api/Konva.Group.html
1722
1513
  */
1723
1514
  TickGroupProps: PropTypes.instanceOf(Object),
1724
-
1725
1515
  /**
1726
1516
  * Props for Group component. For more information: https://konvajs.org/api/Konva.Text.html
1727
1517
  */
1728
1518
  TickTextProps: PropTypes.instanceOf(Object),
1729
-
1730
1519
  /**
1731
1520
  * Props for Group component. For more information: https://konvajs.org/api/Konva.Line.html
1732
1521
  */
1733
1522
  TickLineProps: PropTypes.instanceOf(Object),
1734
-
1735
1523
  /**
1736
1524
  * Override styles with className
1737
1525
  */
1738
1526
  className: PropTypes.string,
1739
-
1740
1527
  /**
1741
1528
  * Apply inline CSS styling
1742
1529
  */
@@ -1765,11 +1552,11 @@ TimelinePlayheadTrack.defaultProps = {
1765
1552
  };
1766
1553
 
1767
1554
  var _excluded$2 = ["index"];
1768
-
1769
1555
  function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1770
-
1771
1556
  function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1772
1557
 
1558
+ // NOTE: options.height default is hardcoded to what is set for DEFAULT_EVENT_HEIGHT
1559
+
1773
1560
  /**
1774
1561
  * Extends events with height and y props to display them if they are overlapping
1775
1562
  * @param {Object[]} events - events to add overlapping info for
@@ -1777,14 +1564,11 @@ function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) {
1777
1564
  * @param {number} options.height=15 - height of events
1778
1565
  * @returns {Array} events with height and y position added
1779
1566
  */
1780
-
1781
1567
  var getStackOverlappingEventProps = function getStackOverlappingEventProps(events) {
1782
1568
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1783
-
1784
1569
  var _ref = options || {},
1785
- _ref$height = _ref.height,
1786
- height = _ref$height === void 0 ? DEFAULT_EVENT_HEIGHT : _ref$height;
1787
-
1570
+ _ref$height = _ref.height,
1571
+ height = _ref$height === void 0 ? DEFAULT_EVENT_HEIGHT : _ref$height;
1788
1572
  var sortedEvents = sortBy(events.map(function (e, index) {
1789
1573
  return _objectSpread$2(_objectSpread$2({}, e), {}, {
1790
1574
  index: index
@@ -1792,39 +1576,32 @@ var getStackOverlappingEventProps = function getStackOverlappingEventProps(event
1792
1576
  }), ['start', 'end']);
1793
1577
  var tracks = [0];
1794
1578
  var eventTracks = [];
1795
-
1796
1579
  var _loop = function _loop(i) {
1797
1580
  var event = sortedEvents[i];
1798
-
1799
1581
  var trackIndex = function () {
1800
1582
  for (var j = 0; j < tracks.length; j += 1) {
1801
1583
  var firstVacantFrame = tracks[j];
1802
-
1803
1584
  if (event.start >= firstVacantFrame) {
1804
1585
  return j;
1805
1586
  }
1806
1587
  }
1807
-
1808
1588
  tracks.push(0);
1809
1589
  return tracks.length - 1;
1810
1590
  }();
1811
-
1812
1591
  tracks[trackIndex] = event.end;
1813
1592
  eventTracks.push(_objectSpread$2(_objectSpread$2({}, event), {}, {
1814
1593
  height: height,
1815
1594
  y: trackIndex * height
1816
1595
  }));
1817
1596
  };
1818
-
1819
1597
  for (var i = 0; i < sortedEvents.length; i += 1) {
1820
1598
  _loop(i);
1821
- } // retain the original order of the events
1822
-
1599
+ }
1823
1600
 
1601
+ // retain the original order of the events
1824
1602
  return sortBy(eventTracks, 'index').map(function (_ref2) {
1825
1603
  _ref2.index;
1826
- var event = _objectWithoutProperties(_ref2, _excluded$2);
1827
-
1604
+ var event = _objectWithoutProperties(_ref2, _excluded$2);
1828
1605
  return event;
1829
1606
  });
1830
1607
  };
@@ -1833,70 +1610,56 @@ var css$1 = ":root {\n --vdt-timeline-palette-primary:#49a6dd;\n --vdt-tim
1833
1610
  n(css$1,{});
1834
1611
 
1835
1612
  var _excluded$1 = ["className", "onScroll", "onClick", "start", "end", "perspective", "style", "StageProps", "LayerProps", "RectProps"];
1836
-
1837
1613
  function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1838
-
1839
1614
  function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1840
-
1841
1615
  var _getStyleProperties = getStyleProperties('--vdt-timeline-palette-secondary'),
1842
- _getStyleProperties2 = _slicedToArray(_getStyleProperties, 1),
1843
- paletteSecondary = _getStyleProperties2[0];
1844
-
1616
+ _getStyleProperties2 = _slicedToArray(_getStyleProperties, 1),
1617
+ paletteSecondary = _getStyleProperties2[0];
1845
1618
  function TimelineScroll(_ref) {
1846
1619
  var className = _ref.className,
1847
- onScroll = _ref.onScroll,
1848
- onClick = _ref.onClick,
1849
- propStart = _ref.start,
1850
- propEnd = _ref.end,
1851
- propPerspective = _ref.perspective,
1852
- style = _ref.style,
1853
- StageProps = _ref.StageProps,
1854
- LayerProps = _ref.LayerProps,
1855
- RectProps = _ref.RectProps,
1856
- props = _objectWithoutProperties(_ref, _excluded$1);
1857
-
1620
+ onScroll = _ref.onScroll,
1621
+ onClick = _ref.onClick,
1622
+ propStart = _ref.start,
1623
+ propEnd = _ref.end,
1624
+ propPerspective = _ref.perspective,
1625
+ style = _ref.style,
1626
+ StageProps = _ref.StageProps,
1627
+ LayerProps = _ref.LayerProps,
1628
+ RectProps = _ref.RectProps,
1629
+ props = _objectWithoutProperties(_ref, _excluded$1);
1858
1630
  var _ref2 = useTimeline() || {
1859
- start: propStart,
1860
- end: propEnd,
1861
- perspective: propPerspective
1862
- },
1863
- start = _ref2.start,
1864
- end = _ref2.end,
1865
- perspective = _ref2.perspective,
1866
- setPerspective = _ref2.setPerspective;
1867
-
1631
+ start: propStart,
1632
+ end: propEnd,
1633
+ perspective: propPerspective
1634
+ },
1635
+ start = _ref2.start,
1636
+ end = _ref2.end,
1637
+ perspective = _ref2.perspective,
1638
+ setPerspective = _ref2.setPerspective;
1868
1639
  if (start === undefined || end === undefined || perspective === undefined) {
1869
1640
  vLog.error('VdtTimelineScroll', "missing 'start', 'end' or 'perspective' props. If the component is used outside a VdtTimelineContext, 'start', 'end' and 'perspective' must be passed explicitly");
1870
1641
  }
1871
-
1872
1642
  var ref = useRef();
1873
-
1874
1643
  var _useResizeObserver = useResizeObserver(ref),
1875
- _useResizeObserver$wi = _useResizeObserver.width,
1876
- scrollTrackWidth = _useResizeObserver$wi === void 0 ? 0 : _useResizeObserver$wi,
1877
- _useResizeObserver$he = _useResizeObserver.height,
1878
- height = _useResizeObserver$he === void 0 ? 0 : _useResizeObserver$he;
1879
-
1644
+ _useResizeObserver$wi = _useResizeObserver.width,
1645
+ scrollTrackWidth = _useResizeObserver$wi === void 0 ? 0 : _useResizeObserver$wi,
1646
+ _useResizeObserver$he = _useResizeObserver.height,
1647
+ height = _useResizeObserver$he === void 0 ? 0 : _useResizeObserver$he;
1880
1648
  var scrollLeft = interpolate(0, scrollTrackWidth, start, end, perspective.start);
1881
1649
  var perspectiveDuration = perspective.end - perspective.start;
1882
1650
  var scrollWidth = interpolate(0, scrollTrackWidth, 0, end - start, perspectiveDuration);
1883
-
1884
1651
  var handleScroll = onScroll || setPerspective && function (e) {
1885
1652
  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
1886
1653
  args[_key - 1] = arguments[_key];
1887
1654
  }
1888
-
1889
1655
  return setPerspective.apply(void 0, args);
1890
1656
  };
1891
-
1892
1657
  var handleClick = onClick || setPerspective && function (e) {
1893
1658
  for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
1894
1659
  args[_key2 - 1] = arguments[_key2];
1895
1660
  }
1896
-
1897
1661
  return setPerspective.apply(void 0, args);
1898
1662
  };
1899
-
1900
1663
  var isZoomed = start !== perspective.start || end !== perspective.end;
1901
1664
  return /*#__PURE__*/jsx("div", _objectSpread$1(_objectSpread$1({
1902
1665
  className: clsx('VdtTimelineScroll-root', className),
@@ -1911,18 +1674,14 @@ function TimelineScroll(_ref) {
1911
1674
  width: scrollTrackWidth,
1912
1675
  onClick: function onClick(e) {
1913
1676
  if (!handleClick) return;
1914
-
1915
1677
  var _e$currentTarget$getR = e.currentTarget.getRelativePointerPosition(),
1916
- x = _e$currentTarget$getR.x;
1917
-
1678
+ x = _e$currentTarget$getR.x;
1918
1679
  var newStart;
1919
-
1920
1680
  if (x > scrollLeft + scrollWidth) {
1921
1681
  newStart = Math.floor(interpolate(start, end, 0, scrollTrackWidth, x - scrollWidth));
1922
1682
  } else if (x < scrollLeft) {
1923
1683
  newStart = Math.floor(interpolate(start, end, 0, scrollTrackWidth, x));
1924
1684
  }
1925
-
1926
1685
  if (newStart !== undefined && newStart !== perspective.start) {
1927
1686
  handleClick(e, newStart, newStart + perspectiveDuration);
1928
1687
  }
@@ -1944,10 +1703,8 @@ function TimelineScroll(_ref) {
1944
1703
  },
1945
1704
  onDragMove: function onDragMove(e) {
1946
1705
  if (!handleScroll) return;
1947
-
1948
1706
  var _e$target$position = e.target.position(),
1949
- x = _e$target$position.x;
1950
-
1707
+ x = _e$target$position.x;
1951
1708
  e.target.x(scrollLeft);
1952
1709
  var newStart = Math.floor(interpolate(start, end, 0, scrollTrackWidth, x));
1953
1710
  handleScroll(e, newStart, newStart + perspectiveDuration);
@@ -1962,22 +1719,18 @@ TimelineScroll.propTypes = {
1962
1719
  * Callback to trigger on timeline component scroll.
1963
1720
  */
1964
1721
  onScroll: PropTypes.func,
1965
-
1966
1722
  /**
1967
1723
  * Callback to trigger on timeline component click.
1968
1724
  */
1969
1725
  onClick: PropTypes.func,
1970
-
1971
1726
  /**
1972
1727
  * Start time of timeline scroll.
1973
1728
  */
1974
1729
  start: PropTypes.number,
1975
-
1976
1730
  /**
1977
1731
  * End time of timeline scroll
1978
1732
  */
1979
1733
  end: PropTypes.number,
1980
-
1981
1734
  /**
1982
1735
  * Zoom level of timeline scroll.
1983
1736
  */
@@ -1985,27 +1738,22 @@ TimelineScroll.propTypes = {
1985
1738
  start: PropTypes.number,
1986
1739
  end: PropTypes.number
1987
1740
  }),
1988
-
1989
1741
  /**
1990
1742
  * Apply inline CSS styling
1991
1743
  */
1992
1744
  style: PropTypes.instanceOf(Object),
1993
-
1994
1745
  /**
1995
1746
  * Props for Stage component. For more information: https://konvajs.org/api/Konva.Stage.html
1996
1747
  */
1997
1748
  StageProps: PropTypes.instanceOf(Object),
1998
-
1999
1749
  /**
2000
1750
  * Props for Stage component. For more information: https://konvajs.org/api/Konva.Layer.html
2001
1751
  */
2002
1752
  LayerProps: PropTypes.instanceOf(Object),
2003
-
2004
1753
  /**
2005
1754
  * Props for Stage component. For more information: https://konvajs.org/api/Konva.Rect.html
2006
1755
  */
2007
1756
  RectProps: PropTypes.instanceOf(Object),
2008
-
2009
1757
  /**
2010
1758
  * Override styles with className
2011
1759
  */
@@ -2028,31 +1776,25 @@ var css = "\n\n.VdtTimelineScrollContainer-timelineRow > :not(.VdtTimelineRow-la
2028
1776
  n(css,{});
2029
1777
 
2030
1778
  var _excluded = ["className", "children", "getScrollDistance", "RowProps", "ScrollProps"];
2031
-
2032
1779
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2033
-
2034
1780
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
2035
-
2036
1781
  function defaultGetScrollDistance(e, _ref) {
2037
1782
  var start = _ref.start,
2038
- end = _ref.end;
1783
+ end = _ref.end;
2039
1784
  return Math.floor(0.02 * (start - end));
2040
1785
  }
2041
-
2042
1786
  function TimelineScrollContainer(_ref2) {
2043
1787
  var className = _ref2.className,
2044
- children = _ref2.children,
2045
- getScrollDistance = _ref2.getScrollDistance,
2046
- RowProps = _ref2.RowProps,
2047
- ScrollProps = _ref2.ScrollProps,
2048
- props = _objectWithoutProperties(_ref2, _excluded);
2049
-
1788
+ children = _ref2.children,
1789
+ getScrollDistance = _ref2.getScrollDistance,
1790
+ RowProps = _ref2.RowProps,
1791
+ ScrollProps = _ref2.ScrollProps,
1792
+ props = _objectWithoutProperties(_ref2, _excluded);
2050
1793
  var _useTimeline = useTimeline(),
2051
- start = _useTimeline.start,
2052
- end = _useTimeline.end,
2053
- perspective = _useTimeline.perspective,
2054
- setPerspective = _useTimeline.setPerspective;
2055
-
1794
+ start = _useTimeline.start,
1795
+ end = _useTimeline.end,
1796
+ perspective = _useTimeline.perspective,
1797
+ setPerspective = _useTimeline.setPerspective;
2056
1798
  return /*#__PURE__*/jsxs("div", _objectSpread(_objectSpread({
2057
1799
  className: clsx('VdtTimelineScrollContainer-root', className),
2058
1800
  onWheel: function onWheel(e) {
@@ -2065,7 +1807,6 @@ function TimelineScrollContainer(_ref2) {
2065
1807
  var newPerspectiveStart = perspective.start + (e.deltaY > 0 ? -delta : delta);
2066
1808
  var perspectiveDuration = perspective.end - perspective.start;
2067
1809
  var newPerspectiveEnd = newPerspectiveStart + perspectiveDuration;
2068
-
2069
1810
  if (newPerspectiveEnd > end) {
2070
1811
  setPerspective(end - perspectiveDuration, end);
2071
1812
  } else if (newPerspectiveStart < start) {
@@ -2088,22 +1829,18 @@ TimelineScrollContainer.propTypes = {
2088
1829
  * Override styles with className
2089
1830
  */
2090
1831
  className: PropTypes.string,
2091
-
2092
1832
  /**
2093
1833
  * Children components to render
2094
1834
  */
2095
1835
  children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),
2096
-
2097
1836
  /**
2098
1837
  * Get distance of scrolling
2099
1838
  */
2100
1839
  getScrollDistance: PropTypes.func,
2101
-
2102
1840
  /**
2103
1841
  * Additional props for row component
2104
1842
  */
2105
1843
  RowProps: PropTypes.instanceOf(Object),
2106
-
2107
1844
  /**
2108
1845
  * Additional props for scroll component
2109
1846
  */