@progress/kendo-angular-buttons 23.0.0-develop.1 → 23.0.0-develop.10
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/README.md +2 -1
- package/button/button.component.d.ts +5 -13
- package/buttons.module.d.ts +2 -1
- package/chip/chip-list.component.d.ts +1 -3
- package/chip/chip.component.d.ts +4 -12
- package/directives.d.ts +16 -1
- package/dropdownbutton/dropdownbutton.component.d.ts +3 -7
- package/fesm2022/progress-kendo-angular-buttons.mjs +792 -71
- package/floatingactionbutton/floatingactionbutton.component.d.ts +3 -7
- package/index.d.ts +3 -0
- package/package-metadata.mjs +2 -2
- package/package.json +8 -7
- package/smartpastebutton/models/form-field.d.ts +40 -0
- package/smartpastebutton/models/index.d.ts +6 -0
- package/smartpastebutton/models/service-settings.d.ts +108 -0
- package/smartpastebutton/smartpastebutton.component.d.ts +175 -0
- package/smartpastebutton/smartpastebutton.module.d.ts +27 -0
- package/smartpastebutton/utils.d.ts +50 -0
- package/speechtotextbutton/speechtotextbutton.component.d.ts +5 -10
- package/splitbutton/splitbutton.component.d.ts +4 -12
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
6
|
-
import { Injectable, isDevMode, EventEmitter, Input, HostListener, HostBinding, Output, Optional, Component, ContentChildren, Directive, InjectionToken, Inject, ElementRef, ViewContainerRef, ViewChild, ContentChild, forwardRef, NgModule } from '@angular/core';
|
|
6
|
+
import { Injectable, isDevMode, EventEmitter, Input, HostListener, HostBinding, Output, Optional, Component, ContentChildren, Directive, InjectionToken, Inject, ElementRef, ViewContainerRef, ViewChild, ContentChild, forwardRef, SkipSelf, NgModule } from '@angular/core';
|
|
7
7
|
import { Subject, Subscription, fromEvent, merge, of, from, Observable } from 'rxjs';
|
|
8
8
|
import * as i12 from '@progress/kendo-angular-common';
|
|
9
|
-
import { isDocumentAvailable, isFirefox, isSafari, isChanged, hasObservers, normalizeKeys, Keys, TemplateContextDirective, MultiTabStop, guid, parseCSSClassNames, isPresent as isPresent$1, EventsOutsideAngularDirective, replaceMessagePlaceholder, anyChanged, ToggleButtonTabStopDirective, ResizeBatchService, KENDO_TOGGLEBUTTONTABSTOP } from '@progress/kendo-angular-common';
|
|
9
|
+
import { isDocumentAvailable, isFirefox, isSafari, isChanged, hasObservers, normalizeKeys, Keys, TemplateContextDirective, MultiTabStop, guid, parseCSSClassNames, isPresent as isPresent$1, EventsOutsideAngularDirective, replaceMessagePlaceholder, anyChanged, PreventableEvent as PreventableEvent$1, ToggleButtonTabStopDirective, ResizeBatchService, KENDO_TOGGLEBUTTONTABSTOP } from '@progress/kendo-angular-common';
|
|
10
10
|
export { ToggleButtonTabStopDirective } from '@progress/kendo-angular-common';
|
|
11
|
-
import { caretAltDownIcon, xCircleIcon, moreVerticalIcon, microphoneOutlineIcon, stopSmIcon } from '@progress/kendo-svg-icons';
|
|
11
|
+
import { caretAltDownIcon, xCircleIcon, moreVerticalIcon, microphoneOutlineIcon, stopSmIcon, pasteSparkleIcon } from '@progress/kendo-svg-icons';
|
|
12
12
|
import * as i1 from '@progress/kendo-angular-l10n';
|
|
13
13
|
import { LocalizationService, L10N_PREFIX, ComponentMessages } from '@progress/kendo-angular-l10n';
|
|
14
14
|
import { validatePackage } from '@progress/kendo-licensing';
|
|
@@ -20,6 +20,10 @@ import { PopupService } from '@progress/kendo-angular-popup';
|
|
|
20
20
|
import * as i4 from '@angular/animations';
|
|
21
21
|
import { sequence, query, style, stagger, animate } from '@angular/animations';
|
|
22
22
|
import { KendoSpeechRecognition } from '@progress/kendo-webspeech-common';
|
|
23
|
+
import * as i2 from '@angular/common/http';
|
|
24
|
+
import { HttpHeaders, HttpRequest, HttpEventType } from '@angular/common/http';
|
|
25
|
+
import * as i3$1 from '@angular/forms';
|
|
26
|
+
import { KendoSmartPaste } from '@progress/kendo-smartpaste-common';
|
|
23
27
|
|
|
24
28
|
/**
|
|
25
29
|
* @hidden
|
|
@@ -46,7 +50,7 @@ const packageMetadata = {
|
|
|
46
50
|
productCode: 'KENDOUIANGULAR',
|
|
47
51
|
productCodes: ['KENDOUIANGULAR'],
|
|
48
52
|
publishDate: 0,
|
|
49
|
-
version: '23.0.0-develop.
|
|
53
|
+
version: '23.0.0-develop.10',
|
|
50
54
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
51
55
|
};
|
|
52
56
|
|
|
@@ -276,9 +280,7 @@ class ButtonComponent {
|
|
|
276
280
|
}
|
|
277
281
|
/**
|
|
278
282
|
* Sets the padding of the Button.
|
|
279
|
-
* See [Button Appearance](https://www.telerik.com/kendo-angular-ui/components/buttons/button/appearance#size).
|
|
280
|
-
*
|
|
281
|
-
* @default 'medium'
|
|
283
|
+
* See [Button Appearance](https://www.telerik.com/kendo-angular-ui/components/buttons/button/appearance#size). The default value is set by the Kendo theme.
|
|
282
284
|
*/
|
|
283
285
|
set size(size) {
|
|
284
286
|
this.handleClasses(size, 'size');
|
|
@@ -289,9 +291,7 @@ class ButtonComponent {
|
|
|
289
291
|
}
|
|
290
292
|
/**
|
|
291
293
|
* Sets the border radius of the Button.
|
|
292
|
-
* See [Button Appearance](https://www.telerik.com/kendo-angular-ui/components/buttons/button/appearance#roundness).
|
|
293
|
-
*
|
|
294
|
-
* @default 'medium'
|
|
294
|
+
* See [Button Appearance](https://www.telerik.com/kendo-angular-ui/components/buttons/button/appearance#roundness). The default value is set by the Kendo theme.
|
|
295
295
|
*/
|
|
296
296
|
set rounded(rounded) {
|
|
297
297
|
this.handleClasses(rounded, 'rounded');
|
|
@@ -302,9 +302,7 @@ class ButtonComponent {
|
|
|
302
302
|
}
|
|
303
303
|
/**
|
|
304
304
|
* Sets the background and border styles of the Button.
|
|
305
|
-
* See [Button Appearance](https://www.telerik.com/kendo-angular-ui/components/buttons/button/appearance#fill-mode).
|
|
306
|
-
*
|
|
307
|
-
* @default 'solid'
|
|
305
|
+
* See [Button Appearance](https://www.telerik.com/kendo-angular-ui/components/buttons/button/appearance#fill-mode). The default value is set by the Kendo theme.
|
|
308
306
|
*/
|
|
309
307
|
set fillMode(fillMode) {
|
|
310
308
|
this.handleClasses(fillMode, 'fillMode');
|
|
@@ -316,9 +314,7 @@ class ButtonComponent {
|
|
|
316
314
|
/**
|
|
317
315
|
* Sets a predefined theme color for the Button.
|
|
318
316
|
* The theme color applies as a background and border color and adjusts the text color.
|
|
319
|
-
* See [Button Appearance](https://www.telerik.com/kendo-angular-ui/components/buttons/button/appearance#theme-colors).
|
|
320
|
-
*
|
|
321
|
-
* @default 'base'
|
|
317
|
+
* See [Button Appearance](https://www.telerik.com/kendo-angular-ui/components/buttons/button/appearance#theme-colors). The default value is set by the Kendo theme.
|
|
322
318
|
*/
|
|
323
319
|
set themeColor(themeColor) {
|
|
324
320
|
this.handleThemeColor(themeColor);
|
|
@@ -1118,9 +1114,7 @@ class ChipComponent {
|
|
|
1118
1114
|
disabled = false;
|
|
1119
1115
|
/**
|
|
1120
1116
|
* Sets the padding of the Chip.
|
|
1121
|
-
* See [Chip Appearance](https://www.telerik.com/kendo-angular-ui/components/buttons/chip/appearance#size).
|
|
1122
|
-
*
|
|
1123
|
-
* @default 'medium'
|
|
1117
|
+
* See [Chip Appearance](https://www.telerik.com/kendo-angular-ui/components/buttons/chip/appearance#size). The default value is set by the Kendo theme.
|
|
1124
1118
|
*/
|
|
1125
1119
|
set size(size) {
|
|
1126
1120
|
!this.sizeIsSet && (this.sizeIsSet = true);
|
|
@@ -1132,9 +1126,7 @@ class ChipComponent {
|
|
|
1132
1126
|
}
|
|
1133
1127
|
/**
|
|
1134
1128
|
* Sets the border radius of the Chip.
|
|
1135
|
-
* See [Chip Appearance](https://www.telerik.com/kendo-angular-ui/components/buttons/chip/appearance#roundness).
|
|
1136
|
-
*
|
|
1137
|
-
* @default 'medium'
|
|
1129
|
+
* See [Chip Appearance](https://www.telerik.com/kendo-angular-ui/components/buttons/chip/appearance#roundness). The default value is set by the Kendo theme.
|
|
1138
1130
|
*/
|
|
1139
1131
|
set rounded(rounded) {
|
|
1140
1132
|
this.handleClasses(rounded, 'rounded');
|
|
@@ -1145,9 +1137,7 @@ class ChipComponent {
|
|
|
1145
1137
|
}
|
|
1146
1138
|
/**
|
|
1147
1139
|
* Sets the background and border styles of the Chip.
|
|
1148
|
-
* See [Chip Appearance](https://www.telerik.com/kendo-angular-ui/components/buttons/chip/appearance#fill-mode).
|
|
1149
|
-
*
|
|
1150
|
-
* @default 'solid'
|
|
1140
|
+
* See [Chip Appearance](https://www.telerik.com/kendo-angular-ui/components/buttons/chip/appearance#fill-mode). The default value is set by the Kendo theme.
|
|
1151
1141
|
*/
|
|
1152
1142
|
set fillMode(fillMode) {
|
|
1153
1143
|
this.handleClasses(fillMode, 'fillMode');
|
|
@@ -1159,9 +1149,7 @@ class ChipComponent {
|
|
|
1159
1149
|
/**
|
|
1160
1150
|
* Sets a predefined theme color for the Chip.
|
|
1161
1151
|
* The theme color applies as a background and border color and adjusts the text color.
|
|
1162
|
-
* See [Chip Appearance](https://www.telerik.com/kendo-angular-ui/components/buttons/chip/appearance#theme-colors).
|
|
1163
|
-
*
|
|
1164
|
-
* @default 'base'
|
|
1152
|
+
* See [Chip Appearance](https://www.telerik.com/kendo-angular-ui/components/buttons/chip/appearance#theme-colors). The default value is set by the Kendo theme.
|
|
1165
1153
|
*/
|
|
1166
1154
|
set themeColor(themeColor) {
|
|
1167
1155
|
this.handleThemeColor(themeColor);
|
|
@@ -1626,9 +1614,7 @@ class ChipListComponent {
|
|
|
1626
1614
|
selection = 'none';
|
|
1627
1615
|
/**
|
|
1628
1616
|
* Sets the gap between the Chips in the ChipList.
|
|
1629
|
-
* See [ChipList Appearance](https://www.telerik.com/kendo-angular-ui/components/buttons/chiplist/appearance#size).
|
|
1630
|
-
*
|
|
1631
|
-
* @default 'medium'
|
|
1617
|
+
* See [ChipList Appearance](https://www.telerik.com/kendo-angular-ui/components/buttons/chiplist/appearance#size). The default value is set by the Kendo theme.
|
|
1632
1618
|
*/
|
|
1633
1619
|
set size(size) {
|
|
1634
1620
|
this.handleClasses(size, 'size');
|
|
@@ -2887,18 +2873,15 @@ class DropDownButtonComponent extends ListButton {
|
|
|
2887
2873
|
return this._data;
|
|
2888
2874
|
}
|
|
2889
2875
|
/**
|
|
2890
|
-
* Specifies the padding of the DropDownButton. See [DropDownButton Appearance](https://www.telerik.com/kendo-angular-ui/components/buttons/dropdownbutton/appearance#size).
|
|
2891
|
-
* @default 'medium'
|
|
2876
|
+
* Specifies the padding of the DropDownButton. See [DropDownButton Appearance](https://www.telerik.com/kendo-angular-ui/components/buttons/dropdownbutton/appearance#size). The default value is set by the Kendo theme.
|
|
2892
2877
|
*/
|
|
2893
2878
|
size = undefined;
|
|
2894
2879
|
/**
|
|
2895
|
-
* Specifies the border radius of the DropDownButton. See [DropDownButton Appearance](https://www.telerik.com/kendo-angular-ui/components/buttons/dropdownbutton/appearance#roundness).
|
|
2896
|
-
* @default 'medium'
|
|
2880
|
+
* Specifies the border radius of the DropDownButton. See [DropDownButton Appearance](https://www.telerik.com/kendo-angular-ui/components/buttons/dropdownbutton/appearance#roundness). The default value is set by the Kendo theme.
|
|
2897
2881
|
*/
|
|
2898
2882
|
rounded = undefined;
|
|
2899
2883
|
/**
|
|
2900
|
-
* Specifies the background and border styles of the DropDownButton. See [DropDownButton Appearance](https://www.telerik.com/kendo-angular-ui/components/buttons/dropdownbutton/appearance#fill-mode).
|
|
2901
|
-
* @default 'solid'
|
|
2884
|
+
* Specifies the background and border styles of the DropDownButton. See [DropDownButton Appearance](https://www.telerik.com/kendo-angular-ui/components/buttons/dropdownbutton/appearance#fill-mode). The default value is set by the Kendo theme.
|
|
2902
2885
|
*/
|
|
2903
2886
|
set fillMode(fillMode) {
|
|
2904
2887
|
this._fillMode = fillMode === 'clear' ? 'flat' : fillMode;
|
|
@@ -2908,7 +2891,6 @@ class DropDownButtonComponent extends ListButton {
|
|
|
2908
2891
|
}
|
|
2909
2892
|
/**
|
|
2910
2893
|
* Specifies predefined theme colors for the DropDownButton. See [DropDownButton Appearance](https://www.telerik.com/kendo-angular-ui/components/buttons/dropdownbutton/appearance#theme-colors).
|
|
2911
|
-
* @default 'base'
|
|
2912
2894
|
*/
|
|
2913
2895
|
themeColor = undefined;
|
|
2914
2896
|
/**
|
|
@@ -3698,8 +3680,7 @@ class FloatingActionButtonComponent {
|
|
|
3698
3680
|
dialItemTemplate;
|
|
3699
3681
|
fabTemplate;
|
|
3700
3682
|
/**
|
|
3701
|
-
* Specifies the theme color of the FloatingActionButton ([see example](https://www.telerik.com/kendo-angular-ui/components/buttons/floatingactionbutton/appearance#theme-colors)).
|
|
3702
|
-
* @default "primary"
|
|
3683
|
+
* Specifies the theme color of the FloatingActionButton ([see example](https://www.telerik.com/kendo-angular-ui/components/buttons/floatingactionbutton/appearance#theme-colors)). The default value is set by the Kendo theme.
|
|
3703
3684
|
*/
|
|
3704
3685
|
set themeColor(themeColor) {
|
|
3705
3686
|
this.handleClasses(themeColor, 'themeColor');
|
|
@@ -3709,8 +3690,7 @@ class FloatingActionButtonComponent {
|
|
|
3709
3690
|
return this._themeColor;
|
|
3710
3691
|
}
|
|
3711
3692
|
/**
|
|
3712
|
-
* Specifies the size of the FloatingActionButton ([see example](https://www.telerik.com/kendo-angular-ui/components/buttons/floatingactionbutton/appearance#size)).
|
|
3713
|
-
* @default "medium"
|
|
3693
|
+
* Specifies the size of the FloatingActionButton ([see example](https://www.telerik.com/kendo-angular-ui/components/buttons/floatingactionbutton/appearance#size)). The default value is set by the Kendo theme.
|
|
3714
3694
|
*/
|
|
3715
3695
|
set size(size) {
|
|
3716
3696
|
this.handleClasses(size, 'size');
|
|
@@ -3720,9 +3700,7 @@ class FloatingActionButtonComponent {
|
|
|
3720
3700
|
return this._size;
|
|
3721
3701
|
}
|
|
3722
3702
|
/**
|
|
3723
|
-
* Specifies the border radius of the FloatingActionButton ([see example](https://www.telerik.com/kendo-angular-ui/components/buttons/floatingactionbutton/appearance#roundness)).
|
|
3724
|
-
*
|
|
3725
|
-
* @default "full"
|
|
3703
|
+
* Specifies the border radius of the FloatingActionButton ([see example](https://www.telerik.com/kendo-angular-ui/components/buttons/floatingactionbutton/appearance#roundness)). The default value is set by the Kendo theme.
|
|
3726
3704
|
*/
|
|
3727
3705
|
set rounded(rounded) {
|
|
3728
3706
|
this.handleClasses(rounded, 'rounded');
|
|
@@ -4729,15 +4707,11 @@ class SplitButtonComponent extends ListButton {
|
|
|
4729
4707
|
*/
|
|
4730
4708
|
imageUrl = '';
|
|
4731
4709
|
/**
|
|
4732
|
-
* Configures the padding of the SplitButton ([see example](https://www.telerik.com/kendo-angular-ui/components/buttons/api/splitbuttoncomponent#size)).
|
|
4733
|
-
*
|
|
4734
|
-
* @default 'medium'
|
|
4710
|
+
* Configures the padding of the SplitButton ([see example](https://www.telerik.com/kendo-angular-ui/components/buttons/api/splitbuttoncomponent#size)). The default value is set by the Kendo theme.
|
|
4735
4711
|
*/
|
|
4736
4712
|
size = undefined;
|
|
4737
4713
|
/**
|
|
4738
|
-
* Configures the border radius of the SplitButton ([see example](https://www.telerik.com/kendo-angular-ui/components/buttons/api/splitbuttoncomponent#rounded)).
|
|
4739
|
-
*
|
|
4740
|
-
* @default 'medium'
|
|
4714
|
+
* Configures the border radius of the SplitButton ([see example](https://www.telerik.com/kendo-angular-ui/components/buttons/api/splitbuttoncomponent#rounded)). The default value is set by the Kendo theme.
|
|
4741
4715
|
*/
|
|
4742
4716
|
set rounded(rounded) {
|
|
4743
4717
|
this.handleClasses(rounded, 'rounded');
|
|
@@ -4747,9 +4721,7 @@ class SplitButtonComponent extends ListButton {
|
|
|
4747
4721
|
return this._rounded;
|
|
4748
4722
|
}
|
|
4749
4723
|
/**
|
|
4750
|
-
* Configures the background and border styles of the SplitButton ([see example](https://www.telerik.com/kendo-angular-ui/components/buttons/api/splitbuttoncomponent#fillmode)).
|
|
4751
|
-
*
|
|
4752
|
-
* @default 'solid'
|
|
4724
|
+
* Configures the background and border styles of the SplitButton ([see example](https://www.telerik.com/kendo-angular-ui/components/buttons/api/splitbuttoncomponent#fillmode)). The default value is set by the Kendo theme.
|
|
4753
4725
|
*/
|
|
4754
4726
|
set fillMode(fillMode) {
|
|
4755
4727
|
this._fillMode = fillMode === 'clear' ? 'flat' : fillMode;
|
|
@@ -4758,9 +4730,7 @@ class SplitButtonComponent extends ListButton {
|
|
|
4758
4730
|
return this._fillMode;
|
|
4759
4731
|
}
|
|
4760
4732
|
/**
|
|
4761
|
-
* Configures the theme color of the SplitButton. The theme color applies to the background, border, and text ([see example](https://www.telerik.com/kendo-angular-ui/components/buttons/api/splitbuttoncomponent#themecolor)).
|
|
4762
|
-
*
|
|
4763
|
-
* @default 'base'
|
|
4733
|
+
* Configures the theme color of the SplitButton. The theme color applies to the background, border, and text ([see example](https://www.telerik.com/kendo-angular-ui/components/buttons/api/splitbuttoncomponent#themecolor)). The default value is set by the Kendo theme.
|
|
4764
4734
|
*/
|
|
4765
4735
|
themeColor = undefined;
|
|
4766
4736
|
/**
|
|
@@ -5421,9 +5391,8 @@ class SpeechToTextButtonComponent {
|
|
|
5421
5391
|
return this.isDisabled;
|
|
5422
5392
|
}
|
|
5423
5393
|
/**
|
|
5424
|
-
* Sets the padding of the SpeechToTextButton.
|
|
5394
|
+
* Sets the padding of the SpeechToTextButton. The default value is set by the Kendo theme.
|
|
5425
5395
|
*
|
|
5426
|
-
* @default 'medium'
|
|
5427
5396
|
*/
|
|
5428
5397
|
set size(size) {
|
|
5429
5398
|
this.handleClasses(size, 'size');
|
|
@@ -5433,9 +5402,8 @@ class SpeechToTextButtonComponent {
|
|
|
5433
5402
|
return this._size;
|
|
5434
5403
|
}
|
|
5435
5404
|
/**
|
|
5436
|
-
* Sets the border radius of the SpeechToTextButton.
|
|
5405
|
+
* Sets the border radius of the SpeechToTextButton. The default value is set by the Kendo theme.
|
|
5437
5406
|
*
|
|
5438
|
-
* @default 'medium'
|
|
5439
5407
|
*/
|
|
5440
5408
|
set rounded(rounded) {
|
|
5441
5409
|
this.handleClasses(rounded, 'rounded');
|
|
@@ -5445,9 +5413,7 @@ class SpeechToTextButtonComponent {
|
|
|
5445
5413
|
return this._rounded;
|
|
5446
5414
|
}
|
|
5447
5415
|
/**
|
|
5448
|
-
* Sets the background and border styles of the SpeechToTextButton.
|
|
5449
|
-
*
|
|
5450
|
-
* @default 'solid'
|
|
5416
|
+
* Sets the background and border styles of the SpeechToTextButton. The default value is set by the Kendo theme.
|
|
5451
5417
|
*/
|
|
5452
5418
|
set fillMode(fillMode) {
|
|
5453
5419
|
this.handleClasses(fillMode, 'fillMode');
|
|
@@ -5457,10 +5423,9 @@ class SpeechToTextButtonComponent {
|
|
|
5457
5423
|
return this._fillMode;
|
|
5458
5424
|
}
|
|
5459
5425
|
/**
|
|
5460
|
-
* Sets a predefined theme color for the SpeechToTextButton.
|
|
5461
|
-
* The theme color applies as a background and border color and adjusts the text color.
|
|
5426
|
+
* Sets a predefined theme color for the SpeechToTextButton. The default value is set by the Kendo theme.
|
|
5427
|
+
* The theme color applies as a background and border color and adjusts the text color for contrast.
|
|
5462
5428
|
*
|
|
5463
|
-
* @default 'base'
|
|
5464
5429
|
*/
|
|
5465
5430
|
set themeColor(themeColor) {
|
|
5466
5431
|
this.handleThemeColor(themeColor);
|
|
@@ -5891,6 +5856,716 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
|
|
|
5891
5856
|
args: ['blur']
|
|
5892
5857
|
}] } });
|
|
5893
5858
|
|
|
5859
|
+
/**
|
|
5860
|
+
* @hidden
|
|
5861
|
+
*/
|
|
5862
|
+
const DEFAULT_AI_REQUEST_OPTIONS = {
|
|
5863
|
+
headers: new HttpHeaders({
|
|
5864
|
+
'Content-Type': 'application/json'
|
|
5865
|
+
}),
|
|
5866
|
+
role: 'user',
|
|
5867
|
+
method: 'POST',
|
|
5868
|
+
responseType: 'json'
|
|
5869
|
+
};
|
|
5870
|
+
class SmartPasteRequestStartEvent extends PreventableEvent$1 {
|
|
5871
|
+
/**
|
|
5872
|
+
* Gets the request data to send to the AI service.
|
|
5873
|
+
*/
|
|
5874
|
+
requestData;
|
|
5875
|
+
constructor(requestData) {
|
|
5876
|
+
super();
|
|
5877
|
+
this.requestData = requestData;
|
|
5878
|
+
}
|
|
5879
|
+
}
|
|
5880
|
+
class SmartPasteRequestEndEvent extends PreventableEvent$1 {
|
|
5881
|
+
/**
|
|
5882
|
+
* Gets the HTTP response from the AI service.
|
|
5883
|
+
* Contains an error object when the request fails.
|
|
5884
|
+
*/
|
|
5885
|
+
response;
|
|
5886
|
+
constructor(response) {
|
|
5887
|
+
super();
|
|
5888
|
+
this.response = response;
|
|
5889
|
+
}
|
|
5890
|
+
}
|
|
5891
|
+
|
|
5892
|
+
/**
|
|
5893
|
+
* Checks if a field should be ignored during Smart Paste.
|
|
5894
|
+
*
|
|
5895
|
+
* @hidden
|
|
5896
|
+
*/
|
|
5897
|
+
function isFieldIgnored(element) {
|
|
5898
|
+
return element.hasAttribute('type') && element.type === 'hidden' ||
|
|
5899
|
+
element.hasAttribute('disabled') ||
|
|
5900
|
+
element.hasAttribute('readonly') ||
|
|
5901
|
+
(element.hasAttribute('aria-disabled') && element.getAttribute('aria-disabled') === 'true') ||
|
|
5902
|
+
(element.hasAttribute('aria-readonly') && element.getAttribute('aria-readonly') === 'true') ||
|
|
5903
|
+
(element.hasAttribute('aria-hidden') && element.getAttribute('aria-hidden') === 'true');
|
|
5904
|
+
}
|
|
5905
|
+
/**
|
|
5906
|
+
* @hidden
|
|
5907
|
+
*/
|
|
5908
|
+
const getElementIdentifier = (element) => {
|
|
5909
|
+
if (!isDocumentAvailable()) {
|
|
5910
|
+
return null;
|
|
5911
|
+
}
|
|
5912
|
+
return element.getAttribute('formcontrolname') ||
|
|
5913
|
+
element.getAttribute('name') ||
|
|
5914
|
+
element.id;
|
|
5915
|
+
};
|
|
5916
|
+
/**
|
|
5917
|
+
* Specifies custom inputs (Kendo components) to include in Smart Paste.
|
|
5918
|
+
* Each custom input has an identifier used to detect the component.
|
|
5919
|
+
* Defaults to common Kendo UI components (DropDownList, ComboBox, AutoComplete, MultiSelect, DatePicker, etc.).
|
|
5920
|
+
*
|
|
5921
|
+
* @hidden
|
|
5922
|
+
*/
|
|
5923
|
+
const customInputs = [
|
|
5924
|
+
{ identifier: '.k-checkbox' },
|
|
5925
|
+
{ identifier: '.k-colorpalette' },
|
|
5926
|
+
{ identifier: '.k-colorgradient' },
|
|
5927
|
+
{ identifier: '.k-flatcolorpicker' },
|
|
5928
|
+
{ identifier: '.k-otp' },
|
|
5929
|
+
{ identifier: '.k-textbox' },
|
|
5930
|
+
{ identifier: '.k-radio' },
|
|
5931
|
+
{ identifier: '.k-slider' },
|
|
5932
|
+
{ identifier: '.k-rating' },
|
|
5933
|
+
{ identifier: '.k-signature' },
|
|
5934
|
+
{ identifier: '.k-switch' },
|
|
5935
|
+
{ identifier: '.k-textarea' },
|
|
5936
|
+
{ identifier: '.k-calendar' },
|
|
5937
|
+
{ identifier: '.k-timepicker' },
|
|
5938
|
+
{ identifier: '.k-dateinput' },
|
|
5939
|
+
{ identifier: '.k-datetimepicker' },
|
|
5940
|
+
{ identifier: '.k-dropdownlist' },
|
|
5941
|
+
{ identifier: '.k-combobox' },
|
|
5942
|
+
{ identifier: '.k-autocomplete' },
|
|
5943
|
+
{ identifier: '.k-multiselect' },
|
|
5944
|
+
{ identifier: '.k-datepicker' },
|
|
5945
|
+
{ identifier: '.k-numerictextbox' },
|
|
5946
|
+
{ identifier: '.k-maskedtextbox' },
|
|
5947
|
+
{ identifier: '.k-colorpicker' },
|
|
5948
|
+
{ identifier: '.k-dropdowntree' },
|
|
5949
|
+
{ identifier: '.k-multiselecttree' },
|
|
5950
|
+
];
|
|
5951
|
+
const DATEPICKER_SELECTOR = '.k-datepicker';
|
|
5952
|
+
const TIMEPICKER_SELECTOR = '.k-timepicker';
|
|
5953
|
+
const DATETIMEPICKER_SELECTOR = '.k-datetimepicker';
|
|
5954
|
+
const DATERANGEPICKER_SELECTOR = '.k-daterangepicker';
|
|
5955
|
+
const CHECKBOX_SELECTOR = '.k-checkbox';
|
|
5956
|
+
const RADIO_SELECTOR = '.k-radio';
|
|
5957
|
+
const NUMERICTEXTBOX_SELECTOR = '.k-numerictextbox';
|
|
5958
|
+
/**
|
|
5959
|
+
* @hidden
|
|
5960
|
+
*/
|
|
5961
|
+
const requiresDateValue = (element) => {
|
|
5962
|
+
const isDateInput = [DATEPICKER_SELECTOR, TIMEPICKER_SELECTOR, DATETIMEPICKER_SELECTOR, DATERANGEPICKER_SELECTOR];
|
|
5963
|
+
return isDateInput.some(selector => element.classList.contains(selector.slice(1)));
|
|
5964
|
+
};
|
|
5965
|
+
/**
|
|
5966
|
+
* @hidden
|
|
5967
|
+
*/
|
|
5968
|
+
const requiresBooleanValue = (element) => {
|
|
5969
|
+
const isBooleanInput = [CHECKBOX_SELECTOR, RADIO_SELECTOR];
|
|
5970
|
+
return isBooleanInput.some(selector => element.classList.contains(selector.slice(1)));
|
|
5971
|
+
};
|
|
5972
|
+
/**
|
|
5973
|
+
* @hidden
|
|
5974
|
+
*/
|
|
5975
|
+
const requiresNumericValue = (element) => {
|
|
5976
|
+
const isNumericInput = [NUMERICTEXTBOX_SELECTOR];
|
|
5977
|
+
return isNumericInput.some(selector => element.classList.contains(selector.slice(1)));
|
|
5978
|
+
};
|
|
5979
|
+
/**
|
|
5980
|
+
* @hidden
|
|
5981
|
+
*/
|
|
5982
|
+
const populateCustomInputs = (element, value) => {
|
|
5983
|
+
const parseNumericValue = requiresNumericValue(element);
|
|
5984
|
+
if (parseNumericValue) {
|
|
5985
|
+
const numericValue = parseFloat(value);
|
|
5986
|
+
return !isNaN(numericValue) ? numericValue : null;
|
|
5987
|
+
}
|
|
5988
|
+
const parseBooleanValue = requiresBooleanValue(element);
|
|
5989
|
+
if (parseBooleanValue) {
|
|
5990
|
+
return value.toLowerCase() === 'true';
|
|
5991
|
+
}
|
|
5992
|
+
const parseDateValue = requiresDateValue(element);
|
|
5993
|
+
if (parseDateValue) {
|
|
5994
|
+
const dateValue = new Date(value);
|
|
5995
|
+
return !isNaN(dateValue.getTime()) ? dateValue : null;
|
|
5996
|
+
}
|
|
5997
|
+
return value;
|
|
5998
|
+
};
|
|
5999
|
+
/**
|
|
6000
|
+
* @hidden
|
|
6001
|
+
*/
|
|
6002
|
+
const readClipboard = async () => {
|
|
6003
|
+
return await navigator.clipboard.readText();
|
|
6004
|
+
};
|
|
6005
|
+
/**
|
|
6006
|
+
* @hidden
|
|
6007
|
+
*/
|
|
6008
|
+
const sendSmartPasteRequest = (http, requestData) => {
|
|
6009
|
+
const body = {
|
|
6010
|
+
formFields: requestData.formFields,
|
|
6011
|
+
content: requestData.content
|
|
6012
|
+
};
|
|
6013
|
+
const request = new HttpRequest(requestData.requestOptions?.method || 'POST', requestData.url, body, requestData.requestOptions);
|
|
6014
|
+
return http.request(request).pipe(filter((event) => event.type === HttpEventType.Response));
|
|
6015
|
+
};
|
|
6016
|
+
|
|
6017
|
+
const DEFAULT_SVG_ICON = pasteSparkleIcon;
|
|
6018
|
+
const DEFAULT_ICON = 'paste-sparkle';
|
|
6019
|
+
/**
|
|
6020
|
+
* Represents the Kendo UI SmartPasteButton component for Angular.
|
|
6021
|
+
*
|
|
6022
|
+
* Fills form fields with AI-powered data extraction from clipboard content.
|
|
6023
|
+
*/
|
|
6024
|
+
class SmartPasteButtonComponent {
|
|
6025
|
+
renderer;
|
|
6026
|
+
ngZone;
|
|
6027
|
+
http;
|
|
6028
|
+
controlContainer;
|
|
6029
|
+
/**
|
|
6030
|
+
* Specifies the form controls to include in Smart Paste.
|
|
6031
|
+
* When not set, all form controls are included.
|
|
6032
|
+
*
|
|
6033
|
+
* @default null
|
|
6034
|
+
*/
|
|
6035
|
+
formFields = null;
|
|
6036
|
+
/**
|
|
6037
|
+
* When `true`, disables the SmartPasteButton and prevents user interaction.
|
|
6038
|
+
*
|
|
6039
|
+
* @default false
|
|
6040
|
+
*/
|
|
6041
|
+
set disabled(disabled) {
|
|
6042
|
+
if (disabled && isDocumentAvailable() && isFirefox(navigator.userAgent)) {
|
|
6043
|
+
this.blur();
|
|
6044
|
+
}
|
|
6045
|
+
this.isDisabled = disabled;
|
|
6046
|
+
this.renderer.setProperty(this.element, 'disabled', disabled);
|
|
6047
|
+
}
|
|
6048
|
+
get disabled() {
|
|
6049
|
+
return this.isDisabled;
|
|
6050
|
+
}
|
|
6051
|
+
/**
|
|
6052
|
+
* Sets the padding of the SmartPasteButton.
|
|
6053
|
+
*
|
|
6054
|
+
* @default undefined
|
|
6055
|
+
*/
|
|
6056
|
+
set size(size) {
|
|
6057
|
+
this.handleClasses(size, 'size');
|
|
6058
|
+
this._size = size;
|
|
6059
|
+
}
|
|
6060
|
+
get size() {
|
|
6061
|
+
return this._size;
|
|
6062
|
+
}
|
|
6063
|
+
/**
|
|
6064
|
+
* Sets the border radius of the SmartPasteButton.
|
|
6065
|
+
*
|
|
6066
|
+
* @default undefined
|
|
6067
|
+
*/
|
|
6068
|
+
set rounded(rounded) {
|
|
6069
|
+
this.handleClasses(rounded, 'rounded');
|
|
6070
|
+
this._rounded = rounded;
|
|
6071
|
+
}
|
|
6072
|
+
get rounded() {
|
|
6073
|
+
return this._rounded;
|
|
6074
|
+
}
|
|
6075
|
+
/**
|
|
6076
|
+
* Sets the background and border styles of the SmartPasteButton.
|
|
6077
|
+
*
|
|
6078
|
+
* @default undefined
|
|
6079
|
+
*/
|
|
6080
|
+
set fillMode(fillMode) {
|
|
6081
|
+
this.handleClasses(fillMode, 'fillMode');
|
|
6082
|
+
this._fillMode = fillMode;
|
|
6083
|
+
}
|
|
6084
|
+
get fillMode() {
|
|
6085
|
+
return this._fillMode;
|
|
6086
|
+
}
|
|
6087
|
+
/**
|
|
6088
|
+
* Sets a predefined theme color for the SmartPasteButton.
|
|
6089
|
+
* The theme color applies as a background and border color and adjusts the text color.
|
|
6090
|
+
*
|
|
6091
|
+
* @default undefined
|
|
6092
|
+
*/
|
|
6093
|
+
set themeColor(themeColor) {
|
|
6094
|
+
this.handleThemeColor(themeColor);
|
|
6095
|
+
this._themeColor = themeColor;
|
|
6096
|
+
}
|
|
6097
|
+
get themeColor() {
|
|
6098
|
+
return this._themeColor;
|
|
6099
|
+
}
|
|
6100
|
+
/**
|
|
6101
|
+
* Sets an SVG icon to display inside the SmartPasteButton.
|
|
6102
|
+
*/
|
|
6103
|
+
set svgIcon(icon) {
|
|
6104
|
+
if (isDevMode() && icon && this.iconClass) {
|
|
6105
|
+
throw new Error('Setting both icon/svgIcon and iconClass options at the same time is not supported.');
|
|
6106
|
+
}
|
|
6107
|
+
this._svgIcon = icon;
|
|
6108
|
+
}
|
|
6109
|
+
get svgIcon() {
|
|
6110
|
+
return this._svgIcon;
|
|
6111
|
+
}
|
|
6112
|
+
/**
|
|
6113
|
+
* Specifies a URL for an `img` element inside the SmartPasteButton.
|
|
6114
|
+
* The URL can be relative or absolute. When relative, the browser evaluates it relative to the web page URL.
|
|
6115
|
+
*/
|
|
6116
|
+
imageUrl;
|
|
6117
|
+
/**
|
|
6118
|
+
* Defines one or more CSS classes separated by spaces for a `span` element inside the SmartPasteButton.
|
|
6119
|
+
* Use `iconClass` to add custom icons.
|
|
6120
|
+
*/
|
|
6121
|
+
set iconClass(value) {
|
|
6122
|
+
const hasCustomIcon = this.icon !== DEFAULT_ICON || this.svgIcon !== DEFAULT_SVG_ICON;
|
|
6123
|
+
if (isDevMode() && value && hasCustomIcon) {
|
|
6124
|
+
throw new Error('Setting both icon/svgIcon and iconClass options at the same time is not supported.');
|
|
6125
|
+
}
|
|
6126
|
+
if (!hasCustomIcon) {
|
|
6127
|
+
this._icon = null;
|
|
6128
|
+
this._svgIcon = null;
|
|
6129
|
+
}
|
|
6130
|
+
this._iconClass = value;
|
|
6131
|
+
}
|
|
6132
|
+
get iconClass() {
|
|
6133
|
+
return this._iconClass;
|
|
6134
|
+
}
|
|
6135
|
+
/**
|
|
6136
|
+
* Specifies the icon name to display in the SmartPasteButton.
|
|
6137
|
+
*
|
|
6138
|
+
* @default 'paste-sparkle'
|
|
6139
|
+
*/
|
|
6140
|
+
set icon(name) {
|
|
6141
|
+
if (isDevMode() && name && this.iconClass) {
|
|
6142
|
+
throw new Error('Setting both icon/svgIcon and iconClass options at the same time is not supported.');
|
|
6143
|
+
}
|
|
6144
|
+
this._icon = name;
|
|
6145
|
+
}
|
|
6146
|
+
get icon() {
|
|
6147
|
+
return this._icon;
|
|
6148
|
+
}
|
|
6149
|
+
/**
|
|
6150
|
+
* Sets the URL to which Smart Paste sends the AI request.
|
|
6151
|
+
* When set, the component sends and handles an HTTP request automatically. Handle the `requestStart` event to modify request options before sending.
|
|
6152
|
+
* When not set, the component does not send an HTTP request. Handle the `requestStart` event to send and manage a custom HTTP request.
|
|
6153
|
+
*/
|
|
6154
|
+
requestUrl;
|
|
6155
|
+
/**
|
|
6156
|
+
* Configures the HTTP request options for the AI request.
|
|
6157
|
+
* Use this to customize headers, method, credentials, and other request settings.
|
|
6158
|
+
*/
|
|
6159
|
+
requestOptions;
|
|
6160
|
+
/**
|
|
6161
|
+
* Sets static form field metadata to bypass DOM extraction when Smart Paste runs.
|
|
6162
|
+
* Use this when you want to provide form field configuration directly instead of extracting it from the DOM.
|
|
6163
|
+
*
|
|
6164
|
+
* @default null
|
|
6165
|
+
*/
|
|
6166
|
+
smartPasteFormFields = null;
|
|
6167
|
+
/**
|
|
6168
|
+
* Fires when the Smart Paste request is about to start.
|
|
6169
|
+
* Prevent the event to stop the request before sending it.
|
|
6170
|
+
*/
|
|
6171
|
+
requestStart = new EventEmitter();
|
|
6172
|
+
/**
|
|
6173
|
+
* Fires when the Smart Paste request completes, either successfully or with an error.
|
|
6174
|
+
* Prevent the event to cancel populating the form fields with the response data.
|
|
6175
|
+
*/
|
|
6176
|
+
requestEnd = new EventEmitter();
|
|
6177
|
+
/**
|
|
6178
|
+
* Fires when the user cancels an ongoing Smart Paste request.
|
|
6179
|
+
*/
|
|
6180
|
+
requestCancel = new EventEmitter();
|
|
6181
|
+
get iconButtonClass() {
|
|
6182
|
+
return !this.hasText;
|
|
6183
|
+
}
|
|
6184
|
+
classButton = true;
|
|
6185
|
+
get classDisabled() {
|
|
6186
|
+
return this.isDisabled;
|
|
6187
|
+
}
|
|
6188
|
+
get getDirection() {
|
|
6189
|
+
return this.direction;
|
|
6190
|
+
}
|
|
6191
|
+
onFocus() {
|
|
6192
|
+
this.isFocused = true;
|
|
6193
|
+
}
|
|
6194
|
+
onBlur() {
|
|
6195
|
+
this.isFocused = false;
|
|
6196
|
+
}
|
|
6197
|
+
/**
|
|
6198
|
+
* Focuses the SmartPasteButton.
|
|
6199
|
+
*/
|
|
6200
|
+
focus() {
|
|
6201
|
+
if (isDocumentAvailable()) {
|
|
6202
|
+
this.element.focus();
|
|
6203
|
+
this.isFocused = true;
|
|
6204
|
+
}
|
|
6205
|
+
}
|
|
6206
|
+
/**
|
|
6207
|
+
* Removes focus from the SmartPasteButton.
|
|
6208
|
+
*/
|
|
6209
|
+
blur() {
|
|
6210
|
+
if (isDocumentAvailable()) {
|
|
6211
|
+
this.element.blur();
|
|
6212
|
+
this.isFocused = false;
|
|
6213
|
+
}
|
|
6214
|
+
}
|
|
6215
|
+
get hasText() {
|
|
6216
|
+
return isDocumentAvailable() && this.element.textContent.trim().length > 0;
|
|
6217
|
+
}
|
|
6218
|
+
set isFocused(isFocused) {
|
|
6219
|
+
toggleClass('k-focus', isFocused, this.renderer, this.element);
|
|
6220
|
+
this._focused = isFocused;
|
|
6221
|
+
}
|
|
6222
|
+
get isFocused() {
|
|
6223
|
+
return this._focused;
|
|
6224
|
+
}
|
|
6225
|
+
element;
|
|
6226
|
+
isDisabled = false;
|
|
6227
|
+
subs = new Subscription();
|
|
6228
|
+
_size = undefined;
|
|
6229
|
+
_rounded = undefined;
|
|
6230
|
+
_fillMode = undefined;
|
|
6231
|
+
_themeColor = undefined;
|
|
6232
|
+
_focused = false;
|
|
6233
|
+
direction;
|
|
6234
|
+
_iconClass;
|
|
6235
|
+
_icon = DEFAULT_ICON;
|
|
6236
|
+
_svgIcon = DEFAULT_SVG_ICON;
|
|
6237
|
+
kendoSmartPaste;
|
|
6238
|
+
smartPasteBusy = false;
|
|
6239
|
+
currentRequestSubscription = null;
|
|
6240
|
+
nativeForm = null;
|
|
6241
|
+
constructor(elementRef, renderer, localization, ngZone, http, controlContainer) {
|
|
6242
|
+
this.renderer = renderer;
|
|
6243
|
+
this.ngZone = ngZone;
|
|
6244
|
+
this.http = http;
|
|
6245
|
+
this.controlContainer = controlContainer;
|
|
6246
|
+
validatePackage(packageMetadata);
|
|
6247
|
+
this.direction = localization.rtl ? 'rtl' : 'ltr';
|
|
6248
|
+
this.subs.add(localization.changes.subscribe(({ rtl }) => (this.direction = rtl ? 'rtl' : 'ltr')));
|
|
6249
|
+
this.element = elementRef.nativeElement;
|
|
6250
|
+
}
|
|
6251
|
+
ngOnInit() {
|
|
6252
|
+
this.nativeForm = this.element.form;
|
|
6253
|
+
this.kendoSmartPaste = new KendoSmartPaste({
|
|
6254
|
+
getElement: () => this.nativeForm,
|
|
6255
|
+
customInputs: customInputs || undefined,
|
|
6256
|
+
getSmartPasteField: this.defaultGetSmartPasteField,
|
|
6257
|
+
setKendoInputValue: this.defaultSetKendoInputValue
|
|
6258
|
+
});
|
|
6259
|
+
this.ngZone.runOutsideAngular(() => {
|
|
6260
|
+
this.subs.add(this.renderer.listen(this.element, 'click', this.paste.bind(this)));
|
|
6261
|
+
this.subs.add(this.renderer.listen(this.element, 'mousedown', (event) => {
|
|
6262
|
+
const isBrowserSafari = isDocumentAvailable() && isSafari(navigator.userAgent);
|
|
6263
|
+
if (!this.isDisabled && isBrowserSafari) {
|
|
6264
|
+
event.preventDefault();
|
|
6265
|
+
this.element.focus();
|
|
6266
|
+
}
|
|
6267
|
+
}));
|
|
6268
|
+
});
|
|
6269
|
+
}
|
|
6270
|
+
ngOnDestroy() {
|
|
6271
|
+
this.unsubscribeCurrentRequest();
|
|
6272
|
+
this.subs.unsubscribe();
|
|
6273
|
+
}
|
|
6274
|
+
/**
|
|
6275
|
+
* Starts the Smart Paste operation.
|
|
6276
|
+
* Reads clipboard content and sends it to the AI service for processing.
|
|
6277
|
+
*/
|
|
6278
|
+
async paste() {
|
|
6279
|
+
if (!this.nativeForm) {
|
|
6280
|
+
return;
|
|
6281
|
+
}
|
|
6282
|
+
if (this.smartPasteBusy) {
|
|
6283
|
+
this.requestCancel.emit();
|
|
6284
|
+
this.unsubscribeCurrentRequest();
|
|
6285
|
+
this.smartPasteBusy = false;
|
|
6286
|
+
return;
|
|
6287
|
+
}
|
|
6288
|
+
let clipboardContent;
|
|
6289
|
+
try {
|
|
6290
|
+
clipboardContent = await readClipboard();
|
|
6291
|
+
}
|
|
6292
|
+
catch (error) {
|
|
6293
|
+
this.ngZone.run(() => {
|
|
6294
|
+
const responseErrorEvent = new SmartPasteRequestEndEvent(error);
|
|
6295
|
+
this.requestEnd.emit(responseErrorEvent);
|
|
6296
|
+
});
|
|
6297
|
+
return;
|
|
6298
|
+
}
|
|
6299
|
+
if (!clipboardContent || clipboardContent.trim() === '') {
|
|
6300
|
+
return;
|
|
6301
|
+
}
|
|
6302
|
+
this.smartPasteBusy = true;
|
|
6303
|
+
this.unsubscribeCurrentRequest();
|
|
6304
|
+
const formFields = this.extractFormFields();
|
|
6305
|
+
const requestData = {
|
|
6306
|
+
formFields,
|
|
6307
|
+
content: clipboardContent,
|
|
6308
|
+
url: this.requestUrl,
|
|
6309
|
+
requestOptions: {
|
|
6310
|
+
...this.requestOptions
|
|
6311
|
+
}
|
|
6312
|
+
};
|
|
6313
|
+
if (!this.requestUrl) {
|
|
6314
|
+
this.smartPasteBusy = false;
|
|
6315
|
+
return;
|
|
6316
|
+
}
|
|
6317
|
+
this.ngZone.run(() => {
|
|
6318
|
+
const requestStartEvent = new SmartPasteRequestStartEvent(requestData);
|
|
6319
|
+
this.requestStart.emit(requestStartEvent);
|
|
6320
|
+
if (requestStartEvent.isDefaultPrevented()) {
|
|
6321
|
+
this.smartPasteBusy = false;
|
|
6322
|
+
return;
|
|
6323
|
+
}
|
|
6324
|
+
if (!this.smartPasteBusy) {
|
|
6325
|
+
return;
|
|
6326
|
+
}
|
|
6327
|
+
this.handleSmartPasteRequest(requestData, formFields);
|
|
6328
|
+
});
|
|
6329
|
+
}
|
|
6330
|
+
sendSmartPasteRequest(requestData) {
|
|
6331
|
+
const body = {
|
|
6332
|
+
formFields: requestData.formFields,
|
|
6333
|
+
content: requestData.content
|
|
6334
|
+
};
|
|
6335
|
+
const request = new HttpRequest(requestData.requestOptions?.method || 'POST', requestData.url, body, requestData.requestOptions);
|
|
6336
|
+
return this.http.request(request).pipe(filter((event) => event.type === HttpEventType.Response));
|
|
6337
|
+
}
|
|
6338
|
+
unsubscribeCurrentRequest() {
|
|
6339
|
+
if (this.currentRequestSubscription) {
|
|
6340
|
+
this.currentRequestSubscription.unsubscribe();
|
|
6341
|
+
this.currentRequestSubscription = null;
|
|
6342
|
+
}
|
|
6343
|
+
}
|
|
6344
|
+
defaultGetSmartPasteField = (field) => {
|
|
6345
|
+
const element = field.element;
|
|
6346
|
+
if (isFieldIgnored(element)) {
|
|
6347
|
+
return null;
|
|
6348
|
+
}
|
|
6349
|
+
const hasKendoWrapper = customInputs.some(input => {
|
|
6350
|
+
if (!element.classList.contains(input.identifier.slice(1)) && element.closest(input.identifier)) {
|
|
6351
|
+
return true;
|
|
6352
|
+
}
|
|
6353
|
+
});
|
|
6354
|
+
if (hasKendoWrapper) {
|
|
6355
|
+
return null;
|
|
6356
|
+
}
|
|
6357
|
+
if (field.type === 'kendo-input') {
|
|
6358
|
+
const identifier = getElementIdentifier(element);
|
|
6359
|
+
if (!identifier) {
|
|
6360
|
+
return null;
|
|
6361
|
+
}
|
|
6362
|
+
if (requiresBooleanValue(element)) {
|
|
6363
|
+
field.allowedValues = ['true', 'false'];
|
|
6364
|
+
}
|
|
6365
|
+
field.field = identifier;
|
|
6366
|
+
}
|
|
6367
|
+
return field;
|
|
6368
|
+
};
|
|
6369
|
+
defaultSetKendoInputValue = (field, value) => {
|
|
6370
|
+
const element = field.element;
|
|
6371
|
+
const controlName = getElementIdentifier(element);
|
|
6372
|
+
if (!controlName || !this.controlContainer) {
|
|
6373
|
+
return;
|
|
6374
|
+
}
|
|
6375
|
+
const control = this.controlContainer.control.get?.(controlName);
|
|
6376
|
+
if (!control || typeof control.setValue !== 'function') {
|
|
6377
|
+
return;
|
|
6378
|
+
}
|
|
6379
|
+
const updatedValue = populateCustomInputs(element, value);
|
|
6380
|
+
if (!isPresent$1(updatedValue)) {
|
|
6381
|
+
return;
|
|
6382
|
+
}
|
|
6383
|
+
this.setControlValue(control, updatedValue);
|
|
6384
|
+
};
|
|
6385
|
+
setControlValue(control, value) {
|
|
6386
|
+
this.ngZone.run(() => {
|
|
6387
|
+
control.setValue(value);
|
|
6388
|
+
control.markAsDirty();
|
|
6389
|
+
control.updateValueAndValidity();
|
|
6390
|
+
});
|
|
6391
|
+
}
|
|
6392
|
+
extractFormFields() {
|
|
6393
|
+
if (!this.formFields || this.formFields.length === 0) {
|
|
6394
|
+
return this.kendoSmartPaste.extractFormConfig();
|
|
6395
|
+
}
|
|
6396
|
+
else {
|
|
6397
|
+
const formFields = this.formFields.map(field => {
|
|
6398
|
+
const element = this.nativeForm?.querySelector(`#${field.field}`);
|
|
6399
|
+
return {
|
|
6400
|
+
...field,
|
|
6401
|
+
element
|
|
6402
|
+
};
|
|
6403
|
+
});
|
|
6404
|
+
return formFields;
|
|
6405
|
+
}
|
|
6406
|
+
}
|
|
6407
|
+
handleClasses(value, input) {
|
|
6408
|
+
const elem = this.element;
|
|
6409
|
+
const classes = getStylingClasses('button', input, this[input], value);
|
|
6410
|
+
if (input === 'fillMode') {
|
|
6411
|
+
this.handleThemeColor(this.themeColor);
|
|
6412
|
+
}
|
|
6413
|
+
if (classes.toRemove) {
|
|
6414
|
+
this.renderer.removeClass(elem, classes.toRemove);
|
|
6415
|
+
}
|
|
6416
|
+
if (classes.toAdd) {
|
|
6417
|
+
this.renderer.addClass(elem, classes.toAdd);
|
|
6418
|
+
}
|
|
6419
|
+
}
|
|
6420
|
+
handleThemeColor(value) {
|
|
6421
|
+
const elem = this.element;
|
|
6422
|
+
const themeColorClass = getThemeColorClasses('button', this.themeColor, value);
|
|
6423
|
+
if (themeColorClass.toRemove) {
|
|
6424
|
+
this.renderer.removeClass(elem, themeColorClass.toRemove);
|
|
6425
|
+
}
|
|
6426
|
+
if (themeColorClass.toAdd) {
|
|
6427
|
+
this.renderer.addClass(elem, themeColorClass.toAdd);
|
|
6428
|
+
}
|
|
6429
|
+
}
|
|
6430
|
+
handleSmartPasteRequest(requestData, formFields) {
|
|
6431
|
+
this.currentRequestSubscription = this.sendSmartPasteRequest(requestData).subscribe((response) => {
|
|
6432
|
+
if (!this.smartPasteBusy) {
|
|
6433
|
+
return;
|
|
6434
|
+
}
|
|
6435
|
+
const responseEvent = new SmartPasteRequestEndEvent(response);
|
|
6436
|
+
this.requestEnd.emit(responseEvent);
|
|
6437
|
+
if (responseEvent.isDefaultPrevented()) {
|
|
6438
|
+
this.smartPasteBusy = false;
|
|
6439
|
+
return;
|
|
6440
|
+
}
|
|
6441
|
+
if (response?.body?.fieldValues) {
|
|
6442
|
+
this.kendoSmartPaste.populateFormFields(response.body, formFields);
|
|
6443
|
+
}
|
|
6444
|
+
this.smartPasteBusy = false;
|
|
6445
|
+
this.currentRequestSubscription = null;
|
|
6446
|
+
}, (error) => {
|
|
6447
|
+
if (!this.smartPasteBusy) {
|
|
6448
|
+
return;
|
|
6449
|
+
}
|
|
6450
|
+
const responseErrorEvent = new SmartPasteRequestEndEvent(error);
|
|
6451
|
+
this.requestEnd.emit(responseErrorEvent);
|
|
6452
|
+
this.smartPasteBusy = false;
|
|
6453
|
+
this.currentRequestSubscription = null;
|
|
6454
|
+
});
|
|
6455
|
+
}
|
|
6456
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SmartPasteButtonComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.LocalizationService }, { token: i0.NgZone }, { token: i2.HttpClient }, { token: i3$1.ControlContainer, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
6457
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: SmartPasteButtonComponent, isStandalone: true, selector: "button[kendoSmartPasteButton]", inputs: { formFields: "formFields", disabled: "disabled", size: "size", rounded: "rounded", fillMode: "fillMode", themeColor: "themeColor", svgIcon: "svgIcon", imageUrl: "imageUrl", iconClass: "iconClass", icon: "icon", requestUrl: "requestUrl", requestOptions: "requestOptions", smartPasteFormFields: "smartPasteFormFields" }, outputs: { requestStart: "requestStart", requestEnd: "requestEnd", requestCancel: "requestCancel" }, host: { listeners: { "focus": "onFocus()", "blur": "onBlur()" }, properties: { "class.k-icon-button": "this.iconButtonClass", "class.k-button": "this.classButton", "class.k-disabled": "this.classDisabled", "attr.dir": "this.getDirection" } }, providers: [
|
|
6458
|
+
LocalizationService,
|
|
6459
|
+
{
|
|
6460
|
+
provide: L10N_PREFIX,
|
|
6461
|
+
useValue: 'kendo.smartpastebutton'
|
|
6462
|
+
}
|
|
6463
|
+
], exportAs: ["kendoSmartPasteButton"], ngImport: i0, template: `
|
|
6464
|
+
@if (icon || svgIcon) {
|
|
6465
|
+
<kendo-icon-wrapper
|
|
6466
|
+
innerCssClass="k-button-icon"
|
|
6467
|
+
[name]="icon"
|
|
6468
|
+
[svgIcon]="svgIcon"></kendo-icon-wrapper>
|
|
6469
|
+
}
|
|
6470
|
+
@if (imageUrl) {
|
|
6471
|
+
<span class="k-button-icon k-icon">
|
|
6472
|
+
<img [src]="imageUrl" class="k-image" role="presentation" />
|
|
6473
|
+
</span>
|
|
6474
|
+
}
|
|
6475
|
+
@if (iconClass) {
|
|
6476
|
+
<span class="k-button-icon" [ngClass]="iconClass"></span>
|
|
6477
|
+
}
|
|
6478
|
+
<span class="k-button-text"><ng-content></ng-content></span>
|
|
6479
|
+
`, isInline: true, dependencies: [{ kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
6480
|
+
}
|
|
6481
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SmartPasteButtonComponent, decorators: [{
|
|
6482
|
+
type: Component,
|
|
6483
|
+
args: [{
|
|
6484
|
+
exportAs: 'kendoSmartPasteButton',
|
|
6485
|
+
providers: [
|
|
6486
|
+
LocalizationService,
|
|
6487
|
+
{
|
|
6488
|
+
provide: L10N_PREFIX,
|
|
6489
|
+
useValue: 'kendo.smartpastebutton'
|
|
6490
|
+
}
|
|
6491
|
+
],
|
|
6492
|
+
selector: 'button[kendoSmartPasteButton]',
|
|
6493
|
+
standalone: true,
|
|
6494
|
+
imports: [IconWrapperComponent, NgClass],
|
|
6495
|
+
template: `
|
|
6496
|
+
@if (icon || svgIcon) {
|
|
6497
|
+
<kendo-icon-wrapper
|
|
6498
|
+
innerCssClass="k-button-icon"
|
|
6499
|
+
[name]="icon"
|
|
6500
|
+
[svgIcon]="svgIcon"></kendo-icon-wrapper>
|
|
6501
|
+
}
|
|
6502
|
+
@if (imageUrl) {
|
|
6503
|
+
<span class="k-button-icon k-icon">
|
|
6504
|
+
<img [src]="imageUrl" class="k-image" role="presentation" />
|
|
6505
|
+
</span>
|
|
6506
|
+
}
|
|
6507
|
+
@if (iconClass) {
|
|
6508
|
+
<span class="k-button-icon" [ngClass]="iconClass"></span>
|
|
6509
|
+
}
|
|
6510
|
+
<span class="k-button-text"><ng-content></ng-content></span>
|
|
6511
|
+
`
|
|
6512
|
+
}]
|
|
6513
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.LocalizationService }, { type: i0.NgZone }, { type: i2.HttpClient }, { type: i3$1.ControlContainer, decorators: [{
|
|
6514
|
+
type: Optional
|
|
6515
|
+
}, {
|
|
6516
|
+
type: SkipSelf
|
|
6517
|
+
}] }], propDecorators: { formFields: [{
|
|
6518
|
+
type: Input
|
|
6519
|
+
}], disabled: [{
|
|
6520
|
+
type: Input
|
|
6521
|
+
}], size: [{
|
|
6522
|
+
type: Input
|
|
6523
|
+
}], rounded: [{
|
|
6524
|
+
type: Input
|
|
6525
|
+
}], fillMode: [{
|
|
6526
|
+
type: Input
|
|
6527
|
+
}], themeColor: [{
|
|
6528
|
+
type: Input
|
|
6529
|
+
}], svgIcon: [{
|
|
6530
|
+
type: Input
|
|
6531
|
+
}], imageUrl: [{
|
|
6532
|
+
type: Input
|
|
6533
|
+
}], iconClass: [{
|
|
6534
|
+
type: Input
|
|
6535
|
+
}], icon: [{
|
|
6536
|
+
type: Input
|
|
6537
|
+
}], requestUrl: [{
|
|
6538
|
+
type: Input
|
|
6539
|
+
}], requestOptions: [{
|
|
6540
|
+
type: Input
|
|
6541
|
+
}], smartPasteFormFields: [{
|
|
6542
|
+
type: Input
|
|
6543
|
+
}], requestStart: [{
|
|
6544
|
+
type: Output
|
|
6545
|
+
}], requestEnd: [{
|
|
6546
|
+
type: Output
|
|
6547
|
+
}], requestCancel: [{
|
|
6548
|
+
type: Output
|
|
6549
|
+
}], iconButtonClass: [{
|
|
6550
|
+
type: HostBinding,
|
|
6551
|
+
args: ['class.k-icon-button']
|
|
6552
|
+
}], classButton: [{
|
|
6553
|
+
type: HostBinding,
|
|
6554
|
+
args: ['class.k-button']
|
|
6555
|
+
}], classDisabled: [{
|
|
6556
|
+
type: HostBinding,
|
|
6557
|
+
args: ['class.k-disabled']
|
|
6558
|
+
}], getDirection: [{
|
|
6559
|
+
type: HostBinding,
|
|
6560
|
+
args: ['attr.dir']
|
|
6561
|
+
}], onFocus: [{
|
|
6562
|
+
type: HostListener,
|
|
6563
|
+
args: ['focus']
|
|
6564
|
+
}], onBlur: [{
|
|
6565
|
+
type: HostListener,
|
|
6566
|
+
args: ['blur']
|
|
6567
|
+
}] } });
|
|
6568
|
+
|
|
5894
6569
|
/**
|
|
5895
6570
|
* Use the `KENDO_BUTTON` utility array to add all Button-related components and directives to a standalone Angular component.
|
|
5896
6571
|
*
|
|
@@ -6027,6 +6702,22 @@ const KENDO_SPLITBUTTON = [
|
|
|
6027
6702
|
const KENDO_SPEECHTOTEXTBUTTON = [
|
|
6028
6703
|
SpeechToTextButtonComponent
|
|
6029
6704
|
];
|
|
6705
|
+
/**
|
|
6706
|
+
* Use the `KENDO_SMARTPASTEBUTTON` utility array to add all SmartPasteButton-related components and directives to a standalone Angular component.
|
|
6707
|
+
*
|
|
6708
|
+
* @example
|
|
6709
|
+
* ```typescript
|
|
6710
|
+
* @Component({
|
|
6711
|
+
* standalone: true,
|
|
6712
|
+
* imports: [KENDO_SMARTPASTEBUTTON],
|
|
6713
|
+
* // ...
|
|
6714
|
+
* })
|
|
6715
|
+
* export class MyComponent {}
|
|
6716
|
+
* ```
|
|
6717
|
+
*/
|
|
6718
|
+
const KENDO_SMARTPASTEBUTTON = [
|
|
6719
|
+
SmartPasteButtonComponent
|
|
6720
|
+
];
|
|
6030
6721
|
/**
|
|
6031
6722
|
* Use the `KENDO_BUTTONS` utility array to add all `@progress/kendo-angular-buttons`-related components and directives to a standalone Angular component.
|
|
6032
6723
|
*
|
|
@@ -6048,7 +6739,8 @@ const KENDO_BUTTONS = [
|
|
|
6048
6739
|
...KENDO_CHIPLIST,
|
|
6049
6740
|
...KENDO_FLOATINGACTIONBUTTON,
|
|
6050
6741
|
...KENDO_SPLITBUTTON,
|
|
6051
|
-
...KENDO_SPEECHTOTEXTBUTTON
|
|
6742
|
+
...KENDO_SPEECHTOTEXTBUTTON,
|
|
6743
|
+
...KENDO_SMARTPASTEBUTTON
|
|
6052
6744
|
];
|
|
6053
6745
|
|
|
6054
6746
|
//IMPORTANT: NgModule export kept for backwards compatibility
|
|
@@ -6151,8 +6843,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
|
|
|
6151
6843
|
*/
|
|
6152
6844
|
class ButtonsModule {
|
|
6153
6845
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ButtonsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
6154
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: ButtonsModule, imports: [ButtonComponent, ButtonComponent, ButtonGroupComponent, DropDownButtonComponent, ButtonItemTemplateDirective, ChipComponent, ChipComponent, ChipListComponent, FloatingActionButtonComponent, DialItemTemplateDirective, FloatingActionButtonTemplateDirective, SplitButtonComponent, SplitButtonCustomMessagesComponent, i12.ToggleButtonTabStopDirective, ButtonItemTemplateDirective, SpeechToTextButtonComponent, i12.ToggleButtonTabStopDirective], exports: [ButtonComponent, ButtonComponent, ButtonGroupComponent, DropDownButtonComponent, ButtonItemTemplateDirective, ChipComponent, ChipComponent, ChipListComponent, FloatingActionButtonComponent, DialItemTemplateDirective, FloatingActionButtonTemplateDirective, SplitButtonComponent, SplitButtonCustomMessagesComponent, i12.ToggleButtonTabStopDirective, ButtonItemTemplateDirective, SpeechToTextButtonComponent, i12.ToggleButtonTabStopDirective] });
|
|
6155
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ButtonsModule, providers: [IconsService, PopupService, ResizeBatchService], imports: [ButtonComponent, ButtonComponent, DropDownButtonComponent, ChipComponent, ChipComponent, FloatingActionButtonComponent, SplitButtonComponent, SpeechToTextButtonComponent] });
|
|
6846
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: ButtonsModule, imports: [ButtonComponent, ButtonComponent, ButtonGroupComponent, DropDownButtonComponent, ButtonItemTemplateDirective, ChipComponent, ChipComponent, ChipListComponent, FloatingActionButtonComponent, DialItemTemplateDirective, FloatingActionButtonTemplateDirective, SplitButtonComponent, SplitButtonCustomMessagesComponent, i12.ToggleButtonTabStopDirective, ButtonItemTemplateDirective, SpeechToTextButtonComponent, SmartPasteButtonComponent, i12.ToggleButtonTabStopDirective], exports: [ButtonComponent, ButtonComponent, ButtonGroupComponent, DropDownButtonComponent, ButtonItemTemplateDirective, ChipComponent, ChipComponent, ChipListComponent, FloatingActionButtonComponent, DialItemTemplateDirective, FloatingActionButtonTemplateDirective, SplitButtonComponent, SplitButtonCustomMessagesComponent, i12.ToggleButtonTabStopDirective, ButtonItemTemplateDirective, SpeechToTextButtonComponent, SmartPasteButtonComponent, i12.ToggleButtonTabStopDirective] });
|
|
6847
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ButtonsModule, providers: [IconsService, PopupService, ResizeBatchService], imports: [ButtonComponent, ButtonComponent, DropDownButtonComponent, ChipComponent, ChipComponent, FloatingActionButtonComponent, SplitButtonComponent, SpeechToTextButtonComponent, SmartPasteButtonComponent] });
|
|
6156
6848
|
}
|
|
6157
6849
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ButtonsModule, decorators: [{
|
|
6158
6850
|
type: NgModule,
|
|
@@ -6320,9 +7012,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
|
|
|
6320
7012
|
}]
|
|
6321
7013
|
}] });
|
|
6322
7014
|
|
|
7015
|
+
/**
|
|
7016
|
+
* Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
|
|
7017
|
+
* definition for the SmartPasteButton component.
|
|
7018
|
+
*
|
|
7019
|
+
* The module is meant for backward compatibility. For new applications, use the standalone SmartPasteButton component.
|
|
7020
|
+
*
|
|
7021
|
+
* @example
|
|
7022
|
+
* ```ts-no-run
|
|
7023
|
+
* import { SmartPasteButtonModule } from '@progress/kendo-angular-buttons';
|
|
7024
|
+
*
|
|
7025
|
+
* _@NgModule({
|
|
7026
|
+
* imports: [SmartPasteButtonModule]
|
|
7027
|
+
* })
|
|
7028
|
+
* export class AppModule {}
|
|
7029
|
+
* ```
|
|
7030
|
+
*/
|
|
7031
|
+
class SmartPasteButtonModule {
|
|
7032
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SmartPasteButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7033
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: SmartPasteButtonModule, imports: [SmartPasteButtonComponent], exports: [SmartPasteButtonComponent] });
|
|
7034
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SmartPasteButtonModule, imports: [SmartPasteButtonComponent] });
|
|
7035
|
+
}
|
|
7036
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SmartPasteButtonModule, decorators: [{
|
|
7037
|
+
type: NgModule,
|
|
7038
|
+
args: [{
|
|
7039
|
+
exports: [SmartPasteButtonComponent],
|
|
7040
|
+
imports: [SmartPasteButtonComponent]
|
|
7041
|
+
}]
|
|
7042
|
+
}] });
|
|
7043
|
+
|
|
6323
7044
|
/**
|
|
6324
7045
|
* Generated bundle index. Do not edit.
|
|
6325
7046
|
*/
|
|
6326
7047
|
|
|
6327
|
-
export { ButtonComponent as Button, ButtonComponent, ButtonComponent as ButtonDirective, ButtonGroupComponent as ButtonGroup, ButtonGroupComponent, ButtonGroupModule, ButtonItemTemplateDirective, ButtonModule, ButtonsModule, ChipComponent, ChipListComponent, ChipModule, DialItemTemplateDirective, DropDownButtonComponent as DropDownButton, DropDownButtonComponent, DropDownButtonModule, FloatingActionButtonComponent, FloatingActionButtonModule, FloatingActionButtonTemplateDirective, FocusableDirective, KENDO_BUTTON, KENDO_BUTTONGROUP, KENDO_BUTTONS, KENDO_CHIP, KENDO_CHIPLIST, KENDO_DROPDOWNBUTTON, KENDO_FLOATINGACTIONBUTTON, KENDO_SPEECHTOTEXTBUTTON, KENDO_SPLITBUTTON, KendoButtonService, ListComponent, LocalizedSplitButtonMessagesDirective, PreventableEvent, SpeechToTextButtonComponent, SpeechToTextButtonModule, SplitButtonComponent as SplitButton, SplitButtonComponent, SplitButtonCustomMessagesComponent, SplitButtonModule };
|
|
7048
|
+
export { ButtonComponent as Button, ButtonComponent, ButtonComponent as ButtonDirective, ButtonGroupComponent as ButtonGroup, ButtonGroupComponent, ButtonGroupModule, ButtonItemTemplateDirective, ButtonModule, ButtonsModule, ChipComponent, ChipListComponent, ChipModule, DialItemTemplateDirective, DropDownButtonComponent as DropDownButton, DropDownButtonComponent, DropDownButtonModule, FloatingActionButtonComponent, FloatingActionButtonModule, FloatingActionButtonTemplateDirective, FocusableDirective, KENDO_BUTTON, KENDO_BUTTONGROUP, KENDO_BUTTONS, KENDO_CHIP, KENDO_CHIPLIST, KENDO_DROPDOWNBUTTON, KENDO_FLOATINGACTIONBUTTON, KENDO_SMARTPASTEBUTTON, KENDO_SPEECHTOTEXTBUTTON, KENDO_SPLITBUTTON, KendoButtonService, ListComponent, LocalizedSplitButtonMessagesDirective, PreventableEvent, SmartPasteButtonComponent, SmartPasteButtonModule, SmartPasteRequestEndEvent, SmartPasteRequestStartEvent, SpeechToTextButtonComponent, SpeechToTextButtonModule, SplitButtonComponent as SplitButton, SplitButtonComponent, SplitButtonCustomMessagesComponent, SplitButtonModule };
|
|
6328
7049
|
|