@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.
- package/fesm2022/progress-kendo-angular-toolbar.mjs +62 -62
- package/localization/messages.d.ts +1 -1
- package/package.json +12 -20
- package/esm2022/common/fillmode.mjs +0 -5
- package/esm2022/common/overflow-mode.mjs +0 -5
- package/esm2022/common/overflow-settings.mjs +0 -5
- package/esm2022/common/preventable-event.mjs +0 -25
- package/esm2022/common/renderer-click.mjs +0 -5
- package/esm2022/common/scroll-buttons.mjs +0 -5
- package/esm2022/common/size.mjs +0 -5
- package/esm2022/direction.mjs +0 -5
- package/esm2022/directives.mjs +0 -45
- package/esm2022/display-mode.mjs +0 -5
- package/esm2022/group-selection-settings.mjs +0 -5
- package/esm2022/index.mjs +0 -17
- package/esm2022/localization/custom-messages.component.mjs +0 -56
- package/esm2022/localization/localized-toolbar-messages.directive.mjs +0 -39
- package/esm2022/localization/messages.mjs +0 -39
- package/esm2022/navigation.service.mjs +0 -159
- package/esm2022/package-metadata.mjs +0 -16
- package/esm2022/popup-settings.mjs +0 -5
- package/esm2022/progress-kendo-angular-toolbar.mjs +0 -8
- package/esm2022/refresh.service.mjs +0 -20
- package/esm2022/render-location.mjs +0 -5
- package/esm2022/renderer.component.mjs +0 -191
- package/esm2022/renderer.service.mjs +0 -52
- package/esm2022/scroll.service.mjs +0 -110
- package/esm2022/scrollable-button.component.mjs +0 -152
- package/esm2022/tool-options.mjs +0 -5
- package/esm2022/toolbar.component.mjs +0 -1582
- package/esm2022/toolbar.module.mjs +0 -46
- package/esm2022/tools/toolbar-button.component.mjs +0 -712
- package/esm2022/tools/toolbar-buttongroup.component.mjs +0 -448
- package/esm2022/tools/toolbar-dropdownbutton.component.mjs +0 -595
- package/esm2022/tools/toolbar-separator.component.mjs +0 -96
- package/esm2022/tools/toolbar-spacer.component.mjs +0 -76
- package/esm2022/tools/toolbar-splitbutton.component.mjs +0 -607
- package/esm2022/tools/toolbar-tool.component.mjs +0 -106
- package/esm2022/tools/tools.service.mjs +0 -25
- 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
|
-
}] } });
|