@progress/kendo-angular-layout 16.0.0-develop.4 → 16.0.0-develop.5

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 (44) hide show
  1. package/esm2020/index.mjs +7 -0
  2. package/esm2020/layout.module.mjs +7 -3
  3. package/esm2020/package-metadata.mjs +2 -2
  4. package/esm2020/timeline/events/navigation-direction.mjs +5 -0
  5. package/esm2020/timeline/localization/custom-messages.component.mjs +41 -0
  6. package/esm2020/timeline/localization/localized-messages.directive.mjs +37 -0
  7. package/esm2020/timeline/localization/messages.mjs +25 -0
  8. package/esm2020/timeline/models/anchor-target.mjs +5 -0
  9. package/esm2020/timeline/models/default-model-fields.mjs +16 -0
  10. package/esm2020/timeline/models/model-fields.mjs +5 -0
  11. package/esm2020/timeline/models/timeline-event.mjs +5 -0
  12. package/esm2020/timeline/templates/timeline-card-actions.directive.mjs +29 -0
  13. package/esm2020/timeline/templates/timeline-card-body.directive.mjs +29 -0
  14. package/esm2020/timeline/templates/timeline-card-header.directive.mjs +29 -0
  15. package/esm2020/timeline/timeline-card.component.mjs +402 -0
  16. package/esm2020/timeline/timeline-horizontal.component.mjs +722 -0
  17. package/esm2020/timeline/timeline-vertical.component.mjs +175 -0
  18. package/esm2020/timeline/timeline.component.mjs +418 -0
  19. package/esm2020/timeline/timeline.service.mjs +31 -0
  20. package/esm2020/timeline/util.mjs +26 -0
  21. package/esm2020/timeline.module.mjs +65 -0
  22. package/fesm2015/progress-kendo-angular-layout.mjs +1996 -63
  23. package/fesm2020/progress-kendo-angular-layout.mjs +1969 -63
  24. package/index.d.ts +10 -0
  25. package/layout.module.d.ts +2 -1
  26. package/package.json +7 -7
  27. package/timeline/events/navigation-direction.d.ts +5 -0
  28. package/timeline/localization/custom-messages.component.d.ts +17 -0
  29. package/timeline/localization/localized-messages.directive.d.ts +16 -0
  30. package/timeline/localization/messages.d.ts +21 -0
  31. package/timeline/models/anchor-target.d.ts +5 -0
  32. package/timeline/models/default-model-fields.d.ts +9 -0
  33. package/timeline/models/model-fields.d.ts +51 -0
  34. package/timeline/models/timeline-event.d.ts +49 -0
  35. package/timeline/templates/timeline-card-actions.directive.d.ts +20 -0
  36. package/timeline/templates/timeline-card-body.directive.d.ts +20 -0
  37. package/timeline/templates/timeline-card-header.directive.d.ts +20 -0
  38. package/timeline/timeline-card.component.d.ts +59 -0
  39. package/timeline/timeline-horizontal.component.d.ts +110 -0
  40. package/timeline/timeline-vertical.component.d.ts +41 -0
  41. package/timeline/timeline.component.d.ts +186 -0
  42. package/timeline/timeline.service.d.ts +17 -0
  43. package/timeline/util.d.ts +18 -0
  44. package/timeline.module.d.ts +31 -0
@@ -7,12 +7,12 @@ import { Directive, Optional, Injectable, isDevMode, Component, SkipSelf, Host,
7
7
  import * as i1 from '@progress/kendo-angular-l10n';
8
8
  import { LocalizationService, L10N_PREFIX, ComponentMessages } from '@progress/kendo-angular-l10n';
9
9
  import * as i5 from '@progress/kendo-angular-common';
10
- import { Keys, shouldShowValidationUI, PreventableEvent as PreventableEvent$1, isDocumentAvailable, guid, hasObservers, focusableSelector, isChanged, WatermarkModule, EventsModule, DraggableModule, ResizeSensorModule } from '@progress/kendo-angular-common';
10
+ import { Keys, shouldShowValidationUI, PreventableEvent as PreventableEvent$1, isDocumentAvailable, guid, hasObservers, focusableSelector, isChanged, WatermarkModule, EventsModule, DraggableModule, ResizeSensorModule, isPresent as isPresent$1 } from '@progress/kendo-angular-common';
11
11
  import { validatePackage } from '@progress/kendo-licensing';
12
12
  import * as i1$1 from '@angular/animations';
13
13
  import { trigger, state, style, transition, animate, AUTO_STYLE } from '@angular/animations';
14
- import { Subject, BehaviorSubject, Subscription, of } from 'rxjs';
15
- import { chevronUpIcon, chevronDownIcon, caretAltLeftIcon, caretAltRightIcon, caretAltUpIcon, caretAltDownIcon, xIcon, checkCircleIcon, exclamationCircleIcon } from '@progress/kendo-svg-icons';
14
+ import { Subject, BehaviorSubject, Subscription, of, fromEvent } from 'rxjs';
15
+ import { chevronUpIcon, chevronDownIcon, caretAltLeftIcon, caretAltRightIcon, caretAltUpIcon, caretAltDownIcon, xIcon, checkCircleIcon, exclamationCircleIcon, chevronRightIcon } from '@progress/kendo-svg-icons';
16
16
  import * as i2 from '@angular/common';
17
17
  import { CommonModule } from '@angular/common';
18
18
  import * as i3 from '@progress/kendo-angular-icons';
@@ -23,6 +23,8 @@ import { ButtonModule } from '@progress/kendo-angular-buttons';
23
23
  import * as i4 from '@progress/kendo-angular-progressbar';
24
24
  import { ProgressBarModule } from '@progress/kendo-angular-progressbar';
25
25
  import { Draggable } from '@progress/kendo-draggable';
26
+ import * as i6 from '@progress/kendo-angular-intl';
27
+ import { IntlModule } from '@progress/kendo-angular-intl';
26
28
 
27
29
  /**
28
30
  * @hidden
@@ -31,8 +33,8 @@ const packageMetadata = {
31
33
  name: '@progress/kendo-angular-layout',
32
34
  productName: 'Kendo UI for Angular',
33
35
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
34
- publishDate: 1714109383,
35
- version: '16.0.0-develop.4',
36
+ publishDate: 1714129718,
37
+ version: '16.0.0-develop.5',
36
38
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
37
39
  };
38
40
 
@@ -9590,13 +9592,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
9590
9592
  args: ['style.min-height']
9591
9593
  }] } });
9592
9594
 
9593
- const exportedModules$a = [
9595
+ const exportedModules$b = [
9594
9596
  AvatarComponent,
9595
9597
  AvatarCustomMessagesComponent
9596
9598
  ];
9597
- const declarations$a = [
9599
+ const declarations$b = [
9598
9600
  LocalizedAvatarMessagesDirective,
9599
- ...exportedModules$a
9601
+ ...exportedModules$b
9600
9602
  ];
9601
9603
  /**
9602
9604
  * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
@@ -9612,8 +9614,8 @@ AvatarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
9612
9614
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AvatarModule, decorators: [{
9613
9615
  type: NgModule,
9614
9616
  args: [{
9615
- declarations: [declarations$a],
9616
- exports: [exportedModules$a],
9617
+ declarations: [declarations$b],
9618
+ exports: [exportedModules$b],
9617
9619
  imports: [CommonModule, IconsModule]
9618
9620
  }]
9619
9621
  }] });
@@ -9624,7 +9626,7 @@ const cardDirectives = [
9624
9626
  CardSeparatorDirective,
9625
9627
  CardMediaDirective
9626
9628
  ];
9627
- const exportedModules$9 = [
9629
+ const exportedModules$a = [
9628
9630
  CardComponent,
9629
9631
  CardHeaderComponent,
9630
9632
  CardBodyComponent,
@@ -9632,7 +9634,7 @@ const exportedModules$9 = [
9632
9634
  CardActionsComponent,
9633
9635
  ...cardDirectives
9634
9636
  ];
9635
- const declarations$9 = [...exportedModules$9];
9637
+ const declarations$a = [...exportedModules$a];
9636
9638
  /**
9637
9639
  * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
9638
9640
  * definition for the Card component.
@@ -9659,8 +9661,8 @@ CardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15
9659
9661
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CardModule, decorators: [{
9660
9662
  type: NgModule,
9661
9663
  args: [{
9662
- declarations: [declarations$9],
9663
- exports: [exportedModules$9],
9664
+ declarations: [declarations$a],
9665
+ exports: [exportedModules$a],
9664
9666
  imports: [CommonModule]
9665
9667
  }]
9666
9668
  }] });
@@ -9671,16 +9673,16 @@ const templateDirectives$1 = [
9671
9673
  DrawerFooterTemplateDirective,
9672
9674
  DrawerItemTemplateDirective
9673
9675
  ];
9674
- const exportedModules$8 = [
9676
+ const exportedModules$9 = [
9675
9677
  DrawerComponent,
9676
9678
  DrawerContainerComponent,
9677
9679
  DrawerContentComponent,
9678
9680
  ...templateDirectives$1
9679
9681
  ];
9680
- const declarations$8 = [
9682
+ const declarations$9 = [
9681
9683
  DrawerItemComponent,
9682
9684
  DrawerListComponent,
9683
- ...exportedModules$8
9685
+ ...exportedModules$9
9684
9686
  ];
9685
9687
  /**
9686
9688
  * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
@@ -9705,18 +9707,18 @@ DrawerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
9705
9707
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DrawerModule, decorators: [{
9706
9708
  type: NgModule,
9707
9709
  args: [{
9708
- declarations: [declarations$8],
9709
- exports: [exportedModules$8],
9710
+ declarations: [declarations$9],
9711
+ exports: [exportedModules$9],
9710
9712
  imports: [CommonModule, IconsModule, WatermarkModule]
9711
9713
  }]
9712
9714
  }] });
9713
9715
 
9714
- const exportedModules$7 = [
9716
+ const exportedModules$8 = [
9715
9717
  ExpansionPanelComponent,
9716
9718
  ExpansionPanelTitleDirective
9717
9719
  ];
9718
- const declarations$7 = [
9719
- ...exportedModules$7
9720
+ const declarations$8 = [
9721
+ ...exportedModules$8
9720
9722
  ];
9721
9723
  /**
9722
9724
  * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
@@ -9732,21 +9734,21 @@ ExpansionPanelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ve
9732
9734
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ExpansionPanelModule, decorators: [{
9733
9735
  type: NgModule,
9734
9736
  args: [{
9735
- declarations: [declarations$7],
9736
- exports: [exportedModules$7],
9737
+ declarations: [declarations$8],
9738
+ exports: [exportedModules$8],
9737
9739
  imports: [CommonModule, EventsModule, IconsModule]
9738
9740
  }]
9739
9741
  }] });
9740
9742
 
9741
- const exportedModules$6 = [
9743
+ const exportedModules$7 = [
9742
9744
  PanelBarComponent,
9743
9745
  PanelBarItemComponent,
9744
9746
  PanelBarContentDirective,
9745
9747
  PanelBarItemTemplateDirective,
9746
9748
  PanelBarItemTitleDirective
9747
9749
  ];
9748
- const declarations$6 = [
9749
- ...exportedModules$6
9750
+ const declarations$7 = [
9751
+ ...exportedModules$7
9750
9752
  ];
9751
9753
  /**
9752
9754
  * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
@@ -9775,19 +9777,19 @@ PanelBarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version:
9775
9777
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: PanelBarModule, decorators: [{
9776
9778
  type: NgModule,
9777
9779
  args: [{
9778
- declarations: [declarations$6],
9779
- exports: [exportedModules$6],
9780
+ declarations: [declarations$7],
9781
+ exports: [exportedModules$7],
9780
9782
  imports: [CommonModule, IconsModule, WatermarkModule]
9781
9783
  }]
9782
9784
  }] });
9783
9785
 
9784
- const exportedModules$5 = [
9786
+ const exportedModules$6 = [
9785
9787
  SplitterComponent,
9786
9788
  SplitterPaneComponent
9787
9789
  ];
9788
- const declarations$5 = [
9790
+ const declarations$6 = [
9789
9791
  SplitterBarComponent,
9790
- ...exportedModules$5
9792
+ ...exportedModules$6
9791
9793
  ];
9792
9794
  /**
9793
9795
  * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
@@ -9811,8 +9813,8 @@ SplitterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version:
9811
9813
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SplitterModule, decorators: [{
9812
9814
  type: NgModule,
9813
9815
  args: [{
9814
- declarations: [declarations$5],
9815
- exports: [exportedModules$5],
9816
+ declarations: [declarations$6],
9817
+ exports: [exportedModules$6],
9816
9818
  imports: [
9817
9819
  CommonModule,
9818
9820
  DraggableModule,
@@ -9826,16 +9828,16 @@ const templateDirectives = [
9826
9828
  StepperLabelTemplateDirective,
9827
9829
  StepperIndicatorTemplateDirective
9828
9830
  ];
9829
- const exportedModules$4 = [
9831
+ const exportedModules$5 = [
9830
9832
  StepperComponent,
9831
9833
  StepperCustomMessagesComponent,
9832
9834
  ...templateDirectives
9833
9835
  ];
9834
- const declarations$4 = [
9836
+ const declarations$5 = [
9835
9837
  StepperStepComponent,
9836
9838
  StepperListComponent,
9837
9839
  LocalizedStepperMessagesDirective,
9838
- ...exportedModules$4
9840
+ ...exportedModules$5
9839
9841
  ];
9840
9842
  /**
9841
9843
  * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
@@ -9857,13 +9859,13 @@ StepperModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version:
9857
9859
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: StepperModule, decorators: [{
9858
9860
  type: NgModule,
9859
9861
  args: [{
9860
- declarations: [declarations$4],
9861
- exports: [exportedModules$4],
9862
+ declarations: [declarations$5],
9863
+ exports: [exportedModules$5],
9862
9864
  imports: [CommonModule, ProgressBarModule, IconsModule]
9863
9865
  }]
9864
9866
  }] });
9865
9867
 
9866
- const exportedModules$3 = [
9868
+ const exportedModules$4 = [
9867
9869
  TabStripComponent,
9868
9870
  TabStripTabComponent,
9869
9871
  TabContentDirective,
@@ -9873,8 +9875,8 @@ const exportedModules$3 = [
9873
9875
  LocalizedTabStripMessagesDirective,
9874
9876
  TabTemplateDirective
9875
9877
  ];
9876
- const declarations$3 = [
9877
- ...exportedModules$3,
9878
+ const declarations$4 = [
9879
+ ...exportedModules$4,
9878
9880
  TabStripScrollableButtonComponent
9879
9881
  ];
9880
9882
  /**
@@ -9909,21 +9911,21 @@ TabStripModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version:
9909
9911
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TabStripModule, decorators: [{
9910
9912
  type: NgModule,
9911
9913
  args: [{
9912
- declarations: [declarations$3],
9913
- exports: [exportedModules$3],
9914
+ declarations: [declarations$4],
9915
+ exports: [exportedModules$4],
9914
9916
  imports: [CommonModule, ResizeSensorModule, IconsModule, ButtonModule, WatermarkModule]
9915
9917
  }]
9916
9918
  }] });
9917
9919
 
9918
- const exportedModules$2 = [
9920
+ const exportedModules$3 = [
9919
9921
  TileLayoutComponent,
9920
9922
  TileLayoutItemComponent,
9921
9923
  TileLayoutItemHeaderComponent,
9922
9924
  TileLayoutItemBodyComponent,
9923
9925
  TileLayoutResizeHandleDirective
9924
9926
  ];
9925
- const declarations$2 = [
9926
- ...exportedModules$2
9927
+ const declarations$3 = [
9928
+ ...exportedModules$3
9927
9929
  ];
9928
9930
  /**
9929
9931
  * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
@@ -9951,8 +9953,8 @@ TileLayoutModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versio
9951
9953
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TileLayoutModule, decorators: [{
9952
9954
  type: NgModule,
9953
9955
  args: [{
9954
- declarations: [declarations$2],
9955
- exports: [exportedModules$2],
9956
+ declarations: [declarations$3],
9957
+ exports: [exportedModules$3],
9956
9958
  imports: [CommonModule, WatermarkModule]
9957
9959
  }]
9958
9960
  }] });
@@ -10189,11 +10191,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
10189
10191
  type: Input
10190
10192
  }] } });
10191
10193
 
10192
- const exportedModules$1 = [
10194
+ const exportedModules$2 = [
10193
10195
  StackLayoutComponent
10194
10196
  ];
10195
- const declarations$1 = [
10196
- ...exportedModules$1
10197
+ const declarations$2 = [
10198
+ ...exportedModules$2
10197
10199
  ];
10198
10200
  /**
10199
10201
  * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
@@ -10207,8 +10209,8 @@ StackLayoutModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versi
10207
10209
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: StackLayoutModule, decorators: [{
10208
10210
  type: NgModule,
10209
10211
  args: [{
10210
- declarations: [declarations$1],
10211
- exports: [exportedModules$1],
10212
+ declarations: [declarations$2],
10213
+ exports: [exportedModules$2],
10212
10214
  imports: [CommonModule]
10213
10215
  }]
10214
10216
  }] });
@@ -10383,12 +10385,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
10383
10385
  type: Input
10384
10386
  }] } });
10385
10387
 
10386
- const exportedModules = [
10388
+ const exportedModules$1 = [
10387
10389
  GridLayoutComponent,
10388
10390
  GridLayoutItemComponent
10389
10391
  ];
10390
- const declarations = [
10391
- ...exportedModules
10392
+ const declarations$1 = [
10393
+ ...exportedModules$1
10392
10394
  ];
10393
10395
  /**
10394
10396
  * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
@@ -10404,12 +10406,1940 @@ GridLayoutModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versio
10404
10406
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GridLayoutModule, decorators: [{
10405
10407
  type: NgModule,
10406
10408
  args: [{
10407
- declarations: [declarations],
10408
- exports: [exportedModules],
10409
+ declarations: [declarations$1],
10410
+ exports: [exportedModules$1],
10409
10411
  imports: [CommonModule]
10410
10412
  }]
10411
10413
  }] });
10412
10414
 
10415
+ /**
10416
+ * @hidden
10417
+ */
10418
+ const defaultModelFields = {
10419
+ title: 'title',
10420
+ subtitle: 'subtitle',
10421
+ description: 'description',
10422
+ date: 'date',
10423
+ expanded: 'expanded',
10424
+ images: 'images',
10425
+ actions: 'actions',
10426
+ };
10427
+
10428
+ /**
10429
+ * @hidden
10430
+ */
10431
+ const processItems = (items, fields) => {
10432
+ return items.map((item) => parseItem(item, fields));
10433
+ };
10434
+ /**
10435
+ * @hidden
10436
+ */
10437
+ const parseItem = (item, fields) => ({
10438
+ title: item[fields.title] || item.title,
10439
+ date: item[fields.date] || item.date,
10440
+ subtitle: item[fields.subtitle] || item.subtitle,
10441
+ description: item[fields.description] || item.description,
10442
+ expanded: item[fields.expanded] || item.expanded,
10443
+ images: item[fields.images] || item.images,
10444
+ actions: item[fields.actions] || item.actions,
10445
+ });
10446
+ /**
10447
+ * @hidden
10448
+ */
10449
+ const MAX_VISIBLE_EVENTS = 3;
10450
+
10451
+ /**
10452
+ * @hidden
10453
+ */
10454
+ class TimelineService {
10455
+ onToggle(event) {
10456
+ var _a;
10457
+ if (this.timeline) {
10458
+ (_a = this.timeline['onToggle']) === null || _a === void 0 ? void 0 : _a.emit(event);
10459
+ }
10460
+ }
10461
+ onActionClick(event) {
10462
+ var _a;
10463
+ if (this.timeline) {
10464
+ (_a = this.timeline['onActionClick']) === null || _a === void 0 ? void 0 : _a.emit(event);
10465
+ }
10466
+ }
10467
+ onNavigate(event) {
10468
+ var _a;
10469
+ if (this.timeline) {
10470
+ (_a = this.timeline['onNavigate']) === null || _a === void 0 ? void 0 : _a.emit(event);
10471
+ }
10472
+ }
10473
+ }
10474
+ TimelineService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
10475
+ TimelineService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineService });
10476
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineService, decorators: [{
10477
+ type: Injectable
10478
+ }] });
10479
+
10480
+ /**
10481
+ * @hidden
10482
+ */
10483
+ class TimelineCardComponent {
10484
+ constructor(element, timelineService, renderer) {
10485
+ this.element = element;
10486
+ this.timelineService = timelineService;
10487
+ this.renderer = renderer;
10488
+ this.expanded = false;
10489
+ this.collapsible = true;
10490
+ this.reversed = false;
10491
+ this.hostClass = true;
10492
+ this.calloutSvgIcon = chevronRightIcon;
10493
+ this.calloutFontIcon = 'arrow-chevron-right';
10494
+ this.animationState = this.expanded ? 'expanded' : 'collapsed';
10495
+ this.animationInProgress = false;
10496
+ }
10497
+ set calloutStyle(value) {
10498
+ // applies only to horizontal orientation where the callout points upwards
10499
+ if (!this.calloutElementRef || !this.calloutElementRef.nativeElement.classList.contains('k-callout-n')) {
10500
+ return;
10501
+ }
10502
+ this.calloutElementRef.nativeElement.style.left = value === null || value === void 0 ? void 0 : value.left;
10503
+ }
10504
+ get collapsedClass() {
10505
+ return !this.expanded && !this.animationInProgress && this.animationState === 'collapsed';
10506
+ }
10507
+ onComponentKeyDown(event) {
10508
+ if (!this.navigable) {
10509
+ return;
10510
+ }
10511
+ if (event.keyCode === Keys.Space || event.keyCode === Keys.Enter) {
10512
+ event.preventDefault();
10513
+ if (this.collapsible && this.orientation === 'vertical') {
10514
+ this.expanded = !this.expanded;
10515
+ }
10516
+ }
10517
+ }
10518
+ get role() {
10519
+ return this.orientation === 'vertical' ? 'button' : 'tabpanel';
10520
+ }
10521
+ get ariaLive() {
10522
+ return this.orientation === 'vertical' ? 'polite' : null;
10523
+ }
10524
+ get ariaExpanded() {
10525
+ return this.orientation === 'vertical' ? this.expanded : null;
10526
+ }
10527
+ ngAfterViewInit() {
10528
+ this.makeOverflowVisible();
10529
+ }
10530
+ ngOnChanges(changes) {
10531
+ if (isChanged('collapsible', changes, false)) {
10532
+ if (!this.collapsible) {
10533
+ this.expanded = true;
10534
+ }
10535
+ }
10536
+ }
10537
+ toggle() {
10538
+ if (this.orientation === 'vertical') {
10539
+ this.expanded = this.collapsible ? !this.expanded : true;
10540
+ this.timelineService.onToggle(this.index);
10541
+ }
10542
+ }
10543
+ expand() {
10544
+ if (!this.expanded) {
10545
+ this.expanded = true;
10546
+ this.timelineService.onToggle(this.index);
10547
+ }
10548
+ }
10549
+ collapse() {
10550
+ if (!this.collapsible || !this.expanded) {
10551
+ return;
10552
+ }
10553
+ this.expanded = false;
10554
+ this.timelineService.onToggle(this.index);
10555
+ }
10556
+ onActionClick(event) {
10557
+ event.stopPropagation();
10558
+ this.timelineService.onActionClick(this.index);
10559
+ }
10560
+ animationStart() {
10561
+ this.animationInProgress = true;
10562
+ }
10563
+ animationDone(event) {
10564
+ this.animationInProgress = false;
10565
+ if (event.toState === 'expanded' && event.fromState !== 'expanded') {
10566
+ this.animationState = 'expanded';
10567
+ this.makeOverflowVisible();
10568
+ }
10569
+ else if (event.toState === 'collapsed' && event.fromState !== 'collapsed') {
10570
+ this.animationState = 'collapsed';
10571
+ }
10572
+ }
10573
+ makeOverflowVisible() {
10574
+ var _a;
10575
+ if (this.orientation === 'vertical') {
10576
+ return;
10577
+ }
10578
+ const cardBody = (_a = this.element) === null || _a === void 0 ? void 0 : _a.nativeElement.querySelector('.k-card-body');
10579
+ if (cardBody) {
10580
+ this.renderer.setStyle(cardBody, 'overflow', 'auto');
10581
+ }
10582
+ }
10583
+ }
10584
+ TimelineCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineCardComponent, deps: [{ token: i0.ElementRef }, { token: TimelineService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
10585
+ TimelineCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TimelineCardComponent, selector: "kendo-timeline-card", inputs: { event: "event", expanded: "expanded", collapsible: "collapsible", reversed: "reversed", orientation: "orientation", navigable: "navigable", tabIndex: "tabIndex", animationDuration: "animationDuration", index: "index", eventWidth: "eventWidth", eventHeight: "eventHeight", headerTemplate: "headerTemplate", bodyTemplate: "bodyTemplate", actionsTemplate: "actionsTemplate", calloutStyle: "calloutStyle" }, host: { listeners: { "keydown": "onComponentKeyDown($event)" }, properties: { "class.k-timeline-card": "this.hostClass", "class.k-collapsed": "this.collapsedClass" } }, providers: [], viewQueries: [{ propertyName: "calloutElementRef", first: true, predicate: ["callout"], descendants: true }], exportAs: ["kendoTimelineCard"], usesOnChanges: true, ngImport: i0, template: `
10586
+ <kendo-card
10587
+ [ngStyle]="{ 'height': orientation === 'horizontal' ? eventHeight + 'px' : null }"
10588
+ [width]="orientation === 'horizontal' ? 'auto' : eventWidth + 'px'"
10589
+ class="k-card-with-callout k-card-vertical"
10590
+ (click)="toggle()"
10591
+ [attr.role]="role"
10592
+ [attr.aria-live]="ariaLive"
10593
+ [attr.aria-expanded]="ariaExpanded"
10594
+ [attr.tabindex]="tabIndex"
10595
+ >
10596
+ <span
10597
+ #callout
10598
+ *ngIf="event"
10599
+ class="k-timeline-card-callout k-card-callout"
10600
+ [ngClass]="{
10601
+ 'k-callout-n': orientation === 'horizontal',
10602
+ 'k-callout-w': orientation === 'vertical' && !this.reversed,
10603
+ 'k-callout-e': orientation === 'vertical' && this.reversed
10604
+ }"
10605
+ >
10606
+ </span>
10607
+ <div *ngIf="event" class="k-card-inner">
10608
+ <kendo-card-header>
10609
+ <ng-template
10610
+ *ngIf="headerTemplate"
10611
+ [ngTemplateOutlet]="headerTemplate?.templateRef"
10612
+ [ngTemplateOutletContext]="{ $implicit: event, index: index}">
10613
+ >
10614
+ </ng-template>
10615
+
10616
+ <div kendoCardTitle *ngIf="!headerTemplate">
10617
+ <span class="k-event-title">{{ event.title }}</span>
10618
+ <button
10619
+ kendoButton
10620
+ *ngIf="collapsible && orientation === 'vertical'"
10621
+ [icon]="calloutFontIcon"
10622
+ [svgIcon]="calloutSvgIcon"
10623
+ class="k-event-collapse"
10624
+ fillMode="flat"
10625
+ [attr.aria-hidden]="true"
10626
+ tabindex="-1"
10627
+ type="button"
10628
+ ></button>
10629
+ </div>
10630
+ <div kendoCardSubtitle *ngIf="!headerTemplate">{{ event.subtitle }}</div>
10631
+ </kendo-card-header>
10632
+
10633
+ <kendo-card-body
10634
+ *ngIf="event.description || event.images"
10635
+ [@toggle]="{value: expanded ? 'expanded' : 'collapsed', params: {animationDuration: this.animationDuration || 0}}"
10636
+ (@toggle.start)="animationStart()"
10637
+ (@toggle.done)="animationDone($event)"
10638
+ >
10639
+ <ng-template
10640
+ *ngIf="bodyTemplate"
10641
+ [ngTemplateOutlet]="bodyTemplate?.templateRef"
10642
+ [ngTemplateOutletContext]="{ $implicit: event, index: index}">
10643
+ >
10644
+ </ng-template>
10645
+
10646
+ <div *ngIf="!bodyTemplate" class="k-card-description">
10647
+ <p *ngIf="event.description">{{ event.description }}</p>
10648
+ <ng-container *ngFor="let image of event.images">
10649
+ <img *ngIf="image.alt" kendoCardMedia [src]="image.src" [alt]="image.alt" />
10650
+ <img *ngIf="!image.alt" kendoCardMedia [src]="image.src" />
10651
+ </ng-container>
10652
+ </div>
10653
+ </kendo-card-body>
10654
+
10655
+ <kendo-card-actions
10656
+ *ngIf="event.actions"
10657
+ [@toggle]="{value: expanded ? 'expanded' : 'collapsed', params: {animationDuration: this.animationDuration || 0}}"
10658
+ >
10659
+ <ng-template
10660
+ *ngIf="actionsTemplate"
10661
+ [ngTemplateOutlet]="actionsTemplate?.templateRef"
10662
+ [ngTemplateOutletContext]="{ $implicit: event, index: index}">
10663
+ >
10664
+ </ng-template>
10665
+
10666
+ <ng-container *ngIf="!actionsTemplate">
10667
+ <a *ngFor="let action of event.actions"
10668
+ [href]="action.url"
10669
+ [target]="action.target === 'blank' ? '_blank' : '_self'"
10670
+ (click)="onActionClick($event)"
10671
+ class="k-button k-button-md k-rounded-md k-button-flat k-button-flat-primary"
10672
+ role="button"
10673
+ >
10674
+ {{ action.text }}
10675
+ </a>
10676
+ </ng-container>
10677
+ </kendo-card-actions>
10678
+ </div>
10679
+ </kendo-card>
10680
+ `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: CardComponent, selector: "kendo-card", inputs: ["orientation", "width"] }, { kind: "component", type: CardHeaderComponent, selector: "kendo-card-header" }, { kind: "component", type: CardBodyComponent, selector: "kendo-card-body" }, { kind: "component", type: CardActionsComponent, selector: "kendo-card-actions", inputs: ["orientation", "layout", "actions"], outputs: ["action"] }, { kind: "directive", type: CardTitleDirective, selector: "[kendoCardTitle]" }, { kind: "directive", type: CardSubtitleDirective, selector: "[kendoCardSubtitle]" }, { kind: "directive", type: CardMediaDirective, selector: "[kendoCardMedia]" }, { kind: "component", type: i3$1.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], animations: [
10681
+ trigger('toggle', [
10682
+ state('collapsed', style({
10683
+ height: '0',
10684
+ 'overflow-y': 'hidden',
10685
+ display: 'none'
10686
+ })),
10687
+ state('expanded', style({
10688
+ height: '*',
10689
+ 'overflow-y': 'hidden',
10690
+ display: 'block'
10691
+ })),
10692
+ transition('collapsed <=> expanded', [
10693
+ animate('{{animationDuration}}ms')
10694
+ ], { params: { animationDuration: '400' } }),
10695
+ ])
10696
+ ] });
10697
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineCardComponent, decorators: [{
10698
+ type: Component,
10699
+ args: [{
10700
+ animations: [
10701
+ trigger('toggle', [
10702
+ state('collapsed', style({
10703
+ height: '0',
10704
+ 'overflow-y': 'hidden',
10705
+ display: 'none'
10706
+ })),
10707
+ state('expanded', style({
10708
+ height: '*',
10709
+ 'overflow-y': 'hidden',
10710
+ display: 'block'
10711
+ })),
10712
+ transition('collapsed <=> expanded', [
10713
+ animate('{{animationDuration}}ms')
10714
+ ], { params: { animationDuration: '400' } }),
10715
+ ])
10716
+ ],
10717
+ providers: [],
10718
+ exportAs: 'kendoTimelineCard',
10719
+ selector: 'kendo-timeline-card',
10720
+ template: `
10721
+ <kendo-card
10722
+ [ngStyle]="{ 'height': orientation === 'horizontal' ? eventHeight + 'px' : null }"
10723
+ [width]="orientation === 'horizontal' ? 'auto' : eventWidth + 'px'"
10724
+ class="k-card-with-callout k-card-vertical"
10725
+ (click)="toggle()"
10726
+ [attr.role]="role"
10727
+ [attr.aria-live]="ariaLive"
10728
+ [attr.aria-expanded]="ariaExpanded"
10729
+ [attr.tabindex]="tabIndex"
10730
+ >
10731
+ <span
10732
+ #callout
10733
+ *ngIf="event"
10734
+ class="k-timeline-card-callout k-card-callout"
10735
+ [ngClass]="{
10736
+ 'k-callout-n': orientation === 'horizontal',
10737
+ 'k-callout-w': orientation === 'vertical' && !this.reversed,
10738
+ 'k-callout-e': orientation === 'vertical' && this.reversed
10739
+ }"
10740
+ >
10741
+ </span>
10742
+ <div *ngIf="event" class="k-card-inner">
10743
+ <kendo-card-header>
10744
+ <ng-template
10745
+ *ngIf="headerTemplate"
10746
+ [ngTemplateOutlet]="headerTemplate?.templateRef"
10747
+ [ngTemplateOutletContext]="{ $implicit: event, index: index}">
10748
+ >
10749
+ </ng-template>
10750
+
10751
+ <div kendoCardTitle *ngIf="!headerTemplate">
10752
+ <span class="k-event-title">{{ event.title }}</span>
10753
+ <button
10754
+ kendoButton
10755
+ *ngIf="collapsible && orientation === 'vertical'"
10756
+ [icon]="calloutFontIcon"
10757
+ [svgIcon]="calloutSvgIcon"
10758
+ class="k-event-collapse"
10759
+ fillMode="flat"
10760
+ [attr.aria-hidden]="true"
10761
+ tabindex="-1"
10762
+ type="button"
10763
+ ></button>
10764
+ </div>
10765
+ <div kendoCardSubtitle *ngIf="!headerTemplate">{{ event.subtitle }}</div>
10766
+ </kendo-card-header>
10767
+
10768
+ <kendo-card-body
10769
+ *ngIf="event.description || event.images"
10770
+ [@toggle]="{value: expanded ? 'expanded' : 'collapsed', params: {animationDuration: this.animationDuration || 0}}"
10771
+ (@toggle.start)="animationStart()"
10772
+ (@toggle.done)="animationDone($event)"
10773
+ >
10774
+ <ng-template
10775
+ *ngIf="bodyTemplate"
10776
+ [ngTemplateOutlet]="bodyTemplate?.templateRef"
10777
+ [ngTemplateOutletContext]="{ $implicit: event, index: index}">
10778
+ >
10779
+ </ng-template>
10780
+
10781
+ <div *ngIf="!bodyTemplate" class="k-card-description">
10782
+ <p *ngIf="event.description">{{ event.description }}</p>
10783
+ <ng-container *ngFor="let image of event.images">
10784
+ <img *ngIf="image.alt" kendoCardMedia [src]="image.src" [alt]="image.alt" />
10785
+ <img *ngIf="!image.alt" kendoCardMedia [src]="image.src" />
10786
+ </ng-container>
10787
+ </div>
10788
+ </kendo-card-body>
10789
+
10790
+ <kendo-card-actions
10791
+ *ngIf="event.actions"
10792
+ [@toggle]="{value: expanded ? 'expanded' : 'collapsed', params: {animationDuration: this.animationDuration || 0}}"
10793
+ >
10794
+ <ng-template
10795
+ *ngIf="actionsTemplate"
10796
+ [ngTemplateOutlet]="actionsTemplate?.templateRef"
10797
+ [ngTemplateOutletContext]="{ $implicit: event, index: index}">
10798
+ >
10799
+ </ng-template>
10800
+
10801
+ <ng-container *ngIf="!actionsTemplate">
10802
+ <a *ngFor="let action of event.actions"
10803
+ [href]="action.url"
10804
+ [target]="action.target === 'blank' ? '_blank' : '_self'"
10805
+ (click)="onActionClick($event)"
10806
+ class="k-button k-button-md k-rounded-md k-button-flat k-button-flat-primary"
10807
+ role="button"
10808
+ >
10809
+ {{ action.text }}
10810
+ </a>
10811
+ </ng-container>
10812
+ </kendo-card-actions>
10813
+ </div>
10814
+ </kendo-card>
10815
+ `,
10816
+ }]
10817
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: TimelineService }, { type: i0.Renderer2 }]; }, propDecorators: { event: [{
10818
+ type: Input
10819
+ }], expanded: [{
10820
+ type: Input
10821
+ }], collapsible: [{
10822
+ type: Input
10823
+ }], reversed: [{
10824
+ type: Input
10825
+ }], orientation: [{
10826
+ type: Input
10827
+ }], navigable: [{
10828
+ type: Input
10829
+ }], tabIndex: [{
10830
+ type: Input
10831
+ }], animationDuration: [{
10832
+ type: Input
10833
+ }], index: [{
10834
+ type: Input
10835
+ }], eventWidth: [{
10836
+ type: Input
10837
+ }], eventHeight: [{
10838
+ type: Input
10839
+ }], headerTemplate: [{
10840
+ type: Input
10841
+ }], bodyTemplate: [{
10842
+ type: Input
10843
+ }], actionsTemplate: [{
10844
+ type: Input
10845
+ }], calloutStyle: [{
10846
+ type: Input
10847
+ }], calloutElementRef: [{
10848
+ type: ViewChild,
10849
+ args: ['callout']
10850
+ }], hostClass: [{
10851
+ type: HostBinding,
10852
+ args: ['class.k-timeline-card']
10853
+ }], collapsedClass: [{
10854
+ type: HostBinding,
10855
+ args: ['class.k-collapsed']
10856
+ }], onComponentKeyDown: [{
10857
+ type: HostListener,
10858
+ args: ['keydown', ['$event']]
10859
+ }] } });
10860
+
10861
+ const DEFAULT_TAB_WIDTH = 200;
10862
+ const SPACE_BETWEEN_TABS = 25;
10863
+ const TRANSITION_EVENTS_COUNT = 3;
10864
+ /**
10865
+ * @hidden
10866
+ */
10867
+ class TimelineHorizontalComponent {
10868
+ constructor(cdr, _zone, renderer, timelineService, localization) {
10869
+ this.cdr = cdr;
10870
+ this._zone = _zone;
10871
+ this.renderer = renderer;
10872
+ this.timelineService = timelineService;
10873
+ this.localization = localization;
10874
+ this.events = [];
10875
+ this.svgLeftIcon = caretAltLeftIcon;
10876
+ this.svgRightIcon = caretAltRightIcon;
10877
+ this.animationState = 'center';
10878
+ this.translateValue = 0;
10879
+ this.eventsInInterval = [0, 1, 2];
10880
+ this.selectedCardIndex = 0;
10881
+ this.tabWidth = DEFAULT_TAB_WIDTH;
10882
+ this.firstCircleInView = 0;
10883
+ this.visibleEvents = [];
10884
+ this.trackItems = [];
10885
+ this.previousTitle = 'previous';
10886
+ this.nextTitle = 'next';
10887
+ this.subscriptions = new Subscription();
10888
+ }
10889
+ get selectedEvent() {
10890
+ return this._selectedEvent;
10891
+ }
10892
+ set selectedEvent(value) {
10893
+ if (this._selectedEvent === value) {
10894
+ return;
10895
+ }
10896
+ const newSelectedIndex = this.events.findIndex(event => event === value);
10897
+ if (newSelectedIndex === -1 && value !== null) {
10898
+ return;
10899
+ }
10900
+ this._selectedEvent = value;
10901
+ this.selectedEventIndex = newSelectedIndex;
10902
+ this.calloutStyle = this.calloutOffset;
10903
+ }
10904
+ ngOnInit() {
10905
+ this._zone.runOutsideAngular(() => this.subscriptions.add(fromEvent(window, 'resize').subscribe(this.handleWindowResize.bind(this))));
10906
+ this.l10nChange();
10907
+ this.subscriptions.add(this.localization.changes.subscribe(this.l10nChange.bind(this)));
10908
+ if (this.events.length > 0) {
10909
+ this.selectedEvent = this.events[0];
10910
+ }
10911
+ this.events.forEach(event => {
10912
+ if (event.flag) {
10913
+ this.trackItems.push({ isFlag: event.flag });
10914
+ }
10915
+ this.trackItems.push(event);
10916
+ });
10917
+ }
10918
+ ngAfterViewInit() {
10919
+ this.subscriptions.add(this.renderer.listen(this.trackElementRef.nativeElement, 'keydown', this.onKeyDown.bind(this)));
10920
+ this.trackWrapWidth = this.trackElementRef.nativeElement.getBoundingClientRect().width;
10921
+ this.scrollableTrackWidth = this.scrollableTrackElementRef.nativeElement.getBoundingClientRect().width;
10922
+ this._zone.runOutsideAngular(() => {
10923
+ this.onCirclesChange();
10924
+ this.subscriptions.add(this.circleElementRefs.changes.subscribe(this.onCirclesChange.bind(this)));
10925
+ this.subscriptions.add(this.cardElementRefs.changes.subscribe(this.onCardsChange.bind(this)));
10926
+ });
10927
+ if (this.events.length === 0) {
10928
+ return;
10929
+ }
10930
+ this.onCardsChange();
10931
+ if (this.cardComponents.get(this.selectedCardIndex)) {
10932
+ this.cardComponents.get(this.selectedCardIndex).calloutStyle = this.calloutOffset;
10933
+ this.focusTrackItem(0);
10934
+ }
10935
+ }
10936
+ ngOnChanges(changes) {
10937
+ if (isChanged('events', changes)) {
10938
+ if (!this.events || this.events.length === 0) {
10939
+ this.selectedEvent = null;
10940
+ this.trackItems = [];
10941
+ this.visibleEvents = [];
10942
+ }
10943
+ else {
10944
+ this.trackItems = [];
10945
+ this.events.forEach(event => {
10946
+ if (event.flag) {
10947
+ this.trackItems.push({ isFlag: event.flag });
10948
+ }
10949
+ this.trackItems.push(event);
10950
+ });
10951
+ this.visibleEvents = this.trackItems
10952
+ .slice(this.firstCircleInView, this.firstCircleInView + this.visibleTabsCount)
10953
+ .filter(event => !event.isFlag);
10954
+ this.selectedEvent = this.events[0];
10955
+ this.cdr.detectChanges();
10956
+ this.calloutStyle = this.calloutOffset;
10957
+ this.focusTrackItem(0);
10958
+ }
10959
+ }
10960
+ }
10961
+ ngOnDestroy() {
10962
+ this.subscriptions.unsubscribe();
10963
+ }
10964
+ handleWindowResize() {
10965
+ if (this.trackWrapWidth === this.trackElementRef.nativeElement.getBoundingClientRect().width) {
10966
+ return;
10967
+ }
10968
+ this.cardWidth = this.cardComponents.get(this.selectedCardIndex).element.nativeElement.offsetWidth;
10969
+ this.transformCards();
10970
+ this.trackWrapWidth = this.trackElementRef.nativeElement.getBoundingClientRect().width;
10971
+ this.scrollableTrackWidth = this.scrollableTrackElementRef.nativeElement.getBoundingClientRect().width;
10972
+ this.changeTabsCount();
10973
+ this._zone.run(() => {
10974
+ this.cardComponents.get(this.selectedCardIndex).calloutStyle = this.calloutOffset;
10975
+ });
10976
+ }
10977
+ onTransitionEnd() {
10978
+ var _a;
10979
+ (_a = this.cardElementRefs) === null || _a === void 0 ? void 0 : _a.forEach(card => this.renderer.removeStyle(card.nativeElement, 'transition-duration'));
10980
+ this.cardComponents.get(this.selectedCardIndex).event = this.selectedEvent;
10981
+ this.calloutStyle = this.calloutOffset;
10982
+ }
10983
+ onTrackTransitionEnd() {
10984
+ this.calloutStyle = this.calloutOffset;
10985
+ }
10986
+ onSlideDone() {
10987
+ this.calloutStyle = this.calloutOffset;
10988
+ }
10989
+ previous() {
10990
+ if (this.firstCircleInView === 0) {
10991
+ return;
10992
+ }
10993
+ this.updateInterval(false);
10994
+ }
10995
+ previousClick() {
10996
+ this.previous();
10997
+ this.timelineService.onNavigate('previous');
10998
+ }
10999
+ next() {
11000
+ if (!this.visibleTabsCount || this.firstCircleInView + this.visibleTabsCount > this.trackItems.length) {
11001
+ return;
11002
+ }
11003
+ this.updateInterval(true);
11004
+ }
11005
+ nextClick() {
11006
+ this.next();
11007
+ this.timelineService.onNavigate('next');
11008
+ }
11009
+ open(index) {
11010
+ if (index < 0 || index >= this.events.length) {
11011
+ return;
11012
+ }
11013
+ if (this.visibleEvents.findIndex(event => event === this.events[index]) === -1) {
11014
+ // determine the start and end of the interval that the event belongs to, regardless of its position in the interval
11015
+ const trackItemIndex = this.trackItems.findIndex(event => event === this.events[index]);
11016
+ const start = Math.floor(trackItemIndex / this.visibleTabsCount) * this.visibleTabsCount;
11017
+ this.navigateToInterval(start, index);
11018
+ }
11019
+ this.selectedEvent = this.events[index];
11020
+ this.selectedCardIndex = this.getOtherSelectedCardIndex(index > this.selectedEventIndex);
11021
+ this.calloutStyle = this.calloutOffset;
11022
+ this.focusTrackItem(this.selectedEventIndex);
11023
+ this.animateCards();
11024
+ }
11025
+ navigateToEvent(index) {
11026
+ const eventIndex = this.events.findIndex(event => event === this.trackItems[index]);
11027
+ if (this.selectedEventIndex === eventIndex) {
11028
+ return;
11029
+ }
11030
+ this.selectedEvent = this.events[eventIndex];
11031
+ this.selectedCardIndex = this.getOtherSelectedCardIndex(index > eventIndex);
11032
+ this.calloutStyle = this.calloutOffset;
11033
+ this.animateCards();
11034
+ }
11035
+ getOtherSelectedCardIndex(forward) {
11036
+ // change the selected card which changes all cards' transform styles
11037
+ if (forward) {
11038
+ return this.selectedCardIndex === 0 ? TRANSITION_EVENTS_COUNT - 1 : this.selectedCardIndex - 1;
11039
+ }
11040
+ return this.selectedCardIndex === TRANSITION_EVENTS_COUNT - 1 ? 0 : this.selectedCardIndex + 1;
11041
+ }
11042
+ tabStyle() {
11043
+ if (!this.tabFlex) {
11044
+ return {};
11045
+ }
11046
+ return { 'flex': `1 0 ${this.tabFlex}%` };
11047
+ }
11048
+ getTransformation(width, position) {
11049
+ if (position === this.selectedCardIndex - 1 || position === this.selectedCardIndex + 2) {
11050
+ return `translate3d(${-width}px, 0, 0)`;
11051
+ }
11052
+ if (position === this.selectedCardIndex + 1 || position === this.selectedCardIndex - 2) {
11053
+ return `translate3d(${width}px, 0, 0)`;
11054
+ }
11055
+ return `translate3d(0, 0, 0)`;
11056
+ }
11057
+ getState(position) {
11058
+ if (position === this.selectedCardIndex) {
11059
+ return 'center';
11060
+ }
11061
+ if (position === this.selectedCardIndex - 1 || position === this.selectedCardIndex + 2) {
11062
+ return 'left';
11063
+ }
11064
+ return 'right';
11065
+ }
11066
+ get calloutOffset() {
11067
+ var _a;
11068
+ if (!((_a = this.circleElementRefs) === null || _a === void 0 ? void 0 : _a.first) || !this.trackElementRef || !isPresent$1(this.selectedEventIndex)) {
11069
+ return {};
11070
+ }
11071
+ const circleCenter = this.circleElementRefs.get(this.selectedEventIndex).nativeElement.getBoundingClientRect().left +
11072
+ this.circleElementRefs.get(this.selectedEventIndex).nativeElement.offsetWidth / 2;
11073
+ const trackOffset = this.trackElementRef.nativeElement.getBoundingClientRect().left;
11074
+ return { left: `${circleCenter - trackOffset}px` };
11075
+ }
11076
+ get isFirstRange() {
11077
+ return this.firstCircleInView === 0;
11078
+ }
11079
+ get isLastRange() {
11080
+ var _a, _b;
11081
+ if (!((_a = this.circleElementRefs) === null || _a === void 0 ? void 0 : _a.first) && !((_b = this.flagElementRefs) === null || _b === void 0 ? void 0 : _b.first)) {
11082
+ return false;
11083
+ }
11084
+ return this.trackItems.length === 0 ||
11085
+ this.firstCircleInView + this.visibleTabsCount >= this.trackItems.length;
11086
+ }
11087
+ onCardsChange() {
11088
+ var _a;
11089
+ if ((_a = this.cardElementRefs) === null || _a === void 0 ? void 0 : _a.get(this.selectedCardIndex)) {
11090
+ this.cardWidth = this.cardElementRefs.get(this.selectedCardIndex).nativeElement.offsetWidth;
11091
+ this.transformCards();
11092
+ }
11093
+ }
11094
+ onCirclesChange() {
11095
+ var _a;
11096
+ if (!((_a = this.circleElementRefs) === null || _a === void 0 ? void 0 : _a.first)) {
11097
+ return;
11098
+ }
11099
+ this.circleElementRefs
11100
+ .map(element => element.nativeElement)
11101
+ .forEach((element, index) => {
11102
+ this.subscriptions.add(this.renderer.listen(element, 'click', () => {
11103
+ this.focusTrackItem(index);
11104
+ }));
11105
+ });
11106
+ const width = this.circleElementRefs.first.nativeElement.getBoundingClientRect().width;
11107
+ if (width > DEFAULT_TAB_WIDTH) {
11108
+ this.tabWidth = this.circleElementRefs.first.nativeElement.getBoundingClientRect().width + SPACE_BETWEEN_TABS;
11109
+ }
11110
+ this.changeTabsCount();
11111
+ this.visibleEvents = this.trackItems
11112
+ .slice(this.firstCircleInView, this.firstCircleInView + this.visibleTabsCount)
11113
+ .filter(event => !event.isFlag);
11114
+ }
11115
+ onKeyDown(event) {
11116
+ if (!this.navigable) {
11117
+ return;
11118
+ }
11119
+ if (event.keyCode === Keys.Home) {
11120
+ this.onHomeKey();
11121
+ }
11122
+ else if (event.keyCode === Keys.End) {
11123
+ this.onEndKey();
11124
+ }
11125
+ else if (event.keyCode === Keys.ArrowRight) {
11126
+ this.onArrowRightKey();
11127
+ }
11128
+ else if (event.keyCode === Keys.ArrowLeft) {
11129
+ this.onArrowLeftKey();
11130
+ }
11131
+ }
11132
+ focusTrackItem(index) {
11133
+ if (!this.circleElementRefs || index < 0 || index >= this.circleElementRefs.length) {
11134
+ return;
11135
+ }
11136
+ const selectedTrackItem = this.circleElementRefs
11137
+ .find(element => element.nativeElement.hasAttribute('aria-selected'));
11138
+ if (selectedTrackItem) {
11139
+ this.removeTrackItemAttributes(selectedTrackItem);
11140
+ this.removeCardsAttributes();
11141
+ }
11142
+ const newTrackItem = this.circleElementRefs.get(index).nativeElement;
11143
+ this.setTrackItemAttributes(newTrackItem, index);
11144
+ }
11145
+ setTrackItemAttributes(element, index) {
11146
+ const innerCard = this.cardComponents.get(this.selectedCardIndex).element.nativeElement.querySelector('.k-card');
11147
+ const selectedCircle = this.circleElementRefs.get(index).nativeElement;
11148
+ this.renderer.addClass(element, 'k-focus');
11149
+ this.renderer.setAttribute(element, 'aria-selected', 'true');
11150
+ this.assignAriaLabel(innerCard, selectedCircle);
11151
+ this.assignAriaDescribedBy(innerCard, selectedCircle);
11152
+ }
11153
+ removeTrackItemAttributes(element) {
11154
+ this.renderer.removeClass(element.nativeElement, 'k-focus');
11155
+ this.renderer.removeAttribute(element.nativeElement, 'aria-selected');
11156
+ this.renderer.removeAttribute(element.nativeElement, 'id');
11157
+ this.renderer.removeAttribute(element.nativeElement, 'aria-describedby');
11158
+ }
11159
+ removeCardsAttributes() {
11160
+ this.cardElementRefs.forEach(card => {
11161
+ this.renderer.removeAttribute(card.nativeElement.querySelector('.k-card'), 'id');
11162
+ this.renderer.removeAttribute(card.nativeElement.querySelector('.k-card'), 'aria-label');
11163
+ });
11164
+ }
11165
+ assignAriaLabel(cardElement, dateElement) {
11166
+ const dateLabelId = `k-${guid()}`;
11167
+ this.renderer.setAttribute(dateElement, 'id', dateLabelId);
11168
+ this.renderer.setAttribute(cardElement, 'aria-label', dateLabelId);
11169
+ }
11170
+ assignAriaDescribedBy(cardElement, dateElement) {
11171
+ const cardId = `k-${guid()}`;
11172
+ this.renderer.setAttribute(cardElement, 'id', cardId);
11173
+ this.renderer.setAttribute(dateElement, 'aria-describedby', cardId);
11174
+ }
11175
+ updateInterval(forward) {
11176
+ let start = forward ? this.firstCircleInView + this.visibleTabsCount : this.firstCircleInView - this.visibleTabsCount;
11177
+ if (start < 0 || start >= this.trackItems.length) {
11178
+ start = 0;
11179
+ }
11180
+ this.navigateToInterval(start, 0, forward, !forward);
11181
+ }
11182
+ onHomeKey() {
11183
+ this.navigateToFirstInterval();
11184
+ }
11185
+ onEndKey() {
11186
+ this.navigateToLastInterval();
11187
+ }
11188
+ onArrowRightKey() {
11189
+ this.navigateToOtherEvent(true);
11190
+ }
11191
+ onArrowLeftKey() {
11192
+ this.navigateToOtherEvent(false);
11193
+ }
11194
+ navigateToFirstInterval() {
11195
+ this.navigateToInterval(0);
11196
+ }
11197
+ navigateToLastInterval() {
11198
+ const start = Math.floor(this.trackItems.length / this.visibleTabsCount) * this.visibleTabsCount;
11199
+ this.navigateToInterval(start, this.events.length - 1);
11200
+ }
11201
+ navigateToOtherEvent(direction) {
11202
+ const offset = direction ? 1 : -1;
11203
+ const newIndex = this.selectedEventIndex + offset;
11204
+ if (newIndex < 0 || newIndex >= this.events.length) {
11205
+ return;
11206
+ }
11207
+ if (this.visibleEvents.findIndex(event => event === this.events[newIndex]) === -1) {
11208
+ this.updateInterval(direction);
11209
+ }
11210
+ else {
11211
+ this.selectedEvent = this.events[newIndex];
11212
+ this.selectedCardIndex = this.getOtherSelectedCardIndex(direction);
11213
+ this.focusTrackItem(this.selectedEventIndex);
11214
+ this.animateCards();
11215
+ this.cdr.markForCheck();
11216
+ }
11217
+ }
11218
+ navigateToInterval(start, selectedIndex = 0, selectFirst = false, selectLast = false) {
11219
+ const end = start + this.visibleTabsCount < this.trackItems.length ? start + this.visibleTabsCount : undefined;
11220
+ const forward = this.firstCircleInView < start;
11221
+ this.firstCircleInView = start;
11222
+ const interval = Math.floor(start / this.visibleTabsCount);
11223
+ this.translateValue = interval * -100;
11224
+ this.animationState = forward ? 'right' : 'left';
11225
+ this.visibleEvents = this.trackItems.slice(this.firstCircleInView, end).filter(event => !event.isFlag);
11226
+ if (selectFirst) {
11227
+ this.selectedEvent = this.visibleEvents[0];
11228
+ }
11229
+ else if (selectLast) {
11230
+ this.selectedEvent = this.visibleEvents[this.visibleEvents.length - 1];
11231
+ }
11232
+ else {
11233
+ this.selectedEvent = this.events[selectedIndex];
11234
+ }
11235
+ this.selectedCardIndex = this.getOtherSelectedCardIndex(forward);
11236
+ this.cdr.detectChanges();
11237
+ this.focusTrackItem(this.selectedEventIndex);
11238
+ this.animateCards();
11239
+ this.calloutStyle = this.calloutOffset;
11240
+ this.cdr.markForCheck();
11241
+ }
11242
+ animateCards() {
11243
+ if (this.animationDuration) {
11244
+ this.cardComponents.get(this.selectedCardIndex).event = null;
11245
+ }
11246
+ this.cardElementRefs.forEach((card, index) => {
11247
+ this.renderer.setStyle(card.nativeElement, 'transform', this.getTransformation(this.cardWidth, index));
11248
+ this.renderer.setStyle(card.nativeElement, 'transition-duration', `${this.animationDuration || 0}ms`);
11249
+ });
11250
+ }
11251
+ transformCards() {
11252
+ this.cardElementRefs.forEach((card, index) => this.renderer.setStyle(card.nativeElement, 'transform', this.getTransformation(this.cardWidth, index)));
11253
+ }
11254
+ changeTabsCount() {
11255
+ this.visibleTabsCount = Math.round(this.scrollableTrackWidth / this.tabWidth);
11256
+ if (this.tabFlex !== 100 / this.visibleTabsCount) {
11257
+ this.tabFlex = 100 / this.visibleTabsCount;
11258
+ this.circleElementRefs.forEach(item => this.renderer.setStyle(item.nativeElement, 'flex', `1 0 ${this.tabFlex}%`));
11259
+ this.flagElementRefs.forEach(item => this.renderer.setStyle(item.nativeElement, 'flex', `1 0 ${this.tabFlex}%`));
11260
+ this.cdr.detectChanges();
11261
+ this.visibleEvents = this.trackItems
11262
+ .slice(this.firstCircleInView, this.firstCircleInView + this.visibleTabsCount)
11263
+ .filter(event => !event.isFlag);
11264
+ if (!this.visibleEvents.find(event => event === this.selectedEvent)) {
11265
+ const trackItemIndex = this.trackItems.findIndex(event => event === this.selectedEvent);
11266
+ this.navigateToInterval(trackItemIndex, this.selectedEventIndex);
11267
+ }
11268
+ }
11269
+ }
11270
+ l10nChange() {
11271
+ if (this.localization.get('previous')) {
11272
+ this.previousTitle = this.localization.get('previous');
11273
+ }
11274
+ if (this.localization.get('next')) {
11275
+ this.nextTitle = this.localization.get('next');
11276
+ }
11277
+ this.cdr.markForCheck();
11278
+ }
11279
+ }
11280
+ TimelineHorizontalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineHorizontalComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: TimelineService }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
11281
+ TimelineHorizontalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TimelineHorizontalComponent, selector: "kendo-timeline-horizontal", inputs: { events: "events", alterMode: "alterMode", collapsibleEvents: "collapsibleEvents", navigable: "navigable", showDateLabels: "showDateLabels", animationDuration: "animationDuration", eventHeight: "eventHeight", dateFormat: "dateFormat", headerTemplate: "headerTemplate", bodyTemplate: "bodyTemplate", actionsTemplate: "actionsTemplate" }, providers: [], viewQueries: [{ propertyName: "trackElementRef", first: true, predicate: ["track"], descendants: true }, { propertyName: "scrollableTrackElementRef", first: true, predicate: ["scrollableTrack"], descendants: true }, { propertyName: "cardElementRefs", predicate: ["card"], descendants: true, read: ElementRef }, { propertyName: "circleElementRefs", predicate: ["trackCircle"], descendants: true }, { propertyName: "flagElementRefs", predicate: ["trackFlag"], descendants: true }, { propertyName: "cardComponents", predicate: TimelineCardComponent, descendants: true }], exportAs: ["kendoTimelineHorizontal"], usesOnChanges: true, ngImport: i0, template: `
11282
+ <div class="k-timeline-track-wrap" #track>
11283
+ <button
11284
+ kendoButton
11285
+ [svgIcon]="svgLeftIcon"
11286
+ class="k-timeline-arrow k-timeline-arrow-left"
11287
+ rounded="full"
11288
+ [title]="previousTitle"
11289
+ (click)="previousClick()"
11290
+ [disabled]="isFirstRange"
11291
+ [attr.aria-hidden]="true"
11292
+ tabindex="-1"
11293
+ type="button"
11294
+ ></button>
11295
+ <button
11296
+ kendoButton
11297
+ [svgIcon]="svgRightIcon"
11298
+ class="k-timeline-arrow k-timeline-arrow-right"
11299
+ rounded="full"
11300
+ [title]="nextTitle"
11301
+ (click)="nextClick()"
11302
+ [disabled]="isLastRange"
11303
+ [attr.aria-hidden]="true"
11304
+ tabindex="-1"
11305
+ type="button"
11306
+ ></button>
11307
+ <div class="k-timeline-track">
11308
+ <ul class="k-timeline-scrollable-wrap"
11309
+ #scrollableTrack
11310
+ [attr.role]="'tablist'"
11311
+ [attr.tabindex]="'0'"
11312
+ [@trackSlide]="{value: animationState, params: {transformValue: this.translateValue}}"
11313
+ (@trackSlide.done)="onSlideDone()"
11314
+ (transitionend)="onTrackTransitionEnd()"
11315
+ >
11316
+ <ng-container *ngFor="let event of trackItems; let index = index">
11317
+ <li
11318
+ #trackFlag
11319
+ *ngIf="event.isFlag"
11320
+ class="k-timeline-flag-wrap k-timeline-track-item"
11321
+ [attr.role]="'none'"
11322
+ [attr.aria-hidden]="true"
11323
+ [ngStyle]="tabStyle()"
11324
+ >
11325
+ <span class="k-timeline-flag">{{ event.isFlag }}</span>
11326
+ </li>
11327
+ <li
11328
+ *ngIf="!event.isFlag"
11329
+ #trackCircle
11330
+ class="k-timeline-track-item"
11331
+ [attr.role]="'tab'"
11332
+ (click)="navigateToEvent(index)"
11333
+ [ngStyle]="tabStyle()"
11334
+ >
11335
+ <div class="k-timeline-date-wrap">
11336
+ <span *ngIf="showDateLabels" class="k-timeline-date">
11337
+ {{ event.date | kendoDate: dateFormat }}
11338
+ </span>
11339
+ </div>
11340
+ <span class="k-timeline-circle"></span>
11341
+ </li>
11342
+ </ng-container>
11343
+ </ul>
11344
+ </div>
11345
+ </div>
11346
+ <div class="k-timeline-events-list">
11347
+ <ul
11348
+ *ngIf="selectedEvent"
11349
+ class="k-timeline-scrollable-wrap"
11350
+ [@eventsSlide]="{value: animationState, params: {animationDuration: this.animationDuration || 0}}"
11351
+ (@eventsSlide.done)="onSlideDone()"
11352
+ [ngStyle]="{'transform-origin': 'left top'}"
11353
+ >
11354
+ <li *ngFor="let event of eventsInInterval; let index = index"
11355
+ #card
11356
+ class="k-timeline-event"
11357
+ (transitionend)="onTransitionEnd()"
11358
+ >
11359
+ <kendo-timeline-card
11360
+ [event]="selectedCardIndex === index ? selectedEvent : null"
11361
+ [expanded]="true"
11362
+ [collapsible]="collapsibleEvents"
11363
+ [calloutStyle]="selectedCardIndex === index ? calloutStyle : {}"
11364
+ [ngStyle]="{visibility: selectedCardIndex === index ? 'visible' : 'hidden' }"
11365
+ [tabIndex]="selectedCardIndex === index ? '0' : '-1'"
11366
+ [navigable]="navigable"
11367
+ [index]="selectedEventIndex"
11368
+ [headerTemplate]="headerTemplate"
11369
+ [bodyTemplate]="bodyTemplate"
11370
+ [actionsTemplate]="actionsTemplate"
11371
+ [eventHeight]="eventHeight"
11372
+ orientation="horizontal"
11373
+ >
11374
+ </kendo-timeline-card>
11375
+ </li>
11376
+ </ul>
11377
+ </div>
11378
+ `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3$1.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: TimelineCardComponent, selector: "kendo-timeline-card", inputs: ["event", "expanded", "collapsible", "reversed", "orientation", "navigable", "tabIndex", "animationDuration", "index", "eventWidth", "eventHeight", "headerTemplate", "bodyTemplate", "actionsTemplate", "calloutStyle"], exportAs: ["kendoTimelineCard"] }, { kind: "pipe", type: i6.DatePipe, name: "kendoDate" }], animations: [
11379
+ trigger('trackSlide', [
11380
+ state('left', style({
11381
+ transform: `translateX({{transformValue}}%)`,
11382
+ }), { params: { transformValue: '0' } }),
11383
+ state('right', style({
11384
+ transform: `translateX({{transformValue}}%)`,
11385
+ }), { params: { transformValue: '0' } }),
11386
+ state('center', style({
11387
+ transform: `translateX(0)`,
11388
+ }))
11389
+ ]),
11390
+ trigger('eventsSlide', [
11391
+ transition('* => right', [
11392
+ animate('{{animationDuration}}ms', style({ transform: `translateX(-100%)` }))
11393
+ ], { params: { animationDuration: '400' } }),
11394
+ transition('* => left', [
11395
+ animate('{{animationDuration}}ms', style({ transform: `translateX(100%)` }))
11396
+ ], { params: { animationDuration: '400' } })
11397
+ ])
11398
+ ] });
11399
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineHorizontalComponent, decorators: [{
11400
+ type: Component,
11401
+ args: [{
11402
+ animations: [
11403
+ trigger('trackSlide', [
11404
+ state('left', style({
11405
+ transform: `translateX({{transformValue}}%)`,
11406
+ }), { params: { transformValue: '0' } }),
11407
+ state('right', style({
11408
+ transform: `translateX({{transformValue}}%)`,
11409
+ }), { params: { transformValue: '0' } }),
11410
+ state('center', style({
11411
+ transform: `translateX(0)`,
11412
+ }))
11413
+ ]),
11414
+ trigger('eventsSlide', [
11415
+ transition('* => right', [
11416
+ animate('{{animationDuration}}ms', style({ transform: `translateX(-100%)` }))
11417
+ ], { params: { animationDuration: '400' } }),
11418
+ transition('* => left', [
11419
+ animate('{{animationDuration}}ms', style({ transform: `translateX(100%)` }))
11420
+ ], { params: { animationDuration: '400' } })
11421
+ ])
11422
+ ],
11423
+ providers: [],
11424
+ exportAs: 'kendoTimelineHorizontal',
11425
+ selector: 'kendo-timeline-horizontal',
11426
+ template: `
11427
+ <div class="k-timeline-track-wrap" #track>
11428
+ <button
11429
+ kendoButton
11430
+ [svgIcon]="svgLeftIcon"
11431
+ class="k-timeline-arrow k-timeline-arrow-left"
11432
+ rounded="full"
11433
+ [title]="previousTitle"
11434
+ (click)="previousClick()"
11435
+ [disabled]="isFirstRange"
11436
+ [attr.aria-hidden]="true"
11437
+ tabindex="-1"
11438
+ type="button"
11439
+ ></button>
11440
+ <button
11441
+ kendoButton
11442
+ [svgIcon]="svgRightIcon"
11443
+ class="k-timeline-arrow k-timeline-arrow-right"
11444
+ rounded="full"
11445
+ [title]="nextTitle"
11446
+ (click)="nextClick()"
11447
+ [disabled]="isLastRange"
11448
+ [attr.aria-hidden]="true"
11449
+ tabindex="-1"
11450
+ type="button"
11451
+ ></button>
11452
+ <div class="k-timeline-track">
11453
+ <ul class="k-timeline-scrollable-wrap"
11454
+ #scrollableTrack
11455
+ [attr.role]="'tablist'"
11456
+ [attr.tabindex]="'0'"
11457
+ [@trackSlide]="{value: animationState, params: {transformValue: this.translateValue}}"
11458
+ (@trackSlide.done)="onSlideDone()"
11459
+ (transitionend)="onTrackTransitionEnd()"
11460
+ >
11461
+ <ng-container *ngFor="let event of trackItems; let index = index">
11462
+ <li
11463
+ #trackFlag
11464
+ *ngIf="event.isFlag"
11465
+ class="k-timeline-flag-wrap k-timeline-track-item"
11466
+ [attr.role]="'none'"
11467
+ [attr.aria-hidden]="true"
11468
+ [ngStyle]="tabStyle()"
11469
+ >
11470
+ <span class="k-timeline-flag">{{ event.isFlag }}</span>
11471
+ </li>
11472
+ <li
11473
+ *ngIf="!event.isFlag"
11474
+ #trackCircle
11475
+ class="k-timeline-track-item"
11476
+ [attr.role]="'tab'"
11477
+ (click)="navigateToEvent(index)"
11478
+ [ngStyle]="tabStyle()"
11479
+ >
11480
+ <div class="k-timeline-date-wrap">
11481
+ <span *ngIf="showDateLabels" class="k-timeline-date">
11482
+ {{ event.date | kendoDate: dateFormat }}
11483
+ </span>
11484
+ </div>
11485
+ <span class="k-timeline-circle"></span>
11486
+ </li>
11487
+ </ng-container>
11488
+ </ul>
11489
+ </div>
11490
+ </div>
11491
+ <div class="k-timeline-events-list">
11492
+ <ul
11493
+ *ngIf="selectedEvent"
11494
+ class="k-timeline-scrollable-wrap"
11495
+ [@eventsSlide]="{value: animationState, params: {animationDuration: this.animationDuration || 0}}"
11496
+ (@eventsSlide.done)="onSlideDone()"
11497
+ [ngStyle]="{'transform-origin': 'left top'}"
11498
+ >
11499
+ <li *ngFor="let event of eventsInInterval; let index = index"
11500
+ #card
11501
+ class="k-timeline-event"
11502
+ (transitionend)="onTransitionEnd()"
11503
+ >
11504
+ <kendo-timeline-card
11505
+ [event]="selectedCardIndex === index ? selectedEvent : null"
11506
+ [expanded]="true"
11507
+ [collapsible]="collapsibleEvents"
11508
+ [calloutStyle]="selectedCardIndex === index ? calloutStyle : {}"
11509
+ [ngStyle]="{visibility: selectedCardIndex === index ? 'visible' : 'hidden' }"
11510
+ [tabIndex]="selectedCardIndex === index ? '0' : '-1'"
11511
+ [navigable]="navigable"
11512
+ [index]="selectedEventIndex"
11513
+ [headerTemplate]="headerTemplate"
11514
+ [bodyTemplate]="bodyTemplate"
11515
+ [actionsTemplate]="actionsTemplate"
11516
+ [eventHeight]="eventHeight"
11517
+ orientation="horizontal"
11518
+ >
11519
+ </kendo-timeline-card>
11520
+ </li>
11521
+ </ul>
11522
+ </div>
11523
+ `,
11524
+ }]
11525
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: TimelineService }, { type: i1.LocalizationService }]; }, propDecorators: { events: [{
11526
+ type: Input
11527
+ }], alterMode: [{
11528
+ type: Input
11529
+ }], collapsibleEvents: [{
11530
+ type: Input
11531
+ }], navigable: [{
11532
+ type: Input
11533
+ }], showDateLabels: [{
11534
+ type: Input
11535
+ }], animationDuration: [{
11536
+ type: Input
11537
+ }], eventHeight: [{
11538
+ type: Input
11539
+ }], dateFormat: [{
11540
+ type: Input
11541
+ }], headerTemplate: [{
11542
+ type: Input
11543
+ }], bodyTemplate: [{
11544
+ type: Input
11545
+ }], actionsTemplate: [{
11546
+ type: Input
11547
+ }], cardElementRefs: [{
11548
+ type: ViewChildren,
11549
+ args: ['card', { read: ElementRef }]
11550
+ }], circleElementRefs: [{
11551
+ type: ViewChildren,
11552
+ args: ['trackCircle']
11553
+ }], flagElementRefs: [{
11554
+ type: ViewChildren,
11555
+ args: ['trackFlag']
11556
+ }], trackElementRef: [{
11557
+ type: ViewChild,
11558
+ args: ['track']
11559
+ }], scrollableTrackElementRef: [{
11560
+ type: ViewChild,
11561
+ args: ['scrollableTrack']
11562
+ }], cardComponents: [{
11563
+ type: ViewChildren,
11564
+ args: [TimelineCardComponent]
11565
+ }] } });
11566
+
11567
+ /**
11568
+ * @hidden
11569
+ */
11570
+ class TimelineVerticalComponent {
11571
+ constructor(renderer) {
11572
+ this.renderer = renderer;
11573
+ this.events = [];
11574
+ this.subscriptions = new Subscription();
11575
+ }
11576
+ ngAfterViewInit() {
11577
+ this.ariaDescribedByAllEvents();
11578
+ this.subscriptions.add(this.innerDateElementRefs.changes.subscribe(() => {
11579
+ var _a;
11580
+ if (((_a = this.innerDateElementRefs) === null || _a === void 0 ? void 0 : _a.length) > 0) {
11581
+ this.ariaDescribedByAllEvents();
11582
+ }
11583
+ else {
11584
+ this.removeAriaDescribedBy();
11585
+ }
11586
+ }));
11587
+ }
11588
+ expand(index) {
11589
+ if (index < 0 || index >= this.cards.length) {
11590
+ return;
11591
+ }
11592
+ this.cards.get(index).expand();
11593
+ }
11594
+ collapse(index) {
11595
+ if (index < 0 || index >= this.cards.length) {
11596
+ return;
11597
+ }
11598
+ this.cards.get(index).collapse();
11599
+ }
11600
+ ariaDescribedByAllEvents() {
11601
+ var _a;
11602
+ (_a = this.cards) === null || _a === void 0 ? void 0 : _a.forEach((card, index) => {
11603
+ const innerCard = card.element.nativeElement.querySelector('.k-card');
11604
+ const innerDate = this.dateElementRefs.get(index).nativeElement.querySelector('.k-timeline-date');
11605
+ if (innerDate) {
11606
+ this.assignAriaDescribedBy(innerCard, innerDate);
11607
+ }
11608
+ });
11609
+ }
11610
+ removeAriaDescribedBy() {
11611
+ var _a;
11612
+ (_a = this.cards) === null || _a === void 0 ? void 0 : _a.forEach(card => {
11613
+ const innerCard = card.element.nativeElement.querySelector('.k-card');
11614
+ this.renderer.removeAttribute(innerCard, 'aria-describedby');
11615
+ });
11616
+ }
11617
+ assignAriaDescribedBy(cardElement, dateElement) {
11618
+ const dateLabelId = `k-${guid()}`;
11619
+ this.renderer.setAttribute(dateElement, 'id', dateLabelId);
11620
+ this.renderer.setAttribute(cardElement, 'aria-describedby', dateLabelId);
11621
+ }
11622
+ }
11623
+ TimelineVerticalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineVerticalComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
11624
+ TimelineVerticalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TimelineVerticalComponent, selector: "kendo-timeline-vertical", inputs: { events: "events", alterMode: "alterMode", collapsibleEvents: "collapsibleEvents", navigable: "navigable", showDateLabels: "showDateLabels", animationDuration: "animationDuration", eventWidth: "eventWidth", dateFormat: "dateFormat", headerTemplate: "headerTemplate", bodyTemplate: "bodyTemplate", actionsTemplate: "actionsTemplate" }, providers: [], viewQueries: [{ propertyName: "cards", predicate: ["card"], descendants: true }, { propertyName: "dateElementRefs", predicate: ["dateWrap"], descendants: true }, { propertyName: "innerDateElementRefs", predicate: ["innerDate"], descendants: true }], exportAs: ["kendoTimelineVertical"], ngImport: i0, template: `
11625
+ <ul *ngIf="events && events.length > 0">
11626
+ <ng-container *ngFor="let event of events; let i = index">
11627
+ <li class="k-timeline-flag-wrap" *ngIf="event.flag">
11628
+ <span class="k-timeline-flag">{{ event.flag }}</span>
11629
+ </li>
11630
+ <li class="k-timeline-event" [ngClass]="{ 'k-reverse': alterMode && i % 2 === 0 }">
11631
+ <div class="k-timeline-date-wrap" #dateWrap>
11632
+ <span *ngIf="showDateLabels" class="k-timeline-date" #innerDate>
11633
+ {{ event.date | kendoDate: dateFormat }}
11634
+ </span>
11635
+ </div>
11636
+ <span class="k-timeline-circle"></span>
11637
+ <kendo-timeline-card
11638
+ #card
11639
+ [event]="event"
11640
+ [expanded]="event.expanded || !collapsibleEvents"
11641
+ [collapsible]="collapsibleEvents"
11642
+ [reversed]="alterMode && i % 2 === 0"
11643
+ [tabIndex]="'0'"
11644
+ [navigable]="navigable"
11645
+ [animationDuration]="animationDuration"
11646
+ [headerTemplate]="headerTemplate"
11647
+ [bodyTemplate]="bodyTemplate"
11648
+ [actionsTemplate]="actionsTemplate"
11649
+ [index]="i"
11650
+ [eventWidth]="eventWidth"
11651
+ orientation="vertical"
11652
+ >
11653
+ </kendo-timeline-card>
11654
+ </li>
11655
+ </ng-container>
11656
+ </ul>
11657
+ `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TimelineCardComponent, selector: "kendo-timeline-card", inputs: ["event", "expanded", "collapsible", "reversed", "orientation", "navigable", "tabIndex", "animationDuration", "index", "eventWidth", "eventHeight", "headerTemplate", "bodyTemplate", "actionsTemplate", "calloutStyle"], exportAs: ["kendoTimelineCard"] }, { kind: "pipe", type: i6.DatePipe, name: "kendoDate" }] });
11658
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineVerticalComponent, decorators: [{
11659
+ type: Component,
11660
+ args: [{
11661
+ providers: [],
11662
+ exportAs: 'kendoTimelineVertical',
11663
+ selector: 'kendo-timeline-vertical',
11664
+ template: `
11665
+ <ul *ngIf="events && events.length > 0">
11666
+ <ng-container *ngFor="let event of events; let i = index">
11667
+ <li class="k-timeline-flag-wrap" *ngIf="event.flag">
11668
+ <span class="k-timeline-flag">{{ event.flag }}</span>
11669
+ </li>
11670
+ <li class="k-timeline-event" [ngClass]="{ 'k-reverse': alterMode && i % 2 === 0 }">
11671
+ <div class="k-timeline-date-wrap" #dateWrap>
11672
+ <span *ngIf="showDateLabels" class="k-timeline-date" #innerDate>
11673
+ {{ event.date | kendoDate: dateFormat }}
11674
+ </span>
11675
+ </div>
11676
+ <span class="k-timeline-circle"></span>
11677
+ <kendo-timeline-card
11678
+ #card
11679
+ [event]="event"
11680
+ [expanded]="event.expanded || !collapsibleEvents"
11681
+ [collapsible]="collapsibleEvents"
11682
+ [reversed]="alterMode && i % 2 === 0"
11683
+ [tabIndex]="'0'"
11684
+ [navigable]="navigable"
11685
+ [animationDuration]="animationDuration"
11686
+ [headerTemplate]="headerTemplate"
11687
+ [bodyTemplate]="bodyTemplate"
11688
+ [actionsTemplate]="actionsTemplate"
11689
+ [index]="i"
11690
+ [eventWidth]="eventWidth"
11691
+ orientation="vertical"
11692
+ >
11693
+ </kendo-timeline-card>
11694
+ </li>
11695
+ </ng-container>
11696
+ </ul>
11697
+ `,
11698
+ }]
11699
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }]; }, propDecorators: { events: [{
11700
+ type: Input
11701
+ }], alterMode: [{
11702
+ type: Input
11703
+ }], collapsibleEvents: [{
11704
+ type: Input
11705
+ }], navigable: [{
11706
+ type: Input
11707
+ }], showDateLabels: [{
11708
+ type: Input
11709
+ }], animationDuration: [{
11710
+ type: Input
11711
+ }], eventWidth: [{
11712
+ type: Input
11713
+ }], dateFormat: [{
11714
+ type: Input
11715
+ }], headerTemplate: [{
11716
+ type: Input
11717
+ }], bodyTemplate: [{
11718
+ type: Input
11719
+ }], actionsTemplate: [{
11720
+ type: Input
11721
+ }], cards: [{
11722
+ type: ViewChildren,
11723
+ args: ['card']
11724
+ }], dateElementRefs: [{
11725
+ type: ViewChildren,
11726
+ args: ['dateWrap']
11727
+ }], innerDateElementRefs: [{
11728
+ type: ViewChildren,
11729
+ args: ['innerDate']
11730
+ }] } });
11731
+
11732
+ /**
11733
+ * Specifies the body of each timeline card. To define a body template, nest an `<ng-template>` tag
11734
+ * with the `kendoTimelineCardBodyTemplate` directive inside the `<kendo-timeline>` tag.
11735
+ *
11736
+ * The following values are available as context variables:
11737
+ * - `let-event="event"` (`TimelineEvent`) - The current card's event. Also available as implicit context variable.
11738
+ * - `let-index="index"` (`number`) - The current event index.
11739
+ */
11740
+ class TimelineCardBodyTemplateDirective {
11741
+ constructor(templateRef) {
11742
+ this.templateRef = templateRef;
11743
+ }
11744
+ }
11745
+ TimelineCardBodyTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineCardBodyTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
11746
+ TimelineCardBodyTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: TimelineCardBodyTemplateDirective, selector: "[kendoTimelineCardBodyTemplate]", ngImport: i0 });
11747
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineCardBodyTemplateDirective, decorators: [{
11748
+ type: Directive,
11749
+ args: [{
11750
+ selector: '[kendoTimelineCardBodyTemplate]'
11751
+ }]
11752
+ }], ctorParameters: function () {
11753
+ return [{ type: i0.TemplateRef, decorators: [{
11754
+ type: Optional
11755
+ }] }];
11756
+ } });
11757
+
11758
+ /**
11759
+ * Specifies the header of each timeline card. To define a header template, nest an `<ng-template>` tag
11760
+ * with the `kendoTimelineCardHeaderTemplate` directive inside the `<kendo-timeline>` tag.
11761
+ *
11762
+ * The following values are available as context variables:
11763
+ * - `let-event="event"` (`TimelineEvent`) - The current card's event. Also available as implicit context variable.
11764
+ * - `let-index="index"` (`number`) - The current event index.
11765
+ */
11766
+ class TimelineCardHeaderTemplateDirective {
11767
+ constructor(templateRef) {
11768
+ this.templateRef = templateRef;
11769
+ }
11770
+ }
11771
+ TimelineCardHeaderTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineCardHeaderTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
11772
+ TimelineCardHeaderTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: TimelineCardHeaderTemplateDirective, selector: "[kendoTimelineCardHeaderTemplate]", ngImport: i0 });
11773
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineCardHeaderTemplateDirective, decorators: [{
11774
+ type: Directive,
11775
+ args: [{
11776
+ selector: '[kendoTimelineCardHeaderTemplate]'
11777
+ }]
11778
+ }], ctorParameters: function () {
11779
+ return [{ type: i0.TemplateRef, decorators: [{
11780
+ type: Optional
11781
+ }] }];
11782
+ } });
11783
+
11784
+ /**
11785
+ * Specifies the actions of each timeline card. To define an actions template, nest an `<ng-template>` tag
11786
+ * with the `kendoTimelineCardActionsTemplate` directive inside the `<kendo-timeline>` tag.
11787
+ *
11788
+ * The following values are available as context variables:
11789
+ * - `let-event="event"` (`TimelineEvent`) - The current card's event. Also available as implicit context variable.
11790
+ * - `let-index="index"` (`number`) - The current event index.
11791
+ */
11792
+ class TimelineCardActionsTemplateDirective {
11793
+ constructor(templateRef) {
11794
+ this.templateRef = templateRef;
11795
+ }
11796
+ }
11797
+ TimelineCardActionsTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineCardActionsTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
11798
+ TimelineCardActionsTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: TimelineCardActionsTemplateDirective, selector: "[kendoTimelineCardActionsTemplate]", ngImport: i0 });
11799
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineCardActionsTemplateDirective, decorators: [{
11800
+ type: Directive,
11801
+ args: [{
11802
+ selector: '[kendoTimelineCardActionsTemplate]'
11803
+ }]
11804
+ }], ctorParameters: function () {
11805
+ return [{ type: i0.TemplateRef, decorators: [{
11806
+ type: Optional
11807
+ }] }];
11808
+ } });
11809
+
11810
+ /**
11811
+ * @hidden
11812
+ */
11813
+ class TimelineMessages extends ComponentMessages {
11814
+ }
11815
+ TimelineMessages.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineMessages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
11816
+ TimelineMessages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: TimelineMessages, selector: "kendo-timeline-messages-base", inputs: { previous: "previous", next: "next" }, usesInheritance: true, ngImport: i0 });
11817
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineMessages, decorators: [{
11818
+ type: Directive,
11819
+ args: [{
11820
+ // eslint-disable-next-line @angular-eslint/directive-selector
11821
+ selector: 'kendo-timeline-messages-base'
11822
+ }]
11823
+ }], propDecorators: { previous: [{
11824
+ type: Input
11825
+ }], next: [{
11826
+ type: Input
11827
+ }] } });
11828
+
11829
+ /**
11830
+ * @hidden
11831
+ */
11832
+ class LocalizedTimelineMessagesDirective extends TimelineMessages {
11833
+ constructor(service) {
11834
+ super();
11835
+ this.service = service;
11836
+ }
11837
+ }
11838
+ LocalizedTimelineMessagesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: LocalizedTimelineMessagesDirective, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
11839
+ LocalizedTimelineMessagesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: LocalizedTimelineMessagesDirective, selector: "[kendoTimelineLocalizedMessages]", providers: [
11840
+ {
11841
+ provide: TimelineMessages,
11842
+ useExisting: forwardRef(() => LocalizedTimelineMessagesDirective),
11843
+ },
11844
+ ], usesInheritance: true, ngImport: i0 });
11845
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: LocalizedTimelineMessagesDirective, decorators: [{
11846
+ type: Directive,
11847
+ args: [{
11848
+ providers: [
11849
+ {
11850
+ provide: TimelineMessages,
11851
+ useExisting: forwardRef(() => LocalizedTimelineMessagesDirective),
11852
+ },
11853
+ ],
11854
+ selector: `[kendoTimelineLocalizedMessages]`
11855
+ }]
11856
+ }], ctorParameters: function () { return [{ type: i1.LocalizationService }]; } });
11857
+
11858
+ const DEFAULT_HORIZONTAL_ANIMATION_DURATION = 400;
11859
+ const DEFAULT_VERTICAL_ANIMATION_DURATION = 300;
11860
+ const DEFAULT_EVENT_WIDTH = 400;
11861
+ const DEFAULT_EVENT_HEIGHT = 600;
11862
+ const DEFAULT_DATE_FORMAT = 'MMMM dd, yyyy';
11863
+ /**
11864
+ * Represents the [Kendo UI Timeline component for Angular]({% slug overview_timeline %}).
11865
+ */
11866
+ class TimelineComponent {
11867
+ constructor(timelineService) {
11868
+ this.timelineService = timelineService;
11869
+ /**
11870
+ * Specifies the orientation of the axis.
11871
+ *
11872
+ * @default 'vertical'
11873
+ */
11874
+ this.orientation = 'vertical';
11875
+ /**
11876
+ * Specifies whether to render events alternatingly on both sides of the axis.
11877
+ * Applicable when `orientation` is set to `vertical`.
11878
+ *
11879
+ * @default true
11880
+ */
11881
+ this.alterMode = true;
11882
+ /**
11883
+ * Specifies whether the event cards can be collapsed.
11884
+ *
11885
+ * @default true
11886
+ */
11887
+ this.collapsibleEvents = true;
11888
+ /**
11889
+ * Specifies whether the user can use dedicated shortcuts to interact with the Timeline.
11890
+ *
11891
+ * @default true
11892
+ */
11893
+ this.navigable = true;
11894
+ /**
11895
+ * Specifies whether an event's date label will be visible.
11896
+ *
11897
+ * @default true
11898
+ */
11899
+ this.showDateLabels = true;
11900
+ this.hostClass = true;
11901
+ /**
11902
+ * Fires when a card is toggled.
11903
+ * > This event is emitted in vertical mode only.
11904
+ */
11905
+ this.onToggle = new EventEmitter();
11906
+ /**
11907
+ * Fires when a card's action is clicked.
11908
+ */
11909
+ this.onActionClick = new EventEmitter();
11910
+ /**
11911
+ * Fires when the left or right arrow is clicked.
11912
+ * > This event is emitted in horizontal mode only.
11913
+ */
11914
+ this.onNavigate = new EventEmitter();
11915
+ this._events = [];
11916
+ this._modelFields = defaultModelFields;
11917
+ this._eventWidth = DEFAULT_EVENT_WIDTH;
11918
+ this._eventHeight = DEFAULT_EVENT_HEIGHT;
11919
+ this._dateFormat = DEFAULT_DATE_FORMAT;
11920
+ this.originalData = [];
11921
+ this.subscriptions = new Subscription();
11922
+ this.timelineService.timeline = this;
11923
+ }
11924
+ /**
11925
+ * An array of event instances which will be shown by the Timeline.
11926
+ */
11927
+ set events(events) {
11928
+ if (!isPresent$1(events)) {
11929
+ return;
11930
+ }
11931
+ this.originalData = events;
11932
+ this._events = processItems(this.originalData, this.modelFields);
11933
+ this._events.sort((a, b) => {
11934
+ return a.date.getTime() - b.date.getTime();
11935
+ });
11936
+ if (this._events.length > 0) {
11937
+ let flag = this._events[0].date.getFullYear() - 1;
11938
+ this._events.forEach((event) => {
11939
+ if (event.date.getFullYear() !== flag) {
11940
+ flag = event.date.getFullYear();
11941
+ event.flag = flag;
11942
+ }
11943
+ });
11944
+ }
11945
+ }
11946
+ get events() {
11947
+ return this._events;
11948
+ }
11949
+ /**
11950
+ * The names of the model fields from which the Timeline will read its data.
11951
+ */
11952
+ set modelFields(value) {
11953
+ this._modelFields = Object.assign(Object.assign({}, defaultModelFields), value);
11954
+ if (this.originalData) {
11955
+ this.events = this.originalData;
11956
+ }
11957
+ }
11958
+ get modelFields() {
11959
+ return this._modelFields;
11960
+ }
11961
+ /**
11962
+ * Sets a specific width for the event.
11963
+ * This setting is supported only in vertical mode.
11964
+ *
11965
+ * @default 400
11966
+ */
11967
+ get eventWidth() {
11968
+ return this._eventWidth;
11969
+ }
11970
+ set eventWidth(value) {
11971
+ if (value) {
11972
+ this._eventWidth = value;
11973
+ }
11974
+ else {
11975
+ this._eventWidth = DEFAULT_EVENT_WIDTH;
11976
+ }
11977
+ }
11978
+ /**
11979
+ * Sets a specific height for the event.
11980
+ * > This setting is supported only in horizontal mode.
11981
+ *
11982
+ * @default 600
11983
+ */
11984
+ get eventHeight() {
11985
+ return this._eventHeight;
11986
+ }
11987
+ set eventHeight(value) {
11988
+ if (value) {
11989
+ this._eventHeight = value;
11990
+ }
11991
+ else {
11992
+ this._eventHeight = DEFAULT_EVENT_HEIGHT;
11993
+ }
11994
+ }
11995
+ /**
11996
+ * @hidden
11997
+ */
11998
+ get animationDuration() {
11999
+ if (typeof this.animation === 'number') {
12000
+ return this.animation;
12001
+ }
12002
+ if (typeof this.animation === 'boolean' && this.animation) {
12003
+ return this.orientation === 'horizontal' ? DEFAULT_HORIZONTAL_ANIMATION_DURATION : DEFAULT_VERTICAL_ANIMATION_DURATION;
12004
+ }
12005
+ return 0;
12006
+ }
12007
+ /**
12008
+ * Specifies the date format for displaying the event date.
12009
+ *
12010
+ * @default 'MMMM dd, yyyy'
12011
+ */
12012
+ set dateFormat(value) {
12013
+ if (isPresent$1(value) && value !== '') {
12014
+ this._dateFormat = value;
12015
+ }
12016
+ else {
12017
+ this._dateFormat = DEFAULT_DATE_FORMAT;
12018
+ }
12019
+ }
12020
+ get dateFormat() {
12021
+ return this._dateFormat;
12022
+ }
12023
+ get verticalClass() {
12024
+ return this.orientation === 'vertical';
12025
+ }
12026
+ get horizontalClass() {
12027
+ return this.orientation === 'horizontal';
12028
+ }
12029
+ get alternatingClass() {
12030
+ return this.alterMode === true && this.orientation === 'vertical';
12031
+ }
12032
+ get collapsibleClass() {
12033
+ return this.collapsibleEvents === true && this.orientation === 'vertical';
12034
+ }
12035
+ ngAfterContentInit() {
12036
+ this.initTemplates();
12037
+ }
12038
+ ngOnDestroy() {
12039
+ this.subscriptions.unsubscribe();
12040
+ }
12041
+ /**
12042
+ * Switches to the previous portion of events.
12043
+ * > This method is supported only in horizontal mode.
12044
+ */
12045
+ previous() {
12046
+ var _a;
12047
+ (_a = this.timelineHorizontal) === null || _a === void 0 ? void 0 : _a.previous();
12048
+ }
12049
+ /**
12050
+ * Switches to the next portion of events.
12051
+ * > This method is supported only in horizontal mode.
12052
+ */
12053
+ next() {
12054
+ var _a;
12055
+ (_a = this.timelineHorizontal) === null || _a === void 0 ? void 0 : _a.next();
12056
+ }
12057
+ /**
12058
+ * Open event details.
12059
+ * > This method is supported only in horizontal mode.
12060
+ */
12061
+ open(index) {
12062
+ var _a;
12063
+ (_a = this.timelineHorizontal) === null || _a === void 0 ? void 0 : _a.open(index);
12064
+ }
12065
+ /**
12066
+ * Expands an event.
12067
+ * > This method is supported only in vertical mode.
12068
+ */
12069
+ expand(index) {
12070
+ var _a;
12071
+ (_a = this.timelineVertical) === null || _a === void 0 ? void 0 : _a.expand(index);
12072
+ }
12073
+ /**
12074
+ * Collapses an event.
12075
+ * > This method is supported only in vertical mode.
12076
+ */
12077
+ collapse(index) {
12078
+ var _a;
12079
+ (_a = this.timelineVertical) === null || _a === void 0 ? void 0 : _a.collapse(index);
12080
+ }
12081
+ initTemplates() {
12082
+ var _a, _b, _c, _d, _e, _f;
12083
+ this.headerTemplate = (_a = this.cardHeaderTemplate) === null || _a === void 0 ? void 0 : _a.first;
12084
+ this.bodyTemplate = (_b = this.cardBodyTemplate) === null || _b === void 0 ? void 0 : _b.first;
12085
+ this.actionsTemplate = (_c = this.cardActionsTemplate) === null || _c === void 0 ? void 0 : _c.first;
12086
+ this.subscriptions.add((_d = this.cardHeaderTemplate) === null || _d === void 0 ? void 0 : _d.changes.subscribe(() => {
12087
+ var _a;
12088
+ this.headerTemplate = ((_a = this.cardHeaderTemplate) === null || _a === void 0 ? void 0 : _a.first) || null;
12089
+ }));
12090
+ this.subscriptions.add((_e = this.cardBodyTemplate) === null || _e === void 0 ? void 0 : _e.changes.subscribe(() => {
12091
+ var _a;
12092
+ this.bodyTemplate = ((_a = this.cardBodyTemplate) === null || _a === void 0 ? void 0 : _a.first) || null;
12093
+ }));
12094
+ this.subscriptions.add((_f = this.cardActionsTemplate) === null || _f === void 0 ? void 0 : _f.changes.subscribe(() => {
12095
+ var _a;
12096
+ this.actionsTemplate = ((_a = this.cardActionsTemplate) === null || _a === void 0 ? void 0 : _a.first) || null;
12097
+ }));
12098
+ }
12099
+ }
12100
+ TimelineComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineComponent, deps: [{ token: TimelineService }], target: i0.ɵɵFactoryTarget.Component });
12101
+ TimelineComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TimelineComponent, selector: "kendo-timeline", inputs: { events: "events", modelFields: "modelFields", orientation: "orientation", alterMode: "alterMode", collapsibleEvents: "collapsibleEvents", navigable: "navigable", showDateLabels: "showDateLabels", animation: "animation", eventWidth: "eventWidth", eventHeight: "eventHeight", dateFormat: "dateFormat" }, outputs: { onToggle: "onToggle", onActionClick: "onActionClick", onNavigate: "onNavigate" }, host: { properties: { "class.k-timeline": "this.hostClass", "class.k-timeline-vertical": "this.verticalClass", "class.k-timeline-horizontal": "this.horizontalClass", "class.k-timeline-alternating": "this.alternatingClass", "class.k-timeline-collapsible": "this.collapsibleClass" } }, providers: [
12102
+ TimelineService,
12103
+ LocalizationService,
12104
+ {
12105
+ provide: L10N_PREFIX,
12106
+ useValue: 'kendo.timeline'
12107
+ }
12108
+ ], queries: [{ propertyName: "cardHeaderTemplate", predicate: TimelineCardHeaderTemplateDirective }, { propertyName: "cardBodyTemplate", predicate: TimelineCardBodyTemplateDirective }, { propertyName: "cardActionsTemplate", predicate: TimelineCardActionsTemplateDirective }], viewQueries: [{ propertyName: "timelineHorizontal", first: true, predicate: TimelineHorizontalComponent, descendants: true }, { propertyName: "timelineVertical", first: true, predicate: TimelineVerticalComponent, descendants: true }], exportAs: ["kendoTimeline"], ngImport: i0, template: `
12109
+ <ng-container kendoTimelineLocalizedMessages
12110
+ i18n-previous="kendo.timeline.previous|The title of the previous button in horizontal orientation."
12111
+ previous="previous"
12112
+ >
12113
+ </ng-container>
12114
+ <ng-container kendoTimelineLocalizedMessages
12115
+ i18n-next="kendo.timeline.next|The title of the next button in horizontal orientation."
12116
+ next="next"
12117
+ >
12118
+ </ng-container>
12119
+ <kendo-timeline-vertical
12120
+ *ngIf="orientation === 'vertical'"
12121
+ [events]="events"
12122
+ [alterMode]="alterMode"
12123
+ [collapsibleEvents]="collapsibleEvents"
12124
+ [navigable]="navigable"
12125
+ [showDateLabels]="showDateLabels"
12126
+ [animationDuration]="animationDuration"
12127
+ [eventWidth]="eventWidth"
12128
+ [dateFormat]="dateFormat"
12129
+ [headerTemplate]="headerTemplate"
12130
+ [bodyTemplate]="bodyTemplate"
12131
+ [actionsTemplate]="actionsTemplate"
12132
+ >
12133
+ </kendo-timeline-vertical>
12134
+ <kendo-timeline-horizontal
12135
+ *ngIf="orientation === 'horizontal'"
12136
+ [events]="events"
12137
+ [collapsibleEvents]="false"
12138
+ [navigable]="navigable"
12139
+ [showDateLabels]="showDateLabels"
12140
+ [animationDuration]="animationDuration"
12141
+ [eventHeight]="eventHeight"
12142
+ [dateFormat]="dateFormat"
12143
+ [headerTemplate]="headerTemplate"
12144
+ [bodyTemplate]="bodyTemplate"
12145
+ [actionsTemplate]="actionsTemplate"
12146
+ >
12147
+ </kendo-timeline-horizontal>
12148
+ `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TimelineVerticalComponent, selector: "kendo-timeline-vertical", inputs: ["events", "alterMode", "collapsibleEvents", "navigable", "showDateLabels", "animationDuration", "eventWidth", "dateFormat", "headerTemplate", "bodyTemplate", "actionsTemplate"], exportAs: ["kendoTimelineVertical"] }, { kind: "component", type: TimelineHorizontalComponent, selector: "kendo-timeline-horizontal", inputs: ["events", "alterMode", "collapsibleEvents", "navigable", "showDateLabels", "animationDuration", "eventHeight", "dateFormat", "headerTemplate", "bodyTemplate", "actionsTemplate"], exportAs: ["kendoTimelineHorizontal"] }, { kind: "directive", type: LocalizedTimelineMessagesDirective, selector: "[kendoTimelineLocalizedMessages]" }] });
12149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineComponent, decorators: [{
12150
+ type: Component,
12151
+ args: [{
12152
+ providers: [
12153
+ TimelineService,
12154
+ LocalizationService,
12155
+ {
12156
+ provide: L10N_PREFIX,
12157
+ useValue: 'kendo.timeline'
12158
+ }
12159
+ ],
12160
+ exportAs: 'kendoTimeline',
12161
+ selector: 'kendo-timeline',
12162
+ template: `
12163
+ <ng-container kendoTimelineLocalizedMessages
12164
+ i18n-previous="kendo.timeline.previous|The title of the previous button in horizontal orientation."
12165
+ previous="previous"
12166
+ >
12167
+ </ng-container>
12168
+ <ng-container kendoTimelineLocalizedMessages
12169
+ i18n-next="kendo.timeline.next|The title of the next button in horizontal orientation."
12170
+ next="next"
12171
+ >
12172
+ </ng-container>
12173
+ <kendo-timeline-vertical
12174
+ *ngIf="orientation === 'vertical'"
12175
+ [events]="events"
12176
+ [alterMode]="alterMode"
12177
+ [collapsibleEvents]="collapsibleEvents"
12178
+ [navigable]="navigable"
12179
+ [showDateLabels]="showDateLabels"
12180
+ [animationDuration]="animationDuration"
12181
+ [eventWidth]="eventWidth"
12182
+ [dateFormat]="dateFormat"
12183
+ [headerTemplate]="headerTemplate"
12184
+ [bodyTemplate]="bodyTemplate"
12185
+ [actionsTemplate]="actionsTemplate"
12186
+ >
12187
+ </kendo-timeline-vertical>
12188
+ <kendo-timeline-horizontal
12189
+ *ngIf="orientation === 'horizontal'"
12190
+ [events]="events"
12191
+ [collapsibleEvents]="false"
12192
+ [navigable]="navigable"
12193
+ [showDateLabels]="showDateLabels"
12194
+ [animationDuration]="animationDuration"
12195
+ [eventHeight]="eventHeight"
12196
+ [dateFormat]="dateFormat"
12197
+ [headerTemplate]="headerTemplate"
12198
+ [bodyTemplate]="bodyTemplate"
12199
+ [actionsTemplate]="actionsTemplate"
12200
+ >
12201
+ </kendo-timeline-horizontal>
12202
+ `,
12203
+ }]
12204
+ }], ctorParameters: function () { return [{ type: TimelineService }]; }, propDecorators: { events: [{
12205
+ type: Input
12206
+ }], modelFields: [{
12207
+ type: Input
12208
+ }], orientation: [{
12209
+ type: Input
12210
+ }], alterMode: [{
12211
+ type: Input
12212
+ }], collapsibleEvents: [{
12213
+ type: Input
12214
+ }], navigable: [{
12215
+ type: Input
12216
+ }], showDateLabels: [{
12217
+ type: Input
12218
+ }], animation: [{
12219
+ type: Input
12220
+ }], eventWidth: [{
12221
+ type: Input
12222
+ }], eventHeight: [{
12223
+ type: Input
12224
+ }], dateFormat: [{
12225
+ type: Input
12226
+ }], hostClass: [{
12227
+ type: HostBinding,
12228
+ args: ['class.k-timeline']
12229
+ }], verticalClass: [{
12230
+ type: HostBinding,
12231
+ args: ['class.k-timeline-vertical']
12232
+ }], horizontalClass: [{
12233
+ type: HostBinding,
12234
+ args: ['class.k-timeline-horizontal']
12235
+ }], alternatingClass: [{
12236
+ type: HostBinding,
12237
+ args: ['class.k-timeline-alternating']
12238
+ }], collapsibleClass: [{
12239
+ type: HostBinding,
12240
+ args: ['class.k-timeline-collapsible']
12241
+ }], timelineHorizontal: [{
12242
+ type: ViewChild,
12243
+ args: [TimelineHorizontalComponent]
12244
+ }], timelineVertical: [{
12245
+ type: ViewChild,
12246
+ args: [TimelineVerticalComponent]
12247
+ }], cardHeaderTemplate: [{
12248
+ type: ContentChildren,
12249
+ args: [TimelineCardHeaderTemplateDirective, { descendants: false }]
12250
+ }], cardBodyTemplate: [{
12251
+ type: ContentChildren,
12252
+ args: [TimelineCardBodyTemplateDirective, { descendants: false }]
12253
+ }], cardActionsTemplate: [{
12254
+ type: ContentChildren,
12255
+ args: [TimelineCardActionsTemplateDirective, { descendants: false }]
12256
+ }], onToggle: [{
12257
+ type: Output
12258
+ }], onActionClick: [{
12259
+ type: Output
12260
+ }], onNavigate: [{
12261
+ type: Output
12262
+ }] } });
12263
+
12264
+ /**
12265
+ * Custom component messages override default component messages.
12266
+ */
12267
+ class TimelineCustomMessagesComponent extends TimelineMessages {
12268
+ constructor(service) {
12269
+ super();
12270
+ this.service = service;
12271
+ }
12272
+ get override() {
12273
+ return true;
12274
+ }
12275
+ }
12276
+ TimelineCustomMessagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineCustomMessagesComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
12277
+ TimelineCustomMessagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TimelineCustomMessagesComponent, selector: "kendo-timeline-messages", providers: [
12278
+ {
12279
+ provide: TimelineMessages,
12280
+ useExisting: forwardRef(() => TimelineCustomMessagesComponent),
12281
+ },
12282
+ ], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
12283
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineCustomMessagesComponent, decorators: [{
12284
+ type: Component,
12285
+ args: [{
12286
+ providers: [
12287
+ {
12288
+ provide: TimelineMessages,
12289
+ useExisting: forwardRef(() => TimelineCustomMessagesComponent),
12290
+ },
12291
+ ],
12292
+ selector: 'kendo-timeline-messages',
12293
+ template: ``,
12294
+ }]
12295
+ }], ctorParameters: function () { return [{ type: i1.LocalizationService }]; } });
12296
+
12297
+ const exportedModules = [
12298
+ TimelineComponent,
12299
+ TimelineCustomMessagesComponent,
12300
+ TimelineCardHeaderTemplateDirective,
12301
+ TimelineCardBodyTemplateDirective,
12302
+ TimelineCardActionsTemplateDirective
12303
+ ];
12304
+ const declarations = [
12305
+ ...exportedModules,
12306
+ TimelineVerticalComponent,
12307
+ TimelineHorizontalComponent,
12308
+ TimelineCardComponent,
12309
+ LocalizedTimelineMessagesDirective,
12310
+ ];
12311
+ /**
12312
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
12313
+ * definition for the Timeline component.
12314
+ *
12315
+ * The module registers:
12316
+ * - `TimelineComponent`&mdash;The `TimelineComponent` component class.
12317
+ */
12318
+ class TimelineModule {
12319
+ }
12320
+ TimelineModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12321
+ TimelineModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: TimelineModule, declarations: [TimelineComponent,
12322
+ TimelineCustomMessagesComponent,
12323
+ TimelineCardHeaderTemplateDirective,
12324
+ TimelineCardBodyTemplateDirective,
12325
+ TimelineCardActionsTemplateDirective, TimelineVerticalComponent,
12326
+ TimelineHorizontalComponent,
12327
+ TimelineCardComponent,
12328
+ LocalizedTimelineMessagesDirective], imports: [CommonModule, CardModule, ButtonModule, IconsModule, IntlModule], exports: [TimelineComponent,
12329
+ TimelineCustomMessagesComponent,
12330
+ TimelineCardHeaderTemplateDirective,
12331
+ TimelineCardBodyTemplateDirective,
12332
+ TimelineCardActionsTemplateDirective] });
12333
+ TimelineModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineModule, imports: [CommonModule, CardModule, ButtonModule, IconsModule, IntlModule] });
12334
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineModule, decorators: [{
12335
+ type: NgModule,
12336
+ args: [{
12337
+ declarations: [declarations],
12338
+ exports: [exportedModules],
12339
+ imports: [CommonModule, CardModule, ButtonModule, IconsModule, IntlModule]
12340
+ }]
12341
+ }] });
12342
+
10413
12343
  /**
10414
12344
  * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
10415
12345
  * definition for the Layout components.
@@ -10454,7 +12384,8 @@ LayoutModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
10454
12384
  TabStripModule,
10455
12385
  TileLayoutModule,
10456
12386
  StackLayoutModule,
10457
- GridLayoutModule] });
12387
+ GridLayoutModule,
12388
+ TimelineModule] });
10458
12389
  LayoutModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: LayoutModule, imports: [AvatarModule,
10459
12390
  CardModule,
10460
12391
  DrawerModule,
@@ -10465,7 +12396,8 @@ LayoutModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
10465
12396
  TabStripModule,
10466
12397
  TileLayoutModule,
10467
12398
  StackLayoutModule,
10468
- GridLayoutModule] });
12399
+ GridLayoutModule,
12400
+ TimelineModule] });
10469
12401
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: LayoutModule, decorators: [{
10470
12402
  type: NgModule,
10471
12403
  args: [{
@@ -10480,7 +12412,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
10480
12412
  TabStripModule,
10481
12413
  TileLayoutModule,
10482
12414
  StackLayoutModule,
10483
- GridLayoutModule
12415
+ GridLayoutModule,
12416
+ TimelineModule,
10484
12417
  ]
10485
12418
  }]
10486
12419
  }] });
@@ -10489,5 +12422,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
10489
12422
  * Generated bundle index. Do not edit.
10490
12423
  */
10491
12424
 
10492
- export { AvatarComponent, AvatarCustomMessagesComponent, AvatarModule, CardAction, CardActionsComponent, CardBodyComponent, CardComponent, CardFooterComponent, CardHeaderComponent, CardMediaDirective, CardModule, CardSeparatorDirective, CardSubtitleDirective, CardTitleDirective, DrawerComponent, DrawerContainerComponent, DrawerContentComponent, DrawerFooterTemplateDirective, DrawerHeaderTemplateDirective, DrawerItemTemplateDirective, DrawerModule, DrawerSelectEvent, DrawerTemplateDirective, ExpansionPanelActionEvent, ExpansionPanelComponent, ExpansionPanelModule, ExpansionPanelTitleDirective, GridLayoutComponent, GridLayoutItemComponent, GridLayoutModule, LayoutModule, LocalizedAvatarMessagesDirective, LocalizedStepperMessagesDirective, LocalizedTabStripMessagesDirective, PanelBarCollapseEvent, PanelBarComponent, PanelBarContentDirective, PanelBarExpandEvent, PanelBarExpandMode, PanelBarItemClickEvent, PanelBarItemComponent, PanelBarItemTemplateDirective, PanelBarItemTitleDirective, PanelBarModule, PanelBarSelectEvent, PanelBarStateChangeEvent, SelectEvent, SplitterComponent, SplitterModule, SplitterPaneComponent, StackLayoutComponent, StackLayoutModule, StepperActivateEvent, StepperComponent, StepperCustomMessagesComponent, StepperIndicatorTemplateDirective, StepperLabelTemplateDirective, StepperModule, StepperStepTemplateDirective, TabCloseEvent, TabComponent, TabContentDirective, TabStripComponent, TabStripCustomMessagesComponent, TabStripModule, TabStripTabComponent, TabTemplateDirective, TabTitleDirective, TileLayoutComponent, TileLayoutItemBodyComponent, TileLayoutItemComponent, TileLayoutItemHeaderComponent, TileLayoutModule, TileLayoutReorderEvent, TileLayoutResizeEvent, TileLayoutResizeHandleDirective };
12425
+ export { AvatarComponent, AvatarCustomMessagesComponent, AvatarModule, CardAction, CardActionsComponent, CardBodyComponent, CardComponent, CardFooterComponent, CardHeaderComponent, CardMediaDirective, CardModule, CardSeparatorDirective, CardSubtitleDirective, CardTitleDirective, DrawerComponent, DrawerContainerComponent, DrawerContentComponent, DrawerFooterTemplateDirective, DrawerHeaderTemplateDirective, DrawerItemTemplateDirective, DrawerModule, DrawerSelectEvent, DrawerTemplateDirective, ExpansionPanelActionEvent, ExpansionPanelComponent, ExpansionPanelModule, ExpansionPanelTitleDirective, GridLayoutComponent, GridLayoutItemComponent, GridLayoutModule, LayoutModule, LocalizedAvatarMessagesDirective, LocalizedStepperMessagesDirective, LocalizedTabStripMessagesDirective, PanelBarCollapseEvent, PanelBarComponent, PanelBarContentDirective, PanelBarExpandEvent, PanelBarExpandMode, PanelBarItemClickEvent, PanelBarItemComponent, PanelBarItemTemplateDirective, PanelBarItemTitleDirective, PanelBarModule, PanelBarSelectEvent, PanelBarStateChangeEvent, SelectEvent, SplitterComponent, SplitterModule, SplitterPaneComponent, StackLayoutComponent, StackLayoutModule, StepperActivateEvent, StepperComponent, StepperCustomMessagesComponent, StepperIndicatorTemplateDirective, StepperLabelTemplateDirective, StepperModule, StepperStepTemplateDirective, TabCloseEvent, TabComponent, TabContentDirective, TabStripComponent, TabStripCustomMessagesComponent, TabStripModule, TabStripTabComponent, TabTemplateDirective, TabTitleDirective, TileLayoutComponent, TileLayoutItemBodyComponent, TileLayoutItemComponent, TileLayoutItemHeaderComponent, TileLayoutModule, TileLayoutReorderEvent, TileLayoutResizeEvent, TileLayoutResizeHandleDirective, TimelineCardActionsTemplateDirective, TimelineCardBodyTemplateDirective, TimelineCardHeaderTemplateDirective, TimelineComponent, TimelineCustomMessagesComponent, TimelineModule };
10493
12426