@progress/kendo-angular-buttons 7.0.0-dev.202201061631 → 7.0.0-dev.202201181837

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 (35) 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-buttons.js +2 -2
  5. package/dist/cdn/main.js +1 -1
  6. package/dist/es/button/button.directive.js +6 -15
  7. package/dist/es/buttongroup/buttongroup.component.js +10 -7
  8. package/dist/es/chip/chip-list.component.js +3 -0
  9. package/dist/es/dropdownbutton/dropdownbutton.component.js +26 -14
  10. package/dist/es/listbutton/list-button.js +3 -0
  11. package/dist/es/package-metadata.js +1 -1
  12. package/dist/es/splitbutton/splitbutton.component.js +69 -32
  13. package/dist/es2015/button/button.directive.d.ts +0 -1
  14. package/dist/es2015/button/button.directive.js +6 -11
  15. package/dist/es2015/buttongroup/buttongroup.component.js +10 -7
  16. package/dist/es2015/chip/chip-list.component.js +3 -0
  17. package/dist/es2015/common/models/fillmode.d.ts +1 -1
  18. package/dist/es2015/dropdownbutton/dropdownbutton.component.d.ts +1 -0
  19. package/dist/es2015/dropdownbutton/dropdownbutton.component.js +22 -14
  20. package/dist/es2015/index.metadata.json +1 -1
  21. package/dist/es2015/listbutton/list-button.js +3 -0
  22. package/dist/es2015/package-metadata.js +1 -1
  23. package/dist/es2015/splitbutton/splitbutton.component.d.ts +11 -7
  24. package/dist/es2015/splitbutton/splitbutton.component.js +61 -32
  25. package/dist/fesm2015/index.js +97 -62
  26. package/dist/fesm5/index.js +109 -66
  27. package/dist/npm/button/button.directive.js +5 -14
  28. package/dist/npm/buttongroup/buttongroup.component.js +10 -7
  29. package/dist/npm/chip/chip-list.component.js +3 -0
  30. package/dist/npm/dropdownbutton/dropdownbutton.component.js +26 -14
  31. package/dist/npm/listbutton/list-button.js +3 -0
  32. package/dist/npm/package-metadata.js +1 -1
  33. package/dist/npm/splitbutton/splitbutton.component.js +67 -30
  34. package/dist/systemjs/kendo-angular-buttons.js +1 -1
  35. package/package.json +4 -3
@@ -9,6 +9,8 @@ import { KeyEvents } from './../navigation/key-events';
9
9
  import { NavigationAction } from './../navigation/navigation-action';
10
10
  import { isDocumentAvailable, guid, Keys } from '@progress/kendo-angular-common';
11
11
  import { isPresent } from './../util';
12
+ import { validatePackage } from '@progress/kendo-licensing';
13
+ import { packageMetadata } from '../package-metadata';
12
14
  /**
13
15
  * @hidden
14
16
  */
@@ -25,6 +27,7 @@ export class ListButton {
25
27
  this._popupSettings = { animate: true, popupClass: '' };
26
28
  this.listId = guid();
27
29
  this._isFocused = false;
30
+ validatePackage(packageMetadata);
28
31
  this.focusService = focusService;
29
32
  this.navigationService = navigationService;
30
33
  this.wrapper = wrapperRef.nativeElement;
@@ -9,7 +9,7 @@ export const packageMetadata = {
9
9
  name: '@progress/kendo-angular-buttons',
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
12
- publishDate: 1641486598,
12
+ publishDate: 1642530954,
13
13
  version: '',
14
14
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
15
15
  };
@@ -2,7 +2,7 @@
2
2
  * Copyright © 2021 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- import { ElementRef, TemplateRef, EventEmitter, ViewContainerRef, AfterViewInit, OnChanges, SimpleChanges, NgZone, ChangeDetectorRef } from '@angular/core';
5
+ import { ElementRef, TemplateRef, EventEmitter, ViewContainerRef, AfterViewInit, OnChanges, SimpleChanges, NgZone, ChangeDetectorRef, Renderer2 } from '@angular/core';
6
6
  import { LocalizationService } from '@progress/kendo-angular-l10n';
7
7
  import { Align, PopupService, PopupRef } from '@progress/kendo-angular-popup';
8
8
  import { ListButton } from './../listbutton/list-button';
@@ -57,6 +57,7 @@ export declare class SplitButtonComponent extends ListButton implements AfterVie
57
57
  private popupService;
58
58
  private elRef;
59
59
  private localization;
60
+ private renderer;
60
61
  /**
61
62
  * Sets the text of the SplitButton.
62
63
  */
@@ -253,7 +254,12 @@ export declare class SplitButtonComponent extends ListButton implements AfterVie
253
254
  arrowButton: ElementRef<HTMLButtonElement>;
254
255
  popupTemplate: TemplateRef<any>;
255
256
  containerRef: ViewContainerRef;
257
+ /**
258
+ * @hidden
259
+ */
260
+ activeArrow: boolean;
256
261
  popupRef: PopupRef;
262
+ listId: string;
257
263
  /**
258
264
  * @hidden
259
265
  */
@@ -261,7 +267,6 @@ export declare class SplitButtonComponent extends ListButton implements AfterVie
261
267
  * @hidden
262
268
  */
263
269
  openState: boolean;
264
- listId: string;
265
270
  /**
266
271
  * @hidden
267
272
  */
@@ -270,12 +275,10 @@ export declare class SplitButtonComponent extends ListButton implements AfterVie
270
275
  * @hidden
271
276
  */
272
277
  readonly componentTabIndex: number;
273
- /**
274
- * @hidden
275
- */
276
- activeArrow: boolean;
277
278
  private buttonText;
278
279
  private lockFocus;
280
+ private _rounded;
281
+ private _fillMode;
279
282
  isFocused: boolean;
280
283
  readonly widgetClasses: boolean;
281
284
  readonly dir: string;
@@ -351,7 +354,7 @@ export declare class SplitButtonComponent extends ListButton implements AfterVie
351
354
  * Blurs the SplitButton component.
352
355
  */
353
356
  blur(): void;
354
- constructor(focusService: FocusService, navigationService: NavigationService, wrapperRef: ElementRef, zone: NgZone, popupService: PopupService, elRef: ElementRef, localization: LocalizationService, cdr: ChangeDetectorRef);
357
+ constructor(focusService: FocusService, navigationService: NavigationService, wrapperRef: ElementRef, zone: NgZone, popupService: PopupService, elRef: ElementRef, localization: LocalizationService, cdr: ChangeDetectorRef, renderer: Renderer2);
355
358
  ngOnDestroy(): void;
356
359
  /**
357
360
  * Toggles the visibility of the popup.
@@ -370,4 +373,5 @@ export declare class SplitButtonComponent extends ListButton implements AfterVie
370
373
  private _toggle;
371
374
  private createPopup;
372
375
  private destroyPopup;
376
+ private handleClasses;
373
377
  }
@@ -4,7 +4,7 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import * as tslib_1 from "tslib";
6
6
  /* tslint:disable:no-access-missing-member */
7
- import { Component, ElementRef, TemplateRef, Input, Output, HostBinding, HostListener, EventEmitter, ContentChild, ViewChild, ViewContainerRef, NgZone, ChangeDetectorRef } from '@angular/core';
7
+ import { Component, ElementRef, TemplateRef, Input, Output, HostBinding, HostListener, EventEmitter, ContentChild, ViewChild, ViewContainerRef, NgZone, ChangeDetectorRef, Renderer2 } from '@angular/core';
8
8
  import { LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
9
9
  import { PopupService } from '@progress/kendo-angular-popup';
10
10
  import { ListButton } from './../listbutton/list-button';
@@ -16,7 +16,7 @@ import { isDocumentAvailable, guid, isChanged } from '@progress/kendo-angular-co
16
16
  import { isPresent, tick } from './../util';
17
17
  import { PreventableEvent } from '../preventable-event';
18
18
  import { Keys } from '@progress/kendo-angular-common';
19
- import { replaceMessagePlaceholder } from '../util';
19
+ import { replaceMessagePlaceholder, getStylingClasses } from '../util';
20
20
  const NAVIGATION_SETTINGS = {
21
21
  useLeftRightArrows: true
22
22
  };
@@ -67,11 +67,12 @@ const NAVIGATION_SETTINGS_PROVIDER = {
67
67
  * ```
68
68
  */
69
69
  let SplitButtonComponent = class SplitButtonComponent extends ListButton {
70
- constructor(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization, cdr) {
70
+ constructor(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization, cdr, renderer) {
71
71
  super(focusService, navigationService, wrapperRef, zone, localization, cdr);
72
72
  this.popupService = popupService;
73
73
  this.elRef = elRef;
74
74
  this.localization = localization;
75
+ this.renderer = renderer;
75
76
  /**
76
77
  * Sets the text of the SplitButton.
77
78
  */
@@ -106,29 +107,6 @@ let SplitButtonComponent = class SplitButtonComponent extends ListButton {
106
107
  * * `null`
107
108
  */
108
109
  this.size = 'medium';
109
- /**
110
- * The rounded property specifies the border radius of the SplitButton
111
- * ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-rounded)).
112
- *
113
- * The possible values are:
114
- * * `'small'`
115
- * * `'medium'` (default)
116
- * * `'large'`
117
- * * `'full'`
118
- * * `null`
119
- */
120
- this.rounded = 'medium';
121
- /**
122
- * The fillMode property specifies the background and border styles of the SplitButton
123
- * ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-fillMode)).
124
- *
125
- * The available values are:
126
- * * `solid` (default)
127
- * * `flat`
128
- * * `outline`
129
- * * `link`
130
- */
131
- this.fillMode = 'solid';
132
110
  /**
133
111
  * The SplitButton allows you to specify predefined theme colors.
134
112
  * The theme color will be applied as a background and border color while also amending the text color accordingly
@@ -225,16 +203,53 @@ let SplitButtonComponent = class SplitButtonComponent extends ListButton {
225
203
  * This event is preventable. If you cancel the event, the popup will remain open.
226
204
  */
227
205
  this.close = new EventEmitter();
228
- this.listId = guid();
229
206
  /**
230
207
  * @hidden
231
208
  */
232
209
  this.activeArrow = false;
210
+ this.listId = guid();
233
211
  this.buttonText = '';
234
212
  this.lockFocus = false;
213
+ this._rounded = 'medium';
214
+ this._fillMode = "solid";
235
215
  this._itemClick = this.itemClick;
236
216
  this._blur = this.onBlur;
237
217
  }
218
+ /**
219
+ * The rounded property specifies the border radius of the SplitButton
220
+ * ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-rounded)).
221
+ *
222
+ * The possible values are:
223
+ * * `'small'`
224
+ * * `'medium'` (default)
225
+ * * `'large'`
226
+ * * `'full'`
227
+ * * `null`
228
+ */
229
+ set rounded(rounded) {
230
+ this.handleClasses(rounded, 'rounded');
231
+ this._rounded = rounded;
232
+ }
233
+ get rounded() {
234
+ return this._rounded;
235
+ }
236
+ /**
237
+ * The fillMode property specifies the background and border styles of the SplitButton
238
+ * ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-fillMode)).
239
+ *
240
+ * The available values are:
241
+ * * `solid` (default)
242
+ * * `flat`
243
+ * * `outline`
244
+ * * `link`
245
+ */
246
+ set fillMode(fillMode) {
247
+ // Temporary workaround for missing 'clear' styles
248
+ this._fillMode = fillMode === 'clear' ? 'flat' : fillMode;
249
+ }
250
+ get fillMode() {
251
+ return this._fillMode;
252
+ }
238
253
  /**
239
254
  * When set to `true`, disables a SplitButton item
240
255
  * ([see example]({% slug databinding_splitbutton %}#toc-arrays-of-complex-data)).
@@ -406,6 +421,7 @@ let SplitButtonComponent = class SplitButtonComponent extends ListButton {
406
421
  */
407
422
  ngAfterViewInit() {
408
423
  this.updateButtonText();
424
+ this.handleClasses(this.rounded, 'rounded');
409
425
  }
410
426
  /**
411
427
  * @hidden
@@ -553,6 +569,16 @@ let SplitButtonComponent = class SplitButtonComponent extends ListButton {
553
569
  this.popupRef = null;
554
570
  }
555
571
  }
572
+ handleClasses(value, input) {
573
+ const elem = this.wrapperRef.nativeElement;
574
+ const classes = getStylingClasses('button', input, this[input], value);
575
+ if (classes.toRemove) {
576
+ this.renderer.removeClass(elem, classes.toRemove);
577
+ }
578
+ if (classes.toAdd) {
579
+ this.renderer.addClass(elem, classes.toAdd);
580
+ }
581
+ }
556
582
  };
557
583
  tslib_1.__decorate([
558
584
  Input(),
@@ -580,12 +606,14 @@ tslib_1.__decorate([
580
606
  ], SplitButtonComponent.prototype, "size", void 0);
581
607
  tslib_1.__decorate([
582
608
  Input(),
583
- tslib_1.__metadata("design:type", String)
584
- ], SplitButtonComponent.prototype, "rounded", void 0);
609
+ tslib_1.__metadata("design:type", String),
610
+ tslib_1.__metadata("design:paramtypes", [String])
611
+ ], SplitButtonComponent.prototype, "rounded", null);
585
612
  tslib_1.__decorate([
586
613
  Input(),
587
- tslib_1.__metadata("design:type", String)
588
- ], SplitButtonComponent.prototype, "fillMode", void 0);
614
+ tslib_1.__metadata("design:type", String),
615
+ tslib_1.__metadata("design:paramtypes", [String])
616
+ ], SplitButtonComponent.prototype, "fillMode", null);
589
617
  tslib_1.__decorate([
590
618
  Input(),
591
619
  tslib_1.__metadata("design:type", String)
@@ -795,7 +823,8 @@ SplitButtonComponent = tslib_1.__decorate([
795
823
  PopupService,
796
824
  ElementRef,
797
825
  LocalizationService,
798
- ChangeDetectorRef])
826
+ ChangeDetectorRef,
827
+ Renderer2])
799
828
  ], SplitButtonComponent);
800
829
  export { SplitButtonComponent };
801
830
  export { ɵ0 };
@@ -39,7 +39,7 @@ const packageMetadata = {
39
39
  name: '@progress/kendo-angular-buttons',
40
40
  productName: 'Kendo UI for Angular',
41
41
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
42
- publishDate: 1641486598,
42
+ publishDate: 1642530954,
43
43
  version: '',
44
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'
45
45
  };
@@ -411,9 +411,6 @@ let ButtonDirective = class ButtonDirective {
411
411
  case 'default':
412
412
  this.fillMode = 'solid';
413
413
  break;
414
- case 'clear':
415
- this.fillMode = 'link';
416
- break;
417
414
  default:
418
415
  this.fillMode = value;
419
416
  break;
@@ -527,11 +524,6 @@ let ButtonDirective = class ButtonDirective {
527
524
  return false;
528
525
  }
529
526
  }
530
- get text() {
531
- if (isDocumentAvailable()) {
532
- return this.element.innerHTML.trim();
533
- }
534
- }
535
527
  addImgIcon(imageUrl) {
536
528
  let renderer = this.renderer;
537
529
  this.iconSpanNode = renderer.createElement('span');
@@ -561,8 +553,11 @@ let ButtonDirective = class ButtonDirective {
561
553
  }
562
554
  }
563
555
  addTextSpan() {
564
- if (isDocumentAvailable() && this.hasText()) {
565
- this.element.innerHTML = `<span class='k-button-text'>${this.text}</span>`;
556
+ if (isDocumentAvailable() && this.hasText() && isPresent(this.element.append)) {
557
+ const span = this.renderer.createElement('span');
558
+ this.renderer.addClass(span, 'k-button-text');
559
+ span.append(...Array.from(this.element.childNodes));
560
+ this.element.append(span);
566
561
  }
567
562
  }
568
563
  prependChild(node) {
@@ -848,6 +843,7 @@ let ButtonGroupComponent = class ButtonGroupComponent {
848
843
  this.navigate = new EventEmitter();
849
844
  this._tabIndex = 0;
850
845
  this.currentTabIndex = 0;
846
+ validatePackage(packageMetadata);
851
847
  this.localizationChangeSubscription = localization.changes.subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr');
852
848
  }
853
849
  /**
@@ -926,7 +922,7 @@ let ButtonGroupComponent = class ButtonGroupComponent {
926
922
  if (button.togglable) {
927
923
  button.setSelected(newSelectionValue);
928
924
  }
929
- button.setAttribute(tabindex, "0");
925
+ button.setAttribute(tabindex, '0');
930
926
  });
931
927
  }
932
928
  ngOnChanges(change) {
@@ -941,10 +937,10 @@ let ButtonGroupComponent = class ButtonGroupComponent {
941
937
  ngAfterContentInit() {
942
938
  this.buttons.forEach((button) => {
943
939
  if (button.selected) {
944
- button.setAttribute(tabindex, "0");
940
+ button.setAttribute(tabindex, '0');
945
941
  }
946
942
  else {
947
- button.setAttribute(tabindex, "-1");
943
+ button.setAttribute(tabindex, '-1');
948
944
  }
949
945
  });
950
946
  }
@@ -988,24 +984,24 @@ let ButtonGroupComponent = class ButtonGroupComponent {
988
984
  deactivate(buttons) {
989
985
  buttons.forEach((button) => {
990
986
  button.setSelected(false);
991
- button.setAttribute(tabindex, "-1");
987
+ button.setAttribute(tabindex, '-1');
992
988
  });
993
989
  }
994
990
  activate(buttons) {
995
991
  buttons.forEach((button) => {
996
992
  button.setSelected(true);
997
- button.setAttribute(tabindex, "0");
993
+ button.setAttribute(tabindex, '0');
998
994
  button.focus();
999
995
  });
1000
996
  }
1001
997
  defocus(buttons) {
1002
998
  buttons.forEach((button) => {
1003
- button.setAttribute(tabindex, "-1");
999
+ button.setAttribute(tabindex, '-1');
1004
1000
  });
1005
1001
  }
1006
1002
  focus(buttons) {
1007
1003
  buttons.forEach((button) => {
1008
- button.setAttribute(tabindex, "0");
1004
+ button.setAttribute(tabindex, '0');
1009
1005
  button.focus();
1010
1006
  });
1011
1007
  }
@@ -1529,6 +1525,7 @@ class ListButton {
1529
1525
  this._popupSettings = { animate: true, popupClass: '' };
1530
1526
  this.listId = guid();
1531
1527
  this._isFocused = false;
1528
+ validatePackage(packageMetadata);
1532
1529
  this.focusService = focusService;
1533
1530
  this.navigationService = navigationService;
1534
1531
  this.wrapper = wrapperRef.nativeElement;
@@ -1880,11 +1877,12 @@ const NAVIGATION_SETTINGS_PROVIDER = {
1880
1877
  * ```
1881
1878
  */
1882
1879
  let SplitButtonComponent = class SplitButtonComponent extends ListButton {
1883
- constructor(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization, cdr) {
1880
+ constructor(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization, cdr, renderer) {
1884
1881
  super(focusService, navigationService, wrapperRef, zone, localization, cdr);
1885
1882
  this.popupService = popupService;
1886
1883
  this.elRef = elRef;
1887
1884
  this.localization = localization;
1885
+ this.renderer = renderer;
1888
1886
  /**
1889
1887
  * Sets the text of the SplitButton.
1890
1888
  */
@@ -1919,29 +1917,6 @@ let SplitButtonComponent = class SplitButtonComponent extends ListButton {
1919
1917
  * * `null`
1920
1918
  */
1921
1919
  this.size = 'medium';
1922
- /**
1923
- * The rounded property specifies the border radius of the SplitButton
1924
- * ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-rounded)).
1925
- *
1926
- * The possible values are:
1927
- * * `'small'`
1928
- * * `'medium'` (default)
1929
- * * `'large'`
1930
- * * `'full'`
1931
- * * `null`
1932
- */
1933
- this.rounded = 'medium';
1934
- /**
1935
- * The fillMode property specifies the background and border styles of the SplitButton
1936
- * ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-fillMode)).
1937
- *
1938
- * The available values are:
1939
- * * `solid` (default)
1940
- * * `flat`
1941
- * * `outline`
1942
- * * `link`
1943
- */
1944
- this.fillMode = 'solid';
1945
1920
  /**
1946
1921
  * The SplitButton allows you to specify predefined theme colors.
1947
1922
  * The theme color will be applied as a background and border color while also amending the text color accordingly
@@ -2038,16 +2013,53 @@ let SplitButtonComponent = class SplitButtonComponent extends ListButton {
2038
2013
  * This event is preventable. If you cancel the event, the popup will remain open.
2039
2014
  */
2040
2015
  this.close = new EventEmitter();
2041
- this.listId = guid();
2042
2016
  /**
2043
2017
  * @hidden
2044
2018
  */
2045
2019
  this.activeArrow = false;
2020
+ this.listId = guid();
2046
2021
  this.buttonText = '';
2047
2022
  this.lockFocus = false;
2023
+ this._rounded = 'medium';
2024
+ this._fillMode = "solid";
2048
2025
  this._itemClick = this.itemClick;
2049
2026
  this._blur = this.onBlur;
2050
2027
  }
2028
+ /**
2029
+ * The rounded property specifies the border radius of the SplitButton
2030
+ * ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-rounded)).
2031
+ *
2032
+ * The possible values are:
2033
+ * * `'small'`
2034
+ * * `'medium'` (default)
2035
+ * * `'large'`
2036
+ * * `'full'`
2037
+ * * `null`
2038
+ */
2039
+ set rounded(rounded) {
2040
+ this.handleClasses(rounded, 'rounded');
2041
+ this._rounded = rounded;
2042
+ }
2043
+ get rounded() {
2044
+ return this._rounded;
2045
+ }
2046
+ /**
2047
+ * The fillMode property specifies the background and border styles of the SplitButton
2048
+ * ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-fillMode)).
2049
+ *
2050
+ * The available values are:
2051
+ * * `solid` (default)
2052
+ * * `flat`
2053
+ * * `outline`
2054
+ * * `link`
2055
+ */
2056
+ set fillMode(fillMode) {
2057
+ // Temporary workaround for missing 'clear' styles
2058
+ this._fillMode = fillMode === 'clear' ? 'flat' : fillMode;
2059
+ }
2060
+ get fillMode() {
2061
+ return this._fillMode;
2062
+ }
2051
2063
  /**
2052
2064
  * When set to `true`, disables a SplitButton item
2053
2065
  * ([see example]({% slug databinding_splitbutton %}#toc-arrays-of-complex-data)).
@@ -2219,6 +2231,7 @@ let SplitButtonComponent = class SplitButtonComponent extends ListButton {
2219
2231
  */
2220
2232
  ngAfterViewInit() {
2221
2233
  this.updateButtonText();
2234
+ this.handleClasses(this.rounded, 'rounded');
2222
2235
  }
2223
2236
  /**
2224
2237
  * @hidden
@@ -2366,6 +2379,16 @@ let SplitButtonComponent = class SplitButtonComponent extends ListButton {
2366
2379
  this.popupRef = null;
2367
2380
  }
2368
2381
  }
2382
+ handleClasses(value, input) {
2383
+ const elem = this.wrapperRef.nativeElement;
2384
+ const classes = getStylingClasses('button', input, this[input], value);
2385
+ if (classes.toRemove) {
2386
+ this.renderer.removeClass(elem, classes.toRemove);
2387
+ }
2388
+ if (classes.toAdd) {
2389
+ this.renderer.addClass(elem, classes.toAdd);
2390
+ }
2391
+ }
2369
2392
  };
2370
2393
  __decorate([
2371
2394
  Input(),
@@ -2393,12 +2416,14 @@ __decorate([
2393
2416
  ], SplitButtonComponent.prototype, "size", void 0);
2394
2417
  __decorate([
2395
2418
  Input(),
2396
- __metadata("design:type", String)
2397
- ], SplitButtonComponent.prototype, "rounded", void 0);
2419
+ __metadata("design:type", String),
2420
+ __metadata("design:paramtypes", [String])
2421
+ ], SplitButtonComponent.prototype, "rounded", null);
2398
2422
  __decorate([
2399
2423
  Input(),
2400
- __metadata("design:type", String)
2401
- ], SplitButtonComponent.prototype, "fillMode", void 0);
2424
+ __metadata("design:type", String),
2425
+ __metadata("design:paramtypes", [String])
2426
+ ], SplitButtonComponent.prototype, "fillMode", null);
2402
2427
  __decorate([
2403
2428
  Input(),
2404
2429
  __metadata("design:type", String)
@@ -2608,7 +2633,8 @@ SplitButtonComponent = __decorate([
2608
2633
  PopupService,
2609
2634
  ElementRef,
2610
2635
  LocalizationService,
2611
- ChangeDetectorRef])
2636
+ ChangeDetectorRef,
2637
+ Renderer2])
2612
2638
  ], SplitButtonComponent);
2613
2639
 
2614
2640
  /**
@@ -2776,18 +2802,6 @@ let DropDownButtonComponent = class DropDownButtonComponent extends ListButton {
2776
2802
  * * `null`
2777
2803
  */
2778
2804
  this.rounded = 'medium';
2779
- /**
2780
- * The fillMode property specifies the background and border styles of the DropDownButton
2781
- * ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-fillMode)).
2782
- *
2783
- * The available values are:
2784
- * * `solid` (default)
2785
- * * `flat`
2786
- * * `outline`
2787
- * * `link`
2788
- * * `null`
2789
- */
2790
- this.fillMode = 'solid';
2791
2805
  /**
2792
2806
  * The DropDownButton allows you to specify predefined theme colors.
2793
2807
  * The theme color will be applied as a background and border color while also amending the text color accordingly
@@ -2835,6 +2849,7 @@ let DropDownButtonComponent = class DropDownButtonComponent extends ListButton {
2835
2849
  */
2836
2850
  this.onBlur = new EventEmitter(); //tslint:disable-line:no-output-rename
2837
2851
  this.listId = guid();
2852
+ this._fillMode = 'solid';
2838
2853
  this._itemClick = this.itemClick;
2839
2854
  this._blur = this.onBlur;
2840
2855
  }
@@ -2876,6 +2891,24 @@ let DropDownButtonComponent = class DropDownButtonComponent extends ListButton {
2876
2891
  get data() {
2877
2892
  return this._data;
2878
2893
  }
2894
+ /**
2895
+ * The fillMode property specifies the background and border styles of the DropDownButton
2896
+ * ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-fillMode)).
2897
+ *
2898
+ * The available values are:
2899
+ * * `solid` (default)
2900
+ * * `flat`
2901
+ * * `outline`
2902
+ * * `link`
2903
+ * * `null`
2904
+ */
2905
+ set fillMode(fillMode) {
2906
+ // Temporary workaround for missing 'clear' styles
2907
+ this._fillMode = fillMode === 'clear' ? 'flat' : fillMode;
2908
+ }
2909
+ get fillMode() {
2910
+ return this._fillMode;
2911
+ }
2879
2912
  /**
2880
2913
  * @hidden
2881
2914
  */
@@ -3181,8 +3214,9 @@ __decorate([
3181
3214
  ], DropDownButtonComponent.prototype, "rounded", void 0);
3182
3215
  __decorate([
3183
3216
  Input(),
3184
- __metadata("design:type", String)
3185
- ], DropDownButtonComponent.prototype, "fillMode", void 0);
3217
+ __metadata("design:type", String),
3218
+ __metadata("design:paramtypes", [String])
3219
+ ], DropDownButtonComponent.prototype, "fillMode", null);
3186
3220
  __decorate([
3187
3221
  Input(),
3188
3222
  __metadata("design:type", String)
@@ -3812,6 +3846,7 @@ let ChipListComponent = class ChipListComponent {
3812
3846
  this.remove = new EventEmitter();
3813
3847
  this.role = 'listbox';
3814
3848
  this._size = 'medium';
3849
+ validatePackage(packageMetadata);
3815
3850
  this.direction = localizationService.rtl ? 'rtl' : 'ltr';
3816
3851
  }
3817
3852
  /**