Skip to content

Commit db38538

Browse files
authored
Form: create .d.ts properties for the Smart Paste (DevExpress#30884)
1 parent 54adb38 commit db38538

38 files changed

+979
-40
lines changed

packages/devextreme-angular/src/ui/card-view/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ import {
4747
} from 'devextreme-angular/core';
4848

4949

50+
import { DxoCardViewAiOptionsModule } from 'devextreme-angular/ui/card-view/nested';
5051
import { DxoCardViewAnimationModule } from 'devextreme-angular/ui/card-view/nested';
5152
import { DxiCardViewAsyncRuleModule } from 'devextreme-angular/ui/card-view/nested';
5253
import { DxoCardViewAtModule } from 'devextreme-angular/ui/card-view/nested';
@@ -1339,6 +1340,7 @@ export class DxCardViewComponent<TCardData = any, TKey = any> extends DxComponen
13391340
@NgModule({
13401341
imports: [
13411342
DxCardViewComponent,
1343+
DxoCardViewAiOptionsModule,
13421344
DxoCardViewAnimationModule,
13431345
DxiCardViewAsyncRuleModule,
13441346
DxoCardViewAtModule,
@@ -1419,6 +1421,7 @@ export class DxCardViewComponent<TCardData = any, TKey = any> extends DxComponen
14191421
],
14201422
exports: [
14211423
DxCardViewComponent,
1424+
DxoCardViewAiOptionsModule,
14221425
DxoCardViewAnimationModule,
14231426
DxiCardViewAsyncRuleModule,
14241427
DxoCardViewAtModule,
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
/* tslint:disable:max-line-length */
2+
3+
4+
import {
5+
Component,
6+
OnInit,
7+
OnDestroy,
8+
NgModule,
9+
Host,
10+
SkipSelf,
11+
Input
12+
} from '@angular/core';
13+
14+
15+
16+
17+
18+
import {
19+
DxIntegrationModule,
20+
NestedOptionHost,
21+
} from 'devextreme-angular/core';
22+
import { NestedOption } from 'devextreme-angular/core';
23+
24+
25+
@Component({
26+
selector: 'dxo-card-view-ai-options',
27+
standalone: true,
28+
template: '',
29+
styles: [''],
30+
imports: [ DxIntegrationModule ],
31+
providers: [NestedOptionHost]
32+
})
33+
export class DxoCardViewAiOptionsComponent extends NestedOption implements OnDestroy, OnInit {
34+
@Input()
35+
get disabled(): boolean {
36+
return this._getOption('disabled');
37+
}
38+
set disabled(value: boolean) {
39+
this._setOption('disabled', value);
40+
}
41+
42+
@Input()
43+
get instruction(): string | undefined {
44+
return this._getOption('instruction');
45+
}
46+
set instruction(value: string | undefined) {
47+
this._setOption('instruction', value);
48+
}
49+
50+
51+
protected get _optionPath() {
52+
return 'aiOptions';
53+
}
54+
55+
56+
constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,
57+
@Host() optionHost: NestedOptionHost) {
58+
super();
59+
parentOptionHost.setNestedOption(this);
60+
optionHost.setHost(this, this._fullOptionPath.bind(this));
61+
}
62+
63+
64+
ngOnInit() {
65+
this._addRecreatedComponent();
66+
}
67+
68+
ngOnDestroy() {
69+
this._addRemovedOption(this._getOptionPath());
70+
}
71+
72+
73+
}
74+
75+
@NgModule({
76+
imports: [
77+
DxoCardViewAiOptionsComponent
78+
],
79+
exports: [
80+
DxoCardViewAiOptionsComponent
81+
],
82+
})
83+
export class DxoCardViewAiOptionsModule { }

packages/devextreme-angular/src/ui/card-view/nested/button-item-dxi.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import {
1414

1515
import { dxButtonOptions } from 'devextreme/ui/button';
1616
import { HorizontalAlignment, VerticalAlignment } from 'devextreme/common';
17-
import { FormItemType } from 'devextreme/ui/form';
17+
import { FormItemType, FormPredefinedButtonItem } from 'devextreme/ui/form';
1818

1919
import {
2020
DxIntegrationModule,
@@ -73,10 +73,10 @@ export class DxiCardViewButtonItemComponent extends CollectionNestedOption {
7373
}
7474

7575
@Input()
76-
get name(): string | undefined {
76+
get name(): FormPredefinedButtonItem | string | undefined {
7777
return this._getOption('name');
7878
}
79-
set name(value: string | undefined) {
79+
set name(value: FormPredefinedButtonItem | string | undefined) {
8080
this._setOption('name', value);
8181
}
8282

packages/devextreme-angular/src/ui/card-view/nested/form-item.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,14 @@ import { DxiCardViewValidationRuleComponent } from './validation-rule-dxi';
5757
})
5858
export class DxoCardViewFormItemComponent extends NestedOption implements AfterViewInit, OnDestroy, OnInit,
5959
IDxTemplateHost, AfterContentInit {
60+
@Input()
61+
get aiOptions(): { disabled?: boolean, instruction?: string | undefined } {
62+
return this._getOption('aiOptions');
63+
}
64+
set aiOptions(value: { disabled?: boolean, instruction?: string | undefined }) {
65+
this._setOption('aiOptions', value);
66+
}
67+
6068
@Input()
6169
get colSpan(): number | undefined {
6270
return this._getOption('colSpan');

packages/devextreme-angular/src/ui/card-view/nested/form.ts

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,9 @@ import {
2020

2121

2222

23+
import { AIIntegration } from 'devextreme/common/ai-integration';
2324
import { Mode } from 'devextreme/common';
24-
import { dxFormSimpleItem, dxFormGroupItem, dxFormTabbedItem, dxFormEmptyItem, dxFormButtonItem, LabelLocation, FormLabelMode, ContentReadyEvent, DisposingEvent, EditorEnterKeyEvent, FieldDataChangedEvent, InitializedEvent, OptionChangedEvent } from 'devextreme/ui/form';
25+
import { dxFormSimpleItem, dxFormGroupItem, dxFormTabbedItem, dxFormEmptyItem, dxFormButtonItem, LabelLocation, FormLabelMode, ContentReadyEvent, DisposingEvent, EditorEnterKeyEvent, FieldDataChangedEvent, InitializedEvent, OptionChangedEvent, SmartPastedEvent, SmartPastingEvent } from 'devextreme/ui/form';
2526

2627
import {
2728
DxIntegrationModule,
@@ -61,6 +62,14 @@ export class DxoCardViewFormComponent extends NestedOption implements OnDestroy,
6162
this._setOption('activeStateEnabled', value);
6263
}
6364

65+
@Input()
66+
get aiIntegration(): AIIntegration | undefined {
67+
return this._getOption('aiIntegration');
68+
}
69+
set aiIntegration(value: AIIntegration | undefined) {
70+
this._setOption('aiIntegration', value);
71+
}
72+
6473
@Input()
6574
get alignItemLabels(): boolean {
6675
return this._getOption('alignItemLabels');
@@ -245,6 +254,22 @@ export class DxoCardViewFormComponent extends NestedOption implements OnDestroy,
245254
this._setOption('onOptionChanged', value);
246255
}
247256

257+
@Input()
258+
get onSmartPasted(): ((e: SmartPastedEvent) => void) {
259+
return this._getOption('onSmartPasted');
260+
}
261+
set onSmartPasted(value: ((e: SmartPastedEvent) => void)) {
262+
this._setOption('onSmartPasted', value);
263+
}
264+
265+
@Input()
266+
get onSmartPasting(): ((e: SmartPastingEvent) => void) {
267+
return this._getOption('onSmartPasting');
268+
}
269+
set onSmartPasting(value: ((e: SmartPastingEvent) => void)) {
270+
this._setOption('onSmartPasting', value);
271+
}
272+
248273
@Input()
249274
get optionalMark(): string {
250275
return this._getOption('optionalMark');

packages/devextreme-angular/src/ui/card-view/nested/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
export * from './ai-options';
12
export * from './animation';
23
export * from './async-rule-dxi';
34
export * from './at';

packages/devextreme-angular/src/ui/card-view/nested/item-dxi.ts

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import * as CommonTypes from 'devextreme/common';
2424
import { LocateInMenuMode, ShowTextMode } from 'devextreme/ui/toolbar';
2525
import { ToolbarItemLocation, ToolbarItemComponent, HorizontalAlignment, VerticalAlignment } from 'devextreme/common';
2626
import { CardHeaderPredefinedItem, PredefinedToolbarItem } from 'devextreme/ui/card_view';
27-
import { FormItemComponent, FormItemType, LabelLocation, dxFormButtonItem, dxFormEmptyItem, dxFormGroupItem, dxFormSimpleItem, dxFormTabbedItem } from 'devextreme/ui/form';
27+
import { FormPredefinedButtonItem, FormItemComponent, FormItemType, LabelLocation, dxFormButtonItem, dxFormEmptyItem, dxFormGroupItem, dxFormSimpleItem, dxFormTabbedItem } from 'devextreme/ui/form';
2828
import { dxTabPanelOptions } from 'devextreme/ui/tab_panel';
2929
import { dxButtonOptions } from 'devextreme/ui/button';
3030

@@ -109,10 +109,10 @@ export class DxiCardViewItemComponent extends CollectionNestedOption implements
109109
}
110110

111111
@Input()
112-
get name(): CardHeaderPredefinedItem | string | undefined | PredefinedToolbarItem {
112+
get name(): CardHeaderPredefinedItem | string | undefined | FormPredefinedButtonItem | PredefinedToolbarItem {
113113
return this._getOption('name');
114114
}
115-
set name(value: CardHeaderPredefinedItem | string | undefined | PredefinedToolbarItem) {
115+
set name(value: CardHeaderPredefinedItem | string | undefined | FormPredefinedButtonItem | PredefinedToolbarItem) {
116116
this._setOption('name', value);
117117
}
118118

@@ -196,6 +196,14 @@ export class DxiCardViewItemComponent extends CollectionNestedOption implements
196196
this._setOption('title', value);
197197
}
198198

199+
@Input()
200+
get aiOptions(): { disabled?: boolean, instruction?: string | undefined } {
201+
return this._getOption('aiOptions');
202+
}
203+
set aiOptions(value: { disabled?: boolean, instruction?: string | undefined }) {
204+
this._setOption('aiOptions', value);
205+
}
206+
199207
@Input()
200208
get colSpan(): number | undefined {
201209
return this._getOption('colSpan');

packages/devextreme-angular/src/ui/card-view/nested/simple-item-dxi.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,14 @@ import { DxiCardViewValidationRuleComponent } from './validation-rule-dxi';
5555
})
5656
export class DxiCardViewSimpleItemComponent extends CollectionNestedOption implements AfterViewInit,
5757
IDxTemplateHost, AfterContentInit {
58+
@Input()
59+
get aiOptions(): { disabled?: boolean, instruction?: string | undefined } {
60+
return this._getOption('aiOptions');
61+
}
62+
set aiOptions(value: { disabled?: boolean, instruction?: string | undefined }) {
63+
this._setOption('aiOptions', value);
64+
}
65+
5866
@Input()
5967
get colSpan(): number | undefined {
6068
return this._getOption('colSpan');

packages/devextreme-angular/src/ui/data-grid/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ import { DxoValueFormatModule } from 'devextreme-angular/ui/nested';
116116
import { DxiTotalItemModule } from 'devextreme-angular/ui/nested';
117117
import { DxoToolbarModule } from 'devextreme-angular/ui/nested';
118118

119+
import { DxoDataGridAiOptionsModule } from 'devextreme-angular/ui/data-grid/nested';
119120
import { DxoDataGridAnimationModule } from 'devextreme-angular/ui/data-grid/nested';
120121
import { DxiDataGridAsyncRuleModule } from 'devextreme-angular/ui/data-grid/nested';
121122
import { DxoDataGridAtModule } from 'devextreme-angular/ui/data-grid/nested';
@@ -2348,6 +2349,7 @@ export class DxDataGridComponent<TRowData = any, TKey = any> extends DxComponent
23482349
DxoValueFormatModule,
23492350
DxiTotalItemModule,
23502351
DxoToolbarModule,
2352+
DxoDataGridAiOptionsModule,
23512353
DxoDataGridAnimationModule,
23522354
DxiDataGridAsyncRuleModule,
23532355
DxoDataGridAtModule,
@@ -2504,6 +2506,7 @@ export class DxDataGridComponent<TRowData = any, TKey = any> extends DxComponent
25042506
DxoValueFormatModule,
25052507
DxiTotalItemModule,
25062508
DxoToolbarModule,
2509+
DxoDataGridAiOptionsModule,
25072510
DxoDataGridAnimationModule,
25082511
DxiDataGridAsyncRuleModule,
25092512
DxoDataGridAtModule,
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
/* tslint:disable:max-line-length */
2+
3+
4+
import {
5+
Component,
6+
OnInit,
7+
OnDestroy,
8+
NgModule,
9+
Host,
10+
SkipSelf,
11+
Input
12+
} from '@angular/core';
13+
14+
15+
16+
17+
18+
import {
19+
DxIntegrationModule,
20+
NestedOptionHost,
21+
} from 'devextreme-angular/core';
22+
import { NestedOption } from 'devextreme-angular/core';
23+
24+
25+
@Component({
26+
selector: 'dxo-data-grid-ai-options',
27+
standalone: true,
28+
template: '',
29+
styles: [''],
30+
imports: [ DxIntegrationModule ],
31+
providers: [NestedOptionHost]
32+
})
33+
export class DxoDataGridAiOptionsComponent extends NestedOption implements OnDestroy, OnInit {
34+
@Input()
35+
get disabled(): boolean {
36+
return this._getOption('disabled');
37+
}
38+
set disabled(value: boolean) {
39+
this._setOption('disabled', value);
40+
}
41+
42+
@Input()
43+
get instruction(): string | undefined {
44+
return this._getOption('instruction');
45+
}
46+
set instruction(value: string | undefined) {
47+
this._setOption('instruction', value);
48+
}
49+
50+
51+
protected get _optionPath() {
52+
return 'aiOptions';
53+
}
54+
55+
56+
constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,
57+
@Host() optionHost: NestedOptionHost) {
58+
super();
59+
parentOptionHost.setNestedOption(this);
60+
optionHost.setHost(this, this._fullOptionPath.bind(this));
61+
}
62+
63+
64+
ngOnInit() {
65+
this._addRecreatedComponent();
66+
}
67+
68+
ngOnDestroy() {
69+
this._addRemovedOption(this._getOptionPath());
70+
}
71+
72+
73+
}
74+
75+
@NgModule({
76+
imports: [
77+
DxoDataGridAiOptionsComponent
78+
],
79+
exports: [
80+
DxoDataGridAiOptionsComponent
81+
],
82+
})
83+
export class DxoDataGridAiOptionsModule { }

0 commit comments

Comments
 (0)