@progress/kendo-angular-buttons 6.4.1-dev.202111011439 → 7.0.0-dev.202201121347

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 (82) hide show
  1. package/dist/cdn/js/kendo-angular-buttons.js +2 -2
  2. package/dist/cdn/main.js +1 -1
  3. package/dist/es/button/button.directive.js +236 -89
  4. package/dist/es/button/button.service.js +1 -5
  5. package/dist/es/buttongroup/buttongroup.component.js +11 -60
  6. package/dist/es/chip/chip-list.component.js +57 -7
  7. package/dist/es/chip/chip.component.js +175 -86
  8. package/dist/es/{chip/models/chip-look.js → common/models/fillmode.js} +0 -0
  9. package/dist/es/{chip/models/type.js → common/models/rounded.js} +0 -0
  10. package/dist/{es2015/button-look.js → es/common/models/styling-classes.js} +0 -0
  11. package/dist/es/{button-look.js → common/models.js} +0 -0
  12. package/dist/es/dropdownbutton/dropdownbutton.component.js +89 -36
  13. package/dist/es/floatingactionbutton/dial-item.component.js +1 -1
  14. package/dist/es/floatingactionbutton/floatingactionbutton.component.js +66 -41
  15. package/dist/es/focusable/focusable.directive.js +4 -4
  16. package/dist/es/listbutton/list-button.js +4 -1
  17. package/dist/es/listbutton/list.component.js +20 -1
  18. package/dist/es/package-metadata.js +1 -1
  19. package/dist/es/splitbutton/splitbutton.component.js +107 -37
  20. package/dist/es/util.js +52 -0
  21. package/dist/es2015/button/button.directive.d.ts +85 -22
  22. package/dist/es2015/button/button.directive.js +219 -85
  23. package/dist/es2015/button/button.service.d.ts +1 -4
  24. package/dist/es2015/button/button.service.js +1 -5
  25. package/dist/es2015/buttongroup/buttongroup.component.d.ts +0 -15
  26. package/dist/es2015/buttongroup/buttongroup.component.js +11 -48
  27. package/dist/es2015/chip/chip-list.component.d.ts +19 -3
  28. package/dist/es2015/chip/chip-list.component.js +52 -7
  29. package/dist/es2015/chip/chip.component.d.ts +67 -32
  30. package/dist/es2015/chip/chip.component.js +186 -97
  31. package/dist/es2015/common/models/fillmode.d.ts +12 -0
  32. package/dist/es2015/{chip/models/type.js → common/models/fillmode.js} +0 -0
  33. package/dist/es2015/common/models/rounded.d.ts +12 -0
  34. package/dist/es2015/common/models/rounded.js +4 -0
  35. package/dist/es2015/common/models/shape.d.ts +2 -9
  36. package/dist/es2015/common/models/size.d.ts +9 -6
  37. package/dist/es2015/common/models/styling-classes.d.ts +11 -0
  38. package/dist/es2015/common/models/styling-classes.js +4 -0
  39. package/dist/es2015/common/models/theme-color.d.ts +15 -4
  40. package/dist/es2015/common/models.d.ts +10 -0
  41. package/dist/es2015/{chip/models/chip-look.js → common/models.js} +0 -0
  42. package/dist/es2015/dropdownbutton/dropdownbutton.component.d.ts +59 -7
  43. package/dist/es2015/dropdownbutton/dropdownbutton.component.js +92 -31
  44. package/dist/es2015/floatingactionbutton/dial-item.component.js +1 -1
  45. package/dist/es2015/floatingactionbutton/floatingactionbutton.component.d.ts +28 -21
  46. package/dist/es2015/floatingactionbutton/floatingactionbutton.component.js +62 -42
  47. package/dist/es2015/focusable/focusable.directive.js +4 -4
  48. package/dist/es2015/index.metadata.json +1 -1
  49. package/dist/es2015/listbutton/list-button.js +4 -1
  50. package/dist/es2015/listbutton/list.component.d.ts +3 -0
  51. package/dist/es2015/listbutton/list.component.js +37 -20
  52. package/dist/es2015/main.d.ts +4 -4
  53. package/dist/es2015/package-metadata.js +1 -1
  54. package/dist/es2015/splitbutton/splitbutton.component.d.ts +59 -12
  55. package/dist/es2015/splitbutton/splitbutton.component.js +113 -33
  56. package/dist/es2015/util.d.ts +21 -0
  57. package/dist/es2015/util.js +52 -0
  58. package/dist/fesm2015/index.js +862 -409
  59. package/dist/fesm5/index.js +853 -405
  60. package/dist/npm/button/button.directive.js +236 -89
  61. package/dist/npm/button/button.service.js +0 -4
  62. package/dist/npm/buttongroup/buttongroup.component.js +11 -60
  63. package/dist/npm/chip/chip-list.component.js +55 -5
  64. package/dist/npm/chip/chip.component.js +173 -84
  65. package/dist/npm/{chip/models/chip-look.js → common/models/fillmode.js} +0 -0
  66. package/dist/npm/{chip/models/type.js → common/models/rounded.js} +0 -0
  67. package/dist/npm/common/models/styling-classes.js +6 -0
  68. package/dist/npm/{button-look.js → common/models.js} +0 -0
  69. package/dist/npm/dropdownbutton/dropdownbutton.component.js +89 -36
  70. package/dist/npm/floatingactionbutton/dial-item.component.js +1 -1
  71. package/dist/npm/floatingactionbutton/floatingactionbutton.component.js +66 -41
  72. package/dist/npm/focusable/focusable.directive.js +4 -4
  73. package/dist/npm/listbutton/list-button.js +4 -1
  74. package/dist/npm/listbutton/list.component.js +20 -1
  75. package/dist/npm/package-metadata.js +1 -1
  76. package/dist/npm/splitbutton/splitbutton.component.js +105 -35
  77. package/dist/npm/util.js +52 -0
  78. package/dist/systemjs/kendo-angular-buttons.js +1 -1
  79. package/package.json +13 -10
  80. package/dist/es2015/button-look.d.ts +0 -21
  81. package/dist/es2015/chip/models/chip-look.d.ts +0 -20
  82. package/dist/es2015/chip/models/type.d.ts +0 -21
@@ -4,13 +4,13 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { __decorate, __metadata, __param } from 'tslib';
6
6
  import { Injectable, EventEmitter, Input, Output, HostBinding, HostListener, Directive, Optional, ElementRef, Renderer2, NgZone, isDevMode, ContentChildren, QueryList, Component, NgModule, TemplateRef, ViewContainerRef, InjectionToken, Inject, ContentChild, ViewChild, ChangeDetectorRef, forwardRef } from '@angular/core';
7
- import { BehaviorSubject, Subject, fromEvent, merge, Subscription } from 'rxjs';
7
+ import { Subject, fromEvent, merge, Subscription } from 'rxjs';
8
8
  import { Keys, isChanged, isDocumentAvailable, hasObservers, guid, EventsModule } from '@progress/kendo-angular-common';
9
9
  import { LocalizationService, L10N_PREFIX, ComponentMessages } from '@progress/kendo-angular-l10n';
10
- import { filter, take } from 'rxjs/operators';
11
10
  import { validatePackage } from '@progress/kendo-licensing';
12
11
  import { CommonModule } from '@angular/common';
13
12
  import { PopupService, PopupModule } from '@progress/kendo-angular-popup';
13
+ import { filter, take } from 'rxjs/operators';
14
14
  import { sequence, query, style, stagger, animate, AnimationBuilder } from '@angular/animations';
15
15
 
16
16
  /**
@@ -21,16 +21,12 @@ let KendoButtonService = class KendoButtonService {
21
21
  * @hidden
22
22
  */
23
23
  constructor() {
24
- this.buttonLookChange = new BehaviorSubject('default');
25
24
  this.buttonClicked = new Subject();
26
25
  this.buttonClicked$ = this.buttonClicked.asObservable();
27
26
  }
28
27
  click(button) {
29
28
  this.buttonClicked.next(button);
30
29
  }
31
- setButtonLook(look) {
32
- this.buttonLookChange.next(look);
33
- }
34
30
  };
35
31
  KendoButtonService = __decorate([
36
32
  Injectable()
@@ -43,11 +39,103 @@ const packageMetadata = {
43
39
  name: '@progress/kendo-angular-buttons',
44
40
  productName: 'Kendo UI for Angular',
45
41
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
46
- publishDate: 1635777529,
42
+ publishDate: 1641995114,
47
43
  version: '',
48
44
  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'
49
45
  };
50
46
 
47
+ /* tslint:disable:no-null-keyword */
48
+ /* tslint:disable:no-bitwise */
49
+ const resolvedPromise = Promise.resolve(null);
50
+ /**
51
+ * @hidden
52
+ */
53
+ const isPresent = (value) => value !== null && value !== undefined;
54
+ /**
55
+ * @hidden
56
+ */
57
+ const tick = (f) => (resolvedPromise.then(f));
58
+ /**
59
+ * @hidden
60
+ */
61
+ function isDocumentNode(container) {
62
+ return container.nodeType === 9;
63
+ }
64
+ /**
65
+ * @hidden
66
+ */
67
+ function closest(element, selector) {
68
+ if (element.closest) {
69
+ return element.closest(selector);
70
+ }
71
+ const matches = Element.prototype.matches ?
72
+ (el, sel) => el.matches(sel)
73
+ : (el, sel) => el.msMatchesSelector(sel);
74
+ let node = element;
75
+ while (node && !isDocumentNode(node)) {
76
+ if (matches(node, selector)) {
77
+ return node;
78
+ }
79
+ node = node.parentNode;
80
+ }
81
+ }
82
+ /**
83
+ * @hidden
84
+ */
85
+ const replaceMessagePlaceholder = (message, name, value) => message.replace(new RegExp(`\{\\s*${name}\\s*\}`, 'g'), value);
86
+ /**
87
+ * @hidden
88
+ */
89
+ const SIZES = {
90
+ small: 'sm',
91
+ medium: 'md',
92
+ large: 'lg'
93
+ };
94
+ const ROUNDNESS = {
95
+ small: 'sm',
96
+ medium: 'md',
97
+ large: 'lg',
98
+ full: 'full'
99
+ };
100
+ /**
101
+ * @hidden
102
+ *
103
+ * Returns the styling classes to be added and removed
104
+ */
105
+ const getStylingClasses = (componentType, stylingOption, previousValue, newValue) => {
106
+ switch (stylingOption) {
107
+ case 'size':
108
+ return {
109
+ toRemove: `k-${componentType}-${SIZES[previousValue]}`,
110
+ toAdd: newValue ? `k-${componentType}-${SIZES[newValue]}` : null
111
+ };
112
+ case 'rounded':
113
+ return {
114
+ toRemove: `k-rounded-${ROUNDNESS[previousValue]}`,
115
+ toAdd: newValue ? `k-rounded-${ROUNDNESS[newValue]}` : null
116
+ };
117
+ case 'fillMode':
118
+ case 'shape':
119
+ return {
120
+ toRemove: `k-${componentType}-${previousValue}`,
121
+ toAdd: newValue ? `k-${componentType}-${newValue}` : null
122
+ };
123
+ default:
124
+ break;
125
+ }
126
+ };
127
+ /**
128
+ * @hidden
129
+ *
130
+ * Returns the themeColor classes to be added and removed
131
+ */
132
+ const getThemeColorClasses = (componentType, prevFillMode, fillMode, previousValue, newValue) => {
133
+ return {
134
+ toRemove: `k-${componentType}-${prevFillMode}-${previousValue}`,
135
+ toAdd: newValue ? `k-${componentType}-${fillMode}-${newValue}` : null
136
+ };
137
+ };
138
+
51
139
  const SPAN_TAG_NAME = 'SPAN';
52
140
  /**
53
141
  * Represents the Kendo UI Button component for Angular.
@@ -61,19 +149,6 @@ let ButtonDirective = class ButtonDirective {
61
149
  * By default, `toggleable` is set to `false`.
62
150
  */
63
151
  this.toggleable = false;
64
- /**
65
- * Adds visual weight to the Button and makes it primary.
66
- */
67
- this.primary = false;
68
- /**
69
- * Changes the visual appearance by using alternative styling options
70
- * ([more information and examples]({% slug appearance_button %})).
71
- *
72
- * The available values are:
73
- * * [`ButtonLook`]({% slug api_buttons_buttonlook %}) = `flat` | `outline`
74
- * * `clear`
75
- */
76
- this.look = 'default';
77
152
  /**
78
153
  * @hidden
79
154
  */
@@ -91,12 +166,16 @@ let ButtonDirective = class ButtonDirective {
91
166
  this.isDisabled = false;
92
167
  this.isIcon = false;
93
168
  this.isIconClass = false;
169
+ this._size = 'medium';
170
+ this._rounded = 'medium';
171
+ this._shape = 'rectangle';
172
+ this._fillMode = 'solid';
173
+ this._themeColor = 'base';
94
174
  this._focused = false;
95
175
  this.domEvents = [];
96
176
  validatePackage(packageMetadata);
97
177
  this.direction = localization.rtl ? 'rtl' : 'ltr';
98
- this.localizationChangeSubscription = localization.changes
99
- .subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr');
178
+ this.localizationChangeSubscription = localization.changes.subscribe(({ rtl }) => (this.direction = rtl ? 'rtl' : 'ltr'));
100
179
  this.element = element.nativeElement;
101
180
  this.renderer = renderer;
102
181
  }
@@ -140,7 +219,7 @@ let ButtonDirective = class ButtonDirective {
140
219
  if (icon) {
141
220
  this.iconSetter(icon, () => {
142
221
  this.isIcon = true;
143
- const classes = 'k-icon k-i-' + icon;
222
+ const classes = 'k-button-icon k-icon k-i-' + icon;
144
223
  this.addIcon(classes);
145
224
  });
146
225
  }
@@ -157,7 +236,8 @@ let ButtonDirective = class ButtonDirective {
157
236
  if (iconClassName) {
158
237
  this.iconSetter(iconClassName, () => {
159
238
  this.isIconClass = true;
160
- this.addIcon(iconClassName);
239
+ const classes = 'k-button-icon k-icon ' + iconClassName;
240
+ this.addIcon(classes);
161
241
  });
162
242
  }
163
243
  else {
@@ -187,8 +267,101 @@ let ButtonDirective = class ButtonDirective {
187
267
  get disabled() {
188
268
  return this.isDisabled;
189
269
  }
270
+ /**
271
+ * The size property specifies the width and height of the Button
272
+ * ([see example]({% slug appearance_buttondirective %}#toc-size)).
273
+ *
274
+ * The possible values are:
275
+ * * `'small'`
276
+ * * `'medium'` (default)
277
+ * * `'large'`
278
+ * * `null`
279
+ */
280
+ set size(size) {
281
+ this.handleClasses(size, 'size');
282
+ this._size = size;
283
+ }
284
+ get size() {
285
+ return this._size;
286
+ }
287
+ /**
288
+ * The rounded property specifies the border radius of the Button
289
+ * ([see example]({% slug appearance_buttondirective %}#toc-rounded)).
290
+ *
291
+ * The possible values are:
292
+ * * `'small'`
293
+ * * `'medium'` (default)
294
+ * * `'large'`
295
+ * * `'full'`
296
+ * * `null`
297
+ */
298
+ set rounded(rounded) {
299
+ this.handleClasses(rounded, 'rounded');
300
+ this._rounded = rounded;
301
+ }
302
+ get rounded() {
303
+ return this._rounded;
304
+ }
305
+ /**
306
+ * The fillMode property specifies the background and border styles of the Button
307
+ * ([see example]({% slug appearance_buttondirective %}#toc-fillMode)).
308
+ *
309
+ * The possible values are:
310
+ * * `'flat'`
311
+ * * `'solid'` (default)
312
+ * * `'outline'`
313
+ * * `'link'`
314
+ * * `null`
315
+ */
316
+ set fillMode(fillMode) {
317
+ this.handleClasses(fillMode, 'fillMode');
318
+ this._fillMode = fillMode;
319
+ }
320
+ get fillMode() {
321
+ return this._fillMode;
322
+ }
323
+ /**
324
+ * The Button allows you to specify predefined theme colors.
325
+ * The theme color will be applied as a background and border color while also amending the text color accordingly
326
+ * ([see example]({% slug appearance_buttondirective %}#toc-themeColor)).
327
+ *
328
+ * The possible values are:
329
+ * * `'base'` (default)
330
+ * * `'primary'`
331
+ * * `'secondary'`
332
+ * * `'tertiary'`
333
+ * * `'info'`
334
+ * * `'success'`
335
+ * * `'warning'`
336
+ * * `'error'`
337
+ * * `'dark'`
338
+ * * `'light`'
339
+ * * `'inverse'`
340
+ */
341
+ set themeColor(themeColor) {
342
+ this.handleThemeColor(themeColor);
343
+ this._themeColor = themeColor;
344
+ }
345
+ get themeColor() {
346
+ return this._themeColor;
347
+ }
348
+ /**
349
+ * The shape property specifies if the Button will form a rectangle or square.
350
+ * ([see example]({% slug appearance_buttondirective %}#toc-shape)).
351
+ *
352
+ * The possible values are:
353
+ * * `'square'`
354
+ * * `'rectangle'` (default)
355
+ */
356
+ set shape(shape) {
357
+ this.handleClasses(shape, 'shape');
358
+ this._shape = shape;
359
+ }
360
+ get shape() {
361
+ return this._shape;
362
+ }
190
363
  set isFocused(isFocused) {
191
- this.toggleClass('k-state-focused', isFocused);
364
+ this.toggleClass('k-focus', isFocused);
192
365
  this._focused = isFocused;
193
366
  }
194
367
  get isFocused() {
@@ -197,24 +370,9 @@ let ButtonDirective = class ButtonDirective {
197
370
  get classButton() {
198
371
  return true;
199
372
  }
200
- get classPrimary() {
201
- return this.primary;
202
- }
203
373
  get isToggleable() {
204
374
  return this.toggleable;
205
375
  }
206
- get isFlat() {
207
- return this.look === 'flat';
208
- }
209
- get isBare() {
210
- return this.look === 'bare';
211
- }
212
- get isOutline() {
213
- return this.look === 'outline';
214
- }
215
- get isClear() {
216
- return this.look === 'clear';
217
- }
218
376
  get roleSetter() {
219
377
  return this.role;
220
378
  }
@@ -239,13 +397,28 @@ let ButtonDirective = class ButtonDirective {
239
397
  onBlur() {
240
398
  this.isFocused = false;
241
399
  }
400
+ /**
401
+ * @hidden
402
+ */
403
+ set primary(value) {
404
+ this.themeColor = value ? 'primary' : 'base';
405
+ }
406
+ /**
407
+ * @hidden
408
+ */
409
+ set look(value) {
410
+ switch (value) {
411
+ case 'default':
412
+ this.fillMode = 'solid';
413
+ break;
414
+ default:
415
+ this.fillMode = value;
416
+ break;
417
+ }
418
+ }
242
419
  ngOnInit() {
243
420
  const isSpan = this.element.tagName === SPAN_TAG_NAME;
244
- if (this.service) {
245
- this.buttonLookChangeSubscription = this.service.buttonLookChange
246
- .pipe(filter((look) => look !== 'default'))
247
- .subscribe((look) => this.look = look);
248
- }
421
+ this.addTextSpan();
249
422
  if (!this.element.hasAttribute('role') && this.togglable) {
250
423
  this.toggleAriaPressed(this.toggleable);
251
424
  }
@@ -255,7 +428,8 @@ let ButtonDirective = class ButtonDirective {
255
428
  this.ngZone.runOutsideAngular(() => {
256
429
  this.domEvents.push(this.renderer.listen(this.element, 'click', this._onButtonClick.bind(this)));
257
430
  this.domEvents.push(this.renderer.listen(this.element, 'keydown', (event) => {
258
- if (isSpan && (event.keyCode === Keys.Space || event.keyCode === Keys.Enter)) {
431
+ const isSpaceOrEnter = event.keyCode === Keys.Space || event.keyCode === Keys.Enter;
432
+ if (isSpan && isSpaceOrEnter) {
259
433
  this.click.emit(event);
260
434
  this._onButtonClick();
261
435
  }
@@ -267,17 +441,21 @@ let ButtonDirective = class ButtonDirective {
267
441
  this.toggleAriaPressed(this.toggleable);
268
442
  }
269
443
  }
444
+ ngAfterViewInit() {
445
+ const stylingOptions = ['size', 'rounded', 'shape', 'fillMode'];
446
+ stylingOptions.forEach(input => {
447
+ this.handleClasses(this[input], input);
448
+ });
449
+ }
270
450
  ngAfterViewChecked() {
271
451
  this.setIconTextClasses();
272
452
  }
273
453
  ngOnDestroy() {
274
454
  this.imageNode = null;
275
455
  this.iconNode = null;
456
+ this.iconSpanNode = null;
276
457
  this.renderer = null;
277
458
  this.localizationChangeSubscription.unsubscribe();
278
- if (this.service && this.buttonLookChangeSubscription) {
279
- this.buttonLookChangeSubscription.unsubscribe();
280
- }
281
459
  clearTimeout(this.deferTimeout);
282
460
  this.domEvents.forEach(unbindHandler => unbindHandler());
283
461
  }
@@ -320,7 +498,7 @@ let ButtonDirective = class ButtonDirective {
320
498
  const changed = this.selected !== value;
321
499
  this.selected = value;
322
500
  this.setAttribute('aria-pressed', this.selected.toString());
323
- this.toggleClass('k-state-selected', this.selected);
501
+ this.toggleClass('k-selected', this.selected);
324
502
  if (changed && hasObservers(this.selectedChange)) {
325
503
  this.ngZone.run(() => {
326
504
  this.selectedChange.emit(value);
@@ -340,14 +518,21 @@ let ButtonDirective = class ButtonDirective {
340
518
  }
341
519
  hasText() {
342
520
  if (isDocumentAvailable()) {
343
- return String(this.element.textContent).trim().length > 0;
521
+ return this.element.textContent.trim().length > 0;
344
522
  }
345
523
  else {
346
524
  return false;
347
525
  }
348
526
  }
527
+ get text() {
528
+ if (isDocumentAvailable()) {
529
+ return this.element.innerHTML.trim();
530
+ }
531
+ }
349
532
  addImgIcon(imageUrl) {
350
533
  let renderer = this.renderer;
534
+ this.iconSpanNode = renderer.createElement('span');
535
+ renderer.setProperty(this.iconSpanNode, 'className', 'k-button-icon k-icon');
351
536
  if (this.imageNode) {
352
537
  renderer.setProperty(this.imageNode, 'src', imageUrl);
353
538
  }
@@ -356,8 +541,9 @@ let ButtonDirective = class ButtonDirective {
356
541
  renderer.setProperty(this.imageNode, 'src', imageUrl);
357
542
  renderer.setProperty(this.imageNode, 'className', 'k-image');
358
543
  renderer.setAttribute(this.imageNode, 'role', 'presentation');
359
- this.prependChild(this.imageNode);
360
544
  }
545
+ this.iconSpanNode.appendChild(this.imageNode);
546
+ this.prependChild(this.iconSpanNode);
361
547
  }
362
548
  addIcon(classNames) {
363
549
  let renderer = this.renderer;
@@ -371,6 +557,11 @@ let ButtonDirective = class ButtonDirective {
371
557
  this.prependChild(this.iconNode);
372
558
  }
373
559
  }
560
+ addTextSpan() {
561
+ if (isDocumentAvailable() && this.hasText()) {
562
+ this.element.innerHTML = `<span class='k-button-text'>${this.text}</span>`;
563
+ }
564
+ }
374
565
  prependChild(node) {
375
566
  this.defer(() => {
376
567
  if (this.renderer && node !== this.element.firstChild) {
@@ -392,7 +583,9 @@ let ButtonDirective = class ButtonDirective {
392
583
  removeImageNode() {
393
584
  if (this.imageNode && this.renderer.parentNode(this.imageNode)) {
394
585
  this.renderer.removeChild(this.element, this.imageNode);
586
+ this.renderer.removeChild(this.element, this.iconSpanNode);
395
587
  this.imageNode = null;
588
+ this.iconSpanNode = null;
396
589
  }
397
590
  }
398
591
  removeIconNode() {
@@ -400,6 +593,10 @@ let ButtonDirective = class ButtonDirective {
400
593
  this.renderer.removeChild(this.element, this.iconNode);
401
594
  this.iconNode = null;
402
595
  }
596
+ if (this.iconSpanNode) {
597
+ this.renderer.removeChild(this.element, this.iconSpanNode);
598
+ this.iconSpanNode = null;
599
+ }
403
600
  }
404
601
  updateIconNode() {
405
602
  if (!this.isIcon && !this.isIconClass) {
@@ -408,9 +605,7 @@ let ButtonDirective = class ButtonDirective {
408
605
  }
409
606
  setIconTextClasses() {
410
607
  const hasIcon = this.isIcon || this.isIconClass || this.imageNode;
411
- const hasText = this.hasText();
412
- this.toggleClass('k-button-icon', hasIcon && !hasText);
413
- this.toggleClass('k-button-icontext', hasIcon && hasText);
608
+ this.toggleClass('k-icon-button', hasIcon && !this.hasText());
414
609
  }
415
610
  toggleClass(className, add) {
416
611
  if (add) {
@@ -430,6 +625,31 @@ let ButtonDirective = class ButtonDirective {
430
625
  this.setSelected(!this.selected);
431
626
  }
432
627
  }
628
+ handleClasses(value, input) {
629
+ const elem = this.element;
630
+ const classes = getStylingClasses('button', input, this[input], value);
631
+ if (input === 'fillMode') {
632
+ this.handleThemeColor(this.themeColor, this[input], value);
633
+ }
634
+ if (classes.toRemove) {
635
+ this.renderer.removeClass(elem, classes.toRemove);
636
+ }
637
+ if (classes.toAdd) {
638
+ this.renderer.addClass(elem, classes.toAdd);
639
+ }
640
+ }
641
+ handleThemeColor(value, prevFillMode, fillMode) {
642
+ const elem = this.element;
643
+ const removeFillMode = prevFillMode ? prevFillMode : this.fillMode;
644
+ const addFillMode = fillMode ? fillMode : this.fillMode;
645
+ const themeColorClass = getThemeColorClasses('button', removeFillMode, addFillMode, this.themeColor, value);
646
+ this.renderer.removeClass(elem, themeColorClass.toRemove);
647
+ if (addFillMode !== null && fillMode !== null) {
648
+ if (themeColorClass.toAdd) {
649
+ this.renderer.addClass(elem, themeColorClass.toAdd);
650
+ }
651
+ }
652
+ }
433
653
  };
434
654
  __decorate([
435
655
  Input(),
@@ -440,14 +660,6 @@ __decorate([
440
660
  __metadata("design:type", Boolean),
441
661
  __metadata("design:paramtypes", [Boolean])
442
662
  ], ButtonDirective.prototype, "togglable", null);
443
- __decorate([
444
- Input(),
445
- __metadata("design:type", Boolean)
446
- ], ButtonDirective.prototype, "primary", void 0);
447
- __decorate([
448
- Input(),
449
- __metadata("design:type", String)
450
- ], ButtonDirective.prototype, "look", void 0);
451
663
  __decorate([
452
664
  Input(),
453
665
  __metadata("design:type", Boolean),
@@ -478,6 +690,31 @@ __decorate([
478
690
  __metadata("design:type", Boolean),
479
691
  __metadata("design:paramtypes", [Boolean])
480
692
  ], ButtonDirective.prototype, "disabled", null);
693
+ __decorate([
694
+ Input(),
695
+ __metadata("design:type", String),
696
+ __metadata("design:paramtypes", [String])
697
+ ], ButtonDirective.prototype, "size", null);
698
+ __decorate([
699
+ Input(),
700
+ __metadata("design:type", String),
701
+ __metadata("design:paramtypes", [String])
702
+ ], ButtonDirective.prototype, "rounded", null);
703
+ __decorate([
704
+ Input(),
705
+ __metadata("design:type", String),
706
+ __metadata("design:paramtypes", [String])
707
+ ], ButtonDirective.prototype, "fillMode", null);
708
+ __decorate([
709
+ Input(),
710
+ __metadata("design:type", String),
711
+ __metadata("design:paramtypes", [String])
712
+ ], ButtonDirective.prototype, "themeColor", null);
713
+ __decorate([
714
+ Input(),
715
+ __metadata("design:type", String),
716
+ __metadata("design:paramtypes", [String])
717
+ ], ButtonDirective.prototype, "shape", null);
481
718
  __decorate([
482
719
  Input(),
483
720
  __metadata("design:type", String)
@@ -495,36 +732,11 @@ __decorate([
495
732
  __metadata("design:type", Boolean),
496
733
  __metadata("design:paramtypes", [])
497
734
  ], ButtonDirective.prototype, "classButton", null);
498
- __decorate([
499
- HostBinding('class.k-primary'),
500
- __metadata("design:type", Boolean),
501
- __metadata("design:paramtypes", [])
502
- ], ButtonDirective.prototype, "classPrimary", null);
503
735
  __decorate([
504
736
  HostBinding('class.k-toggle-button'),
505
737
  __metadata("design:type", Boolean),
506
738
  __metadata("design:paramtypes", [])
507
739
  ], ButtonDirective.prototype, "isToggleable", null);
508
- __decorate([
509
- HostBinding('class.k-flat'),
510
- __metadata("design:type", Boolean),
511
- __metadata("design:paramtypes", [])
512
- ], ButtonDirective.prototype, "isFlat", null);
513
- __decorate([
514
- HostBinding('class.k-bare'),
515
- __metadata("design:type", Boolean),
516
- __metadata("design:paramtypes", [])
517
- ], ButtonDirective.prototype, "isBare", null);
518
- __decorate([
519
- HostBinding('class.k-outline'),
520
- __metadata("design:type", Boolean),
521
- __metadata("design:paramtypes", [])
522
- ], ButtonDirective.prototype, "isOutline", null);
523
- __decorate([
524
- HostBinding('class.k-button-clear'),
525
- __metadata("design:type", Boolean),
526
- __metadata("design:paramtypes", [])
527
- ], ButtonDirective.prototype, "isClear", null);
528
740
  __decorate([
529
741
  HostBinding('attr.role'),
530
742
  __metadata("design:type", String),
@@ -532,12 +744,12 @@ __decorate([
532
744
  ], ButtonDirective.prototype, "roleSetter", null);
533
745
  __decorate([
534
746
  HostBinding('attr.aria-disabled'),
535
- HostBinding('class.k-state-disabled'),
747
+ HostBinding('class.k-disabled'),
536
748
  __metadata("design:type", Boolean),
537
749
  __metadata("design:paramtypes", [])
538
750
  ], ButtonDirective.prototype, "classDisabled", null);
539
751
  __decorate([
540
- HostBinding('class.k-state-selected'),
752
+ HostBinding('class.k-selected'),
541
753
  __metadata("design:type", Boolean),
542
754
  __metadata("design:paramtypes", [])
543
755
  ], ButtonDirective.prototype, "classActive", null);
@@ -558,6 +770,16 @@ __decorate([
558
770
  __metadata("design:paramtypes", []),
559
771
  __metadata("design:returntype", void 0)
560
772
  ], ButtonDirective.prototype, "onBlur", null);
773
+ __decorate([
774
+ Input(),
775
+ __metadata("design:type", Boolean),
776
+ __metadata("design:paramtypes", [Boolean])
777
+ ], ButtonDirective.prototype, "primary", null);
778
+ __decorate([
779
+ Input(),
780
+ __metadata("design:type", String),
781
+ __metadata("design:paramtypes", [String])
782
+ ], ButtonDirective.prototype, "look", null);
561
783
  ButtonDirective = __decorate([
562
784
  Directive({
563
785
  exportAs: 'kendoButton',
@@ -568,7 +790,7 @@ ButtonDirective = __decorate([
568
790
  useValue: 'kendo.button'
569
791
  }
570
792
  ],
571
- selector: 'button[kendoButton], span[kendoButton]' // tslint:disable-line
793
+ selector: 'button[kendoButton], span[kendoButton]',
572
794
  }),
573
795
  __param(2, Optional()),
574
796
  __metadata("design:paramtypes", [ElementRef,
@@ -578,46 +800,6 @@ ButtonDirective = __decorate([
578
800
  NgZone])
579
801
  ], ButtonDirective);
580
802
 
581
- /* tslint:disable:no-null-keyword */
582
- /* tslint:disable:no-bitwise */
583
- const resolvedPromise = Promise.resolve(null);
584
- /**
585
- * @hidden
586
- */
587
- const isPresent = (value) => value !== null && value !== undefined;
588
- /**
589
- * @hidden
590
- */
591
- const tick = (f) => (resolvedPromise.then(f));
592
- /**
593
- * @hidden
594
- */
595
- function isDocumentNode(container) {
596
- return container.nodeType === 9;
597
- }
598
- /**
599
- * @hidden
600
- */
601
- function closest(element, selector) {
602
- if (element.closest) {
603
- return element.closest(selector);
604
- }
605
- const matches = Element.prototype.matches ?
606
- (el, sel) => el.matches(sel)
607
- : (el, sel) => el.msMatchesSelector(sel);
608
- let node = element;
609
- while (node && !isDocumentNode(node)) {
610
- if (matches(node, selector)) {
611
- return node;
612
- }
613
- node = node.parentNode;
614
- }
615
- }
616
- /**
617
- * @hidden
618
- */
619
- const replaceMessagePlaceholder = (message, name, value) => message.replace(new RegExp(`\{\\s*${name}\\s*\}`, 'g'), value);
620
-
621
803
  /**
622
804
  * @hidden
623
805
  */
@@ -657,23 +839,13 @@ let ButtonGroupComponent = class ButtonGroupComponent {
657
839
  * By default, the selection mode of the ButtonGroup is set to `multiple`.
658
840
  */
659
841
  this.selection = 'multiple';
660
- /**
661
- * Changes the visual appearance by using alternative styling options
662
- * ([more information and examples]({% slug styling_buttongroup %})).
663
- * The `look` property of the ButtonGroup takes precedence over the `look` property
664
- * of the individual buttons that are part of the group.
665
- *
666
- * The available values are:
667
- * * `flat`
668
- * * `outline`
669
- */
670
- this.look = 'default';
671
842
  /**
672
843
  * Fires every time keyboard navigation occurs.
673
844
  */
674
845
  this.navigate = new EventEmitter();
675
846
  this._tabIndex = 0;
676
847
  this.currentTabIndex = 0;
848
+ validatePackage(packageMetadata);
677
849
  this.localizationChangeSubscription = localization.changes.subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr');
678
850
  }
679
851
  /**
@@ -695,15 +867,6 @@ let ButtonGroupComponent = class ButtonGroupComponent {
695
867
  get stretchedClass() {
696
868
  return !!this.width;
697
869
  }
698
- get isFlat() {
699
- return this.look === 'flat';
700
- }
701
- get isBare() {
702
- return this.look === 'bare';
703
- }
704
- get isOutline() {
705
- return this.look === 'outline';
706
- }
707
870
  get getRole() {
708
871
  return this.isSelectionSingle() ? 'radiogroup' : 'group';
709
872
  }
@@ -748,7 +911,6 @@ let ButtonGroupComponent = class ButtonGroupComponent {
748
911
  }
749
912
  }
750
913
  ngOnInit() {
751
- this.service.setButtonLook(this.look);
752
914
  this.subscription = this.service.buttonClicked$.subscribe((button) => {
753
915
  let newSelectionValue;
754
916
  if (this.isSelectionSingle()) {
@@ -762,7 +924,7 @@ let ButtonGroupComponent = class ButtonGroupComponent {
762
924
  if (button.togglable) {
763
925
  button.setSelected(newSelectionValue);
764
926
  }
765
- button.setAttribute(tabindex, "0");
927
+ button.setAttribute(tabindex, '0');
766
928
  });
767
929
  }
768
930
  ngOnChanges(change) {
@@ -777,10 +939,10 @@ let ButtonGroupComponent = class ButtonGroupComponent {
777
939
  ngAfterContentInit() {
778
940
  this.buttons.forEach((button) => {
779
941
  if (button.selected) {
780
- button.setAttribute(tabindex, "0");
942
+ button.setAttribute(tabindex, '0');
781
943
  }
782
944
  else {
783
- button.setAttribute(tabindex, "-1");
945
+ button.setAttribute(tabindex, '-1');
784
946
  }
785
947
  });
786
948
  }
@@ -824,24 +986,24 @@ let ButtonGroupComponent = class ButtonGroupComponent {
824
986
  deactivate(buttons) {
825
987
  buttons.forEach((button) => {
826
988
  button.setSelected(false);
827
- button.setAttribute(tabindex, "-1");
989
+ button.setAttribute(tabindex, '-1');
828
990
  });
829
991
  }
830
992
  activate(buttons) {
831
993
  buttons.forEach((button) => {
832
994
  button.setSelected(true);
833
- button.setAttribute(tabindex, "0");
995
+ button.setAttribute(tabindex, '0');
834
996
  button.focus();
835
997
  });
836
998
  }
837
999
  defocus(buttons) {
838
1000
  buttons.forEach((button) => {
839
- button.setAttribute(tabindex, "-1");
1001
+ button.setAttribute(tabindex, '-1');
840
1002
  });
841
1003
  }
842
1004
  focus(buttons) {
843
1005
  buttons.forEach((button) => {
844
- button.setAttribute(tabindex, "0");
1006
+ button.setAttribute(tabindex, '0');
845
1007
  button.focus();
846
1008
  });
847
1009
  }
@@ -868,10 +1030,6 @@ __decorate([
868
1030
  Input('width'),
869
1031
  __metadata("design:type", String)
870
1032
  ], ButtonGroupComponent.prototype, "width", void 0);
871
- __decorate([
872
- Input(),
873
- __metadata("design:type", String)
874
- ], ButtonGroupComponent.prototype, "look", void 0);
875
1033
  __decorate([
876
1034
  Input(),
877
1035
  __metadata("design:type", Number),
@@ -891,7 +1049,7 @@ __decorate([
891
1049
  __metadata("design:paramtypes", [])
892
1050
  ], ButtonGroupComponent.prototype, "wrapperClass", null);
893
1051
  __decorate([
894
- HostBinding('class.k-state-disabled'),
1052
+ HostBinding('class.k-disabled'),
895
1053
  __metadata("design:type", Boolean),
896
1054
  __metadata("design:paramtypes", [])
897
1055
  ], ButtonGroupComponent.prototype, "disabledClass", null);
@@ -900,21 +1058,6 @@ __decorate([
900
1058
  __metadata("design:type", Boolean),
901
1059
  __metadata("design:paramtypes", [])
902
1060
  ], ButtonGroupComponent.prototype, "stretchedClass", null);
903
- __decorate([
904
- HostBinding('class.k-button-group-flat'),
905
- __metadata("design:type", Boolean),
906
- __metadata("design:paramtypes", [])
907
- ], ButtonGroupComponent.prototype, "isFlat", null);
908
- __decorate([
909
- HostBinding('class.k-button-group-bare'),
910
- __metadata("design:type", Boolean),
911
- __metadata("design:paramtypes", [])
912
- ], ButtonGroupComponent.prototype, "isBare", null);
913
- __decorate([
914
- HostBinding('class.k-button-group-outline'),
915
- __metadata("design:type", Boolean),
916
- __metadata("design:paramtypes", [])
917
- ], ButtonGroupComponent.prototype, "isOutline", null);
918
1061
  __decorate([
919
1062
  HostBinding('attr.role'),
920
1063
  __metadata("design:type", String),
@@ -1104,8 +1247,17 @@ let ListComponent = class ListComponent {
1104
1247
  constructor() {
1105
1248
  this.onItemClick = new EventEmitter();
1106
1249
  this.onItemBlur = new EventEmitter();
1250
+ this.sizeClass = '';
1107
1251
  validatePackage(packageMetadata);
1108
1252
  }
1253
+ set size(size) {
1254
+ if (size) {
1255
+ this.sizeClass = `k-menu-group-${SIZES[size]}`;
1256
+ }
1257
+ else {
1258
+ this.sizeClass = '';
1259
+ }
1260
+ }
1109
1261
  getText(dataItem) {
1110
1262
  if (dataItem) {
1111
1263
  return this.textField ? dataItem[this.textField] : dataItem.text || dataItem;
@@ -1145,37 +1297,44 @@ __decorate([
1145
1297
  Output(),
1146
1298
  __metadata("design:type", EventEmitter)
1147
1299
  ], ListComponent.prototype, "onItemBlur", void 0);
1300
+ __decorate([
1301
+ Input(),
1302
+ __metadata("design:type", String),
1303
+ __metadata("design:paramtypes", [String])
1304
+ ], ListComponent.prototype, "size", null);
1148
1305
  ListComponent = __decorate([
1149
1306
  Component({
1150
1307
  selector: 'kendo-button-list',
1151
1308
  template: `
1152
- <ul class="k-list k-reset" unselectable="on" role="menu">
1153
- <li role="menuitem" unselectable="on" tabindex="-1"
1309
+ <ul class="k-group k-menu-group k-reset" [ngClass]="sizeClass" unselectable="on" role="menu">
1310
+ <li role="menuitem" unselectable="on"
1154
1311
  kendoButtonFocusable
1155
1312
  *ngFor="let dataItem of data; let index = index;"
1156
- [index]="index"
1157
- [ngClass]="{'k-item': true, 'k-state-disabled': dataItem.disabled}"
1313
+ class="k-item k-menu-item"
1158
1314
  (click)="onClick(index)"
1159
1315
  (blur)="onBlur()"
1160
1316
  [attr.aria-disabled]="dataItem.disabled ? true : false">
1161
- <ng-template *ngIf="itemTemplate?.templateRef"
1162
- [templateContext]="{
1163
- templateRef: itemTemplate?.templateRef,
1164
- $implicit: dataItem
1165
- }">
1317
+ <ng-template [ngIf]="itemTemplate?.templateRef">
1318
+ <span kendoButtonFocusable [index]="index" class="k-link k-menu-link" [class.k-disabled]="dataItem.disabled" tabindex="-1">
1319
+ <ng-template [templateContext]="{templateRef: itemTemplate?.templateRef, $implicit: dataItem}"></ng-template>
1320
+ </span>
1166
1321
  </ng-template>
1167
1322
  <ng-template [ngIf]="!itemTemplate?.templateRef">
1168
- <span
1169
- *ngIf="dataItem.icon || dataItem.iconClass"
1170
- [ngClass]="getIconClasses(dataItem)"
1171
- ></span>
1172
- <img
1173
- *ngIf="dataItem.imageUrl"
1174
- class="k-image"
1175
- [src]="dataItem.imageUrl"
1176
- alt=""
1177
- >
1178
- {{ getText(dataItem) }}
1323
+ <span kendoButtonFocusable [index]="index" class="k-link k-menu-link" [class.k-disabled]="dataItem.disabled" tabindex="-1">
1324
+ <span
1325
+ *ngIf="dataItem.icon || dataItem.iconClass"
1326
+ [ngClass]="getIconClasses(dataItem)"
1327
+ ></span>
1328
+ <img
1329
+ *ngIf="dataItem.imageUrl"
1330
+ class="k-image"
1331
+ [src]="dataItem.imageUrl"
1332
+ alt=""
1333
+ >
1334
+ <span *ngIf="getText(dataItem)" class="k-menu-link-text">
1335
+ {{ getText(dataItem) }}
1336
+ </span>
1337
+ </span>
1179
1338
  </ng-template>
1180
1339
  </li>
1181
1340
  </ul>
@@ -1231,10 +1390,10 @@ let FocusableDirective = class FocusableDirective {
1231
1390
  }
1232
1391
  ngOnInit() {
1233
1392
  if (this.index === this.focusService.focused) {
1234
- this.renderer.addClass(this.element, 'k-state-focused');
1393
+ this.renderer.addClass(this.element, 'k-focus');
1235
1394
  }
1236
1395
  else {
1237
- this.renderer.removeClass(this.element, 'k-state-focused');
1396
+ this.renderer.removeClass(this.element, 'k-focus');
1238
1397
  }
1239
1398
  }
1240
1399
  /**
@@ -1249,11 +1408,11 @@ let FocusableDirective = class FocusableDirective {
1249
1408
  }
1250
1409
  this.focusSubscription = this.focusService.onFocus.subscribe((index) => {
1251
1410
  if (this.index === index) {
1252
- this.renderer.addClass(this.element, 'k-state-focused');
1411
+ this.renderer.addClass(this.element, 'k-focus');
1253
1412
  this.element.focus();
1254
1413
  }
1255
1414
  else {
1256
- this.renderer.removeClass(this.element, 'k-state-focused');
1415
+ this.renderer.removeClass(this.element, 'k-focus');
1257
1416
  }
1258
1417
  });
1259
1418
  }
@@ -1368,6 +1527,7 @@ class ListButton {
1368
1527
  this._popupSettings = { animate: true, popupClass: '' };
1369
1528
  this.listId = guid();
1370
1529
  this._isFocused = false;
1530
+ validatePackage(packageMetadata);
1371
1531
  this.focusService = focusService;
1372
1532
  this.navigationService = navigationService;
1373
1533
  this.wrapper = wrapperRef.nativeElement;
@@ -1375,7 +1535,7 @@ class ListButton {
1375
1535
  this.subscribeEvents();
1376
1536
  }
1377
1537
  get popupClasses() {
1378
- const popupClasses = ['k-list-container', 'k-reset', 'k-group'];
1538
+ const popupClasses = ['k-menu-popup'];
1379
1539
  if (this._popupSettings.popupClass) {
1380
1540
  popupClasses.push(this._popupSettings.popupClass);
1381
1541
  }
@@ -1719,11 +1879,12 @@ const NAVIGATION_SETTINGS_PROVIDER = {
1719
1879
  * ```
1720
1880
  */
1721
1881
  let SplitButtonComponent = class SplitButtonComponent extends ListButton {
1722
- constructor(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization, cdr) {
1882
+ constructor(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization, cdr, renderer) {
1723
1883
  super(focusService, navigationService, wrapperRef, zone, localization, cdr);
1724
1884
  this.popupService = popupService;
1725
1885
  this.elRef = elRef;
1726
1886
  this.localization = localization;
1887
+ this.renderer = renderer;
1727
1888
  /**
1728
1889
  * Sets the text of the SplitButton.
1729
1890
  */
@@ -1748,13 +1909,35 @@ let SplitButtonComponent = class SplitButtonComponent extends ListButton {
1748
1909
  */
1749
1910
  this.imageUrl = '';
1750
1911
  /**
1751
- * Changes the visual appearance by using alternative styling options.
1912
+ * The size property specifies the width and height of the SplitButton
1913
+ * ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-size)).
1752
1914
  *
1753
- * The available values are:
1754
- * * `flat`
1755
- * * `outline`
1915
+ * The possible values are:
1916
+ * * `'small'`
1917
+ * * `'medium'` (default)
1918
+ * * `'large'`
1919
+ * * `null`
1920
+ */
1921
+ this.size = 'medium';
1922
+ /**
1923
+ * The SplitButton allows you to specify predefined theme colors.
1924
+ * The theme color will be applied as a background and border color while also amending the text color accordingly
1925
+ * ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-themeColor)).
1926
+ *
1927
+ * The possible values are:
1928
+ * * `base` &mdash;Applies coloring based on the `base` theme color. (default)
1929
+ * * `primary` &mdash;Applies coloring based on the `primary` theme color.
1930
+ * * `secondary`&mdash;Applies coloring based on the `secondary` theme color.
1931
+ * * `tertiary`&mdash; Applies coloring based on the `tertiary` theme color.
1932
+ * * `info`&mdash;Applies coloring based on the `info` theme color.
1933
+ * * `success`&mdash; Applies coloring based on the `success` theme color.
1934
+ * * `warning`&mdash; Applies coloring based on the `warning` theme color.
1935
+ * * `error`&mdash; Applies coloring based on the `error` theme color.
1936
+ * * `dark`&mdash; Applies coloring based on the `dark` theme color.
1937
+ * * `light`&mdash; Applies coloring based on the `light` theme color.
1938
+ * * `inverse`&mdash; Applies coloring based on the `inverse` theme color.
1756
1939
  */
1757
- this.look = 'default';
1940
+ this.themeColor = 'base';
1758
1941
  /**
1759
1942
  * Specifies the [`tabIndex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.
1760
1943
  */
@@ -1832,16 +2015,53 @@ let SplitButtonComponent = class SplitButtonComponent extends ListButton {
1832
2015
  * This event is preventable. If you cancel the event, the popup will remain open.
1833
2016
  */
1834
2017
  this.close = new EventEmitter();
1835
- this.listId = guid();
1836
2018
  /**
1837
2019
  * @hidden
1838
2020
  */
1839
2021
  this.activeArrow = false;
2022
+ this.listId = guid();
1840
2023
  this.buttonText = '';
1841
2024
  this.lockFocus = false;
2025
+ this._rounded = 'medium';
2026
+ this._fillMode = "solid";
1842
2027
  this._itemClick = this.itemClick;
1843
2028
  this._blur = this.onBlur;
1844
2029
  }
2030
+ /**
2031
+ * The rounded property specifies the border radius of the SplitButton
2032
+ * ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-rounded)).
2033
+ *
2034
+ * The possible values are:
2035
+ * * `'small'`
2036
+ * * `'medium'` (default)
2037
+ * * `'large'`
2038
+ * * `'full'`
2039
+ * * `null`
2040
+ */
2041
+ set rounded(rounded) {
2042
+ this.handleClasses(rounded, 'rounded');
2043
+ this._rounded = rounded;
2044
+ }
2045
+ get rounded() {
2046
+ return this._rounded;
2047
+ }
2048
+ /**
2049
+ * The fillMode property specifies the background and border styles of the SplitButton
2050
+ * ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-fillMode)).
2051
+ *
2052
+ * The available values are:
2053
+ * * `solid` (default)
2054
+ * * `flat`
2055
+ * * `outline`
2056
+ * * `link`
2057
+ */
2058
+ set fillMode(fillMode) {
2059
+ // Temporary workaround for missing 'clear' styles
2060
+ this._fillMode = fillMode === 'clear' ? 'flat' : fillMode;
2061
+ }
2062
+ get fillMode() {
2063
+ return this._fillMode;
2064
+ }
1845
2065
  /**
1846
2066
  * When set to `true`, disables a SplitButton item
1847
2067
  * ([see example]({% slug databinding_splitbutton %}#toc-arrays-of-complex-data)).
@@ -1927,12 +2147,6 @@ let SplitButtonComponent = class SplitButtonComponent extends ListButton {
1927
2147
  get isFocused() {
1928
2148
  return this._isFocused && !this._disabled;
1929
2149
  }
1930
- get isFlat() {
1931
- return this.look === 'flat';
1932
- }
1933
- get isOutline() {
1934
- return this.look === 'outline';
1935
- }
1936
2150
  get widgetClasses() {
1937
2151
  return true;
1938
2152
  }
@@ -2019,6 +2233,7 @@ let SplitButtonComponent = class SplitButtonComponent extends ListButton {
2019
2233
  */
2020
2234
  ngAfterViewInit() {
2021
2235
  this.updateButtonText();
2236
+ this.handleClasses(this.rounded, 'rounded');
2022
2237
  }
2023
2238
  /**
2024
2239
  * @hidden
@@ -2166,6 +2381,16 @@ let SplitButtonComponent = class SplitButtonComponent extends ListButton {
2166
2381
  this.popupRef = null;
2167
2382
  }
2168
2383
  }
2384
+ handleClasses(value, input) {
2385
+ const elem = this.wrapperRef.nativeElement;
2386
+ const classes = getStylingClasses('button', input, this[input], value);
2387
+ if (classes.toRemove) {
2388
+ this.renderer.removeClass(elem, classes.toRemove);
2389
+ }
2390
+ if (classes.toAdd) {
2391
+ this.renderer.addClass(elem, classes.toAdd);
2392
+ }
2393
+ }
2169
2394
  };
2170
2395
  __decorate([
2171
2396
  Input(),
@@ -2190,7 +2415,21 @@ __decorate([
2190
2415
  __decorate([
2191
2416
  Input(),
2192
2417
  __metadata("design:type", String)
2193
- ], SplitButtonComponent.prototype, "look", void 0);
2418
+ ], SplitButtonComponent.prototype, "size", void 0);
2419
+ __decorate([
2420
+ Input(),
2421
+ __metadata("design:type", String),
2422
+ __metadata("design:paramtypes", [String])
2423
+ ], SplitButtonComponent.prototype, "rounded", null);
2424
+ __decorate([
2425
+ Input(),
2426
+ __metadata("design:type", String),
2427
+ __metadata("design:paramtypes", [String])
2428
+ ], SplitButtonComponent.prototype, "fillMode", null);
2429
+ __decorate([
2430
+ Input(),
2431
+ __metadata("design:type", String)
2432
+ ], SplitButtonComponent.prototype, "themeColor", void 0);
2194
2433
  __decorate([
2195
2434
  Input(),
2196
2435
  __metadata("design:type", Boolean),
@@ -2271,20 +2510,10 @@ __decorate([
2271
2510
  __metadata("design:type", ViewContainerRef)
2272
2511
  ], SplitButtonComponent.prototype, "containerRef", void 0);
2273
2512
  __decorate([
2274
- HostBinding('class.k-state-focused'),
2513
+ HostBinding('class.k-focus'),
2275
2514
  __metadata("design:type", Boolean),
2276
2515
  __metadata("design:paramtypes", [Boolean])
2277
2516
  ], SplitButtonComponent.prototype, "isFocused", null);
2278
- __decorate([
2279
- HostBinding('class.k-flat'),
2280
- __metadata("design:type", Boolean),
2281
- __metadata("design:paramtypes", [])
2282
- ], SplitButtonComponent.prototype, "isFlat", null);
2283
- __decorate([
2284
- HostBinding('class.k-outline'),
2285
- __metadata("design:type", Boolean),
2286
- __metadata("design:paramtypes", [])
2287
- ], SplitButtonComponent.prototype, "isOutline", null);
2288
2517
  __decorate([
2289
2518
  HostBinding('class.k-split-button'),
2290
2519
  HostBinding('class.k-button-group'),
@@ -2337,11 +2566,15 @@ SplitButtonComponent = __decorate([
2337
2566
  kendoButton
2338
2567
  #button
2339
2568
  [type]="type"
2340
- [look]="look"
2341
2569
  [tabindex]="componentTabIndex"
2342
2570
  [disabled]="disabled"
2571
+ [size]="size"
2572
+ [rounded]="rounded"
2573
+ [fillMode]="fillMode"
2574
+ [themeColor]="themeColor"
2343
2575
  [icon]="icon"
2344
- [class.k-state-active]="active"
2576
+ [class.k-active]="active"
2577
+ [class.k-icon-button]="!text && icon"
2345
2578
  [iconClass]="iconClass"
2346
2579
  [imageUrl]="imageUrl"
2347
2580
  [ngClass]="buttonClass"
@@ -2356,16 +2589,21 @@ SplitButtonComponent = __decorate([
2356
2589
  [attr.aria-owns]="listId"
2357
2590
  [attr.aria-label]="ariaLabel"
2358
2591
  >
2359
- {{ text }}<ng-content></ng-content>
2592
+ <span *ngIf="text" class="k-button-text">
2593
+ {{ text }}
2594
+ </span><ng-content></ng-content>
2360
2595
  </button>
2361
2596
  <button
2362
2597
  kendoButton
2363
2598
  #arrowButton
2364
2599
  type="button"
2365
- [class.k-state-active]="activeArrow"
2600
+ [class.k-active]="activeArrow"
2366
2601
  [disabled]="disabled"
2367
2602
  [icon]="arrowButtonIcon"
2368
- [look]="look"
2603
+ [size]="size"
2604
+ [rounded]="rounded"
2605
+ [fillMode]="fillMode"
2606
+ [themeColor]="fillMode ? themeColor : null"
2369
2607
  [tabindex]="-1"
2370
2608
  [ngClass]="arrowButtonClass"
2371
2609
  (click)="onArrowButtonClick()"
@@ -2383,6 +2621,7 @@ SplitButtonComponent = __decorate([
2383
2621
  (keypress)="keyPressHandler($event)"
2384
2622
  (keyup)="keyUpHandler($event)"
2385
2623
  [attr.dir]="dir"
2624
+ [size]="size"
2386
2625
  >
2387
2626
  </kendo-button-list>
2388
2627
  </ng-template>
@@ -2396,7 +2635,8 @@ SplitButtonComponent = __decorate([
2396
2635
  PopupService,
2397
2636
  ElementRef,
2398
2637
  LocalizationService,
2399
- ChangeDetectorRef])
2638
+ ChangeDetectorRef,
2639
+ Renderer2])
2400
2640
  ], SplitButtonComponent);
2401
2641
 
2402
2642
  /**
@@ -2532,17 +2772,58 @@ let DropDownButtonComponent = class DropDownButtonComponent extends ListButton {
2532
2772
  */
2533
2773
  this.imageUrl = '';
2534
2774
  /**
2535
- * Adds visual weight to the default button and makes it primary.
2775
+ * The size property specifies the width and height of the DropDownButton
2776
+ * ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-size)).
2777
+ *
2778
+ * The possible values are:
2779
+ * * `'small'`
2780
+ * * `'medium'` (default)
2781
+ * * `'large'`
2782
+ * * `null`
2783
+ */
2784
+ this.size = 'medium';
2785
+ /**
2786
+ * The shape property specifies if the DropDownButton will be a square or rectangle.
2787
+ * ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-shape)).
2788
+ *
2789
+ * The possible values are:
2790
+ * * `'rectangle'` (default)
2791
+ * * `'square'`
2792
+ * * `null`
2536
2793
  */
2537
- this.primary = false;
2794
+ this.shape = 'rectangle';
2538
2795
  /**
2539
- * Changes the visual appearance by using alternative styling options.
2796
+ * The rounded property specifies the border radius of the DropDownButton
2797
+ * ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-rounded)).
2540
2798
  *
2541
- * The available values are:
2542
- * * `flat`
2543
- * * `outline`
2799
+ * The possible values are:
2800
+ * * `'small'`
2801
+ * * `'medium'` (default)
2802
+ * * `'large'`
2803
+ * * `'full'`
2804
+ * * `null`
2805
+ */
2806
+ this.rounded = 'medium';
2807
+ /**
2808
+ * The DropDownButton allows you to specify predefined theme colors.
2809
+ * The theme color will be applied as a background and border color while also amending the text color accordingly
2810
+ * ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-themeColor)).
2811
+ *
2812
+ * The possible values are:
2813
+ * * `base` &mdash;Applies coloring based on the `base` theme color. (default)
2814
+ * * `primary` &mdash;Applies coloring based on the `primary` theme color.
2815
+ * * `secondary`&mdash;Applies coloring based on the `secondary` theme color.
2816
+ * * `tertiary`&mdash; Applies coloring based on the `tertiary` theme color.
2817
+ * * `info`&mdash;Applies coloring based on the `info` theme color.
2818
+ * * `success`&mdash; Applies coloring based on the `success` theme color.
2819
+ * * `warning`&mdash; Applies coloring based on the `warning` theme color.
2820
+ * * `error`&mdash; Applies coloring based on the `error` theme color.
2821
+ * * `dark`&mdash; Applies coloring based on the `dark` theme color.
2822
+ * * `light`&mdash; Applies coloring based on the `light` theme color.
2823
+ * * `inverse`&mdash; Applies coloring based on the `inverse` theme color.
2824
+ * * `null` &mdash;Removes the default CSS class (no class would be rendered).
2544
2825
  */
2545
- this.look = 'default';
2826
+ this.themeColor = 'base';
2546
2827
  /**
2547
2828
  * Specifies the [`tabIndex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.
2548
2829
  */
@@ -2570,6 +2851,7 @@ let DropDownButtonComponent = class DropDownButtonComponent extends ListButton {
2570
2851
  */
2571
2852
  this.onBlur = new EventEmitter(); //tslint:disable-line:no-output-rename
2572
2853
  this.listId = guid();
2854
+ this._fillMode = 'solid';
2573
2855
  this._itemClick = this.itemClick;
2574
2856
  this._blur = this.onBlur;
2575
2857
  }
@@ -2611,6 +2893,24 @@ let DropDownButtonComponent = class DropDownButtonComponent extends ListButton {
2611
2893
  get data() {
2612
2894
  return this._data;
2613
2895
  }
2896
+ /**
2897
+ * The fillMode property specifies the background and border styles of the DropDownButton
2898
+ * ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-fillMode)).
2899
+ *
2900
+ * The available values are:
2901
+ * * `solid` (default)
2902
+ * * `flat`
2903
+ * * `outline`
2904
+ * * `link`
2905
+ * * `null`
2906
+ */
2907
+ set fillMode(fillMode) {
2908
+ // Temporary workaround for missing 'clear' styles
2909
+ this._fillMode = fillMode === 'clear' ? 'flat' : fillMode;
2910
+ }
2911
+ get fillMode() {
2912
+ return this._fillMode;
2913
+ }
2614
2914
  /**
2615
2915
  * @hidden
2616
2916
  */
@@ -2652,12 +2952,6 @@ let DropDownButtonComponent = class DropDownButtonComponent extends ListButton {
2652
2952
  get focused() {
2653
2953
  return this._isFocused && !this._disabled;
2654
2954
  }
2655
- get isFlat() {
2656
- return this.look === 'flat';
2657
- }
2658
- get isOutline() {
2659
- return this.look === 'outline';
2660
- }
2661
2955
  get widgetClasses() {
2662
2956
  return true;
2663
2957
  }
@@ -2910,12 +3204,25 @@ __decorate([
2910
3204
  ], DropDownButtonComponent.prototype, "data", null);
2911
3205
  __decorate([
2912
3206
  Input(),
2913
- __metadata("design:type", Boolean)
2914
- ], DropDownButtonComponent.prototype, "primary", void 0);
3207
+ __metadata("design:type", String)
3208
+ ], DropDownButtonComponent.prototype, "size", void 0);
3209
+ __decorate([
3210
+ Input(),
3211
+ __metadata("design:type", String)
3212
+ ], DropDownButtonComponent.prototype, "shape", void 0);
3213
+ __decorate([
3214
+ Input(),
3215
+ __metadata("design:type", String)
3216
+ ], DropDownButtonComponent.prototype, "rounded", void 0);
3217
+ __decorate([
3218
+ Input(),
3219
+ __metadata("design:type", String),
3220
+ __metadata("design:paramtypes", [String])
3221
+ ], DropDownButtonComponent.prototype, "fillMode", null);
2915
3222
  __decorate([
2916
3223
  Input(),
2917
3224
  __metadata("design:type", String)
2918
- ], DropDownButtonComponent.prototype, "look", void 0);
3225
+ ], DropDownButtonComponent.prototype, "themeColor", void 0);
2919
3226
  __decorate([
2920
3227
  Input(),
2921
3228
  __metadata("design:type", Object)
@@ -2945,20 +3252,10 @@ __decorate([
2945
3252
  __metadata("design:type", EventEmitter)
2946
3253
  ], DropDownButtonComponent.prototype, "onBlur", void 0);
2947
3254
  __decorate([
2948
- HostBinding('class.k-state-focused'),
3255
+ HostBinding('class.k-focus'),
2949
3256
  __metadata("design:type", Boolean),
2950
3257
  __metadata("design:paramtypes", [])
2951
3258
  ], DropDownButtonComponent.prototype, "focused", null);
2952
- __decorate([
2953
- HostBinding('class.k-flat'),
2954
- __metadata("design:type", Boolean),
2955
- __metadata("design:paramtypes", [])
2956
- ], DropDownButtonComponent.prototype, "isFlat", null);
2957
- __decorate([
2958
- HostBinding('class.k-outline'),
2959
- __metadata("design:type", Boolean),
2960
- __metadata("design:paramtypes", [])
2961
- ], DropDownButtonComponent.prototype, "isOutline", null);
2962
3259
  __decorate([
2963
3260
  HostBinding('class.k-dropdown-button'),
2964
3261
  __metadata("design:type", Boolean),
@@ -3038,12 +3335,17 @@ DropDownButtonComponent = __decorate([
3038
3335
  role="menu"
3039
3336
  type="button"
3040
3337
  [tabindex]="componentTabIndex"
3041
- [class.k-state-active]="active"
3338
+ [class.k-active]="active"
3042
3339
  [disabled]="disabled"
3043
3340
  [icon]="icon"
3044
3341
  [iconClass]="iconClass"
3045
3342
  [imageUrl]="imageUrl"
3046
3343
  [ngClass]="buttonClass"
3344
+ [size]="size"
3345
+ [shape]="shape"
3346
+ [rounded]="rounded"
3347
+ [fillMode]="fillMode"
3348
+ [themeColor]="fillMode ? themeColor : null"
3047
3349
  (click)="openPopup()"
3048
3350
  (focus)="handleFocus()"
3049
3351
  (blur)="onButtonBlur()"
@@ -3051,9 +3353,7 @@ DropDownButtonComponent = __decorate([
3051
3353
  [attr.aria-expanded]="openState"
3052
3354
  [attr.aria-haspopup]="true"
3053
3355
  [attr.aria-owns]="listId"
3054
- [look]="look"
3055
- [primary]="primary"
3056
- >
3356
+ >
3057
3357
  <ng-content></ng-content>
3058
3358
  </button>
3059
3359
  <ng-template #popupTemplate>
@@ -3068,6 +3368,7 @@ DropDownButtonComponent = __decorate([
3068
3368
  (keypress)="keyPressHandler($event)"
3069
3369
  (keyup)="keyUpHandler($event)"
3070
3370
  [attr.dir]="dir"
3371
+ [size]="size"
3071
3372
  >
3072
3373
  </kendo-button-list>
3073
3374
  </ng-template>
@@ -3111,38 +3412,20 @@ let ChipComponent = class ChipComponent {
3111
3412
  this.renderer = renderer;
3112
3413
  this.ngZone = ngZone;
3113
3414
  this.localizationService = localizationService;
3114
- /**
3115
- * Changes the visual appearance by using alternative styling options.
3116
- *
3117
- * The available values are:
3118
- * * `solid`
3119
- * * `outline`
3120
- * * `filled` (The `filled` option will be deprecated. To apply identical styling, use `solid` instead).
3121
- * * `outlined` (The `outlined` option will be deprecated. To apply identical styling, use `outline` instead).
3122
- */
3123
- this.look = 'solid';
3124
3415
  /**
3125
3416
  * Specifies the selected state of the Chip.
3417
+ * @default false
3126
3418
  */
3127
3419
  this.selected = false;
3128
3420
  /**
3129
3421
  * Specifies if the Chip will be removable or not.
3130
3422
  * If the property is set to `true`, the Chip renders a remove icon.
3423
+ * @default false
3131
3424
  */
3132
3425
  this.removable = false;
3133
- /**
3134
- * Specifies the Chip type.
3135
- *
3136
- * The possible values are:
3137
- * - `none` (default)
3138
- * - `success`
3139
- * - `error`
3140
- * - `warning`
3141
- * - `info`
3142
- */
3143
- this.type = 'none';
3144
3426
  /**
3145
3427
  * If set to `true`, the Chip will be disabled.
3428
+ * @default false
3146
3429
  */
3147
3430
  this.disabled = false;
3148
3431
  /**
@@ -3155,21 +3438,90 @@ let ChipComponent = class ChipComponent {
3155
3438
  this.contentClick = new EventEmitter();
3156
3439
  this.tabIndex = 0;
3157
3440
  this.hostClass = true;
3441
+ this._size = 'medium';
3442
+ this._rounded = 'medium';
3443
+ this._fillMode = 'solid';
3444
+ this._themeColor = 'base';
3158
3445
  this.focused = false;
3159
3446
  validatePackage(packageMetadata);
3160
3447
  this.direction = localizationService.rtl ? 'rtl' : 'ltr';
3161
3448
  }
3162
- get ariaChecked() {
3163
- return this.selected;
3449
+ /**
3450
+ * The size property specifies the height, padding and line height of the Chip
3451
+ * ([see example]({% slug appearance_chip %}#toc-size)).
3452
+ *
3453
+ * The possible values are:
3454
+ * * `'small'`
3455
+ * * `'medium'` (default)
3456
+ * * `'large'`
3457
+ * * `null`
3458
+ */
3459
+ set size(size) {
3460
+ this.handleClasses(size, 'size');
3461
+ this._size = size;
3462
+ }
3463
+ get size() {
3464
+ return this._size;
3465
+ }
3466
+ /**
3467
+ * The rounded property specifies the border radius of the Chip
3468
+ * ([see example]({% slug appearance_chip %}#toc-rounded)).
3469
+ *
3470
+ * The possible values are:
3471
+ * * `'small'`
3472
+ * * `'medium'` (default)
3473
+ * * `'large'`
3474
+ * * `'full'`
3475
+ * * `null`
3476
+ */
3477
+ set rounded(rounded) {
3478
+ this.handleClasses(rounded, 'rounded');
3479
+ this._rounded = rounded;
3480
+ }
3481
+ get rounded() {
3482
+ return this._rounded;
3483
+ }
3484
+ /**
3485
+ * The fillMode property specifies the background and border styles of the Chip
3486
+ * ([see example]({% slug appearance_chip %}#toc-fillMode)).
3487
+ *
3488
+ * The possible values are:
3489
+ * * `'solid'` (default)
3490
+ * * `'outline'`
3491
+ * * `null`
3492
+ */
3493
+ set fillMode(fillMode) {
3494
+ this.handleClasses(fillMode, 'fillMode');
3495
+ this._fillMode = fillMode;
3496
+ }
3497
+ get fillMode() {
3498
+ return this._fillMode;
3164
3499
  }
3165
- get outlineClass() {
3166
- return this.look === 'outline' || this.look === 'outlined';
3500
+ /**
3501
+ * The Chip allows you to specify predefined theme colors.
3502
+ * The theme color will be applied as a background and border color while also amending the text color accordingly
3503
+ * ([see example]({% slug appearance_chip %}#toc-themeColor)).
3504
+ *
3505
+ * The possible values are:
3506
+ * * `'base'` (default)
3507
+ * * `'info'`
3508
+ * * `'success'`
3509
+ * * `'warning'`
3510
+ * * `'error'`
3511
+ * * `null`
3512
+ */
3513
+ set themeColor(themeColor) {
3514
+ this.handleThemeColor(themeColor);
3515
+ this._themeColor = themeColor;
3516
+ }
3517
+ get themeColor() {
3518
+ return this._themeColor;
3167
3519
  }
3168
- get solidClass() {
3169
- return this.look === 'solid' || this.look === 'filled';
3520
+ get ariaChecked() {
3521
+ return this.selected;
3170
3522
  }
3171
3523
  get hasIconClass() {
3172
- return this.icon || this.iconClass ? true : false;
3524
+ return this.icon || this.iconClass || this.avatarClass ? true : false;
3173
3525
  }
3174
3526
  get disabledClass() {
3175
3527
  return this.disabled;
@@ -3194,54 +3546,41 @@ let ChipComponent = class ChipComponent {
3194
3546
  }
3195
3547
  ngAfterViewInit() {
3196
3548
  const chip = this.element.nativeElement;
3197
- const typeClass = this.typeClass();
3198
- if (this.type !== 'none') {
3199
- this.renderer.addClass(chip, typeClass);
3200
- }
3549
+ const stylingOptions = ['size', 'rounded', 'fillMode'];
3550
+ stylingOptions.forEach(input => {
3551
+ this.handleClasses(this[input], input);
3552
+ });
3201
3553
  this.attachElementEventHandlers(chip);
3202
3554
  }
3203
3555
  /**
3204
3556
  * @hidden
3205
3557
  */
3206
- get iconClasses() {
3207
- const classes = [];
3208
- if (this.iconClass) {
3209
- classes.push(`${this.iconClass}`);
3210
- }
3211
- if (this.icon) {
3212
- classes.push(`k-icon k-i-${this.icon}`);
3213
- }
3214
- return classes;
3558
+ get kendoIconClass() {
3559
+ this.verifyIconSettings([this.iconClass, this.avatarClass]);
3560
+ return `k-i-${this.icon}`;
3215
3561
  }
3216
3562
  /**
3217
3563
  * @hidden
3218
3564
  */
3219
- get selectedIconClasses() {
3220
- if (this.selectedIcon) {
3221
- return `${this.selectedIcon}`;
3222
- }
3223
- return `k-icon k-i-check`;
3565
+ get customIconClass() {
3566
+ this.verifyIconSettings([this.icon, this.avatarClass]);
3567
+ return `${this.iconClass}`;
3224
3568
  }
3225
3569
  /**
3226
3570
  * @hidden
3227
3571
  */
3228
- get removeIconClasses() {
3229
- if (this.removeIcon) {
3230
- return `${this.removeIcon}`;
3231
- }
3232
- return `k-icon k-i-close-circle`;
3572
+ get chipAvatarClass() {
3573
+ this.verifyIconSettings([this.icon, this.iconClass]);
3574
+ return `${this.avatarClass}`;
3233
3575
  }
3234
3576
  /**
3235
3577
  * @hidden
3236
3578
  */
3237
- typeClass() {
3238
- return {
3239
- 'none': '',
3240
- 'success': 'k-chip-success',
3241
- 'warning': 'k-chip-warning',
3242
- 'error': 'k-chip-error',
3243
- 'info': 'k-chip-info'
3244
- }[this.type];
3579
+ get removeIconClass() {
3580
+ if (this.removeIcon) {
3581
+ return `${this.removeIcon}`;
3582
+ }
3583
+ return `k-i-close-circle`;
3245
3584
  }
3246
3585
  /**
3247
3586
  * Focuses the Chip component.
@@ -3276,7 +3615,7 @@ let ChipComponent = class ChipComponent {
3276
3615
  this.renderer.removeClass(chip, 'k-focus');
3277
3616
  });
3278
3617
  const contentClickListener = this.renderer.listen(chip, 'click', (e) => {
3279
- const isRemoveClicked = closest(e.target, '.k-remove-icon');
3618
+ const isRemoveClicked = closest(e.target, '.k-chip-remove-action');
3280
3619
  if (!isRemoveClicked) {
3281
3620
  this.ngZone.run(() => {
3282
3621
  this.contentClick.emit({ sender: this, originalEvent: e });
@@ -3290,11 +3629,43 @@ let ChipComponent = class ChipComponent {
3290
3629
  };
3291
3630
  });
3292
3631
  }
3632
+ /**
3633
+ * @hidden
3634
+ */
3635
+ verifyIconSettings(iconsToCheck) {
3636
+ if (isDevMode()) {
3637
+ if (iconsToCheck.filter(icon => icon !== null && icon !== undefined).length > 0) {
3638
+ this.renderer.removeClass(this.element.nativeElement, 'k-chip-has-icon');
3639
+ throw new Error('Invalid configuration: Having multiple icons is not supported. Only a single icon on a chip can be displayed.');
3640
+ }
3641
+ }
3642
+ }
3643
+ handleClasses(value, input) {
3644
+ const elem = this.element.nativeElement;
3645
+ const classes = getStylingClasses('chip', input, this[input], value);
3646
+ if (input === 'fillMode') {
3647
+ this.handleThemeColor(this.themeColor, this[input], value);
3648
+ }
3649
+ if (classes.toRemove) {
3650
+ this.renderer.removeClass(elem, classes.toRemove);
3651
+ }
3652
+ if (classes.toAdd) {
3653
+ this.renderer.addClass(elem, classes.toAdd);
3654
+ }
3655
+ }
3656
+ handleThemeColor(value, prevFillMode, fillMode) {
3657
+ const elem = this.element.nativeElement;
3658
+ const removeFillMode = prevFillMode ? prevFillMode : this.fillMode;
3659
+ const addFillMode = fillMode ? fillMode : this.fillMode;
3660
+ const themeColorClass = getThemeColorClasses('chip', removeFillMode, addFillMode, this.themeColor, value);
3661
+ this.renderer.removeClass(elem, themeColorClass.toRemove);
3662
+ if (addFillMode !== null && fillMode !== null) {
3663
+ if (themeColorClass.toAdd) {
3664
+ this.renderer.addClass(elem, themeColorClass.toAdd);
3665
+ }
3666
+ }
3667
+ }
3293
3668
  };
3294
- __decorate([
3295
- Input(),
3296
- __metadata("design:type", String)
3297
- ], ChipComponent.prototype, "look", void 0);
3298
3669
  __decorate([
3299
3670
  Input(),
3300
3671
  __metadata("design:type", String)
@@ -3309,12 +3680,12 @@ __decorate([
3309
3680
  ], ChipComponent.prototype, "iconClass", void 0);
3310
3681
  __decorate([
3311
3682
  Input(),
3312
- __metadata("design:type", Boolean)
3313
- ], ChipComponent.prototype, "selected", void 0);
3683
+ __metadata("design:type", String)
3684
+ ], ChipComponent.prototype, "avatarClass", void 0);
3314
3685
  __decorate([
3315
3686
  Input(),
3316
- __metadata("design:type", String)
3317
- ], ChipComponent.prototype, "selectedIcon", void 0);
3687
+ __metadata("design:type", Boolean)
3688
+ ], ChipComponent.prototype, "selected", void 0);
3318
3689
  __decorate([
3319
3690
  Input(),
3320
3691
  __metadata("design:type", Boolean)
@@ -3323,14 +3694,30 @@ __decorate([
3323
3694
  Input(),
3324
3695
  __metadata("design:type", String)
3325
3696
  ], ChipComponent.prototype, "removeIcon", void 0);
3326
- __decorate([
3327
- Input(),
3328
- __metadata("design:type", String)
3329
- ], ChipComponent.prototype, "type", void 0);
3330
3697
  __decorate([
3331
3698
  Input(),
3332
3699
  __metadata("design:type", Boolean)
3333
3700
  ], ChipComponent.prototype, "disabled", void 0);
3701
+ __decorate([
3702
+ Input(),
3703
+ __metadata("design:type", String),
3704
+ __metadata("design:paramtypes", [String])
3705
+ ], ChipComponent.prototype, "size", null);
3706
+ __decorate([
3707
+ Input(),
3708
+ __metadata("design:type", String),
3709
+ __metadata("design:paramtypes", [String])
3710
+ ], ChipComponent.prototype, "rounded", null);
3711
+ __decorate([
3712
+ Input(),
3713
+ __metadata("design:type", String),
3714
+ __metadata("design:paramtypes", [String])
3715
+ ], ChipComponent.prototype, "fillMode", null);
3716
+ __decorate([
3717
+ Input(),
3718
+ __metadata("design:type", String),
3719
+ __metadata("design:paramtypes", [String])
3720
+ ], ChipComponent.prototype, "themeColor", null);
3334
3721
  __decorate([
3335
3722
  Output(),
3336
3723
  __metadata("design:type", EventEmitter)
@@ -3352,16 +3739,6 @@ __decorate([
3352
3739
  HostBinding('class.k-chip'),
3353
3740
  __metadata("design:type", Boolean)
3354
3741
  ], ChipComponent.prototype, "hostClass", void 0);
3355
- __decorate([
3356
- HostBinding('class.k-chip-outline'),
3357
- __metadata("design:type", Boolean),
3358
- __metadata("design:paramtypes", [])
3359
- ], ChipComponent.prototype, "outlineClass", null);
3360
- __decorate([
3361
- HostBinding('class.k-chip-solid'),
3362
- __metadata("design:type", Boolean),
3363
- __metadata("design:paramtypes", [])
3364
- ], ChipComponent.prototype, "solidClass", null);
3365
3742
  __decorate([
3366
3743
  HostBinding('class.k-chip-has-icon'),
3367
3744
  __metadata("design:type", Boolean),
@@ -3391,20 +3768,27 @@ ChipComponent = __decorate([
3391
3768
  Component({
3392
3769
  selector: 'kendo-chip',
3393
3770
  template: `
3394
- <span class="k-selected-icon-wrapper">
3395
- <span *ngIf="selected"
3396
- class="k-selected-icon"
3397
- [ngClass]="selectedIconClasses"
3398
- >
3399
- </span>
3771
+ <span
3772
+ *ngIf="icon"
3773
+ class="k-chip-icon k-icon"
3774
+ [ngClass]="kendoIconClass"
3775
+ >
3400
3776
  </span>
3401
3777
 
3402
- <span *ngIf="icon || iconClass"
3778
+ <span
3779
+ *ngIf="iconClass"
3403
3780
  class="k-chip-icon"
3404
- [ngClass]="iconClasses"
3781
+ [ngClass]="customIconClass"
3405
3782
  >
3406
3783
  </span>
3407
3784
 
3785
+ <span
3786
+ *ngIf="avatarClass"
3787
+ class="k-chip-avatar k-avatar k-rounded-full"
3788
+ >
3789
+ <span class="k-avatar-image" [ngClass]="chipAvatarClass"></span>
3790
+ </span>
3791
+
3408
3792
  <span class="k-chip-content">
3409
3793
  <span class="k-chip-label" *ngIf="label">
3410
3794
  {{ label }}
@@ -3412,11 +3796,17 @@ ChipComponent = __decorate([
3412
3796
  <ng-content *ngIf="!label"></ng-content>
3413
3797
  </span>
3414
3798
 
3415
- <span *ngIf="removable"
3416
- class="k-remove-icon"
3417
- (click)="onRemoveClick($event)"
3418
- >
3419
- <span [ngClass]="removeIconClasses"></span>
3799
+ <span class="k-chip-actions">
3800
+ <span class="k-chip-action k-chip-remove-action"
3801
+ *ngIf="removable"
3802
+ (click)="onRemoveClick($event)"
3803
+ >
3804
+ <span
3805
+ class="k-icon"
3806
+ [ngClass]="removeIconClass"
3807
+ >
3808
+ </span>
3809
+ </span>
3420
3810
  </span>
3421
3811
  `,
3422
3812
  providers: [
@@ -3434,9 +3824,10 @@ ChipComponent = __decorate([
3434
3824
  ], ChipComponent);
3435
3825
 
3436
3826
  let ChipListComponent = class ChipListComponent {
3437
- constructor(localizationService, renderer) {
3827
+ constructor(localizationService, renderer, element) {
3438
3828
  this.localizationService = localizationService;
3439
3829
  this.renderer = renderer;
3830
+ this.element = element;
3440
3831
  this.hostClass = true;
3441
3832
  /**
3442
3833
  * Sets the selection mode of the ChipList.
@@ -3456,8 +3847,27 @@ let ChipListComponent = class ChipListComponent {
3456
3847
  */
3457
3848
  this.remove = new EventEmitter();
3458
3849
  this.role = 'listbox';
3850
+ this._size = 'medium';
3851
+ validatePackage(packageMetadata);
3459
3852
  this.direction = localizationService.rtl ? 'rtl' : 'ltr';
3460
3853
  }
3854
+ /**
3855
+ * The size property specifies the gap between the Chips in the ChipList
3856
+ * ([see example]({% slug appearance_chiplist %}#toc-size)).
3857
+ *
3858
+ * The possible values are:
3859
+ * * `'small'`
3860
+ * * `'medium'` (default)
3861
+ * * `'large'`
3862
+ * * `null`
3863
+ */
3864
+ set size(size) {
3865
+ this.handleClasses(size, 'size');
3866
+ this._size = size;
3867
+ }
3868
+ get size() {
3869
+ return this._size;
3870
+ }
3461
3871
  get single() {
3462
3872
  return this.selection === 'single';
3463
3873
  }
@@ -3469,7 +3879,7 @@ let ChipListComponent = class ChipListComponent {
3469
3879
  */
3470
3880
  onClick($event) {
3471
3881
  const target = $event.target;
3472
- const isRemoveClicked = closest(target, '.k-remove-icon');
3882
+ const isRemoveClicked = closest(target, '.k-chip-remove-action');
3473
3883
  const clickedChip = closest(target, '.k-chip');
3474
3884
  const chip = this.chips.find((chip) => clickedChip === chip.element.nativeElement);
3475
3885
  if (isRemoveClicked && clickedChip) {
@@ -3484,6 +3894,12 @@ let ChipListComponent = class ChipListComponent {
3484
3894
  this.dynamicRTLSubscription = this.localizationService.changes
3485
3895
  .subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr');
3486
3896
  }
3897
+ ngAfterViewInit() {
3898
+ const stylingInputs = ['size'];
3899
+ stylingInputs.forEach(input => {
3900
+ this.handleClasses(this[input], input);
3901
+ });
3902
+ }
3487
3903
  ngAfterContentInit() {
3488
3904
  this.chips.forEach((chip) => {
3489
3905
  this.renderer.setAttribute(chip.element.nativeElement, 'role', 'option');
@@ -3514,6 +3930,16 @@ let ChipListComponent = class ChipListComponent {
3514
3930
  }
3515
3931
  });
3516
3932
  }
3933
+ handleClasses(value, input) {
3934
+ const elem = this.element.nativeElement;
3935
+ const classes = getStylingClasses('chip-list', input, this[input], value);
3936
+ if (classes.toRemove) {
3937
+ this.renderer.removeClass(elem, classes.toRemove);
3938
+ }
3939
+ if (classes.toAdd) {
3940
+ this.renderer.addClass(elem, classes.toAdd);
3941
+ }
3942
+ }
3517
3943
  };
3518
3944
  __decorate([
3519
3945
  HostBinding('class.k-chip-list'),
@@ -3527,6 +3953,11 @@ __decorate([
3527
3953
  Input(),
3528
3954
  __metadata("design:type", String)
3529
3955
  ], ChipListComponent.prototype, "selection", void 0);
3956
+ __decorate([
3957
+ Input(),
3958
+ __metadata("design:type", String),
3959
+ __metadata("design:paramtypes", [String])
3960
+ ], ChipListComponent.prototype, "size", null);
3530
3961
  __decorate([
3531
3962
  Output(),
3532
3963
  __metadata("design:type", EventEmitter)
@@ -3561,7 +3992,7 @@ __decorate([
3561
3992
  ], ChipListComponent.prototype, "onClick", null);
3562
3993
  ChipListComponent = __decorate([
3563
3994
  Component({
3564
- selector: 'kendo-chip-list, kendo-chiplist',
3995
+ selector: 'kendo-chiplist, kendo-chip-list',
3565
3996
  template: `
3566
3997
  <ng-content></ng-content>
3567
3998
  `,
@@ -3569,11 +4000,13 @@ ChipListComponent = __decorate([
3569
4000
  LocalizationService,
3570
4001
  {
3571
4002
  provide: L10N_PREFIX,
3572
- useValue: 'kendo.chip-list'
4003
+ useValue: 'kendo.chiplist'
3573
4004
  }
3574
4005
  ]
3575
4006
  }),
3576
- __metadata("design:paramtypes", [LocalizationService, Renderer2])
4007
+ __metadata("design:paramtypes", [LocalizationService,
4008
+ Renderer2,
4009
+ ElementRef])
3577
4010
  ], ChipListComponent);
3578
4011
 
3579
4012
  const exportedModules = [
@@ -3737,12 +4170,16 @@ const SIZE_CLASSES = {
3737
4170
  large: 'k-fab-lg'
3738
4171
  };
3739
4172
  const SHAPE_CLASSES = {
3740
- pill: 'k-fab-pill',
3741
- circle: 'k-fab-circle',
3742
4173
  rectangle: 'k-fab-rectangle',
3743
- square: 'k-fab-square',
3744
- rounded: 'k-fab-rounded'
4174
+ square: 'k-fab-square'
4175
+ };
4176
+ const ROUNDED_CLASSES = {
4177
+ small: 'k-rounded-sm',
4178
+ medium: 'k-rounded-md',
4179
+ large: 'k-rounded-lg',
4180
+ full: 'k-rounded-full'
3745
4181
  };
4182
+ const FILLMODE_CLASS = 'k-fab-solid';
3746
4183
  const DEFAULT_DURATION = 180;
3747
4184
  const DEFAULT_ITEM_GAP = 90;
3748
4185
  const DEFAULT_OFFSET = '16px';
@@ -3822,13 +4259,15 @@ let FloatingActionButtonComponent = class FloatingActionButtonComponent {
3822
4259
  this.id = `k-${guid()}`;
3823
4260
  this._themeColor = 'primary';
3824
4261
  this._size = 'medium';
3825
- this._shape = 'pill';
4262
+ this._shape = 'rectangle';
3826
4263
  this._disabled = false;
3827
4264
  this._align = { horizontal: 'end', vertical: 'bottom' };
3828
4265
  this._offset = { x: DEFAULT_OFFSET, y: DEFAULT_OFFSET };
4266
+ this._rounded = 'full';
3829
4267
  this.subscriptions = new Subscription();
3830
4268
  this.rtl = false;
3831
4269
  this.animationEnd = new EventEmitter();
4270
+ this.initialSetup = true;
3832
4271
  validatePackage(packageMetadata);
3833
4272
  this.subscribeNavigationEvents();
3834
4273
  this.subscriptions.add(this.localizationService.changes.subscribe(({ rtl }) => {
@@ -3848,18 +4287,16 @@ let FloatingActionButtonComponent = class FloatingActionButtonComponent {
3848
4287
  * The theme color will be applied as background color of the component.
3849
4288
  *
3850
4289
  * The possible values are:
3851
- * * `primary` (Default)&mdash;Applies coloring based on the `primary` theme color.
3852
- * * `secondary`&mdash;Applies coloring based on the `secondary` theme color.
3853
- * * `tertiary`&mdash; Applies coloring based on the `tertiary` theme color.
3854
- * * `inherit`&mdash; Applies inherited coloring value.
3855
- * * `info`&mdash;Applies coloring based on the `info` theme color.
3856
- * * `success`&mdash; Applies coloring based on the `success` theme color.
3857
- * * `warning`&mdash; Applies coloring based on the `warning` theme color.
3858
- * * `error`&mdash; Applies coloring based on the `error` theme color.
3859
- * * `dark`&mdash; Applies coloring based on the `dark` theme color.
3860
- * * `light`&mdash; Applies coloring based on the `light` theme color.
3861
- * * `inverse`&mdash; Applies coloring based on the `inverse` theme color.
3862
- *
4290
+ * * `'primary'` (Default)&mdash;Applies coloring based on the `primary` theme color.
4291
+ * * `'secondary'`&mdash;Applies coloring based on the `secondary` theme color.
4292
+ * * `'tertiary'`&mdash; Applies coloring based on the `tertiary` theme color.
4293
+ * * `'info'`&mdash;Applies coloring based on the `info` theme color.
4294
+ * * `'success'`&mdash; Applies coloring based on the `success` theme color.
4295
+ * * `'warning'`&mdash; Applies coloring based on the `warning` theme color.
4296
+ * * `'error'`&mdash; Applies coloring based on the `error` theme color.
4297
+ * * `'dark'`&mdash; Applies coloring based on the `dark` theme color.
4298
+ * * `'light'`&mdash; Applies coloring based on the `light` theme color.
4299
+ * * `'inverse'`&mdash; Applies coloring based on the `inverse` theme color.
3863
4300
  */
3864
4301
  set themeColor(themeColor) {
3865
4302
  this.handleClasses(themeColor, 'themeColor');
@@ -3873,10 +4310,9 @@ let FloatingActionButtonComponent = class FloatingActionButtonComponent {
3873
4310
  * ([see example]({% slug appearance_floatingactionbutton %}#toc-size)).
3874
4311
  *
3875
4312
  * The possible values are:
3876
- * * `small`
3877
- * * `medium` (Default)
3878
- * * `large`
3879
- *
4313
+ * * `'small'`
4314
+ * * `'medium'` (Default)
4315
+ * * `'large'`
3880
4316
  */
3881
4317
  set size(size) {
3882
4318
  this.handleClasses(size, 'size');
@@ -3885,15 +4321,29 @@ let FloatingActionButtonComponent = class FloatingActionButtonComponent {
3885
4321
  get size() {
3886
4322
  return this._size;
3887
4323
  }
4324
+ /**
4325
+ * The rounded property specifies the border radius of the FloatingActionButton.
4326
+ *
4327
+ * The possible values are:
4328
+ * * `'small'`
4329
+ * * `'medium'`
4330
+ * * `'large'`
4331
+ * * `'full'` (default)
4332
+ * * `null`
4333
+ */
4334
+ set rounded(rounded) {
4335
+ this.handleClasses(rounded, 'rounded');
4336
+ this._rounded = rounded;
4337
+ }
4338
+ get rounded() {
4339
+ return this._rounded;
4340
+ }
3888
4341
  /**
3889
4342
  * Specifies the shape of the FloatingActionButton
3890
4343
  * ([see example]({% slug appearance_floatingactionbutton %}#toc-shape)).
3891
4344
  *
3892
4345
  * The possible values are:
3893
- * * `pill` (Default)&mdash;Applies border radius equal to half of the height of the FloatingActionButton.
3894
- * * `circle`&mdash;Applies circle shape on the FloatingActionButton.
3895
- * * `rectangle`&mdash;Applies rectangular shape on the FloatingActionButton.
3896
- * * `rounded`&mdash;Applies rounded shape on the FloatingActionButton.
4346
+ * * `rectangle` (Default)&mdash;Applies rectangular shape on the FloatingActionButton.
3897
4347
  * * `square`&mdash;Applies square shape on the FloatingActionButton.
3898
4348
  *
3899
4349
  */
@@ -3951,8 +4401,10 @@ let FloatingActionButtonComponent = class FloatingActionButtonComponent {
3951
4401
  return this.disabled ? (-1) : this.tabIndex;
3952
4402
  }
3953
4403
  ngAfterViewInit() {
3954
- this.applyClasses();
4404
+ ['shape', 'size', 'rounded', 'themeColor'].forEach(option => this.handleClasses(this[option], option));
4405
+ this.renderer.addClass(this.element.nativeElement, this.alignClass());
3955
4406
  this.offsetStyles();
4407
+ this.initialSetup = false;
3956
4408
  }
3957
4409
  ngOnDestroy() {
3958
4410
  this.subscriptions.unsubscribe();
@@ -4094,20 +4546,24 @@ let FloatingActionButtonComponent = class FloatingActionButtonComponent {
4094
4546
  this.toggleDialWithEvents(false);
4095
4547
  }
4096
4548
  handleClasses(inputValue, input) {
4097
- if (isPresent(this.button) && (this[input] !== inputValue)) {
4549
+ if (isPresent(this.button) && (this[input] !== inputValue || this.initialSetup)) {
4098
4550
  const button = this.button.nativeElement;
4099
4551
  const classesToRemove = {
4100
- themeColor: `k-fab-${this.themeColor}`,
4552
+ themeColor: `${FILLMODE_CLASS}-${this.themeColor}`,
4101
4553
  size: SIZE_CLASSES[this.size],
4102
- shape: SHAPE_CLASSES[this.shape]
4554
+ shape: SHAPE_CLASSES[this.shape],
4555
+ rounded: ROUNDED_CLASSES[this.rounded]
4103
4556
  };
4104
4557
  const classesToAdd = {
4105
- themeColor: `k-fab-${inputValue}`,
4558
+ themeColor: inputValue ? `${FILLMODE_CLASS}-${inputValue}` : null,
4106
4559
  size: SIZE_CLASSES[inputValue],
4107
- shape: SHAPE_CLASSES[inputValue]
4560
+ shape: SHAPE_CLASSES[inputValue],
4561
+ rounded: ROUNDED_CLASSES[inputValue]
4108
4562
  };
4109
4563
  this.renderer.removeClass(button, classesToRemove[input]);
4110
- this.renderer.addClass(button, classesToAdd[input]);
4564
+ if (classesToAdd[input]) {
4565
+ this.renderer.addClass(button, classesToAdd[input]);
4566
+ }
4111
4567
  }
4112
4568
  }
4113
4569
  onEnterPressed() {
@@ -4162,14 +4618,6 @@ let FloatingActionButtonComponent = class FloatingActionButtonComponent {
4162
4618
  alignClass() {
4163
4619
  return `k-pos-${this.align.vertical}-${this.align.horizontal}`;
4164
4620
  }
4165
- applyClasses() {
4166
- const hostElement = this.element.nativeElement;
4167
- const button = this.button.nativeElement;
4168
- this.renderer.addClass(button, SHAPE_CLASSES[this.shape]);
4169
- this.renderer.addClass(button, `k-fab-${this.themeColor}`);
4170
- this.renderer.addClass(button, SIZE_CLASSES[this.size]);
4171
- this.renderer.addClass(hostElement, this.alignClass());
4172
- }
4173
4621
  toggleDialWithEvents(open) {
4174
4622
  if (open === this.isOpen) {
4175
4623
  return;
@@ -4389,6 +4837,11 @@ __decorate([
4389
4837
  __metadata("design:type", String),
4390
4838
  __metadata("design:paramtypes", [String])
4391
4839
  ], FloatingActionButtonComponent.prototype, "size", null);
4840
+ __decorate([
4841
+ Input(),
4842
+ __metadata("design:type", String),
4843
+ __metadata("design:paramtypes", [String])
4844
+ ], FloatingActionButtonComponent.prototype, "rounded", null);
4392
4845
  __decorate([
4393
4846
  Input(),
4394
4847
  __metadata("design:type", String),
@@ -4485,8 +4938,8 @@ FloatingActionButtonComponent = __decorate([
4485
4938
  [attr.role]="role"
4486
4939
  [tabIndex]="componentTabIndex"
4487
4940
  type="button"
4488
- [class.k-fab]="true"
4489
- [class.k-state-disabled]="disabled"
4941
+ class="k-fab k-fab-solid"
4942
+ [class.k-disabled]="disabled"
4490
4943
  [ngClass]="buttonClass"
4491
4944
  [disabled]="disabled"
4492
4945
  [attr.aria-disabled]="disabled"
@@ -4670,7 +5123,7 @@ __decorate([
4670
5123
  ], DialItemComponent.prototype, "role", void 0);
4671
5124
  __decorate([
4672
5125
  HostBinding('attr.aria-disabled'),
4673
- HostBinding('class.k-state-disabled'),
5126
+ HostBinding('class.k-disabled'),
4674
5127
  __metadata("design:type", Boolean),
4675
5128
  __metadata("design:paramtypes", [])
4676
5129
  ], DialItemComponent.prototype, "disabledClass", null);