@progress/kendo-angular-layout 6.3.5 → 6.4.0-dev.202201191016

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.
Files changed (48) hide show
  1. package/LICENSE.md +1 -1
  2. package/NOTICE.txt +119 -79
  3. package/README.md +1 -1
  4. package/dist/cdn/js/kendo-angular-layout.js +2 -2
  5. package/dist/cdn/main.js +1 -1
  6. package/dist/es/avatar/avatar.component.js +120 -90
  7. package/dist/es/avatar/models/models.js +4 -0
  8. package/dist/es/avatar/models/rounded.js +4 -0
  9. package/dist/es/common/styling-classes.js +4 -0
  10. package/dist/es/common/util.js +40 -0
  11. package/dist/es/main.js +1 -0
  12. package/dist/es/package-metadata.js +1 -1
  13. package/dist/es/tabstrip/tabstrip.component.js +27 -1
  14. package/dist/es2015/avatar/avatar.component.d.ts +30 -30
  15. package/dist/es2015/avatar/avatar.component.js +111 -81
  16. package/dist/es2015/avatar/models/fill.d.ts +2 -8
  17. package/dist/es2015/avatar/models/models.d.ts +9 -0
  18. package/dist/es2015/avatar/models/models.js +4 -0
  19. package/dist/es2015/avatar/models/rounded.d.ts +8 -0
  20. package/dist/es2015/avatar/models/rounded.js +4 -0
  21. package/dist/es2015/avatar/models/shape.d.ts +2 -8
  22. package/dist/es2015/avatar/models/size.d.ts +1 -8
  23. package/dist/es2015/avatar/models/theme-color.d.ts +2 -17
  24. package/dist/es2015/common/styling-classes.d.ts +11 -0
  25. package/dist/es2015/common/styling-classes.js +4 -0
  26. package/dist/es2015/common/util.d.ts +12 -0
  27. package/dist/es2015/common/util.js +40 -0
  28. package/dist/es2015/index.metadata.json +1 -1
  29. package/dist/es2015/main.d.ts +1 -4
  30. package/dist/es2015/main.js +1 -0
  31. package/dist/es2015/package-metadata.js +1 -1
  32. package/dist/es2015/tabstrip/tabstrip.component.d.ts +8 -0
  33. package/dist/es2015/tabstrip/tabstrip.component.js +20 -0
  34. package/dist/es2015/tilelayout/tilelayout-item.component.d.ts +2 -2
  35. package/dist/es2015/tilelayout/tilelayout-resize-handle.directive.d.ts +2 -2
  36. package/dist/es2015/tilelayout/tilelayout.component.d.ts +2 -2
  37. package/dist/fesm2015/index.js +171 -82
  38. package/dist/fesm5/index.js +187 -92
  39. package/dist/npm/avatar/avatar.component.js +120 -90
  40. package/dist/npm/avatar/models/models.js +6 -0
  41. package/dist/npm/avatar/models/rounded.js +6 -0
  42. package/dist/npm/common/styling-classes.js +6 -0
  43. package/dist/npm/common/util.js +40 -0
  44. package/dist/npm/main.js +1 -0
  45. package/dist/npm/package-metadata.js +1 -1
  46. package/dist/npm/tabstrip/tabstrip.component.js +27 -1
  47. package/dist/systemjs/kendo-angular-layout.js +1 -1
  48. package/package.json +13 -11
@@ -7,18 +7,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
7
7
  var tslib_1 = require("tslib");
8
8
  var core_1 = require("@angular/core");
9
9
  var kendo_licensing_1 = require("@progress/kendo-licensing");
10
+ var util_1 = require("../common/util");
10
11
  var package_metadata_1 = require("../package-metadata");
11
- var SIZE_CLASSES = {
12
- 'small': 'k-avatar-sm',
13
- 'medium': 'k-avatar-md',
14
- 'large': 'k-avatar-lg'
15
- };
16
- var SHAPE_CLASSES = {
17
- 'circle': 'k-avatar-circle',
18
- 'square': 'k-avatar-square',
19
- 'rectangle': 'k-avatar-rectangle',
20
- 'rounded': 'k-avatar-rounded'
21
- };
22
12
  /**
23
13
  * Displays images, icons or initials representing people or other entities.
24
14
  */
@@ -27,45 +17,16 @@ var AvatarComponent = /** @class */ (function () {
27
17
  this.renderer = renderer;
28
18
  this.element = element;
29
19
  this.hostClass = true;
30
- /**
31
- * Specifies the appearance fill style of the avatar.
32
- *
33
- * The possible values are:
34
- * * `solid` (Default)
35
- * * `outline`
36
- *
37
- */
38
- this.fill = 'solid';
39
20
  /**
40
21
  * Sets a border to the avatar.
41
22
  */
42
23
  this.border = false;
43
24
  this._themeColor = 'primary';
44
25
  this._size = 'medium';
45
- this._shape = 'square';
46
- this.avatar = this.element.nativeElement;
26
+ this._fillMode = 'solid';
27
+ this._rounded = 'full';
47
28
  kendo_licensing_1.validatePackage(package_metadata_1.packageMetadata);
48
29
  }
49
- Object.defineProperty(AvatarComponent.prototype, "solidClass", {
50
- /**
51
- * @hidden
52
- */
53
- get: function () {
54
- return this.fill === 'solid';
55
- },
56
- enumerable: true,
57
- configurable: true
58
- });
59
- Object.defineProperty(AvatarComponent.prototype, "outlineClass", {
60
- /**
61
- * @hidden
62
- */
63
- get: function () {
64
- return this.fill === 'outline';
65
- },
66
- enumerable: true,
67
- configurable: true
68
- });
69
30
  Object.defineProperty(AvatarComponent.prototype, "borderClass", {
70
31
  /**
71
32
  * @hidden
@@ -87,23 +48,12 @@ var AvatarComponent = /** @class */ (function () {
87
48
  configurable: true
88
49
  });
89
50
  Object.defineProperty(AvatarComponent.prototype, "shape", {
90
- get: function () {
91
- return this._shape;
92
- },
93
51
  /**
94
52
  * Sets the shape for the avatar.
95
- *
96
- * Possible values are:
97
- * * (Default) `square`
98
- * * `circle`
99
- * * `rectangle`
100
- * * `rounded`
101
- *
53
+ * @hidden
102
54
  */
103
55
  set: function (shape) {
104
- this.renderer.removeClass(this.avatar, SHAPE_CLASSES[this.shape]);
105
- this.renderer.addClass(this.avatar, SHAPE_CLASSES[shape]);
106
- this._shape = shape;
56
+ this.rounded = util_1.mapShapeToRounded(shape);
107
57
  },
108
58
  enumerable: true,
109
59
  configurable: true
@@ -123,9 +73,35 @@ var AvatarComponent = /** @class */ (function () {
123
73
  *
124
74
  */
125
75
  set: function (size) {
126
- this.renderer.removeClass(this.avatar, SIZE_CLASSES[this.size]);
127
- this.renderer.addClass(this.avatar, SIZE_CLASSES[size]);
128
- this._size = size;
76
+ if (size !== this._size) {
77
+ this.handleClasses('size', size);
78
+ this._size = size === null ? null : size || 'medium';
79
+ }
80
+ },
81
+ enumerable: true,
82
+ configurable: true
83
+ });
84
+ Object.defineProperty(AvatarComponent.prototype, "rounded", {
85
+ get: function () {
86
+ return this._rounded;
87
+ },
88
+ /**
89
+ * Specifies the rounded styling of the avatar
90
+ * ([see example]({% slug appearance_avatar %}#toc-rounded-corners)).
91
+ *
92
+ * The possible values are:
93
+ * * `small`
94
+ * * `medium`
95
+ * * `large`
96
+ * * `full` (Default)
97
+ * * null
98
+ *
99
+ */
100
+ set: function (rounded) {
101
+ if (rounded !== this._rounded) {
102
+ this.handleClasses('rounded', rounded);
103
+ this._rounded = rounded === null ? null : rounded || 'full';
104
+ }
129
105
  },
130
106
  enumerable: true,
131
107
  configurable: true
@@ -139,10 +115,10 @@ var AvatarComponent = /** @class */ (function () {
139
115
  * The theme color will be applied as background and border color, while also amending the text color accordingly.
140
116
  *
141
117
  * The possible values are:
118
+ * * `base`— Applies the base coloring value.
142
119
  * * `primary` (Default)—Applies coloring based on primary theme color.
143
120
  * * `secondary`—Applies coloring based on secondary theme color.
144
121
  * * `tertiary`— Applies coloring based on tertiary theme color.
145
- * * `inherit`— Applies inherited coloring value.
146
122
  * * `info`—Applies coloring based on info theme color.
147
123
  * * `success`— Applies coloring based on success theme color.
148
124
  * * `warning`— Applies coloring based on warning theme color.
@@ -150,45 +126,67 @@ var AvatarComponent = /** @class */ (function () {
150
126
  * * `dark`— Applies coloring based on dark theme color.
151
127
  * * `light`— Applies coloring based on light theme color.
152
128
  * * `inverse`— Applies coloring based on inverted theme color.
153
- *
154
129
  */
155
130
  set: function (themeColor) {
156
- this.renderer.removeClass(this.avatar, "k-avatar-" + this.themeColor);
157
- this.renderer.addClass(this.avatar, "k-avatar-" + themeColor);
158
- this._themeColor = themeColor;
131
+ if (themeColor !== this._themeColor) {
132
+ this._themeColor = themeColor === null ? null : (themeColor || 'primary');
133
+ this.handleFillModeAndThemeColorClasses(this.fillMode, this.themeColor);
134
+ }
159
135
  },
160
136
  enumerable: true,
161
137
  configurable: true
162
138
  });
163
- Object.defineProperty(AvatarComponent.prototype, "avatarWidth", {
139
+ Object.defineProperty(AvatarComponent.prototype, "fillMode", {
140
+ get: function () {
141
+ return this._fillMode;
142
+ },
143
+ /**
144
+ * Specifies the appearance fill style of the avatar.
145
+ *
146
+ * The possible values are:
147
+ * * `solid` (Default)
148
+ * * `outline`
149
+ * * null
150
+ *
151
+ */
152
+ set: function (fillMode) {
153
+ if (fillMode !== this.fillMode) {
154
+ this._fillMode = fillMode === null ? null : (fillMode || 'solid');
155
+ this.handleFillModeAndThemeColorClasses(this.fillMode, this.themeColor);
156
+ }
157
+ },
158
+ enumerable: true,
159
+ configurable: true
160
+ });
161
+ Object.defineProperty(AvatarComponent.prototype, "fill", {
164
162
  /**
163
+ * Specifies the appearance fill style of the avatar.
164
+ * Deprecated, left for backward compatibility.
165
+ *
165
166
  * @hidden
166
167
  */
167
- get: function () {
168
- return this.width;
168
+ set: function (fillMode) {
169
+ this.fillMode = fillMode;
169
170
  },
170
171
  enumerable: true,
171
172
  configurable: true
172
173
  });
173
- Object.defineProperty(AvatarComponent.prototype, "avatarHeight", {
174
+ Object.defineProperty(AvatarComponent.prototype, "avatarWidth", {
174
175
  /**
175
176
  * @hidden
176
177
  */
177
178
  get: function () {
178
- return this.height;
179
+ return this.width;
179
180
  },
180
181
  enumerable: true,
181
182
  configurable: true
182
183
  });
183
- AvatarComponent.prototype.ngAfterViewInit = function () {
184
- this.setAvatarClasses();
185
- };
186
- Object.defineProperty(AvatarComponent.prototype, "imageUrl", {
184
+ Object.defineProperty(AvatarComponent.prototype, "avatarHeight", {
187
185
  /**
188
186
  * @hidden
189
187
  */
190
188
  get: function () {
191
- return "url(" + this.imageSrc + ")";
189
+ return this.height;
192
190
  },
193
191
  enumerable: true,
194
192
  configurable: true
@@ -196,6 +194,14 @@ var AvatarComponent = /** @class */ (function () {
196
194
  AvatarComponent.prototype.ngOnInit = function () {
197
195
  this.verifyProperties();
198
196
  };
197
+ AvatarComponent.prototype.ngAfterViewInit = function () {
198
+ var _this = this;
199
+ var stylingInputs = ['size', 'rounded'];
200
+ stylingInputs.forEach(function (input) {
201
+ _this.handleClasses(input, _this[input]);
202
+ });
203
+ this.handleFillModeAndThemeColorClasses(this.fillMode, this.themeColor);
204
+ };
199
205
  /**
200
206
  * @hidden
201
207
  */
@@ -227,25 +233,38 @@ var AvatarComponent = /** @class */ (function () {
227
233
  throw new Error("\n Invalid property configuration given.\n The kendo-avatar component can accept only one of:\n icon, imageSrc or initials properties.\n ");
228
234
  }
229
235
  };
230
- AvatarComponent.prototype.setAvatarClasses = function () {
231
- this.renderer.addClass(this.avatar, SHAPE_CLASSES[this.shape]);
232
- this.renderer.addClass(this.avatar, "k-avatar-" + this.themeColor);
233
- this.renderer.addClass(this.avatar, SIZE_CLASSES[this.size]);
236
+ AvatarComponent.prototype.handleClasses = function (styleType, value) {
237
+ var elem = this.element.nativeElement;
238
+ var classes = util_1.getStylingClasses('avatar', styleType, this[styleType], value);
239
+ if (classes.toRemove) {
240
+ this.renderer.removeClass(elem, classes.toRemove);
241
+ }
242
+ if (classes.toAdd) {
243
+ this.renderer.addClass(elem, classes.toAdd);
244
+ }
245
+ };
246
+ AvatarComponent.prototype.handleFillModeAndThemeColorClasses = function (fill, themeColor) {
247
+ var _this = this;
248
+ var wrapperElement = this.element.nativeElement;
249
+ // remove existing fill and theme color classes
250
+ var currentClasses = Array.from(wrapperElement.classList);
251
+ var classesToRemove = currentClasses.filter(function (cl) {
252
+ return cl.startsWith('k-avatar-solid') || cl.startsWith('k-avatar-outline');
253
+ });
254
+ classesToRemove.forEach((function (cl) { return _this.renderer.removeClass(wrapperElement, cl); }));
255
+ // add fill if needed
256
+ if (fill !== null) {
257
+ this.renderer.addClass(wrapperElement, "k-avatar-" + fill);
258
+ }
259
+ // add theme color class if fill and theme color
260
+ if (fill !== null && themeColor !== null) {
261
+ this.renderer.addClass(wrapperElement, "k-avatar-" + fill + "-" + themeColor);
262
+ }
234
263
  };
235
264
  tslib_1.__decorate([
236
265
  core_1.HostBinding('class.k-avatar'),
237
266
  tslib_1.__metadata("design:type", Boolean)
238
267
  ], AvatarComponent.prototype, "hostClass", void 0);
239
- tslib_1.__decorate([
240
- core_1.HostBinding('class.k-avatar-solid'),
241
- tslib_1.__metadata("design:type", Boolean),
242
- tslib_1.__metadata("design:paramtypes", [])
243
- ], AvatarComponent.prototype, "solidClass", null);
244
- tslib_1.__decorate([
245
- core_1.HostBinding('class.k-avatar-outline'),
246
- tslib_1.__metadata("design:type", Boolean),
247
- tslib_1.__metadata("design:paramtypes", [])
248
- ], AvatarComponent.prototype, "outlineClass", null);
249
268
  tslib_1.__decorate([
250
269
  core_1.HostBinding('class.k-avatar-bordered'),
251
270
  tslib_1.__metadata("design:type", Boolean),
@@ -266,6 +285,11 @@ var AvatarComponent = /** @class */ (function () {
266
285
  tslib_1.__metadata("design:type", String),
267
286
  tslib_1.__metadata("design:paramtypes", [String])
268
287
  ], AvatarComponent.prototype, "size", null);
288
+ tslib_1.__decorate([
289
+ core_1.Input(),
290
+ tslib_1.__metadata("design:type", String),
291
+ tslib_1.__metadata("design:paramtypes", [String])
292
+ ], AvatarComponent.prototype, "rounded", null);
269
293
  tslib_1.__decorate([
270
294
  core_1.Input(),
271
295
  tslib_1.__metadata("design:type", String),
@@ -273,8 +297,14 @@ var AvatarComponent = /** @class */ (function () {
273
297
  ], AvatarComponent.prototype, "themeColor", null);
274
298
  tslib_1.__decorate([
275
299
  core_1.Input(),
276
- tslib_1.__metadata("design:type", String)
277
- ], AvatarComponent.prototype, "fill", void 0);
300
+ tslib_1.__metadata("design:type", String),
301
+ tslib_1.__metadata("design:paramtypes", [String])
302
+ ], AvatarComponent.prototype, "fillMode", null);
303
+ tslib_1.__decorate([
304
+ core_1.Input(),
305
+ tslib_1.__metadata("design:type", String),
306
+ tslib_1.__metadata("design:paramtypes", [String])
307
+ ], AvatarComponent.prototype, "fill", null);
278
308
  tslib_1.__decorate([
279
309
  core_1.Input(),
280
310
  tslib_1.__metadata("design:type", Boolean)
@@ -320,7 +350,7 @@ var AvatarComponent = /** @class */ (function () {
320
350
  AvatarComponent = tslib_1.__decorate([
321
351
  core_1.Component({
322
352
  selector: 'kendo-avatar',
323
- template: "\n <ng-content *ngIf=\"customAvatar\"></ng-content>\n\n <ng-container *ngIf=\"imageSrc\">\n <div class=\"k-avatar-image\" [ngStyle]=\"cssStyle\" [style.backgroundImage]=\"imageUrl\"></div>\n </ng-container>\n\n <ng-container *ngIf=\"initials\">\n <span class=\"k-avatar-text\" [ngStyle]=\"cssStyle\">{{ initials.substring(0, 2) }}</span>\n </ng-container>\n\n <ng-container *ngIf=\"icon || iconClass\">\n <span class=\"k-avatar-icon\" [ngStyle]=\"cssStyle\" [ngClass]=\"iconClasses()\"></span>\n </ng-container>\n "
353
+ template: "\n <ng-content *ngIf=\"customAvatar\"></ng-content>\n\n <ng-container *ngIf=\"imageSrc\">\n <span class=\"k-avatar-image\">\n <img src=\"{{imageSrc}}\" [ngStyle]=\"cssStyle\" />\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"initials\">\n <span class=\"k-avatar-text\" [ngStyle]=\"cssStyle\">{{ initials.substring(0, 2) }}</span>\n </ng-container>\n\n <ng-container *ngIf=\"icon || iconClass\">\n <span class=\"k-avatar-icon\" [ngStyle]=\"cssStyle\" [ngClass]=\"iconClasses()\"></span>\n </ng-container>\n "
324
354
  }),
325
355
  tslib_1.__metadata("design:paramtypes", [core_1.Renderer2, core_1.ElementRef])
326
356
  ], AvatarComponent);
@@ -0,0 +1,6 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2021 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ "use strict";
6
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,6 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2021 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ "use strict";
6
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,6 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2021 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ "use strict";
6
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -6,6 +6,21 @@
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  var kendo_angular_common_1 = require("@progress/kendo-angular-common");
8
8
  var nextId = 0;
9
+ var SIZES = {
10
+ small: 'sm',
11
+ medium: 'md',
12
+ large: 'lg'
13
+ };
14
+ var ROUNDNESS = {
15
+ small: 'sm',
16
+ medium: 'md',
17
+ large: 'lg',
18
+ full: 'full'
19
+ };
20
+ var SHAPE_TO_ROUNDED = {
21
+ rounded: 'large',
22
+ circle: 'full'
23
+ };
9
24
  var parsePanelBarItems = function (data) {
10
25
  return data.map(function (item) {
11
26
  if (!item.id) {
@@ -47,3 +62,28 @@ exports.isNavigationKey = function (keyCode) {
47
62
  return keyCode === kendo_angular_common_1.Keys.PageUp || keyCode === kendo_angular_common_1.Keys.PageDown ||
48
63
  keyCode === kendo_angular_common_1.Keys.Home || keyCode === kendo_angular_common_1.Keys.End;
49
64
  };
65
+ /**
66
+ * @hidden
67
+ *
68
+ * Returns the styling classes to be added and removed
69
+ */
70
+ exports.getStylingClasses = function (componentType, stylingOption, previousValue, newValue) {
71
+ switch (stylingOption) {
72
+ case 'size':
73
+ return {
74
+ toRemove: "k-" + componentType + "-" + SIZES[previousValue],
75
+ toAdd: newValue ? "k-" + componentType + "-" + SIZES[newValue] : null
76
+ };
77
+ case 'rounded':
78
+ return {
79
+ toRemove: "k-rounded-" + ROUNDNESS[previousValue],
80
+ toAdd: newValue ? "k-rounded-" + ROUNDNESS[newValue] : null
81
+ };
82
+ default:
83
+ break;
84
+ }
85
+ };
86
+ /**
87
+ * @hidden
88
+ */
89
+ exports.mapShapeToRounded = function (shape) { return SHAPE_TO_ROUNDED[shape] || null; };
package/dist/npm/main.js CHANGED
@@ -54,6 +54,7 @@ exports.StepperCustomMessagesComponent = custom_messages_component_2.StepperCust
54
54
  var localized_messages_directive_2 = require("./stepper/localization/localized-messages.directive");
55
55
  exports.LocalizedStepperMessagesDirective = localized_messages_directive_2.LocalizedStepperMessagesDirective;
56
56
  tslib_1.__exportStar(require("./stepper/template-directives"), exports);
57
+ // Avatar exports
57
58
  var avatar_component_1 = require("./avatar/avatar.component");
58
59
  exports.AvatarComponent = avatar_component_1.AvatarComponent;
59
60
  // Card exports
@@ -11,7 +11,7 @@ exports.packageMetadata = {
11
11
  name: '@progress/kendo-angular-layout',
12
12
  productName: 'Kendo UI for Angular',
13
13
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
14
- publishDate: 1635940072,
14
+ publishDate: 1642587256,
15
15
  version: '',
16
16
  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'
17
17
  };
@@ -220,6 +220,32 @@ var TabStripComponent = /** @class */ (function () {
220
220
  enumerable: true,
221
221
  configurable: true
222
222
  });
223
+ Object.defineProperty(TabStripComponent.prototype, "tabListWidth", {
224
+ /**
225
+ * @hidden
226
+ */
227
+ get: function () {
228
+ if (this.tabPosition === 'top' || this.tabPosition === 'bottom') {
229
+ return '100%';
230
+ }
231
+ return null;
232
+ },
233
+ enumerable: true,
234
+ configurable: true
235
+ });
236
+ Object.defineProperty(TabStripComponent.prototype, "tabListHeight", {
237
+ /**
238
+ * @hidden
239
+ */
240
+ get: function () {
241
+ if (this.tabPosition === 'left' || this.tabPosition === 'right') {
242
+ return '100%';
243
+ }
244
+ return null;
245
+ },
246
+ enumerable: true,
247
+ configurable: true
248
+ });
223
249
  Object.defineProperty(TabStripComponent.prototype, "isScrollable", {
224
250
  /**
225
251
  * @hidden
@@ -491,7 +517,7 @@ var TabStripComponent = /** @class */ (function () {
491
517
  ],
492
518
  exportAs: 'kendoTabStrip',
493
519
  selector: 'kendo-tabstrip',
494
- template: "\n <ng-container kendoTabStripLocalizedMessages\n i18n-closeTitle=\"kendo.tabstrip.closeTitle|The title for the **Close** button in the TabStrip tab.\"\n closeTitle=\"Close\">\n </ng-container>\n <ng-container *ngIf=\"!tabsAtBottom\">\n <ng-container *ngTemplateOutlet=\"heading\">\n </ng-container>\n <ng-container *ngTemplateOutlet=\"content\">\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"tabsAtBottom\">\n <ng-container *ngTemplateOutlet=\"content\">\n </ng-container>\n <ng-container *ngTemplateOutlet=\"heading\">\n </ng-container>\n </ng-container>\n <ng-template #heading>\n <div class=\"k-tabstrip-items-wrapper\" [ngClass]=\"itemsWrapperClass\">\n <span *ngIf=\"hasScrollButtons\"\n #prevScrollButton\n kendoTabStripScrollableButton\n [prev]=\"true\"></span>\n <ul role=\"tablist\" #tablist\n class=\"k-reset k-tabstrip-items\"\n [style.justifyContent]=\"tabsAlignmentStyles\"\n >\n <ng-container *ngFor=\"let tab of tabs; let i = index;\">\n <li *ngIf=\"!tab.closed\"\n #tabHeaderContainer\n kendoTabStripTab\n [ngClass]=\"tab.cssClass\"\n [ngStyle]=\"tab.cssStyle\"\n [tab]=\"tab\"\n [index]=\"i\"\n role=\"tab\"\n [tabStripClosable]=\"closable\"\n [tabStripCloseIcon]=\"closeIcon\"\n (click)=\"onTabClick($event, i)\"\n [id]=\"'k-tabstrip-tab-' + i\"\n [attr.aria-controls]=\"'k-tabstrip-tabpanel-' + i\">\n </li>\n </ng-container>\n </ul>\n <span *ngIf=\"hasScrollButtons\" #nextScrollButton\n kendoTabStripScrollableButton\n [prev]=\"false\">\n </span>\n </div>\n </ng-template>\n <ng-template #content>\n <ng-template ngFor let-tab [ngForOf]=\"tabs\" let-i=\"index\">\n <div\n [@state]=\"tab.selected && animate ? 'active' : 'inactive'\"\n *ngIf=\"!tab.closed && (tab.selected || keepTabContent)\"\n [ngClass]=\"!this.keepTabContent || tab.selected ? 'k-content k-state-active' : 'k-content'\"\n [tabIndex]=\"0\"\n role=\"tabpanel\"\n [id]=\"'k-tabstrip-tabpanel-' + i\"\n [attr.aria-hidden]=\"!tab.selected\"\n [attr.aria-expanded]=\"tab.selected\"\n [attr.aria-labelledby]=\"'k-tabstrip-tab-' + i\"\n [attr.aria-disabled]=\"tab.disabled\"\n >\n <ng-template [ngTemplateOutlet]=\"tab.tabContent?.templateRef\">\n </ng-template>\n </div>\n </ng-template>\n </ng-template>\n <kendo-resize-sensor *ngIf=\"isScrollable\" (resize)=\"onResize()\"></kendo-resize-sensor>\n "
520
+ template: "\n <ng-container kendoTabStripLocalizedMessages\n i18n-closeTitle=\"kendo.tabstrip.closeTitle|The title for the **Close** button in the TabStrip tab.\"\n closeTitle=\"Close\">\n </ng-container>\n <ng-container *ngIf=\"!tabsAtBottom\">\n <ng-container *ngTemplateOutlet=\"heading\">\n </ng-container>\n <ng-container *ngTemplateOutlet=\"content\">\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"tabsAtBottom\">\n <ng-container *ngTemplateOutlet=\"content\">\n </ng-container>\n <ng-container *ngTemplateOutlet=\"heading\">\n </ng-container>\n </ng-container>\n <ng-template #heading>\n <div class=\"k-tabstrip-items-wrapper\" [ngClass]=\"itemsWrapperClass\">\n <span *ngIf=\"hasScrollButtons\"\n #prevScrollButton\n kendoTabStripScrollableButton\n [prev]=\"true\"></span>\n <ul role=\"tablist\" #tablist\n class=\"k-reset k-tabstrip-items\"\n [style.justifyContent]=\"tabsAlignmentStyles\"\n [style.width]=\"tabListWidth\"\n [style.height]=\"tabListHeight\"\n >\n <ng-container *ngFor=\"let tab of tabs; let i = index;\">\n <li *ngIf=\"!tab.closed\"\n #tabHeaderContainer\n kendoTabStripTab\n [ngClass]=\"tab.cssClass\"\n [ngStyle]=\"tab.cssStyle\"\n [tab]=\"tab\"\n [index]=\"i\"\n role=\"tab\"\n [tabStripClosable]=\"closable\"\n [tabStripCloseIcon]=\"closeIcon\"\n (click)=\"onTabClick($event, i)\"\n [id]=\"'k-tabstrip-tab-' + i\"\n [attr.aria-controls]=\"'k-tabstrip-tabpanel-' + i\">\n </li>\n </ng-container>\n </ul>\n <span *ngIf=\"hasScrollButtons\" #nextScrollButton\n kendoTabStripScrollableButton\n [prev]=\"false\">\n </span>\n </div>\n </ng-template>\n <ng-template #content>\n <ng-template ngFor let-tab [ngForOf]=\"tabs\" let-i=\"index\">\n <div\n [@state]=\"tab.selected && animate ? 'active' : 'inactive'\"\n *ngIf=\"!tab.closed && (tab.selected || keepTabContent)\"\n [ngClass]=\"!this.keepTabContent || tab.selected ? 'k-content k-state-active' : 'k-content'\"\n [tabIndex]=\"0\"\n role=\"tabpanel\"\n [id]=\"'k-tabstrip-tabpanel-' + i\"\n [attr.aria-hidden]=\"!tab.selected\"\n [attr.aria-expanded]=\"tab.selected\"\n [attr.aria-labelledby]=\"'k-tabstrip-tab-' + i\"\n [attr.aria-disabled]=\"tab.disabled\"\n >\n <ng-template [ngTemplateOutlet]=\"tab.tabContent?.templateRef\">\n </ng-template>\n </div>\n </ng-template>\n </ng-template>\n <kendo-resize-sensor *ngIf=\"isScrollable\" (resize)=\"onResize()\"></kendo-resize-sensor>\n "
495
521
  }),
496
522
  tslib_1.__metadata("design:paramtypes", [kendo_angular_l10n_1.LocalizationService,
497
523
  core_1.Renderer2,