@progress/kendo-angular-buttons 8.0.1-dev.202208111121 → 8.1.0
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/bundles/kendo-angular-buttons.umd.js +1 -1
- package/button/button.directive.d.ts +3 -3
- package/buttongroup/buttongroup.component.d.ts +17 -16
- package/dropdownbutton/dropdownbutton.component.d.ts +10 -93
- package/esm2015/button/button.directive.js +1 -2
- package/esm2015/buttongroup/buttongroup.component.js +82 -59
- package/esm2015/dropdownbutton/dropdownbutton.component.js +51 -255
- package/esm2015/floatingactionbutton/floatingactionbutton.component.js +1 -1
- package/esm2015/listbutton/container.service.js +16 -0
- package/esm2015/listbutton/list-button.js +239 -53
- package/esm2015/listbutton/list.component.js +6 -4
- package/esm2015/navigation/navigation.service.js +5 -10
- package/esm2015/package-metadata.js +1 -1
- package/esm2015/splitbutton/splitbutton.component.js +53 -138
- package/fesm2015/kendo-angular-buttons.js +453 -530
- package/listbutton/container.service.d.ts +15 -0
- package/listbutton/list-button.d.ts +83 -10
- package/navigation/navigation.service.d.ts +1 -1
- package/package.json +1 -1
- package/splitbutton/splitbutton.component.d.ts +8 -31
|
@@ -4,23 +4,23 @@
|
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
5
|
import { Component, ContentChild, ViewChild, ViewContainerRef, EventEmitter, HostBinding, HostListener, Input, Output } from '@angular/core';
|
|
6
6
|
import { LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
|
|
7
|
-
import { isDocumentAvailable, guid, Keys
|
|
7
|
+
import { isDocumentAvailable, guid, Keys } from '@progress/kendo-angular-common';
|
|
8
8
|
import { ButtonItemTemplateDirective } from '../listbutton/button-item-template.directive';
|
|
9
|
-
import {
|
|
9
|
+
import { closest } from '../util';
|
|
10
10
|
import { ListButton } from '../listbutton/list-button';
|
|
11
11
|
import { FocusService } from '../focusable/focus.service';
|
|
12
12
|
import { NavigationService } from '../navigation/navigation.service';
|
|
13
13
|
import { NAVIGATION_CONFIG } from '../navigation/navigation-config';
|
|
14
|
-
import {
|
|
15
|
-
import { merge, Subscription } from 'rxjs';
|
|
14
|
+
import { PopupContainerService } from '../listbutton/container.service';
|
|
16
15
|
import * as i0 from "@angular/core";
|
|
17
16
|
import * as i1 from "../focusable/focus.service";
|
|
18
17
|
import * as i2 from "../navigation/navigation.service";
|
|
19
18
|
import * as i3 from "@progress/kendo-angular-popup";
|
|
20
19
|
import * as i4 from "@progress/kendo-angular-l10n";
|
|
21
|
-
import * as i5 from "../listbutton/
|
|
22
|
-
import * as i6 from "../
|
|
23
|
-
import * as i7 from "
|
|
20
|
+
import * as i5 from "../listbutton/container.service";
|
|
21
|
+
import * as i6 from "../listbutton/list.component";
|
|
22
|
+
import * as i7 from "../button/button.directive";
|
|
23
|
+
import * as i8 from "@angular/common";
|
|
24
24
|
const NAVIGATION_SETTINGS = {
|
|
25
25
|
useLeftRightArrows: true
|
|
26
26
|
};
|
|
@@ -58,10 +58,9 @@ const DEFAULT_FILL_MODE = 'solid';
|
|
|
58
58
|
* ```
|
|
59
59
|
*/
|
|
60
60
|
export class DropDownButtonComponent extends ListButton {
|
|
61
|
-
constructor(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization, cdr) {
|
|
62
|
-
super(focusService, navigationService, wrapperRef, zone, localization, cdr);
|
|
63
|
-
this.
|
|
64
|
-
this.elRef = elRef;
|
|
61
|
+
constructor(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization, cdr, containerService) {
|
|
62
|
+
super(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization, cdr, containerService);
|
|
63
|
+
this.containerService = containerService;
|
|
65
64
|
/**
|
|
66
65
|
* Defines the name of an existing icon in a Kendo UI theme.
|
|
67
66
|
*/
|
|
@@ -117,24 +116,10 @@ export class DropDownButtonComponent extends ListButton {
|
|
|
117
116
|
* * `none` —Removes the default CSS class (no class would be rendered).
|
|
118
117
|
*/
|
|
119
118
|
this.themeColor = 'base';
|
|
120
|
-
/**
|
|
121
|
-
* Specifies the [`tabIndex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.
|
|
122
|
-
*/
|
|
123
|
-
this.tabIndex = 0;
|
|
124
119
|
/**
|
|
125
120
|
* Fires each time the user clicks on a drop-down list item. The event data contains the data item bound to the clicked list item.
|
|
126
121
|
*/
|
|
127
122
|
this.itemClick = new EventEmitter();
|
|
128
|
-
/**
|
|
129
|
-
* Fires each time the popup is about to open.
|
|
130
|
-
* This event is preventable. If you cancel the event, the popup will remain closed.
|
|
131
|
-
*/
|
|
132
|
-
this.open = new EventEmitter();
|
|
133
|
-
/**
|
|
134
|
-
* Fires each time the popup is about to close.
|
|
135
|
-
* This event is preventable. If you cancel the event, the popup will remain open.
|
|
136
|
-
*/
|
|
137
|
-
this.close = new EventEmitter();
|
|
138
123
|
/**
|
|
139
124
|
* Fires each time the DropDownButton gets focused.
|
|
140
125
|
*/
|
|
@@ -144,38 +129,11 @@ export class DropDownButtonComponent extends ListButton {
|
|
|
144
129
|
*/
|
|
145
130
|
this.onBlur = new EventEmitter();
|
|
146
131
|
this.listId = guid();
|
|
132
|
+
this.buttonId = guid();
|
|
147
133
|
this._fillMode = DEFAULT_FILL_MODE;
|
|
148
|
-
this.popupSubs = new Subscription();
|
|
149
134
|
this._itemClick = this.itemClick;
|
|
150
135
|
this._blur = this.onBlur;
|
|
151
136
|
}
|
|
152
|
-
/**
|
|
153
|
-
* Configures the popup of the DropDownButton.
|
|
154
|
-
*
|
|
155
|
-
* The available options are:
|
|
156
|
-
* - `animate: Boolean`—Controls the popup animation. By default, the open and close animations are enabled.
|
|
157
|
-
* - `popupClass: String`—Specifies a list of CSS classes that are used to style the popup.
|
|
158
|
-
* - `appendTo: "root" | "component" | ViewContainerRef`—Specifies the component to which the popup will be appended.
|
|
159
|
-
* - `align: "left" | "center" | "right"`—Specifies the alignment of the popup.
|
|
160
|
-
*/
|
|
161
|
-
set popupSettings(settings) {
|
|
162
|
-
this._popupSettings = Object.assign({ animate: true, popupClass: '' }, settings);
|
|
163
|
-
}
|
|
164
|
-
get popupSettings() {
|
|
165
|
-
return this._popupSettings;
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Sets the disabled state of the DropDownButton.
|
|
169
|
-
*/
|
|
170
|
-
set disabled(value) {
|
|
171
|
-
if (value && this.openState) {
|
|
172
|
-
this.openState = false;
|
|
173
|
-
}
|
|
174
|
-
this._disabled = value;
|
|
175
|
-
}
|
|
176
|
-
get disabled() {
|
|
177
|
-
return this._disabled;
|
|
178
|
-
}
|
|
179
137
|
/**
|
|
180
138
|
* Sets or gets the data of the DropDownButton.
|
|
181
139
|
*
|
|
@@ -204,44 +162,6 @@ export class DropDownButtonComponent extends ListButton {
|
|
|
204
162
|
get fillMode() {
|
|
205
163
|
return this._fillMode;
|
|
206
164
|
}
|
|
207
|
-
/**
|
|
208
|
-
* @hidden
|
|
209
|
-
*/
|
|
210
|
-
set openState(open) {
|
|
211
|
-
if (this.disabled) {
|
|
212
|
-
return;
|
|
213
|
-
}
|
|
214
|
-
const eventArgs = new PreventableEvent();
|
|
215
|
-
if (open) {
|
|
216
|
-
this.open.emit(eventArgs);
|
|
217
|
-
}
|
|
218
|
-
else {
|
|
219
|
-
this.close.emit(eventArgs);
|
|
220
|
-
}
|
|
221
|
-
if (eventArgs.isDefaultPrevented()) {
|
|
222
|
-
return;
|
|
223
|
-
}
|
|
224
|
-
this._toggle(open);
|
|
225
|
-
}
|
|
226
|
-
/**
|
|
227
|
-
* @hidden
|
|
228
|
-
*/
|
|
229
|
-
get openState() {
|
|
230
|
-
return this._open;
|
|
231
|
-
}
|
|
232
|
-
/**
|
|
233
|
-
* @hidden
|
|
234
|
-
*/
|
|
235
|
-
get componentTabIndex() {
|
|
236
|
-
return this.disabled ? (-1) : this.tabIndex;
|
|
237
|
-
}
|
|
238
|
-
get appendTo() {
|
|
239
|
-
const { appendTo } = this.popupSettings;
|
|
240
|
-
if (!appendTo || appendTo === 'root') {
|
|
241
|
-
return undefined;
|
|
242
|
-
}
|
|
243
|
-
return appendTo === 'component' ? this.container : appendTo;
|
|
244
|
-
}
|
|
245
165
|
get focused() {
|
|
246
166
|
return this._isFocused && !this._disabled;
|
|
247
167
|
}
|
|
@@ -262,15 +182,12 @@ export class DropDownButtonComponent extends ListButton {
|
|
|
262
182
|
*/
|
|
263
183
|
keydown(event) {
|
|
264
184
|
this.keyDownHandler(event);
|
|
265
|
-
if (event.keyCode === Keys.Space) {
|
|
185
|
+
if (event.keyCode === Keys.Space || event.keyCode === Keys.Enter) {
|
|
266
186
|
this._active = true;
|
|
267
187
|
}
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
*/
|
|
272
|
-
keypress(event) {
|
|
273
|
-
this.keyPressHandler(event);
|
|
188
|
+
if (event.keyCode === Keys.Enter) {
|
|
189
|
+
event.preventDefault();
|
|
190
|
+
}
|
|
274
191
|
}
|
|
275
192
|
/**
|
|
276
193
|
* @hidden
|
|
@@ -301,36 +218,17 @@ export class DropDownButtonComponent extends ListButton {
|
|
|
301
218
|
* @hidden
|
|
302
219
|
*/
|
|
303
220
|
openPopup() {
|
|
221
|
+
this._isFocused = true;
|
|
304
222
|
this.togglePopupVisibility();
|
|
305
223
|
}
|
|
306
224
|
/**
|
|
307
225
|
* @hidden
|
|
308
226
|
*/
|
|
309
227
|
onButtonBlur() {
|
|
310
|
-
if (!this.
|
|
228
|
+
if (!this.openState) {
|
|
311
229
|
this.blurWrapper();
|
|
312
230
|
}
|
|
313
231
|
}
|
|
314
|
-
/**
|
|
315
|
-
* @hidden
|
|
316
|
-
*/
|
|
317
|
-
get anchorAlign() {
|
|
318
|
-
let align = { horizontal: this.popupSettings.align || 'left', vertical: 'bottom' };
|
|
319
|
-
if (this.direction === 'rtl' && !isPresent(this.popupSettings.align)) {
|
|
320
|
-
align.horizontal = 'right';
|
|
321
|
-
}
|
|
322
|
-
return align;
|
|
323
|
-
}
|
|
324
|
-
/**
|
|
325
|
-
* @hidden
|
|
326
|
-
*/
|
|
327
|
-
get popupAlign() {
|
|
328
|
-
let align = { horizontal: this.popupSettings.align || 'left', vertical: 'top' };
|
|
329
|
-
if (this.direction === 'rtl' && !isPresent(this.popupSettings.align)) {
|
|
330
|
-
align.horizontal = 'right';
|
|
331
|
-
}
|
|
332
|
-
return align;
|
|
333
|
-
}
|
|
334
232
|
/**
|
|
335
233
|
* Focuses the DropDownButton component.
|
|
336
234
|
*/
|
|
@@ -348,44 +246,23 @@ export class DropDownButtonComponent extends ListButton {
|
|
|
348
246
|
this.blurWrapper();
|
|
349
247
|
}
|
|
350
248
|
}
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
const newSettings = changes.popupSettings.currentValue;
|
|
355
|
-
popup.popupClass = newSettings.popupClass;
|
|
356
|
-
popup.animate = newSettings.animate;
|
|
357
|
-
popup.popupAlign = this.popupAlign;
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
ngOnDestroy() {
|
|
361
|
-
super.ngOnDestroy();
|
|
362
|
-
this.destroyPopup();
|
|
363
|
-
}
|
|
364
|
-
/**
|
|
365
|
-
* Toggles the visibility of the popup.
|
|
366
|
-
* If the `toggle` method is used to open or close the popup, the `open` and `close` events will not be fired.
|
|
367
|
-
*
|
|
368
|
-
* @param open - The state of the popup.
|
|
369
|
-
*/
|
|
370
|
-
toggle(open) {
|
|
371
|
-
if (this.disabled) {
|
|
372
|
-
return;
|
|
373
|
-
}
|
|
374
|
-
tick(() => (this._toggle((open === undefined) ? !this._open : open)));
|
|
375
|
-
}
|
|
376
|
-
/**
|
|
377
|
-
* Returns the current open state of the popup.
|
|
378
|
-
*/
|
|
379
|
-
get isOpen() {
|
|
380
|
-
return this.openState;
|
|
249
|
+
ngAfterViewInit() {
|
|
250
|
+
this.containerService.container = this.container;
|
|
251
|
+
this.containerService.template = this.popupTemplate;
|
|
381
252
|
}
|
|
382
253
|
/**
|
|
383
254
|
* @hidden
|
|
384
255
|
*/
|
|
385
|
-
handleFocus() {
|
|
386
|
-
if (!this._disabled
|
|
256
|
+
handleFocus(event) {
|
|
257
|
+
if (!this._disabled) {
|
|
258
|
+
// eslint-disable-next-line no-unused-expressions
|
|
259
|
+
!this._isFocused && this.onFocus.emit();
|
|
387
260
|
this._isFocused = true;
|
|
388
|
-
this.
|
|
261
|
+
this.focusService.resetFocus();
|
|
262
|
+
const relatedTargetInList = event.relatedTarget && closest(event.relatedTarget, '.k-popup kendo-button-list');
|
|
263
|
+
if (this.openState && !relatedTargetInList) {
|
|
264
|
+
this.focusService.focus(0);
|
|
265
|
+
}
|
|
389
266
|
}
|
|
390
267
|
}
|
|
391
268
|
/**
|
|
@@ -396,77 +273,9 @@ export class DropDownButtonComponent extends ListButton {
|
|
|
396
273
|
|| this.wrapper.contains(element)
|
|
397
274
|
|| (this.popupRef && this.popupRef.popupElement.contains(element));
|
|
398
275
|
}
|
|
399
|
-
subscribeNavigationEvents() {
|
|
400
|
-
this.subs.add(this.navigationService.navigate
|
|
401
|
-
.subscribe(this.onArrowKeyNavigate.bind(this)));
|
|
402
|
-
this.subs.add(this.navigationService.enterup.subscribe(this.onNavigationEnterUp.bind(this)));
|
|
403
|
-
this.subs.add(this.navigationService.open.subscribe(this.onNavigationOpen.bind(this)));
|
|
404
|
-
this.subs.add(merge(this.navigationService.close, this.navigationService.esc).subscribe(this.onNavigationClose.bind(this)));
|
|
405
|
-
}
|
|
406
|
-
onNavigationEnterUp() {
|
|
407
|
-
if (!this._disabled && !this.openState) {
|
|
408
|
-
this._active = false;
|
|
409
|
-
}
|
|
410
|
-
if (this.openState) {
|
|
411
|
-
let focused = this.focusService.focused;
|
|
412
|
-
if (isPresent(focused) && focused !== -1) {
|
|
413
|
-
this.emitItemClickHandler(focused);
|
|
414
|
-
}
|
|
415
|
-
}
|
|
416
|
-
this.togglePopupVisibility();
|
|
417
|
-
if (!this.openState && isDocumentAvailable()) {
|
|
418
|
-
this.button.nativeElement.focus();
|
|
419
|
-
}
|
|
420
|
-
}
|
|
421
|
-
onNavigationOpen() {
|
|
422
|
-
if (!this._disabled && !this.openState) {
|
|
423
|
-
this.togglePopupVisibility();
|
|
424
|
-
}
|
|
425
|
-
}
|
|
426
|
-
onNavigationClose() {
|
|
427
|
-
if (this.openState) {
|
|
428
|
-
this.togglePopupVisibility();
|
|
429
|
-
if (isDocumentAvailable()) {
|
|
430
|
-
this.button.nativeElement.focus();
|
|
431
|
-
}
|
|
432
|
-
}
|
|
433
|
-
}
|
|
434
|
-
onArrowKeyNavigate(index) {
|
|
435
|
-
this.focusService.focus(index);
|
|
436
|
-
}
|
|
437
|
-
_toggle(open) {
|
|
438
|
-
if (this._open === open) {
|
|
439
|
-
return;
|
|
440
|
-
}
|
|
441
|
-
this._open = open;
|
|
442
|
-
this.destroyPopup();
|
|
443
|
-
if (this._open) {
|
|
444
|
-
this.createPopup();
|
|
445
|
-
}
|
|
446
|
-
}
|
|
447
|
-
createPopup() {
|
|
448
|
-
this.popupRef = this.popupService.open({
|
|
449
|
-
anchor: this.elRef,
|
|
450
|
-
anchorAlign: this.anchorAlign,
|
|
451
|
-
animate: this.popupSettings.animate,
|
|
452
|
-
appendTo: this.appendTo,
|
|
453
|
-
content: this.popupTemplate,
|
|
454
|
-
popupAlign: this.popupAlign,
|
|
455
|
-
popupClass: this.popupClasses
|
|
456
|
-
});
|
|
457
|
-
this.popupSubs.add(this.popupRef.popupAnchorViewportLeave.subscribe(() => this.openState = false));
|
|
458
|
-
this.popupSubs.add(this.popupRef.popupOpen.subscribe(this.focusFirstItem.bind(this)));
|
|
459
|
-
}
|
|
460
|
-
destroyPopup() {
|
|
461
|
-
if (this.popupRef) {
|
|
462
|
-
this.popupRef.close();
|
|
463
|
-
this.popupRef = null;
|
|
464
|
-
this.popupSubs.unsubscribe();
|
|
465
|
-
}
|
|
466
|
-
}
|
|
467
276
|
}
|
|
468
|
-
DropDownButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DropDownButtonComponent, deps: [{ token: i1.FocusService }, { token: i2.NavigationService }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i3.PopupService }, { token: i0.ElementRef }, { token: i4.LocalizationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
469
|
-
DropDownButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: DropDownButtonComponent, selector: "kendo-dropdownbutton", inputs: { icon: "icon", iconClass: "iconClass", imageUrl: "imageUrl",
|
|
277
|
+
DropDownButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DropDownButtonComponent, deps: [{ token: i1.FocusService }, { token: i2.NavigationService }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i3.PopupService }, { token: i0.ElementRef }, { token: i4.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: i5.PopupContainerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
278
|
+
DropDownButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: DropDownButtonComponent, selector: "kendo-dropdownbutton", inputs: { icon: "icon", iconClass: "iconClass", imageUrl: "imageUrl", textField: "textField", data: "data", size: "size", rounded: "rounded", fillMode: "fillMode", themeColor: "themeColor" }, outputs: { itemClick: "itemClick", onFocus: "focus", onBlur: "blur" }, host: { listeners: { "keydown": "keydown($event)", "keyup": "keyup($event)", "mousedown": "mousedown($event)", "mouseup": "mouseup($event)" }, properties: { "class.k-focus": "this.focused", "class.k-dropdown-button": "this.widgetClasses", "attr.dir": "this.dir" } }, providers: [
|
|
470
279
|
FocusService,
|
|
471
280
|
NavigationService,
|
|
472
281
|
NAVIGATION_SETTINGS_PROVIDER,
|
|
@@ -474,11 +283,12 @@ DropDownButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
|
|
|
474
283
|
{
|
|
475
284
|
provide: L10N_PREFIX,
|
|
476
285
|
useValue: 'kendo.dropdownbutton'
|
|
477
|
-
}
|
|
478
|
-
|
|
286
|
+
},
|
|
287
|
+
PopupContainerService
|
|
288
|
+
], queries: [{ propertyName: "itemTemplate", first: true, predicate: ButtonItemTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "button", first: true, predicate: ["button"], descendants: true }, { propertyName: "buttonList", first: true, predicate: ["buttonList"], descendants: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef }], exportAs: ["kendoDropDownButton"], usesInheritance: true, ngImport: i0, template: `
|
|
479
289
|
<button kendoButton #button
|
|
480
|
-
role="menu"
|
|
481
290
|
type="button"
|
|
291
|
+
[id]="buttonId"
|
|
482
292
|
[tabindex]="componentTabIndex"
|
|
483
293
|
[class.k-active]="active"
|
|
484
294
|
[disabled]="disabled"
|
|
@@ -491,12 +301,12 @@ DropDownButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
|
|
|
491
301
|
[fillMode]="fillMode"
|
|
492
302
|
[themeColor]="fillMode ? themeColor : null"
|
|
493
303
|
(click)="openPopup()"
|
|
494
|
-
(focus)="handleFocus()"
|
|
304
|
+
(focus)="handleFocus($event)"
|
|
495
305
|
(blur)="onButtonBlur()"
|
|
496
306
|
[attr.aria-disabled]="disabled"
|
|
497
307
|
[attr.aria-expanded]="openState"
|
|
498
308
|
[attr.aria-haspopup]="true"
|
|
499
|
-
[attr.aria-
|
|
309
|
+
[attr.aria-controls]="listId"
|
|
500
310
|
>
|
|
501
311
|
<ng-content></ng-content>
|
|
502
312
|
</button>
|
|
@@ -509,15 +319,15 @@ DropDownButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
|
|
|
509
319
|
[itemTemplate]="itemTemplate"
|
|
510
320
|
(onItemClick)="onItemClick($event)"
|
|
511
321
|
(keydown)="keyDownHandler($event)"
|
|
512
|
-
(keypress)="keyPressHandler($event)"
|
|
513
322
|
(keyup)="keyUpHandler($event)"
|
|
514
323
|
[attr.dir]="dir"
|
|
324
|
+
[attr.aria-labelledby]="buttonId"
|
|
515
325
|
[size]="size"
|
|
516
326
|
>
|
|
517
327
|
</kendo-button-list>
|
|
518
328
|
</ng-template>
|
|
519
329
|
<ng-container #container></ng-container>
|
|
520
|
-
`, isInline: true, components: [{ type:
|
|
330
|
+
`, isInline: true, components: [{ type: i6.ListComponent, selector: "kendo-button-list", inputs: ["data", "textField", "itemTemplate", "size"], outputs: ["onItemClick", "onItemBlur"] }], directives: [{ type: i7.ButtonDirective, selector: "button[kendoButton], span[kendoButton]", inputs: ["toggleable", "togglable", "selected", "tabIndex", "icon", "iconClass", "imageUrl", "disabled", "size", "rounded", "fillMode", "themeColor", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
521
331
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DropDownButtonComponent, decorators: [{
|
|
522
332
|
type: Component,
|
|
523
333
|
args: [{
|
|
@@ -530,13 +340,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
530
340
|
{
|
|
531
341
|
provide: L10N_PREFIX,
|
|
532
342
|
useValue: 'kendo.dropdownbutton'
|
|
533
|
-
}
|
|
343
|
+
},
|
|
344
|
+
PopupContainerService
|
|
534
345
|
],
|
|
535
346
|
selector: 'kendo-dropdownbutton',
|
|
536
347
|
template: `
|
|
537
348
|
<button kendoButton #button
|
|
538
|
-
role="menu"
|
|
539
349
|
type="button"
|
|
350
|
+
[id]="buttonId"
|
|
540
351
|
[tabindex]="componentTabIndex"
|
|
541
352
|
[class.k-active]="active"
|
|
542
353
|
[disabled]="disabled"
|
|
@@ -549,12 +360,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
549
360
|
[fillMode]="fillMode"
|
|
550
361
|
[themeColor]="fillMode ? themeColor : null"
|
|
551
362
|
(click)="openPopup()"
|
|
552
|
-
(focus)="handleFocus()"
|
|
363
|
+
(focus)="handleFocus($event)"
|
|
553
364
|
(blur)="onButtonBlur()"
|
|
554
365
|
[attr.aria-disabled]="disabled"
|
|
555
366
|
[attr.aria-expanded]="openState"
|
|
556
367
|
[attr.aria-haspopup]="true"
|
|
557
|
-
[attr.aria-
|
|
368
|
+
[attr.aria-controls]="listId"
|
|
558
369
|
>
|
|
559
370
|
<ng-content></ng-content>
|
|
560
371
|
</button>
|
|
@@ -567,9 +378,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
567
378
|
[itemTemplate]="itemTemplate"
|
|
568
379
|
(onItemClick)="onItemClick($event)"
|
|
569
380
|
(keydown)="keyDownHandler($event)"
|
|
570
|
-
(keypress)="keyPressHandler($event)"
|
|
571
381
|
(keyup)="keyUpHandler($event)"
|
|
572
382
|
[attr.dir]="dir"
|
|
383
|
+
[attr.aria-labelledby]="buttonId"
|
|
573
384
|
[size]="size"
|
|
574
385
|
>
|
|
575
386
|
</kendo-button-list>
|
|
@@ -577,18 +388,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
577
388
|
<ng-container #container></ng-container>
|
|
578
389
|
`
|
|
579
390
|
}]
|
|
580
|
-
}], ctorParameters: function () { return [{ type: i1.FocusService }, { type: i2.NavigationService }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i3.PopupService }, { type: i0.ElementRef }, { type: i4.LocalizationService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { icon: [{
|
|
391
|
+
}], ctorParameters: function () { return [{ type: i1.FocusService }, { type: i2.NavigationService }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i3.PopupService }, { type: i0.ElementRef }, { type: i4.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: i5.PopupContainerService }]; }, propDecorators: { icon: [{
|
|
581
392
|
type: Input
|
|
582
393
|
}], iconClass: [{
|
|
583
394
|
type: Input
|
|
584
395
|
}], imageUrl: [{
|
|
585
396
|
type: Input
|
|
586
|
-
}], popupSettings: [{
|
|
587
|
-
type: Input
|
|
588
397
|
}], textField: [{
|
|
589
398
|
type: Input
|
|
590
|
-
}], disabled: [{
|
|
591
|
-
type: Input
|
|
592
399
|
}], data: [{
|
|
593
400
|
type: Input
|
|
594
401
|
}], size: [{
|
|
@@ -599,16 +406,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
599
406
|
type: Input
|
|
600
407
|
}], themeColor: [{
|
|
601
408
|
type: Input
|
|
602
|
-
}], buttonClass: [{
|
|
603
|
-
type: Input
|
|
604
|
-
}], tabIndex: [{
|
|
605
|
-
type: Input
|
|
606
409
|
}], itemClick: [{
|
|
607
410
|
type: Output
|
|
608
|
-
}], open: [{
|
|
609
|
-
type: Output
|
|
610
|
-
}], close: [{
|
|
611
|
-
type: Output
|
|
612
411
|
}], onFocus: [{
|
|
613
412
|
type: Output,
|
|
614
413
|
args: ['focus']
|
|
@@ -626,25 +425,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
626
425
|
args: ['attr.dir']
|
|
627
426
|
}], itemTemplate: [{
|
|
628
427
|
type: ContentChild,
|
|
629
|
-
args: [ButtonItemTemplateDirective
|
|
428
|
+
args: [ButtonItemTemplateDirective]
|
|
630
429
|
}], button: [{
|
|
631
430
|
type: ViewChild,
|
|
632
|
-
args: ['button'
|
|
431
|
+
args: ['button']
|
|
633
432
|
}], buttonList: [{
|
|
634
433
|
type: ViewChild,
|
|
635
|
-
args: ['buttonList'
|
|
434
|
+
args: ['buttonList']
|
|
636
435
|
}], popupTemplate: [{
|
|
637
436
|
type: ViewChild,
|
|
638
|
-
args: ['popupTemplate'
|
|
437
|
+
args: ['popupTemplate']
|
|
639
438
|
}], container: [{
|
|
640
439
|
type: ViewChild,
|
|
641
|
-
args: ['container', { read: ViewContainerRef
|
|
440
|
+
args: ['container', { read: ViewContainerRef }]
|
|
642
441
|
}], keydown: [{
|
|
643
442
|
type: HostListener,
|
|
644
443
|
args: ['keydown', ['$event']]
|
|
645
|
-
}], keypress: [{
|
|
646
|
-
type: HostListener,
|
|
647
|
-
args: ['keypress', ['$event']]
|
|
648
444
|
}], keyup: [{
|
|
649
445
|
type: HostListener,
|
|
650
446
|
args: ['keyup', ['$event']]
|
|
@@ -444,7 +444,7 @@ export class FloatingActionButtonComponent {
|
|
|
444
444
|
this.subscriptions.add(this.navigationService.enter.subscribe(this.onNavigationEnterPress.bind(this)));
|
|
445
445
|
this.subscriptions.add(merge(this.navigationService.close, this.navigationService.esc).subscribe(this.onNavigationClose.bind(this)));
|
|
446
446
|
}
|
|
447
|
-
onArrowKeyNavigate(index) {
|
|
447
|
+
onArrowKeyNavigate({ index }) {
|
|
448
448
|
this.focusService.focus(index);
|
|
449
449
|
}
|
|
450
450
|
onNavigationEnterPress() {
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2021 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { Injectable } from '@angular/core';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
/**
|
|
8
|
+
* @hidden
|
|
9
|
+
*/
|
|
10
|
+
export class PopupContainerService {
|
|
11
|
+
}
|
|
12
|
+
PopupContainerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PopupContainerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
13
|
+
PopupContainerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PopupContainerService });
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PopupContainerService, decorators: [{
|
|
15
|
+
type: Injectable
|
|
16
|
+
}] });
|