@progress/kendo-angular-layout 16.0.0-develop.2 → 16.0.0-develop.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/avatar/avatar.component.d.ts +1 -1
  2. package/avatar/l10n/custom-messages.component.d.ts +1 -1
  3. package/avatar/l10n/localized-messages.directive.d.ts +1 -1
  4. package/avatar/l10n/messages.d.ts +1 -1
  5. package/card/card-actions.component.d.ts +1 -1
  6. package/card/card-body.component.d.ts +1 -1
  7. package/card/card-footer.component.d.ts +1 -1
  8. package/card/card-header.component.d.ts +1 -1
  9. package/card/card.component.d.ts +1 -1
  10. package/card/directives/card-media.directive.d.ts +1 -1
  11. package/card/directives/card-separator.directive.d.ts +1 -1
  12. package/card/directives/card-subtitle.directive.d.ts +1 -1
  13. package/card/directives/card-title.directive.d.ts +1 -1
  14. package/drawer/drawer-container.component.d.ts +1 -1
  15. package/drawer/drawer-content.component.d.ts +1 -1
  16. package/drawer/drawer.component.d.ts +1 -1
  17. package/drawer/item.component.d.ts +1 -1
  18. package/drawer/list.component.d.ts +1 -1
  19. package/drawer/template-directives/drawer-template.directive.d.ts +1 -1
  20. package/drawer/template-directives/footer-template.directive.d.ts +1 -1
  21. package/drawer/template-directives/header-template.directive.d.ts +1 -1
  22. package/drawer/template-directives/item-template.directive.d.ts +1 -1
  23. package/esm2020/avatar/avatar.component.mjs +7 -7
  24. package/esm2020/avatar/l10n/custom-messages.component.mjs +3 -3
  25. package/esm2020/avatar/l10n/localized-messages.directive.mjs +3 -3
  26. package/esm2020/avatar/l10n/messages.mjs +3 -3
  27. package/esm2020/avatar.module.mjs +4 -4
  28. package/esm2020/card/card-actions.component.mjs +4 -4
  29. package/esm2020/card/card-body.component.mjs +3 -3
  30. package/esm2020/card/card-footer.component.mjs +3 -3
  31. package/esm2020/card/card-header.component.mjs +3 -3
  32. package/esm2020/card/card.component.mjs +3 -3
  33. package/esm2020/card/directives/card-media.directive.mjs +3 -3
  34. package/esm2020/card/directives/card-separator.directive.mjs +3 -3
  35. package/esm2020/card/directives/card-subtitle.directive.mjs +3 -3
  36. package/esm2020/card/directives/card-title.directive.mjs +3 -3
  37. package/esm2020/card.module.mjs +4 -4
  38. package/esm2020/drawer/drawer-container.component.mjs +4 -4
  39. package/esm2020/drawer/drawer-content.component.mjs +3 -3
  40. package/esm2020/drawer/drawer.component.mjs +6 -6
  41. package/esm2020/drawer/drawer.service.mjs +3 -3
  42. package/esm2020/drawer/item.component.mjs +8 -6
  43. package/esm2020/drawer/list.component.mjs +5 -5
  44. package/esm2020/drawer/template-directives/drawer-template.directive.mjs +3 -3
  45. package/esm2020/drawer/template-directives/footer-template.directive.mjs +3 -3
  46. package/esm2020/drawer/template-directives/header-template.directive.mjs +3 -3
  47. package/esm2020/drawer/template-directives/item-template.directive.mjs +3 -3
  48. package/esm2020/drawer.module.mjs +4 -4
  49. package/esm2020/expansionpanel/expansionpanel-title.directive.mjs +3 -3
  50. package/esm2020/expansionpanel/expansionpanel.component.mjs +6 -6
  51. package/esm2020/expansionpanel.module.mjs +4 -4
  52. package/esm2020/gridlayout.module.mjs +4 -4
  53. package/esm2020/index.mjs +7 -0
  54. package/esm2020/layout.module.mjs +11 -7
  55. package/esm2020/layouts/grid-layout.component.mjs +3 -3
  56. package/esm2020/layouts/gridlayout-item.component.mjs +3 -3
  57. package/esm2020/layouts/stack-layout.component.mjs +3 -3
  58. package/esm2020/package-metadata.mjs +2 -2
  59. package/esm2020/panelbar/panelbar-content.directive.mjs +3 -3
  60. package/esm2020/panelbar/panelbar-item-template.directive.mjs +3 -3
  61. package/esm2020/panelbar/panelbar-item-title.directive.mjs +3 -3
  62. package/esm2020/panelbar/panelbar-item.component.mjs +14 -20
  63. package/esm2020/panelbar/panelbar.component.mjs +6 -9
  64. package/esm2020/panelbar/panelbar.service.mjs +3 -3
  65. package/esm2020/panelbar.module.mjs +4 -4
  66. package/esm2020/splitter/splitter-bar.component.mjs +6 -6
  67. package/esm2020/splitter/splitter-pane.component.mjs +4 -4
  68. package/esm2020/splitter/splitter.component.mjs +7 -7
  69. package/esm2020/splitter/splitter.service.mjs +3 -3
  70. package/esm2020/splitter.module.mjs +6 -8
  71. package/esm2020/stacklayout.module.mjs +4 -4
  72. package/esm2020/stepper/list.component.mjs +5 -5
  73. package/esm2020/stepper/localization/custom-messages.component.mjs +3 -3
  74. package/esm2020/stepper/localization/localized-messages.directive.mjs +3 -3
  75. package/esm2020/stepper/localization/messages.mjs +3 -3
  76. package/esm2020/stepper/step.component.mjs +6 -6
  77. package/esm2020/stepper/stepper.component.mjs +7 -7
  78. package/esm2020/stepper/stepper.service.mjs +3 -3
  79. package/esm2020/stepper/template-directives/indicator-template.directive.mjs +3 -3
  80. package/esm2020/stepper/template-directives/label-template.directive.mjs +3 -3
  81. package/esm2020/stepper/template-directives/step-template.directive.mjs +3 -3
  82. package/esm2020/stepper.module.mjs +4 -4
  83. package/esm2020/tabstrip/directives/tab-content.directive.mjs +3 -3
  84. package/esm2020/tabstrip/directives/tab-title.directive.mjs +3 -3
  85. package/esm2020/tabstrip/directives/tab.directive.mjs +3 -3
  86. package/esm2020/tabstrip/localization/custom-messages.component.mjs +3 -3
  87. package/esm2020/tabstrip/localization/localized-messages.directive.mjs +3 -3
  88. package/esm2020/tabstrip/localization/messages.mjs +3 -3
  89. package/esm2020/tabstrip/models/tabstrip-tab.component.mjs +3 -3
  90. package/esm2020/tabstrip/rendering/tab.component.mjs +6 -6
  91. package/esm2020/tabstrip/scrollable-button.component.mjs +4 -4
  92. package/esm2020/tabstrip/tabstrip-scroll.service.mjs +3 -3
  93. package/esm2020/tabstrip/tabstrip.component.mjs +12 -12
  94. package/esm2020/tabstrip/tabstrip.service.mjs +3 -3
  95. package/esm2020/tabstrip.module.mjs +4 -4
  96. package/esm2020/tilelayout/dragging-service.mjs +3 -3
  97. package/esm2020/tilelayout/keyboard-navigation.service.mjs +3 -5
  98. package/esm2020/tilelayout/tilelayout-item-body.component.mjs +3 -3
  99. package/esm2020/tilelayout/tilelayout-item-header.component.mjs +3 -3
  100. package/esm2020/tilelayout/tilelayout-item.component.mjs +6 -6
  101. package/esm2020/tilelayout/tilelayout-resize-handle.directive.mjs +3 -3
  102. package/esm2020/tilelayout/tilelayout.component.mjs +6 -6
  103. package/esm2020/tilelayout.module.mjs +4 -4
  104. package/esm2020/timeline/events/navigation-direction.mjs +5 -0
  105. package/esm2020/timeline/localization/custom-messages.component.mjs +41 -0
  106. package/esm2020/timeline/localization/localized-messages.directive.mjs +37 -0
  107. package/esm2020/timeline/localization/messages.mjs +25 -0
  108. package/esm2020/timeline/models/anchor-target.mjs +5 -0
  109. package/esm2020/timeline/models/default-model-fields.mjs +16 -0
  110. package/esm2020/timeline/models/model-fields.mjs +5 -0
  111. package/esm2020/timeline/models/timeline-event.mjs +5 -0
  112. package/esm2020/timeline/templates/timeline-card-actions.directive.mjs +29 -0
  113. package/esm2020/timeline/templates/timeline-card-body.directive.mjs +29 -0
  114. package/esm2020/timeline/templates/timeline-card-header.directive.mjs +29 -0
  115. package/esm2020/timeline/timeline-card.component.mjs +400 -0
  116. package/esm2020/timeline/timeline-horizontal.component.mjs +729 -0
  117. package/esm2020/timeline/timeline-vertical.component.mjs +175 -0
  118. package/esm2020/timeline/timeline.component.mjs +418 -0
  119. package/esm2020/timeline/timeline.service.mjs +31 -0
  120. package/esm2020/timeline/util.mjs +26 -0
  121. package/esm2020/timeline.module.mjs +65 -0
  122. package/expansionpanel/expansionpanel-title.directive.d.ts +1 -1
  123. package/expansionpanel/expansionpanel.component.d.ts +1 -1
  124. package/fesm2015/progress-kendo-angular-layout.mjs +2537 -610
  125. package/fesm2020/progress-kendo-angular-layout.mjs +2268 -368
  126. package/index.d.ts +10 -0
  127. package/layout.module.d.ts +2 -1
  128. package/layouts/grid-layout.component.d.ts +1 -1
  129. package/layouts/gridlayout-item.component.d.ts +1 -1
  130. package/layouts/stack-layout.component.d.ts +1 -1
  131. package/package.json +14 -13
  132. package/panelbar/panelbar-content.directive.d.ts +1 -1
  133. package/panelbar/panelbar-item-template.directive.d.ts +1 -1
  134. package/panelbar/panelbar-item-title.directive.d.ts +1 -1
  135. package/panelbar/panelbar-item.component.d.ts +1 -2
  136. package/panelbar/panelbar.component.d.ts +1 -1
  137. package/splitter/splitter-bar.component.d.ts +1 -1
  138. package/splitter/splitter-pane.component.d.ts +1 -1
  139. package/splitter/splitter.component.d.ts +1 -1
  140. package/stepper/list.component.d.ts +1 -1
  141. package/stepper/localization/custom-messages.component.d.ts +1 -1
  142. package/stepper/localization/localized-messages.directive.d.ts +1 -1
  143. package/stepper/localization/messages.d.ts +1 -1
  144. package/stepper/step.component.d.ts +1 -1
  145. package/stepper/stepper.component.d.ts +1 -1
  146. package/stepper/template-directives/indicator-template.directive.d.ts +1 -1
  147. package/stepper/template-directives/label-template.directive.d.ts +1 -1
  148. package/stepper/template-directives/step-template.directive.d.ts +1 -1
  149. package/tabstrip/directives/tab-content.directive.d.ts +1 -1
  150. package/tabstrip/directives/tab-title.directive.d.ts +1 -1
  151. package/tabstrip/directives/tab.directive.d.ts +1 -1
  152. package/tabstrip/localization/custom-messages.component.d.ts +1 -1
  153. package/tabstrip/localization/localized-messages.directive.d.ts +1 -1
  154. package/tabstrip/localization/messages.d.ts +1 -1
  155. package/tabstrip/models/tabstrip-tab.component.d.ts +1 -1
  156. package/tabstrip/rendering/tab.component.d.ts +1 -1
  157. package/tabstrip/scrollable-button.component.d.ts +1 -1
  158. package/tabstrip/tabstrip.component.d.ts +1 -1
  159. package/tilelayout/tilelayout-item-body.component.d.ts +1 -1
  160. package/tilelayout/tilelayout-item-header.component.d.ts +1 -1
  161. package/tilelayout/tilelayout-item.component.d.ts +1 -1
  162. package/tilelayout/tilelayout-resize-handle.directive.d.ts +1 -1
  163. package/tilelayout/tilelayout.component.d.ts +1 -1
  164. package/timeline/events/navigation-direction.d.ts +5 -0
  165. package/timeline/localization/custom-messages.component.d.ts +17 -0
  166. package/timeline/localization/localized-messages.directive.d.ts +16 -0
  167. package/timeline/localization/messages.d.ts +21 -0
  168. package/timeline/models/anchor-target.d.ts +5 -0
  169. package/{progress-kendo-angular-layout.d.ts → timeline/models/default-model-fields.d.ts} +3 -3
  170. package/timeline/models/model-fields.d.ts +51 -0
  171. package/timeline/models/timeline-event.d.ts +49 -0
  172. package/timeline/templates/timeline-card-actions.directive.d.ts +20 -0
  173. package/timeline/templates/timeline-card-body.directive.d.ts +20 -0
  174. package/timeline/templates/timeline-card-header.directive.d.ts +20 -0
  175. package/timeline/timeline-card.component.d.ts +59 -0
  176. package/timeline/timeline-horizontal.component.d.ts +110 -0
  177. package/timeline/timeline-vertical.component.d.ts +41 -0
  178. package/timeline/timeline.component.d.ts +185 -0
  179. package/timeline/timeline.service.d.ts +17 -0
  180. package/timeline/util.d.ts +18 -0
  181. package/timeline.module.d.ts +31 -0
@@ -0,0 +1,400 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { Component, ElementRef, HostBinding, HostListener, Input, Renderer2, ViewChild } from '@angular/core';
6
+ import { chevronRightIcon } from '@progress/kendo-svg-icons';
7
+ import { Keys, isChanged } from '@progress/kendo-angular-common';
8
+ import { animate, state, style, transition, trigger } from '@angular/animations';
9
+ import { TimelineService } from './timeline.service';
10
+ import { TimelineCardHeaderTemplateDirective } from './templates/timeline-card-header.directive';
11
+ import { TimelineCardBodyTemplateDirective } from './templates/timeline-card-body.directive';
12
+ import { TimelineCardActionsTemplateDirective } from './templates/timeline-card-actions.directive';
13
+ import * as i0 from "@angular/core";
14
+ import * as i1 from "./timeline.service";
15
+ import * as i2 from "@angular/common";
16
+ import * as i3 from "../card/card.component";
17
+ import * as i4 from "../card/card-header.component";
18
+ import * as i5 from "../card/card-body.component";
19
+ import * as i6 from "../card/card-actions.component";
20
+ import * as i7 from "../card/directives/card-title.directive";
21
+ import * as i8 from "../card/directives/card-subtitle.directive";
22
+ import * as i9 from "../card/directives/card-media.directive";
23
+ import * as i10 from "@progress/kendo-angular-buttons";
24
+ /**
25
+ * @hidden
26
+ */
27
+ export class TimelineCardComponent {
28
+ constructor(element, timelineService, renderer) {
29
+ this.element = element;
30
+ this.timelineService = timelineService;
31
+ this.renderer = renderer;
32
+ this.expanded = false;
33
+ this.collapsible = true;
34
+ this.reversed = false;
35
+ this.hostClass = true;
36
+ this.calloutSvgIcon = chevronRightIcon;
37
+ this.calloutFontIcon = 'arrow-chevron-right';
38
+ this.animationState = this.expanded ? 'expanded' : 'collapsed';
39
+ this.animationInProgress = false;
40
+ }
41
+ set calloutStyle(value) {
42
+ // applies only to horizontal orientation where the callout points upwards
43
+ if (!this.calloutElementRef || !this.calloutElementRef.nativeElement.classList.contains('k-callout-n')) {
44
+ return;
45
+ }
46
+ this.calloutElementRef.nativeElement.style.left = value?.left;
47
+ }
48
+ get collapsedClass() {
49
+ return !this.expanded && !this.animationInProgress && this.animationState === 'collapsed';
50
+ }
51
+ onComponentKeyDown(event) {
52
+ if (!this.navigable) {
53
+ return;
54
+ }
55
+ if (event.keyCode === Keys.Space || event.keyCode === Keys.Enter) {
56
+ event.preventDefault();
57
+ if (this.collapsible && this.orientation === 'vertical') {
58
+ this.expanded = !this.expanded;
59
+ }
60
+ }
61
+ }
62
+ get role() {
63
+ return this.orientation === 'vertical' ? 'button' : 'tabpanel';
64
+ }
65
+ get ariaLive() {
66
+ return this.orientation === 'vertical' ? 'polite' : null;
67
+ }
68
+ get ariaExpanded() {
69
+ return this.orientation === 'vertical' ? this.expanded : null;
70
+ }
71
+ ngAfterViewInit() {
72
+ this.makeOverflowVisible();
73
+ }
74
+ ngOnChanges(changes) {
75
+ if (isChanged('collapsible', changes, false)) {
76
+ if (!this.collapsible) {
77
+ this.expanded = true;
78
+ }
79
+ }
80
+ }
81
+ toggle() {
82
+ if (this.orientation === 'vertical') {
83
+ this.expanded = this.collapsible ? !this.expanded : true;
84
+ this.timelineService.onToggle(this.index);
85
+ }
86
+ }
87
+ expand() {
88
+ if (!this.expanded) {
89
+ this.expanded = true;
90
+ this.timelineService.onToggle(this.index);
91
+ }
92
+ }
93
+ collapse() {
94
+ if (!this.collapsible || !this.expanded) {
95
+ return;
96
+ }
97
+ this.expanded = false;
98
+ this.timelineService.onToggle(this.index);
99
+ }
100
+ onActionClick(event) {
101
+ event.stopPropagation();
102
+ this.timelineService.onActionClick(this.index);
103
+ }
104
+ animationStart() {
105
+ this.animationInProgress = true;
106
+ }
107
+ animationDone(event) {
108
+ this.animationInProgress = false;
109
+ if (event.toState === 'expanded' && event.fromState !== 'expanded') {
110
+ this.animationState = 'expanded';
111
+ this.makeOverflowVisible();
112
+ }
113
+ else if (event.toState === 'collapsed' && event.fromState !== 'collapsed') {
114
+ this.animationState = 'collapsed';
115
+ }
116
+ }
117
+ makeOverflowVisible() {
118
+ if (this.orientation === 'vertical') {
119
+ return;
120
+ }
121
+ const cardBody = this.element?.nativeElement.querySelector('.k-card-body');
122
+ if (cardBody) {
123
+ this.renderer.setStyle(cardBody, 'overflow', 'auto');
124
+ }
125
+ }
126
+ }
127
+ TimelineCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineCardComponent, deps: [{ token: i0.ElementRef }, { token: i1.TimelineService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
128
+ TimelineCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", 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: `
129
+ <kendo-card
130
+ [ngStyle]="{ 'height': orientation === 'horizontal' ? eventHeight + 'px' : null }"
131
+ [width]="orientation === 'horizontal' ? 'auto' : eventWidth + 'px'"
132
+ class="k-card-with-callout k-card-vertical"
133
+ (click)="toggle()"
134
+ [attr.role]="role"
135
+ [attr.aria-live]="ariaLive"
136
+ [attr.aria-expanded]="ariaExpanded"
137
+ [attr.tabindex]="tabIndex"
138
+ >
139
+ <span
140
+ #callout
141
+ class="k-timeline-card-callout k-card-callout"
142
+ [ngClass]="{
143
+ 'k-callout-n': orientation === 'horizontal',
144
+ 'k-callout-w': orientation === 'vertical' && !this.reversed,
145
+ 'k-callout-e': orientation === 'vertical' && this.reversed
146
+ }"
147
+ >
148
+ </span>
149
+ <div *ngIf="event" class="k-card-inner">
150
+ <kendo-card-header>
151
+ <ng-template
152
+ *ngIf="headerTemplate"
153
+ [ngTemplateOutlet]="headerTemplate?.templateRef"
154
+ [ngTemplateOutletContext]="{ $implicit: event, index: index}">
155
+ >
156
+ </ng-template>
157
+
158
+ <div kendoCardTitle *ngIf="!headerTemplate">
159
+ <span class="k-event-title">{{ event.title }}</span>
160
+ <button
161
+ kendoButton
162
+ *ngIf="collapsible && orientation === 'vertical'"
163
+ [icon]="calloutFontIcon"
164
+ [svgIcon]="calloutSvgIcon"
165
+ class="k-event-collapse"
166
+ fillMode="flat"
167
+ [attr.aria-hidden]="true"
168
+ tabindex="-1"
169
+ type="button"
170
+ ></button>
171
+ </div>
172
+ <div kendoCardSubtitle *ngIf="!headerTemplate">{{ event.subtitle }}</div>
173
+ </kendo-card-header>
174
+
175
+ <kendo-card-body
176
+ *ngIf="event.description || event.images"
177
+ [@toggle]="{value: expanded ? 'expanded' : 'collapsed', params: {animationDuration: this.animationDuration || 0}}"
178
+ (@toggle.start)="animationStart()"
179
+ (@toggle.done)="animationDone($event)"
180
+ >
181
+ <ng-template
182
+ *ngIf="bodyTemplate"
183
+ [ngTemplateOutlet]="bodyTemplate?.templateRef"
184
+ [ngTemplateOutletContext]="{ $implicit: event, index: index}">
185
+ >
186
+ </ng-template>
187
+
188
+ <div *ngIf="!bodyTemplate" class="k-card-description">
189
+ <p *ngIf="event.description">{{ event.description }}</p>
190
+ <ng-container *ngFor="let image of event.images">
191
+ <img *ngIf="image.alt" kendoCardMedia [src]="image.src" [alt]="image.alt" />
192
+ <img *ngIf="!image.alt" kendoCardMedia [src]="image.src" />
193
+ </ng-container>
194
+ </div>
195
+ </kendo-card-body>
196
+
197
+ <kendo-card-actions
198
+ *ngIf="event.actions"
199
+ [@toggle]="{value: expanded ? 'expanded' : 'collapsed', params: {animationDuration: this.animationDuration || 0}}"
200
+ >
201
+ <ng-template
202
+ *ngIf="actionsTemplate"
203
+ [ngTemplateOutlet]="actionsTemplate?.templateRef"
204
+ [ngTemplateOutletContext]="{ $implicit: event, index: index}">
205
+ >
206
+ </ng-template>
207
+
208
+ <ng-container *ngIf="!actionsTemplate">
209
+ <a *ngFor="let action of event.actions"
210
+ [href]="action.url"
211
+ [target]="action.target === 'blank' ? '_blank' : '_self'"
212
+ (click)="onActionClick($event)"
213
+ class="k-button k-button-md k-rounded-md k-button-flat k-button-flat-primary"
214
+ role="button"
215
+ >
216
+ {{ action.text }}
217
+ </a>
218
+ </ng-container>
219
+ </kendo-card-actions>
220
+ </div>
221
+ </kendo-card>
222
+ `, 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: i3.CardComponent, selector: "kendo-card", inputs: ["orientation", "width"] }, { kind: "component", type: i4.CardHeaderComponent, selector: "kendo-card-header" }, { kind: "component", type: i5.CardBodyComponent, selector: "kendo-card-body" }, { kind: "component", type: i6.CardActionsComponent, selector: "kendo-card-actions", inputs: ["orientation", "layout", "actions"], outputs: ["action"] }, { kind: "directive", type: i7.CardTitleDirective, selector: "[kendoCardTitle]" }, { kind: "directive", type: i8.CardSubtitleDirective, selector: "[kendoCardSubtitle]" }, { kind: "directive", type: i9.CardMediaDirective, selector: "[kendoCardMedia]" }, { kind: "component", type: i10.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: [
223
+ trigger('toggle', [
224
+ state('collapsed', style({
225
+ height: '0',
226
+ 'overflow-y': 'hidden',
227
+ display: 'none'
228
+ })),
229
+ state('expanded', style({
230
+ height: '*',
231
+ 'overflow-y': 'hidden',
232
+ display: 'block'
233
+ })),
234
+ transition('collapsed <=> expanded', [
235
+ animate('{{animationDuration}}ms')
236
+ ], { params: { animationDuration: '400' } }),
237
+ ])
238
+ ] });
239
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimelineCardComponent, decorators: [{
240
+ type: Component,
241
+ args: [{
242
+ animations: [
243
+ trigger('toggle', [
244
+ state('collapsed', style({
245
+ height: '0',
246
+ 'overflow-y': 'hidden',
247
+ display: 'none'
248
+ })),
249
+ state('expanded', style({
250
+ height: '*',
251
+ 'overflow-y': 'hidden',
252
+ display: 'block'
253
+ })),
254
+ transition('collapsed <=> expanded', [
255
+ animate('{{animationDuration}}ms')
256
+ ], { params: { animationDuration: '400' } }),
257
+ ])
258
+ ],
259
+ providers: [],
260
+ exportAs: 'kendoTimelineCard',
261
+ selector: 'kendo-timeline-card',
262
+ template: `
263
+ <kendo-card
264
+ [ngStyle]="{ 'height': orientation === 'horizontal' ? eventHeight + 'px' : null }"
265
+ [width]="orientation === 'horizontal' ? 'auto' : eventWidth + 'px'"
266
+ class="k-card-with-callout k-card-vertical"
267
+ (click)="toggle()"
268
+ [attr.role]="role"
269
+ [attr.aria-live]="ariaLive"
270
+ [attr.aria-expanded]="ariaExpanded"
271
+ [attr.tabindex]="tabIndex"
272
+ >
273
+ <span
274
+ #callout
275
+ class="k-timeline-card-callout k-card-callout"
276
+ [ngClass]="{
277
+ 'k-callout-n': orientation === 'horizontal',
278
+ 'k-callout-w': orientation === 'vertical' && !this.reversed,
279
+ 'k-callout-e': orientation === 'vertical' && this.reversed
280
+ }"
281
+ >
282
+ </span>
283
+ <div *ngIf="event" class="k-card-inner">
284
+ <kendo-card-header>
285
+ <ng-template
286
+ *ngIf="headerTemplate"
287
+ [ngTemplateOutlet]="headerTemplate?.templateRef"
288
+ [ngTemplateOutletContext]="{ $implicit: event, index: index}">
289
+ >
290
+ </ng-template>
291
+
292
+ <div kendoCardTitle *ngIf="!headerTemplate">
293
+ <span class="k-event-title">{{ event.title }}</span>
294
+ <button
295
+ kendoButton
296
+ *ngIf="collapsible && orientation === 'vertical'"
297
+ [icon]="calloutFontIcon"
298
+ [svgIcon]="calloutSvgIcon"
299
+ class="k-event-collapse"
300
+ fillMode="flat"
301
+ [attr.aria-hidden]="true"
302
+ tabindex="-1"
303
+ type="button"
304
+ ></button>
305
+ </div>
306
+ <div kendoCardSubtitle *ngIf="!headerTemplate">{{ event.subtitle }}</div>
307
+ </kendo-card-header>
308
+
309
+ <kendo-card-body
310
+ *ngIf="event.description || event.images"
311
+ [@toggle]="{value: expanded ? 'expanded' : 'collapsed', params: {animationDuration: this.animationDuration || 0}}"
312
+ (@toggle.start)="animationStart()"
313
+ (@toggle.done)="animationDone($event)"
314
+ >
315
+ <ng-template
316
+ *ngIf="bodyTemplate"
317
+ [ngTemplateOutlet]="bodyTemplate?.templateRef"
318
+ [ngTemplateOutletContext]="{ $implicit: event, index: index}">
319
+ >
320
+ </ng-template>
321
+
322
+ <div *ngIf="!bodyTemplate" class="k-card-description">
323
+ <p *ngIf="event.description">{{ event.description }}</p>
324
+ <ng-container *ngFor="let image of event.images">
325
+ <img *ngIf="image.alt" kendoCardMedia [src]="image.src" [alt]="image.alt" />
326
+ <img *ngIf="!image.alt" kendoCardMedia [src]="image.src" />
327
+ </ng-container>
328
+ </div>
329
+ </kendo-card-body>
330
+
331
+ <kendo-card-actions
332
+ *ngIf="event.actions"
333
+ [@toggle]="{value: expanded ? 'expanded' : 'collapsed', params: {animationDuration: this.animationDuration || 0}}"
334
+ >
335
+ <ng-template
336
+ *ngIf="actionsTemplate"
337
+ [ngTemplateOutlet]="actionsTemplate?.templateRef"
338
+ [ngTemplateOutletContext]="{ $implicit: event, index: index}">
339
+ >
340
+ </ng-template>
341
+
342
+ <ng-container *ngIf="!actionsTemplate">
343
+ <a *ngFor="let action of event.actions"
344
+ [href]="action.url"
345
+ [target]="action.target === 'blank' ? '_blank' : '_self'"
346
+ (click)="onActionClick($event)"
347
+ class="k-button k-button-md k-rounded-md k-button-flat k-button-flat-primary"
348
+ role="button"
349
+ >
350
+ {{ action.text }}
351
+ </a>
352
+ </ng-container>
353
+ </kendo-card-actions>
354
+ </div>
355
+ </kendo-card>
356
+ `,
357
+ }]
358
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.TimelineService }, { type: i0.Renderer2 }]; }, propDecorators: { event: [{
359
+ type: Input
360
+ }], expanded: [{
361
+ type: Input
362
+ }], collapsible: [{
363
+ type: Input
364
+ }], reversed: [{
365
+ type: Input
366
+ }], orientation: [{
367
+ type: Input
368
+ }], navigable: [{
369
+ type: Input
370
+ }], tabIndex: [{
371
+ type: Input
372
+ }], animationDuration: [{
373
+ type: Input
374
+ }], index: [{
375
+ type: Input
376
+ }], eventWidth: [{
377
+ type: Input
378
+ }], eventHeight: [{
379
+ type: Input
380
+ }], headerTemplate: [{
381
+ type: Input
382
+ }], bodyTemplate: [{
383
+ type: Input
384
+ }], actionsTemplate: [{
385
+ type: Input
386
+ }], calloutStyle: [{
387
+ type: Input
388
+ }], calloutElementRef: [{
389
+ type: ViewChild,
390
+ args: ['callout']
391
+ }], hostClass: [{
392
+ type: HostBinding,
393
+ args: ['class.k-timeline-card']
394
+ }], collapsedClass: [{
395
+ type: HostBinding,
396
+ args: ['class.k-collapsed']
397
+ }], onComponentKeyDown: [{
398
+ type: HostListener,
399
+ args: ['keydown', ['$event']]
400
+ }] } });