@progress/kendo-angular-inputs 15.5.0-develop.12 → 15.5.0-develop.13
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/checkbox/checkbox.component.d.ts +71 -0
- package/checkbox/checked-state.d.ts +13 -0
- package/checkbox.module.d.ts +6 -3
- package/common/radio-checkbox.base.d.ts +166 -0
- package/common/utils.d.ts +11 -0
- package/esm2020/checkbox/checkbox.component.mjs +215 -0
- package/esm2020/checkbox/checked-state.mjs +5 -0
- package/esm2020/checkbox.module.mjs +10 -7
- package/esm2020/common/radio-checkbox.base.mjs +278 -0
- package/esm2020/common/utils.mjs +7 -0
- package/esm2020/index.mjs +4 -0
- package/esm2020/package-metadata.mjs +2 -2
- package/esm2020/radiobutton/radiobutton.component.mjs +192 -0
- package/esm2020/radiobutton.module.mjs +9 -6
- package/esm2020/textarea/textarea.component.mjs +1 -1
- package/esm2020/textbox/textbox.component.mjs +1 -1
- package/fesm2015/progress-kendo-angular-inputs.mjs +814 -156
- package/fesm2020/progress-kendo-angular-inputs.mjs +811 -156
- package/index.d.ts +3 -0
- package/package.json +10 -10
- package/radiobutton/radiobutton.component.d.ts +50 -0
- package/radiobutton.module.d.ts +6 -3
- package/textarea/textarea.component.d.ts +1 -1
- package/textbox/textbox.component.d.ts +1 -1
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2024 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { Input, Component, Renderer2, Output, EventEmitter, ViewChild, ElementRef, Injector, ChangeDetectorRef, NgZone, Inject } from '@angular/core';
|
|
6
|
+
import { NgControl } from '@angular/forms';
|
|
7
|
+
import { guid, hasObservers, isControlRequired, isObjectPresent, isPresent, parseAttributes, removeHTMLAttributes, setHTMLAttributes } from '@progress/kendo-angular-common';
|
|
8
|
+
import { COMPONENT_TYPE, getStylingClasses, requiresZoneOnBlur } from './utils';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
const FOCUSED = 'k-focus';
|
|
11
|
+
const DEFAULT_SIZE = 'medium';
|
|
12
|
+
/**
|
|
13
|
+
* @hidden
|
|
14
|
+
*/
|
|
15
|
+
export class RadioCheckBoxBase {
|
|
16
|
+
constructor(componentType, hostElement, renderer, cdr, ngZone, injector) {
|
|
17
|
+
this.componentType = componentType;
|
|
18
|
+
this.hostElement = hostElement;
|
|
19
|
+
this.renderer = renderer;
|
|
20
|
+
this.cdr = cdr;
|
|
21
|
+
this.ngZone = ngZone;
|
|
22
|
+
this.injector = injector;
|
|
23
|
+
/**
|
|
24
|
+
* @hidden
|
|
25
|
+
*/
|
|
26
|
+
this.focusableId = `k-${guid()}`;
|
|
27
|
+
/**
|
|
28
|
+
* Sets the disabled state of the component.
|
|
29
|
+
*
|
|
30
|
+
* @default false
|
|
31
|
+
*/
|
|
32
|
+
this.disabled = false;
|
|
33
|
+
/**
|
|
34
|
+
* Specifies the `tabindex` of the component.
|
|
35
|
+
*
|
|
36
|
+
* @default 0
|
|
37
|
+
*/
|
|
38
|
+
this.tabindex = 0;
|
|
39
|
+
/**
|
|
40
|
+
* Fires each time the user focuses the component.
|
|
41
|
+
*
|
|
42
|
+
* > To wire the event programmatically, use the `onFocus` property.
|
|
43
|
+
*/
|
|
44
|
+
this.onFocus = new EventEmitter();
|
|
45
|
+
/**
|
|
46
|
+
* Fires each time the component gets blurred.
|
|
47
|
+
*
|
|
48
|
+
* > To wire the event programmatically, use the `onBlur` property.
|
|
49
|
+
*/
|
|
50
|
+
this.onBlur = new EventEmitter();
|
|
51
|
+
/**
|
|
52
|
+
* @hidden
|
|
53
|
+
*/
|
|
54
|
+
this.handleInputBlur = () => {
|
|
55
|
+
this.cdr.markForCheck();
|
|
56
|
+
if (requiresZoneOnBlur(this.control)) {
|
|
57
|
+
this.ngZone.run(() => {
|
|
58
|
+
this.ngTouched();
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
this.focusChangedProgrammatically = false;
|
|
63
|
+
this.parsedAttributes = {};
|
|
64
|
+
this.ngChange = (_) => { };
|
|
65
|
+
this.ngTouched = () => { };
|
|
66
|
+
this._isFocused = false;
|
|
67
|
+
this._size = DEFAULT_SIZE;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* @hidden
|
|
71
|
+
*/
|
|
72
|
+
set tabIndex(tabIndex) {
|
|
73
|
+
this.tabindex = tabIndex;
|
|
74
|
+
}
|
|
75
|
+
get tabIndex() {
|
|
76
|
+
return this.tabindex;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* The size property specifies the width and height of the component.
|
|
80
|
+
*
|
|
81
|
+
* @default 'medium'
|
|
82
|
+
*
|
|
83
|
+
* The possible values are:
|
|
84
|
+
* * `small`
|
|
85
|
+
* * `medium`
|
|
86
|
+
* * `large`
|
|
87
|
+
* * `none`
|
|
88
|
+
*/
|
|
89
|
+
set size(size) {
|
|
90
|
+
const newSize = size ? size : DEFAULT_SIZE;
|
|
91
|
+
this.handleClasses(newSize, 'size');
|
|
92
|
+
this._size = newSize;
|
|
93
|
+
}
|
|
94
|
+
get size() {
|
|
95
|
+
return this._size;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Sets the HTML attributes of the inner focusable input element. Attributes which are essential for certain component functionalities cannot be changed.
|
|
99
|
+
*/
|
|
100
|
+
set inputAttributes(attributes) {
|
|
101
|
+
if (isObjectPresent(this.parsedAttributes)) {
|
|
102
|
+
removeHTMLAttributes(this.parsedAttributes, this.renderer, this.input.nativeElement);
|
|
103
|
+
}
|
|
104
|
+
this._inputAttributes = attributes;
|
|
105
|
+
this.parsedAttributes = this.inputAttributes ?
|
|
106
|
+
parseAttributes(this.inputAttributes, this.defaultAttributes) :
|
|
107
|
+
this.inputAttributes;
|
|
108
|
+
this.setInputAttributes();
|
|
109
|
+
}
|
|
110
|
+
get inputAttributes() {
|
|
111
|
+
return this._inputAttributes;
|
|
112
|
+
}
|
|
113
|
+
ngOnInit() {
|
|
114
|
+
this.control = this.injector.get(NgControl, null);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Focuses the component.
|
|
118
|
+
*/
|
|
119
|
+
focus() {
|
|
120
|
+
if (!this.input) {
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
this.focusChangedProgrammatically = true;
|
|
124
|
+
this.isFocused = true;
|
|
125
|
+
this.input.nativeElement.focus();
|
|
126
|
+
this.focusChangedProgrammatically = false;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Blurs the component.
|
|
130
|
+
*/
|
|
131
|
+
blur() {
|
|
132
|
+
this.focusChangedProgrammatically = true;
|
|
133
|
+
const isFocusedElement = this.hostElement.nativeElement.querySelector(':focus');
|
|
134
|
+
if (isFocusedElement) {
|
|
135
|
+
isFocusedElement.blur();
|
|
136
|
+
}
|
|
137
|
+
this.isFocused = false;
|
|
138
|
+
this.focusChangedProgrammatically = false;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* @hidden
|
|
142
|
+
*/
|
|
143
|
+
handleFocus() {
|
|
144
|
+
this.ngZone.run(() => {
|
|
145
|
+
if (!this.focusChangedProgrammatically && hasObservers(this.onFocus)) {
|
|
146
|
+
this.onFocus.emit();
|
|
147
|
+
}
|
|
148
|
+
this.isFocused = true;
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* @hidden
|
|
153
|
+
*/
|
|
154
|
+
handleBlur() {
|
|
155
|
+
this.ngZone.run(() => {
|
|
156
|
+
if (!this.focusChangedProgrammatically) {
|
|
157
|
+
this.ngTouched();
|
|
158
|
+
this.onBlur.emit();
|
|
159
|
+
}
|
|
160
|
+
this.isFocused = false;
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* @hidden
|
|
165
|
+
*/
|
|
166
|
+
registerOnChange(fn) {
|
|
167
|
+
this.ngChange = fn;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* @hidden
|
|
171
|
+
*/
|
|
172
|
+
registerOnTouched(fn) {
|
|
173
|
+
this.ngTouched = fn;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* @hidden
|
|
177
|
+
*/
|
|
178
|
+
get isControlRequired() {
|
|
179
|
+
return isControlRequired(this.control?.control);
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* @hidden
|
|
183
|
+
*/
|
|
184
|
+
get isControlInvalid() {
|
|
185
|
+
return this.control && this.control.touched && !this.control.valid;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* @hidden
|
|
189
|
+
*/
|
|
190
|
+
get isFocused() {
|
|
191
|
+
return this._isFocused;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* @hidden
|
|
195
|
+
*/
|
|
196
|
+
set isFocused(value) {
|
|
197
|
+
if (this._isFocused !== value && this.input) {
|
|
198
|
+
const element = this.input.nativeElement;
|
|
199
|
+
if (value && !this.disabled) {
|
|
200
|
+
this.renderer.addClass(element, FOCUSED);
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
this.renderer.removeClass(element, FOCUSED);
|
|
204
|
+
}
|
|
205
|
+
this._isFocused = value;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* @hidden
|
|
210
|
+
* Called when the status of the component changes to or from `disabled`.
|
|
211
|
+
* Depending on the value, it enables or disables the appropriate DOM element.
|
|
212
|
+
*
|
|
213
|
+
* @param isDisabled
|
|
214
|
+
*/
|
|
215
|
+
setDisabledState(isDisabled) {
|
|
216
|
+
this.cdr.markForCheck();
|
|
217
|
+
this.disabled = isDisabled;
|
|
218
|
+
}
|
|
219
|
+
get defaultAttributes() { return; }
|
|
220
|
+
/**
|
|
221
|
+
* @hidden
|
|
222
|
+
*/
|
|
223
|
+
writeValue(_value) { }
|
|
224
|
+
handleClasses(value, input) {
|
|
225
|
+
if (!isPresent(this.input)) {
|
|
226
|
+
return;
|
|
227
|
+
}
|
|
228
|
+
const inputElem = this.input.nativeElement;
|
|
229
|
+
const classes = getStylingClasses(this.componentType, input, this[input], value);
|
|
230
|
+
if (classes.toRemove) {
|
|
231
|
+
this.renderer.removeClass(inputElem, classes.toRemove);
|
|
232
|
+
}
|
|
233
|
+
if (classes.toAdd) {
|
|
234
|
+
this.renderer.addClass(inputElem, classes.toAdd);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
setInputAttributes() {
|
|
238
|
+
setHTMLAttributes(this.parsedAttributes, this.renderer, this.input.nativeElement);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
RadioCheckBoxBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RadioCheckBoxBase, deps: [{ token: COMPONENT_TYPE }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
242
|
+
RadioCheckBoxBase.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: RadioCheckBoxBase, selector: "ng-component", inputs: { focusableId: "focusableId", title: "title", name: "name", disabled: "disabled", tabindex: "tabindex", tabIndex: "tabIndex", value: "value", size: "size", inputAttributes: "inputAttributes" }, outputs: { onFocus: "focus", onBlur: "blur" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: '', isInline: true });
|
|
243
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RadioCheckBoxBase, decorators: [{
|
|
244
|
+
type: Component,
|
|
245
|
+
args: [{
|
|
246
|
+
template: ''
|
|
247
|
+
}]
|
|
248
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
249
|
+
type: Inject,
|
|
250
|
+
args: [COMPONENT_TYPE]
|
|
251
|
+
}] }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i0.Injector }]; }, propDecorators: { focusableId: [{
|
|
252
|
+
type: Input
|
|
253
|
+
}], title: [{
|
|
254
|
+
type: Input
|
|
255
|
+
}], name: [{
|
|
256
|
+
type: Input
|
|
257
|
+
}], disabled: [{
|
|
258
|
+
type: Input
|
|
259
|
+
}], tabindex: [{
|
|
260
|
+
type: Input
|
|
261
|
+
}], tabIndex: [{
|
|
262
|
+
type: Input
|
|
263
|
+
}], value: [{
|
|
264
|
+
type: Input
|
|
265
|
+
}], size: [{
|
|
266
|
+
type: Input
|
|
267
|
+
}], inputAttributes: [{
|
|
268
|
+
type: Input
|
|
269
|
+
}], onFocus: [{
|
|
270
|
+
type: Output,
|
|
271
|
+
args: ['focus']
|
|
272
|
+
}], onBlur: [{
|
|
273
|
+
type: Output,
|
|
274
|
+
args: ['blur']
|
|
275
|
+
}], input: [{
|
|
276
|
+
type: ViewChild,
|
|
277
|
+
args: ['input', { static: true }]
|
|
278
|
+
}] } });
|
package/esm2020/common/utils.mjs
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Copyright © 2024 Progress Software Corporation. All rights reserved.
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { InjectionToken } from "@angular/core";
|
|
5
6
|
/**
|
|
6
7
|
* @hidden
|
|
7
8
|
*
|
|
@@ -79,3 +80,9 @@ export const getStylingClasses = (componentType, stylingOption, previousValue, n
|
|
|
79
80
|
break;
|
|
80
81
|
}
|
|
81
82
|
};
|
|
83
|
+
/**
|
|
84
|
+
* @hidden
|
|
85
|
+
*
|
|
86
|
+
* Used to differentiate between the Radio and CheckBox components in their base class.
|
|
87
|
+
*/
|
|
88
|
+
export const COMPONENT_TYPE = new InjectionToken('TYPE_TOKEN');
|
package/esm2020/index.mjs
CHANGED
|
@@ -42,6 +42,10 @@ export { FormFieldModule } from './formfield.module';
|
|
|
42
42
|
export { TextBoxComponent } from './textbox/textbox.component';
|
|
43
43
|
export { TextBoxPrefixTemplateDirective } from './textbox/textbox-prefix.directive';
|
|
44
44
|
export { TextBoxSuffixTemplateDirective } from './textbox/textbox-suffix.directive';
|
|
45
|
+
//CheckBox Component
|
|
46
|
+
export { CheckBoxComponent } from './checkbox/checkbox.component';
|
|
47
|
+
//RadioButton Component
|
|
48
|
+
export { RadioButtonComponent } from './radiobutton/radiobutton.component';
|
|
45
49
|
//TextArea Component
|
|
46
50
|
export { TextAreaComponent } from './textarea/textarea.component';
|
|
47
51
|
export { TextAreaPrefixComponent } from './textarea/textarea-prefix.component';
|
|
@@ -9,7 +9,7 @@ export const packageMetadata = {
|
|
|
9
9
|
name: '@progress/kendo-angular-inputs',
|
|
10
10
|
productName: 'Kendo UI for Angular',
|
|
11
11
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
12
|
-
publishDate:
|
|
13
|
-
version: '15.5.0-develop.
|
|
12
|
+
publishDate: 1713265586,
|
|
13
|
+
version: '15.5.0-develop.13',
|
|
14
14
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
15
15
|
};
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2024 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { Component, ElementRef, forwardRef, Input, HostBinding, Renderer2, Output, EventEmitter, ChangeDetectorRef, NgZone, Injector } from '@angular/core';
|
|
6
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
7
|
+
import { KendoInput } from '@progress/kendo-angular-common';
|
|
8
|
+
import { validatePackage } from '@progress/kendo-licensing';
|
|
9
|
+
import { L10N_PREFIX, LocalizationService } from '@progress/kendo-angular-l10n';
|
|
10
|
+
import { packageMetadata } from '../package-metadata';
|
|
11
|
+
import { Subscription } from 'rxjs';
|
|
12
|
+
import { RadioCheckBoxBase } from '../common/radio-checkbox.base';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
import * as i1 from "@progress/kendo-angular-l10n";
|
|
15
|
+
import * as i2 from "../shared/shared-events.directive";
|
|
16
|
+
import * as i3 from "@progress/kendo-angular-common";
|
|
17
|
+
export class RadioButtonComponent extends RadioCheckBoxBase {
|
|
18
|
+
constructor(renderer, hostElement, cdr, ngZone, injector, localizationService) {
|
|
19
|
+
super('radio', hostElement, renderer, cdr, ngZone, injector);
|
|
20
|
+
this.renderer = renderer;
|
|
21
|
+
this.hostElement = hostElement;
|
|
22
|
+
this.cdr = cdr;
|
|
23
|
+
this.ngZone = ngZone;
|
|
24
|
+
this.injector = injector;
|
|
25
|
+
this.localizationService = localizationService;
|
|
26
|
+
this.hostClass = true;
|
|
27
|
+
/**
|
|
28
|
+
* Specifies the checked state of the RadioButton.
|
|
29
|
+
*
|
|
30
|
+
* @default false
|
|
31
|
+
*/
|
|
32
|
+
this.checked = false;
|
|
33
|
+
/**
|
|
34
|
+
* Fires each time the checked state is changed.
|
|
35
|
+
* When the state of the component is programmatically changed to `ngModel` or `formControl`
|
|
36
|
+
* through its API or form binding, the `checkedStateChange` event is not triggered because it
|
|
37
|
+
* might cause a mix-up with the built-in mechanisms of the `ngModel` or `formControl` bindings.
|
|
38
|
+
*
|
|
39
|
+
* Used to provide a two-way binding for the `checked` property.
|
|
40
|
+
*/
|
|
41
|
+
this.checkedChange = new EventEmitter();
|
|
42
|
+
this.subs = new Subscription();
|
|
43
|
+
/**
|
|
44
|
+
* @hidden
|
|
45
|
+
*/
|
|
46
|
+
this.handleChange = ($event) => {
|
|
47
|
+
this.ngZone.run(() => {
|
|
48
|
+
this.checked = $event.target.checked;
|
|
49
|
+
this.checkedChange.emit(this.checked);
|
|
50
|
+
this.ngChange($event.target.value);
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
validatePackage(packageMetadata);
|
|
54
|
+
this.direction = localizationService.rtl ? 'rtl' : 'ltr';
|
|
55
|
+
}
|
|
56
|
+
get defaultAttributes() {
|
|
57
|
+
return {
|
|
58
|
+
type: 'radio',
|
|
59
|
+
id: this.focusableId,
|
|
60
|
+
title: this.title,
|
|
61
|
+
tabindex: this.tabindex,
|
|
62
|
+
tabIndex: this.tabindex,
|
|
63
|
+
disabled: this.disabled ? '' : null,
|
|
64
|
+
value: this.value,
|
|
65
|
+
checked: this.checked,
|
|
66
|
+
name: this.name,
|
|
67
|
+
'aria-invalid': this.isControlInvalid
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
ngOnInit() {
|
|
71
|
+
super.ngOnInit();
|
|
72
|
+
this.subs.add(this.localizationService.changes.subscribe(({ rtl }) => {
|
|
73
|
+
this.direction = rtl ? 'rtl' : 'ltr';
|
|
74
|
+
}));
|
|
75
|
+
}
|
|
76
|
+
ngAfterViewInit() {
|
|
77
|
+
const stylingInputs = ['size'];
|
|
78
|
+
stylingInputs.forEach(input => {
|
|
79
|
+
this.handleClasses(this[input], input);
|
|
80
|
+
});
|
|
81
|
+
// Otherwise the view is not updated in Reactive Forms - https://github.com/angular/angular/issues/13792
|
|
82
|
+
if (this.control) {
|
|
83
|
+
this.subs.add(this.control.valueChanges.subscribe(e => {
|
|
84
|
+
this.control.control.setValue(e, { emitEvent: false });
|
|
85
|
+
}));
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
ngOnDestroy() {
|
|
89
|
+
this.subs.unsubscribe();
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* @hidden
|
|
93
|
+
*/
|
|
94
|
+
writeValue(value) {
|
|
95
|
+
this.checked = value === this.value;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
RadioButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RadioButtonComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Injector }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
99
|
+
RadioButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: RadioButtonComponent, selector: "kendo-radiobutton", inputs: { checked: "checked" }, outputs: { checkedChange: "checkedChange" }, host: { properties: { "class.k-radio-wrap": "this.hostClass", "attr.dir": "this.direction" } }, providers: [
|
|
100
|
+
LocalizationService,
|
|
101
|
+
{ provide: L10N_PREFIX, useValue: 'kendo.radiobutton' },
|
|
102
|
+
{
|
|
103
|
+
provide: NG_VALUE_ACCESSOR,
|
|
104
|
+
useExisting: forwardRef(() => RadioButtonComponent),
|
|
105
|
+
multi: true
|
|
106
|
+
},
|
|
107
|
+
{ provide: KendoInput, useExisting: forwardRef(() => RadioButtonComponent) }
|
|
108
|
+
], exportAs: ["kendoRadioButton"], usesInheritance: true, ngImport: i0, template: `
|
|
109
|
+
<ng-container
|
|
110
|
+
kendoInputSharedEvents
|
|
111
|
+
[hostElement]="hostElement"
|
|
112
|
+
[(isFocused)]="isFocused"
|
|
113
|
+
(handleBlur)="handleBlur()"
|
|
114
|
+
(onFocus)="handleFocus()"
|
|
115
|
+
>
|
|
116
|
+
<input #input
|
|
117
|
+
type="radio"
|
|
118
|
+
class="k-radio"
|
|
119
|
+
[id]="focusableId"
|
|
120
|
+
[attr.title]="title"
|
|
121
|
+
[disabled]="disabled"
|
|
122
|
+
[class.k-disabled]="disabled"
|
|
123
|
+
[attr.tabindex]="disabled ? undefined : tabindex"
|
|
124
|
+
[value]="value"
|
|
125
|
+
[name]="name"
|
|
126
|
+
[checked]="checked"
|
|
127
|
+
[class.k-checked]="checked"
|
|
128
|
+
[attr.aria-invalid]="isControlInvalid"
|
|
129
|
+
[attr.required]="isControlRequired ? '' : null"
|
|
130
|
+
[kendoEventsOutsideAngular]="{
|
|
131
|
+
blur: handleInputBlur,
|
|
132
|
+
change: handleChange
|
|
133
|
+
}"
|
|
134
|
+
/>
|
|
135
|
+
</ng-container>
|
|
136
|
+
`, isInline: true, directives: [{ type: i2.SharedInputEventsDirective, selector: "[kendoInputSharedEvents]", inputs: ["hostElement", "clearButtonClicked", "isFocused"], outputs: ["isFocusedChange", "onFocus", "handleBlur"] }, { type: i3.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
|
|
137
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RadioButtonComponent, decorators: [{
|
|
138
|
+
type: Component,
|
|
139
|
+
args: [{
|
|
140
|
+
exportAs: 'kendoRadioButton',
|
|
141
|
+
providers: [
|
|
142
|
+
LocalizationService,
|
|
143
|
+
{ provide: L10N_PREFIX, useValue: 'kendo.radiobutton' },
|
|
144
|
+
{
|
|
145
|
+
provide: NG_VALUE_ACCESSOR,
|
|
146
|
+
useExisting: forwardRef(() => RadioButtonComponent),
|
|
147
|
+
multi: true
|
|
148
|
+
},
|
|
149
|
+
{ provide: KendoInput, useExisting: forwardRef(() => RadioButtonComponent) }
|
|
150
|
+
],
|
|
151
|
+
selector: 'kendo-radiobutton',
|
|
152
|
+
template: `
|
|
153
|
+
<ng-container
|
|
154
|
+
kendoInputSharedEvents
|
|
155
|
+
[hostElement]="hostElement"
|
|
156
|
+
[(isFocused)]="isFocused"
|
|
157
|
+
(handleBlur)="handleBlur()"
|
|
158
|
+
(onFocus)="handleFocus()"
|
|
159
|
+
>
|
|
160
|
+
<input #input
|
|
161
|
+
type="radio"
|
|
162
|
+
class="k-radio"
|
|
163
|
+
[id]="focusableId"
|
|
164
|
+
[attr.title]="title"
|
|
165
|
+
[disabled]="disabled"
|
|
166
|
+
[class.k-disabled]="disabled"
|
|
167
|
+
[attr.tabindex]="disabled ? undefined : tabindex"
|
|
168
|
+
[value]="value"
|
|
169
|
+
[name]="name"
|
|
170
|
+
[checked]="checked"
|
|
171
|
+
[class.k-checked]="checked"
|
|
172
|
+
[attr.aria-invalid]="isControlInvalid"
|
|
173
|
+
[attr.required]="isControlRequired ? '' : null"
|
|
174
|
+
[kendoEventsOutsideAngular]="{
|
|
175
|
+
blur: handleInputBlur,
|
|
176
|
+
change: handleChange
|
|
177
|
+
}"
|
|
178
|
+
/>
|
|
179
|
+
</ng-container>
|
|
180
|
+
`
|
|
181
|
+
}]
|
|
182
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i0.Injector }, { type: i1.LocalizationService }]; }, propDecorators: { hostClass: [{
|
|
183
|
+
type: HostBinding,
|
|
184
|
+
args: ['class.k-radio-wrap']
|
|
185
|
+
}], direction: [{
|
|
186
|
+
type: HostBinding,
|
|
187
|
+
args: ['attr.dir']
|
|
188
|
+
}], checked: [{
|
|
189
|
+
type: Input
|
|
190
|
+
}], checkedChange: [{
|
|
191
|
+
type: Output
|
|
192
|
+
}] } });
|
|
@@ -2,13 +2,16 @@
|
|
|
2
2
|
* Copyright © 2024 Progress Software Corporation. All rights reserved.
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { EventsModule } from '@progress/kendo-angular-common';
|
|
5
6
|
import { NgModule } from '@angular/core';
|
|
6
7
|
import { RadioButtonDirective } from './radiobutton/radiobutton.directive';
|
|
7
8
|
import { CommonModule } from '@angular/common';
|
|
9
|
+
import { RadioButtonComponent } from './radiobutton/radiobutton.component';
|
|
10
|
+
import { SharedEventsModule } from './shared-events.module';
|
|
8
11
|
import * as i0 from "@angular/core";
|
|
9
12
|
/**
|
|
10
13
|
* Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
|
|
11
|
-
* definition for the RadioButton directive.
|
|
14
|
+
* definition for the RadioButton directive and RadioButtonComponent.
|
|
12
15
|
*
|
|
13
16
|
* @example
|
|
14
17
|
*
|
|
@@ -40,13 +43,13 @@ import * as i0 from "@angular/core";
|
|
|
40
43
|
export class RadioButtonModule {
|
|
41
44
|
}
|
|
42
45
|
RadioButtonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RadioButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
43
|
-
RadioButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RadioButtonModule, declarations: [RadioButtonDirective], imports: [CommonModule], exports: [RadioButtonDirective] });
|
|
44
|
-
RadioButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RadioButtonModule, imports: [[CommonModule]] });
|
|
46
|
+
RadioButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RadioButtonModule, declarations: [RadioButtonDirective, RadioButtonComponent], imports: [CommonModule, EventsModule, SharedEventsModule], exports: [RadioButtonDirective, RadioButtonComponent] });
|
|
47
|
+
RadioButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RadioButtonModule, imports: [[CommonModule, EventsModule, SharedEventsModule]] });
|
|
45
48
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RadioButtonModule, decorators: [{
|
|
46
49
|
type: NgModule,
|
|
47
50
|
args: [{
|
|
48
|
-
declarations: [RadioButtonDirective],
|
|
49
|
-
exports: [RadioButtonDirective],
|
|
50
|
-
imports: [CommonModule]
|
|
51
|
+
declarations: [RadioButtonDirective, RadioButtonComponent],
|
|
52
|
+
exports: [RadioButtonDirective, RadioButtonComponent],
|
|
53
|
+
imports: [CommonModule, EventsModule, SharedEventsModule]
|
|
51
54
|
}]
|
|
52
55
|
}] });
|