@progress/kendo-angular-layout 21.4.1 → 22.0.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/avatar/l10n/messages.d.ts +1 -1
- package/fesm2022/progress-kendo-angular-layout.mjs +290 -290
- package/package.json +12 -20
- package/stepper/localization/messages.d.ts +1 -1
- package/tabstrip/localization/messages.d.ts +1 -1
- package/timeline/localization/messages.d.ts +1 -1
- package/esm2022/avatar/avatar.component.mjs +0 -406
- package/esm2022/avatar/l10n/custom-messages.component.mjs +0 -53
- package/esm2022/avatar/l10n/localized-messages.directive.mjs +0 -40
- package/esm2022/avatar/l10n/messages.mjs +0 -27
- package/esm2022/avatar/models/fill.mjs +0 -5
- package/esm2022/avatar/models/models.mjs +0 -9
- package/esm2022/avatar/models/rounded.mjs +0 -5
- package/esm2022/avatar/models/shape.mjs +0 -5
- package/esm2022/avatar/models/size.mjs +0 -5
- package/esm2022/avatar/models/theme-color.mjs +0 -5
- package/esm2022/avatar.module.mjs +0 -38
- package/esm2022/card/card-actions.component.mjs +0 -177
- package/esm2022/card/card-body.component.mjs +0 -37
- package/esm2022/card/card-footer.component.mjs +0 -37
- package/esm2022/card/card-header.component.mjs +0 -38
- package/esm2022/card/card.component.mjs +0 -118
- package/esm2022/card/directives/card-media.directive.mjs +0 -33
- package/esm2022/card/directives/card-separator.directive.mjs +0 -61
- package/esm2022/card/directives/card-subtitle.directive.mjs +0 -31
- package/esm2022/card/directives/card-title.directive.mjs +0 -31
- package/esm2022/card/models/actions-layout.mjs +0 -5
- package/esm2022/card/models/card-action.mjs +0 -21
- package/esm2022/card.module.mjs +0 -45
- package/esm2022/common/direction.mjs +0 -5
- package/esm2022/common/dom-queries.mjs +0 -47
- package/esm2022/common/orientation.mjs +0 -5
- package/esm2022/common/preventable-event.mjs +0 -31
- package/esm2022/common/styling-classes.mjs +0 -5
- package/esm2022/common/util.mjs +0 -85
- package/esm2022/directives.mjs +0 -174
- package/esm2022/drawer/animations.mjs +0 -146
- package/esm2022/drawer/drawer-container.component.mjs +0 -135
- package/esm2022/drawer/drawer-content.component.mjs +0 -39
- package/esm2022/drawer/drawer.component.mjs +0 -471
- package/esm2022/drawer/drawer.service.mjs +0 -105
- package/esm2022/drawer/events/drawer-list-select.event.mjs +0 -29
- package/esm2022/drawer/events/select-event.mjs +0 -33
- package/esm2022/drawer/item.component.mjs +0 -210
- package/esm2022/drawer/list.component.mjs +0 -165
- package/esm2022/drawer/models/constants.mjs +0 -8
- package/esm2022/drawer/models/drawer-animation.interface.mjs +0 -5
- package/esm2022/drawer/models/drawer-item-expand.interface.mjs +0 -5
- package/esm2022/drawer/models/drawer-item.interface.mjs +0 -5
- package/esm2022/drawer/models/drawer-view-item.interface.mjs +0 -5
- package/esm2022/drawer/models/mode.mjs +0 -5
- package/esm2022/drawer/models/position.mjs +0 -5
- package/esm2022/drawer/template-directives/drawer-template.directive.mjs +0 -43
- package/esm2022/drawer/template-directives/footer-template.directive.mjs +0 -36
- package/esm2022/drawer/template-directives/header-template.directive.mjs +0 -36
- package/esm2022/drawer/template-directives/item-template.directive.mjs +0 -44
- package/esm2022/drawer/template-directives.mjs +0 -8
- package/esm2022/drawer/types.mjs +0 -5
- package/esm2022/drawer/util.mjs +0 -16
- package/esm2022/drawer.module.mjs +0 -43
- package/esm2022/expansionpanel/animations.mjs +0 -23
- package/esm2022/expansionpanel/events/action-event.mjs +0 -21
- package/esm2022/expansionpanel/expansionpanel-title.directive.mjs +0 -38
- package/esm2022/expansionpanel/expansionpanel.component.mjs +0 -515
- package/esm2022/expansionpanel.module.mjs +0 -38
- package/esm2022/gridlayout.module.mjs +0 -38
- package/esm2022/index.mjs +0 -89
- package/esm2022/layout.module.mjs +0 -89
- package/esm2022/layouts/grid-layout.component.mjs +0 -179
- package/esm2022/layouts/gridlayout-item.component.mjs +0 -82
- package/esm2022/layouts/models/gridlayout-gap-settings.mjs +0 -5
- package/esm2022/layouts/models/gridlayout-row-col-size.mjs +0 -5
- package/esm2022/layouts/models/layout-align-settings.mjs +0 -5
- package/esm2022/layouts/models/layout-horizontal-align.mjs +0 -5
- package/esm2022/layouts/models/layout-vertical-align.mjs +0 -5
- package/esm2022/layouts/models.mjs +0 -10
- package/esm2022/layouts/stack-layout.component.mjs +0 -161
- package/esm2022/layouts/util.mjs +0 -101
- package/esm2022/package-metadata.mjs +0 -16
- package/esm2022/panelbar/events/collapse-event.mjs +0 -14
- package/esm2022/panelbar/events/expand-event.mjs +0 -14
- package/esm2022/panelbar/events/item-click-event.mjs +0 -17
- package/esm2022/panelbar/events/select-event.mjs +0 -14
- package/esm2022/panelbar/events/state-change-event.mjs +0 -13
- package/esm2022/panelbar/events.mjs +0 -9
- package/esm2022/panelbar/panelbar-content.directive.mjs +0 -36
- package/esm2022/panelbar/panelbar-expand-mode.mjs +0 -29
- package/esm2022/panelbar/panelbar-item-model.mjs +0 -5
- package/esm2022/panelbar/panelbar-item-template.directive.mjs +0 -37
- package/esm2022/panelbar/panelbar-item-title.directive.mjs +0 -42
- package/esm2022/panelbar/panelbar-item.component.mjs +0 -722
- package/esm2022/panelbar/panelbar.component.mjs +0 -705
- package/esm2022/panelbar/panelbar.service.mjs +0 -53
- package/esm2022/panelbar.module.mjs +0 -41
- package/esm2022/progress-kendo-angular-layout.mjs +0 -8
- package/esm2022/splitter/splitter-bar.component.mjs +0 -338
- package/esm2022/splitter/splitter-pane.component.mjs +0 -324
- package/esm2022/splitter/splitter.component.mjs +0 -301
- package/esm2022/splitter/splitter.service.mjs +0 -205
- package/esm2022/splitter/util.mjs +0 -34
- package/esm2022/splitter.module.mjs +0 -38
- package/esm2022/stacklayout.module.mjs +0 -37
- package/esm2022/stepper/events/activate-event.mjs +0 -33
- package/esm2022/stepper/list.component.mjs +0 -185
- package/esm2022/stepper/localization/custom-messages.component.mjs +0 -52
- package/esm2022/stepper/localization/localized-messages.directive.mjs +0 -41
- package/esm2022/stepper/localization/messages.mjs +0 -27
- package/esm2022/stepper/models/constants.mjs +0 -8
- package/esm2022/stepper/models/orientation.mjs +0 -5
- package/esm2022/stepper/models/step-predicate.mjs +0 -5
- package/esm2022/stepper/models/step-type.mjs +0 -5
- package/esm2022/stepper/models/stepper-step.interface.mjs +0 -5
- package/esm2022/stepper/step.component.mjs +0 -396
- package/esm2022/stepper/stepper.component.mjs +0 -423
- package/esm2022/stepper/stepper.service.mjs +0 -186
- package/esm2022/stepper/template-directives/indicator-template.directive.mjs +0 -37
- package/esm2022/stepper/template-directives/label-template.directive.mjs +0 -37
- package/esm2022/stepper/template-directives/step-template.directive.mjs +0 -39
- package/esm2022/stepper/template-directives.mjs +0 -7
- package/esm2022/stepper/types.mjs +0 -5
- package/esm2022/stepper.module.mjs +0 -41
- package/esm2022/tabstrip/constants.mjs +0 -29
- package/esm2022/tabstrip/directives/tab-content.directive.mjs +0 -39
- package/esm2022/tabstrip/directives/tab-title.directive.mjs +0 -37
- package/esm2022/tabstrip/directives/tab.directive.mjs +0 -24
- package/esm2022/tabstrip/events/select-event.mjs +0 -25
- package/esm2022/tabstrip/events/tabclose-event.mjs +0 -23
- package/esm2022/tabstrip/events/tabscroll-event.mjs +0 -23
- package/esm2022/tabstrip/events.mjs +0 -7
- package/esm2022/tabstrip/localization/custom-messages.component.mjs +0 -53
- package/esm2022/tabstrip/localization/localized-messages.directive.mjs +0 -39
- package/esm2022/tabstrip/localization/messages.mjs +0 -39
- package/esm2022/tabstrip/models/button-state-change.mjs +0 -5
- package/esm2022/tabstrip/models/scroll-button-type.mjs +0 -5
- package/esm2022/tabstrip/models/scroll-buttons-visibility.mjs +0 -5
- package/esm2022/tabstrip/models/scrollable-settings.mjs +0 -23
- package/esm2022/tabstrip/models/size.mjs +0 -5
- package/esm2022/tabstrip/models/tab-alignment.mjs +0 -5
- package/esm2022/tabstrip/models/tab-position.mjs +0 -5
- package/esm2022/tabstrip/models/tabstrip-tab.component.mjs +0 -130
- package/esm2022/tabstrip/rendering/tab.component.mjs +0 -182
- package/esm2022/tabstrip/scrollable-button.component.mjs +0 -182
- package/esm2022/tabstrip/tabstrip-scroll.service.mjs +0 -176
- package/esm2022/tabstrip/tabstrip.component.mjs +0 -954
- package/esm2022/tabstrip/tabstrip.service.mjs +0 -155
- package/esm2022/tabstrip/util.mjs +0 -120
- package/esm2022/tabstrip.module.mjs +0 -41
- package/esm2022/tilelayout/constants.mjs +0 -70
- package/esm2022/tilelayout/dragging-service.mjs +0 -421
- package/esm2022/tilelayout/keyboard-navigation.service.mjs +0 -189
- package/esm2022/tilelayout/models/dragging-config.interface.mjs +0 -5
- package/esm2022/tilelayout/models/flowmode.type.mjs +0 -5
- package/esm2022/tilelayout/models/gap.interface.mjs +0 -5
- package/esm2022/tilelayout/models/navigation.interface.mjs +0 -5
- package/esm2022/tilelayout/reorder-event.mjs +0 -43
- package/esm2022/tilelayout/resize-event.mjs +0 -37
- package/esm2022/tilelayout/tilelayout-item-body.component.mjs +0 -45
- package/esm2022/tilelayout/tilelayout-item-header.component.mjs +0 -43
- package/esm2022/tilelayout/tilelayout-item.component.mjs +0 -322
- package/esm2022/tilelayout/tilelayout-resize-handle.directive.mjs +0 -61
- package/esm2022/tilelayout/tilelayout.component.mjs +0 -388
- package/esm2022/tilelayout/util.mjs +0 -138
- package/esm2022/tilelayout.module.mjs +0 -40
- package/esm2022/timeline/events/navigation-direction.mjs +0 -5
- package/esm2022/timeline/localization/custom-messages.component.mjs +0 -43
- package/esm2022/timeline/localization/localized-messages.directive.mjs +0 -39
- package/esm2022/timeline/localization/messages.mjs +0 -33
- package/esm2022/timeline/models/anchor-target.mjs +0 -5
- package/esm2022/timeline/models/default-model-fields.mjs +0 -16
- package/esm2022/timeline/models/events-order.mjs +0 -5
- package/esm2022/timeline/models/model-fields.mjs +0 -5
- package/esm2022/timeline/models/timeline-event.mjs +0 -5
- package/esm2022/timeline/templates/timeline-card-actions.directive.mjs +0 -40
- package/esm2022/timeline/templates/timeline-card-body.directive.mjs +0 -40
- package/esm2022/timeline/templates/timeline-card-header.directive.mjs +0 -41
- package/esm2022/timeline/timeline-card.component.mjs +0 -451
- package/esm2022/timeline/timeline-horizontal.component.mjs +0 -781
- package/esm2022/timeline/timeline-vertical.component.mjs +0 -203
- package/esm2022/timeline/timeline.component.mjs +0 -491
- package/esm2022/timeline/timeline.service.mjs +0 -32
- package/esm2022/timeline/util.mjs +0 -26
- package/esm2022/timeline.module.mjs +0 -41
|
@@ -1,388 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 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, HostBinding, Input, Output, EventEmitter, ContentChildren, QueryList, ElementRef, Renderer2, NgZone, ViewChild } from '@angular/core';
|
|
6
|
-
import { TileLayoutDraggingService } from './dragging-service';
|
|
7
|
-
import { Subscription } from 'rxjs';
|
|
8
|
-
import { Draggable } from '@progress/kendo-draggable';
|
|
9
|
-
import { TileLayoutItemComponent } from './tilelayout-item.component';
|
|
10
|
-
import { LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
|
|
11
|
-
import { hasObservers, isChanged, shouldShowValidationUI, getLicenseMessage, WatermarkOverlayComponent } from '@progress/kendo-angular-common';
|
|
12
|
-
import { validatePackage } from '@progress/kendo-licensing';
|
|
13
|
-
import { packageMetadata } from '../package-metadata';
|
|
14
|
-
import { isPresent } from '../common/util';
|
|
15
|
-
import { TileLayoutKeyboardNavigationService } from './keyboard-navigation.service';
|
|
16
|
-
import * as i0 from "@angular/core";
|
|
17
|
-
import * as i1 from "@progress/kendo-angular-l10n";
|
|
18
|
-
import * as i2 from "./dragging-service";
|
|
19
|
-
import * as i3 from "./keyboard-navigation.service";
|
|
20
|
-
const autoFlowClasses = {
|
|
21
|
-
column: 'k-grid-flow-col',
|
|
22
|
-
row: 'k-grid-flow-row',
|
|
23
|
-
'column-dense': 'k-grid-flow-col-dense',
|
|
24
|
-
'row-dense': 'k-grid-flow-row-dense'
|
|
25
|
-
};
|
|
26
|
-
/**
|
|
27
|
-
* Represents the [Kendo UI TileLayout component for Angular]({% slug overview_tilelayout %})
|
|
28
|
-
*
|
|
29
|
-
* @example
|
|
30
|
-
* ```html
|
|
31
|
-
* <kendo-tilelayout [columns]="3" [gap]="10">
|
|
32
|
-
* <kendo-tilelayout-item>Content 1</kendo-tilelayout-item>
|
|
33
|
-
* <kendo-tilelayout-item>Content 2</kendo-tilelayout-item>
|
|
34
|
-
* </kendo-tilelayout>
|
|
35
|
-
* ```
|
|
36
|
-
* @remarks
|
|
37
|
-
* Supported children components are: {@link TileLayoutItemComponent}.
|
|
38
|
-
*/
|
|
39
|
-
export class TileLayoutComponent {
|
|
40
|
-
zone;
|
|
41
|
-
elem;
|
|
42
|
-
renderer;
|
|
43
|
-
localization;
|
|
44
|
-
draggingService;
|
|
45
|
-
navigationService;
|
|
46
|
-
/**
|
|
47
|
-
* Specifies the number of columns ([see example](slug:tiles_tilelayout#size-and-position)).
|
|
48
|
-
* @default 1
|
|
49
|
-
*/
|
|
50
|
-
columns = 1;
|
|
51
|
-
/**
|
|
52
|
-
* Sets the width of the columns.
|
|
53
|
-
* Use numeric values for pixels or string values for other CSS units ([see example](slug:tiles_tilelayout#size-and-position)).
|
|
54
|
-
* @default '1fr'
|
|
55
|
-
*/
|
|
56
|
-
columnWidth = '1fr';
|
|
57
|
-
/**
|
|
58
|
-
* Sets the spacing between layout items in pixels.
|
|
59
|
-
* Use an object with `rows` and `columns` properties to set different horizontal and vertical spacing.
|
|
60
|
-
* Use a single number to apply the same spacing to both directions.
|
|
61
|
-
*
|
|
62
|
-
* @default { rows: 16, columns: 16 }
|
|
63
|
-
*/
|
|
64
|
-
set gap(value) {
|
|
65
|
-
this._gap = (typeof value === 'number') ? { rows: value, columns: value } : Object.assign(this._gap, value);
|
|
66
|
-
}
|
|
67
|
-
get gap() {
|
|
68
|
-
return this._gap;
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Enables or disables item reordering ([see example]({% slug reordering_tilelayout %})).
|
|
72
|
-
* @default false
|
|
73
|
-
*/
|
|
74
|
-
reorderable = false;
|
|
75
|
-
/**
|
|
76
|
-
* Enables or disables item resizing ([see example]({% slug resizing_tilelayout %})).
|
|
77
|
-
* @default false
|
|
78
|
-
*/
|
|
79
|
-
resizable = false;
|
|
80
|
-
/**
|
|
81
|
-
* Sets the height of the rows.
|
|
82
|
-
* Use numeric values for pixels or string values for other CSS units ([see example](slug:tiles_tilelayout#size-and-position)).
|
|
83
|
-
* @default '1fr'
|
|
84
|
-
*/
|
|
85
|
-
rowHeight = '1fr';
|
|
86
|
-
/**
|
|
87
|
-
*
|
|
88
|
-
* Controls how the auto-placement algorithm works, specifying exactly how auto-placed items are flowed in the TileLayout ([see example]({% slug tiles_autoflow_tilelayout %})).
|
|
89
|
-
*
|
|
90
|
-
* For further reference, check the [grid-auto-flow CSS article](https://developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-flow).
|
|
91
|
-
* @default 'column'
|
|
92
|
-
*/
|
|
93
|
-
autoFlow = 'column';
|
|
94
|
-
/**
|
|
95
|
-
* Enables or disables [keyboard navigation](slug:keyboard_navigation_tilelayout).
|
|
96
|
-
* @default true
|
|
97
|
-
*/
|
|
98
|
-
navigable = true;
|
|
99
|
-
/**
|
|
100
|
-
* Fires when item reordering is completed ([see example]({% slug reordering_tilelayout %})).
|
|
101
|
-
* You can prevent this event to cancel the reorder operation.
|
|
102
|
-
*/
|
|
103
|
-
reorder = new EventEmitter();
|
|
104
|
-
/**
|
|
105
|
-
* Fires when item resizing is completed ([see example]({% slug resizing_tilelayout %})).
|
|
106
|
-
* You can prevent this event to cancel the resize operation.
|
|
107
|
-
*/
|
|
108
|
-
resize = new EventEmitter();
|
|
109
|
-
hostClass = true;
|
|
110
|
-
hostRole = 'list';
|
|
111
|
-
get gapStyle() {
|
|
112
|
-
return `${this.gap.rows}px ${this.gap.columns}px`;
|
|
113
|
-
}
|
|
114
|
-
direction;
|
|
115
|
-
get currentColStart() {
|
|
116
|
-
return this.draggingService.colStart;
|
|
117
|
-
}
|
|
118
|
-
get currentRowStart() {
|
|
119
|
-
return this.draggingService.rowStart;
|
|
120
|
-
}
|
|
121
|
-
get draggedItemWrapper() {
|
|
122
|
-
return this.draggingService.itemWrapper;
|
|
123
|
-
}
|
|
124
|
-
get targetOrder() {
|
|
125
|
-
return this.draggingService.order;
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Contains a query list of the `TileLayoutItemComponent` instances that are used in the TileLayout.
|
|
129
|
-
* This allows you to access the items programmatically and manipulate their properties or listen to their events.
|
|
130
|
-
*/
|
|
131
|
-
items;
|
|
132
|
-
hint;
|
|
133
|
-
/**
|
|
134
|
-
* @hidden
|
|
135
|
-
*/
|
|
136
|
-
showLicenseWatermark = false;
|
|
137
|
-
/**
|
|
138
|
-
* @hidden
|
|
139
|
-
*/
|
|
140
|
-
licenseMessage;
|
|
141
|
-
draggable;
|
|
142
|
-
subs = new Subscription();
|
|
143
|
-
_gap = {
|
|
144
|
-
rows: 16,
|
|
145
|
-
columns: 16
|
|
146
|
-
};
|
|
147
|
-
constructor(zone, elem, renderer, localization, draggingService, navigationService) {
|
|
148
|
-
this.zone = zone;
|
|
149
|
-
this.elem = elem;
|
|
150
|
-
this.renderer = renderer;
|
|
151
|
-
this.localization = localization;
|
|
152
|
-
this.draggingService = draggingService;
|
|
153
|
-
this.navigationService = navigationService;
|
|
154
|
-
const isValid = validatePackage(packageMetadata);
|
|
155
|
-
this.licenseMessage = getLicenseMessage(packageMetadata);
|
|
156
|
-
this.showLicenseWatermark = shouldShowValidationUI(isValid);
|
|
157
|
-
}
|
|
158
|
-
ngOnInit() {
|
|
159
|
-
this.applyColStyling();
|
|
160
|
-
this.applyRowStyling();
|
|
161
|
-
this.draggingService.reorderable.next(this.reorderable);
|
|
162
|
-
this.draggingService.resizable.next(this.resizable);
|
|
163
|
-
this.navigationService.owner = this;
|
|
164
|
-
this.navigationService.navigable.next(this.navigable);
|
|
165
|
-
if (hasObservers(this.reorder)) {
|
|
166
|
-
this.subs.add(this.draggingService.reorder.subscribe(e => this.reorder.emit(e)));
|
|
167
|
-
}
|
|
168
|
-
if (hasObservers(this.resize)) {
|
|
169
|
-
this.subs.add(this.draggingService.resize.subscribe(e => this.resize.emit(e)));
|
|
170
|
-
}
|
|
171
|
-
this.subs.add(this.draggingService.reorderable.subscribe(reorderable => {
|
|
172
|
-
if (reorderable && !this.draggable) {
|
|
173
|
-
this.initializeDraggable();
|
|
174
|
-
}
|
|
175
|
-
}));
|
|
176
|
-
this.subs.add(this.draggingService.resizable.subscribe(resizable => {
|
|
177
|
-
if (resizable && !this.draggable) {
|
|
178
|
-
this.initializeDraggable();
|
|
179
|
-
}
|
|
180
|
-
}));
|
|
181
|
-
this.subs.add(this.localization.changes.subscribe(({ rtl }) => {
|
|
182
|
-
this.direction = rtl ? 'rtl' : 'ltr';
|
|
183
|
-
}));
|
|
184
|
-
}
|
|
185
|
-
ngAfterViewInit() {
|
|
186
|
-
this.draggingService.tileLayoutSettings = this.draggingServiceConfig();
|
|
187
|
-
this.applyAutoFlow(null, autoFlowClasses[this.autoFlow]);
|
|
188
|
-
this.items.changes.subscribe(() => {
|
|
189
|
-
this.setItemsOrder();
|
|
190
|
-
this.draggingService.tileLayoutSettings.items = this.items.toArray();
|
|
191
|
-
});
|
|
192
|
-
this.zone.runOutsideAngular(() => {
|
|
193
|
-
this.elem.nativeElement.addEventListener('focusin', this.onFocusIn);
|
|
194
|
-
});
|
|
195
|
-
}
|
|
196
|
-
ngAfterContentInit() {
|
|
197
|
-
this.setItemsOrder();
|
|
198
|
-
}
|
|
199
|
-
ngOnChanges(changes) {
|
|
200
|
-
if (changes['columns'] || changes['columnWidth']) {
|
|
201
|
-
this.applyColStyling();
|
|
202
|
-
}
|
|
203
|
-
if (changes['rowHeight']) {
|
|
204
|
-
this.applyRowStyling();
|
|
205
|
-
}
|
|
206
|
-
if (isChanged('reorderable', changes)) {
|
|
207
|
-
this.draggingService.reorderable.next(changes['reorderable'].currentValue);
|
|
208
|
-
}
|
|
209
|
-
if (isChanged('resizable', changes)) {
|
|
210
|
-
this.draggingService.resizable.next(changes['resizable'].currentValue);
|
|
211
|
-
}
|
|
212
|
-
if (changes['gap'] || changes['autoFlow'] || changes['columns']) {
|
|
213
|
-
this.draggingService.tileLayoutSettings = this.draggingServiceConfig();
|
|
214
|
-
if (changes['autoFlow']) {
|
|
215
|
-
this.applyAutoFlow(autoFlowClasses[changes['autoFlow'].previousValue] || '', autoFlowClasses[changes['autoFlow'].currentValue]);
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
if (isChanged('navigable', changes)) {
|
|
219
|
-
this.navigationService.navigable.next(changes['navigable'].currentValue);
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
ngOnDestroy() {
|
|
223
|
-
if (this.draggable) {
|
|
224
|
-
this.draggable.destroy();
|
|
225
|
-
}
|
|
226
|
-
this.subs.unsubscribe();
|
|
227
|
-
this.elem.nativeElement.removeEventListener('focusin', this.onFocusIn);
|
|
228
|
-
}
|
|
229
|
-
handlePress({ originalEvent }) {
|
|
230
|
-
this.draggingService.handlePress(originalEvent);
|
|
231
|
-
}
|
|
232
|
-
handleDrag({ originalEvent }) {
|
|
233
|
-
this.draggingService.handleDrag(originalEvent);
|
|
234
|
-
}
|
|
235
|
-
handleRelease({ originalEvent }) {
|
|
236
|
-
this.draggingService.handleRelease(originalEvent);
|
|
237
|
-
}
|
|
238
|
-
applyColStyling() {
|
|
239
|
-
const colWidth = typeof this.columnWidth === 'number' ? `${this.columnWidth}px` : this.columnWidth;
|
|
240
|
-
const gridTemplateColumnsStyle = `repeat(${this.columns}, ${colWidth})`;
|
|
241
|
-
this.renderer.setStyle(this.elem.nativeElement, 'grid-template-columns', gridTemplateColumnsStyle);
|
|
242
|
-
}
|
|
243
|
-
applyRowStyling() {
|
|
244
|
-
const rowHeight = typeof this.rowHeight === 'number' ? `${this.rowHeight}px` : this.rowHeight;
|
|
245
|
-
const gridAutoRowsStyle = `${rowHeight}`;
|
|
246
|
-
this.renderer.setStyle(this.elem.nativeElement, 'grid-auto-rows', gridAutoRowsStyle);
|
|
247
|
-
}
|
|
248
|
-
draggingServiceConfig() {
|
|
249
|
-
return {
|
|
250
|
-
tileLayoutElement: this.elem ? this.elem.nativeElement : undefined,
|
|
251
|
-
hintElement: this.hint ? this.hint.nativeElement : undefined,
|
|
252
|
-
gap: this.gap,
|
|
253
|
-
columns: this.columns,
|
|
254
|
-
autoFlow: this.autoFlow,
|
|
255
|
-
items: this.items ? this.items.toArray() : []
|
|
256
|
-
};
|
|
257
|
-
}
|
|
258
|
-
initializeDraggable() {
|
|
259
|
-
this.draggable = new Draggable({
|
|
260
|
-
press: this.handlePress.bind(this),
|
|
261
|
-
drag: this.handleDrag.bind(this),
|
|
262
|
-
release: this.handleRelease.bind(this)
|
|
263
|
-
});
|
|
264
|
-
this.zone.runOutsideAngular(() => this.draggable.bindTo(this.elem.nativeElement));
|
|
265
|
-
}
|
|
266
|
-
applyAutoFlow(classToRemove, classToAdd) {
|
|
267
|
-
const element = this.elem.nativeElement;
|
|
268
|
-
if (classToRemove) {
|
|
269
|
-
this.renderer.removeClass(element, classToRemove);
|
|
270
|
-
}
|
|
271
|
-
if (this.autoFlow !== 'none' && isPresent(classToAdd)) {
|
|
272
|
-
this.renderer.addClass(element, classToAdd);
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
setItemsOrder() {
|
|
276
|
-
this.items.forEach((item, index) => {
|
|
277
|
-
if (!isPresent(item.order)) {
|
|
278
|
-
item.order = index;
|
|
279
|
-
}
|
|
280
|
-
});
|
|
281
|
-
}
|
|
282
|
-
onFocusIn = (e) => {
|
|
283
|
-
if (!this.navigable || this.navigationService.mousedown || !e.relatedTarget) {
|
|
284
|
-
this.navigationService.mousedown = false;
|
|
285
|
-
return;
|
|
286
|
-
}
|
|
287
|
-
if (!(this.elem.nativeElement.compareDocumentPosition(e.relatedTarget) & Node.DOCUMENT_POSITION_CONTAINED_BY)) {
|
|
288
|
-
this.navigationService.returnFocus();
|
|
289
|
-
}
|
|
290
|
-
};
|
|
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 });
|
|
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: [
|
|
293
|
-
LocalizationService,
|
|
294
|
-
TileLayoutDraggingService,
|
|
295
|
-
TileLayoutKeyboardNavigationService,
|
|
296
|
-
{
|
|
297
|
-
provide: L10N_PREFIX,
|
|
298
|
-
useValue: 'kendo.tilelayout.component'
|
|
299
|
-
}
|
|
300
|
-
], queries: [{ propertyName: "items", predicate: TileLayoutItemComponent }], viewQueries: [{ propertyName: "hint", first: true, predicate: ["hint"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
301
|
-
<ng-content></ng-content>
|
|
302
|
-
<div #hint class="k-layout-item-hint"
|
|
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'">
|
|
310
|
-
</div>
|
|
311
|
-
@if (showLicenseWatermark) {
|
|
312
|
-
<div kendoWatermarkOverlay [licenseMessage]="licenseMessage"></div>
|
|
313
|
-
}
|
|
314
|
-
`, isInline: true, dependencies: [{ kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]", inputs: ["licenseMessage"] }] });
|
|
315
|
-
}
|
|
316
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TileLayoutComponent, decorators: [{
|
|
317
|
-
type: Component,
|
|
318
|
-
args: [{
|
|
319
|
-
selector: 'kendo-tilelayout',
|
|
320
|
-
providers: [
|
|
321
|
-
LocalizationService,
|
|
322
|
-
TileLayoutDraggingService,
|
|
323
|
-
TileLayoutKeyboardNavigationService,
|
|
324
|
-
{
|
|
325
|
-
provide: L10N_PREFIX,
|
|
326
|
-
useValue: 'kendo.tilelayout.component'
|
|
327
|
-
}
|
|
328
|
-
],
|
|
329
|
-
template: `
|
|
330
|
-
<ng-content></ng-content>
|
|
331
|
-
<div #hint class="k-layout-item-hint"
|
|
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'">
|
|
339
|
-
</div>
|
|
340
|
-
@if (showLicenseWatermark) {
|
|
341
|
-
<div kendoWatermarkOverlay [licenseMessage]="licenseMessage"></div>
|
|
342
|
-
}
|
|
343
|
-
`,
|
|
344
|
-
standalone: true,
|
|
345
|
-
imports: [WatermarkOverlayComponent]
|
|
346
|
-
}]
|
|
347
|
-
}], ctorParameters: () => [{ type: i0.NgZone }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.LocalizationService }, { type: i2.TileLayoutDraggingService }, { type: i3.TileLayoutKeyboardNavigationService }], propDecorators: { columns: [{
|
|
348
|
-
type: Input
|
|
349
|
-
}], columnWidth: [{
|
|
350
|
-
type: Input
|
|
351
|
-
}], gap: [{
|
|
352
|
-
type: Input
|
|
353
|
-
}], reorderable: [{
|
|
354
|
-
type: Input
|
|
355
|
-
}], resizable: [{
|
|
356
|
-
type: Input
|
|
357
|
-
}], rowHeight: [{
|
|
358
|
-
type: Input
|
|
359
|
-
}], autoFlow: [{
|
|
360
|
-
type: Input
|
|
361
|
-
}], navigable: [{
|
|
362
|
-
type: Input
|
|
363
|
-
}], reorder: [{
|
|
364
|
-
type: Output
|
|
365
|
-
}], resize: [{
|
|
366
|
-
type: Output
|
|
367
|
-
}], hostClass: [{
|
|
368
|
-
type: HostBinding,
|
|
369
|
-
args: ['class.k-tilelayout']
|
|
370
|
-
}], hostRole: [{
|
|
371
|
-
type: HostBinding,
|
|
372
|
-
args: ['attr.role']
|
|
373
|
-
}], gapStyle: [{
|
|
374
|
-
type: HostBinding,
|
|
375
|
-
args: ['style.gap']
|
|
376
|
-
}, {
|
|
377
|
-
type: HostBinding,
|
|
378
|
-
args: ['style.padding']
|
|
379
|
-
}], direction: [{
|
|
380
|
-
type: HostBinding,
|
|
381
|
-
args: ['attr.dir']
|
|
382
|
-
}], items: [{
|
|
383
|
-
type: ContentChildren,
|
|
384
|
-
args: [TileLayoutItemComponent]
|
|
385
|
-
}], hint: [{
|
|
386
|
-
type: ViewChild,
|
|
387
|
-
args: ['hint', { static: false }]
|
|
388
|
-
}] } });
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
|
-
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
-
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { isDocumentAvailable, Keys } from '@progress/kendo-angular-common';
|
|
6
|
-
import { isPresent } from '../common/util';
|
|
7
|
-
/**
|
|
8
|
-
* @hidden
|
|
9
|
-
*/
|
|
10
|
-
let idx = 0;
|
|
11
|
-
/**
|
|
12
|
-
* @hidden
|
|
13
|
-
*/
|
|
14
|
-
export const getId = (prefix) => {
|
|
15
|
-
return `${prefix}-${++idx}`;
|
|
16
|
-
};
|
|
17
|
-
/**
|
|
18
|
-
* @hidden
|
|
19
|
-
*/
|
|
20
|
-
export const normalizeValue = (value, max = Infinity) => {
|
|
21
|
-
const normalizedValue = isPresent(value) ? Math.min(Math.max(+value, 1), max) : value;
|
|
22
|
-
return normalizedValue;
|
|
23
|
-
};
|
|
24
|
-
/**
|
|
25
|
-
* @hidden
|
|
26
|
-
*/
|
|
27
|
-
export const isRowItemPresent = (items) => {
|
|
28
|
-
return items.some(item => isPresent(item.row));
|
|
29
|
-
};
|
|
30
|
-
/**
|
|
31
|
-
* @hidden
|
|
32
|
-
*/
|
|
33
|
-
export const propsChanged = (initialProps, newProps) => {
|
|
34
|
-
for (let i = 0; i < initialProps.length; i++) {
|
|
35
|
-
if (initialProps[i] !== newProps[i]) {
|
|
36
|
-
return true;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
return false;
|
|
40
|
-
};
|
|
41
|
-
/**
|
|
42
|
-
* @hidden
|
|
43
|
-
*
|
|
44
|
-
* Extracts the event target from the viewport coords. Required for touch devices
|
|
45
|
-
* where the `event.target` of a `pointermove` event is always the initially dragged item.
|
|
46
|
-
*/
|
|
47
|
-
export const getDropTarget = (event) => {
|
|
48
|
-
if (!(isDocumentAvailable() && isPresent(document.elementsFromPoint))) {
|
|
49
|
-
return [event.target];
|
|
50
|
-
}
|
|
51
|
-
return document.elementsFromPoint(event.clientX, event.clientY)
|
|
52
|
-
.filter(item => item.classList && (item.classList.contains('k-tilelayout-item') || item.classList.contains('k-layout-item-hint')));
|
|
53
|
-
};
|
|
54
|
-
/**
|
|
55
|
-
* @hidden
|
|
56
|
-
*/
|
|
57
|
-
export const setElementStyles = (renderer, elem, styles) => {
|
|
58
|
-
const props = Object.keys(styles);
|
|
59
|
-
props.forEach(p => {
|
|
60
|
-
renderer.setStyle(elem, p, styles[p]);
|
|
61
|
-
});
|
|
62
|
-
};
|
|
63
|
-
/**
|
|
64
|
-
* @hidden
|
|
65
|
-
*/
|
|
66
|
-
export const calculateCellFromPosition = (coordinates, tileLayoutElement, gap, cellSize, columns, rtl = false) => {
|
|
67
|
-
const tileLayoutRect = tileLayoutElement.getBoundingClientRect();
|
|
68
|
-
const totalRows = (tileLayoutRect.height - gap.rows) / (cellSize.height + gap.rows);
|
|
69
|
-
const distanceFromTop = coordinates.y - tileLayoutRect.y;
|
|
70
|
-
const distanceFromLeft = coordinates.x - tileLayoutRect.x;
|
|
71
|
-
const distanceFromRight = tileLayoutRect.right - coordinates.x;
|
|
72
|
-
const distanceToCellWidthRatio = Math.floor((rtl ? distanceFromRight : distanceFromLeft) / (gap.columns + cellSize.width));
|
|
73
|
-
const cappedColumnPosition = Math.min(distanceToCellWidthRatio + 1, columns);
|
|
74
|
-
const distanceToCellHeightRatio = Math.floor(distanceFromTop / (gap.rows + cellSize.height));
|
|
75
|
-
const cappedRowPosition = Math.min(distanceToCellHeightRatio + 1, totalRows);
|
|
76
|
-
const col = Math.max(cappedColumnPosition, 0);
|
|
77
|
-
const row = Math.max(cappedRowPosition, 0);
|
|
78
|
-
return {
|
|
79
|
-
row, col
|
|
80
|
-
};
|
|
81
|
-
};
|
|
82
|
-
/**
|
|
83
|
-
* @hidden
|
|
84
|
-
*/
|
|
85
|
-
export const calculateOrderFromCell = (row, col, items, draggedItem, tileLayoutElement, gap, cellSize, columns) => {
|
|
86
|
-
let order = 0;
|
|
87
|
-
items.forEach(item => {
|
|
88
|
-
const rect = item.elem.nativeElement.getBoundingClientRect();
|
|
89
|
-
const start = calculateCellFromPosition({
|
|
90
|
-
x: rect.x,
|
|
91
|
-
y: rect.y
|
|
92
|
-
}, tileLayoutElement, gap, cellSize, columns);
|
|
93
|
-
if (item !== draggedItem && ((start.row === row && start.col < col) || start.row < row)) {
|
|
94
|
-
order++;
|
|
95
|
-
}
|
|
96
|
-
});
|
|
97
|
-
return order;
|
|
98
|
-
};
|
|
99
|
-
/**
|
|
100
|
-
* @hidden
|
|
101
|
-
*/
|
|
102
|
-
export const shouldResize = (keyCode, col, selectedTile, settings) => {
|
|
103
|
-
const resizeRight = keyCode === Keys.ArrowRight && col + selectedTile.colSpan <= settings.columns;
|
|
104
|
-
const resizeLeft = keyCode === Keys.ArrowLeft && selectedTile.colSpan > 1;
|
|
105
|
-
const resizeDown = keyCode === Keys.ArrowDown;
|
|
106
|
-
const resizeUp = keyCode === Keys.ArrowUp && selectedTile.rowSpan > 1;
|
|
107
|
-
return { resizeRight, resizeLeft, resizeDown, resizeUp };
|
|
108
|
-
};
|
|
109
|
-
/**
|
|
110
|
-
* @hidden
|
|
111
|
-
*/
|
|
112
|
-
export const shouldReorder = (keyCode, col, selectedTile, settings) => {
|
|
113
|
-
let reorderRight;
|
|
114
|
-
let reorderLeft;
|
|
115
|
-
if (selectedTile.col) {
|
|
116
|
-
reorderRight = keyCode === Keys.ArrowRight && selectedTile.colSpan + col <= settings.columns;
|
|
117
|
-
reorderLeft = keyCode === Keys.ArrowLeft && col > 1;
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
reorderRight = keyCode === Keys.ArrowRight && selectedTile.colSpan + selectedTile.order < settings.items.length;
|
|
121
|
-
reorderLeft = keyCode === Keys.ArrowLeft && selectedTile.order > 0;
|
|
122
|
-
}
|
|
123
|
-
return { reorderLeft, reorderRight };
|
|
124
|
-
};
|
|
125
|
-
/**
|
|
126
|
-
* @hidden
|
|
127
|
-
*/
|
|
128
|
-
export const getCurrentCol = (selectedTile, settings, rtl) => {
|
|
129
|
-
const rects = selectedTile.elem.nativeElement.getBoundingClientRect();
|
|
130
|
-
const targetSize = {
|
|
131
|
-
rowSpan: selectedTile.rowSpan,
|
|
132
|
-
colSpan: selectedTile.colSpan
|
|
133
|
-
};
|
|
134
|
-
const width = (rects.width - ((targetSize.colSpan - 1) * settings.gap.columns)) / targetSize.colSpan;
|
|
135
|
-
const height = (rects.height - ((targetSize.rowSpan - 1) * settings.gap.rows)) / targetSize.rowSpan;
|
|
136
|
-
const { col } = calculateCellFromPosition({ x: rects.x, y: rects.y }, settings.tileLayoutElement, settings.gap, { width: width, height: height }, settings.columns, rtl);
|
|
137
|
-
return col;
|
|
138
|
-
};
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
|
-
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
-
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { NgModule } from '@angular/core';
|
|
6
|
-
import { KENDO_TILELAYOUT } from './directives';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "./tilelayout/tilelayout.component";
|
|
9
|
-
import * as i2 from "./tilelayout/tilelayout-item-body.component";
|
|
10
|
-
import * as i3 from "./tilelayout/tilelayout-item.component";
|
|
11
|
-
import * as i4 from "./tilelayout/tilelayout-item-header.component";
|
|
12
|
-
// IMPORTANT: NgModule export kept for backwards compatibility
|
|
13
|
-
/**
|
|
14
|
-
* Defines the [`NgModule`](link:site.data.urls.angular['ngmoduleapi']) for the TileLayout component.
|
|
15
|
-
*
|
|
16
|
-
* Use this module to add the TileLayout component to your NgModule-based Angular application.
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* ```typescript
|
|
20
|
-
* import { TileLayoutModule } from '@progress/kendo-angular-layout';
|
|
21
|
-
* import { NgModule } from '@angular/core';
|
|
22
|
-
*
|
|
23
|
-
* @NgModule({
|
|
24
|
-
* imports: [TileLayoutModule]
|
|
25
|
-
* })
|
|
26
|
-
* export class AppModule { }
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
export class TileLayoutModule {
|
|
30
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TileLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
31
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: TileLayoutModule, imports: [i1.TileLayoutComponent, i2.TileLayoutItemBodyComponent, i3.TileLayoutItemComponent, i4.TileLayoutItemHeaderComponent], exports: [i1.TileLayoutComponent, i2.TileLayoutItemBodyComponent, i3.TileLayoutItemComponent, i4.TileLayoutItemHeaderComponent] });
|
|
32
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TileLayoutModule, imports: [i1.TileLayoutComponent] });
|
|
33
|
-
}
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TileLayoutModule, decorators: [{
|
|
35
|
-
type: NgModule,
|
|
36
|
-
args: [{
|
|
37
|
-
exports: [...KENDO_TILELAYOUT],
|
|
38
|
-
imports: [...KENDO_TILELAYOUT]
|
|
39
|
-
}]
|
|
40
|
-
}] });
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
|
-
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
-
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
export {};
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 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, forwardRef } from '@angular/core';
|
|
6
|
-
import { LocalizationService } from '@progress/kendo-angular-l10n';
|
|
7
|
-
import { TimelineMessages } from './messages';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@progress/kendo-angular-l10n";
|
|
10
|
-
/**
|
|
11
|
-
* Custom component messages override default component messages.
|
|
12
|
-
*/
|
|
13
|
-
export class TimelineCustomMessagesComponent extends TimelineMessages {
|
|
14
|
-
service;
|
|
15
|
-
constructor(service) {
|
|
16
|
-
super();
|
|
17
|
-
this.service = service;
|
|
18
|
-
}
|
|
19
|
-
get override() {
|
|
20
|
-
return true;
|
|
21
|
-
}
|
|
22
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TimelineCustomMessagesComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
23
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TimelineCustomMessagesComponent, isStandalone: true, selector: "kendo-timeline-messages", providers: [
|
|
24
|
-
{
|
|
25
|
-
provide: TimelineMessages,
|
|
26
|
-
useExisting: forwardRef(() => TimelineCustomMessagesComponent),
|
|
27
|
-
},
|
|
28
|
-
], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
|
|
29
|
-
}
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TimelineCustomMessagesComponent, decorators: [{
|
|
31
|
-
type: Component,
|
|
32
|
-
args: [{
|
|
33
|
-
providers: [
|
|
34
|
-
{
|
|
35
|
-
provide: TimelineMessages,
|
|
36
|
-
useExisting: forwardRef(() => TimelineCustomMessagesComponent),
|
|
37
|
-
},
|
|
38
|
-
],
|
|
39
|
-
selector: 'kendo-timeline-messages',
|
|
40
|
-
template: ``,
|
|
41
|
-
standalone: true
|
|
42
|
-
}]
|
|
43
|
-
}], ctorParameters: () => [{ type: i1.LocalizationService }] });
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
|
-
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
-
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { Directive, forwardRef } from '@angular/core';
|
|
6
|
-
import { LocalizationService } from '@progress/kendo-angular-l10n';
|
|
7
|
-
import { TimelineMessages } from './messages';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@progress/kendo-angular-l10n";
|
|
10
|
-
/**
|
|
11
|
-
* @hidden
|
|
12
|
-
*/
|
|
13
|
-
export class LocalizedTimelineMessagesDirective extends TimelineMessages {
|
|
14
|
-
service;
|
|
15
|
-
constructor(service) {
|
|
16
|
-
super();
|
|
17
|
-
this.service = service;
|
|
18
|
-
}
|
|
19
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LocalizedTimelineMessagesDirective, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
20
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: LocalizedTimelineMessagesDirective, isStandalone: true, selector: "[kendoTimelineLocalizedMessages]", providers: [
|
|
21
|
-
{
|
|
22
|
-
provide: TimelineMessages,
|
|
23
|
-
useExisting: forwardRef(() => LocalizedTimelineMessagesDirective),
|
|
24
|
-
},
|
|
25
|
-
], usesInheritance: true, ngImport: i0 });
|
|
26
|
-
}
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LocalizedTimelineMessagesDirective, decorators: [{
|
|
28
|
-
type: Directive,
|
|
29
|
-
args: [{
|
|
30
|
-
providers: [
|
|
31
|
-
{
|
|
32
|
-
provide: TimelineMessages,
|
|
33
|
-
useExisting: forwardRef(() => LocalizedTimelineMessagesDirective),
|
|
34
|
-
},
|
|
35
|
-
],
|
|
36
|
-
selector: `[kendoTimelineLocalizedMessages]`,
|
|
37
|
-
standalone: true
|
|
38
|
-
}]
|
|
39
|
-
}], ctorParameters: () => [{ type: i1.LocalizationService }] });
|