@progress/kendo-angular-layout 16.0.0-develop.4 → 16.0.0-develop.6
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.
- package/esm2020/index.mjs +7 -0
- package/esm2020/layout.module.mjs +7 -3
- package/esm2020/package-metadata.mjs +2 -2
- package/esm2020/timeline/events/navigation-direction.mjs +5 -0
- package/esm2020/timeline/localization/custom-messages.component.mjs +41 -0
- package/esm2020/timeline/localization/localized-messages.directive.mjs +37 -0
- package/esm2020/timeline/localization/messages.mjs +25 -0
- package/esm2020/timeline/models/anchor-target.mjs +5 -0
- package/esm2020/timeline/models/default-model-fields.mjs +16 -0
- package/esm2020/timeline/models/model-fields.mjs +5 -0
- package/esm2020/timeline/models/timeline-event.mjs +5 -0
- package/esm2020/timeline/templates/timeline-card-actions.directive.mjs +29 -0
- package/esm2020/timeline/templates/timeline-card-body.directive.mjs +29 -0
- package/esm2020/timeline/templates/timeline-card-header.directive.mjs +29 -0
- package/esm2020/timeline/timeline-card.component.mjs +402 -0
- package/esm2020/timeline/timeline-horizontal.component.mjs +722 -0
- package/esm2020/timeline/timeline-vertical.component.mjs +175 -0
- package/esm2020/timeline/timeline.component.mjs +418 -0
- package/esm2020/timeline/timeline.service.mjs +31 -0
- package/esm2020/timeline/util.mjs +26 -0
- package/esm2020/timeline.module.mjs +65 -0
- package/fesm2015/progress-kendo-angular-layout.mjs +1996 -63
- package/fesm2020/progress-kendo-angular-layout.mjs +1969 -63
- package/index.d.ts +10 -0
- package/layout.module.d.ts +2 -1
- package/package.json +7 -7
- package/timeline/events/navigation-direction.d.ts +5 -0
- package/timeline/localization/custom-messages.component.d.ts +17 -0
- package/timeline/localization/localized-messages.directive.d.ts +16 -0
- package/timeline/localization/messages.d.ts +21 -0
- package/timeline/models/anchor-target.d.ts +5 -0
- package/timeline/models/default-model-fields.d.ts +9 -0
- package/timeline/models/model-fields.d.ts +51 -0
- package/timeline/models/timeline-event.d.ts +49 -0
- package/timeline/templates/timeline-card-actions.directive.d.ts +20 -0
- package/timeline/templates/timeline-card-body.directive.d.ts +20 -0
- package/timeline/templates/timeline-card-header.directive.d.ts +20 -0
- package/timeline/timeline-card.component.d.ts +59 -0
- package/timeline/timeline-horizontal.component.d.ts +110 -0
- package/timeline/timeline-vertical.component.d.ts +41 -0
- package/timeline/timeline.component.d.ts +186 -0
- package/timeline/timeline.service.d.ts +17 -0
- package/timeline/util.d.ts +18 -0
- 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:
|
|
35
|
-
version: '16.0.0-develop.
|
|
36
|
+
publishDate: 1714134155,
|
|
37
|
+
version: '16.0.0-develop.6',
|
|
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$
|
|
9595
|
+
const exportedModules$b = [
|
|
9594
9596
|
AvatarComponent,
|
|
9595
9597
|
AvatarCustomMessagesComponent
|
|
9596
9598
|
];
|
|
9597
|
-
const declarations$
|
|
9599
|
+
const declarations$b = [
|
|
9598
9600
|
LocalizedAvatarMessagesDirective,
|
|
9599
|
-
...exportedModules$
|
|
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$
|
|
9616
|
-
exports: [exportedModules$
|
|
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$
|
|
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$
|
|
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$
|
|
9663
|
-
exports: [exportedModules$
|
|
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$
|
|
9676
|
+
const exportedModules$9 = [
|
|
9675
9677
|
DrawerComponent,
|
|
9676
9678
|
DrawerContainerComponent,
|
|
9677
9679
|
DrawerContentComponent,
|
|
9678
9680
|
...templateDirectives$1
|
|
9679
9681
|
];
|
|
9680
|
-
const declarations$
|
|
9682
|
+
const declarations$9 = [
|
|
9681
9683
|
DrawerItemComponent,
|
|
9682
9684
|
DrawerListComponent,
|
|
9683
|
-
...exportedModules$
|
|
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$
|
|
9709
|
-
exports: [exportedModules$
|
|
9710
|
+
declarations: [declarations$9],
|
|
9711
|
+
exports: [exportedModules$9],
|
|
9710
9712
|
imports: [CommonModule, IconsModule, WatermarkModule]
|
|
9711
9713
|
}]
|
|
9712
9714
|
}] });
|
|
9713
9715
|
|
|
9714
|
-
const exportedModules$
|
|
9716
|
+
const exportedModules$8 = [
|
|
9715
9717
|
ExpansionPanelComponent,
|
|
9716
9718
|
ExpansionPanelTitleDirective
|
|
9717
9719
|
];
|
|
9718
|
-
const declarations$
|
|
9719
|
-
...exportedModules$
|
|
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$
|
|
9736
|
-
exports: [exportedModules$
|
|
9737
|
+
declarations: [declarations$8],
|
|
9738
|
+
exports: [exportedModules$8],
|
|
9737
9739
|
imports: [CommonModule, EventsModule, IconsModule]
|
|
9738
9740
|
}]
|
|
9739
9741
|
}] });
|
|
9740
9742
|
|
|
9741
|
-
const exportedModules$
|
|
9743
|
+
const exportedModules$7 = [
|
|
9742
9744
|
PanelBarComponent,
|
|
9743
9745
|
PanelBarItemComponent,
|
|
9744
9746
|
PanelBarContentDirective,
|
|
9745
9747
|
PanelBarItemTemplateDirective,
|
|
9746
9748
|
PanelBarItemTitleDirective
|
|
9747
9749
|
];
|
|
9748
|
-
const declarations$
|
|
9749
|
-
...exportedModules$
|
|
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$
|
|
9779
|
-
exports: [exportedModules$
|
|
9780
|
+
declarations: [declarations$7],
|
|
9781
|
+
exports: [exportedModules$7],
|
|
9780
9782
|
imports: [CommonModule, IconsModule, WatermarkModule]
|
|
9781
9783
|
}]
|
|
9782
9784
|
}] });
|
|
9783
9785
|
|
|
9784
|
-
const exportedModules$
|
|
9786
|
+
const exportedModules$6 = [
|
|
9785
9787
|
SplitterComponent,
|
|
9786
9788
|
SplitterPaneComponent
|
|
9787
9789
|
];
|
|
9788
|
-
const declarations$
|
|
9790
|
+
const declarations$6 = [
|
|
9789
9791
|
SplitterBarComponent,
|
|
9790
|
-
...exportedModules$
|
|
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$
|
|
9815
|
-
exports: [exportedModules$
|
|
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$
|
|
9831
|
+
const exportedModules$5 = [
|
|
9830
9832
|
StepperComponent,
|
|
9831
9833
|
StepperCustomMessagesComponent,
|
|
9832
9834
|
...templateDirectives
|
|
9833
9835
|
];
|
|
9834
|
-
const declarations$
|
|
9836
|
+
const declarations$5 = [
|
|
9835
9837
|
StepperStepComponent,
|
|
9836
9838
|
StepperListComponent,
|
|
9837
9839
|
LocalizedStepperMessagesDirective,
|
|
9838
|
-
...exportedModules$
|
|
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$
|
|
9861
|
-
exports: [exportedModules$
|
|
9862
|
+
declarations: [declarations$5],
|
|
9863
|
+
exports: [exportedModules$5],
|
|
9862
9864
|
imports: [CommonModule, ProgressBarModule, IconsModule]
|
|
9863
9865
|
}]
|
|
9864
9866
|
}] });
|
|
9865
9867
|
|
|
9866
|
-
const exportedModules$
|
|
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$
|
|
9877
|
-
...exportedModules$
|
|
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$
|
|
9913
|
-
exports: [exportedModules$
|
|
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$
|
|
9920
|
+
const exportedModules$3 = [
|
|
9919
9921
|
TileLayoutComponent,
|
|
9920
9922
|
TileLayoutItemComponent,
|
|
9921
9923
|
TileLayoutItemHeaderComponent,
|
|
9922
9924
|
TileLayoutItemBodyComponent,
|
|
9923
9925
|
TileLayoutResizeHandleDirective
|
|
9924
9926
|
];
|
|
9925
|
-
const declarations$
|
|
9926
|
-
...exportedModules$
|
|
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$
|
|
9955
|
-
exports: [exportedModules$
|
|
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$
|
|
10194
|
+
const exportedModules$2 = [
|
|
10193
10195
|
StackLayoutComponent
|
|
10194
10196
|
];
|
|
10195
|
-
const declarations$
|
|
10196
|
-
...exportedModules$
|
|
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$
|
|
10211
|
-
exports: [exportedModules$
|
|
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`—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
|
|