Skip to content

Commit b5d7d51

Browse files
committed
feat: pass popup options to editing props
1 parent e6e4d1f commit b5d7d51

File tree

9 files changed

+37
-7
lines changed

9 files changed

+37
-7
lines changed

packages/devextreme-angular/src/ui/scheduler/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -393,10 +393,10 @@ export class DxSchedulerComponent extends DxComponent implements OnDestroy, OnCh
393393
394394
*/
395395
@Input()
396-
get editing(): boolean | { allowAdding?: boolean, allowDeleting?: boolean, allowDragging?: boolean, allowResizing?: boolean, allowTimeZoneEditing?: boolean, allowUpdating?: boolean, form?: undefined | { iconsShowMode?: AppointmentFormIconsShowMode, items?: Array<dxFormButtonItem | dxFormEmptyItem | dxFormGroupItem | dxFormSimpleItem | dxFormTabbedItem>, onCanceled?: ((formData: any) => void), onSaved?: ((formData: any) => void) } } {
396+
get editing(): boolean | { allowAdding?: boolean, allowDeleting?: boolean, allowDragging?: boolean, allowResizing?: boolean, allowTimeZoneEditing?: boolean, allowUpdating?: boolean, form?: undefined | { iconsShowMode?: AppointmentFormIconsShowMode, items?: Array<dxFormButtonItem | dxFormEmptyItem | dxFormGroupItem | dxFormSimpleItem | dxFormTabbedItem>, onCanceled?: ((formData: any) => void), onSaved?: ((formData: any) => void) }, popup?: any } {
397397
return this._getOption('editing');
398398
}
399-
set editing(value: boolean | { allowAdding?: boolean, allowDeleting?: boolean, allowDragging?: boolean, allowResizing?: boolean, allowTimeZoneEditing?: boolean, allowUpdating?: boolean, form?: undefined | { iconsShowMode?: AppointmentFormIconsShowMode, items?: Array<dxFormButtonItem | dxFormEmptyItem | dxFormGroupItem | dxFormSimpleItem | dxFormTabbedItem>, onCanceled?: ((formData: any) => void), onSaved?: ((formData: any) => void) } }) {
399+
set editing(value: boolean | { allowAdding?: boolean, allowDeleting?: boolean, allowDragging?: boolean, allowResizing?: boolean, allowTimeZoneEditing?: boolean, allowUpdating?: boolean, form?: undefined | { iconsShowMode?: AppointmentFormIconsShowMode, items?: Array<dxFormButtonItem | dxFormEmptyItem | dxFormGroupItem | dxFormSimpleItem | dxFormTabbedItem>, onCanceled?: ((formData: any) => void), onSaved?: ((formData: any) => void) }, popup?: any }) {
400400
this._setOption('editing', value);
401401
}
402402

@@ -1202,7 +1202,7 @@ export class DxSchedulerComponent extends DxComponent implements OnDestroy, OnCh
12021202
* This member supports the internal infrastructure and is not intended to be used directly from your code.
12031203
12041204
*/
1205-
@Output() editingChange: EventEmitter<boolean | { allowAdding?: boolean, allowDeleting?: boolean, allowDragging?: boolean, allowResizing?: boolean, allowTimeZoneEditing?: boolean, allowUpdating?: boolean, form?: undefined | { iconsShowMode?: AppointmentFormIconsShowMode, items?: Array<dxFormButtonItem | dxFormEmptyItem | dxFormGroupItem | dxFormSimpleItem | dxFormTabbedItem>, onCanceled?: ((formData: any) => void), onSaved?: ((formData: any) => void) } }>;
1205+
@Output() editingChange: EventEmitter<boolean | { allowAdding?: boolean, allowDeleting?: boolean, allowDragging?: boolean, allowResizing?: boolean, allowTimeZoneEditing?: boolean, allowUpdating?: boolean, form?: undefined | { iconsShowMode?: AppointmentFormIconsShowMode, items?: Array<dxFormButtonItem | dxFormEmptyItem | dxFormGroupItem | dxFormSimpleItem | dxFormTabbedItem>, onCanceled?: ((formData: any) => void), onSaved?: ((formData: any) => void) }, popup?: any }>;
12061206

12071207
/**
12081208

packages/devextreme-angular/src/ui/scheduler/nested/editing.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,14 @@ export class DxoSchedulerEditingComponent extends NestedOption implements OnDest
8989
this._setOption('form', value);
9090
}
9191

92+
@Input()
93+
get popup(): any {
94+
return this._getOption('popup');
95+
}
96+
set popup(value: any) {
97+
this._setOption('popup', value);
98+
}
99+
92100

93101
protected get _optionPath() {
94102
return 'editing';

packages/devextreme-metadata/make-angular-metadata.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ Ng.makeMetadata({
5959
removeMembers(/\/grids:LoadPanel.indicatorOptions/),
6060
removeMembers(/\/scheduler:Toolbar/),
6161
removeMembers(/\/scheduler:dxSchedulerOptions\.editing\.form/),
62+
removeMembers(/\/scheduler:dxSchedulerOptions\.editing\.popup/),
6263
removeMembers(/\/scheduler:dxSchedulerOptions\.resources\.icon/),
6364
removeMembers(/\/stepper:/),
6465
removeMembers(/\/speech_to_text:/),

packages/devextreme-react/src/scheduler.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -403,6 +403,7 @@ type IEditingProps = React.PropsWithChildren<{
403403
onCanceled?: ((formData: any) => void);
404404
onSaved?: ((formData: any) => void);
405405
};
406+
popup?: any;
406407
}>
407408
const _componentEditing = (props: IEditingProps) => {
408409
return React.createElement(NestedOption<IEditingProps>, {

packages/devextreme-vue/src/scheduler.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -667,6 +667,7 @@ const DxEditingConfig = {
667667
"update:allowTimeZoneEditing": null,
668668
"update:allowUpdating": null,
669669
"update:form": null,
670+
"update:popup": null,
670671
},
671672
props: {
672673
allowAdding: Boolean,
@@ -675,7 +676,8 @@ const DxEditingConfig = {
675676
allowResizing: Boolean,
676677
allowTimeZoneEditing: Boolean,
677678
allowUpdating: Boolean,
678-
form: Object as PropType<Record<string, any>>
679+
form: Object as PropType<Record<string, any>>,
680+
popup: {}
679681
}
680682
};
681683

packages/devextreme/js/__internal/scheduler/appointment_popup/m_popup.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,14 +93,15 @@ export class AppointmentPopup {
9393
}
9494

9595
_createPopupConfig() {
96-
return {
96+
const editingConfig = this.scheduler.getEditingConfig();
97+
const userPopupOptions = editingConfig?.popup ?? {};
98+
99+
const defaultPopupConfig = {
97100
height: 'auto',
98101
maxHeight: '90%',
99102
showCloseButton: false,
100103
showTitle: false,
101-
preventScrollEvents: false,
102104
enableBodyScroll: false,
103-
_ignorePreventScrollEventsDeprecation: true,
104105
onHiding: (): void => {
105106
this.scheduler.focus();
106107
},
@@ -115,6 +116,11 @@ export class AppointmentPopup {
115116
onShowing: (e): void => this._onShowing(e),
116117
wrapperAttr: { class: APPOINTMENT_POPUP_CLASS },
117118
};
119+
120+
return {
121+
...defaultPopupConfig,
122+
...userPopupOptions,
123+
};
118124
}
119125

120126
_onShowing(e) {

packages/devextreme/js/__internal/scheduler/utils/options/constants.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ export const DEFAULT_SCHEDULER_OPTIONS: Properties = {
4444
form: {
4545
iconsShowMode: DEFAULT_ICONS_SHOW_MODE,
4646
},
47+
popup: {},
4748
},
4849
showAllDayPanel: true,
4950
showCurrentTimeIndicator: true,
@@ -105,6 +106,7 @@ export const DEFAULT_SCHEDULER_INTERNAL_OPTIONS: SchedulerInternalOptions = {
105106
legacyForm: false,
106107
// @ts-expect-error copy from default so that you can rewrite it
107108
...DEFAULT_SCHEDULER_OPTIONS.editing,
109+
popup: {},
108110
},
109111
_draggingMode: 'outlook',
110112
_appointmentTooltipOffset: { x: 0, y: 0 },

packages/devextreme/js/ui/scheduler.d.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -665,6 +665,12 @@ export interface dxSchedulerOptions extends WidgetOptions<dxScheduler> {
665665
*/
666666
iconsShowMode?: AppointmentFormIconsShowMode;
667667
} | undefined;
668+
/**
669+
* @docid
670+
* @default undefined
671+
* @public
672+
*/
673+
popup?: Properties;
668674
};
669675
/**
670676
* @docid

packages/devextreme/ts/dx.all.d.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26502,6 +26502,10 @@ declare module DevExpress.ui {
2650226502
iconsShowMode?: DevExpress.ui.dxScheduler.AppointmentFormIconsShowMode;
2650326503
}
2650426504
| undefined;
26505+
/**
26506+
* [descr:dxSchedulerOptions.editing.popup]
26507+
*/
26508+
popup?: DevExpress.ui.dxScheduler.Properties;
2650526509
};
2650626510
/**
2650726511
* [descr:dxSchedulerOptions.endDateExpr]

0 commit comments

Comments
 (0)