@taskctrl/canvas-timeline 0.10.1 → 0.10.3

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.
@@ -85,11 +85,11 @@ class wt {
85
85
  e.visibleTimeStart !== void 0 && (this.visibleTimeStart = e.visibleTimeStart), e.visibleTimeEnd !== void 0 && (this.visibleTimeEnd = e.visibleTimeEnd), e.canvasWidth !== void 0 && (this.canvasWidth = e.canvasWidth), e.canvasHeight !== void 0 && (this.canvasHeight = e.canvasHeight), e.sidebarWidth !== void 0 && (this.sidebarWidth = e.sidebarWidth), e.lineHeight !== void 0 && (this.lineHeight = e.lineHeight), e.groupCount !== void 0 && (this.groupCount = e.groupCount), e.buffer !== void 0 && (this.buffer = e.buffer), e.scrollTop !== void 0 && (this.scrollTop = e.scrollTop), e.groupHeights !== void 0 && (this.groupHeights = e.groupHeights ?? null), this.visibleDuration = this.visibleTimeEnd - this.visibleTimeStart, this.pixelsPerMs = this.canvasWidth / this.visibleDuration, this.recomputeGroupYOffsets();
86
86
  }
87
87
  recomputeGroupYOffsets() {
88
- var i;
88
+ var t;
89
89
  const e = new Array(this.groupCount + 1);
90
90
  e[0] = 0;
91
91
  for (let n = 0; n < this.groupCount; n++) {
92
- const r = ((i = this.groupHeights) == null ? void 0 : i[n]) ?? this.lineHeight;
92
+ const r = ((t = this.groupHeights) == null ? void 0 : t[n]) ?? this.lineHeight;
93
93
  e[n + 1] = e[n] + r;
94
94
  }
95
95
  this.groupYOffsets = e;
@@ -103,15 +103,15 @@ class wt {
103
103
  yToGroupIndex(e) {
104
104
  if (this.groupCount === 0)
105
105
  return 0;
106
- const i = e + this.scrollTop;
107
- if (i <= 0)
106
+ const t = e + this.scrollTop;
107
+ if (t <= 0)
108
108
  return 0;
109
- if (i >= this.groupYOffsets[this.groupCount])
109
+ if (t >= this.groupYOffsets[this.groupCount])
110
110
  return this.groupCount - 1;
111
111
  let n = 0, r = this.groupCount - 1;
112
112
  for (; n < r; ) {
113
- const u = n + r >>> 1;
114
- this.groupYOffsets[u + 1] > i ? r = u : n = u + 1;
113
+ const c = n + r >>> 1;
114
+ this.groupYOffsets[c + 1] > t ? r = c : n = c + 1;
115
115
  }
116
116
  return n;
117
117
  }
@@ -119,8 +119,8 @@ class wt {
119
119
  return e < 0 ? -this.scrollTop : e >= this.groupCount ? (this.groupYOffsets[this.groupCount] ?? 0) - this.scrollTop : this.groupYOffsets[e] - this.scrollTop;
120
120
  }
121
121
  groupIndexToHeight(e) {
122
- var i;
123
- return e < 0 || e >= this.groupCount ? this.lineHeight : ((i = this.groupHeights) == null ? void 0 : i[e]) ?? this.lineHeight;
122
+ var t;
123
+ return e < 0 || e >= this.groupCount ? this.lineHeight : ((t = this.groupHeights) == null ? void 0 : t[e]) ?? this.lineHeight;
124
124
  }
125
125
  getBufferBounds() {
126
126
  const e = this.visibleDuration * 1.5;
@@ -132,18 +132,18 @@ class wt {
132
132
  getVisibleGroupRange() {
133
133
  if (this.groupCount === 0)
134
134
  return { firstVisible: 0, lastVisible: -1 };
135
- const e = this.yToGroupIndex(0), i = this.yToGroupIndex(this.canvasHeight);
136
- return { firstVisible: e, lastVisible: i };
135
+ const e = this.yToGroupIndex(0), t = this.yToGroupIndex(this.canvasHeight);
136
+ return { firstVisible: e, lastVisible: t };
137
137
  }
138
138
  isScrollInBuffer(e) {
139
- const i = this.visibleDuration * 1.5 * this.pixelsPerMs;
140
- return Math.abs(e) < i;
139
+ const t = this.visibleDuration * 1.5 * this.pixelsPerMs;
140
+ return Math.abs(e) < t;
141
141
  }
142
142
  getTotalHeight() {
143
143
  return this.groupYOffsets[this.groupCount] ?? 0;
144
144
  }
145
145
  }
146
- class xi {
146
+ class zi {
147
147
  constructor() {
148
148
  Object.defineProperty(this, "root", {
149
149
  enumerable: !0,
@@ -152,44 +152,45 @@ class xi {
152
152
  value: null
153
153
  });
154
154
  }
155
- buildFromItems(e, i, n) {
156
- const r = e.map((u) => ({
157
- item: u,
158
- start: i(u),
159
- end: n(u)
155
+ buildFromItems(e, t, n) {
156
+ const r = e.map((c) => ({
157
+ item: c,
158
+ start: t(c),
159
+ end: n(c)
160
160
  }));
161
161
  this.root = this.buildNode(r);
162
162
  }
163
163
  buildNode(e) {
164
164
  if (e.length === 0)
165
165
  return null;
166
- let i = 1 / 0, n = -1 / 0;
167
- for (const s of e)
168
- s.start < i && (i = s.start), s.end > n && (n = s.end);
169
- const r = (i + n) / 2, u = [], o = [], c = [];
170
- for (const s of e)
171
- s.end < r ? u.push(s) : s.start > r ? o.push(s) : c.push(s);
172
- return {
173
- center: r,
174
- left: this.buildNode(u),
175
- right: this.buildNode(o),
176
- overlapping: c
166
+ const t = [];
167
+ for (const a of e)
168
+ Number.isFinite(a.start) && t.push(a.start), Number.isFinite(a.end) && t.push(a.end);
169
+ t.sort((a, l) => a - l);
170
+ const n = t.length === 0 ? 0 : t[t.length >> 1], r = [], c = [], o = [];
171
+ for (const a of e)
172
+ a.end < n ? r.push(a) : a.start > n ? c.push(a) : o.push(a);
173
+ return r.length === e.length || c.length === e.length ? { center: n, left: null, right: null, overlapping: e } : {
174
+ center: n,
175
+ left: this.buildNode(r),
176
+ right: this.buildNode(c),
177
+ overlapping: o
177
178
  };
178
179
  }
179
- query(e, i) {
180
+ query(e, t) {
180
181
  const n = [];
181
- return this.queryNode(this.root, e, i, n), n;
182
+ return this.queryNode(this.root, e, t, n), n;
182
183
  }
183
- queryNode(e, i, n, r) {
184
+ queryNode(e, t, n, r) {
184
185
  if (e !== null) {
185
- for (const u of e.overlapping)
186
- u.start <= n && u.end >= i && r.push(u.item);
187
- i <= e.center && e.left !== null && this.queryNode(e.left, i, n, r), n >= e.center && e.right !== null && this.queryNode(e.right, i, n, r);
186
+ for (const c of e.overlapping)
187
+ c.start <= n && c.end >= t && r.push(c.item);
188
+ 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);
188
189
  }
189
190
  }
190
191
  }
191
- class zi {
192
- constructor(e, i) {
192
+ class xi {
193
+ constructor(e, t) {
193
194
  Object.defineProperty(this, "lineHeight", {
194
195
  enumerable: !0,
195
196
  configurable: !0,
@@ -210,69 +211,69 @@ class zi {
210
211
  configurable: !0,
211
212
  writable: !0,
212
213
  value: /* @__PURE__ */ new Map()
213
- }), this.lineHeight = e, this.itemHeightRatio = i;
214
+ }), this.lineHeight = e, this.itemHeightRatio = t;
214
215
  }
215
- computeLayout(e, i, n) {
216
+ computeLayout(e, t, n) {
216
217
  this.layoutCache = /* @__PURE__ */ new Map(), this.groupMaxStack = /* @__PURE__ */ new Map();
217
- const r = this.lineHeight * this.itemHeightRatio, u = r * 0.6;
218
- if (!i) {
219
- for (const c of e) {
220
- const s = (n == null ? void 0 : n.isParent(c.id)) ?? !1;
221
- this.layoutCache.set(c.id, { stackLevel: 0, itemHeight: s ? u : r }), this.groupMaxStack.set(c.group, 0);
218
+ const r = this.lineHeight * this.itemHeightRatio, c = r * 0.6;
219
+ if (!t) {
220
+ for (const a of e) {
221
+ const l = (n == null ? void 0 : n.isParent(a.id)) ?? !1;
222
+ this.layoutCache.set(a.id, { stackLevel: 0, itemHeight: l ? c : r }), this.groupMaxStack.set(a.group, 0);
222
223
  }
223
224
  return this.layoutCache;
224
225
  }
225
226
  const o = /* @__PURE__ */ new Map();
226
- for (const c of e) {
227
- let s = o.get(c.group);
228
- s || (s = [], o.set(c.group, s)), s.push(c);
227
+ for (const a of e) {
228
+ let l = o.get(a.group);
229
+ l || (l = [], o.set(a.group, l)), l.push(a);
229
230
  }
230
- for (const [c, s] of o)
231
- n ? this.computeHierarchyLayout(s, n, r, u, c) : this.computeFlatLayout(s, r, c);
231
+ for (const [a, l] of o)
232
+ n ? this.computeHierarchyLayout(l, n, r, c, a) : this.computeFlatLayout(l, r, a);
232
233
  return this.layoutCache;
233
234
  }
234
- computeFlatLayout(e, i, n) {
235
- e.sort((o, c) => {
236
- const s = o.start_time - c.start_time;
237
- return s !== 0 ? s : c.end_time - c.start_time - (o.end_time - o.start_time);
235
+ computeFlatLayout(e, t, n) {
236
+ e.sort((o, a) => {
237
+ const l = o.start_time - a.start_time;
238
+ return l !== 0 ? l : a.end_time - a.start_time - (o.end_time - o.start_time);
238
239
  });
239
240
  const r = [];
240
- let u = 0;
241
+ let c = 0;
241
242
  for (const o of e) {
242
- let c = -1;
243
- for (let s = 0; s < r.length; s++)
244
- if (r[s] <= o.start_time) {
245
- c = s;
243
+ let a = -1;
244
+ for (let l = 0; l < r.length; l++)
245
+ if (r[l] <= o.start_time) {
246
+ a = l;
246
247
  break;
247
248
  }
248
- c === -1 ? (c = r.length, r.push(o.end_time)) : r[c] = o.end_time, c > u && (u = c), this.layoutCache.set(o.id, { stackLevel: c, itemHeight: i });
249
+ a === -1 ? (a = r.length, r.push(o.end_time)) : r[a] = o.end_time, a > c && (c = a), this.layoutCache.set(o.id, { stackLevel: a, itemHeight: t });
249
250
  }
250
- this.groupMaxStack.set(n, u);
251
+ this.groupMaxStack.set(n, c);
251
252
  }
252
- computeHierarchyLayout(e, i, n, r, u) {
253
- const o = [], c = [];
253
+ computeHierarchyLayout(e, t, n, r, c) {
254
+ const o = [], a = [];
254
255
  for (const m of e)
255
- i.isParent(m.id) ? c.push(m) : o.push(m);
256
+ t.isParent(m.id) ? a.push(m) : o.push(m);
256
257
  o.sort((m, f) => {
257
258
  const T = m.start_time - f.start_time;
258
259
  return T !== 0 ? T : f.end_time - f.start_time - (m.end_time - m.start_time);
259
260
  });
260
- const s = [];
261
+ const l = [];
261
262
  let h = 0;
262
263
  for (const m of o) {
263
264
  let f = -1;
264
- for (let T = 0; T < s.length; T++)
265
- if (s[T] <= m.start_time) {
265
+ for (let T = 0; T < l.length; T++)
266
+ if (l[T] <= m.start_time) {
266
267
  f = T;
267
268
  break;
268
269
  }
269
- f === -1 ? (f = s.length, s.push(m.end_time)) : s[f] = m.end_time, f > h && (h = f), this.layoutCache.set(m.id, { stackLevel: f, itemHeight: n });
270
+ f === -1 ? (f = l.length, l.push(m.end_time)) : l[f] = m.end_time, f > h && (h = f), this.layoutCache.set(m.id, { stackLevel: f, itemHeight: n });
270
271
  }
271
- c.sort((m, f) => i.getNestingDepth(f.id) - i.getNestingDepth(m.id));
272
+ a.sort((m, f) => t.getNestingDepth(f.id) - t.getNestingDepth(m.id));
272
273
  let S = o.length > 0 ? h + 1 : 0;
273
- for (const m of c)
274
+ for (const m of a)
274
275
  this.layoutCache.set(m.id, { stackLevel: S, itemHeight: r }), S > h && (h = S), S++;
275
- this.groupMaxStack.set(u, h);
276
+ this.groupMaxStack.set(c, h);
276
277
  }
277
278
  getLayout(e) {
278
279
  return this.layoutCache.get(e);
@@ -307,25 +308,25 @@ class Li {
307
308
  }
308
309
  rebuild(e) {
309
310
  this.parentToChildren = /* @__PURE__ */ new Map(), this.childToParent = /* @__PURE__ */ new Map(), this.itemMap = /* @__PURE__ */ new Map(), this.depthCache = /* @__PURE__ */ new Map();
310
- for (const i of e)
311
- this.itemMap.set(i.id, i);
312
- for (const i of e)
313
- if (i.parentId !== void 0 && this.itemMap.has(i.parentId)) {
314
- this.childToParent.set(i.id, i.parentId);
315
- let n = this.parentToChildren.get(i.parentId);
316
- n || (n = [], this.parentToChildren.set(i.parentId, n)), n.push(i.id);
311
+ for (const t of e)
312
+ this.itemMap.set(t.id, t);
313
+ for (const t of e)
314
+ if (t.parentId !== void 0 && this.itemMap.has(t.parentId)) {
315
+ this.childToParent.set(t.id, t.parentId);
316
+ let n = this.parentToChildren.get(t.parentId);
317
+ n || (n = [], this.parentToChildren.set(t.parentId, n)), n.push(t.id);
317
318
  }
318
- for (const i of this.childToParent.keys()) {
319
+ for (const t of this.childToParent.keys()) {
319
320
  const n = /* @__PURE__ */ new Set();
320
- let r = i;
321
+ let r = t;
321
322
  for (; r !== void 0; ) {
322
323
  if (n.has(r)) {
323
- const u = this.childToParent.get(i);
324
- this.childToParent.delete(i);
325
- const o = this.parentToChildren.get(u);
324
+ const c = this.childToParent.get(t);
325
+ this.childToParent.delete(t);
326
+ const o = this.parentToChildren.get(c);
326
327
  if (o) {
327
- const c = o.indexOf(i);
328
- c !== -1 && o.splice(c, 1), o.length === 0 && this.parentToChildren.delete(u);
328
+ const a = o.indexOf(t);
329
+ a !== -1 && o.splice(a, 1), o.length === 0 && this.parentToChildren.delete(c);
329
330
  }
330
331
  break;
331
332
  }
@@ -334,8 +335,8 @@ class Li {
334
335
  }
335
336
  }
336
337
  isParent(e) {
337
- const i = this.parentToChildren.get(e);
338
- return i !== void 0 && i.length > 0;
338
+ const t = this.parentToChildren.get(e);
339
+ return t !== void 0 && t.length > 0;
339
340
  }
340
341
  getParent(e) {
341
342
  return this.childToParent.get(e);
@@ -344,131 +345,131 @@ class Li {
344
345
  return this.parentToChildren.get(e) ?? [];
345
346
  }
346
347
  getDescendants(e) {
347
- const i = [], n = [...this.getChildren(e)];
348
+ const t = [], n = [...this.getChildren(e)];
348
349
  for (; n.length > 0; ) {
349
350
  const r = n.pop();
350
- i.push(r);
351
- const u = this.parentToChildren.get(r);
352
- u && n.push(...u);
351
+ t.push(r);
352
+ const c = this.parentToChildren.get(r);
353
+ c && n.push(...c);
353
354
  }
354
- return i;
355
+ return t;
355
356
  }
356
357
  getEffectiveSpan(e) {
357
- const i = this.itemMap.get(e);
358
- if (!i)
358
+ const t = this.itemMap.get(e);
359
+ if (!t)
359
360
  return { start: 0, end: 0 };
360
- let n = i.start_time, r = i.end_time;
361
- const u = this.getDescendants(e);
362
- for (const o of u) {
363
- const c = this.itemMap.get(o);
364
- c && (c.start_time < n && (n = c.start_time), c.end_time > r && (r = c.end_time));
361
+ let n = t.start_time, r = t.end_time;
362
+ const c = this.getDescendants(e);
363
+ for (const o of c) {
364
+ const a = this.itemMap.get(o);
365
+ a && (a.start_time < n && (n = a.start_time), a.end_time > r && (r = a.end_time));
365
366
  }
366
367
  return { start: n, end: r };
367
368
  }
368
369
  getNestingDepth(e) {
369
- const i = this.depthCache.get(e);
370
- if (i !== void 0)
371
- return i;
370
+ const t = this.depthCache.get(e);
371
+ if (t !== void 0)
372
+ return t;
372
373
  let n = 0, r = this.childToParent.get(e);
373
374
  for (; r !== void 0; )
374
375
  n++, r = this.childToParent.get(r);
375
376
  return this.depthCache.set(e, n), n;
376
377
  }
377
- getMoveDelta(e, i) {
378
+ getMoveDelta(e, t) {
378
379
  const n = this.itemMap.get(e);
379
380
  if (!n)
380
381
  return [];
381
- const r = i - n.start_time;
382
+ const r = t - n.start_time;
382
383
  return this.getDescendants(e).map((o) => {
383
- const c = this.itemMap.get(o);
384
- return { itemId: o, newStart: c.start_time + r };
384
+ const a = this.itemMap.get(o);
385
+ return { itemId: o, newStart: a.start_time + r };
385
386
  });
386
387
  }
387
- getResizeConstraint(e, i) {
388
+ getResizeConstraint(e, t) {
388
389
  const n = this.getDescendants(e);
389
390
  if (n.length === 0)
390
- return i === "left" ? { min: -1 / 0, max: 1 / 0 } : { min: -1 / 0, max: 1 / 0 };
391
- if (i === "left") {
391
+ return t === "left" ? { min: -1 / 0, max: 1 / 0 } : { min: -1 / 0, max: 1 / 0 };
392
+ if (t === "left") {
392
393
  let r = 1 / 0;
393
- for (const u of n) {
394
- const o = this.itemMap.get(u);
394
+ for (const c of n) {
395
+ const o = this.itemMap.get(c);
395
396
  o && o.start_time < r && (r = o.start_time);
396
397
  }
397
398
  return { min: -1 / 0, max: r };
398
399
  } else {
399
400
  let r = -1 / 0;
400
- for (const u of n) {
401
- const o = this.itemMap.get(u);
401
+ for (const c of n) {
402
+ const o = this.itemMap.get(c);
402
403
  o && o.end_time > r && (r = o.end_time);
403
404
  }
404
405
  return { min: r, max: 1 / 0 };
405
406
  }
406
407
  }
407
408
  }
408
- function Ai(t, e, i, n, r, u) {
409
- const { x: o, y: c, width: s, height: h } = i, S = u.primary;
410
- t.globalAlpha = 0.15, t.fillStyle = S, t.fillRect(o, c, s, h), t.globalAlpha = 1, t.strokeStyle = S, t.lineWidth = 1.5, t.strokeRect(o, c, s, h);
411
- const m = Math.min(h * 0.5, 6), f = c + h / 2;
412
- t.fillStyle = S, t.beginPath(), t.moveTo(o, f), t.lineTo(o + m, f - m), t.lineTo(o + m * 2, f), t.lineTo(o + m, f + m), t.closePath(), t.fill(), t.beginPath(), t.moveTo(o + s, f), t.lineTo(o + s - m, f - m), t.lineTo(o + s - m * 2, f), t.lineTo(o + s - m, f + m), t.closePath(), t.fill();
409
+ function Ai(i, e, t, n, r, c) {
410
+ const { x: o, y: a, width: l, height: h } = t, S = c.primary;
411
+ i.globalAlpha = 0.15, i.fillStyle = S, i.fillRect(o, a, l, h), i.globalAlpha = 1, i.strokeStyle = S, i.lineWidth = 1.5, i.strokeRect(o, a, l, h);
412
+ const m = Math.min(h * 0.5, 6), f = a + h / 2;
413
+ i.fillStyle = S, i.beginPath(), i.moveTo(o, f), i.lineTo(o + m, f - m), i.lineTo(o + m * 2, f), i.lineTo(o + m, f + m), i.closePath(), i.fill(), i.beginPath(), i.moveTo(o + l, f), i.lineTo(o + l - m, f - m), i.lineTo(o + l - m * 2, f), i.lineTo(o + l - m, f + m), i.closePath(), i.fill();
413
414
  const T = e.title;
414
- if (T && s > 30) {
415
- t.fillStyle = u.item.text, t.font = '500 11px -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif', t.textBaseline = "middle";
416
- const y = t.measureText(T).width, g = s - m * 4 - 4;
415
+ if (T && l > 30) {
416
+ i.fillStyle = c.item.text, i.font = '500 11px -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif', i.textBaseline = "middle";
417
+ const y = i.measureText(T).width, g = l - m * 4 - 4;
417
418
  if (g > 20) {
418
419
  const H = y > g ? T.slice(0, Math.floor(T.length * g / y)) + "..." : T;
419
- t.fillText(H, o + s / 2 - Math.min(y, g) / 2, f);
420
+ i.fillText(H, o + l / 2 - Math.min(y, g) / 2, f);
420
421
  }
421
422
  }
422
- n.selected && (t.strokeStyle = u.item.selectedRing, t.lineWidth = 2, t.strokeRect(o - 1, c - 1, s + 2, h + 2));
423
+ n.selected && (i.strokeStyle = c.item.selectedRing, i.lineWidth = 2, i.strokeRect(o - 1, a - 1, l + 2, h + 2));
423
424
  }
424
- function Ze(t, e, i, n, r, u) {
425
- const o = i.xToTime(t), c = /* @__PURE__ */ new Map();
426
- for (let m = 0; m < u.length; m++)
427
- c.set(u[m].id, m);
428
- const s = n.query(o, o);
425
+ function Ze(i, e, t, n, r, c) {
426
+ const o = t.xToTime(i), a = /* @__PURE__ */ new Map();
427
+ for (let m = 0; m < c.length; m++)
428
+ a.set(c[m].id, m);
429
+ const l = n.query(o, o);
429
430
  let h = null, S = -1 / 0;
430
- for (const m of s) {
431
- const f = c.get(m.group);
431
+ for (const m of l) {
432
+ const f = a.get(m.group);
432
433
  if (f === void 0)
433
434
  continue;
434
435
  const T = r.getLayout(m.id);
435
436
  if (!T)
436
437
  continue;
437
- const y = i.timeToX(m.start_time), g = i.timeToX(m.end_time) - y;
438
- if (t < y || t > y + g)
438
+ const y = t.timeToX(m.start_time), g = t.timeToX(m.end_time) - y;
439
+ if (i < y || i > y + g)
439
440
  continue;
440
- const Y = i.groupIndexToY(f) + T.stackLevel * i.lineHeight + (i.lineHeight - T.itemHeight) / 2, $ = T.itemHeight;
441
+ const Y = t.groupIndexToY(f) + T.stackLevel * t.lineHeight + (t.lineHeight - T.itemHeight) / 2, $ = T.itemHeight;
441
442
  e < Y || e > Y + $ || Y > S && (S = Y, h = m);
442
443
  }
443
444
  return h;
444
445
  }
445
- function kt(t, e, i) {
446
- const n = e.yToGroupIndex(t);
447
- return i[n] ?? null;
446
+ function kt(i, e, t) {
447
+ const n = e.yToGroupIndex(i);
448
+ return t[n] ?? null;
448
449
  }
449
- function Qt(t, e, i, n = 6) {
450
- const r = i.timeToX(e.start_time), u = i.timeToX(e.end_time);
451
- return t - r <= n ? "left" : u - t <= n ? "right" : "body";
450
+ function Qt(i, e, t, n = 6) {
451
+ const r = t.timeToX(e.start_time), c = t.timeToX(e.end_time);
452
+ return i - r <= n ? "left" : c - i <= n ? "right" : "body";
452
453
  }
453
- function Ni(t, e) {
454
- return t.canResize ?? e;
454
+ function Ni(i, e) {
455
+ return i.canResize ?? e;
455
456
  }
456
- function ji(t, e) {
457
- return t.canMove ?? e;
457
+ function ji(i, e) {
458
+ return i.canMove ?? e;
458
459
  }
459
- function Jt(t, e, i, n) {
460
- const r = Ni(t, i);
461
- return e === "left" && (r === "left" || r === "both") ? "resize-left" : e === "right" && (r === "right" || r === "both") ? "resize-right" : t.canResize === !1 && e !== "body" ? null : ji(t, n) ? "move" : null;
460
+ function Jt(i, e, t, n) {
461
+ const r = Ni(i, t);
462
+ return e === "left" && (r === "left" || r === "both") ? "resize-left" : e === "right" && (r === "right" || r === "both") ? "resize-right" : i.canResize === !1 && e !== "body" ? null : ji(i, n) ? "move" : null;
462
463
  }
463
- function Ct(t, e, i) {
464
- const n = window.devicePixelRatio || 1, r = Math.round(e * n), u = Math.round(i * n);
465
- (t.width !== r || t.height !== u) && (t.width = r, t.height = u, t.style.width = `${e}px`, t.style.height = `${i}px`);
466
- const o = t.getContext("2d");
464
+ function Ct(i, e, t) {
465
+ const n = window.devicePixelRatio || 1, r = Math.round(e * n), c = Math.round(t * n);
466
+ (i.width !== r || i.height !== c) && (i.width = r, i.height = c, i.style.width = `${e}px`, i.style.height = `${t}px`);
467
+ const o = i.getContext("2d");
467
468
  return o.setTransform(n, 0, 0, n, 0, 0), o;
468
469
  }
469
- function Et(t, e) {
470
- const i = window.devicePixelRatio || 1;
471
- t.clearRect(0, 0, e.width / i, e.height / i);
470
+ function Et(i, e) {
471
+ const t = window.devicePixelRatio || 1;
472
+ i.clearRect(0, 0, e.width / t, e.height / t);
472
473
  }
473
474
  class Gi {
474
475
  constructor(e) {
@@ -507,77 +508,77 @@ class Gi {
507
508
  }
508
509
  }
509
510
  var Qe = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
510
- function Je(t) {
511
- return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t;
511
+ function Je(i) {
512
+ return i && i.__esModule && Object.prototype.hasOwnProperty.call(i, "default") ? i.default : i;
512
513
  }
513
514
  var ui = { exports: {} };
514
- (function(t, e) {
515
- (function(i, n) {
516
- t.exports = n();
515
+ (function(i, e) {
516
+ (function(t, n) {
517
+ i.exports = n();
517
518
  })(Qe, function() {
518
- var i = "minute", n = /[+-]\d\d(?::?\d\d)?/g, r = /([+-]|\d\d)/g;
519
- return function(u, o, c) {
520
- var s = o.prototype;
521
- c.utc = function(g) {
519
+ var t = "minute", n = /[+-]\d\d(?::?\d\d)?/g, r = /([+-]|\d\d)/g;
520
+ return function(c, o, a) {
521
+ var l = o.prototype;
522
+ a.utc = function(g) {
522
523
  var H = { date: g, utc: !0, args: arguments };
523
524
  return new o(H);
524
- }, s.utc = function(g) {
525
- var H = c(this.toDate(), { locale: this.$L, utc: !0 });
526
- return g ? H.add(this.utcOffset(), i) : H;
527
- }, s.local = function() {
528
- return c(this.toDate(), { locale: this.$L, utc: !1 });
525
+ }, l.utc = function(g) {
526
+ var H = a(this.toDate(), { locale: this.$L, utc: !0 });
527
+ return g ? H.add(this.utcOffset(), t) : H;
528
+ }, l.local = function() {
529
+ return a(this.toDate(), { locale: this.$L, utc: !1 });
529
530
  };
530
- var h = s.parse;
531
- s.parse = function(g) {
531
+ var h = l.parse;
532
+ l.parse = function(g) {
532
533
  g.utc && (this.$u = !0), this.$utils().u(g.$offset) || (this.$offset = g.$offset), h.call(this, g);
533
534
  };
534
- var S = s.init;
535
- s.init = function() {
535
+ var S = l.init;
536
+ l.init = function() {
536
537
  if (this.$u) {
537
538
  var g = this.$d;
538
539
  this.$y = g.getUTCFullYear(), this.$M = g.getUTCMonth(), this.$D = g.getUTCDate(), this.$W = g.getUTCDay(), this.$H = g.getUTCHours(), this.$m = g.getUTCMinutes(), this.$s = g.getUTCSeconds(), this.$ms = g.getUTCMilliseconds();
539
540
  } else S.call(this);
540
541
  };
541
- var m = s.utcOffset;
542
- s.utcOffset = function(g, H) {
542
+ var m = l.utcOffset;
543
+ l.utcOffset = function(g, H) {
543
544
  var Y = this.$utils().u;
544
545
  if (Y(g)) return this.$u ? 0 : Y(this.$offset) ? m.call(this) : this.$offset;
545
546
  if (typeof g == "string" && (g = function(k) {
546
547
  k === void 0 && (k = "");
547
548
  var X = k.match(n);
548
549
  if (!X) return null;
549
- var B = ("" + X[0]).match(r) || ["-", 0, 0], I = B[0], x = 60 * +B[1] + +B[2];
550
- return x === 0 ? 0 : I === "+" ? x : -x;
550
+ var B = ("" + X[0]).match(r) || ["-", 0, 0], D = B[0], z = 60 * +B[1] + +B[2];
551
+ return z === 0 ? 0 : D === "+" ? z : -z;
551
552
  }(g), g === null)) return this;
552
553
  var $ = Math.abs(g) <= 16 ? 60 * g : g;
553
554
  if ($ === 0) return this.utc(H);
554
555
  var w = this.clone();
555
556
  if (H) return w.$offset = $, w.$u = !1, w;
556
557
  var E = this.$u ? this.toDate().getTimezoneOffset() : -1 * this.utcOffset();
557
- return (w = this.local().add($ + E, i)).$offset = $, w.$x.$localOffset = E, w;
558
+ return (w = this.local().add($ + E, t)).$offset = $, w.$x.$localOffset = E, w;
558
559
  };
559
- var f = s.format;
560
- s.format = function(g) {
560
+ var f = l.format;
561
+ l.format = function(g) {
561
562
  var H = g || (this.$u ? "YYYY-MM-DDTHH:mm:ss[Z]" : "");
562
563
  return f.call(this, H);
563
- }, s.valueOf = function() {
564
+ }, l.valueOf = function() {
564
565
  var g = this.$utils().u(this.$offset) ? 0 : this.$offset + (this.$x.$localOffset || this.$d.getTimezoneOffset());
565
566
  return this.$d.valueOf() - 6e4 * g;
566
- }, s.isUTC = function() {
567
+ }, l.isUTC = function() {
567
568
  return !!this.$u;
568
- }, s.toISOString = function() {
569
+ }, l.toISOString = function() {
569
570
  return this.toDate().toISOString();
570
- }, s.toString = function() {
571
+ }, l.toString = function() {
571
572
  return this.toDate().toUTCString();
572
573
  };
573
- var T = s.toDate;
574
- s.toDate = function(g) {
575
- return g === "s" && this.$offset ? c(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate() : T.call(this);
574
+ var T = l.toDate;
575
+ l.toDate = function(g) {
576
+ return g === "s" && this.$offset ? a(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate() : T.call(this);
576
577
  };
577
- var y = s.diff;
578
- s.diff = function(g, H, Y) {
578
+ var y = l.diff;
579
+ l.diff = function(g, H, Y) {
579
580
  if (g && this.$u === g.$u) return y.call(this, g, H, Y);
580
- var $ = this.local(), w = c(g).local();
581
+ var $ = this.local(), w = a(g).local();
581
582
  return y.call($, w, H, Y);
582
583
  };
583
584
  };
@@ -586,13 +587,13 @@ var ui = { exports: {} };
586
587
  var Ui = ui.exports;
587
588
  const Zi = /* @__PURE__ */ Je(Ui);
588
589
  var ci = { exports: {} };
589
- (function(t, e) {
590
- (function(i, n) {
591
- t.exports = n();
590
+ (function(i, e) {
591
+ (function(t, n) {
592
+ i.exports = n();
592
593
  })(Qe, function() {
593
- var i = { year: 0, month: 1, day: 2, hour: 3, minute: 4, second: 5 }, n = {};
594
- return function(r, u, o) {
595
- var c, s = function(f, T, y) {
594
+ var t = { year: 0, month: 1, day: 2, hour: 3, minute: 4, second: 5 }, n = {};
595
+ return function(r, c, o) {
596
+ var a, l = function(f, T, y) {
596
597
  y === void 0 && (y = {});
597
598
  var g = new Date(f), H = function(Y, $) {
598
599
  $ === void 0 && ($ = {});
@@ -601,15 +602,15 @@ var ci = { exports: {} };
601
602
  }(T, y);
602
603
  return H.formatToParts(g);
603
604
  }, h = function(f, T) {
604
- for (var y = s(f, T), g = [], H = 0; H < y.length; H += 1) {
605
- var Y = y[H], $ = Y.type, w = Y.value, E = i[$];
605
+ for (var y = l(f, T), g = [], H = 0; H < y.length; H += 1) {
606
+ var Y = y[H], $ = Y.type, w = Y.value, E = t[$];
606
607
  E >= 0 && (g[E] = parseInt(w, 10));
607
608
  }
608
- var k = g[3], X = k === 24 ? 0 : k, B = g[0] + "-" + g[1] + "-" + g[2] + " " + X + ":" + g[4] + ":" + g[5] + ":000", I = +f;
609
- return (o.utc(B).valueOf() - (I -= I % 1e3)) / 6e4;
610
- }, S = u.prototype;
609
+ var k = g[3], X = k === 24 ? 0 : k, B = g[0] + "-" + g[1] + "-" + g[2] + " " + X + ":" + g[4] + ":" + g[5] + ":000", D = +f;
610
+ return (o.utc(B).valueOf() - (D -= D % 1e3)) / 6e4;
611
+ }, S = c.prototype;
611
612
  S.tz = function(f, T) {
612
- f === void 0 && (f = c);
613
+ f === void 0 && (f = a);
613
614
  var y, g = this.utcOffset(), H = this.toDate(), Y = H.toLocaleString("en-US", { timeZone: f }), $ = Math.round((H - new Date(Y)) / 1e3 / 60), w = 15 * -Math.round(H.getTimezoneOffset() / 15) - $;
614
615
  if (!Number(w)) y = this.utcOffset(0, T);
615
616
  else if (y = o(Y, { locale: this.$L }).$set("millisecond", this.$ms).utcOffset(w, !0), T) {
@@ -618,7 +619,7 @@ var ci = { exports: {} };
618
619
  }
619
620
  return y.$x.$timezone = f, y;
620
621
  }, S.offsetName = function(f) {
621
- var T = this.$x.$timezone || o.tz.guess(), y = s(this.valueOf(), T, { timeZoneName: f }).find(function(g) {
622
+ var T = this.$x.$timezone || o.tz.guess(), y = l(this.valueOf(), T, { timeZoneName: f }).find(function(g) {
622
623
  return g.type.toLowerCase() === "timezonename";
623
624
  });
624
625
  return y && y.value;
@@ -629,19 +630,19 @@ var ci = { exports: {} };
629
630
  var y = o(this.format("YYYY-MM-DD HH:mm:ss:SSS"), { locale: this.$L });
630
631
  return m.call(y, f, T).tz(this.$x.$timezone, !0);
631
632
  }, o.tz = function(f, T, y) {
632
- var g = y && T, H = y || T || c, Y = h(+o(), H);
633
+ var g = y && T, H = y || T || a, Y = h(+o(), H);
633
634
  if (typeof f != "string") return o(f).tz(H);
634
- var $ = function(X, B, I) {
635
- var x = X - 60 * B * 1e3, _ = h(x, I);
636
- if (B === _) return [x, B];
637
- var ie = h(x -= 60 * (_ - B) * 1e3, I);
638
- return _ === ie ? [x, _] : [X - 60 * Math.min(_, ie) * 1e3, Math.max(_, ie)];
635
+ var $ = function(X, B, D) {
636
+ var z = X - 60 * B * 1e3, _ = h(z, D);
637
+ if (B === _) return [z, B];
638
+ var ie = h(z -= 60 * (_ - B) * 1e3, D);
639
+ return _ === ie ? [z, _] : [X - 60 * Math.min(_, ie) * 1e3, Math.max(_, ie)];
639
640
  }(o.utc(f, g).valueOf(), Y, H), w = $[0], E = $[1], k = o(w).utcOffset(E);
640
641
  return k.$x.$timezone = H, k;
641
642
  }, o.tz.guess = function() {
642
643
  return Intl.DateTimeFormat().resolvedOptions().timeZone;
643
644
  }, o.tz.setDefault = function(f) {
644
- c = f;
645
+ a = f;
645
646
  };
646
647
  };
647
648
  });
@@ -650,40 +651,40 @@ var Vi = ci.exports;
650
651
  const qi = /* @__PURE__ */ Je(Vi);
651
652
  ve.extend(Zi);
652
653
  ve.extend(qi);
653
- function he(t, e) {
654
- return e ? ve(t).tz(e) : ve(t);
654
+ function he(i, e) {
655
+ return e ? ve(i).tz(e) : ve(i);
655
656
  }
656
657
  class Ki {
657
- draw(e, i, n, r, u, o, c, s) {
658
- const { firstVisible: h, lastVisible: S } = i.getVisibleGroupRange();
658
+ draw(e, t, n, r, c, o, a, l) {
659
+ const { firstVisible: h, lastVisible: S } = t.getVisibleGroupRange();
659
660
  for (let w = h; w <= S; w++) {
660
- const E = i.groupIndexToY(w), k = i.groupIndexToHeight(w), X = n[w];
661
+ const E = t.groupIndexToY(w), k = t.groupIndexToHeight(w), X = n[w];
661
662
  if (!X)
662
663
  continue;
663
664
  let B;
664
- const I = o == null ? void 0 : o(X);
665
- I != null && I.backgroundColor ? B = I.backgroundColor : B = w % 2 === 0 ? "#FFFFFF" : r.grid.rowAlt, e.fillStyle = B, e.fillRect(0, E, i.canvasWidth, k), e.strokeStyle = (I == null ? void 0 : I.borderBottomColor) ?? r.grid.line, e.lineWidth = 0.5, e.beginPath(), e.moveTo(0, E + k), e.lineTo(i.canvasWidth, E + k), e.stroke();
665
+ const D = o == null ? void 0 : o(X);
666
+ D != null && D.backgroundColor ? B = D.backgroundColor : B = w % 2 === 0 ? "#FFFFFF" : r.grid.rowAlt, e.fillStyle = B, e.fillRect(0, E, t.canvasWidth, k), e.strokeStyle = (D == null ? void 0 : D.borderBottomColor) ?? r.grid.line, e.lineWidth = 0.5, e.beginPath(), e.moveTo(0, E + k), e.lineTo(t.canvasWidth, E + k), e.stroke();
666
667
  }
667
- if (c && c.length > 0)
668
- for (const w of c) {
669
- const E = i.timeToX(w.start), k = i.timeToX(w.end);
670
- if (k < 0 || E > i.canvasWidth)
668
+ if (a && a.length > 0)
669
+ for (const w of a) {
670
+ const E = t.timeToX(w.start), k = t.timeToX(w.end);
671
+ if (k < 0 || E > t.canvasWidth)
671
672
  continue;
672
- const X = Math.max(0, E), B = Math.min(i.canvasWidth, k) - X, I = w.opacity ?? 0.12, x = parseInt(w.color.slice(1, 3), 16), _ = parseInt(w.color.slice(3, 5), 16), ie = parseInt(w.color.slice(5, 7), 16);
673
- e.fillStyle = `rgb(${Math.round(x * I + 255 * (1 - I))},${Math.round(_ * I + 255 * (1 - I))},${Math.round(ie * I + 255 * (1 - I))})`, e.fillRect(X, 0, B, i.canvasHeight);
673
+ const X = Math.max(0, E), B = Math.min(t.canvasWidth, k) - X, D = w.opacity ?? 0.12, z = parseInt(w.color.slice(1, 3), 16), _ = parseInt(w.color.slice(3, 5), 16), ie = parseInt(w.color.slice(5, 7), 16);
674
+ e.fillStyle = `rgb(${Math.round(z * D + 255 * (1 - D))},${Math.round(_ * D + 255 * (1 - D))},${Math.round(ie * D + 255 * (1 - D))})`, e.fillRect(X, 0, B, t.canvasHeight);
674
675
  }
675
- const m = i.visibleTimeStart, f = i.visibleTimeEnd, g = 864e5 / (f - m) * i.canvasWidth;
676
+ const m = t.visibleTimeStart, f = t.visibleTimeEnd, g = 864e5 / (f - m) * t.canvasWidth;
676
677
  let H = "day";
677
678
  g < 2 ? H = "month" : g < 8 && (H = "week");
678
679
  {
679
- let w = he(m, s).startOf("day");
680
- const E = he(f, s).endOf("day");
680
+ let w = he(m, l).startOf("day");
681
+ const E = he(f, l).endOf("day");
681
682
  let k = null, X = 1, B = 0;
682
- const I = [], x = (_) => {
683
- k !== null && (e.fillStyle = k, X !== 1 && (e.globalAlpha = X), e.fillRect(B, 0, _ - B, i.canvasHeight), X !== 1 && (e.globalAlpha = 1), k = null, X = 1);
683
+ const D = [], z = (_) => {
684
+ k !== null && (e.fillStyle = k, X !== 1 && (e.globalAlpha = X), e.fillRect(B, 0, _ - B, t.canvasHeight), X !== 1 && (e.globalAlpha = 1), k = null, X = 1);
684
685
  };
685
686
  for (; w.isBefore(E); ) {
686
- const _ = i.timeToX(w.valueOf()), ie = w.toDate(), U = u == null ? void 0 : u(ie);
687
+ const _ = t.timeToX(w.valueOf()), ie = w.toDate(), U = c == null ? void 0 : c(ie);
687
688
  let J = null, me = 1;
688
689
  if (U != null && U.backgroundColor)
689
690
  J = U.backgroundColor, me = U.opacity ?? 1;
@@ -691,160 +692,160 @@ class Ki {
691
692
  const be = w.day();
692
693
  (be === 0 || be === 6) && (J = r.grid.weekend);
693
694
  }
694
- U != null && U.borderColor && I.push({ x: _, color: U.borderColor }), J === k && me === X || (x(_), J !== null && (k = J, X = me, B = _)), w = w.add(1, "day");
695
+ U != null && U.borderColor && D.push({ x: _, color: U.borderColor }), J === k && me === X || (z(_), J !== null && (k = J, X = me, B = _)), w = w.add(1, "day");
695
696
  }
696
- k !== null && x(i.timeToX(w.valueOf()));
697
- for (const _ of I)
698
- e.strokeStyle = _.color, e.lineWidth = 0.5, e.beginPath(), e.moveTo(_.x, 0), e.lineTo(_.x, i.canvasHeight), e.stroke();
697
+ k !== null && z(t.timeToX(w.valueOf()));
698
+ for (const _ of D)
699
+ e.strokeStyle = _.color, e.lineWidth = 0.5, e.beginPath(), e.moveTo(_.x, 0), e.lineTo(_.x, t.canvasHeight), e.stroke();
699
700
  }
700
- let Y = he(m, s).startOf(H);
701
- const $ = he(f, s).add(1, H);
701
+ let Y = he(m, l).startOf(H);
702
+ const $ = he(f, l).add(1, H);
702
703
  for (e.strokeStyle = r.grid.line, e.lineWidth = 0.5, e.beginPath(); Y.isBefore($); ) {
703
- const w = i.timeToX(Y.valueOf());
704
- e.moveTo(w, 0), e.lineTo(w, i.canvasHeight), Y = Y.add(1, H);
704
+ const w = t.timeToX(Y.valueOf());
705
+ e.moveTo(w, 0), e.lineTo(w, t.canvasHeight), Y = Y.add(1, H);
705
706
  }
706
- if (e.stroke(), c && c.length > 0)
707
- for (const w of c) {
708
- const E = i.timeToX(w.start), k = i.timeToX(w.end);
709
- if (!(k < 0 || E > i.canvasWidth) && (e.strokeStyle = w.color, e.globalAlpha = 0.4, e.lineWidth = 1, e.beginPath(), E >= 0 && E <= i.canvasWidth && (e.moveTo(E, 0), e.lineTo(E, i.canvasHeight)), k >= 0 && k <= i.canvasWidth && (e.moveTo(k, 0), e.lineTo(k, i.canvasHeight)), e.stroke(), e.globalAlpha = 1, w.label)) {
710
- const X = Math.max(0, E), B = Math.min(i.canvasWidth, k) - X;
707
+ if (e.stroke(), a && a.length > 0)
708
+ for (const w of a) {
709
+ const E = t.timeToX(w.start), k = t.timeToX(w.end);
710
+ if (!(k < 0 || E > t.canvasWidth) && (e.strokeStyle = w.color, e.globalAlpha = 0.4, e.lineWidth = 1, e.beginPath(), E >= 0 && E <= t.canvasWidth && (e.moveTo(E, 0), e.lineTo(E, t.canvasHeight)), k >= 0 && k <= t.canvasWidth && (e.moveTo(k, 0), e.lineTo(k, t.canvasHeight)), e.stroke(), e.globalAlpha = 1, w.label)) {
711
+ const X = Math.max(0, E), B = Math.min(t.canvasWidth, k) - X;
711
712
  e.save(), e.font = '600 10px -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif';
712
- const I = e.measureText(w.label).width, x = 6, _ = I + x * 2, ie = 18, U = X + (B - _) / 2, J = 4;
713
- e.fillStyle = w.color, e.globalAlpha = 0.9, e.beginPath(), e.roundRect(U, J, _, ie, 3), e.fill(), e.globalAlpha = 1, e.fillStyle = "#FFFFFF", e.textBaseline = "middle", e.fillText(w.label, U + x, J + ie / 2), e.restore();
713
+ const D = e.measureText(w.label).width, z = 6, _ = D + z * 2, ie = 18, U = X + (B - _) / 2, J = 4;
714
+ e.fillStyle = w.color, e.globalAlpha = 0.9, e.beginPath(), e.roundRect(U, J, _, ie, 3), e.fill(), e.globalAlpha = 1, e.fillStyle = "#FFFFFF", e.textBaseline = "middle", e.fillText(w.label, U + z, J + ie / 2), e.restore();
714
715
  }
715
716
  }
716
717
  }
717
718
  }
718
719
  const ei = '500 12px -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif';
719
- function di(t, e) {
720
+ function di(i, e) {
720
721
  return {
721
722
  /**
722
723
  * Draws a filled rounded rectangle.
723
724
  * Default corner radius is 3px.
724
725
  */
725
- roundRect(i, n, r, u, o = 3) {
726
- t.beginPath(), t.roundRect(i, n, r, u, o), t.fill();
726
+ roundRect(t, n, r, c, o = 3) {
727
+ i.beginPath(), i.roundRect(t, n, r, c, o), i.fill();
727
728
  },
728
729
  /**
729
730
  * Draws text at (x, y) using the standard item font.
730
731
  * If maxWidth is provided and the text is too wide, binary-search truncates it
731
732
  * and appends '...' so it fits within maxWidth.
732
733
  */
733
- fillText(i, n, r, u) {
734
- if (t.font = ei, u !== void 0 && t.measureText(i).width > u) {
735
- let o = 0, c = i.length;
736
- for (; o < c; ) {
737
- const s = Math.ceil((o + c) / 2), h = i.slice(0, s) + "...";
738
- t.measureText(h).width <= u ? o = s : c = s - 1;
734
+ fillText(t, n, r, c) {
735
+ if (i.font = ei, c !== void 0 && i.measureText(t).width > c) {
736
+ let o = 0, a = t.length;
737
+ for (; o < a; ) {
738
+ const l = Math.ceil((o + a) / 2), h = t.slice(0, l) + "...";
739
+ i.measureText(h).width <= c ? o = l : a = l - 1;
739
740
  }
740
- t.fillText(i.slice(0, o) + "...", n, r);
741
+ i.fillText(t.slice(0, o) + "...", n, r);
741
742
  } else
742
- t.fillText(i, n, r);
743
+ i.fillText(t, n, r);
743
744
  },
744
745
  /**
745
746
  * Creates a 50/50 linear gradient from color1 (0%–50%) to color2 (50%–100%)
746
747
  * spanning the given x position and width.
747
748
  */
748
- gradient(i, n, r, u) {
749
- const o = t.createLinearGradient(i, 0, i + n, 0);
750
- return o.addColorStop(0, r), o.addColorStop(0.5, r), o.addColorStop(0.5, u), o.addColorStop(1, u), o;
749
+ gradient(t, n, r, c) {
750
+ const o = i.createLinearGradient(t, 0, t + n, 0);
751
+ return o.addColorStop(0, r), o.addColorStop(0.5, r), o.addColorStop(0.5, c), o.addColorStop(1, c), o;
751
752
  },
752
753
  /**
753
754
  * Draws a vertical colored bar on the left edge of the item bounds.
754
755
  * Does nothing if no bounds were provided.
755
756
  */
756
- leftBar(i, n = 3) {
757
- e && (t.save(), t.fillStyle = i, t.fillRect(e.x, e.y, n, e.height), t.restore());
757
+ leftBar(t, n = 3) {
758
+ e && (i.save(), i.fillStyle = t, i.fillRect(e.x, e.y, n, e.height), i.restore());
758
759
  },
759
760
  /**
760
761
  * Draws a vector icon centered at (x, y).
761
762
  * Supported types: 'check', 'danger-red', 'danger-yellow'.
762
763
  * Default size is 14px.
763
764
  */
764
- icon(i, n, r, u = 14) {
765
- t.save();
766
- const o = u / 2;
767
- if (i === "check") {
768
- t.fillStyle = "#31c48d", t.beginPath(), t.arc(n + o, r + o, o, 0, Math.PI * 2), t.fill(), t.strokeStyle = "#ffffff", t.lineWidth = u * 0.12, t.beginPath();
769
- const c = n + o, s = r + o;
770
- t.moveTo(c - o * 0.45, s), t.lineTo(c - o * 0.1, s + o * 0.42), t.lineTo(c + o * 0.45, s - o * 0.35), t.stroke();
771
- } else if (i === "danger-red" || i === "danger-yellow") {
772
- const c = i === "danger-red" ? "#EF5350" : "#FBBF24";
773
- t.fillStyle = c, t.beginPath(), t.moveTo(n + o, r), t.lineTo(n + u, r + u), t.lineTo(n, r + u), t.closePath(), t.fill(), t.fillStyle = "#ffffff";
774
- const s = u * 0.12, h = n + o - s / 2;
775
- t.fillRect(h, r + u * 0.35, s, u * 0.35), t.beginPath(), t.arc(n + o, r + u * 0.82, s * 0.7, 0, Math.PI * 2), t.fill();
765
+ icon(t, n, r, c = 14) {
766
+ i.save();
767
+ const o = c / 2;
768
+ if (t === "check") {
769
+ i.fillStyle = "#31c48d", i.beginPath(), i.arc(n + o, r + o, o, 0, Math.PI * 2), i.fill(), i.strokeStyle = "#ffffff", i.lineWidth = c * 0.12, i.beginPath();
770
+ const a = n + o, l = r + o;
771
+ i.moveTo(a - o * 0.45, l), i.lineTo(a - o * 0.1, l + o * 0.42), i.lineTo(a + o * 0.45, l - o * 0.35), i.stroke();
772
+ } else if (t === "danger-red" || t === "danger-yellow") {
773
+ const a = t === "danger-red" ? "#EF5350" : "#FBBF24";
774
+ i.fillStyle = a, i.beginPath(), i.moveTo(n + o, r), i.lineTo(n + c, r + c), i.lineTo(n, r + c), i.closePath(), i.fill(), i.fillStyle = "#ffffff";
775
+ const l = c * 0.12, h = n + o - l / 2;
776
+ i.fillRect(h, r + c * 0.35, l, c * 0.35), i.beginPath(), i.arc(n + o, r + c * 0.82, l * 0.7, 0, Math.PI * 2), i.fill();
776
777
  }
777
- t.restore();
778
+ i.restore();
778
779
  },
779
780
  /**
780
781
  * Draws a pill-shaped badge with centered white text on a colored background.
781
782
  */
782
- badge(i, n, r, u) {
783
- t.save(), t.font = ei;
784
- const c = t.measureText(i).width, s = 8, S = 12 + 3 * 2, m = c + s * 2, f = S / 2;
785
- t.fillStyle = u, t.beginPath(), t.roundRect(n, r, m, S, f), t.fill(), t.fillStyle = "#ffffff", t.textAlign = "center", t.textBaseline = "middle", t.fillText(i, n + m / 2, r + S / 2), t.restore();
783
+ badge(t, n, r, c) {
784
+ i.save(), i.font = ei;
785
+ const a = i.measureText(t).width, l = 8, S = 12 + 3 * 2, m = a + l * 2, f = S / 2;
786
+ i.fillStyle = c, i.beginPath(), i.roundRect(n, r, m, S, f), i.fill(), i.fillStyle = "#ffffff", i.textAlign = "center", i.textBaseline = "middle", i.fillText(t, n + m / 2, r + S / 2), i.restore();
786
787
  }
787
788
  };
788
789
  }
789
790
  class Qi {
790
- draw(e, i, n, r, u, o, c, s, h, S, m, f, T, y) {
791
- const g = (i.visibleTimeEnd - i.visibleTimeStart) * 0.1, H = i.visibleTimeStart - g, Y = i.visibleTimeEnd + g, $ = u.query(H, Y), w = /* @__PURE__ */ new Map();
792
- for (let I = 0; I < n.length; I++)
793
- w.set(n[I].id, I);
794
- const E = new Set(S), k = /* @__PURE__ */ new Map(), X = -i.lineHeight, B = i.canvasHeight + i.lineHeight;
795
- for (const I of $) {
796
- const x = w.get(I.group);
797
- if (x === void 0)
791
+ draw(e, t, n, r, c, o, a, l, h, S, m, f, T, y) {
792
+ const g = (t.visibleTimeEnd - t.visibleTimeStart) * 0.1, H = t.visibleTimeStart - g, Y = t.visibleTimeEnd + g, $ = c.query(H, Y), w = /* @__PURE__ */ new Map();
793
+ for (let D = 0; D < n.length; D++)
794
+ w.set(n[D].id, D);
795
+ const E = new Set(S), k = /* @__PURE__ */ new Map(), X = -t.lineHeight, B = t.canvasHeight + t.lineHeight;
796
+ for (const D of $) {
797
+ const z = w.get(D.group);
798
+ if (z === void 0)
798
799
  continue;
799
- const _ = o.getLayout(I.id);
800
+ const _ = o.getLayout(D.id);
800
801
  if (!_)
801
802
  continue;
802
- const U = i.groupIndexToY(x) + _.stackLevel * i.lineHeight + (i.lineHeight - _.itemHeight) / 2, J = _.itemHeight;
803
+ const U = t.groupIndexToY(z) + _.stackLevel * t.lineHeight + (t.lineHeight - _.itemHeight) / 2, J = _.itemHeight;
803
804
  if (U + J < X || U > B)
804
805
  continue;
805
- const me = i.timeToX(I.start_time), be = i.timeToX(I.end_time) - me, ye = { x: me, y: U, width: be, height: J };
806
- k.set(I.id, ye);
806
+ const me = t.timeToX(D.start_time), be = t.timeToX(D.end_time) - me, ye = { x: me, y: U, width: be, height: J };
807
+ k.set(D.id, ye);
807
808
  const Ye = {
808
- selected: E.has(I.id),
809
- hovered: m === I.id,
809
+ selected: E.has(D.id),
810
+ hovered: m === D.id,
810
811
  dragging: !1,
811
- filtered: I.filtered !== !1
812
+ filtered: D.filtered !== !1
812
813
  };
813
814
  e.save();
814
815
  const et = di(e, ye);
815
816
  let He;
816
- T && (y != null && y.isParent(I.id)) ? He = T : s && (I.type === "control_area_group" || I.type === "construction_train") ? He = s : He = c, He(e, I, ye, Ye, et), e.restore();
817
+ T && (y != null && y.isParent(D.id)) ? He = T : l && (D.type === "control_area_group" || D.type === "construction_train") ? He = l : He = a, He(e, D, ye, Ye, et), e.restore();
817
818
  }
818
819
  if (f && f.length > 0) {
819
- const I = /* @__PURE__ */ new Set();
820
- for (const x of f)
821
- k.has(x.fromItemId) || I.add(x.fromItemId), k.has(x.toItemId) || I.add(x.toItemId);
822
- if (I.size > 0) {
823
- const x = /* @__PURE__ */ new Map();
820
+ const D = /* @__PURE__ */ new Set();
821
+ for (const z of f)
822
+ k.has(z.fromItemId) || D.add(z.fromItemId), k.has(z.toItemId) || D.add(z.toItemId);
823
+ if (D.size > 0) {
824
+ const z = /* @__PURE__ */ new Map();
824
825
  for (const _ of r)
825
- I.has(_.id) && x.set(_.id, _);
826
- for (const [_, ie] of x) {
826
+ D.has(_.id) && z.set(_.id, _);
827
+ for (const [_, ie] of z) {
827
828
  const U = w.get(ie.group);
828
829
  if (U === void 0)
829
830
  continue;
830
831
  const J = o.getLayout(_);
831
832
  if (!J)
832
833
  continue;
833
- const be = i.groupIndexToY(U) + J.stackLevel * i.lineHeight + (i.lineHeight - J.itemHeight) / 2, ye = i.timeToX(ie.start_time), Ye = i.timeToX(ie.end_time) - ye;
834
+ const be = t.groupIndexToY(U) + J.stackLevel * t.lineHeight + (t.lineHeight - J.itemHeight) / 2, ye = t.timeToX(ie.start_time), Ye = t.timeToX(ie.end_time) - ye;
834
835
  k.set(_, { x: ye, y: be, width: Ye, height: J.itemHeight });
835
836
  }
836
837
  }
837
838
  this.drawDependencies(e, f, k, m, h);
838
839
  }
839
840
  }
840
- drawDependencies(e, i, n, r, u) {
841
- for (const o of i) {
842
- const c = n.get(o.fromItemId), s = n.get(o.toItemId);
843
- if (!c || !s)
841
+ drawDependencies(e, t, n, r, c) {
842
+ for (const o of t) {
843
+ const a = n.get(o.fromItemId), l = n.get(o.toItemId);
844
+ if (!a || !l)
844
845
  continue;
845
846
  const h = r === o.fromItemId || r === o.toItemId;
846
- e.strokeStyle = h ? u.primary : o.color ?? "#94A3B8", e.lineWidth = h ? 2 : 1.5, e.setLineDash([]);
847
- const S = c.x + c.width, m = c.y + c.height / 2, f = s.x, T = s.y + s.height / 2, y = Math.abs(f - S), g = Math.max(y * 0.4, 30);
847
+ e.strokeStyle = h ? c.primary : o.color ?? "#94A3B8", e.lineWidth = h ? 2 : 1.5, e.setLineDash([]);
848
+ const S = a.x + a.width, m = a.y + a.height / 2, f = l.x, T = l.y + l.height / 2, y = Math.abs(f - S), g = Math.max(y * 0.4, 30);
848
849
  e.beginPath(), e.moveTo(S, m), e.bezierCurveTo(S + g, m, f - g, T, f, T), e.stroke();
849
850
  const H = 6;
850
851
  e.fillStyle = e.strokeStyle, e.beginPath(), e.moveTo(f, T), e.lineTo(f - H, T - H / 2), e.lineTo(f - H, T + H / 2), e.closePath(), e.fill();
@@ -852,12 +853,12 @@ class Qi {
852
853
  }
853
854
  }
854
855
  class Ji {
855
- draw(e, i, n, r) {
856
- const { cursorX: u, snapX: o, markers: c, interaction: s } = r;
857
- if (c)
858
- for (const h of c) {
859
- const S = i.timeToX(h.date);
860
- if (e.fillStyle = h.color, e.fillRect(S - h.width / 2, 0, h.width, i.canvasHeight), h.label) {
856
+ draw(e, t, n, r) {
857
+ const { cursorX: c, snapX: o, markers: a, interaction: l } = r;
858
+ if (a)
859
+ for (const h of a) {
860
+ const S = t.timeToX(h.date);
861
+ if (e.fillStyle = h.color, e.fillRect(S - h.width / 2, 0, h.width, t.canvasHeight), h.label) {
861
862
  e.save(), e.font = '500 10px -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif';
862
863
  const m = e.measureText(h.label).width, f = 8, T = 200, y = Math.min(m + f * 2, T), g = 20, H = S - y / 2, Y = 4;
863
864
  e.fillStyle = h.color, e.beginPath(), e.roundRect(H, Y, y, g, 3), e.fill(), e.fillStyle = "#FFFFFF", e.textBaseline = "middle";
@@ -865,20 +866,20 @@ class Ji {
865
866
  e.fillText(w, H + f, Y + g / 2), e.restore();
866
867
  }
867
868
  }
868
- if (u != null && (e.strokeStyle = n.marker.cursor, e.lineWidth = 1, e.beginPath(), e.moveTo(u, 0), e.lineTo(u, i.canvasHeight), e.stroke()), o != null && (e.strokeStyle = n.primary, e.lineWidth = 1, e.setLineDash([4, 4]), e.beginPath(), e.moveTo(o, 0), e.lineTo(o, i.canvasHeight), e.stroke(), e.setLineDash([])), s) {
869
- s.groupChanged && s.targetGroupY !== void 0 && (e.fillStyle = "rgba(59, 130, 246, 0.08)", e.fillRect(0, s.targetGroupY, i.canvasWidth, i.lineHeight)), e.save(), e.globalAlpha = 0.5;
870
- const h = di(e, s.bounds);
871
- s.renderer(e, s.item, s.bounds, { selected: !1, hovered: !1, dragging: !0, filtered: !0 }, h), e.restore();
869
+ if (c != null && (e.strokeStyle = n.marker.cursor, e.lineWidth = 1, e.beginPath(), e.moveTo(c, 0), e.lineTo(c, t.canvasHeight), e.stroke()), o != null && (e.strokeStyle = n.primary, e.lineWidth = 1, e.setLineDash([4, 4]), e.beginPath(), e.moveTo(o, 0), e.lineTo(o, t.canvasHeight), e.stroke(), e.setLineDash([])), l) {
870
+ l.groupChanged && l.targetGroupY !== void 0 && (e.fillStyle = "rgba(59, 130, 246, 0.08)", e.fillRect(0, l.targetGroupY, t.canvasWidth, t.lineHeight)), e.save(), e.globalAlpha = 0.5;
871
+ const h = di(e, l.bounds);
872
+ l.renderer(e, l.item, l.bounds, { selected: !1, hovered: !1, dragging: !0, filtered: !0 }, h), e.restore();
872
873
  }
873
874
  }
874
875
  }
875
876
  const ti = 120;
876
- function en(t) {
877
- let e = t.deltaY || t.deltaX;
878
- return t.deltaMode === 1 ? e *= 15 : t.deltaMode === 2 && (e *= 800), Math.max(-ti, Math.min(ti, e));
877
+ function en(i) {
878
+ let e = i.deltaY || i.deltaX;
879
+ return i.deltaMode === 1 ? e *= 15 : i.deltaMode === 2 && (e *= 800), Math.max(-ti, Math.min(ti, e));
879
880
  }
880
881
  class tn {
881
- constructor(e, i, n, r, u) {
882
+ constructor(e, t, n, r, c) {
882
883
  Object.defineProperty(this, "onZoom", {
883
884
  enumerable: !0,
884
885
  configurable: !0,
@@ -904,43 +905,43 @@ class tn {
904
905
  configurable: !0,
905
906
  writable: !0,
906
907
  value: void 0
907
- }), this.onZoom = e, this.visibleTimeStart = i, this.visibleTimeEnd = n, this.minZoom = r, this.maxZoom = u;
908
+ }), this.onZoom = e, this.visibleTimeStart = t, this.visibleTimeEnd = n, this.minZoom = r, this.maxZoom = c;
908
909
  }
909
- updateBounds(e, i) {
910
- this.visibleTimeStart = e, this.visibleTimeEnd = i;
910
+ updateBounds(e, t) {
911
+ this.visibleTimeStart = e, this.visibleTimeEnd = t;
911
912
  }
912
- handleWheelZoom(e, i) {
913
- const n = en(e), r = e.ctrlKey ? 10 : e.metaKey ? 3 : 1, u = n > 0 ? 1 + r * n / 500 : 1 / (1 + r * -n / 500), o = this.visibleTimeEnd - this.visibleTimeStart;
914
- let c = Math.round(o * u);
915
- c = Math.max(this.minZoom, Math.min(this.maxZoom, c));
916
- const s = Math.round(this.visibleTimeStart + (o - c) * i), h = s + c;
917
- this.onZoom(s, h);
913
+ handleWheelZoom(e, t) {
914
+ const n = en(e), r = e.ctrlKey ? 10 : e.metaKey ? 3 : 1, c = n > 0 ? 1 + r * n / 500 : 1 / (1 + r * -n / 500), o = this.visibleTimeEnd - this.visibleTimeStart;
915
+ let a = Math.round(o * c);
916
+ a = Math.max(this.minZoom, Math.min(this.maxZoom, a));
917
+ const l = Math.round(this.visibleTimeStart + (o - a) * t), h = l + a;
918
+ this.onZoom(l, h);
918
919
  }
919
920
  }
920
921
  const ct = 864e5;
921
922
  let ii = !1;
922
- function Ht(t) {
923
- return ii || (ii = !0, console.warn(`[canvas-timeline] dragSnap function returned ${t}; falling back to no snap. This warning is shown once per session.`)), 1;
923
+ function Ht(i) {
924
+ return ii || (ii = !0, console.warn(`[canvas-timeline] dragSnap function returned ${i}; falling back to no snap. This warning is shown once per session.`)), 1;
924
925
  }
925
- function qe(t, e, i) {
926
- if (t === void 0)
926
+ function qe(i, e, t) {
927
+ if (i === void 0)
927
928
  return 1;
928
- if (typeof t != "function")
929
- return t;
930
- const n = t(e, i);
929
+ if (typeof i != "function")
930
+ return i;
931
+ const n = i(e, t);
931
932
  return typeof n == "number" ? !Number.isFinite(n) || n <= 0 ? Ht(`an invalid interval (${n})`) : n : !Number.isFinite(n.interval) || n.interval <= 0 ? Ht(`an invalid interval (${n.interval})`) : Number.isFinite(n.anchor) ? n : Ht(`a non-finite anchor (${n.anchor})`);
932
933
  }
933
- function Ke(t, e, i) {
934
+ function Ke(i, e, t) {
934
935
  if (typeof e != "number") {
935
- const { interval: r, anchor: u } = e;
936
- return !Number.isFinite(r) || r <= 0 || !Number.isFinite(u) ? t : Math.round((t - u) / r) * r + u;
936
+ const { interval: r, anchor: c } = e;
937
+ return !Number.isFinite(r) || r <= 0 || !Number.isFinite(c) ? i : Math.round((i - c) / r) * r + c;
937
938
  }
938
939
  const n = e;
939
- if (i && n % ct === 0) {
940
- const r = n / ct, u = he(t, i), o = u.startOf("day"), c = o.add(1, "day").valueOf() - o.valueOf(), s = (t - o.valueOf()) / c, h = Math.round(ve.utc(u.format("YYYY-MM-DD")).valueOf() / ct), S = Math.round((h + s) / r) * r, m = ve.utc(S * ct).format("YYYY-MM-DD");
941
- return ve.tz(m, i).valueOf();
940
+ if (t && n % ct === 0) {
941
+ const r = n / ct, c = he(i, t), o = c.startOf("day"), a = o.add(1, "day").valueOf() - o.valueOf(), l = (i - o.valueOf()) / a, h = Math.round(ve.utc(c.format("YYYY-MM-DD")).valueOf() / ct), S = Math.round((h + l) / r) * r, m = ve.utc(S * ct).format("YYYY-MM-DD");
942
+ return ve.tz(m, t).valueOf();
942
943
  }
943
- return Math.round(t / n) * n;
944
+ return Math.round(i / n) * n;
944
945
  }
945
946
  const nn = 4;
946
947
  class rn {
@@ -962,10 +963,10 @@ class rn {
962
963
  value: !1
963
964
  }), this.dragSnap = e;
964
965
  }
965
- startInteraction(e, i, n, r) {
966
+ startInteraction(e, t, n, r) {
966
967
  this.state = {
967
968
  item: e,
968
- mode: i,
969
+ mode: t,
969
970
  startX: n,
970
971
  startY: r,
971
972
  currentX: n,
@@ -975,8 +976,8 @@ class rn {
975
976
  currentGroup: e.group
976
977
  }, this.activated = !1;
977
978
  }
978
- update(e, i) {
979
- this.state && (this.state.currentX = e, this.state.currentY = i, this.state.deltaX = e - this.state.startX, !this.activated && Math.abs(this.state.deltaX) >= nn && (this.activated = !0));
979
+ update(e, t) {
980
+ this.state && (this.state.currentX = e, this.state.currentY = t, this.state.deltaX = e - this.state.startX, !this.activated && Math.abs(this.state.deltaX) >= nn && (this.activated = !0));
980
981
  }
981
982
  setCurrentGroup(e) {
982
983
  this.state && (this.state.currentGroup = e);
@@ -984,13 +985,13 @@ class rn {
984
985
  endMove(e) {
985
986
  if (!this.state)
986
987
  return null;
987
- const i = this.state.deltaX / e, n = this.state.item.start_time + i, r = Ke(n, qe(this.dragSnap, this.state.item)), u = this.state.currentGroup;
988
- return this.state = null, this.activated = !1, { newStartTime: r, newGroupId: u };
988
+ const t = this.state.deltaX / e, n = this.state.item.start_time + t, r = Ke(n, qe(this.dragSnap, this.state.item)), c = this.state.currentGroup;
989
+ return this.state = null, this.activated = !1, { newStartTime: r, newGroupId: c };
989
990
  }
990
991
  endResize(e) {
991
992
  if (!this.state)
992
993
  return null;
993
- const i = 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) + i, o = Ke(u, qe(this.dragSnap, this.state.item, n));
994
+ const t = this.state.deltaX / e, n = this.state.mode === "resize-left" ? "left" : "right", c = (n === "left" ? this.state.item.start_time : this.state.item.end_time) + t, o = Ke(c, qe(this.dragSnap, this.state.item, n));
994
995
  return this.state = null, this.activated = !1, { newTime: o, edge: n };
995
996
  }
996
997
  cancel() {
@@ -1010,94 +1011,94 @@ class rn {
1010
1011
  return this.state !== null;
1011
1012
  }
1012
1013
  }
1013
- function It(t, e, i) {
1014
+ function Dt(i, e, t) {
1014
1015
  const n = [];
1015
- for (const r of t)
1016
- r.id !== e && (n.push(i(r.start_time)), n.push(i(r.end_time)));
1016
+ for (const r of i)
1017
+ r.id !== e && (n.push(t(r.start_time)), n.push(t(r.end_time)));
1017
1018
  return n;
1018
1019
  }
1019
- function dt(t, e, i, n, r) {
1020
+ function dt(i, e, t, n, r) {
1020
1021
  if (e.length === 0)
1021
1022
  return null;
1022
- let u = e[0], o = Math.abs(t - u);
1023
- for (let c = 1; c < e.length; c++) {
1024
- const s = Math.abs(t - e[c]);
1025
- s < o && (o = s, u = e[c]);
1023
+ let c = e[0], o = Math.abs(i - c);
1024
+ for (let a = 1; a < e.length; a++) {
1025
+ const l = Math.abs(i - e[a]);
1026
+ l < o && (o = l, c = e[a]);
1026
1027
  }
1027
- return o <= i ? u : null;
1028
+ return o <= t ? c : null;
1028
1029
  }
1029
- function fi(t, e, i) {
1030
- const n = i.canvasWidth / (e.visibleTimeEnd - e.visibleTimeStart), r = t.deltaX / n, u = t.item.start_time + r, o = qe(i.dragSnap, t.item), c = (e.visibleTimeEnd - e.visibleTimeStart) * 0.1, s = i.intervalTree.query(e.visibleTimeStart - c, e.visibleTimeEnd + c), h = It(s, t.item.id, (f) => e.timeToX(f)), S = dt(e.timeToX(u), h, 8);
1030
+ function fi(i, e, t) {
1031
+ const n = t.canvasWidth / (e.visibleTimeEnd - e.visibleTimeStart), r = i.deltaX / n, c = i.item.start_time + r, o = qe(t.dragSnap, i.item), a = (e.visibleTimeEnd - e.visibleTimeStart) * 0.1, l = t.intervalTree.query(e.visibleTimeStart - a, e.visibleTimeEnd + a), h = Dt(l, i.item.id, (f) => e.timeToX(f)), S = dt(e.timeToX(c), h, 8);
1031
1032
  if (S !== null)
1032
1033
  return e.xToTime(S);
1033
- const m = dt(e.timeToX(t.item.end_time + r), h, 8);
1034
- return m !== null ? e.xToTime(m) - (t.item.end_time - t.item.start_time) : Ke(u, o, i.timezone);
1034
+ const m = dt(e.timeToX(i.item.end_time + r), h, 8);
1035
+ return m !== null ? e.xToTime(m) - (i.item.end_time - i.item.start_time) : Ke(c, o, t.timezone);
1035
1036
  }
1036
- function hi(t, e, i) {
1037
- const n = i.canvasWidth / (e.visibleTimeEnd - e.visibleTimeStart), r = t.deltaX / n, u = t.mode === "resize-left" ? "left" : "right", o = (u === "left" ? t.item.start_time : t.item.end_time) + r, c = qe(i.dragSnap, t.item, u), s = (e.visibleTimeEnd - e.visibleTimeStart) * 0.1, h = i.intervalTree.query(e.visibleTimeStart - s, e.visibleTimeEnd + s), S = It(h, t.item.id, (y) => e.timeToX(y)), m = dt(e.timeToX(o), S, 8);
1038
- let f = m !== null ? e.xToTime(m) : Ke(o, c, i.timezone);
1039
- const T = i.hierarchyEngine.getResizeConstraint(t.item.id, u);
1040
- return u === "left" && f > T.max ? f = T.max : u === "right" && f < T.min && (f = T.min), { edge: u, time: f };
1037
+ function hi(i, e, t) {
1038
+ const n = t.canvasWidth / (e.visibleTimeEnd - e.visibleTimeStart), r = i.deltaX / n, c = i.mode === "resize-left" ? "left" : "right", o = (c === "left" ? i.item.start_time : i.item.end_time) + r, a = qe(t.dragSnap, i.item, c), l = (e.visibleTimeEnd - e.visibleTimeStart) * 0.1, h = t.intervalTree.query(e.visibleTimeStart - l, e.visibleTimeEnd + l), S = Dt(h, i.item.id, (y) => e.timeToX(y)), m = dt(e.timeToX(o), S, 8);
1039
+ let f = m !== null ? e.xToTime(m) : Ke(o, a, t.timezone);
1040
+ const T = t.hierarchyEngine.getResizeConstraint(i.item.id, c);
1041
+ return c === "left" && f > T.max ? f = T.max : c === "right" && f < T.min && (f = T.min), { edge: c, time: f };
1041
1042
  }
1042
- function on(t, e, i, n) {
1043
- if (t.mode === "move") {
1044
- const s = fi(t, e, i), h = t.item.end_time - t.item.start_time;
1045
- return { itemId: t.item.id, mode: "move", time: s, startTime: s, endTime: s + h, pointerX: n.x, pointerY: n.y };
1043
+ function on(i, e, t, n) {
1044
+ if (i.mode === "move") {
1045
+ const l = fi(i, e, t), h = i.item.end_time - i.item.start_time;
1046
+ return { itemId: i.item.id, mode: "move", time: l, startTime: l, endTime: l + h, pointerX: n.x, pointerY: n.y };
1046
1047
  }
1047
- const { edge: r, time: u } = hi(t, e, i), o = r === "left" ? u : t.item.start_time, c = r === "right" ? u : t.item.end_time;
1048
- return { itemId: t.item.id, mode: t.mode, edge: r, time: u, startTime: o, endTime: c, pointerX: n.x, pointerY: n.y };
1048
+ const { edge: r, time: c } = hi(i, e, t), o = r === "left" ? c : i.item.start_time, a = r === "right" ? c : i.item.end_time;
1049
+ return { itemId: i.item.id, mode: i.mode, edge: r, time: c, startTime: o, endTime: a, pointerX: n.x, pointerY: n.y };
1049
1050
  }
1050
1051
  var mi = { exports: {} };
1051
- (function(t, e) {
1052
- (function(i, n) {
1053
- t.exports = n();
1052
+ (function(i, e) {
1053
+ (function(t, n) {
1054
+ i.exports = n();
1054
1055
  })(Qe, function() {
1055
- var i = "day";
1056
- return function(n, r, u) {
1056
+ var t = "day";
1057
+ return function(n, r, c) {
1057
1058
  var o = function(h) {
1058
- return h.add(4 - h.isoWeekday(), i);
1059
- }, c = r.prototype;
1060
- c.isoWeekYear = function() {
1059
+ return h.add(4 - h.isoWeekday(), t);
1060
+ }, a = r.prototype;
1061
+ a.isoWeekYear = function() {
1061
1062
  return o(this).year();
1062
- }, c.isoWeek = function(h) {
1063
- if (!this.$utils().u(h)) return this.add(7 * (h - this.isoWeek()), i);
1064
- var S, m, f, T, y = o(this), g = (S = this.isoWeekYear(), m = this.$u, f = (m ? u.utc : u)().year(S).startOf("year"), T = 4 - f.isoWeekday(), f.isoWeekday() > 4 && (T += 7), f.add(T, i));
1063
+ }, a.isoWeek = function(h) {
1064
+ if (!this.$utils().u(h)) return this.add(7 * (h - this.isoWeek()), t);
1065
+ var S, m, f, T, y = o(this), g = (S = this.isoWeekYear(), m = this.$u, f = (m ? c.utc : c)().year(S).startOf("year"), T = 4 - f.isoWeekday(), f.isoWeekday() > 4 && (T += 7), f.add(T, t));
1065
1066
  return y.diff(g, "week") + 1;
1066
- }, c.isoWeekday = function(h) {
1067
+ }, a.isoWeekday = function(h) {
1067
1068
  return this.$utils().u(h) ? this.day() || 7 : this.day(this.day() % 7 ? h : h - 7);
1068
1069
  };
1069
- var s = c.startOf;
1070
- c.startOf = function(h, S) {
1070
+ var l = a.startOf;
1071
+ a.startOf = function(h, S) {
1071
1072
  var m = this.$utils(), f = !!m.u(S) || S;
1072
- return m.p(h) === "isoweek" ? f ? this.date(this.date() - (this.isoWeekday() - 1)).startOf("day") : this.date(this.date() - 1 - (this.isoWeekday() - 1) + 7).endOf("day") : s.bind(this)(h, S);
1073
+ return m.p(h) === "isoweek" ? f ? this.date(this.date() - (this.isoWeekday() - 1)).startOf("day") : this.date(this.date() - 1 - (this.isoWeekday() - 1) + 7).endOf("day") : l.bind(this)(h, S);
1073
1074
  };
1074
1075
  };
1075
1076
  });
1076
1077
  })(mi);
1077
1078
  var sn = mi.exports;
1078
1079
  const an = /* @__PURE__ */ Je(sn), ni = 200;
1079
- function ri({ groups: t, width: e, lineHeight: i, groupHeights: n, scrollTop: r, canvasHeight: u, theme: o, groupRenderer: c, onScroll: s }) {
1080
+ function ri({ groups: i, width: e, lineHeight: t, groupHeights: n, scrollTop: r, canvasHeight: c, theme: o, groupRenderer: a, onScroll: l }) {
1080
1081
  var w;
1081
1082
  const h = A(null), S = A(!1), m = Q(() => {
1082
- const E = new Array(t.length + 1);
1083
+ const E = new Array(i.length + 1);
1083
1084
  E[0] = 0;
1084
- for (let k = 0; k < t.length; k++)
1085
- E[k + 1] = E[k] + ((n == null ? void 0 : n[k]) ?? i);
1085
+ for (let k = 0; k < i.length; k++)
1086
+ E[k + 1] = E[k] + ((n == null ? void 0 : n[k]) ?? t);
1086
1087
  return E;
1087
- }, [t.length, n, i]), f = m[t.length] ?? 0, T = u, y = te((E) => {
1088
- if (t.length === 0 || E <= 0)
1088
+ }, [i.length, n, t]), f = m[i.length] ?? 0, T = c, y = te((E) => {
1089
+ if (i.length === 0 || E <= 0)
1089
1090
  return 0;
1090
1091
  if (E >= f)
1091
- return t.length - 1;
1092
- let k = 0, X = t.length - 1;
1092
+ return i.length - 1;
1093
+ let k = 0, X = i.length - 1;
1093
1094
  for (; k < X; ) {
1094
1095
  const B = k + X >>> 1;
1095
1096
  m[B + 1] > E ? X = B : k = B + 1;
1096
1097
  }
1097
1098
  return k;
1098
- }, [t.length, m, f]), g = y(r - ni), H = y(r + u + ni), Y = te((E) => {
1099
- S.current || s(E.currentTarget.scrollTop);
1100
- }, [s]);
1099
+ }, [i.length, m, f]), g = y(r - ni), H = y(r + c + ni), Y = te((E) => {
1100
+ S.current || l(E.currentTarget.scrollTop);
1101
+ }, [l]);
1101
1102
  ae(() => {
1102
1103
  h.current && (S.current = !0, h.current.scrollTop = r, requestAnimationFrame(() => {
1103
1104
  S.current = !1;
@@ -1105,7 +1106,7 @@ function ri({ groups: t, width: e, lineHeight: i, groupHeights: n, scrollTop: r,
1105
1106
  }, [r]);
1106
1107
  const $ = [];
1107
1108
  for (let E = g; E <= H; E++) {
1108
- const k = t[E];
1109
+ const k = i[E];
1109
1110
  if (!k)
1110
1111
  continue;
1111
1112
  const X = m[E], B = m[E + 1] - X;
@@ -1119,148 +1120,148 @@ function ri({ groups: t, width: e, lineHeight: i, groupHeights: n, scrollTop: r,
1119
1120
  alignItems: "stretch",
1120
1121
  borderBottom: `1px solid ${((w = o.grid) == null ? void 0 : w.line) ?? "#E5E5E5"}`,
1121
1122
  boxSizing: "border-box"
1122
- }, children: c(k) }, k.id));
1123
+ }, children: a(k) }, k.id));
1123
1124
  }
1124
1125
  return re("div", { ref: h, onScroll: Y, style: {
1125
1126
  width: e,
1126
1127
  height: T,
1127
- overflowY: f > u ? "auto" : "hidden",
1128
+ overflowY: f > c ? "auto" : "hidden",
1128
1129
  overflowX: "hidden",
1129
1130
  position: "relative",
1130
1131
  borderRight: `1px solid ${o.sidebar.border}`,
1131
1132
  backgroundColor: o.sidebar.bg
1132
1133
  }, children: re("div", { style: { height: f, position: "relative" }, children: $ }) });
1133
1134
  }
1134
- function ln(t) {
1135
+ function ln(i) {
1135
1136
  return null;
1136
1137
  }
1137
1138
  ln.displayName = "TodayMarker";
1138
- function oi(t) {
1139
- return { date: Math.floor(Date.now() / 6e4) * 6e4, color: t.color ?? "#FD7171", width: t.width ?? 6, label: t.label };
1139
+ function oi(i) {
1140
+ return { date: Math.floor(Date.now() / 6e4) * 6e4, color: i.color ?? "#FD7171", width: i.width ?? 6, label: i.label };
1140
1141
  }
1141
- function un(t) {
1142
- return t.interval ?? 1e4;
1142
+ function un(i) {
1143
+ return i.interval ?? 1e4;
1143
1144
  }
1144
- function cn(t) {
1145
+ function cn(i) {
1145
1146
  return null;
1146
1147
  }
1147
1148
  cn.displayName = "CustomMarker";
1148
- function si(t) {
1149
+ function si(i) {
1149
1150
  return {
1150
- date: t.date,
1151
- color: t.color ?? "#3B82F6",
1152
- width: t.width ?? 4,
1153
- label: t.label
1151
+ date: i.date,
1152
+ color: i.color ?? "#3B82F6",
1153
+ width: i.width ?? 4,
1154
+ label: i.label
1154
1155
  };
1155
1156
  }
1156
1157
  ve.extend(an);
1157
- function dn(t) {
1158
- return t ? {
1158
+ function dn(i) {
1159
+ return i ? {
1159
1160
  ...Ee,
1160
- ...t,
1161
- status: { ...Ee.status, ...t.status },
1162
- grid: { ...Ee.grid, ...t.grid },
1163
- item: { ...Ee.item, ...t.item },
1164
- marker: { ...Ee.marker, ...t.marker },
1165
- sidebar: { ...Ee.sidebar, ...t.sidebar },
1166
- header: { ...Ee.header, ...t.header }
1161
+ ...i,
1162
+ status: { ...Ee.status, ...i.status },
1163
+ grid: { ...Ee.grid, ...i.grid },
1164
+ item: { ...Ee.item, ...i.item },
1165
+ marker: { ...Ee.marker, ...i.marker },
1166
+ sidebar: { ...Ee.sidebar, ...i.sidebar },
1167
+ header: { ...Ee.header, ...i.header }
1167
1168
  } : Ee;
1168
1169
  }
1169
- const ai = 32, Hn = ce.memo(_i(function(e, i) {
1170
- const { groups: n, items: r, defaultTimeStart: u, defaultTimeEnd: o, sidebarWidth: c, lineHeight: s, itemHeightRatio: h, stackItems: S, canMove: m, canChangeGroup: f, canResize: T, dragSnap: y, minZoom: g, maxZoom: H, theme: Y, dayStyle: $, rowStyle: w, showCursorLine: E, itemRenderer: k, groupRenderer: X, sidebarGroupRenderer: B, dependencies: I, highlights: x, onItemClick: _, onItemDoubleClick: ie, onItemContextMenu: U, onItemMove: J, onItemResize: me, moveResizeValidator: be, onItemHover: ye, onInteractionUpdate: Ye, onCanvasDoubleClick: et, onCanvasContextMenu: He, onTimeChange: Dt, onZoom: Ot, selected: Rt = [], rightSidebarWidth: ft, rightSidebarGroupRenderer: Pt, onReady: tt, maxHeight: Be, timezone: it, devBadge: vi, children: we } = e, Te = Q(() => dn(Y), [Y]), Yt = te((a, l) => {
1171
- for (let p = 0; p < l.length; p++)
1172
- if (l[p].id === a)
1170
+ const ai = 32, Hn = ce.memo(_i(function(e, t) {
1171
+ const { groups: n, items: r, defaultTimeStart: c, defaultTimeEnd: o, sidebarWidth: a, lineHeight: l, itemHeightRatio: h, stackItems: S, canMove: m, canChangeGroup: f, canResize: T, dragSnap: y, minZoom: g, maxZoom: H, theme: Y, dayStyle: $, rowStyle: w, showCursorLine: E, itemRenderer: k, groupRenderer: X, sidebarGroupRenderer: B, dependencies: D, highlights: z, onItemClick: _, onItemDoubleClick: ie, onItemContextMenu: U, onItemMove: J, onItemResize: me, moveResizeValidator: be, onItemHover: ye, onInteractionUpdate: Ye, onCanvasDoubleClick: et, onCanvasContextMenu: He, onTimeChange: It, onZoom: Ot, selected: Rt = [], rightSidebarWidth: ft, rightSidebarGroupRenderer: Pt, onReady: tt, maxHeight: Be, timezone: it, devBadge: vi, children: we } = e, Te = Q(() => dn(Y), [Y]), Yt = te((s, u) => {
1172
+ for (let p = 0; p < u.length; p++)
1173
+ if (u[p].id === s)
1173
1174
  return p;
1174
1175
  return 0;
1175
- }, []), bi = Rt.join(","), ht = Q(() => Rt, [bi]), $t = A(null), Xt = A(null), Ft = A(null), xe = A(null), _t = A(null), Wt = A(null), [yi, Ti] = Ue(800), [Si, Mi] = Ue(null);
1176
+ }, []), bi = Rt.join(","), ht = Q(() => Rt, [bi]), $t = A(null), Xt = A(null), Ft = A(null), ze = A(null), _t = A(null), Wt = A(null), [yi, Ti] = Ue(800), [Si, Mi] = Ue(null);
1176
1177
  ae(() => {
1177
- const a = _t.current;
1178
- if (!a)
1178
+ const s = _t.current;
1179
+ if (!s)
1179
1180
  return;
1180
- const l = new ResizeObserver((p) => {
1181
+ const u = new ResizeObserver((p) => {
1181
1182
  const v = p[0];
1182
1183
  v && Ti(v.contentRect.width);
1183
1184
  });
1184
- return l.observe(a), () => l.disconnect();
1185
+ return u.observe(s), () => u.disconnect();
1185
1186
  }, []), ae(() => {
1186
- const a = Wt.current;
1187
- if (!a || !Be)
1187
+ const s = Wt.current;
1188
+ if (!s || !Be)
1188
1189
  return;
1189
- const l = new ResizeObserver((p) => {
1190
+ const u = new ResizeObserver((p) => {
1190
1191
  const v = p[0];
1191
1192
  v && Mi(v.contentRect.height);
1192
1193
  });
1193
- return l.observe(a), () => l.disconnect();
1194
+ return u.observe(s), () => u.disconnect();
1194
1195
  }, [Be]);
1195
- const ke = Math.max(0, yi - c - (ft ?? 0)), Ie = Q(() => {
1196
- const a = new Li();
1197
- return a.rebuild(r), a;
1196
+ const ke = Math.max(0, yi - a - (ft ?? 0)), De = Q(() => {
1197
+ const s = new Li();
1198
+ return s.rebuild(r), s;
1198
1199
  }, [r]), mt = Q(() => {
1199
- const a = new xi();
1200
- return a.buildFromItems(r, (l) => Ie.getEffectiveSpan(l.id).start, (l) => Ie.getEffectiveSpan(l.id).end), a;
1201
- }, [r, Ie]), ze = Q(() => {
1202
- const a = new zi(s, h);
1203
- return a.computeLayout(r, S, Ie), a;
1204
- }, [r, s, h, S, Ie]), De = Q(() => n.map((a) => ze.getGroupHeight(a.id)), [n, ze]), nt = Q(() => De.reduce((a, l) => a + l, 0), [De]), Bt = typeof Be == "number" ? Be : Si, ge = Bt ? Math.min(nt, Bt) : nt, L = A(new wt({
1205
- visibleTimeStart: e.visibleTimeStart ?? u,
1200
+ const s = new zi();
1201
+ return s.buildFromItems(r, (u) => De.getEffectiveSpan(u.id).start, (u) => De.getEffectiveSpan(u.id).end), s;
1202
+ }, [r, De]), xe = Q(() => {
1203
+ const s = new xi(l, h);
1204
+ return s.computeLayout(r, S, De), s;
1205
+ }, [r, l, h, S, De]), Ie = Q(() => n.map((s) => xe.getGroupHeight(s.id)), [n, xe]), nt = Q(() => Ie.reduce((s, u) => s + u, 0), [Ie]), Bt = typeof Be == "number" ? Be : Si, ge = Bt ? Math.min(nt, Bt) : nt, L = A(new wt({
1206
+ visibleTimeStart: e.visibleTimeStart ?? c,
1206
1207
  visibleTimeEnd: e.visibleTimeEnd ?? o,
1207
1208
  canvasWidth: ke,
1208
1209
  canvasHeight: ge,
1209
- sidebarWidth: c,
1210
- lineHeight: s,
1210
+ sidebarWidth: a,
1211
+ lineHeight: l,
1211
1212
  groupCount: n.length,
1212
1213
  buffer: e.buffer ?? 3,
1213
1214
  scrollTop: 0,
1214
- groupHeights: De
1215
- })), gt = A(null), Le = A(void 0), xt = A({ x: 0, y: 0 }), pt = A(!1), de = A(null), Oe = A(!1), zt = 4, [Lt, wi] = Ue(e.visibleTimeStart ?? u), [At, ki] = Ue(e.visibleTimeEnd ?? o), [Nt, rt] = Ue(0), Ae = A(null), $e = te(() => {
1216
- const a = L.current;
1217
- wi(a.visibleTimeStart), ki(a.visibleTimeEnd), rt(a.scrollTop), Ae.current = null;
1215
+ groupHeights: Ie
1216
+ })), gt = A(null), Le = A(void 0), zt = A({ x: 0, y: 0 }), pt = A(!1), de = A(null), Oe = A(!1), xt = 4, [Lt, wi] = Ue(e.visibleTimeStart ?? c), [At, ki] = Ue(e.visibleTimeEnd ?? o), [Nt, rt] = Ue(0), Ae = A(null), $e = te(() => {
1217
+ const s = L.current;
1218
+ wi(s.visibleTimeStart), ki(s.visibleTimeEnd), rt(s.scrollTop), Ae.current = null;
1218
1219
  }, []), vt = te(() => {
1219
1220
  Ae.current === null && (Ae.current = setTimeout($e, ai));
1220
1221
  }, [$e]);
1221
1222
  ae(() => () => {
1222
1223
  Ae.current !== null && clearTimeout(Ae.current);
1223
1224
  }, []);
1224
- const jt = Q(() => e.summaryRenderer ? e.summaryRenderer : (a, l, p, v, d) => {
1225
- Ai(a, l, p, v, d, Te);
1225
+ const jt = Q(() => e.summaryRenderer ? e.summaryRenderer : (s, u, p, v, d) => {
1226
+ Ai(s, u, p, v, d, Te);
1226
1227
  }, [e.summaryRenderer, Te]), Xe = Q(() => new Ki(), []), Fe = Q(() => new Qi(), []), _e = Q(() => new Ji(), []), ne = Q(() => new rn(y), [y]), ot = Q(() => {
1227
- const a = [];
1228
- return ce.Children.forEach(we, (l) => {
1228
+ const s = [];
1229
+ return ce.Children.forEach(we, (u) => {
1229
1230
  var v;
1230
- if (!ce.isValidElement(l))
1231
+ if (!ce.isValidElement(u))
1231
1232
  return;
1232
- const p = (v = l.type) == null ? void 0 : v.displayName;
1233
- p === "TodayMarker" ? a.push(oi(l.props)) : p === "CustomMarker" && a.push(si(l.props));
1234
- }), a;
1235
- }, [we]), st = Q(() => ot.map((a) => `${a.date}|${a.color}|${a.width}|${a.label ?? ""}`).join(";"), [ot]), Ne = A(ot);
1233
+ const p = (v = u.type) == null ? void 0 : v.displayName;
1234
+ p === "TodayMarker" ? s.push(oi(u.props)) : p === "CustomMarker" && s.push(si(u.props));
1235
+ }), s;
1236
+ }, [we]), st = Q(() => ot.map((s) => `${s.date}|${s.color}|${s.width}|${s.label ?? ""}`).join(";"), [ot]), Ne = A(ot);
1236
1237
  Ne.current = ot;
1237
1238
  const bt = Q(() => {
1238
- let a = 0;
1239
- return ce.Children.forEach(we, (l) => {
1239
+ let s = 0;
1240
+ return ce.Children.forEach(we, (u) => {
1240
1241
  var v;
1241
- if (!ce.isValidElement(l))
1242
+ if (!ce.isValidElement(u))
1242
1243
  return;
1243
- ((v = l.type) == null ? void 0 : v.displayName) === "TodayMarker" && (a = un(l.props));
1244
- }), a;
1244
+ ((v = u.type) == null ? void 0 : v.displayName) === "TodayMarker" && (s = un(u.props));
1245
+ }), s;
1245
1246
  }, [we]), N = A({
1246
1247
  groups: n,
1247
1248
  items: r,
1248
1249
  intervalTree: mt,
1249
- layoutEngine: ze,
1250
+ layoutEngine: xe,
1250
1251
  itemRenderer: k,
1251
1252
  groupRenderer: X,
1252
1253
  theme: Te,
1253
1254
  selected: ht,
1254
- dependencies: I,
1255
- highlights: x,
1255
+ dependencies: D,
1256
+ highlights: z,
1256
1257
  dayStyle: $,
1257
1258
  rowStyle: w,
1258
1259
  showCursorLine: E,
1259
1260
  canvasWidth: ke,
1260
1261
  canvasHeight: ge,
1261
- lineHeight: s,
1262
+ lineHeight: l,
1262
1263
  itemHeightRatio: h,
1263
- onTimeChange: Dt,
1264
+ onTimeChange: It,
1264
1265
  onZoom: Ot,
1265
1266
  onItemHover: ye,
1266
1267
  onItemClick: _,
@@ -1275,31 +1276,31 @@ const ai = 32, Hn = ce.memo(_i(function(e, i) {
1275
1276
  canResize: T,
1276
1277
  canChangeGroup: f,
1277
1278
  dragSnap: y,
1278
- sidebarWidth: c,
1279
+ sidebarWidth: a,
1279
1280
  moveResizeValidator: be,
1280
1281
  summaryRenderer: jt,
1281
- hierarchyEngine: Ie,
1282
+ hierarchyEngine: De,
1282
1283
  timezone: it
1283
1284
  });
1284
1285
  N.current = {
1285
1286
  groups: n,
1286
1287
  items: r,
1287
1288
  intervalTree: mt,
1288
- layoutEngine: ze,
1289
+ layoutEngine: xe,
1289
1290
  itemRenderer: k,
1290
1291
  groupRenderer: X,
1291
1292
  theme: Te,
1292
1293
  selected: ht,
1293
- dependencies: I,
1294
- highlights: x,
1294
+ dependencies: D,
1295
+ highlights: z,
1295
1296
  dayStyle: $,
1296
1297
  rowStyle: w,
1297
1298
  showCursorLine: E,
1298
1299
  canvasWidth: ke,
1299
1300
  canvasHeight: ge,
1300
- lineHeight: s,
1301
+ lineHeight: l,
1301
1302
  itemHeightRatio: h,
1302
- onTimeChange: Dt,
1303
+ onTimeChange: It,
1303
1304
  onZoom: Ot,
1304
1305
  onItemHover: ye,
1305
1306
  onItemClick: _,
@@ -1314,97 +1315,97 @@ const ai = 32, Hn = ce.memo(_i(function(e, i) {
1314
1315
  canResize: T,
1315
1316
  canChangeGroup: f,
1316
1317
  dragSnap: y,
1317
- sidebarWidth: c,
1318
+ sidebarWidth: a,
1318
1319
  moveResizeValidator: be,
1319
1320
  summaryRenderer: jt,
1320
- hierarchyEngine: Ie,
1321
+ hierarchyEngine: De,
1321
1322
  timezone: it
1322
1323
  };
1323
1324
  const Ci = te(() => {
1324
- const a = $t.current;
1325
- if (!a)
1325
+ const s = $t.current;
1326
+ if (!s)
1326
1327
  return;
1327
- const l = N.current, p = Ct(a, l.canvasWidth, l.canvasHeight);
1328
- Et(p, a), Xe.draw(p, L.current, l.groups, l.theme, l.dayStyle, l.rowStyle, l.highlights, l.timezone);
1328
+ const u = N.current, p = Ct(s, u.canvasWidth, u.canvasHeight);
1329
+ Et(p, s), Xe.draw(p, L.current, u.groups, u.theme, u.dayStyle, u.rowStyle, u.highlights, u.timezone);
1329
1330
  }, [Xe]), Ei = te(() => {
1330
- const a = Xt.current;
1331
- if (!a)
1331
+ const s = Xt.current;
1332
+ if (!s)
1332
1333
  return;
1333
- const l = N.current, p = Ct(a, l.canvasWidth, l.canvasHeight);
1334
- Et(p, a), Fe.draw(p, L.current, l.groups, l.items, l.intervalTree, l.layoutEngine, l.itemRenderer, l.groupRenderer, l.theme, l.selected, Le.current, l.dependencies, l.summaryRenderer, l.hierarchyEngine);
1335
- }, [Fe]), Gt = te((a, l, p) => {
1336
- const v = L.current, d = N.current, b = d.canvasWidth / (v.visibleTimeEnd - v.visibleTimeStart), C = l / b, D = p === "resize-left" ? "left" : p === "resize-right" ? "right" : void 0, P = qe(d.dragSnap, a, D), F = [];
1337
- p === "move" ? (F.push(v.timeToX(a.start_time + C)), F.push(v.timeToX(a.end_time + C))) : p === "resize-left" ? F.push(v.timeToX(a.start_time + C)) : F.push(v.timeToX(a.end_time + C));
1338
- const W = (v.visibleTimeEnd - v.visibleTimeStart) * 0.1, Z = d.intervalTree.query(v.visibleTimeStart - W, v.visibleTimeEnd + W), se = It(Z, a.id, (ee) => v.timeToX(ee));
1334
+ const u = N.current, p = Ct(s, u.canvasWidth, u.canvasHeight);
1335
+ Et(p, s), Fe.draw(p, L.current, u.groups, u.items, u.intervalTree, u.layoutEngine, u.itemRenderer, u.groupRenderer, u.theme, u.selected, Le.current, u.dependencies, u.summaryRenderer, u.hierarchyEngine);
1336
+ }, [Fe]), Gt = te((s, u, p) => {
1337
+ const v = L.current, d = N.current, b = d.canvasWidth / (v.visibleTimeEnd - v.visibleTimeStart), C = u / b, I = p === "resize-left" ? "left" : p === "resize-right" ? "right" : void 0, P = qe(d.dragSnap, s, I), F = [];
1338
+ p === "move" ? (F.push(v.timeToX(s.start_time + C)), F.push(v.timeToX(s.end_time + C))) : p === "resize-left" ? F.push(v.timeToX(s.start_time + C)) : F.push(v.timeToX(s.end_time + C));
1339
+ const W = (v.visibleTimeEnd - v.visibleTimeStart) * 0.1, Z = d.intervalTree.query(v.visibleTimeStart - W, v.visibleTimeEnd + W), se = Dt(Z, s.id, (ee) => v.timeToX(ee));
1339
1340
  for (const ee of F) {
1340
1341
  const V = dt(ee, se, 8);
1341
1342
  if (V !== null)
1342
1343
  return V;
1343
1344
  }
1344
- const q = p === "resize-right" ? a.end_time + C : a.start_time + C, G = Ke(q, P, d.timezone);
1345
+ const q = p === "resize-right" ? s.end_time + C : s.start_time + C, G = Ke(q, P, d.timezone);
1345
1346
  return v.timeToX(G);
1346
1347
  }, []), Hi = te(() => {
1347
- const a = Ft.current;
1348
- if (!a)
1348
+ const s = Ft.current;
1349
+ if (!s)
1349
1350
  return;
1350
- const l = N.current, p = Ct(a, l.canvasWidth, l.canvasHeight);
1351
- Et(p, a);
1351
+ const u = N.current, p = Ct(s, u.canvasWidth, u.canvasHeight);
1352
+ Et(p, s);
1352
1353
  const v = L.current, d = ne.getState();
1353
1354
  let b = null;
1354
1355
  if (d) {
1355
- const C = v.timeToX(d.item.start_time), D = v.timeToX(d.item.end_time) - C;
1356
+ const C = v.timeToX(d.item.start_time), I = v.timeToX(d.item.end_time) - C;
1356
1357
  let P, F;
1357
- d.mode === "resize-left" ? (P = C + d.deltaX, F = D - d.deltaX) : d.mode === "resize-right" ? (P = C, F = D + d.deltaX) : (P = C + d.deltaX, F = D);
1358
- const W = Yt(d.currentGroup, l.groups), Z = v.groupIndexToY(W), se = d.currentGroup !== d.originalGroup;
1358
+ d.mode === "resize-left" ? (P = C + d.deltaX, F = I - d.deltaX) : d.mode === "resize-right" ? (P = C, F = I + d.deltaX) : (P = C + d.deltaX, F = I);
1359
+ const W = Yt(d.currentGroup, u.groups), Z = v.groupIndexToY(W), se = d.currentGroup !== d.originalGroup;
1359
1360
  b = {
1360
1361
  item: d.item,
1361
1362
  mode: d.mode,
1362
- bounds: { x: P, y: Z + (l.lineHeight - l.lineHeight * l.itemHeightRatio) / 2, width: F, height: l.lineHeight * l.itemHeightRatio },
1363
- renderer: l.itemRenderer,
1363
+ bounds: { x: P, y: Z + (u.lineHeight - u.lineHeight * u.itemHeightRatio) / 2, width: F, height: u.lineHeight * u.itemHeightRatio },
1364
+ renderer: u.itemRenderer,
1364
1365
  targetGroupY: Z,
1365
1366
  groupChanged: se
1366
1367
  };
1367
1368
  }
1368
- _e.draw(p, v, l.theme, {
1369
- cursorX: l.showCursorLine ? gt.current : null,
1369
+ _e.draw(p, v, u.theme, {
1370
+ cursorX: u.showCursorLine ? gt.current : null,
1370
1371
  snapX: d ? Gt(d.item, d.deltaX, d.mode) : null,
1371
1372
  markers: Ne.current,
1372
1373
  interaction: b
1373
- }), l.onInteractionUpdate && (d ? (l.onInteractionUpdate(on(d, v, l, xt.current)), pt.current = !0) : pt.current && (pt.current = !1, l.onInteractionUpdate(null)));
1374
+ }), u.onInteractionUpdate && (d ? (u.onInteractionUpdate(on(d, v, u, zt.current)), pt.current = !0) : pt.current && (pt.current = !1, u.onInteractionUpdate(null)));
1374
1375
  }, [_e, ne, Gt, Yt]), yt = A(null);
1375
- yt.current || (yt.current = new Gi((a) => {
1376
- a.grid && Ci(), a.items && Ei(), a.overlay && Hi();
1376
+ yt.current || (yt.current = new Gi((s) => {
1377
+ s.grid && Ci(), s.items && Ei(), s.overlay && Hi();
1377
1378
  }));
1378
1379
  const O = yt.current;
1379
1380
  ae(() => () => O.dispose(), [O]), ae(() => {
1380
1381
  if (!bt)
1381
1382
  return;
1382
- const a = setInterval(() => {
1383
- const l = [];
1383
+ const s = setInterval(() => {
1384
+ const u = [];
1384
1385
  ce.Children.forEach(we, (p) => {
1385
1386
  var d;
1386
1387
  if (!ce.isValidElement(p))
1387
1388
  return;
1388
1389
  const v = (d = p.type) == null ? void 0 : d.displayName;
1389
- v === "TodayMarker" ? l.push(oi(p.props)) : v === "CustomMarker" && l.push(si(p.props));
1390
- }), Ne.current = l, O.markDirty("overlay");
1390
+ v === "TodayMarker" ? u.push(oi(p.props)) : v === "CustomMarker" && u.push(si(p.props));
1391
+ }), Ne.current = u, O.markDirty("overlay");
1391
1392
  }, bt);
1392
- return () => clearInterval(a);
1393
+ return () => clearInterval(s);
1393
1394
  }, [bt, we, O]), ae(() => {
1394
1395
  L.current.update({
1395
1396
  canvasWidth: ke,
1396
1397
  canvasHeight: ge,
1397
- sidebarWidth: c,
1398
- lineHeight: s,
1398
+ sidebarWidth: a,
1399
+ lineHeight: l,
1399
1400
  groupCount: n.length,
1400
- groupHeights: De
1401
+ groupHeights: Ie
1401
1402
  }), O.markAllDirty();
1402
- }, [ke, ge, c, s, n.length, De, O]), ae(() => {
1403
+ }, [ke, ge, a, l, n.length, Ie, O]), ae(() => {
1403
1404
  O.markDirty("grid"), O.markDirty("items");
1404
- }, [r, n, ht, Te, $, w, mt, ze, O]);
1405
+ }, [r, n, ht, Te, $, w, mt, xe, O]);
1405
1406
  const at = Q(() => {
1406
- var a;
1407
- return ((a = e.highlights) == null ? void 0 : a.map((l) => `${l.start}|${l.end}|${l.color}|${l.label ?? ""}|${l.opacity ?? ""}`).join(";")) ?? "";
1407
+ var s;
1408
+ return ((s = e.highlights) == null ? void 0 : s.map((u) => `${u.start}|${u.end}|${u.color}|${u.label ?? ""}|${u.opacity ?? ""}`).join(";")) ?? "";
1408
1409
  }, [e.highlights]), Ut = A(at);
1409
1410
  ae(() => {
1410
1411
  at !== Ut.current && (Ut.current = at, O.markDirty("grid"));
@@ -1415,38 +1416,38 @@ const ai = 32, Hn = ce.memo(_i(function(e, i) {
1415
1416
  }, [st, O]);
1416
1417
  const Vt = A(e.visibleTimeStart), qt = A(e.visibleTimeEnd);
1417
1418
  e.visibleTimeStart !== void 0 && e.visibleTimeStart !== Vt.current && (Vt.current = e.visibleTimeStart, L.current.update({ visibleTimeStart: e.visibleTimeStart }), O.markAllDirty()), e.visibleTimeEnd !== void 0 && e.visibleTimeEnd !== qt.current && (qt.current = e.visibleTimeEnd, L.current.update({ visibleTimeEnd: e.visibleTimeEnd }), O.markAllDirty());
1418
- const je = A(null), Tt = te((a) => {
1419
+ const je = A(null), Tt = te((s) => {
1419
1420
  je.current === null && (je.current = setTimeout(() => {
1420
1421
  var v, d;
1421
1422
  je.current = null;
1422
- const l = L.current, p = N.current;
1423
- a === "zoom" ? (v = p.onZoom) == null || v.call(p, l.visibleTimeStart, l.visibleTimeEnd) : (d = p.onTimeChange) == null || d.call(p, l.visibleTimeStart, l.visibleTimeEnd);
1423
+ const u = L.current, p = N.current;
1424
+ s === "zoom" ? (v = p.onZoom) == null || v.call(p, u.visibleTimeStart, u.visibleTimeEnd) : (d = p.onTimeChange) == null || d.call(p, u.visibleTimeStart, u.visibleTimeEnd);
1424
1425
  }, ai));
1425
1426
  }, []);
1426
1427
  ae(() => () => {
1427
1428
  je.current !== null && clearTimeout(je.current);
1428
1429
  }, []);
1429
- const lt = A(null), St = Q(() => new tn((a, l) => {
1430
+ const lt = A(null), St = Q(() => new tn((s, u) => {
1430
1431
  var p;
1431
- L.current.update({ visibleTimeStart: a, visibleTimeEnd: l }), (p = lt.current) == null || p.updateBounds(a, l), O.markAllDirty(), vt(), Tt("zoom");
1432
- }, u, o, g, H), []);
1432
+ L.current.update({ visibleTimeStart: s, visibleTimeEnd: u }), (p = lt.current) == null || p.updateBounds(s, u), O.markAllDirty(), vt(), Tt("zoom");
1433
+ }, c, o, g, H), []);
1433
1434
  lt.current = St;
1434
- const ut = te((a) => {
1435
- const l = L.current, p = l.getTotalHeight(), v = Math.max(0, p - l.canvasHeight), d = Math.max(0, Math.min(v, l.scrollTop + a));
1436
- d !== l.scrollTop && (l.update({ scrollTop: d }), O.markDirty("grid"), O.markDirty("items"), O.markDirty("overlay"), rt(d));
1437
- }, [O]), Ge = te((a) => {
1438
- var C, D, P;
1439
- const l = L.current, p = l.canvasWidth / (l.visibleTimeEnd - l.visibleTimeStart), v = a / p, d = l.visibleTimeStart + v, b = l.visibleTimeEnd + v;
1440
- l.update({ visibleTimeStart: d, visibleTimeEnd: b }), (C = lt.current) == null || C.updateBounds(d, b), O.markAllDirty(), Bi(() => $e()), (P = (D = N.current).onTimeChange) == null || P.call(D, d, b);
1435
+ const ut = te((s) => {
1436
+ const u = L.current, p = u.getTotalHeight(), v = Math.max(0, p - u.canvasHeight), d = Math.max(0, Math.min(v, u.scrollTop + s));
1437
+ d !== u.scrollTop && (u.update({ scrollTop: d }), O.markDirty("grid"), O.markDirty("items"), O.markDirty("overlay"), rt(d));
1438
+ }, [O]), Ge = te((s) => {
1439
+ var C, I, P;
1440
+ const u = L.current, p = u.canvasWidth / (u.visibleTimeEnd - u.visibleTimeStart), v = s / p, d = u.visibleTimeStart + v, b = u.visibleTimeEnd + v;
1441
+ u.update({ visibleTimeStart: d, visibleTimeEnd: b }), (C = lt.current) == null || C.updateBounds(d, b), O.markAllDirty(), Bi(() => $e()), (P = (I = N.current).onTimeChange) == null || P.call(I, d, b);
1441
1442
  }, [O, $e]);
1442
1443
  ae(() => {
1443
- const a = xe.current;
1444
- if (!a)
1444
+ const s = ze.current;
1445
+ if (!s)
1445
1446
  return;
1446
- const l = (p) => {
1447
+ const u = (p) => {
1447
1448
  if (p.ctrlKey || p.metaKey || p.altKey) {
1448
1449
  p.preventDefault();
1449
- const v = a.getBoundingClientRect(), d = (p.clientX - v.left) / v.width;
1450
+ const v = s.getBoundingClientRect(), d = (p.clientX - v.left) / v.width;
1450
1451
  St.handleWheelZoom(p, d);
1451
1452
  } else if (p.shiftKey)
1452
1453
  p.preventDefault(), Ge(p.deltaY || p.deltaX);
@@ -1455,44 +1456,44 @@ const ai = 32, Hn = ce.memo(_i(function(e, i) {
1455
1456
  v !== 0 && Math.abs(v) > Math.abs(p.deltaY) ? (p.preventDefault(), Ge(v)) : p.deltaY !== 0 && (nt > ge && p.preventDefault(), ut(p.deltaY));
1456
1457
  }
1457
1458
  };
1458
- return a.addEventListener("wheel", l, { passive: !1 }), () => a.removeEventListener("wheel", l);
1459
+ return s.addEventListener("wheel", u, { passive: !1 }), () => s.removeEventListener("wheel", u);
1459
1460
  }, [St, ut, Ge, nt, ge]);
1460
1461
  const Ce = A({ lastDistance: null, lastCenter: null });
1461
1462
  ae(() => {
1462
- const a = xe.current;
1463
- if (!a)
1463
+ const s = ze.current;
1464
+ if (!s)
1464
1465
  return;
1465
- const l = (C, D) => Math.abs(C.clientX - D.clientX), p = (C, D, P) => (C.clientX + D.clientX) / 2 - P.left, v = (C) => {
1466
- C.touches.length === 2 && (C.preventDefault(), Ce.current.lastDistance = l(C.touches[0], C.touches[1]), Ce.current.lastCenter = null);
1466
+ const u = (C, I) => Math.abs(C.clientX - I.clientX), p = (C, I, P) => (C.clientX + I.clientX) / 2 - P.left, v = (C) => {
1467
+ C.touches.length === 2 && (C.preventDefault(), Ce.current.lastDistance = u(C.touches[0], C.touches[1]), Ce.current.lastCenter = null);
1467
1468
  }, d = (C) => {
1468
- var D;
1469
+ var I;
1469
1470
  if (C.touches.length === 2 && Ce.current.lastDistance !== null) {
1470
1471
  C.preventDefault();
1471
- const P = l(C.touches[0], C.touches[1]), F = a.getBoundingClientRect(), Z = p(C.touches[0], C.touches[1], F) / F.width;
1472
+ const P = u(C.touches[0], C.touches[1]), F = s.getBoundingClientRect(), Z = p(C.touches[0], C.touches[1], F) / F.width;
1472
1473
  if (P !== 0 && Ce.current.lastDistance !== 0) {
1473
1474
  const se = Ce.current.lastDistance / P, q = L.current, G = q.visibleTimeEnd - q.visibleTimeStart;
1474
1475
  let ee = G * se;
1475
1476
  ee = Math.max(g, Math.min(H, ee));
1476
1477
  const V = q.visibleTimeStart + G * Z, R = V - ee * Z, M = V + ee * (1 - Z);
1477
- q.update({ visibleTimeStart: R, visibleTimeEnd: M }), (D = lt.current) == null || D.updateBounds(R, M), O.markAllDirty(), vt(), Tt("zoom");
1478
+ q.update({ visibleTimeStart: R, visibleTimeEnd: M }), (I = lt.current) == null || I.updateBounds(R, M), O.markAllDirty(), vt(), Tt("zoom");
1478
1479
  }
1479
1480
  Ce.current.lastDistance = P;
1480
1481
  }
1481
1482
  }, b = () => {
1482
1483
  Ce.current.lastDistance = null, Ce.current.lastCenter = null;
1483
1484
  };
1484
- return a.addEventListener("touchstart", v, { passive: !1 }), a.addEventListener("touchmove", d, { passive: !1 }), a.addEventListener("touchend", b), () => {
1485
- a.removeEventListener("touchstart", v), a.removeEventListener("touchmove", d), a.removeEventListener("touchend", b);
1485
+ return s.addEventListener("touchstart", v, { passive: !1 }), s.addEventListener("touchmove", d, { passive: !1 }), s.addEventListener("touchend", b), () => {
1486
+ s.removeEventListener("touchstart", v), s.removeEventListener("touchmove", d), s.removeEventListener("touchend", b);
1486
1487
  };
1487
1488
  }, [O, vt, Tt]);
1488
- const Ii = te((a) => {
1489
+ const Di = te((s) => {
1489
1490
  var P;
1490
- const l = a.currentTarget, p = l.getBoundingClientRect(), v = a.clientX - p.left, d = a.clientY - p.top;
1491
- if (gt.current = v, xt.current = { x: a.clientX, y: a.clientY }, de.current) {
1492
- const F = a.clientX - de.current.startX, W = a.clientY - de.current.startY;
1493
- if (!Oe.current && (Math.abs(F) >= zt || Math.abs(W) >= zt) && (Oe.current = !0, l.style.cursor = "grabbing", l.setPointerCapture(a.pointerId)), Oe.current) {
1494
- const Z = a.clientX - de.current.lastX, se = a.clientY - de.current.lastY;
1495
- de.current.lastX = a.clientX, de.current.lastY = a.clientY, Math.abs(Z) > 0 && Ge(-Z), Math.abs(se) > 0 && ut(-se);
1491
+ const u = s.currentTarget, p = u.getBoundingClientRect(), v = s.clientX - p.left, d = s.clientY - p.top;
1492
+ if (gt.current = v, zt.current = { x: s.clientX, y: s.clientY }, de.current) {
1493
+ const F = s.clientX - de.current.startX, W = s.clientY - de.current.startY;
1494
+ if (!Oe.current && (Math.abs(F) >= xt || Math.abs(W) >= xt) && (Oe.current = !0, u.style.cursor = "grabbing", u.setPointerCapture(s.pointerId)), Oe.current) {
1495
+ const Z = s.clientX - de.current.lastX, se = s.clientY - de.current.lastY;
1496
+ de.current.lastX = s.clientX, de.current.lastY = s.clientY, Math.abs(Z) > 0 && Ge(-Z), Math.abs(se) > 0 && ut(-se);
1496
1497
  }
1497
1498
  return;
1498
1499
  }
@@ -1508,26 +1509,26 @@ const ai = 32, Hn = ce.memo(_i(function(e, i) {
1508
1509
  return;
1509
1510
  }
1510
1511
  N.current.showCursorLine && O.markDirty("overlay");
1511
- const b = N.current, C = Ze(v, d, L.current, b.intervalTree, b.layoutEngine, b.groups), D = C == null ? void 0 : C.id;
1512
- if (D !== Le.current && (Le.current = D, O.markDirty("items"), (P = b.onItemHover) == null || P.call(b, D ?? null, a.nativeEvent)), C) {
1512
+ const b = N.current, C = Ze(v, d, L.current, b.intervalTree, b.layoutEngine, b.groups), I = C == null ? void 0 : C.id;
1513
+ if (I !== Le.current && (Le.current = I, O.markDirty("items"), (P = b.onItemHover) == null || P.call(b, I ?? null, s.nativeEvent)), C) {
1513
1514
  const F = Qt(v, C, L.current), W = Jt(C, F, b.canResize, b.canMove);
1514
- l.style.cursor = W === "resize-left" || W === "resize-right" ? "col-resize" : W === "move" ? "grab" : "default";
1515
+ u.style.cursor = W === "resize-left" || W === "resize-right" ? "col-resize" : W === "move" ? "grab" : "default";
1515
1516
  } else
1516
- l.style.cursor = "default";
1517
- }, [ne, O, Ge, ut]), Di = te((a) => {
1518
- const l = N.current, p = a.currentTarget.getBoundingClientRect(), v = a.clientX - p.left, d = a.clientY - p.top, b = Ze(v, d, L.current, l.intervalTree, l.layoutEngine, l.groups);
1517
+ u.style.cursor = "default";
1518
+ }, [ne, O, Ge, ut]), Ii = te((s) => {
1519
+ const u = N.current, p = s.currentTarget.getBoundingClientRect(), v = s.clientX - p.left, d = s.clientY - p.top, b = Ze(v, d, L.current, u.intervalTree, u.layoutEngine, u.groups);
1519
1520
  if (!b) {
1520
- de.current = { startX: a.clientX, startY: a.clientY, lastX: a.clientX, lastY: a.clientY }, Oe.current = !1;
1521
+ de.current = { startX: s.clientX, startY: s.clientY, lastX: s.clientX, lastY: s.clientY }, Oe.current = !1;
1521
1522
  return;
1522
1523
  }
1523
- const C = Qt(v, b, L.current), D = Jt(b, C, l.canResize, l.canMove);
1524
- D && ne.startInteraction(b, D, v, d);
1525
- }, [ne]), Oi = te((a) => {
1526
- var C, D, P, F;
1527
- const l = a.currentTarget;
1524
+ const C = Qt(v, b, L.current), I = Jt(b, C, u.canResize, u.canMove);
1525
+ I && ne.startInteraction(b, I, v, d);
1526
+ }, [ne]), Oi = te((s) => {
1527
+ var C, I, P, F;
1528
+ const u = s.currentTarget;
1528
1529
  if (de.current) {
1529
1530
  const W = Oe.current;
1530
- if (de.current = null, Oe.current = !1, l.style.cursor = "default", W)
1531
+ if (de.current = null, Oe.current = !1, u.style.cursor = "default", W)
1531
1532
  return;
1532
1533
  }
1533
1534
  if (ne.isActive()) {
@@ -1544,98 +1545,98 @@ const ai = 32, Hn = ce.memo(_i(function(e, i) {
1544
1545
  const { edge: ee, time: V } = hi(W, Z, G);
1545
1546
  if (ne.endResize(se)) {
1546
1547
  const M = q ? q("resize", W.item.id, V, ee) : V;
1547
- (D = G.onItemResize) == null || D.call(G, W.item.id, M, ee);
1548
+ (I = G.onItemResize) == null || I.call(G, W.item.id, M, ee);
1548
1549
  }
1549
1550
  }
1550
1551
  }
1551
- l.style.cursor = "default", O.markDirty("overlay");
1552
+ u.style.cursor = "default", O.markDirty("overlay");
1552
1553
  return;
1553
1554
  }
1554
1555
  ne.isPending() && ne.cancel();
1555
- const p = l.getBoundingClientRect(), v = a.clientX - p.left, d = a.clientY - p.top, b = Ze(v, d, L.current, N.current.intervalTree, N.current.layoutEngine, N.current.groups);
1556
- b && ((F = (P = N.current).onItemClick) == null || F.call(P, b.id, a.nativeEvent));
1557
- }, [ne, O]), Ri = te((a) => {
1558
- var C, D;
1559
- const l = a.currentTarget.getBoundingClientRect(), p = a.clientX - l.left, v = a.clientY - l.top, d = N.current, b = Ze(p, v, L.current, d.intervalTree, d.layoutEngine, d.groups);
1556
+ const p = u.getBoundingClientRect(), v = s.clientX - p.left, d = s.clientY - p.top, b = Ze(v, d, L.current, N.current.intervalTree, N.current.layoutEngine, N.current.groups);
1557
+ b && ((F = (P = N.current).onItemClick) == null || F.call(P, b.id, s.nativeEvent));
1558
+ }, [ne, O]), Ri = te((s) => {
1559
+ var C, I;
1560
+ const u = s.currentTarget.getBoundingClientRect(), p = s.clientX - u.left, v = s.clientY - u.top, d = N.current, b = Ze(p, v, L.current, d.intervalTree, d.layoutEngine, d.groups);
1560
1561
  if (b)
1561
- (C = d.onItemDoubleClick) == null || C.call(d, b.id, a.nativeEvent);
1562
+ (C = d.onItemDoubleClick) == null || C.call(d, b.id, s.nativeEvent);
1562
1563
  else {
1563
1564
  const P = kt(v, L.current, d.groups), F = L.current.xToTime(p);
1564
- P && ((D = d.onCanvasDoubleClick) == null || D.call(d, P.id, F));
1565
+ P && ((I = d.onCanvasDoubleClick) == null || I.call(d, P.id, F));
1565
1566
  }
1566
- }, []), Pi = te((a) => {
1567
- var C, D;
1568
- a.preventDefault();
1569
- const l = a.currentTarget.getBoundingClientRect(), p = a.clientX - l.left, v = a.clientY - l.top, d = N.current, b = Ze(p, v, L.current, d.intervalTree, d.layoutEngine, d.groups);
1567
+ }, []), Pi = te((s) => {
1568
+ var C, I;
1569
+ s.preventDefault();
1570
+ const u = s.currentTarget.getBoundingClientRect(), p = s.clientX - u.left, v = s.clientY - u.top, d = N.current, b = Ze(p, v, L.current, d.intervalTree, d.layoutEngine, d.groups);
1570
1571
  if (b)
1571
- (C = d.onItemContextMenu) == null || C.call(d, b.id, a.nativeEvent);
1572
+ (C = d.onItemContextMenu) == null || C.call(d, b.id, s.nativeEvent);
1572
1573
  else {
1573
1574
  const P = kt(v, L.current, d.groups), F = L.current.xToTime(p);
1574
- P && ((D = d.onCanvasContextMenu) == null || D.call(d, P.id, F, a.nativeEvent));
1575
+ P && ((I = d.onCanvasContextMenu) == null || I.call(d, P.id, F, s.nativeEvent));
1575
1576
  }
1576
1577
  }, []), Yi = te(() => {
1577
- var a, l;
1578
- de.current = null, Oe.current = !1, gt.current = null, xe.current && (xe.current.style.cursor = "default"), Le.current !== void 0 && (Le.current = void 0, O.markDirty("items"), (l = (a = N.current).onItemHover) == null || l.call(a, null, new PointerEvent("pointerleave"))), N.current.showCursorLine && O.markDirty("overlay");
1578
+ var s, u;
1579
+ de.current = null, Oe.current = !1, gt.current = null, ze.current && (ze.current.style.cursor = "default"), Le.current !== void 0 && (Le.current = void 0, O.markDirty("items"), (u = (s = N.current).onItemHover) == null || u.call(s, null, new PointerEvent("pointerleave"))), N.current.showCursorLine && O.markDirty("overlay");
1579
1580
  }, [O]), $i = Q(() => {
1580
- const a = [];
1581
- return ce.Children.forEach(we, (l) => {
1581
+ const s = [];
1582
+ return ce.Children.forEach(we, (u) => {
1582
1583
  var v;
1583
- if (!ce.isValidElement(l))
1584
+ if (!ce.isValidElement(u))
1584
1585
  return;
1585
- if (((v = l.type) == null ? void 0 : v.displayName) === "TimelineHeaders") {
1586
- const d = l.props;
1587
- a.push(ce.cloneElement(l, {
1586
+ if (((v = u.type) == null ? void 0 : v.displayName) === "TimelineHeaders") {
1587
+ const d = u.props;
1588
+ s.push(ce.cloneElement(u, {
1588
1589
  visibleTimeStart: d.visibleTimeStart ?? Lt,
1589
1590
  visibleTimeEnd: d.visibleTimeEnd ?? At,
1590
1591
  canvasWidth: d.canvasWidth ?? ke,
1591
- sidebarWidth: d.sidebarWidth ?? c,
1592
+ sidebarWidth: d.sidebarWidth ?? a,
1592
1593
  theme: d.theme ?? Te,
1593
1594
  timezone: d.timezone ?? it,
1594
1595
  onZoomToInterval: d.onZoomToInterval ?? ((b, C) => {
1595
- var D, P, F, W;
1596
- L.current.update({ visibleTimeStart: b, visibleTimeEnd: C }), O.markAllDirty(), $e(), (P = (D = N.current).onTimeChange) == null || P.call(D, b, C), (W = (F = N.current).onZoom) == null || W.call(F, b, C);
1596
+ var I, P, F, W;
1597
+ L.current.update({ visibleTimeStart: b, visibleTimeEnd: C }), O.markAllDirty(), $e(), (P = (I = N.current).onTimeChange) == null || P.call(I, b, C), (W = (F = N.current).onZoom) == null || W.call(F, b, C);
1597
1598
  })
1598
1599
  }));
1599
1600
  }
1600
- }), a;
1601
- }, [we, Lt, At, ke, c, Te, it, O, $e]), Kt = A(!1);
1601
+ }), s;
1602
+ }, [we, Lt, At, ke, a, Te, it, O, $e]), Kt = A(!1);
1602
1603
  ae(() => {
1603
1604
  Kt.current || (Kt.current = !0, O.markAllDirty());
1604
- }, [O]), Wi(i, () => ({
1605
- captureToCanvas({ timeStart: a, timeEnd: l, scale: p, sidebarWidth: v }) {
1606
- const d = N.current, b = 28, C = b * 3, D = d.groups.map((j) => d.layoutEngine.getGroupHeight(j.id)), P = [0];
1607
- for (let j = 0; j < D.length; j++)
1608
- P.push(P[j] + D[j]);
1609
- const F = P[D.length], W = L.current, Z = d.canvasWidth / (W.visibleTimeEnd - W.visibleTimeStart), se = l - a, q = Math.max(d.canvasWidth, Math.round(se * Z)), G = (v + q) * p, ee = (C + F) * p, V = document.createElement("canvas");
1605
+ }, [O]), Wi(t, () => ({
1606
+ captureToCanvas({ timeStart: s, timeEnd: u, scale: p, sidebarWidth: v }) {
1607
+ const d = N.current, b = 28, C = b * 3, I = d.groups.map((j) => d.layoutEngine.getGroupHeight(j.id)), P = [0];
1608
+ for (let j = 0; j < I.length; j++)
1609
+ P.push(P[j] + I[j]);
1610
+ const F = P[I.length], W = L.current, Z = d.canvasWidth / (W.visibleTimeEnd - W.visibleTimeStart), se = u - s, q = Math.max(d.canvasWidth, Math.round(se * Z)), G = (v + q) * p, ee = (C + F) * p, V = document.createElement("canvas");
1610
1611
  V.width = G, V.height = ee;
1611
1612
  const R = V.getContext("2d");
1612
1613
  R.scale(p, p);
1613
1614
  for (let j = 0; j < d.groups.length; j++) {
1614
- const Se = d.groups[j], Me = D[j], z = C + P[j];
1615
+ const Se = d.groups[j], Me = I[j], x = C + P[j];
1615
1616
  if (d.rowStyle) {
1616
1617
  const ue = d.rowStyle(Se);
1617
- ue != null && ue.backgroundColor && (R.fillStyle = ue.backgroundColor, R.fillRect(0, z, v, Me));
1618
+ ue != null && ue.backgroundColor && (R.fillStyle = ue.backgroundColor, R.fillRect(0, x, v, Me));
1618
1619
  }
1619
1620
  const le = Se.type;
1620
1621
  let oe = "400", K = 8;
1621
- le === "project" ? oe = "700" : le === "CAG" ? oe = "600" : le === "CA" && (oe = "400", K = 24), R.fillStyle = "#111", R.font = `${oe} 12px sans-serif`, R.textBaseline = "middle", R.fillText(Se.title, K, z + Me / 2, v - K - 4);
1622
+ le === "project" ? oe = "700" : le === "CAG" ? oe = "600" : le === "CA" && (oe = "400", K = 24), R.fillStyle = "#111", R.font = `${oe} 12px sans-serif`, R.textBaseline = "middle", R.fillText(Se.title, K, x + Me / 2, v - K - 4);
1622
1623
  }
1623
1624
  const M = (j, Se, Me) => {
1624
1625
  var oe, K;
1625
1626
  R.fillStyle = ((oe = d.theme.header) == null ? void 0 : oe.bg) ?? "#f5f5f5", R.fillRect(v, j, q, b), R.strokeStyle = ((K = d.theme.grid) == null ? void 0 : K.line) ?? "#e0e0e0", R.lineWidth = 1, R.strokeRect(v, j, q, b);
1626
- let z = he(a, d.timezone).startOf(Me);
1627
- z.valueOf() < a && (z = z.add(1, Me));
1628
- const le = q / (l - a);
1629
- for (; z.valueOf() < l; ) {
1630
- const ue = z.add(1, Me), fe = v + (z.valueOf() - a) * le, pe = v + (Math.min(ue.valueOf(), l) - a) * le - fe;
1631
- R.beginPath(), R.moveTo(fe, j), R.lineTo(fe, j + b), R.stroke(), R.fillStyle = "#333", R.font = "600 11px sans-serif", R.textBaseline = "middle", R.textAlign = "center", R.fillText(Se(z), fe + pe / 2, j + b / 2, pe - 4), z = ue;
1627
+ let x = he(s, d.timezone).startOf(Me);
1628
+ x.valueOf() < s && (x = x.add(1, Me));
1629
+ const le = q / (u - s);
1630
+ for (; x.valueOf() < u; ) {
1631
+ const ue = x.add(1, Me), fe = v + (x.valueOf() - s) * le, pe = v + (Math.min(ue.valueOf(), u) - s) * le - fe;
1632
+ R.beginPath(), R.moveTo(fe, j), R.lineTo(fe, j + b), R.stroke(), R.fillStyle = "#333", R.font = "600 11px sans-serif", R.textBaseline = "middle", R.textAlign = "center", R.fillText(Se(x), fe + pe / 2, j + b / 2, pe - 4), x = ue;
1632
1633
  }
1633
1634
  R.textAlign = "start";
1634
1635
  };
1635
1636
  M(0, (j) => j.format("YYYY"), "year"), M(b, (j) => j.format("MM"), "month"), M(b * 2, (j) => String(j.isoWeek()), "week");
1636
1637
  const We = new wt({
1637
- visibleTimeStart: a,
1638
- visibleTimeEnd: l,
1638
+ visibleTimeStart: s,
1639
+ visibleTimeEnd: u,
1639
1640
  canvasWidth: q,
1640
1641
  canvasHeight: F,
1641
1642
  sidebarWidth: 0,
@@ -1643,7 +1644,7 @@ const ai = 32, Hn = ce.memo(_i(function(e, i) {
1643
1644
  groupCount: d.groups.length,
1644
1645
  buffer: 1,
1645
1646
  scrollTop: 0,
1646
- groupHeights: D
1647
+ groupHeights: I
1647
1648
  });
1648
1649
  return R.save(), R.translate(v, C), R.beginPath(), R.rect(0, 0, q, F), R.clip(), Xe.draw(R, We, d.groups, d.theme, d.dayStyle, d.rowStyle, d.highlights, d.timezone), Fe.draw(R, We, d.groups, d.items, d.intervalTree, d.layoutEngine, d.itemRenderer, d.groupRenderer, d.theme, d.selected, void 0, d.dependencies, d.summaryRenderer, d.hierarchyEngine), _e.draw(R, We, d.theme, {
1649
1650
  cursorX: null,
@@ -1653,46 +1654,46 @@ const ai = 32, Hn = ce.memo(_i(function(e, i) {
1653
1654
  }), R.restore(), V;
1654
1655
  }
1655
1656
  }), [Xe, Fe, _e]), ae(() => {
1656
- const a = {
1657
- captureToCanvas({ timeStart: l, timeEnd: p, scale: v, sidebarWidth: d }) {
1657
+ const s = {
1658
+ captureToCanvas({ timeStart: u, timeEnd: p, scale: v, sidebarWidth: d }) {
1658
1659
  var Me;
1659
- const b = N.current, C = 28, D = C * 3, P = b.groups.map((z) => b.layoutEngine.getGroupHeight(z.id)), F = [0];
1660
- for (let z = 0; z < P.length; z++)
1661
- F.push(F[z] + P[z]);
1662
- const W = F[P.length], Z = L.current, se = b.canvasWidth / (Z.visibleTimeEnd - Z.visibleTimeStart), q = p - l, G = Math.max(b.canvasWidth, Math.round(q * se)), ee = d + G, V = D + W, R = document.createElement("canvas");
1660
+ const b = N.current, C = 28, I = C * 3, P = b.groups.map((x) => b.layoutEngine.getGroupHeight(x.id)), F = [0];
1661
+ for (let x = 0; x < P.length; x++)
1662
+ F.push(F[x] + P[x]);
1663
+ const W = F[P.length], Z = L.current, se = b.canvasWidth / (Z.visibleTimeEnd - Z.visibleTimeStart), q = p - u, G = Math.max(b.canvasWidth, Math.round(q * se)), ee = d + G, V = I + W, R = document.createElement("canvas");
1663
1664
  R.width = ee * v, R.height = V * v;
1664
1665
  const M = R.getContext("2d");
1665
- M.scale(v, v), M.fillStyle = "#FFFFFF", M.fillRect(0, 0, ee, V), M.save(), M.beginPath(), M.rect(0, 0, d, V), M.clip(), M.fillStyle = "#F9FAFB", M.fillRect(0, 0, d, D), M.strokeStyle = "#E5E7EB", M.lineWidth = 1, M.strokeRect(0, 0, d, D);
1666
- for (let z = 0; z < b.groups.length; z++) {
1667
- const le = b.groups[z], oe = P[z], K = D + F[z], ue = (Me = b.rowStyle) == null ? void 0 : Me.call(b, le);
1668
- M.fillStyle = (ue == null ? void 0 : ue.backgroundColor) ?? (z % 2 === 0 ? "#FFFFFF" : "#F7F7F7"), M.fillRect(0, K, d, oe), M.strokeStyle = "#E5E5E5", M.lineWidth = 0.5, M.beginPath(), M.moveTo(0, K + oe), M.lineTo(d, K + oe), M.stroke();
1666
+ M.scale(v, v), M.fillStyle = "#FFFFFF", M.fillRect(0, 0, ee, V), M.save(), M.beginPath(), M.rect(0, 0, d, V), M.clip(), M.fillStyle = "#F9FAFB", M.fillRect(0, 0, d, I), M.strokeStyle = "#E5E7EB", M.lineWidth = 1, M.strokeRect(0, 0, d, I);
1667
+ for (let x = 0; x < b.groups.length; x++) {
1668
+ const le = b.groups[x], oe = P[x], K = I + F[x], ue = (Me = b.rowStyle) == null ? void 0 : Me.call(b, le);
1669
+ M.fillStyle = (ue == null ? void 0 : ue.backgroundColor) ?? (x % 2 === 0 ? "#FFFFFF" : "#F7F7F7"), M.fillRect(0, K, d, oe), M.strokeStyle = "#E5E5E5", M.lineWidth = 0.5, M.beginPath(), M.moveTo(0, K + oe), M.lineTo(d, K + oe), M.stroke();
1669
1670
  const fe = le.type ?? "";
1670
1671
  let Re = 8, pe = "400", Pe = 11;
1671
1672
  fe === "project" ? (pe = "700", Pe = 12) : fe === "control_area_group" ? pe = "600" : fe === "control_area" && (Re = 24), M.fillStyle = "#374151", M.font = `${pe} ${Pe}px -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif`, M.textBaseline = "middle";
1672
1673
  const Fi = typeof le.title == "string" ? le.title : String(le.title);
1673
1674
  M.fillText(Fi, Re, K + oe / 2, d - Re - 8);
1674
1675
  }
1675
- M.strokeStyle = "#E5E7EB", M.lineWidth = 1, M.beginPath(), M.moveTo(d, 0), M.lineTo(d, V), M.stroke(), M.restore(), M.save(), M.beginPath(), M.rect(d, 0, G, D), M.clip();
1676
- const We = p - l, j = [
1676
+ M.strokeStyle = "#E5E7EB", M.lineWidth = 1, M.beginPath(), M.moveTo(d, 0), M.lineTo(d, V), M.stroke(), M.restore(), M.save(), M.beginPath(), M.rect(d, 0, G, I), M.clip();
1677
+ const We = p - u, j = [
1677
1678
  { unit: "year", row: 0 },
1678
1679
  { unit: "month", row: 1 },
1679
1680
  { unit: "week", row: 2 }
1680
1681
  ];
1681
- for (const { unit: z, row: le } of j) {
1682
+ for (const { unit: x, row: le } of j) {
1682
1683
  const oe = le * C;
1683
1684
  M.fillStyle = "#F9FAFB", M.fillRect(d, oe, G, C);
1684
- let K = he(l, b.timezone).startOf(z);
1685
- const ue = he(p, b.timezone).add(1, z);
1685
+ let K = he(u, b.timezone).startOf(x);
1686
+ const ue = he(p, b.timezone).add(1, x);
1686
1687
  for (; K.isBefore(ue); ) {
1687
- const fe = K.add(1, z), Re = d + (K.valueOf() - l) / We * G, pe = (fe.valueOf() - K.valueOf()) / We * G;
1688
+ const fe = K.add(1, x), Re = d + (K.valueOf() - u) / We * G, pe = (fe.valueOf() - K.valueOf()) / We * G;
1688
1689
  M.strokeStyle = "#E5E7EB", M.lineWidth = 0.5, M.strokeRect(Re, oe, pe, C);
1689
1690
  let Pe;
1690
- z === "year" ? Pe = K.format("YYYY") : z === "month" ? Pe = K.format("MM") : Pe = `${K.week()}`, M.fillStyle = "#6c737f", M.font = z === "year" ? '600 11px -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif' : '400 11px -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif', M.textBaseline = "middle", M.textAlign = "center", pe > 20 && M.fillText(Pe, Re + pe / 2, oe + C / 2), K = fe;
1691
+ x === "year" ? Pe = K.format("YYYY") : x === "month" ? Pe = K.format("MM") : Pe = `${K.week()}`, M.fillStyle = "#6c737f", M.font = x === "year" ? '600 11px -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif' : '400 11px -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif', M.textBaseline = "middle", M.textAlign = "center", pe > 20 && M.fillText(Pe, Re + pe / 2, oe + C / 2), K = fe;
1691
1692
  }
1692
1693
  }
1693
- M.textAlign = "start", M.restore(), M.save(), M.beginPath(), M.rect(d, D, G, W), M.clip(), M.translate(d, D);
1694
+ M.textAlign = "start", M.restore(), M.save(), M.beginPath(), M.rect(d, I, G, W), M.clip(), M.translate(d, I);
1694
1695
  const Se = new wt({
1695
- visibleTimeStart: l,
1696
+ visibleTimeStart: u,
1696
1697
  visibleTimeEnd: p,
1697
1698
  canvasWidth: G,
1698
1699
  canvasHeight: W,
@@ -1706,7 +1707,7 @@ const ai = 32, Hn = ce.memo(_i(function(e, i) {
1706
1707
  return Xe.draw(M, Se, b.groups, b.theme, b.dayStyle, b.rowStyle, b.highlights, b.timezone), Fe.draw(M, Se, b.groups, b.items, b.intervalTree, b.layoutEngine, b.itemRenderer, b.groupRenderer, b.theme, b.selected, void 0, b.dependencies, b.summaryRenderer, b.hierarchyEngine), _e.draw(M, Se, b.theme, { cursorX: null, markers: Ne.current }), M.restore(), R;
1707
1708
  }
1708
1709
  };
1709
- tt == null || tt(a);
1710
+ tt == null || tt(s);
1710
1711
  }, [tt, Xe, Fe, _e]);
1711
1712
  const Xi = {
1712
1713
  position: "relative",
@@ -1729,31 +1730,31 @@ const ai = 32, Hn = ce.memo(_i(function(e, i) {
1729
1730
  borderBottomRightRadius: 4,
1730
1731
  pointerEvents: "none",
1731
1732
  userSelect: "none"
1732
- }, children: ["v", "0.10.1", " · ", "14:58:01"] }) : null, $i, Ve("div", { ref: Wt, style: { display: "flex", overflow: "hidden", maxHeight: Be ?? void 0 }, children: [re(ri, { groups: n, width: c, lineHeight: s, groupHeights: De, scrollTop: Nt, canvasHeight: ge, theme: Te, groupRenderer: B, onScroll: (a) => {
1733
- L.current.update({ scrollTop: a }), O.markDirty("grid"), O.markDirty("items"), O.markDirty("overlay"), rt(a);
1734
- } }), Ve("div", { ref: xe, style: Xi, onPointerMove: Ii, onPointerDown: Di, onPointerUp: Oi, onDoubleClick: Ri, onContextMenu: Pi, onPointerLeave: Yi, children: [re("canvas", { ref: $t, style: { ...Mt, zIndex: 0 } }), re("canvas", { ref: Xt, style: { ...Mt, zIndex: 1 } }), re("canvas", { ref: Ft, style: { ...Mt, zIndex: 2 } })] }), ft && Pt ? re(ri, { groups: n, width: ft, lineHeight: s, groupHeights: De, scrollTop: Nt, canvasHeight: ge, theme: Te, groupRenderer: Pt, onScroll: (a) => {
1735
- L.current.update({ scrollTop: a }), O.markDirty("grid"), O.markDirty("items"), O.markDirty("overlay"), rt(a);
1733
+ }, children: ["v", "0.10.3", " · ", "13:05:43"] }) : null, $i, Ve("div", { ref: Wt, style: { display: "flex", overflow: "hidden", maxHeight: Be ?? void 0 }, children: [re(ri, { groups: n, width: a, lineHeight: l, groupHeights: Ie, scrollTop: Nt, canvasHeight: ge, theme: Te, groupRenderer: B, onScroll: (s) => {
1734
+ L.current.update({ scrollTop: s }), O.markDirty("grid"), O.markDirty("items"), O.markDirty("overlay"), rt(s);
1735
+ } }), Ve("div", { ref: ze, style: Xi, onPointerMove: Di, onPointerDown: Ii, onPointerUp: Oi, onDoubleClick: Ri, onContextMenu: Pi, onPointerLeave: Yi, children: [re("canvas", { ref: $t, style: { ...Mt, zIndex: 0 } }), re("canvas", { ref: Xt, style: { ...Mt, zIndex: 1 } }), re("canvas", { ref: Ft, style: { ...Mt, zIndex: 2 } })] }), ft && Pt ? re(ri, { groups: n, width: ft, lineHeight: l, groupHeights: Ie, scrollTop: Nt, canvasHeight: ge, theme: Te, groupRenderer: Pt, onScroll: (s) => {
1736
+ L.current.update({ scrollTop: s }), O.markDirty("grid"), O.markDirty("items"), O.markDirty("overlay"), rt(s);
1736
1737
  } }) : null] })] });
1737
1738
  }));
1738
- function fn({ children: t, theme: e, className: i, classNames: n, style: r, visibleTimeStart: u, visibleTimeEnd: o, canvasWidth: c, sidebarWidth: s = 0, onZoomToInterval: h, timezone: S }) {
1739
- const m = ce.Children.map(t, (f) => {
1739
+ function fn({ children: i, theme: e, className: t, classNames: n, style: r, visibleTimeStart: c, visibleTimeEnd: o, canvasWidth: a, sidebarWidth: l = 0, onZoomToInterval: h, timezone: S }) {
1740
+ const m = ce.Children.map(i, (f) => {
1740
1741
  var y;
1741
1742
  if (!ce.isValidElement(f))
1742
1743
  return f;
1743
1744
  if (((y = f.type) == null ? void 0 : y.displayName) === "DateHeader") {
1744
1745
  const g = f.props, H = ce.cloneElement(f, {
1745
- visibleTimeStart: g.visibleTimeStart ?? u,
1746
+ visibleTimeStart: g.visibleTimeStart ?? c,
1746
1747
  visibleTimeEnd: g.visibleTimeEnd ?? o,
1747
- canvasWidth: g.canvasWidth ?? c,
1748
+ canvasWidth: g.canvasWidth ?? a,
1748
1749
  theme: g.theme ?? e,
1749
1750
  onZoomToInterval: g.onIntervalClick ?? g.onZoomToInterval ?? h,
1750
1751
  timezone: g.timezone ?? S
1751
1752
  });
1752
- return Ve("div", { style: { display: "flex" }, children: [re("div", { style: { width: s, flexShrink: 0 } }), re("div", { style: { flex: 1, overflow: "hidden" }, children: H })] });
1753
+ return Ve("div", { style: { display: "flex" }, children: [re("div", { style: { width: l, flexShrink: 0 } }), re("div", { style: { flex: 1, overflow: "hidden" }, children: H })] });
1753
1754
  }
1754
1755
  return f;
1755
1756
  });
1756
- return re("div", { className: i, style: {
1757
+ return re("div", { className: t, style: {
1757
1758
  position: "sticky",
1758
1759
  top: 0,
1759
1760
  zIndex: 20,
@@ -1767,28 +1768,28 @@ function fn({ children: t, theme: e, className: i, classNames: n, style: r, visi
1767
1768
  }
1768
1769
  fn.displayName = "TimelineHeaders";
1769
1770
  var gi = { exports: {} };
1770
- (function(t, e) {
1771
- (function(i, n) {
1772
- t.exports = n();
1771
+ (function(i, e) {
1772
+ (function(t, n) {
1773
+ i.exports = n();
1773
1774
  })(Qe, function() {
1774
- var i = "month", n = "quarter";
1775
- return function(r, u) {
1776
- var o = u.prototype;
1775
+ var t = "month", n = "quarter";
1776
+ return function(r, c) {
1777
+ var o = c.prototype;
1777
1778
  o.quarter = function(h) {
1778
1779
  return this.$utils().u(h) ? Math.ceil((this.month() + 1) / 3) : this.month(this.month() % 3 + 3 * (h - 1));
1779
1780
  };
1780
- var c = o.add;
1781
+ var a = o.add;
1781
1782
  o.add = function(h, S) {
1782
- return h = Number(h), this.$utils().p(S) === n ? this.add(3 * h, i) : c.bind(this)(h, S);
1783
+ return h = Number(h), this.$utils().p(S) === n ? this.add(3 * h, t) : a.bind(this)(h, S);
1783
1784
  };
1784
- var s = o.startOf;
1785
+ var l = o.startOf;
1785
1786
  o.startOf = function(h, S) {
1786
1787
  var m = this.$utils(), f = !!m.u(S) || S;
1787
1788
  if (m.p(h) === n) {
1788
1789
  var T = this.quarter() - 1;
1789
- return f ? this.month(3 * T).startOf(i).startOf("day") : this.month(3 * T + 2).endOf(i).endOf("day");
1790
+ return f ? this.month(3 * T).startOf(t).startOf("day") : this.month(3 * T + 2).endOf(t).endOf("day");
1790
1791
  }
1791
- return s.bind(this)(h, S);
1792
+ return l.bind(this)(h, S);
1792
1793
  };
1793
1794
  };
1794
1795
  });
@@ -1796,24 +1797,24 @@ var gi = { exports: {} };
1796
1797
  var hn = gi.exports;
1797
1798
  const mn = /* @__PURE__ */ Je(hn);
1798
1799
  var pi = { exports: {} };
1799
- (function(t, e) {
1800
- (function(i, n) {
1801
- t.exports = n();
1800
+ (function(i, e) {
1801
+ (function(t, n) {
1802
+ i.exports = n();
1802
1803
  })(Qe, function() {
1803
- var i = "week", n = "year";
1804
- return function(r, u, o) {
1805
- var c = u.prototype;
1806
- c.week = function(s) {
1807
- if (s === void 0 && (s = null), s !== null) return this.add(7 * (s - this.week()), "day");
1804
+ var t = "week", n = "year";
1805
+ return function(r, c, o) {
1806
+ var a = c.prototype;
1807
+ a.week = function(l) {
1808
+ if (l === void 0 && (l = null), l !== null) return this.add(7 * (l - this.week()), "day");
1808
1809
  var h = this.$locale().yearStart || 1;
1809
1810
  if (this.month() === 11 && this.date() > 25) {
1810
- var S = o(this).startOf(n).add(1, n).date(h), m = o(this).endOf(i);
1811
+ var S = o(this).startOf(n).add(1, n).date(h), m = o(this).endOf(t);
1811
1812
  if (S.isBefore(m)) return 1;
1812
1813
  }
1813
- var f = o(this).startOf(n).date(h).startOf(i).subtract(1, "millisecond"), T = this.diff(f, i, !0);
1814
+ var f = o(this).startOf(n).date(h).startOf(t).subtract(1, "millisecond"), T = this.diff(f, t, !0);
1814
1815
  return T < 0 ? o(this).startOf("week").week() : Math.ceil(T);
1815
- }, c.weeks = function(s) {
1816
- return s === void 0 && (s = null), this.week(s);
1816
+ }, a.weeks = function(l) {
1817
+ return l === void 0 && (l = null), this.week(l);
1817
1818
  };
1818
1819
  };
1819
1820
  });
@@ -1830,28 +1831,28 @@ const vn = {
1830
1831
  day: 15,
1831
1832
  hour: 30
1832
1833
  };
1833
- function bn({ unit: t, visibleTimeStart: e = 0, visibleTimeEnd: i = 0, canvasWidth: n = 0, theme: r, height: u = 28, className: o, labelFormat: c, onIntervalClick: s, minCellWidth: h, onZoomToInterval: S, timezone: m }) {
1834
+ function bn({ unit: i, visibleTimeStart: e = 0, visibleTimeEnd: t = 0, canvasWidth: n = 0, theme: r, height: c = 28, className: o, labelFormat: a, onIntervalClick: l, minCellWidth: h, onZoomToInterval: S, timezone: m }) {
1834
1835
  const f = Q(() => {
1835
- if (!e || !i || !n)
1836
+ if (!e || !t || !n)
1836
1837
  return [];
1837
- const y = i - e, g = t, H = h ?? vn[t];
1838
+ const y = t - e, g = i, H = h ?? vn[i];
1838
1839
  if (H > 0) {
1839
- const E = he(e, m).startOf(t);
1840
+ const E = he(e, m).startOf(i);
1840
1841
  if ((E.add(1, g).valueOf() - E.valueOf()) / y * n < H)
1841
1842
  return [];
1842
1843
  }
1843
1844
  const Y = [];
1844
- let $ = he(e, m).startOf(t).subtract(1, g);
1845
- const w = he(i, m).add(2, g).valueOf();
1845
+ let $ = he(e, m).startOf(i).subtract(1, g);
1846
+ const w = he(t, m).add(2, g).valueOf();
1846
1847
  for (; $.valueOf() < w; ) {
1847
- const E = $.add(1, g), k = $.valueOf(), X = E.valueOf(), B = (k - e) / y * n, I = (X - k) / y * n, x = yn($, E, t, c);
1848
- Y.push({ start: k, end: X, label: x, left: B, width: I }), $ = E;
1848
+ const E = $.add(1, g), k = $.valueOf(), X = E.valueOf(), B = (k - e) / y * n, D = (X - k) / y * n, z = yn($, E, i, a);
1849
+ Y.push({ start: k, end: X, label: z, left: B, width: D }), $ = E;
1849
1850
  }
1850
1851
  return Y;
1851
- }, [e, i, n, t, c, h, m]), T = te((y, g) => {
1852
- s ? s(y, g) : S && S(y, g);
1853
- }, [s, S]);
1854
- return f.length === 0 ? null : re("div", { style: { display: "flex", position: "relative", height: u, overflow: "hidden" }, children: f.map((y) => re("div", { className: o, onClick: () => T(y.start, y.end), style: {
1852
+ }, [e, t, n, i, a, h, m]), T = te((y, g) => {
1853
+ l ? l(y, g) : S && S(y, g);
1854
+ }, [l, S]);
1855
+ return f.length === 0 ? null : re("div", { style: { display: "flex", position: "relative", height: c, overflow: "hidden" }, children: f.map((y) => re("div", { className: o, onClick: () => T(y.start, y.end), style: {
1855
1856
  position: "absolute",
1856
1857
  left: y.left,
1857
1858
  width: y.width,
@@ -1873,32 +1874,32 @@ function bn({ unit: t, visibleTimeStart: e = 0, visibleTimeEnd: i = 0, canvasWid
1873
1874
  }, children: re("span", { children: y.label }) }, y.start)) });
1874
1875
  }
1875
1876
  bn.displayName = "DateHeader";
1876
- function yn(t, e, i, n, r) {
1877
- return typeof n == "function" ? n(t.toDate(), e.toDate(), i) : typeof n == "string" ? t.format(n) : Tn(t, i);
1877
+ function yn(i, e, t, n, r) {
1878
+ return typeof n == "function" ? n(i.toDate(), e.toDate(), t) : typeof n == "string" ? i.format(n) : Tn(i, t);
1878
1879
  }
1879
- function Tn(t, e) {
1880
+ function Tn(i, e) {
1880
1881
  switch (e) {
1881
1882
  case "year":
1882
- return t.format("YYYY");
1883
+ return i.format("YYYY");
1883
1884
  case "quarter":
1884
- return `Q${t.quarter()} ${t.format("YYYY")}`;
1885
+ return `Q${i.quarter()} ${i.format("YYYY")}`;
1885
1886
  case "month":
1886
- return t.format("MM");
1887
+ return i.format("MM");
1887
1888
  case "week":
1888
- return `${t.week()}`;
1889
+ return `${i.week()}`;
1889
1890
  case "day":
1890
- return t.format("D");
1891
+ return i.format("D");
1891
1892
  case "hour":
1892
- return t.format("HH:mm");
1893
+ return i.format("HH:mm");
1893
1894
  }
1894
1895
  }
1895
- function Sn({ width: t, children: e, style: i }) {
1896
- const n = () => ({ style: { width: t, ...i } });
1897
- return e ? re(li, { children: e({ getRootProps: n }) }) : re("div", { style: { width: t } });
1896
+ function Sn({ width: i, children: e, style: t }) {
1897
+ const n = () => ({ style: { width: i, ...t } });
1898
+ return e ? re(li, { children: e({ getRootProps: n }) }) : re("div", { style: { width: i } });
1898
1899
  }
1899
1900
  Sn.displayName = "SidebarHeader";
1900
- function Mn({ children: t }) {
1901
- return re(li, { children: t });
1901
+ function Mn({ children: i }) {
1902
+ return re(li, { children: i });
1902
1903
  }
1903
1904
  Mn.displayName = "CustomHeader";
1904
1905
  export {