@progress/kendo-angular-layout 21.4.1 → 22.0.0
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,155 +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 { Injectable, NgZone } from '@angular/core';
|
|
6
|
-
import { LocalizationService } from '@progress/kendo-angular-l10n';
|
|
7
|
-
import { Keys, normalizeKeys } from '@progress/kendo-angular-common';
|
|
8
|
-
import { isArrowKey, isHorizontalArrowKey, isNavigationKey, isVerticalArrowKey } from '../common/util';
|
|
9
|
-
import { SelectEvent } from './events';
|
|
10
|
-
import { isTabClosable, getActiveTab, isTabElement, isTablistHorizontal, getTabByIndex, getTabHeaderByIndex, resetTabSelection } from './util';
|
|
11
|
-
import * as i0 from "@angular/core";
|
|
12
|
-
import * as i1 from "@progress/kendo-angular-l10n";
|
|
13
|
-
/**
|
|
14
|
-
* @hidden
|
|
15
|
-
*/
|
|
16
|
-
export class TabStripService {
|
|
17
|
-
localization;
|
|
18
|
-
ngZone;
|
|
19
|
-
owner;
|
|
20
|
-
constructor(localization, ngZone) {
|
|
21
|
-
this.localization = localization;
|
|
22
|
-
this.ngZone = ngZone;
|
|
23
|
-
}
|
|
24
|
-
onKeyDown(event) {
|
|
25
|
-
if (!isTabElement(event.target)) {
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
// on some keyboards arrow keys, PageUp/Down, and Home/End are mapped to Numpad keys
|
|
29
|
-
const code = normalizeKeys(event);
|
|
30
|
-
if (this.shouldHandleKey(code)) {
|
|
31
|
-
event.preventDefault();
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
if (isNavigationKey(code) || isArrowKey(code)) {
|
|
37
|
-
this.onNavigate(code);
|
|
38
|
-
}
|
|
39
|
-
else if (code === Keys.Delete || code === Keys.Backspace) {
|
|
40
|
-
this.onDelete();
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
onTabSelect(tab, index) {
|
|
44
|
-
const selectArgs = new SelectEvent(index, tab.title);
|
|
45
|
-
this.owner.tabSelect.emit(selectArgs);
|
|
46
|
-
if (!selectArgs.isDefaultPrevented()) {
|
|
47
|
-
if (tab.selected) {
|
|
48
|
-
this.focusTabHeader(index);
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
this.selectTab(tab, index);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
selectTab(tab, index) {
|
|
55
|
-
resetTabSelection(this.owner.tabs);
|
|
56
|
-
this.focusTabHeader(index);
|
|
57
|
-
tab.selected = true;
|
|
58
|
-
if (this.owner.isScrollable) {
|
|
59
|
-
this.owner.scrollToSelectedTab();
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
onNavigate(keyCode) {
|
|
63
|
-
const { tab: activeTab, index: activeIndex } = getActiveTab(this.owner.tabs);
|
|
64
|
-
if (!NgZone.isInAngularZone()) {
|
|
65
|
-
this.ngZone.run(() => {
|
|
66
|
-
if (activeIndex < 0) {
|
|
67
|
-
this.owner.selectTab(this.firstNavigableIndex());
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
activeTab.focused = false;
|
|
71
|
-
const nextIndex = this.computeNextIndex(activeIndex, keyCode);
|
|
72
|
-
this.activateTab(nextIndex);
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
onDelete() {
|
|
77
|
-
const { tab: activeTab, index: activeTabIndex } = getActiveTab(this.owner.tabs);
|
|
78
|
-
if (isTabClosable(activeTab, this.owner.closable) && !activeTab.disabled) {
|
|
79
|
-
this.ngZone.run(() => {
|
|
80
|
-
this.owner.tabClose.emit({ tab: activeTab, index: activeTabIndex });
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
activateTab(index) {
|
|
85
|
-
const tab = getTabByIndex(this.owner.tabs, index);
|
|
86
|
-
if (tab.disabled) {
|
|
87
|
-
this.focusTabHeader(index);
|
|
88
|
-
tab.focused = true;
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
this.onTabSelect(tab, index);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
focusTabHeader(index) {
|
|
95
|
-
const tabHeader = getTabHeaderByIndex(this.owner.tabHeaderContainers, index);
|
|
96
|
-
tabHeader.nativeElement.focus();
|
|
97
|
-
}
|
|
98
|
-
shouldHandleKey(keyCode) {
|
|
99
|
-
if (isNavigationKey(keyCode)) {
|
|
100
|
-
return true;
|
|
101
|
-
}
|
|
102
|
-
if (isTablistHorizontal(this.owner.tabPosition) && isHorizontalArrowKey(keyCode)) {
|
|
103
|
-
return true;
|
|
104
|
-
}
|
|
105
|
-
if (!isTablistHorizontal(this.owner.tabPosition) && isVerticalArrowKey(keyCode)) {
|
|
106
|
-
return true;
|
|
107
|
-
}
|
|
108
|
-
if (keyCode === Keys.Delete || keyCode === Keys.Backspace) {
|
|
109
|
-
return true;
|
|
110
|
-
}
|
|
111
|
-
return false;
|
|
112
|
-
}
|
|
113
|
-
computeNextIndex(activeIndex, keyCode) {
|
|
114
|
-
switch (keyCode) {
|
|
115
|
-
case this.invertKeys(Keys.ArrowLeft, Keys.ArrowRight):
|
|
116
|
-
case this.invertKeys(Keys.ArrowUp, Keys.ArrowDown):
|
|
117
|
-
return this.prevNavigableIndex(activeIndex);
|
|
118
|
-
case this.invertKeys(Keys.ArrowRight, Keys.ArrowLeft):
|
|
119
|
-
case this.invertKeys(Keys.ArrowDown, Keys.ArrowUp):
|
|
120
|
-
return this.nextNavigableIndex(activeIndex);
|
|
121
|
-
case Keys.Home:
|
|
122
|
-
return this.firstNavigableIndex();
|
|
123
|
-
case Keys.End:
|
|
124
|
-
return this.lastNavigableIndex();
|
|
125
|
-
default:
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
invertKeys(original, inverted) {
|
|
130
|
-
return this.localization.rtl ? inverted : original;
|
|
131
|
-
}
|
|
132
|
-
firstNavigableIndex() {
|
|
133
|
-
return 0;
|
|
134
|
-
}
|
|
135
|
-
lastNavigableIndex() {
|
|
136
|
-
return this.owner.tabs.length - 1;
|
|
137
|
-
}
|
|
138
|
-
prevNavigableIndex(selectedIndex) {
|
|
139
|
-
if (selectedIndex - 1 < 0) {
|
|
140
|
-
return this.lastNavigableIndex();
|
|
141
|
-
}
|
|
142
|
-
return selectedIndex - 1;
|
|
143
|
-
}
|
|
144
|
-
nextNavigableIndex(selectedIndex) {
|
|
145
|
-
if (selectedIndex + 1 >= this.owner.tabs.length) {
|
|
146
|
-
return this.firstNavigableIndex();
|
|
147
|
-
}
|
|
148
|
-
return selectedIndex + 1;
|
|
149
|
-
}
|
|
150
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TabStripService, deps: [{ token: i1.LocalizationService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
151
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TabStripService });
|
|
152
|
-
}
|
|
153
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TabStripService, decorators: [{
|
|
154
|
-
type: Injectable
|
|
155
|
-
}], ctorParameters: () => [{ type: i1.LocalizationService }, { type: i0.NgZone }] });
|
|
@@ -1,120 +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 { isPresent } from "../common/util";
|
|
6
|
-
/**
|
|
7
|
-
* @hidden
|
|
8
|
-
*
|
|
9
|
-
* Checks if the current target is a TabStrip tab element
|
|
10
|
-
*/
|
|
11
|
-
export const isTabElement = (target) => {
|
|
12
|
-
const targetId = target.getAttribute('id');
|
|
13
|
-
if (isPresent(targetId) || targetId?.indexOf('k-tabstrip-tab-') >= 0) {
|
|
14
|
-
return true;
|
|
15
|
-
}
|
|
16
|
-
return false;
|
|
17
|
-
};
|
|
18
|
-
/**
|
|
19
|
-
* @hidden
|
|
20
|
-
*
|
|
21
|
-
* Checks if the current tab is closable. Depends on the value of the TabStrip closable property.
|
|
22
|
-
*/
|
|
23
|
-
export const isTabClosable = (tab, tabStripClosable) => {
|
|
24
|
-
if (tab.closable !== undefined) {
|
|
25
|
-
return tab.closable;
|
|
26
|
-
}
|
|
27
|
-
return tabStripClosable;
|
|
28
|
-
};
|
|
29
|
-
/**
|
|
30
|
-
* @hidden
|
|
31
|
-
*
|
|
32
|
-
* Checks if the TabStrip scroll buttons will be rendered. Depends on the value of the TabStrip scrollable settings.
|
|
33
|
-
*/
|
|
34
|
-
export const tabStripHasScrollButtons = (scrollableSettings) => {
|
|
35
|
-
const visible = scrollableSettings.enabled && scrollableSettings.scrollButtons !== 'hidden';
|
|
36
|
-
const position = scrollableSettings.scrollButtonsPosition;
|
|
37
|
-
return {
|
|
38
|
-
visible,
|
|
39
|
-
position
|
|
40
|
-
};
|
|
41
|
-
};
|
|
42
|
-
/**
|
|
43
|
-
* @hidden
|
|
44
|
-
*
|
|
45
|
-
* Checks if the TabStrip mouse scroll will be enabled. Depends on the value of the TabStrip scrollable settings.
|
|
46
|
-
*/
|
|
47
|
-
export const mouseScrollEnabled = (scrollableSettings) => {
|
|
48
|
-
return scrollableSettings.enabled && scrollableSettings.mouseScroll;
|
|
49
|
-
};
|
|
50
|
-
/**
|
|
51
|
-
* @hidden
|
|
52
|
-
*
|
|
53
|
-
* Retrieves the current active tab element and its index.
|
|
54
|
-
* This could either be the currently selected tab or the currently focused tab.
|
|
55
|
-
*/
|
|
56
|
-
export const getActiveTab = (tabs) => {
|
|
57
|
-
let focusedTab;
|
|
58
|
-
let selectedTab;
|
|
59
|
-
let focusedIndex = -1;
|
|
60
|
-
let selectedIndex = -1;
|
|
61
|
-
tabs.forEach((tab, index) => {
|
|
62
|
-
if (tab.selected) {
|
|
63
|
-
selectedTab = tab;
|
|
64
|
-
selectedIndex = index;
|
|
65
|
-
}
|
|
66
|
-
else if (tab.focused) {
|
|
67
|
-
focusedTab = tab;
|
|
68
|
-
focusedIndex = index;
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
return focusedIndex >= 0 ?
|
|
72
|
-
{ tab: focusedTab, index: focusedIndex } :
|
|
73
|
-
{ tab: selectedTab, index: selectedIndex };
|
|
74
|
-
};
|
|
75
|
-
/**
|
|
76
|
-
* @hidden
|
|
77
|
-
*/
|
|
78
|
-
export const getTabByIndex = (tabs, index) => {
|
|
79
|
-
const filtered = tabs.filter((_tab, i) => i === index);
|
|
80
|
-
if (filtered.length > 0) {
|
|
81
|
-
return filtered[0];
|
|
82
|
-
}
|
|
83
|
-
return null;
|
|
84
|
-
};
|
|
85
|
-
/**
|
|
86
|
-
* @hidden
|
|
87
|
-
*/
|
|
88
|
-
export const getTabHeaderByIndex = (tabHeaderContainers, index) => {
|
|
89
|
-
const filtered = tabHeaderContainers.filter((_tabHeader, i) => i === index);
|
|
90
|
-
if (filtered.length > 0) {
|
|
91
|
-
return filtered[0];
|
|
92
|
-
}
|
|
93
|
-
return null;
|
|
94
|
-
};
|
|
95
|
-
/**
|
|
96
|
-
* @hidden
|
|
97
|
-
*/
|
|
98
|
-
export const resetTabFocus = (tabs) => {
|
|
99
|
-
tabs.forEach((tab) => {
|
|
100
|
-
tab.focused = false;
|
|
101
|
-
});
|
|
102
|
-
};
|
|
103
|
-
/**
|
|
104
|
-
* @hidden
|
|
105
|
-
*/
|
|
106
|
-
export const resetTabSelection = (tabs) => {
|
|
107
|
-
tabs.forEach((tab) => {
|
|
108
|
-
tab.selected = false;
|
|
109
|
-
});
|
|
110
|
-
};
|
|
111
|
-
/**
|
|
112
|
-
* @hidden
|
|
113
|
-
*/
|
|
114
|
-
export const isTablistHorizontal = (tabPosition) => tabPosition === 'top' || tabPosition === 'bottom';
|
|
115
|
-
/**
|
|
116
|
-
* @hidden
|
|
117
|
-
*/
|
|
118
|
-
export const getId = (prefix, tabStripId, tabIndex) => {
|
|
119
|
-
return `${prefix}-${tabStripId}-${tabIndex}`;
|
|
120
|
-
};
|
|
@@ -1,41 +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_TABSTRIP } from './directives';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "./tabstrip/tabstrip.component";
|
|
9
|
-
import * as i2 from "./tabstrip/models/tabstrip-tab.component";
|
|
10
|
-
import * as i3 from "./tabstrip/directives/tab-content.directive";
|
|
11
|
-
import * as i4 from "./tabstrip/directives/tab-title.directive";
|
|
12
|
-
import * as i5 from "./tabstrip/localization/custom-messages.component";
|
|
13
|
-
// IMPORTANT: NgModule export kept for backwards compatibility
|
|
14
|
-
/**
|
|
15
|
-
* Defines the [`NgModule`](link:site.data.urls.angular['ngmoduleapi']) for the TabStrip component.
|
|
16
|
-
*
|
|
17
|
-
* Use this module to add the TabStrip component to your NgModule-based Angular application.
|
|
18
|
-
*
|
|
19
|
-
* @example
|
|
20
|
-
* ```typescript
|
|
21
|
-
* import { TabStripModule } from '@progress/kendo-angular-layout';
|
|
22
|
-
* import { NgModule } from '@angular/core';
|
|
23
|
-
*
|
|
24
|
-
* @NgModule({
|
|
25
|
-
* imports: [TabStripModule]
|
|
26
|
-
* })
|
|
27
|
-
* export class AppModule { }
|
|
28
|
-
* ```
|
|
29
|
-
*/
|
|
30
|
-
export class TabStripModule {
|
|
31
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TabStripModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
32
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: TabStripModule, imports: [i1.TabStripComponent, i2.TabStripTabComponent, i3.TabContentDirective, i4.TabTitleDirective, i5.TabStripCustomMessagesComponent], exports: [i1.TabStripComponent, i2.TabStripTabComponent, i3.TabContentDirective, i4.TabTitleDirective, i5.TabStripCustomMessagesComponent] });
|
|
33
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TabStripModule, imports: [i1.TabStripComponent] });
|
|
34
|
-
}
|
|
35
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TabStripModule, decorators: [{
|
|
36
|
-
type: NgModule,
|
|
37
|
-
args: [{
|
|
38
|
-
exports: [...KENDO_TABSTRIP],
|
|
39
|
-
imports: [...KENDO_TABSTRIP]
|
|
40
|
-
}]
|
|
41
|
-
}] });
|
|
@@ -1,70 +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
|
-
/**
|
|
6
|
-
* @hidden
|
|
7
|
-
*/
|
|
8
|
-
export const RESIZE_HANDLE_UNIDIRECTIONAL_SIZE = 9;
|
|
9
|
-
/**
|
|
10
|
-
* @hidden
|
|
11
|
-
*/
|
|
12
|
-
export const RESIZE_HANDLE_BIDIRECTIONAL_SIZE = 25;
|
|
13
|
-
/**
|
|
14
|
-
* @hidden
|
|
15
|
-
*/
|
|
16
|
-
export const RESIZE_HANDLE_UNIDIRECTIONAL_OVERLAP = 5;
|
|
17
|
-
/**
|
|
18
|
-
* @hidden
|
|
19
|
-
*/
|
|
20
|
-
export const RESIZE_HANDLE_BIDIRECTIONAL_OVERLAP = 18;
|
|
21
|
-
/**
|
|
22
|
-
* @hidden
|
|
23
|
-
*/
|
|
24
|
-
export const DRAGGED_ZINDEX = 10;
|
|
25
|
-
/**
|
|
26
|
-
* @hidden
|
|
27
|
-
*/
|
|
28
|
-
export const RESIZE_DIRECTIONS = ['ew', 'ns', 'nwse'];
|
|
29
|
-
/**
|
|
30
|
-
* @hidden
|
|
31
|
-
*/
|
|
32
|
-
export const RTL_RESIZE_DIRECTIONS = ['ew', 'ns', 'nesw'];
|
|
33
|
-
/**
|
|
34
|
-
* @hidden
|
|
35
|
-
*/
|
|
36
|
-
export const RESIZE_HANDLE_DIMENSIONS = {
|
|
37
|
-
// numeric values represent pixels
|
|
38
|
-
ew: {
|
|
39
|
-
width: RESIZE_HANDLE_UNIDIRECTIONAL_SIZE,
|
|
40
|
-
overlapX: RESIZE_HANDLE_UNIDIRECTIONAL_OVERLAP
|
|
41
|
-
},
|
|
42
|
-
ns: {
|
|
43
|
-
height: RESIZE_HANDLE_UNIDIRECTIONAL_SIZE,
|
|
44
|
-
overlapY: RESIZE_HANDLE_UNIDIRECTIONAL_OVERLAP
|
|
45
|
-
},
|
|
46
|
-
nwse: {
|
|
47
|
-
width: RESIZE_HANDLE_BIDIRECTIONAL_SIZE,
|
|
48
|
-
height: RESIZE_HANDLE_BIDIRECTIONAL_SIZE,
|
|
49
|
-
overlapX: RESIZE_HANDLE_BIDIRECTIONAL_OVERLAP,
|
|
50
|
-
overlapY: RESIZE_HANDLE_BIDIRECTIONAL_OVERLAP
|
|
51
|
-
},
|
|
52
|
-
nesw: {
|
|
53
|
-
width: RESIZE_HANDLE_BIDIRECTIONAL_SIZE,
|
|
54
|
-
height: RESIZE_HANDLE_BIDIRECTIONAL_SIZE,
|
|
55
|
-
overlapX: RESIZE_HANDLE_BIDIRECTIONAL_OVERLAP,
|
|
56
|
-
overlapY: RESIZE_HANDLE_BIDIRECTIONAL_OVERLAP
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
/**
|
|
60
|
-
* @hidden
|
|
61
|
-
*/
|
|
62
|
-
export const OVERLAP_THRESHOLD = 0.3;
|
|
63
|
-
/**
|
|
64
|
-
* @hidden
|
|
65
|
-
*/
|
|
66
|
-
export const REVERSE_OVERLAP_THRESHOLD = -0.7;
|
|
67
|
-
/**
|
|
68
|
-
* @hidden
|
|
69
|
-
*/
|
|
70
|
-
export const HINT_BORDERS_HEIGHT = 2;
|