@progress/kendo-angular-toolbar 21.4.1 → 22.0.0-develop.1

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 (40) hide show
  1. package/fesm2022/progress-kendo-angular-toolbar.mjs +62 -62
  2. package/localization/messages.d.ts +1 -1
  3. package/package.json +12 -20
  4. package/esm2022/common/fillmode.mjs +0 -5
  5. package/esm2022/common/overflow-mode.mjs +0 -5
  6. package/esm2022/common/overflow-settings.mjs +0 -5
  7. package/esm2022/common/preventable-event.mjs +0 -25
  8. package/esm2022/common/renderer-click.mjs +0 -5
  9. package/esm2022/common/scroll-buttons.mjs +0 -5
  10. package/esm2022/common/size.mjs +0 -5
  11. package/esm2022/direction.mjs +0 -5
  12. package/esm2022/directives.mjs +0 -45
  13. package/esm2022/display-mode.mjs +0 -5
  14. package/esm2022/group-selection-settings.mjs +0 -5
  15. package/esm2022/index.mjs +0 -17
  16. package/esm2022/localization/custom-messages.component.mjs +0 -56
  17. package/esm2022/localization/localized-toolbar-messages.directive.mjs +0 -39
  18. package/esm2022/localization/messages.mjs +0 -39
  19. package/esm2022/navigation.service.mjs +0 -159
  20. package/esm2022/package-metadata.mjs +0 -16
  21. package/esm2022/popup-settings.mjs +0 -5
  22. package/esm2022/progress-kendo-angular-toolbar.mjs +0 -8
  23. package/esm2022/refresh.service.mjs +0 -20
  24. package/esm2022/render-location.mjs +0 -5
  25. package/esm2022/renderer.component.mjs +0 -191
  26. package/esm2022/renderer.service.mjs +0 -52
  27. package/esm2022/scroll.service.mjs +0 -110
  28. package/esm2022/scrollable-button.component.mjs +0 -152
  29. package/esm2022/tool-options.mjs +0 -5
  30. package/esm2022/toolbar.component.mjs +0 -1582
  31. package/esm2022/toolbar.module.mjs +0 -46
  32. package/esm2022/tools/toolbar-button.component.mjs +0 -712
  33. package/esm2022/tools/toolbar-buttongroup.component.mjs +0 -448
  34. package/esm2022/tools/toolbar-dropdownbutton.component.mjs +0 -595
  35. package/esm2022/tools/toolbar-separator.component.mjs +0 -96
  36. package/esm2022/tools/toolbar-spacer.component.mjs +0 -76
  37. package/esm2022/tools/toolbar-splitbutton.component.mjs +0 -607
  38. package/esm2022/tools/toolbar-tool.component.mjs +0 -106
  39. package/esm2022/tools/tools.service.mjs +0 -25
  40. package/esm2022/util.mjs +0 -244
@@ -1,76 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- import { Component, forwardRef } from '@angular/core';
6
- import { ToolBarToolComponent } from './toolbar-tool.component';
7
- import * as i0 from "@angular/core";
8
- /**
9
- * Represents the [Kendo UI ToolBar Spacer for Angular]({% slug controltypes_toolbar %}#toc-separators).
10
- *
11
- * Use the ToolBar Spacer to add flexible space between ToolBar tools.
12
- *
13
- * @example
14
- * ```html
15
- * <kendo-toolbar>
16
- * <kendo-toolbar-button text="Button 1"></kendo-toolbar-button>
17
- * <kendo-toolbar-spacer></kendo-toolbar-spacer>
18
- * <kendo-toolbar-button text="Button 2"></kendo-toolbar-button>
19
- * </kendo-toolbar>
20
- * ```
21
- */
22
- export class ToolBarSpacerComponent extends ToolBarToolComponent {
23
- /**
24
- * @hidden
25
- */
26
- __isSpacer = true;
27
- constructor() {
28
- super();
29
- this.isBuiltInTool = true;
30
- }
31
- /**
32
- * @hidden
33
- */
34
- canFocus() {
35
- return false;
36
- }
37
- // If this is not here, the docs display info from its parent(ToolBarToolComponent).
38
- /**
39
- * @hidden
40
- */
41
- focus() {
42
- /* noop */
43
- }
44
- // If this is not here, the docs display info from its parent(ToolBarToolComponent).
45
- /**
46
- * @hidden
47
- */
48
- handleKey() {
49
- return false;
50
- }
51
- ngAfterViewInit() {
52
- if (!this.popupTemplate) {
53
- this.popupTemplate = this.toolbarTemplate;
54
- }
55
- }
56
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToolBarSpacerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
57
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ToolBarSpacerComponent, isStandalone: true, selector: "kendo-toolbar-spacer", providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => ToolBarSpacerComponent) }], exportAs: ["kendoToolBarSpacer"], usesInheritance: true, ngImport: i0, template: `
58
- <ng-template #toolbarTemplate>
59
- <div class="k-spacer"></div>
60
- </ng-template>
61
- `, isInline: true });
62
- }
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToolBarSpacerComponent, decorators: [{
64
- type: Component,
65
- args: [{
66
- exportAs: 'kendoToolBarSpacer',
67
- providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => ToolBarSpacerComponent) }],
68
- selector: 'kendo-toolbar-spacer',
69
- template: `
70
- <ng-template #toolbarTemplate>
71
- <div class="k-spacer"></div>
72
- </ng-template>
73
- `,
74
- standalone: true
75
- }]
76
- }], ctorParameters: () => [] });
@@ -1,607 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- import { Component, forwardRef, ViewChild, Input, ElementRef, Output, EventEmitter, ViewChildren, QueryList, isDevMode } from '@angular/core';
6
- import { SplitButtonComponent } from '@progress/kendo-angular-buttons';
7
- import { ToolBarToolComponent } from './toolbar-tool.component';
8
- import { getValueForLocation, makePeeker, getIndexOfFocused, getPrevKey, getNextKey, seekFocusedIndex, areEqual } from '../util';
9
- import { caretAltDownIcon } from '@progress/kendo-svg-icons';
10
- import { IconWrapperComponent } from '@progress/kendo-angular-icons';
11
- import { NgClass } from '@angular/common';
12
- import { ToolBarComponent } from '../toolbar.component';
13
- import { normalizeKeys } from '@progress/kendo-angular-common';
14
- import * as i0 from "@angular/core";
15
- import * as i1 from "../toolbar.component";
16
- /**
17
- * Represents the [Kendo UI ToolBar SplitButton for Angular](slug:controltypes_toolbar#split-buttons).
18
- *
19
- * Use the ToolBar SplitButton to create a split button with a main button and a drop-down list of actions in the ToolBar.
20
- *
21
- * @example
22
- * ```html
23
- * <kendo-toolbar>
24
- * <kendo-toolbar-splitbutton text="Paste" [data]="data">
25
- * </kendo-toolbar-splitbutton>
26
- * </kendo-toolbar>
27
- * ```
28
- */
29
- export class ToolBarSplitButtonComponent extends ToolBarToolComponent {
30
- host;
31
- // showText and showIcon showIcon should be declared first
32
- /**
33
- * Controls the button text visibility.
34
- * @default 'always'
35
- */
36
- set showText(value) {
37
- this._showText = value;
38
- this.setTextDisplayMode();
39
- }
40
- get showText() {
41
- return this._showText;
42
- }
43
- /**
44
- * Controls the button icon visibility.
45
- * @default 'always'
46
- */
47
- set showIcon(value) {
48
- this._showIcon = value;
49
- this.setTextDisplayMode();
50
- }
51
- get showIcon() {
52
- return this._showIcon;
53
- }
54
- /**
55
- * Sets the text of the SplitButton ([see example](slug:controltypes_toolbar#toc-split-buttons)).
56
- */
57
- set text(text) {
58
- this._text = text;
59
- this.setTextDisplayMode();
60
- }
61
- get text() {
62
- return this._text;
63
- }
64
- /**
65
- * Sets the icon rendered next to the button text
66
- * ([see example](slug:controltypes_toolbar#toc-split-buttons)).
67
- */
68
- set icon(icon) {
69
- this.toolbarOptions.icon = getValueForLocation(icon, this.showIcon, false);
70
- this.overflowOptions.icon = getValueForLocation(icon, this.showIcon, true);
71
- }
72
- /**
73
- * Sets the `SVGIcon` rendered in the main button.
74
- * Accepts an [existing Kendo SVG icon](slug:svgicon_list) or a custom one.
75
- */
76
- set svgIcon(icon) {
77
- const isIconSet = this.toolbarOptions.icon || this.overflowOptions.icon;
78
- const isIconClassSet = this.toolbarOptions.iconClass || this.overflowOptions.iconClass;
79
- if (isDevMode() &&
80
- icon &&
81
- isIconSet &&
82
- isIconClassSet) {
83
- throw new Error('Setting both icon/svgIcon and iconClass options at the same time is not supported.');
84
- }
85
- this.toolbarOptions.svgIcon = getValueForLocation(icon, this.showIcon, false);
86
- this.overflowOptions.svgIcon = getValueForLocation(icon, this.showIcon, true);
87
- }
88
- /**
89
- * Sets a custom CSS class icon rendered next to the button text.
90
- */
91
- set iconClass(iconClass) {
92
- this.toolbarOptions.iconClass = getValueForLocation(iconClass, this.showIcon, false);
93
- this.overflowOptions.iconClass = getValueForLocation(iconClass, this.showIcon, true);
94
- }
95
- /**
96
- * Sets a URL for the image displayed next to the button text.
97
- */
98
- set imageUrl(imageUrl) {
99
- this.toolbarOptions.imageUrl = getValueForLocation(imageUrl, this.showIcon, false);
100
- this.overflowOptions.imageUrl = getValueForLocation(imageUrl, this.showIcon, true);
101
- }
102
- /**
103
- * When `true`, disables a SplitButton item.
104
- */
105
- disabled;
106
- /**
107
- * Configures the popup of the SplitButton.
108
- * Accepts a `PopupSettings` object that allows you to customize the popup behavior and appearance.
109
-
110
- */
111
- set popupSettings(value) {
112
- this._popupSettings = value;
113
- }
114
- get popupSettings() {
115
- if (!this._popupSettings) {
116
- this._popupSettings = { animate: true, popupClass: '' };
117
- }
118
- return this._popupSettings;
119
- }
120
- /**
121
- * Sets the fill mode for the button.
122
- * The fill mode represents the background and border styles.
123
- * @default 'solid'
124
- */
125
- fillMode = 'solid';
126
- /**
127
- * Sets the predefined theme color for the button.
128
- * The theme color applies to the background, border, and text.
129
- * @default 'base'
130
- */
131
- themeColor = 'base';
132
- /**
133
- * @hidden
134
- */
135
- set look(look) {
136
- if (look) {
137
- this.fillMode = look === 'default' ? 'solid' : look;
138
- }
139
- }
140
- /**
141
- * Sets the CSS classes for the main button.
142
- * Accepts values supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']).
143
- */
144
- buttonClass;
145
- /**
146
- * Sets the CSS classes for the arrow button that opens the popup.
147
- * Accepts values supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']).
148
- */
149
- arrowButtonClass;
150
- /**
151
- * Sets the name of the [font icon](slug:icons#icons-list) for the arrow button.
152
- */
153
- arrowButtonIcon = 'caret-alt-down';
154
- /**
155
- * Sets the [`SVGIcon`](slug:api_icons_svgicon) for the arrow button.
156
- */
157
- arrowButtonSvgIcon = caretAltDownIcon;
158
- /**
159
- * Sets the text field for the button-list popup.
160
- * @default 'text'
161
- */
162
- textField = 'text';
163
- /**
164
- * Sets the data of the SplitButton ([see example](slug:controltypes_toolbar#toc-split-buttons)).
165
- *
166
- * > Provide the data as an array-like list.
167
- */
168
- set data(data) {
169
- this._data = data || [];
170
- }
171
- get data() {
172
- if (!this._data) {
173
- this.data = [];
174
- }
175
- return this._data;
176
- }
177
- /**
178
- * Fires when the user clicks the main button.
179
- */
180
- buttonClick = new EventEmitter();
181
- /**
182
- * Fires when the user clicks a drop-down list item.
183
- * The event data contains the clicked item's data.
184
- */
185
- itemClick = new EventEmitter();
186
- /**
187
- * Fires when the popup is about to open.
188
- * This event is preventable. If you cancel the event, the popup stays closed.
189
- */
190
- open = new EventEmitter();
191
- /**
192
- * Fires when the popup is about to close.
193
- * This event is preventable. If you cancel the event, the popup stays open.
194
- */
195
- close = new EventEmitter();
196
- toolbarOptions = {
197
- text: '',
198
- icon: '',
199
- iconClass: '',
200
- svgIcon: null,
201
- imageUrl: ''
202
- };
203
- overflowOptions = {
204
- text: '',
205
- icon: '',
206
- iconClass: '',
207
- svgIcon: null,
208
- imageUrl: ''
209
- };
210
- ngOnInit() {
211
- this.setTextDisplayMode();
212
- }
213
- ngOnDestroy() {
214
- if (this.propertyChangeSub) {
215
- this.propertyChangeSub.unsubscribe();
216
- this.propertyChangeSub = null;
217
- }
218
- }
219
- get overflowButtons() {
220
- return [this.overflowMainButton, ...this.overflowListItems.toArray().filter(el => !el.nativeElement.classList.contains('k-disabled'))];
221
- }
222
- _data;
223
- _popupSettings = { animate: true, popupClass: '' };
224
- focusedIndex = -1;
225
- _showText;
226
- _showIcon;
227
- _text;
228
- propertyChangeSub;
229
- getNextKey;
230
- getPrevKey;
231
- toolbarSplitButton;
232
- sectionSplitButton;
233
- overflowMainButton;
234
- overflowListItems;
235
- constructor(host) {
236
- super();
237
- this.host = host;
238
- this.getNextKey = getNextKey();
239
- this.getPrevKey = getPrevKey();
240
- this.isBuiltInTool = true;
241
- this.propertyChangeSub = this.host.propertyChange.subscribe(change => {
242
- if (change.property === 'showText' || change.property === 'showIcon') {
243
- this[change.property] = change.value;
244
- }
245
- });
246
- }
247
- /**
248
- * @hidden
249
- */
250
- onButtonListClick(ev) {
251
- this.focusedIndex = this.overflowButtons.findIndex(b => b.nativeElement.contains(ev.target));
252
- }
253
- /**
254
- * @hidden
255
- */
256
- onMainButtonClick(ev) {
257
- this.buttonClick.emit(ev);
258
- this.focusedIndex = 0;
259
- }
260
- /**
261
- * @hidden
262
- */
263
- canFocus() {
264
- return !this.disabled;
265
- }
266
- /**
267
- * @hidden
268
- */
269
- get size() {
270
- return this.host.size;
271
- }
272
- /**
273
- * @hidden
274
- */
275
- focus(ev = {}) {
276
- if (!this.overflows || this.location === 'section') {
277
- if (!ev.type || ev.type === 'focus' || ev.type === 'keydown') {
278
- this[`${this.location}SplitButton`].focus();
279
- }
280
- }
281
- else if (this.overflowButtons.length > 0) {
282
- this.focusedIndex = getIndexOfFocused(this.getPrevKey(), this.getNextKey(), this.overflowButtons.map(ob => ob.nativeElement))(ev);
283
- this.focusButton(this.focusedIndex, ev);
284
- }
285
- }
286
- /**
287
- * @hidden
288
- */
289
- handleKey(ev) {
290
- const code = normalizeKeys(ev);
291
- if (!this.overflows && (code === this.getPrevKey(this.overflows) || code === this.getNextKey(this.overflows))) {
292
- return false;
293
- }
294
- if (this.overflows) {
295
- const peekAtIndex = makePeeker(this.overflowButtons);
296
- const isUnmodified = areEqual(this.focusedIndex);
297
- this.focusedIndex = seekFocusedIndex(this.getPrevKey(), this.getNextKey(), peekAtIndex)(this.focusedIndex, ev);
298
- this.focusButton(this.focusedIndex, ev);
299
- return !isUnmodified(this.focusedIndex);
300
- }
301
- }
302
- /**
303
- * @hidden
304
- */
305
- getText(dataItem) {
306
- if (dataItem) {
307
- return this.textField ? dataItem[this.textField] : dataItem.text || dataItem;
308
- }
309
- }
310
- /**
311
- * @hidden
312
- */
313
- handleClick(ev, item, index) {
314
- this.onButtonListClick(ev);
315
- const dataItem = this.data[index];
316
- if (item.click) {
317
- item.click(dataItem);
318
- }
319
- this.itemClick.emit(dataItem);
320
- }
321
- focusButton(index, ev) {
322
- if ((!ev.type || ev.type === 'focus' || ev.type === 'keydown' || ev.type === 'click') && this.location !== 'section') {
323
- this.overflowButtons[index].nativeElement.focus();
324
- }
325
- }
326
- setTextDisplayMode() {
327
- this.toolbarOptions.text = this.showText === 'menu' || this.showText === 'never' ? undefined : this.text;
328
- this.overflowOptions.text = this.showText === 'toolbar' || this.showText === 'never' ? undefined : this.text;
329
- }
330
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToolBarSplitButtonComponent, deps: [{ token: i1.ToolBarComponent }], target: i0.ɵɵFactoryTarget.Component });
331
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ToolBarSplitButtonComponent, isStandalone: true, 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: "toolbarSplitButton", first: true, predicate: ["toolbarSplitButton"], descendants: true }, { propertyName: "sectionSplitButton", first: true, predicate: ["sectionSplitButton"], 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: `
332
- <ng-template #toolbarTemplate>
333
- <kendo-splitbutton
334
- #toolbarSplitButton
335
- class="k-toolbar-split-button"
336
- [data]="data"
337
- [text]="toolbarOptions.text"
338
- [icon]="toolbarOptions.icon"
339
- [iconClass]="toolbarOptions.iconClass"
340
- [svgIcon]="toolbarOptions.svgIcon"
341
- [imageUrl]="toolbarOptions.imageUrl"
342
- [buttonClass]="buttonClass"
343
- [arrowButtonClass]="arrowButtonClass"
344
- [arrowButtonIcon]="arrowButtonIcon"
345
- [arrowButtonSvgIcon]="arrowButtonSvgIcon"
346
- [disabled]="disabled"
347
- [size]="size"
348
- [tabIndex]="-1"
349
- [textField]="textField"
350
- [popupSettings]="popupSettings"
351
- [fillMode]="fillMode"
352
- [themeColor]="fillMode ? themeColor : null"
353
- (buttonClick)="buttonClick.emit($event)"
354
- (open)="open.emit($event)"
355
- (close)="close.emit($event)"
356
- (itemClick)="itemClick.emit($event)"
357
- ></kendo-splitbutton>
358
- </ng-template>
359
- <ng-template #popupTemplate>
360
- <div #overflowMainButton
361
- tabindex="-1"
362
- role="menuitem"
363
- class="k-item k-menu-item"
364
- [class.k-disabled]="disabled"
365
- [ngClass]="buttonClass"
366
- (click)="onMainButtonClick($event)">
367
- <span
368
- [ngClass]="{'k-link': true, 'k-menu-link': true}"
369
- >
370
- @if (overflowOptions.icon || overflowOptions.iconClass || overflowOptions.svgIcon) {
371
- <kendo-icon-wrapper
372
- [name]="overflowOptions.icon"
373
- [customFontClass]="overflowOptions.iconClass"
374
- [svgIcon]="overflowOptions.svgIcon"
375
- >
376
- </kendo-icon-wrapper>
377
- }
378
- @if (overflowOptions.text) {
379
- <span class="k-menu-link-text">{{overflowOptions.text}}</span>
380
- }
381
- </span>
382
- </div>
383
- @for (item of data; track item; let i = $index) {
384
- <div #listItem
385
- tabindex="-1"
386
- role="menuitem"
387
- class="k-item k-menu-item"
388
- [class.k-disabled]="disabled || item.disabled"
389
- (click)="handleClick($event, item, i)">
390
- <span
391
- class="k-link k-menu-link"
392
- >
393
- @if (item.icon || item.iconClass || item.svgIcon) {
394
- <kendo-icon-wrapper
395
- [name]="item.icon"
396
- [customFontClass]="item.iconClass"
397
- [svgIcon]="item.svgIcon"
398
- >
399
- </kendo-icon-wrapper>
400
- }
401
- @if (getText(item)) {
402
- <span class="k-menu-link-text">{{ getText(item) }}</span>
403
- }
404
- </span>
405
- </div>
406
- }
407
- </ng-template>
408
- <ng-template #sectionTemplate>
409
- <kendo-splitbutton
410
- #sectionSplitButton
411
- class="k-toolbar-split-button"
412
- [data]="data"
413
- [text]="toolbarOptions.text"
414
- [icon]="toolbarOptions.icon"
415
- [iconClass]="toolbarOptions.iconClass"
416
- [svgIcon]="toolbarOptions.svgIcon"
417
- [imageUrl]="toolbarOptions.imageUrl"
418
- [buttonClass]="buttonClass"
419
- [arrowButtonClass]="arrowButtonClass"
420
- [arrowButtonIcon]="arrowButtonIcon"
421
- [arrowButtonSvgIcon]="arrowButtonSvgIcon"
422
- [disabled]="disabled"
423
- [size]="size"
424
- [tabIndex]="-1"
425
- [textField]="textField"
426
- [popupSettings]="popupSettings"
427
- [fillMode]="fillMode"
428
- [themeColor]="fillMode ? themeColor : null"
429
- (buttonClick)="buttonClick.emit($event)"
430
- (open)="open.emit($event)"
431
- (close)="close.emit($event)"
432
- (itemClick)="itemClick.emit($event)"
433
- ></kendo-splitbutton>
434
- </ng-template>
435
- `, isInline: true, dependencies: [{ kind: "component", type: SplitButtonComponent, selector: "kendo-splitbutton", inputs: ["text", "icon", "svgIcon", "iconClass", "type", "imageUrl", "size", "rounded", "fillMode", "themeColor", "disabled", "popupSettings", "tabIndex", "textField", "data", "arrowButtonClass", "arrowButtonIcon", "arrowButtonSvgIcon", "buttonAttributes"], outputs: ["buttonClick", "itemClick", "focus", "blur", "open", "close"], exportAs: ["kendoSplitButton"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
436
- }
437
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToolBarSplitButtonComponent, decorators: [{
438
- type: Component,
439
- args: [{
440
- exportAs: 'kendoToolBarSplitButton',
441
- providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => ToolBarSplitButtonComponent) }],
442
- selector: 'kendo-toolbar-splitbutton',
443
- template: `
444
- <ng-template #toolbarTemplate>
445
- <kendo-splitbutton
446
- #toolbarSplitButton
447
- class="k-toolbar-split-button"
448
- [data]="data"
449
- [text]="toolbarOptions.text"
450
- [icon]="toolbarOptions.icon"
451
- [iconClass]="toolbarOptions.iconClass"
452
- [svgIcon]="toolbarOptions.svgIcon"
453
- [imageUrl]="toolbarOptions.imageUrl"
454
- [buttonClass]="buttonClass"
455
- [arrowButtonClass]="arrowButtonClass"
456
- [arrowButtonIcon]="arrowButtonIcon"
457
- [arrowButtonSvgIcon]="arrowButtonSvgIcon"
458
- [disabled]="disabled"
459
- [size]="size"
460
- [tabIndex]="-1"
461
- [textField]="textField"
462
- [popupSettings]="popupSettings"
463
- [fillMode]="fillMode"
464
- [themeColor]="fillMode ? themeColor : null"
465
- (buttonClick)="buttonClick.emit($event)"
466
- (open)="open.emit($event)"
467
- (close)="close.emit($event)"
468
- (itemClick)="itemClick.emit($event)"
469
- ></kendo-splitbutton>
470
- </ng-template>
471
- <ng-template #popupTemplate>
472
- <div #overflowMainButton
473
- tabindex="-1"
474
- role="menuitem"
475
- class="k-item k-menu-item"
476
- [class.k-disabled]="disabled"
477
- [ngClass]="buttonClass"
478
- (click)="onMainButtonClick($event)">
479
- <span
480
- [ngClass]="{'k-link': true, 'k-menu-link': true}"
481
- >
482
- @if (overflowOptions.icon || overflowOptions.iconClass || overflowOptions.svgIcon) {
483
- <kendo-icon-wrapper
484
- [name]="overflowOptions.icon"
485
- [customFontClass]="overflowOptions.iconClass"
486
- [svgIcon]="overflowOptions.svgIcon"
487
- >
488
- </kendo-icon-wrapper>
489
- }
490
- @if (overflowOptions.text) {
491
- <span class="k-menu-link-text">{{overflowOptions.text}}</span>
492
- }
493
- </span>
494
- </div>
495
- @for (item of data; track item; let i = $index) {
496
- <div #listItem
497
- tabindex="-1"
498
- role="menuitem"
499
- class="k-item k-menu-item"
500
- [class.k-disabled]="disabled || item.disabled"
501
- (click)="handleClick($event, item, i)">
502
- <span
503
- class="k-link k-menu-link"
504
- >
505
- @if (item.icon || item.iconClass || item.svgIcon) {
506
- <kendo-icon-wrapper
507
- [name]="item.icon"
508
- [customFontClass]="item.iconClass"
509
- [svgIcon]="item.svgIcon"
510
- >
511
- </kendo-icon-wrapper>
512
- }
513
- @if (getText(item)) {
514
- <span class="k-menu-link-text">{{ getText(item) }}</span>
515
- }
516
- </span>
517
- </div>
518
- }
519
- </ng-template>
520
- <ng-template #sectionTemplate>
521
- <kendo-splitbutton
522
- #sectionSplitButton
523
- class="k-toolbar-split-button"
524
- [data]="data"
525
- [text]="toolbarOptions.text"
526
- [icon]="toolbarOptions.icon"
527
- [iconClass]="toolbarOptions.iconClass"
528
- [svgIcon]="toolbarOptions.svgIcon"
529
- [imageUrl]="toolbarOptions.imageUrl"
530
- [buttonClass]="buttonClass"
531
- [arrowButtonClass]="arrowButtonClass"
532
- [arrowButtonIcon]="arrowButtonIcon"
533
- [arrowButtonSvgIcon]="arrowButtonSvgIcon"
534
- [disabled]="disabled"
535
- [size]="size"
536
- [tabIndex]="-1"
537
- [textField]="textField"
538
- [popupSettings]="popupSettings"
539
- [fillMode]="fillMode"
540
- [themeColor]="fillMode ? themeColor : null"
541
- (buttonClick)="buttonClick.emit($event)"
542
- (open)="open.emit($event)"
543
- (close)="close.emit($event)"
544
- (itemClick)="itemClick.emit($event)"
545
- ></kendo-splitbutton>
546
- </ng-template>
547
- `,
548
- standalone: true,
549
- imports: [SplitButtonComponent, NgClass, IconWrapperComponent]
550
- }]
551
- }], ctorParameters: () => [{ type: i1.ToolBarComponent }], propDecorators: { showText: [{
552
- type: Input
553
- }], showIcon: [{
554
- type: Input
555
- }], text: [{
556
- type: Input
557
- }], icon: [{
558
- type: Input
559
- }], svgIcon: [{
560
- type: Input
561
- }], iconClass: [{
562
- type: Input
563
- }], imageUrl: [{
564
- type: Input
565
- }], disabled: [{
566
- type: Input
567
- }], popupSettings: [{
568
- type: Input
569
- }], fillMode: [{
570
- type: Input
571
- }], themeColor: [{
572
- type: Input
573
- }], look: [{
574
- type: Input
575
- }], buttonClass: [{
576
- type: Input
577
- }], arrowButtonClass: [{
578
- type: Input
579
- }], arrowButtonIcon: [{
580
- type: Input
581
- }], arrowButtonSvgIcon: [{
582
- type: Input
583
- }], textField: [{
584
- type: Input
585
- }], data: [{
586
- type: Input
587
- }], buttonClick: [{
588
- type: Output
589
- }], itemClick: [{
590
- type: Output
591
- }], open: [{
592
- type: Output
593
- }], close: [{
594
- type: Output
595
- }], toolbarSplitButton: [{
596
- type: ViewChild,
597
- args: ['toolbarSplitButton', { static: false }]
598
- }], sectionSplitButton: [{
599
- type: ViewChild,
600
- args: ['sectionSplitButton', { static: false }]
601
- }], overflowMainButton: [{
602
- type: ViewChild,
603
- args: ['overflowMainButton', { read: ElementRef }]
604
- }], overflowListItems: [{
605
- type: ViewChildren,
606
- args: ['listItem']
607
- }] } });