@progress/kendo-angular-buttons 6.4.1-dev.202111011439 → 7.0.0-dev.202201121347
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/dist/cdn/js/kendo-angular-buttons.js +2 -2
- package/dist/cdn/main.js +1 -1
- package/dist/es/button/button.directive.js +236 -89
- package/dist/es/button/button.service.js +1 -5
- package/dist/es/buttongroup/buttongroup.component.js +11 -60
- package/dist/es/chip/chip-list.component.js +57 -7
- package/dist/es/chip/chip.component.js +175 -86
- package/dist/es/{chip/models/chip-look.js → common/models/fillmode.js} +0 -0
- package/dist/es/{chip/models/type.js → common/models/rounded.js} +0 -0
- package/dist/{es2015/button-look.js → es/common/models/styling-classes.js} +0 -0
- package/dist/es/{button-look.js → common/models.js} +0 -0
- package/dist/es/dropdownbutton/dropdownbutton.component.js +89 -36
- package/dist/es/floatingactionbutton/dial-item.component.js +1 -1
- package/dist/es/floatingactionbutton/floatingactionbutton.component.js +66 -41
- package/dist/es/focusable/focusable.directive.js +4 -4
- package/dist/es/listbutton/list-button.js +4 -1
- package/dist/es/listbutton/list.component.js +20 -1
- package/dist/es/package-metadata.js +1 -1
- package/dist/es/splitbutton/splitbutton.component.js +107 -37
- package/dist/es/util.js +52 -0
- package/dist/es2015/button/button.directive.d.ts +85 -22
- package/dist/es2015/button/button.directive.js +219 -85
- package/dist/es2015/button/button.service.d.ts +1 -4
- package/dist/es2015/button/button.service.js +1 -5
- package/dist/es2015/buttongroup/buttongroup.component.d.ts +0 -15
- package/dist/es2015/buttongroup/buttongroup.component.js +11 -48
- package/dist/es2015/chip/chip-list.component.d.ts +19 -3
- package/dist/es2015/chip/chip-list.component.js +52 -7
- package/dist/es2015/chip/chip.component.d.ts +67 -32
- package/dist/es2015/chip/chip.component.js +186 -97
- package/dist/es2015/common/models/fillmode.d.ts +12 -0
- package/dist/es2015/{chip/models/type.js → common/models/fillmode.js} +0 -0
- package/dist/es2015/common/models/rounded.d.ts +12 -0
- package/dist/es2015/common/models/rounded.js +4 -0
- package/dist/es2015/common/models/shape.d.ts +2 -9
- package/dist/es2015/common/models/size.d.ts +9 -6
- package/dist/es2015/common/models/styling-classes.d.ts +11 -0
- package/dist/es2015/common/models/styling-classes.js +4 -0
- package/dist/es2015/common/models/theme-color.d.ts +15 -4
- package/dist/es2015/common/models.d.ts +10 -0
- package/dist/es2015/{chip/models/chip-look.js → common/models.js} +0 -0
- package/dist/es2015/dropdownbutton/dropdownbutton.component.d.ts +59 -7
- package/dist/es2015/dropdownbutton/dropdownbutton.component.js +92 -31
- package/dist/es2015/floatingactionbutton/dial-item.component.js +1 -1
- package/dist/es2015/floatingactionbutton/floatingactionbutton.component.d.ts +28 -21
- package/dist/es2015/floatingactionbutton/floatingactionbutton.component.js +62 -42
- package/dist/es2015/focusable/focusable.directive.js +4 -4
- package/dist/es2015/index.metadata.json +1 -1
- package/dist/es2015/listbutton/list-button.js +4 -1
- package/dist/es2015/listbutton/list.component.d.ts +3 -0
- package/dist/es2015/listbutton/list.component.js +37 -20
- package/dist/es2015/main.d.ts +4 -4
- package/dist/es2015/package-metadata.js +1 -1
- package/dist/es2015/splitbutton/splitbutton.component.d.ts +59 -12
- package/dist/es2015/splitbutton/splitbutton.component.js +113 -33
- package/dist/es2015/util.d.ts +21 -0
- package/dist/es2015/util.js +52 -0
- package/dist/fesm2015/index.js +862 -409
- package/dist/fesm5/index.js +853 -405
- package/dist/npm/button/button.directive.js +236 -89
- package/dist/npm/button/button.service.js +0 -4
- package/dist/npm/buttongroup/buttongroup.component.js +11 -60
- package/dist/npm/chip/chip-list.component.js +55 -5
- package/dist/npm/chip/chip.component.js +173 -84
- package/dist/npm/{chip/models/chip-look.js → common/models/fillmode.js} +0 -0
- package/dist/npm/{chip/models/type.js → common/models/rounded.js} +0 -0
- package/dist/npm/common/models/styling-classes.js +6 -0
- package/dist/npm/{button-look.js → common/models.js} +0 -0
- package/dist/npm/dropdownbutton/dropdownbutton.component.js +89 -36
- package/dist/npm/floatingactionbutton/dial-item.component.js +1 -1
- package/dist/npm/floatingactionbutton/floatingactionbutton.component.js +66 -41
- package/dist/npm/focusable/focusable.directive.js +4 -4
- package/dist/npm/listbutton/list-button.js +4 -1
- package/dist/npm/listbutton/list.component.js +20 -1
- package/dist/npm/package-metadata.js +1 -1
- package/dist/npm/splitbutton/splitbutton.component.js +105 -35
- package/dist/npm/util.js +52 -0
- package/dist/systemjs/kendo-angular-buttons.js +1 -1
- package/package.json +13 -10
- package/dist/es2015/button-look.d.ts +0 -21
- package/dist/es2015/chip/models/chip-look.d.ts +0 -20
- package/dist/es2015/chip/models/type.d.ts +0 -21
package/dist/fesm2015/index.js
CHANGED
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
5
|
import { __decorate, __metadata, __param } from 'tslib';
|
|
6
6
|
import { Injectable, EventEmitter, Input, Output, HostBinding, HostListener, Directive, Optional, ElementRef, Renderer2, NgZone, isDevMode, ContentChildren, QueryList, Component, NgModule, TemplateRef, ViewContainerRef, InjectionToken, Inject, ContentChild, ViewChild, ChangeDetectorRef, forwardRef } from '@angular/core';
|
|
7
|
-
import {
|
|
7
|
+
import { Subject, fromEvent, merge, Subscription } from 'rxjs';
|
|
8
8
|
import { Keys, isChanged, isDocumentAvailable, hasObservers, guid, EventsModule } from '@progress/kendo-angular-common';
|
|
9
9
|
import { LocalizationService, L10N_PREFIX, ComponentMessages } from '@progress/kendo-angular-l10n';
|
|
10
|
-
import { filter, take } from 'rxjs/operators';
|
|
11
10
|
import { validatePackage } from '@progress/kendo-licensing';
|
|
12
11
|
import { CommonModule } from '@angular/common';
|
|
13
12
|
import { PopupService, PopupModule } from '@progress/kendo-angular-popup';
|
|
13
|
+
import { filter, take } from 'rxjs/operators';
|
|
14
14
|
import { sequence, query, style, stagger, animate, AnimationBuilder } from '@angular/animations';
|
|
15
15
|
|
|
16
16
|
/**
|
|
@@ -21,16 +21,12 @@ let KendoButtonService = class KendoButtonService {
|
|
|
21
21
|
* @hidden
|
|
22
22
|
*/
|
|
23
23
|
constructor() {
|
|
24
|
-
this.buttonLookChange = new BehaviorSubject('default');
|
|
25
24
|
this.buttonClicked = new Subject();
|
|
26
25
|
this.buttonClicked$ = this.buttonClicked.asObservable();
|
|
27
26
|
}
|
|
28
27
|
click(button) {
|
|
29
28
|
this.buttonClicked.next(button);
|
|
30
29
|
}
|
|
31
|
-
setButtonLook(look) {
|
|
32
|
-
this.buttonLookChange.next(look);
|
|
33
|
-
}
|
|
34
30
|
};
|
|
35
31
|
KendoButtonService = __decorate([
|
|
36
32
|
Injectable()
|
|
@@ -43,11 +39,103 @@ const packageMetadata = {
|
|
|
43
39
|
name: '@progress/kendo-angular-buttons',
|
|
44
40
|
productName: 'Kendo UI for Angular',
|
|
45
41
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
46
|
-
publishDate:
|
|
42
|
+
publishDate: 1641995114,
|
|
47
43
|
version: '',
|
|
48
44
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
|
|
49
45
|
};
|
|
50
46
|
|
|
47
|
+
/* tslint:disable:no-null-keyword */
|
|
48
|
+
/* tslint:disable:no-bitwise */
|
|
49
|
+
const resolvedPromise = Promise.resolve(null);
|
|
50
|
+
/**
|
|
51
|
+
* @hidden
|
|
52
|
+
*/
|
|
53
|
+
const isPresent = (value) => value !== null && value !== undefined;
|
|
54
|
+
/**
|
|
55
|
+
* @hidden
|
|
56
|
+
*/
|
|
57
|
+
const tick = (f) => (resolvedPromise.then(f));
|
|
58
|
+
/**
|
|
59
|
+
* @hidden
|
|
60
|
+
*/
|
|
61
|
+
function isDocumentNode(container) {
|
|
62
|
+
return container.nodeType === 9;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* @hidden
|
|
66
|
+
*/
|
|
67
|
+
function closest(element, selector) {
|
|
68
|
+
if (element.closest) {
|
|
69
|
+
return element.closest(selector);
|
|
70
|
+
}
|
|
71
|
+
const matches = Element.prototype.matches ?
|
|
72
|
+
(el, sel) => el.matches(sel)
|
|
73
|
+
: (el, sel) => el.msMatchesSelector(sel);
|
|
74
|
+
let node = element;
|
|
75
|
+
while (node && !isDocumentNode(node)) {
|
|
76
|
+
if (matches(node, selector)) {
|
|
77
|
+
return node;
|
|
78
|
+
}
|
|
79
|
+
node = node.parentNode;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* @hidden
|
|
84
|
+
*/
|
|
85
|
+
const replaceMessagePlaceholder = (message, name, value) => message.replace(new RegExp(`\{\\s*${name}\\s*\}`, 'g'), value);
|
|
86
|
+
/**
|
|
87
|
+
* @hidden
|
|
88
|
+
*/
|
|
89
|
+
const SIZES = {
|
|
90
|
+
small: 'sm',
|
|
91
|
+
medium: 'md',
|
|
92
|
+
large: 'lg'
|
|
93
|
+
};
|
|
94
|
+
const ROUNDNESS = {
|
|
95
|
+
small: 'sm',
|
|
96
|
+
medium: 'md',
|
|
97
|
+
large: 'lg',
|
|
98
|
+
full: 'full'
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* @hidden
|
|
102
|
+
*
|
|
103
|
+
* Returns the styling classes to be added and removed
|
|
104
|
+
*/
|
|
105
|
+
const getStylingClasses = (componentType, stylingOption, previousValue, newValue) => {
|
|
106
|
+
switch (stylingOption) {
|
|
107
|
+
case 'size':
|
|
108
|
+
return {
|
|
109
|
+
toRemove: `k-${componentType}-${SIZES[previousValue]}`,
|
|
110
|
+
toAdd: newValue ? `k-${componentType}-${SIZES[newValue]}` : null
|
|
111
|
+
};
|
|
112
|
+
case 'rounded':
|
|
113
|
+
return {
|
|
114
|
+
toRemove: `k-rounded-${ROUNDNESS[previousValue]}`,
|
|
115
|
+
toAdd: newValue ? `k-rounded-${ROUNDNESS[newValue]}` : null
|
|
116
|
+
};
|
|
117
|
+
case 'fillMode':
|
|
118
|
+
case 'shape':
|
|
119
|
+
return {
|
|
120
|
+
toRemove: `k-${componentType}-${previousValue}`,
|
|
121
|
+
toAdd: newValue ? `k-${componentType}-${newValue}` : null
|
|
122
|
+
};
|
|
123
|
+
default:
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
/**
|
|
128
|
+
* @hidden
|
|
129
|
+
*
|
|
130
|
+
* Returns the themeColor classes to be added and removed
|
|
131
|
+
*/
|
|
132
|
+
const getThemeColorClasses = (componentType, prevFillMode, fillMode, previousValue, newValue) => {
|
|
133
|
+
return {
|
|
134
|
+
toRemove: `k-${componentType}-${prevFillMode}-${previousValue}`,
|
|
135
|
+
toAdd: newValue ? `k-${componentType}-${fillMode}-${newValue}` : null
|
|
136
|
+
};
|
|
137
|
+
};
|
|
138
|
+
|
|
51
139
|
const SPAN_TAG_NAME = 'SPAN';
|
|
52
140
|
/**
|
|
53
141
|
* Represents the Kendo UI Button component for Angular.
|
|
@@ -61,19 +149,6 @@ let ButtonDirective = class ButtonDirective {
|
|
|
61
149
|
* By default, `toggleable` is set to `false`.
|
|
62
150
|
*/
|
|
63
151
|
this.toggleable = false;
|
|
64
|
-
/**
|
|
65
|
-
* Adds visual weight to the Button and makes it primary.
|
|
66
|
-
*/
|
|
67
|
-
this.primary = false;
|
|
68
|
-
/**
|
|
69
|
-
* Changes the visual appearance by using alternative styling options
|
|
70
|
-
* ([more information and examples]({% slug appearance_button %})).
|
|
71
|
-
*
|
|
72
|
-
* The available values are:
|
|
73
|
-
* * [`ButtonLook`]({% slug api_buttons_buttonlook %}) = `flat` | `outline`
|
|
74
|
-
* * `clear`
|
|
75
|
-
*/
|
|
76
|
-
this.look = 'default';
|
|
77
152
|
/**
|
|
78
153
|
* @hidden
|
|
79
154
|
*/
|
|
@@ -91,12 +166,16 @@ let ButtonDirective = class ButtonDirective {
|
|
|
91
166
|
this.isDisabled = false;
|
|
92
167
|
this.isIcon = false;
|
|
93
168
|
this.isIconClass = false;
|
|
169
|
+
this._size = 'medium';
|
|
170
|
+
this._rounded = 'medium';
|
|
171
|
+
this._shape = 'rectangle';
|
|
172
|
+
this._fillMode = 'solid';
|
|
173
|
+
this._themeColor = 'base';
|
|
94
174
|
this._focused = false;
|
|
95
175
|
this.domEvents = [];
|
|
96
176
|
validatePackage(packageMetadata);
|
|
97
177
|
this.direction = localization.rtl ? 'rtl' : 'ltr';
|
|
98
|
-
this.localizationChangeSubscription = localization.changes
|
|
99
|
-
.subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr');
|
|
178
|
+
this.localizationChangeSubscription = localization.changes.subscribe(({ rtl }) => (this.direction = rtl ? 'rtl' : 'ltr'));
|
|
100
179
|
this.element = element.nativeElement;
|
|
101
180
|
this.renderer = renderer;
|
|
102
181
|
}
|
|
@@ -140,7 +219,7 @@ let ButtonDirective = class ButtonDirective {
|
|
|
140
219
|
if (icon) {
|
|
141
220
|
this.iconSetter(icon, () => {
|
|
142
221
|
this.isIcon = true;
|
|
143
|
-
const classes = 'k-icon k-i-' + icon;
|
|
222
|
+
const classes = 'k-button-icon k-icon k-i-' + icon;
|
|
144
223
|
this.addIcon(classes);
|
|
145
224
|
});
|
|
146
225
|
}
|
|
@@ -157,7 +236,8 @@ let ButtonDirective = class ButtonDirective {
|
|
|
157
236
|
if (iconClassName) {
|
|
158
237
|
this.iconSetter(iconClassName, () => {
|
|
159
238
|
this.isIconClass = true;
|
|
160
|
-
|
|
239
|
+
const classes = 'k-button-icon k-icon ' + iconClassName;
|
|
240
|
+
this.addIcon(classes);
|
|
161
241
|
});
|
|
162
242
|
}
|
|
163
243
|
else {
|
|
@@ -187,8 +267,101 @@ let ButtonDirective = class ButtonDirective {
|
|
|
187
267
|
get disabled() {
|
|
188
268
|
return this.isDisabled;
|
|
189
269
|
}
|
|
270
|
+
/**
|
|
271
|
+
* The size property specifies the width and height of the Button
|
|
272
|
+
* ([see example]({% slug appearance_buttondirective %}#toc-size)).
|
|
273
|
+
*
|
|
274
|
+
* The possible values are:
|
|
275
|
+
* * `'small'`
|
|
276
|
+
* * `'medium'` (default)
|
|
277
|
+
* * `'large'`
|
|
278
|
+
* * `null`
|
|
279
|
+
*/
|
|
280
|
+
set size(size) {
|
|
281
|
+
this.handleClasses(size, 'size');
|
|
282
|
+
this._size = size;
|
|
283
|
+
}
|
|
284
|
+
get size() {
|
|
285
|
+
return this._size;
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* The rounded property specifies the border radius of the Button
|
|
289
|
+
* ([see example]({% slug appearance_buttondirective %}#toc-rounded)).
|
|
290
|
+
*
|
|
291
|
+
* The possible values are:
|
|
292
|
+
* * `'small'`
|
|
293
|
+
* * `'medium'` (default)
|
|
294
|
+
* * `'large'`
|
|
295
|
+
* * `'full'`
|
|
296
|
+
* * `null`
|
|
297
|
+
*/
|
|
298
|
+
set rounded(rounded) {
|
|
299
|
+
this.handleClasses(rounded, 'rounded');
|
|
300
|
+
this._rounded = rounded;
|
|
301
|
+
}
|
|
302
|
+
get rounded() {
|
|
303
|
+
return this._rounded;
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* The fillMode property specifies the background and border styles of the Button
|
|
307
|
+
* ([see example]({% slug appearance_buttondirective %}#toc-fillMode)).
|
|
308
|
+
*
|
|
309
|
+
* The possible values are:
|
|
310
|
+
* * `'flat'`
|
|
311
|
+
* * `'solid'` (default)
|
|
312
|
+
* * `'outline'`
|
|
313
|
+
* * `'link'`
|
|
314
|
+
* * `null`
|
|
315
|
+
*/
|
|
316
|
+
set fillMode(fillMode) {
|
|
317
|
+
this.handleClasses(fillMode, 'fillMode');
|
|
318
|
+
this._fillMode = fillMode;
|
|
319
|
+
}
|
|
320
|
+
get fillMode() {
|
|
321
|
+
return this._fillMode;
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* The Button allows you to specify predefined theme colors.
|
|
325
|
+
* The theme color will be applied as a background and border color while also amending the text color accordingly
|
|
326
|
+
* ([see example]({% slug appearance_buttondirective %}#toc-themeColor)).
|
|
327
|
+
*
|
|
328
|
+
* The possible values are:
|
|
329
|
+
* * `'base'` (default)
|
|
330
|
+
* * `'primary'`
|
|
331
|
+
* * `'secondary'`
|
|
332
|
+
* * `'tertiary'`
|
|
333
|
+
* * `'info'`
|
|
334
|
+
* * `'success'`
|
|
335
|
+
* * `'warning'`
|
|
336
|
+
* * `'error'`
|
|
337
|
+
* * `'dark'`
|
|
338
|
+
* * `'light`'
|
|
339
|
+
* * `'inverse'`
|
|
340
|
+
*/
|
|
341
|
+
set themeColor(themeColor) {
|
|
342
|
+
this.handleThemeColor(themeColor);
|
|
343
|
+
this._themeColor = themeColor;
|
|
344
|
+
}
|
|
345
|
+
get themeColor() {
|
|
346
|
+
return this._themeColor;
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* The shape property specifies if the Button will form a rectangle or square.
|
|
350
|
+
* ([see example]({% slug appearance_buttondirective %}#toc-shape)).
|
|
351
|
+
*
|
|
352
|
+
* The possible values are:
|
|
353
|
+
* * `'square'`
|
|
354
|
+
* * `'rectangle'` (default)
|
|
355
|
+
*/
|
|
356
|
+
set shape(shape) {
|
|
357
|
+
this.handleClasses(shape, 'shape');
|
|
358
|
+
this._shape = shape;
|
|
359
|
+
}
|
|
360
|
+
get shape() {
|
|
361
|
+
return this._shape;
|
|
362
|
+
}
|
|
190
363
|
set isFocused(isFocused) {
|
|
191
|
-
this.toggleClass('k-
|
|
364
|
+
this.toggleClass('k-focus', isFocused);
|
|
192
365
|
this._focused = isFocused;
|
|
193
366
|
}
|
|
194
367
|
get isFocused() {
|
|
@@ -197,24 +370,9 @@ let ButtonDirective = class ButtonDirective {
|
|
|
197
370
|
get classButton() {
|
|
198
371
|
return true;
|
|
199
372
|
}
|
|
200
|
-
get classPrimary() {
|
|
201
|
-
return this.primary;
|
|
202
|
-
}
|
|
203
373
|
get isToggleable() {
|
|
204
374
|
return this.toggleable;
|
|
205
375
|
}
|
|
206
|
-
get isFlat() {
|
|
207
|
-
return this.look === 'flat';
|
|
208
|
-
}
|
|
209
|
-
get isBare() {
|
|
210
|
-
return this.look === 'bare';
|
|
211
|
-
}
|
|
212
|
-
get isOutline() {
|
|
213
|
-
return this.look === 'outline';
|
|
214
|
-
}
|
|
215
|
-
get isClear() {
|
|
216
|
-
return this.look === 'clear';
|
|
217
|
-
}
|
|
218
376
|
get roleSetter() {
|
|
219
377
|
return this.role;
|
|
220
378
|
}
|
|
@@ -239,13 +397,28 @@ let ButtonDirective = class ButtonDirective {
|
|
|
239
397
|
onBlur() {
|
|
240
398
|
this.isFocused = false;
|
|
241
399
|
}
|
|
400
|
+
/**
|
|
401
|
+
* @hidden
|
|
402
|
+
*/
|
|
403
|
+
set primary(value) {
|
|
404
|
+
this.themeColor = value ? 'primary' : 'base';
|
|
405
|
+
}
|
|
406
|
+
/**
|
|
407
|
+
* @hidden
|
|
408
|
+
*/
|
|
409
|
+
set look(value) {
|
|
410
|
+
switch (value) {
|
|
411
|
+
case 'default':
|
|
412
|
+
this.fillMode = 'solid';
|
|
413
|
+
break;
|
|
414
|
+
default:
|
|
415
|
+
this.fillMode = value;
|
|
416
|
+
break;
|
|
417
|
+
}
|
|
418
|
+
}
|
|
242
419
|
ngOnInit() {
|
|
243
420
|
const isSpan = this.element.tagName === SPAN_TAG_NAME;
|
|
244
|
-
|
|
245
|
-
this.buttonLookChangeSubscription = this.service.buttonLookChange
|
|
246
|
-
.pipe(filter((look) => look !== 'default'))
|
|
247
|
-
.subscribe((look) => this.look = look);
|
|
248
|
-
}
|
|
421
|
+
this.addTextSpan();
|
|
249
422
|
if (!this.element.hasAttribute('role') && this.togglable) {
|
|
250
423
|
this.toggleAriaPressed(this.toggleable);
|
|
251
424
|
}
|
|
@@ -255,7 +428,8 @@ let ButtonDirective = class ButtonDirective {
|
|
|
255
428
|
this.ngZone.runOutsideAngular(() => {
|
|
256
429
|
this.domEvents.push(this.renderer.listen(this.element, 'click', this._onButtonClick.bind(this)));
|
|
257
430
|
this.domEvents.push(this.renderer.listen(this.element, 'keydown', (event) => {
|
|
258
|
-
|
|
431
|
+
const isSpaceOrEnter = event.keyCode === Keys.Space || event.keyCode === Keys.Enter;
|
|
432
|
+
if (isSpan && isSpaceOrEnter) {
|
|
259
433
|
this.click.emit(event);
|
|
260
434
|
this._onButtonClick();
|
|
261
435
|
}
|
|
@@ -267,17 +441,21 @@ let ButtonDirective = class ButtonDirective {
|
|
|
267
441
|
this.toggleAriaPressed(this.toggleable);
|
|
268
442
|
}
|
|
269
443
|
}
|
|
444
|
+
ngAfterViewInit() {
|
|
445
|
+
const stylingOptions = ['size', 'rounded', 'shape', 'fillMode'];
|
|
446
|
+
stylingOptions.forEach(input => {
|
|
447
|
+
this.handleClasses(this[input], input);
|
|
448
|
+
});
|
|
449
|
+
}
|
|
270
450
|
ngAfterViewChecked() {
|
|
271
451
|
this.setIconTextClasses();
|
|
272
452
|
}
|
|
273
453
|
ngOnDestroy() {
|
|
274
454
|
this.imageNode = null;
|
|
275
455
|
this.iconNode = null;
|
|
456
|
+
this.iconSpanNode = null;
|
|
276
457
|
this.renderer = null;
|
|
277
458
|
this.localizationChangeSubscription.unsubscribe();
|
|
278
|
-
if (this.service && this.buttonLookChangeSubscription) {
|
|
279
|
-
this.buttonLookChangeSubscription.unsubscribe();
|
|
280
|
-
}
|
|
281
459
|
clearTimeout(this.deferTimeout);
|
|
282
460
|
this.domEvents.forEach(unbindHandler => unbindHandler());
|
|
283
461
|
}
|
|
@@ -320,7 +498,7 @@ let ButtonDirective = class ButtonDirective {
|
|
|
320
498
|
const changed = this.selected !== value;
|
|
321
499
|
this.selected = value;
|
|
322
500
|
this.setAttribute('aria-pressed', this.selected.toString());
|
|
323
|
-
this.toggleClass('k-
|
|
501
|
+
this.toggleClass('k-selected', this.selected);
|
|
324
502
|
if (changed && hasObservers(this.selectedChange)) {
|
|
325
503
|
this.ngZone.run(() => {
|
|
326
504
|
this.selectedChange.emit(value);
|
|
@@ -340,14 +518,21 @@ let ButtonDirective = class ButtonDirective {
|
|
|
340
518
|
}
|
|
341
519
|
hasText() {
|
|
342
520
|
if (isDocumentAvailable()) {
|
|
343
|
-
return
|
|
521
|
+
return this.element.textContent.trim().length > 0;
|
|
344
522
|
}
|
|
345
523
|
else {
|
|
346
524
|
return false;
|
|
347
525
|
}
|
|
348
526
|
}
|
|
527
|
+
get text() {
|
|
528
|
+
if (isDocumentAvailable()) {
|
|
529
|
+
return this.element.innerHTML.trim();
|
|
530
|
+
}
|
|
531
|
+
}
|
|
349
532
|
addImgIcon(imageUrl) {
|
|
350
533
|
let renderer = this.renderer;
|
|
534
|
+
this.iconSpanNode = renderer.createElement('span');
|
|
535
|
+
renderer.setProperty(this.iconSpanNode, 'className', 'k-button-icon k-icon');
|
|
351
536
|
if (this.imageNode) {
|
|
352
537
|
renderer.setProperty(this.imageNode, 'src', imageUrl);
|
|
353
538
|
}
|
|
@@ -356,8 +541,9 @@ let ButtonDirective = class ButtonDirective {
|
|
|
356
541
|
renderer.setProperty(this.imageNode, 'src', imageUrl);
|
|
357
542
|
renderer.setProperty(this.imageNode, 'className', 'k-image');
|
|
358
543
|
renderer.setAttribute(this.imageNode, 'role', 'presentation');
|
|
359
|
-
this.prependChild(this.imageNode);
|
|
360
544
|
}
|
|
545
|
+
this.iconSpanNode.appendChild(this.imageNode);
|
|
546
|
+
this.prependChild(this.iconSpanNode);
|
|
361
547
|
}
|
|
362
548
|
addIcon(classNames) {
|
|
363
549
|
let renderer = this.renderer;
|
|
@@ -371,6 +557,11 @@ let ButtonDirective = class ButtonDirective {
|
|
|
371
557
|
this.prependChild(this.iconNode);
|
|
372
558
|
}
|
|
373
559
|
}
|
|
560
|
+
addTextSpan() {
|
|
561
|
+
if (isDocumentAvailable() && this.hasText()) {
|
|
562
|
+
this.element.innerHTML = `<span class='k-button-text'>${this.text}</span>`;
|
|
563
|
+
}
|
|
564
|
+
}
|
|
374
565
|
prependChild(node) {
|
|
375
566
|
this.defer(() => {
|
|
376
567
|
if (this.renderer && node !== this.element.firstChild) {
|
|
@@ -392,7 +583,9 @@ let ButtonDirective = class ButtonDirective {
|
|
|
392
583
|
removeImageNode() {
|
|
393
584
|
if (this.imageNode && this.renderer.parentNode(this.imageNode)) {
|
|
394
585
|
this.renderer.removeChild(this.element, this.imageNode);
|
|
586
|
+
this.renderer.removeChild(this.element, this.iconSpanNode);
|
|
395
587
|
this.imageNode = null;
|
|
588
|
+
this.iconSpanNode = null;
|
|
396
589
|
}
|
|
397
590
|
}
|
|
398
591
|
removeIconNode() {
|
|
@@ -400,6 +593,10 @@ let ButtonDirective = class ButtonDirective {
|
|
|
400
593
|
this.renderer.removeChild(this.element, this.iconNode);
|
|
401
594
|
this.iconNode = null;
|
|
402
595
|
}
|
|
596
|
+
if (this.iconSpanNode) {
|
|
597
|
+
this.renderer.removeChild(this.element, this.iconSpanNode);
|
|
598
|
+
this.iconSpanNode = null;
|
|
599
|
+
}
|
|
403
600
|
}
|
|
404
601
|
updateIconNode() {
|
|
405
602
|
if (!this.isIcon && !this.isIconClass) {
|
|
@@ -408,9 +605,7 @@ let ButtonDirective = class ButtonDirective {
|
|
|
408
605
|
}
|
|
409
606
|
setIconTextClasses() {
|
|
410
607
|
const hasIcon = this.isIcon || this.isIconClass || this.imageNode;
|
|
411
|
-
|
|
412
|
-
this.toggleClass('k-button-icon', hasIcon && !hasText);
|
|
413
|
-
this.toggleClass('k-button-icontext', hasIcon && hasText);
|
|
608
|
+
this.toggleClass('k-icon-button', hasIcon && !this.hasText());
|
|
414
609
|
}
|
|
415
610
|
toggleClass(className, add) {
|
|
416
611
|
if (add) {
|
|
@@ -430,6 +625,31 @@ let ButtonDirective = class ButtonDirective {
|
|
|
430
625
|
this.setSelected(!this.selected);
|
|
431
626
|
}
|
|
432
627
|
}
|
|
628
|
+
handleClasses(value, input) {
|
|
629
|
+
const elem = this.element;
|
|
630
|
+
const classes = getStylingClasses('button', input, this[input], value);
|
|
631
|
+
if (input === 'fillMode') {
|
|
632
|
+
this.handleThemeColor(this.themeColor, this[input], value);
|
|
633
|
+
}
|
|
634
|
+
if (classes.toRemove) {
|
|
635
|
+
this.renderer.removeClass(elem, classes.toRemove);
|
|
636
|
+
}
|
|
637
|
+
if (classes.toAdd) {
|
|
638
|
+
this.renderer.addClass(elem, classes.toAdd);
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
handleThemeColor(value, prevFillMode, fillMode) {
|
|
642
|
+
const elem = this.element;
|
|
643
|
+
const removeFillMode = prevFillMode ? prevFillMode : this.fillMode;
|
|
644
|
+
const addFillMode = fillMode ? fillMode : this.fillMode;
|
|
645
|
+
const themeColorClass = getThemeColorClasses('button', removeFillMode, addFillMode, this.themeColor, value);
|
|
646
|
+
this.renderer.removeClass(elem, themeColorClass.toRemove);
|
|
647
|
+
if (addFillMode !== null && fillMode !== null) {
|
|
648
|
+
if (themeColorClass.toAdd) {
|
|
649
|
+
this.renderer.addClass(elem, themeColorClass.toAdd);
|
|
650
|
+
}
|
|
651
|
+
}
|
|
652
|
+
}
|
|
433
653
|
};
|
|
434
654
|
__decorate([
|
|
435
655
|
Input(),
|
|
@@ -440,14 +660,6 @@ __decorate([
|
|
|
440
660
|
__metadata("design:type", Boolean),
|
|
441
661
|
__metadata("design:paramtypes", [Boolean])
|
|
442
662
|
], ButtonDirective.prototype, "togglable", null);
|
|
443
|
-
__decorate([
|
|
444
|
-
Input(),
|
|
445
|
-
__metadata("design:type", Boolean)
|
|
446
|
-
], ButtonDirective.prototype, "primary", void 0);
|
|
447
|
-
__decorate([
|
|
448
|
-
Input(),
|
|
449
|
-
__metadata("design:type", String)
|
|
450
|
-
], ButtonDirective.prototype, "look", void 0);
|
|
451
663
|
__decorate([
|
|
452
664
|
Input(),
|
|
453
665
|
__metadata("design:type", Boolean),
|
|
@@ -478,6 +690,31 @@ __decorate([
|
|
|
478
690
|
__metadata("design:type", Boolean),
|
|
479
691
|
__metadata("design:paramtypes", [Boolean])
|
|
480
692
|
], ButtonDirective.prototype, "disabled", null);
|
|
693
|
+
__decorate([
|
|
694
|
+
Input(),
|
|
695
|
+
__metadata("design:type", String),
|
|
696
|
+
__metadata("design:paramtypes", [String])
|
|
697
|
+
], ButtonDirective.prototype, "size", null);
|
|
698
|
+
__decorate([
|
|
699
|
+
Input(),
|
|
700
|
+
__metadata("design:type", String),
|
|
701
|
+
__metadata("design:paramtypes", [String])
|
|
702
|
+
], ButtonDirective.prototype, "rounded", null);
|
|
703
|
+
__decorate([
|
|
704
|
+
Input(),
|
|
705
|
+
__metadata("design:type", String),
|
|
706
|
+
__metadata("design:paramtypes", [String])
|
|
707
|
+
], ButtonDirective.prototype, "fillMode", null);
|
|
708
|
+
__decorate([
|
|
709
|
+
Input(),
|
|
710
|
+
__metadata("design:type", String),
|
|
711
|
+
__metadata("design:paramtypes", [String])
|
|
712
|
+
], ButtonDirective.prototype, "themeColor", null);
|
|
713
|
+
__decorate([
|
|
714
|
+
Input(),
|
|
715
|
+
__metadata("design:type", String),
|
|
716
|
+
__metadata("design:paramtypes", [String])
|
|
717
|
+
], ButtonDirective.prototype, "shape", null);
|
|
481
718
|
__decorate([
|
|
482
719
|
Input(),
|
|
483
720
|
__metadata("design:type", String)
|
|
@@ -495,36 +732,11 @@ __decorate([
|
|
|
495
732
|
__metadata("design:type", Boolean),
|
|
496
733
|
__metadata("design:paramtypes", [])
|
|
497
734
|
], ButtonDirective.prototype, "classButton", null);
|
|
498
|
-
__decorate([
|
|
499
|
-
HostBinding('class.k-primary'),
|
|
500
|
-
__metadata("design:type", Boolean),
|
|
501
|
-
__metadata("design:paramtypes", [])
|
|
502
|
-
], ButtonDirective.prototype, "classPrimary", null);
|
|
503
735
|
__decorate([
|
|
504
736
|
HostBinding('class.k-toggle-button'),
|
|
505
737
|
__metadata("design:type", Boolean),
|
|
506
738
|
__metadata("design:paramtypes", [])
|
|
507
739
|
], ButtonDirective.prototype, "isToggleable", null);
|
|
508
|
-
__decorate([
|
|
509
|
-
HostBinding('class.k-flat'),
|
|
510
|
-
__metadata("design:type", Boolean),
|
|
511
|
-
__metadata("design:paramtypes", [])
|
|
512
|
-
], ButtonDirective.prototype, "isFlat", null);
|
|
513
|
-
__decorate([
|
|
514
|
-
HostBinding('class.k-bare'),
|
|
515
|
-
__metadata("design:type", Boolean),
|
|
516
|
-
__metadata("design:paramtypes", [])
|
|
517
|
-
], ButtonDirective.prototype, "isBare", null);
|
|
518
|
-
__decorate([
|
|
519
|
-
HostBinding('class.k-outline'),
|
|
520
|
-
__metadata("design:type", Boolean),
|
|
521
|
-
__metadata("design:paramtypes", [])
|
|
522
|
-
], ButtonDirective.prototype, "isOutline", null);
|
|
523
|
-
__decorate([
|
|
524
|
-
HostBinding('class.k-button-clear'),
|
|
525
|
-
__metadata("design:type", Boolean),
|
|
526
|
-
__metadata("design:paramtypes", [])
|
|
527
|
-
], ButtonDirective.prototype, "isClear", null);
|
|
528
740
|
__decorate([
|
|
529
741
|
HostBinding('attr.role'),
|
|
530
742
|
__metadata("design:type", String),
|
|
@@ -532,12 +744,12 @@ __decorate([
|
|
|
532
744
|
], ButtonDirective.prototype, "roleSetter", null);
|
|
533
745
|
__decorate([
|
|
534
746
|
HostBinding('attr.aria-disabled'),
|
|
535
|
-
HostBinding('class.k-
|
|
747
|
+
HostBinding('class.k-disabled'),
|
|
536
748
|
__metadata("design:type", Boolean),
|
|
537
749
|
__metadata("design:paramtypes", [])
|
|
538
750
|
], ButtonDirective.prototype, "classDisabled", null);
|
|
539
751
|
__decorate([
|
|
540
|
-
HostBinding('class.k-
|
|
752
|
+
HostBinding('class.k-selected'),
|
|
541
753
|
__metadata("design:type", Boolean),
|
|
542
754
|
__metadata("design:paramtypes", [])
|
|
543
755
|
], ButtonDirective.prototype, "classActive", null);
|
|
@@ -558,6 +770,16 @@ __decorate([
|
|
|
558
770
|
__metadata("design:paramtypes", []),
|
|
559
771
|
__metadata("design:returntype", void 0)
|
|
560
772
|
], ButtonDirective.prototype, "onBlur", null);
|
|
773
|
+
__decorate([
|
|
774
|
+
Input(),
|
|
775
|
+
__metadata("design:type", Boolean),
|
|
776
|
+
__metadata("design:paramtypes", [Boolean])
|
|
777
|
+
], ButtonDirective.prototype, "primary", null);
|
|
778
|
+
__decorate([
|
|
779
|
+
Input(),
|
|
780
|
+
__metadata("design:type", String),
|
|
781
|
+
__metadata("design:paramtypes", [String])
|
|
782
|
+
], ButtonDirective.prototype, "look", null);
|
|
561
783
|
ButtonDirective = __decorate([
|
|
562
784
|
Directive({
|
|
563
785
|
exportAs: 'kendoButton',
|
|
@@ -568,7 +790,7 @@ ButtonDirective = __decorate([
|
|
|
568
790
|
useValue: 'kendo.button'
|
|
569
791
|
}
|
|
570
792
|
],
|
|
571
|
-
selector: 'button[kendoButton], span[kendoButton]'
|
|
793
|
+
selector: 'button[kendoButton], span[kendoButton]',
|
|
572
794
|
}),
|
|
573
795
|
__param(2, Optional()),
|
|
574
796
|
__metadata("design:paramtypes", [ElementRef,
|
|
@@ -578,46 +800,6 @@ ButtonDirective = __decorate([
|
|
|
578
800
|
NgZone])
|
|
579
801
|
], ButtonDirective);
|
|
580
802
|
|
|
581
|
-
/* tslint:disable:no-null-keyword */
|
|
582
|
-
/* tslint:disable:no-bitwise */
|
|
583
|
-
const resolvedPromise = Promise.resolve(null);
|
|
584
|
-
/**
|
|
585
|
-
* @hidden
|
|
586
|
-
*/
|
|
587
|
-
const isPresent = (value) => value !== null && value !== undefined;
|
|
588
|
-
/**
|
|
589
|
-
* @hidden
|
|
590
|
-
*/
|
|
591
|
-
const tick = (f) => (resolvedPromise.then(f));
|
|
592
|
-
/**
|
|
593
|
-
* @hidden
|
|
594
|
-
*/
|
|
595
|
-
function isDocumentNode(container) {
|
|
596
|
-
return container.nodeType === 9;
|
|
597
|
-
}
|
|
598
|
-
/**
|
|
599
|
-
* @hidden
|
|
600
|
-
*/
|
|
601
|
-
function closest(element, selector) {
|
|
602
|
-
if (element.closest) {
|
|
603
|
-
return element.closest(selector);
|
|
604
|
-
}
|
|
605
|
-
const matches = Element.prototype.matches ?
|
|
606
|
-
(el, sel) => el.matches(sel)
|
|
607
|
-
: (el, sel) => el.msMatchesSelector(sel);
|
|
608
|
-
let node = element;
|
|
609
|
-
while (node && !isDocumentNode(node)) {
|
|
610
|
-
if (matches(node, selector)) {
|
|
611
|
-
return node;
|
|
612
|
-
}
|
|
613
|
-
node = node.parentNode;
|
|
614
|
-
}
|
|
615
|
-
}
|
|
616
|
-
/**
|
|
617
|
-
* @hidden
|
|
618
|
-
*/
|
|
619
|
-
const replaceMessagePlaceholder = (message, name, value) => message.replace(new RegExp(`\{\\s*${name}\\s*\}`, 'g'), value);
|
|
620
|
-
|
|
621
803
|
/**
|
|
622
804
|
* @hidden
|
|
623
805
|
*/
|
|
@@ -657,23 +839,13 @@ let ButtonGroupComponent = class ButtonGroupComponent {
|
|
|
657
839
|
* By default, the selection mode of the ButtonGroup is set to `multiple`.
|
|
658
840
|
*/
|
|
659
841
|
this.selection = 'multiple';
|
|
660
|
-
/**
|
|
661
|
-
* Changes the visual appearance by using alternative styling options
|
|
662
|
-
* ([more information and examples]({% slug styling_buttongroup %})).
|
|
663
|
-
* The `look` property of the ButtonGroup takes precedence over the `look` property
|
|
664
|
-
* of the individual buttons that are part of the group.
|
|
665
|
-
*
|
|
666
|
-
* The available values are:
|
|
667
|
-
* * `flat`
|
|
668
|
-
* * `outline`
|
|
669
|
-
*/
|
|
670
|
-
this.look = 'default';
|
|
671
842
|
/**
|
|
672
843
|
* Fires every time keyboard navigation occurs.
|
|
673
844
|
*/
|
|
674
845
|
this.navigate = new EventEmitter();
|
|
675
846
|
this._tabIndex = 0;
|
|
676
847
|
this.currentTabIndex = 0;
|
|
848
|
+
validatePackage(packageMetadata);
|
|
677
849
|
this.localizationChangeSubscription = localization.changes.subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr');
|
|
678
850
|
}
|
|
679
851
|
/**
|
|
@@ -695,15 +867,6 @@ let ButtonGroupComponent = class ButtonGroupComponent {
|
|
|
695
867
|
get stretchedClass() {
|
|
696
868
|
return !!this.width;
|
|
697
869
|
}
|
|
698
|
-
get isFlat() {
|
|
699
|
-
return this.look === 'flat';
|
|
700
|
-
}
|
|
701
|
-
get isBare() {
|
|
702
|
-
return this.look === 'bare';
|
|
703
|
-
}
|
|
704
|
-
get isOutline() {
|
|
705
|
-
return this.look === 'outline';
|
|
706
|
-
}
|
|
707
870
|
get getRole() {
|
|
708
871
|
return this.isSelectionSingle() ? 'radiogroup' : 'group';
|
|
709
872
|
}
|
|
@@ -748,7 +911,6 @@ let ButtonGroupComponent = class ButtonGroupComponent {
|
|
|
748
911
|
}
|
|
749
912
|
}
|
|
750
913
|
ngOnInit() {
|
|
751
|
-
this.service.setButtonLook(this.look);
|
|
752
914
|
this.subscription = this.service.buttonClicked$.subscribe((button) => {
|
|
753
915
|
let newSelectionValue;
|
|
754
916
|
if (this.isSelectionSingle()) {
|
|
@@ -762,7 +924,7 @@ let ButtonGroupComponent = class ButtonGroupComponent {
|
|
|
762
924
|
if (button.togglable) {
|
|
763
925
|
button.setSelected(newSelectionValue);
|
|
764
926
|
}
|
|
765
|
-
button.setAttribute(tabindex,
|
|
927
|
+
button.setAttribute(tabindex, '0');
|
|
766
928
|
});
|
|
767
929
|
}
|
|
768
930
|
ngOnChanges(change) {
|
|
@@ -777,10 +939,10 @@ let ButtonGroupComponent = class ButtonGroupComponent {
|
|
|
777
939
|
ngAfterContentInit() {
|
|
778
940
|
this.buttons.forEach((button) => {
|
|
779
941
|
if (button.selected) {
|
|
780
|
-
button.setAttribute(tabindex,
|
|
942
|
+
button.setAttribute(tabindex, '0');
|
|
781
943
|
}
|
|
782
944
|
else {
|
|
783
|
-
button.setAttribute(tabindex,
|
|
945
|
+
button.setAttribute(tabindex, '-1');
|
|
784
946
|
}
|
|
785
947
|
});
|
|
786
948
|
}
|
|
@@ -824,24 +986,24 @@ let ButtonGroupComponent = class ButtonGroupComponent {
|
|
|
824
986
|
deactivate(buttons) {
|
|
825
987
|
buttons.forEach((button) => {
|
|
826
988
|
button.setSelected(false);
|
|
827
|
-
button.setAttribute(tabindex,
|
|
989
|
+
button.setAttribute(tabindex, '-1');
|
|
828
990
|
});
|
|
829
991
|
}
|
|
830
992
|
activate(buttons) {
|
|
831
993
|
buttons.forEach((button) => {
|
|
832
994
|
button.setSelected(true);
|
|
833
|
-
button.setAttribute(tabindex,
|
|
995
|
+
button.setAttribute(tabindex, '0');
|
|
834
996
|
button.focus();
|
|
835
997
|
});
|
|
836
998
|
}
|
|
837
999
|
defocus(buttons) {
|
|
838
1000
|
buttons.forEach((button) => {
|
|
839
|
-
button.setAttribute(tabindex,
|
|
1001
|
+
button.setAttribute(tabindex, '-1');
|
|
840
1002
|
});
|
|
841
1003
|
}
|
|
842
1004
|
focus(buttons) {
|
|
843
1005
|
buttons.forEach((button) => {
|
|
844
|
-
button.setAttribute(tabindex,
|
|
1006
|
+
button.setAttribute(tabindex, '0');
|
|
845
1007
|
button.focus();
|
|
846
1008
|
});
|
|
847
1009
|
}
|
|
@@ -868,10 +1030,6 @@ __decorate([
|
|
|
868
1030
|
Input('width'),
|
|
869
1031
|
__metadata("design:type", String)
|
|
870
1032
|
], ButtonGroupComponent.prototype, "width", void 0);
|
|
871
|
-
__decorate([
|
|
872
|
-
Input(),
|
|
873
|
-
__metadata("design:type", String)
|
|
874
|
-
], ButtonGroupComponent.prototype, "look", void 0);
|
|
875
1033
|
__decorate([
|
|
876
1034
|
Input(),
|
|
877
1035
|
__metadata("design:type", Number),
|
|
@@ -891,7 +1049,7 @@ __decorate([
|
|
|
891
1049
|
__metadata("design:paramtypes", [])
|
|
892
1050
|
], ButtonGroupComponent.prototype, "wrapperClass", null);
|
|
893
1051
|
__decorate([
|
|
894
|
-
HostBinding('class.k-
|
|
1052
|
+
HostBinding('class.k-disabled'),
|
|
895
1053
|
__metadata("design:type", Boolean),
|
|
896
1054
|
__metadata("design:paramtypes", [])
|
|
897
1055
|
], ButtonGroupComponent.prototype, "disabledClass", null);
|
|
@@ -900,21 +1058,6 @@ __decorate([
|
|
|
900
1058
|
__metadata("design:type", Boolean),
|
|
901
1059
|
__metadata("design:paramtypes", [])
|
|
902
1060
|
], ButtonGroupComponent.prototype, "stretchedClass", null);
|
|
903
|
-
__decorate([
|
|
904
|
-
HostBinding('class.k-button-group-flat'),
|
|
905
|
-
__metadata("design:type", Boolean),
|
|
906
|
-
__metadata("design:paramtypes", [])
|
|
907
|
-
], ButtonGroupComponent.prototype, "isFlat", null);
|
|
908
|
-
__decorate([
|
|
909
|
-
HostBinding('class.k-button-group-bare'),
|
|
910
|
-
__metadata("design:type", Boolean),
|
|
911
|
-
__metadata("design:paramtypes", [])
|
|
912
|
-
], ButtonGroupComponent.prototype, "isBare", null);
|
|
913
|
-
__decorate([
|
|
914
|
-
HostBinding('class.k-button-group-outline'),
|
|
915
|
-
__metadata("design:type", Boolean),
|
|
916
|
-
__metadata("design:paramtypes", [])
|
|
917
|
-
], ButtonGroupComponent.prototype, "isOutline", null);
|
|
918
1061
|
__decorate([
|
|
919
1062
|
HostBinding('attr.role'),
|
|
920
1063
|
__metadata("design:type", String),
|
|
@@ -1104,8 +1247,17 @@ let ListComponent = class ListComponent {
|
|
|
1104
1247
|
constructor() {
|
|
1105
1248
|
this.onItemClick = new EventEmitter();
|
|
1106
1249
|
this.onItemBlur = new EventEmitter();
|
|
1250
|
+
this.sizeClass = '';
|
|
1107
1251
|
validatePackage(packageMetadata);
|
|
1108
1252
|
}
|
|
1253
|
+
set size(size) {
|
|
1254
|
+
if (size) {
|
|
1255
|
+
this.sizeClass = `k-menu-group-${SIZES[size]}`;
|
|
1256
|
+
}
|
|
1257
|
+
else {
|
|
1258
|
+
this.sizeClass = '';
|
|
1259
|
+
}
|
|
1260
|
+
}
|
|
1109
1261
|
getText(dataItem) {
|
|
1110
1262
|
if (dataItem) {
|
|
1111
1263
|
return this.textField ? dataItem[this.textField] : dataItem.text || dataItem;
|
|
@@ -1145,37 +1297,44 @@ __decorate([
|
|
|
1145
1297
|
Output(),
|
|
1146
1298
|
__metadata("design:type", EventEmitter)
|
|
1147
1299
|
], ListComponent.prototype, "onItemBlur", void 0);
|
|
1300
|
+
__decorate([
|
|
1301
|
+
Input(),
|
|
1302
|
+
__metadata("design:type", String),
|
|
1303
|
+
__metadata("design:paramtypes", [String])
|
|
1304
|
+
], ListComponent.prototype, "size", null);
|
|
1148
1305
|
ListComponent = __decorate([
|
|
1149
1306
|
Component({
|
|
1150
1307
|
selector: 'kendo-button-list',
|
|
1151
1308
|
template: `
|
|
1152
|
-
<ul class="k-
|
|
1153
|
-
<li role="menuitem" unselectable="on"
|
|
1309
|
+
<ul class="k-group k-menu-group k-reset" [ngClass]="sizeClass" unselectable="on" role="menu">
|
|
1310
|
+
<li role="menuitem" unselectable="on"
|
|
1154
1311
|
kendoButtonFocusable
|
|
1155
1312
|
*ngFor="let dataItem of data; let index = index;"
|
|
1156
|
-
|
|
1157
|
-
[ngClass]="{'k-item': true, 'k-state-disabled': dataItem.disabled}"
|
|
1313
|
+
class="k-item k-menu-item"
|
|
1158
1314
|
(click)="onClick(index)"
|
|
1159
1315
|
(blur)="onBlur()"
|
|
1160
1316
|
[attr.aria-disabled]="dataItem.disabled ? true : false">
|
|
1161
|
-
<ng-template
|
|
1162
|
-
[
|
|
1163
|
-
templateRef: itemTemplate?.templateRef,
|
|
1164
|
-
|
|
1165
|
-
}">
|
|
1317
|
+
<ng-template [ngIf]="itemTemplate?.templateRef">
|
|
1318
|
+
<span kendoButtonFocusable [index]="index" class="k-link k-menu-link" [class.k-disabled]="dataItem.disabled" tabindex="-1">
|
|
1319
|
+
<ng-template [templateContext]="{templateRef: itemTemplate?.templateRef, $implicit: dataItem}"></ng-template>
|
|
1320
|
+
</span>
|
|
1166
1321
|
</ng-template>
|
|
1167
1322
|
<ng-template [ngIf]="!itemTemplate?.templateRef">
|
|
1168
|
-
<span
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1323
|
+
<span kendoButtonFocusable [index]="index" class="k-link k-menu-link" [class.k-disabled]="dataItem.disabled" tabindex="-1">
|
|
1324
|
+
<span
|
|
1325
|
+
*ngIf="dataItem.icon || dataItem.iconClass"
|
|
1326
|
+
[ngClass]="getIconClasses(dataItem)"
|
|
1327
|
+
></span>
|
|
1328
|
+
<img
|
|
1329
|
+
*ngIf="dataItem.imageUrl"
|
|
1330
|
+
class="k-image"
|
|
1331
|
+
[src]="dataItem.imageUrl"
|
|
1332
|
+
alt=""
|
|
1333
|
+
>
|
|
1334
|
+
<span *ngIf="getText(dataItem)" class="k-menu-link-text">
|
|
1335
|
+
{{ getText(dataItem) }}
|
|
1336
|
+
</span>
|
|
1337
|
+
</span>
|
|
1179
1338
|
</ng-template>
|
|
1180
1339
|
</li>
|
|
1181
1340
|
</ul>
|
|
@@ -1231,10 +1390,10 @@ let FocusableDirective = class FocusableDirective {
|
|
|
1231
1390
|
}
|
|
1232
1391
|
ngOnInit() {
|
|
1233
1392
|
if (this.index === this.focusService.focused) {
|
|
1234
|
-
this.renderer.addClass(this.element, 'k-
|
|
1393
|
+
this.renderer.addClass(this.element, 'k-focus');
|
|
1235
1394
|
}
|
|
1236
1395
|
else {
|
|
1237
|
-
this.renderer.removeClass(this.element, 'k-
|
|
1396
|
+
this.renderer.removeClass(this.element, 'k-focus');
|
|
1238
1397
|
}
|
|
1239
1398
|
}
|
|
1240
1399
|
/**
|
|
@@ -1249,11 +1408,11 @@ let FocusableDirective = class FocusableDirective {
|
|
|
1249
1408
|
}
|
|
1250
1409
|
this.focusSubscription = this.focusService.onFocus.subscribe((index) => {
|
|
1251
1410
|
if (this.index === index) {
|
|
1252
|
-
this.renderer.addClass(this.element, 'k-
|
|
1411
|
+
this.renderer.addClass(this.element, 'k-focus');
|
|
1253
1412
|
this.element.focus();
|
|
1254
1413
|
}
|
|
1255
1414
|
else {
|
|
1256
|
-
this.renderer.removeClass(this.element, 'k-
|
|
1415
|
+
this.renderer.removeClass(this.element, 'k-focus');
|
|
1257
1416
|
}
|
|
1258
1417
|
});
|
|
1259
1418
|
}
|
|
@@ -1368,6 +1527,7 @@ class ListButton {
|
|
|
1368
1527
|
this._popupSettings = { animate: true, popupClass: '' };
|
|
1369
1528
|
this.listId = guid();
|
|
1370
1529
|
this._isFocused = false;
|
|
1530
|
+
validatePackage(packageMetadata);
|
|
1371
1531
|
this.focusService = focusService;
|
|
1372
1532
|
this.navigationService = navigationService;
|
|
1373
1533
|
this.wrapper = wrapperRef.nativeElement;
|
|
@@ -1375,7 +1535,7 @@ class ListButton {
|
|
|
1375
1535
|
this.subscribeEvents();
|
|
1376
1536
|
}
|
|
1377
1537
|
get popupClasses() {
|
|
1378
|
-
const popupClasses = ['k-
|
|
1538
|
+
const popupClasses = ['k-menu-popup'];
|
|
1379
1539
|
if (this._popupSettings.popupClass) {
|
|
1380
1540
|
popupClasses.push(this._popupSettings.popupClass);
|
|
1381
1541
|
}
|
|
@@ -1719,11 +1879,12 @@ const NAVIGATION_SETTINGS_PROVIDER = {
|
|
|
1719
1879
|
* ```
|
|
1720
1880
|
*/
|
|
1721
1881
|
let SplitButtonComponent = class SplitButtonComponent extends ListButton {
|
|
1722
|
-
constructor(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization, cdr) {
|
|
1882
|
+
constructor(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization, cdr, renderer) {
|
|
1723
1883
|
super(focusService, navigationService, wrapperRef, zone, localization, cdr);
|
|
1724
1884
|
this.popupService = popupService;
|
|
1725
1885
|
this.elRef = elRef;
|
|
1726
1886
|
this.localization = localization;
|
|
1887
|
+
this.renderer = renderer;
|
|
1727
1888
|
/**
|
|
1728
1889
|
* Sets the text of the SplitButton.
|
|
1729
1890
|
*/
|
|
@@ -1748,13 +1909,35 @@ let SplitButtonComponent = class SplitButtonComponent extends ListButton {
|
|
|
1748
1909
|
*/
|
|
1749
1910
|
this.imageUrl = '';
|
|
1750
1911
|
/**
|
|
1751
|
-
*
|
|
1912
|
+
* The size property specifies the width and height of the SplitButton
|
|
1913
|
+
* ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-size)).
|
|
1752
1914
|
*
|
|
1753
|
-
* The
|
|
1754
|
-
* * `
|
|
1755
|
-
* * `
|
|
1915
|
+
* The possible values are:
|
|
1916
|
+
* * `'small'`
|
|
1917
|
+
* * `'medium'` (default)
|
|
1918
|
+
* * `'large'`
|
|
1919
|
+
* * `null`
|
|
1920
|
+
*/
|
|
1921
|
+
this.size = 'medium';
|
|
1922
|
+
/**
|
|
1923
|
+
* The SplitButton allows you to specify predefined theme colors.
|
|
1924
|
+
* The theme color will be applied as a background and border color while also amending the text color accordingly
|
|
1925
|
+
* ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-themeColor)).
|
|
1926
|
+
*
|
|
1927
|
+
* The possible values are:
|
|
1928
|
+
* * `base` —Applies coloring based on the `base` theme color. (default)
|
|
1929
|
+
* * `primary` —Applies coloring based on the `primary` theme color.
|
|
1930
|
+
* * `secondary`—Applies coloring based on the `secondary` theme color.
|
|
1931
|
+
* * `tertiary`— Applies coloring based on the `tertiary` theme color.
|
|
1932
|
+
* * `info`—Applies coloring based on the `info` theme color.
|
|
1933
|
+
* * `success`— Applies coloring based on the `success` theme color.
|
|
1934
|
+
* * `warning`— Applies coloring based on the `warning` theme color.
|
|
1935
|
+
* * `error`— Applies coloring based on the `error` theme color.
|
|
1936
|
+
* * `dark`— Applies coloring based on the `dark` theme color.
|
|
1937
|
+
* * `light`— Applies coloring based on the `light` theme color.
|
|
1938
|
+
* * `inverse`— Applies coloring based on the `inverse` theme color.
|
|
1756
1939
|
*/
|
|
1757
|
-
this.
|
|
1940
|
+
this.themeColor = 'base';
|
|
1758
1941
|
/**
|
|
1759
1942
|
* Specifies the [`tabIndex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.
|
|
1760
1943
|
*/
|
|
@@ -1832,16 +2015,53 @@ let SplitButtonComponent = class SplitButtonComponent extends ListButton {
|
|
|
1832
2015
|
* This event is preventable. If you cancel the event, the popup will remain open.
|
|
1833
2016
|
*/
|
|
1834
2017
|
this.close = new EventEmitter();
|
|
1835
|
-
this.listId = guid();
|
|
1836
2018
|
/**
|
|
1837
2019
|
* @hidden
|
|
1838
2020
|
*/
|
|
1839
2021
|
this.activeArrow = false;
|
|
2022
|
+
this.listId = guid();
|
|
1840
2023
|
this.buttonText = '';
|
|
1841
2024
|
this.lockFocus = false;
|
|
2025
|
+
this._rounded = 'medium';
|
|
2026
|
+
this._fillMode = "solid";
|
|
1842
2027
|
this._itemClick = this.itemClick;
|
|
1843
2028
|
this._blur = this.onBlur;
|
|
1844
2029
|
}
|
|
2030
|
+
/**
|
|
2031
|
+
* The rounded property specifies the border radius of the SplitButton
|
|
2032
|
+
* ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-rounded)).
|
|
2033
|
+
*
|
|
2034
|
+
* The possible values are:
|
|
2035
|
+
* * `'small'`
|
|
2036
|
+
* * `'medium'` (default)
|
|
2037
|
+
* * `'large'`
|
|
2038
|
+
* * `'full'`
|
|
2039
|
+
* * `null`
|
|
2040
|
+
*/
|
|
2041
|
+
set rounded(rounded) {
|
|
2042
|
+
this.handleClasses(rounded, 'rounded');
|
|
2043
|
+
this._rounded = rounded;
|
|
2044
|
+
}
|
|
2045
|
+
get rounded() {
|
|
2046
|
+
return this._rounded;
|
|
2047
|
+
}
|
|
2048
|
+
/**
|
|
2049
|
+
* The fillMode property specifies the background and border styles of the SplitButton
|
|
2050
|
+
* ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-fillMode)).
|
|
2051
|
+
*
|
|
2052
|
+
* The available values are:
|
|
2053
|
+
* * `solid` (default)
|
|
2054
|
+
* * `flat`
|
|
2055
|
+
* * `outline`
|
|
2056
|
+
* * `link`
|
|
2057
|
+
*/
|
|
2058
|
+
set fillMode(fillMode) {
|
|
2059
|
+
// Temporary workaround for missing 'clear' styles
|
|
2060
|
+
this._fillMode = fillMode === 'clear' ? 'flat' : fillMode;
|
|
2061
|
+
}
|
|
2062
|
+
get fillMode() {
|
|
2063
|
+
return this._fillMode;
|
|
2064
|
+
}
|
|
1845
2065
|
/**
|
|
1846
2066
|
* When set to `true`, disables a SplitButton item
|
|
1847
2067
|
* ([see example]({% slug databinding_splitbutton %}#toc-arrays-of-complex-data)).
|
|
@@ -1927,12 +2147,6 @@ let SplitButtonComponent = class SplitButtonComponent extends ListButton {
|
|
|
1927
2147
|
get isFocused() {
|
|
1928
2148
|
return this._isFocused && !this._disabled;
|
|
1929
2149
|
}
|
|
1930
|
-
get isFlat() {
|
|
1931
|
-
return this.look === 'flat';
|
|
1932
|
-
}
|
|
1933
|
-
get isOutline() {
|
|
1934
|
-
return this.look === 'outline';
|
|
1935
|
-
}
|
|
1936
2150
|
get widgetClasses() {
|
|
1937
2151
|
return true;
|
|
1938
2152
|
}
|
|
@@ -2019,6 +2233,7 @@ let SplitButtonComponent = class SplitButtonComponent extends ListButton {
|
|
|
2019
2233
|
*/
|
|
2020
2234
|
ngAfterViewInit() {
|
|
2021
2235
|
this.updateButtonText();
|
|
2236
|
+
this.handleClasses(this.rounded, 'rounded');
|
|
2022
2237
|
}
|
|
2023
2238
|
/**
|
|
2024
2239
|
* @hidden
|
|
@@ -2166,6 +2381,16 @@ let SplitButtonComponent = class SplitButtonComponent extends ListButton {
|
|
|
2166
2381
|
this.popupRef = null;
|
|
2167
2382
|
}
|
|
2168
2383
|
}
|
|
2384
|
+
handleClasses(value, input) {
|
|
2385
|
+
const elem = this.wrapperRef.nativeElement;
|
|
2386
|
+
const classes = getStylingClasses('button', input, this[input], value);
|
|
2387
|
+
if (classes.toRemove) {
|
|
2388
|
+
this.renderer.removeClass(elem, classes.toRemove);
|
|
2389
|
+
}
|
|
2390
|
+
if (classes.toAdd) {
|
|
2391
|
+
this.renderer.addClass(elem, classes.toAdd);
|
|
2392
|
+
}
|
|
2393
|
+
}
|
|
2169
2394
|
};
|
|
2170
2395
|
__decorate([
|
|
2171
2396
|
Input(),
|
|
@@ -2190,7 +2415,21 @@ __decorate([
|
|
|
2190
2415
|
__decorate([
|
|
2191
2416
|
Input(),
|
|
2192
2417
|
__metadata("design:type", String)
|
|
2193
|
-
], SplitButtonComponent.prototype, "
|
|
2418
|
+
], SplitButtonComponent.prototype, "size", void 0);
|
|
2419
|
+
__decorate([
|
|
2420
|
+
Input(),
|
|
2421
|
+
__metadata("design:type", String),
|
|
2422
|
+
__metadata("design:paramtypes", [String])
|
|
2423
|
+
], SplitButtonComponent.prototype, "rounded", null);
|
|
2424
|
+
__decorate([
|
|
2425
|
+
Input(),
|
|
2426
|
+
__metadata("design:type", String),
|
|
2427
|
+
__metadata("design:paramtypes", [String])
|
|
2428
|
+
], SplitButtonComponent.prototype, "fillMode", null);
|
|
2429
|
+
__decorate([
|
|
2430
|
+
Input(),
|
|
2431
|
+
__metadata("design:type", String)
|
|
2432
|
+
], SplitButtonComponent.prototype, "themeColor", void 0);
|
|
2194
2433
|
__decorate([
|
|
2195
2434
|
Input(),
|
|
2196
2435
|
__metadata("design:type", Boolean),
|
|
@@ -2271,20 +2510,10 @@ __decorate([
|
|
|
2271
2510
|
__metadata("design:type", ViewContainerRef)
|
|
2272
2511
|
], SplitButtonComponent.prototype, "containerRef", void 0);
|
|
2273
2512
|
__decorate([
|
|
2274
|
-
HostBinding('class.k-
|
|
2513
|
+
HostBinding('class.k-focus'),
|
|
2275
2514
|
__metadata("design:type", Boolean),
|
|
2276
2515
|
__metadata("design:paramtypes", [Boolean])
|
|
2277
2516
|
], SplitButtonComponent.prototype, "isFocused", null);
|
|
2278
|
-
__decorate([
|
|
2279
|
-
HostBinding('class.k-flat'),
|
|
2280
|
-
__metadata("design:type", Boolean),
|
|
2281
|
-
__metadata("design:paramtypes", [])
|
|
2282
|
-
], SplitButtonComponent.prototype, "isFlat", null);
|
|
2283
|
-
__decorate([
|
|
2284
|
-
HostBinding('class.k-outline'),
|
|
2285
|
-
__metadata("design:type", Boolean),
|
|
2286
|
-
__metadata("design:paramtypes", [])
|
|
2287
|
-
], SplitButtonComponent.prototype, "isOutline", null);
|
|
2288
2517
|
__decorate([
|
|
2289
2518
|
HostBinding('class.k-split-button'),
|
|
2290
2519
|
HostBinding('class.k-button-group'),
|
|
@@ -2337,11 +2566,15 @@ SplitButtonComponent = __decorate([
|
|
|
2337
2566
|
kendoButton
|
|
2338
2567
|
#button
|
|
2339
2568
|
[type]="type"
|
|
2340
|
-
[look]="look"
|
|
2341
2569
|
[tabindex]="componentTabIndex"
|
|
2342
2570
|
[disabled]="disabled"
|
|
2571
|
+
[size]="size"
|
|
2572
|
+
[rounded]="rounded"
|
|
2573
|
+
[fillMode]="fillMode"
|
|
2574
|
+
[themeColor]="themeColor"
|
|
2343
2575
|
[icon]="icon"
|
|
2344
|
-
[class.k-
|
|
2576
|
+
[class.k-active]="active"
|
|
2577
|
+
[class.k-icon-button]="!text && icon"
|
|
2345
2578
|
[iconClass]="iconClass"
|
|
2346
2579
|
[imageUrl]="imageUrl"
|
|
2347
2580
|
[ngClass]="buttonClass"
|
|
@@ -2356,16 +2589,21 @@ SplitButtonComponent = __decorate([
|
|
|
2356
2589
|
[attr.aria-owns]="listId"
|
|
2357
2590
|
[attr.aria-label]="ariaLabel"
|
|
2358
2591
|
>
|
|
2359
|
-
|
|
2592
|
+
<span *ngIf="text" class="k-button-text">
|
|
2593
|
+
{{ text }}
|
|
2594
|
+
</span><ng-content></ng-content>
|
|
2360
2595
|
</button>
|
|
2361
2596
|
<button
|
|
2362
2597
|
kendoButton
|
|
2363
2598
|
#arrowButton
|
|
2364
2599
|
type="button"
|
|
2365
|
-
[class.k-
|
|
2600
|
+
[class.k-active]="activeArrow"
|
|
2366
2601
|
[disabled]="disabled"
|
|
2367
2602
|
[icon]="arrowButtonIcon"
|
|
2368
|
-
[
|
|
2603
|
+
[size]="size"
|
|
2604
|
+
[rounded]="rounded"
|
|
2605
|
+
[fillMode]="fillMode"
|
|
2606
|
+
[themeColor]="fillMode ? themeColor : null"
|
|
2369
2607
|
[tabindex]="-1"
|
|
2370
2608
|
[ngClass]="arrowButtonClass"
|
|
2371
2609
|
(click)="onArrowButtonClick()"
|
|
@@ -2383,6 +2621,7 @@ SplitButtonComponent = __decorate([
|
|
|
2383
2621
|
(keypress)="keyPressHandler($event)"
|
|
2384
2622
|
(keyup)="keyUpHandler($event)"
|
|
2385
2623
|
[attr.dir]="dir"
|
|
2624
|
+
[size]="size"
|
|
2386
2625
|
>
|
|
2387
2626
|
</kendo-button-list>
|
|
2388
2627
|
</ng-template>
|
|
@@ -2396,7 +2635,8 @@ SplitButtonComponent = __decorate([
|
|
|
2396
2635
|
PopupService,
|
|
2397
2636
|
ElementRef,
|
|
2398
2637
|
LocalizationService,
|
|
2399
|
-
ChangeDetectorRef
|
|
2638
|
+
ChangeDetectorRef,
|
|
2639
|
+
Renderer2])
|
|
2400
2640
|
], SplitButtonComponent);
|
|
2401
2641
|
|
|
2402
2642
|
/**
|
|
@@ -2532,17 +2772,58 @@ let DropDownButtonComponent = class DropDownButtonComponent extends ListButton {
|
|
|
2532
2772
|
*/
|
|
2533
2773
|
this.imageUrl = '';
|
|
2534
2774
|
/**
|
|
2535
|
-
*
|
|
2775
|
+
* The size property specifies the width and height of the DropDownButton
|
|
2776
|
+
* ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-size)).
|
|
2777
|
+
*
|
|
2778
|
+
* The possible values are:
|
|
2779
|
+
* * `'small'`
|
|
2780
|
+
* * `'medium'` (default)
|
|
2781
|
+
* * `'large'`
|
|
2782
|
+
* * `null`
|
|
2783
|
+
*/
|
|
2784
|
+
this.size = 'medium';
|
|
2785
|
+
/**
|
|
2786
|
+
* The shape property specifies if the DropDownButton will be a square or rectangle.
|
|
2787
|
+
* ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-shape)).
|
|
2788
|
+
*
|
|
2789
|
+
* The possible values are:
|
|
2790
|
+
* * `'rectangle'` (default)
|
|
2791
|
+
* * `'square'`
|
|
2792
|
+
* * `null`
|
|
2536
2793
|
*/
|
|
2537
|
-
this.
|
|
2794
|
+
this.shape = 'rectangle';
|
|
2538
2795
|
/**
|
|
2539
|
-
*
|
|
2796
|
+
* The rounded property specifies the border radius of the DropDownButton
|
|
2797
|
+
* ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-rounded)).
|
|
2540
2798
|
*
|
|
2541
|
-
* The
|
|
2542
|
-
* * `
|
|
2543
|
-
* * `
|
|
2799
|
+
* The possible values are:
|
|
2800
|
+
* * `'small'`
|
|
2801
|
+
* * `'medium'` (default)
|
|
2802
|
+
* * `'large'`
|
|
2803
|
+
* * `'full'`
|
|
2804
|
+
* * `null`
|
|
2805
|
+
*/
|
|
2806
|
+
this.rounded = 'medium';
|
|
2807
|
+
/**
|
|
2808
|
+
* The DropDownButton allows you to specify predefined theme colors.
|
|
2809
|
+
* The theme color will be applied as a background and border color while also amending the text color accordingly
|
|
2810
|
+
* ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-themeColor)).
|
|
2811
|
+
*
|
|
2812
|
+
* The possible values are:
|
|
2813
|
+
* * `base` —Applies coloring based on the `base` theme color. (default)
|
|
2814
|
+
* * `primary` —Applies coloring based on the `primary` theme color.
|
|
2815
|
+
* * `secondary`—Applies coloring based on the `secondary` theme color.
|
|
2816
|
+
* * `tertiary`— Applies coloring based on the `tertiary` theme color.
|
|
2817
|
+
* * `info`—Applies coloring based on the `info` theme color.
|
|
2818
|
+
* * `success`— Applies coloring based on the `success` theme color.
|
|
2819
|
+
* * `warning`— Applies coloring based on the `warning` theme color.
|
|
2820
|
+
* * `error`— Applies coloring based on the `error` theme color.
|
|
2821
|
+
* * `dark`— Applies coloring based on the `dark` theme color.
|
|
2822
|
+
* * `light`— Applies coloring based on the `light` theme color.
|
|
2823
|
+
* * `inverse`— Applies coloring based on the `inverse` theme color.
|
|
2824
|
+
* * `null` —Removes the default CSS class (no class would be rendered).
|
|
2544
2825
|
*/
|
|
2545
|
-
this.
|
|
2826
|
+
this.themeColor = 'base';
|
|
2546
2827
|
/**
|
|
2547
2828
|
* Specifies the [`tabIndex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.
|
|
2548
2829
|
*/
|
|
@@ -2570,6 +2851,7 @@ let DropDownButtonComponent = class DropDownButtonComponent extends ListButton {
|
|
|
2570
2851
|
*/
|
|
2571
2852
|
this.onBlur = new EventEmitter(); //tslint:disable-line:no-output-rename
|
|
2572
2853
|
this.listId = guid();
|
|
2854
|
+
this._fillMode = 'solid';
|
|
2573
2855
|
this._itemClick = this.itemClick;
|
|
2574
2856
|
this._blur = this.onBlur;
|
|
2575
2857
|
}
|
|
@@ -2611,6 +2893,24 @@ let DropDownButtonComponent = class DropDownButtonComponent extends ListButton {
|
|
|
2611
2893
|
get data() {
|
|
2612
2894
|
return this._data;
|
|
2613
2895
|
}
|
|
2896
|
+
/**
|
|
2897
|
+
* The fillMode property specifies the background and border styles of the DropDownButton
|
|
2898
|
+
* ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-fillMode)).
|
|
2899
|
+
*
|
|
2900
|
+
* The available values are:
|
|
2901
|
+
* * `solid` (default)
|
|
2902
|
+
* * `flat`
|
|
2903
|
+
* * `outline`
|
|
2904
|
+
* * `link`
|
|
2905
|
+
* * `null`
|
|
2906
|
+
*/
|
|
2907
|
+
set fillMode(fillMode) {
|
|
2908
|
+
// Temporary workaround for missing 'clear' styles
|
|
2909
|
+
this._fillMode = fillMode === 'clear' ? 'flat' : fillMode;
|
|
2910
|
+
}
|
|
2911
|
+
get fillMode() {
|
|
2912
|
+
return this._fillMode;
|
|
2913
|
+
}
|
|
2614
2914
|
/**
|
|
2615
2915
|
* @hidden
|
|
2616
2916
|
*/
|
|
@@ -2652,12 +2952,6 @@ let DropDownButtonComponent = class DropDownButtonComponent extends ListButton {
|
|
|
2652
2952
|
get focused() {
|
|
2653
2953
|
return this._isFocused && !this._disabled;
|
|
2654
2954
|
}
|
|
2655
|
-
get isFlat() {
|
|
2656
|
-
return this.look === 'flat';
|
|
2657
|
-
}
|
|
2658
|
-
get isOutline() {
|
|
2659
|
-
return this.look === 'outline';
|
|
2660
|
-
}
|
|
2661
2955
|
get widgetClasses() {
|
|
2662
2956
|
return true;
|
|
2663
2957
|
}
|
|
@@ -2910,12 +3204,25 @@ __decorate([
|
|
|
2910
3204
|
], DropDownButtonComponent.prototype, "data", null);
|
|
2911
3205
|
__decorate([
|
|
2912
3206
|
Input(),
|
|
2913
|
-
__metadata("design:type",
|
|
2914
|
-
], DropDownButtonComponent.prototype, "
|
|
3207
|
+
__metadata("design:type", String)
|
|
3208
|
+
], DropDownButtonComponent.prototype, "size", void 0);
|
|
3209
|
+
__decorate([
|
|
3210
|
+
Input(),
|
|
3211
|
+
__metadata("design:type", String)
|
|
3212
|
+
], DropDownButtonComponent.prototype, "shape", void 0);
|
|
3213
|
+
__decorate([
|
|
3214
|
+
Input(),
|
|
3215
|
+
__metadata("design:type", String)
|
|
3216
|
+
], DropDownButtonComponent.prototype, "rounded", void 0);
|
|
3217
|
+
__decorate([
|
|
3218
|
+
Input(),
|
|
3219
|
+
__metadata("design:type", String),
|
|
3220
|
+
__metadata("design:paramtypes", [String])
|
|
3221
|
+
], DropDownButtonComponent.prototype, "fillMode", null);
|
|
2915
3222
|
__decorate([
|
|
2916
3223
|
Input(),
|
|
2917
3224
|
__metadata("design:type", String)
|
|
2918
|
-
], DropDownButtonComponent.prototype, "
|
|
3225
|
+
], DropDownButtonComponent.prototype, "themeColor", void 0);
|
|
2919
3226
|
__decorate([
|
|
2920
3227
|
Input(),
|
|
2921
3228
|
__metadata("design:type", Object)
|
|
@@ -2945,20 +3252,10 @@ __decorate([
|
|
|
2945
3252
|
__metadata("design:type", EventEmitter)
|
|
2946
3253
|
], DropDownButtonComponent.prototype, "onBlur", void 0);
|
|
2947
3254
|
__decorate([
|
|
2948
|
-
HostBinding('class.k-
|
|
3255
|
+
HostBinding('class.k-focus'),
|
|
2949
3256
|
__metadata("design:type", Boolean),
|
|
2950
3257
|
__metadata("design:paramtypes", [])
|
|
2951
3258
|
], DropDownButtonComponent.prototype, "focused", null);
|
|
2952
|
-
__decorate([
|
|
2953
|
-
HostBinding('class.k-flat'),
|
|
2954
|
-
__metadata("design:type", Boolean),
|
|
2955
|
-
__metadata("design:paramtypes", [])
|
|
2956
|
-
], DropDownButtonComponent.prototype, "isFlat", null);
|
|
2957
|
-
__decorate([
|
|
2958
|
-
HostBinding('class.k-outline'),
|
|
2959
|
-
__metadata("design:type", Boolean),
|
|
2960
|
-
__metadata("design:paramtypes", [])
|
|
2961
|
-
], DropDownButtonComponent.prototype, "isOutline", null);
|
|
2962
3259
|
__decorate([
|
|
2963
3260
|
HostBinding('class.k-dropdown-button'),
|
|
2964
3261
|
__metadata("design:type", Boolean),
|
|
@@ -3038,12 +3335,17 @@ DropDownButtonComponent = __decorate([
|
|
|
3038
3335
|
role="menu"
|
|
3039
3336
|
type="button"
|
|
3040
3337
|
[tabindex]="componentTabIndex"
|
|
3041
|
-
[class.k-
|
|
3338
|
+
[class.k-active]="active"
|
|
3042
3339
|
[disabled]="disabled"
|
|
3043
3340
|
[icon]="icon"
|
|
3044
3341
|
[iconClass]="iconClass"
|
|
3045
3342
|
[imageUrl]="imageUrl"
|
|
3046
3343
|
[ngClass]="buttonClass"
|
|
3344
|
+
[size]="size"
|
|
3345
|
+
[shape]="shape"
|
|
3346
|
+
[rounded]="rounded"
|
|
3347
|
+
[fillMode]="fillMode"
|
|
3348
|
+
[themeColor]="fillMode ? themeColor : null"
|
|
3047
3349
|
(click)="openPopup()"
|
|
3048
3350
|
(focus)="handleFocus()"
|
|
3049
3351
|
(blur)="onButtonBlur()"
|
|
@@ -3051,9 +3353,7 @@ DropDownButtonComponent = __decorate([
|
|
|
3051
3353
|
[attr.aria-expanded]="openState"
|
|
3052
3354
|
[attr.aria-haspopup]="true"
|
|
3053
3355
|
[attr.aria-owns]="listId"
|
|
3054
|
-
|
|
3055
|
-
[primary]="primary"
|
|
3056
|
-
>
|
|
3356
|
+
>
|
|
3057
3357
|
<ng-content></ng-content>
|
|
3058
3358
|
</button>
|
|
3059
3359
|
<ng-template #popupTemplate>
|
|
@@ -3068,6 +3368,7 @@ DropDownButtonComponent = __decorate([
|
|
|
3068
3368
|
(keypress)="keyPressHandler($event)"
|
|
3069
3369
|
(keyup)="keyUpHandler($event)"
|
|
3070
3370
|
[attr.dir]="dir"
|
|
3371
|
+
[size]="size"
|
|
3071
3372
|
>
|
|
3072
3373
|
</kendo-button-list>
|
|
3073
3374
|
</ng-template>
|
|
@@ -3111,38 +3412,20 @@ let ChipComponent = class ChipComponent {
|
|
|
3111
3412
|
this.renderer = renderer;
|
|
3112
3413
|
this.ngZone = ngZone;
|
|
3113
3414
|
this.localizationService = localizationService;
|
|
3114
|
-
/**
|
|
3115
|
-
* Changes the visual appearance by using alternative styling options.
|
|
3116
|
-
*
|
|
3117
|
-
* The available values are:
|
|
3118
|
-
* * `solid`
|
|
3119
|
-
* * `outline`
|
|
3120
|
-
* * `filled` (The `filled` option will be deprecated. To apply identical styling, use `solid` instead).
|
|
3121
|
-
* * `outlined` (The `outlined` option will be deprecated. To apply identical styling, use `outline` instead).
|
|
3122
|
-
*/
|
|
3123
|
-
this.look = 'solid';
|
|
3124
3415
|
/**
|
|
3125
3416
|
* Specifies the selected state of the Chip.
|
|
3417
|
+
* @default false
|
|
3126
3418
|
*/
|
|
3127
3419
|
this.selected = false;
|
|
3128
3420
|
/**
|
|
3129
3421
|
* Specifies if the Chip will be removable or not.
|
|
3130
3422
|
* If the property is set to `true`, the Chip renders a remove icon.
|
|
3423
|
+
* @default false
|
|
3131
3424
|
*/
|
|
3132
3425
|
this.removable = false;
|
|
3133
|
-
/**
|
|
3134
|
-
* Specifies the Chip type.
|
|
3135
|
-
*
|
|
3136
|
-
* The possible values are:
|
|
3137
|
-
* - `none` (default)
|
|
3138
|
-
* - `success`
|
|
3139
|
-
* - `error`
|
|
3140
|
-
* - `warning`
|
|
3141
|
-
* - `info`
|
|
3142
|
-
*/
|
|
3143
|
-
this.type = 'none';
|
|
3144
3426
|
/**
|
|
3145
3427
|
* If set to `true`, the Chip will be disabled.
|
|
3428
|
+
* @default false
|
|
3146
3429
|
*/
|
|
3147
3430
|
this.disabled = false;
|
|
3148
3431
|
/**
|
|
@@ -3155,21 +3438,90 @@ let ChipComponent = class ChipComponent {
|
|
|
3155
3438
|
this.contentClick = new EventEmitter();
|
|
3156
3439
|
this.tabIndex = 0;
|
|
3157
3440
|
this.hostClass = true;
|
|
3441
|
+
this._size = 'medium';
|
|
3442
|
+
this._rounded = 'medium';
|
|
3443
|
+
this._fillMode = 'solid';
|
|
3444
|
+
this._themeColor = 'base';
|
|
3158
3445
|
this.focused = false;
|
|
3159
3446
|
validatePackage(packageMetadata);
|
|
3160
3447
|
this.direction = localizationService.rtl ? 'rtl' : 'ltr';
|
|
3161
3448
|
}
|
|
3162
|
-
|
|
3163
|
-
|
|
3449
|
+
/**
|
|
3450
|
+
* The size property specifies the height, padding and line height of the Chip
|
|
3451
|
+
* ([see example]({% slug appearance_chip %}#toc-size)).
|
|
3452
|
+
*
|
|
3453
|
+
* The possible values are:
|
|
3454
|
+
* * `'small'`
|
|
3455
|
+
* * `'medium'` (default)
|
|
3456
|
+
* * `'large'`
|
|
3457
|
+
* * `null`
|
|
3458
|
+
*/
|
|
3459
|
+
set size(size) {
|
|
3460
|
+
this.handleClasses(size, 'size');
|
|
3461
|
+
this._size = size;
|
|
3462
|
+
}
|
|
3463
|
+
get size() {
|
|
3464
|
+
return this._size;
|
|
3465
|
+
}
|
|
3466
|
+
/**
|
|
3467
|
+
* The rounded property specifies the border radius of the Chip
|
|
3468
|
+
* ([see example]({% slug appearance_chip %}#toc-rounded)).
|
|
3469
|
+
*
|
|
3470
|
+
* The possible values are:
|
|
3471
|
+
* * `'small'`
|
|
3472
|
+
* * `'medium'` (default)
|
|
3473
|
+
* * `'large'`
|
|
3474
|
+
* * `'full'`
|
|
3475
|
+
* * `null`
|
|
3476
|
+
*/
|
|
3477
|
+
set rounded(rounded) {
|
|
3478
|
+
this.handleClasses(rounded, 'rounded');
|
|
3479
|
+
this._rounded = rounded;
|
|
3480
|
+
}
|
|
3481
|
+
get rounded() {
|
|
3482
|
+
return this._rounded;
|
|
3483
|
+
}
|
|
3484
|
+
/**
|
|
3485
|
+
* The fillMode property specifies the background and border styles of the Chip
|
|
3486
|
+
* ([see example]({% slug appearance_chip %}#toc-fillMode)).
|
|
3487
|
+
*
|
|
3488
|
+
* The possible values are:
|
|
3489
|
+
* * `'solid'` (default)
|
|
3490
|
+
* * `'outline'`
|
|
3491
|
+
* * `null`
|
|
3492
|
+
*/
|
|
3493
|
+
set fillMode(fillMode) {
|
|
3494
|
+
this.handleClasses(fillMode, 'fillMode');
|
|
3495
|
+
this._fillMode = fillMode;
|
|
3496
|
+
}
|
|
3497
|
+
get fillMode() {
|
|
3498
|
+
return this._fillMode;
|
|
3164
3499
|
}
|
|
3165
|
-
|
|
3166
|
-
|
|
3500
|
+
/**
|
|
3501
|
+
* The Chip allows you to specify predefined theme colors.
|
|
3502
|
+
* The theme color will be applied as a background and border color while also amending the text color accordingly
|
|
3503
|
+
* ([see example]({% slug appearance_chip %}#toc-themeColor)).
|
|
3504
|
+
*
|
|
3505
|
+
* The possible values are:
|
|
3506
|
+
* * `'base'` (default)
|
|
3507
|
+
* * `'info'`
|
|
3508
|
+
* * `'success'`
|
|
3509
|
+
* * `'warning'`
|
|
3510
|
+
* * `'error'`
|
|
3511
|
+
* * `null`
|
|
3512
|
+
*/
|
|
3513
|
+
set themeColor(themeColor) {
|
|
3514
|
+
this.handleThemeColor(themeColor);
|
|
3515
|
+
this._themeColor = themeColor;
|
|
3516
|
+
}
|
|
3517
|
+
get themeColor() {
|
|
3518
|
+
return this._themeColor;
|
|
3167
3519
|
}
|
|
3168
|
-
get
|
|
3169
|
-
return this.
|
|
3520
|
+
get ariaChecked() {
|
|
3521
|
+
return this.selected;
|
|
3170
3522
|
}
|
|
3171
3523
|
get hasIconClass() {
|
|
3172
|
-
return this.icon || this.iconClass ? true : false;
|
|
3524
|
+
return this.icon || this.iconClass || this.avatarClass ? true : false;
|
|
3173
3525
|
}
|
|
3174
3526
|
get disabledClass() {
|
|
3175
3527
|
return this.disabled;
|
|
@@ -3194,54 +3546,41 @@ let ChipComponent = class ChipComponent {
|
|
|
3194
3546
|
}
|
|
3195
3547
|
ngAfterViewInit() {
|
|
3196
3548
|
const chip = this.element.nativeElement;
|
|
3197
|
-
const
|
|
3198
|
-
|
|
3199
|
-
this.
|
|
3200
|
-
}
|
|
3549
|
+
const stylingOptions = ['size', 'rounded', 'fillMode'];
|
|
3550
|
+
stylingOptions.forEach(input => {
|
|
3551
|
+
this.handleClasses(this[input], input);
|
|
3552
|
+
});
|
|
3201
3553
|
this.attachElementEventHandlers(chip);
|
|
3202
3554
|
}
|
|
3203
3555
|
/**
|
|
3204
3556
|
* @hidden
|
|
3205
3557
|
*/
|
|
3206
|
-
get
|
|
3207
|
-
|
|
3208
|
-
|
|
3209
|
-
classes.push(`${this.iconClass}`);
|
|
3210
|
-
}
|
|
3211
|
-
if (this.icon) {
|
|
3212
|
-
classes.push(`k-icon k-i-${this.icon}`);
|
|
3213
|
-
}
|
|
3214
|
-
return classes;
|
|
3558
|
+
get kendoIconClass() {
|
|
3559
|
+
this.verifyIconSettings([this.iconClass, this.avatarClass]);
|
|
3560
|
+
return `k-i-${this.icon}`;
|
|
3215
3561
|
}
|
|
3216
3562
|
/**
|
|
3217
3563
|
* @hidden
|
|
3218
3564
|
*/
|
|
3219
|
-
get
|
|
3220
|
-
|
|
3221
|
-
|
|
3222
|
-
}
|
|
3223
|
-
return `k-icon k-i-check`;
|
|
3565
|
+
get customIconClass() {
|
|
3566
|
+
this.verifyIconSettings([this.icon, this.avatarClass]);
|
|
3567
|
+
return `${this.iconClass}`;
|
|
3224
3568
|
}
|
|
3225
3569
|
/**
|
|
3226
3570
|
* @hidden
|
|
3227
3571
|
*/
|
|
3228
|
-
get
|
|
3229
|
-
|
|
3230
|
-
|
|
3231
|
-
}
|
|
3232
|
-
return `k-icon k-i-close-circle`;
|
|
3572
|
+
get chipAvatarClass() {
|
|
3573
|
+
this.verifyIconSettings([this.icon, this.iconClass]);
|
|
3574
|
+
return `${this.avatarClass}`;
|
|
3233
3575
|
}
|
|
3234
3576
|
/**
|
|
3235
3577
|
* @hidden
|
|
3236
3578
|
*/
|
|
3237
|
-
|
|
3238
|
-
|
|
3239
|
-
|
|
3240
|
-
|
|
3241
|
-
|
|
3242
|
-
'error': 'k-chip-error',
|
|
3243
|
-
'info': 'k-chip-info'
|
|
3244
|
-
}[this.type];
|
|
3579
|
+
get removeIconClass() {
|
|
3580
|
+
if (this.removeIcon) {
|
|
3581
|
+
return `${this.removeIcon}`;
|
|
3582
|
+
}
|
|
3583
|
+
return `k-i-close-circle`;
|
|
3245
3584
|
}
|
|
3246
3585
|
/**
|
|
3247
3586
|
* Focuses the Chip component.
|
|
@@ -3276,7 +3615,7 @@ let ChipComponent = class ChipComponent {
|
|
|
3276
3615
|
this.renderer.removeClass(chip, 'k-focus');
|
|
3277
3616
|
});
|
|
3278
3617
|
const contentClickListener = this.renderer.listen(chip, 'click', (e) => {
|
|
3279
|
-
const isRemoveClicked = closest(e.target, '.k-remove-
|
|
3618
|
+
const isRemoveClicked = closest(e.target, '.k-chip-remove-action');
|
|
3280
3619
|
if (!isRemoveClicked) {
|
|
3281
3620
|
this.ngZone.run(() => {
|
|
3282
3621
|
this.contentClick.emit({ sender: this, originalEvent: e });
|
|
@@ -3290,11 +3629,43 @@ let ChipComponent = class ChipComponent {
|
|
|
3290
3629
|
};
|
|
3291
3630
|
});
|
|
3292
3631
|
}
|
|
3632
|
+
/**
|
|
3633
|
+
* @hidden
|
|
3634
|
+
*/
|
|
3635
|
+
verifyIconSettings(iconsToCheck) {
|
|
3636
|
+
if (isDevMode()) {
|
|
3637
|
+
if (iconsToCheck.filter(icon => icon !== null && icon !== undefined).length > 0) {
|
|
3638
|
+
this.renderer.removeClass(this.element.nativeElement, 'k-chip-has-icon');
|
|
3639
|
+
throw new Error('Invalid configuration: Having multiple icons is not supported. Only a single icon on a chip can be displayed.');
|
|
3640
|
+
}
|
|
3641
|
+
}
|
|
3642
|
+
}
|
|
3643
|
+
handleClasses(value, input) {
|
|
3644
|
+
const elem = this.element.nativeElement;
|
|
3645
|
+
const classes = getStylingClasses('chip', input, this[input], value);
|
|
3646
|
+
if (input === 'fillMode') {
|
|
3647
|
+
this.handleThemeColor(this.themeColor, this[input], value);
|
|
3648
|
+
}
|
|
3649
|
+
if (classes.toRemove) {
|
|
3650
|
+
this.renderer.removeClass(elem, classes.toRemove);
|
|
3651
|
+
}
|
|
3652
|
+
if (classes.toAdd) {
|
|
3653
|
+
this.renderer.addClass(elem, classes.toAdd);
|
|
3654
|
+
}
|
|
3655
|
+
}
|
|
3656
|
+
handleThemeColor(value, prevFillMode, fillMode) {
|
|
3657
|
+
const elem = this.element.nativeElement;
|
|
3658
|
+
const removeFillMode = prevFillMode ? prevFillMode : this.fillMode;
|
|
3659
|
+
const addFillMode = fillMode ? fillMode : this.fillMode;
|
|
3660
|
+
const themeColorClass = getThemeColorClasses('chip', removeFillMode, addFillMode, this.themeColor, value);
|
|
3661
|
+
this.renderer.removeClass(elem, themeColorClass.toRemove);
|
|
3662
|
+
if (addFillMode !== null && fillMode !== null) {
|
|
3663
|
+
if (themeColorClass.toAdd) {
|
|
3664
|
+
this.renderer.addClass(elem, themeColorClass.toAdd);
|
|
3665
|
+
}
|
|
3666
|
+
}
|
|
3667
|
+
}
|
|
3293
3668
|
};
|
|
3294
|
-
__decorate([
|
|
3295
|
-
Input(),
|
|
3296
|
-
__metadata("design:type", String)
|
|
3297
|
-
], ChipComponent.prototype, "look", void 0);
|
|
3298
3669
|
__decorate([
|
|
3299
3670
|
Input(),
|
|
3300
3671
|
__metadata("design:type", String)
|
|
@@ -3309,12 +3680,12 @@ __decorate([
|
|
|
3309
3680
|
], ChipComponent.prototype, "iconClass", void 0);
|
|
3310
3681
|
__decorate([
|
|
3311
3682
|
Input(),
|
|
3312
|
-
__metadata("design:type",
|
|
3313
|
-
], ChipComponent.prototype, "
|
|
3683
|
+
__metadata("design:type", String)
|
|
3684
|
+
], ChipComponent.prototype, "avatarClass", void 0);
|
|
3314
3685
|
__decorate([
|
|
3315
3686
|
Input(),
|
|
3316
|
-
__metadata("design:type",
|
|
3317
|
-
], ChipComponent.prototype, "
|
|
3687
|
+
__metadata("design:type", Boolean)
|
|
3688
|
+
], ChipComponent.prototype, "selected", void 0);
|
|
3318
3689
|
__decorate([
|
|
3319
3690
|
Input(),
|
|
3320
3691
|
__metadata("design:type", Boolean)
|
|
@@ -3323,14 +3694,30 @@ __decorate([
|
|
|
3323
3694
|
Input(),
|
|
3324
3695
|
__metadata("design:type", String)
|
|
3325
3696
|
], ChipComponent.prototype, "removeIcon", void 0);
|
|
3326
|
-
__decorate([
|
|
3327
|
-
Input(),
|
|
3328
|
-
__metadata("design:type", String)
|
|
3329
|
-
], ChipComponent.prototype, "type", void 0);
|
|
3330
3697
|
__decorate([
|
|
3331
3698
|
Input(),
|
|
3332
3699
|
__metadata("design:type", Boolean)
|
|
3333
3700
|
], ChipComponent.prototype, "disabled", void 0);
|
|
3701
|
+
__decorate([
|
|
3702
|
+
Input(),
|
|
3703
|
+
__metadata("design:type", String),
|
|
3704
|
+
__metadata("design:paramtypes", [String])
|
|
3705
|
+
], ChipComponent.prototype, "size", null);
|
|
3706
|
+
__decorate([
|
|
3707
|
+
Input(),
|
|
3708
|
+
__metadata("design:type", String),
|
|
3709
|
+
__metadata("design:paramtypes", [String])
|
|
3710
|
+
], ChipComponent.prototype, "rounded", null);
|
|
3711
|
+
__decorate([
|
|
3712
|
+
Input(),
|
|
3713
|
+
__metadata("design:type", String),
|
|
3714
|
+
__metadata("design:paramtypes", [String])
|
|
3715
|
+
], ChipComponent.prototype, "fillMode", null);
|
|
3716
|
+
__decorate([
|
|
3717
|
+
Input(),
|
|
3718
|
+
__metadata("design:type", String),
|
|
3719
|
+
__metadata("design:paramtypes", [String])
|
|
3720
|
+
], ChipComponent.prototype, "themeColor", null);
|
|
3334
3721
|
__decorate([
|
|
3335
3722
|
Output(),
|
|
3336
3723
|
__metadata("design:type", EventEmitter)
|
|
@@ -3352,16 +3739,6 @@ __decorate([
|
|
|
3352
3739
|
HostBinding('class.k-chip'),
|
|
3353
3740
|
__metadata("design:type", Boolean)
|
|
3354
3741
|
], ChipComponent.prototype, "hostClass", void 0);
|
|
3355
|
-
__decorate([
|
|
3356
|
-
HostBinding('class.k-chip-outline'),
|
|
3357
|
-
__metadata("design:type", Boolean),
|
|
3358
|
-
__metadata("design:paramtypes", [])
|
|
3359
|
-
], ChipComponent.prototype, "outlineClass", null);
|
|
3360
|
-
__decorate([
|
|
3361
|
-
HostBinding('class.k-chip-solid'),
|
|
3362
|
-
__metadata("design:type", Boolean),
|
|
3363
|
-
__metadata("design:paramtypes", [])
|
|
3364
|
-
], ChipComponent.prototype, "solidClass", null);
|
|
3365
3742
|
__decorate([
|
|
3366
3743
|
HostBinding('class.k-chip-has-icon'),
|
|
3367
3744
|
__metadata("design:type", Boolean),
|
|
@@ -3391,20 +3768,27 @@ ChipComponent = __decorate([
|
|
|
3391
3768
|
Component({
|
|
3392
3769
|
selector: 'kendo-chip',
|
|
3393
3770
|
template: `
|
|
3394
|
-
<span
|
|
3395
|
-
|
|
3396
|
-
|
|
3397
|
-
|
|
3398
|
-
|
|
3399
|
-
</span>
|
|
3771
|
+
<span
|
|
3772
|
+
*ngIf="icon"
|
|
3773
|
+
class="k-chip-icon k-icon"
|
|
3774
|
+
[ngClass]="kendoIconClass"
|
|
3775
|
+
>
|
|
3400
3776
|
</span>
|
|
3401
3777
|
|
|
3402
|
-
<span
|
|
3778
|
+
<span
|
|
3779
|
+
*ngIf="iconClass"
|
|
3403
3780
|
class="k-chip-icon"
|
|
3404
|
-
[ngClass]="
|
|
3781
|
+
[ngClass]="customIconClass"
|
|
3405
3782
|
>
|
|
3406
3783
|
</span>
|
|
3407
3784
|
|
|
3785
|
+
<span
|
|
3786
|
+
*ngIf="avatarClass"
|
|
3787
|
+
class="k-chip-avatar k-avatar k-rounded-full"
|
|
3788
|
+
>
|
|
3789
|
+
<span class="k-avatar-image" [ngClass]="chipAvatarClass"></span>
|
|
3790
|
+
</span>
|
|
3791
|
+
|
|
3408
3792
|
<span class="k-chip-content">
|
|
3409
3793
|
<span class="k-chip-label" *ngIf="label">
|
|
3410
3794
|
{{ label }}
|
|
@@ -3412,11 +3796,17 @@ ChipComponent = __decorate([
|
|
|
3412
3796
|
<ng-content *ngIf="!label"></ng-content>
|
|
3413
3797
|
</span>
|
|
3414
3798
|
|
|
3415
|
-
<span
|
|
3416
|
-
class="k-remove-
|
|
3417
|
-
|
|
3418
|
-
|
|
3419
|
-
|
|
3799
|
+
<span class="k-chip-actions">
|
|
3800
|
+
<span class="k-chip-action k-chip-remove-action"
|
|
3801
|
+
*ngIf="removable"
|
|
3802
|
+
(click)="onRemoveClick($event)"
|
|
3803
|
+
>
|
|
3804
|
+
<span
|
|
3805
|
+
class="k-icon"
|
|
3806
|
+
[ngClass]="removeIconClass"
|
|
3807
|
+
>
|
|
3808
|
+
</span>
|
|
3809
|
+
</span>
|
|
3420
3810
|
</span>
|
|
3421
3811
|
`,
|
|
3422
3812
|
providers: [
|
|
@@ -3434,9 +3824,10 @@ ChipComponent = __decorate([
|
|
|
3434
3824
|
], ChipComponent);
|
|
3435
3825
|
|
|
3436
3826
|
let ChipListComponent = class ChipListComponent {
|
|
3437
|
-
constructor(localizationService, renderer) {
|
|
3827
|
+
constructor(localizationService, renderer, element) {
|
|
3438
3828
|
this.localizationService = localizationService;
|
|
3439
3829
|
this.renderer = renderer;
|
|
3830
|
+
this.element = element;
|
|
3440
3831
|
this.hostClass = true;
|
|
3441
3832
|
/**
|
|
3442
3833
|
* Sets the selection mode of the ChipList.
|
|
@@ -3456,8 +3847,27 @@ let ChipListComponent = class ChipListComponent {
|
|
|
3456
3847
|
*/
|
|
3457
3848
|
this.remove = new EventEmitter();
|
|
3458
3849
|
this.role = 'listbox';
|
|
3850
|
+
this._size = 'medium';
|
|
3851
|
+
validatePackage(packageMetadata);
|
|
3459
3852
|
this.direction = localizationService.rtl ? 'rtl' : 'ltr';
|
|
3460
3853
|
}
|
|
3854
|
+
/**
|
|
3855
|
+
* The size property specifies the gap between the Chips in the ChipList
|
|
3856
|
+
* ([see example]({% slug appearance_chiplist %}#toc-size)).
|
|
3857
|
+
*
|
|
3858
|
+
* The possible values are:
|
|
3859
|
+
* * `'small'`
|
|
3860
|
+
* * `'medium'` (default)
|
|
3861
|
+
* * `'large'`
|
|
3862
|
+
* * `null`
|
|
3863
|
+
*/
|
|
3864
|
+
set size(size) {
|
|
3865
|
+
this.handleClasses(size, 'size');
|
|
3866
|
+
this._size = size;
|
|
3867
|
+
}
|
|
3868
|
+
get size() {
|
|
3869
|
+
return this._size;
|
|
3870
|
+
}
|
|
3461
3871
|
get single() {
|
|
3462
3872
|
return this.selection === 'single';
|
|
3463
3873
|
}
|
|
@@ -3469,7 +3879,7 @@ let ChipListComponent = class ChipListComponent {
|
|
|
3469
3879
|
*/
|
|
3470
3880
|
onClick($event) {
|
|
3471
3881
|
const target = $event.target;
|
|
3472
|
-
const isRemoveClicked = closest(target, '.k-remove-
|
|
3882
|
+
const isRemoveClicked = closest(target, '.k-chip-remove-action');
|
|
3473
3883
|
const clickedChip = closest(target, '.k-chip');
|
|
3474
3884
|
const chip = this.chips.find((chip) => clickedChip === chip.element.nativeElement);
|
|
3475
3885
|
if (isRemoveClicked && clickedChip) {
|
|
@@ -3484,6 +3894,12 @@ let ChipListComponent = class ChipListComponent {
|
|
|
3484
3894
|
this.dynamicRTLSubscription = this.localizationService.changes
|
|
3485
3895
|
.subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr');
|
|
3486
3896
|
}
|
|
3897
|
+
ngAfterViewInit() {
|
|
3898
|
+
const stylingInputs = ['size'];
|
|
3899
|
+
stylingInputs.forEach(input => {
|
|
3900
|
+
this.handleClasses(this[input], input);
|
|
3901
|
+
});
|
|
3902
|
+
}
|
|
3487
3903
|
ngAfterContentInit() {
|
|
3488
3904
|
this.chips.forEach((chip) => {
|
|
3489
3905
|
this.renderer.setAttribute(chip.element.nativeElement, 'role', 'option');
|
|
@@ -3514,6 +3930,16 @@ let ChipListComponent = class ChipListComponent {
|
|
|
3514
3930
|
}
|
|
3515
3931
|
});
|
|
3516
3932
|
}
|
|
3933
|
+
handleClasses(value, input) {
|
|
3934
|
+
const elem = this.element.nativeElement;
|
|
3935
|
+
const classes = getStylingClasses('chip-list', input, this[input], value);
|
|
3936
|
+
if (classes.toRemove) {
|
|
3937
|
+
this.renderer.removeClass(elem, classes.toRemove);
|
|
3938
|
+
}
|
|
3939
|
+
if (classes.toAdd) {
|
|
3940
|
+
this.renderer.addClass(elem, classes.toAdd);
|
|
3941
|
+
}
|
|
3942
|
+
}
|
|
3517
3943
|
};
|
|
3518
3944
|
__decorate([
|
|
3519
3945
|
HostBinding('class.k-chip-list'),
|
|
@@ -3527,6 +3953,11 @@ __decorate([
|
|
|
3527
3953
|
Input(),
|
|
3528
3954
|
__metadata("design:type", String)
|
|
3529
3955
|
], ChipListComponent.prototype, "selection", void 0);
|
|
3956
|
+
__decorate([
|
|
3957
|
+
Input(),
|
|
3958
|
+
__metadata("design:type", String),
|
|
3959
|
+
__metadata("design:paramtypes", [String])
|
|
3960
|
+
], ChipListComponent.prototype, "size", null);
|
|
3530
3961
|
__decorate([
|
|
3531
3962
|
Output(),
|
|
3532
3963
|
__metadata("design:type", EventEmitter)
|
|
@@ -3561,7 +3992,7 @@ __decorate([
|
|
|
3561
3992
|
], ChipListComponent.prototype, "onClick", null);
|
|
3562
3993
|
ChipListComponent = __decorate([
|
|
3563
3994
|
Component({
|
|
3564
|
-
selector: 'kendo-
|
|
3995
|
+
selector: 'kendo-chiplist, kendo-chip-list',
|
|
3565
3996
|
template: `
|
|
3566
3997
|
<ng-content></ng-content>
|
|
3567
3998
|
`,
|
|
@@ -3569,11 +4000,13 @@ ChipListComponent = __decorate([
|
|
|
3569
4000
|
LocalizationService,
|
|
3570
4001
|
{
|
|
3571
4002
|
provide: L10N_PREFIX,
|
|
3572
|
-
useValue: 'kendo.
|
|
4003
|
+
useValue: 'kendo.chiplist'
|
|
3573
4004
|
}
|
|
3574
4005
|
]
|
|
3575
4006
|
}),
|
|
3576
|
-
__metadata("design:paramtypes", [LocalizationService,
|
|
4007
|
+
__metadata("design:paramtypes", [LocalizationService,
|
|
4008
|
+
Renderer2,
|
|
4009
|
+
ElementRef])
|
|
3577
4010
|
], ChipListComponent);
|
|
3578
4011
|
|
|
3579
4012
|
const exportedModules = [
|
|
@@ -3737,12 +4170,16 @@ const SIZE_CLASSES = {
|
|
|
3737
4170
|
large: 'k-fab-lg'
|
|
3738
4171
|
};
|
|
3739
4172
|
const SHAPE_CLASSES = {
|
|
3740
|
-
pill: 'k-fab-pill',
|
|
3741
|
-
circle: 'k-fab-circle',
|
|
3742
4173
|
rectangle: 'k-fab-rectangle',
|
|
3743
|
-
square: 'k-fab-square'
|
|
3744
|
-
|
|
4174
|
+
square: 'k-fab-square'
|
|
4175
|
+
};
|
|
4176
|
+
const ROUNDED_CLASSES = {
|
|
4177
|
+
small: 'k-rounded-sm',
|
|
4178
|
+
medium: 'k-rounded-md',
|
|
4179
|
+
large: 'k-rounded-lg',
|
|
4180
|
+
full: 'k-rounded-full'
|
|
3745
4181
|
};
|
|
4182
|
+
const FILLMODE_CLASS = 'k-fab-solid';
|
|
3746
4183
|
const DEFAULT_DURATION = 180;
|
|
3747
4184
|
const DEFAULT_ITEM_GAP = 90;
|
|
3748
4185
|
const DEFAULT_OFFSET = '16px';
|
|
@@ -3822,13 +4259,15 @@ let FloatingActionButtonComponent = class FloatingActionButtonComponent {
|
|
|
3822
4259
|
this.id = `k-${guid()}`;
|
|
3823
4260
|
this._themeColor = 'primary';
|
|
3824
4261
|
this._size = 'medium';
|
|
3825
|
-
this._shape = '
|
|
4262
|
+
this._shape = 'rectangle';
|
|
3826
4263
|
this._disabled = false;
|
|
3827
4264
|
this._align = { horizontal: 'end', vertical: 'bottom' };
|
|
3828
4265
|
this._offset = { x: DEFAULT_OFFSET, y: DEFAULT_OFFSET };
|
|
4266
|
+
this._rounded = 'full';
|
|
3829
4267
|
this.subscriptions = new Subscription();
|
|
3830
4268
|
this.rtl = false;
|
|
3831
4269
|
this.animationEnd = new EventEmitter();
|
|
4270
|
+
this.initialSetup = true;
|
|
3832
4271
|
validatePackage(packageMetadata);
|
|
3833
4272
|
this.subscribeNavigationEvents();
|
|
3834
4273
|
this.subscriptions.add(this.localizationService.changes.subscribe(({ rtl }) => {
|
|
@@ -3848,18 +4287,16 @@ let FloatingActionButtonComponent = class FloatingActionButtonComponent {
|
|
|
3848
4287
|
* The theme color will be applied as background color of the component.
|
|
3849
4288
|
*
|
|
3850
4289
|
* The possible values are:
|
|
3851
|
-
* * `primary` (Default)—Applies coloring based on the `primary` theme color.
|
|
3852
|
-
* * `secondary`—Applies coloring based on the `secondary` theme color.
|
|
3853
|
-
* * `tertiary`— Applies coloring based on the `tertiary` theme color.
|
|
3854
|
-
* * `
|
|
3855
|
-
* * `
|
|
3856
|
-
* * `
|
|
3857
|
-
* * `
|
|
3858
|
-
* * `
|
|
3859
|
-
* * `
|
|
3860
|
-
* * `
|
|
3861
|
-
* * `inverse`— Applies coloring based on the `inverse` theme color.
|
|
3862
|
-
*
|
|
4290
|
+
* * `'primary'` (Default)—Applies coloring based on the `primary` theme color.
|
|
4291
|
+
* * `'secondary'`—Applies coloring based on the `secondary` theme color.
|
|
4292
|
+
* * `'tertiary'`— Applies coloring based on the `tertiary` theme color.
|
|
4293
|
+
* * `'info'`—Applies coloring based on the `info` theme color.
|
|
4294
|
+
* * `'success'`— Applies coloring based on the `success` theme color.
|
|
4295
|
+
* * `'warning'`— Applies coloring based on the `warning` theme color.
|
|
4296
|
+
* * `'error'`— Applies coloring based on the `error` theme color.
|
|
4297
|
+
* * `'dark'`— Applies coloring based on the `dark` theme color.
|
|
4298
|
+
* * `'light'`— Applies coloring based on the `light` theme color.
|
|
4299
|
+
* * `'inverse'`— Applies coloring based on the `inverse` theme color.
|
|
3863
4300
|
*/
|
|
3864
4301
|
set themeColor(themeColor) {
|
|
3865
4302
|
this.handleClasses(themeColor, 'themeColor');
|
|
@@ -3873,10 +4310,9 @@ let FloatingActionButtonComponent = class FloatingActionButtonComponent {
|
|
|
3873
4310
|
* ([see example]({% slug appearance_floatingactionbutton %}#toc-size)).
|
|
3874
4311
|
*
|
|
3875
4312
|
* The possible values are:
|
|
3876
|
-
* * `small`
|
|
3877
|
-
* * `medium` (Default)
|
|
3878
|
-
* * `large`
|
|
3879
|
-
*
|
|
4313
|
+
* * `'small'`
|
|
4314
|
+
* * `'medium'` (Default)
|
|
4315
|
+
* * `'large'`
|
|
3880
4316
|
*/
|
|
3881
4317
|
set size(size) {
|
|
3882
4318
|
this.handleClasses(size, 'size');
|
|
@@ -3885,15 +4321,29 @@ let FloatingActionButtonComponent = class FloatingActionButtonComponent {
|
|
|
3885
4321
|
get size() {
|
|
3886
4322
|
return this._size;
|
|
3887
4323
|
}
|
|
4324
|
+
/**
|
|
4325
|
+
* The rounded property specifies the border radius of the FloatingActionButton.
|
|
4326
|
+
*
|
|
4327
|
+
* The possible values are:
|
|
4328
|
+
* * `'small'`
|
|
4329
|
+
* * `'medium'`
|
|
4330
|
+
* * `'large'`
|
|
4331
|
+
* * `'full'` (default)
|
|
4332
|
+
* * `null`
|
|
4333
|
+
*/
|
|
4334
|
+
set rounded(rounded) {
|
|
4335
|
+
this.handleClasses(rounded, 'rounded');
|
|
4336
|
+
this._rounded = rounded;
|
|
4337
|
+
}
|
|
4338
|
+
get rounded() {
|
|
4339
|
+
return this._rounded;
|
|
4340
|
+
}
|
|
3888
4341
|
/**
|
|
3889
4342
|
* Specifies the shape of the FloatingActionButton
|
|
3890
4343
|
* ([see example]({% slug appearance_floatingactionbutton %}#toc-shape)).
|
|
3891
4344
|
*
|
|
3892
4345
|
* The possible values are:
|
|
3893
|
-
* * `
|
|
3894
|
-
* * `circle`—Applies circle shape on the FloatingActionButton.
|
|
3895
|
-
* * `rectangle`—Applies rectangular shape on the FloatingActionButton.
|
|
3896
|
-
* * `rounded`—Applies rounded shape on the FloatingActionButton.
|
|
4346
|
+
* * `rectangle` (Default)—Applies rectangular shape on the FloatingActionButton.
|
|
3897
4347
|
* * `square`—Applies square shape on the FloatingActionButton.
|
|
3898
4348
|
*
|
|
3899
4349
|
*/
|
|
@@ -3951,8 +4401,10 @@ let FloatingActionButtonComponent = class FloatingActionButtonComponent {
|
|
|
3951
4401
|
return this.disabled ? (-1) : this.tabIndex;
|
|
3952
4402
|
}
|
|
3953
4403
|
ngAfterViewInit() {
|
|
3954
|
-
this.
|
|
4404
|
+
['shape', 'size', 'rounded', 'themeColor'].forEach(option => this.handleClasses(this[option], option));
|
|
4405
|
+
this.renderer.addClass(this.element.nativeElement, this.alignClass());
|
|
3955
4406
|
this.offsetStyles();
|
|
4407
|
+
this.initialSetup = false;
|
|
3956
4408
|
}
|
|
3957
4409
|
ngOnDestroy() {
|
|
3958
4410
|
this.subscriptions.unsubscribe();
|
|
@@ -4094,20 +4546,24 @@ let FloatingActionButtonComponent = class FloatingActionButtonComponent {
|
|
|
4094
4546
|
this.toggleDialWithEvents(false);
|
|
4095
4547
|
}
|
|
4096
4548
|
handleClasses(inputValue, input) {
|
|
4097
|
-
if (isPresent(this.button) && (this[input] !== inputValue)) {
|
|
4549
|
+
if (isPresent(this.button) && (this[input] !== inputValue || this.initialSetup)) {
|
|
4098
4550
|
const button = this.button.nativeElement;
|
|
4099
4551
|
const classesToRemove = {
|
|
4100
|
-
themeColor:
|
|
4552
|
+
themeColor: `${FILLMODE_CLASS}-${this.themeColor}`,
|
|
4101
4553
|
size: SIZE_CLASSES[this.size],
|
|
4102
|
-
shape: SHAPE_CLASSES[this.shape]
|
|
4554
|
+
shape: SHAPE_CLASSES[this.shape],
|
|
4555
|
+
rounded: ROUNDED_CLASSES[this.rounded]
|
|
4103
4556
|
};
|
|
4104
4557
|
const classesToAdd = {
|
|
4105
|
-
themeColor:
|
|
4558
|
+
themeColor: inputValue ? `${FILLMODE_CLASS}-${inputValue}` : null,
|
|
4106
4559
|
size: SIZE_CLASSES[inputValue],
|
|
4107
|
-
shape: SHAPE_CLASSES[inputValue]
|
|
4560
|
+
shape: SHAPE_CLASSES[inputValue],
|
|
4561
|
+
rounded: ROUNDED_CLASSES[inputValue]
|
|
4108
4562
|
};
|
|
4109
4563
|
this.renderer.removeClass(button, classesToRemove[input]);
|
|
4110
|
-
|
|
4564
|
+
if (classesToAdd[input]) {
|
|
4565
|
+
this.renderer.addClass(button, classesToAdd[input]);
|
|
4566
|
+
}
|
|
4111
4567
|
}
|
|
4112
4568
|
}
|
|
4113
4569
|
onEnterPressed() {
|
|
@@ -4162,14 +4618,6 @@ let FloatingActionButtonComponent = class FloatingActionButtonComponent {
|
|
|
4162
4618
|
alignClass() {
|
|
4163
4619
|
return `k-pos-${this.align.vertical}-${this.align.horizontal}`;
|
|
4164
4620
|
}
|
|
4165
|
-
applyClasses() {
|
|
4166
|
-
const hostElement = this.element.nativeElement;
|
|
4167
|
-
const button = this.button.nativeElement;
|
|
4168
|
-
this.renderer.addClass(button, SHAPE_CLASSES[this.shape]);
|
|
4169
|
-
this.renderer.addClass(button, `k-fab-${this.themeColor}`);
|
|
4170
|
-
this.renderer.addClass(button, SIZE_CLASSES[this.size]);
|
|
4171
|
-
this.renderer.addClass(hostElement, this.alignClass());
|
|
4172
|
-
}
|
|
4173
4621
|
toggleDialWithEvents(open) {
|
|
4174
4622
|
if (open === this.isOpen) {
|
|
4175
4623
|
return;
|
|
@@ -4389,6 +4837,11 @@ __decorate([
|
|
|
4389
4837
|
__metadata("design:type", String),
|
|
4390
4838
|
__metadata("design:paramtypes", [String])
|
|
4391
4839
|
], FloatingActionButtonComponent.prototype, "size", null);
|
|
4840
|
+
__decorate([
|
|
4841
|
+
Input(),
|
|
4842
|
+
__metadata("design:type", String),
|
|
4843
|
+
__metadata("design:paramtypes", [String])
|
|
4844
|
+
], FloatingActionButtonComponent.prototype, "rounded", null);
|
|
4392
4845
|
__decorate([
|
|
4393
4846
|
Input(),
|
|
4394
4847
|
__metadata("design:type", String),
|
|
@@ -4485,8 +4938,8 @@ FloatingActionButtonComponent = __decorate([
|
|
|
4485
4938
|
[attr.role]="role"
|
|
4486
4939
|
[tabIndex]="componentTabIndex"
|
|
4487
4940
|
type="button"
|
|
4488
|
-
|
|
4489
|
-
[class.k-
|
|
4941
|
+
class="k-fab k-fab-solid"
|
|
4942
|
+
[class.k-disabled]="disabled"
|
|
4490
4943
|
[ngClass]="buttonClass"
|
|
4491
4944
|
[disabled]="disabled"
|
|
4492
4945
|
[attr.aria-disabled]="disabled"
|
|
@@ -4670,7 +5123,7 @@ __decorate([
|
|
|
4670
5123
|
], DialItemComponent.prototype, "role", void 0);
|
|
4671
5124
|
__decorate([
|
|
4672
5125
|
HostBinding('attr.aria-disabled'),
|
|
4673
|
-
HostBinding('class.k-
|
|
5126
|
+
HostBinding('class.k-disabled'),
|
|
4674
5127
|
__metadata("design:type", Boolean),
|
|
4675
5128
|
__metadata("design:paramtypes", [])
|
|
4676
5129
|
], DialItemComponent.prototype, "disabledClass", null);
|