@taskctrl/canvas-timeline 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
- import { jsx as se, jsxs as Ze, Fragment as At } from "react/jsx-runtime";
2
- import ge, { useRef as z, useCallback as ie, useEffect as he, forwardRef as ci, useMemo as oe, useState as xe, useImperativeHandle as ui } from "react";
3
- import { flushSync as di } from "react-dom";
1
+ import { jsx as se, jsxs as Ae, Fragment as At } from "react/jsx-runtime";
2
+ import ge, { useRef as x, useCallback as ie, useEffect as he, forwardRef as di, useMemo as oe, useState as Ve, useImperativeHandle as ui } from "react";
3
+ import { flushSync as hi } from "react-dom";
4
4
  import pe from "dayjs";
5
5
  const we = {
6
6
  primary: "#269bf7",
@@ -106,7 +106,7 @@ class lt {
106
106
  return this.groupCount * this.lineHeight;
107
107
  }
108
108
  }
109
- class hi {
109
+ class fi {
110
110
  constructor() {
111
111
  Object.defineProperty(this, "root", {
112
112
  enumerable: !0,
@@ -116,10 +116,10 @@ class hi {
116
116
  });
117
117
  }
118
118
  buildFromItems(e, t, n) {
119
- const r = e.map((d) => ({
120
- item: d,
121
- start: t(d),
122
- end: n(d)
119
+ const r = e.map((u) => ({
120
+ item: u,
121
+ start: t(u),
122
+ end: n(u)
123
123
  }));
124
124
  this.root = this.buildNode(r);
125
125
  }
@@ -129,14 +129,14 @@ class hi {
129
129
  let t = 1 / 0, n = -1 / 0;
130
130
  for (const c of e)
131
131
  c.start < t && (t = c.start), c.end > n && (n = c.end);
132
- const r = (t + n) / 2, d = [], l = [], u = [];
132
+ const r = (t + n) / 2, u = [], a = [], d = [];
133
133
  for (const c of e)
134
- c.end < r ? d.push(c) : c.start > r ? l.push(c) : u.push(c);
134
+ c.end < r ? u.push(c) : c.start > r ? a.push(c) : d.push(c);
135
135
  return {
136
136
  center: r,
137
- left: this.buildNode(d),
138
- right: this.buildNode(l),
139
- overlapping: u
137
+ left: this.buildNode(u),
138
+ right: this.buildNode(a),
139
+ overlapping: d
140
140
  };
141
141
  }
142
142
  query(e, t) {
@@ -145,13 +145,13 @@ class hi {
145
145
  }
146
146
  queryNode(e, t, n, r) {
147
147
  if (e !== null) {
148
- for (const d of e.overlapping)
149
- d.start <= n && d.end >= t && r.push(d.item);
148
+ for (const u of e.overlapping)
149
+ u.start <= n && u.end >= t && r.push(u.item);
150
150
  t <= e.center && e.left !== null && this.queryNode(e.left, t, n, r), n >= e.center && e.right !== null && this.queryNode(e.right, t, n, r);
151
151
  }
152
152
  }
153
153
  }
154
- class fi {
154
+ class mi {
155
155
  constructor(e, t) {
156
156
  Object.defineProperty(this, "lineHeight", {
157
157
  enumerable: !0,
@@ -177,52 +177,52 @@ class fi {
177
177
  }
178
178
  computeLayout(e, t, n) {
179
179
  this.layoutCache = /* @__PURE__ */ new Map(), this.groupMaxStack = /* @__PURE__ */ new Map();
180
- const r = this.lineHeight * this.itemHeightRatio, d = r * 0.6;
180
+ const r = this.lineHeight * this.itemHeightRatio, u = r * 0.6;
181
181
  if (!t) {
182
- for (const u of e) {
183
- const c = (n == null ? void 0 : n.isParent(u.id)) ?? !1;
184
- this.layoutCache.set(u.id, { stackLevel: 0, itemHeight: c ? d : r }), this.groupMaxStack.set(u.group, 0);
182
+ for (const d of e) {
183
+ const c = (n == null ? void 0 : n.isParent(d.id)) ?? !1;
184
+ this.layoutCache.set(d.id, { stackLevel: 0, itemHeight: c ? u : r }), this.groupMaxStack.set(d.group, 0);
185
185
  }
186
186
  return this.layoutCache;
187
187
  }
188
- const l = /* @__PURE__ */ new Map();
189
- for (const u of e) {
190
- let c = l.get(u.group);
191
- c || (c = [], l.set(u.group, c)), c.push(u);
188
+ const a = /* @__PURE__ */ new Map();
189
+ for (const d of e) {
190
+ let c = a.get(d.group);
191
+ c || (c = [], a.set(d.group, c)), c.push(d);
192
192
  }
193
- for (const [u, c] of l)
194
- n ? this.computeHierarchyLayout(c, n, r, d, u) : this.computeFlatLayout(c, r, u);
193
+ for (const [d, c] of a)
194
+ n ? this.computeHierarchyLayout(c, n, r, u, d) : this.computeFlatLayout(c, r, d);
195
195
  return this.layoutCache;
196
196
  }
197
197
  computeFlatLayout(e, t, n) {
198
- e.sort((l, u) => {
199
- const c = l.start_time - u.start_time;
200
- return c !== 0 ? c : u.end_time - u.start_time - (l.end_time - l.start_time);
198
+ e.sort((a, d) => {
199
+ const c = a.start_time - d.start_time;
200
+ return c !== 0 ? c : d.end_time - d.start_time - (a.end_time - a.start_time);
201
201
  });
202
202
  const r = [];
203
- let d = 0;
204
- for (const l of e) {
205
- let u = -1;
203
+ let u = 0;
204
+ for (const a of e) {
205
+ let d = -1;
206
206
  for (let c = 0; c < r.length; c++)
207
- if (r[c] <= l.start_time) {
208
- u = c;
207
+ if (r[c] <= a.start_time) {
208
+ d = c;
209
209
  break;
210
210
  }
211
- u === -1 ? (u = r.length, r.push(l.end_time)) : r[u] = l.end_time, u > d && (d = u), this.layoutCache.set(l.id, { stackLevel: u, itemHeight: t });
211
+ d === -1 ? (d = r.length, r.push(a.end_time)) : r[d] = a.end_time, d > u && (u = d), this.layoutCache.set(a.id, { stackLevel: d, itemHeight: t });
212
212
  }
213
- this.groupMaxStack.set(n, d);
213
+ this.groupMaxStack.set(n, u);
214
214
  }
215
- computeHierarchyLayout(e, t, n, r, d) {
216
- const l = [], u = [];
215
+ computeHierarchyLayout(e, t, n, r, u) {
216
+ const a = [], d = [];
217
217
  for (const g of e)
218
- t.isParent(g.id) ? u.push(g) : l.push(g);
219
- l.sort((g, b) => {
218
+ t.isParent(g.id) ? d.push(g) : a.push(g);
219
+ a.sort((g, b) => {
220
220
  const T = g.start_time - b.start_time;
221
221
  return T !== 0 ? T : b.end_time - b.start_time - (g.end_time - g.start_time);
222
222
  });
223
223
  const c = [];
224
224
  let v = 0;
225
- for (const g of l) {
225
+ for (const g of a) {
226
226
  let b = -1;
227
227
  for (let T = 0; T < c.length; T++)
228
228
  if (c[T] <= g.start_time) {
@@ -231,11 +231,11 @@ class fi {
231
231
  }
232
232
  b === -1 ? (b = c.length, c.push(g.end_time)) : c[b] = g.end_time, b > v && (v = b), this.layoutCache.set(g.id, { stackLevel: b, itemHeight: n });
233
233
  }
234
- u.sort((g, b) => t.getNestingDepth(b.id) - t.getNestingDepth(g.id));
235
- let M = l.length > 0 ? v + 1 : 0;
236
- for (const g of u)
234
+ d.sort((g, b) => t.getNestingDepth(b.id) - t.getNestingDepth(g.id));
235
+ let M = a.length > 0 ? v + 1 : 0;
236
+ for (const g of d)
237
237
  this.layoutCache.set(g.id, { stackLevel: M, itemHeight: r }), M > v && (v = M), M++;
238
- this.groupMaxStack.set(d, v);
238
+ this.groupMaxStack.set(u, v);
239
239
  }
240
240
  getLayout(e) {
241
241
  return this.layoutCache.get(e);
@@ -244,7 +244,7 @@ class fi {
244
244
  return ((this.groupMaxStack.get(e) ?? 0) + 1) * this.lineHeight;
245
245
  }
246
246
  }
247
- class mi {
247
+ class gi {
248
248
  constructor() {
249
249
  Object.defineProperty(this, "parentToChildren", {
250
250
  enumerable: !0,
@@ -283,12 +283,12 @@ class mi {
283
283
  let r = t;
284
284
  for (; r !== void 0; ) {
285
285
  if (n.has(r)) {
286
- const d = this.childToParent.get(t);
286
+ const u = this.childToParent.get(t);
287
287
  this.childToParent.delete(t);
288
- const l = this.parentToChildren.get(d);
289
- if (l) {
290
- const u = l.indexOf(t);
291
- u !== -1 && l.splice(u, 1), l.length === 0 && this.parentToChildren.delete(d);
288
+ const a = this.parentToChildren.get(u);
289
+ if (a) {
290
+ const d = a.indexOf(t);
291
+ d !== -1 && a.splice(d, 1), a.length === 0 && this.parentToChildren.delete(u);
292
292
  }
293
293
  break;
294
294
  }
@@ -311,8 +311,8 @@ class mi {
311
311
  for (; n.length > 0; ) {
312
312
  const r = n.pop();
313
313
  t.push(r);
314
- const d = this.parentToChildren.get(r);
315
- d && n.push(...d);
314
+ const u = this.parentToChildren.get(r);
315
+ u && n.push(...u);
316
316
  }
317
317
  return t;
318
318
  }
@@ -321,10 +321,10 @@ class mi {
321
321
  if (!t)
322
322
  return { start: 0, end: 0 };
323
323
  let n = t.start_time, r = t.end_time;
324
- const d = this.getDescendants(e);
325
- for (const l of d) {
326
- const u = this.itemMap.get(l);
327
- u && (u.start_time < n && (n = u.start_time), u.end_time > r && (r = u.end_time));
324
+ const u = this.getDescendants(e);
325
+ for (const a of u) {
326
+ const d = this.itemMap.get(a);
327
+ d && (d.start_time < n && (n = d.start_time), d.end_time > r && (r = d.end_time));
328
328
  }
329
329
  return { start: n, end: r };
330
330
  }
@@ -342,9 +342,9 @@ class mi {
342
342
  if (!n)
343
343
  return [];
344
344
  const r = t - n.start_time;
345
- return this.getDescendants(e).map((l) => {
346
- const u = this.itemMap.get(l);
347
- return { itemId: l, newStart: u.start_time + r };
345
+ return this.getDescendants(e).map((a) => {
346
+ const d = this.itemMap.get(a);
347
+ return { itemId: a, newStart: d.start_time + r };
348
348
  });
349
349
  }
350
350
  getResizeConstraint(e, t) {
@@ -353,45 +353,45 @@ class mi {
353
353
  return t === "left" ? { min: -1 / 0, max: 1 / 0 } : { min: -1 / 0, max: 1 / 0 };
354
354
  if (t === "left") {
355
355
  let r = 1 / 0;
356
- for (const d of n) {
357
- const l = this.itemMap.get(d);
358
- l && l.start_time < r && (r = l.start_time);
356
+ for (const u of n) {
357
+ const a = this.itemMap.get(u);
358
+ a && a.start_time < r && (r = a.start_time);
359
359
  }
360
360
  return { min: -1 / 0, max: r };
361
361
  } else {
362
362
  let r = -1 / 0;
363
- for (const d of n) {
364
- const l = this.itemMap.get(d);
365
- l && l.end_time > r && (r = l.end_time);
363
+ for (const u of n) {
364
+ const a = this.itemMap.get(u);
365
+ a && a.end_time > r && (r = a.end_time);
366
366
  }
367
367
  return { min: r, max: 1 / 0 };
368
368
  }
369
369
  }
370
370
  }
371
- function gi(i, e, t, n, r, d) {
372
- const { x: l, y: u, width: c, height: v } = t, M = d.primary;
373
- i.globalAlpha = 0.15, i.fillStyle = M, i.fillRect(l, u, c, v), i.globalAlpha = 1, i.strokeStyle = M, i.lineWidth = 1.5, i.strokeRect(l, u, c, v);
374
- const g = Math.min(v * 0.5, 6), b = u + v / 2;
375
- i.fillStyle = M, i.beginPath(), i.moveTo(l, b), i.lineTo(l + g, b - g), i.lineTo(l + g * 2, b), i.lineTo(l + g, b + g), i.closePath(), i.fill(), i.beginPath(), i.moveTo(l + c, b), i.lineTo(l + c - g, b - g), i.lineTo(l + c - g * 2, b), i.lineTo(l + c - g, b + g), i.closePath(), i.fill();
371
+ function pi(i, e, t, n, r, u) {
372
+ const { x: a, y: d, width: c, height: v } = t, M = u.primary;
373
+ i.globalAlpha = 0.15, i.fillStyle = M, i.fillRect(a, d, c, v), i.globalAlpha = 1, i.strokeStyle = M, i.lineWidth = 1.5, i.strokeRect(a, d, c, v);
374
+ const g = Math.min(v * 0.5, 6), b = d + v / 2;
375
+ i.fillStyle = M, i.beginPath(), i.moveTo(a, b), i.lineTo(a + g, b - g), i.lineTo(a + g * 2, b), i.lineTo(a + g, b + g), i.closePath(), i.fill(), i.beginPath(), i.moveTo(a + c, b), i.lineTo(a + c - g, b - g), i.lineTo(a + c - g * 2, b), i.lineTo(a + c - g, b + g), i.closePath(), i.fill();
376
376
  const T = e.title;
377
377
  if (T && c > 30) {
378
- i.fillStyle = d.item.text, i.font = '500 11px -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif', i.textBaseline = "middle";
378
+ i.fillStyle = u.item.text, i.font = '500 11px -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif', i.textBaseline = "middle";
379
379
  const C = i.measureText(T).width, I = c - g * 4 - 4;
380
380
  if (I > 20) {
381
381
  const W = C > I ? T.slice(0, Math.floor(T.length * I / C)) + "..." : T;
382
- i.fillText(W, l + c / 2 - Math.min(C, I) / 2, b);
382
+ i.fillText(W, a + c / 2 - Math.min(C, I) / 2, b);
383
383
  }
384
384
  }
385
- n.selected && (i.strokeStyle = d.item.selectedRing, i.lineWidth = 2, i.strokeRect(l - 1, u - 1, c + 2, v + 2));
385
+ n.selected && (i.strokeStyle = u.item.selectedRing, i.lineWidth = 2, i.strokeRect(a - 1, d - 1, c + 2, v + 2));
386
386
  }
387
- function Le(i, e, t, n, r, d) {
388
- const l = t.xToTime(i), u = /* @__PURE__ */ new Map();
389
- for (let g = 0; g < d.length; g++)
390
- u.set(d[g].id, g);
391
- const c = n.query(l, l);
387
+ function Le(i, e, t, n, r, u) {
388
+ const a = t.xToTime(i), d = /* @__PURE__ */ new Map();
389
+ for (let g = 0; g < u.length; g++)
390
+ d.set(u[g].id, g);
391
+ const c = n.query(a, a);
392
392
  let v = null, M = -1 / 0;
393
393
  for (const g of c) {
394
- const b = u.get(g.group);
394
+ const b = d.get(g.group);
395
395
  if (b === void 0)
396
396
  continue;
397
397
  const T = r.getLayout(g.id);
@@ -400,8 +400,8 @@ function Le(i, e, t, n, r, d) {
400
400
  const C = t.timeToX(g.start_time), I = t.timeToX(g.end_time) - C;
401
401
  if (i < C || i > C + I)
402
402
  continue;
403
- const $ = t.groupIndexToY(b) + T.stackLevel * t.lineHeight + (t.lineHeight - T.itemHeight) / 2, S = T.itemHeight;
404
- e < $ || e > $ + S || $ > M && (M = $, v = g);
403
+ const z = t.groupIndexToY(b) + T.stackLevel * t.lineHeight + (t.lineHeight - T.itemHeight) / 2, S = T.itemHeight;
404
+ e < z || e > z + S || z > M && (M = z, v = g);
405
405
  }
406
406
  return v;
407
407
  }
@@ -410,20 +410,20 @@ function at(i, e, t) {
410
410
  return t[n] ?? null;
411
411
  }
412
412
  function Dt(i, e, t, n = 6) {
413
- const r = t.timeToX(e.start_time), d = t.timeToX(e.end_time);
414
- return i - r <= n ? "left" : d - i <= n ? "right" : "body";
413
+ const r = t.timeToX(e.start_time), u = t.timeToX(e.end_time);
414
+ return i - r <= n ? "left" : u - i <= n ? "right" : "body";
415
415
  }
416
416
  function ct(i, e, t) {
417
- const n = window.devicePixelRatio || 1, r = Math.round(e * n), d = Math.round(t * n);
418
- (i.width !== r || i.height !== d) && (i.width = r, i.height = d, i.style.width = `${e}px`, i.style.height = `${t}px`);
419
- const l = i.getContext("2d");
420
- return l.setTransform(n, 0, 0, n, 0, 0), l;
417
+ const n = window.devicePixelRatio || 1, r = Math.round(e * n), u = Math.round(t * n);
418
+ (i.width !== r || i.height !== u) && (i.width = r, i.height = u, i.style.width = `${e}px`, i.style.height = `${t}px`);
419
+ const a = i.getContext("2d");
420
+ return a.setTransform(n, 0, 0, n, 0, 0), a;
421
421
  }
422
- function ut(i, e) {
422
+ function dt(i, e) {
423
423
  const t = window.devicePixelRatio || 1;
424
424
  i.clearRect(0, 0, e.width / t, e.height / t);
425
425
  }
426
- class pi {
426
+ class vi {
427
427
  constructor(e) {
428
428
  Object.defineProperty(this, "dirty", {
429
429
  enumerable: !0,
@@ -459,24 +459,24 @@ class pi {
459
459
  }));
460
460
  }
461
461
  }
462
- class vi {
463
- draw(e, t, n, r, d, l, u) {
462
+ class bi {
463
+ draw(e, t, n, r, u, a, d) {
464
464
  const { firstVisible: c, lastVisible: v } = t.getVisibleGroupRange();
465
465
  for (let S = c; S <= v; S++) {
466
466
  const _ = t.groupIndexToY(S), B = n[S];
467
467
  if (!B)
468
468
  continue;
469
469
  let Y;
470
- const x = l == null ? void 0 : l(B);
471
- x != null && x.backgroundColor ? Y = x.backgroundColor : Y = S % 2 === 0 ? "#FFFFFF" : r.grid.rowAlt, e.fillStyle = Y, e.fillRect(0, _, t.canvasWidth, t.lineHeight), e.strokeStyle = (x == null ? void 0 : x.borderBottomColor) ?? r.grid.line, e.lineWidth = 0.5, e.beginPath(), e.moveTo(0, _ + t.lineHeight), e.lineTo(t.canvasWidth, _ + t.lineHeight), e.stroke();
470
+ const G = a == null ? void 0 : a(B);
471
+ G != null && G.backgroundColor ? Y = G.backgroundColor : Y = S % 2 === 0 ? "#FFFFFF" : r.grid.rowAlt, e.fillStyle = Y, e.fillRect(0, _, t.canvasWidth, t.lineHeight), e.strokeStyle = (G == null ? void 0 : G.borderBottomColor) ?? r.grid.line, e.lineWidth = 0.5, e.beginPath(), e.moveTo(0, _ + t.lineHeight), e.lineTo(t.canvasWidth, _ + t.lineHeight), e.stroke();
472
472
  }
473
- if (u && u.length > 0)
474
- for (const S of u) {
473
+ if (d && d.length > 0)
474
+ for (const S of d) {
475
475
  const _ = t.timeToX(S.start), B = t.timeToX(S.end);
476
476
  if (B < 0 || _ > t.canvasWidth)
477
477
  continue;
478
- const Y = Math.max(0, _), x = Math.min(t.canvasWidth, B) - Y, ne = S.opacity ?? 0.12, P = parseInt(S.color.slice(1, 3), 16), L = parseInt(S.color.slice(3, 5), 16), Z = parseInt(S.color.slice(5, 7), 16);
479
- e.fillStyle = `rgb(${Math.round(P * ne + 255 * (1 - ne))},${Math.round(L * ne + 255 * (1 - ne))},${Math.round(Z * ne + 255 * (1 - ne))})`, e.fillRect(Y, 0, x, t.canvasHeight);
478
+ const Y = Math.max(0, _), G = Math.min(t.canvasWidth, B) - Y, ne = S.opacity ?? 0.12, P = parseInt(S.color.slice(1, 3), 16), L = parseInt(S.color.slice(3, 5), 16), Z = parseInt(S.color.slice(5, 7), 16);
479
+ e.fillStyle = `rgb(${Math.round(P * ne + 255 * (1 - ne))},${Math.round(L * ne + 255 * (1 - ne))},${Math.round(Z * ne + 255 * (1 - ne))})`, e.fillRect(Y, 0, G, t.canvasHeight);
480
480
  }
481
481
  const M = t.visibleTimeStart, g = t.visibleTimeEnd, C = 864e5 / (g - M) * t.canvasWidth;
482
482
  let I = "day";
@@ -484,66 +484,66 @@ class vi {
484
484
  {
485
485
  let S = pe(M).startOf("day");
486
486
  const _ = pe(g).endOf("day");
487
- let B = null, Y = 1, x = 0;
487
+ let B = null, Y = 1, G = 0;
488
488
  const ne = [], P = (L) => {
489
- B !== null && (e.fillStyle = B, Y !== 1 && (e.globalAlpha = Y), e.fillRect(x, 0, L - x, t.canvasHeight), Y !== 1 && (e.globalAlpha = 1), B = null, Y = 1);
489
+ B !== null && (e.fillStyle = B, Y !== 1 && (e.globalAlpha = Y), e.fillRect(G, 0, L - G, t.canvasHeight), Y !== 1 && (e.globalAlpha = 1), B = null, Y = 1);
490
490
  };
491
491
  for (; S.isBefore(_); ) {
492
- const L = t.timeToX(S.valueOf()), Z = S.toDate(), K = d == null ? void 0 : d(Z);
493
- let te = null, ue = 1;
492
+ const L = t.timeToX(S.valueOf()), Z = S.toDate(), K = u == null ? void 0 : u(Z);
493
+ let te = null, de = 1;
494
494
  if (K != null && K.backgroundColor)
495
- te = K.backgroundColor, ue = K.opacity ?? 1;
495
+ te = K.backgroundColor, de = K.opacity ?? 1;
496
496
  else {
497
497
  const ve = S.day();
498
498
  (ve === 0 || ve === 6) && (te = r.grid.weekend);
499
499
  }
500
- K != null && K.borderColor && ne.push({ x: L, color: K.borderColor }), te === B && ue === Y || (P(L), te !== null && (B = te, Y = ue, x = L)), S = S.add(1, "day");
500
+ K != null && K.borderColor && ne.push({ x: L, color: K.borderColor }), te === B && de === Y || (P(L), te !== null && (B = te, Y = de, G = L)), S = S.add(1, "day");
501
501
  }
502
502
  B !== null && P(t.timeToX(S.valueOf()));
503
503
  for (const L of ne)
504
504
  e.strokeStyle = L.color, e.lineWidth = 0.5, e.beginPath(), e.moveTo(L.x, 0), e.lineTo(L.x, t.canvasHeight), e.stroke();
505
505
  }
506
506
  let W = pe(M).startOf(I);
507
- const $ = pe(g).add(1, I);
508
- for (e.strokeStyle = r.grid.line, e.lineWidth = 0.5, e.beginPath(); W.isBefore($); ) {
507
+ const z = pe(g).add(1, I);
508
+ for (e.strokeStyle = r.grid.line, e.lineWidth = 0.5, e.beginPath(); W.isBefore(z); ) {
509
509
  const S = t.timeToX(W.valueOf());
510
510
  e.moveTo(S, 0), e.lineTo(S, t.canvasHeight), W = W.add(1, I);
511
511
  }
512
- if (e.stroke(), u && u.length > 0)
513
- for (const S of u) {
512
+ if (e.stroke(), d && d.length > 0)
513
+ for (const S of d) {
514
514
  const _ = t.timeToX(S.start), B = t.timeToX(S.end);
515
515
  if (!(B < 0 || _ > t.canvasWidth) && (e.strokeStyle = S.color, e.globalAlpha = 0.4, e.lineWidth = 1, e.beginPath(), _ >= 0 && _ <= t.canvasWidth && (e.moveTo(_, 0), e.lineTo(_, t.canvasHeight)), B >= 0 && B <= t.canvasWidth && (e.moveTo(B, 0), e.lineTo(B, t.canvasHeight)), e.stroke(), e.globalAlpha = 1, S.label)) {
516
- const Y = Math.max(0, _), x = Math.min(t.canvasWidth, B) - Y;
516
+ const Y = Math.max(0, _), G = Math.min(t.canvasWidth, B) - Y;
517
517
  e.save(), e.font = '600 10px -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif';
518
- const ne = e.measureText(S.label).width, P = 6, L = ne + P * 2, Z = 18, K = Y + (x - L) / 2, te = 4;
518
+ const ne = e.measureText(S.label).width, P = 6, L = ne + P * 2, Z = 18, K = Y + (G - L) / 2, te = 4;
519
519
  e.fillStyle = S.color, e.globalAlpha = 0.9, e.beginPath(), e.roundRect(K, te, L, Z, 3), e.fill(), e.globalAlpha = 1, e.fillStyle = "#FFFFFF", e.textBaseline = "middle", e.fillText(S.label, K + P, te + Z / 2), e.restore();
520
520
  }
521
521
  }
522
522
  }
523
523
  }
524
- const Ot = '500 12px -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif';
524
+ const Ft = '500 12px -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif';
525
525
  function Yt(i, e) {
526
526
  return {
527
527
  /**
528
528
  * Draws a filled rounded rectangle.
529
529
  * Default corner radius is 3px.
530
530
  */
531
- roundRect(t, n, r, d, l = 3) {
532
- i.beginPath(), i.roundRect(t, n, r, d, l), i.fill();
531
+ roundRect(t, n, r, u, a = 3) {
532
+ i.beginPath(), i.roundRect(t, n, r, u, a), i.fill();
533
533
  },
534
534
  /**
535
535
  * Draws text at (x, y) using the standard item font.
536
536
  * If maxWidth is provided and the text is too wide, binary-search truncates it
537
537
  * and appends '...' so it fits within maxWidth.
538
538
  */
539
- fillText(t, n, r, d) {
540
- if (i.font = Ot, d !== void 0 && i.measureText(t).width > d) {
541
- let l = 0, u = t.length;
542
- for (; l < u; ) {
543
- const c = Math.ceil((l + u) / 2), v = t.slice(0, c) + "...";
544
- i.measureText(v).width <= d ? l = c : u = c - 1;
539
+ fillText(t, n, r, u) {
540
+ if (i.font = Ft, u !== void 0 && i.measureText(t).width > u) {
541
+ let a = 0, d = t.length;
542
+ for (; a < d; ) {
543
+ const c = Math.ceil((a + d) / 2), v = t.slice(0, c) + "...";
544
+ i.measureText(v).width <= u ? a = c : d = c - 1;
545
545
  }
546
- i.fillText(t.slice(0, l) + "...", n, r);
546
+ i.fillText(t.slice(0, a) + "...", n, r);
547
547
  } else
548
548
  i.fillText(t, n, r);
549
549
  },
@@ -551,9 +551,9 @@ function Yt(i, e) {
551
551
  * Creates a 50/50 linear gradient from color1 (0%–50%) to color2 (50%–100%)
552
552
  * spanning the given x position and width.
553
553
  */
554
- gradient(t, n, r, d) {
555
- const l = i.createLinearGradient(t, 0, t + n, 0);
556
- return l.addColorStop(0, r), l.addColorStop(0.5, r), l.addColorStop(0.5, d), l.addColorStop(1, d), l;
554
+ gradient(t, n, r, u) {
555
+ const a = i.createLinearGradient(t, 0, t + n, 0);
556
+ return a.addColorStop(0, r), a.addColorStop(0.5, r), a.addColorStop(0.5, u), a.addColorStop(1, u), a;
557
557
  },
558
558
  /**
559
559
  * Draws a vertical colored bar on the left edge of the item bounds.
@@ -567,48 +567,48 @@ function Yt(i, e) {
567
567
  * Supported types: 'check', 'danger-red', 'danger-yellow'.
568
568
  * Default size is 14px.
569
569
  */
570
- icon(t, n, r, d = 14) {
570
+ icon(t, n, r, u = 14) {
571
571
  i.save();
572
- const l = d / 2;
572
+ const a = u / 2;
573
573
  if (t === "check") {
574
- i.fillStyle = "#31c48d", i.beginPath(), i.arc(n + l, r + l, l, 0, Math.PI * 2), i.fill(), i.strokeStyle = "#ffffff", i.lineWidth = d * 0.12, i.beginPath();
575
- const u = n + l, c = r + l;
576
- i.moveTo(u - l * 0.45, c), i.lineTo(u - l * 0.1, c + l * 0.42), i.lineTo(u + l * 0.45, c - l * 0.35), i.stroke();
574
+ i.fillStyle = "#31c48d", i.beginPath(), i.arc(n + a, r + a, a, 0, Math.PI * 2), i.fill(), i.strokeStyle = "#ffffff", i.lineWidth = u * 0.12, i.beginPath();
575
+ const d = n + a, c = r + a;
576
+ i.moveTo(d - a * 0.45, c), i.lineTo(d - a * 0.1, c + a * 0.42), i.lineTo(d + a * 0.45, c - a * 0.35), i.stroke();
577
577
  } else if (t === "danger-red" || t === "danger-yellow") {
578
- const u = t === "danger-red" ? "#EF5350" : "#FBBF24";
579
- i.fillStyle = u, i.beginPath(), i.moveTo(n + l, r), i.lineTo(n + d, r + d), i.lineTo(n, r + d), i.closePath(), i.fill(), i.fillStyle = "#ffffff";
580
- const c = d * 0.12, v = n + l - c / 2;
581
- i.fillRect(v, r + d * 0.35, c, d * 0.35), i.beginPath(), i.arc(n + l, r + d * 0.82, c * 0.7, 0, Math.PI * 2), i.fill();
578
+ const d = t === "danger-red" ? "#EF5350" : "#FBBF24";
579
+ i.fillStyle = d, i.beginPath(), i.moveTo(n + a, r), i.lineTo(n + u, r + u), i.lineTo(n, r + u), i.closePath(), i.fill(), i.fillStyle = "#ffffff";
580
+ const c = u * 0.12, v = n + a - c / 2;
581
+ i.fillRect(v, r + u * 0.35, c, u * 0.35), i.beginPath(), i.arc(n + a, r + u * 0.82, c * 0.7, 0, Math.PI * 2), i.fill();
582
582
  }
583
583
  i.restore();
584
584
  },
585
585
  /**
586
586
  * Draws a pill-shaped badge with centered white text on a colored background.
587
587
  */
588
- badge(t, n, r, d) {
589
- i.save(), i.font = Ot;
590
- const u = i.measureText(t).width, c = 8, M = 12 + 3 * 2, g = u + c * 2, b = M / 2;
591
- i.fillStyle = d, i.beginPath(), i.roundRect(n, r, g, M, b), i.fill(), i.fillStyle = "#ffffff", i.textAlign = "center", i.textBaseline = "middle", i.fillText(t, n + g / 2, r + M / 2), i.restore();
588
+ badge(t, n, r, u) {
589
+ i.save(), i.font = Ft;
590
+ const d = i.measureText(t).width, c = 8, M = 12 + 3 * 2, g = d + c * 2, b = M / 2;
591
+ i.fillStyle = u, i.beginPath(), i.roundRect(n, r, g, M, b), i.fill(), i.fillStyle = "#ffffff", i.textAlign = "center", i.textBaseline = "middle", i.fillText(t, n + g / 2, r + M / 2), i.restore();
592
592
  }
593
593
  };
594
594
  }
595
- class bi {
596
- draw(e, t, n, r, d, l, u, c, v, M, g, b, T, C) {
597
- const I = (t.visibleTimeEnd - t.visibleTimeStart) * 0.1, W = t.visibleTimeStart - I, $ = t.visibleTimeEnd + I, S = d.query(W, $), _ = /* @__PURE__ */ new Map();
595
+ class yi {
596
+ draw(e, t, n, r, u, a, d, c, v, M, g, b, T, C) {
597
+ const I = (t.visibleTimeEnd - t.visibleTimeStart) * 0.1, W = t.visibleTimeStart - I, z = t.visibleTimeEnd + I, S = u.query(W, z), _ = /* @__PURE__ */ new Map();
598
598
  for (let P = 0; P < n.length; P++)
599
599
  _.set(n[P].id, P);
600
- const B = new Set(M), Y = /* @__PURE__ */ new Map(), x = -t.lineHeight, ne = t.canvasHeight + t.lineHeight;
600
+ const B = new Set(M), Y = /* @__PURE__ */ new Map(), G = -t.lineHeight, ne = t.canvasHeight + t.lineHeight;
601
601
  for (const P of S) {
602
602
  const L = _.get(P.group);
603
603
  if (L === void 0)
604
604
  continue;
605
- const Z = l.getLayout(P.id);
605
+ const Z = a.getLayout(P.id);
606
606
  if (!Z)
607
607
  continue;
608
- const te = t.groupIndexToY(L) + Z.stackLevel * t.lineHeight + (t.lineHeight - Z.itemHeight) / 2, ue = Z.itemHeight;
609
- if (te + ue < x || te > ne)
608
+ const te = t.groupIndexToY(L) + Z.stackLevel * t.lineHeight + (t.lineHeight - Z.itemHeight) / 2, de = Z.itemHeight;
609
+ if (te + de < G || te > ne)
610
610
  continue;
611
- const ve = t.timeToX(P.start_time), He = t.timeToX(P.end_time) - ve, be = { x: ve, y: te, width: He, height: ue };
611
+ const ve = t.timeToX(P.start_time), He = t.timeToX(P.end_time) - ve, be = { x: ve, y: te, width: He, height: de };
612
612
  Y.set(P.id, be);
613
613
  const Ie = {
614
614
  selected: B.has(P.id),
@@ -617,9 +617,9 @@ class bi {
617
617
  filtered: P.filtered !== !1
618
618
  };
619
619
  e.save();
620
- const Ae = Yt(e, be);
620
+ const Ye = Yt(e, be);
621
621
  let Ee;
622
- T && (C != null && C.isParent(P.id)) ? Ee = T : c && (P.type === "control_area_group" || P.type === "construction_train") ? Ee = c : Ee = u, Ee(e, P, be, Ie, Ae), e.restore();
622
+ T && (C != null && C.isParent(P.id)) ? Ee = T : c && (P.type === "control_area_group" || P.type === "construction_train") ? Ee = c : Ee = d, Ee(e, P, be, Ie, Ye), e.restore();
623
623
  }
624
624
  if (b && b.length > 0) {
625
625
  const P = /* @__PURE__ */ new Set();
@@ -633,45 +633,45 @@ class bi {
633
633
  const te = _.get(K.group);
634
634
  if (te === void 0)
635
635
  continue;
636
- const ue = l.getLayout(Z);
637
- if (!ue)
636
+ const de = a.getLayout(Z);
637
+ if (!de)
638
638
  continue;
639
- const He = t.groupIndexToY(te) + ue.stackLevel * t.lineHeight + (t.lineHeight - ue.itemHeight) / 2, be = t.timeToX(K.start_time), Ie = t.timeToX(K.end_time) - be;
640
- Y.set(Z, { x: be, y: He, width: Ie, height: ue.itemHeight });
639
+ const He = t.groupIndexToY(te) + de.stackLevel * t.lineHeight + (t.lineHeight - de.itemHeight) / 2, be = t.timeToX(K.start_time), Ie = t.timeToX(K.end_time) - be;
640
+ Y.set(Z, { x: be, y: He, width: Ie, height: de.itemHeight });
641
641
  }
642
642
  }
643
643
  this.drawDependencies(e, b, Y, g, v);
644
644
  }
645
645
  }
646
- drawDependencies(e, t, n, r, d) {
647
- for (const l of t) {
648
- const u = n.get(l.fromItemId), c = n.get(l.toItemId);
649
- if (!u || !c)
646
+ drawDependencies(e, t, n, r, u) {
647
+ for (const a of t) {
648
+ const d = n.get(a.fromItemId), c = n.get(a.toItemId);
649
+ if (!d || !c)
650
650
  continue;
651
- const v = r === l.fromItemId || r === l.toItemId;
652
- e.strokeStyle = v ? d.primary : l.color ?? "#94A3B8", e.lineWidth = v ? 2 : 1.5, e.setLineDash([]);
653
- const M = u.x + u.width, g = u.y + u.height / 2, b = c.x, T = c.y + c.height / 2, C = Math.abs(b - M), I = Math.max(C * 0.4, 30);
651
+ const v = r === a.fromItemId || r === a.toItemId;
652
+ e.strokeStyle = v ? u.primary : a.color ?? "#94A3B8", e.lineWidth = v ? 2 : 1.5, e.setLineDash([]);
653
+ const M = d.x + d.width, g = d.y + d.height / 2, b = c.x, T = c.y + c.height / 2, C = Math.abs(b - M), I = Math.max(C * 0.4, 30);
654
654
  e.beginPath(), e.moveTo(M, g), e.bezierCurveTo(M + I, g, b - I, T, b, T), e.stroke();
655
655
  const W = 6;
656
656
  e.fillStyle = e.strokeStyle, e.beginPath(), e.moveTo(b, T), e.lineTo(b - W, T - W / 2), e.lineTo(b - W, T + W / 2), e.closePath(), e.fill();
657
657
  }
658
658
  }
659
659
  }
660
- class yi {
660
+ class Ti {
661
661
  draw(e, t, n, r) {
662
- const { cursorX: d, snapX: l, markers: u, interaction: c } = r;
663
- if (u)
664
- for (const v of u) {
662
+ const { cursorX: u, snapX: a, markers: d, interaction: c } = r;
663
+ if (d)
664
+ for (const v of d) {
665
665
  const M = t.timeToX(v.date);
666
666
  if (e.fillStyle = v.color, e.fillRect(M - v.width / 2, 0, v.width, t.canvasHeight), v.label) {
667
667
  e.save(), e.font = '500 10px -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif';
668
- const g = e.measureText(v.label).width, b = 8, T = 200, C = Math.min(g + b * 2, T), I = 20, W = M - C / 2, $ = 4;
669
- e.fillStyle = v.color, e.beginPath(), e.roundRect(W, $, C, I, 3), e.fill(), e.fillStyle = "#FFFFFF", e.textBaseline = "middle";
668
+ const g = e.measureText(v.label).width, b = 8, T = 200, C = Math.min(g + b * 2, T), I = 20, W = M - C / 2, z = 4;
669
+ e.fillStyle = v.color, e.beginPath(), e.roundRect(W, z, C, I, 3), e.fill(), e.fillStyle = "#FFFFFF", e.textBaseline = "middle";
670
670
  const S = T - b * 2, _ = g > S ? v.label.slice(0, Math.floor(v.label.length * S / g)) + "…" : v.label;
671
- e.fillText(_, W + b, $ + I / 2), e.restore();
671
+ e.fillText(_, W + b, z + I / 2), e.restore();
672
672
  }
673
673
  }
674
- if (d != null && (e.strokeStyle = n.marker.cursor, e.lineWidth = 1, e.beginPath(), e.moveTo(d, 0), e.lineTo(d, t.canvasHeight), e.stroke()), l != null && (e.strokeStyle = n.primary, e.lineWidth = 1, e.setLineDash([4, 4]), e.beginPath(), e.moveTo(l, 0), e.lineTo(l, t.canvasHeight), e.stroke(), e.setLineDash([])), c) {
674
+ if (u != null && (e.strokeStyle = n.marker.cursor, e.lineWidth = 1, e.beginPath(), e.moveTo(u, 0), e.lineTo(u, t.canvasHeight), e.stroke()), a != null && (e.strokeStyle = n.primary, e.lineWidth = 1, e.setLineDash([4, 4]), e.beginPath(), e.moveTo(a, 0), e.lineTo(a, t.canvasHeight), e.stroke(), e.setLineDash([])), c) {
675
675
  c.groupChanged && c.targetGroupY !== void 0 && (e.fillStyle = "rgba(59, 130, 246, 0.08)", e.fillRect(0, c.targetGroupY, t.canvasWidth, t.lineHeight)), e.save(), e.globalAlpha = 0.5;
676
676
  const v = Yt(e, c.bounds);
677
677
  c.renderer(e, c.item, c.bounds, { selected: !1, hovered: !1, dragging: !0, filtered: !0 }, v), e.restore();
@@ -679,12 +679,12 @@ class yi {
679
679
  }
680
680
  }
681
681
  const _t = 120;
682
- function Ti(i) {
682
+ function Si(i) {
683
683
  let e = i.deltaY || i.deltaX;
684
684
  return i.deltaMode === 1 ? e *= 15 : i.deltaMode === 2 && (e *= 800), Math.max(-_t, Math.min(_t, e));
685
685
  }
686
- class Si {
687
- constructor(e, t, n, r, d) {
686
+ class ki {
687
+ constructor(e, t, n, r, u) {
688
688
  Object.defineProperty(this, "onZoom", {
689
689
  enumerable: !0,
690
690
  configurable: !0,
@@ -710,21 +710,21 @@ class Si {
710
710
  configurable: !0,
711
711
  writable: !0,
712
712
  value: void 0
713
- }), this.onZoom = e, this.visibleTimeStart = t, this.visibleTimeEnd = n, this.minZoom = r, this.maxZoom = d;
713
+ }), this.onZoom = e, this.visibleTimeStart = t, this.visibleTimeEnd = n, this.minZoom = r, this.maxZoom = u;
714
714
  }
715
715
  updateBounds(e, t) {
716
716
  this.visibleTimeStart = e, this.visibleTimeEnd = t;
717
717
  }
718
718
  handleWheelZoom(e, t) {
719
- const n = Ti(e), r = e.ctrlKey ? 10 : e.metaKey ? 3 : 1, d = n > 0 ? 1 + r * n / 500 : 1 / (1 + r * -n / 500), l = this.visibleTimeEnd - this.visibleTimeStart;
720
- let u = Math.round(l * d);
721
- u = Math.max(this.minZoom, Math.min(this.maxZoom, u));
722
- const c = Math.round(this.visibleTimeStart + (l - u) * t), v = c + u;
719
+ const n = Si(e), r = e.ctrlKey ? 10 : e.metaKey ? 3 : 1, u = n > 0 ? 1 + r * n / 500 : 1 / (1 + r * -n / 500), a = this.visibleTimeEnd - this.visibleTimeStart;
720
+ let d = Math.round(a * u);
721
+ d = Math.max(this.minZoom, Math.min(this.maxZoom, d));
722
+ const c = Math.round(this.visibleTimeStart + (a - d) * t), v = c + d;
723
723
  this.onZoom(c, v);
724
724
  }
725
725
  }
726
- const ki = 4;
727
- class Mi {
726
+ const Mi = 4;
727
+ class wi {
728
728
  constructor(e) {
729
729
  Object.defineProperty(this, "state", {
730
730
  enumerable: !0,
@@ -757,7 +757,7 @@ class Mi {
757
757
  }, this.activated = !1;
758
758
  }
759
759
  update(e, t) {
760
- this.state && (this.state.currentX = e, this.state.currentY = t, this.state.deltaX = e - this.state.startX, !this.activated && Math.abs(this.state.deltaX) >= ki && (this.activated = !0));
760
+ this.state && (this.state.currentX = e, this.state.currentY = t, this.state.deltaX = e - this.state.startX, !this.activated && Math.abs(this.state.deltaX) >= Mi && (this.activated = !0));
761
761
  }
762
762
  setCurrentGroup(e) {
763
763
  this.state && (this.state.currentGroup = e);
@@ -765,14 +765,14 @@ class Mi {
765
765
  endMove(e) {
766
766
  if (!this.state)
767
767
  return null;
768
- const t = this.state.deltaX / e, n = this.state.item.start_time + t, r = Math.round(n / this.dragSnap) * this.dragSnap, d = this.state.currentGroup;
769
- return this.state = null, this.activated = !1, { newStartTime: r, newGroupId: d };
768
+ const t = this.state.deltaX / e, n = this.state.item.start_time + t, r = Math.round(n / this.dragSnap) * this.dragSnap, u = this.state.currentGroup;
769
+ return this.state = null, this.activated = !1, { newStartTime: r, newGroupId: u };
770
770
  }
771
771
  endResize(e) {
772
772
  if (!this.state)
773
773
  return null;
774
- const t = this.state.deltaX / e, n = this.state.mode === "resize-left" ? "left" : "right", d = (n === "left" ? this.state.item.start_time : this.state.item.end_time) + t, l = Math.round(d / this.dragSnap) * this.dragSnap;
775
- return this.state = null, this.activated = !1, { newTime: l, edge: n };
774
+ const t = this.state.deltaX / e, n = this.state.mode === "resize-left" ? "left" : "right", u = (n === "left" ? this.state.item.start_time : this.state.item.end_time) + t, a = Math.round(u / this.dragSnap) * this.dragSnap;
775
+ return this.state = null, this.activated = !1, { newTime: a, edge: n };
776
776
  }
777
777
  cancel() {
778
778
  this.state = null, this.activated = !1;
@@ -791,79 +791,79 @@ class Mi {
791
791
  return this.state !== null;
792
792
  }
793
793
  }
794
- function dt(i, e, t) {
794
+ function ut(i, e, t) {
795
795
  const n = [];
796
796
  for (const r of i)
797
797
  r.id !== e && (n.push(t(r.start_time)), n.push(t(r.end_time)));
798
798
  return n;
799
799
  }
800
- function Ve(i, e, t, n, r) {
800
+ function Ze(i, e, t, n, r) {
801
801
  if (e.length === 0)
802
802
  return null;
803
- let d = e[0], l = Math.abs(i - d);
804
- for (let u = 1; u < e.length; u++) {
805
- const c = Math.abs(i - e[u]);
806
- c < l && (l = c, d = e[u]);
803
+ let u = e[0], a = Math.abs(i - u);
804
+ for (let d = 1; d < e.length; d++) {
805
+ const c = Math.abs(i - e[d]);
806
+ c < a && (a = c, u = e[d]);
807
807
  }
808
- return l <= t ? d : null;
808
+ return a <= t ? u : null;
809
809
  }
810
810
  var jt = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
811
811
  function Nt(i) {
812
812
  return i && i.__esModule && Object.prototype.hasOwnProperty.call(i, "default") ? i.default : i;
813
813
  }
814
- var $t = { exports: {} };
814
+ var zt = { exports: {} };
815
815
  (function(i, e) {
816
816
  (function(t, n) {
817
817
  i.exports = n();
818
818
  })(jt, function() {
819
819
  var t = "day";
820
- return function(n, r, d) {
821
- var l = function(v) {
820
+ return function(n, r, u) {
821
+ var a = function(v) {
822
822
  return v.add(4 - v.isoWeekday(), t);
823
- }, u = r.prototype;
824
- u.isoWeekYear = function() {
825
- return l(this).year();
826
- }, u.isoWeek = function(v) {
823
+ }, d = r.prototype;
824
+ d.isoWeekYear = function() {
825
+ return a(this).year();
826
+ }, d.isoWeek = function(v) {
827
827
  if (!this.$utils().u(v)) return this.add(7 * (v - this.isoWeek()), t);
828
- var M, g, b, T, C = l(this), I = (M = this.isoWeekYear(), g = this.$u, b = (g ? d.utc : d)().year(M).startOf("year"), T = 4 - b.isoWeekday(), b.isoWeekday() > 4 && (T += 7), b.add(T, t));
828
+ var M, g, b, T, C = a(this), I = (M = this.isoWeekYear(), g = this.$u, b = (g ? u.utc : u)().year(M).startOf("year"), T = 4 - b.isoWeekday(), b.isoWeekday() > 4 && (T += 7), b.add(T, t));
829
829
  return C.diff(I, "week") + 1;
830
- }, u.isoWeekday = function(v) {
830
+ }, d.isoWeekday = function(v) {
831
831
  return this.$utils().u(v) ? this.day() || 7 : this.day(this.day() % 7 ? v : v - 7);
832
832
  };
833
- var c = u.startOf;
834
- u.startOf = function(v, M) {
833
+ var c = d.startOf;
834
+ d.startOf = function(v, M) {
835
835
  var g = this.$utils(), b = !!g.u(M) || M;
836
836
  return g.p(v) === "isoweek" ? b ? this.date(this.date() - (this.isoWeekday() - 1)).startOf("day") : this.date(this.date() - 1 - (this.isoWeekday() - 1) + 7).endOf("day") : c.bind(this)(v, M);
837
837
  };
838
838
  };
839
839
  });
840
- })($t);
841
- var wi = $t.exports;
842
- const Ei = /* @__PURE__ */ Nt(wi), Ft = 5;
843
- function Wt({ groups: i, width: e, lineHeight: t, scrollTop: n, canvasHeight: r, theme: d, groupRenderer: l, onScroll: u }) {
840
+ })(zt);
841
+ var Ei = zt.exports;
842
+ const Ci = /* @__PURE__ */ Nt(Ei), Ot = 5;
843
+ function Wt({ groups: i, width: e, lineHeight: t, scrollTop: n, canvasHeight: r, theme: u, groupRenderer: a, onScroll: d }) {
844
844
  var W;
845
- const c = z(null), v = z(!1), M = i.length * t, g = r, b = Math.max(0, Math.floor(n / t) - Ft), T = Math.min(i.length - 1, Math.ceil((n + r) / t) + Ft), C = ie(($) => {
846
- v.current || u($.currentTarget.scrollTop);
847
- }, [u]);
845
+ const c = x(null), v = x(!1), M = i.length * t, g = r, b = Math.max(0, Math.floor(n / t) - Ot), T = Math.min(i.length - 1, Math.ceil((n + r) / t) + Ot), C = ie((z) => {
846
+ v.current || d(z.currentTarget.scrollTop);
847
+ }, [d]);
848
848
  he(() => {
849
849
  c.current && (v.current = !0, c.current.scrollTop = n, requestAnimationFrame(() => {
850
850
  v.current = !1;
851
851
  }));
852
852
  }, [n]);
853
853
  const I = [];
854
- for (let $ = b; $ <= T; $++) {
855
- const S = i[$];
854
+ for (let z = b; z <= T; z++) {
855
+ const S = i[z];
856
856
  S && I.push(se("div", { style: {
857
857
  position: "absolute",
858
- top: $ * t,
858
+ top: z * t,
859
859
  height: t,
860
860
  width: "100%",
861
861
  overflow: "hidden",
862
862
  display: "flex",
863
863
  alignItems: "stretch",
864
- borderBottom: `1px solid ${((W = d.grid) == null ? void 0 : W.line) ?? "#E5E5E5"}`,
864
+ borderBottom: `1px solid ${((W = u.grid) == null ? void 0 : W.line) ?? "#E5E5E5"}`,
865
865
  boxSizing: "border-box"
866
- }, children: l(S) }, S.id));
866
+ }, children: a(S) }, S.id));
867
867
  }
868
868
  return se("div", { ref: c, onScroll: C, style: {
869
869
  width: e,
@@ -871,24 +871,24 @@ function Wt({ groups: i, width: e, lineHeight: t, scrollTop: n, canvasHeight: r,
871
871
  overflowY: M > r ? "auto" : "hidden",
872
872
  overflowX: "hidden",
873
873
  position: "relative",
874
- borderRight: `1px solid ${d.sidebar.border}`,
875
- backgroundColor: d.sidebar.bg
874
+ borderRight: `1px solid ${u.sidebar.border}`,
875
+ backgroundColor: u.sidebar.bg
876
876
  }, children: se("div", { style: { height: M, position: "relative" }, children: I }) });
877
877
  }
878
- function Ci(i) {
878
+ function Hi(i) {
879
879
  return null;
880
880
  }
881
- Ci.displayName = "TodayMarker";
881
+ Hi.displayName = "TodayMarker";
882
882
  function Xt(i) {
883
883
  return { date: Math.floor(Date.now() / 6e4) * 6e4, color: i.color ?? "#FD7171", width: i.width ?? 6, label: i.label };
884
884
  }
885
- function Hi(i) {
885
+ function Ii(i) {
886
886
  return i.interval ?? 1e4;
887
887
  }
888
- function Ii(i) {
888
+ function Ri(i) {
889
889
  return null;
890
890
  }
891
- Ii.displayName = "CustomMarker";
891
+ Ri.displayName = "CustomMarker";
892
892
  function Bt(i) {
893
893
  return {
894
894
  date: i.date,
@@ -897,8 +897,8 @@ function Bt(i) {
897
897
  label: i.label
898
898
  };
899
899
  }
900
- pe.extend(Ei);
901
- function Ri(i) {
900
+ pe.extend(Ci);
901
+ function Pi(i) {
902
902
  return i ? {
903
903
  ...we,
904
904
  ...i,
@@ -910,36 +910,36 @@ function Ri(i) {
910
910
  header: { ...we.header, ...i.header }
911
911
  } : we;
912
912
  }
913
- const Lt = 32, $i = ge.memo(ci(function(e, t) {
914
- const { groups: n, items: r, defaultTimeStart: d, defaultTimeEnd: l, sidebarWidth: u, lineHeight: c, itemHeightRatio: v, stackItems: M, canMove: g, canChangeGroup: b, canResize: T, dragSnap: C, minZoom: I, maxZoom: W, theme: $, dayStyle: S, rowStyle: _, showCursorLine: B, itemRenderer: Y, groupRenderer: x, sidebarGroupRenderer: ne, dependencies: P, highlights: L, onItemClick: Z, onItemDoubleClick: K, onItemContextMenu: te, onItemMove: ue, onItemResize: ve, moveResizeValidator: He, onItemHover: be, onCanvasDoubleClick: Ie, onCanvasContextMenu: Ae, onTimeChange: Ee, onZoom: ht, selected: ft = [], rightSidebarWidth: qe, rightSidebarGroupRenderer: mt, onReady: Ye, children: Te } = e, ye = oe(() => Ri($), [$]), gt = ie((a, o) => {
913
+ const Lt = 32, $i = ge.memo(di(function(e, t) {
914
+ const { groups: n, items: r, defaultTimeStart: u, defaultTimeEnd: a, sidebarWidth: d, lineHeight: c, itemHeightRatio: v, stackItems: M, canMove: g, canChangeGroup: b, canResize: T, dragSnap: C, minZoom: I, maxZoom: W, theme: z, dayStyle: S, rowStyle: _, showCursorLine: B, itemRenderer: Y, groupRenderer: G, sidebarGroupRenderer: ne, dependencies: P, highlights: L, onItemClick: Z, onItemDoubleClick: K, onItemContextMenu: te, onItemMove: de, onItemResize: ve, moveResizeValidator: He, onItemHover: be, onCanvasDoubleClick: Ie, onCanvasContextMenu: Ye, onTimeChange: Ee, onZoom: ht, selected: ft = [], rightSidebarWidth: qe, rightSidebarGroupRenderer: mt, onReady: je, devBadge: xt, children: Te } = e, ye = oe(() => Pi(z), [z]), gt = ie((l, o) => {
915
915
  for (let h = 0; h < o.length; h++)
916
- if (o[h].id === a)
916
+ if (o[h].id === l)
917
917
  return h;
918
918
  return 0;
919
- }, []), zt = ft.join(","), Ue = oe(() => ft, [zt]), pt = z(null), vt = z(null), bt = z(null), _e = z(null), yt = z(null), xt = z(null), [Vt, Zt] = xe(800);
919
+ }, []), Gt = ft.join(","), Ue = oe(() => ft, [Gt]), pt = x(null), vt = x(null), bt = x(null), _e = x(null), yt = x(null), Vt = x(null), [Zt, qt] = Ve(800);
920
920
  he(() => {
921
- const a = yt.current;
922
- if (!a)
921
+ const l = yt.current;
922
+ if (!l)
923
923
  return;
924
924
  const o = new ResizeObserver((h) => {
925
925
  const f = h[0];
926
- f && Zt(f.contentRect.width);
926
+ f && qt(f.contentRect.width);
927
927
  });
928
- return o.observe(a), () => o.disconnect();
928
+ return o.observe(l), () => o.disconnect();
929
929
  }, []);
930
- const Se = Math.max(0, Vt - u - (qe ?? 0)), ke = n.length * c, D = z(new lt({
931
- visibleTimeStart: e.visibleTimeStart ?? d,
932
- visibleTimeEnd: e.visibleTimeEnd ?? l,
930
+ const Se = Math.max(0, Zt - d - (qe ?? 0)), ke = n.length * c, D = x(new lt({
931
+ visibleTimeStart: e.visibleTimeStart ?? u,
932
+ visibleTimeEnd: e.visibleTimeEnd ?? a,
933
933
  canvasWidth: Se,
934
934
  canvasHeight: ke,
935
- sidebarWidth: u,
935
+ sidebarWidth: d,
936
936
  lineHeight: c,
937
937
  groupCount: n.length,
938
938
  buffer: e.buffer ?? 3,
939
939
  scrollTop: 0
940
- })), Ke = z(null), Fe = z(void 0), [Tt, qt] = xe(e.visibleTimeStart ?? d), [St, Ut] = xe(e.visibleTimeEnd ?? l), [kt, je] = xe(0), We = z(null), Re = ie(() => {
941
- const a = D.current;
942
- qt(a.visibleTimeStart), Ut(a.visibleTimeEnd), je(a.scrollTop), We.current = null;
940
+ })), Ke = x(null), Oe = x(void 0), [Tt, Ut] = Ve(e.visibleTimeStart ?? u), [St, Kt] = Ve(e.visibleTimeEnd ?? a), [kt, Ne] = Ve(0), We = x(null), Re = ie(() => {
941
+ const l = D.current;
942
+ Ut(l.visibleTimeStart), Kt(l.visibleTimeEnd), Ne(l.scrollTop), We.current = null;
943
943
  }, []), Je = ie(() => {
944
944
  We.current === null && (We.current = setTimeout(Re, Lt));
945
945
  }, [Re]);
@@ -947,42 +947,42 @@ const Lt = 32, $i = ge.memo(ci(function(e, t) {
947
947
  We.current !== null && clearTimeout(We.current);
948
948
  }, []);
949
949
  const Ce = oe(() => {
950
- const a = new mi();
951
- return a.rebuild(r), a;
950
+ const l = new gi();
951
+ return l.rebuild(r), l;
952
952
  }, [r]), Qe = oe(() => {
953
- const a = new hi();
954
- return a.buildFromItems(r, (o) => Ce.getEffectiveSpan(o.id).start, (o) => Ce.getEffectiveSpan(o.id).end), a;
953
+ const l = new fi();
954
+ return l.buildFromItems(r, (o) => Ce.getEffectiveSpan(o.id).start, (o) => Ce.getEffectiveSpan(o.id).end), l;
955
955
  }, [r, Ce]), et = oe(() => {
956
- const a = new fi(c, v);
957
- return a.computeLayout(r, M, Ce), a;
958
- }, [r, c, v, M, Ce]), Mt = oe(() => e.summaryRenderer ? e.summaryRenderer : (a, o, h, f, s) => {
959
- gi(a, o, h, f, s, ye);
960
- }, [e.summaryRenderer, ye]), Pe = oe(() => new vi(), []), De = oe(() => new bi(), []), Oe = oe(() => new yi(), []), Q = oe(() => new Mi(C), [C]), Ne = oe(() => {
961
- const a = [];
956
+ const l = new mi(c, v);
957
+ return l.computeLayout(r, M, Ce), l;
958
+ }, [r, c, v, M, Ce]), Mt = oe(() => e.summaryRenderer ? e.summaryRenderer : (l, o, h, f, s) => {
959
+ pi(l, o, h, f, s, ye);
960
+ }, [e.summaryRenderer, ye]), Pe = oe(() => new bi(), []), De = oe(() => new yi(), []), Fe = oe(() => new Ti(), []), Q = oe(() => new wi(C), [C]), ze = oe(() => {
961
+ const l = [];
962
962
  return ge.Children.forEach(Te, (o) => {
963
963
  var f;
964
964
  if (!ge.isValidElement(o))
965
965
  return;
966
966
  const h = (f = o.type) == null ? void 0 : f.displayName;
967
- h === "TodayMarker" ? a.push(Xt(o.props)) : h === "CustomMarker" && a.push(Bt(o.props));
968
- }), a;
969
- }, [Te]), $e = oe(() => Ne.map((a) => `${a.date}|${a.color}|${a.width}|${a.label ?? ""}`).join(";"), [Ne]), Xe = z(Ne);
970
- Xe.current = Ne;
967
+ h === "TodayMarker" ? l.push(Xt(o.props)) : h === "CustomMarker" && l.push(Bt(o.props));
968
+ }), l;
969
+ }, [Te]), $e = oe(() => ze.map((l) => `${l.date}|${l.color}|${l.width}|${l.label ?? ""}`).join(";"), [ze]), Xe = x(ze);
970
+ Xe.current = ze;
971
971
  const tt = oe(() => {
972
- let a = 0;
972
+ let l = 0;
973
973
  return ge.Children.forEach(Te, (o) => {
974
974
  var f;
975
975
  if (!ge.isValidElement(o))
976
976
  return;
977
- ((f = o.type) == null ? void 0 : f.displayName) === "TodayMarker" && (a = Hi(o.props));
978
- }), a;
979
- }, [Te]), O = z({
977
+ ((f = o.type) == null ? void 0 : f.displayName) === "TodayMarker" && (l = Ii(o.props));
978
+ }), l;
979
+ }, [Te]), F = x({
980
980
  groups: n,
981
981
  items: r,
982
982
  intervalTree: Qe,
983
983
  layoutEngine: et,
984
984
  itemRenderer: Y,
985
- groupRenderer: x,
985
+ groupRenderer: G,
986
986
  theme: ye,
987
987
  selected: Ue,
988
988
  dependencies: P,
@@ -1000,26 +1000,26 @@ const Lt = 32, $i = ge.memo(ci(function(e, t) {
1000
1000
  onItemClick: Z,
1001
1001
  onItemDoubleClick: K,
1002
1002
  onItemContextMenu: te,
1003
- onItemMove: ue,
1003
+ onItemMove: de,
1004
1004
  onItemResize: ve,
1005
1005
  onCanvasDoubleClick: Ie,
1006
- onCanvasContextMenu: Ae,
1006
+ onCanvasContextMenu: Ye,
1007
1007
  canMove: g,
1008
1008
  canResize: T,
1009
1009
  canChangeGroup: b,
1010
1010
  dragSnap: C,
1011
- sidebarWidth: u,
1011
+ sidebarWidth: d,
1012
1012
  moveResizeValidator: He,
1013
1013
  summaryRenderer: Mt,
1014
1014
  hierarchyEngine: Ce
1015
1015
  });
1016
- O.current = {
1016
+ F.current = {
1017
1017
  groups: n,
1018
1018
  items: r,
1019
1019
  intervalTree: Qe,
1020
1020
  layoutEngine: et,
1021
1021
  itemRenderer: Y,
1022
- groupRenderer: x,
1022
+ groupRenderer: G,
1023
1023
  theme: ye,
1024
1024
  selected: Ue,
1025
1025
  dependencies: P,
@@ -1037,79 +1037,79 @@ const Lt = 32, $i = ge.memo(ci(function(e, t) {
1037
1037
  onItemClick: Z,
1038
1038
  onItemDoubleClick: K,
1039
1039
  onItemContextMenu: te,
1040
- onItemMove: ue,
1040
+ onItemMove: de,
1041
1041
  onItemResize: ve,
1042
1042
  onCanvasDoubleClick: Ie,
1043
- onCanvasContextMenu: Ae,
1043
+ onCanvasContextMenu: Ye,
1044
1044
  canMove: g,
1045
1045
  canResize: T,
1046
1046
  canChangeGroup: b,
1047
1047
  dragSnap: C,
1048
- sidebarWidth: u,
1048
+ sidebarWidth: d,
1049
1049
  moveResizeValidator: He,
1050
1050
  summaryRenderer: Mt,
1051
1051
  hierarchyEngine: Ce
1052
1052
  };
1053
- const Kt = ie(() => {
1054
- const a = pt.current;
1055
- if (!a)
1053
+ const Jt = ie(() => {
1054
+ const l = pt.current;
1055
+ if (!l)
1056
1056
  return;
1057
- const o = O.current, h = ct(a, o.canvasWidth, o.canvasHeight);
1058
- ut(h, a), Pe.draw(h, D.current, o.groups, o.theme, o.dayStyle, o.rowStyle, o.highlights);
1059
- }, [Pe]), Jt = ie(() => {
1060
- const a = vt.current;
1061
- if (!a)
1057
+ const o = F.current, h = ct(l, o.canvasWidth, o.canvasHeight);
1058
+ dt(h, l), Pe.draw(h, D.current, o.groups, o.theme, o.dayStyle, o.rowStyle, o.highlights);
1059
+ }, [Pe]), Qt = ie(() => {
1060
+ const l = vt.current;
1061
+ if (!l)
1062
1062
  return;
1063
- const o = O.current, h = ct(a, o.canvasWidth, o.canvasHeight);
1064
- ut(h, a), De.draw(h, D.current, o.groups, o.items, o.intervalTree, o.layoutEngine, o.itemRenderer, o.groupRenderer, o.theme, o.selected, Fe.current, o.dependencies, o.summaryRenderer, o.hierarchyEngine);
1065
- }, [De]), wt = ie((a, o, h) => {
1066
- const f = D.current, s = O.current, m = s.canvasWidth / (f.visibleTimeEnd - f.visibleTimeStart), y = o / m, k = [];
1067
- h === "move" ? (k.push(f.timeToX(a.start_time + y)), k.push(f.timeToX(a.end_time + y))) : h === "resize-left" ? k.push(f.timeToX(a.start_time + y)) : k.push(f.timeToX(a.end_time + y));
1068
- const H = (f.visibleTimeEnd - f.visibleTimeStart) * 0.1, F = s.intervalTree.query(f.visibleTimeStart - H, f.visibleTimeEnd + H), V = dt(F, a.id, (re) => f.timeToX(re));
1063
+ const o = F.current, h = ct(l, o.canvasWidth, o.canvasHeight);
1064
+ dt(h, l), De.draw(h, D.current, o.groups, o.items, o.intervalTree, o.layoutEngine, o.itemRenderer, o.groupRenderer, o.theme, o.selected, Oe.current, o.dependencies, o.summaryRenderer, o.hierarchyEngine);
1065
+ }, [De]), wt = ie((l, o, h) => {
1066
+ const f = D.current, s = F.current, m = s.canvasWidth / (f.visibleTimeEnd - f.visibleTimeStart), y = o / m, k = [];
1067
+ h === "move" ? (k.push(f.timeToX(l.start_time + y)), k.push(f.timeToX(l.end_time + y))) : h === "resize-left" ? k.push(f.timeToX(l.start_time + y)) : k.push(f.timeToX(l.end_time + y));
1068
+ const H = (f.visibleTimeEnd - f.visibleTimeStart) * 0.1, O = s.intervalTree.query(f.visibleTimeStart - H, f.visibleTimeEnd + H), V = ut(O, l.id, (re) => f.timeToX(re));
1069
1069
  for (const re of k) {
1070
- const G = Ve(re, V, 8, m, s.dragSnap);
1071
- if (G !== null)
1072
- return G;
1070
+ const $ = Ze(re, V, 8, m, s.dragSnap);
1071
+ if ($ !== null)
1072
+ return $;
1073
1073
  }
1074
- const J = a.start_time + y, R = Math.round(J / s.dragSnap) * s.dragSnap;
1074
+ const J = h === "resize-right" ? l.end_time + y : l.start_time + y, R = Math.round(J / s.dragSnap) * s.dragSnap;
1075
1075
  return f.timeToX(R);
1076
- }, []), Qt = ie(() => {
1077
- const a = bt.current;
1078
- if (!a)
1076
+ }, []), ei = ie(() => {
1077
+ const l = bt.current;
1078
+ if (!l)
1079
1079
  return;
1080
- const o = O.current, h = ct(a, o.canvasWidth, o.canvasHeight);
1081
- ut(h, a);
1080
+ const o = F.current, h = ct(l, o.canvasWidth, o.canvasHeight);
1081
+ dt(h, l);
1082
1082
  const f = D.current, s = Q.getState();
1083
1083
  let m = null;
1084
1084
  if (s) {
1085
1085
  const y = f.timeToX(s.item.start_time), k = f.timeToX(s.item.end_time) - y;
1086
- let H, F;
1087
- s.mode === "resize-left" ? (H = y + s.deltaX, F = k - s.deltaX) : s.mode === "resize-right" ? (H = y, F = k + s.deltaX) : (H = y + s.deltaX, F = k);
1086
+ let H, O;
1087
+ s.mode === "resize-left" ? (H = y + s.deltaX, O = k - s.deltaX) : s.mode === "resize-right" ? (H = y, O = k + s.deltaX) : (H = y + s.deltaX, O = k);
1088
1088
  const V = gt(s.currentGroup, o.groups), J = f.groupIndexToY(V), R = s.currentGroup !== s.originalGroup;
1089
1089
  m = {
1090
1090
  item: s.item,
1091
1091
  mode: s.mode,
1092
- bounds: { x: H, y: J + (o.lineHeight - o.lineHeight * o.itemHeightRatio) / 2, width: F, height: o.lineHeight * o.itemHeightRatio },
1092
+ bounds: { x: H, y: J + (o.lineHeight - o.lineHeight * o.itemHeightRatio) / 2, width: O, height: o.lineHeight * o.itemHeightRatio },
1093
1093
  renderer: o.itemRenderer,
1094
1094
  targetGroupY: J,
1095
1095
  groupChanged: R
1096
1096
  };
1097
1097
  }
1098
- Oe.draw(h, f, o.theme, {
1098
+ Fe.draw(h, f, o.theme, {
1099
1099
  cursorX: o.showCursorLine ? Ke.current : null,
1100
1100
  snapX: s ? wt(s.item, s.deltaX, s.mode) : null,
1101
1101
  markers: Xe.current,
1102
1102
  interaction: m
1103
1103
  });
1104
- }, [Oe, Q, wt, gt]), it = z(null);
1105
- it.current || (it.current = new pi((a) => {
1106
- a.grid && Kt(), a.items && Jt(), a.overlay && Qt();
1104
+ }, [Fe, Q, wt, gt]), it = x(null);
1105
+ it.current || (it.current = new vi((l) => {
1106
+ l.grid && Jt(), l.items && Qt(), l.overlay && ei();
1107
1107
  }));
1108
1108
  const E = it.current;
1109
1109
  he(() => () => E.dispose(), [E]), he(() => {
1110
1110
  if (!tt)
1111
1111
  return;
1112
- const a = setInterval(() => {
1112
+ const l = setInterval(() => {
1113
1113
  const o = [];
1114
1114
  ge.Children.forEach(Te, (h) => {
1115
1115
  var s;
@@ -1119,57 +1119,57 @@ const Lt = 32, $i = ge.memo(ci(function(e, t) {
1119
1119
  f === "TodayMarker" ? o.push(Xt(h.props)) : f === "CustomMarker" && o.push(Bt(h.props));
1120
1120
  }), Xe.current = o, E.markDirty("overlay");
1121
1121
  }, tt);
1122
- return () => clearInterval(a);
1122
+ return () => clearInterval(l);
1123
1123
  }, [tt, Te, E]), he(() => {
1124
- D.current.update({ canvasWidth: Se, canvasHeight: ke, sidebarWidth: u, lineHeight: c, groupCount: n.length }), E.markAllDirty();
1125
- }, [Se, ke, u, c, n.length, E]), he(() => {
1124
+ D.current.update({ canvasWidth: Se, canvasHeight: ke, sidebarWidth: d, lineHeight: c, groupCount: n.length }), E.markAllDirty();
1125
+ }, [Se, ke, d, c, n.length, E]), he(() => {
1126
1126
  E.markDirty("grid"), E.markDirty("items");
1127
1127
  }, [r, n, Ue, ye, S, _, Qe, et, E]);
1128
- const Ge = oe(() => {
1129
- var a;
1130
- return ((a = e.highlights) == null ? void 0 : a.map((o) => `${o.start}|${o.end}|${o.color}|${o.label ?? ""}|${o.opacity ?? ""}`).join(";")) ?? "";
1131
- }, [e.highlights]), Et = z(Ge);
1128
+ const xe = oe(() => {
1129
+ var l;
1130
+ return ((l = e.highlights) == null ? void 0 : l.map((o) => `${o.start}|${o.end}|${o.color}|${o.label ?? ""}|${o.opacity ?? ""}`).join(";")) ?? "";
1131
+ }, [e.highlights]), Et = x(xe);
1132
1132
  he(() => {
1133
- Ge !== Et.current && (Et.current = Ge, E.markDirty("grid"));
1134
- }, [Ge, E]);
1135
- const Ct = z($e);
1133
+ xe !== Et.current && (Et.current = xe, E.markDirty("grid"));
1134
+ }, [xe, E]);
1135
+ const Ct = x($e);
1136
1136
  he(() => {
1137
1137
  $e !== Ct.current && (Ct.current = $e, E.markDirty("overlay"));
1138
1138
  }, [$e, E]);
1139
- const Ht = z(e.visibleTimeStart), It = z(e.visibleTimeEnd);
1139
+ const Ht = x(e.visibleTimeStart), It = x(e.visibleTimeEnd);
1140
1140
  e.visibleTimeStart !== void 0 && e.visibleTimeStart !== Ht.current && (Ht.current = e.visibleTimeStart, D.current.update({ visibleTimeStart: e.visibleTimeStart }), E.markAllDirty()), e.visibleTimeEnd !== void 0 && e.visibleTimeEnd !== It.current && (It.current = e.visibleTimeEnd, D.current.update({ visibleTimeEnd: e.visibleTimeEnd }), E.markAllDirty());
1141
- const Be = z(null), nt = ie((a) => {
1141
+ const Be = x(null), nt = ie((l) => {
1142
1142
  Be.current === null && (Be.current = setTimeout(() => {
1143
1143
  var f, s;
1144
1144
  Be.current = null;
1145
- const o = D.current, h = O.current;
1146
- a === "zoom" ? (f = h.onZoom) == null || f.call(h, o.visibleTimeStart, o.visibleTimeEnd) : (s = h.onTimeChange) == null || s.call(h, o.visibleTimeStart, o.visibleTimeEnd);
1145
+ const o = D.current, h = F.current;
1146
+ l === "zoom" ? (f = h.onZoom) == null || f.call(h, o.visibleTimeStart, o.visibleTimeEnd) : (s = h.onTimeChange) == null || s.call(h, o.visibleTimeStart, o.visibleTimeEnd);
1147
1147
  }, Lt));
1148
1148
  }, []);
1149
1149
  he(() => () => {
1150
1150
  Be.current !== null && clearTimeout(Be.current);
1151
1151
  }, []);
1152
- const ze = z(null), rt = oe(() => new Si((a, o) => {
1152
+ const Ge = x(null), rt = oe(() => new ki((l, o) => {
1153
1153
  var h;
1154
- D.current.update({ visibleTimeStart: a, visibleTimeEnd: o }), (h = ze.current) == null || h.updateBounds(a, o), E.markAllDirty(), Je(), nt("zoom");
1155
- }, d, l, I, W), []);
1156
- ze.current = rt;
1157
- const Rt = ie((a) => {
1158
- const o = D.current, h = o.groupCount * o.lineHeight, f = Math.max(0, h - o.canvasHeight), s = Math.max(0, Math.min(f, o.scrollTop + a));
1159
- s !== o.scrollTop && (o.update({ scrollTop: s }), E.markDirty("grid"), E.markDirty("items"), E.markDirty("overlay"), je(s));
1160
- }, [E]), ot = ie((a) => {
1154
+ D.current.update({ visibleTimeStart: l, visibleTimeEnd: o }), (h = Ge.current) == null || h.updateBounds(l, o), E.markAllDirty(), Je(), nt("zoom");
1155
+ }, u, a, I, W), []);
1156
+ Ge.current = rt;
1157
+ const Rt = ie((l) => {
1158
+ const o = D.current, h = o.groupCount * o.lineHeight, f = Math.max(0, h - o.canvasHeight), s = Math.max(0, Math.min(f, o.scrollTop + l));
1159
+ s !== o.scrollTop && (o.update({ scrollTop: s }), E.markDirty("grid"), E.markDirty("items"), E.markDirty("overlay"), Ne(s));
1160
+ }, [E]), ot = ie((l) => {
1161
1161
  var y, k, H;
1162
- const o = D.current, h = o.canvasWidth / (o.visibleTimeEnd - o.visibleTimeStart), f = a / h, s = o.visibleTimeStart + f, m = o.visibleTimeEnd + f;
1163
- o.update({ visibleTimeStart: s, visibleTimeEnd: m }), (y = ze.current) == null || y.updateBounds(s, m), E.markAllDirty(), di(() => Re()), (H = (k = O.current).onTimeChange) == null || H.call(k, s, m);
1162
+ const o = D.current, h = o.canvasWidth / (o.visibleTimeEnd - o.visibleTimeStart), f = l / h, s = o.visibleTimeStart + f, m = o.visibleTimeEnd + f;
1163
+ o.update({ visibleTimeStart: s, visibleTimeEnd: m }), (y = Ge.current) == null || y.updateBounds(s, m), E.markAllDirty(), hi(() => Re()), (H = (k = F.current).onTimeChange) == null || H.call(k, s, m);
1164
1164
  }, [E, Re]);
1165
1165
  he(() => {
1166
- const a = _e.current;
1167
- if (!a)
1166
+ const l = _e.current;
1167
+ if (!l)
1168
1168
  return;
1169
1169
  const o = (h) => {
1170
1170
  if (h.ctrlKey || h.metaKey || h.altKey) {
1171
1171
  h.preventDefault();
1172
- const f = a.getBoundingClientRect(), s = (h.clientX - f.left) / f.width;
1172
+ const f = l.getBoundingClientRect(), s = (h.clientX - f.left) / f.width;
1173
1173
  rt.handleWheelZoom(h, s);
1174
1174
  } else if (h.shiftKey)
1175
1175
  h.preventDefault(), ot(h.deltaY);
@@ -1178,12 +1178,12 @@ const Lt = 32, $i = ge.memo(ci(function(e, t) {
1178
1178
  f !== 0 && Math.abs(f) > Math.abs(h.deltaY) ? (h.preventDefault(), ot(f)) : h.deltaY !== 0 && Rt(h.deltaY);
1179
1179
  }
1180
1180
  };
1181
- return a.addEventListener("wheel", o, { passive: !1 }), () => a.removeEventListener("wheel", o);
1181
+ return l.addEventListener("wheel", o, { passive: !1 }), () => l.removeEventListener("wheel", o);
1182
1182
  }, [rt, Rt, ot]);
1183
- const Me = z({ lastDistance: null, lastCenter: null });
1183
+ const Me = x({ lastDistance: null, lastCenter: null });
1184
1184
  he(() => {
1185
- const a = _e.current;
1186
- if (!a)
1185
+ const l = _e.current;
1186
+ if (!l)
1187
1187
  return;
1188
1188
  const o = (y, k) => Math.abs(y.clientX - k.clientX), h = (y, k, H) => (y.clientX + k.clientX) / 2 - H.left, f = (y) => {
1189
1189
  y.touches.length === 2 && (y.preventDefault(), Me.current.lastDistance = o(y.touches[0], y.touches[1]), Me.current.lastCenter = null);
@@ -1191,84 +1191,84 @@ const Lt = 32, $i = ge.memo(ci(function(e, t) {
1191
1191
  var k;
1192
1192
  if (y.touches.length === 2 && Me.current.lastDistance !== null) {
1193
1193
  y.preventDefault();
1194
- const H = o(y.touches[0], y.touches[1]), F = a.getBoundingClientRect(), J = h(y.touches[0], y.touches[1], F) / F.width;
1194
+ const H = o(y.touches[0], y.touches[1]), O = l.getBoundingClientRect(), J = h(y.touches[0], y.touches[1], O) / O.width;
1195
1195
  if (H !== 0 && Me.current.lastDistance !== 0) {
1196
- const R = Me.current.lastDistance / H, re = D.current, G = re.visibleTimeEnd - re.visibleTimeStart;
1197
- let w = G * R;
1196
+ const R = Me.current.lastDistance / H, re = D.current, $ = re.visibleTimeEnd - re.visibleTimeStart;
1197
+ let w = $ * R;
1198
1198
  w = Math.max(I, Math.min(W, w));
1199
- const p = re.visibleTimeStart + G * J, j = p - w * J, A = p + w * (1 - J);
1200
- re.update({ visibleTimeStart: j, visibleTimeEnd: A }), (k = ze.current) == null || k.updateBounds(j, A), E.markAllDirty(), Je(), nt("zoom");
1199
+ const p = re.visibleTimeStart + $ * J, j = p - w * J, A = p + w * (1 - J);
1200
+ re.update({ visibleTimeStart: j, visibleTimeEnd: A }), (k = Ge.current) == null || k.updateBounds(j, A), E.markAllDirty(), Je(), nt("zoom");
1201
1201
  }
1202
1202
  Me.current.lastDistance = H;
1203
1203
  }
1204
1204
  }, m = () => {
1205
1205
  Me.current.lastDistance = null, Me.current.lastCenter = null;
1206
1206
  };
1207
- return a.addEventListener("touchstart", f, { passive: !1 }), a.addEventListener("touchmove", s, { passive: !1 }), a.addEventListener("touchend", m), () => {
1208
- a.removeEventListener("touchstart", f), a.removeEventListener("touchmove", s), a.removeEventListener("touchend", m);
1207
+ return l.addEventListener("touchstart", f, { passive: !1 }), l.addEventListener("touchmove", s, { passive: !1 }), l.addEventListener("touchend", m), () => {
1208
+ l.removeEventListener("touchstart", f), l.removeEventListener("touchmove", s), l.removeEventListener("touchend", m);
1209
1209
  };
1210
1210
  }, [E, Je, nt]);
1211
- const ei = ie((a) => {
1211
+ const ti = ie((l) => {
1212
1212
  var H;
1213
- const o = a.currentTarget, h = o.getBoundingClientRect(), f = a.clientX - h.left, s = a.clientY - h.top;
1213
+ const o = l.currentTarget, h = o.getBoundingClientRect(), f = l.clientX - h.left, s = l.clientY - h.top;
1214
1214
  if (Ke.current = f, Q.isPending()) {
1215
1215
  if (Q.update(f, s), Q.isActive()) {
1216
- const F = Q.getState();
1217
- if (F && F.mode === "move" && O.current.canChangeGroup) {
1218
- const V = at(s, D.current, O.current.groups);
1216
+ const O = Q.getState();
1217
+ if (O && O.mode === "move" && F.current.canChangeGroup) {
1218
+ const V = at(s, D.current, F.current.groups);
1219
1219
  V && Q.setCurrentGroup(V.id);
1220
1220
  }
1221
1221
  E.markDirty("overlay");
1222
1222
  }
1223
1223
  return;
1224
1224
  }
1225
- O.current.showCursorLine && E.markDirty("overlay");
1226
- const m = O.current, y = Le(f, s, D.current, m.intervalTree, m.layoutEngine, m.groups), k = y == null ? void 0 : y.id;
1227
- if (k !== Fe.current && (Fe.current = k, E.markDirty("items"), (H = m.onItemHover) == null || H.call(m, k ?? null, a.nativeEvent)), y) {
1228
- const F = Dt(f, y, D.current), V = m.canResize;
1229
- F === "left" && (V === "left" || V === "both") || F === "right" && (V === "right" || V === "both") ? o.style.cursor = "col-resize" : m.canMove ? o.style.cursor = "grab" : o.style.cursor = "default";
1225
+ F.current.showCursorLine && E.markDirty("overlay");
1226
+ const m = F.current, y = Le(f, s, D.current, m.intervalTree, m.layoutEngine, m.groups), k = y == null ? void 0 : y.id;
1227
+ if (k !== Oe.current && (Oe.current = k, E.markDirty("items"), (H = m.onItemHover) == null || H.call(m, k ?? null, l.nativeEvent)), y) {
1228
+ const O = Dt(f, y, D.current), V = m.canResize;
1229
+ O === "left" && (V === "left" || V === "both") || O === "right" && (V === "right" || V === "both") ? o.style.cursor = "col-resize" : m.canMove ? o.style.cursor = "grab" : o.style.cursor = "default";
1230
1230
  } else
1231
1231
  o.style.cursor = "default";
1232
- }, [Q, E]), ti = ie((a) => {
1233
- const o = O.current, h = a.currentTarget.getBoundingClientRect(), f = a.clientX - h.left, s = a.clientY - h.top, m = Le(f, s, D.current, o.intervalTree, o.layoutEngine, o.groups);
1232
+ }, [Q, E]), ii = ie((l) => {
1233
+ const o = F.current, h = l.currentTarget.getBoundingClientRect(), f = l.clientX - h.left, s = l.clientY - h.top, m = Le(f, s, D.current, o.intervalTree, o.layoutEngine, o.groups);
1234
1234
  if (!m)
1235
1235
  return;
1236
1236
  const y = Dt(f, m, D.current), k = o.canResize;
1237
1237
  y === "left" && (k === "left" || k === "both") ? Q.startInteraction(m, "resize-left", f, s) : y === "right" && (k === "right" || k === "both") ? Q.startInteraction(m, "resize-right", f, s) : o.canMove && Q.startInteraction(m, "move", f, s);
1238
- }, [Q]), ii = ie((a) => {
1239
- var y, k, H, F, V, J;
1240
- const o = a.currentTarget;
1238
+ }, [Q]), ni = ie((l) => {
1239
+ var y, k, H, O, V, J;
1240
+ const o = l.currentTarget;
1241
1241
  if (Q.isActive()) {
1242
- const R = Q.getState(), re = D.current, G = re.canvasWidth / (re.visibleTimeEnd - re.visibleTimeStart);
1242
+ const R = Q.getState(), re = D.current, $ = re.canvasWidth / (re.visibleTimeEnd - re.visibleTimeStart);
1243
1243
  if (R) {
1244
- const w = O.current.moveResizeValidator;
1244
+ const w = F.current.moveResizeValidator;
1245
1245
  if (R.mode === "move") {
1246
- const p = Q.endMove(G);
1246
+ const p = Q.endMove($);
1247
1247
  if (p) {
1248
- const j = D.current, A = O.current, ae = R.deltaX / G, fe = j.timeToX(R.item.start_time + ae), X = j.timeToX(R.item.end_time + ae), q = (j.visibleTimeEnd - j.visibleTimeStart) * 0.1, ee = A.intervalTree.query(j.visibleTimeStart - q, j.visibleTimeEnd + q), N = dt(ee, R.item.id, (me) => j.timeToX(me));
1248
+ const j = D.current, A = F.current, ae = R.deltaX / $, fe = j.timeToX(R.item.start_time + ae), X = j.timeToX(R.item.end_time + ae), q = (j.visibleTimeEnd - j.visibleTimeStart) * 0.1, ee = A.intervalTree.query(j.visibleTimeStart - q, j.visibleTimeEnd + q), N = ut(ee, R.item.id, (me) => j.timeToX(me));
1249
1249
  let le = p.newStartTime;
1250
- const U = Ve(fe, N, 8, G, A.dragSnap);
1250
+ const U = Ze(fe, N, 8, $, A.dragSnap);
1251
1251
  if (U !== null)
1252
1252
  le = j.xToTime(U);
1253
1253
  else {
1254
- const me = Ve(X, N, 8, G, A.dragSnap);
1254
+ const me = Ze(X, N, 8, $, A.dragSnap);
1255
1255
  if (me !== null) {
1256
- const ai = R.item.end_time - R.item.start_time;
1257
- le = j.xToTime(me) - ai;
1256
+ const ci = R.item.end_time - R.item.start_time;
1257
+ le = j.xToTime(me) - ci;
1258
1258
  }
1259
1259
  }
1260
- const ce = w ? w("move", R.item.id, le) : le, de = O.current.hierarchyEngine.getMoveDelta(R.item.id, ce);
1261
- (k = (y = O.current).onItemMove) == null || k.call(y, R.item.id, ce, p.newGroupId, de.length > 0 ? de : void 0);
1260
+ const ce = w ? w("move", R.item.id, le) : le, ue = F.current.hierarchyEngine.getMoveDelta(R.item.id, ce);
1261
+ (k = (y = F.current).onItemMove) == null || k.call(y, R.item.id, ce, p.newGroupId, ue.length > 0 ? ue : void 0);
1262
1262
  }
1263
1263
  } else {
1264
- const p = Q.endResize(G);
1264
+ const p = Q.endResize($);
1265
1265
  if (p) {
1266
- const j = D.current, A = O.current, ae = R.deltaX / G, fe = p.edge === "left" ? R.item.start_time + ae : R.item.end_time + ae, X = j.timeToX(fe), q = (j.visibleTimeEnd - j.visibleTimeStart) * 0.1, ee = A.intervalTree.query(j.visibleTimeStart - q, j.visibleTimeEnd + q), N = dt(ee, R.item.id, (me) => j.timeToX(me)), le = Ve(X, N, 8, G, A.dragSnap);
1266
+ const j = D.current, A = F.current, ae = R.deltaX / $, fe = p.edge === "left" ? R.item.start_time + ae : R.item.end_time + ae, X = j.timeToX(fe), q = (j.visibleTimeEnd - j.visibleTimeStart) * 0.1, ee = A.intervalTree.query(j.visibleTimeStart - q, j.visibleTimeEnd + q), N = ut(ee, R.item.id, (me) => j.timeToX(me)), le = Ze(X, N, 8, $, A.dragSnap);
1267
1267
  let U = le !== null ? j.xToTime(le) : p.newTime;
1268
- const ce = O.current.hierarchyEngine.getResizeConstraint(R.item.id, p.edge);
1268
+ const ce = F.current.hierarchyEngine.getResizeConstraint(R.item.id, p.edge);
1269
1269
  p.edge === "left" && U > ce.max ? U = ce.max : p.edge === "right" && U < ce.min && (U = ce.min);
1270
- const de = w ? w("resize", R.item.id, U, p.edge) : U;
1271
- (F = (H = O.current).onItemResize) == null || F.call(H, R.item.id, de, p.edge);
1270
+ const ue = w ? w("resize", R.item.id, U, p.edge) : U;
1271
+ (O = (H = F.current).onItemResize) == null || O.call(H, R.item.id, ue, p.edge);
1272
1272
  }
1273
1273
  }
1274
1274
  }
@@ -1276,59 +1276,59 @@ const Lt = 32, $i = ge.memo(ci(function(e, t) {
1276
1276
  return;
1277
1277
  }
1278
1278
  Q.isPending() && Q.cancel();
1279
- const h = o.getBoundingClientRect(), f = a.clientX - h.left, s = a.clientY - h.top, m = Le(f, s, D.current, O.current.intervalTree, O.current.layoutEngine, O.current.groups);
1280
- m && ((J = (V = O.current).onItemClick) == null || J.call(V, m.id, a.nativeEvent));
1281
- }, [Q, E]), ni = ie((a) => {
1279
+ const h = o.getBoundingClientRect(), f = l.clientX - h.left, s = l.clientY - h.top, m = Le(f, s, D.current, F.current.intervalTree, F.current.layoutEngine, F.current.groups);
1280
+ m && ((J = (V = F.current).onItemClick) == null || J.call(V, m.id, l.nativeEvent));
1281
+ }, [Q, E]), ri = ie((l) => {
1282
1282
  var y, k;
1283
- const o = a.currentTarget.getBoundingClientRect(), h = a.clientX - o.left, f = a.clientY - o.top, s = O.current, m = Le(h, f, D.current, s.intervalTree, s.layoutEngine, s.groups);
1283
+ const o = l.currentTarget.getBoundingClientRect(), h = l.clientX - o.left, f = l.clientY - o.top, s = F.current, m = Le(h, f, D.current, s.intervalTree, s.layoutEngine, s.groups);
1284
1284
  if (m)
1285
- (y = s.onItemDoubleClick) == null || y.call(s, m.id, a.nativeEvent);
1285
+ (y = s.onItemDoubleClick) == null || y.call(s, m.id, l.nativeEvent);
1286
1286
  else {
1287
- const H = at(f, D.current, s.groups), F = D.current.xToTime(h);
1288
- H && ((k = s.onCanvasDoubleClick) == null || k.call(s, H.id, F));
1287
+ const H = at(f, D.current, s.groups), O = D.current.xToTime(h);
1288
+ H && ((k = s.onCanvasDoubleClick) == null || k.call(s, H.id, O));
1289
1289
  }
1290
- }, []), ri = ie((a) => {
1290
+ }, []), oi = ie((l) => {
1291
1291
  var y, k;
1292
- a.preventDefault();
1293
- const o = a.currentTarget.getBoundingClientRect(), h = a.clientX - o.left, f = a.clientY - o.top, s = O.current, m = Le(h, f, D.current, s.intervalTree, s.layoutEngine, s.groups);
1292
+ l.preventDefault();
1293
+ const o = l.currentTarget.getBoundingClientRect(), h = l.clientX - o.left, f = l.clientY - o.top, s = F.current, m = Le(h, f, D.current, s.intervalTree, s.layoutEngine, s.groups);
1294
1294
  if (m)
1295
- (y = s.onItemContextMenu) == null || y.call(s, m.id, a.nativeEvent);
1295
+ (y = s.onItemContextMenu) == null || y.call(s, m.id, l.nativeEvent);
1296
1296
  else {
1297
- const H = at(f, D.current, s.groups), F = D.current.xToTime(h);
1298
- H && ((k = s.onCanvasContextMenu) == null || k.call(s, H.id, F, a.nativeEvent));
1297
+ const H = at(f, D.current, s.groups), O = D.current.xToTime(h);
1298
+ H && ((k = s.onCanvasContextMenu) == null || k.call(s, H.id, O, l.nativeEvent));
1299
1299
  }
1300
- }, []), oi = ie(() => {
1301
- var a, o;
1302
- Ke.current = null, _e.current && (_e.current.style.cursor = "default"), Fe.current !== void 0 && (Fe.current = void 0, E.markDirty("items"), (o = (a = O.current).onItemHover) == null || o.call(a, null, new PointerEvent("pointerleave"))), O.current.showCursorLine && E.markDirty("overlay");
1303
- }, [E]), si = oe(() => {
1304
- const a = [];
1300
+ }, []), si = ie(() => {
1301
+ var l, o;
1302
+ Ke.current = null, _e.current && (_e.current.style.cursor = "default"), Oe.current !== void 0 && (Oe.current = void 0, E.markDirty("items"), (o = (l = F.current).onItemHover) == null || o.call(l, null, new PointerEvent("pointerleave"))), F.current.showCursorLine && E.markDirty("overlay");
1303
+ }, [E]), li = oe(() => {
1304
+ const l = [];
1305
1305
  return ge.Children.forEach(Te, (o) => {
1306
1306
  var f;
1307
1307
  if (!ge.isValidElement(o))
1308
1308
  return;
1309
1309
  if (((f = o.type) == null ? void 0 : f.displayName) === "TimelineHeaders") {
1310
1310
  const s = o.props;
1311
- a.push(ge.cloneElement(o, {
1311
+ l.push(ge.cloneElement(o, {
1312
1312
  visibleTimeStart: s.visibleTimeStart ?? Tt,
1313
1313
  visibleTimeEnd: s.visibleTimeEnd ?? St,
1314
1314
  canvasWidth: s.canvasWidth ?? Se,
1315
- sidebarWidth: s.sidebarWidth ?? u,
1315
+ sidebarWidth: s.sidebarWidth ?? d,
1316
1316
  theme: s.theme ?? ye,
1317
1317
  onZoomToInterval: s.onZoomToInterval ?? ((m, y) => {
1318
- var k, H, F, V;
1319
- D.current.update({ visibleTimeStart: m, visibleTimeEnd: y }), E.markAllDirty(), Re(), (H = (k = O.current).onTimeChange) == null || H.call(k, m, y), (V = (F = O.current).onZoom) == null || V.call(F, m, y);
1318
+ var k, H, O, V;
1319
+ D.current.update({ visibleTimeStart: m, visibleTimeEnd: y }), E.markAllDirty(), Re(), (H = (k = F.current).onTimeChange) == null || H.call(k, m, y), (V = (O = F.current).onZoom) == null || V.call(O, m, y);
1320
1320
  })
1321
1321
  }));
1322
1322
  }
1323
- }), a;
1324
- }, [Te, Tt, St, Se, u, ye, E, Re]), Pt = z(!1);
1323
+ }), l;
1324
+ }, [Te, Tt, St, Se, d, ye, E, Re]), Pt = x(!1);
1325
1325
  he(() => {
1326
1326
  Pt.current || (Pt.current = !0, E.markAllDirty());
1327
1327
  }, [E]), ui(t, () => ({
1328
- captureToCanvas({ timeStart: a, timeEnd: o, scale: h, sidebarWidth: f }) {
1329
- const s = O.current, m = 28, y = m * 3, k = s.groups.length * s.lineHeight, H = D.current, F = s.canvasWidth / (H.visibleTimeEnd - H.visibleTimeStart), V = o - a, J = Math.max(s.canvasWidth, Math.round(V * F)), R = (f + J) * h, re = (y + k) * h, G = document.createElement("canvas");
1330
- G.width = R, G.height = re;
1331
- const w = G.getContext("2d");
1328
+ captureToCanvas({ timeStart: l, timeEnd: o, scale: h, sidebarWidth: f }) {
1329
+ const s = F.current, m = 28, y = m * 3, k = s.groups.length * s.lineHeight, H = D.current, O = s.canvasWidth / (H.visibleTimeEnd - H.visibleTimeStart), V = o - l, J = Math.max(s.canvasWidth, Math.round(V * O)), R = (f + J) * h, re = (y + k) * h, $ = document.createElement("canvas");
1330
+ $.width = R, $.height = re;
1331
+ const w = $.getContext("2d");
1332
1332
  w.scale(h, h);
1333
1333
  for (let A = 0; A < s.groups.length; A++) {
1334
1334
  const ae = s.groups[A], fe = y + A * s.lineHeight;
@@ -1343,18 +1343,18 @@ const Lt = 32, $i = ge.memo(ci(function(e, t) {
1343
1343
  const p = (A, ae, fe) => {
1344
1344
  var ee, N;
1345
1345
  w.fillStyle = ((ee = s.theme.header) == null ? void 0 : ee.bg) ?? "#f5f5f5", w.fillRect(f, A, J, m), w.strokeStyle = ((N = s.theme.grid) == null ? void 0 : N.line) ?? "#e0e0e0", w.lineWidth = 1, w.strokeRect(f, A, J, m);
1346
- let X = pe(a).startOf(fe);
1347
- X.valueOf() < a && (X = X.add(1, fe));
1348
- const q = J / (o - a);
1346
+ let X = pe(l).startOf(fe);
1347
+ X.valueOf() < l && (X = X.add(1, fe));
1348
+ const q = J / (o - l);
1349
1349
  for (; X.valueOf() < o; ) {
1350
- const le = X.add(1, fe), U = f + (X.valueOf() - a) * q, de = f + (Math.min(le.valueOf(), o) - a) * q - U;
1351
- w.beginPath(), w.moveTo(U, A), w.lineTo(U, A + m), w.stroke(), w.fillStyle = "#333", w.font = "600 11px sans-serif", w.textBaseline = "middle", w.textAlign = "center", w.fillText(ae(X), U + de / 2, A + m / 2, de - 4), X = le;
1350
+ const le = X.add(1, fe), U = f + (X.valueOf() - l) * q, ue = f + (Math.min(le.valueOf(), o) - l) * q - U;
1351
+ w.beginPath(), w.moveTo(U, A), w.lineTo(U, A + m), w.stroke(), w.fillStyle = "#333", w.font = "600 11px sans-serif", w.textBaseline = "middle", w.textAlign = "center", w.fillText(ae(X), U + ue / 2, A + m / 2, ue - 4), X = le;
1352
1352
  }
1353
1353
  w.textAlign = "start";
1354
1354
  };
1355
1355
  p(0, (A) => A.format("YYYY"), "year"), p(m, (A) => A.format("MM"), "month"), p(m * 2, (A) => String(A.isoWeek()), "week");
1356
1356
  const j = new lt({
1357
- visibleTimeStart: a,
1357
+ visibleTimeStart: l,
1358
1358
  visibleTimeEnd: o,
1359
1359
  canvasWidth: J,
1360
1360
  canvasHeight: k,
@@ -1364,31 +1364,31 @@ const Lt = 32, $i = ge.memo(ci(function(e, t) {
1364
1364
  buffer: 1,
1365
1365
  scrollTop: 0
1366
1366
  });
1367
- return w.save(), w.translate(f, y), w.beginPath(), w.rect(0, 0, J, k), w.clip(), Pe.draw(w, j, s.groups, s.theme, s.dayStyle, s.rowStyle, s.highlights), De.draw(w, j, s.groups, s.items, s.intervalTree, s.layoutEngine, s.itemRenderer, s.groupRenderer, s.theme, s.selected, void 0, s.dependencies, s.summaryRenderer, s.hierarchyEngine), Oe.draw(w, j, s.theme, {
1367
+ return w.save(), w.translate(f, y), w.beginPath(), w.rect(0, 0, J, k), w.clip(), Pe.draw(w, j, s.groups, s.theme, s.dayStyle, s.rowStyle, s.highlights), De.draw(w, j, s.groups, s.items, s.intervalTree, s.layoutEngine, s.itemRenderer, s.groupRenderer, s.theme, s.selected, void 0, s.dependencies, s.summaryRenderer, s.hierarchyEngine), Fe.draw(w, j, s.theme, {
1368
1368
  cursorX: null,
1369
1369
  snapX: null,
1370
1370
  markers: Xe.current,
1371
1371
  interaction: null
1372
- }), w.restore(), G;
1372
+ }), w.restore(), $;
1373
1373
  }
1374
- }), [Pe, De, Oe]), he(() => {
1375
- const a = {
1374
+ }), [Pe, De, Fe]), he(() => {
1375
+ const l = {
1376
1376
  captureToCanvas({ timeStart: o, timeEnd: h, scale: f, sidebarWidth: s }) {
1377
1377
  var fe;
1378
- const m = O.current, y = 28, k = y * 3, H = m.groups.length * m.lineHeight, F = D.current, V = m.canvasWidth / (F.visibleTimeEnd - F.visibleTimeStart), J = h - o, R = Math.max(m.canvasWidth, Math.round(J * V)), re = s + R, G = k + H, w = document.createElement("canvas");
1379
- w.width = re * f, w.height = G * f;
1378
+ const m = F.current, y = 28, k = y * 3, H = m.groups.length * m.lineHeight, O = D.current, V = m.canvasWidth / (O.visibleTimeEnd - O.visibleTimeStart), J = h - o, R = Math.max(m.canvasWidth, Math.round(J * V)), re = s + R, $ = k + H, w = document.createElement("canvas");
1379
+ w.width = re * f, w.height = $ * f;
1380
1380
  const p = w.getContext("2d");
1381
- p.scale(f, f), p.fillStyle = "#FFFFFF", p.fillRect(0, 0, re, G), p.save(), p.beginPath(), p.rect(0, 0, s, G), p.clip(), p.fillStyle = "#F9FAFB", p.fillRect(0, 0, s, k), p.strokeStyle = "#E5E7EB", p.lineWidth = 1, p.strokeRect(0, 0, s, k);
1381
+ p.scale(f, f), p.fillStyle = "#FFFFFF", p.fillRect(0, 0, re, $), p.save(), p.beginPath(), p.rect(0, 0, s, $), p.clip(), p.fillStyle = "#F9FAFB", p.fillRect(0, 0, s, k), p.strokeStyle = "#E5E7EB", p.lineWidth = 1, p.strokeRect(0, 0, s, k);
1382
1382
  for (let X = 0; X < m.groups.length; X++) {
1383
1383
  const q = m.groups[X], ee = k + X * m.lineHeight, N = (fe = m.rowStyle) == null ? void 0 : fe.call(m, q);
1384
1384
  p.fillStyle = (N == null ? void 0 : N.backgroundColor) ?? (X % 2 === 0 ? "#FFFFFF" : "#F7F7F7"), p.fillRect(0, ee, s, m.lineHeight), p.strokeStyle = "#E5E5E5", p.lineWidth = 0.5, p.beginPath(), p.moveTo(0, ee + m.lineHeight), p.lineTo(s, ee + m.lineHeight), p.stroke();
1385
1385
  const le = q.type ?? "";
1386
- let U = 8, ce = "400", de = 11;
1387
- le === "project" ? (ce = "700", de = 12) : le === "control_area_group" ? ce = "600" : le === "control_area" && (U = 24), p.fillStyle = "#374151", p.font = `${ce} ${de}px -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif`, p.textBaseline = "middle";
1386
+ let U = 8, ce = "400", ue = 11;
1387
+ le === "project" ? (ce = "700", ue = 12) : le === "control_area_group" ? ce = "600" : le === "control_area" && (U = 24), p.fillStyle = "#374151", p.font = `${ce} ${ue}px -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif`, p.textBaseline = "middle";
1388
1388
  const me = typeof q.title == "string" ? q.title : String(q.title);
1389
1389
  p.fillText(me, U, ee + m.lineHeight / 2, s - U - 8);
1390
1390
  }
1391
- p.strokeStyle = "#E5E7EB", p.lineWidth = 1, p.beginPath(), p.moveTo(s, 0), p.lineTo(s, G), p.stroke(), p.restore(), p.save(), p.beginPath(), p.rect(s, 0, R, k), p.clip();
1391
+ p.strokeStyle = "#E5E7EB", p.lineWidth = 1, p.beginPath(), p.moveTo(s, 0), p.lineTo(s, $), p.stroke(), p.restore(), p.save(), p.beginPath(), p.rect(s, 0, R, k), p.clip();
1392
1392
  const j = h - o, A = [
1393
1393
  { unit: "year", row: 0 },
1394
1394
  { unit: "month", row: 1 },
@@ -1400,10 +1400,10 @@ const Lt = 32, $i = ge.memo(ci(function(e, t) {
1400
1400
  let N = pe(o).startOf(X);
1401
1401
  const le = pe(h).add(1, X);
1402
1402
  for (; N.isBefore(le); ) {
1403
- const U = N.add(1, X), ce = s + (N.valueOf() - o) / j * R, de = (U.valueOf() - N.valueOf()) / j * R;
1404
- p.strokeStyle = "#E5E7EB", p.lineWidth = 0.5, p.strokeRect(ce, ee, de, y);
1403
+ const U = N.add(1, X), ce = s + (N.valueOf() - o) / j * R, ue = (U.valueOf() - N.valueOf()) / j * R;
1404
+ p.strokeStyle = "#E5E7EB", p.lineWidth = 0.5, p.strokeRect(ce, ee, ue, y);
1405
1405
  let me;
1406
- X === "year" ? me = N.format("YYYY") : X === "month" ? me = N.format("MM") : me = `${N.week()}`, p.fillStyle = "#6c737f", p.font = X === "year" ? '600 11px -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif' : '400 11px -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif', p.textBaseline = "middle", p.textAlign = "center", de > 20 && p.fillText(me, ce + de / 2, ee + y / 2), N = U;
1406
+ X === "year" ? me = N.format("YYYY") : X === "month" ? me = N.format("MM") : me = `${N.week()}`, p.fillStyle = "#6c737f", p.font = X === "year" ? '600 11px -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif' : '400 11px -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif', p.textBaseline = "middle", p.textAlign = "center", ue > 20 && p.fillText(me, ce + ue / 2, ee + y / 2), N = U;
1407
1407
  }
1408
1408
  }
1409
1409
  p.textAlign = "start", p.restore(), p.save(), p.beginPath(), p.rect(s, k, R, H), p.clip(), p.translate(s, k);
@@ -1418,38 +1418,52 @@ const Lt = 32, $i = ge.memo(ci(function(e, t) {
1418
1418
  buffer: 1,
1419
1419
  scrollTop: 0
1420
1420
  });
1421
- return Pe.draw(p, ae, m.groups, m.theme, m.dayStyle, m.rowStyle, m.highlights), De.draw(p, ae, m.groups, m.items, m.intervalTree, m.layoutEngine, m.itemRenderer, m.groupRenderer, m.theme, m.selected, void 0, m.dependencies, m.summaryRenderer, m.hierarchyEngine), Oe.draw(p, ae, m.theme, { cursorX: null, markers: Xe.current }), p.restore(), w;
1421
+ return Pe.draw(p, ae, m.groups, m.theme, m.dayStyle, m.rowStyle, m.highlights), De.draw(p, ae, m.groups, m.items, m.intervalTree, m.layoutEngine, m.itemRenderer, m.groupRenderer, m.theme, m.selected, void 0, m.dependencies, m.summaryRenderer, m.hierarchyEngine), Fe.draw(p, ae, m.theme, { cursorX: null, markers: Xe.current }), p.restore(), w;
1422
1422
  }
1423
1423
  };
1424
- Ye == null || Ye(a);
1425
- }, [Ye, Pe, De, Oe]);
1426
- const li = {
1424
+ je == null || je(l);
1425
+ }, [je, Pe, De, Fe]);
1426
+ const ai = {
1427
1427
  position: "relative",
1428
1428
  width: Se,
1429
1429
  height: ke,
1430
1430
  overflow: "hidden",
1431
1431
  cursor: "default"
1432
1432
  }, st = { position: "absolute", top: 0, left: 0 };
1433
- return Ze("div", { ref: yt, style: { display: "flex", flexDirection: "column", width: "100%" }, children: [si, Ze("div", { ref: xt, style: { display: "flex", overflow: "hidden" }, children: [se(Wt, { groups: n, width: u, lineHeight: c, scrollTop: kt, canvasHeight: ke, theme: ye, groupRenderer: ne, onScroll: (a) => {
1434
- D.current.update({ scrollTop: a }), E.markDirty("grid"), E.markDirty("items"), E.markDirty("overlay"), je(a);
1435
- } }), Ze("div", { ref: _e, style: li, onPointerMove: ei, onPointerDown: ti, onPointerUp: ii, onDoubleClick: ni, onContextMenu: ri, onPointerLeave: oi, children: [se("canvas", { ref: pt, style: { ...st, zIndex: 0 } }), se("canvas", { ref: vt, style: { ...st, zIndex: 1 } }), se("canvas", { ref: bt, style: { ...st, zIndex: 2 } })] }), qe && mt ? se(Wt, { groups: n, width: qe, lineHeight: c, scrollTop: kt, canvasHeight: ke, theme: ye, groupRenderer: mt, onScroll: (a) => {
1436
- D.current.update({ scrollTop: a }), E.markDirty("grid"), E.markDirty("items"), E.markDirty("overlay"), je(a);
1433
+ return Ae("div", { ref: yt, style: { display: "flex", flexDirection: "column", width: "100%", position: "relative" }, children: [xt ? Ae("div", { style: {
1434
+ position: "absolute",
1435
+ top: 0,
1436
+ left: 0,
1437
+ zIndex: 9999,
1438
+ padding: "2px 6px",
1439
+ fontSize: 10,
1440
+ fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace",
1441
+ lineHeight: 1.4,
1442
+ color: "#fff",
1443
+ background: "rgba(17, 24, 39, 0.78)",
1444
+ borderBottomRightRadius: 4,
1445
+ pointerEvents: "none",
1446
+ userSelect: "none"
1447
+ }, children: ["v", "0.4.0", " · ", "11:57:07"] }) : null, li, Ae("div", { ref: Vt, style: { display: "flex", overflow: "hidden" }, children: [se(Wt, { groups: n, width: d, lineHeight: c, scrollTop: kt, canvasHeight: ke, theme: ye, groupRenderer: ne, onScroll: (l) => {
1448
+ D.current.update({ scrollTop: l }), E.markDirty("grid"), E.markDirty("items"), E.markDirty("overlay"), Ne(l);
1449
+ } }), Ae("div", { ref: _e, style: ai, onPointerMove: ti, onPointerDown: ii, onPointerUp: ni, onDoubleClick: ri, onContextMenu: oi, onPointerLeave: si, children: [se("canvas", { ref: pt, style: { ...st, zIndex: 0 } }), se("canvas", { ref: vt, style: { ...st, zIndex: 1 } }), se("canvas", { ref: bt, style: { ...st, zIndex: 2 } })] }), qe && mt ? se(Wt, { groups: n, width: qe, lineHeight: c, scrollTop: kt, canvasHeight: ke, theme: ye, groupRenderer: mt, onScroll: (l) => {
1450
+ D.current.update({ scrollTop: l }), E.markDirty("grid"), E.markDirty("items"), E.markDirty("overlay"), Ne(l);
1437
1451
  } }) : null] })] });
1438
1452
  }));
1439
- function Pi({ children: i, theme: e, className: t, classNames: n, style: r, visibleTimeStart: d, visibleTimeEnd: l, canvasWidth: u, sidebarWidth: c = 0, onZoomToInterval: v }) {
1453
+ function Di({ children: i, theme: e, className: t, classNames: n, style: r, visibleTimeStart: u, visibleTimeEnd: a, canvasWidth: d, sidebarWidth: c = 0, onZoomToInterval: v }) {
1440
1454
  const M = ge.Children.map(i, (g) => {
1441
1455
  var T;
1442
1456
  if (!ge.isValidElement(g))
1443
1457
  return g;
1444
1458
  if (((T = g.type) == null ? void 0 : T.displayName) === "DateHeader") {
1445
1459
  const C = g.props, I = ge.cloneElement(g, {
1446
- visibleTimeStart: C.visibleTimeStart ?? d,
1447
- visibleTimeEnd: C.visibleTimeEnd ?? l,
1448
- canvasWidth: C.canvasWidth ?? u,
1460
+ visibleTimeStart: C.visibleTimeStart ?? u,
1461
+ visibleTimeEnd: C.visibleTimeEnd ?? a,
1462
+ canvasWidth: C.canvasWidth ?? d,
1449
1463
  theme: C.theme ?? e,
1450
1464
  onZoomToInterval: C.onIntervalClick ?? C.onZoomToInterval ?? v
1451
1465
  });
1452
- return Ze("div", { style: { display: "flex" }, children: [se("div", { style: { width: c, flexShrink: 0 } }), se("div", { style: { flex: 1, overflow: "hidden" }, children: I })] });
1466
+ return Ae("div", { style: { display: "flex" }, children: [se("div", { style: { width: c, flexShrink: 0 } }), se("div", { style: { flex: 1, overflow: "hidden" }, children: I })] });
1453
1467
  }
1454
1468
  return g;
1455
1469
  });
@@ -1465,45 +1479,45 @@ function Pi({ children: i, theme: e, className: t, classNames: n, style: r, visi
1465
1479
  ...r
1466
1480
  }, children: M });
1467
1481
  }
1468
- Pi.displayName = "TimelineHeaders";
1469
- var Gt = { exports: {} };
1482
+ Di.displayName = "TimelineHeaders";
1483
+ var $t = { exports: {} };
1470
1484
  (function(i, e) {
1471
1485
  (function(t, n) {
1472
1486
  i.exports = n();
1473
1487
  })(jt, function() {
1474
1488
  var t = "week", n = "year";
1475
- return function(r, d, l) {
1476
- var u = d.prototype;
1477
- u.week = function(c) {
1489
+ return function(r, u, a) {
1490
+ var d = u.prototype;
1491
+ d.week = function(c) {
1478
1492
  if (c === void 0 && (c = null), c !== null) return this.add(7 * (c - this.week()), "day");
1479
1493
  var v = this.$locale().yearStart || 1;
1480
1494
  if (this.month() === 11 && this.date() > 25) {
1481
- var M = l(this).startOf(n).add(1, n).date(v), g = l(this).endOf(t);
1495
+ var M = a(this).startOf(n).add(1, n).date(v), g = a(this).endOf(t);
1482
1496
  if (M.isBefore(g)) return 1;
1483
1497
  }
1484
- var b = l(this).startOf(n).date(v).startOf(t).subtract(1, "millisecond"), T = this.diff(b, t, !0);
1485
- return T < 0 ? l(this).startOf("week").week() : Math.ceil(T);
1486
- }, u.weeks = function(c) {
1498
+ var b = a(this).startOf(n).date(v).startOf(t).subtract(1, "millisecond"), T = this.diff(b, t, !0);
1499
+ return T < 0 ? a(this).startOf("week").week() : Math.ceil(T);
1500
+ }, d.weeks = function(c) {
1487
1501
  return c === void 0 && (c = null), this.week(c);
1488
1502
  };
1489
1503
  };
1490
1504
  });
1491
- })(Gt);
1492
- var Di = Gt.exports;
1493
- const Oi = /* @__PURE__ */ Nt(Di);
1494
- pe.extend(Oi);
1495
- const _i = {
1505
+ })($t);
1506
+ var Fi = $t.exports;
1507
+ const _i = /* @__PURE__ */ Nt(Fi);
1508
+ pe.extend(_i);
1509
+ const Oi = {
1496
1510
  year: 30,
1497
1511
  month: 30,
1498
1512
  week: 20,
1499
1513
  day: 15,
1500
1514
  hour: 30
1501
1515
  };
1502
- function Fi({ unit: i, visibleTimeStart: e = 0, visibleTimeEnd: t = 0, canvasWidth: n = 0, theme: r, height: d = 28, className: l, labelFormat: u, onIntervalClick: c, minCellWidth: v, onZoomToInterval: M }) {
1516
+ function Wi({ unit: i, visibleTimeStart: e = 0, visibleTimeEnd: t = 0, canvasWidth: n = 0, theme: r, height: u = 28, className: a, labelFormat: d, onIntervalClick: c, minCellWidth: v, onZoomToInterval: M }) {
1503
1517
  const g = oe(() => {
1504
1518
  if (!e || !t || !n)
1505
1519
  return [];
1506
- const T = t - e, C = v ?? _i[i];
1520
+ const T = t - e, C = v ?? Oi[i];
1507
1521
  if (C > 0) {
1508
1522
  const S = pe(e).startOf(i);
1509
1523
  if ((S.add(1, i).valueOf() - S.valueOf()) / T * n < C)
@@ -1511,16 +1525,16 @@ function Fi({ unit: i, visibleTimeStart: e = 0, visibleTimeEnd: t = 0, canvasWid
1511
1525
  }
1512
1526
  const I = [];
1513
1527
  let W = pe(e).startOf(i).subtract(1, i);
1514
- const $ = pe(t).add(2, i).valueOf();
1515
- for (; W.valueOf() < $; ) {
1516
- const S = W.add(1, i), _ = W.valueOf(), B = S.valueOf(), Y = (_ - e) / T * n, x = (B - _) / T * n, ne = Wi(W, S, i, u);
1517
- I.push({ start: _, end: B, label: ne, left: Y, width: x }), W = S;
1528
+ const z = pe(t).add(2, i).valueOf();
1529
+ for (; W.valueOf() < z; ) {
1530
+ const S = W.add(1, i), _ = W.valueOf(), B = S.valueOf(), Y = (_ - e) / T * n, G = (B - _) / T * n, ne = Xi(W, S, i, d);
1531
+ I.push({ start: _, end: B, label: ne, left: Y, width: G }), W = S;
1518
1532
  }
1519
1533
  return I;
1520
- }, [e, t, n, i, u, v]), b = ie((T, C) => {
1534
+ }, [e, t, n, i, d, v]), b = ie((T, C) => {
1521
1535
  c ? c(T, C) : M && M(T, C);
1522
1536
  }, [c, M]);
1523
- return g.length === 0 ? null : se("div", { style: { display: "flex", position: "relative", height: d, overflow: "hidden" }, children: g.map((T) => se("div", { className: l, onClick: () => b(T.start, T.end), style: {
1537
+ return g.length === 0 ? null : se("div", { style: { display: "flex", position: "relative", height: u, overflow: "hidden" }, children: g.map((T) => se("div", { className: a, onClick: () => b(T.start, T.end), style: {
1524
1538
  position: "absolute",
1525
1539
  left: T.left,
1526
1540
  width: T.width,
@@ -1541,11 +1555,11 @@ function Fi({ unit: i, visibleTimeStart: e = 0, visibleTimeEnd: t = 0, canvasWid
1541
1555
  boxSizing: "border-box"
1542
1556
  }, children: se("span", { children: T.label }) }, T.start)) });
1543
1557
  }
1544
- Fi.displayName = "DateHeader";
1545
- function Wi(i, e, t, n, r) {
1546
- return typeof n == "function" ? n(i.toDate(), e.toDate(), t) : typeof n == "string" ? i.format(n) : Xi(i, t);
1558
+ Wi.displayName = "DateHeader";
1559
+ function Xi(i, e, t, n, r) {
1560
+ return typeof n == "function" ? n(i.toDate(), e.toDate(), t) : typeof n == "string" ? i.format(n) : Bi(i, t);
1547
1561
  }
1548
- function Xi(i, e) {
1562
+ function Bi(i, e) {
1549
1563
  switch (e) {
1550
1564
  case "year":
1551
1565
  return i.format("YYYY");
@@ -1559,24 +1573,24 @@ function Xi(i, e) {
1559
1573
  return i.format("HH:mm");
1560
1574
  }
1561
1575
  }
1562
- function Bi({ width: i, children: e, style: t }) {
1576
+ function Li({ width: i, children: e, style: t }) {
1563
1577
  const n = () => ({ style: { width: i, ...t } });
1564
1578
  return e ? se(At, { children: e({ getRootProps: n }) }) : se("div", { style: { width: i } });
1565
1579
  }
1566
- Bi.displayName = "SidebarHeader";
1567
- function Li({ children: i }) {
1580
+ Li.displayName = "SidebarHeader";
1581
+ function Ai({ children: i }) {
1568
1582
  return se(At, { children: i });
1569
1583
  }
1570
- Li.displayName = "CustomHeader";
1584
+ Ai.displayName = "CustomHeader";
1571
1585
  export {
1572
1586
  $i as CanvasTimeline,
1573
- Li as CustomHeader,
1574
- Ii as CustomMarker,
1587
+ Ai as CustomHeader,
1588
+ Ri as CustomMarker,
1575
1589
  we as DEFAULT_THEME,
1576
- Fi as DateHeader,
1577
- mi as HierarchyEngine,
1578
- Bi as SidebarHeader,
1579
- Pi as TimelineHeaders,
1580
- Ci as TodayMarker
1590
+ Wi as DateHeader,
1591
+ gi as HierarchyEngine,
1592
+ Li as SidebarHeader,
1593
+ Di as TimelineHeaders,
1594
+ Hi as TodayMarker
1581
1595
  };
1582
1596
  //# sourceMappingURL=canvas-timeline.es.js.map