gantt-renderer 0.8.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/index.d.mts +113 -130
  3. package/dist/index.mjs +126 -150
  4. package/dist/index.mjs.map +1 -1
  5. package/dist/locale-B81kcgPd.d.mts +66 -0
  6. package/dist/locales/all.d.mts +7 -0
  7. package/dist/locales/all.mjs +95 -0
  8. package/dist/locales/all.mjs.map +1 -0
  9. package/dist/locales/ar.d.mts +7 -0
  10. package/dist/locales/ar.mjs +23 -0
  11. package/dist/locales/ar.mjs.map +1 -0
  12. package/dist/locales/be.d.mts +7 -0
  13. package/dist/locales/be.mjs +23 -0
  14. package/dist/locales/be.mjs.map +1 -0
  15. package/dist/locales/bg.d.mts +7 -0
  16. package/dist/locales/bg.mjs +23 -0
  17. package/dist/locales/bg.mjs.map +1 -0
  18. package/dist/locales/ca.d.mts +7 -0
  19. package/dist/locales/ca.mjs +23 -0
  20. package/dist/locales/ca.mjs.map +1 -0
  21. package/dist/locales/cs.d.mts +7 -0
  22. package/dist/locales/cs.mjs +23 -0
  23. package/dist/locales/cs.mjs.map +1 -0
  24. package/dist/locales/cy.d.mts +7 -0
  25. package/dist/locales/cy.mjs +23 -0
  26. package/dist/locales/cy.mjs.map +1 -0
  27. package/dist/locales/da.d.mts +7 -0
  28. package/dist/locales/da.mjs +23 -0
  29. package/dist/locales/da.mjs.map +1 -0
  30. package/dist/locales/de.d.mts +7 -0
  31. package/dist/locales/de.mjs +23 -0
  32. package/dist/locales/de.mjs.map +1 -0
  33. package/dist/locales/el.d.mts +7 -0
  34. package/dist/locales/el.mjs +23 -0
  35. package/dist/locales/el.mjs.map +1 -0
  36. package/dist/locales/en.d.mts +7 -0
  37. package/dist/locales/en.mjs +23 -0
  38. package/dist/locales/en.mjs.map +1 -0
  39. package/dist/locales/es.d.mts +7 -0
  40. package/dist/locales/es.mjs +23 -0
  41. package/dist/locales/es.mjs.map +1 -0
  42. package/dist/locales/et.d.mts +7 -0
  43. package/dist/locales/et.mjs +23 -0
  44. package/dist/locales/et.mjs.map +1 -0
  45. package/dist/locales/eu.d.mts +7 -0
  46. package/dist/locales/eu.mjs +23 -0
  47. package/dist/locales/eu.mjs.map +1 -0
  48. package/dist/locales/fi.d.mts +7 -0
  49. package/dist/locales/fi.mjs +23 -0
  50. package/dist/locales/fi.mjs.map +1 -0
  51. package/dist/locales/fr.d.mts +7 -0
  52. package/dist/locales/fr.mjs +23 -0
  53. package/dist/locales/fr.mjs.map +1 -0
  54. package/dist/locales/ga.d.mts +7 -0
  55. package/dist/locales/ga.mjs +23 -0
  56. package/dist/locales/ga.mjs.map +1 -0
  57. package/dist/locales/hi.d.mts +7 -0
  58. package/dist/locales/hi.mjs +23 -0
  59. package/dist/locales/hi.mjs.map +1 -0
  60. package/dist/locales/hr.d.mts +7 -0
  61. package/dist/locales/hr.mjs +23 -0
  62. package/dist/locales/hr.mjs.map +1 -0
  63. package/dist/locales/hu.d.mts +7 -0
  64. package/dist/locales/hu.mjs +23 -0
  65. package/dist/locales/hu.mjs.map +1 -0
  66. package/dist/locales/id.d.mts +7 -0
  67. package/dist/locales/id.mjs +23 -0
  68. package/dist/locales/id.mjs.map +1 -0
  69. package/dist/locales/it.d.mts +7 -0
  70. package/dist/locales/it.mjs +23 -0
  71. package/dist/locales/it.mjs.map +1 -0
  72. package/dist/locales/ja.d.mts +7 -0
  73. package/dist/locales/ja.mjs +23 -0
  74. package/dist/locales/ja.mjs.map +1 -0
  75. package/dist/locales/ko.d.mts +7 -0
  76. package/dist/locales/ko.mjs +23 -0
  77. package/dist/locales/ko.mjs.map +1 -0
  78. package/dist/locales/load.d.mts +8 -0
  79. package/dist/locales/load.mjs +57 -0
  80. package/dist/locales/load.mjs.map +1 -0
  81. package/dist/locales/lt.d.mts +7 -0
  82. package/dist/locales/lt.mjs +23 -0
  83. package/dist/locales/lt.mjs.map +1 -0
  84. package/dist/locales/lv.d.mts +7 -0
  85. package/dist/locales/lv.mjs +23 -0
  86. package/dist/locales/lv.mjs.map +1 -0
  87. package/dist/locales/mk.d.mts +7 -0
  88. package/dist/locales/mk.mjs +23 -0
  89. package/dist/locales/mk.mjs.map +1 -0
  90. package/dist/locales/mt.d.mts +7 -0
  91. package/dist/locales/mt.mjs +23 -0
  92. package/dist/locales/mt.mjs.map +1 -0
  93. package/dist/locales/nb.d.mts +7 -0
  94. package/dist/locales/nb.mjs +23 -0
  95. package/dist/locales/nb.mjs.map +1 -0
  96. package/dist/locales/nl.d.mts +7 -0
  97. package/dist/locales/nl.mjs +23 -0
  98. package/dist/locales/nl.mjs.map +1 -0
  99. package/dist/locales/pl.d.mts +7 -0
  100. package/dist/locales/pl.mjs +23 -0
  101. package/dist/locales/pl.mjs.map +1 -0
  102. package/dist/locales/pt-BR.d.mts +7 -0
  103. package/dist/locales/pt-BR.mjs +23 -0
  104. package/dist/locales/pt-BR.mjs.map +1 -0
  105. package/dist/locales/pt-PT.d.mts +7 -0
  106. package/dist/locales/pt-PT.mjs +23 -0
  107. package/dist/locales/pt-PT.mjs.map +1 -0
  108. package/dist/locales/registry.d.mts +9 -0
  109. package/dist/locales/registry.mjs +15 -0
  110. package/dist/locales/registry.mjs.map +1 -0
  111. package/dist/locales/ro.d.mts +7 -0
  112. package/dist/locales/ro.mjs +23 -0
  113. package/dist/locales/ro.mjs.map +1 -0
  114. package/dist/locales/ru.d.mts +7 -0
  115. package/dist/locales/ru.mjs +23 -0
  116. package/dist/locales/ru.mjs.map +1 -0
  117. package/dist/locales/sk.d.mts +7 -0
  118. package/dist/locales/sk.mjs +23 -0
  119. package/dist/locales/sk.mjs.map +1 -0
  120. package/dist/locales/sl.d.mts +7 -0
  121. package/dist/locales/sl.mjs +23 -0
  122. package/dist/locales/sl.mjs.map +1 -0
  123. package/dist/locales/sq.d.mts +7 -0
  124. package/dist/locales/sq.mjs +23 -0
  125. package/dist/locales/sq.mjs.map +1 -0
  126. package/dist/locales/sr.d.mts +7 -0
  127. package/dist/locales/sr.mjs +23 -0
  128. package/dist/locales/sr.mjs.map +1 -0
  129. package/dist/locales/sv.d.mts +7 -0
  130. package/dist/locales/sv.mjs +23 -0
  131. package/dist/locales/sv.mjs.map +1 -0
  132. package/dist/locales/th.d.mts +7 -0
  133. package/dist/locales/th.mjs +23 -0
  134. package/dist/locales/th.mjs.map +1 -0
  135. package/dist/locales/tr.d.mts +7 -0
  136. package/dist/locales/tr.mjs +23 -0
  137. package/dist/locales/tr.mjs.map +1 -0
  138. package/dist/locales/uk.d.mts +7 -0
  139. package/dist/locales/uk.mjs +23 -0
  140. package/dist/locales/uk.mjs.map +1 -0
  141. package/dist/locales/zh-Hans.d.mts +7 -0
  142. package/dist/locales/zh-Hans.mjs +23 -0
  143. package/dist/locales/zh-Hans.mjs.map +1 -0
  144. package/dist/locales/zh-Hant.d.mts +7 -0
  145. package/dist/locales/zh-Hant.mjs +23 -0
  146. package/dist/locales/zh-Hant.mjs.map +1 -0
  147. package/dist/styles/gantt.css +23 -0
  148. package/package.json +201 -15
package/CHANGELOG.md CHANGED
@@ -1,3 +1,18 @@
1
+ # [0.10.0](https://github.com/doberkofler/gantt-renderer/compare/v0.9.0...v0.10.0) (2026-05-13)
2
+
3
+
4
+ ### Features
5
+
6
+ * **gantt:** add onExpandCollapse/onExpandCollapseAll callbacks and header +/− controls ([652d626](https://github.com/doberkofler/gantt-renderer/commit/652d6261b7d6cdfd74c07acebb54b84708a155b1))
7
+
8
+ # [0.9.0](https://github.com/doberkofler/gantt-renderer/compare/v0.8.0...v0.9.0) (2026-05-13)
9
+
10
+
11
+ ### Features
12
+
13
+ * **locales:** modular locale system with 43 languages via subpath exports ([4866724](https://github.com/doberkofler/gantt-renderer/commit/48667247005c245fd55b9421012e03ec13d82ba1))
14
+ * **vanilla:** add showTodayMarker option to toggle current-date line ([49ddc0f](https://github.com/doberkofler/gantt-renderer/commit/49ddc0fa1e00356403df286e99df71242cca0b01))
15
+
1
16
  # [0.8.0](https://github.com/doberkofler/gantt-renderer/compare/v0.7.0...v0.8.0) (2026-05-12)
2
17
 
3
18
 
package/dist/index.d.mts CHANGED
@@ -1,31 +1,7 @@
1
+ import { a as deriveWeekStartsOn, c as formatWeekNumber, i as deriveWeekNumbering, l as resolveChartLocale, n as EN_US_LABELS, o as deriveWeekendDays, r as LocaleLabelKey, s as formatLabel, t as ChartLocale } from "./locale-B81kcgPd.mjs";
1
2
  import { z } from "zod";
2
3
 
3
4
  //#region src/lib/validation/schemas.d.ts
4
- declare const LinkTypeSchema: z.ZodEnum<{
5
- FS: "FS";
6
- SS: "SS";
7
- FF: "FF";
8
- SF: "SF";
9
- }>;
10
- declare const TaskKindSchema: z.ZodEnum<{
11
- task: "task";
12
- project: "project";
13
- milestone: "milestone";
14
- }>;
15
- declare const SpecialDayKindSchema: z.ZodEnum<{
16
- holiday: "holiday";
17
- custom: "custom";
18
- }>;
19
- /** @internal */
20
- declare const SpecialDaySchema: z.ZodObject<{
21
- date: z.ZodString;
22
- kind: z.ZodEnum<{
23
- holiday: "holiday";
24
- custom: "custom";
25
- }>;
26
- label: z.ZodOptional<z.ZodString>;
27
- className: z.ZodOptional<z.ZodString>;
28
- }, z.core.$strip>;
29
5
  declare const TaskSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
30
6
  kind: z.ZodLiteral<"task">;
31
7
  endDate: z.ZodString;
@@ -77,26 +53,6 @@ declare const LinkSchema: z.ZodObject<{
77
53
  type ZodTaskInferred = z.infer<typeof TaskSchema>;
78
54
  /** @internal */
79
55
  type ZodLinkInferred = z.infer<typeof LinkSchema>;
80
- /** @internal */
81
- type ZodTaskInput = z.input<typeof TaskSchema>;
82
- /** @internal */
83
- type ZodLinkInput = z.input<typeof LinkSchema>;
84
- /** Raw input version of a task — uses zod's input shape where fields with defaults are optional. */
85
- type TaskRaw<TData = never> = WithoutData<ZodTaskInput> & WithData<TData>;
86
- /** Raw input version of a link — uses zod's input shape where fields with defaults are optional. */
87
- type LinkRaw<TData = never> = WithoutData<ZodLinkInput> & WithData<TData>;
88
- /**
89
- * Conditional data property helper.
90
- * When `T` is `never`, adds nothing. Otherwise adds `{data?: T | undefined}`.
91
- */
92
- type WithData<T> = [T] extends [never] ? Record<never, never> : {
93
- data?: T | undefined;
94
- };
95
- /**
96
- * Distributes `Omit` over union members so variant-specific properties
97
- * (e.g. `endDate`, `percentComplete`, `open`) are preserved in discriminated unions.
98
- */
99
- type WithoutData<T> = T extends unknown ? Omit<T, 'data'> : never;
100
56
  /**
101
57
  * A task in the Gantt chart &mdash; discriminated by `kind` into leaf tasks,
102
58
  * summary projects, and milestones.
@@ -118,13 +74,55 @@ type WithoutData<T> = T extends unknown ? Omit<T, 'data'> : never;
118
74
  * };
119
75
  * ```
120
76
  */
121
- type Task<TData = never> = WithoutData<ZodTaskInferred> & WithData<TData>;
77
+ type Task<TData = never> = {
78
+ id: number;
79
+ text: string;
80
+ startDate: string;
81
+ parent?: number | undefined;
82
+ color?: string | undefined;
83
+ readonly?: boolean | undefined;
84
+ data?: unknown;
85
+ kind: 'task';
86
+ endDate: string;
87
+ percentComplete: number;
88
+ } | {
89
+ id: number;
90
+ text: string;
91
+ startDate: string;
92
+ parent?: number | undefined;
93
+ color?: string | undefined;
94
+ readonly?: boolean | undefined;
95
+ data?: unknown;
96
+ kind: 'project';
97
+ endDate: string;
98
+ percentComplete: number;
99
+ open: boolean;
100
+ } | {
101
+ id: number;
102
+ text: string;
103
+ startDate: string;
104
+ parent?: number | undefined;
105
+ color?: string | undefined;
106
+ readonly?: boolean | undefined;
107
+ data?: unknown;
108
+ kind: 'milestone';
109
+ } extends infer _U ? _U extends unknown ? Omit<_U, 'data'> & ([TData] extends [never] ? Record<never, never> : {
110
+ data?: TData | undefined;
111
+ }) : never : never;
122
112
  /**
123
113
  * A dependency link between two tasks.
124
114
  *
125
115
  * @param TData - The type of the optional `data` property. Defaults to `never`.
126
116
  */
127
- type Link<TData = never> = WithoutData<ZodLinkInferred> & WithData<TData>;
117
+ type Link<TData = never> = {
118
+ id: number;
119
+ source: number;
120
+ target: number;
121
+ type: LinkType;
122
+ readonly?: boolean | undefined;
123
+ } & ([TData] extends [never] ? Record<never, never> : {
124
+ data?: TData | undefined;
125
+ });
128
126
  /**
129
127
  * The complete input data for the chart.
130
128
  *
@@ -144,15 +142,62 @@ type GanttInput<TTaskData = never, TLinkData = never> = {
144
142
  * @param TLinkData - The type of the `data` property on links. Defaults to `never`.
145
143
  */
146
144
  type GanttInputRaw<TTaskData = never, TLinkData = never> = {
147
- tasks: readonly TaskRaw<TTaskData>[];
148
- links?: readonly LinkRaw<TLinkData>[];
145
+ tasks: readonly ({
146
+ id: number;
147
+ text: string;
148
+ startDate: string;
149
+ parent?: number | undefined;
150
+ color?: string | undefined;
151
+ readonly?: boolean | undefined;
152
+ data?: unknown;
153
+ kind: 'task';
154
+ endDate: string;
155
+ percentComplete?: number | undefined;
156
+ } | {
157
+ id: number;
158
+ text: string;
159
+ startDate: string;
160
+ parent?: number | undefined;
161
+ color?: string | undefined;
162
+ readonly?: boolean | undefined;
163
+ data?: unknown;
164
+ kind: 'project';
165
+ endDate: string;
166
+ percentComplete?: number | undefined;
167
+ open?: boolean | undefined;
168
+ } | {
169
+ id: number;
170
+ text: string;
171
+ startDate: string;
172
+ parent?: number | undefined;
173
+ color?: string | undefined;
174
+ readonly?: boolean | undefined;
175
+ data?: unknown;
176
+ kind: 'milestone';
177
+ } extends infer _RU ? _RU extends unknown ? Omit<_RU, 'data'> & ([TTaskData] extends [never] ? Record<never, never> : {
178
+ data?: TTaskData | undefined;
179
+ }) : never : never)[];
180
+ links?: readonly ({
181
+ id: number;
182
+ source: number;
183
+ target: number;
184
+ type?: LinkType | undefined;
185
+ readonly?: boolean | undefined;
186
+ } & ([TLinkData] extends [never] ? Record<never, never> : {
187
+ data?: TLinkData | undefined;
188
+ }))[];
149
189
  };
150
190
  /** Allowed dependency link type values: `'FS'`, `'SS'`, `'FF'`, or `'SF'`. */
151
- type LinkType = z.infer<typeof LinkTypeSchema>;
191
+ type LinkType = 'FS' | 'SS' | 'FF' | 'SF';
152
192
  /** Allowed task kind values: `'task'`, `'project'`, or `'milestone'`. */
153
- type TaskKind = z.infer<typeof TaskKindSchema>;
154
- type SpecialDayKind = z.infer<typeof SpecialDayKindSchema>;
155
- type SpecialDay = z.infer<typeof SpecialDaySchema>;
193
+ type TaskKind = 'task' | 'project' | 'milestone';
194
+ type SpecialDayKind = 'holiday' | 'custom';
195
+ type SpecialDay = {
196
+ /** ISO date: YYYY-MM-DD */date: string;
197
+ kind: SpecialDayKind;
198
+ label?: string | undefined;
199
+ className?: string | undefined;
200
+ };
156
201
  //#endregion
157
202
  //#region src/lib/timeline/scale.d.ts
158
203
  type TimeScale = 'hour' | 'day' | 'week' | 'month' | 'quarter' | 'year';
@@ -171,7 +216,7 @@ declare const SCALE_CONFIGS: Record<TimeScale, ScaleConfig>;
171
216
  * Produced by {@link buildTaskTree}; consumed by virtualized row rendering
172
217
  * and the timeline layout engine.
173
218
  */
174
- type TaskNode = ZodTaskInferred & {
219
+ type TaskNode = Task<Record<string, unknown>> & {
175
220
  /** Array of child task nodes in the tree hierarchy. */children: TaskNode[]; /** 0 = root */
176
221
  depth: number;
177
222
  };
@@ -264,79 +309,6 @@ declare function computeLayout(rows: TaskNode[], mapper: PixelMapper): Map<numbe
264
309
  */
265
310
  declare function deriveViewport(tasks: TaskNode[], paddingHours?: number): [Date, Date];
266
311
  //#endregion
267
- //#region src/lib/locale.d.ts
268
- type LocaleLabelKey = 'ariaTask' | 'ariaMilestone' | 'addSubtaskTitle' | 'columnTaskName' | 'columnStartDate' | 'columnEndDate' | 'columnDuration' | 'columnQuarter';
269
- type ChartLocale = {
270
- code: string;
271
- labels?: Partial<Record<LocaleLabelKey, string>>;
272
- weekStartsOn?: 0 | 1 | 6;
273
- weekNumbering?: 'iso' | 'us' | 'simple';
274
- weekendDays?: number[];
275
- };
276
- declare const EN_US_LABELS: Record<LocaleLabelKey, string>;
277
- declare const CHART_LOCALE_EN_US: ChartLocale;
278
- declare const CHART_LOCALE_EN_GB: ChartLocale;
279
- declare const CHART_LOCALE_DE_DE: ChartLocale;
280
- declare const CHART_LOCALE_FR_FR: ChartLocale;
281
- declare const CHART_LOCALE_ES_ES: ChartLocale;
282
- declare const CHART_LOCALE_IT_IT: ChartLocale;
283
- declare const CHART_LOCALE_PT_PT: ChartLocale;
284
- declare const CHART_LOCALE_ZH_CN: ChartLocale;
285
- declare const CHART_LOCALE_JA_JP: ChartLocale;
286
- /**
287
- * Derives the first day of week (0=Sun, 1=Mon, 6=Sat) from a BCP 47 code.
288
- * Uses `Intl.Locale.getWeekInfo()` where available (Chromium, Safari 15.4+),
289
- * with a CLDR-based fallback table for Firefox and older runtimes.
290
- *
291
- * @param code - A BCP 47 language tag (e.g. `'en-US'`, `'de-DE'`).
292
- * @returns The first day of the week: `0` (Sunday), `1` (Monday), or `6` (Saturday).
293
- */
294
- declare function deriveWeekStartsOn(code: string): 0 | 1 | 6;
295
- /**
296
- * Derives the week numbering scheme from a BCP 47 code.
297
- * Europe and ISO-aligned regions default to `'iso'`; Americas and others to `'us'`.
298
- *
299
- * @param code - A BCP 47 language tag (e.g. `'en-US'`, `'de-DE'`).
300
- * @returns The week numbering scheme: `'iso'`, `'us'`, or `'simple'`.
301
- */
302
- declare function deriveWeekNumbering(code: string): 'iso' | 'us' | 'simple';
303
- /**
304
- * Derives weekend days (0=Sun … 6=Sat) from a BCP 47 code.
305
- * Uses `Intl.Locale.getWeekInfo()` where available, with a CLDR-based fallback table.
306
- *
307
- * @param code - A BCP 47 language tag (e.g. `'en-US'`, `'de-DE'`).
308
- * @returns An array of weekend day indices (sorted ascending).
309
- */
310
- declare function deriveWeekendDays(code: string): number[];
311
- /**
312
- * Resolves a {@link ChartLocale} from either a full `ChartLocale` object or a BCP 47 string.
313
- * When given a string, derives `weekStartsOn`, `weekNumbering`, and `weekendDays` from CLDR conventions.
314
- *
315
- * @param raw - A {@link ChartLocale} object, a BCP 47 language tag string, or `undefined`.
316
- * @returns A fully resolved {@link ChartLocale} with defaults applied.
317
- */
318
- declare function resolveChartLocale(raw: ChartLocale | string | undefined): ChartLocale;
319
- /**
320
- * Formats a week number according to the specified scheme.
321
- *
322
- * - `'iso'`: ISO 8601 (week 1 contains the first Thursday; Monday start).
323
- * - `'us'`: Week 1 contains January 1; Sunday start.
324
- * - `'simple'`: `Math.ceil(dayOfYear / 7)`.
325
- *
326
- * @param date - The date to compute the week number for.
327
- * @param scheme - The week numbering scheme: `'iso'`, `'us'`, or `'simple'`.
328
- * @returns The week number as a positive integer.
329
- */
330
- declare function formatWeekNumber(date: Date, scheme: 'iso' | 'us' | 'simple'): number;
331
- /**
332
- * Formats a label template by replacing `{0}` with the given argument.
333
- *
334
- * @param template - The template string containing `{0}` as placeholder.
335
- * @param arg - The value to substitute for `{0}`.
336
- * @returns The formatted string with the placeholder replaced.
337
- */
338
- declare function formatLabel(template: string, arg: string): string;
339
- //#endregion
340
312
  //#region src/lib/domain/dependencies.d.ts
341
313
  /**
342
314
  * Detects circular dependencies in the link graph using DFS tri-colour marking.
@@ -429,7 +401,7 @@ declare function routeLinks(links: ZodLinkInferred[], layouts: Map<number, BarLa
429
401
  * Use when referencing task fields in grid column schemas that apply
430
402
  * across a heterogeneous set of task kinds.
431
403
  */
432
- type TaskDataField = keyof ZodTaskInferred | 'endDate' | 'percentComplete' | 'open';
404
+ type TaskDataField = keyof Task | 'endDate' | 'percentComplete' | 'open';
433
405
  type GridColumn = {
434
406
  id: string;
435
407
  header: string;
@@ -437,7 +409,7 @@ type GridColumn = {
437
409
  align?: 'left' | 'center' | 'right';
438
410
  visible?: boolean;
439
411
  field?: TaskDataField;
440
- format?: (value: unknown, task: ZodTaskInferred, row: TaskNode, locale: ChartLocale) => string;
412
+ format?: (value: unknown, task: Task<Record<string, unknown>>, row: TaskNode, locale: ChartLocale) => string;
441
413
  };
442
414
  declare const DEFAULT_GRID_COLUMNS: GridColumn[];
443
415
  /**
@@ -517,6 +489,14 @@ type OnProgressChange<TTaskData = never, TLinkData = never> = (payload: {
517
489
  newPercentComplete: number;
518
490
  instance: GanttInstance<TTaskData, TLinkData>;
519
491
  }) => boolean | Promise<boolean>;
492
+ type OnExpandCollapse<TTaskData = never, TLinkData = never> = (payload: {
493
+ task: Task<TTaskData>;
494
+ instance: GanttInstance<TTaskData, TLinkData>;
495
+ }) => void | Promise<void>;
496
+ type OnExpandCollapseAll<TTaskData = never, TLinkData = never> = (payload: {
497
+ tasks: Task<TTaskData>[];
498
+ instance: GanttInstance<TTaskData, TLinkData>;
499
+ }) => void | Promise<void>;
520
500
  type OnTooltipText<TTaskData = never, TLinkData = never> = (payload: {
521
501
  task: Task<TTaskData>;
522
502
  instance: GanttInstance<TTaskData, TLinkData>;
@@ -531,6 +511,8 @@ type GanttCallbacks<TTaskData = never, TLinkData = never> = {
531
511
  onLinkClick?: OnLinkClick<TTaskData, TLinkData>;
532
512
  onLinkDblClick?: OnLinkDblClick<TTaskData, TLinkData>;
533
513
  onProgressChange?: OnProgressChange<TTaskData, TLinkData>;
514
+ onExpandCollapse?: OnExpandCollapse<TTaskData, TLinkData>;
515
+ onExpandCollapseAll?: OnExpandCollapseAll<TTaskData, TLinkData>;
534
516
  onTooltipText?: OnTooltipText<TTaskData, TLinkData>;
535
517
  onLeftPaneWidthChange?: (payload: {
536
518
  width: number;
@@ -563,6 +545,7 @@ type GanttOptions = {
563
545
  gridColumns?: GridColumn[];
564
546
  theme?: ThemeMode;
565
547
  showAddTaskButton?: boolean;
548
+ showTodayMarker?: boolean;
566
549
  };
567
550
  type GanttInstance<TTaskData = never, TLinkData = never> = {
568
551
  update: (input: GanttInputRaw<TTaskData, TLinkData>) => void;
@@ -666,5 +649,5 @@ declare class GanttError extends Error {
666
649
  constructor(code: GanttErrorCode, message: string);
667
650
  }
668
651
  //#endregion
669
- export { BAR_HEIGHT, BAR_Y_OFFSET, type BarLayout, CHART_LOCALE_DE_DE, CHART_LOCALE_EN_GB, CHART_LOCALE_EN_US, CHART_LOCALE_ES_ES, CHART_LOCALE_FR_FR, CHART_LOCALE_IT_IT, CHART_LOCALE_JA_JP, CHART_LOCALE_PT_PT, CHART_LOCALE_ZH_CN, type ChartLocale, DEFAULT_GRID_COLUMNS, DENSITY, EN_US_LABELS, GRID_COLUMN_FR_MIN_WIDTH, type GanttCallbacks, GanttChart, GanttError, type GanttErrorCode, type GanttInput, type GanttInputRaw, type GanttInstance, type GanttOptions, type GridColumn, type Link, type LinkType, type LocaleLabelKey, MILESTONE_HALF, MILESTONE_SIZE, type OnLinkClick, type OnLinkCreate, type OnLinkDblClick, type OnProgressChange, type OnTaskAdd, type OnTaskClick, type OnTaskDoubleClick, type OnTaskMove, type OnTaskResize, type OnTooltipText, type PixelMapper, type Point, ROW_HEIGHT, type RoutedLink, SCALE_CONFIGS, type ScaleConfig, type SpecialDay, type SpecialDayKind, type Task, type TaskDataField, type TaskKind, type TaskNode, type ThemeMode, type TimeScale, addDays, addHours, buildTaskTree, computeLayout, createPixelMapper, deriveViewport, deriveWeekNumbering, deriveWeekStartsOn, deriveWeekendDays, detectCycles, diffDays, diffHours, flattenTree, formatLabel, formatWeekNumber, gridColumnDefaults, gridNaturalWidth, gridTemplateColumns, isParent, parseDate, resolveChartLocale, routeLinks, validateLinkRefs, visibleColumns };
652
+ export { BAR_HEIGHT, BAR_Y_OFFSET, type BarLayout, type ChartLocale, DEFAULT_GRID_COLUMNS, DENSITY, EN_US_LABELS, GRID_COLUMN_FR_MIN_WIDTH, type GanttCallbacks, GanttChart, GanttError, type GanttErrorCode, type GanttInput, type GanttInputRaw, type GanttInstance, type GanttOptions, type GridColumn, type Link, type LinkType, type LocaleLabelKey, MILESTONE_HALF, MILESTONE_SIZE, type OnExpandCollapse, type OnExpandCollapseAll, type OnLinkClick, type OnLinkCreate, type OnLinkDblClick, type OnProgressChange, type OnTaskAdd, type OnTaskClick, type OnTaskDoubleClick, type OnTaskMove, type OnTaskResize, type OnTooltipText, type PixelMapper, type Point, ROW_HEIGHT, type RoutedLink, SCALE_CONFIGS, type ScaleConfig, type SpecialDay, type SpecialDayKind, type Task, type TaskDataField, type TaskKind, type TaskNode, type ThemeMode, type TimeScale, addDays, addHours, buildTaskTree, computeLayout, createPixelMapper, deriveViewport, deriveWeekNumbering, deriveWeekStartsOn, deriveWeekendDays, detectCycles, diffDays, diffHours, flattenTree, formatLabel, formatWeekNumber, gridColumnDefaults, gridNaturalWidth, gridTemplateColumns, isParent, parseDate, resolveChartLocale, routeLinks, validateLinkRefs, visibleColumns };
670
653
  //# sourceMappingURL=index.d.mts.map