Skip to content

Commit 8758612

Browse files
TabPanel: publish keyExpr option (DevExpress#30576)
Co-authored-by: Mikhail Preyskurantov <[email protected]>
1 parent 1434e14 commit 8758612

File tree

14 files changed

+68
-5
lines changed

14 files changed

+68
-5
lines changed

packages/devextreme-angular/src/ui/card-view/nested/tab-panel-options.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,14 @@ export class DxoCardViewTabPanelOptionsComponent extends NestedOption implements
172172
this._setOption('itemTitleTemplate', value);
173173
}
174174

175+
@Input()
176+
get keyExpr(): Function | string {
177+
return this._getOption('keyExpr');
178+
}
179+
set keyExpr(value: Function | string) {
180+
this._setOption('keyExpr', value);
181+
}
182+
175183
@Input()
176184
get loop(): boolean {
177185
return this._getOption('loop');

packages/devextreme-angular/src/ui/form/nested/tab-panel-options.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,14 @@ export class DxoFormTabPanelOptionsComponent extends NestedOption implements OnD
172172
this._setOption('itemTitleTemplate', value);
173173
}
174174

175+
@Input()
176+
get keyExpr(): Function | string {
177+
return this._getOption('keyExpr');
178+
}
179+
set keyExpr(value: Function | string) {
180+
this._setOption('keyExpr', value);
181+
}
182+
175183
@Input()
176184
get loop(): boolean {
177185
return this._getOption('loop');

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,13 @@ export abstract class DxoTabPanelOptions extends NestedOption {
126126
this._setOption('itemTitleTemplate', value);
127127
}
128128

129+
get keyExpr(): Function | string {
130+
return this._getOption('keyExpr');
131+
}
132+
set keyExpr(value: Function | string) {
133+
this._setOption('keyExpr', value);
134+
}
135+
129136
get loop(): boolean {
130137
return this._getOption('loop');
131138
}

packages/devextreme-angular/src/ui/nested/tab-panel-options.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ import { DxiItemComponent } from './item-dxi';
5252
'items',
5353
'itemTemplate',
5454
'itemTitleTemplate',
55+
'keyExpr',
5556
'loop',
5657
'noDataText',
5758
'onContentReady',

packages/devextreme-angular/src/ui/tab-panel/index.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,19 @@ export class DxTabPanelComponent<TItem = any, TKey = any> extends DxComponent im
279279
}
280280

281281

282+
/**
283+
* [descr:dxTabPanelOptions.keyExpr]
284+
285+
*/
286+
@Input()
287+
get keyExpr(): Function | string {
288+
return this._getOption('keyExpr');
289+
}
290+
set keyExpr(value: Function | string) {
291+
this._setOption('keyExpr', value);
292+
}
293+
294+
282295
/**
283296
* [descr:dxMultiViewOptions.loop]
284297
@@ -689,6 +702,13 @@ export class DxTabPanelComponent<TItem = any, TKey = any> extends DxComponent im
689702
*/
690703
@Output() itemTitleTemplateChange: EventEmitter<any>;
691704

705+
/**
706+
707+
* This member supports the internal infrastructure and is not intended to be used directly from your code.
708+
709+
*/
710+
@Output() keyExprChange: EventEmitter<Function | string>;
711+
692712
/**
693713
694714
* This member supports the internal infrastructure and is not intended to be used directly from your code.
@@ -856,6 +876,7 @@ export class DxTabPanelComponent<TItem = any, TKey = any> extends DxComponent im
856876
{ emit: 'itemsChange' },
857877
{ emit: 'itemTemplateChange' },
858878
{ emit: 'itemTitleTemplateChange' },
879+
{ emit: 'keyExprChange' },
859880
{ emit: 'loopChange' },
860881
{ emit: 'noDataTextChange' },
861882
{ emit: 'repaintChangesOnlyChange' },

packages/devextreme-react/src/card-view.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2511,6 +2511,7 @@ type ITabPanelOptionsProps = React.PropsWithChildren<{
25112511
items?: Array<any | dxTabPanelItem | string>;
25122512
itemTemplate?: ((itemData: any, itemIndex: number, itemElement: any) => string | any) | template;
25132513
itemTitleTemplate?: ((itemData: any, itemIndex: number, itemElement: any) => string | any) | template;
2514+
keyExpr?: (() => void) | string;
25142515
loop?: boolean;
25152516
noDataText?: string;
25162517
onContentReady?: ((e: TabPanelContentReadyEvent) => void);

packages/devextreme-react/src/form.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -827,6 +827,7 @@ type ITabPanelOptionsProps = React.PropsWithChildren<{
827827
items?: Array<any | dxTabPanelItem | string>;
828828
itemTemplate?: ((itemData: any, itemIndex: number, itemElement: any) => string | any) | template;
829829
itemTitleTemplate?: ((itemData: any, itemIndex: number, itemElement: any) => string | any) | template;
830+
keyExpr?: (() => void) | string;
830831
loop?: boolean;
831832
noDataText?: string;
832833
onContentReady?: ((e: TabPanelContentReadyEvent) => void);

packages/devextreme-vue/src/card-view.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2912,6 +2912,7 @@ const DxTabPanelOptionsConfig = {
29122912
"update:items": null,
29132913
"update:itemTemplate": null,
29142914
"update:itemTitleTemplate": null,
2915+
"update:keyExpr": null,
29152916
"update:loop": null,
29162917
"update:noDataText": null,
29172918
"update:onContentReady": null,
@@ -2959,6 +2960,7 @@ const DxTabPanelOptionsConfig = {
29592960
items: Array as PropType<Array<any | dxTabPanelItem | string>>,
29602961
itemTemplate: {},
29612962
itemTitleTemplate: {},
2963+
keyExpr: [Function, String] as PropType<((() => void)) | string>,
29622964
loop: Boolean,
29632965
noDataText: String,
29642966
onContentReady: Function as PropType<((e: TabPanelContentReadyEvent) => void)>,

packages/devextreme-vue/src/form.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -966,6 +966,7 @@ const DxTabPanelOptionsConfig = {
966966
"update:items": null,
967967
"update:itemTemplate": null,
968968
"update:itemTitleTemplate": null,
969+
"update:keyExpr": null,
969970
"update:loop": null,
970971
"update:noDataText": null,
971972
"update:onContentReady": null,
@@ -1013,6 +1014,7 @@ const DxTabPanelOptionsConfig = {
10131014
items: Array as PropType<Array<any | dxTabPanelItem | string>>,
10141015
itemTemplate: {},
10151016
itemTitleTemplate: {},
1017+
keyExpr: [Function, String] as PropType<((() => void)) | string>,
10161018
loop: Boolean,
10171019
noDataText: String,
10181020
onContentReady: Function as PropType<((e: TabPanelContentReadyEvent) => void)>,

packages/devextreme-vue/src/tab-panel.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ type AccessibleOptions = Pick<Properties,
5050
"items" |
5151
"itemTemplate" |
5252
"itemTitleTemplate" |
53+
"keyExpr" |
5354
"loop" |
5455
"noDataText" |
5556
"onContentReady" |
@@ -102,6 +103,7 @@ const componentConfig = {
102103
items: Array as PropType<Array<any | dxTabPanelItem | string>>,
103104
itemTemplate: {},
104105
itemTitleTemplate: {},
106+
keyExpr: [Function, String] as PropType<((() => void)) | string>,
105107
loop: Boolean,
106108
noDataText: String,
107109
onContentReady: Function as PropType<((e: ContentReadyEvent) => void)>,
@@ -150,6 +152,7 @@ const componentConfig = {
150152
"update:items": null,
151153
"update:itemTemplate": null,
152154
"update:itemTitleTemplate": null,
155+
"update:keyExpr": null,
153156
"update:loop": null,
154157
"update:noDataText": null,
155158
"update:onContentReady": null,

0 commit comments

Comments
 (0)