@progress/kendo-angular-toolbar 11.0.1-develop.5 → 11.1.0-develop.10

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.
@@ -9,7 +9,7 @@ export const packageMetadata = {
9
9
  name: '@progress/kendo-angular-toolbar',
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
12
- publishDate: 1674214362,
13
- version: '11.0.1-develop.5',
12
+ publishDate: 1675171605,
13
+ version: '11.1.0-develop.10',
14
14
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
15
15
  };
@@ -30,6 +30,7 @@ import * as i7 from "@progress/kendo-angular-common";
30
30
  import * as i8 from "./localization/localized-toolbar-messages.directive";
31
31
  import * as i9 from "@angular/common";
32
32
  const DEFAULT_SIZE = 'medium';
33
+ const immediateResizeThreshold = 300;
33
34
  const getInitialPopupSettings = (isRtl) => ({
34
35
  animate: true,
35
36
  anchorAlign: { horizontal: isRtl ? 'left' : 'right', vertical: 'bottom' },
@@ -69,6 +70,7 @@ export class ToolBarComponent {
69
70
  this.hostClass = true;
70
71
  this.cancelRenderedToolsSubscription$ = new Subject();
71
72
  this._size = DEFAULT_SIZE;
73
+ this.overflowButtonClickedTime = null;
72
74
  this.subscriptions = new Subscription();
73
75
  this.popupSubs = new Subscription();
74
76
  this.role = 'toolbar';
@@ -300,6 +302,7 @@ export class ToolBarComponent {
300
302
  showPopup() {
301
303
  this.popupOpen = !this.popupOpen;
302
304
  this.navigationService.click({ context: undefined, event: undefined });
305
+ this.overflowButtonClickedTime = Date.now();
303
306
  }
304
307
  /**
305
308
  * Toggles the visibility of the overflow popup.
@@ -336,7 +339,8 @@ export class ToolBarComponent {
336
339
  this.stretch(containerWidth, this.childrenWidth);
337
340
  this.displayAnchor();
338
341
  this.resizeSensor?.acceptSize();
339
- if (this.popupOpen) {
342
+ const isImmediateResize = (Date.now() - this.overflowButtonClickedTime) < immediateResizeThreshold;
343
+ if (this.popupOpen && !isImmediateResize) {
340
344
  this.toggle();
341
345
  }
342
346
  }
@@ -143,10 +143,12 @@ export class ToolBarButtonComponent extends ToolBarToolComponent {
143
143
  * The input can take either an [existing Kendo SVG icon](slug:svgicon_list) or a custom one.
144
144
  */
145
145
  set svgIcon(icon) {
146
+ const isIconSet = this.toolbarOptions.icon || this.overflowOptions.icon;
147
+ const isIconClassSet = this.toolbarOptions.iconClass || this.overflowOptions.iconClass;
146
148
  if (isDevMode() &&
147
149
  icon &&
148
- (this.toolbarOptions.icon || this.overflowOptions.icon) &&
149
- (this.toolbarOptions.iconClass || this.overflowOptions.iconClass)) {
150
+ isIconSet &&
151
+ isIconClassSet) {
150
152
  throw new Error('Setting both icon/svgIcon and iconClass options at the same time is not supported.');
151
153
  }
152
154
  this.toolbarOptions.svgIcon = getValueForLocation(icon, this.showIcon, false);
@@ -2,7 +2,7 @@
2
2
  * Copyright © 2023 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 { Component, ElementRef, TemplateRef, forwardRef, ViewChild, Input, EventEmitter, Output, QueryList, ViewChildren } from '@angular/core';
5
+ import { Component, ElementRef, TemplateRef, forwardRef, ViewChild, Input, EventEmitter, Output, QueryList, ViewChildren, isDevMode } from '@angular/core';
6
6
  import { ToolBarToolComponent } from './toolbar-tool.component';
7
7
  import { DropDownButtonComponent } from '@progress/kendo-angular-buttons';
8
8
  import { getValueForLocation, makePeeker, getIndexOfFocused, getPrevKey, getNextKey, seekFocusedIndex, areEqual } from '../util';
@@ -105,6 +105,22 @@ export class ToolBarDropDownButtonComponent extends ToolBarToolComponent {
105
105
  this.toolbarOptions.icon = getValueForLocation(icon, this.showIcon, false);
106
106
  this.overflowOptions.icon = getValueForLocation(icon, this.showIcon, true);
107
107
  }
108
+ /**
109
+ * Defines an SVGIcon to be rendered within the button.
110
+ * The input can take either an [existing Kendo SVG icon](slug:svgicon_list) or a custom one.
111
+ */
112
+ set svgIcon(icon) {
113
+ const isIconSet = this.toolbarOptions.icon || this.overflowOptions.icon;
114
+ const isIconClassSet = this.toolbarOptions.iconClass || this.overflowOptions.iconClass;
115
+ if (isDevMode() &&
116
+ icon &&
117
+ isIconSet &&
118
+ isIconClassSet) {
119
+ throw new Error('Setting both icon/svgIcon and iconClass options at the same time is not supported.');
120
+ }
121
+ this.toolbarOptions.svgIcon = getValueForLocation(icon, this.showIcon, false);
122
+ this.overflowOptions.svgIcon = getValueForLocation(icon, this.showIcon, true);
123
+ }
108
124
  /**
109
125
  * Defines an icon with a custom CSS class that will be rendered next to the button text.
110
126
  */
@@ -241,7 +257,7 @@ export class ToolBarDropDownButtonComponent extends ToolBarToolComponent {
241
257
  }
242
258
  }
243
259
  ToolBarDropDownButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ToolBarDropDownButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
244
- ToolBarDropDownButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ToolBarDropDownButtonComponent, selector: "kendo-toolbar-dropdownbutton", inputs: { showText: "showText", showIcon: "showIcon", text: "text", icon: "icon", iconClass: "iconClass", imageUrl: "imageUrl", popupSettings: "popupSettings", look: "look", primary: "primary", fillMode: "fillMode", themeColor: "themeColor", buttonClass: "buttonClass", textField: "textField", disabled: "disabled", data: "data" }, outputs: { itemClick: "itemClick", open: "open", close: "close" }, providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => ToolBarDropDownButtonComponent) }], viewQueries: [{ propertyName: "toolbarTemplate", first: true, predicate: ["toolbarTemplate"], descendants: true, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "dropdownButton", first: true, predicate: ["dropdownButton"], descendants: true, read: ElementRef, static: true }, { propertyName: "dropDownButtonComponent", first: true, predicate: DropDownButtonComponent, descendants: true }, { propertyName: "toolbarDropDownButton", first: true, predicate: ["toolbarDropDownButton"], descendants: true }, { propertyName: "overflowListItems", predicate: ["listItem"], descendants: true }], exportAs: ["kendoToolBarDropDownButton"], usesInheritance: true, ngImport: i0, template: `
260
+ ToolBarDropDownButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ToolBarDropDownButtonComponent, selector: "kendo-toolbar-dropdownbutton", inputs: { showText: "showText", showIcon: "showIcon", text: "text", icon: "icon", svgIcon: "svgIcon", iconClass: "iconClass", imageUrl: "imageUrl", popupSettings: "popupSettings", look: "look", primary: "primary", fillMode: "fillMode", themeColor: "themeColor", buttonClass: "buttonClass", textField: "textField", disabled: "disabled", data: "data" }, outputs: { itemClick: "itemClick", open: "open", close: "close" }, providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => ToolBarDropDownButtonComponent) }], viewQueries: [{ propertyName: "toolbarTemplate", first: true, predicate: ["toolbarTemplate"], descendants: true, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "dropdownButton", first: true, predicate: ["dropdownButton"], descendants: true, read: ElementRef, static: true }, { propertyName: "dropDownButtonComponent", first: true, predicate: DropDownButtonComponent, descendants: true }, { propertyName: "toolbarDropDownButton", first: true, predicate: ["toolbarDropDownButton"], descendants: true }, { propertyName: "overflowListItems", predicate: ["listItem"], descendants: true }], exportAs: ["kendoToolBarDropDownButton"], usesInheritance: true, ngImport: i0, template: `
245
261
  <ng-template #toolbarTemplate>
246
262
  <kendo-dropdownbutton
247
263
  #toolbarDropDownButton
@@ -384,6 +400,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
384
400
  type: Input
385
401
  }], icon: [{
386
402
  type: Input
403
+ }], svgIcon: [{
404
+ type: Input
387
405
  }], iconClass: [{
388
406
  type: Input
389
407
  }], imageUrl: [{
@@ -2,10 +2,11 @@
2
2
  * Copyright © 2023 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 { Component, TemplateRef, forwardRef, ViewChild, Input, ElementRef, Output, EventEmitter, ViewChildren, QueryList } from '@angular/core';
5
+ import { Component, TemplateRef, forwardRef, ViewChild, Input, ElementRef, Output, EventEmitter, ViewChildren, QueryList, isDevMode } from '@angular/core';
6
6
  import { SplitButtonComponent } from '@progress/kendo-angular-buttons';
7
7
  import { ToolBarToolComponent } from './toolbar-tool.component';
8
8
  import { getValueForLocation, makePeeker, getIndexOfFocused, getPrevKey, getNextKey, seekFocusedIndex, areEqual } from '../util';
9
+ import { caretAltDownIcon } from '@progress/kendo-svg-icons';
9
10
  import * as i0 from "@angular/core";
10
11
  import * as i1 from "@progress/kendo-angular-buttons";
11
12
  import * as i2 from "@progress/kendo-angular-icons";
@@ -54,7 +55,12 @@ export class ToolBarSplitButtonComponent extends ToolBarToolComponent {
54
55
  * Specifies the name of the [font icon]({% slug icons %}#toc-list-of-font-icons) that will
55
56
  * be rendered for the button which opens the popup.
56
57
  */
57
- this.arrowButtonIcon = 'arrow-s';
58
+ this.arrowButtonIcon = 'caret-alt-down';
59
+ /**
60
+ * Specifies the [`SVGIcon`](slug:api_icons_svgicon) that will
61
+ * be rendered for the button which opens the popup.
62
+ */
63
+ this.arrowButtonSvgIcon = caretAltDownIcon;
58
64
  /**
59
65
  * Configures the text field of the button-list popup.
60
66
  */
@@ -118,6 +124,22 @@ export class ToolBarSplitButtonComponent extends ToolBarToolComponent {
118
124
  this.toolbarOptions.icon = getValueForLocation(icon, this.showIcon, false);
119
125
  this.overflowOptions.icon = getValueForLocation(icon, this.showIcon, true);
120
126
  }
127
+ /**
128
+ * Defines an SVGIcon to be rendered within the main button.
129
+ * The input can take either an [existing Kendo SVG icon](slug:svgicon_list) or a custom one.
130
+ */
131
+ set svgIcon(icon) {
132
+ const isIconSet = this.toolbarOptions.icon || this.overflowOptions.icon;
133
+ const isIconClassSet = this.toolbarOptions.iconClass || this.overflowOptions.iconClass;
134
+ if (isDevMode() &&
135
+ icon &&
136
+ isIconSet &&
137
+ isIconClassSet) {
138
+ throw new Error('Setting both icon/svgIcon and iconClass options at the same time is not supported.');
139
+ }
140
+ this.toolbarOptions.svgIcon = getValueForLocation(icon, this.showIcon, false);
141
+ this.overflowOptions.svgIcon = getValueForLocation(icon, this.showIcon, true);
142
+ }
121
143
  /**
122
144
  * Defines an icon with a custom CSS class that will be rendered next to the button text.
123
145
  */
@@ -255,7 +277,7 @@ export class ToolBarSplitButtonComponent extends ToolBarToolComponent {
255
277
  }
256
278
  }
257
279
  ToolBarSplitButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ToolBarSplitButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
258
- ToolBarSplitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ToolBarSplitButtonComponent, selector: "kendo-toolbar-splitbutton", inputs: { showText: "showText", showIcon: "showIcon", text: "text", icon: "icon", iconClass: "iconClass", imageUrl: "imageUrl", disabled: "disabled", popupSettings: "popupSettings", fillMode: "fillMode", themeColor: "themeColor", look: "look", buttonClass: "buttonClass", arrowButtonClass: "arrowButtonClass", arrowButtonIcon: "arrowButtonIcon", textField: "textField", data: "data" }, outputs: { buttonClick: "buttonClick", itemClick: "itemClick", open: "open", close: "close" }, providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => ToolBarSplitButtonComponent) }], viewQueries: [{ propertyName: "toolbarTemplate", first: true, predicate: ["toolbarTemplate"], descendants: true, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "toolbarSplitButton", first: true, predicate: ["toolbarSplitButton"], descendants: true }, { propertyName: "overflowMainButton", first: true, predicate: ["overflowMainButton"], descendants: true, read: ElementRef }, { propertyName: "overflowListItems", predicate: ["listItem"], descendants: true }], exportAs: ["kendoToolBarSplitButton"], usesInheritance: true, ngImport: i0, template: `
280
+ ToolBarSplitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ToolBarSplitButtonComponent, selector: "kendo-toolbar-splitbutton", inputs: { showText: "showText", showIcon: "showIcon", text: "text", icon: "icon", svgIcon: "svgIcon", iconClass: "iconClass", imageUrl: "imageUrl", disabled: "disabled", popupSettings: "popupSettings", fillMode: "fillMode", themeColor: "themeColor", look: "look", buttonClass: "buttonClass", arrowButtonClass: "arrowButtonClass", arrowButtonIcon: "arrowButtonIcon", arrowButtonSvgIcon: "arrowButtonSvgIcon", textField: "textField", data: "data" }, outputs: { buttonClick: "buttonClick", itemClick: "itemClick", open: "open", close: "close" }, providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => ToolBarSplitButtonComponent) }], viewQueries: [{ propertyName: "toolbarTemplate", first: true, predicate: ["toolbarTemplate"], descendants: true, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "toolbarSplitButton", first: true, predicate: ["toolbarSplitButton"], descendants: true }, { propertyName: "overflowMainButton", first: true, predicate: ["overflowMainButton"], descendants: true, read: ElementRef }, { propertyName: "overflowListItems", predicate: ["listItem"], descendants: true }], exportAs: ["kendoToolBarSplitButton"], usesInheritance: true, ngImport: i0, template: `
259
281
  <ng-template #toolbarTemplate>
260
282
  <kendo-splitbutton
261
283
  #toolbarSplitButton
@@ -269,6 +291,7 @@ ToolBarSplitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.
269
291
  [buttonClass]="buttonClass"
270
292
  [arrowButtonClass]="arrowButtonClass"
271
293
  [arrowButtonIcon]="arrowButtonIcon"
294
+ [arrowButtonSvgIcon]="arrowButtonSvgIcon"
272
295
  [disabled]="disabled"
273
296
  [tabIndex]="-1"
274
297
  [textField]="textField"
@@ -279,8 +302,7 @@ ToolBarSplitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.
279
302
  (open)="open.emit($event)"
280
303
  (close)="close.emit($event)"
281
304
  (itemClick)="itemClick.emit($event)"
282
- >
283
- </kendo-splitbutton>
305
+ ></kendo-splitbutton>
284
306
  </ng-template>
285
307
  <ng-template #popupTemplate>
286
308
  <div #overflowMainButton
@@ -346,6 +368,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
346
368
  [buttonClass]="buttonClass"
347
369
  [arrowButtonClass]="arrowButtonClass"
348
370
  [arrowButtonIcon]="arrowButtonIcon"
371
+ [arrowButtonSvgIcon]="arrowButtonSvgIcon"
349
372
  [disabled]="disabled"
350
373
  [tabIndex]="-1"
351
374
  [textField]="textField"
@@ -356,8 +379,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
356
379
  (open)="open.emit($event)"
357
380
  (close)="close.emit($event)"
358
381
  (itemClick)="itemClick.emit($event)"
359
- >
360
- </kendo-splitbutton>
382
+ ></kendo-splitbutton>
361
383
  </ng-template>
362
384
  <ng-template #popupTemplate>
363
385
  <div #overflowMainButton
@@ -412,6 +434,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
412
434
  type: Input
413
435
  }], icon: [{
414
436
  type: Input
437
+ }], svgIcon: [{
438
+ type: Input
415
439
  }], iconClass: [{
416
440
  type: Input
417
441
  }], imageUrl: [{
@@ -432,6 +456,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
432
456
  type: Input
433
457
  }], arrowButtonIcon: [{
434
458
  type: Input
459
+ }], arrowButtonSvgIcon: [{
460
+ type: Input
435
461
  }], textField: [{
436
462
  type: Input
437
463
  }], data: [{
@@ -11,7 +11,7 @@ import { ComponentMessages, LocalizationService, L10N_PREFIX } from '@progress/k
11
11
  import { validatePackage } from '@progress/kendo-licensing';
12
12
  import { take, filter, takeUntil } from 'rxjs/operators';
13
13
  import { Subject, Subscription, merge, fromEvent } from 'rxjs';
14
- import { moreVerticalIcon } from '@progress/kendo-svg-icons';
14
+ import { moreVerticalIcon, caretAltDownIcon } from '@progress/kendo-svg-icons';
15
15
  import * as i2 from '@progress/kendo-angular-popup';
16
16
  import { PopupModule } from '@progress/kendo-angular-popup';
17
17
  import * as i3 from '@angular/common';
@@ -28,8 +28,8 @@ const packageMetadata = {
28
28
  name: '@progress/kendo-angular-toolbar',
29
29
  productName: 'Kendo UI for Angular',
30
30
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
31
- publishDate: 1674214362,
32
- version: '11.0.1-develop.5',
31
+ publishDate: 1675171605,
32
+ version: '11.1.0-develop.10',
33
33
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
34
34
  };
35
35
 
@@ -715,6 +715,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
715
715
  }], ctorParameters: function () { return [{ type: i1.LocalizationService }]; } });
716
716
 
717
717
  const DEFAULT_SIZE = 'medium';
718
+ const immediateResizeThreshold = 300;
718
719
  const getInitialPopupSettings = (isRtl) => ({
719
720
  animate: true,
720
721
  anchorAlign: { horizontal: isRtl ? 'left' : 'right', vertical: 'bottom' },
@@ -754,6 +755,7 @@ class ToolBarComponent {
754
755
  this.hostClass = true;
755
756
  this.cancelRenderedToolsSubscription$ = new Subject();
756
757
  this._size = DEFAULT_SIZE;
758
+ this.overflowButtonClickedTime = null;
757
759
  this.subscriptions = new Subscription();
758
760
  this.popupSubs = new Subscription();
759
761
  this.role = 'toolbar';
@@ -985,6 +987,7 @@ class ToolBarComponent {
985
987
  showPopup() {
986
988
  this.popupOpen = !this.popupOpen;
987
989
  this.navigationService.click({ context: undefined, event: undefined });
990
+ this.overflowButtonClickedTime = Date.now();
988
991
  }
989
992
  /**
990
993
  * Toggles the visibility of the overflow popup.
@@ -1022,7 +1025,8 @@ class ToolBarComponent {
1022
1025
  this.stretch(containerWidth, this.childrenWidth);
1023
1026
  this.displayAnchor();
1024
1027
  (_a = this.resizeSensor) === null || _a === void 0 ? void 0 : _a.acceptSize();
1025
- if (this.popupOpen) {
1028
+ const isImmediateResize = (Date.now() - this.overflowButtonClickedTime) < immediateResizeThreshold;
1029
+ if (this.popupOpen && !isImmediateResize) {
1026
1030
  this.toggle();
1027
1031
  }
1028
1032
  }
@@ -1566,10 +1570,12 @@ class ToolBarButtonComponent extends ToolBarToolComponent {
1566
1570
  * The input can take either an [existing Kendo SVG icon](slug:svgicon_list) or a custom one.
1567
1571
  */
1568
1572
  set svgIcon(icon) {
1573
+ const isIconSet = this.toolbarOptions.icon || this.overflowOptions.icon;
1574
+ const isIconClassSet = this.toolbarOptions.iconClass || this.overflowOptions.iconClass;
1569
1575
  if (isDevMode() &&
1570
1576
  icon &&
1571
- (this.toolbarOptions.icon || this.overflowOptions.icon) &&
1572
- (this.toolbarOptions.iconClass || this.overflowOptions.iconClass)) {
1577
+ isIconSet &&
1578
+ isIconClassSet) {
1573
1579
  throw new Error('Setting both icon/svgIcon and iconClass options at the same time is not supported.');
1574
1580
  }
1575
1581
  this.toolbarOptions.svgIcon = getValueForLocation(icon, this.showIcon, false);
@@ -2197,6 +2203,22 @@ class ToolBarDropDownButtonComponent extends ToolBarToolComponent {
2197
2203
  this.toolbarOptions.icon = getValueForLocation(icon, this.showIcon, false);
2198
2204
  this.overflowOptions.icon = getValueForLocation(icon, this.showIcon, true);
2199
2205
  }
2206
+ /**
2207
+ * Defines an SVGIcon to be rendered within the button.
2208
+ * The input can take either an [existing Kendo SVG icon](slug:svgicon_list) or a custom one.
2209
+ */
2210
+ set svgIcon(icon) {
2211
+ const isIconSet = this.toolbarOptions.icon || this.overflowOptions.icon;
2212
+ const isIconClassSet = this.toolbarOptions.iconClass || this.overflowOptions.iconClass;
2213
+ if (isDevMode() &&
2214
+ icon &&
2215
+ isIconSet &&
2216
+ isIconClassSet) {
2217
+ throw new Error('Setting both icon/svgIcon and iconClass options at the same time is not supported.');
2218
+ }
2219
+ this.toolbarOptions.svgIcon = getValueForLocation(icon, this.showIcon, false);
2220
+ this.overflowOptions.svgIcon = getValueForLocation(icon, this.showIcon, true);
2221
+ }
2200
2222
  /**
2201
2223
  * Defines an icon with a custom CSS class that will be rendered next to the button text.
2202
2224
  */
@@ -2333,7 +2355,7 @@ class ToolBarDropDownButtonComponent extends ToolBarToolComponent {
2333
2355
  }
2334
2356
  }
2335
2357
  ToolBarDropDownButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ToolBarDropDownButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2336
- ToolBarDropDownButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ToolBarDropDownButtonComponent, selector: "kendo-toolbar-dropdownbutton", inputs: { showText: "showText", showIcon: "showIcon", text: "text", icon: "icon", iconClass: "iconClass", imageUrl: "imageUrl", popupSettings: "popupSettings", look: "look", primary: "primary", fillMode: "fillMode", themeColor: "themeColor", buttonClass: "buttonClass", textField: "textField", disabled: "disabled", data: "data" }, outputs: { itemClick: "itemClick", open: "open", close: "close" }, providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => ToolBarDropDownButtonComponent) }], viewQueries: [{ propertyName: "toolbarTemplate", first: true, predicate: ["toolbarTemplate"], descendants: true, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "dropdownButton", first: true, predicate: ["dropdownButton"], descendants: true, read: ElementRef, static: true }, { propertyName: "dropDownButtonComponent", first: true, predicate: DropDownButtonComponent, descendants: true }, { propertyName: "toolbarDropDownButton", first: true, predicate: ["toolbarDropDownButton"], descendants: true }, { propertyName: "overflowListItems", predicate: ["listItem"], descendants: true }], exportAs: ["kendoToolBarDropDownButton"], usesInheritance: true, ngImport: i0, template: `
2358
+ ToolBarDropDownButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ToolBarDropDownButtonComponent, selector: "kendo-toolbar-dropdownbutton", inputs: { showText: "showText", showIcon: "showIcon", text: "text", icon: "icon", svgIcon: "svgIcon", iconClass: "iconClass", imageUrl: "imageUrl", popupSettings: "popupSettings", look: "look", primary: "primary", fillMode: "fillMode", themeColor: "themeColor", buttonClass: "buttonClass", textField: "textField", disabled: "disabled", data: "data" }, outputs: { itemClick: "itemClick", open: "open", close: "close" }, providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => ToolBarDropDownButtonComponent) }], viewQueries: [{ propertyName: "toolbarTemplate", first: true, predicate: ["toolbarTemplate"], descendants: true, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "dropdownButton", first: true, predicate: ["dropdownButton"], descendants: true, read: ElementRef, static: true }, { propertyName: "dropDownButtonComponent", first: true, predicate: DropDownButtonComponent, descendants: true }, { propertyName: "toolbarDropDownButton", first: true, predicate: ["toolbarDropDownButton"], descendants: true }, { propertyName: "overflowListItems", predicate: ["listItem"], descendants: true }], exportAs: ["kendoToolBarDropDownButton"], usesInheritance: true, ngImport: i0, template: `
2337
2359
  <ng-template #toolbarTemplate>
2338
2360
  <kendo-dropdownbutton
2339
2361
  #toolbarDropDownButton
@@ -2476,6 +2498,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
2476
2498
  type: Input
2477
2499
  }], icon: [{
2478
2500
  type: Input
2501
+ }], svgIcon: [{
2502
+ type: Input
2479
2503
  }], iconClass: [{
2480
2504
  type: Input
2481
2505
  }], imageUrl: [{
@@ -2568,7 +2592,12 @@ class ToolBarSplitButtonComponent extends ToolBarToolComponent {
2568
2592
  * Specifies the name of the [font icon]({% slug icons %}#toc-list-of-font-icons) that will
2569
2593
  * be rendered for the button which opens the popup.
2570
2594
  */
2571
- this.arrowButtonIcon = 'arrow-s';
2595
+ this.arrowButtonIcon = 'caret-alt-down';
2596
+ /**
2597
+ * Specifies the [`SVGIcon`](slug:api_icons_svgicon) that will
2598
+ * be rendered for the button which opens the popup.
2599
+ */
2600
+ this.arrowButtonSvgIcon = caretAltDownIcon;
2572
2601
  /**
2573
2602
  * Configures the text field of the button-list popup.
2574
2603
  */
@@ -2632,6 +2661,22 @@ class ToolBarSplitButtonComponent extends ToolBarToolComponent {
2632
2661
  this.toolbarOptions.icon = getValueForLocation(icon, this.showIcon, false);
2633
2662
  this.overflowOptions.icon = getValueForLocation(icon, this.showIcon, true);
2634
2663
  }
2664
+ /**
2665
+ * Defines an SVGIcon to be rendered within the main button.
2666
+ * The input can take either an [existing Kendo SVG icon](slug:svgicon_list) or a custom one.
2667
+ */
2668
+ set svgIcon(icon) {
2669
+ const isIconSet = this.toolbarOptions.icon || this.overflowOptions.icon;
2670
+ const isIconClassSet = this.toolbarOptions.iconClass || this.overflowOptions.iconClass;
2671
+ if (isDevMode() &&
2672
+ icon &&
2673
+ isIconSet &&
2674
+ isIconClassSet) {
2675
+ throw new Error('Setting both icon/svgIcon and iconClass options at the same time is not supported.');
2676
+ }
2677
+ this.toolbarOptions.svgIcon = getValueForLocation(icon, this.showIcon, false);
2678
+ this.overflowOptions.svgIcon = getValueForLocation(icon, this.showIcon, true);
2679
+ }
2635
2680
  /**
2636
2681
  * Defines an icon with a custom CSS class that will be rendered next to the button text.
2637
2682
  */
@@ -2769,7 +2814,7 @@ class ToolBarSplitButtonComponent extends ToolBarToolComponent {
2769
2814
  }
2770
2815
  }
2771
2816
  ToolBarSplitButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ToolBarSplitButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2772
- ToolBarSplitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ToolBarSplitButtonComponent, selector: "kendo-toolbar-splitbutton", inputs: { showText: "showText", showIcon: "showIcon", text: "text", icon: "icon", iconClass: "iconClass", imageUrl: "imageUrl", disabled: "disabled", popupSettings: "popupSettings", fillMode: "fillMode", themeColor: "themeColor", look: "look", buttonClass: "buttonClass", arrowButtonClass: "arrowButtonClass", arrowButtonIcon: "arrowButtonIcon", textField: "textField", data: "data" }, outputs: { buttonClick: "buttonClick", itemClick: "itemClick", open: "open", close: "close" }, providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => ToolBarSplitButtonComponent) }], viewQueries: [{ propertyName: "toolbarTemplate", first: true, predicate: ["toolbarTemplate"], descendants: true, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "toolbarSplitButton", first: true, predicate: ["toolbarSplitButton"], descendants: true }, { propertyName: "overflowMainButton", first: true, predicate: ["overflowMainButton"], descendants: true, read: ElementRef }, { propertyName: "overflowListItems", predicate: ["listItem"], descendants: true }], exportAs: ["kendoToolBarSplitButton"], usesInheritance: true, ngImport: i0, template: `
2817
+ ToolBarSplitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ToolBarSplitButtonComponent, selector: "kendo-toolbar-splitbutton", inputs: { showText: "showText", showIcon: "showIcon", text: "text", icon: "icon", svgIcon: "svgIcon", iconClass: "iconClass", imageUrl: "imageUrl", disabled: "disabled", popupSettings: "popupSettings", fillMode: "fillMode", themeColor: "themeColor", look: "look", buttonClass: "buttonClass", arrowButtonClass: "arrowButtonClass", arrowButtonIcon: "arrowButtonIcon", arrowButtonSvgIcon: "arrowButtonSvgIcon", textField: "textField", data: "data" }, outputs: { buttonClick: "buttonClick", itemClick: "itemClick", open: "open", close: "close" }, providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => ToolBarSplitButtonComponent) }], viewQueries: [{ propertyName: "toolbarTemplate", first: true, predicate: ["toolbarTemplate"], descendants: true, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "toolbarSplitButton", first: true, predicate: ["toolbarSplitButton"], descendants: true }, { propertyName: "overflowMainButton", first: true, predicate: ["overflowMainButton"], descendants: true, read: ElementRef }, { propertyName: "overflowListItems", predicate: ["listItem"], descendants: true }], exportAs: ["kendoToolBarSplitButton"], usesInheritance: true, ngImport: i0, template: `
2773
2818
  <ng-template #toolbarTemplate>
2774
2819
  <kendo-splitbutton
2775
2820
  #toolbarSplitButton
@@ -2783,6 +2828,7 @@ ToolBarSplitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.
2783
2828
  [buttonClass]="buttonClass"
2784
2829
  [arrowButtonClass]="arrowButtonClass"
2785
2830
  [arrowButtonIcon]="arrowButtonIcon"
2831
+ [arrowButtonSvgIcon]="arrowButtonSvgIcon"
2786
2832
  [disabled]="disabled"
2787
2833
  [tabIndex]="-1"
2788
2834
  [textField]="textField"
@@ -2793,8 +2839,7 @@ ToolBarSplitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.
2793
2839
  (open)="open.emit($event)"
2794
2840
  (close)="close.emit($event)"
2795
2841
  (itemClick)="itemClick.emit($event)"
2796
- >
2797
- </kendo-splitbutton>
2842
+ ></kendo-splitbutton>
2798
2843
  </ng-template>
2799
2844
  <ng-template #popupTemplate>
2800
2845
  <div #overflowMainButton
@@ -2860,6 +2905,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
2860
2905
  [buttonClass]="buttonClass"
2861
2906
  [arrowButtonClass]="arrowButtonClass"
2862
2907
  [arrowButtonIcon]="arrowButtonIcon"
2908
+ [arrowButtonSvgIcon]="arrowButtonSvgIcon"
2863
2909
  [disabled]="disabled"
2864
2910
  [tabIndex]="-1"
2865
2911
  [textField]="textField"
@@ -2870,8 +2916,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
2870
2916
  (open)="open.emit($event)"
2871
2917
  (close)="close.emit($event)"
2872
2918
  (itemClick)="itemClick.emit($event)"
2873
- >
2874
- </kendo-splitbutton>
2919
+ ></kendo-splitbutton>
2875
2920
  </ng-template>
2876
2921
  <ng-template #popupTemplate>
2877
2922
  <div #overflowMainButton
@@ -2926,6 +2971,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
2926
2971
  type: Input
2927
2972
  }], icon: [{
2928
2973
  type: Input
2974
+ }], svgIcon: [{
2975
+ type: Input
2929
2976
  }], iconClass: [{
2930
2977
  type: Input
2931
2978
  }], imageUrl: [{
@@ -2946,6 +2993,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
2946
2993
  type: Input
2947
2994
  }], arrowButtonIcon: [{
2948
2995
  type: Input
2996
+ }], arrowButtonSvgIcon: [{
2997
+ type: Input
2949
2998
  }], textField: [{
2950
2999
  type: Input
2951
3000
  }], data: [{
@@ -13,7 +13,7 @@ import { ComponentMessages, LocalizationService, L10N_PREFIX } from '@progress/k
13
13
  import { validatePackage } from '@progress/kendo-licensing';
14
14
  import { take, filter, takeUntil } from 'rxjs/operators';
15
15
  import { Subject, Subscription, merge, fromEvent } from 'rxjs';
16
- import { moreVerticalIcon } from '@progress/kendo-svg-icons';
16
+ import { moreVerticalIcon, caretAltDownIcon } from '@progress/kendo-svg-icons';
17
17
  import * as i3 from '@angular/common';
18
18
  import { CommonModule } from '@angular/common';
19
19
  import * as i1$1 from '@progress/kendo-angular-buttons';
@@ -28,8 +28,8 @@ const packageMetadata = {
28
28
  name: '@progress/kendo-angular-toolbar',
29
29
  productName: 'Kendo UI for Angular',
30
30
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
31
- publishDate: 1674214362,
32
- version: '11.0.1-develop.5',
31
+ publishDate: 1675171605,
32
+ version: '11.1.0-develop.10',
33
33
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
34
34
  };
35
35
 
@@ -715,6 +715,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
715
715
  }], ctorParameters: function () { return [{ type: i1.LocalizationService }]; } });
716
716
 
717
717
  const DEFAULT_SIZE = 'medium';
718
+ const immediateResizeThreshold = 300;
718
719
  const getInitialPopupSettings = (isRtl) => ({
719
720
  animate: true,
720
721
  anchorAlign: { horizontal: isRtl ? 'left' : 'right', vertical: 'bottom' },
@@ -754,6 +755,7 @@ class ToolBarComponent {
754
755
  this.hostClass = true;
755
756
  this.cancelRenderedToolsSubscription$ = new Subject();
756
757
  this._size = DEFAULT_SIZE;
758
+ this.overflowButtonClickedTime = null;
757
759
  this.subscriptions = new Subscription();
758
760
  this.popupSubs = new Subscription();
759
761
  this.role = 'toolbar';
@@ -985,6 +987,7 @@ class ToolBarComponent {
985
987
  showPopup() {
986
988
  this.popupOpen = !this.popupOpen;
987
989
  this.navigationService.click({ context: undefined, event: undefined });
990
+ this.overflowButtonClickedTime = Date.now();
988
991
  }
989
992
  /**
990
993
  * Toggles the visibility of the overflow popup.
@@ -1021,7 +1024,8 @@ class ToolBarComponent {
1021
1024
  this.stretch(containerWidth, this.childrenWidth);
1022
1025
  this.displayAnchor();
1023
1026
  this.resizeSensor?.acceptSize();
1024
- if (this.popupOpen) {
1027
+ const isImmediateResize = (Date.now() - this.overflowButtonClickedTime) < immediateResizeThreshold;
1028
+ if (this.popupOpen && !isImmediateResize) {
1025
1029
  this.toggle();
1026
1030
  }
1027
1031
  }
@@ -1565,10 +1569,12 @@ class ToolBarButtonComponent extends ToolBarToolComponent {
1565
1569
  * The input can take either an [existing Kendo SVG icon](slug:svgicon_list) or a custom one.
1566
1570
  */
1567
1571
  set svgIcon(icon) {
1572
+ const isIconSet = this.toolbarOptions.icon || this.overflowOptions.icon;
1573
+ const isIconClassSet = this.toolbarOptions.iconClass || this.overflowOptions.iconClass;
1568
1574
  if (isDevMode() &&
1569
1575
  icon &&
1570
- (this.toolbarOptions.icon || this.overflowOptions.icon) &&
1571
- (this.toolbarOptions.iconClass || this.overflowOptions.iconClass)) {
1576
+ isIconSet &&
1577
+ isIconClassSet) {
1572
1578
  throw new Error('Setting both icon/svgIcon and iconClass options at the same time is not supported.');
1573
1579
  }
1574
1580
  this.toolbarOptions.svgIcon = getValueForLocation(icon, this.showIcon, false);
@@ -2195,6 +2201,22 @@ class ToolBarDropDownButtonComponent extends ToolBarToolComponent {
2195
2201
  this.toolbarOptions.icon = getValueForLocation(icon, this.showIcon, false);
2196
2202
  this.overflowOptions.icon = getValueForLocation(icon, this.showIcon, true);
2197
2203
  }
2204
+ /**
2205
+ * Defines an SVGIcon to be rendered within the button.
2206
+ * The input can take either an [existing Kendo SVG icon](slug:svgicon_list) or a custom one.
2207
+ */
2208
+ set svgIcon(icon) {
2209
+ const isIconSet = this.toolbarOptions.icon || this.overflowOptions.icon;
2210
+ const isIconClassSet = this.toolbarOptions.iconClass || this.overflowOptions.iconClass;
2211
+ if (isDevMode() &&
2212
+ icon &&
2213
+ isIconSet &&
2214
+ isIconClassSet) {
2215
+ throw new Error('Setting both icon/svgIcon and iconClass options at the same time is not supported.');
2216
+ }
2217
+ this.toolbarOptions.svgIcon = getValueForLocation(icon, this.showIcon, false);
2218
+ this.overflowOptions.svgIcon = getValueForLocation(icon, this.showIcon, true);
2219
+ }
2198
2220
  /**
2199
2221
  * Defines an icon with a custom CSS class that will be rendered next to the button text.
2200
2222
  */
@@ -2331,7 +2353,7 @@ class ToolBarDropDownButtonComponent extends ToolBarToolComponent {
2331
2353
  }
2332
2354
  }
2333
2355
  ToolBarDropDownButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ToolBarDropDownButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2334
- ToolBarDropDownButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ToolBarDropDownButtonComponent, selector: "kendo-toolbar-dropdownbutton", inputs: { showText: "showText", showIcon: "showIcon", text: "text", icon: "icon", iconClass: "iconClass", imageUrl: "imageUrl", popupSettings: "popupSettings", look: "look", primary: "primary", fillMode: "fillMode", themeColor: "themeColor", buttonClass: "buttonClass", textField: "textField", disabled: "disabled", data: "data" }, outputs: { itemClick: "itemClick", open: "open", close: "close" }, providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => ToolBarDropDownButtonComponent) }], viewQueries: [{ propertyName: "toolbarTemplate", first: true, predicate: ["toolbarTemplate"], descendants: true, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "dropdownButton", first: true, predicate: ["dropdownButton"], descendants: true, read: ElementRef, static: true }, { propertyName: "dropDownButtonComponent", first: true, predicate: DropDownButtonComponent, descendants: true }, { propertyName: "toolbarDropDownButton", first: true, predicate: ["toolbarDropDownButton"], descendants: true }, { propertyName: "overflowListItems", predicate: ["listItem"], descendants: true }], exportAs: ["kendoToolBarDropDownButton"], usesInheritance: true, ngImport: i0, template: `
2356
+ ToolBarDropDownButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ToolBarDropDownButtonComponent, selector: "kendo-toolbar-dropdownbutton", inputs: { showText: "showText", showIcon: "showIcon", text: "text", icon: "icon", svgIcon: "svgIcon", iconClass: "iconClass", imageUrl: "imageUrl", popupSettings: "popupSettings", look: "look", primary: "primary", fillMode: "fillMode", themeColor: "themeColor", buttonClass: "buttonClass", textField: "textField", disabled: "disabled", data: "data" }, outputs: { itemClick: "itemClick", open: "open", close: "close" }, providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => ToolBarDropDownButtonComponent) }], viewQueries: [{ propertyName: "toolbarTemplate", first: true, predicate: ["toolbarTemplate"], descendants: true, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "dropdownButton", first: true, predicate: ["dropdownButton"], descendants: true, read: ElementRef, static: true }, { propertyName: "dropDownButtonComponent", first: true, predicate: DropDownButtonComponent, descendants: true }, { propertyName: "toolbarDropDownButton", first: true, predicate: ["toolbarDropDownButton"], descendants: true }, { propertyName: "overflowListItems", predicate: ["listItem"], descendants: true }], exportAs: ["kendoToolBarDropDownButton"], usesInheritance: true, ngImport: i0, template: `
2335
2357
  <ng-template #toolbarTemplate>
2336
2358
  <kendo-dropdownbutton
2337
2359
  #toolbarDropDownButton
@@ -2474,6 +2496,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
2474
2496
  type: Input
2475
2497
  }], icon: [{
2476
2498
  type: Input
2499
+ }], svgIcon: [{
2500
+ type: Input
2477
2501
  }], iconClass: [{
2478
2502
  type: Input
2479
2503
  }], imageUrl: [{
@@ -2566,7 +2590,12 @@ class ToolBarSplitButtonComponent extends ToolBarToolComponent {
2566
2590
  * Specifies the name of the [font icon]({% slug icons %}#toc-list-of-font-icons) that will
2567
2591
  * be rendered for the button which opens the popup.
2568
2592
  */
2569
- this.arrowButtonIcon = 'arrow-s';
2593
+ this.arrowButtonIcon = 'caret-alt-down';
2594
+ /**
2595
+ * Specifies the [`SVGIcon`](slug:api_icons_svgicon) that will
2596
+ * be rendered for the button which opens the popup.
2597
+ */
2598
+ this.arrowButtonSvgIcon = caretAltDownIcon;
2570
2599
  /**
2571
2600
  * Configures the text field of the button-list popup.
2572
2601
  */
@@ -2630,6 +2659,22 @@ class ToolBarSplitButtonComponent extends ToolBarToolComponent {
2630
2659
  this.toolbarOptions.icon = getValueForLocation(icon, this.showIcon, false);
2631
2660
  this.overflowOptions.icon = getValueForLocation(icon, this.showIcon, true);
2632
2661
  }
2662
+ /**
2663
+ * Defines an SVGIcon to be rendered within the main button.
2664
+ * The input can take either an [existing Kendo SVG icon](slug:svgicon_list) or a custom one.
2665
+ */
2666
+ set svgIcon(icon) {
2667
+ const isIconSet = this.toolbarOptions.icon || this.overflowOptions.icon;
2668
+ const isIconClassSet = this.toolbarOptions.iconClass || this.overflowOptions.iconClass;
2669
+ if (isDevMode() &&
2670
+ icon &&
2671
+ isIconSet &&
2672
+ isIconClassSet) {
2673
+ throw new Error('Setting both icon/svgIcon and iconClass options at the same time is not supported.');
2674
+ }
2675
+ this.toolbarOptions.svgIcon = getValueForLocation(icon, this.showIcon, false);
2676
+ this.overflowOptions.svgIcon = getValueForLocation(icon, this.showIcon, true);
2677
+ }
2633
2678
  /**
2634
2679
  * Defines an icon with a custom CSS class that will be rendered next to the button text.
2635
2680
  */
@@ -2767,7 +2812,7 @@ class ToolBarSplitButtonComponent extends ToolBarToolComponent {
2767
2812
  }
2768
2813
  }
2769
2814
  ToolBarSplitButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ToolBarSplitButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2770
- ToolBarSplitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ToolBarSplitButtonComponent, selector: "kendo-toolbar-splitbutton", inputs: { showText: "showText", showIcon: "showIcon", text: "text", icon: "icon", iconClass: "iconClass", imageUrl: "imageUrl", disabled: "disabled", popupSettings: "popupSettings", fillMode: "fillMode", themeColor: "themeColor", look: "look", buttonClass: "buttonClass", arrowButtonClass: "arrowButtonClass", arrowButtonIcon: "arrowButtonIcon", textField: "textField", data: "data" }, outputs: { buttonClick: "buttonClick", itemClick: "itemClick", open: "open", close: "close" }, providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => ToolBarSplitButtonComponent) }], viewQueries: [{ propertyName: "toolbarTemplate", first: true, predicate: ["toolbarTemplate"], descendants: true, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "toolbarSplitButton", first: true, predicate: ["toolbarSplitButton"], descendants: true }, { propertyName: "overflowMainButton", first: true, predicate: ["overflowMainButton"], descendants: true, read: ElementRef }, { propertyName: "overflowListItems", predicate: ["listItem"], descendants: true }], exportAs: ["kendoToolBarSplitButton"], usesInheritance: true, ngImport: i0, template: `
2815
+ ToolBarSplitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ToolBarSplitButtonComponent, selector: "kendo-toolbar-splitbutton", inputs: { showText: "showText", showIcon: "showIcon", text: "text", icon: "icon", svgIcon: "svgIcon", iconClass: "iconClass", imageUrl: "imageUrl", disabled: "disabled", popupSettings: "popupSettings", fillMode: "fillMode", themeColor: "themeColor", look: "look", buttonClass: "buttonClass", arrowButtonClass: "arrowButtonClass", arrowButtonIcon: "arrowButtonIcon", arrowButtonSvgIcon: "arrowButtonSvgIcon", textField: "textField", data: "data" }, outputs: { buttonClick: "buttonClick", itemClick: "itemClick", open: "open", close: "close" }, providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => ToolBarSplitButtonComponent) }], viewQueries: [{ propertyName: "toolbarTemplate", first: true, predicate: ["toolbarTemplate"], descendants: true, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "toolbarSplitButton", first: true, predicate: ["toolbarSplitButton"], descendants: true }, { propertyName: "overflowMainButton", first: true, predicate: ["overflowMainButton"], descendants: true, read: ElementRef }, { propertyName: "overflowListItems", predicate: ["listItem"], descendants: true }], exportAs: ["kendoToolBarSplitButton"], usesInheritance: true, ngImport: i0, template: `
2771
2816
  <ng-template #toolbarTemplate>
2772
2817
  <kendo-splitbutton
2773
2818
  #toolbarSplitButton
@@ -2781,6 +2826,7 @@ ToolBarSplitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.
2781
2826
  [buttonClass]="buttonClass"
2782
2827
  [arrowButtonClass]="arrowButtonClass"
2783
2828
  [arrowButtonIcon]="arrowButtonIcon"
2829
+ [arrowButtonSvgIcon]="arrowButtonSvgIcon"
2784
2830
  [disabled]="disabled"
2785
2831
  [tabIndex]="-1"
2786
2832
  [textField]="textField"
@@ -2791,8 +2837,7 @@ ToolBarSplitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.
2791
2837
  (open)="open.emit($event)"
2792
2838
  (close)="close.emit($event)"
2793
2839
  (itemClick)="itemClick.emit($event)"
2794
- >
2795
- </kendo-splitbutton>
2840
+ ></kendo-splitbutton>
2796
2841
  </ng-template>
2797
2842
  <ng-template #popupTemplate>
2798
2843
  <div #overflowMainButton
@@ -2858,6 +2903,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
2858
2903
  [buttonClass]="buttonClass"
2859
2904
  [arrowButtonClass]="arrowButtonClass"
2860
2905
  [arrowButtonIcon]="arrowButtonIcon"
2906
+ [arrowButtonSvgIcon]="arrowButtonSvgIcon"
2861
2907
  [disabled]="disabled"
2862
2908
  [tabIndex]="-1"
2863
2909
  [textField]="textField"
@@ -2868,8 +2914,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
2868
2914
  (open)="open.emit($event)"
2869
2915
  (close)="close.emit($event)"
2870
2916
  (itemClick)="itemClick.emit($event)"
2871
- >
2872
- </kendo-splitbutton>
2917
+ ></kendo-splitbutton>
2873
2918
  </ng-template>
2874
2919
  <ng-template #popupTemplate>
2875
2920
  <div #overflowMainButton
@@ -2924,6 +2969,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
2924
2969
  type: Input
2925
2970
  }], icon: [{
2926
2971
  type: Input
2972
+ }], svgIcon: [{
2973
+ type: Input
2927
2974
  }], iconClass: [{
2928
2975
  type: Input
2929
2976
  }], imageUrl: [{
@@ -2944,6 +2991,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
2944
2991
  type: Input
2945
2992
  }], arrowButtonIcon: [{
2946
2993
  type: Input
2994
+ }], arrowButtonSvgIcon: [{
2995
+ type: Input
2947
2996
  }], textField: [{
2948
2997
  type: Input
2949
2998
  }], data: [{
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-toolbar",
3
- "version": "11.0.1-develop.5",
3
+ "version": "11.1.0-develop.10",
4
4
  "description": "Kendo UI Angular Toolbar component - a single UI element that organizes buttons and other navigation elements",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -29,16 +29,16 @@
29
29
  "@angular/core": "13 - 15",
30
30
  "@angular/platform-browser": "13 - 15",
31
31
  "@progress/kendo-licensing": "^1.0.2",
32
- "@progress/kendo-angular-buttons": "11.0.1-develop.5",
33
- "@progress/kendo-angular-common": "11.0.1-develop.5",
34
- "@progress/kendo-angular-l10n": "11.0.1-develop.5",
35
- "@progress/kendo-angular-icons": "11.0.1-develop.5",
36
- "@progress/kendo-angular-popup": "11.0.1-develop.5",
32
+ "@progress/kendo-angular-buttons": "11.1.0-develop.10",
33
+ "@progress/kendo-angular-common": "11.1.0-develop.10",
34
+ "@progress/kendo-angular-l10n": "11.1.0-develop.10",
35
+ "@progress/kendo-angular-icons": "11.1.0-develop.10",
36
+ "@progress/kendo-angular-popup": "11.1.0-develop.10",
37
37
  "rxjs": "^6.5.3 || ^7.0.0"
38
38
  },
39
39
  "dependencies": {
40
40
  "tslib": "^2.3.1",
41
- "@progress/kendo-angular-schematics": "11.0.1-develop.5"
41
+ "@progress/kendo-angular-schematics": "11.1.0-develop.10"
42
42
  },
43
43
  "schematics": "./schematics/collection.json",
44
44
  "module": "fesm2015/progress-kendo-angular-toolbar.mjs",
@@ -97,6 +97,7 @@ export declare class ToolBarComponent {
97
97
  private cancelRenderedToolsSubscription$;
98
98
  private cachedGap;
99
99
  private _size;
100
+ private overflowButtonClickedTime;
100
101
  private subscriptions;
101
102
  private popupSubs;
102
103
  /**
@@ -9,6 +9,7 @@ import { ButtonFillMode, ButtonThemeColor, DropDownButtonComponent } from '@prog
9
9
  import { DisplayMode } from '../display-mode';
10
10
  import { ToolOptions } from '../tool-options';
11
11
  import { PreventableEvent } from '@progress/kendo-angular-buttons';
12
+ import { SVGIcon } from '@progress/kendo-svg-icons';
12
13
  import * as i0 from "@angular/core";
13
14
  /**
14
15
  * Represents the [Kendo UI ToolBar DropDownButton for Angular]({% slug controltypes_toolbar %}#toc-dropdownbuttons).
@@ -32,6 +33,11 @@ export declare class ToolBarDropDownButtonComponent extends ToolBarToolComponent
32
33
  * Defines an icon that will be rendered next to the button text.
33
34
  */
34
35
  set icon(icon: string);
36
+ /**
37
+ * Defines an SVGIcon to be rendered within the button.
38
+ * The input can take either an [existing Kendo SVG icon](slug:svgicon_list) or a custom one.
39
+ */
40
+ set svgIcon(icon: SVGIcon);
35
41
  /**
36
42
  * Defines an icon with a custom CSS class that will be rendered next to the button text.
37
43
  */
@@ -169,5 +175,5 @@ export declare class ToolBarDropDownButtonComponent extends ToolBarToolComponent
169
175
  private focusButton;
170
176
  private setTextDisplayMode;
171
177
  static ɵfac: i0.ɵɵFactoryDeclaration<ToolBarDropDownButtonComponent, never>;
172
- static ɵcmp: i0.ɵɵComponentDeclaration<ToolBarDropDownButtonComponent, "kendo-toolbar-dropdownbutton", ["kendoToolBarDropDownButton"], { "showText": "showText"; "showIcon": "showIcon"; "text": "text"; "icon": "icon"; "iconClass": "iconClass"; "imageUrl": "imageUrl"; "popupSettings": "popupSettings"; "look": "look"; "primary": "primary"; "fillMode": "fillMode"; "themeColor": "themeColor"; "buttonClass": "buttonClass"; "textField": "textField"; "disabled": "disabled"; "data": "data"; }, { "itemClick": "itemClick"; "open": "open"; "close": "close"; }, never, never>;
178
+ static ɵcmp: i0.ɵɵComponentDeclaration<ToolBarDropDownButtonComponent, "kendo-toolbar-dropdownbutton", ["kendoToolBarDropDownButton"], { "showText": "showText"; "showIcon": "showIcon"; "text": "text"; "icon": "icon"; "svgIcon": "svgIcon"; "iconClass": "iconClass"; "imageUrl": "imageUrl"; "popupSettings": "popupSettings"; "look": "look"; "primary": "primary"; "fillMode": "fillMode"; "themeColor": "themeColor"; "buttonClass": "buttonClass"; "textField": "textField"; "disabled": "disabled"; "data": "data"; }, { "itemClick": "itemClick"; "open": "open"; "close": "close"; }, never, never>;
173
179
  }
@@ -9,6 +9,7 @@ import { PopupSettings } from '../popup-settings';
9
9
  import { DisplayMode } from '../display-mode';
10
10
  import { ToolOptions } from '../tool-options';
11
11
  import { PreventableEvent } from '@progress/kendo-angular-buttons';
12
+ import { SVGIcon } from '@progress/kendo-svg-icons';
12
13
  import * as i0 from "@angular/core";
13
14
  /**
14
15
  * Represents the [Kendo UI ToolBar SplitButton for Angular]({% slug controltypes_toolbar %}#toc-splitbuttons).
@@ -32,6 +33,11 @@ export declare class ToolBarSplitButtonComponent extends ToolBarToolComponent im
32
33
  * ([see example]({% slug controltypes_toolbar %}#toc-splitbuttons)).
33
34
  */
34
35
  set icon(icon: string);
36
+ /**
37
+ * Defines an SVGIcon to be rendered within the main button.
38
+ * The input can take either an [existing Kendo SVG icon](slug:svgicon_list) or a custom one.
39
+ */
40
+ set svgIcon(icon: SVGIcon);
35
41
  /**
36
42
  * Defines an icon with a custom CSS class that will be rendered next to the button text.
37
43
  */
@@ -102,6 +108,11 @@ export declare class ToolBarSplitButtonComponent extends ToolBarToolComponent im
102
108
  * be rendered for the button which opens the popup.
103
109
  */
104
110
  arrowButtonIcon: string;
111
+ /**
112
+ * Specifies the [`SVGIcon`](slug:api_icons_svgicon) that will
113
+ * be rendered for the button which opens the popup.
114
+ */
115
+ arrowButtonSvgIcon: SVGIcon;
105
116
  /**
106
117
  * Configures the text field of the button-list popup.
107
118
  */
@@ -179,5 +190,5 @@ export declare class ToolBarSplitButtonComponent extends ToolBarToolComponent im
179
190
  private focusButton;
180
191
  private setTextDisplayMode;
181
192
  static ɵfac: i0.ɵɵFactoryDeclaration<ToolBarSplitButtonComponent, never>;
182
- static ɵcmp: i0.ɵɵComponentDeclaration<ToolBarSplitButtonComponent, "kendo-toolbar-splitbutton", ["kendoToolBarSplitButton"], { "showText": "showText"; "showIcon": "showIcon"; "text": "text"; "icon": "icon"; "iconClass": "iconClass"; "imageUrl": "imageUrl"; "disabled": "disabled"; "popupSettings": "popupSettings"; "fillMode": "fillMode"; "themeColor": "themeColor"; "look": "look"; "buttonClass": "buttonClass"; "arrowButtonClass": "arrowButtonClass"; "arrowButtonIcon": "arrowButtonIcon"; "textField": "textField"; "data": "data"; }, { "buttonClick": "buttonClick"; "itemClick": "itemClick"; "open": "open"; "close": "close"; }, never, never>;
193
+ static ɵcmp: i0.ɵɵComponentDeclaration<ToolBarSplitButtonComponent, "kendo-toolbar-splitbutton", ["kendoToolBarSplitButton"], { "showText": "showText"; "showIcon": "showIcon"; "text": "text"; "icon": "icon"; "svgIcon": "svgIcon"; "iconClass": "iconClass"; "imageUrl": "imageUrl"; "disabled": "disabled"; "popupSettings": "popupSettings"; "fillMode": "fillMode"; "themeColor": "themeColor"; "look": "look"; "buttonClass": "buttonClass"; "arrowButtonClass": "arrowButtonClass"; "arrowButtonIcon": "arrowButtonIcon"; "arrowButtonSvgIcon": "arrowButtonSvgIcon"; "textField": "textField"; "data": "data"; }, { "buttonClick": "buttonClick"; "itemClick": "itemClick"; "open": "open"; "close": "close"; }, never, never>;
183
194
  }