@progress/kendo-angular-layout 21.1.1-develop.2 → 21.2.0-develop.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/avatar/avatar.component.mjs +63 -59
- package/esm2022/card/card-actions.component.mjs +51 -41
- package/esm2022/drawer/drawer-container.component.mjs +10 -8
- package/esm2022/drawer/drawer.component.mjs +69 -55
- package/esm2022/drawer/item.component.mjs +79 -69
- package/esm2022/drawer/list.component.mjs +28 -25
- package/esm2022/expansionpanel/expansionpanel.component.mjs +75 -65
- package/esm2022/package-metadata.mjs +2 -2
- package/esm2022/panelbar/panelbar-item.component.mjs +169 -135
- package/esm2022/panelbar/panelbar.component.mjs +56 -45
- package/esm2022/splitter/splitter-bar.component.mjs +32 -25
- package/esm2022/splitter/splitter-pane.component.mjs +16 -10
- package/esm2022/splitter/splitter.component.mjs +29 -31
- package/esm2022/stepper/list.component.mjs +33 -33
- package/esm2022/stepper/step.component.mjs +141 -111
- package/esm2022/stepper/stepper.component.mjs +59 -55
- package/esm2022/tabstrip/rendering/tab.component.mjs +49 -39
- package/esm2022/tabstrip/tabstrip.component.mjs +251 -233
- package/esm2022/tabstrip/util.mjs +1 -1
- package/esm2022/tilelayout/tilelayout-item.component.mjs +28 -23
- package/esm2022/tilelayout/tilelayout.component.mjs +24 -21
- package/esm2022/timeline/timeline-card.component.mjs +185 -151
- package/esm2022/timeline/timeline-horizontal.component.mjs +197 -183
- package/esm2022/timeline/timeline-vertical.component.mjs +79 -67
- package/esm2022/timeline/timeline.component.mjs +36 -33
- package/fesm2022/progress-kendo-angular-layout.mjs +1747 -1498
- package/package.json +9 -9
|
@@ -12,7 +12,6 @@ import { RESIZE_DIRECTIONS, RTL_RESIZE_DIRECTIONS } from './constants';
|
|
|
12
12
|
import { TileLayoutItemHeaderComponent } from './tilelayout-item-header.component';
|
|
13
13
|
import { getId } from './util';
|
|
14
14
|
import { TileLayoutResizeHandleDirective } from './tilelayout-resize-handle.directive';
|
|
15
|
-
import { NgIf, NgFor } from '@angular/common';
|
|
16
15
|
import * as i0 from "@angular/core";
|
|
17
16
|
import * as i1 from "@progress/kendo-angular-l10n";
|
|
18
17
|
import * as i2 from "./dragging-service";
|
|
@@ -221,43 +220,49 @@ export class TileLayoutItemComponent {
|
|
|
221
220
|
}
|
|
222
221
|
}
|
|
223
222
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TileLayoutItemComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i1.LocalizationService }, { token: i2.TileLayoutDraggingService }, { token: i3.TileLayoutKeyboardNavigationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
224
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
225
|
-
|
|
223
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TileLayoutItemComponent, isStandalone: true, selector: "kendo-tilelayout-item", inputs: { title: "title", rowSpan: "rowSpan", colSpan: "colSpan", order: "order", col: "col", row: "row", reorderable: "reorderable", resizable: "resizable" }, host: { properties: { "class.k-tilelayout-item": "this.itemClass", "class.k-card": "this.itemClass", "attr.role": "this.hostRole", "attr.aria-dropeffect": "this.hostDropEffect", "attr.tabindex": "this.hostTabindex", "attr.aria-keyshortcuts": "this.ariaKeyShortcuts", "attr.aria-grabbed": "this.hostGrabbed", "attr.aria-labelledby": "this.hostLabelledBy", "style.grid-column-end": "this.colEnd", "style.grid-row-end": "this.rowEnd", "style.grid-column-start": "this.colStart", "style.grid-row-start": "this.rowStart" } }, queries: [{ propertyName: "headers", predicate: TileLayoutItemHeaderComponent }], usesOnChanges: true, ngImport: i0, template: `
|
|
224
|
+
@if (title) {
|
|
225
|
+
<kendo-tilelayout-item-header>
|
|
226
226
|
<h5 [id]="titleId" class="k-card-title">{{ title }}</h5>
|
|
227
|
-
|
|
227
|
+
</kendo-tilelayout-item-header>
|
|
228
|
+
}
|
|
228
229
|
<ng-content></ng-content>
|
|
229
|
-
|
|
230
|
+
@if (resizable) {
|
|
231
|
+
@for (dir of resizeDirections; track dir) {
|
|
230
232
|
<div
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
[resizeDirection]="dir">
|
|
233
|
+
class="k-resize-handle k-cursor-{{dir}}-resize"
|
|
234
|
+
kendoTileLayoutResizeHandle
|
|
235
|
+
[rtl]="rtl"
|
|
236
|
+
[resizeDirection]="dir">
|
|
236
237
|
</div>
|
|
237
|
-
|
|
238
|
-
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
`, isInline: true, dependencies: [{ kind: "component", type: TileLayoutItemHeaderComponent, selector: "kendo-tilelayout-item-header" }, { kind: "directive", type: TileLayoutResizeHandleDirective, selector: "[kendoTileLayoutResizeHandle]", inputs: ["resizeDirection", "rtl"] }] });
|
|
239
241
|
}
|
|
240
242
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TileLayoutItemComponent, decorators: [{
|
|
241
243
|
type: Component,
|
|
242
244
|
args: [{
|
|
243
245
|
selector: 'kendo-tilelayout-item',
|
|
244
246
|
template: `
|
|
245
|
-
|
|
247
|
+
@if (title) {
|
|
248
|
+
<kendo-tilelayout-item-header>
|
|
246
249
|
<h5 [id]="titleId" class="k-card-title">{{ title }}</h5>
|
|
247
|
-
|
|
250
|
+
</kendo-tilelayout-item-header>
|
|
251
|
+
}
|
|
248
252
|
<ng-content></ng-content>
|
|
249
|
-
|
|
253
|
+
@if (resizable) {
|
|
254
|
+
@for (dir of resizeDirections; track dir) {
|
|
250
255
|
<div
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
[resizeDirection]="dir">
|
|
256
|
+
class="k-resize-handle k-cursor-{{dir}}-resize"
|
|
257
|
+
kendoTileLayoutResizeHandle
|
|
258
|
+
[rtl]="rtl"
|
|
259
|
+
[resizeDirection]="dir">
|
|
256
260
|
</div>
|
|
257
|
-
|
|
258
|
-
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
`,
|
|
259
264
|
standalone: true,
|
|
260
|
-
imports: [
|
|
265
|
+
imports: [TileLayoutItemHeaderComponent, TileLayoutResizeHandleDirective]
|
|
261
266
|
}]
|
|
262
267
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i1.LocalizationService }, { type: i2.TileLayoutDraggingService }, { type: i3.TileLayoutKeyboardNavigationService }], propDecorators: { title: [{
|
|
263
268
|
type: Input
|
|
@@ -13,7 +13,6 @@ import { validatePackage } from '@progress/kendo-licensing';
|
|
|
13
13
|
import { packageMetadata } from '../package-metadata';
|
|
14
14
|
import { isPresent } from '../common/util';
|
|
15
15
|
import { TileLayoutKeyboardNavigationService } from './keyboard-navigation.service';
|
|
16
|
-
import { NgIf } from '@angular/common';
|
|
17
16
|
import * as i0 from "@angular/core";
|
|
18
17
|
import * as i1 from "@progress/kendo-angular-l10n";
|
|
19
18
|
import * as i2 from "./dragging-service";
|
|
@@ -290,7 +289,7 @@ export class TileLayoutComponent {
|
|
|
290
289
|
}
|
|
291
290
|
};
|
|
292
291
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TileLayoutComponent, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.LocalizationService }, { token: i2.TileLayoutDraggingService }, { token: i3.TileLayoutKeyboardNavigationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
293
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
292
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TileLayoutComponent, isStandalone: true, selector: "kendo-tilelayout", inputs: { columns: "columns", columnWidth: "columnWidth", gap: "gap", reorderable: "reorderable", resizable: "resizable", rowHeight: "rowHeight", autoFlow: "autoFlow", navigable: "navigable" }, outputs: { reorder: "reorder", resize: "resize" }, host: { properties: { "class.k-tilelayout": "this.hostClass", "attr.role": "this.hostRole", "style.gap": "this.gapStyle", "style.padding": "this.gapStyle", "attr.dir": "this.direction" } }, providers: [
|
|
294
293
|
LocalizationService,
|
|
295
294
|
TileLayoutDraggingService,
|
|
296
295
|
TileLayoutKeyboardNavigationService,
|
|
@@ -301,16 +300,18 @@ export class TileLayoutComponent {
|
|
|
301
300
|
], queries: [{ propertyName: "items", predicate: TileLayoutItemComponent }], viewQueries: [{ propertyName: "hint", first: true, predicate: ["hint"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
302
301
|
<ng-content></ng-content>
|
|
303
302
|
<div #hint class="k-layout-item-hint"
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
303
|
+
[style.display]="'none'"
|
|
304
|
+
[style.order]="targetOrder"
|
|
305
|
+
[style.gridColumnEnd]="draggedItemWrapper?.style.gridColumnEnd"
|
|
306
|
+
[style.gridRowEnd]="draggedItemWrapper?.style.gridRowEnd"
|
|
307
|
+
[style.gridColumnStart]="currentColStart"
|
|
308
|
+
[style.gridRowStart]="currentRowStart"
|
|
309
|
+
[style.zIndex]="'1'">
|
|
311
310
|
</div>
|
|
312
|
-
|
|
313
|
-
|
|
311
|
+
@if (showLicenseWatermark) {
|
|
312
|
+
<div kendoWatermarkOverlay [licenseMessage]="licenseMessage"></div>
|
|
313
|
+
}
|
|
314
|
+
`, isInline: true, dependencies: [{ kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]", inputs: ["licenseMessage"] }] });
|
|
314
315
|
}
|
|
315
316
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TileLayoutComponent, decorators: [{
|
|
316
317
|
type: Component,
|
|
@@ -328,18 +329,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
328
329
|
template: `
|
|
329
330
|
<ng-content></ng-content>
|
|
330
331
|
<div #hint class="k-layout-item-hint"
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
332
|
+
[style.display]="'none'"
|
|
333
|
+
[style.order]="targetOrder"
|
|
334
|
+
[style.gridColumnEnd]="draggedItemWrapper?.style.gridColumnEnd"
|
|
335
|
+
[style.gridRowEnd]="draggedItemWrapper?.style.gridRowEnd"
|
|
336
|
+
[style.gridColumnStart]="currentColStart"
|
|
337
|
+
[style.gridRowStart]="currentRowStart"
|
|
338
|
+
[style.zIndex]="'1'">
|
|
338
339
|
</div>
|
|
339
|
-
|
|
340
|
-
|
|
340
|
+
@if (showLicenseWatermark) {
|
|
341
|
+
<div kendoWatermarkOverlay [licenseMessage]="licenseMessage"></div>
|
|
342
|
+
}
|
|
343
|
+
`,
|
|
341
344
|
standalone: true,
|
|
342
|
-
imports: [
|
|
345
|
+
imports: [WatermarkOverlayComponent]
|
|
343
346
|
}]
|
|
344
347
|
}], ctorParameters: () => [{ type: i0.NgZone }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.LocalizationService }, { type: i2.TileLayoutDraggingService }, { type: i3.TileLayoutKeyboardNavigationService }], propDecorators: { columns: [{
|
|
345
348
|
type: Input
|
|
@@ -17,7 +17,7 @@ import { CardSubtitleDirective } from '../card/directives/card-subtitle.directiv
|
|
|
17
17
|
import { ButtonComponent } from '@progress/kendo-angular-buttons';
|
|
18
18
|
import { CardTitleDirective } from '../card/directives/card-title.directive';
|
|
19
19
|
import { CardHeaderComponent } from '../card/card-header.component';
|
|
20
|
-
import { NgStyle, NgClass,
|
|
20
|
+
import { NgStyle, NgClass, NgTemplateOutlet } from '@angular/common';
|
|
21
21
|
import { CardComponent } from '../card/card.component';
|
|
22
22
|
import * as i0 from "@angular/core";
|
|
23
23
|
import * as i1 from "./timeline.service";
|
|
@@ -139,101 +139,118 @@ export class TimelineCardComponent {
|
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
141
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TimelineCardComponent, deps: [{ token: i0.ElementRef }, { token: i1.TimelineService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
142
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
142
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TimelineCardComponent, isStandalone: true, 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: `
|
|
143
143
|
<kendo-card
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
144
|
+
[ngStyle]="{ 'height': orientation === 'horizontal' ? eventHeight + 'px' : null }"
|
|
145
|
+
[width]="orientation === 'horizontal' ? 'auto' : eventWidth + 'px'"
|
|
146
|
+
class="k-card-with-callout k-card-vertical"
|
|
147
|
+
(click)="toggle()"
|
|
148
|
+
[attr.role]="role"
|
|
149
|
+
[attr.aria-live]="ariaLive"
|
|
150
|
+
[attr.aria-expanded]="ariaExpanded"
|
|
151
|
+
[attr.tabindex]="tabIndex"
|
|
152
|
+
>
|
|
153
|
+
<span
|
|
154
|
+
#callout
|
|
155
|
+
class="k-timeline-card-callout k-card-callout"
|
|
156
156
|
[ngClass]="{
|
|
157
157
|
'k-callout-n': orientation === 'horizontal',
|
|
158
158
|
'k-callout-w': orientation === 'vertical' && !this.reversed,
|
|
159
159
|
'k-callout-e': orientation === 'vertical' && this.reversed
|
|
160
160
|
}"
|
|
161
161
|
>
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
162
|
+
</span>
|
|
163
|
+
@if (event) {
|
|
164
|
+
<div class="k-card-inner">
|
|
165
|
+
<kendo-card-header>
|
|
166
|
+
@if (headerTemplate) {
|
|
167
|
+
<ng-template
|
|
168
|
+
[ngTemplateOutlet]="headerTemplate?.templateRef"
|
|
169
|
+
[ngTemplateOutletContext]="{ $implicit: event, index: index}">
|
|
169
170
|
>
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
171
|
+
</ng-template>
|
|
172
|
+
}
|
|
173
|
+
@if (!headerTemplate) {
|
|
174
|
+
<div kendoCardTitle>
|
|
175
|
+
<span class="k-event-title">{{ event.title }}</span>
|
|
176
|
+
@if (collapsible && orientation === 'vertical') {
|
|
177
|
+
<button
|
|
178
|
+
kendoButton
|
|
179
|
+
[icon]="calloutFontIcon"
|
|
180
|
+
[svgIcon]="calloutSvgIcon"
|
|
181
|
+
class="k-event-collapse"
|
|
182
|
+
fillMode="flat"
|
|
183
|
+
[attr.aria-hidden]="true"
|
|
184
|
+
tabindex="-1"
|
|
185
|
+
type="button"
|
|
186
|
+
></button>
|
|
187
|
+
}
|
|
188
|
+
</div>
|
|
189
|
+
}
|
|
190
|
+
@if (!headerTemplate) {
|
|
191
|
+
<div kendoCardSubtitle >{{ event.subtitle }}</div>
|
|
192
|
+
}
|
|
193
|
+
</kendo-card-header>
|
|
194
|
+
@if (event.description || event.images) {
|
|
189
195
|
<kendo-card-body
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
196
|
+
[@toggle]="{value: expanded ? 'expanded' : 'collapsed', params: {animationDuration: this.animationDuration || 0}}"
|
|
197
|
+
(@toggle.start)="animationStart()"
|
|
198
|
+
(@toggle.done)="animationDone($event)"
|
|
199
|
+
>
|
|
200
|
+
@if (bodyTemplate) {
|
|
195
201
|
<ng-template
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
>
|
|
202
|
+
[ngTemplateOutlet]="bodyTemplate?.templateRef"
|
|
203
|
+
[ngTemplateOutletContext]="{ $implicit: event, index: index}">
|
|
204
|
+
>
|
|
200
205
|
</ng-template>
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
206
|
+
}
|
|
207
|
+
@if (!bodyTemplate) {
|
|
208
|
+
<div class="k-card-description">
|
|
209
|
+
@if (event.description) {
|
|
210
|
+
<p>{{ event.description }}</p>
|
|
211
|
+
}
|
|
212
|
+
@for (image of event.images; track image) {
|
|
213
|
+
@if (image.alt) {
|
|
214
|
+
<img kendoCardMedia [src]="image.src" [alt]="image.alt" />
|
|
215
|
+
}
|
|
216
|
+
@if (!image.alt) {
|
|
217
|
+
<img kendoCardMedia [src]="image.src" />
|
|
218
|
+
}
|
|
219
|
+
}
|
|
208
220
|
</div>
|
|
221
|
+
}
|
|
209
222
|
</kendo-card-body>
|
|
210
|
-
|
|
223
|
+
}
|
|
224
|
+
@if (event.actions) {
|
|
211
225
|
<kendo-card-actions
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
226
|
+
[@toggle]="{value: expanded ? 'expanded' : 'collapsed', params: {animationDuration: this.animationDuration || 0}}"
|
|
227
|
+
>
|
|
228
|
+
@if (actionsTemplate) {
|
|
215
229
|
<ng-template
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
>
|
|
230
|
+
[ngTemplateOutlet]="actionsTemplate?.templateRef"
|
|
231
|
+
[ngTemplateOutletContext]="{ $implicit: event, index: index}">
|
|
232
|
+
>
|
|
220
233
|
</ng-template>
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
234
|
+
}
|
|
235
|
+
@if (!actionsTemplate) {
|
|
236
|
+
@for (action of event.actions; track action) {
|
|
237
|
+
<a
|
|
238
|
+
[href]="action.url"
|
|
239
|
+
[target]="action.target === 'blank' ? '_blank' : '_self'"
|
|
240
|
+
(click)="onActionClick($event)"
|
|
241
|
+
class="k-button k-button-md k-rounded-md k-button-flat k-button-flat-primary"
|
|
242
|
+
role="button"
|
|
229
243
|
>
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
244
|
+
{{ action.text }}
|
|
245
|
+
</a>
|
|
246
|
+
}
|
|
247
|
+
}
|
|
233
248
|
</kendo-card-actions>
|
|
249
|
+
}
|
|
234
250
|
</div>
|
|
251
|
+
}
|
|
235
252
|
</kendo-card>
|
|
236
|
-
|
|
253
|
+
`, isInline: true, dependencies: [{ kind: "component", type: CardComponent, selector: "kendo-card", inputs: ["orientation", "width"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: CardHeaderComponent, selector: "kendo-card-header" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: CardTitleDirective, selector: "[kendoCardTitle]" }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: CardSubtitleDirective, selector: "[kendoCardSubtitle]" }, { kind: "component", type: CardBodyComponent, selector: "kendo-card-body" }, { kind: "directive", type: CardMediaDirective, selector: "[kendoCardMedia]" }, { kind: "component", type: CardActionsComponent, selector: "kendo-card-actions", inputs: ["orientation", "layout", "actions"], outputs: ["action"] }], animations: [
|
|
237
254
|
trigger('toggle', [
|
|
238
255
|
state('collapsed', style({
|
|
239
256
|
height: '0',
|
|
@@ -276,101 +293,118 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
276
293
|
selector: 'kendo-timeline-card',
|
|
277
294
|
template: `
|
|
278
295
|
<kendo-card
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
296
|
+
[ngStyle]="{ 'height': orientation === 'horizontal' ? eventHeight + 'px' : null }"
|
|
297
|
+
[width]="orientation === 'horizontal' ? 'auto' : eventWidth + 'px'"
|
|
298
|
+
class="k-card-with-callout k-card-vertical"
|
|
299
|
+
(click)="toggle()"
|
|
300
|
+
[attr.role]="role"
|
|
301
|
+
[attr.aria-live]="ariaLive"
|
|
302
|
+
[attr.aria-expanded]="ariaExpanded"
|
|
303
|
+
[attr.tabindex]="tabIndex"
|
|
304
|
+
>
|
|
305
|
+
<span
|
|
306
|
+
#callout
|
|
307
|
+
class="k-timeline-card-callout k-card-callout"
|
|
291
308
|
[ngClass]="{
|
|
292
309
|
'k-callout-n': orientation === 'horizontal',
|
|
293
310
|
'k-callout-w': orientation === 'vertical' && !this.reversed,
|
|
294
311
|
'k-callout-e': orientation === 'vertical' && this.reversed
|
|
295
312
|
}"
|
|
296
313
|
>
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
314
|
+
</span>
|
|
315
|
+
@if (event) {
|
|
316
|
+
<div class="k-card-inner">
|
|
317
|
+
<kendo-card-header>
|
|
318
|
+
@if (headerTemplate) {
|
|
319
|
+
<ng-template
|
|
320
|
+
[ngTemplateOutlet]="headerTemplate?.templateRef"
|
|
321
|
+
[ngTemplateOutletContext]="{ $implicit: event, index: index}">
|
|
304
322
|
>
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
323
|
+
</ng-template>
|
|
324
|
+
}
|
|
325
|
+
@if (!headerTemplate) {
|
|
326
|
+
<div kendoCardTitle>
|
|
327
|
+
<span class="k-event-title">{{ event.title }}</span>
|
|
328
|
+
@if (collapsible && orientation === 'vertical') {
|
|
329
|
+
<button
|
|
330
|
+
kendoButton
|
|
331
|
+
[icon]="calloutFontIcon"
|
|
332
|
+
[svgIcon]="calloutSvgIcon"
|
|
333
|
+
class="k-event-collapse"
|
|
334
|
+
fillMode="flat"
|
|
335
|
+
[attr.aria-hidden]="true"
|
|
336
|
+
tabindex="-1"
|
|
337
|
+
type="button"
|
|
338
|
+
></button>
|
|
339
|
+
}
|
|
340
|
+
</div>
|
|
341
|
+
}
|
|
342
|
+
@if (!headerTemplate) {
|
|
343
|
+
<div kendoCardSubtitle >{{ event.subtitle }}</div>
|
|
344
|
+
}
|
|
345
|
+
</kendo-card-header>
|
|
346
|
+
@if (event.description || event.images) {
|
|
324
347
|
<kendo-card-body
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
348
|
+
[@toggle]="{value: expanded ? 'expanded' : 'collapsed', params: {animationDuration: this.animationDuration || 0}}"
|
|
349
|
+
(@toggle.start)="animationStart()"
|
|
350
|
+
(@toggle.done)="animationDone($event)"
|
|
351
|
+
>
|
|
352
|
+
@if (bodyTemplate) {
|
|
330
353
|
<ng-template
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
>
|
|
354
|
+
[ngTemplateOutlet]="bodyTemplate?.templateRef"
|
|
355
|
+
[ngTemplateOutletContext]="{ $implicit: event, index: index}">
|
|
356
|
+
>
|
|
335
357
|
</ng-template>
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
358
|
+
}
|
|
359
|
+
@if (!bodyTemplate) {
|
|
360
|
+
<div class="k-card-description">
|
|
361
|
+
@if (event.description) {
|
|
362
|
+
<p>{{ event.description }}</p>
|
|
363
|
+
}
|
|
364
|
+
@for (image of event.images; track image) {
|
|
365
|
+
@if (image.alt) {
|
|
366
|
+
<img kendoCardMedia [src]="image.src" [alt]="image.alt" />
|
|
367
|
+
}
|
|
368
|
+
@if (!image.alt) {
|
|
369
|
+
<img kendoCardMedia [src]="image.src" />
|
|
370
|
+
}
|
|
371
|
+
}
|
|
343
372
|
</div>
|
|
373
|
+
}
|
|
344
374
|
</kendo-card-body>
|
|
345
|
-
|
|
375
|
+
}
|
|
376
|
+
@if (event.actions) {
|
|
346
377
|
<kendo-card-actions
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
378
|
+
[@toggle]="{value: expanded ? 'expanded' : 'collapsed', params: {animationDuration: this.animationDuration || 0}}"
|
|
379
|
+
>
|
|
380
|
+
@if (actionsTemplate) {
|
|
350
381
|
<ng-template
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
>
|
|
382
|
+
[ngTemplateOutlet]="actionsTemplate?.templateRef"
|
|
383
|
+
[ngTemplateOutletContext]="{ $implicit: event, index: index}">
|
|
384
|
+
>
|
|
355
385
|
</ng-template>
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
386
|
+
}
|
|
387
|
+
@if (!actionsTemplate) {
|
|
388
|
+
@for (action of event.actions; track action) {
|
|
389
|
+
<a
|
|
390
|
+
[href]="action.url"
|
|
391
|
+
[target]="action.target === 'blank' ? '_blank' : '_self'"
|
|
392
|
+
(click)="onActionClick($event)"
|
|
393
|
+
class="k-button k-button-md k-rounded-md k-button-flat k-button-flat-primary"
|
|
394
|
+
role="button"
|
|
364
395
|
>
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
396
|
+
{{ action.text }}
|
|
397
|
+
</a>
|
|
398
|
+
}
|
|
399
|
+
}
|
|
368
400
|
</kendo-card-actions>
|
|
401
|
+
}
|
|
369
402
|
</div>
|
|
403
|
+
}
|
|
370
404
|
</kendo-card>
|
|
371
|
-
|
|
405
|
+
`,
|
|
372
406
|
standalone: true,
|
|
373
|
-
imports: [CardComponent, NgStyle, NgClass,
|
|
407
|
+
imports: [CardComponent, NgStyle, NgClass, CardHeaderComponent, NgTemplateOutlet, CardTitleDirective, ButtonComponent, CardSubtitleDirective, CardBodyComponent, CardMediaDirective, CardActionsComponent]
|
|
374
408
|
}]
|
|
375
409
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.TimelineService }, { type: i0.Renderer2 }], propDecorators: { event: [{
|
|
376
410
|
type: Input
|