Skip to content

Commit c4bf574

Browse files
authored
Update inernal-tools for generating Custom Widget Factories for ASP.NET (DevExpress#30131)
1 parent 8136024 commit c4bf574

File tree

8 files changed

+466
-312
lines changed

8 files changed

+466
-312
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
"axe-core": "4.10.3",
4545
"cheerio": "1.0.0-rc.10",
4646
"codelyzer": "6.0.2",
47-
"devextreme-internal-tools": "18.0.0-beta.4",
47+
"devextreme-internal-tools": "18.0.0-beta.5",
4848
"http-server": "14.1.1",
4949
"husky": "8.0.3",
5050
"jest": "29.7.0",

packages/devextreme-angular/src/ui/nested/base/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ export * from './html-editor-table-resizing';
4343
export * from './html-editor-variables';
4444
export * from './pager';
4545
export * from './popup-options';
46+
export * from './popup-toolbar-item-dxi';
4647
export * from './position-config';
4748
export * from './scheduler-scrolling';
4849
export * from './search-panel';

packages/devextreme-angular/src/ui/nested/base/popup-options.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,11 @@ import {
55
Component,
66
} from '@angular/core';
77

8-
import { Position, PositionAlignment, ToolbarItemComponent, ToolbarItemLocation } from 'devextreme/common';
8+
import { Position, PositionAlignment } from 'devextreme/common';
99
import { AnimationConfig, PositionConfig } from 'devextreme/common/core/animation';
1010
import { UserDefinedElement } from 'devextreme/core/element';
1111
import { ContentReadyEvent, DisposingEvent, HiddenEvent, HidingEvent, InitializedEvent, OptionChangedEvent, ShowingEvent, ShownEvent, TitleRenderedEvent } from 'devextreme/ui/popover';
12-
import { ToolbarLocation } from 'devextreme/ui/popup';
13-
import { LocateInMenuMode, ShowTextMode } from 'devextreme/ui/toolbar';
12+
import { dxPopupToolbarItem } from 'devextreme/ui/popup';
1413

1514
@Component({
1615
template: ''
@@ -331,10 +330,10 @@ export abstract class DxoPopupOptions extends NestedOption {
331330
this._setOption('titleTemplate', value);
332331
}
333332

334-
get toolbarItems(): Array<any | { cssClass?: string | undefined, disabled?: boolean, html?: string, locateInMenu?: LocateInMenuMode, location?: ToolbarItemLocation, menuItemTemplate?: any, options?: any, showText?: ShowTextMode, template?: any, text?: string, toolbar?: ToolbarLocation, visible?: boolean, widget?: ToolbarItemComponent }> {
333+
get toolbarItems(): Array<dxPopupToolbarItem> {
335334
return this._getOption('toolbarItems');
336335
}
337-
set toolbarItems(value: Array<any | { cssClass?: string | undefined, disabled?: boolean, html?: string, locateInMenu?: LocateInMenuMode, location?: ToolbarItemLocation, menuItemTemplate?: any, options?: any, showText?: ShowTextMode, template?: any, text?: string, toolbar?: ToolbarLocation, visible?: boolean, widget?: ToolbarItemComponent }>) {
336+
set toolbarItems(value: Array<dxPopupToolbarItem>) {
338337
this._setOption('toolbarItems', value);
339338
}
340339

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
/* tslint:disable:max-line-length */
2+
3+
import { CollectionNestedOption } from 'devextreme-angular/core';
4+
import {
5+
Component,
6+
} from '@angular/core';
7+
8+
import { ToolbarItemComponent, ToolbarItemLocation } from 'devextreme/common';
9+
import { ToolbarLocation } from 'devextreme/ui/popup';
10+
import { LocateInMenuMode, ShowTextMode } from 'devextreme/ui/toolbar';
11+
12+
@Component({
13+
template: ''
14+
})
15+
export abstract class DxiPopupToolbarItem extends CollectionNestedOption {
16+
get cssClass(): string | undefined {
17+
return this._getOption('cssClass');
18+
}
19+
set cssClass(value: string | undefined) {
20+
this._setOption('cssClass', value);
21+
}
22+
23+
get disabled(): boolean {
24+
return this._getOption('disabled');
25+
}
26+
set disabled(value: boolean) {
27+
this._setOption('disabled', value);
28+
}
29+
30+
get html(): string {
31+
return this._getOption('html');
32+
}
33+
set html(value: string) {
34+
this._setOption('html', value);
35+
}
36+
37+
get locateInMenu(): LocateInMenuMode {
38+
return this._getOption('locateInMenu');
39+
}
40+
set locateInMenu(value: LocateInMenuMode) {
41+
this._setOption('locateInMenu', value);
42+
}
43+
44+
get location(): ToolbarItemLocation {
45+
return this._getOption('location');
46+
}
47+
set location(value: ToolbarItemLocation) {
48+
this._setOption('location', value);
49+
}
50+
51+
get menuItemTemplate(): any {
52+
return this._getOption('menuItemTemplate');
53+
}
54+
set menuItemTemplate(value: any) {
55+
this._setOption('menuItemTemplate', value);
56+
}
57+
58+
get options(): any {
59+
return this._getOption('options');
60+
}
61+
set options(value: any) {
62+
this._setOption('options', value);
63+
}
64+
65+
get showText(): ShowTextMode {
66+
return this._getOption('showText');
67+
}
68+
set showText(value: ShowTextMode) {
69+
this._setOption('showText', value);
70+
}
71+
72+
get template(): any {
73+
return this._getOption('template');
74+
}
75+
set template(value: any) {
76+
this._setOption('template', value);
77+
}
78+
79+
get text(): string {
80+
return this._getOption('text');
81+
}
82+
set text(value: string) {
83+
this._setOption('text', value);
84+
}
85+
86+
get toolbar(): ToolbarLocation {
87+
return this._getOption('toolbar');
88+
}
89+
set toolbar(value: ToolbarLocation) {
90+
this._setOption('toolbar', value);
91+
}
92+
93+
get visible(): boolean {
94+
return this._getOption('visible');
95+
}
96+
set visible(value: boolean) {
97+
this._setOption('visible', value);
98+
}
99+
100+
get widget(): ToolbarItemComponent {
101+
return this._getOption('widget');
102+
}
103+
set widget(value: ToolbarItemComponent) {
104+
this._setOption('widget', value);
105+
}
106+
}

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

Lines changed: 24 additions & 137 deletions
Original file line numberDiff line numberDiff line change
@@ -1,173 +1,60 @@
11
/* tslint:disable:max-line-length */
22

3+
/* tslint:disable:use-input-property-decorator */
34

45
import {
56
Component,
67
NgModule,
78
Host,
8-
ElementRef,
9-
Renderer2,
10-
Inject,
11-
AfterViewInit,
12-
SkipSelf,
13-
Input
9+
SkipSelf
1410
} from '@angular/core';
1511

16-
import { DOCUMENT } from '@angular/common';
1712

1813

19-
import { ToolbarItemComponent, ToolbarItemLocation } from 'devextreme/common';
20-
import { ToolbarLocation } from 'devextreme/ui/popup';
21-
import { LocateInMenuMode, ShowTextMode } from 'devextreme/ui/toolbar';
14+
2215

2316
import {
2417
DxIntegrationModule,
2518
NestedOptionHost,
26-
extractTemplate,
27-
DxTemplateDirective,
28-
IDxTemplateHost,
29-
DxTemplateHost
3019
} from 'devextreme-angular/core';
31-
import { CollectionNestedOption } from 'devextreme-angular/core';
20+
import { DxiPopupToolbarItem } from './base/popup-toolbar-item-dxi';
3221

3322

3423
@Component({
3524
selector: 'dxi-toolbar-item',
3625
standalone: true,
37-
template: '<ng-content></ng-content>',
38-
styles: [':host { display: block; }'],
26+
template: '',
27+
styles: [''],
3928
imports: [ DxIntegrationModule ],
40-
providers: [NestedOptionHost, DxTemplateHost]
29+
providers: [NestedOptionHost],
30+
inputs: [
31+
'cssClass',
32+
'disabled',
33+
'html',
34+
'locateInMenu',
35+
'location',
36+
'menuItemTemplate',
37+
'options',
38+
'showText',
39+
'template',
40+
'text',
41+
'toolbar',
42+
'visible',
43+
'widget'
44+
]
4145
})
42-
export class DxiToolbarItemComponent extends CollectionNestedOption implements AfterViewInit,
43-
IDxTemplateHost {
44-
@Input()
45-
get cssClass(): string | undefined {
46-
return this._getOption('cssClass');
47-
}
48-
set cssClass(value: string | undefined) {
49-
this._setOption('cssClass', value);
50-
}
51-
52-
@Input()
53-
get disabled(): boolean {
54-
return this._getOption('disabled');
55-
}
56-
set disabled(value: boolean) {
57-
this._setOption('disabled', value);
58-
}
59-
60-
@Input()
61-
get html(): string {
62-
return this._getOption('html');
63-
}
64-
set html(value: string) {
65-
this._setOption('html', value);
66-
}
67-
68-
@Input()
69-
get locateInMenu(): LocateInMenuMode {
70-
return this._getOption('locateInMenu');
71-
}
72-
set locateInMenu(value: LocateInMenuMode) {
73-
this._setOption('locateInMenu', value);
74-
}
75-
76-
@Input()
77-
get location(): ToolbarItemLocation {
78-
return this._getOption('location');
79-
}
80-
set location(value: ToolbarItemLocation) {
81-
this._setOption('location', value);
82-
}
83-
84-
@Input()
85-
get menuItemTemplate(): any {
86-
return this._getOption('menuItemTemplate');
87-
}
88-
set menuItemTemplate(value: any) {
89-
this._setOption('menuItemTemplate', value);
90-
}
91-
92-
@Input()
93-
get options(): any {
94-
return this._getOption('options');
95-
}
96-
set options(value: any) {
97-
this._setOption('options', value);
98-
}
99-
100-
@Input()
101-
get showText(): ShowTextMode {
102-
return this._getOption('showText');
103-
}
104-
set showText(value: ShowTextMode) {
105-
this._setOption('showText', value);
106-
}
107-
108-
@Input()
109-
get template(): any {
110-
return this._getOption('template');
111-
}
112-
set template(value: any) {
113-
this._setOption('template', value);
114-
}
115-
116-
@Input()
117-
get text(): string {
118-
return this._getOption('text');
119-
}
120-
set text(value: string) {
121-
this._setOption('text', value);
122-
}
123-
124-
@Input()
125-
get toolbar(): ToolbarLocation {
126-
return this._getOption('toolbar');
127-
}
128-
set toolbar(value: ToolbarLocation) {
129-
this._setOption('toolbar', value);
130-
}
131-
132-
@Input()
133-
get visible(): boolean {
134-
return this._getOption('visible');
135-
}
136-
set visible(value: boolean) {
137-
this._setOption('visible', value);
138-
}
139-
140-
@Input()
141-
get widget(): ToolbarItemComponent {
142-
return this._getOption('widget');
143-
}
144-
set widget(value: ToolbarItemComponent) {
145-
this._setOption('widget', value);
146-
}
147-
46+
export class DxiToolbarItemComponent extends DxiPopupToolbarItem {
14847

14948
protected get _optionPath() {
15049
return 'toolbarItems';
15150
}
15251

15352

15453
constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,
155-
@Host() optionHost: NestedOptionHost,
156-
private renderer: Renderer2,
157-
@Inject(DOCUMENT) private document: any,
158-
@Host() templateHost: DxTemplateHost,
159-
private element: ElementRef) {
54+
@Host() optionHost: NestedOptionHost) {
16055
super();
16156
parentOptionHost.setNestedOption(this);
16257
optionHost.setHost(this, this._fullOptionPath.bind(this));
163-
templateHost.setHost(this);
164-
}
165-
166-
setTemplate(template: DxTemplateDirective) {
167-
this.template = template;
168-
}
169-
ngAfterViewInit() {
170-
extractTemplate(this, this.element, this.renderer, this.document);
17158
}
17259

17360

0 commit comments

Comments
 (0)