@evercam/ui 0.0.54 → 0.0.55-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -2112,10 +2112,10 @@ var Ji = {}, Zr = {}, ei = {};
2112
2112
  value: !0
2113
2113
  });
2114
2114
  function e(F, V) {
2115
- for (var G in V)
2116
- Object.defineProperty(F, G, {
2115
+ for (var H in V)
2116
+ Object.defineProperty(F, H, {
2117
2117
  enumerable: !0,
2118
- get: V[G]
2118
+ get: V[H]
2119
2119
  });
2120
2120
  }
2121
2121
  e(s, {
@@ -2177,12 +2177,12 @@ var Ji = {}, Zr = {}, ei = {};
2177
2177
  }
2178
2178
  const o = "--tw-placeholder", l = new RegExp(o, "g");
2179
2179
  function c(F, V = !0) {
2180
- return F.startsWith("--") ? `var(${F})` : F.includes("url(") ? F.split(/(url\(.*?\))/g).filter(Boolean).map((G) => /^url\(.*?\)$/.test(G) ? G : c(G, !1)).join("") : (F = F.replace(/([^\\])_+/g, (G, M) => M + " ".repeat(G.length - 1)).replace(/^_/g, " ").replace(/\\_/g, "_"), V && (F = F.trim()), F = u(F), F);
2180
+ return F.startsWith("--") ? `var(${F})` : F.includes("url(") ? F.split(/(url\(.*?\))/g).filter(Boolean).map((H) => /^url\(.*?\)$/.test(H) ? H : c(H, !1)).join("") : (F = F.replace(/([^\\])_+/g, (H, M) => M + " ".repeat(H.length - 1)).replace(/^_/g, " ").replace(/\\_/g, "_"), V && (F = F.trim()), F = u(F), F);
2181
2181
  }
2182
2182
  function u(F) {
2183
2183
  return F.replace(/(calc|min|max|clamp)\(.+\)/g, (V) => {
2184
- let G = [];
2185
- return V.replace(/var\((--.+?)[,)]/g, (M, Q) => (G.push(Q), M.replace(Q, o))).replace(/(-?\d*\.?\d(?!\b-\d.+[,)](?![^+\-/*])\D)(?:%|[a-z]+)?|\))([+\-/*])/g, "$1 $2 ").replace(l, () => G.shift());
2184
+ let H = [];
2185
+ return V.replace(/var\((--.+?)[,)]/g, (M, Q) => (H.push(Q), M.replace(Q, o))).replace(/(-?\d*\.?\d(?!\b-\d.+[,)](?![^+\-/*])\D)(?:%|[a-z]+)?|\))([+\-/*])/g, "$1 $2 ").replace(l, () => H.shift());
2186
2186
  });
2187
2187
  }
2188
2188
  function h(F) {
@@ -2240,8 +2240,8 @@ var Ji = {}, Zr = {}, ei = {};
2240
2240
  }
2241
2241
  function x(F) {
2242
2242
  let V = (0, i.parseBoxShadowValue)(c(F));
2243
- for (let G of V)
2244
- if (!G.valid)
2243
+ for (let H of V)
2244
+ if (!H.valid)
2245
2245
  return !1;
2246
2246
  return !0;
2247
2247
  }
@@ -2454,8 +2454,8 @@ var Qr = {};
2454
2454
  }
2455
2455
  let [$, O] = m(C);
2456
2456
  if (O !== void 0) {
2457
- var U, F, V, G;
2458
- let M = (G = (U = b.values) === null || U === void 0 ? void 0 : U[$]) !== null && G !== void 0 ? G : f($) ? $.slice(1, -1) : void 0;
2457
+ var U, F, V, H;
2458
+ let M = (H = (U = b.values) === null || U === void 0 ? void 0 : U[$]) !== null && H !== void 0 ? H : f($) ? $.slice(1, -1) : void 0;
2459
2459
  return M === void 0 ? void 0 : (M = g(M), f(O) ? (0, i.withAlphaValue)(M, y(O)) : ((F = D.theme) === null || F === void 0 || (V = F.opacity) === null || V === void 0 ? void 0 : V[O]) === void 0 ? void 0 : (0, i.withAlphaValue)(M, D.theme.opacity[O]));
2460
2460
  }
2461
2461
  return d(C, b, {
@@ -2534,16 +2534,16 @@ var Qr = {};
2534
2534
  let I = (0, o.flagEnabled)(P, "generalizedModifiers"), [$, O] = m(b);
2535
2535
  if (I && D.modifiers != null && (D.modifiers === "any" || typeof D.modifiers == "object" && (O && f(O) || O in D.modifiers)) || ($ = b, O = void 0), O !== void 0 && $ === "" && ($ = "DEFAULT"), O !== void 0 && typeof D.modifiers == "object") {
2536
2536
  var F, V;
2537
- let G = (V = (F = D.modifiers) === null || F === void 0 ? void 0 : F[O]) !== null && V !== void 0 ? V : null;
2538
- G !== null ? O = G : f(O) && (O = y(O));
2537
+ let H = (V = (F = D.modifiers) === null || F === void 0 ? void 0 : F[O]) !== null && V !== void 0 ? V : null;
2538
+ H !== null ? O = H : f(O) && (O = y(O));
2539
2539
  }
2540
- for (let { type: G } of C != null ? C : []) {
2541
- let M = L[G]($, D, {
2540
+ for (let { type: H } of C != null ? C : []) {
2541
+ let M = L[H]($, D, {
2542
2542
  tailwindConfig: P
2543
2543
  });
2544
2544
  M !== void 0 && (yield [
2545
2545
  M,
2546
- G,
2546
+ H,
2547
2547
  O != null ? O : null
2548
2548
  ]);
2549
2549
  }
@@ -2662,8 +2662,8 @@ var Jr = {};
2662
2662
  V = V[U[F++]], V = m(V) && (U.alpha === void 0 || F <= U.length - 1) ? V(I, y) : V;
2663
2663
  if (V !== void 0) {
2664
2664
  if (U.alpha !== void 0) {
2665
- let G = (0, u.parseColorFormat)(V);
2666
- return (0, h.withAlphaValue)(G, U.alpha, (0, d.default)(G));
2665
+ let H = (0, u.parseColorFormat)(V);
2666
+ return (0, h.withAlphaValue)(H, U.alpha, (0, d.default)(H));
2667
2667
  }
2668
2668
  return (0, l.default)(V) ? (0, c.cloneDeep)(V) : V;
2669
2669
  }
@@ -5430,14 +5430,14 @@ function As(s, e) {
5430
5430
  let O = 0;
5431
5431
  const U = (b & 512) !== 0;
5432
5432
  let F = 0;
5433
- const V = (b & 1024) !== 0, G = (b & 2048) !== 0;
5433
+ const V = (b & 1024) !== 0, H = (b & 2048) !== 0;
5434
5434
  let M = 0;
5435
5435
  const Q = z(B, 4);
5436
5436
  let Z = 8;
5437
5437
  D && (P = z(B, Z), Z += 4), I && (Z += 4);
5438
5438
  let ee = P + c;
5439
5439
  for (let ae = 0; ae < Q; ae++) {
5440
- if ($ ? (O = z(B, Z), Z += 4) : O = x, U ? (F = z(B, Z), Z += 4) : F = E, V && (Z += 4), G && (C === 0 ? M = z(B, Z) : M = mn(B, Z), Z += 4), e.type === te.VIDEO) {
5440
+ if ($ ? (O = z(B, Z), Z += 4) : O = x, U ? (F = z(B, Z), Z += 4) : F = E, V && (Z += 4), H && (C === 0 ? M = z(B, Z) : M = mn(B, Z), Z += 4), e.type === te.VIDEO) {
5441
5441
  let ce = 0;
5442
5442
  for (; ce < F; ) {
5443
5443
  const fe = z(i, ee);
@@ -8409,11 +8409,11 @@ class kl {
8409
8409
  const O = this.codecTiers || (this.codecTiers = _l(m, b, t, i)), U = Cl(O, k, e, B, C), {
8410
8410
  codecSet: F,
8411
8411
  videoRanges: V,
8412
- minFramerate: G,
8412
+ minFramerate: H,
8413
8413
  minBitrate: M,
8414
8414
  preferHDR: Q
8415
8415
  } = U;
8416
- E = F, k = Q ? V[V.length - 1] : V[0], R = G, e = Math.max(e, M), S.log(`[abr] picked start tier ${JSON.stringify(U)}`);
8416
+ E = F, k = Q ? V[V.length - 1] : V[0], R = H, e = Math.max(e, M), S.log(`[abr] picked start tier ${JSON.stringify(U)}`);
8417
8417
  } else
8418
8418
  E = T == null ? void 0 : T.codecSet, k = T == null ? void 0 : T.videoRange;
8419
8419
  const D = f ? f.duration : d ? d.duration : 0, P = this.bwEstimator.getEstimateTTFB() / 1e3, I = [];
@@ -8436,10 +8436,10 @@ class kl {
8436
8436
  I.push(O);
8437
8437
  continue;
8438
8438
  }
8439
- const V = U.details, G = (f ? V == null ? void 0 : V.partTarget : V == null ? void 0 : V.averagetargetduration) || D;
8439
+ const V = U.details, H = (f ? V == null ? void 0 : V.partTarget : V == null ? void 0 : V.averagetargetduration) || D;
8440
8440
  let M;
8441
8441
  F ? M = o * e : M = a * e;
8442
- const Q = D && r >= D * 2 && n === 0 ? m[O].averageBitrate : m[O].maxBitrate, Z = this.getTimeToLoadFrag(P, M, Q * G, V === void 0);
8442
+ const Q = D && r >= D * 2 && n === 0 ? m[O].averageBitrate : m[O].maxBitrate, Z = this.getTimeToLoadFrag(P, M, Q * H, V === void 0);
8443
8443
  if (
8444
8444
  // if adjusted bw is greater than level bitrate AND
8445
8445
  M >= Q && // no level change, or new level has no error history
@@ -8449,7 +8449,7 @@ class kl {
8449
8449
  (Z <= P || !W(Z) || x && !this.bitrateTestDelay || Z < c)
8450
8450
  ) {
8451
8451
  const ae = this.forcedAutoLevel;
8452
- return O !== y && (ae === -1 || ae !== y) && (I.length && S.trace(`[abr] Skipped level(s) ${I.join(",")} of ${i} max with CODECS and VIDEO-RANGE:"${m[I[0]].codecs}" ${m[I[0]].videoRange}; not compatible with "${T.codecs}" ${k}`), S.info(`[abr] switch candidate:${h}->${O} adjustedbw(${Math.round(M)})-bitrate=${Math.round(M - Q)} ttfb:${P.toFixed(1)} avgDuration:${G.toFixed(1)} maxFetchDuration:${c.toFixed(1)} fetchDuration:${Z.toFixed(1)} firstSelection:${L} codecSet:${E} videoRange:${k} hls.loadLevel:${y}`)), L && (this.firstSelection = O), O;
8452
+ return O !== y && (ae === -1 || ae !== y) && (I.length && S.trace(`[abr] Skipped level(s) ${I.join(",")} of ${i} max with CODECS and VIDEO-RANGE:"${m[I[0]].codecs}" ${m[I[0]].videoRange}; not compatible with "${T.codecs}" ${k}`), S.info(`[abr] switch candidate:${h}->${O} adjustedbw(${Math.round(M)})-bitrate=${Math.round(M - Q)} ttfb:${P.toFixed(1)} avgDuration:${H.toFixed(1)} maxFetchDuration:${c.toFixed(1)} fetchDuration:${Z.toFixed(1)} firstSelection:${L} codecSet:${E} videoRange:${k} hls.loadLevel:${y}`)), L && (this.firstSelection = O), O;
8453
8453
  }
8454
8454
  }
8455
8455
  return -1;
@@ -12642,36 +12642,36 @@ class Mt {
12642
12642
  const n = e.inputTimeScale, a = e.samples, o = [], l = a.length, c = this._initPTS;
12643
12643
  let u = this.nextAvcDts, h = 8, d = this.videoSampleDuration, f, m, g = Number.POSITIVE_INFINITY, y = Number.NEGATIVE_INFINITY, v = !1;
12644
12644
  if (!i || u === null) {
12645
- const G = t * n, M = a[0].pts - Se(a[0].dts, a[0].pts);
12646
- st && u !== null && Math.abs(G - M - u) < 15e3 ? i = !0 : u = G - M;
12645
+ const H = t * n, M = a[0].pts - Se(a[0].dts, a[0].pts);
12646
+ st && u !== null && Math.abs(H - M - u) < 15e3 ? i = !0 : u = H - M;
12647
12647
  }
12648
12648
  const T = c.baseTime * n / c.timescale;
12649
- for (let G = 0; G < l; G++) {
12650
- const M = a[G];
12651
- M.pts = Se(M.pts - T, u), M.dts = Se(M.dts - T, u), M.dts < a[G > 0 ? G - 1 : G].dts && (v = !0);
12649
+ for (let H = 0; H < l; H++) {
12650
+ const M = a[H];
12651
+ M.pts = Se(M.pts - T, u), M.dts = Se(M.dts - T, u), M.dts < a[H > 0 ? H - 1 : H].dts && (v = !0);
12652
12652
  }
12653
- v && a.sort(function(G, M) {
12654
- const Q = G.dts - M.dts, Z = G.pts - M.pts;
12653
+ v && a.sort(function(H, M) {
12654
+ const Q = H.dts - M.dts, Z = H.pts - M.pts;
12655
12655
  return Q || Z;
12656
12656
  }), f = a[0].dts, m = a[a.length - 1].dts;
12657
12657
  const x = m - f, L = x ? Math.round(x / (l - 1)) : d || e.inputTimeScale / 30;
12658
12658
  if (i) {
12659
- const G = f - u, M = G > L, Q = G < -1;
12660
- if ((M || Q) && (M ? S.warn(`AVC: ${mt(G, !0)} ms (${G}dts) hole between fragments detected at ${t.toFixed(3)}`) : S.warn(`AVC: ${mt(-G, !0)} ms (${G}dts) overlapping between fragments detected at ${t.toFixed(3)}`), !Q || u >= a[0].pts || st)) {
12659
+ const H = f - u, M = H > L, Q = H < -1;
12660
+ if ((M || Q) && (M ? S.warn(`AVC: ${mt(H, !0)} ms (${H}dts) hole between fragments detected at ${t.toFixed(3)}`) : S.warn(`AVC: ${mt(-H, !0)} ms (${H}dts) overlapping between fragments detected at ${t.toFixed(3)}`), !Q || u >= a[0].pts || st)) {
12661
12661
  f = u;
12662
- const Z = a[0].pts - G;
12662
+ const Z = a[0].pts - H;
12663
12663
  if (M)
12664
12664
  a[0].dts = f, a[0].pts = Z;
12665
12665
  else
12666
12666
  for (let ee = 0; ee < a.length && !(a[ee].dts > Z); ee++)
12667
- a[ee].dts -= G, a[ee].pts -= G;
12668
- S.log(`Video: Initial PTS/DTS adjusted: ${mt(Z, !0)}/${mt(f, !0)}, delta: ${mt(G, !0)} ms`);
12667
+ a[ee].dts -= H, a[ee].pts -= H;
12668
+ S.log(`Video: Initial PTS/DTS adjusted: ${mt(Z, !0)}/${mt(f, !0)}, delta: ${mt(H, !0)} ms`);
12669
12669
  }
12670
12670
  }
12671
12671
  f = Math.max(0, f);
12672
12672
  let E = 0, k = 0, R = f;
12673
- for (let G = 0; G < l; G++) {
12674
- const M = a[G], Q = M.units, Z = Q.length;
12673
+ for (let H = 0; H < l; H++) {
12674
+ const M = a[H], Q = M.units, Z = Q.length;
12675
12675
  let ee = 0;
12676
12676
  for (let ae = 0; ae < Z; ae++)
12677
12677
  ee += Q[ae].data.length;
@@ -12682,12 +12682,12 @@ class Mt {
12682
12682
  let C;
12683
12683
  try {
12684
12684
  C = new Uint8Array(B);
12685
- } catch (G) {
12685
+ } catch (H) {
12686
12686
  this.observer.emit(p.ERROR, p.ERROR, {
12687
12687
  type: q.MUX_ERROR,
12688
12688
  details: _.REMUX_ALLOC_ERROR,
12689
12689
  fatal: !1,
12690
- error: G,
12690
+ error: H,
12691
12691
  bytes: B,
12692
12692
  reason: `fail allocating video mdat ${B}`
12693
12693
  });
@@ -12696,19 +12696,19 @@ class Mt {
12696
12696
  const b = new DataView(C.buffer);
12697
12697
  b.setUint32(0, B), C.set(A.types.mdat, 4);
12698
12698
  let D = !1, P = Number.POSITIVE_INFINITY, I = Number.POSITIVE_INFINITY, $ = Number.NEGATIVE_INFINITY, O = Number.NEGATIVE_INFINITY;
12699
- for (let G = 0; G < l; G++) {
12700
- const M = a[G], Q = M.units;
12699
+ for (let H = 0; H < l; H++) {
12700
+ const M = a[H], Q = M.units;
12701
12701
  let Z = 0;
12702
12702
  for (let ce = 0, fe = Q.length; ce < fe; ce++) {
12703
12703
  const Te = Q[ce], ft = Te.data, si = Te.data.byteLength;
12704
12704
  b.setUint32(h, si), h += 4, C.set(ft, h), h += si, Z += 4 + si;
12705
12705
  }
12706
12706
  let ee;
12707
- if (G < l - 1)
12708
- d = a[G + 1].dts - M.dts, ee = a[G + 1].pts - M.pts;
12707
+ if (H < l - 1)
12708
+ d = a[H + 1].dts - M.dts, ee = a[H + 1].pts - M.pts;
12709
12709
  else {
12710
- const ce = this.config, fe = G > 0 ? M.dts - a[G - 1].dts : L;
12711
- if (ee = G > 0 ? M.pts - a[G - 1].pts : L, ce.stretchShortVideoTrack && this.nextAudioPts !== null) {
12710
+ const ce = this.config, fe = H > 0 ? M.dts - a[H - 1].dts : L;
12711
+ if (ee = H > 0 ? M.pts - a[H - 1].pts : L, ce.stretchShortVideoTrack && this.nextAudioPts !== null) {
12712
12712
  const Te = Math.floor(ce.maxBufferHole * n), ft = (r ? g + r * n : this.nextAudioPts) - M.pts;
12713
12713
  ft > Te ? (d = ft - fe, d < 0 ? d = fe : D = !0, S.log(`[mp4-remuxer]: It is approximately ${ft / 90} ms to the next segment; using duration ${d / 90} ms for the last video frame.`)) : d = fe;
12714
12714
  } else
@@ -12720,20 +12720,20 @@ class Mt {
12720
12720
  if (o.length) {
12721
12721
  if (st) {
12722
12722
  if (st < 70) {
12723
- const G = o[0].flags;
12724
- G.dependsOn = 2, G.isNonSync = 0;
12723
+ const H = o[0].flags;
12724
+ H.dependsOn = 2, H.isNonSync = 0;
12725
12725
  }
12726
12726
  } else if (yi && O - I < $ - P && L / $ < 0.025 && o[0].cts === 0) {
12727
12727
  S.warn("Found irregular gaps in sample duration. Using PTS instead of DTS to determine MP4 sample duration.");
12728
- let G = f;
12728
+ let H = f;
12729
12729
  for (let M = 0, Q = o.length; M < Q; M++) {
12730
- const Z = G + o[M].duration, ee = G + o[M].cts;
12730
+ const Z = H + o[M].duration, ee = H + o[M].cts;
12731
12731
  if (M < Q - 1) {
12732
12732
  const ae = Z + o[M + 1].cts;
12733
12733
  o[M].duration = ae - ee;
12734
12734
  } else
12735
12735
  o[M].duration = M ? o[M - 1].duration : L;
12736
- o[M].cts = 0, G = Z;
12736
+ o[M].cts = 0, H = Z;
12737
12737
  }
12738
12738
  }
12739
12739
  }
@@ -12779,7 +12779,7 @@ class Mt {
12779
12779
  if (e.segmentCodec === "aac") {
12780
12780
  const U = this.config.maxAudioFramesDrift;
12781
12781
  for (let F = 0, V = v; F < g.length; F++) {
12782
- const G = g[F], M = G.pts, Q = M - V, Z = Math.abs(1e3 * Q / a);
12782
+ const H = g[F], M = H.pts, Q = M - V, Z = Math.abs(1e3 * Q / a);
12783
12783
  if (Q <= -U * u && m)
12784
12784
  F === 0 && (S.warn(`Audio frame @ ${(M / a).toFixed(3)}s overlaps nextAudioPts by ${Math.round(1e3 * Q / a)} ms.`), this.nextAudioPts = v = V = M);
12785
12785
  else if (Q >= U * u && Z < Tc && m) {
@@ -12788,20 +12788,20 @@ class Mt {
12788
12788
  for (let ae = 0; ae < ee; ae++) {
12789
12789
  const ce = Math.max(V, 0);
12790
12790
  let fe = Qs.getSilentFrame(e.manifestCodec || e.codec, e.channelCount);
12791
- fe || (S.log("[mp4-remuxer]: Unable to get silent frame for given audio codec; duplicating last frame instead."), fe = G.unit.subarray()), g.splice(F, 0, {
12791
+ fe || (S.log("[mp4-remuxer]: Unable to get silent frame for given audio codec; duplicating last frame instead."), fe = H.unit.subarray()), g.splice(F, 0, {
12792
12792
  unit: fe,
12793
12793
  pts: ce
12794
12794
  }), V += u, F++;
12795
12795
  }
12796
12796
  }
12797
- G.pts = V, V += u;
12797
+ H.pts = V, V += u;
12798
12798
  }
12799
12799
  }
12800
12800
  let L = null, E = null, k, R = 0, B = g.length;
12801
12801
  for (; B--; )
12802
12802
  R += g[B].unit.byteLength;
12803
12803
  for (let U = 0, F = g.length; U < F; U++) {
12804
- const V = g[U], G = V.unit;
12804
+ const V = g[U], H = V.unit;
12805
12805
  let M = V.pts;
12806
12806
  if (E !== null) {
12807
12807
  const Z = f[U - 1];
@@ -12824,8 +12824,8 @@ class Mt {
12824
12824
  d || (new DataView(k.buffer).setUint32(0, R), k.set(A.types.mdat, 4));
12825
12825
  } else
12826
12826
  return;
12827
- k.set(G, y);
12828
- const Q = G.byteLength;
12827
+ k.set(H, y);
12828
+ const Q = H.byteLength;
12829
12829
  y += Q, f.push(new er(!0, c, Q, 0)), E = M;
12830
12830
  }
12831
12831
  const C = f.length;
@@ -21268,7 +21268,10 @@ const Ci = new Intl.NumberFormat(void 0, {
21268
21268
  });
21269
21269
  },
21270
21270
  bindVideoEvent(s) {
21271
- const e = this.$refs.player, t = this.$refs.timelineContainer;
21271
+ const e = this.$refs.player;
21272
+ if (!e)
21273
+ return;
21274
+ const t = this.$refs.timelineContainer;
21272
21275
  s === "loadeddata" && (this.videoLength = Di(e.duration)), s === "timeupdate" && (this.percentagePlayed = (e == null ? void 0 : e.currentTime) / e.duration * 100, t.style.setProperty(
21273
21276
  "--progress-position",
21274
21277
  this.percentagePlayed.toString()
@@ -21455,7 +21458,7 @@ var Th = function() {
21455
21458
  Eh,
21456
21459
  !1,
21457
21460
  null,
21458
- "160e835f",
21461
+ "9071f674",
21459
21462
  null,
21460
21463
  null
21461
21464
  );
@@ -21910,12 +21913,18 @@ const Ah = {
21910
21913
  }
21911
21914
  ], Ye = {
21912
21915
  milestone: "e-tl-milestone",
21916
+ milestoneBullet: "e-tl-milestone--bullet",
21917
+ milestoneDot: "e-tl-milestone--dot",
21913
21918
  milestoneContent: "e-tl-milestone-content",
21914
21919
  milestoneLine: "e-tl-milestone-line",
21915
21920
  milestonesContainer: "e-tl-milestones",
21916
21921
  milestoneHovered: "e-tl-milestone--hovered",
21917
21922
  milestoneSelected: "e-tl-milestone--selected",
21918
- milestoneLabel: "e-tl-milestone-label"
21923
+ milestoneLabel: "e-tl-milestone-label",
21924
+ milestoneDotContainer: "e-tl-milestone-dot-container",
21925
+ milestoneDotLine: "e-tl-milestone-dot-line",
21926
+ milestoneDotDot: "e-tl-milestone-dot-dot",
21927
+ milestoneDotHovered: "e-tl-milestone-dot--hovered"
21919
21928
  }, Rh = He.extend({
21920
21929
  name: "ETimeline",
21921
21930
  directives: {
@@ -21945,39 +21954,119 @@ const Ah = {
21945
21954
  transitionDuration: {
21946
21955
  type: Number,
21947
21956
  default: 500
21957
+ },
21958
+ dot: {
21959
+ type: Boolean,
21960
+ default: !1
21961
+ },
21962
+ dotSize: {
21963
+ type: Number,
21964
+ default: 6
21965
+ },
21966
+ lineWidth: {
21967
+ type: Number,
21968
+ default: 2
21969
+ },
21970
+ lineHeight: {
21971
+ type: Number,
21972
+ default: 16
21973
+ },
21974
+ hoveredLineHeight: {
21975
+ type: Number,
21976
+ default: 28
21948
21977
  }
21949
21978
  },
21950
21979
  data() {
21951
21980
  return {
21952
21981
  milestoneClasses: Ye,
21953
- timeouts: []
21982
+ timeouts: [],
21983
+ isInitialRender: !0,
21984
+ isHoveringDot: !1,
21985
+ isMouseOver: !1
21954
21986
  };
21955
21987
  },
21956
21988
  computed: {
21989
+ computedLineHeight() {
21990
+ return this.isHoveringDot ? this.hoveredLineHeight : this.lineHeight;
21991
+ },
21992
+ transitionStyles() {
21993
+ return this.isInitialRender ? {} : {
21994
+ transition: `transform ${this.transitionDuration}ms, width ${this.transitionDuration}ms, height ${this.transitionDuration}ms, padding ${this.transitionDuration}ms, border-radius ${this.transitionDuration}ms`
21995
+ };
21996
+ },
21997
+ sizeStyles() {
21998
+ return this.dot ? {} : {
21999
+ width: `${this.size}px`,
22000
+ height: `${this.size}px`
22001
+ };
22002
+ },
22003
+ positionStyles() {
22004
+ return this.dot ? {
22005
+ transform: `translateY(calc(-100% - ${this.computedLineHeight}px))`
22006
+ } : {};
22007
+ },
21957
22008
  styles() {
21958
22009
  return {
21959
- width: `${this.size}px`,
21960
- height: `${this.size}px`,
22010
+ ...this.sizeStyles,
22011
+ ...this.positionStyles,
21961
22012
  backgroundColor: this.backgroundColor,
21962
22013
  borderColor: this.borderColor,
21963
22014
  borderWidth: `${this.borderWidth}px`,
21964
22015
  borderStyle: "solid",
21965
- transition: `transform ${this.transitionDuration}ms, width ${this.transitionDuration}ms, height ${this.transitionDuration}ms, padding ${this.transitionDuration}ms, border-radius ${this.transitionDuration}ms`
22016
+ ...this.transitionStyles
21966
22017
  };
21967
22018
  },
21968
22019
  contentStyles() {
22020
+ return this.transitionStyles;
22021
+ },
22022
+ computedTransitionDuration() {
22023
+ return this.isInitialRender ? 0 : this.transitionDuration;
22024
+ },
22025
+ labelStyles() {
21969
22026
  return {
21970
- transition: `width ${this.transitionDuration}ms, opacity ${this.transitionDuration}ms, fontSize ${this.transitionDuration}ms, fontWeight ${this.transitionDuration}ms`
22027
+ transition: `opacity ${this.computedTransitionDuration}ms`
21971
22028
  };
21972
22029
  },
21973
- labelStyles() {
22030
+ dotContainerStyles() {
21974
22031
  return {
21975
- transition: `opacity ${this.transitionDuration}ms`
22032
+ top: `calc(100% - ${this.borderWidth}px)`,
22033
+ height: `calc(${this.computedLineHeight}px + ${this.dotSize}px)`,
22034
+ left: `calc(50% - ${this.lineWidth}px / 2)`,
22035
+ transition: `${this.computedTransitionDuration}ms`
22036
+ };
22037
+ },
22038
+ lineStyles() {
22039
+ return {
22040
+ top: `${this.borderWidth}px`,
22041
+ left: `calc(50% - ${this.lineWidth}px / 2)`,
22042
+ width: `${this.lineWidth}px`,
22043
+ height: `calc(${this.computedLineHeight}px)`,
22044
+ backgroundColor: this.borderColor,
22045
+ transition: `${this.computedTransitionDuration}ms`
22046
+ };
22047
+ },
22048
+ dotStyles() {
22049
+ return {
22050
+ top: `calc(${this.computedLineHeight}px + 1px)`,
22051
+ left: `calc(50% - ${this.dotSize}px / 2)`,
22052
+ width: `${this.dotSize}px`,
22053
+ height: `${this.dotSize}px`,
22054
+ backgroundColor: this.borderColor,
22055
+ transition: `${this.computedTransitionDuration}ms`
21976
22056
  };
21977
22057
  }
21978
22058
  },
22059
+ updated() {
22060
+ this.$nextTick(() => {
22061
+ this.isInitialRender = !1;
22062
+ });
22063
+ },
21979
22064
  methods: {
21980
22065
  onMilestoneMouseOver(s, e) {
22066
+ if (this.dot) {
22067
+ this.isHoveringDot = !0;
22068
+ return;
22069
+ }
21981
22070
  const t = s.target;
21982
22071
  if (!t)
21983
22072
  return;
@@ -21990,7 +22079,18 @@ const Ah = {
21990
22079
  const n = r.getBoundingClientRect(), a = t.dataset.timeoutId;
21991
22080
  a && (clearTimeout(Number(a)), t.dataset.timeoutId = ""), t.dataset.initialWidth || (t.dataset.initialWidth = t.style.width), t.dataset.initialHeight || (t.dataset.initialHeight = t.style.height), t.dataset.initialContentWidth || (t.dataset.initialContentWidth = String(n.width)), t.dataset.initialContentHeight || (t.dataset.initialContentHeight = String(n.height)), t.dataset.transitionStart = String(Date.now()), t.style.width = t.dataset.initialContentWidth + "px", t.style.height = t.dataset.initialContentHeight + "px", t.style.borderRadius = "0.5em", t.classList.add(Ye.milestoneHovered), i.style.opacity = "1", i.style.width = t.dataset.initialContentWidth + "px", i.style.height = t.dataset.initialContentHeight + "px";
21992
22081
  },
22082
+ onMilestoneMouseMove() {
22083
+ this.isMouseOver = !0;
22084
+ },
21993
22085
  onMilestoneMouseLeave(s, e) {
22086
+ if (this.dot) {
22087
+ this.timeouts.push(
22088
+ setTimeout(() => {
22089
+ this.isHoveringDot = !this.isMouseOver;
22090
+ }, 600)
22091
+ );
22092
+ return;
22093
+ }
21994
22094
  const t = s.target;
21995
22095
  if (!t)
21996
22096
  return;
@@ -22011,9 +22111,14 @@ const Ah = {
22011
22111
  });
22012
22112
  var Ch = function() {
22013
22113
  var e = this, t = e._self._c;
22014
- return t("div", { class: e.milestoneClasses.milestone, style: e.styles, attrs: { tabindex: "0" }, on: { mouseover: (i) => e.onMilestoneMouseOver(i, e.milestone), mouseleave: (i) => e.onMilestoneMouseLeave(i, e.milestone), click: (i) => e.onMilestoneClick(i, e.milestone) } }, [t("div", { class: e.milestoneClasses.milestoneContent, style: e.contentStyles }, [e._t("content", function() {
22114
+ return t("div", { class: {
22115
+ [e.milestoneClasses.milestone]: !0,
22116
+ [e.milestoneClasses.milestoneDot]: e.dot,
22117
+ [e.milestoneClasses.milestoneBullet]: !e.dot,
22118
+ [e.milestoneClasses.milestoneDotHovered]: e.isHoveringDot
22119
+ }, style: e.styles, attrs: { tabindex: "0" }, on: { mouseover: (i) => e.onMilestoneMouseOver(i, e.milestone), mousemove: (i) => e.onMilestoneMouseMove(i, e.milestone), mouseleave: (i) => e.onMilestoneMouseLeave(i, e.milestone), click: (i) => e.onMilestoneClick(i, e.milestone) } }, [t("div", { class: e.milestoneClasses.milestoneContent, style: e.contentStyles }, [e._t("content", function() {
22015
22120
  return [t("span", [e._v(" " + e._s(e.milestone.text) + " ")])];
22016
- })], 2), t("div", { class: e.milestoneClasses.milestoneLabel, style: e.labelStyles }, [e._t("label")], 2)]);
22121
+ })], 2), e.dot ? t("div", { class: e.milestoneClasses.milestoneDotContainer, style: e.dotContainerStyles }, [t("div", { class: e.milestoneClasses.milestoneDotLine, style: e.lineStyles }), t("div", { class: e.milestoneClasses.milestoneDotDot, style: e.dotStyles })]) : t("div", { class: e.milestoneClasses.milestoneLabel, style: e.labelStyles }, [e._t("label")], 2)]);
22017
22122
  }, Dh = [], _h = /* @__PURE__ */ Ne(
22018
22123
  Rh,
22019
22124
  Ch,
@@ -22024,7 +22129,7 @@ var Ch = function() {
22024
22129
  null,
22025
22130
  null
22026
22131
  );
22027
- const Ih = _h.exports, H = {
22132
+ const Ih = _h.exports, G = {
22028
22133
  eventGroup: "event-group",
22029
22134
  eventGroupBg: "event-group-bg",
22030
22135
  eventRect: "event-rect",
@@ -22054,6 +22159,7 @@ const Ih = _h.exports, H = {
22054
22159
  milestoneHovered: "milestone--hovered",
22055
22160
  barChartGroup: "bar-chart-group",
22056
22161
  lineGraphGroup: "line-graph-group",
22162
+ lineGraphGroupLabel: "line-graph-group-label",
22057
22163
  lineGraphPath: "line-graph-path",
22058
22164
  lineGraphHoverZone: "line-graph-hover-zone",
22059
22165
  lineGraphDot: "line-graph-dot",
@@ -22448,6 +22554,9 @@ const Ih = _h.exports, H = {
22448
22554
  this.clearTimeline(), document.removeEventListener("mouseup", this.handleDocumentMouseUp);
22449
22555
  },
22450
22556
  methods: {
22557
+ updateTimeline() {
22558
+ this.initOrUpdateSvg(), this.updateXAxes(), this.updateYScaleDomain(), this.updateForbiddenIntervals(), this.drawEventsGroups(), this.updateCurtains(), this.repositionSelectedTimestampCursor(), this.updateMarkers(), this.registerEventsListeners(), this.isInitialized = !0;
22559
+ },
22451
22560
  initTimeline(s, e) {
22452
22561
  if (this.initRefs(), !this.timeline || this.timeline.offsetWidth === 0) {
22453
22562
  this.timeouts.push(
@@ -22455,13 +22564,13 @@ const Ih = _h.exports, H = {
22455
22564
  );
22456
22565
  return;
22457
22566
  }
22458
- this.initSvg(), this.initDefs(), this.initUtcOffset(), this.initTimeScale(s, e), this.initXAxes(), this.initYScale(), this.initZoomBehavior(), this.initForbiddenIntervals(), this.drawEventsGroups(), this.curtains && (this.initCurtains(), this.emitCurtainChange()), this.initSelectedTimestampCursor(), this.updateMarkers(), this.registerEventsListeners(), this.emitVisibleInterval(Pt.initial), this.selectedDate && this.panOnDateClick && this.panToTimestamp(this.selectedDate), this.isInitialized = !0;
22567
+ this.initOrUpdateSvg(), this.initDefs(), this.initUtcOffset(), this.initTimeScale(s, e), this.initXAxes(), this.initYScale(), this.initZoomBehavior(), this.initForbiddenIntervals(), this.drawEventsGroups(), this.curtains && (this.initCurtains(), this.emitCurtainChange()), this.initSelectedTimestampCursor(), this.updateMarkers(), this.registerEventsListeners(), this.emitVisibleInterval(Pt.initial), this.selectedDate && this.panOnDateClick && this.panToTimestamp(this.selectedDate), this.isInitialized = !0;
22459
22568
  },
22460
22569
  initRefs() {
22461
22570
  this.tooltip = this.$refs.tooltip, this.cursor = this.$refs.cursor, this.timeline = this.$refs.timelineContainer, this.selectedTimestampCursor = this.$refs.selectedTimestamp, this.wrapperDiv = this.$refs.wrapperDiv;
22462
22571
  },
22463
- initSvg() {
22464
- this.svg = w.select(this.timeline).append("svg").attr("width", this.timeline.offsetWidth).attr("height", this.timelineHeight);
22572
+ initOrUpdateSvg() {
22573
+ this.svg || (this.svg = w.select(this.timeline).append("svg")), this.svg.attr("width", this.timeline.offsetWidth).attr("height", this.timelineHeight);
22465
22574
  },
22466
22575
  initDefs() {
22467
22576
  const s = this.svg.append("defs");
@@ -22501,7 +22610,16 @@ const Ih = _h.exports, H = {
22501
22610
  const e = 5;
22502
22611
  for (const t in this.xAxesConfig) {
22503
22612
  const i = this.createAxis(t);
22504
- this.xAxes[t] = i, this.svg.append("g").classed(H.xAxis, !0).classed(`${H.xAxis}-${t}`, !0).attr("transform", `translate(0, ${s || e})`).call(i), this.translateTicksText(t), s += this.axisHeight;
22613
+ this.xAxes[t] = i, this.svg.append("g").classed(G.xAxis, !0).classed(`${G.xAxis}-${t}`, !0).attr("transform", `translate(0, ${s || e})`).call(i), this.translateTicksText(t), s += this.axisHeight;
22614
+ }
22615
+ this.updateXAxes();
22616
+ },
22617
+ updateXAxes() {
22618
+ let s = 0;
22619
+ const e = 5;
22620
+ for (const t in this.xAxesConfig) {
22621
+ const i = this.xAxes[t];
22622
+ i.tickSizeOuter(0), i.tickSizeInner(this.timelineHeight), this.svg.select(`.${G.xAxis}-${t}`).attr("transform", `translate(0, ${s || e})`).call(i), this.translateTicksText(t), s += this.axisHeight;
22505
22623
  }
22506
22624
  },
22507
22625
  initYScale() {
@@ -22542,7 +22660,7 @@ const Ih = _h.exports, H = {
22542
22660
  );
22543
22661
  },
22544
22662
  initSelectedTimestampCursor() {
22545
- this.svg.append("line").attr("class", H.selectedTimestampCursor).style("stroke", "red").style("stroke-width", "1px").style("opacity", 0).attr("x1", 0).attr("x2", 0).attr("y1", 0).attr("y2", this.timelineHeight), this.repositionSelectedTimestampCursor();
22663
+ this.svg.append("line").attr("class", G.selectedTimestampCursor).style("stroke", "red").style("stroke-width", "1px").style("opacity", 0).attr("x1", 0).attr("x2", 0).attr("y1", 0), this.repositionSelectedTimestampCursor();
22546
22664
  },
22547
22665
  updateMarkers() {
22548
22666
  if (!this.markers.length)
@@ -22566,20 +22684,19 @@ const Ih = _h.exports, H = {
22566
22684
  }), this.initMarkersDragBehavior();
22567
22685
  },
22568
22686
  updateAndRedrawTimeline() {
22569
- const { startDate: s, endDate: e } = this.getCurrentTimeBounds();
22570
- this.clearTimeline(), this.initTimeline(s, e);
22687
+ this.updateTimeline();
22571
22688
  },
22572
22689
  clearTimeline() {
22573
22690
  this.svg && this.svg.remove(), this.countsByTimestamp = {};
22574
22691
  },
22575
22692
  repositionSelectedTimestampCursor() {
22576
- const s = this.svg.select(`.${H.selectedTimestampCursor}`);
22693
+ const s = this.svg.select(`.${G.selectedTimestampCursor}`);
22577
22694
  if (!this.selectedTimestamp) {
22578
22695
  s.style("opacity", 0);
22579
22696
  return;
22580
22697
  }
22581
22698
  const e = this.tzStringToDate(this.selectedTimestamp), t = this.timeScale(e);
22582
- isNaN(t) ? s.style("opacity", 0) : s.attr("x1", t).attr("x2", t).style("opacity", 0.5);
22699
+ isNaN(t) ? s.style("opacity", 0) : s.attr("x1", t).attr("x2", t).style("opacity", 0.5), s.attr("y2", this.timelineHeight);
22583
22700
  },
22584
22701
  updateCurrentTimeScaleDensity() {
22585
22702
  const s = this.timeScale.invert(0).getTime(), e = this.timeScale.invert(1).getTime(), t = 36e5, i = (e - s) / t;
@@ -22624,12 +22741,12 @@ const Ih = _h.exports, H = {
22624
22741
  if (!this.showLabels)
22625
22742
  return;
22626
22743
  const s = this;
22627
- this.svg.selectAll(`.${H.labelBg}`).each(function() {
22744
+ this.svg.selectAll(`.${G.labelBg}`).each(function() {
22628
22745
  w.select(this).style("fill", s.dark ? "black" : "white");
22629
- }), this.svg.selectAll(`.${H.labelBgFill}`).each(function() {
22746
+ }), this.svg.selectAll(`.${G.labelBgFill}`).each(function() {
22630
22747
  const e = w.select(this), t = e.node().dataset.color;
22631
22748
  e.style("fill", s.getLabelBackgroundColor(t)).style("stroke", s.getTextFillColor(t)).style("stroke-width", 0.25);
22632
- }), this.svg.selectAll(`.${H.labelText}`).each(function() {
22749
+ }), this.svg.selectAll(`.${G.labelText}`).each(function() {
22633
22750
  const e = w.select(this), t = e.node().dataset.color;
22634
22751
  e.style("fill", s.getTextFillColor(t));
22635
22752
  });
@@ -22693,20 +22810,20 @@ const Ih = _h.exports, H = {
22693
22810
  this.isHoveringEvent = !1, this.hoveredEvent = null, this.$emit("event-mouseout");
22694
22811
  },
22695
22812
  handleLabelMouseOver(s) {
22696
- w.selectAll(`.${H.lineGraphGroup}-${s}`).classed(
22697
- `${H.lineGraphGroup}--highlighted`,
22813
+ w.selectAll(`.${G.lineGraphGroup}-${s}`).classed(
22814
+ `${G.lineGraphGroup}--highlighted`,
22698
22815
  !0
22699
- ), w.selectAll(`.${H.lineGraphGroup}-label`).classed(
22700
- `${H.lineGraphGroup}-label--highlighted`,
22816
+ ), w.selectAll(`.${G.lineGraphGroupLabel}`).classed(
22817
+ `${G.lineGraphGroupLabel}--highlighted`,
22701
22818
  !0
22702
22819
  );
22703
22820
  },
22704
22821
  handleLabelMouseLeave(s) {
22705
- w.selectAll(`.${H.lineGraphGroup}-${s}`).classed(
22706
- `${H.lineGraphGroup}--highlighted`,
22822
+ w.selectAll(`.${G.lineGraphGroup}-${s}`).classed(
22823
+ `${G.lineGraphGroup}--highlighted`,
22707
22824
  !1
22708
- ), w.selectAll(`.${H.lineGraphGroup}-label`).classed(
22709
- `${H.lineGraphGroup}-label--highlighted`,
22825
+ ), w.selectAll(`.${G.lineGraphGroupLabel}`).classed(
22826
+ `${G.lineGraphGroupLabel}--highlighted`,
22710
22827
  !1
22711
22828
  );
22712
22829
  },
@@ -22752,7 +22869,7 @@ const Ih = _h.exports, H = {
22752
22869
  s.x,
22753
22870
  this.timeline.offsetWidth - this.rightCurtainWidth
22754
22871
  );
22755
- this.leftCurtainWidth = Math.max(0, e), this.svg.select(`.${H.curtain}--left`).attr("width", this.leftCurtainWidth), this.emitCurtainChange();
22872
+ this.leftCurtainWidth = Math.max(0, e), this.svg.select(`.${G.curtain}--left`).attr("width", this.leftCurtainWidth), this.emitCurtainChange();
22756
22873
  },
22757
22874
  handleRightDrag(s) {
22758
22875
  s.sourceEvent.stopPropagation();
@@ -22760,7 +22877,7 @@ const Ih = _h.exports, H = {
22760
22877
  this.timeline.offsetWidth - s.x,
22761
22878
  this.timeline.offsetWidth - this.leftCurtainWidth
22762
22879
  ), i = e - t;
22763
- this.rightCurtainWidth = Math.max(0, t), this.svg.select(`.${H.curtain}--right`).attr("width", this.rightCurtainWidth).attr("x", i), this.emitCurtainChange();
22880
+ this.rightCurtainWidth = Math.max(0, t), this.svg.select(`.${G.curtain}--right`).attr("width", this.rightCurtainWidth).attr("x", i), this.emitCurtainChange();
22764
22881
  },
22765
22882
  zoomToStartAndEndDates() {
22766
22883
  const s = this.startDate || this.oldestEvent.timestamp || this.oldestEvent.startDate, e = this.endDate || this.latestEvent.timestamp || this.latestEvent.endDate, t = this.tzStringToDate(s), i = this.tzStringToDate(e);
@@ -22775,28 +22892,28 @@ const Ih = _h.exports, H = {
22775
22892
  const t = this.xAxes[s], i = this.getAxisTicksConfig(
22776
22893
  this.xAxesConfig[s]
22777
22894
  );
22778
- t.scale(e).ticks(i.interval).tickFormat(i.formatFn).tickSizeOuter(0), this.svg.select(`.${H.xAxis}-${s}`).call(t);
22895
+ t.scale(e).ticks(i.interval).tickFormat(i.formatFn).tickSizeOuter(0), this.svg.select(`.${G.xAxis}-${s}`).call(t);
22779
22896
  },
22780
22897
  translateTicksText(s) {
22781
- this.svg.select(`.${H.xAxis}-${s}`).selectAll(".tick text").each(function() {
22898
+ this.svg.select(`.${G.xAxis}-${s}`).selectAll(".tick text").each(function() {
22782
22899
  let e = w.select(this), t = e.node().getBBox();
22783
22900
  e.attr("x", t.height / 2).attr("y", 0).style("text-anchor", "start");
22784
22901
  });
22785
22902
  },
22786
22903
  updateEventsBars() {
22787
- const s = `.${H.eventGroup} > rect.${H.eventRect}`;
22904
+ const s = `.${G.eventGroup} > rect.${G.eventRect}`;
22788
22905
  this.svg.selectAll(s).attr("x", this.getEventRectX).attr("width", this.getEventRectWidth);
22789
- const e = `.${H.eventGroup} > text.${H.eventRectText}`;
22906
+ const e = `.${G.eventGroup} > text.${G.eventRectText}`;
22790
22907
  this.svg.selectAll(e).attr("x", (t) => this.getEventRectX(t) + this.textPadding).text(this.getEventText);
22791
22908
  },
22792
22909
  updateBarChart() {
22793
22910
  const s = Object.keys(this.barChartGroups).length;
22794
22911
  Object.keys(this.barChartGroups).forEach((e, t) => {
22795
- const i = (d) => (this.getEventRectWidth(d) - this.barXPadding * 2) / s, r = (d) => this.yScale.range()[0] - this.yScale(d.count), n = (d) => this.getEventRectX(d) + this.barXPadding + t * i(d), a = (d) => this.yScale(d.count), o = `.${H.eventBarContainer}-${e}`, l = this.svg.selectAll(o), c = `.${H.barChartGroup} rect.${H.eventBarHoverZone}`;
22912
+ const i = (d) => (this.getEventRectWidth(d) - this.barXPadding * 2) / s, r = (d) => this.yScale.range()[0] - this.yScale(d.count), n = (d) => this.getEventRectX(d) + this.barXPadding + t * i(d), a = (d) => this.yScale(d.count), o = `.${G.eventBarContainer}-${e}`, l = this.svg.selectAll(o), c = `.${G.barChartGroup} rect.${G.eventBarHoverZone}`;
22796
22913
  l.selectAll(c).attr("x", n).attr("width", i);
22797
- const u = `.${H.barChartGroup} rect.${H.eventBar}`;
22914
+ const u = `.${G.barChartGroup} rect.${G.eventBar}`;
22798
22915
  l.selectAll(u).attr("x", n).attr("width", i).attr("y", a).attr("height", r);
22799
- const h = `.${H.barChartGroup} rect.${H.eventBarCap}`;
22916
+ const h = `.${G.barChartGroup} rect.${G.eventBarCap}`;
22800
22917
  l.selectAll(h).attr("x", n).attr("width", i).attr("y", a);
22801
22918
  });
22802
22919
  },
@@ -22804,7 +22921,7 @@ const Ih = _h.exports, H = {
22804
22921
  Object.entries(this.lineGraphGroups).forEach(([s]) => {
22805
22922
  const e = w.area().x((t) => this.timeScale(this.tzStringToDate(t.timestamp))).y0(this.timelineHeight).y1((t) => this.yScale(t.count)).curve(w.curveMonotoneX);
22806
22923
  this.svg.selectAll(
22807
- `.${H.lineGraphPath}-${s}`
22924
+ `.${G.lineGraphPath}-${s}`
22808
22925
  ).attr("d", (t) => e(t));
22809
22926
  });
22810
22927
  },
@@ -22812,11 +22929,11 @@ const Ih = _h.exports, H = {
22812
22929
  Object.keys(this.lineGraphGroups).forEach((s) => {
22813
22930
  const e = this;
22814
22931
  this.svg.selectAll(
22815
- `.${H.lineGraphDot}-${s}`
22932
+ `.${G.lineGraphDot}-${s}`
22816
22933
  ).each(function(t) {
22817
22934
  w.select(this).attr("cx", e.timeScale(e.tzStringToDate(t.timestamp))).attr("cy", e.yScale(t.count));
22818
22935
  }), this.svg.selectAll(
22819
- `.${H.lineGraphHoverZone}-${s}`
22936
+ `.${G.lineGraphHoverZone}-${s}`
22820
22937
  ).each(function(t) {
22821
22938
  const i = e.timeScale(e.tzStringToDate(t.timestamp).getTime()) - 15;
22822
22939
  w.select(this).attr("x", i).attr("y", 0).attr("width", 30).attr("height", e.chartHeight);
@@ -22858,7 +22975,7 @@ const Ih = _h.exports, H = {
22858
22975
  }) {
22859
22976
  if (!s.isDraggable)
22860
22977
  return;
22861
- t.type === "start" && (this.initialMarkerDragMouseOffset = t.x - e.node().querySelector(`.${H.markerLine}`).getBoundingClientRect().left, e.classed(H.markerDragged, !0));
22978
+ t.type === "start" && (this.initialMarkerDragMouseOffset = t.x - e.node().querySelector(`.${G.markerLine}`).getBoundingClientRect().left, e.classed(G.markerDragged, !0));
22862
22979
  const i = t.x - this.initialMarkerDragMouseOffset, r = this.timeScale.invert(
22863
22980
  i - this.svg.node().getBoundingClientRect().left
22864
22981
  ), n = this.timeScale(r), a = this.isTimestampAllowedForMarker(
@@ -22871,13 +22988,13 @@ const Ih = _h.exports, H = {
22871
22988
  ...this.markersPositions[s.id || s.timestamp],
22872
22989
  position: n
22873
22990
  }
22874
- }, e.classed(H.markerDragged, !1)), t.type !== "start" && this.$emit(`marker-drag-${t.type}`, {
22991
+ }, e.classed(G.markerDragged, !1)), t.type !== "start" && this.$emit(`marker-drag-${t.type}`, {
22875
22992
  marker: s,
22876
22993
  newTimestamp: r.toISOString()
22877
22994
  });
22878
22995
  },
22879
22996
  removeMarkersDragBehavior() {
22880
- this.markersDragBehavior && (this.markersDragBehavior.on("start", null).on("drag", null).on("end", null), w.selectAll(`.${H.marker}`).call(
22997
+ this.markersDragBehavior && (this.markersDragBehavior.on("start", null).on("drag", null).on("end", null), w.selectAll(`.${G.marker}`).call(
22881
22998
  this.markersDragBehavior
22882
22999
  ));
22883
23000
  },
@@ -22903,49 +23020,53 @@ const Ih = _h.exports, H = {
22903
23020
  markerElement: w.select(this),
22904
23021
  dragEvent: e
22905
23022
  });
22906
- }), w.selectAll(`.${H.marker}`).data(this.sortedMarkers).call(this.markersDragBehavior);
23023
+ }), w.selectAll(`.${G.marker}`).data(this.sortedMarkers).call(this.markersDragBehavior);
22907
23024
  },
22908
23025
  initCurtains() {
22909
- if (!this.curtains)
22910
- return;
22911
- const s = this.timeline.offsetWidth, e = this.timelineHeight;
22912
- this.svg.append("rect").classed(`${H.curtain} ${H.curtain}--left`, !0).attr("width", this.leftCurtainWidth).attr("height", e + this.curtainHandleWidth * 2).attr("y", -this.curtainHandleWidth).attr("x", -this.curtainHandleWidth).attr("fill", "rgba(0, 0, 0, 0.5)").on("mouseenter", () => this.isHoveringCurtain = !0).on("mouseleave", () => this.isHoveringCurtain = !1).call(
23026
+ this.createCurtains(), this.updateCurtains();
23027
+ },
23028
+ createCurtains() {
23029
+ this.curtains && (this.svg.append("rect").classed(`${G.curtain} ${G.curtain}--left`, !0).attr("fill", "rgba(0, 0, 0, 0.5)").on("mouseenter", () => this.isHoveringCurtain = !0).on("mouseleave", () => this.isHoveringCurtain = !1).call(
22913
23030
  w.drag().on("start", this.handleDragStart).on("drag", this.handleLeftDrag).on("end", this.handleDragEnd)
22914
- ), this.svg.append("rect").classed(`${H.curtain} ${H.curtain}--right`, !0).attr(
22915
- "x",
22916
- s - this.rightCurtainWidth + this.curtainHandleWidth * 2
22917
- ).attr("y", -this.curtainHandleWidth).attr("width", this.rightCurtainWidth + this.curtainHandleWidth * 2).attr("height", e + this.curtainHandleWidth * 2).attr("fill", "rgba(0, 0, 0, 0.5)").on("mouseenter", () => this.isHoveringCurtain = !0).on("mouseleave", () => this.isHoveringCurtain = !1).call(
23031
+ ), this.svg.append("rect").classed(`${G.curtain} ${G.curtain}--right`, !0).attr("fill", "rgba(0, 0, 0, 0.5)").on("mouseenter", () => this.isHoveringCurtain = !0).on("mouseleave", () => this.isHoveringCurtain = !1).call(
22918
23032
  w.drag().on("start", this.handleDragStart).on("drag", this.handleRightDrag).on("end", this.handleDragEnd)
22919
- );
23033
+ ), this.updateCurtains());
23034
+ },
23035
+ updateCurtains() {
23036
+ const s = this.timeline.offsetWidth, e = this.timelineHeight;
23037
+ this.svg.select(`.${G.curtain}--left`).attr("width", this.leftCurtainWidth).attr("height", e + this.curtainHandleWidth * 2).attr("y", -this.curtainHandleWidth).attr("x", -this.curtainHandleWidth), this.svg.select(`.${G.curtain}--right`).attr(
23038
+ "x",
23039
+ s - this.rightCurtainWidth + this.curtainHandleWidth
23040
+ ).attr("y", -this.curtainHandleWidth).attr("width", this.rightCurtainWidth + this.curtainHandleWidth * 2).attr("height", e + this.curtainHandleWidth * 2);
22920
23041
  },
22921
23042
  initForbiddenIntervals() {
22922
23043
  this.minDate && this.svg.append("rect").attr(
22923
23044
  "class",
22924
- `${H.forbiddenInterval} ${H.forbiddenInterval}--min`
23045
+ `${G.forbiddenInterval} ${G.forbiddenInterval}--min`
22925
23046
  ), this.maxDate && this.svg.append("rect").attr(
22926
23047
  "class",
22927
- `${H.forbiddenInterval} ${H.forbiddenInterval}--max`
23048
+ `${G.forbiddenInterval} ${G.forbiddenInterval}--max`
22928
23049
  ), this.updateForbiddenIntervals();
22929
23050
  },
22930
23051
  updateForbiddenIntervals() {
22931
23052
  const s = this.minDate ? this.tzStringToDate(this.minDate).getTime() : null, e = this.maxDate ? this.tzStringToDate(this.maxDate).getTime() : null;
22932
23053
  if (s) {
22933
23054
  const t = this.timeScale(s);
22934
- this.svg.select(`.${H.forbiddenInterval}--min`).attr("x", 0).attr("y", 0).attr("width", t > 0 ? t : 0).attr("height", this.timelineHeight).attr("fill", `url(#${De.stripedPattern})`);
23055
+ this.svg.select(`.${G.forbiddenInterval}--min`).attr("x", 0).attr("y", 0).attr("width", t > 0 ? t : 0).attr("height", this.timelineHeight).attr("fill", `url(#${De.stripedPattern})`);
22935
23056
  }
22936
23057
  if (e) {
22937
23058
  const t = this.timeline.offsetWidth - this.timeScale(e), i = this.timeScale(e);
22938
- this.svg.select(`.${H.forbiddenInterval}--max`).attr("x", i > 0 ? i : 0).attr("y", 0).attr("width", t > 0 ? t : 0).attr("height", this.timelineHeight).attr("fill", `url(#${De.stripedPattern})`);
23059
+ this.svg.select(`.${G.forbiddenInterval}--max`).attr("x", i > 0 ? i : 0).attr("y", 0).attr("width", t > 0 ? t : 0).attr("height", this.timelineHeight).attr("fill", `url(#${De.stripedPattern})`);
22939
23060
  }
22940
23061
  },
22941
23062
  drawEventsGroups() {
22942
- this.svg.selectAll(`g.${H.eventGroup}`).remove(), this.drawLineGraphEventsGroups(), this.drawBarEventsGroups(), this.drawBarChartEventsGroups(), this.drawMilestonesPlaceholder();
23063
+ this.svg.selectAll(`g.${G.eventGroup}`).remove(), this.svg.selectAll(`.${G.barChartGroup}`).remove(), this.svg.selectAll(`.${G.lineGraphGroup}`).remove(), this.svg.selectAll(`.${G.lineGraphGroupLabel}`).remove(), this.svg.selectAll(`.${G.loadingIndicator}`).remove(), this.drawLineGraphEventsGroups(), this.drawBarEventsGroups(), this.drawBarChartEventsGroups(), this.drawMilestonesPlaceholder();
22943
23064
  },
22944
23065
  drawLineGraphEventsGroups() {
22945
23066
  const s = this.combinedXAxesHeight, e = this.insertZerosAtInterval ? this.filledGapsLineGraphGroups : this.lineGraphGroups;
22946
23067
  Object.entries(e).forEach(([t, i]) => {
22947
23068
  const r = this.svg.append("g").classed(
22948
- `${H.lineGraphGroup} ${H.lineGraphGroup}-${t}`,
23069
+ `${G.lineGraphGroup} ${G.lineGraphGroup}-${t}`,
22949
23070
  !0
22950
23071
  ).attr("transform", `translate(0,${s})`), { color: n, events: a } = i;
22951
23072
  this.drawLineGraph({
@@ -22961,7 +23082,7 @@ const Ih = _h.exports, H = {
22961
23082
  });
22962
23083
  }), Object.entries(this.lineGraphGroups).forEach(
22963
23084
  ([t, i], r) => {
22964
- const { color: n, isLoading: a, label: o } = i, l = this.chartHeight - this.barChartHeight * (r + 1), c = s + this.chartHeight - this.barChartHeight, u = this.svg.append("g").classed(`${H.lineGraphGroup}-label`, !0).attr("transform", `translate(0,${s})`).on("mouseover", () => this.handleLabelMouseOver(t)).on("mouseleave", () => this.handleLabelMouseLeave(t));
23085
+ const { color: n, isLoading: a, label: o } = i, l = this.chartHeight - this.barChartHeight * (r + 1), c = s + this.chartHeight - this.barChartHeight, u = this.svg.append("g").classed(G.lineGraphGroupLabel, !0).attr("transform", `translate(0,${s})`).on("mouseover", () => this.handleLabelMouseOver(t)).on("mouseleave", () => this.handleLabelMouseLeave(t));
22965
23086
  this.drawProgressIndicator({
22966
23087
  type: t,
22967
23088
  color: n,
@@ -22984,7 +23105,7 @@ const Ih = _h.exports, H = {
22984
23105
  type: i
22985
23106
  }) {
22986
23107
  const r = w.area().x((a) => this.timeScale(this.tzStringToDate(a.timestamp))).y0(this.timelineHeight).y1((a) => this.yScale(a.count)).curve(w.curveMonotoneX), n = `clip-${i}`;
22987
- e.append("defs").append("clipPath").attr("id", n).append("rect").attr("width", this.timeline.offsetWidth).attr("height", this.chartHeight), e.append("path").datum(s).classed(`${H.lineGraphPath}-${i}`, !0).attr("fill", `url(#${De.transparencyGradientLight}-${i})`).attr("stroke", t).attr("stroke-linejoin", "round").attr("stroke-linecap", "round").attr("stroke-width", 1).attr("d", (a) => r(a)).attr("clip-path", `url(#${n})`);
23108
+ e.append("defs").append("clipPath").attr("id", n).append("rect").attr("width", this.timeline.offsetWidth).attr("height", this.chartHeight), e.append("path").datum(s).classed(`${G.lineGraphPath}-${i}`, !0).attr("fill", `url(#${De.transparencyGradientLight}-${i})`).attr("stroke", t).attr("stroke-linejoin", "round").attr("stroke-linecap", "round").attr("stroke-width", 1).attr("d", (a) => r(a)).attr("clip-path", `url(#${n})`);
22988
23109
  },
22989
23110
  drawLineGraphHoverZones({
22990
23111
  events: s,
@@ -22999,19 +23120,19 @@ const Ih = _h.exports, H = {
22999
23120
  [i]: r.count
23000
23121
  };
23001
23122
  const a = e.append("circle").classed(
23002
- `${H.lineGraphDot} ${H.lineGraphDot}-${i}`,
23123
+ `${G.lineGraphDot} ${G.lineGraphDot}-${i}`,
23003
23124
  !0
23004
23125
  ).attr("cx", this.timeScale(this.tzStringToDate(r.timestamp))).attr("cy", this.yScale(r.count)).attr("r", 1.5).attr("fill", t).attr("stroke-width", 0).datum(r);
23005
23126
  this.dotsByTimestamp[n] = [
23006
23127
  ...this.dotsByTimestamp[n] || [],
23007
23128
  a
23008
- ], e.append("rect").classed(`${H.lineGraphHoverZone}-${i}`, !0).attr("x", this.timeScale(this.tzStringToDate(r.timestamp)) - 15).attr("y", 0).attr("width", 30).attr("height", this.chartHeight).attr("fill", "transparent").datum(r).on("mouseover", (o) => {
23129
+ ], e.append("rect").classed(`${G.lineGraphHoverZone}-${i}`, !0).attr("x", this.timeScale(this.tzStringToDate(r.timestamp)) - 15).attr("y", 0).attr("width", 30).attr("height", this.chartHeight).attr("fill", "transparent").datum(r).on("mouseover", (o) => {
23009
23130
  this.handleLineMouseOver(o, r, i), this.dotsByTimestamp[n].forEach(
23010
- (l) => l.classed(`${H.lineGraphDot}--active`, !0)
23131
+ (l) => l.classed(`${G.lineGraphDot}--active`, !0)
23011
23132
  );
23012
23133
  }).on("mouseout", () => {
23013
23134
  this.handleLineMouseOut(), this.dotsByTimestamp[n].forEach(
23014
- (o) => o.classed(`${H.lineGraphDot}--active`, !1)
23135
+ (o) => o.classed(`${G.lineGraphDot}--active`, !1)
23015
23136
  );
23016
23137
  });
23017
23138
  });
@@ -23031,7 +23152,7 @@ const Ih = _h.exports, H = {
23031
23152
  color: n,
23032
23153
  isLoading: c
23033
23154
  });
23034
- const d = this.svg.append("g").attr("data-color", n).classed(H.eventGroup, !0).classed(`${H.eventGroup}-${s}`, !0);
23155
+ const d = this.svg.append("g").attr("data-color", n).classed(G.eventGroup, !0).classed(`${G.eventGroup}-${s}`, !0);
23035
23156
  this.drawBackground({
23036
23157
  color: a || n,
23037
23158
  gElement: d,
@@ -23098,27 +23219,27 @@ const Ih = _h.exports, H = {
23098
23219
  updateMilestonesPositions() {
23099
23220
  Object.entries(this.milestonesGroups).forEach(([s, e]) => {
23100
23221
  const t = this.getMilestoneGroupYPosition(s), i = this.svg.select(
23101
- `g.${H.eventGroup}-${s}`
23102
- ), r = t + (e.height || this.barChartHeight) / 2;
23103
- i.attr("x1", 0).attr("x2", this.timeline.offsetWidth).select(`.${Ye.milestoneLine}`).attr("y1", r).attr("y2", r);
23104
- const n = w.select(
23222
+ `g.${G.eventGroup}-${s}`
23223
+ ), r = 2, n = e.height || this.barChartHeight, a = e.dots ? n : n / 2, o = t + a - r / 2;
23224
+ i.attr("x1", 0).attr("x2", this.timeline.offsetWidth).select(`.${Ye.milestoneLine}`).attr("y1", o).attr("y2", o);
23225
+ const l = w.select(
23105
23226
  `.${Ye.milestonesContainer}-${s}`
23106
23227
  );
23107
- n.style("top", `${t}px`).style("height", `${e.height || this.barChartHeight}px`);
23108
- const a = n.selectAll(
23228
+ l.style("top", `${t}px`).style("height", `${e.height || this.barChartHeight}px`);
23229
+ const c = l.selectAll(
23109
23230
  `.${Ye.milestone}`
23110
23231
  ).data(e.events);
23111
- a.exit().remove(), a.enter().append("div").merge(a).style(
23232
+ c.exit().remove(), c.enter().append("div").merge(c).style(
23112
23233
  "left",
23113
- (o) => `${this.timeScale(this.tzStringToDate(o.timestamp))}px`
23114
- ).style("top", `${r}px`).style("transform", "translate(-50%, -50%)");
23234
+ (u) => `${this.timeScale(this.tzStringToDate(u.timestamp))}px`
23235
+ ).style("top", `${o}px`);
23115
23236
  });
23116
23237
  },
23117
23238
  drawBarChartEventsGroups() {
23118
23239
  const s = this.combinedXAxesHeight, e = this.barChartGroups;
23119
23240
  Object.entries(e).forEach(([t, i], r) => {
23120
23241
  const n = this.svg.append("g").classed(
23121
- `${H.barChartGroup} ${H.barChartGroup}-${t}`,
23242
+ `${G.barChartGroup} ${G.barChartGroup}-${t}`,
23122
23243
  !0
23123
23244
  ).attr("transform", `translate(0,${s})`), { color: a, events: o } = i;
23124
23245
  this.drawBarsChart({
@@ -23137,7 +23258,7 @@ const Ih = _h.exports, H = {
23137
23258
  isLoading: t
23138
23259
  }) {
23139
23260
  this.svg.append("rect").classed(
23140
- `${H.loadingIndicator} ${H.loadingIndicator}-${e}`,
23261
+ `${G.loadingIndicator} ${G.loadingIndicator}-${e}`,
23141
23262
  !0
23142
23263
  ).attr("x", 0).attr("y", s).attr("width", this.timeline.offsetWidth / 3).attr("height", this.barChartHeight).attr("fill", `url(#${De.loadingGradient}-${e})`).style("visibility", t ? "visible" : "hidden");
23143
23264
  },
@@ -23147,7 +23268,7 @@ const Ih = _h.exports, H = {
23147
23268
  gElement: t,
23148
23269
  height: i
23149
23270
  }) {
23150
- t.append("rect").attr("class", H.eventGroupBg).attr("x", 0).attr("y", e).attr("width", this.timeline.offsetWidth).attr("height", i || this.barChartHeight).attr("fill", w.color(s).toString()).style("opacity", 0.1);
23271
+ t.append("rect").attr("class", G.eventGroupBg).attr("x", 0).attr("y", e).attr("width", this.timeline.offsetWidth).attr("height", i || this.barChartHeight).attr("fill", w.color(s).toString()).style("opacity", 0.1);
23151
23272
  },
23152
23273
  drawBars({
23153
23274
  events: s,
@@ -23157,14 +23278,14 @@ const Ih = _h.exports, H = {
23157
23278
  type: r
23158
23279
  }) {
23159
23280
  const n = this;
23160
- e.selectAll(H.eventRect).data(s).enter().append("rect").attr(
23281
+ e.selectAll(G.eventRect).data(s).enter().append("rect").attr(
23161
23282
  "class",
23162
- (a) => H.eventRect + (a.className ? ` ${a.className}` : "")
23283
+ (a) => G.eventRect + (a.className ? ` ${a.className}` : "")
23163
23284
  ).attr("x", this.getEventRectX).attr("y", t + this.barYPadding / 2).attr("ry", 1.5).attr("rx", 1.5).attr("width", this.getEventRectWidth).attr("height", this.barChartHeight - this.barYPadding).attr("stroke-width", 5).attr("cursor", "pointer").attr("stroke", "#0000").style("fill", (a) => a.color || i).on("mouseover", function(a, o) {
23164
- w.select(this).classed(H.eventRectHovered, !0), n.handleBarMouseOver(a, o, r);
23285
+ w.select(this).classed(G.eventRectHovered, !0), n.handleBarMouseOver(a, o, r);
23165
23286
  }).on("mouseout", function() {
23166
- w.select(this).classed(H.eventRectHovered, !1), n.handleBarMouseOut();
23167
- }), e.selectAll(H.eventRectText).data(s.filter((a) => !!a.text)).enter().append("text").attr("class", H.eventRectText).attr("x", (a) => this.getEventRectX(a) + this.textPadding).attr("y", t + this.barChartHeight / 2).attr("dy", "0.35em").style("text-anchor", "start").style("font-size", "12px").style("font-weight", 600).style("stroke-linejoin", "round").style("paint-order", "stroke").style("pointer-events", "none").style(
23287
+ w.select(this).classed(G.eventRectHovered, !1), n.handleBarMouseOut();
23288
+ }), e.selectAll(G.eventRectText).data(s.filter((a) => !!a.text)).enter().append("text").attr("class", G.eventRectText).attr("x", (a) => this.getEventRectX(a) + this.textPadding).attr("y", t + this.barChartHeight / 2).attr("dy", "0.35em").style("text-anchor", "start").style("font-size", "12px").style("font-weight", 600).style("stroke-linejoin", "round").style("paint-order", "stroke").style("pointer-events", "none").style(
23168
23289
  "fill",
23169
23290
  (a) => this.getTextFillColor(a.color || i, 0.75)
23170
23291
  ).text(this.getEventText);
@@ -23177,19 +23298,19 @@ const Ih = _h.exports, H = {
23177
23298
  type: r,
23178
23299
  index: n
23179
23300
  }) {
23180
- const a = this, o = Object.keys(this.barChartGroups).length, l = (f) => (this.getEventRectWidth(f) - this.barXPadding * 2) / o, c = (f) => this.yScale.range()[0] - this.yScale(f.count), u = (f) => this.getEventRectX(f) + this.barXPadding + n * l(f), h = (f) => this.yScale(f.count), d = e.selectAll(H.eventBarContainer).data(s).enter().append("g").attr(
23301
+ const a = this, o = Object.keys(this.barChartGroups).length, l = (f) => (this.getEventRectWidth(f) - this.barXPadding * 2) / o, c = (f) => this.yScale.range()[0] - this.yScale(f.count), u = (f) => this.getEventRectX(f) + this.barXPadding + n * l(f), h = (f) => this.yScale(f.count), d = e.selectAll(G.eventBarContainer).data(s).enter().append("g").attr(
23181
23302
  "class",
23182
- `${H.eventBarContainer} ${H.eventBarContainer}-${r}`
23303
+ `${G.eventBarContainer} ${G.eventBarContainer}-${r}`
23183
23304
  );
23184
23305
  d.append("rect").attr(
23185
23306
  "class",
23186
- (f) => H.eventBarHoverZone + (f.className ? ` ${f.className}` : "")
23307
+ (f) => G.eventBarHoverZone + (f.className ? ` ${f.className}` : "")
23187
23308
  ).attr("x", u).attr("y", -i).attr("width", l).attr("height", this.yScale.range()[0] + i).attr("fill", (f) => f.color || t).attr("fill-opacity", 0), d.append("rect").attr(
23188
23309
  "class",
23189
- (f) => H.eventBar + (f.className ? ` ${f.className}` : "")
23310
+ (f) => G.eventBar + (f.className ? ` ${f.className}` : "")
23190
23311
  ).attr("x", u).attr("y", h).attr("width", l).attr("height", c).attr("stroke-width", 5).attr("cursor", "pointer").attr("stroke", "#0000").attr("fill", `url(#${De.transparencyGradient}-${r})`), d.append("rect").attr(
23191
23312
  "class",
23192
- (f) => H.eventBarCap + (f.className ? ` ${f.className}` : "")
23313
+ (f) => G.eventBarCap + (f.className ? ` ${f.className}` : "")
23193
23314
  ).attr("x", u).attr("y", h).attr("width", l).attr("height", 2).attr("stroke-width", 0).style("fill", (f) => f.color || t), d.on("mouseover", function(f, m) {
23194
23315
  const g = w.select(this);
23195
23316
  a.onBarChartBarMouseOver(g, t), a.handleBarMouseOver(f, m, r);
@@ -23197,17 +23318,17 @@ const Ih = _h.exports, H = {
23197
23318
  const f = w.select(this);
23198
23319
  a.onBarChartBarMouseOut(f, r), a.handleBarMouseOut();
23199
23320
  }).on("click", function() {
23200
- e.selectAll(`.${H.eventBarContainerSelected}`).classed(H.eventBarContainerSelected, !1), w.select(this).classed(H.eventBarContainerSelected, !0);
23321
+ e.selectAll(`.${G.eventBarContainerSelected}`).classed(G.eventBarContainerSelected, !1), w.select(this).classed(G.eventBarContainerSelected, !0);
23201
23322
  });
23202
23323
  },
23203
23324
  onBarChartBarMouseOver(s, e) {
23204
- s.classed(H.eventBarContainerHovered, !0), s.selectAll(`.${H.eventBarHoverZone}`).attr("fill-opacity", 0.2);
23205
- const i = s.selectAll(`.${H.eventBar}`);
23325
+ s.classed(G.eventBarContainerHovered, !0), s.selectAll(`.${G.eventBarHoverZone}`).attr("fill-opacity", 0.2);
23326
+ const i = s.selectAll(`.${G.eventBar}`);
23206
23327
  i.attr("fill", e), i.attr("fill-opacity", 0.5);
23207
23328
  },
23208
23329
  onBarChartBarMouseOut(s, e) {
23209
- s.classed(H.eventBarContainerHovered, !1), s.selectAll(`.${H.eventBarHoverZone}`).attr("fill-opacity", 0);
23210
- const i = s.selectAll(`.${H.eventBar}`);
23330
+ s.classed(G.eventBarContainerHovered, !1), s.selectAll(`.${G.eventBarHoverZone}`).attr("fill-opacity", 0);
23331
+ const i = s.selectAll(`.${G.eventBar}`);
23211
23332
  i.attr("fill", `url(#${De.transparencyGradient}-${e})`), i.attr("fill-opacity", 1);
23212
23333
  },
23213
23334
  drawTextLabel({
@@ -23226,8 +23347,13 @@ const Ih = _h.exports, H = {
23226
23347
  w: this.labelRectWidth,
23227
23348
  h: n || this.barChartHeight,
23228
23349
  radius: 3
23229
- }, o = s.append("g").attr("class", `${H.labelGroup} ${H.labelGroup}-${r}`).style("cursor", "pointer").on("click", () => this.toggleGroupVisibility(r));
23230
- o.append("rect").attr("class", H.labelBg).attr("data-color", t).attr("x", a.x).attr("y", a.y).attr("width", a.w).attr("height", a.h).attr("rx", a.radius).attr("ry", a.radius).style("fill", this.dark ? "#131a29" : "white"), o.append("rect").attr("class", H.labelBgFill).attr("data-color", t).attr("x", a.x).attr("y", a.y).attr("width", a.w).attr("height", a.h).attr("rx", a.radius).attr("ry", a.radius).style("fill", this.getLabelBackgroundColor(t)).style("stroke", this.getTextFillColor(t)).style("stroke-width", 0.25), o.append("text").attr("class", H.labelText).attr("data-color", t).attr("x", 5).attr("y", e + (n || this.barChartHeight) / 2).attr("dy", "0.35em").style("text-anchor", "start").style("font-size", "12px").style("font-weight", 500).style("stroke-linejoin", "round").style("paint-order", "stroke").style("fill", this.getTextFillColor(t)).text(i);
23350
+ }, o = s.append("g").attr("class", `${G.labelGroup} ${G.labelGroup}-${r}`).style("cursor", "pointer").on("click", () => this.toggleGroupVisibility(r));
23351
+ o.append("rect").attr("class", G.labelBg).attr("data-color", t).attr("x", a.x).attr("y", a.y).attr("width", a.w).attr("height", a.h).attr("rx", a.radius).attr("ry", a.radius).style("fill", this.dark ? "#131a29" : "white"), o.append("rect").attr("class", G.labelBgFill).attr("data-color", t).attr("x", a.x).attr("y", a.y).attr("width", a.w).attr("height", a.h).attr("rx", a.radius).attr("ry", a.radius).style("fill", this.getLabelBackgroundColor(t)).style("stroke", this.getTextFillColor(t)).style("stroke-width", 0.25), o.append("text").attr("class", G.labelText).attr("data-color", t).attr("x", 5).attr("y", e + (n || this.barChartHeight) / 2).attr("dy", "0.35em").style("text-anchor", "start").style("font-size", "12px").style("font-weight", 500).style("stroke-linejoin", "round").style("paint-order", "stroke").style("fill", this.getTextFillColor(t)).text(i);
23352
+ },
23353
+ getSortedEvents(s) {
23354
+ return [...s].sort(
23355
+ (e, t) => new Date(e.timestamp || e.startDate) > new Date(t.timestamp || t.startDate) ? 1 : -1
23356
+ );
23231
23357
  },
23232
23358
  getTextFillColor(s, e = 0) {
23233
23359
  var t, i;
@@ -23348,8 +23474,8 @@ var kh = function() {
23348
23474
  return [e._v(" " + e._s(i.label) + " ")];
23349
23475
  }, { marker: i })], 2)]), t("div", { staticClass: "marker-line e-absolute e-pointer-events-none", style: e.getMarkerLineStyle(i) })]);
23350
23476
  }), e.autoResize ? t("div", { directives: [{ name: "resize-observer", rawName: "v-resize-observer", value: e.onResize, expression: "onResize" }], ref: "timelineContainer", staticClass: "e-timeline__svg-container e-relative e-h-13 e-rounded e-select-none e-overflow-x-hidden" }) : t("div", { ref: "timelineContainer", staticClass: "e-timeline__svg-container e-relative e-h-13 e-rounded e-select-none e-overflow-x-hidden" }), e._l(e.milestonesGroups, function(i, r) {
23351
- return t("div", { key: r, staticClass: "e-timeline-milestones" }, [t("div", { class: `e-tl-milestones e-tl-milestones-${r}` }, e._l(i.events, function(n, a) {
23352
- return t("ETimelineMilestone", { key: `${n.milestoneType}-${a}`, class: e.getMilestoneClass(n), attrs: { size: n.size || e.milestoneBulletSize, milestone: n, "background-color": e.getMilestoneColors(n.color, i.color).background, "border-color": e.getMilestoneColors(n.color, i.color).border }, on: { "milestone-click": function(o) {
23477
+ return t("div", { key: `${r}`, staticClass: "e-timeline-milestones" }, [t("div", { class: `e-tl-milestones e-tl-milestones-${r}` }, e._l(e.getSortedEvents(i.events), function(n, a) {
23478
+ return t("ETimelineMilestone", { key: `${n.milestoneType}-${a}`, class: e.getMilestoneClass(n), attrs: { milestone: n, dot: i.dots, size: n.size || e.milestoneBulletSize, "transition-duration": i.milestonesTransitionDuration, "line-height": i.milestonesLineHeight, "hovered-line-height": i.milestonesHoveredLineHeight, "dot-size": i.milestonesDotSize, "background-color": e.getMilestoneColors(n.color, i.color).background, "border-color": e.getMilestoneColors(n.color, i.color).border }, on: { "milestone-click": function(o) {
23353
23479
  return e.onMilestoneClick(n, r);
23354
23480
  } }, scopedSlots: e._u([{ key: "content", fn: function() {
23355
23481
  return [e._t(`milestoneContent.${n.milestoneType}`, function() {
@@ -23363,14 +23489,14 @@ var kh = function() {
23363
23489
  return t("div", { key: i, staticClass: "external-label", class: e.classes.background, style: e.getExternalLabelWrapperStyles(i), on: { click: function(r) {
23364
23490
  return e.toggleGroupVisibility(i);
23365
23491
  } } }, [t("div", { staticClass: "external-label__content", style: e.getExternalLabelStyles(i) }, [e._v(" " + e._s(i) + " ")])]);
23366
- }), 0), t("div", { ref: "tooltip", staticClass: "e-absolute", style: e.eventTooltipStyle }, [e._t("tooltip", function() {
23492
+ }), 0), t("div", { key: "tooltip", ref: "tooltip", staticClass: "e-absolute", style: e.eventTooltipStyle }, [e._t("tooltip", function() {
23367
23493
  return [t("div", { directives: [{ name: "show", rawName: "v-show", value: e.isHoveringTimeline && !e.isHoveringEvent && !e.isInteractingWithCurtain && !e.cursorTimestamp, expression: `
23368
23494
  isHoveringTimeline &&
23369
23495
  !isHoveringEvent &&
23370
23496
  !isInteractingWithCurtain &&
23371
23497
  !cursorTimestamp
23372
23498
  ` }], staticClass: "e-timeline__tooltip e-border e-rounded e-px-2 -e-left-2/4 e-relative", class: e.classes.tooltipSlot }, [e._v(" " + e._s(e.hoveredTimestamp) + " ")])];
23373
- }, { timestamp: e.hoveredTimestamp, active: e.isHoveringTimeline && !e.isInteractingWithCurtain && !e.cursorTimestamp })], 2), t("div", { ref: "eventPreviewTooltip", staticClass: "e-absolute e-z-50", style: e.eventTooltipStyle }, [e._t("eventTooltip", function() {
23499
+ }, { timestamp: e.hoveredTimestamp, active: e.isHoveringTimeline && !e.isInteractingWithCurtain && !e.cursorTimestamp })], 2), t("div", { key: "eventTooltip", staticClass: "e-absolute e-z-50", style: e.eventTooltipStyle }, [e._t("eventTooltip", function() {
23374
23500
  return [e.showEventTooltip && (e.hoveredEvent || e.hoveredCounts.length) ? t("div", { directives: [{ name: "show", rawName: "v-show", value: e.isHoveringEvent && !e.isInteractingWithCurtain, expression: "isHoveringEvent && !isInteractingWithCurtain" }], staticClass: "e-timeline__event-tooltip e-border e-rounded e-px-2 -e-left-2/4 e-relative", class: e.classes.eventTooltipSlot }, [e.hoveredCounts.length ? t("div", [t("strong", [e._v("Timestamp")]), e._v(": " + e._s(e.hoveredEvent.timestamp) + " "), e._l(e.hoveredCounts, function(i, r) {
23375
23501
  return t("div", { key: r }, [t("strong", [e._v(e._s(i.type) + " Count")]), e._v(": " + e._s(i.count) + " ")]);
23376
23502
  })], 2) : e.hoveredEvent ? t("div", [e.hoveredEvent.timestamp ? t("div", [t("strong", [e._v("Event time")]), e._v(": " + e._s(e.hoveredEvent.timestamp) + " ")]) : e._e(), e.hoveredEvent.startDate ? t("div", [t("strong", [e._v("From")]), e._v(":" + e._s(e.hoveredEvent.startDate) + " ")]) : e._e(), e.hoveredEvent.endDate ? t("div", [t("strong", [e._v("To")]), e._v(":" + e._s(e.hoveredEvent.endDate) + " ")]) : e._e()]) : e._e()]) : e._e()];