@progress/kendo-angular-layout 17.0.0-develop.21 → 17.0.0-develop.22
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/avatar.component.d.ts +1 -1
- package/avatar/l10n/messages.d.ts +1 -1
- package/avatar/models/fill.d.ts +1 -1
- package/avatar/models/rounded.d.ts +1 -1
- package/avatar/models/shape.d.ts +2 -2
- package/avatar/models/size.d.ts +1 -1
- package/avatar/models/theme-color.d.ts +1 -1
- package/card/card-actions.component.d.ts +1 -1
- package/card/card.component.d.ts +1 -1
- package/card/directives/card-separator.directive.d.ts +1 -1
- package/card/models/actions-layout.d.ts +1 -1
- package/common/direction.d.ts +1 -1
- package/common/orientation.d.ts +1 -1
- package/drawer/drawer.component.d.ts +1 -1
- package/drawer/item.component.d.ts +1 -1
- package/drawer/list.component.d.ts +1 -1
- package/drawer/models/drawer-item-expand.interface.d.ts +1 -1
- package/drawer/models/mode.d.ts +1 -1
- package/drawer/models/position.d.ts +1 -1
- package/{esm2020 → esm2022}/avatar/avatar.component.mjs +61 -25
- package/{esm2020 → esm2022}/avatar/l10n/custom-messages.component.mjs +9 -8
- package/{esm2020 → esm2022}/avatar/l10n/localized-messages.directive.mjs +9 -8
- package/{esm2020 → esm2022}/avatar/l10n/messages.mjs +7 -3
- package/{esm2020 → esm2022}/avatar.module.mjs +4 -4
- package/{esm2020 → esm2022}/card/card-actions.component.mjs +37 -31
- package/{esm2020 → esm2022}/card/card-body.component.mjs +5 -7
- package/{esm2020 → esm2022}/card/card-footer.component.mjs +5 -7
- package/{esm2020 → esm2022}/card/card-header.component.mjs +5 -7
- package/{esm2020 → esm2022}/card/card.component.mjs +40 -34
- package/{esm2020 → esm2022}/card/directives/card-media.directive.mjs +4 -6
- package/{esm2020 → esm2022}/card/directives/card-separator.directive.mjs +16 -14
- package/{esm2020 → esm2022}/card/directives/card-subtitle.directive.mjs +4 -6
- package/{esm2020 → esm2022}/card/directives/card-title.directive.mjs +4 -6
- package/{esm2020 → esm2022}/card/models/card-action.mjs +12 -0
- package/{esm2020 → esm2022}/card.module.mjs +4 -4
- package/{esm2020 → esm2022}/common/preventable-event.mjs +7 -7
- package/{esm2020 → esm2022}/drawer/drawer-container.component.mjs +28 -18
- package/{esm2020 → esm2022}/drawer/drawer-content.component.mjs +6 -7
- package/{esm2020 → esm2022}/drawer/drawer.component.mjs +132 -106
- package/{esm2020 → esm2022}/drawer/drawer.service.mjs +10 -10
- package/{esm2020 → esm2022}/drawer/events/drawer-list-select.event.mjs +12 -0
- package/{esm2020 → esm2022}/drawer/events/select-event.mjs +16 -0
- package/{esm2020 → esm2022}/drawer/item.component.mjs +22 -11
- package/{esm2020 → esm2022}/drawer/list.component.mjs +14 -6
- package/{esm2020 → esm2022}/drawer/template-directives/drawer-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/drawer/template-directives/footer-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/drawer/template-directives/header-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/drawer/template-directives/item-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/drawer.module.mjs +4 -4
- package/{esm2020 → esm2022}/expansionpanel/events/action-event.mjs +4 -0
- package/{esm2020 → esm2022}/expansionpanel/expansionpanel-title.directive.mjs +4 -3
- package/{esm2020 → esm2022}/expansionpanel/expansionpanel.component.mjs +103 -81
- package/{esm2020 → esm2022}/expansionpanel.module.mjs +4 -4
- package/{esm2020 → esm2022}/gridlayout.module.mjs +4 -4
- package/{esm2020 → esm2022}/layout.module.mjs +4 -4
- package/{esm2020 → esm2022}/layouts/grid-layout.component.mjs +57 -26
- package/{esm2020 → esm2022}/layouts/gridlayout-item.component.mjs +26 -4
- package/{esm2020 → esm2022}/layouts/stack-layout.component.mjs +40 -35
- package/{esm2020 → esm2022}/package-metadata.mjs +2 -2
- package/{esm2020 → esm2022}/panelbar/events/collapse-event.mjs +4 -0
- package/{esm2020 → esm2022}/panelbar/events/expand-event.mjs +4 -0
- package/{esm2020 → esm2022}/panelbar/events/item-click-event.mjs +8 -0
- package/{esm2020 → esm2022}/panelbar/events/select-event.mjs +4 -0
- package/{esm2020 → esm2022}/panelbar/events/state-change-event.mjs +4 -0
- package/{esm2020 → esm2022}/panelbar/panelbar-content.directive.mjs +4 -3
- package/{esm2020 → esm2022}/panelbar/panelbar-item-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/panelbar/panelbar-item-title.directive.mjs +4 -3
- package/{esm2020 → esm2022}/panelbar/panelbar-item.component.mjs +99 -64
- package/{esm2020 → esm2022}/panelbar/panelbar.component.mjs +109 -98
- package/{esm2020 → esm2022}/panelbar/panelbar.service.mjs +23 -13
- package/{esm2020 → esm2022}/panelbar.module.mjs +4 -4
- package/{esm2020 → esm2022}/splitter/splitter-bar.component.mjs +26 -19
- package/{esm2020 → esm2022}/splitter/splitter-pane.component.mjs +78 -56
- package/{esm2020 → esm2022}/splitter/splitter.component.mjs +60 -33
- package/{esm2020 → esm2022}/splitter/splitter.service.mjs +11 -6
- package/{esm2020 → esm2022}/splitter.module.mjs +4 -4
- package/{esm2020 → esm2022}/stacklayout.module.mjs +4 -4
- package/{esm2020 → esm2022}/stepper/events/activate-event.mjs +16 -0
- package/{esm2020 → esm2022}/stepper/list.component.mjs +23 -5
- package/{esm2020 → esm2022}/stepper/localization/custom-messages.component.mjs +9 -8
- package/{esm2020 → esm2022}/stepper/localization/localized-messages.directive.mjs +9 -8
- package/{esm2020 → esm2022}/stepper/localization/messages.mjs +7 -3
- package/{esm2020 → esm2022}/stepper/step.component.mjs +25 -8
- package/{esm2020 → esm2022}/stepper/stepper.component.mjs +109 -68
- package/{esm2020 → esm2022}/stepper/stepper.service.mjs +30 -9
- package/{esm2020 → esm2022}/stepper/template-directives/indicator-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/stepper/template-directives/label-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/stepper/template-directives/step-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/stepper.module.mjs +4 -4
- package/{esm2020 → esm2022}/tabstrip/directives/tab-content.directive.mjs +4 -3
- package/{esm2020 → esm2022}/tabstrip/directives/tab-title.directive.mjs +4 -3
- package/{esm2020 → esm2022}/tabstrip/directives/tab.directive.mjs +4 -3
- package/{esm2020 → esm2022}/tabstrip/events/select-event.mjs +2 -0
- package/{esm2020 → esm2022}/tabstrip/events/tabclose-event.mjs +2 -0
- package/{esm2020 → esm2022}/tabstrip/events/tabscroll-event.mjs +4 -0
- package/{esm2020 → esm2022}/tabstrip/localization/custom-messages.component.mjs +9 -8
- package/{esm2020 → esm2022}/tabstrip/localization/localized-messages.directive.mjs +9 -8
- package/{esm2020 → esm2022}/tabstrip/localization/messages.mjs +15 -3
- package/esm2022/tabstrip/models/tabstrip-tab.component.mjs +117 -0
- package/{esm2020 → esm2022}/tabstrip/rendering/tab.component.mjs +16 -9
- package/{esm2020 → esm2022}/tabstrip/scrollable-button.component.mjs +33 -27
- package/{esm2020 → esm2022}/tabstrip/tabstrip-scroll.service.mjs +11 -9
- package/{esm2020 → esm2022}/tabstrip/tabstrip.component.mjs +141 -107
- package/{esm2020 → esm2022}/tabstrip/tabstrip.service.mjs +6 -3
- package/{esm2020 → esm2022}/tabstrip.module.mjs +4 -4
- package/{esm2020 → esm2022}/tilelayout/dragging-service.mjs +39 -18
- package/{esm2020 → esm2022}/tilelayout/keyboard-navigation.service.mjs +9 -4
- package/{esm2020 → esm2022}/tilelayout/reorder-event.mjs +8 -0
- package/{esm2020 → esm2022}/tilelayout/resize-event.mjs +6 -0
- package/{esm2020 → esm2022}/tilelayout/tilelayout-item-body.component.mjs +6 -8
- package/{esm2020 → esm2022}/tilelayout/tilelayout-item-header.component.mjs +11 -9
- package/{esm2020 → esm2022}/tilelayout/tilelayout-item.component.mjs +78 -48
- package/{esm2020 → esm2022}/tilelayout/tilelayout-resize-handle.directive.mjs +7 -3
- package/{esm2020 → esm2022}/tilelayout/tilelayout.component.mjs +101 -88
- package/{esm2020 → esm2022}/tilelayout.module.mjs +4 -4
- package/{esm2020 → esm2022}/timeline/localization/custom-messages.component.mjs +9 -8
- package/{esm2020 → esm2022}/timeline/localization/localized-messages.directive.mjs +9 -8
- package/{esm2020 → esm2022}/timeline/localization/messages.mjs +11 -3
- package/{esm2020 → esm2022}/timeline/templates/timeline-card-actions.directive.mjs +4 -3
- package/{esm2020 → esm2022}/timeline/templates/timeline-card-body.directive.mjs +4 -3
- package/{esm2020 → esm2022}/timeline/templates/timeline-card-header.directive.mjs +4 -3
- package/{esm2020 → esm2022}/timeline/timeline-card.component.mjs +48 -33
- package/{esm2020 → esm2022}/timeline/timeline-horizontal.component.mjs +74 -45
- package/{esm2020 → esm2022}/timeline/timeline-vertical.component.mjs +20 -6
- package/{esm2020 → esm2022}/timeline/timeline.component.mjs +108 -68
- package/{esm2020 → esm2022}/timeline/timeline.service.mjs +4 -3
- package/{esm2020 → esm2022}/timeline.module.mjs +4 -4
- package/expansionpanel/events/action-event.d.ts +1 -1
- package/expansionpanel/expansionpanel.component.d.ts +1 -1
- package/{fesm2020 → fesm2022}/progress-kendo-angular-layout.mjs +2336 -1528
- package/layouts/grid-layout.component.d.ts +1 -1
- package/layouts/gridlayout-item.component.d.ts +1 -1
- package/layouts/models/layout-horizontal-align.d.ts +1 -1
- package/layouts/models/layout-vertical-align.d.ts +1 -1
- package/layouts/stack-layout.component.d.ts +1 -1
- package/package.json +16 -22
- package/panelbar/panelbar-item.component.d.ts +1 -1
- package/panelbar/panelbar.component.d.ts +1 -1
- package/splitter/splitter-bar.component.d.ts +1 -1
- package/splitter/splitter-pane.component.d.ts +1 -1
- package/splitter/splitter.component.d.ts +1 -1
- package/splitter/splitter.service.d.ts +2 -2
- package/stepper/list.component.d.ts +1 -1
- package/stepper/localization/messages.d.ts +1 -1
- package/stepper/models/orientation.d.ts +1 -1
- package/stepper/models/step-predicate.d.ts +1 -1
- package/stepper/models/step-type.d.ts +1 -1
- package/stepper/step.component.d.ts +1 -1
- package/stepper/stepper.component.d.ts +1 -1
- package/tabstrip/localization/messages.d.ts +1 -1
- package/tabstrip/models/button-state-change.d.ts +1 -1
- package/tabstrip/models/scroll-button-type.d.ts +1 -1
- package/tabstrip/models/scroll-buttons-visibility.d.ts +1 -1
- package/tabstrip/models/tab-alignment.d.ts +1 -1
- package/tabstrip/models/tab-position.d.ts +1 -1
- package/tabstrip/models/tabstrip-tab.component.d.ts +1 -1
- package/tabstrip/rendering/tab.component.d.ts +1 -1
- package/tabstrip/scrollable-button.component.d.ts +1 -1
- package/tabstrip/tabstrip.component.d.ts +1 -1
- package/tilelayout/models/flowmode.type.d.ts +1 -1
- package/tilelayout/tilelayout-item-header.component.d.ts +1 -1
- package/tilelayout/tilelayout-item.component.d.ts +1 -1
- package/tilelayout/tilelayout-resize-handle.directive.d.ts +1 -1
- package/tilelayout/tilelayout.component.d.ts +1 -1
- package/timeline/events/navigation-direction.d.ts +1 -1
- package/timeline/localization/messages.d.ts +1 -1
- package/timeline/models/anchor-target.d.ts +1 -1
- package/timeline/timeline-card.component.d.ts +1 -1
- package/timeline/timeline-horizontal.component.d.ts +1 -1
- package/timeline/timeline-vertical.component.d.ts +1 -1
- package/timeline/timeline.component.d.ts +1 -1
- package/esm2020/tabstrip/models/tabstrip-tab.component.mjs +0 -78
- package/fesm2015/progress-kendo-angular-layout.mjs +0 -12495
- /package/{esm2020 → esm2022}/avatar/models/fill.mjs +0 -0
- /package/{esm2020 → esm2022}/avatar/models/models.mjs +0 -0
- /package/{esm2020 → esm2022}/avatar/models/rounded.mjs +0 -0
- /package/{esm2020 → esm2022}/avatar/models/shape.mjs +0 -0
- /package/{esm2020 → esm2022}/avatar/models/size.mjs +0 -0
- /package/{esm2020 → esm2022}/avatar/models/theme-color.mjs +0 -0
- /package/{esm2020 → esm2022}/card/models/actions-layout.mjs +0 -0
- /package/{esm2020 → esm2022}/common/direction.mjs +0 -0
- /package/{esm2020 → esm2022}/common/dom-queries.mjs +0 -0
- /package/{esm2020 → esm2022}/common/orientation.mjs +0 -0
- /package/{esm2020 → esm2022}/common/styling-classes.mjs +0 -0
- /package/{esm2020 → esm2022}/common/util.mjs +0 -0
- /package/{esm2020 → esm2022}/directives.mjs +0 -0
- /package/{esm2020 → esm2022}/drawer/animations.mjs +0 -0
- /package/{esm2020 → esm2022}/drawer/models/constants.mjs +0 -0
- /package/{esm2020 → esm2022}/drawer/models/drawer-animation.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/drawer/models/drawer-item-expand.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/drawer/models/drawer-item.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/drawer/models/drawer-view-item.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/drawer/models/mode.mjs +0 -0
- /package/{esm2020 → esm2022}/drawer/models/position.mjs +0 -0
- /package/{esm2020 → esm2022}/drawer/template-directives.mjs +0 -0
- /package/{esm2020 → esm2022}/drawer/types.mjs +0 -0
- /package/{esm2020 → esm2022}/drawer/util.mjs +0 -0
- /package/{esm2020 → esm2022}/expansionpanel/animations.mjs +0 -0
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/layouts/models/gridlayout-gap-settings.mjs +0 -0
- /package/{esm2020 → esm2022}/layouts/models/gridlayout-row-col-size.mjs +0 -0
- /package/{esm2020 → esm2022}/layouts/models/layout-align-settings.mjs +0 -0
- /package/{esm2020 → esm2022}/layouts/models/layout-horizontal-align.mjs +0 -0
- /package/{esm2020 → esm2022}/layouts/models/layout-vertical-align.mjs +0 -0
- /package/{esm2020 → esm2022}/layouts/models.mjs +0 -0
- /package/{esm2020 → esm2022}/layouts/util.mjs +0 -0
- /package/{esm2020 → esm2022}/panelbar/events.mjs +0 -0
- /package/{esm2020 → esm2022}/panelbar/panelbar-expand-mode.mjs +0 -0
- /package/{esm2020 → esm2022}/panelbar/panelbar-item-model.mjs +0 -0
- /package/{esm2020 → esm2022}/progress-kendo-angular-layout.mjs +0 -0
- /package/{esm2020 → esm2022}/splitter/util.mjs +0 -0
- /package/{esm2020 → esm2022}/stepper/models/constants.mjs +0 -0
- /package/{esm2020 → esm2022}/stepper/models/orientation.mjs +0 -0
- /package/{esm2020 → esm2022}/stepper/models/step-predicate.mjs +0 -0
- /package/{esm2020 → esm2022}/stepper/models/step-type.mjs +0 -0
- /package/{esm2020 → esm2022}/stepper/models/stepper-step.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/stepper/template-directives.mjs +0 -0
- /package/{esm2020 → esm2022}/stepper/types.mjs +0 -0
- /package/{esm2020 → esm2022}/tabstrip/constants.mjs +0 -0
- /package/{esm2020 → esm2022}/tabstrip/events.mjs +0 -0
- /package/{esm2020 → esm2022}/tabstrip/models/button-state-change.mjs +0 -0
- /package/{esm2020 → esm2022}/tabstrip/models/scroll-button-type.mjs +0 -0
- /package/{esm2020 → esm2022}/tabstrip/models/scroll-buttons-visibility.mjs +0 -0
- /package/{esm2020 → esm2022}/tabstrip/models/scrollable-settings.mjs +0 -0
- /package/{esm2020 → esm2022}/tabstrip/models/tab-alignment.mjs +0 -0
- /package/{esm2020 → esm2022}/tabstrip/models/tab-position.mjs +0 -0
- /package/{esm2020 → esm2022}/tabstrip/util.mjs +0 -0
- /package/{esm2020 → esm2022}/tilelayout/constants.mjs +0 -0
- /package/{esm2020 → esm2022}/tilelayout/models/dragging-config.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/tilelayout/models/flowmode.type.mjs +0 -0
- /package/{esm2020 → esm2022}/tilelayout/models/gap.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/tilelayout/models/navigation.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/tilelayout/util.mjs +0 -0
- /package/{esm2020 → esm2022}/timeline/events/navigation-direction.mjs +0 -0
- /package/{esm2020 → esm2022}/timeline/models/anchor-target.mjs +0 -0
- /package/{esm2020 → esm2022}/timeline/models/default-model-fields.mjs +0 -0
- /package/{esm2020 → esm2022}/timeline/models/model-fields.mjs +0 -0
- /package/{esm2020 → esm2022}/timeline/models/timeline-event.mjs +0 -0
- /package/{esm2020 → esm2022}/timeline/util.mjs +0 -0
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2024 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { Component, Input, ContentChildren, QueryList } from '@angular/core';
|
|
6
|
+
import { TabContentDirective } from '../directives/tab-content.directive';
|
|
7
|
+
import { TabTitleDirective } from '../directives/tab-title.directive';
|
|
8
|
+
import { TabTemplateDirective } from '../directives/tab.directive';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
/**
|
|
11
|
+
* Represents the tab component of the TabStrip.
|
|
12
|
+
*/
|
|
13
|
+
export class TabStripTabComponent {
|
|
14
|
+
/**
|
|
15
|
+
* Sets the tab title ([see example](slug:tabs_tabstrip#toc-tab-titles)).
|
|
16
|
+
*/
|
|
17
|
+
title;
|
|
18
|
+
/**
|
|
19
|
+
* Used to disable a tab ([see example]({% slug tabs_tabstrip %}#toc-disabled-tabs)).
|
|
20
|
+
*
|
|
21
|
+
* Defaults to `false`.
|
|
22
|
+
*/
|
|
23
|
+
disabled = false;
|
|
24
|
+
/**
|
|
25
|
+
* The CSS classes that will be rendered on the `tab` element.
|
|
26
|
+
* Supports the type of values that are supported by [ngClass](link:site.data.urls.angular['ngclassapi']).
|
|
27
|
+
*/
|
|
28
|
+
cssClass;
|
|
29
|
+
/**
|
|
30
|
+
* The CSS styles that will be rendered on the `tab` element.
|
|
31
|
+
* Supports the type of values that are supported by [ngStyle](link:site.data.urls.angular['ngstyleapi']).
|
|
32
|
+
*/
|
|
33
|
+
cssStyle;
|
|
34
|
+
/**
|
|
35
|
+
* Determines which tab will be selected upon the initial loading of the TabStrip
|
|
36
|
+
* ([see example](slug:tabs_tabstrip#toc-selected-tab)).
|
|
37
|
+
*/
|
|
38
|
+
selected;
|
|
39
|
+
/**
|
|
40
|
+
* When set to `true`, a close button will be rendered inside the tab.
|
|
41
|
+
* This option overrides the value of the TabStrip `closable` option.
|
|
42
|
+
*/
|
|
43
|
+
closable;
|
|
44
|
+
/**
|
|
45
|
+
* Defines the name for an existing font icon in the Kendo UI theme for the close icon.
|
|
46
|
+
* This option overrides the value of the TabStrip `closeIcon` option.
|
|
47
|
+
*/
|
|
48
|
+
closeIcon;
|
|
49
|
+
/**
|
|
50
|
+
* Allows the usage of custom icons by defining a custom CSS class, or multiple classes separated by spaces.
|
|
51
|
+
* This option overrides the value of the TabStrip `closeIcon` option.
|
|
52
|
+
*/
|
|
53
|
+
closeIconClass;
|
|
54
|
+
/**
|
|
55
|
+
* Defines an SVGIcon to be rendered for the close icon.
|
|
56
|
+
* The input can take either an [existing Kendo SVG icon](slug:svgicon_list) or a custom one.
|
|
57
|
+
*/
|
|
58
|
+
closeSVGIcon;
|
|
59
|
+
get tabContent() {
|
|
60
|
+
return this._tabContent.first;
|
|
61
|
+
}
|
|
62
|
+
get tabTitle() {
|
|
63
|
+
return this._tabTitleDirective.first;
|
|
64
|
+
}
|
|
65
|
+
get tabTemplate() {
|
|
66
|
+
return this._tabDirective.first;
|
|
67
|
+
}
|
|
68
|
+
_tabDirective = new QueryList();
|
|
69
|
+
_tabContent = new QueryList();
|
|
70
|
+
// guards against nested tabstrip components; `descendants` is not defined by default;
|
|
71
|
+
_tabTitleDirective;
|
|
72
|
+
/**
|
|
73
|
+
* @hidden
|
|
74
|
+
*
|
|
75
|
+
* Currently only disabled tabs can be focused. Otherwise they will be
|
|
76
|
+
* immediately selected
|
|
77
|
+
*/
|
|
78
|
+
focused = false;
|
|
79
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TabStripTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
80
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TabStripTabComponent, isStandalone: true, selector: "kendo-tabstrip-tab", inputs: { title: "title", disabled: "disabled", cssClass: "cssClass", cssStyle: "cssStyle", selected: "selected", closable: "closable", closeIcon: "closeIcon", closeIconClass: "closeIconClass", closeSVGIcon: "closeSVGIcon" }, queries: [{ propertyName: "_tabDirective", predicate: TabTemplateDirective }, { propertyName: "_tabContent", predicate: TabContentDirective }, { propertyName: "_tabTitleDirective", predicate: TabTitleDirective }], exportAs: ["kendoTabStripTab"], ngImport: i0, template: ``, isInline: true });
|
|
81
|
+
}
|
|
82
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TabStripTabComponent, decorators: [{
|
|
83
|
+
type: Component,
|
|
84
|
+
args: [{
|
|
85
|
+
exportAs: 'kendoTabStripTab',
|
|
86
|
+
selector: 'kendo-tabstrip-tab',
|
|
87
|
+
template: ``,
|
|
88
|
+
standalone: true
|
|
89
|
+
}]
|
|
90
|
+
}], propDecorators: { title: [{
|
|
91
|
+
type: Input
|
|
92
|
+
}], disabled: [{
|
|
93
|
+
type: Input
|
|
94
|
+
}], cssClass: [{
|
|
95
|
+
type: Input
|
|
96
|
+
}], cssStyle: [{
|
|
97
|
+
type: Input
|
|
98
|
+
}], selected: [{
|
|
99
|
+
type: Input
|
|
100
|
+
}], closable: [{
|
|
101
|
+
type: Input
|
|
102
|
+
}], closeIcon: [{
|
|
103
|
+
type: Input
|
|
104
|
+
}], closeIconClass: [{
|
|
105
|
+
type: Input
|
|
106
|
+
}], closeSVGIcon: [{
|
|
107
|
+
type: Input
|
|
108
|
+
}], _tabDirective: [{
|
|
109
|
+
type: ContentChildren,
|
|
110
|
+
args: [TabTemplateDirective]
|
|
111
|
+
}], _tabContent: [{
|
|
112
|
+
type: ContentChildren,
|
|
113
|
+
args: [TabContentDirective]
|
|
114
|
+
}], _tabTitleDirective: [{
|
|
115
|
+
type: ContentChildren,
|
|
116
|
+
args: [TabTitleDirective]
|
|
117
|
+
}] } });
|
|
@@ -15,11 +15,15 @@ import * as i1 from "@progress/kendo-angular-l10n";
|
|
|
15
15
|
* @hidden
|
|
16
16
|
*/
|
|
17
17
|
export class TabComponent {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
localization;
|
|
19
|
+
tab;
|
|
20
|
+
index;
|
|
21
|
+
tabStripClosable;
|
|
22
|
+
tabStripCloseIcon;
|
|
23
|
+
customTabstripCloseIcon;
|
|
24
|
+
closeSVGIcon;
|
|
25
|
+
tabClose = new EventEmitter();
|
|
26
|
+
hostClasses = true;
|
|
23
27
|
get activeClass() {
|
|
24
28
|
return this.tab.selected;
|
|
25
29
|
}
|
|
@@ -32,6 +36,9 @@ export class TabComponent {
|
|
|
32
36
|
get tabIndex() {
|
|
33
37
|
return this.tab.selected || this.tab.focused ? 0 : -1;
|
|
34
38
|
}
|
|
39
|
+
constructor(localization) {
|
|
40
|
+
this.localization = localization;
|
|
41
|
+
}
|
|
35
42
|
get tabClosable() {
|
|
36
43
|
if (this.tab.closable !== undefined) {
|
|
37
44
|
return this.tab.closable;
|
|
@@ -73,9 +80,8 @@ export class TabComponent {
|
|
|
73
80
|
const closeArgs = new TabCloseEvent(index, this.tab);
|
|
74
81
|
this.tabClose.emit(closeArgs);
|
|
75
82
|
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
TabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TabComponent, isStandalone: true, selector: "[kendoTabStripTab]", inputs: { tab: "tab", index: "index", tabStripClosable: "tabStripClosable", tabStripCloseIcon: "tabStripCloseIcon", customTabstripCloseIcon: "customTabstripCloseIcon", closeSVGIcon: "closeSVGIcon" }, outputs: { tabClose: "tabClose" }, host: { properties: { "class.k-item": "this.hostClasses", "attr.aria-selected": "this.activeClass", "class.k-active": "this.activeClass", "attr.aria-disabled": "this.disabledClass", "class.k-disabled": "this.disabledClass", "class.k-focus": "this.focusedClass", "attr.tabindex": "this.tabIndex" } }, ngImport: i0, template: `
|
|
83
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TabComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
84
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TabComponent, isStandalone: true, selector: "[kendoTabStripTab]", inputs: { tab: "tab", index: "index", tabStripClosable: "tabStripClosable", tabStripCloseIcon: "tabStripCloseIcon", customTabstripCloseIcon: "customTabstripCloseIcon", closeSVGIcon: "closeSVGIcon" }, outputs: { tabClose: "tabClose" }, host: { properties: { "class.k-item": "this.hostClasses", "attr.aria-selected": "this.activeClass", "class.k-active": "this.activeClass", "attr.aria-disabled": "this.disabledClass", "class.k-disabled": "this.disabledClass", "class.k-focus": "this.focusedClass", "attr.tabindex": "this.tabIndex" } }, ngImport: i0, template: `
|
|
79
85
|
<ng-container *ngIf="!tab.tabTemplate; else tabTemplate">
|
|
80
86
|
<span class="k-link" *ngIf="!tab.tabTitle">
|
|
81
87
|
<span class="k-link-text">{{ tab.title }}</span>
|
|
@@ -104,7 +110,8 @@ TabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
|
|
|
104
110
|
class="k-remove-tab k-icon-button"
|
|
105
111
|
></button>
|
|
106
112
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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"] }] });
|
|
107
|
-
|
|
113
|
+
}
|
|
114
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TabComponent, decorators: [{
|
|
108
115
|
type: Component,
|
|
109
116
|
args: [{
|
|
110
117
|
// eslint-disable-next-line @angular-eslint/component-selector
|
|
@@ -17,35 +17,21 @@ import * as i1 from "@progress/kendo-angular-l10n";
|
|
|
17
17
|
* @hidden
|
|
18
18
|
*/
|
|
19
19
|
export class TabStripScrollableButtonComponent {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
this.localization = localization;
|
|
25
|
-
this.prev = false;
|
|
26
|
-
this.tabScroll = new EventEmitter();
|
|
27
|
-
this.onClick = new EventEmitter();
|
|
28
|
-
this.caretAltLeftIcon = caretAltLeftIcon;
|
|
29
|
-
this.caretAltRightIcon = caretAltRightIcon;
|
|
30
|
-
this.caretAltUpIcon = caretAltUpIcon;
|
|
31
|
-
this.caretAltDownIcon = caretAltDownIcon;
|
|
32
|
-
this.subs = new Subscription();
|
|
33
|
-
this.clickHandler = (scrollEvent) => {
|
|
34
|
-
const tabStripScrollEvent = this.emitScrollEvent(scrollEvent);
|
|
35
|
-
const isTabStripScrollEventPrevented = tabStripScrollEvent.isDefaultPrevented();
|
|
36
|
-
if (isTabStripScrollEventPrevented) {
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
const buttonType = this.prev ? 'prev' : 'next';
|
|
40
|
-
this.onClick.emit(buttonType);
|
|
41
|
-
};
|
|
42
|
-
}
|
|
20
|
+
host;
|
|
21
|
+
renderer;
|
|
22
|
+
ngZone;
|
|
23
|
+
localization;
|
|
43
24
|
get prevClass() {
|
|
44
25
|
return this.prev;
|
|
45
26
|
}
|
|
46
27
|
get nextClass() {
|
|
47
28
|
return !this.prev;
|
|
48
29
|
}
|
|
30
|
+
prev = false;
|
|
31
|
+
tabPosition;
|
|
32
|
+
scrollable;
|
|
33
|
+
tabScroll = new EventEmitter();
|
|
34
|
+
onClick = new EventEmitter();
|
|
49
35
|
get hostBoundingClientRect() {
|
|
50
36
|
return this.host.nativeElement.getBoundingClientRect();
|
|
51
37
|
}
|
|
@@ -58,6 +44,17 @@ export class TabStripScrollableButtonComponent {
|
|
|
58
44
|
get svgIcon() {
|
|
59
45
|
return this.scrollButtonSVGIcon;
|
|
60
46
|
}
|
|
47
|
+
caretAltLeftIcon = caretAltLeftIcon;
|
|
48
|
+
caretAltRightIcon = caretAltRightIcon;
|
|
49
|
+
caretAltUpIcon = caretAltUpIcon;
|
|
50
|
+
caretAltDownIcon = caretAltDownIcon;
|
|
51
|
+
subs = new Subscription();
|
|
52
|
+
constructor(host, renderer, ngZone, localization) {
|
|
53
|
+
this.host = host;
|
|
54
|
+
this.renderer = renderer;
|
|
55
|
+
this.ngZone = ngZone;
|
|
56
|
+
this.localization = localization;
|
|
57
|
+
}
|
|
61
58
|
ngAfterViewInit() {
|
|
62
59
|
this.ngZone.runOutsideAngular(() => {
|
|
63
60
|
this.subs.add(this.renderer.listen(this.host.nativeElement, 'click', this.clickHandler));
|
|
@@ -69,6 +66,15 @@ export class TabStripScrollableButtonComponent {
|
|
|
69
66
|
toggle(show) {
|
|
70
67
|
this.renderer[show ? 'removeClass' : 'addClass'](this.host.nativeElement, HIDDEN_CLASS);
|
|
71
68
|
}
|
|
69
|
+
clickHandler = (scrollEvent) => {
|
|
70
|
+
const tabStripScrollEvent = this.emitScrollEvent(scrollEvent);
|
|
71
|
+
const isTabStripScrollEventPrevented = tabStripScrollEvent.isDefaultPrevented();
|
|
72
|
+
if (isTabStripScrollEventPrevented) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const buttonType = this.prev ? 'prev' : 'next';
|
|
76
|
+
this.onClick.emit(buttonType);
|
|
77
|
+
};
|
|
72
78
|
get scrollButtonIconClass() {
|
|
73
79
|
const defaultPrevIcon = isTablistHorizontal(this.tabPosition) ?
|
|
74
80
|
!this.localization.rtl ?
|
|
@@ -129,9 +135,8 @@ export class TabStripScrollableButtonComponent {
|
|
|
129
135
|
this.tabScroll.emit(scrollEvent);
|
|
130
136
|
return scrollEvent;
|
|
131
137
|
}
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
TabStripScrollableButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TabStripScrollableButtonComponent, isStandalone: true, selector: "[kendoTabStripScrollableButton]", inputs: { prev: "prev", tabPosition: "tabPosition", scrollable: "scrollable" }, outputs: { tabScroll: "tabScroll", onClick: "onClick" }, host: { properties: { "class.k-tabstrip-prev": "this.prevClass", "class.k-tabstrip-next": "this.nextClass" } }, ngImport: i0, template: `
|
|
138
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TabStripScrollableButtonComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
139
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TabStripScrollableButtonComponent, isStandalone: true, selector: "[kendoTabStripScrollableButton]", inputs: { prev: "prev", tabPosition: "tabPosition", scrollable: "scrollable" }, outputs: { tabScroll: "tabScroll", onClick: "onClick" }, host: { properties: { "class.k-tabstrip-prev": "this.prevClass", "class.k-tabstrip-next": "this.nextClass" } }, ngImport: i0, template: `
|
|
135
140
|
<kendo-icon-wrapper
|
|
136
141
|
[name]="iconClass"
|
|
137
142
|
[customFontClass]="customIconClass"
|
|
@@ -140,7 +145,8 @@ TabStripScrollableButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion
|
|
|
140
145
|
>
|
|
141
146
|
</kendo-icon-wrapper>
|
|
142
147
|
`, isInline: true, dependencies: [{ kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
|
|
143
|
-
|
|
148
|
+
}
|
|
149
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TabStripScrollableButtonComponent, decorators: [{
|
|
144
150
|
type: Component,
|
|
145
151
|
args: [{
|
|
146
152
|
template: `
|
|
@@ -12,12 +12,10 @@ import * as i0 from "@angular/core";
|
|
|
12
12
|
* @hidden
|
|
13
13
|
*/
|
|
14
14
|
export class ScrollService {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
this.isDisabled = (buttonType) => this.owner[`${buttonType}ScrollButton`].host.nativeElement.classList.contains('k-disabled');
|
|
20
|
-
}
|
|
15
|
+
ngZone;
|
|
16
|
+
owner;
|
|
17
|
+
position = 0;
|
|
18
|
+
scrollButtonActiveStateChange = new Subject();
|
|
21
19
|
get tablistElement() {
|
|
22
20
|
return this.owner.tablist.nativeElement;
|
|
23
21
|
}
|
|
@@ -49,6 +47,9 @@ export class ScrollService {
|
|
|
49
47
|
const nextSize = isTablistHorizontal(this.owner.tabPosition) ? nextRect.width : nextRect.height;
|
|
50
48
|
return prevSize + nextSize;
|
|
51
49
|
}
|
|
50
|
+
constructor(ngZone) {
|
|
51
|
+
this.ngZone = ngZone;
|
|
52
|
+
}
|
|
52
53
|
toggleScrollButtonsState() {
|
|
53
54
|
const tabStrip = this.owner;
|
|
54
55
|
if (!tabStrip.hasScrollButtons) {
|
|
@@ -171,9 +172,10 @@ export class ScrollService {
|
|
|
171
172
|
toggleButtonActiveState(buttonType, active) {
|
|
172
173
|
this.scrollButtonActiveStateChange.next({ buttonType, active });
|
|
173
174
|
}
|
|
175
|
+
isDisabled = (buttonType) => this.owner[`${buttonType}ScrollButton`].host.nativeElement.classList.contains('k-disabled');
|
|
176
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ScrollService, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
177
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ScrollService });
|
|
174
178
|
}
|
|
175
|
-
|
|
176
|
-
ScrollService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ScrollService });
|
|
177
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ScrollService, decorators: [{
|
|
179
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ScrollService, decorators: [{
|
|
178
180
|
type: Injectable
|
|
179
181
|
}], ctorParameters: function () { return [{ type: i0.NgZone }]; } });
|
|
@@ -30,94 +30,12 @@ import * as i3 from "./tabstrip-scroll.service";
|
|
|
30
30
|
* Represents the [Kendo UI TabStrip component for Angular]({% slug overview_tabstrip %}).
|
|
31
31
|
*/
|
|
32
32
|
export class TabStripComponent {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
this.ngZone = ngZone;
|
|
40
|
-
/**
|
|
41
|
-
* Enables the tab animation.
|
|
42
|
-
*
|
|
43
|
-
* @default true
|
|
44
|
-
*/
|
|
45
|
-
this.animate = true;
|
|
46
|
-
/**
|
|
47
|
-
* Sets the alignment of the tabs.
|
|
48
|
-
*
|
|
49
|
-
* @default: 'start'
|
|
50
|
-
*/
|
|
51
|
-
this.tabAlignment = 'start';
|
|
52
|
-
/**
|
|
53
|
-
* Sets the position of the tabs. Defaults to `top`.
|
|
54
|
-
*
|
|
55
|
-
* @default 'top'
|
|
56
|
-
*/
|
|
57
|
-
this.tabPosition = 'top';
|
|
58
|
-
/**
|
|
59
|
-
* When set to `true`, the component renders all tabs and they are persisted in the DOM.
|
|
60
|
-
* By default, `keepTabContent` is `false`.
|
|
61
|
-
*
|
|
62
|
-
* @default false
|
|
63
|
-
*/
|
|
64
|
-
this.keepTabContent = false;
|
|
65
|
-
/**
|
|
66
|
-
* When set to `true`, a close button will be rendered inside each tab.
|
|
67
|
-
* By default, `closable` is `false`.
|
|
68
|
-
*
|
|
69
|
-
* @default false
|
|
70
|
-
*/
|
|
71
|
-
this.closable = false;
|
|
72
|
-
/**
|
|
73
|
-
* Defines the name for an existing font icon in the Kendo UI theme for the close icon.
|
|
74
|
-
*/
|
|
75
|
-
this.closeIcon = 'x';
|
|
76
|
-
/**
|
|
77
|
-
* Determines whether the content associated with each tab will be rendered.
|
|
78
|
-
*
|
|
79
|
-
* @default true
|
|
80
|
-
*/
|
|
81
|
-
this.showContentArea = true;
|
|
82
|
-
/**
|
|
83
|
-
* Fires each time the user selects a tab ([see example](slug:events_tabstrip)).
|
|
84
|
-
* The event data contains the index of the selected tab and its title.
|
|
85
|
-
*/
|
|
86
|
-
this.tabSelect = new EventEmitter();
|
|
87
|
-
/**
|
|
88
|
-
* Fires each time the user closes a tab.
|
|
89
|
-
* The event data contains the index of the closed tab and its instance.
|
|
90
|
-
*/
|
|
91
|
-
this.tabClose = new EventEmitter();
|
|
92
|
-
/**
|
|
93
|
-
* Fires each time the user scrolls the TabStrip list.
|
|
94
|
-
* The event is preventable.
|
|
95
|
-
*/
|
|
96
|
-
this.tabScroll = new EventEmitter();
|
|
97
|
-
this.hostClasses = true;
|
|
98
|
-
/**
|
|
99
|
-
* A query list of all declared tabs.
|
|
100
|
-
*/
|
|
101
|
-
this.tabs = new QueryList();
|
|
102
|
-
/**
|
|
103
|
-
* @hidden
|
|
104
|
-
*/
|
|
105
|
-
this.showLicenseWatermark = false;
|
|
106
|
-
this._scrollableSettings = normalizeScrollableSettings(false);
|
|
107
|
-
this.subscriptions = new Subscription();
|
|
108
|
-
this.subscriptionsArePresent = false;
|
|
109
|
-
this.tabStripId = guid();
|
|
110
|
-
const isValid = validatePackage(packageMetadata);
|
|
111
|
-
this.showLicenseWatermark = shouldShowValidationUI(isValid);
|
|
112
|
-
this.tabstripService.owner = this;
|
|
113
|
-
this.scrollService.owner = this;
|
|
114
|
-
this.subscriptions.add(this.scrollService.scrollButtonActiveStateChange.subscribe((activeButtonSettings) => {
|
|
115
|
-
if (this.hasScrollButtons) {
|
|
116
|
-
const action = activeButtonSettings.active ? 'remove' : 'add';
|
|
117
|
-
this.renderer[`${action}Class`](this[`${activeButtonSettings.buttonType}ScrollButton`].host.nativeElement, 'k-disabled');
|
|
118
|
-
}
|
|
119
|
-
}));
|
|
120
|
-
}
|
|
33
|
+
localization;
|
|
34
|
+
renderer;
|
|
35
|
+
wrapper;
|
|
36
|
+
tabstripService;
|
|
37
|
+
scrollService;
|
|
38
|
+
ngZone;
|
|
121
39
|
/**
|
|
122
40
|
* Sets the height of the TabStrip.
|
|
123
41
|
*/
|
|
@@ -128,6 +46,38 @@ export class TabStripComponent {
|
|
|
128
46
|
get height() {
|
|
129
47
|
return this._height;
|
|
130
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Enables the tab animation.
|
|
51
|
+
*
|
|
52
|
+
* @default true
|
|
53
|
+
*/
|
|
54
|
+
animate = true;
|
|
55
|
+
/**
|
|
56
|
+
* Sets the alignment of the tabs.
|
|
57
|
+
*
|
|
58
|
+
* @default: 'start'
|
|
59
|
+
*/
|
|
60
|
+
tabAlignment = 'start';
|
|
61
|
+
/**
|
|
62
|
+
* Sets the position of the tabs. Defaults to `top`.
|
|
63
|
+
*
|
|
64
|
+
* @default 'top'
|
|
65
|
+
*/
|
|
66
|
+
tabPosition = 'top';
|
|
67
|
+
/**
|
|
68
|
+
* When set to `true`, the component renders all tabs and they are persisted in the DOM.
|
|
69
|
+
* By default, `keepTabContent` is `false`.
|
|
70
|
+
*
|
|
71
|
+
* @default false
|
|
72
|
+
*/
|
|
73
|
+
keepTabContent = false;
|
|
74
|
+
/**
|
|
75
|
+
* When set to `true`, a close button will be rendered inside each tab.
|
|
76
|
+
* By default, `closable` is `false`.
|
|
77
|
+
*
|
|
78
|
+
* @default false
|
|
79
|
+
*/
|
|
80
|
+
closable = false;
|
|
131
81
|
/**
|
|
132
82
|
* Enables the scrolling of the tab list. When set to `true` and the total size of all tabs
|
|
133
83
|
* is greater than the size of the TabStrip container, scroll buttons will be rendered on each end of the tab list.
|
|
@@ -146,6 +96,14 @@ export class TabStripComponent {
|
|
|
146
96
|
get scrollable() {
|
|
147
97
|
return this._scrollableSettings;
|
|
148
98
|
}
|
|
99
|
+
/**
|
|
100
|
+
* Defines the name for an existing font icon in the Kendo UI theme for the close icon.
|
|
101
|
+
*/
|
|
102
|
+
closeIcon = 'x';
|
|
103
|
+
/**
|
|
104
|
+
* Allows defining a custom CSS class, or multiple classes separated by spaces, which will be applied to the close button.
|
|
105
|
+
*/
|
|
106
|
+
closeIconClass;
|
|
149
107
|
/**
|
|
150
108
|
* Defines an SVGIcon to be rendered for the close icon.
|
|
151
109
|
* The input can take either an [existing Kendo SVG icon](slug:svgicon_list) or a custom one.
|
|
@@ -159,6 +117,28 @@ export class TabStripComponent {
|
|
|
159
117
|
get closeSVGIcon() {
|
|
160
118
|
return this._closeSVGIcon;
|
|
161
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* Determines whether the content associated with each tab will be rendered.
|
|
122
|
+
*
|
|
123
|
+
* @default true
|
|
124
|
+
*/
|
|
125
|
+
showContentArea = true;
|
|
126
|
+
/**
|
|
127
|
+
* Fires each time the user selects a tab ([see example](slug:events_tabstrip)).
|
|
128
|
+
* The event data contains the index of the selected tab and its title.
|
|
129
|
+
*/
|
|
130
|
+
tabSelect = new EventEmitter();
|
|
131
|
+
/**
|
|
132
|
+
* Fires each time the user closes a tab.
|
|
133
|
+
* The event data contains the index of the closed tab and its instance.
|
|
134
|
+
*/
|
|
135
|
+
tabClose = new EventEmitter();
|
|
136
|
+
/**
|
|
137
|
+
* Fires each time the user scrolls the TabStrip list.
|
|
138
|
+
* The event is preventable.
|
|
139
|
+
*/
|
|
140
|
+
tabScroll = new EventEmitter();
|
|
141
|
+
hostClasses = true;
|
|
162
142
|
get tabsAtTop() {
|
|
163
143
|
return this.tabPosition === 'top';
|
|
164
144
|
}
|
|
@@ -177,6 +157,60 @@ export class TabStripComponent {
|
|
|
177
157
|
get tabStripScrollable() {
|
|
178
158
|
return this._scrollableSettings.enabled;
|
|
179
159
|
}
|
|
160
|
+
/**
|
|
161
|
+
* A query list of all declared tabs.
|
|
162
|
+
*/
|
|
163
|
+
tabs = new QueryList();
|
|
164
|
+
/**
|
|
165
|
+
* @hidden
|
|
166
|
+
*/
|
|
167
|
+
tablist;
|
|
168
|
+
/**
|
|
169
|
+
* @hidden
|
|
170
|
+
*/
|
|
171
|
+
tabHeaderContainers;
|
|
172
|
+
/**
|
|
173
|
+
* @hidden
|
|
174
|
+
*/
|
|
175
|
+
prevScrollButton;
|
|
176
|
+
/**
|
|
177
|
+
* @hidden
|
|
178
|
+
*/
|
|
179
|
+
nextScrollButton;
|
|
180
|
+
/**
|
|
181
|
+
* @hidden
|
|
182
|
+
*/
|
|
183
|
+
localizationChangeSubscription;
|
|
184
|
+
/**
|
|
185
|
+
* @hidden
|
|
186
|
+
*/
|
|
187
|
+
showLicenseWatermark = false;
|
|
188
|
+
_height;
|
|
189
|
+
_scrollableSettings = normalizeScrollableSettings(false);
|
|
190
|
+
subscriptions = new Subscription();
|
|
191
|
+
subscriptionsArePresent = false;
|
|
192
|
+
_closeSVGIcon;
|
|
193
|
+
tabStripId = guid();
|
|
194
|
+
tabsChangesSub;
|
|
195
|
+
activeStateChangeSub;
|
|
196
|
+
constructor(localization, renderer, wrapper, tabstripService, scrollService, ngZone) {
|
|
197
|
+
this.localization = localization;
|
|
198
|
+
this.renderer = renderer;
|
|
199
|
+
this.wrapper = wrapper;
|
|
200
|
+
this.tabstripService = tabstripService;
|
|
201
|
+
this.scrollService = scrollService;
|
|
202
|
+
this.ngZone = ngZone;
|
|
203
|
+
const isValid = validatePackage(packageMetadata);
|
|
204
|
+
this.showLicenseWatermark = shouldShowValidationUI(isValid);
|
|
205
|
+
this.tabstripService.owner = this;
|
|
206
|
+
this.scrollService.owner = this;
|
|
207
|
+
this.subscriptions.add(this.scrollService.scrollButtonActiveStateChange.subscribe((activeButtonSettings) => {
|
|
208
|
+
if (this.hasScrollButtons) {
|
|
209
|
+
const action = activeButtonSettings.active ? 'remove' : 'add';
|
|
210
|
+
this.renderer[`${action}Class`](this[`${activeButtonSettings.buttonType}ScrollButton`].host.nativeElement, 'k-disabled');
|
|
211
|
+
}
|
|
212
|
+
}));
|
|
213
|
+
}
|
|
180
214
|
ngAfterViewInit() {
|
|
181
215
|
if (!isDocumentAvailable()) {
|
|
182
216
|
return;
|
|
@@ -386,17 +420,16 @@ export class TabStripComponent {
|
|
|
386
420
|
}));
|
|
387
421
|
});
|
|
388
422
|
}
|
|
389
|
-
}
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
}
|
|
399
|
-
], queries: [{ propertyName: "tabs", predicate: TabStripTabComponent }], viewQueries: [{ propertyName: "tablist", first: true, predicate: ["tablist"], descendants: true }, { propertyName: "prevScrollButton", first: true, predicate: ["prevScrollButton"], descendants: true }, { propertyName: "nextScrollButton", first: true, predicate: ["nextScrollButton"], descendants: true }, { propertyName: "tabHeaderContainers", predicate: ["tabHeaderContainer"], descendants: true, read: ElementRef }], exportAs: ["kendoTabStrip"], usesOnChanges: true, ngImport: i0, template: `
|
|
423
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TabStripComponent, deps: [{ token: i1.LocalizationService }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i2.TabStripService }, { token: i3.ScrollService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
424
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TabStripComponent, isStandalone: true, selector: "kendo-tabstrip", inputs: { height: "height", animate: "animate", tabAlignment: "tabAlignment", tabPosition: "tabPosition", keepTabContent: "keepTabContent", closable: "closable", scrollable: "scrollable", closeIcon: "closeIcon", closeIconClass: "closeIconClass", closeSVGIcon: "closeSVGIcon", showContentArea: "showContentArea" }, outputs: { tabSelect: "tabSelect", tabClose: "tabClose", tabScroll: "tabScroll" }, host: { properties: { "class.k-tabstrip": "this.hostClasses", "class.k-header": "this.hostClasses", "class.k-tabstrip-top": "this.tabsAtTop", "class.k-tabstrip-right": "this.tabsAtRight", "class.k-tabstrip-bottom": "this.tabsAtBottom", "class.k-tabstrip-left": "this.tabsAtLeft", "attr.dir": "this.dir", "class.k-tabstrip-scrollable": "this.tabStripScrollable" } }, providers: [
|
|
425
|
+
TabStripService,
|
|
426
|
+
ScrollService,
|
|
427
|
+
LocalizationService,
|
|
428
|
+
{
|
|
429
|
+
provide: L10N_PREFIX,
|
|
430
|
+
useValue: 'kendo.tabstrip'
|
|
431
|
+
}
|
|
432
|
+
], queries: [{ propertyName: "tabs", predicate: TabStripTabComponent }], viewQueries: [{ propertyName: "tablist", first: true, predicate: ["tablist"], descendants: true }, { propertyName: "prevScrollButton", first: true, predicate: ["prevScrollButton"], descendants: true }, { propertyName: "nextScrollButton", first: true, predicate: ["nextScrollButton"], descendants: true }, { propertyName: "tabHeaderContainers", predicate: ["tabHeaderContainer"], descendants: true, read: ElementRef }], exportAs: ["kendoTabStrip"], usesOnChanges: true, ngImport: i0, template: `
|
|
400
433
|
<ng-container kendoTabStripLocalizedMessages
|
|
401
434
|
i18n-closeTitle="kendo.tabstrip.closeTitle|The title for the **Close** button in the TabStrip tab."
|
|
402
435
|
closeTitle="Close"
|
|
@@ -503,15 +536,16 @@ TabStripComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
|
|
|
503
536
|
<kendo-resize-sensor *ngIf="isScrollable" (resize)="onResize()"></kendo-resize-sensor>
|
|
504
537
|
<div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
|
|
505
538
|
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedTabStripMessagesDirective, selector: "[kendoTabStripLocalizedMessages]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: TabStripScrollableButtonComponent, selector: "[kendoTabStripScrollableButton]", inputs: ["prev", "tabPosition", "scrollable"], outputs: ["tabScroll", "onClick"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: TabComponent, selector: "[kendoTabStripTab]", inputs: ["tab", "index", "tabStripClosable", "tabStripCloseIcon", "customTabstripCloseIcon", "closeSVGIcon"], outputs: ["tabClose"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }], animations: [
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
539
|
+
trigger('state', [
|
|
540
|
+
state('active', style({ opacity: 1 })),
|
|
541
|
+
transition('* => active', [
|
|
542
|
+
style({ opacity: 0 }),
|
|
543
|
+
animate('400ms ease-in')
|
|
544
|
+
])
|
|
511
545
|
])
|
|
512
|
-
])
|
|
513
|
-
|
|
514
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
546
|
+
] });
|
|
547
|
+
}
|
|
548
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TabStripComponent, decorators: [{
|
|
515
549
|
type: Component,
|
|
516
550
|
args: [{
|
|
517
551
|
animations: [
|
|
@@ -14,6 +14,9 @@ import * as i1 from "@progress/kendo-angular-l10n";
|
|
|
14
14
|
* @hidden
|
|
15
15
|
*/
|
|
16
16
|
export class TabStripService {
|
|
17
|
+
localization;
|
|
18
|
+
ngZone;
|
|
19
|
+
owner;
|
|
17
20
|
constructor(localization, ngZone) {
|
|
18
21
|
this.localization = localization;
|
|
19
22
|
this.ngZone = ngZone;
|
|
@@ -143,9 +146,9 @@ export class TabStripService {
|
|
|
143
146
|
}
|
|
144
147
|
return selectedIndex + 1;
|
|
145
148
|
}
|
|
149
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TabStripService, deps: [{ token: i1.LocalizationService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
150
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TabStripService });
|
|
146
151
|
}
|
|
147
|
-
|
|
148
|
-
TabStripService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TabStripService });
|
|
149
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TabStripService, decorators: [{
|
|
152
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TabStripService, decorators: [{
|
|
150
153
|
type: Injectable
|
|
151
154
|
}], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i0.NgZone }]; } });
|
|
@@ -22,11 +22,11 @@ import * as i5 from "./tabstrip/localization/custom-messages.component";
|
|
|
22
22
|
* - `TabTitleDirective`—The tab title directive used on the `<ng-template>` tag.
|
|
23
23
|
*/
|
|
24
24
|
export class TabStripModule {
|
|
25
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TabStripModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
26
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", 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] });
|
|
27
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TabStripModule, imports: [i1.TabStripComponent] });
|
|
25
28
|
}
|
|
26
|
-
|
|
27
|
-
TabStripModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", 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] });
|
|
28
|
-
TabStripModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TabStripModule, imports: [i1.TabStripComponent, i2.TabStripTabComponent, i5.TabStripCustomMessagesComponent] });
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TabStripModule, decorators: [{
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TabStripModule, decorators: [{
|
|
30
30
|
type: NgModule,
|
|
31
31
|
args: [{
|
|
32
32
|
exports: [...KENDO_TABSTRIP],
|