@worktile/gantt 18.0.5 → 18.1.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/class/item.d.ts +2 -2
  2. package/class/view-type.d.ts +0 -4
  3. package/components/calendar/grid/calendar-grid.component.d.ts +0 -2
  4. package/components/calendar/header/calendar-header.component.d.ts +0 -2
  5. package/components/toolbar/toolbar.component.d.ts +6 -5
  6. package/esm2022/class/item.mjs +1 -1
  7. package/esm2022/class/view-type.mjs +1 -23
  8. package/esm2022/components/bar/bar-drag.mjs +3 -3
  9. package/esm2022/components/calendar/grid/calendar-grid.component.mjs +3 -7
  10. package/esm2022/components/calendar/header/calendar-header.component.mjs +4 -7
  11. package/esm2022/components/toolbar/toolbar.component.mjs +6 -7
  12. package/esm2022/gantt-upper.mjs +18 -16
  13. package/esm2022/gantt.component.mjs +1 -1
  14. package/esm2022/gantt.config.mjs +55 -12
  15. package/esm2022/gantt.module.mjs +23 -20
  16. package/esm2022/gantt.pipe.mjs +16 -1
  17. package/esm2022/i18n/i18n.mjs +12 -0
  18. package/esm2022/i18n/index.mjs +18 -0
  19. package/esm2022/i18n/locales/de-de.mjs +51 -0
  20. package/esm2022/i18n/locales/en-us.mjs +49 -0
  21. package/esm2022/i18n/locales/ja-jp.mjs +49 -0
  22. package/esm2022/i18n/locales/ru-ru.mjs +51 -0
  23. package/esm2022/i18n/locales/zh-hans.mjs +49 -0
  24. package/esm2022/i18n/locales/zh-hant.mjs +49 -0
  25. package/esm2022/public-api.mjs +2 -1
  26. package/esm2022/root.component.mjs +2 -2
  27. package/esm2022/utils/date.mjs +12 -4
  28. package/esm2022/views/day.mjs +6 -4
  29. package/esm2022/views/hour.mjs +5 -3
  30. package/esm2022/views/month.mjs +6 -4
  31. package/esm2022/views/quarter.mjs +6 -4
  32. package/esm2022/views/view.mjs +2 -3
  33. package/esm2022/views/week.mjs +6 -4
  34. package/esm2022/views/year.mjs +5 -3
  35. package/fesm2022/worktile-gantt.mjs +459 -113
  36. package/fesm2022/worktile-gantt.mjs.map +1 -1
  37. package/gantt-upper.d.ts +5 -3
  38. package/gantt.component.d.ts +1 -1
  39. package/gantt.config.d.ts +20 -0
  40. package/gantt.module.d.ts +3 -4
  41. package/gantt.pipe.d.ts +5 -0
  42. package/i18n/i18n.d.ts +23 -0
  43. package/i18n/index.d.ts +10 -0
  44. package/i18n/locales/de-de.d.ts +49 -0
  45. package/i18n/locales/en-us.d.ts +48 -0
  46. package/i18n/locales/ja-jp.d.ts +48 -0
  47. package/i18n/locales/ru-ru.d.ts +49 -0
  48. package/i18n/locales/zh-hans.d.ts +48 -0
  49. package/i18n/locales/zh-hant.d.ts +48 -0
  50. package/package.json +3 -2
  51. package/public-api.d.ts +1 -0
  52. package/root.component.d.ts +1 -1
  53. package/utils/date.d.ts +4 -1
  54. package/views/factory.d.ts +1 -1
  55. package/views/view.d.ts +9 -0
@@ -2,13 +2,15 @@ import * as i1 from '@angular/cdk/drag-drop';
2
2
  import { CdkDrag, CdkDropList, CdkDragHandle, DragDropModule } from '@angular/cdk/drag-drop';
3
3
  import * as i1$1 from '@angular/cdk/scrolling';
4
4
  import { CdkScrollable, CdkVirtualScrollViewport, CdkFixedSizeVirtualScroll, CdkVirtualForOf, ScrollingModule } from '@angular/cdk/scrolling';
5
- import { isPlatformServer, NgIf, NgTemplateOutlet, NgFor, NgStyle, NgClass, DOCUMENT, CommonModule } from '@angular/common';
5
+ import { isPlatformServer, NgIf, NgTemplateOutlet, NgStyle, NgFor, NgClass, DOCUMENT, CommonModule } from '@angular/common';
6
6
  import * as i0 from '@angular/core';
7
- import { InjectionToken, EventEmitter, Directive, Inject, Input, Output, ContentChild, HostBinding, Injectable, signal, PLATFORM_ID, effect, Component, ViewChild, ViewChildren, Pipe, ElementRef, Optional, HostListener, forwardRef, ChangeDetectionStrategy, ContentChildren, NgModule } from '@angular/core';
7
+ import { InjectionToken, inject, Injectable, Inject, EventEmitter, Directive, Input, Output, ContentChild, HostBinding, signal, PLATFORM_ID, effect, Component, ViewChild, ViewChildren, Pipe, ElementRef, Optional, HostListener, forwardRef, ChangeDetectionStrategy, ContentChildren, NgModule } from '@angular/core';
8
8
  import { fromUnixTime, getWeek, getDaysInMonth, differenceInCalendarDays, setDate, addSeconds, addMinutes, addHours, addDays, addWeeks, addMonths, addQuarters, addYears, startOfMinute, startOfHour, startOfDay, startOfWeek, startOfMonth, startOfQuarter, startOfYear, endOfMinute, endOfHour, endOfDay, endOfWeek, endOfMonth, endOfQuarter, endOfYear, getUnixTime, format, isWeekend, isToday, differenceInHours, differenceInMinutes, differenceInDays, differenceInCalendarQuarters, eachMonthOfInterval, eachYearOfInterval, eachWeekOfInterval, eachDayOfInterval, differenceInCalendarYears, eachHourOfInterval, setDefaultOptions } from 'date-fns';
9
9
  export { addDays, addHours, addMinutes, addMonths, addQuarters, addSeconds, addWeeks, addYears, differenceInCalendarDays, differenceInCalendarQuarters, differenceInDays, differenceInMinutes, eachDayOfInterval, eachHourOfInterval, eachMonthOfInterval, eachWeekOfInterval, endOfDay, endOfHour, endOfMinute, endOfMonth, endOfQuarter, endOfWeek, endOfYear, format, fromUnixTime, getDaysInMonth, getUnixTime, getWeek, isToday, isWeekend, setDate, startOfDay, startOfHour, startOfMinute, startOfMonth, startOfQuarter, startOfWeek, startOfYear } from 'date-fns';
10
10
  import { BehaviorSubject, Subject, from, fromEvent, merge, Observable, EMPTY, interval, animationFrameScheduler, take as take$1, takeUntil as takeUntil$1, combineLatest, startWith as startWith$1, auditTime as auditTime$1, filter } from 'rxjs';
11
11
  import { take, takeUntil, skip, map, pairwise, auditTime, startWith, switchMap, debounceTime, finalize } from 'rxjs/operators';
12
+ import { TZDate } from '@date-fns/tz';
13
+ import { de, ru } from 'date-fns/locale';
12
14
  import { SelectionModel } from '@angular/cdk/collections';
13
15
  import { coerceBooleanProperty, coerceCssPixelValue } from '@angular/cdk/coercion';
14
16
  import { __decorate, __param } from 'tslib';
@@ -51,6 +53,13 @@ class GanttTableDragEnterPredicateContext {
51
53
  class GanttVirtualScrolledIndexChangeEvent {
52
54
  }
53
55
 
56
+ let timeZone;
57
+ function setDefaultTimeZone(zone) {
58
+ timeZone = zone ?? undefined;
59
+ }
60
+ function getDefaultTimeZone() {
61
+ return timeZone;
62
+ }
54
63
  class GanttDate {
55
64
  constructor(date) {
56
65
  if (date) {
@@ -59,10 +68,10 @@ class GanttDate {
59
68
  }
60
69
  else if (typeof date === 'string' || typeof date === 'number') {
61
70
  if (date.toString().length < 13) {
62
- this.value = fromUnixTime(+date);
71
+ this.value = new TZDate(fromUnixTime(+date), timeZone);
63
72
  }
64
73
  else {
65
- this.value = new Date(date);
74
+ this.value = new TZDate(date, timeZone);
66
75
  }
67
76
  }
68
77
  else {
@@ -71,7 +80,7 @@ class GanttDate {
71
80
  }
72
81
  }
73
82
  else {
74
- this.value = new Date();
83
+ this.value = new TZDate(new Date(), timeZone);
75
84
  }
76
85
  }
77
86
  getYear() {
@@ -348,28 +357,6 @@ var GanttViewType;
348
357
  GanttViewType["week"] = "week";
349
358
  GanttViewType["hour"] = "hour";
350
359
  })(GanttViewType || (GanttViewType = {}));
351
- const ganttViews = [
352
- {
353
- name: '日',
354
- value: GanttViewType.day
355
- },
356
- {
357
- name: '周',
358
- value: GanttViewType.week
359
- },
360
- {
361
- name: '月',
362
- value: GanttViewType.month
363
- },
364
- {
365
- name: '季',
366
- value: GanttViewType.quarter
367
- },
368
- {
369
- name: '年',
370
- value: GanttViewType.year
371
- }
372
- ];
373
360
 
374
361
  class GanttBaselineItemInternal {
375
362
  get refs() {
@@ -387,36 +374,11 @@ class GanttBaselineItemInternal {
387
374
  }
388
375
  }
389
376
 
390
- const defaultConfig = {
391
- dateFormat: {
392
- hour: 'HH:mm',
393
- day: 'M月d日',
394
- week: '第w周',
395
- month: 'M月',
396
- quarter: 'QQQ',
397
- year: 'yyyy年',
398
- yearMonth: 'yyyy年MM月',
399
- yearQuarter: 'yyyy年QQQ'
400
- },
401
- linkOptions: {
402
- dependencyTypes: [GanttLinkType.fs],
403
- showArrow: false,
404
- lineType: GanttLinkLineType.curve
405
- },
406
- styleOptions: {
407
- headerHeight: 44,
408
- lineHeight: 44,
409
- barHeight: 22
410
- }
411
- };
412
- const GANTT_GLOBAL_CONFIG = new InjectionToken('GANTT_GLOBAL_CONFIG');
413
-
414
377
  const primaryDatePointTop = '40%';
415
378
  const secondaryDatePointTop = '80%';
416
379
  const viewOptions$6 = {
417
380
  min: new GanttDate().addYears(-1).startOfYear(),
418
381
  max: new GanttDate().addYears(1).endOfYear(),
419
- dateFormat: defaultConfig.dateFormat,
420
382
  datePrecisionUnit: 'day',
421
383
  dragPreviewDateFormat: 'MM-dd'
422
384
  };
@@ -429,6 +391,7 @@ class GanttView {
429
391
  }
430
392
  constructor(start, end, options) {
431
393
  this.showTimeline = true;
394
+ this.dateFormats = {};
432
395
  this.options = Object.assign({}, viewOptions$6, options);
433
396
  const startDate = start.isCustom
434
397
  ? this.viewStartOf(start.date)
@@ -585,12 +548,317 @@ class GanttView {
585
548
  }
586
549
  }
587
550
 
551
+ var GanttI18nLocale;
552
+ (function (GanttI18nLocale) {
553
+ GanttI18nLocale["zhHans"] = "zh-hans";
554
+ GanttI18nLocale["zhHant"] = "zh-hant";
555
+ GanttI18nLocale["enUs"] = "en-us";
556
+ GanttI18nLocale["deDe"] = "de-de";
557
+ GanttI18nLocale["jaJp"] = "ja-jp";
558
+ GanttI18nLocale["ruRu"] = "ru-ru";
559
+ })(GanttI18nLocale || (GanttI18nLocale = {}));
560
+ const GANTT_I18N_LOCALE_TOKEN = new InjectionToken('gantt-i18n-locale');
561
+
562
+ var zhHans = {
563
+ id: GanttI18nLocale.zhHans,
564
+ views: {
565
+ [GanttViewType.hour]: {
566
+ label: '小时',
567
+ dateFormats: {
568
+ primary: 'M月d日',
569
+ secondary: 'HH:mm'
570
+ }
571
+ },
572
+ [GanttViewType.day]: {
573
+ label: '天',
574
+ dateFormats: {
575
+ primary: 'yyyy年MM月',
576
+ secondary: 'd'
577
+ }
578
+ },
579
+ [GanttViewType.week]: {
580
+ label: '周',
581
+ dateFormats: {
582
+ primary: 'yyyy年',
583
+ secondary: '第w周'
584
+ }
585
+ },
586
+ [GanttViewType.month]: {
587
+ label: '月',
588
+ dateFormats: {
589
+ primary: `yyyy年'Q'Q`,
590
+ secondary: 'M月'
591
+ }
592
+ },
593
+ [GanttViewType.quarter]: {
594
+ label: '季',
595
+ dateFormats: {
596
+ primary: 'yyyy年',
597
+ secondary: `yyyy年'Q'Q`
598
+ }
599
+ },
600
+ [GanttViewType.year]: {
601
+ label: '年',
602
+ dateFormats: {
603
+ secondary: 'yyyy年'
604
+ }
605
+ }
606
+ }
607
+ };
608
+
609
+ var zhHant = {
610
+ id: GanttI18nLocale.zhHant,
611
+ views: {
612
+ [GanttViewType.hour]: {
613
+ label: '小時',
614
+ dateFormats: {
615
+ primary: 'M月d日',
616
+ secondary: 'HH:mm'
617
+ }
618
+ },
619
+ [GanttViewType.day]: {
620
+ label: '天',
621
+ dateFormats: {
622
+ primary: 'yyyy年MM月',
623
+ secondary: 'd'
624
+ }
625
+ },
626
+ [GanttViewType.week]: {
627
+ label: '週',
628
+ dateFormats: {
629
+ primary: 'yyyy年',
630
+ secondary: '第w週'
631
+ }
632
+ },
633
+ [GanttViewType.month]: {
634
+ label: '月',
635
+ dateFormats: {
636
+ primary: `yyyy年'Q'Q`,
637
+ secondary: 'M月'
638
+ }
639
+ },
640
+ [GanttViewType.quarter]: {
641
+ label: '季',
642
+ dateFormats: {
643
+ primary: 'yyyy年',
644
+ secondary: `yyyy年'Q'Q`
645
+ }
646
+ },
647
+ [GanttViewType.year]: {
648
+ label: '年',
649
+ dateFormats: {
650
+ secondary: 'yyyy年'
651
+ }
652
+ }
653
+ }
654
+ };
655
+
656
+ var enUsLocale = {
657
+ id: GanttI18nLocale.enUs,
658
+ views: {
659
+ [GanttViewType.hour]: {
660
+ label: 'Hourly',
661
+ dateFormats: {
662
+ primary: 'MMM d',
663
+ secondary: 'HH:mm'
664
+ }
665
+ },
666
+ [GanttViewType.day]: {
667
+ label: 'Daily',
668
+ dateFormats: {
669
+ primary: 'MMM yyyy',
670
+ secondary: 'd'
671
+ }
672
+ },
673
+ [GanttViewType.week]: {
674
+ label: 'Weekly',
675
+ dateFormats: {
676
+ primary: 'yyyy',
677
+ secondary: 'wo'
678
+ }
679
+ },
680
+ [GanttViewType.month]: {
681
+ label: 'Monthly',
682
+ dateFormats: {
683
+ primary: "yyyy 'Q'Q",
684
+ secondary: 'MMM'
685
+ }
686
+ },
687
+ [GanttViewType.quarter]: {
688
+ label: 'Quarterly',
689
+ dateFormats: {
690
+ primary: 'yyyy',
691
+ secondary: "yyyy 'Q'Q"
692
+ }
693
+ },
694
+ [GanttViewType.year]: {
695
+ label: 'Yearly',
696
+ dateFormats: {
697
+ secondary: 'yyyy'
698
+ }
699
+ }
700
+ }
701
+ };
702
+
703
+ var jaJpLocale = {
704
+ id: GanttI18nLocale.jaJp,
705
+ views: {
706
+ [GanttViewType.hour]: {
707
+ label: '毎時',
708
+ dateFormats: {
709
+ primary: 'M月d日',
710
+ secondary: 'HH:mm'
711
+ }
712
+ },
713
+ [GanttViewType.day]: {
714
+ label: '日',
715
+ dateFormats: {
716
+ primary: 'yyyy年M月d日',
717
+ secondary: 'd'
718
+ }
719
+ },
720
+ [GanttViewType.week]: {
721
+ label: '週',
722
+ dateFormats: {
723
+ primary: 'yyyy年',
724
+ secondary: '第w週'
725
+ }
726
+ },
727
+ [GanttViewType.month]: {
728
+ label: '月',
729
+ dateFormats: {
730
+ primary: `yyyy年M月`,
731
+ secondary: 'M月'
732
+ }
733
+ },
734
+ [GanttViewType.quarter]: {
735
+ label: '四半期',
736
+ dateFormats: {
737
+ primary: 'yyyy年',
738
+ secondary: `yyyy年第Q四半期`
739
+ }
740
+ },
741
+ [GanttViewType.year]: {
742
+ label: '年',
743
+ dateFormats: {
744
+ secondary: 'yyyy年'
745
+ }
746
+ }
747
+ }
748
+ };
749
+
750
+ var deDeLocale = {
751
+ id: GanttI18nLocale.deDe,
752
+ dateLocale: de,
753
+ views: {
754
+ [GanttViewType.hour]: {
755
+ label: 'Stündlich',
756
+ dateFormats: {
757
+ primary: 'dd. MMM',
758
+ secondary: 'HH:mm'
759
+ }
760
+ },
761
+ [GanttViewType.day]: {
762
+ label: 'Täglich',
763
+ dateFormats: {
764
+ primary: 'MMM yyyy',
765
+ secondary: 'd'
766
+ }
767
+ },
768
+ [GanttViewType.week]: {
769
+ label: 'Wöchentlich',
770
+ dateFormats: {
771
+ primary: 'yyyy',
772
+ secondary: `w. 'Woche'`
773
+ }
774
+ },
775
+ [GanttViewType.month]: {
776
+ label: 'Monatlich',
777
+ dateFormats: {
778
+ primary: 'MMM yyyy',
779
+ secondary: 'MMM'
780
+ }
781
+ },
782
+ [GanttViewType.quarter]: {
783
+ label: 'Vierteljährlich',
784
+ dateFormats: {
785
+ primary: 'yyyy',
786
+ secondary: `Q. 'Quartal' yyyy`
787
+ }
788
+ },
789
+ [GanttViewType.year]: {
790
+ label: 'Jährlich',
791
+ dateFormats: {
792
+ secondary: 'yyyy'
793
+ }
794
+ }
795
+ }
796
+ };
797
+
798
+ var ruRuLocale = {
799
+ id: GanttI18nLocale.ruRu,
800
+ dateLocale: ru,
801
+ views: {
802
+ [GanttViewType.hour]: {
803
+ label: 'Ежечасно',
804
+ dateFormats: {
805
+ primary: 'd MMM',
806
+ secondary: 'HH:mm'
807
+ }
808
+ },
809
+ [GanttViewType.day]: {
810
+ label: 'Ежедневно',
811
+ dateFormats: {
812
+ primary: 'MMMM yyyy',
813
+ secondary: 'd'
814
+ }
815
+ },
816
+ [GanttViewType.week]: {
817
+ label: 'Еженедельно',
818
+ dateFormats: {
819
+ primary: 'yyyy',
820
+ secondary: 'Неделя w'
821
+ }
822
+ },
823
+ [GanttViewType.month]: {
824
+ label: 'Ежемесячно',
825
+ dateFormats: {
826
+ primary: 'MMMM yyyy',
827
+ secondary: 'MMM'
828
+ }
829
+ },
830
+ [GanttViewType.quarter]: {
831
+ label: 'Ежеквартально',
832
+ dateFormats: {
833
+ primary: 'yyyy',
834
+ secondary: 'Квартал Q yyyy'
835
+ }
836
+ },
837
+ [GanttViewType.year]: {
838
+ label: 'Ежегодно',
839
+ dateFormats: {
840
+ secondary: 'yyyy'
841
+ }
842
+ }
843
+ }
844
+ };
845
+
846
+ const i18nLocaleProvides = [
847
+ { provide: GANTT_I18N_LOCALE_TOKEN, useValue: zhHans, multi: true },
848
+ { provide: GANTT_I18N_LOCALE_TOKEN, useValue: zhHant, multi: true },
849
+ { provide: GANTT_I18N_LOCALE_TOKEN, useValue: enUsLocale, multi: true },
850
+ { provide: GANTT_I18N_LOCALE_TOKEN, useValue: jaJpLocale, multi: true },
851
+ { provide: GANTT_I18N_LOCALE_TOKEN, useValue: deDeLocale, multi: true },
852
+ { provide: GANTT_I18N_LOCALE_TOKEN, useValue: ruRuLocale, multi: true }
853
+ ];
854
+
588
855
  const viewOptions$5 = {
589
856
  start: new GanttDate().startOfQuarter().addQuarters(-1),
590
857
  end: new GanttDate().endOfQuarter().addQuarters(2),
591
858
  cellWidth: 280,
592
859
  addAmount: 1,
593
- addUnit: 'quarter'
860
+ addUnit: 'quarter',
861
+ dateDisplayFormats: zhHant.views.month.dateFormats
594
862
  };
595
863
  class GanttViewMonth extends GanttView {
596
864
  constructor(start, end, options) {
@@ -614,7 +882,7 @@ class GanttViewMonth extends GanttView {
614
882
  const points = [];
615
883
  for (let i = 0; i < quarters; i++) {
616
884
  const start = this.start.addQuarters(i);
617
- const point = new GanttDatePoint(start, start.format(this.options.dateFormat.yearQuarter), (this.getCellWidth() * 3) / 2 + i * (this.getCellWidth() * 3), primaryDatePointTop);
885
+ const point = new GanttDatePoint(start, start.format(this.options.dateFormat?.yearQuarter || this.options.dateDisplayFormats.primary), (this.getCellWidth() * 3) / 2 + i * (this.getCellWidth() * 3), primaryDatePointTop);
618
886
  points.push(point);
619
887
  }
620
888
  return points;
@@ -624,7 +892,7 @@ class GanttViewMonth extends GanttView {
624
892
  const points = [];
625
893
  for (let i = 0; i < months.length; i++) {
626
894
  const start = new GanttDate(months[i]);
627
- const point = new GanttDatePoint(start, start.format(this.options.dateFormat.month), i * this.getCellWidth() + this.getCellWidth() / 2, secondaryDatePointTop);
895
+ const point = new GanttDatePoint(start, start.format(this.options.dateFormat?.month || this.options.dateDisplayFormats.secondary), i * this.getCellWidth() + this.getCellWidth() / 2, secondaryDatePointTop);
628
896
  points.push(point);
629
897
  }
630
898
  return points;
@@ -638,7 +906,8 @@ const viewOptions$4 = {
638
906
  max: new GanttDate().addYears(2).endOfYear(),
639
907
  cellWidth: 500,
640
908
  addAmount: 1,
641
- addUnit: 'year'
909
+ addUnit: 'year',
910
+ dateDisplayFormats: zhHant.views.quarter.dateFormats
642
911
  };
643
912
  class GanttViewQuarter extends GanttView {
644
913
  constructor(start, end, options) {
@@ -662,7 +931,7 @@ class GanttViewQuarter extends GanttView {
662
931
  const points = [];
663
932
  for (let i = 0; i < years.length; i++) {
664
933
  const start = new GanttDate(years[i]);
665
- const point = new GanttDatePoint(start, `${start.format(this.options.dateFormat.year)}`, (this.getCellWidth() * 4) / 2 + i * (this.getCellWidth() * 4), primaryDatePointTop);
934
+ const point = new GanttDatePoint(start, `${start.format(this.options.dateFormat?.year || this.options.dateDisplayFormats.primary)}`, (this.getCellWidth() * 4) / 2 + i * (this.getCellWidth() * 4), primaryDatePointTop);
666
935
  points.push(point);
667
936
  }
668
937
  return points;
@@ -672,7 +941,7 @@ class GanttViewQuarter extends GanttView {
672
941
  const points = [];
673
942
  for (let i = 0; i <= quarters; i++) {
674
943
  const start = this.start.addQuarters(i);
675
- const point = new GanttDatePoint(start, start.format(this.options.dateFormat.quarter), i * this.getCellWidth() + this.getCellWidth() / 2, secondaryDatePointTop);
944
+ const point = new GanttDatePoint(start, start.format(this.options.dateFormat?.quarter || this.options.dateDisplayFormats.secondary), i * this.getCellWidth() + this.getCellWidth() / 2, secondaryDatePointTop);
676
945
  points.push(point);
677
946
  }
678
947
  return points;
@@ -684,7 +953,8 @@ const viewOptions$3 = {
684
953
  start: new GanttDate().startOfYear().startOfWeek(),
685
954
  end: new GanttDate().endOfYear().endOfWeek(),
686
955
  addAmount: 1,
687
- addUnit: 'month'
956
+ addUnit: 'month',
957
+ dateDisplayFormats: zhHant.views.day.dateFormats
688
958
  };
689
959
  class GanttViewDay extends GanttView {
690
960
  constructor(start, end, options) {
@@ -711,7 +981,7 @@ class GanttViewDay extends GanttView {
711
981
  for (let i = 0; i < weeks.length; i++) {
712
982
  const weekStart = new GanttDate(weeks[i]);
713
983
  const increaseWeek = weekStart.getDaysInMonth() - weekStart.getDate() >= 3 ? 0 : 1;
714
- const point = new GanttDatePoint(weekStart, weekStart.addWeeks(increaseWeek).format(this.options.dateFormat.yearMonth), (this.getCellWidth() * 7) / 2 + i * (this.getCellWidth() * 7), primaryDatePointTop);
984
+ const point = new GanttDatePoint(weekStart, weekStart.addWeeks(increaseWeek).format(this.options.dateFormat?.yearMonth || this.options.dateDisplayFormats.primary), (this.getCellWidth() * 7) / 2 + i * (this.getCellWidth() * 7), primaryDatePointTop);
715
985
  points.push(point);
716
986
  }
717
987
  return points;
@@ -721,7 +991,7 @@ class GanttViewDay extends GanttView {
721
991
  const points = [];
722
992
  for (let i = 0; i < days.length; i++) {
723
993
  const start = new GanttDate(days[i]);
724
- const point = new GanttDatePoint(start, start.getDate().toString(), i * this.getCellWidth() + this.getCellWidth() / 2, secondaryDatePointTop, {
994
+ const point = new GanttDatePoint(start, start.format(this.options.dateDisplayFormats.secondary) || start.getDate().toString(), i * this.getCellWidth() + this.getCellWidth() / 2, secondaryDatePointTop, {
725
995
  isWeekend: start.isWeekend(),
726
996
  isToday: start.isToday()
727
997
  });
@@ -736,7 +1006,8 @@ const viewOptions$2 = {
736
1006
  start: new GanttDate().startOfYear().startOfWeek(),
737
1007
  end: new GanttDate().endOfYear().endOfWeek(),
738
1008
  addAmount: 1,
739
- addUnit: 'month'
1009
+ addUnit: 'month',
1010
+ dateDisplayFormats: zhHant.views.week.dateFormats
740
1011
  };
741
1012
  class GanttViewWeek extends GanttView {
742
1013
  constructor(start, end, options) {
@@ -761,7 +1032,7 @@ class GanttViewWeek extends GanttView {
761
1032
  for (let i = 0; i < weeks.length; i++) {
762
1033
  const weekStart = new GanttDate(weeks[i]);
763
1034
  const increaseWeek = weekStart.getDaysInMonth() - weekStart.getDate() >= 3 ? 0 : 1;
764
- const point = new GanttDatePoint(weekStart, weekStart.addWeeks(increaseWeek).format(this.options.dateFormat.year), this.getCellWidth() / 2 + i * this.getCellWidth(), primaryDatePointTop);
1035
+ const point = new GanttDatePoint(weekStart, weekStart.addWeeks(increaseWeek).format(this.options.dateFormat?.year || this.options.dateDisplayFormats.primary), this.getCellWidth() / 2 + i * this.getCellWidth(), primaryDatePointTop);
765
1036
  points.push(point);
766
1037
  }
767
1038
  return points;
@@ -771,7 +1042,7 @@ class GanttViewWeek extends GanttView {
771
1042
  const points = [];
772
1043
  for (let i = 0; i < weeks.length; i++) {
773
1044
  const start = new GanttDate(weeks[i]);
774
- const point = new GanttDatePoint(start, `${start.format(this.options.dateFormat.week)}`, i * this.getCellWidth() + this.getCellWidth() / 2, secondaryDatePointTop);
1045
+ const point = new GanttDatePoint(start, `${start.format(this.options.dateFormat?.week || this.options.dateDisplayFormats.secondary)}`, i * this.getCellWidth() + this.getCellWidth() / 2, secondaryDatePointTop);
775
1046
  points.push(point);
776
1047
  }
777
1048
  return points;
@@ -783,7 +1054,8 @@ const viewOptions$1 = {
783
1054
  start: new GanttDate().addYears(-2).startOfYear(),
784
1055
  end: new GanttDate().addYears(2).endOfYear(),
785
1056
  addAmount: 1,
786
- addUnit: 'year'
1057
+ addUnit: 'year',
1058
+ dateDisplayFormats: zhHant.views.year.dateFormats
787
1059
  };
788
1060
  class GanttViewYear extends GanttView {
789
1061
  constructor(start, end, options) {
@@ -818,7 +1090,7 @@ class GanttViewYear extends GanttView {
818
1090
  const pointTop = '60%';
819
1091
  for (let i = 0; i <= years; i++) {
820
1092
  const start = this.start.addYears(i);
821
- const point = new GanttDatePoint(start, `${start.format(this.options.dateFormat.year)}`, i * this.getCellWidth() + this.getCellWidth() / 2, pointTop);
1093
+ const point = new GanttDatePoint(start, `${start.format(this.options.dateFormat?.year || this.options.dateDisplayFormats.secondary || this.options.dateDisplayFormats.primary)}`, i * this.getCellWidth() + this.getCellWidth() / 2, pointTop);
822
1094
  points.push(point);
823
1095
  }
824
1096
  return points;
@@ -832,6 +1104,7 @@ const viewOptions = {
832
1104
  datePrecisionUnit: 'minute',
833
1105
  addAmount: 1,
834
1106
  addUnit: 'week',
1107
+ dateDisplayFormats: zhHant.views.hour.dateFormats,
835
1108
  dragPreviewDateFormat: 'HH:mm'
836
1109
  };
837
1110
  class GanttViewHour extends GanttView {
@@ -861,7 +1134,7 @@ class GanttViewHour extends GanttView {
861
1134
  const points = [];
862
1135
  for (let i = 0; i < days.length; i++) {
863
1136
  const start = this.start.addDays(i);
864
- const point = new GanttDatePoint(start, start.format(this.options.dateFormat.day), (this.getCellWidth() * 24) / 2 + i * (this.getCellWidth() * 24), primaryDatePointTop);
1137
+ const point = new GanttDatePoint(start, start.format(this.options.dateFormat?.day || this.options.dateDisplayFormats.primary), (this.getCellWidth() * 24) / 2 + i * (this.getCellWidth() * 24), primaryDatePointTop);
865
1138
  points.push(point);
866
1139
  }
867
1140
  return points;
@@ -871,7 +1144,7 @@ class GanttViewHour extends GanttView {
871
1144
  const points = [];
872
1145
  for (let i = 0; i < hours.length; i++) {
873
1146
  const start = new GanttDate(hours[i]);
874
- const point = new GanttDatePoint(start, start.format(this.options.dateFormat.hour), i * this.getCellWidth() + this.getCellWidth() / 2, secondaryDatePointTop, {
1147
+ const point = new GanttDatePoint(start, start.format(this.options.dateFormat?.hour || this.options.dateDisplayFormats.secondary), i * this.getCellWidth() + this.getCellWidth() / 2, secondaryDatePointTop, {
875
1148
  isWeekend: start.isWeekend(),
876
1149
  isToday: start.isToday()
877
1150
  });
@@ -996,12 +1269,73 @@ function keyBy(array, key) {
996
1269
  return result;
997
1270
  }
998
1271
 
1272
+ const defaultConfig = {
1273
+ locale: GanttI18nLocale.zhHans,
1274
+ linkOptions: {
1275
+ dependencyTypes: [GanttLinkType.fs],
1276
+ showArrow: false,
1277
+ lineType: GanttLinkLineType.curve
1278
+ },
1279
+ styleOptions: {
1280
+ headerHeight: 44,
1281
+ lineHeight: 44,
1282
+ barHeight: 22
1283
+ },
1284
+ dateOptions: {
1285
+ weekStartsOn: 1
1286
+ }
1287
+ };
1288
+ const GANTT_GLOBAL_CONFIG = new InjectionToken('GANTT_GLOBAL_CONFIG');
1289
+ class GanttConfigService {
1290
+ constructor(globalConfig) {
1291
+ const localeId = globalConfig.locale || defaultConfig.locale;
1292
+ this.config = {
1293
+ locale: localeId,
1294
+ dateFormat: Object.assign({}, defaultConfig.dateFormat, globalConfig.dateFormat),
1295
+ styleOptions: Object.assign({}, defaultConfig.styleOptions, globalConfig.styleOptions),
1296
+ linkOptions: Object.assign({}, defaultConfig.linkOptions, globalConfig.linkOptions),
1297
+ dateOptions: Object.assign({}, defaultConfig.dateOptions, globalConfig.dateOptions)
1298
+ };
1299
+ this.i18nLocales = inject(GANTT_I18N_LOCALE_TOKEN).reduce((result, localeConfig) => {
1300
+ result[localeConfig.id] = localeConfig; // 这里使用 `id` 作为 key
1301
+ return result;
1302
+ }, {
1303
+ ['zh-cn']: zhHans,
1304
+ ['zh-tw']: zhHant
1305
+ });
1306
+ if (this.config.dateOptions?.timeZone) {
1307
+ setDefaultTimeZone(this.config.dateOptions.timeZone);
1308
+ }
1309
+ }
1310
+ setLocale(locale) {
1311
+ this.config.locale = locale;
1312
+ }
1313
+ getLocaleConfig() {
1314
+ return this.i18nLocales[this.config.locale] ?? this.i18nLocales[this.config.locale.toLowerCase()] ?? zhHans;
1315
+ }
1316
+ getViewsLocale() {
1317
+ return this.getLocaleConfig().views;
1318
+ }
1319
+ getDateLocale() {
1320
+ return this.config.dateOptions?.locale ?? this.getLocaleConfig().dateLocale;
1321
+ }
1322
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GanttConfigService, deps: [{ token: GANTT_GLOBAL_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable }); }
1323
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GanttConfigService, providedIn: 'root' }); }
1324
+ }
1325
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GanttConfigService, decorators: [{
1326
+ type: Injectable,
1327
+ args: [{ providedIn: 'root' }]
1328
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
1329
+ type: Inject,
1330
+ args: [GANTT_GLOBAL_CONFIG]
1331
+ }] }] });
1332
+
999
1333
  class GanttUpper {
1000
1334
  set linkOptions(options) {
1001
1335
  this._linkOptions = options;
1002
1336
  }
1003
1337
  get linkOptions() {
1004
- return Object.assign({}, defaultConfig.linkOptions, this.config.linkOptions, this._linkOptions);
1338
+ return Object.assign({}, this.configService.config.linkOptions, this._linkOptions);
1005
1339
  }
1006
1340
  set selectable(value) {
1007
1341
  this._selectable = coerceBooleanProperty(value);
@@ -1028,7 +1362,8 @@ class GanttUpper {
1028
1362
  get element() {
1029
1363
  return this.elementRef.nativeElement;
1030
1364
  }
1031
- constructor(elementRef, cdr, ngZone, config) {
1365
+ constructor(elementRef, cdr, ngZone, // @Inject(GANTT_GLOBAL_CONFIG) public config: GanttGlobalConfig
1366
+ config) {
1032
1367
  this.elementRef = elementRef;
1033
1368
  this.cdr = cdr;
1034
1369
  this.ngZone = ngZone;
@@ -1054,6 +1389,7 @@ class GanttUpper {
1054
1389
  this.barClick = new EventEmitter();
1055
1390
  this.viewChange = new EventEmitter();
1056
1391
  this.expandChange = new EventEmitter();
1392
+ this.configService = inject(GanttConfigService);
1057
1393
  this.computeAllRefs = true;
1058
1394
  this.linkDragEnded = new EventEmitter();
1059
1395
  this.items = [];
@@ -1068,8 +1404,10 @@ class GanttUpper {
1068
1404
  }
1069
1405
  createView() {
1070
1406
  const viewDate = this.getViewDate();
1071
- this.viewOptions.dateFormat = Object.assign({}, defaultConfig.dateFormat, this.config.dateFormat, this.viewOptions.dateFormat);
1072
- this.viewOptions.styleOptions = Object.assign({}, defaultConfig.styleOptions, this.config.styleOptions, this.viewOptions.styleOptions);
1407
+ this.styles = Object.assign({}, this.configService.config.styleOptions, this.styles);
1408
+ this.viewOptions.dateFormat = Object.assign({}, this.configService.config.dateFormat, this.viewOptions.dateFormat);
1409
+ this.viewOptions.styleOptions = Object.assign({}, this.configService.config.styleOptions, this.viewOptions.styleOptions);
1410
+ this.viewOptions.dateDisplayFormats = this.configService.getViewsLocale()[this.viewType]?.dateFormats;
1073
1411
  this.view = createViewFactory(this.viewType, viewDate.start, viewDate.end, this.viewOptions);
1074
1412
  }
1075
1413
  setupGroups() {
@@ -1138,10 +1476,12 @@ class GanttUpper {
1138
1476
  if (!this.start || !this.end) {
1139
1477
  this.originItems.forEach((item) => {
1140
1478
  if (item.start && !this.start) {
1141
- start = start ? Math.min(start, item.start) : item.start;
1479
+ const itemStart = item.start instanceof Date ? getUnixTime(item.start) : item.start;
1480
+ start = start ? Math.min(start, itemStart) : itemStart;
1142
1481
  }
1143
1482
  if (item.end && !this.end) {
1144
- end = end ? Math.max(end, item.end) : item.end;
1483
+ const itemEnd = item.start instanceof Date ? getUnixTime(item.start) : item.start;
1484
+ end = end ? Math.max(end, itemEnd) : itemEnd;
1145
1485
  }
1146
1486
  });
1147
1487
  }
@@ -1177,7 +1517,6 @@ class GanttUpper {
1177
1517
  this.cdr.detectChanges();
1178
1518
  }
1179
1519
  ngOnInit() {
1180
- this.styles = Object.assign({}, defaultConfig.styleOptions, this.config.styleOptions, this.styles);
1181
1520
  this.createView();
1182
1521
  this.setupGroups();
1183
1522
  this.setupItems();
@@ -1298,15 +1637,12 @@ class GanttUpper {
1298
1637
  rerenderView() {
1299
1638
  this.changeView(this.viewType);
1300
1639
  }
1301
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GanttUpper, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: GANTT_GLOBAL_CONFIG }], target: i0.ɵɵFactoryTarget.Directive }); }
1640
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GanttUpper, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
1302
1641
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0", type: GanttUpper, inputs: { originItems: ["items", "originItems"], originGroups: ["groups", "originGroups"], originBaselineItems: ["baselineItems", "originBaselineItems"], viewType: "viewType", start: "start", end: "end", showTodayLine: "showTodayLine", draggable: "draggable", styles: "styles", showToolbar: "showToolbar", toolbarOptions: "toolbarOptions", viewOptions: "viewOptions", linkOptions: "linkOptions", disabledLoadOnScroll: "disabledLoadOnScroll", selectable: "selectable", multiple: "multiple", quickTimeFocus: "quickTimeFocus" }, outputs: { loadOnScroll: "loadOnScroll", dragStarted: "dragStarted", dragMoved: "dragMoved", dragEnded: "dragEnded", barClick: "barClick", viewChange: "viewChange", expandChange: "expandChange" }, host: { properties: { "class.gantt": "this.ganttClass" } }, queries: [{ propertyName: "barTemplate", first: true, predicate: ["bar"], descendants: true, static: true }, { propertyName: "rangeTemplate", first: true, predicate: ["range"], descendants: true, static: true }, { propertyName: "itemTemplate", first: true, predicate: ["item"], descendants: true, static: true }, { propertyName: "baselineTemplate", first: true, predicate: ["baseline"], descendants: true, static: true }, { propertyName: "groupTemplate", first: true, predicate: ["group"], descendants: true, static: true }, { propertyName: "groupHeaderTemplate", first: true, predicate: ["groupHeader"], descendants: true, static: true }, { propertyName: "toolbarTemplate", first: true, predicate: ["toolbar"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0 }); }
1303
1642
  }
1304
1643
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GanttUpper, decorators: [{
1305
1644
  type: Directive
1306
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: undefined, decorators: [{
1307
- type: Inject,
1308
- args: [GANTT_GLOBAL_CONFIG]
1309
- }] }], propDecorators: { originItems: [{
1645
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: undefined }], propDecorators: { originItems: [{
1310
1646
  type: Input,
1311
1647
  args: ['items']
1312
1648
  }], originGroups: [{
@@ -1773,8 +2109,8 @@ class GanttBarDrag {
1773
2109
  createMouseEvents() {
1774
2110
  if (!this.hasMonitorMouseEvent && (!this.dragDisabled || !this.linkDragDisabled)) {
1775
2111
  this.hasMonitorMouseEvent = true;
1776
- const dropClass = this.ganttUpper.config.linkOptions?.dependencyTypes?.length === 1 &&
1777
- this.ganttUpper.config.linkOptions?.dependencyTypes[0] === GanttLinkType.fs
2112
+ const dropClass = this.ganttUpper.linkOptions?.dependencyTypes?.length === 1 &&
2113
+ this.ganttUpper.linkOptions?.dependencyTypes[0] === GanttLinkType.fs
1778
2114
  ? singleDropActiveClass
1779
2115
  : dropActiveClass;
1780
2116
  fromEvent(this.barElement, 'mouseenter', passiveListenerOptions)
@@ -2501,19 +2837,16 @@ class GanttCalendarGridComponent {
2501
2837
  });
2502
2838
  });
2503
2839
  }
2504
- trackBy(point, index) {
2505
- return point.text || index;
2506
- }
2507
2840
  ngOnDestroy() {
2508
2841
  this.unsubscribe$.next();
2509
2842
  this.unsubscribe$.complete();
2510
2843
  }
2511
2844
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GanttCalendarGridComponent, deps: [{ token: GANTT_UPPER_TOKEN }, { token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
2512
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: GanttCalendarGridComponent, isStandalone: true, selector: "gantt-calendar-grid", host: { properties: { "class": "this.className" } }, ngImport: i0, template: "<div class=\"gantt-calendar-today-overlay\" [style.width.px]=\"view.width\">\n <span class=\"today-line\" *ngIf=\"ganttUpper.showTodayLine\"> </span>\n</div>\n\n<svg class=\"gantt-calendar-grid-main\" [attr.width]=\"view.width\" [attr.height]=\"ganttUpper.styles.headerHeight - 1\">\n <g>\n <g *ngIf=\"view.showTimeline\">\n <line\n *ngFor=\"let point of view.secondaryDatePoints; let i = index; trackBy: trackBy\"\n [attr.x1]=\"(i + 1) * view.cellWidth\"\n [attr.x2]=\"(i + 1) * view.cellWidth\"\n [attr.y1]=\"0\"\n [attr.y2]=\"mainHeight\"\n class=\"secondary-line\"\n ></line>\n </g>\n <g>\n <line\n *ngFor=\"let point of view.primaryDatePoints; let i = index; trackBy: trackBy\"\n [attr.x1]=\"(i + 1) * view.primaryWidth\"\n [attr.x2]=\"(i + 1) * view.primaryWidth\"\n [attr.y1]=\"0\"\n [attr.y2]=\"mainHeight\"\n class=\"primary-line\"\n ></line>\n </g>\n </g>\n</svg>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
2845
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: GanttCalendarGridComponent, isStandalone: true, selector: "gantt-calendar-grid", host: { properties: { "class": "this.className" } }, ngImport: i0, template: "<div class=\"gantt-calendar-today-overlay\" [style.width.px]=\"view.width\">\n @if (ganttUpper.showTodayLine) {\n <span class=\"today-line\"> </span>\n }\n</div>\n\n<svg class=\"gantt-calendar-grid-main\" [attr.width]=\"view.width\" [attr.height]=\"ganttUpper.styles.headerHeight - 1\">\n <g>\n @if (view.showTimeline) {\n <g>\n @for (point of view.secondaryDatePoints; track point.x) {\n <line\n [attr.x1]=\"($index + 1) * view.cellWidth\"\n [attr.x2]=\"($index + 1) * view.cellWidth\"\n [attr.y1]=\"0\"\n [attr.y2]=\"mainHeight\"\n class=\"secondary-line\"\n ></line>\n }\n </g>\n }\n <g>\n @for (point of view.primaryDatePoints; track point.x) {\n <line\n [attr.x1]=\"($index + 1) * view.primaryWidth\"\n [attr.x2]=\"($index + 1) * view.primaryWidth\"\n [attr.y1]=\"0\"\n [attr.y2]=\"mainHeight\"\n class=\"primary-line\"\n ></line>\n }\n </g>\n </g>\n</svg>\n" }); }
2513
2846
  }
2514
2847
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GanttCalendarGridComponent, decorators: [{
2515
2848
  type: Component,
2516
- args: [{ selector: 'gantt-calendar-grid', standalone: true, imports: [NgIf, NgFor], template: "<div class=\"gantt-calendar-today-overlay\" [style.width.px]=\"view.width\">\n <span class=\"today-line\" *ngIf=\"ganttUpper.showTodayLine\"> </span>\n</div>\n\n<svg class=\"gantt-calendar-grid-main\" [attr.width]=\"view.width\" [attr.height]=\"ganttUpper.styles.headerHeight - 1\">\n <g>\n <g *ngIf=\"view.showTimeline\">\n <line\n *ngFor=\"let point of view.secondaryDatePoints; let i = index; trackBy: trackBy\"\n [attr.x1]=\"(i + 1) * view.cellWidth\"\n [attr.x2]=\"(i + 1) * view.cellWidth\"\n [attr.y1]=\"0\"\n [attr.y2]=\"mainHeight\"\n class=\"secondary-line\"\n ></line>\n </g>\n <g>\n <line\n *ngFor=\"let point of view.primaryDatePoints; let i = index; trackBy: trackBy\"\n [attr.x1]=\"(i + 1) * view.primaryWidth\"\n [attr.x2]=\"(i + 1) * view.primaryWidth\"\n [attr.y1]=\"0\"\n [attr.y2]=\"mainHeight\"\n class=\"primary-line\"\n ></line>\n </g>\n </g>\n</svg>\n" }]
2849
+ args: [{ selector: 'gantt-calendar-grid', standalone: true, template: "<div class=\"gantt-calendar-today-overlay\" [style.width.px]=\"view.width\">\n @if (ganttUpper.showTodayLine) {\n <span class=\"today-line\"> </span>\n }\n</div>\n\n<svg class=\"gantt-calendar-grid-main\" [attr.width]=\"view.width\" [attr.height]=\"ganttUpper.styles.headerHeight - 1\">\n <g>\n @if (view.showTimeline) {\n <g>\n @for (point of view.secondaryDatePoints; track point.x) {\n <line\n [attr.x1]=\"($index + 1) * view.cellWidth\"\n [attr.x2]=\"($index + 1) * view.cellWidth\"\n [attr.y1]=\"0\"\n [attr.y2]=\"mainHeight\"\n class=\"secondary-line\"\n ></line>\n }\n </g>\n }\n <g>\n @for (point of view.primaryDatePoints; track point.x) {\n <line\n [attr.x1]=\"($index + 1) * view.primaryWidth\"\n [attr.x2]=\"($index + 1) * view.primaryWidth\"\n [attr.y1]=\"0\"\n [attr.y2]=\"mainHeight\"\n class=\"primary-line\"\n ></line>\n }\n </g>\n </g>\n</svg>\n" }]
2517
2850
  }], ctorParameters: () => [{ type: GanttUpper, decorators: [{
2518
2851
  type: Inject,
2519
2852
  args: [GANTT_UPPER_TOKEN]
@@ -2564,15 +2897,12 @@ class GanttCalendarHeaderComponent {
2564
2897
  todayEle.style.display = 'none';
2565
2898
  }
2566
2899
  }
2567
- trackBy(point, index) {
2568
- return point.text || index;
2569
- }
2570
2900
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GanttCalendarHeaderComponent, deps: [{ token: GANTT_UPPER_TOKEN }, { token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
2571
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: GanttCalendarHeaderComponent, isStandalone: true, selector: "gantt-calendar-header", host: { properties: { "class": "this.className", "style.height": "this.height" } }, ngImport: i0, template: "<div class=\"gantt-calendar-today-overlay\" [style.width.px]=\"view.width\">\n <span class=\"today-rect\" [hidden]=\"ganttUpper.viewType !== viewTypes.day\"> </span>\n</div>\n<svg [attr.width]=\"view.width\" [attr.height]=\"ganttUpper.styles.headerHeight\">\n <g>\n <text\n class=\"primary-text\"\n [ngStyle]=\"point.style\"\n [class.today]=\"point.additions?.isToday\"\n [class.weekend]=\"point.additions?.isWeekend\"\n *ngFor=\"let point of view.primaryDatePoints; trackBy: trackBy\"\n [attr.x]=\"point.x\"\n [attr.y]=\"point.y\"\n >\n {{ point.text }}\n </text>\n <ng-container *ngFor=\"let point of view.secondaryDatePoints; trackBy: trackBy\">\n <text\n class=\"secondary-text\"\n [ngStyle]=\"point.style\"\n [class.today]=\"point.additions?.isToday\"\n [class.weekend]=\"point.additions?.isWeekend\"\n [attr.x]=\"point.x\"\n [attr.y]=\"point.y\"\n >\n {{ point.text }}\n </text>\n </ng-container>\n\n <g>\n <line\n *ngFor=\"let point of view.primaryDatePoints; let i = index; trackBy: trackBy\"\n [attr.x1]=\"(i + 1) * view.primaryWidth\"\n [attr.x2]=\"(i + 1) * view.primaryWidth\"\n [attr.y1]=\"0\"\n [attr.y2]=\"ganttUpper.styles.headerHeight\"\n class=\"primary-line\"\n ></line>\n </g>\n\n <g>\n <line\n [attr.x1]=\"0\"\n [attr.x2]=\"view.width\"\n [attr.y1]=\"ganttUpper.styles.headerHeight\"\n [attr.y2]=\"ganttUpper.styles.headerHeight\"\n class=\"header-line\"\n ></line>\n </g>\n </g>\n</svg>\n", dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
2901
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: GanttCalendarHeaderComponent, isStandalone: true, selector: "gantt-calendar-header", host: { properties: { "class": "this.className", "style.height": "this.height" } }, ngImport: i0, template: "<div class=\"gantt-calendar-today-overlay\" [style.width.px]=\"view.width\">\n <span class=\"today-rect\" [hidden]=\"ganttUpper.viewType !== viewTypes.day\"> </span>\n</div>\n<svg [attr.width]=\"view.width\" [attr.height]=\"ganttUpper.styles.headerHeight\">\n <g>\n @for (point of view.primaryDatePoints; track point.x) {\n <text\n class=\"primary-text\"\n [ngStyle]=\"point.style\"\n [class.today]=\"point.additions?.isToday\"\n [class.weekend]=\"point.additions?.isWeekend\"\n [attr.x]=\"point.x\"\n [attr.y]=\"point.y\"\n >\n {{ point.text }}\n </text>\n } @for (point of view.secondaryDatePoints; track point.x) {\n <text\n class=\"secondary-text\"\n [ngStyle]=\"point.style\"\n [class.today]=\"point.additions?.isToday\"\n [class.weekend]=\"point.additions?.isWeekend\"\n [attr.x]=\"point.x\"\n [attr.y]=\"point.y\"\n >\n {{ point.text }}\n </text>\n }\n\n <g>\n @for (point of view.primaryDatePoints; track point.x) {\n <line\n [attr.x1]=\"($index + 1) * view.primaryWidth\"\n [attr.x2]=\"($index + 1) * view.primaryWidth\"\n [attr.y1]=\"0\"\n [attr.y2]=\"ganttUpper.styles.headerHeight\"\n class=\"primary-line\"\n ></line>\n }\n </g>\n\n <g>\n <line\n [attr.x1]=\"0\"\n [attr.x2]=\"view.width\"\n [attr.y1]=\"ganttUpper.styles.headerHeight\"\n [attr.y2]=\"ganttUpper.styles.headerHeight\"\n class=\"header-line\"\n ></line>\n </g>\n </g>\n</svg>\n", dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
2572
2902
  }
2573
2903
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GanttCalendarHeaderComponent, decorators: [{
2574
2904
  type: Component,
2575
- args: [{ selector: 'gantt-calendar-header', standalone: true, imports: [NgFor, NgStyle], template: "<div class=\"gantt-calendar-today-overlay\" [style.width.px]=\"view.width\">\n <span class=\"today-rect\" [hidden]=\"ganttUpper.viewType !== viewTypes.day\"> </span>\n</div>\n<svg [attr.width]=\"view.width\" [attr.height]=\"ganttUpper.styles.headerHeight\">\n <g>\n <text\n class=\"primary-text\"\n [ngStyle]=\"point.style\"\n [class.today]=\"point.additions?.isToday\"\n [class.weekend]=\"point.additions?.isWeekend\"\n *ngFor=\"let point of view.primaryDatePoints; trackBy: trackBy\"\n [attr.x]=\"point.x\"\n [attr.y]=\"point.y\"\n >\n {{ point.text }}\n </text>\n <ng-container *ngFor=\"let point of view.secondaryDatePoints; trackBy: trackBy\">\n <text\n class=\"secondary-text\"\n [ngStyle]=\"point.style\"\n [class.today]=\"point.additions?.isToday\"\n [class.weekend]=\"point.additions?.isWeekend\"\n [attr.x]=\"point.x\"\n [attr.y]=\"point.y\"\n >\n {{ point.text }}\n </text>\n </ng-container>\n\n <g>\n <line\n *ngFor=\"let point of view.primaryDatePoints; let i = index; trackBy: trackBy\"\n [attr.x1]=\"(i + 1) * view.primaryWidth\"\n [attr.x2]=\"(i + 1) * view.primaryWidth\"\n [attr.y1]=\"0\"\n [attr.y2]=\"ganttUpper.styles.headerHeight\"\n class=\"primary-line\"\n ></line>\n </g>\n\n <g>\n <line\n [attr.x1]=\"0\"\n [attr.x2]=\"view.width\"\n [attr.y1]=\"ganttUpper.styles.headerHeight\"\n [attr.y2]=\"ganttUpper.styles.headerHeight\"\n class=\"header-line\"\n ></line>\n </g>\n </g>\n</svg>\n" }]
2905
+ args: [{ selector: 'gantt-calendar-header', standalone: true, imports: [NgStyle], template: "<div class=\"gantt-calendar-today-overlay\" [style.width.px]=\"view.width\">\n <span class=\"today-rect\" [hidden]=\"ganttUpper.viewType !== viewTypes.day\"> </span>\n</div>\n<svg [attr.width]=\"view.width\" [attr.height]=\"ganttUpper.styles.headerHeight\">\n <g>\n @for (point of view.primaryDatePoints; track point.x) {\n <text\n class=\"primary-text\"\n [ngStyle]=\"point.style\"\n [class.today]=\"point.additions?.isToday\"\n [class.weekend]=\"point.additions?.isWeekend\"\n [attr.x]=\"point.x\"\n [attr.y]=\"point.y\"\n >\n {{ point.text }}\n </text>\n } @for (point of view.secondaryDatePoints; track point.x) {\n <text\n class=\"secondary-text\"\n [ngStyle]=\"point.style\"\n [class.today]=\"point.additions?.isToday\"\n [class.weekend]=\"point.additions?.isWeekend\"\n [attr.x]=\"point.x\"\n [attr.y]=\"point.y\"\n >\n {{ point.text }}\n </text>\n }\n\n <g>\n @for (point of view.primaryDatePoints; track point.x) {\n <line\n [attr.x1]=\"($index + 1) * view.primaryWidth\"\n [attr.x2]=\"($index + 1) * view.primaryWidth\"\n [attr.y1]=\"0\"\n [attr.y2]=\"ganttUpper.styles.headerHeight\"\n class=\"primary-line\"\n ></line>\n }\n </g>\n\n <g>\n <line\n [attr.x1]=\"0\"\n [attr.x2]=\"view.width\"\n [attr.y1]=\"ganttUpper.styles.headerHeight\"\n [attr.y2]=\"ganttUpper.styles.headerHeight\"\n class=\"header-line\"\n ></line>\n </g>\n </g>\n</svg>\n" }]
2576
2906
  }], ctorParameters: () => [{ type: GanttUpper, decorators: [{
2577
2907
  type: Inject,
2578
2908
  args: [GANTT_UPPER_TOKEN]
@@ -3163,6 +3493,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
3163
3493
  standalone: true
3164
3494
  }]
3165
3495
  }] });
3496
+ class GanttDateFormatPipe {
3497
+ transform(value, format) {
3498
+ return new GanttDate(value).format(format);
3499
+ }
3500
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GanttDateFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3501
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: GanttDateFormatPipe, isStandalone: true, name: "dateFormat" }); }
3502
+ }
3503
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GanttDateFormatPipe, decorators: [{
3504
+ type: Pipe,
3505
+ args: [{
3506
+ name: 'dateFormat',
3507
+ standalone: true
3508
+ }]
3509
+ }] });
3166
3510
 
3167
3511
  class NgxGanttRangeComponent extends GanttItemUpper {
3168
3512
  constructor(elementRef, ganttUpper) {
@@ -3749,17 +4093,17 @@ class NgxGanttToolbarComponent {
3749
4093
  constructor(ganttUpper) {
3750
4094
  this.ganttUpper = ganttUpper;
3751
4095
  this.ganttItemClass = true;
3752
- this.ganttViewsMap = keyBy(ganttViews, 'value');
4096
+ this.views = inject(GanttConfigService).getViewsLocale();
3753
4097
  }
3754
4098
  selectView(view) {
3755
4099
  this.ganttUpper.changeView(view);
3756
4100
  }
3757
4101
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgxGanttToolbarComponent, deps: [{ token: GANTT_UPPER_TOKEN }], target: i0.ɵɵFactoryTarget.Component }); }
3758
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: NgxGanttToolbarComponent, isStandalone: true, selector: "ngx-gantt-toolbar,gantt-toolbar", inputs: { template: "template" }, host: { properties: { "class.gantt-toolbar": "this.ganttItemClass", "style.top": "this.top" } }, ngImport: i0, template: "<div class=\"toolbar-container\">\n <ng-container *ngIf=\"!template\">\n <div class=\"toolbar-views\" *ngIf=\"this.ganttUpper.toolbarOptions?.viewTypes?.length\">\n <ng-container *ngFor=\"let view of this.ganttUpper.toolbarOptions?.viewTypes\">\n <div class=\"toolbar-view\" *ngIf=\"ganttViewsMap[view]\" [class.active]=\"view === this.ganttUpper.viewType\" (click)=\"selectView(view)\">\n {{ ganttViewsMap[view].name }}\n </div>\n </ng-container>\n </div>\n </ng-container>\n <ng-template [ngTemplateOutlet]=\"template\"></ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
4102
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: NgxGanttToolbarComponent, isStandalone: true, selector: "ngx-gantt-toolbar,gantt-toolbar", inputs: { template: "template" }, host: { properties: { "class.gantt-toolbar": "this.ganttItemClass", "style.top": "this.top" } }, ngImport: i0, template: "<div class=\"toolbar-container\">\n <ng-container *ngIf=\"!template\">\n <div class=\"toolbar-views\" *ngIf=\"this.ganttUpper.toolbarOptions?.viewTypes?.length\">\n <ng-container *ngFor=\"let viewType of this.ganttUpper.toolbarOptions?.viewTypes\">\n <div\n class=\"toolbar-view\"\n *ngIf=\"views[viewType]\"\n [class.active]=\"viewType === this.ganttUpper.viewType\"\n (click)=\"selectView(viewType)\"\n >\n {{ views[viewType].label }}\n </div>\n </ng-container>\n </div>\n </ng-container>\n <ng-template [ngTemplateOutlet]=\"template\"></ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
3759
4103
  }
3760
4104
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgxGanttToolbarComponent, decorators: [{
3761
4105
  type: Component,
3762
- args: [{ selector: 'ngx-gantt-toolbar,gantt-toolbar', standalone: true, imports: [NgIf, NgFor, NgTemplateOutlet], template: "<div class=\"toolbar-container\">\n <ng-container *ngIf=\"!template\">\n <div class=\"toolbar-views\" *ngIf=\"this.ganttUpper.toolbarOptions?.viewTypes?.length\">\n <ng-container *ngFor=\"let view of this.ganttUpper.toolbarOptions?.viewTypes\">\n <div class=\"toolbar-view\" *ngIf=\"ganttViewsMap[view]\" [class.active]=\"view === this.ganttUpper.viewType\" (click)=\"selectView(view)\">\n {{ ganttViewsMap[view].name }}\n </div>\n </ng-container>\n </div>\n </ng-container>\n <ng-template [ngTemplateOutlet]=\"template\"></ng-template>\n</div>\n" }]
4106
+ args: [{ selector: 'ngx-gantt-toolbar,gantt-toolbar', standalone: true, imports: [NgIf, NgFor, NgTemplateOutlet], template: "<div class=\"toolbar-container\">\n <ng-container *ngIf=\"!template\">\n <div class=\"toolbar-views\" *ngIf=\"this.ganttUpper.toolbarOptions?.viewTypes?.length\">\n <ng-container *ngFor=\"let viewType of this.ganttUpper.toolbarOptions?.viewTypes\">\n <div\n class=\"toolbar-view\"\n *ngIf=\"views[viewType]\"\n [class.active]=\"viewType === this.ganttUpper.viewType\"\n (click)=\"selectView(viewType)\"\n >\n {{ views[viewType].label }}\n </div>\n </ng-container>\n </div>\n </ng-container>\n <ng-template [ngTemplateOutlet]=\"template\"></ng-template>\n</div>\n" }]
3763
4107
  }], ctorParameters: () => [{ type: GanttUpper, decorators: [{
3764
4108
  type: Inject,
3765
4109
  args: [GANTT_UPPER_TOKEN]
@@ -3975,7 +4319,7 @@ class NgxGanttRootComponent {
3975
4319
  }
3976
4320
  scrollToDate(date) {
3977
4321
  let x;
3978
- if (typeof date === 'number') {
4322
+ if (typeof date === 'number' || date instanceof Date) {
3979
4323
  x = this.view.getXPointByDate(new GanttDate(date));
3980
4324
  }
3981
4325
  else {
@@ -4470,13 +4814,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
4470
4814
  }] } });
4471
4815
 
4472
4816
  class NgxGanttModule {
4473
- constructor(ganttGlobalConfig) {
4817
+ constructor() {
4818
+ const configService = inject(GanttConfigService);
4474
4819
  setDefaultOptions({
4475
- locale: ganttGlobalConfig?.dateOptions?.locale,
4476
- weekStartsOn: ganttGlobalConfig?.dateOptions?.weekStartsOn || 1
4820
+ locale: configService.getDateLocale(),
4821
+ weekStartsOn: configService.config?.dateOptions?.weekStartsOn
4477
4822
  });
4478
4823
  }
4479
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgxGanttModule, deps: [{ token: GANTT_GLOBAL_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
4824
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgxGanttModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
4480
4825
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: NgxGanttModule, imports: [CommonModule,
4481
4826
  DragDropModule,
4482
4827
  ScrollingModule,
@@ -4500,7 +4845,8 @@ class NgxGanttModule {
4500
4845
  GanttScrollbarComponent,
4501
4846
  IsGanttRangeItemPipe,
4502
4847
  IsGanttBarItemPipe,
4503
- IsGanttCustomItemPipe], exports: [NgxGanttComponent,
4848
+ IsGanttCustomItemPipe,
4849
+ GanttDateFormatPipe], exports: [NgxGanttComponent,
4504
4850
  NgxGanttTableComponent,
4505
4851
  NgxGanttTableColumnComponent,
4506
4852
  NgxGanttRootComponent,
@@ -4511,13 +4857,15 @@ class NgxGanttModule {
4511
4857
  GanttCalendarHeaderComponent,
4512
4858
  GanttCalendarGridComponent,
4513
4859
  GanttDragBackdropComponent,
4514
- GanttScrollbarComponent] }); }
4860
+ GanttScrollbarComponent,
4861
+ GanttDateFormatPipe] }); }
4515
4862
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgxGanttModule, providers: [
4516
4863
  CdkVirtualScrollViewport,
4517
4864
  {
4518
4865
  provide: GANTT_GLOBAL_CONFIG,
4519
4866
  useValue: defaultConfig
4520
- }
4867
+ },
4868
+ ...i18nLocaleProvides
4521
4869
  ], imports: [CommonModule,
4522
4870
  DragDropModule,
4523
4871
  ScrollingModule,
@@ -4550,7 +4898,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
4550
4898
  GanttScrollbarComponent,
4551
4899
  IsGanttRangeItemPipe,
4552
4900
  IsGanttBarItemPipe,
4553
- IsGanttCustomItemPipe
4901
+ IsGanttCustomItemPipe,
4902
+ GanttDateFormatPipe
4554
4903
  ],
4555
4904
  exports: [
4556
4905
  NgxGanttComponent,
@@ -4564,22 +4913,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
4564
4913
  GanttCalendarHeaderComponent,
4565
4914
  GanttCalendarGridComponent,
4566
4915
  GanttDragBackdropComponent,
4567
- GanttScrollbarComponent
4916
+ GanttScrollbarComponent,
4917
+ GanttDateFormatPipe
4568
4918
  ],
4569
4919
  providers: [
4570
4920
  CdkVirtualScrollViewport,
4571
4921
  {
4572
4922
  provide: GANTT_GLOBAL_CONFIG,
4573
4923
  useValue: defaultConfig
4574
- }
4924
+ },
4925
+ ...i18nLocaleProvides
4575
4926
  ]
4576
4927
  }]
4577
- }], ctorParameters: () => [{ type: undefined, decorators: [{
4578
- type: Optional
4579
- }, {
4580
- type: Inject,
4581
- args: [GANTT_GLOBAL_CONFIG]
4582
- }] }] });
4928
+ }], ctorParameters: () => [] });
4583
4929
 
4584
4930
  /*
4585
4931
  * Public API Surface of gantt
@@ -4589,5 +4935,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
4589
4935
  * Generated bundle index. Do not edit.
4590
4936
  */
4591
4937
 
4592
- export { GANTT_GLOBAL_CONFIG, GANTT_UPPER_TOKEN, GanttBarClickEvent, GanttBaselineItemInternal, GanttCalendarGridComponent, GanttCalendarHeaderComponent, GanttDate, GanttDatePoint, GanttDragBackdropComponent, GanttDragEvent, GanttGroupInternal, GanttItemInternal, GanttItemType, GanttItemUpper, GanttLineClickEvent, GanttLinkDragEvent, GanttLinkLineType, GanttLinkType, GanttLoadOnScrollEvent, GanttLoaderComponent, GanttPrintService, GanttScrollbarComponent, GanttSelectedEvent, GanttTableDragDroppedEvent, GanttTableDragEndedEvent, GanttTableDragEnterPredicateContext, GanttTableDragStartedEvent, GanttTableEvent, GanttTableItemClickEvent, GanttUpper, GanttView, GanttViewType, GanttVirtualScrolledIndexChangeEvent, IsGanttBarItemPipe, IsGanttCustomItemPipe, IsGanttRangeItemPipe, LinkColors, NgxGanttBarComponent, NgxGanttBaselineComponent, NgxGanttComponent, NgxGanttModule, NgxGanttRangeComponent, NgxGanttRootComponent, NgxGanttTableColumnComponent, NgxGanttTableComponent, NgxGanttToolbarComponent, defaultConfig, ganttViews, primaryDatePointTop, registerView, secondaryDatePointTop };
4938
+ export { GANTT_GLOBAL_CONFIG, GANTT_I18N_LOCALE_TOKEN, GANTT_UPPER_TOKEN, GanttBarClickEvent, GanttBaselineItemInternal, GanttCalendarGridComponent, GanttCalendarHeaderComponent, GanttConfigService, GanttDate, GanttDateFormatPipe, GanttDatePoint, GanttDragBackdropComponent, GanttDragEvent, GanttGroupInternal, GanttI18nLocale, GanttItemInternal, GanttItemType, GanttItemUpper, GanttLineClickEvent, GanttLinkDragEvent, GanttLinkLineType, GanttLinkType, GanttLoadOnScrollEvent, GanttLoaderComponent, GanttPrintService, GanttScrollbarComponent, GanttSelectedEvent, GanttTableDragDroppedEvent, GanttTableDragEndedEvent, GanttTableDragEnterPredicateContext, GanttTableDragStartedEvent, GanttTableEvent, GanttTableItemClickEvent, GanttUpper, GanttView, GanttViewType, GanttVirtualScrolledIndexChangeEvent, IsGanttBarItemPipe, IsGanttCustomItemPipe, IsGanttRangeItemPipe, LinkColors, NgxGanttBarComponent, NgxGanttBaselineComponent, NgxGanttComponent, NgxGanttModule, NgxGanttRangeComponent, NgxGanttRootComponent, NgxGanttTableColumnComponent, NgxGanttTableComponent, NgxGanttToolbarComponent, deDeLocale, defaultConfig, enUsLocale, getDefaultTimeZone, jaJpLocale, primaryDatePointTop, registerView, ruRuLocale, secondaryDatePointTop, setDefaultTimeZone, zhHans as zhHansLocale, zhHant as zhHantLocale };
4593
4939
  //# sourceMappingURL=worktile-gantt.mjs.map