@progress/kendo-angular-layout 13.6.0-develop.5 → 13.6.0-develop.7

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/esm2020/index.mjs CHANGED
@@ -17,6 +17,7 @@ export { TabContentDirective } from './tabstrip/directives/tab-content.directive
17
17
  export { TabTitleDirective } from './tabstrip/directives/tab-title.directive';
18
18
  export { LocalizedTabStripMessagesDirective } from './tabstrip/localization/localized-messages.directive';
19
19
  export { TabStripCustomMessagesComponent } from './tabstrip/localization/custom-messages.component';
20
+ export { TabTemplateDirective } from './tabstrip/directives/tab.directive';
20
21
  export * from './tabstrip/events';
21
22
  // Drawer exports
22
23
  export { DrawerComponent } from './drawer/drawer.component';
@@ -9,7 +9,7 @@ export const packageMetadata = {
9
9
  name: '@progress/kendo-angular-layout',
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
12
- publishDate: 1695831957,
13
- version: '13.6.0-develop.5',
12
+ publishDate: 1695886942,
13
+ version: '13.6.0-develop.7',
14
14
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
15
15
  };
@@ -0,0 +1,22 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2023 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, TemplateRef } from '@angular/core';
6
+ import * as i0 from "@angular/core";
7
+ /**
8
+ * @hidden
9
+ */
10
+ export class TabTemplateDirective {
11
+ constructor(templateRef) {
12
+ this.templateRef = templateRef;
13
+ }
14
+ }
15
+ TabTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TabTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
16
+ TabTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: TabTemplateDirective, selector: "[kendoTabTemplate]", ngImport: i0 });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TabTemplateDirective, decorators: [{
18
+ type: Directive,
19
+ args: [{
20
+ selector: '[kendoTabTemplate]'
21
+ }]
22
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
@@ -5,6 +5,7 @@
5
5
  import { Component, Input, ContentChildren, QueryList } from '@angular/core';
6
6
  import { TabContentDirective } from '../directives/tab-content.directive';
7
7
  import { TabTitleDirective } from '../directives/tab-title.directive';
8
+ import { TabTemplateDirective } from '../directives/tab.directive';
8
9
  import * as i0 from "@angular/core";
9
10
  /**
10
11
  * Represents the tab component of the TabStrip.
@@ -17,6 +18,7 @@ export class TabStripTabComponent {
17
18
  * Defaults to `false`.
18
19
  */
19
20
  this.disabled = false;
21
+ this._tabDirective = new QueryList();
20
22
  this._tabContent = new QueryList();
21
23
  /**
22
24
  * @hidden
@@ -32,9 +34,12 @@ export class TabStripTabComponent {
32
34
  get tabTitle() {
33
35
  return this._tabTitleDirective.first;
34
36
  }
37
+ get tabTemplate() {
38
+ return this._tabDirective.first;
39
+ }
35
40
  }
36
41
  TabStripTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TabStripTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
37
- TabStripTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TabStripTabComponent, 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: "_tabContent", predicate: TabContentDirective }, { propertyName: "_tabTitleDirective", predicate: TabTitleDirective }], exportAs: ["kendoTabStripTab"], ngImport: i0, template: ``, isInline: true });
42
+ TabStripTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TabStripTabComponent, 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 });
38
43
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TabStripTabComponent, decorators: [{
39
44
  type: Component,
40
45
  args: [{
@@ -60,6 +65,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
60
65
  type: Input
61
66
  }], closeSVGIcon: [{
62
67
  type: Input
68
+ }], _tabDirective: [{
69
+ type: ContentChildren,
70
+ args: [TabTemplateDirective]
63
71
  }], _tabContent: [{
64
72
  type: ContentChildren,
65
73
  args: [TabContentDirective]
@@ -76,11 +76,16 @@ export class TabComponent {
76
76
  }
77
77
  TabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TabComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
78
78
  TabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TabComponent, 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", "class.k-state-default": "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
- <span class="k-link" *ngIf="!tab.tabTitle">{{ tab.title }}</span>
80
- <span class="k-link" *ngIf="tab.tabTitle">
81
- <ng-template [ngTemplateOutlet]="tab.tabTitle?.templateRef">
82
- </ng-template>
83
- </span>
79
+ <ng-container *ngIf="!tab.tabTemplate; else tabTemplate">
80
+ <span class="k-link" *ngIf="!tab.tabTitle">{{ tab.title }}</span>
81
+ <span class="k-link" *ngIf="tab.tabTitle">
82
+ <ng-template [ngTemplateOutlet]="tab.tabTitle?.templateRef">
83
+ </ng-template>
84
+ </span>
85
+ </ng-container>
86
+
87
+ <ng-template #tabTemplate [ngTemplateOutlet]="tab.tabTemplate?.templateRef">
88
+ </ng-template>
84
89
 
85
90
  <button
86
91
  kendoButton
@@ -96,18 +101,23 @@ TabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
96
101
  (click)="closeTab(index)"
97
102
  class="k-remove-tab k-icon-button"
98
103
  ></button>
99
- `, isInline: true, components: [{ type: i2.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
104
+ `, isInline: true, components: [{ type: i2.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
100
105
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TabComponent, decorators: [{
101
106
  type: Component,
102
107
  args: [{
103
108
  // eslint-disable-next-line @angular-eslint/component-selector
104
109
  selector: '[kendoTabStripTab]',
105
110
  template: `
106
- <span class="k-link" *ngIf="!tab.tabTitle">{{ tab.title }}</span>
107
- <span class="k-link" *ngIf="tab.tabTitle">
108
- <ng-template [ngTemplateOutlet]="tab.tabTitle?.templateRef">
109
- </ng-template>
110
- </span>
111
+ <ng-container *ngIf="!tab.tabTemplate; else tabTemplate">
112
+ <span class="k-link" *ngIf="!tab.tabTitle">{{ tab.title }}</span>
113
+ <span class="k-link" *ngIf="tab.tabTitle">
114
+ <ng-template [ngTemplateOutlet]="tab.tabTitle?.templateRef">
115
+ </ng-template>
116
+ </span>
117
+ </ng-container>
118
+
119
+ <ng-template #tabTemplate [ngTemplateOutlet]="tab.tabTemplate?.templateRef">
120
+ </ng-template>
111
121
 
112
122
  <button
113
123
  kendoButton
@@ -138,7 +138,7 @@ export class ScrollService {
138
138
  }
139
139
  scrollTabs(direction) {
140
140
  this.calculateListPosition(direction, this.owner.scrollable.buttonScrollSpeed);
141
- if (isTablistHorizontal(this.owner.tabPosition)) {
141
+ if (isTablistHorizontal(this.owner.tabPosition) && this.tablistElement) {
142
142
  this.tablistElement.scrollTo({ left: this.position, behavior: DEFAULT_SCROLL_BEHAVIOR });
143
143
  }
144
144
  else {
@@ -161,10 +161,10 @@ export class ScrollService {
161
161
  }
162
162
  restoreScrollPosition() {
163
163
  if (isTablistHorizontal(this.owner.tabPosition)) {
164
- this.tablistElement.scrollTo({ left: this.position });
164
+ this.tablistElement.scrollLeft = this.position;
165
165
  }
166
166
  else {
167
- this.tablistElement.scrollTo({ top: this.position });
167
+ this.tablistElement.scrollTop = this.position;
168
168
  }
169
169
  this.toggleScrollButtonsState();
170
170
  }
@@ -69,6 +69,12 @@ export class TabStripComponent {
69
69
  * Defines the name for an existing font icon in the Kendo UI theme for the close icon.
70
70
  */
71
71
  this.closeIcon = 'x';
72
+ /**
73
+ * Determines whether the content associated with each tab will be rendered.
74
+ *
75
+ * @default true
76
+ */
77
+ this.showContentArea = true;
72
78
  /**
73
79
  * Fires each time the user selects a tab ([see example]({% slug overview_tabstrip %}#toc-basic-usage)).
74
80
  * The event data contains the index of the selected tab and its title.
@@ -183,6 +189,10 @@ export class TabStripComponent {
183
189
  });
184
190
  });
185
191
  this.initDomEvents();
192
+ this.tabsChangesSub = this.tabs.changes.subscribe(() => {
193
+ this.toggleScrollButtons(this.scrollService.tabsOverflow);
194
+ this.scrollService.toggleScrollButtonsState();
195
+ });
186
196
  }
187
197
  ngOnChanges(changes) {
188
198
  if (!isDocumentAvailable()) {
@@ -197,6 +207,12 @@ export class TabStripComponent {
197
207
  this.subscriptions.unsubscribe();
198
208
  this.subscriptions = new Subscription();
199
209
  this.subscriptionsArePresent = false;
210
+ this.activeStateChangeSub = this.scrollService.scrollButtonActiveStateChange.subscribe((activeButtonSettings) => {
211
+ if (this.hasScrollButtons) {
212
+ const action = activeButtonSettings.active ? 'remove' : 'add';
213
+ this.renderer[`${action}Class`](this[`${activeButtonSettings.buttonType}ScrollButton`].host.nativeElement, 'k-disabled');
214
+ }
215
+ });
200
216
  }
201
217
  this.initDomEvents();
202
218
  }
@@ -208,6 +224,12 @@ export class TabStripComponent {
208
224
  if (this.subscriptions) {
209
225
  this.subscriptions.unsubscribe();
210
226
  }
227
+ if (this.tabsChangesSub) {
228
+ this.tabsChangesSub.unsubscribe();
229
+ }
230
+ if (this.activeStateChangeSub) {
231
+ this.activeStateChangeSub.unsubscribe();
232
+ }
211
233
  }
212
234
  /**
213
235
  * @hidden
@@ -389,7 +411,7 @@ export class TabStripComponent {
389
411
  }
390
412
  }
391
413
  TabStripComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.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 });
392
- TabStripComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TabStripComponent, selector: "kendo-tabstrip", inputs: { height: "height", animate: "animate", tabAlignment: "tabAlignment", tabPosition: "tabPosition", keepTabContent: "keepTabContent", closable: "closable", scrollable: "scrollable", closeIcon: "closeIcon", closeIconClass: "closeIconClass", closeSVGIcon: "closeSVGIcon" }, outputs: { tabSelect: "tabSelect", tabClose: "tabClose", tabScroll: "tabScroll" }, host: { properties: { "class.k-tabstrip": "this.hostClasses", "class.k-pos-relative": "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: [
414
+ TabStripComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TabStripComponent, 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-pos-relative": "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: [
393
415
  TabStripService,
394
416
  ScrollService,
395
417
  LocalizationService,
@@ -410,17 +432,17 @@ TabStripComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
410
432
  >
411
433
  </ng-container>
412
434
  <ng-container *ngIf="!tabsAtBottom">
413
- <ng-container *ngTemplateOutlet="heading">
414
- </ng-container>
415
- <ng-container *ngTemplateOutlet="content">
435
+ <ng-container *ngTemplateOutlet="heading"></ng-container>
436
+ <ng-container *ngIf="showContentArea">
437
+ <ng-container *ngTemplateOutlet="content"></ng-container>
416
438
  </ng-container>
417
439
  </ng-container>
418
440
 
419
441
  <ng-container *ngIf="tabsAtBottom">
420
- <ng-container *ngTemplateOutlet="content">
421
- </ng-container>
422
- <ng-container *ngTemplateOutlet="heading">
442
+ <ng-container *ngIf="showContentArea">
443
+ <ng-container *ngTemplateOutlet="content"></ng-container>
423
444
  </ng-container>
445
+ <ng-container *ngTemplateOutlet="heading"></ng-container>
424
446
  </ng-container>
425
447
  <ng-template #heading>
426
448
  <div class="k-tabstrip-items-wrapper" [ngClass]="itemsWrapperClass">
@@ -460,7 +482,7 @@ TabStripComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
460
482
  (tabClose)="tabClose.emit($event)"
461
483
  (click)="onTabClick($event, i)"
462
484
  [id]="getTabId(i)"
463
- [attr.aria-controls]="tab.selected ? getTabPanelId(i) : undefined"></li>
485
+ [attr.aria-controls]="(showContentArea && tab.selected) ? getTabPanelId(i) : undefined"></li>
464
486
  </ng-container>
465
487
  </ul>
466
488
  <span
@@ -543,17 +565,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
543
565
  >
544
566
  </ng-container>
545
567
  <ng-container *ngIf="!tabsAtBottom">
546
- <ng-container *ngTemplateOutlet="heading">
547
- </ng-container>
548
- <ng-container *ngTemplateOutlet="content">
568
+ <ng-container *ngTemplateOutlet="heading"></ng-container>
569
+ <ng-container *ngIf="showContentArea">
570
+ <ng-container *ngTemplateOutlet="content"></ng-container>
549
571
  </ng-container>
550
572
  </ng-container>
551
573
 
552
574
  <ng-container *ngIf="tabsAtBottom">
553
- <ng-container *ngTemplateOutlet="content">
554
- </ng-container>
555
- <ng-container *ngTemplateOutlet="heading">
575
+ <ng-container *ngIf="showContentArea">
576
+ <ng-container *ngTemplateOutlet="content"></ng-container>
556
577
  </ng-container>
578
+ <ng-container *ngTemplateOutlet="heading"></ng-container>
557
579
  </ng-container>
558
580
  <ng-template #heading>
559
581
  <div class="k-tabstrip-items-wrapper" [ngClass]="itemsWrapperClass">
@@ -593,7 +615,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
593
615
  (tabClose)="tabClose.emit($event)"
594
616
  (click)="onTabClick($event, i)"
595
617
  [id]="getTabId(i)"
596
- [attr.aria-controls]="tab.selected ? getTabPanelId(i) : undefined"></li>
618
+ [attr.aria-controls]="(showContentArea && tab.selected) ? getTabPanelId(i) : undefined"></li>
597
619
  </ng-container>
598
620
  </ul>
599
621
  <span
@@ -653,6 +675,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
653
675
  type: Input
654
676
  }], closeSVGIcon: [{
655
677
  type: Input
678
+ }], showContentArea: [{
679
+ type: Input
656
680
  }], tabSelect: [{
657
681
  type: Output
658
682
  }], tabClose: [{
@@ -15,6 +15,7 @@ import { ResizeSensorModule, WatermarkModule } from '@progress/kendo-angular-com
15
15
  import { TabStripScrollableButtonComponent } from './tabstrip/scrollable-button.component';
16
16
  import { IconsModule } from '@progress/kendo-angular-icons';
17
17
  import { ButtonModule } from '@progress/kendo-angular-buttons';
18
+ import { TabTemplateDirective } from './tabstrip/directives/tab.directive';
18
19
  import * as i0 from "@angular/core";
19
20
  const exportedModules = [
20
21
  TabStripComponent,
@@ -23,7 +24,8 @@ const exportedModules = [
23
24
  TabTitleDirective,
24
25
  TabComponent,
25
26
  TabStripCustomMessagesComponent,
26
- LocalizedTabStripMessagesDirective
27
+ LocalizedTabStripMessagesDirective,
28
+ TabTemplateDirective
27
29
  ];
28
30
  const declarations = [
29
31
  ...exportedModules,
@@ -48,13 +50,15 @@ TabStripModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
48
50
  TabTitleDirective,
49
51
  TabComponent,
50
52
  TabStripCustomMessagesComponent,
51
- LocalizedTabStripMessagesDirective, TabStripScrollableButtonComponent], imports: [CommonModule, ResizeSensorModule, IconsModule, ButtonModule, WatermarkModule], exports: [TabStripComponent,
53
+ LocalizedTabStripMessagesDirective,
54
+ TabTemplateDirective, TabStripScrollableButtonComponent], imports: [CommonModule, ResizeSensorModule, IconsModule, ButtonModule, WatermarkModule], exports: [TabStripComponent,
52
55
  TabStripTabComponent,
53
56
  TabContentDirective,
54
57
  TabTitleDirective,
55
58
  TabComponent,
56
59
  TabStripCustomMessagesComponent,
57
- LocalizedTabStripMessagesDirective] });
60
+ LocalizedTabStripMessagesDirective,
61
+ TabTemplateDirective] });
58
62
  TabStripModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TabStripModule, imports: [[CommonModule, ResizeSensorModule, IconsModule, ButtonModule, WatermarkModule]] });
59
63
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TabStripModule, decorators: [{
60
64
  type: NgModule,
@@ -31,8 +31,8 @@ const packageMetadata = {
31
31
  name: '@progress/kendo-angular-layout',
32
32
  productName: 'Kendo UI for Angular',
33
33
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
34
- publishDate: 1695831957,
35
- version: '13.6.0-develop.5',
34
+ publishDate: 1695886942,
35
+ version: '13.6.0-develop.7',
36
36
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
37
37
  };
38
38
 
@@ -2595,6 +2595,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2595
2595
  }]
2596
2596
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
2597
2597
 
2598
+ /**
2599
+ * @hidden
2600
+ */
2601
+ class TabTemplateDirective {
2602
+ constructor(templateRef) {
2603
+ this.templateRef = templateRef;
2604
+ }
2605
+ }
2606
+ TabTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TabTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
2607
+ TabTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: TabTemplateDirective, selector: "[kendoTabTemplate]", ngImport: i0 });
2608
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TabTemplateDirective, decorators: [{
2609
+ type: Directive,
2610
+ args: [{
2611
+ selector: '[kendoTabTemplate]'
2612
+ }]
2613
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
2614
+
2598
2615
  /**
2599
2616
  * Represents the tab component of the TabStrip.
2600
2617
  */
@@ -2606,6 +2623,7 @@ class TabStripTabComponent {
2606
2623
  * Defaults to `false`.
2607
2624
  */
2608
2625
  this.disabled = false;
2626
+ this._tabDirective = new QueryList();
2609
2627
  this._tabContent = new QueryList();
2610
2628
  /**
2611
2629
  * @hidden
@@ -2621,9 +2639,12 @@ class TabStripTabComponent {
2621
2639
  get tabTitle() {
2622
2640
  return this._tabTitleDirective.first;
2623
2641
  }
2642
+ get tabTemplate() {
2643
+ return this._tabDirective.first;
2644
+ }
2624
2645
  }
2625
2646
  TabStripTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TabStripTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2626
- TabStripTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TabStripTabComponent, 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: "_tabContent", predicate: TabContentDirective }, { propertyName: "_tabTitleDirective", predicate: TabTitleDirective }], exportAs: ["kendoTabStripTab"], ngImport: i0, template: ``, isInline: true });
2647
+ TabStripTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TabStripTabComponent, 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 });
2627
2648
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TabStripTabComponent, decorators: [{
2628
2649
  type: Component,
2629
2650
  args: [{
@@ -2649,6 +2670,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2649
2670
  type: Input
2650
2671
  }], closeSVGIcon: [{
2651
2672
  type: Input
2673
+ }], _tabDirective: [{
2674
+ type: ContentChildren,
2675
+ args: [TabTemplateDirective]
2652
2676
  }], _tabContent: [{
2653
2677
  type: ContentChildren,
2654
2678
  args: [TabContentDirective]
@@ -3102,7 +3126,7 @@ class ScrollService {
3102
3126
  }
3103
3127
  scrollTabs(direction) {
3104
3128
  this.calculateListPosition(direction, this.owner.scrollable.buttonScrollSpeed);
3105
- if (isTablistHorizontal(this.owner.tabPosition)) {
3129
+ if (isTablistHorizontal(this.owner.tabPosition) && this.tablistElement) {
3106
3130
  this.tablistElement.scrollTo({ left: this.position, behavior: DEFAULT_SCROLL_BEHAVIOR });
3107
3131
  }
3108
3132
  else {
@@ -3125,10 +3149,10 @@ class ScrollService {
3125
3149
  }
3126
3150
  restoreScrollPosition() {
3127
3151
  if (isTablistHorizontal(this.owner.tabPosition)) {
3128
- this.tablistElement.scrollTo({ left: this.position });
3152
+ this.tablistElement.scrollLeft = this.position;
3129
3153
  }
3130
3154
  else {
3131
- this.tablistElement.scrollTo({ top: this.position });
3155
+ this.tablistElement.scrollTop = this.position;
3132
3156
  }
3133
3157
  this.toggleScrollButtonsState();
3134
3158
  }
@@ -3402,11 +3426,16 @@ class TabComponent {
3402
3426
  }
3403
3427
  TabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TabComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
3404
3428
  TabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TabComponent, 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", "class.k-state-default": "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: `
3405
- <span class="k-link" *ngIf="!tab.tabTitle">{{ tab.title }}</span>
3406
- <span class="k-link" *ngIf="tab.tabTitle">
3407
- <ng-template [ngTemplateOutlet]="tab.tabTitle?.templateRef">
3408
- </ng-template>
3409
- </span>
3429
+ <ng-container *ngIf="!tab.tabTemplate; else tabTemplate">
3430
+ <span class="k-link" *ngIf="!tab.tabTitle">{{ tab.title }}</span>
3431
+ <span class="k-link" *ngIf="tab.tabTitle">
3432
+ <ng-template [ngTemplateOutlet]="tab.tabTitle?.templateRef">
3433
+ </ng-template>
3434
+ </span>
3435
+ </ng-container>
3436
+
3437
+ <ng-template #tabTemplate [ngTemplateOutlet]="tab.tabTemplate?.templateRef">
3438
+ </ng-template>
3410
3439
 
3411
3440
  <button
3412
3441
  kendoButton
@@ -3422,18 +3451,23 @@ TabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
3422
3451
  (click)="closeTab(index)"
3423
3452
  class="k-remove-tab k-icon-button"
3424
3453
  ></button>
3425
- `, isInline: true, components: [{ type: i2$1.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
3454
+ `, isInline: true, components: [{ type: i2$1.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
3426
3455
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TabComponent, decorators: [{
3427
3456
  type: Component,
3428
3457
  args: [{
3429
3458
  // eslint-disable-next-line @angular-eslint/component-selector
3430
3459
  selector: '[kendoTabStripTab]',
3431
3460
  template: `
3432
- <span class="k-link" *ngIf="!tab.tabTitle">{{ tab.title }}</span>
3433
- <span class="k-link" *ngIf="tab.tabTitle">
3434
- <ng-template [ngTemplateOutlet]="tab.tabTitle?.templateRef">
3435
- </ng-template>
3436
- </span>
3461
+ <ng-container *ngIf="!tab.tabTemplate; else tabTemplate">
3462
+ <span class="k-link" *ngIf="!tab.tabTitle">{{ tab.title }}</span>
3463
+ <span class="k-link" *ngIf="tab.tabTitle">
3464
+ <ng-template [ngTemplateOutlet]="tab.tabTitle?.templateRef">
3465
+ </ng-template>
3466
+ </span>
3467
+ </ng-container>
3468
+
3469
+ <ng-template #tabTemplate [ngTemplateOutlet]="tab.tabTemplate?.templateRef">
3470
+ </ng-template>
3437
3471
 
3438
3472
  <button
3439
3473
  kendoButton
@@ -3582,6 +3616,12 @@ class TabStripComponent {
3582
3616
  * Defines the name for an existing font icon in the Kendo UI theme for the close icon.
3583
3617
  */
3584
3618
  this.closeIcon = 'x';
3619
+ /**
3620
+ * Determines whether the content associated with each tab will be rendered.
3621
+ *
3622
+ * @default true
3623
+ */
3624
+ this.showContentArea = true;
3585
3625
  /**
3586
3626
  * Fires each time the user selects a tab ([see example]({% slug overview_tabstrip %}#toc-basic-usage)).
3587
3627
  * The event data contains the index of the selected tab and its title.
@@ -3696,6 +3736,10 @@ class TabStripComponent {
3696
3736
  });
3697
3737
  });
3698
3738
  this.initDomEvents();
3739
+ this.tabsChangesSub = this.tabs.changes.subscribe(() => {
3740
+ this.toggleScrollButtons(this.scrollService.tabsOverflow);
3741
+ this.scrollService.toggleScrollButtonsState();
3742
+ });
3699
3743
  }
3700
3744
  ngOnChanges(changes) {
3701
3745
  if (!isDocumentAvailable()) {
@@ -3710,6 +3754,12 @@ class TabStripComponent {
3710
3754
  this.subscriptions.unsubscribe();
3711
3755
  this.subscriptions = new Subscription();
3712
3756
  this.subscriptionsArePresent = false;
3757
+ this.activeStateChangeSub = this.scrollService.scrollButtonActiveStateChange.subscribe((activeButtonSettings) => {
3758
+ if (this.hasScrollButtons) {
3759
+ const action = activeButtonSettings.active ? 'remove' : 'add';
3760
+ this.renderer[`${action}Class`](this[`${activeButtonSettings.buttonType}ScrollButton`].host.nativeElement, 'k-disabled');
3761
+ }
3762
+ });
3713
3763
  }
3714
3764
  this.initDomEvents();
3715
3765
  }
@@ -3721,6 +3771,12 @@ class TabStripComponent {
3721
3771
  if (this.subscriptions) {
3722
3772
  this.subscriptions.unsubscribe();
3723
3773
  }
3774
+ if (this.tabsChangesSub) {
3775
+ this.tabsChangesSub.unsubscribe();
3776
+ }
3777
+ if (this.activeStateChangeSub) {
3778
+ this.activeStateChangeSub.unsubscribe();
3779
+ }
3724
3780
  }
3725
3781
  /**
3726
3782
  * @hidden
@@ -3902,7 +3958,7 @@ class TabStripComponent {
3902
3958
  }
3903
3959
  }
3904
3960
  TabStripComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TabStripComponent, deps: [{ token: i1.LocalizationService }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: TabStripService }, { token: ScrollService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3905
- TabStripComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TabStripComponent, selector: "kendo-tabstrip", inputs: { height: "height", animate: "animate", tabAlignment: "tabAlignment", tabPosition: "tabPosition", keepTabContent: "keepTabContent", closable: "closable", scrollable: "scrollable", closeIcon: "closeIcon", closeIconClass: "closeIconClass", closeSVGIcon: "closeSVGIcon" }, outputs: { tabSelect: "tabSelect", tabClose: "tabClose", tabScroll: "tabScroll" }, host: { properties: { "class.k-tabstrip": "this.hostClasses", "class.k-pos-relative": "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: [
3961
+ TabStripComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TabStripComponent, 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-pos-relative": "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: [
3906
3962
  TabStripService,
3907
3963
  ScrollService,
3908
3964
  LocalizationService,
@@ -3923,17 +3979,17 @@ TabStripComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
3923
3979
  >
3924
3980
  </ng-container>
3925
3981
  <ng-container *ngIf="!tabsAtBottom">
3926
- <ng-container *ngTemplateOutlet="heading">
3927
- </ng-container>
3928
- <ng-container *ngTemplateOutlet="content">
3982
+ <ng-container *ngTemplateOutlet="heading"></ng-container>
3983
+ <ng-container *ngIf="showContentArea">
3984
+ <ng-container *ngTemplateOutlet="content"></ng-container>
3929
3985
  </ng-container>
3930
3986
  </ng-container>
3931
3987
 
3932
3988
  <ng-container *ngIf="tabsAtBottom">
3933
- <ng-container *ngTemplateOutlet="content">
3934
- </ng-container>
3935
- <ng-container *ngTemplateOutlet="heading">
3989
+ <ng-container *ngIf="showContentArea">
3990
+ <ng-container *ngTemplateOutlet="content"></ng-container>
3936
3991
  </ng-container>
3992
+ <ng-container *ngTemplateOutlet="heading"></ng-container>
3937
3993
  </ng-container>
3938
3994
  <ng-template #heading>
3939
3995
  <div class="k-tabstrip-items-wrapper" [ngClass]="itemsWrapperClass">
@@ -3973,7 +4029,7 @@ TabStripComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
3973
4029
  (tabClose)="tabClose.emit($event)"
3974
4030
  (click)="onTabClick($event, i)"
3975
4031
  [id]="getTabId(i)"
3976
- [attr.aria-controls]="tab.selected ? getTabPanelId(i) : undefined"></li>
4032
+ [attr.aria-controls]="(showContentArea && tab.selected) ? getTabPanelId(i) : undefined"></li>
3977
4033
  </ng-container>
3978
4034
  </ul>
3979
4035
  <span
@@ -4056,17 +4112,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
4056
4112
  >
4057
4113
  </ng-container>
4058
4114
  <ng-container *ngIf="!tabsAtBottom">
4059
- <ng-container *ngTemplateOutlet="heading">
4060
- </ng-container>
4061
- <ng-container *ngTemplateOutlet="content">
4115
+ <ng-container *ngTemplateOutlet="heading"></ng-container>
4116
+ <ng-container *ngIf="showContentArea">
4117
+ <ng-container *ngTemplateOutlet="content"></ng-container>
4062
4118
  </ng-container>
4063
4119
  </ng-container>
4064
4120
 
4065
4121
  <ng-container *ngIf="tabsAtBottom">
4066
- <ng-container *ngTemplateOutlet="content">
4067
- </ng-container>
4068
- <ng-container *ngTemplateOutlet="heading">
4122
+ <ng-container *ngIf="showContentArea">
4123
+ <ng-container *ngTemplateOutlet="content"></ng-container>
4069
4124
  </ng-container>
4125
+ <ng-container *ngTemplateOutlet="heading"></ng-container>
4070
4126
  </ng-container>
4071
4127
  <ng-template #heading>
4072
4128
  <div class="k-tabstrip-items-wrapper" [ngClass]="itemsWrapperClass">
@@ -4106,7 +4162,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
4106
4162
  (tabClose)="tabClose.emit($event)"
4107
4163
  (click)="onTabClick($event, i)"
4108
4164
  [id]="getTabId(i)"
4109
- [attr.aria-controls]="tab.selected ? getTabPanelId(i) : undefined"></li>
4165
+ [attr.aria-controls]="(showContentArea && tab.selected) ? getTabPanelId(i) : undefined"></li>
4110
4166
  </ng-container>
4111
4167
  </ul>
4112
4168
  <span
@@ -4166,6 +4222,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
4166
4222
  type: Input
4167
4223
  }], closeSVGIcon: [{
4168
4224
  type: Input
4225
+ }], showContentArea: [{
4226
+ type: Input
4169
4227
  }], tabSelect: [{
4170
4228
  type: Output
4171
4229
  }], tabClose: [{
@@ -9795,7 +9853,8 @@ const exportedModules$3 = [
9795
9853
  TabTitleDirective,
9796
9854
  TabComponent,
9797
9855
  TabStripCustomMessagesComponent,
9798
- LocalizedTabStripMessagesDirective
9856
+ LocalizedTabStripMessagesDirective,
9857
+ TabTemplateDirective
9799
9858
  ];
9800
9859
  const declarations$3 = [
9801
9860
  ...exportedModules$3,
@@ -9820,13 +9879,15 @@ TabStripModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
9820
9879
  TabTitleDirective,
9821
9880
  TabComponent,
9822
9881
  TabStripCustomMessagesComponent,
9823
- LocalizedTabStripMessagesDirective, TabStripScrollableButtonComponent], imports: [CommonModule, ResizeSensorModule, IconsModule, ButtonModule, WatermarkModule], exports: [TabStripComponent,
9882
+ LocalizedTabStripMessagesDirective,
9883
+ TabTemplateDirective, TabStripScrollableButtonComponent], imports: [CommonModule, ResizeSensorModule, IconsModule, ButtonModule, WatermarkModule], exports: [TabStripComponent,
9824
9884
  TabStripTabComponent,
9825
9885
  TabContentDirective,
9826
9886
  TabTitleDirective,
9827
9887
  TabComponent,
9828
9888
  TabStripCustomMessagesComponent,
9829
- LocalizedTabStripMessagesDirective] });
9889
+ LocalizedTabStripMessagesDirective,
9890
+ TabTemplateDirective] });
9830
9891
  TabStripModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TabStripModule, imports: [[CommonModule, ResizeSensorModule, IconsModule, ButtonModule, WatermarkModule]] });
9831
9892
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TabStripModule, decorators: [{
9832
9893
  type: NgModule,
@@ -10411,5 +10472,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
10411
10472
  * Generated bundle index. Do not edit.
10412
10473
  */
10413
10474
 
10414
- export { AvatarComponent, AvatarCustomMessagesComponent, AvatarModule, CardAction, CardActionsComponent, CardBodyComponent, CardComponent, CardFooterComponent, CardHeaderComponent, CardMediaDirective, CardModule, CardSeparatorDirective, CardSubtitleDirective, CardTitleDirective, DrawerComponent, DrawerContainerComponent, DrawerContentComponent, DrawerFooterTemplateDirective, DrawerHeaderTemplateDirective, DrawerItemTemplateDirective, DrawerModule, DrawerSelectEvent, DrawerTemplateDirective, ExpansionPanelActionEvent, ExpansionPanelComponent, ExpansionPanelModule, ExpansionPanelTitleDirective, GridLayoutComponent, GridLayoutItemComponent, GridLayoutModule, LayoutModule, LocalizedAvatarMessagesDirective, LocalizedStepperMessagesDirective, LocalizedTabStripMessagesDirective, PanelBarCollapseEvent, PanelBarComponent, PanelBarContentDirective, PanelBarExpandEvent, PanelBarExpandMode, PanelBarItemComponent, PanelBarItemTemplateDirective, PanelBarItemTitleDirective, PanelBarModule, PanelBarSelectEvent, PanelBarStateChangeEvent, SelectEvent, SplitterComponent, SplitterModule, SplitterPaneComponent, StackLayoutComponent, StackLayoutModule, StepperActivateEvent, StepperComponent, StepperCustomMessagesComponent, StepperIndicatorTemplateDirective, StepperLabelTemplateDirective, StepperModule, StepperStepTemplateDirective, TabCloseEvent, TabComponent, TabContentDirective, TabStripComponent, TabStripCustomMessagesComponent, TabStripModule, TabStripTabComponent, TabTitleDirective, TileLayoutComponent, TileLayoutItemBodyComponent, TileLayoutItemComponent, TileLayoutItemHeaderComponent, TileLayoutModule, TileLayoutReorderEvent, TileLayoutResizeEvent, TileLayoutResizeHandleDirective };
10475
+ export { AvatarComponent, AvatarCustomMessagesComponent, AvatarModule, CardAction, CardActionsComponent, CardBodyComponent, CardComponent, CardFooterComponent, CardHeaderComponent, CardMediaDirective, CardModule, CardSeparatorDirective, CardSubtitleDirective, CardTitleDirective, DrawerComponent, DrawerContainerComponent, DrawerContentComponent, DrawerFooterTemplateDirective, DrawerHeaderTemplateDirective, DrawerItemTemplateDirective, DrawerModule, DrawerSelectEvent, DrawerTemplateDirective, ExpansionPanelActionEvent, ExpansionPanelComponent, ExpansionPanelModule, ExpansionPanelTitleDirective, GridLayoutComponent, GridLayoutItemComponent, GridLayoutModule, LayoutModule, LocalizedAvatarMessagesDirective, LocalizedStepperMessagesDirective, LocalizedTabStripMessagesDirective, PanelBarCollapseEvent, PanelBarComponent, PanelBarContentDirective, PanelBarExpandEvent, PanelBarExpandMode, PanelBarItemComponent, PanelBarItemTemplateDirective, PanelBarItemTitleDirective, PanelBarModule, PanelBarSelectEvent, PanelBarStateChangeEvent, SelectEvent, SplitterComponent, SplitterModule, SplitterPaneComponent, StackLayoutComponent, StackLayoutModule, StepperActivateEvent, StepperComponent, StepperCustomMessagesComponent, StepperIndicatorTemplateDirective, StepperLabelTemplateDirective, StepperModule, StepperStepTemplateDirective, TabCloseEvent, TabComponent, TabContentDirective, TabStripComponent, TabStripCustomMessagesComponent, TabStripModule, TabStripTabComponent, TabTemplateDirective, TabTitleDirective, TileLayoutComponent, TileLayoutItemBodyComponent, TileLayoutItemComponent, TileLayoutItemHeaderComponent, TileLayoutModule, TileLayoutReorderEvent, TileLayoutResizeEvent, TileLayoutResizeHandleDirective };
10415
10476
 
@@ -31,8 +31,8 @@ const packageMetadata = {
31
31
  name: '@progress/kendo-angular-layout',
32
32
  productName: 'Kendo UI for Angular',
33
33
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
34
- publishDate: 1695831957,
35
- version: '13.6.0-develop.5',
34
+ publishDate: 1695886942,
35
+ version: '13.6.0-develop.7',
36
36
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
37
37
  };
38
38
 
@@ -2585,6 +2585,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2585
2585
  }]
2586
2586
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
2587
2587
 
2588
+ /**
2589
+ * @hidden
2590
+ */
2591
+ class TabTemplateDirective {
2592
+ constructor(templateRef) {
2593
+ this.templateRef = templateRef;
2594
+ }
2595
+ }
2596
+ TabTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TabTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
2597
+ TabTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: TabTemplateDirective, selector: "[kendoTabTemplate]", ngImport: i0 });
2598
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TabTemplateDirective, decorators: [{
2599
+ type: Directive,
2600
+ args: [{
2601
+ selector: '[kendoTabTemplate]'
2602
+ }]
2603
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
2604
+
2588
2605
  /**
2589
2606
  * Represents the tab component of the TabStrip.
2590
2607
  */
@@ -2596,6 +2613,7 @@ class TabStripTabComponent {
2596
2613
  * Defaults to `false`.
2597
2614
  */
2598
2615
  this.disabled = false;
2616
+ this._tabDirective = new QueryList();
2599
2617
  this._tabContent = new QueryList();
2600
2618
  /**
2601
2619
  * @hidden
@@ -2611,9 +2629,12 @@ class TabStripTabComponent {
2611
2629
  get tabTitle() {
2612
2630
  return this._tabTitleDirective.first;
2613
2631
  }
2632
+ get tabTemplate() {
2633
+ return this._tabDirective.first;
2634
+ }
2614
2635
  }
2615
2636
  TabStripTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TabStripTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2616
- TabStripTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TabStripTabComponent, 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: "_tabContent", predicate: TabContentDirective }, { propertyName: "_tabTitleDirective", predicate: TabTitleDirective }], exportAs: ["kendoTabStripTab"], ngImport: i0, template: ``, isInline: true });
2637
+ TabStripTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TabStripTabComponent, 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 });
2617
2638
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TabStripTabComponent, decorators: [{
2618
2639
  type: Component,
2619
2640
  args: [{
@@ -2639,6 +2660,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2639
2660
  type: Input
2640
2661
  }], closeSVGIcon: [{
2641
2662
  type: Input
2663
+ }], _tabDirective: [{
2664
+ type: ContentChildren,
2665
+ args: [TabTemplateDirective]
2642
2666
  }], _tabContent: [{
2643
2667
  type: ContentChildren,
2644
2668
  args: [TabContentDirective]
@@ -3092,7 +3116,7 @@ class ScrollService {
3092
3116
  }
3093
3117
  scrollTabs(direction) {
3094
3118
  this.calculateListPosition(direction, this.owner.scrollable.buttonScrollSpeed);
3095
- if (isTablistHorizontal(this.owner.tabPosition)) {
3119
+ if (isTablistHorizontal(this.owner.tabPosition) && this.tablistElement) {
3096
3120
  this.tablistElement.scrollTo({ left: this.position, behavior: DEFAULT_SCROLL_BEHAVIOR });
3097
3121
  }
3098
3122
  else {
@@ -3115,10 +3139,10 @@ class ScrollService {
3115
3139
  }
3116
3140
  restoreScrollPosition() {
3117
3141
  if (isTablistHorizontal(this.owner.tabPosition)) {
3118
- this.tablistElement.scrollTo({ left: this.position });
3142
+ this.tablistElement.scrollLeft = this.position;
3119
3143
  }
3120
3144
  else {
3121
- this.tablistElement.scrollTo({ top: this.position });
3145
+ this.tablistElement.scrollTop = this.position;
3122
3146
  }
3123
3147
  this.toggleScrollButtonsState();
3124
3148
  }
@@ -3392,11 +3416,16 @@ class TabComponent {
3392
3416
  }
3393
3417
  TabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TabComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
3394
3418
  TabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TabComponent, 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", "class.k-state-default": "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: `
3395
- <span class="k-link" *ngIf="!tab.tabTitle">{{ tab.title }}</span>
3396
- <span class="k-link" *ngIf="tab.tabTitle">
3397
- <ng-template [ngTemplateOutlet]="tab.tabTitle?.templateRef">
3398
- </ng-template>
3399
- </span>
3419
+ <ng-container *ngIf="!tab.tabTemplate; else tabTemplate">
3420
+ <span class="k-link" *ngIf="!tab.tabTitle">{{ tab.title }}</span>
3421
+ <span class="k-link" *ngIf="tab.tabTitle">
3422
+ <ng-template [ngTemplateOutlet]="tab.tabTitle?.templateRef">
3423
+ </ng-template>
3424
+ </span>
3425
+ </ng-container>
3426
+
3427
+ <ng-template #tabTemplate [ngTemplateOutlet]="tab.tabTemplate?.templateRef">
3428
+ </ng-template>
3400
3429
 
3401
3430
  <button
3402
3431
  kendoButton
@@ -3412,18 +3441,23 @@ TabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
3412
3441
  (click)="closeTab(index)"
3413
3442
  class="k-remove-tab k-icon-button"
3414
3443
  ></button>
3415
- `, isInline: true, components: [{ type: i2$1.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
3444
+ `, isInline: true, components: [{ type: i2$1.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
3416
3445
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TabComponent, decorators: [{
3417
3446
  type: Component,
3418
3447
  args: [{
3419
3448
  // eslint-disable-next-line @angular-eslint/component-selector
3420
3449
  selector: '[kendoTabStripTab]',
3421
3450
  template: `
3422
- <span class="k-link" *ngIf="!tab.tabTitle">{{ tab.title }}</span>
3423
- <span class="k-link" *ngIf="tab.tabTitle">
3424
- <ng-template [ngTemplateOutlet]="tab.tabTitle?.templateRef">
3425
- </ng-template>
3426
- </span>
3451
+ <ng-container *ngIf="!tab.tabTemplate; else tabTemplate">
3452
+ <span class="k-link" *ngIf="!tab.tabTitle">{{ tab.title }}</span>
3453
+ <span class="k-link" *ngIf="tab.tabTitle">
3454
+ <ng-template [ngTemplateOutlet]="tab.tabTitle?.templateRef">
3455
+ </ng-template>
3456
+ </span>
3457
+ </ng-container>
3458
+
3459
+ <ng-template #tabTemplate [ngTemplateOutlet]="tab.tabTemplate?.templateRef">
3460
+ </ng-template>
3427
3461
 
3428
3462
  <button
3429
3463
  kendoButton
@@ -3572,6 +3606,12 @@ class TabStripComponent {
3572
3606
  * Defines the name for an existing font icon in the Kendo UI theme for the close icon.
3573
3607
  */
3574
3608
  this.closeIcon = 'x';
3609
+ /**
3610
+ * Determines whether the content associated with each tab will be rendered.
3611
+ *
3612
+ * @default true
3613
+ */
3614
+ this.showContentArea = true;
3575
3615
  /**
3576
3616
  * Fires each time the user selects a tab ([see example]({% slug overview_tabstrip %}#toc-basic-usage)).
3577
3617
  * The event data contains the index of the selected tab and its title.
@@ -3686,6 +3726,10 @@ class TabStripComponent {
3686
3726
  });
3687
3727
  });
3688
3728
  this.initDomEvents();
3729
+ this.tabsChangesSub = this.tabs.changes.subscribe(() => {
3730
+ this.toggleScrollButtons(this.scrollService.tabsOverflow);
3731
+ this.scrollService.toggleScrollButtonsState();
3732
+ });
3689
3733
  }
3690
3734
  ngOnChanges(changes) {
3691
3735
  if (!isDocumentAvailable()) {
@@ -3700,6 +3744,12 @@ class TabStripComponent {
3700
3744
  this.subscriptions.unsubscribe();
3701
3745
  this.subscriptions = new Subscription();
3702
3746
  this.subscriptionsArePresent = false;
3747
+ this.activeStateChangeSub = this.scrollService.scrollButtonActiveStateChange.subscribe((activeButtonSettings) => {
3748
+ if (this.hasScrollButtons) {
3749
+ const action = activeButtonSettings.active ? 'remove' : 'add';
3750
+ this.renderer[`${action}Class`](this[`${activeButtonSettings.buttonType}ScrollButton`].host.nativeElement, 'k-disabled');
3751
+ }
3752
+ });
3703
3753
  }
3704
3754
  this.initDomEvents();
3705
3755
  }
@@ -3711,6 +3761,12 @@ class TabStripComponent {
3711
3761
  if (this.subscriptions) {
3712
3762
  this.subscriptions.unsubscribe();
3713
3763
  }
3764
+ if (this.tabsChangesSub) {
3765
+ this.tabsChangesSub.unsubscribe();
3766
+ }
3767
+ if (this.activeStateChangeSub) {
3768
+ this.activeStateChangeSub.unsubscribe();
3769
+ }
3714
3770
  }
3715
3771
  /**
3716
3772
  * @hidden
@@ -3892,7 +3948,7 @@ class TabStripComponent {
3892
3948
  }
3893
3949
  }
3894
3950
  TabStripComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TabStripComponent, deps: [{ token: i1.LocalizationService }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: TabStripService }, { token: ScrollService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3895
- TabStripComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TabStripComponent, selector: "kendo-tabstrip", inputs: { height: "height", animate: "animate", tabAlignment: "tabAlignment", tabPosition: "tabPosition", keepTabContent: "keepTabContent", closable: "closable", scrollable: "scrollable", closeIcon: "closeIcon", closeIconClass: "closeIconClass", closeSVGIcon: "closeSVGIcon" }, outputs: { tabSelect: "tabSelect", tabClose: "tabClose", tabScroll: "tabScroll" }, host: { properties: { "class.k-tabstrip": "this.hostClasses", "class.k-pos-relative": "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: [
3951
+ TabStripComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TabStripComponent, 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-pos-relative": "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: [
3896
3952
  TabStripService,
3897
3953
  ScrollService,
3898
3954
  LocalizationService,
@@ -3913,17 +3969,17 @@ TabStripComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
3913
3969
  >
3914
3970
  </ng-container>
3915
3971
  <ng-container *ngIf="!tabsAtBottom">
3916
- <ng-container *ngTemplateOutlet="heading">
3917
- </ng-container>
3918
- <ng-container *ngTemplateOutlet="content">
3972
+ <ng-container *ngTemplateOutlet="heading"></ng-container>
3973
+ <ng-container *ngIf="showContentArea">
3974
+ <ng-container *ngTemplateOutlet="content"></ng-container>
3919
3975
  </ng-container>
3920
3976
  </ng-container>
3921
3977
 
3922
3978
  <ng-container *ngIf="tabsAtBottom">
3923
- <ng-container *ngTemplateOutlet="content">
3924
- </ng-container>
3925
- <ng-container *ngTemplateOutlet="heading">
3979
+ <ng-container *ngIf="showContentArea">
3980
+ <ng-container *ngTemplateOutlet="content"></ng-container>
3926
3981
  </ng-container>
3982
+ <ng-container *ngTemplateOutlet="heading"></ng-container>
3927
3983
  </ng-container>
3928
3984
  <ng-template #heading>
3929
3985
  <div class="k-tabstrip-items-wrapper" [ngClass]="itemsWrapperClass">
@@ -3963,7 +4019,7 @@ TabStripComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
3963
4019
  (tabClose)="tabClose.emit($event)"
3964
4020
  (click)="onTabClick($event, i)"
3965
4021
  [id]="getTabId(i)"
3966
- [attr.aria-controls]="tab.selected ? getTabPanelId(i) : undefined"></li>
4022
+ [attr.aria-controls]="(showContentArea && tab.selected) ? getTabPanelId(i) : undefined"></li>
3967
4023
  </ng-container>
3968
4024
  </ul>
3969
4025
  <span
@@ -4046,17 +4102,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
4046
4102
  >
4047
4103
  </ng-container>
4048
4104
  <ng-container *ngIf="!tabsAtBottom">
4049
- <ng-container *ngTemplateOutlet="heading">
4050
- </ng-container>
4051
- <ng-container *ngTemplateOutlet="content">
4105
+ <ng-container *ngTemplateOutlet="heading"></ng-container>
4106
+ <ng-container *ngIf="showContentArea">
4107
+ <ng-container *ngTemplateOutlet="content"></ng-container>
4052
4108
  </ng-container>
4053
4109
  </ng-container>
4054
4110
 
4055
4111
  <ng-container *ngIf="tabsAtBottom">
4056
- <ng-container *ngTemplateOutlet="content">
4057
- </ng-container>
4058
- <ng-container *ngTemplateOutlet="heading">
4112
+ <ng-container *ngIf="showContentArea">
4113
+ <ng-container *ngTemplateOutlet="content"></ng-container>
4059
4114
  </ng-container>
4115
+ <ng-container *ngTemplateOutlet="heading"></ng-container>
4060
4116
  </ng-container>
4061
4117
  <ng-template #heading>
4062
4118
  <div class="k-tabstrip-items-wrapper" [ngClass]="itemsWrapperClass">
@@ -4096,7 +4152,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
4096
4152
  (tabClose)="tabClose.emit($event)"
4097
4153
  (click)="onTabClick($event, i)"
4098
4154
  [id]="getTabId(i)"
4099
- [attr.aria-controls]="tab.selected ? getTabPanelId(i) : undefined"></li>
4155
+ [attr.aria-controls]="(showContentArea && tab.selected) ? getTabPanelId(i) : undefined"></li>
4100
4156
  </ng-container>
4101
4157
  </ul>
4102
4158
  <span
@@ -4156,6 +4212,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
4156
4212
  type: Input
4157
4213
  }], closeSVGIcon: [{
4158
4214
  type: Input
4215
+ }], showContentArea: [{
4216
+ type: Input
4159
4217
  }], tabSelect: [{
4160
4218
  type: Output
4161
4219
  }], tabClose: [{
@@ -9766,7 +9824,8 @@ const exportedModules$3 = [
9766
9824
  TabTitleDirective,
9767
9825
  TabComponent,
9768
9826
  TabStripCustomMessagesComponent,
9769
- LocalizedTabStripMessagesDirective
9827
+ LocalizedTabStripMessagesDirective,
9828
+ TabTemplateDirective
9770
9829
  ];
9771
9830
  const declarations$3 = [
9772
9831
  ...exportedModules$3,
@@ -9791,13 +9850,15 @@ TabStripModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
9791
9850
  TabTitleDirective,
9792
9851
  TabComponent,
9793
9852
  TabStripCustomMessagesComponent,
9794
- LocalizedTabStripMessagesDirective, TabStripScrollableButtonComponent], imports: [CommonModule, ResizeSensorModule, IconsModule, ButtonModule, WatermarkModule], exports: [TabStripComponent,
9853
+ LocalizedTabStripMessagesDirective,
9854
+ TabTemplateDirective, TabStripScrollableButtonComponent], imports: [CommonModule, ResizeSensorModule, IconsModule, ButtonModule, WatermarkModule], exports: [TabStripComponent,
9795
9855
  TabStripTabComponent,
9796
9856
  TabContentDirective,
9797
9857
  TabTitleDirective,
9798
9858
  TabComponent,
9799
9859
  TabStripCustomMessagesComponent,
9800
- LocalizedTabStripMessagesDirective] });
9860
+ LocalizedTabStripMessagesDirective,
9861
+ TabTemplateDirective] });
9801
9862
  TabStripModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TabStripModule, imports: [[CommonModule, ResizeSensorModule, IconsModule, ButtonModule, WatermarkModule]] });
9802
9863
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TabStripModule, decorators: [{
9803
9864
  type: NgModule,
@@ -10382,5 +10443,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
10382
10443
  * Generated bundle index. Do not edit.
10383
10444
  */
10384
10445
 
10385
- export { AvatarComponent, AvatarCustomMessagesComponent, AvatarModule, CardAction, CardActionsComponent, CardBodyComponent, CardComponent, CardFooterComponent, CardHeaderComponent, CardMediaDirective, CardModule, CardSeparatorDirective, CardSubtitleDirective, CardTitleDirective, DrawerComponent, DrawerContainerComponent, DrawerContentComponent, DrawerFooterTemplateDirective, DrawerHeaderTemplateDirective, DrawerItemTemplateDirective, DrawerModule, DrawerSelectEvent, DrawerTemplateDirective, ExpansionPanelActionEvent, ExpansionPanelComponent, ExpansionPanelModule, ExpansionPanelTitleDirective, GridLayoutComponent, GridLayoutItemComponent, GridLayoutModule, LayoutModule, LocalizedAvatarMessagesDirective, LocalizedStepperMessagesDirective, LocalizedTabStripMessagesDirective, PanelBarCollapseEvent, PanelBarComponent, PanelBarContentDirective, PanelBarExpandEvent, PanelBarExpandMode, PanelBarItemComponent, PanelBarItemTemplateDirective, PanelBarItemTitleDirective, PanelBarModule, PanelBarSelectEvent, PanelBarStateChangeEvent, SelectEvent, SplitterComponent, SplitterModule, SplitterPaneComponent, StackLayoutComponent, StackLayoutModule, StepperActivateEvent, StepperComponent, StepperCustomMessagesComponent, StepperIndicatorTemplateDirective, StepperLabelTemplateDirective, StepperModule, StepperStepTemplateDirective, TabCloseEvent, TabComponent, TabContentDirective, TabStripComponent, TabStripCustomMessagesComponent, TabStripModule, TabStripTabComponent, TabTitleDirective, TileLayoutComponent, TileLayoutItemBodyComponent, TileLayoutItemComponent, TileLayoutItemHeaderComponent, TileLayoutModule, TileLayoutReorderEvent, TileLayoutResizeEvent, TileLayoutResizeHandleDirective };
10446
+ export { AvatarComponent, AvatarCustomMessagesComponent, AvatarModule, CardAction, CardActionsComponent, CardBodyComponent, CardComponent, CardFooterComponent, CardHeaderComponent, CardMediaDirective, CardModule, CardSeparatorDirective, CardSubtitleDirective, CardTitleDirective, DrawerComponent, DrawerContainerComponent, DrawerContentComponent, DrawerFooterTemplateDirective, DrawerHeaderTemplateDirective, DrawerItemTemplateDirective, DrawerModule, DrawerSelectEvent, DrawerTemplateDirective, ExpansionPanelActionEvent, ExpansionPanelComponent, ExpansionPanelModule, ExpansionPanelTitleDirective, GridLayoutComponent, GridLayoutItemComponent, GridLayoutModule, LayoutModule, LocalizedAvatarMessagesDirective, LocalizedStepperMessagesDirective, LocalizedTabStripMessagesDirective, PanelBarCollapseEvent, PanelBarComponent, PanelBarContentDirective, PanelBarExpandEvent, PanelBarExpandMode, PanelBarItemComponent, PanelBarItemTemplateDirective, PanelBarItemTitleDirective, PanelBarModule, PanelBarSelectEvent, PanelBarStateChangeEvent, SelectEvent, SplitterComponent, SplitterModule, SplitterPaneComponent, StackLayoutComponent, StackLayoutModule, StepperActivateEvent, StepperComponent, StepperCustomMessagesComponent, StepperIndicatorTemplateDirective, StepperLabelTemplateDirective, StepperModule, StepperStepTemplateDirective, TabCloseEvent, TabComponent, TabContentDirective, TabStripComponent, TabStripCustomMessagesComponent, TabStripModule, TabStripTabComponent, TabTemplateDirective, TabTitleDirective, TileLayoutComponent, TileLayoutItemBodyComponent, TileLayoutItemComponent, TileLayoutItemHeaderComponent, TileLayoutModule, TileLayoutReorderEvent, TileLayoutResizeEvent, TileLayoutResizeHandleDirective };
10386
10447
 
package/index.d.ts CHANGED
@@ -23,6 +23,7 @@ export { TabStripScrollButtonsVisibility } from './tabstrip/models/scroll-button
23
23
  export { LocalizedTabStripMessagesDirective } from './tabstrip/localization/localized-messages.directive';
24
24
  export { TabStripCustomMessagesComponent } from './tabstrip/localization/custom-messages.component';
25
25
  export { TabStripScrollableSettings } from './tabstrip/models/scrollable-settings';
26
+ export { TabTemplateDirective } from './tabstrip/directives/tab.directive';
26
27
  export * from './tabstrip/events';
27
28
  export { DrawerComponent } from './drawer/drawer.component';
28
29
  export { DrawerContainerComponent } from './drawer/drawer-container.component';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-layout",
3
- "version": "13.6.0-develop.5",
3
+ "version": "13.6.0-develop.7",
4
4
  "description": "Kendo UI for Angular Layout Package - a collection of components to create professional application layoyts",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -39,16 +39,16 @@
39
39
  "@angular/core": "13 - 16",
40
40
  "@angular/platform-browser": "13 - 16",
41
41
  "@progress/kendo-licensing": "^1.0.2",
42
- "@progress/kendo-angular-common": "13.6.0-develop.5",
43
- "@progress/kendo-angular-l10n": "13.6.0-develop.5",
44
- "@progress/kendo-angular-progressbar": "13.6.0-develop.5",
45
- "@progress/kendo-angular-icons": "13.6.0-develop.5",
46
- "@progress/kendo-angular-buttons": "13.6.0-develop.5",
42
+ "@progress/kendo-angular-common": "13.6.0-develop.7",
43
+ "@progress/kendo-angular-l10n": "13.6.0-develop.7",
44
+ "@progress/kendo-angular-progressbar": "13.6.0-develop.7",
45
+ "@progress/kendo-angular-icons": "13.6.0-develop.7",
46
+ "@progress/kendo-angular-buttons": "13.6.0-develop.7",
47
47
  "rxjs": "^6.5.3 || ^7.0.0"
48
48
  },
49
49
  "dependencies": {
50
50
  "tslib": "^2.3.1",
51
- "@progress/kendo-angular-schematics": "13.6.0-develop.5",
51
+ "@progress/kendo-angular-schematics": "13.6.0-develop.7",
52
52
  "@progress/kendo-draggable": "^3.0.2"
53
53
  },
54
54
  "schematics": "./schematics/collection.json",
@@ -0,0 +1,15 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2023 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { TemplateRef } from '@angular/core';
6
+ import * as i0 from "@angular/core";
7
+ /**
8
+ * @hidden
9
+ */
10
+ export declare class TabTemplateDirective {
11
+ templateRef: TemplateRef<any>;
12
+ constructor(templateRef: TemplateRef<any>);
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<TabTemplateDirective, never>;
14
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TabTemplateDirective, "[kendoTabTemplate]", never, {}, {}, never>;
15
+ }
@@ -6,6 +6,7 @@ import { QueryList } from '@angular/core';
6
6
  import { SVGIcon } from '@progress/kendo-svg-icons';
7
7
  import { TabContentDirective } from '../directives/tab-content.directive';
8
8
  import { TabTitleDirective } from '../directives/tab-title.directive';
9
+ import { TabTemplateDirective } from '../directives/tab.directive';
9
10
  import * as i0 from "@angular/core";
10
11
  /**
11
12
  * Represents the tab component of the TabStrip.
@@ -58,6 +59,8 @@ export declare class TabStripTabComponent {
58
59
  closeSVGIcon: SVGIcon;
59
60
  get tabContent(): TabContentDirective;
60
61
  get tabTitle(): TabTitleDirective;
62
+ get tabTemplate(): TabTemplateDirective;
63
+ _tabDirective: QueryList<TabTemplateDirective>;
61
64
  _tabContent: QueryList<TabContentDirective>;
62
65
  _tabTitleDirective: QueryList<TabTitleDirective>;
63
66
  /**
@@ -68,5 +71,5 @@ export declare class TabStripTabComponent {
68
71
  */
69
72
  focused: boolean;
70
73
  static ɵfac: i0.ɵɵFactoryDeclaration<TabStripTabComponent, never>;
71
- static ɵcmp: i0.ɵɵComponentDeclaration<TabStripTabComponent, "kendo-tabstrip-tab", ["kendoTabStripTab"], { "title": "title"; "disabled": "disabled"; "cssClass": "cssClass"; "cssStyle": "cssStyle"; "selected": "selected"; "closable": "closable"; "closeIcon": "closeIcon"; "closeIconClass": "closeIconClass"; "closeSVGIcon": "closeSVGIcon"; }, {}, ["_tabContent", "_tabTitleDirective"], never>;
74
+ static ɵcmp: i0.ɵɵComponentDeclaration<TabStripTabComponent, "kendo-tabstrip-tab", ["kendoTabStripTab"], { "title": "title"; "disabled": "disabled"; "cssClass": "cssClass"; "cssStyle": "cssStyle"; "selected": "selected"; "closable": "closable"; "closeIcon": "closeIcon"; "closeIconClass": "closeIconClass"; "closeSVGIcon": "closeSVGIcon"; }, {}, ["_tabDirective", "_tabContent", "_tabTitleDirective"], never>;
72
75
  }
@@ -86,6 +86,12 @@ export declare class TabStripComponent implements AfterViewInit, OnDestroy {
86
86
  */
87
87
  set closeSVGIcon(icon: SVGIcon);
88
88
  get closeSVGIcon(): SVGIcon;
89
+ /**
90
+ * Determines whether the content associated with each tab will be rendered.
91
+ *
92
+ * @default true
93
+ */
94
+ showContentArea: boolean;
89
95
  /**
90
96
  * Fires each time the user selects a tab ([see example]({% slug overview_tabstrip %}#toc-basic-usage)).
91
97
  * The event data contains the index of the selected tab and its title.
@@ -142,6 +148,8 @@ export declare class TabStripComponent implements AfterViewInit, OnDestroy {
142
148
  private subscriptionsArePresent;
143
149
  private _closeSVGIcon;
144
150
  private tabStripId;
151
+ private tabsChangesSub;
152
+ private activeStateChangeSub;
145
153
  constructor(localization: LocalizationService, renderer: Renderer2, wrapper: ElementRef, tabstripService: TabStripService, scrollService: ScrollService, ngZone: NgZone);
146
154
  ngAfterViewInit(): void;
147
155
  ngOnChanges(changes: SimpleChanges): void;
@@ -207,5 +215,5 @@ export declare class TabStripComponent implements AfterViewInit, OnDestroy {
207
215
  private toggleScrollButtons;
208
216
  private attachWheelHandler;
209
217
  static ɵfac: i0.ɵɵFactoryDeclaration<TabStripComponent, never>;
210
- static ɵcmp: i0.ɵɵComponentDeclaration<TabStripComponent, "kendo-tabstrip", ["kendoTabStrip"], { "height": "height"; "animate": "animate"; "tabAlignment": "tabAlignment"; "tabPosition": "tabPosition"; "keepTabContent": "keepTabContent"; "closable": "closable"; "scrollable": "scrollable"; "closeIcon": "closeIcon"; "closeIconClass": "closeIconClass"; "closeSVGIcon": "closeSVGIcon"; }, { "tabSelect": "tabSelect"; "tabClose": "tabClose"; "tabScroll": "tabScroll"; }, ["tabs"], never>;
218
+ static ɵcmp: i0.ɵɵComponentDeclaration<TabStripComponent, "kendo-tabstrip", ["kendoTabStrip"], { "height": "height"; "animate": "animate"; "tabAlignment": "tabAlignment"; "tabPosition": "tabPosition"; "keepTabContent": "keepTabContent"; "closable": "closable"; "scrollable": "scrollable"; "closeIcon": "closeIcon"; "closeIconClass": "closeIconClass"; "closeSVGIcon": "closeSVGIcon"; "showContentArea": "showContentArea"; }, { "tabSelect": "tabSelect"; "tabClose": "tabClose"; "tabScroll": "tabScroll"; }, ["tabs"], never>;
211
219
  }
@@ -10,11 +10,12 @@ import * as i4 from "./tabstrip/directives/tab-title.directive";
10
10
  import * as i5 from "./tabstrip/rendering/tab.component";
11
11
  import * as i6 from "./tabstrip/localization/custom-messages.component";
12
12
  import * as i7 from "./tabstrip/localization/localized-messages.directive";
13
- import * as i8 from "./tabstrip/scrollable-button.component";
14
- import * as i9 from "@angular/common";
15
- import * as i10 from "@progress/kendo-angular-common";
16
- import * as i11 from "@progress/kendo-angular-icons";
17
- import * as i12 from "@progress/kendo-angular-buttons";
13
+ import * as i8 from "./tabstrip/directives/tab.directive";
14
+ import * as i9 from "./tabstrip/scrollable-button.component";
15
+ import * as i10 from "@angular/common";
16
+ import * as i11 from "@progress/kendo-angular-common";
17
+ import * as i12 from "@progress/kendo-angular-icons";
18
+ import * as i13 from "@progress/kendo-angular-buttons";
18
19
  /**
19
20
  * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
20
21
  * definition for the TabStrip component.
@@ -27,6 +28,6 @@ import * as i12 from "@progress/kendo-angular-buttons";
27
28
  */
28
29
  export declare class TabStripModule {
29
30
  static ɵfac: i0.ɵɵFactoryDeclaration<TabStripModule, never>;
30
- static ɵmod: i0.ɵɵNgModuleDeclaration<TabStripModule, [typeof i1.TabStripComponent, typeof i2.TabStripTabComponent, typeof i3.TabContentDirective, typeof i4.TabTitleDirective, typeof i5.TabComponent, typeof i6.TabStripCustomMessagesComponent, typeof i7.LocalizedTabStripMessagesDirective, typeof i8.TabStripScrollableButtonComponent], [typeof i9.CommonModule, typeof i10.ResizeSensorModule, typeof i11.IconsModule, typeof i12.ButtonModule, typeof i10.WatermarkModule], [typeof i1.TabStripComponent, typeof i2.TabStripTabComponent, typeof i3.TabContentDirective, typeof i4.TabTitleDirective, typeof i5.TabComponent, typeof i6.TabStripCustomMessagesComponent, typeof i7.LocalizedTabStripMessagesDirective]>;
31
+ static ɵmod: i0.ɵɵNgModuleDeclaration<TabStripModule, [typeof i1.TabStripComponent, typeof i2.TabStripTabComponent, typeof i3.TabContentDirective, typeof i4.TabTitleDirective, typeof i5.TabComponent, typeof i6.TabStripCustomMessagesComponent, typeof i7.LocalizedTabStripMessagesDirective, typeof i8.TabTemplateDirective, typeof i9.TabStripScrollableButtonComponent], [typeof i10.CommonModule, typeof i11.ResizeSensorModule, typeof i12.IconsModule, typeof i13.ButtonModule, typeof i11.WatermarkModule], [typeof i1.TabStripComponent, typeof i2.TabStripTabComponent, typeof i3.TabContentDirective, typeof i4.TabTitleDirective, typeof i5.TabComponent, typeof i6.TabStripCustomMessagesComponent, typeof i7.LocalizedTabStripMessagesDirective, typeof i8.TabTemplateDirective]>;
31
32
  static ɵinj: i0.ɵɵInjectorDeclaration<TabStripModule>;
32
33
  }